From 5240ecf85781bc65689ba36848292a9d2fbb2adb Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Mon, 5 Jul 2021 18:33:18 +0700 Subject: [PATCH 001/228] Add Indonesian translation for 1-introduction --- 1-Introduction/translations/README.id.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 1-Introduction/translations/README.id.md diff --git a/1-Introduction/translations/README.id.md b/1-Introduction/translations/README.id.md new file mode 100644 index 00000000..1f8fc714 --- /dev/null +++ b/1-Introduction/translations/README.id.md @@ -0,0 +1,23 @@ +# Pengantar Machine Learning + +Di bagian kurikulum ini, Kamu akan berkenalan dengan konsep yang mendasari bidang Machine Learning, apa itu Machine Learning, dan belajar mengenai +sejarah serta teknik-teknik yang digunakan oleh para peneliti. Ayo jelajahi dunia baru Machine Learning bersama! + +![bola dunia](images/globe.jpg) +> Foto oleh Bill Oxford di Unsplash + +### Pelajaran + +1. [Pengantar Machine Learning](1-intro-to-ML/README.md) +1. [Sejarah dari Machine Learning dan AI](2-history-of-ML/README.md) +1. [Keadilan dan Machine Learning](3-fairness/README.md) +1. [Teknik-Teknik Machine Learning](4-techniques-of-ML/README.md) +### Credits + +"Pengantar Machine Learning" ditulis dengan ♥️ oleh sebuah tim yang terdiri dari [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) dan [Jen Looper](https://twitter.com/jenlooper) + +"Sejarah dari Machine Learning dan AI" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper) dan [Amy Boyd](https://twitter.com/AmyKateNicho) + +"Keadilan dan Machine Learning" ditulis dengan ♥️ oleh [Tomomi Imura](https://twitter.com/girliemac) + +"Teknik-Teknik Machine Learning" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper) dan [Chris Noring](https://twitter.com/softchris) \ No newline at end of file From 211d7cdfe05cce46f298055b6fb0a40834c1d656 Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Mon, 5 Jul 2021 18:50:45 +0700 Subject: [PATCH 002/228] Update 1-introduction translation --- 1-Introduction/translations/README.id.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/translations/README.id.md b/1-Introduction/translations/README.id.md index 1f8fc714..d2b0ae53 100644 --- a/1-Introduction/translations/README.id.md +++ b/1-Introduction/translations/README.id.md @@ -12,7 +12,7 @@ sejarah serta teknik-teknik yang digunakan oleh para peneliti. Ayo jelajahi duni 1. [Sejarah dari Machine Learning dan AI](2-history-of-ML/README.md) 1. [Keadilan dan Machine Learning](3-fairness/README.md) 1. [Teknik-Teknik Machine Learning](4-techniques-of-ML/README.md) -### Credits +### Penghargaan "Pengantar Machine Learning" ditulis dengan ♥️ oleh sebuah tim yang terdiri dari [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) dan [Jen Looper](https://twitter.com/jenlooper) From d5d4b96277c5b2af7dd33a9e5b18aaf3acd92e30 Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Mon, 5 Jul 2021 19:18:06 +0700 Subject: [PATCH 003/228] Add Indonesian translation for 1-1 assignment --- .../1-intro-to-ML/translations/assignment.id.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 1-Introduction/1-intro-to-ML/translations/assignment.id.md diff --git a/1-Introduction/1-intro-to-ML/translations/assignment.id.md b/1-Introduction/1-intro-to-ML/translations/assignment.id.md new file mode 100644 index 00000000..9de8a4bd --- /dev/null +++ b/1-Introduction/1-intro-to-ML/translations/assignment.id.md @@ -0,0 +1,9 @@ +# Persiapan + +## Instruksi + +Dalam tugas yang tidak dinilai ini, kamu akan mempelajari Python dan mempersiapkan *environment* kamu sehingga dapat digunakan untuk menjalankan *notebook*. + +Ambil [Jalur Belajar Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa) ini, kemudian persiapkan sistem kamu dengan melihat video-video pengantar ini: + +https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 From 4d5dca2a0c86d20a4ed74e159043d3e1362c1a55 Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Tue, 6 Jul 2021 10:08:20 +0700 Subject: [PATCH 004/228] Add Indonesian translation for 1-1 README --- .../1-intro-to-ML/translations/README.id.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 1-Introduction/1-intro-to-ML/translations/README.id.md diff --git a/1-Introduction/1-intro-to-ML/translations/README.id.md b/1-Introduction/1-intro-to-ML/translations/README.id.md new file mode 100644 index 00000000..8d0044b0 --- /dev/null +++ b/1-Introduction/1-intro-to-ML/translations/README.id.md @@ -0,0 +1,107 @@ +# Pengantar Machine Learning + +[![ML, AI, deep learning - Apa perbedaannya?](https://img.youtube.com/vi/lTd9RSxS9ZE/0.jpg)](https://youtu.be/lTd9RSxS9ZE "ML, AI, deep learning - Apa perbedaannya?") + +> 🎥 Klik gambar diatas untuk melihat video yang mendiskusikan perbedaan antara Machine Learning, AI, dan Deep Learning. + +## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) + +### Pengantar + +Selamat datang di pelajaran Machine Learning klasik untuk pemula! Baik kamu yang masih benar-benar baru, atau seorang praktisi ML berpengalaman yang ingin meningkatkan kemampuan kamu, kami senang kamu ikut bersama kami! Kami ingin membuat sebuah titik mulai yang ramah untuk pembelajaran ML kamu dan akan sangat senang untuk mengevaluasi, merespon, dan memasukkan [umpan balik](https://github.com/microsoft/ML-For-Beginners/discussions) kamu. + +[![Pengantar Machine Learning](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "Pengantar Machine Learning") + +> 🎥 Klik gambar diatas untuk melihat video: John Guttag dari MIT yang memberikan pengantar Machine Learning. +### Memulai Machine Learning + +Sebelum memulai kurikulum ini, kamu perlu memastikan komputer kamu sudah dipersiapkan untuk menjalankan *notebook* secara lokal. + +- **Konfigurasi komputer kamu dengan video-video ini**. Pelajari bagaimana menyiapkan komputer kamu dalam [video-video](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6) ini. +- **Belajar Python**. Disarankan juga untuk memiliki pemahaman dasar dari [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa), sebuah bahasa pemrograman yang digunakan oleh data scientist yang juga akan kita gunakan dalam pelajaran ini. +- **Belajar Node.js dan JavaScript**. Kita juga menggunakan JavaScript beberapa kali dalam pelajaran ini ketika membangun aplikasi web, jadi kamu perlu menginstal [node](https://nodejs.org) dan [npm](https://www.npmjs.com/), serta [Visual Studio Code](https://code.visualstudio.com/) yang tersedia untuk pengembangan Python dan JavaScript. +- **Buat akun GitHub**. Karena kamu menemukan kami di [GitHub](https://github.com), kamu mungkin sudah punya akun, tapi jika belum, silahkan buat akun baru kemudian *fork* kurikulum ini untuk kamu pergunakan sendiri. (Jangan ragu untuk memberikan kami bintang juga 😊) +- **Jelajahi Scikit-learn**. Buat diri kamu familiar dengan [Scikit-learn]([https://scikit-learn.org/stable/user_guide.html), seperangkat *library* ML yang kita acu dalam pelajaran-pelajaran ini. + +### Apa itu Machine Learning? + +Istilah 'Machine Learning' merupakan salah satu istilah yang paling populer dan paling sering digunakan saat ini. Ada kemungkinan kamu pernah mendengar istilah ini paling tidak sekali jika kamu familiar dengan teknologi. Tetapi untuk mekanisme Machine Learning sendiri, merupakan sebuah misteri bagi sebagian besar orang. Karena itu, penting untuk memahami sebenarnya apa itu Machine Learning, dan mempelajarinya langkah demi langkah melalui contoh praktis. + +![kurva tren ml](images/hype.png) + +> Google Trends memperlihatkan 'kurva tren' dari istilah 'Machine Learning' belakangan ini. + +Kita hidup di sebuah alam semesta yang penuh dengan misteri yang menarik. Ilmuwan-ilmuwan besar seperti Stephen Hawking, Albert Einstein, dan banyak lagi telah mengabdikan hidup mereka untuk mencari informasi yang berarti yang mengungkap misteri dari dunia disekitar kita. Ini adalah kondisi belajar manusia: seorang anak manusia belajar hal-hal baru dan mengungkap struktur dari dunianya tahun demi tahun saat mereka tumbuh dewasa. + +Otak dan indera seorang anak memahami fakta-fakta di sekitarnya dan secara bertahap mempelajari pola-pola kehidupan yang tersembunyi yang membantu anak untuk menyusun aturan-aturan logis untuk mengidentifikasi pola-pola yang dipelajari. Proses pembelajaran otak manusia ini menjadikan manusia sebagai makhluk hidup paling canggih di dunia ini. Belajar terus menerus dengan menemukan pola-pola tersembunyi dan kemudian berinovasi pada pola-pola itu memungkinkan kita untuk terus menjadikan diri kita lebih baik sepanjang hidup. Kapasitas belajar dan kemampuan berkembang ini terkait dengan konsep yang disebut dengan *[brain plasticity](https://www.simplypsychology.org/brain-plasticity.html)*. Secara sempit, kita dapat menarik beberapa kesamaan motivasi antara proses pembelajaran otak manusia dan konsep Machine Learning. + +[Otak manusia](https://www.livescience.com/29365-human-brain.html) menerima banyak hal dari dunia nyata, memproses informasi yang diterima, membuat keputusan rasional, dan melakukan aksi-aksi tertentu berdasarkan keadaan. Inilah yang kita sebut dengan berperilaku cerdas. Ketika kita memprogram sebuah salinan dari proses perilaku cerdas ke sebuah mesin, ini dinamakan kecerdasan buatan atau Artificial Intelligence (AI). + +Meskipun istilah-stilahnya bisa membingungkan, Machine Learning (ML) adalah bagian penting dari Artificial Intelligence. **ML berkaitan dengan menggunakan algoritma-algoritma terspesialisasi untuk mengungkap informasi yang berarti dan mencari pola-pola tersembunyi dari data yang diterima untuk mendukung proses pembuatan keputusan rasional**. + +![AI, ML, deep learning, data science](images/ai-ml-ds.png) + +> Sebuah diagram yang memperlihatkan hubungan antara AI, ML, Deep Learning, dan Data Science. Infografis oleh [Jen Looper](https://twitter.com/jenlooper) terinspirasi dari [infografis ini](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) + +## Apa yang akan kamu pelajari + +Dalam kurikulum ini, kita hanya akan membahas konsep inti dari Machine Learning yang harus diketahui oleh seorang pemula. Kita membahas apa yang kami sebut sebagai 'Machine Learning klasik' utamanya menggunakan Scikit-learn, sebuah *library* luar biasa yang banyak digunakan para siswa untuk belajar dasarnya. Untuk memahami konsep Artificial Intelligence atau Deep Learning yang lebih luas, pengetahuan dasar yang kuat tentang Machine Learning sangat diperlukan, itulah yang ingin kami tawarkan di sini. + +Kamu akan belajar: + +- Konsep inti ML +- Sejarah dari ML +- Keadilan dan ML +- Teknik regresi ML +- Teknik klasifikasi ML +- Teknik *clustering* ML +- Teknik *natural language processing* ML +- Teknik *time series forecasting* ML +- *Reinforcement learning* +- Penerapan nyata dari ML +## Yang tidak akan kita bahas + +- *deep learning* +- *neural networks* +- AI + +Untuk membuat pengalaman belajar yang lebih baik, kita akan menghindari kerumitan dari *neural network*, *deep learning* - membangun *many-layered model* menggunakan *neural network* - dan AI, yang mana akan kita bahas dalam kurikulum yang berbeda. Kami juga akan menawarkan kurikulum *data science* yang berfokus pada aspek bidang tersebut. +## Kenapa belajar Machine Learning? + +Machine Learning, dari perspektif sistem, didefinisikan sebagai pembuatan sistem otomatis yang dapat mempelajari pola-pola tersembunyi dari data untuk membantu membuat keputusan cerdas. + +Motivasi ini secara bebas terinspirasi dari bagaimana otak manusia mempelajari hal-hal tertentu berdasarkan data yang diterimanya dari dunia luar. + +✅ Pikirkan sejenak mengapa sebuah bisnis ingin mencoba menggunakan strategi Machine Learning dibandingkan membuat sebuah mesin berbasis aturan yang tertanam (*hard-coded*). + +### Penerapan Machine Learning + +Penerapan Machine Learning saat ini hampir ada di mana-mana, seperti data yang mengalir di sekitar kita, yang dihasilkan oleh ponsel pintar, perangkat yang terhubung, dan sistem lainnya. Mempertimbangkan potensi besar dari algoritma Machine Learning terkini, para peneliti telah mengeksplorasi kemampuan Machine Learning untuk memecahkan masalah kehidupan nyata multi-dimensi dan multi-disiplin dengan hasil positif yang luar biasa. + +**Kamu bisa menggunakan Machine Learning dalam banyak hal**: + +- Untuk memprediksi kemungkinan penyakit berdasarkan riwayat atau laporan medis pasien. +- Untuk memanfaatkan data cuaca untuk memprediksi peristiwa cuaca. +- Untuk memahami sentimen sebuah teks. +- Untuk mendeteksi berita palsu untuk menghentikan penyebaran propaganda. + +Keuangan, ekonomi, geosains, eksplorasi ruang angkasa, teknik biomedis, ilmu kognitif, dan bahkan bidang humaniora telah mengadaptasi Machine Learning untuk memecahkan masalah sulit pemrosesan data di bidang mereka. + +Machine Learning mengotomatiskan proses penemuan pola dengan menemukan wawasan yang berarti dari dunia nyata atau dari data yang dihasilkan. Machine Learning terbukti sangat berharga dalam penerapannya di berbagai bidang, diantaranya adalah bidang bisnis, kesehatan, dan keuangan. + +Dalam waktu dekat, memahami dasar-dasar Machine Learning akan menjadi suatu keharusan bagi orang-orang dari bidang apa pun karena adopsinya yang luas. + +--- +## 🚀 Tantangan + +Buat sketsa di atas kertas atau menggunakan aplikasi seperti [Excalidraw](https://excalidraw.com/), mengenai pemahaman kamu tentang perbedaan antara AI, ML, Deep Learning, dan Data Science. Tambahkan beberapa ide masalah yang cocok diselesaikan masing-masing teknik. + +## [Quiz Pasca-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) + +## Ulasan & Belajar Mandiri + +Untuk mempelajari lebih lanjut tentang bagaimana kamu dapat menggunakan algoritma ML di cloud, ikuti [Jalur Belajar](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-15963-cxa) ini. + +## Tugas + +[Persiapan](assignment.md) From 0b9f85da77545fcb40bd18b6fd77d934424b33ca Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Tue, 6 Jul 2021 22:15:41 +0700 Subject: [PATCH 005/228] Add Indonesian translation for 1-2 assignment --- .../2-history-of-ML/translations/assignment.id.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/2-history-of-ML/translations/assignment.id.md diff --git a/1-Introduction/2-history-of-ML/translations/assignment.id.md b/1-Introduction/2-history-of-ML/translations/assignment.id.md new file mode 100644 index 00000000..0ee7c009 --- /dev/null +++ b/1-Introduction/2-history-of-ML/translations/assignment.id.md @@ -0,0 +1,11 @@ +# Membuat sebuah *timeline* + +## Instruksi + +Menggunakan [repo ini](https://github.com/Digital-Humanities-Toolkit/timeline-builder), buatlah sebuah *timeline* dari beberapa aspek sejarah algoritma, matematika, statistik, AI, atau ML, atau kombinasi dari semuanya. Kamu dapat fokus pada satu orang, satu ide, atau rentang waktu pemikiran yang panjang. Pastikan untuk menambahkan elemen multimedia. + +## Rubrik + +| Kriteria | Sangat Bagus | Cukup | Perlu Peningkatan | +| -------- | ------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- | +| | *Timeline* yang dideploy disajikan sebagai halaman GitHub | Kode belum lengkap dan belum dideploy | *Timeline* belum lengkap, belum diriset dengan baik dan belum dideploy | \ No newline at end of file From ebbee0c2070d8a148025f094a3865cc707ee1d06 Mon Sep 17 00:00:00 2001 From: kenya-sk Date: Fri, 9 Jul 2021 22:20:32 +0900 Subject: [PATCH 006/228] first translation --- 2-Regression/2-Data/translations/README.ja.md | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 2-Regression/2-Data/translations/README.ja.md diff --git a/2-Regression/2-Data/translations/README.ja.md b/2-Regression/2-Data/translations/README.ja.md new file mode 100644 index 00000000..122d5bad --- /dev/null +++ b/2-Regression/2-Data/translations/README.ja.md @@ -0,0 +1,201 @@ +# Scikit-learnを用いた回帰モデルの構築: データの準備と可視化 + +> ![Data visualization infographic](../images/data-visualization.png) +> [Dasani Madipalli](https://twitter.com/dasani_decoded) によるインフォグラフィック + +## [講義前のクイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) + +## イントロダクション + +Now that you are set up with the tools you need to start tackling machine learning model building with Scikit-learn, you are ready to start asking questions of your data. As you work with data and apply ML solutions, it's very important to understand how to ask the right question to properly unlock the potentials of your dataset. + + +このレッスンでは、以下のことを学びます。 + +- モデルを構築するためのデータ処理方法について +- データの可視化におけるMatplotlibの使い方について + +## Asking the right question of your data + +The question you need answered will determine what type of ML algorithms you will leverage. And the quality of the answer you get back will be heavily dependent on the nature of your data. + +Take a look at the [data](../data/US-pumpkins.csv) provided for this lesson. You can open this .csv file in VS Code. A quick skim immediately shows that there are blanks and a mix of strings and numeric data. There's also a strange column called 'Package' where the data is a mix between 'sacks', 'bins' and other values. The data, in fact, is a bit of a mess. + +In fact, it is not very common to be gifted a dataset that is completely ready to use to create a ML model out of the box. In this lesson, you will learn how to prepare a raw dataset using standard Python libraries. You will also learn various techniques to visualize the data. + +## Case study: 'the pumpkin market' + +In this folder you will find a .csv file in the root `data` folder called [US-pumpkins.csv](../data/US-pumpkins.csv) which includes 1757 lines of data about the market for pumpkins, sorted into groupings by city. This is raw data extracted from the [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distributed by the United States Department of Agriculture. + +### Preparing data + +This data is in the public domain. It can be downloaded in many separate files, per city, from the USDA web site. To avoid too many separate files, we have concatenated all the city data into one spreadsheet, thus we have already _prepared_ the data a bit. Next, let's take a closer look at the data. + +### The pumpkin data - early conclusions + +What do you notice about this data? You already saw that there is a mix of strings, numbers, blanks and strange values that you need to make sense of. + +What question can you ask of this data, using a Regression technique? What about "Predict the price of a pumpkin for sale during a given month". Looking again at the data, there are some changes you need to make to create the data structure necessary for the task. +## Exercise - analyze the pumpkin data + +Let's use [Pandas](https://pandas.pydata.org/), (the name stands for `Python Data Analysis`) a tool very useful for shaping data, to analyze and prepare this pumpkin data. + +### First, check for missing dates + +You will first need to take steps to check for missing dates: + +1. Convert the dates to a month format (these are US dates, so the format is `MM/DD/YYYY`). +2. Extract the month to a new column. + +Open the _notebook.ipynb_ file in Visual Studio Code and import the spreadsheet in to a new Pandas dataframe. + +1. Use the `head()` function to view the first five rows. + + ```python + import pandas as pd + pumpkins = pd.read_csv('../data/US-pumpkins.csv') + pumpkins.head() + ``` + + ✅ What function would you use to view the last five rows? + +1. Check if there is missing data in the current dataframe: + + ```python + pumpkins.isnull().sum() + ``` + + There is missing data, but maybe it won't matter for the task at hand. + +1. To make your dataframe easier to work with, drop several of its columns, using `drop()`, keeping only the columns you need: + + ```python + new_columns = ['Package', 'Month', 'Low Price', 'High Price', 'Date'] + pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1) + ``` + +### Second, determine average price of pumpkin + +Think about how to determine the average price of a pumpkin in a given month. What columns would you pick for this task? Hint: you'll need 3 columns. + +Solution: take the average of the `Low Price` and `High Price` columns to populate the new Price column, and convert the Date column to only show the month. Fortunately, according to the check above, there is no missing data for dates or prices. + +1. To calculate the average, add the following code: + + ```python + price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2 + + month = pd.DatetimeIndex(pumpkins['Date']).month + + ``` + + ✅ Feel free to print any data you'd like to check using `print(month)`. + +2. Now, copy your converted data into a fresh Pandas dataframe: + + ```python + new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price}) + ``` + + Printing out your dataframe will show you a clean, tidy dataset on which you can build your new regression model. + +### But wait! There's something odd here + +If you look at the `Package` column, pumpkins are sold in many different configurations. Some are sold in '1 1/9 bushel' measures, and some in '1/2 bushel' measures, some per pumpkin, some per pound, and some in big boxes with varying widths. + +> Pumpkins seem very hard to weigh consistently + +Digging into the original data, it's interesting that anything with `Unit of Sale` equalling 'EACH' or 'PER BIN' also have the `Package` type per inch, per bin, or 'each'. Pumpkins seem to be very hard to weigh consistently, so let's filter them by selecting only pumpkins with the string 'bushel' in their `Package` column. + +1. Add a filter at the top of the file, under the initial .csv import: + + ```python + pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)] + ``` + + If you print the data now, you can see that you are only getting the 415 or so rows of data containing pumpkins by the bushel. + +### But wait! There's one more thing to do + +Did you notice that the bushel amount varies per row? You need to normalize the pricing so that you show the pricing per bushel, so do some math to standardize it. + +1. Add these lines after the block creating the new_pumpkins dataframe: + + ```python + new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9) + + new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2) + ``` + +✅ According to [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), a bushel's weight depends on the type of produce, as it's a volume measurement. "A bushel of tomatoes, for example, is supposed to weigh 56 pounds... Leaves and greens take up more space with less weight, so a bushel of spinach is only 20 pounds." It's all pretty complicated! Let's not bother with making a bushel-to-pound conversion, and instead price by the bushel. All this study of bushels of pumpkins, however, goes to show how very important it is to understand the nature of your data! + +Now, you can analyze the pricing per unit based on their bushel measurement. If you print out the data one more time, you can see how it's standardized. + +✅ Did you notice that pumpkins sold by the half-bushel are very expensive? Can you figure out why? Hint: little pumpkins are way pricier than big ones, probably because there are so many more of them per bushel, given the unused space taken by one big hollow pie pumpkin. + +## Visualization Strategies + +Part of the data scientist's role is to demonstrate the quality and nature of the data they are working with. To do this, they often create interesting visualizations, or plots, graphs, and charts, showing different aspects of data. In this way, they are able to visually show relationships and gaps that are otherwise hard to uncover. + +Visualizations can also help determine the machine learning technique most appropriate for the data. A scatterplot that seems to follow a line, for example, indicates that the data is a good candidate for a linear regression exercise. + +One data visualization libary that works well in Jupyter notebooks is [Matplotlib](https://matplotlib.org/) (which you also saw in the previous lesson). + +> Get more experience with data visualization in [these tutorials](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-15963-cxa). + +## Exercise - experiment with Matplotlib + +Try to create some basic plots to display the new dataframe you just created. What would a basic line plot show? + +1. Import Matplotlib at the top of the file, under the Pandas import: + + ```python + import matplotlib.pyplot as plt + ``` + +1. Rerun the entire notebook to refresh. +1. At the bottom of the notebook, add a cell to plot the data as a box: + + ```python + price = new_pumpkins.Price + month = new_pumpkins.Month + plt.scatter(price, month) + plt.show() + ``` + + ![A scatterplot showing price to month relationship](../images/scatterplot.png) + + Is this a useful plot? Does anything about it surprise you? + + It's not particularly useful as all it does is display in your data as a spread of points in a given month. + +### Make it useful + +To get charts to display useful data, you usually need to group the data somehow. Let's try creating a plot where the y axis shows the months and the data demonstrates the distribution of data. + +1. Add a cell to create a grouped bar chart: + + ```python + new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar') + plt.ylabel("Pumpkin Price") + ``` + + ![A bar chart showing price to month relationship](../images/barchart.png) + + This is a more useful data visualization! It seems to indicate that the highest price for pumpkins occurs in September and October. Does that meet your expectation? Why or why not? + +--- + +## 🚀Challenge + +Explore the different types of visualization that Matplotlib offers. Which types are most appropriate for regression problems? + +## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12/) + +## Review & Self Study + +Take a look at the many ways to visualize data. Make a list of the various libraries available and note which are best for given types of tasks, for example 2D visualizations vs. 3D visualizations. What do you discover? + +## Assignment + +[Exploring visualization](assignment.md) From f131b675cad86915d2fb3bff2e1b6794c3124695 Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Fri, 9 Jul 2021 20:41:03 +0700 Subject: [PATCH 007/228] Add Indonesian translation for 1-2 README --- .../2-history-of-ML/translations/README.id.md | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 1-Introduction/2-history-of-ML/translations/README.id.md diff --git a/1-Introduction/2-history-of-ML/translations/README.id.md b/1-Introduction/2-history-of-ML/translations/README.id.md new file mode 100644 index 00000000..4053785b --- /dev/null +++ b/1-Introduction/2-history-of-ML/translations/README.id.md @@ -0,0 +1,116 @@ +# Sejarah Machine Learning + +![Ringkasan dari Sejarah Machine Learning dalam sebuah catatan sketsa](../../sketchnotes/ml-history.png) +> Catatan sketsa oleh [Tomomi Imura](https://www.twitter.com/girlie_mac) + +## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/3/) + +Dalam pelajaran ini, kita akan membahas tonggak utama dalam sejarah Machine Learning dan Artificial Intelligence. + +Sejarah Artifical Intelligence, AI, sebagai bidang terkait dengan sejarah Machine Learning, karena algoritma dan kemajuan komputasi yang mendukung ML dimasukkan ke dalam pengembangan AI. Penting untuk diingat bahwa, meski bidang-bidang ini sebagai bidang-bidang penelitian yang berbeda mulai terbentuk pada 1950-an, [algoritmik, statistik, matematik, komputasi dan penemuan teknis](https://wikipedia.org/wiki/Timeline_of_machine_learning) penting sudah ada sebelumnya, dan saling tumpang tindih di era ini. Faktanya, orang-orang telah memikirkan pertanyaan-pertanyaan ini selama [ratusan tahun](https://wikipedia.org/wiki/History_of_artificial_intelligence): artikel ini membahas dasar-dasar intelektual historis dari gagasan 'mesin yang berpikir'. + +## Penemuan penting + +- 1763, 1812 [Bayes Theorem](https://wikipedia.org/wiki/Bayes%27_theorem) dan para pendahulu. Teorema ini dan penerapannya mendasari inferensi, mendeskripsikan kemungkinan suatu peristiwa terjadi berdasarkan pengetahuan sebelumnya. +- 1805 [Least Square Theory](https://wikipedia.org/wiki/Least_squares) oleh matematikawan Perancis Adrien-Marie Legendre. Teori ini yang akan kamu pelajari di unit Regresi, ini membantu dalam *data fitting*. +- 1913 [Markov Chains](https://wikipedia.org/wiki/Markov_chain) dinamai setelah matematikawan Rusia, Andrey Markov, digunakan untuk mendeskripsikan sebuah urutan dari kejadian-kejadian yang mungkin terjadi berdasarkan kondisi sebelumnya. +- 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron) adalah sebuah tipe dari *linear classifier* yang ditemukan oleh psikolog Amerika, Frank Rosenblatt, yang mendasari kemajuan dalam *Deep Learning*. +- 1967 [Nearest Neighbor](https://wikipedia.org/wiki/Nearest_neighbor) adalah sebuah algoritma yang pada awalnya didesain untuk memetakan rute. Dalam konteks ML, ini digunakan untuk mendeteksi berbagai pola. +- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) digunakan untuk men-*train* [feedforward neural networks](https://wikipedia.org/wiki/Feedforward_neural_network). +- 1982 [Recurrent Neural Networks](https://wikipedia.org/wiki/Recurrent_neural_network) adalah *artificial neural networks* yang berasal dari *feedforward neural networks* yang membuat grafik sementara. + +✅ Lakukan sebuah riset kecil. Tanggal berapa lagi yang merupakan tanggal penting dalam sejarah ML dan AI? +## 1950: Mesin yang berpikir + +Alan Turing, merupakan orang luar biasa yang terpilih oleh [publik di tahun 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) sebagai ilmuwan terhebat di abad 20, diberikan penghargaan karena membantu membuat fondasi dari sebuah konsep 'mesin yang bisa berpikir', Dia berjuang menghadapi orang-orang yang menentangnya dan keperluannya sendiri untuk bukti empiris dari konsep ini dengan membuat [Turing Test](https://www.bbc.com/news/technology-18475646), yang mana akan kamu jelajahi di pelajaran NLP kami. + +## 1956: Proyek Riset Musim Panas Dartmouth + +"Proyek Riset Musim Panas Dartmouth pada *artificial intelligence* merupakan sebuah acara penemuan untuk *artificial intelligence* sebagai sebuah bidang," dan dari sinilah istilah '*artificial intelligence*' diciptakan ([sumber](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)). + +> Setiap aspek pembelajaran atau fitur kecerdasan lainnya pada prinsipnya dapat dideskripsikan dengan sangat tepat sehingga sebuah mesin dapat dibuat untuk mensimulasikannya. + +Ketua peneliti, profesor matematika John McCarthy, berharap "untuk meneruskan dasar dari dugaan bahwa setiap aspek pembelajaran atau fitur kecerdasan lainnya pada prinsipnya dapat dideskripsikan dengan sangat tepat sehingga mesin dapat dibuat untuk mensimulasikannya." Marvin Minsky, seorang tokoh terkenal di bidang ini juga termasuk sebagai peserta penelitian. + +Workshop ini dipuji karena telah memprakarsai dan mendorong beberapa diskusi termasuk "munculnya metode simbolik, sistem yang berfokus pada domain terbatas (sistem pakar awal), dan sistem deduktif versus sistem induktif." ([sumber](https://wikipedia.org/wiki/Dartmouth_workshop)). + +## 1956 - 1974: "Tahun-tahun Emas" + +Dari tahun 1950-an hingga pertengahan 70-an, optimisme memuncak dengan harapan bahwa AI dapat memecahkan banyak masalah. Pada tahun 1967, Marvin Minsky dengan yakin menyatakan bahwa "Dalam satu generasi ... masalah menciptakan '*artificial intelligence*' secara substansial akan terpecahkan." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall) + +penelitian *natural language processing* berkembang, pencarian disempurnakan dan dibuat lebih kuat, dan konsep '*micro-worlds*' diciptakan, di mana tugas-tugas sederhana diselesaikan menggunakan instruksi bahasa sederhana. + +Penelitian didanai dengan baik oleh lembaga pemerintah, banyak kemajuan dibuat dalam komputasi dan algoritma, dan prototipe mesin cerdas dibangun. Beberapa mesin tersebut antara lain: + +* [Shakey the robot](https://wikipedia.org/wiki/Shakey_the_robot), yang bisa bermanuver dan memutuskan bagaimana melakukan tugas-tugas secara 'cerdas'. + + ![Shakey, an intelligent robot](images/shakey.jpg) + > Shakey pada 1972 + +* Eliza, sebuah 'chatterbot' awal, dapat mengobrol dengan orang-orang dan bertindak sebagai 'terapis' primitif. Kamu akan belajar lebih banyak tentang Eliza dalam pelajaran NLP. + + ![Eliza, a bot](images/eliza.png) + > Sebuah versi dari Eliza, sebuah *chatbot* + +* "Blocks world" adalah contoh sebuah *micro-world* dimana balok dapat ditumpuk dan diurutkan, dan pengujian eksperimen mesin pengajaran untuk membuat keputusan dapat dilakukan. Kemajuan yang dibuat dengan *library-library* seperti [SHRDLU](https://wikipedia.org/wiki/SHRDLU) membantu mendorong kemajuan pemrosesan bahasa. + + [![blocks world dengan SHRDLU](https://img.youtube.com/vi/QAJz4YKUwqw/0.jpg)](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world dengan SHRDLU") + + > 🎥 Klik gambar diatas untuk melihat video: Blocks world with SHRDLU + +## 1974 - 1980: "Musim Dingin AI" + +Pada pertengahan 1970-an, semakin jelas bahwa kompleksitas pembuatan 'mesin cerdas' telah diremehkan dan janjinya, mengingat kekuatan komputasi yang tersedia, telah dilebih-lebihkan. Pendanaan telah habis dan kepercayaan dalam bidang ini menurun. Beberapa masalah yang memengaruhi kepercayaan diri termasuk: + +- **Keterbatasan**. Kekuatan komputasi terlalu terbatas. +- **Ledakan kombinatorial**. Jumlah parameter yang perlu di-*train* bertambah secara eksponensial karena lebih banyak hal yang diminta dari komputer, tanpa evolusi paralel dari kekuatan dan kemampuan komputasi. +- **Kekurangan data**. Adanya kekurangan data yang menghalangi proses pengujian, pengembangan, dan penyempurnaan algoritma. +- **Apakah kita menanyakan pertanyaan yang tepat?**. Pertanyaan-pertanyaan yang diajukan pun mulai dipertanyakan kembali. Para peneliti mulai melontarkan kritik tentang pendekatan mereka + - Tes Turing mulai dipertanyakan, di antara ide-ide lain, dari 'teori ruang Cina' yang mengemukakan bahwa, "memprogram komputer digital mungkin membuatnya tampak memahami bahasa tetapi tidak dapat menghasilkan pemahaman yang sebenarnya." ([sumber](https://plato.stanford.edu/entries/chinese-room/)) + - Etika memperkenalkan kecerdasan buatan seperti "terapis" ELIZA ke dalam masyarakat telah ditantang. + +Pada saat yang sama, berbagai aliran pemikiran AI mulai terbentuk. Sebuah dikotomi didirikan antara praktek ["scruffy" vs. "neat AI"](https://wikipedia.org/wiki/Neats_and_scruffies). Lab _Scruffy_ mengubah program selama berjam-jam sampai mendapat hasil yang diinginkan. Lab _Neat_ "berfokus pada logika dan penyelesaian masalah formal". ELIZA dan SHRDLU adalah sistem _scruffy_ yang terkenal. Pada tahun 1980-an, karena perkembangan permintaan untuk membuat sistem ML yang dapat direproduksi, pendekatan _neat_ secara bertahap menjadi yang terdepan karena hasilnya lebih dapat dijelaskan. + +## 1980s Sistem Pakar + +Seiring berkembangnya bidang ini, manfaatnya bagi bisnis menjadi lebih jelas, dan begitu pula dengan menjamurnya 'sistem pakar' pada tahun 1980-an. "Sistem pakar adalah salah satu bentuk perangkat lunak artificial intelligence (AI) pertama yang benar-benar sukses." ([sumber](https://wikipedia.org/wiki/Expert_system)). + +Tipe sistem ini sebenarnya adalah _hybrid_, sebagian terdiri dari mesin aturan yang mendefinisikan *business requirement*, dan mesin inferensi yang memanfaatkan sistem aturan untuk menyimpulkan fakta baru. + +Pada era ini juga terlihat adanya peningkatan perhatian pada jaringan saraf. + +## 1987 - 1993: AI 'Chill' + +Perkembangan perangkat keras sistem pakar terspesialisasi memiliki efek yang tidak menguntungkan karena menjadi terlalu terspesialiasasi. Munculnya komputer pribadi juga bersaing dengan sistem yang besar, terspesialisasi, dan terpusat ini. Demokratisasi komputasi telah dimulai, dan pada akhirnya membuka jalan untuk ledakan modern dari *big data*. + +## 1993 - 2011 + +Pada zaman ini memperlihatkan era baru bagi ML dan AI untuk dapat menyelesaikan beberapa masalah yang sebelumnya disebabkan oleh kurangnya data dan daya komputasi. Jumlah data mulai meningkat dengan cepat dan tersedia secara luas, terlepas dari baik dan buruknya, terutama dengan munculnya *smartphone* sekitar tahun 2007. Daya komputasi berkembang secara eksponensial, dan algoritma juga berkembang saat itu. Bidang ini mulai mengalami kedewasaan karena hari-hari yang tidak beraturan di masa lalu mulai terbentuk menjadi disiplin yang sebenarnya. + +## Sekarang + +Saat ini, *machine learning* dan AI hampir ada di setiap bagian dari kehidupan kita. Era ini menuntut pemahaman yang cermat tentang risiko dan efek potensi dari algoritma ini pada kehidupan manusia. Seperti yang telah dinyatakan oleh Brad Smith dari Microsoft, "Teknologi informasi mengangkat isu-isu yang menjadi inti dari perlindungan hak asasi manusia yang mendasar seperti privasi dan kebebasan berekspresi. Masalah-masalah ini meningkatkan tanggung jawab bagi perusahaan teknologi yang menciptakan produk-produk ini. Dalam pandangan kami, mereka juga menyerukan peraturan pemerintah yang bijaksana dan untuk pengembangan norma-norma seputar penggunaan yang wajar" ([sumber](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)). + +Kita masih belum tahu apa yang akan terjadi di masa depan, tetapi penting untuk memahami sistem komputer dan perangkat lunak serta algoritma yang dijalankannya. Kami berharap kurikulum ini akan membantu kamu untuk mendapatkan pemahaman yang lebih baik sehingga kamu dapat memutuskan sendiri. + +[![Sejarah Deep Learning](https://img.youtube.com/vi/mTtDfKgLm54/0.jpg)](https://www.youtube.com/watch?v=mTtDfKgLm54 "Sejarah Deep Learning") +> 🎥 Klik gambar diatas untuk melihat video: Yann LeCun mendiskusikan sejarah dari Deep Learning dalam pelajaran ini + +--- +## 🚀Tantangan + +Gali salah satu momen bersejarah ini dan pelajari lebih lanjut tentang orang-orang di baliknya. Ada karakter yang menarik, dan tidak ada penemuan ilmiah yang pernah dibuat dalam kekosongan budaya. Apa yang kamu temukan? + +## [Quiz Pasca-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/4/) + +## Ulasan & Belajar Mandiri + +Berikut adalah item untuk ditonton dan didengarkan: + +[Podcast dimana Amy Boyd mendiskusikan evolusi dari AI](http://runasradio.com/Shows/Show/739) + +[![Sejarah AI oleh Amy Boyd](https://img.youtube.com/vi/EJt3_bFYKss/0.jpg)](https://www.youtube.com/watch?v=EJt3_bFYKss "Sejarah AI oleh Amy Boyd") + +## Tugas + +[Membuat sebuah *timeline*](assignment.md) From b028149817384030eb0427bc1e3d4890a719f79e Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Fri, 9 Jul 2021 22:02:11 +0800 Subject: [PATCH 008/228] [WIP]translate 2.1 to Simplified Chinese --- .../1-Tools/translations/README.zh-cn.md | 206 ++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 2-Regression/1-Tools/translations/README.zh-cn.md diff --git a/2-Regression/1-Tools/translations/README.zh-cn.md b/2-Regression/1-Tools/translations/README.zh-cn.md new file mode 100644 index 00000000..e36c34fe --- /dev/null +++ b/2-Regression/1-Tools/translations/README.zh-cn.md @@ -0,0 +1,206 @@ +# Get started with Python and Scikit-learn for regression models + +![Summary of regressions in a sketchnote](../../sketchnotes/ml-regression.png) + +> Sketchnote by [Tomomi Imura](https://www.twitter.com/girlie_mac) + +## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/9/) +## Introduction + +In these four lessons, you will discover how to build regression models. We will discuss what these are for shortly. But before you do anything, make sure you have the right tools in place to start the process! + +In this lesson, you will learn how to: + +- Configure your computer for local machine learning tasks. +- Work with Jupyter notebooks. +- Use Scikit-learn, including installation. +- Explore linear regression with a hands-on exercise. + +## Installations and configurations + +[![Using Python with Visual Studio Code](https://img.youtube.com/vi/7EXd4_ttIuw/0.jpg)](https://youtu.be/7EXd4_ttIuw "Using Python with Visual Studio Code") + +> 🎥 Click the image above for a video: using Python within VS Code. + +1. **Install Python**. Ensure that [Python](https://www.python.org/downloads/) is installed on your computer. You will use Python for many data science and machine learning tasks. Most computer systems already include a Python installation. There are useful [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-15963-cxa) available as well, to ease the setup for some users. + + Some usages of Python, however, require one version of the software, whereas others require a different version. For this reason, it's useful to work within a [virtual environment](https://docs.python.org/3/library/venv.html). + +2. **Install Visual Studio Code**. Make sure you have Visual Studio Code installed on your computer. Follow these instructions to [install Visual Studio Code](https://code.visualstudio.com/) for the basic installation. You are going to use Python in Visual Studio Code in this course, so you might want to brush up on how to [configure Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-15963-cxa) for Python development. + + > Get comfortable with Python by working through this collection of [Learn modules](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-15963-cxa) + +3. **Install Scikit-learn**, by following [these instructions](https://scikit-learn.org/stable/install.html). Since you need to ensure that you use Python 3, it's recommended that you use a virtual environment. Note, if you are installing this library on a M1 Mac, there are special instructions on the page linked above. + +1. **Install Jupyter Notebook**. You will need to [install the Jupyter package](https://pypi.org/project/jupyter/). + +## Your ML authoring environment + +You are going to use **notebooks** to develop your Python code and create machine learning models. This type of file is a common tool for data scientists, and they can be identified by their suffix or extension `.ipynb`. + +Notebooks are an interactive environment that allow the developer to both code and add notes and write documentation around the code which is quite helpful for experimental or research-oriented projects. + +### Exercise - work with a notebook + +In this folder, you will find the file _notebook.ipynb_. + +1. Open _notebook.ipynb_ in Visual Studio Code. + + A Jupyter server will start with Python 3+ started. You will find areas of the notebook that can be `run`, pieces of code. You can run a code block, by selecting the icon that looks like a play button. + +1. Select the `md` icon and add a bit of markdown, and the following text **# Welcome to your notebook**. + + Next, add some Python code. + +1. Type **print('hello notebook')** in the code block. +1. Select the arrow to run the code. + + You should see the printed statement: + + ```output + hello notebook + ``` + +![VS Code with a notebook open](images/notebook.png) + +You can interleaf your code with comments to self-document the notebook. + +✅ Think for a minute how different a web developer's working environment is versus that of a data scientist. + +## Up and running with Scikit-learn + +Now that Python is set up in your local environment, and you are comfortable with Jupyter notebooks, let's get equally comfortable with Scikit-learn (pronounce it `sci` as in `science`). Scikit-learn provides an [extensive API](https://scikit-learn.org/stable/modules/classes.html#api-ref) to help you perform ML tasks. + +According to their [website](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn is an open source machine learning library that supports supervised and unsupervised learning. It also provides various tools for model fitting, data preprocessing, model selection and evaluation, and many other utilities." + +In this course, you will use Scikit-learn and other tools to build machine learning models to perform what we call 'traditional machine learning' tasks. We have deliberately avoided neural networks and deep learning, as they are better covered in our forthcoming 'AI for Beginners' curriculum. + +Scikit-learn makes it straightforward to build models and evaluate them for use. It is primarily focused on using numeric data and contains several ready-made datasets for use as learning tools. It also includes pre-built models for students to try. Let's explore the process of loading prepackaged data and using a built in estimator first ML model with Scikit-learn with some basic data. + +## Exercise - your first Scikit-learn notebook + +> This tutorial was inspired by the [linear regression example](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) on Scikit-learn's web site. + +In the _notebook.ipynb_ file associated to this lesson, clear out all the cells by pressing the 'trash can' icon. + +In this section, you will work with a small dataset about diabetes that is built into Scikit-learn for learning purposes. Imagine that you wanted to test a treatment for diabetic patients. Machine Learning models might help you determine which patients would respond better to the treatment, based on combinations of variables. Even a very basic regression model, when visualized, might show information about variables that would help you organize your theoretical clinical trials. + +✅ There are many types of regression methods, and which one you pick depends on the answer you're looking for. If you want to predict the probable height for a person of a given age, you'd use linear regression, as you're seeking a **numeric value**. If you're interested in discovering whether a type of cuisine should be considered vegan or not, you're looking for a **category assignment** so you would use logistic regression. You'll learn more about logistic regression later. Think a bit about some questions you can ask of data, and which of these methods would be more appropriate. + +Let's get started on this task. + +### Import libraries + +For this task we will import some libraries: + +- **matplotlib**. It's a useful [graphing tool](https://matplotlib.org/) and we will use it to create a line plot. +- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) is a useful library for handling numeric data in Python. +- **sklearn**. This is the Scikit-learn library. + +Import some libraries to help with your tasks. + +1. Add imports by typing the following code: + + ```python + import matplotlib.pyplot as plt + import numpy as np + from sklearn import datasets, linear_model, model_selection + ``` + + Above you are importing `matplottlib`, `numpy` and you are importing `datasets`, `linear_model` and `model_selection` from `sklearn`. `model_selection` is used for splitting data into training and test sets. + +### The diabetes dataset + +The built-in [diabetes dataset](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) includes 442 samples of data around diabetes, with 10 feature variables, some of which include: + +age: age in years +bmi: body mass index +bp: average blood pressure +s1 tc: T-Cells (a type of white blood cells) + +✅ This dataset includes the concept of 'sex' as a feature variable important to research around diabetes. Many medical datasets include this type of binary classification. Think a bit about how categorizations such as this might exclude certain parts of a population from treatments. + +Now, load up the X and y data. + +> 🎓 Remember, this is supervised learning, and we need a named 'y' target. + +In a new code cell, load the diabetes dataset by calling `load_diabetes()`. The input `return_X_y=True` signals that `X` will be a data matrix, and `y` will be the regression target. + +1. Add some print commands to show the shape of the data matrix and its first element: + + ```python + X, y = datasets.load_diabetes(return_X_y=True) + print(X.shape) + print(X[0]) + ``` + + What you are getting back as a response, is a tuple. What you are doing is to assign the two first values of the tuple to `X` and `y` respectively. Learn more [about tuples](https://wikipedia.org/wiki/Tuple). + + You can see that this data has 442 items shaped in arrays of 10 elements: + + ```text + (442, 10) + [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 + -0.04340085 -0.00259226 0.01990842 -0.01764613] + ``` + + ✅ Think a bit about the relationship between the data and the regression target. Linear regression predicts relationships between feature X and target variable y. Can you find the [target](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) for the diabetes dataset in the documentation? What is this dataset demonstrating, given that target? + +2. Next, select a portion of this dataset to plot by arranging it into a new array using numpy's `newaxis` function. We are going to use linear regression to generate a line between values in this data, according to a pattern it determines. + + ```python + X = X[:, np.newaxis, 2] + ``` + + ✅ At any time, print out the data to check its shape. + +3. Now that you have data ready to be plotted, you can see if a machine can help determine a logical split between the numbers in this dataset. To do this, you need to split both the data (X) and the target (y) into test and training sets. Scikit-learn has a straightforward way to do this; you can split your test data at a given point. + + ```python + X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) + ``` + +4. Now you are ready to train your model! Load up the linear regression model and train it with your X and y training sets using `model.fit()`: + + ```python + model = linear_model.LinearRegression() + model.fit(X_train, y_train) + ``` + + ✅ `model.fit()` is a function you'll see in many ML libraries such as TensorFlow + +5. Then, create a prediction using test data, using the function `predict()`. This will be used to draw the line between data groups + + ```python + y_pred = model.predict(X_test) + ``` + +6. Now it's time to show the data in a plot. Matplotlib is a very useful tool for this task. Create a scatterplot of all the X and y test data, and use the prediction to draw a line in the most appropriate place, between the model's data groupings. + + ```python + plt.scatter(X_test, y_test, color='black') + plt.plot(X_test, y_pred, color='blue', linewidth=3) + plt.show() + ``` + + ![a scatterplot showing datapoints around diabetes](./images/scatterplot.png) + + ✅ Think a bit about what's going on here. A straight line is running through many small dots of data, but what is it doing exactly? Can you see how you should be able to use this line to predict where a new, unseen data point should fit in relationship to the plot's y axis? Try to put into words the practical use of this model. + +Congratulations, you built your first linear regression model, created a prediction with it, and displayed it in a plot! + +--- +## 🚀Challenge + +Plot a different variable from this dataset. Hint: edit this line: `X = X[:, np.newaxis, 2]`. Given this dataset's target, what are you able to discover about the progression of diabetes as a disease? +## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/10/) + +## Review & Self Study + +In this tutorial, you worked with simple linear regression, rather than univariate or multiple linear regression. Read a little about the differences between these methods, or take a look at [this video](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) + +Read more about the concept of regression and think about what kinds of questions can be answered by this technique. Take this [tutorial](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-15963-cxa) to deepen your understanding. + +## Assignment + +[A different dataset](assignment.md) From 24442a9c3b8c61eeec639364e1740211b91eb973 Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Fri, 9 Jul 2021 22:04:34 +0800 Subject: [PATCH 009/228] [WIP]translate 2.2 to Simplified Chinese --- .../2-Data/translations/README.zh-cn.md | 200 ++++++++++++++++++ 1 file changed, 200 insertions(+) create mode 100644 2-Regression/2-Data/translations/README.zh-cn.md diff --git a/2-Regression/2-Data/translations/README.zh-cn.md b/2-Regression/2-Data/translations/README.zh-cn.md new file mode 100644 index 00000000..2c7f23ad --- /dev/null +++ b/2-Regression/2-Data/translations/README.zh-cn.md @@ -0,0 +1,200 @@ +# Build a regression model using Scikit-learn: prepare and visualize data + +> ![Data visualization infographic](./images/data-visualization.png) +> Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded) + +## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) + +## Introduction + +Now that you are set up with the tools you need to start tackling machine learning model building with Scikit-learn, you are ready to start asking questions of your data. As you work with data and apply ML solutions, it's very important to understand how to ask the right question to properly unlock the potentials of your dataset. + +In this lesson, you will learn: + +- How to prepare your data for model-building. +- How to use Matplotlib for data visualization. + +## Asking the right question of your data + +The question you need answered will determine what type of ML algorithms you will leverage. And the quality of the answer you get back will be heavily dependent on the nature of your data. + +Take a look at the [data](../data/US-pumpkins.csv) provided for this lesson. You can open this .csv file in VS Code. A quick skim immediately shows that there are blanks and a mix of strings and numeric data. There's also a strange column called 'Package' where the data is a mix between 'sacks', 'bins' and other values. The data, in fact, is a bit of a mess. + +In fact, it is not very common to be gifted a dataset that is completely ready to use to create a ML model out of the box. In this lesson, you will learn how to prepare a raw dataset using standard Python libraries. You will also learn various techniques to visualize the data. + +## Case study: 'the pumpkin market' + +In this folder you will find a .csv file in the root `data` folder called [US-pumpkins.csv](../data/US-pumpkins.csv) which includes 1757 lines of data about the market for pumpkins, sorted into groupings by city. This is raw data extracted from the [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distributed by the United States Department of Agriculture. + +### Preparing data + +This data is in the public domain. It can be downloaded in many separate files, per city, from the USDA web site. To avoid too many separate files, we have concatenated all the city data into one spreadsheet, thus we have already _prepared_ the data a bit. Next, let's take a closer look at the data. + +### The pumpkin data - early conclusions + +What do you notice about this data? You already saw that there is a mix of strings, numbers, blanks and strange values that you need to make sense of. + +What question can you ask of this data, using a Regression technique? What about "Predict the price of a pumpkin for sale during a given month". Looking again at the data, there are some changes you need to make to create the data structure necessary for the task. +## Exercise - analyze the pumpkin data + +Let's use [Pandas](https://pandas.pydata.org/), (the name stands for `Python Data Analysis`) a tool very useful for shaping data, to analyze and prepare this pumpkin data. + +### First, check for missing dates + +You will first need to take steps to check for missing dates: + +1. Convert the dates to a month format (these are US dates, so the format is `MM/DD/YYYY`). +2. Extract the month to a new column. + +Open the _notebook.ipynb_ file in Visual Studio Code and import the spreadsheet in to a new Pandas dataframe. + +1. Use the `head()` function to view the first five rows. + + ```python + import pandas as pd + pumpkins = pd.read_csv('../data/US-pumpkins.csv') + pumpkins.head() + ``` + + ✅ What function would you use to view the last five rows? + +1. Check if there is missing data in the current dataframe: + + ```python + pumpkins.isnull().sum() + ``` + + There is missing data, but maybe it won't matter for the task at hand. + +1. To make your dataframe easier to work with, drop several of its columns, using `drop()`, keeping only the columns you need: + + ```python + new_columns = ['Package', 'Month', 'Low Price', 'High Price', 'Date'] + pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1) + ``` + +### Second, determine average price of pumpkin + +Think about how to determine the average price of a pumpkin in a given month. What columns would you pick for this task? Hint: you'll need 3 columns. + +Solution: take the average of the `Low Price` and `High Price` columns to populate the new Price column, and convert the Date column to only show the month. Fortunately, according to the check above, there is no missing data for dates or prices. + +1. To calculate the average, add the following code: + + ```python + price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2 + + month = pd.DatetimeIndex(pumpkins['Date']).month + + ``` + + ✅ Feel free to print any data you'd like to check using `print(month)`. + +2. Now, copy your converted data into a fresh Pandas dataframe: + + ```python + new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price}) + ``` + + Printing out your dataframe will show you a clean, tidy dataset on which you can build your new regression model. + +### But wait! There's something odd here + +If you look at the `Package` column, pumpkins are sold in many different configurations. Some are sold in '1 1/9 bushel' measures, and some in '1/2 bushel' measures, some per pumpkin, some per pound, and some in big boxes with varying widths. + +> Pumpkins seem very hard to weigh consistently + +Digging into the original data, it's interesting that anything with `Unit of Sale` equalling 'EACH' or 'PER BIN' also have the `Package` type per inch, per bin, or 'each'. Pumpkins seem to be very hard to weigh consistently, so let's filter them by selecting only pumpkins with the string 'bushel' in their `Package` column. + +1. Add a filter at the top of the file, under the initial .csv import: + + ```python + pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)] + ``` + + If you print the data now, you can see that you are only getting the 415 or so rows of data containing pumpkins by the bushel. + +### But wait! There's one more thing to do + +Did you notice that the bushel amount varies per row? You need to normalize the pricing so that you show the pricing per bushel, so do some math to standardize it. + +1. Add these lines after the block creating the new_pumpkins dataframe: + + ```python + new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9) + + new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2) + ``` + +✅ According to [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), a bushel's weight depends on the type of produce, as it's a volume measurement. "A bushel of tomatoes, for example, is supposed to weigh 56 pounds... Leaves and greens take up more space with less weight, so a bushel of spinach is only 20 pounds." It's all pretty complicated! Let's not bother with making a bushel-to-pound conversion, and instead price by the bushel. All this study of bushels of pumpkins, however, goes to show how very important it is to understand the nature of your data! + +Now, you can analyze the pricing per unit based on their bushel measurement. If you print out the data one more time, you can see how it's standardized. + +✅ Did you notice that pumpkins sold by the half-bushel are very expensive? Can you figure out why? Hint: little pumpkins are way pricier than big ones, probably because there are so many more of them per bushel, given the unused space taken by one big hollow pie pumpkin. + +## Visualization Strategies + +Part of the data scientist's role is to demonstrate the quality and nature of the data they are working with. To do this, they often create interesting visualizations, or plots, graphs, and charts, showing different aspects of data. In this way, they are able to visually show relationships and gaps that are otherwise hard to uncover. + +Visualizations can also help determine the machine learning technique most appropriate for the data. A scatterplot that seems to follow a line, for example, indicates that the data is a good candidate for a linear regression exercise. + +One data visualization libary that works well in Jupyter notebooks is [Matplotlib](https://matplotlib.org/) (which you also saw in the previous lesson). + +> Get more experience with data visualization in [these tutorials](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-15963-cxa). + +## Exercise - experiment with Matplotlib + +Try to create some basic plots to display the new dataframe you just created. What would a basic line plot show? + +1. Import Matplotlib at the top of the file, under the Pandas import: + + ```python + import matplotlib.pyplot as plt + ``` + +1. Rerun the entire notebook to refresh. +1. At the bottom of the notebook, add a cell to plot the data as a box: + + ```python + price = new_pumpkins.Price + month = new_pumpkins.Month + plt.scatter(price, month) + plt.show() + ``` + + ![A scatterplot showing price to month relationship](./images/scatterplot.png) + + Is this a useful plot? Does anything about it surprise you? + + It's not particularly useful as all it does is display in your data as a spread of points in a given month. + +### Make it useful + +To get charts to display useful data, you usually need to group the data somehow. Let's try creating a plot where the y axis shows the months and the data demonstrates the distribution of data. + +1. Add a cell to create a grouped bar chart: + + ```python + new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar') + plt.ylabel("Pumpkin Price") + ``` + + ![A bar chart showing price to month relationship](./images/barchart.png) + + This is a more useful data visualization! It seems to indicate that the highest price for pumpkins occurs in September and October. Does that meet your expectation? Why or why not? + +--- + +## 🚀Challenge + +Explore the different types of visualization that Matplotlib offers. Which types are most appropriate for regression problems? + +## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12/) + +## Review & Self Study + +Take a look at the many ways to visualize data. Make a list of the various libraries available and note which are best for given types of tasks, for example 2D visualizations vs. 3D visualizations. What do you discover? + +## Assignment + +[Exploring visualization](assignment.md) From 0a7758e7021c52127eb26ae244b603b02174aa30 Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Sat, 10 Jul 2021 19:53:08 +0700 Subject: [PATCH 010/228] Add Indonesian translation for 1-3 assignment --- .../3-fairness/translations/assignment.id.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/3-fairness/translations/assignment.id.md diff --git a/1-Introduction/3-fairness/translations/assignment.id.md b/1-Introduction/3-fairness/translations/assignment.id.md new file mode 100644 index 00000000..90389a14 --- /dev/null +++ b/1-Introduction/3-fairness/translations/assignment.id.md @@ -0,0 +1,11 @@ +# Jelajahi Fairlearn + +## Instruksi + +Dalam pelajaran ini kamu telah belajar mengenai Fairlearn, sebuah "proyek *open-source* berbasis komunitas untuk membantu para *data scientist* meningkatkan keadilan dari sistem AI." Untuk penugasan kali ini, jelajahi salah satu dari [notebook](https://fairlearn.org/v0.6.2/auto_examples/index.html) yang disediakan Fairlearn dan laporkan penemuanmu dalam sebuah paper atau presentasi. + +## Rubrik + +| Kriteria | Sangat Bagus | Cukup | Perlu Peningkatan | +| -------- | --------- | -------- | ----------------- | +| | Sebuah *paper* atau presentasi powerpoint yang membahas sistem Fairlearn, *notebook* yang dijalankan, dan kesimpulan yang diambil dari hasil menjalankannya | Sebuah paper yang dipresentasikan tanpa kesimpulan | Tidak ada paper yang dipresentasikan | From 6b37df0491615f5285314d42f39971a64bbe251c Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Sun, 11 Jul 2021 20:25:54 +0200 Subject: [PATCH 011/228] Ch2-1 readme completed --- .../1-Tools/translations/README.it.md | 210 ++++++++++++++++++ 2-Regression/translations/README.it.md | 34 +++ 2 files changed, 244 insertions(+) create mode 100644 2-Regression/1-Tools/translations/README.it.md create mode 100644 2-Regression/translations/README.it.md diff --git a/2-Regression/1-Tools/translations/README.it.md b/2-Regression/1-Tools/translations/README.it.md new file mode 100644 index 00000000..94c0a5c6 --- /dev/null +++ b/2-Regression/1-Tools/translations/README.it.md @@ -0,0 +1,210 @@ +# Iniziare con Python e Scikit-learn per i modelli di regressione + +![Sommario delle regressioni in uno sketchnote](../../../sketchnotes/ml-regression.png) + +> Sketchnote di [Tomomi Imura](https://www.twitter.com/girlie_mac) + +## [Qui Pre-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/9/) + +## Introduzione + +In queste quattro lezioni, si scoprirà come costruire modelli di regressione. Si discuterà di cosa siano fra breve. +Prima di tutto, ci si deve assicurare di avere a disposizione gli strumenti adatti per far partire il processo! + +In questa lezione, si imparerà come: + +- Configurare il proprio computer per attività locali di machine learning. +- Lavorare con i Jupyter notebook. +- Usare Scikit-learn, compresa l'installazione. +- Esplorare la regressione lineare con un esercizio pratico. + +## Installazioni e configurazioni + +[![Usare Python con Visual Studio Code](https://img.youtube.com/vi/7EXd4_ttIuw/0.jpg)](https://youtu.be/7EXd4_ttIuw "Using Python with Visual Studio Code") + +> 🎥 Fare click sull'immagine qui sopra per un video: usare Python all'interno di VS Code. + +1. **Installare Python**. Assicurarsi che [Python](https://www.python.org/downloads/) sia installato nel proprio computer. Si userà Python for per molte attività di data science e machine learning. La maggior parte dei sistemi già include una installazione di Python. Ci sono anche utili [Pacchetti di Codice Python](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-15963-cxa) disponbili, per facilitare l'installazione per alcuni utenti. + + Alcuni utilizzi di Python, tuttavia, richiedono una versione del software, laddove altri ne richiedono un'altra differente. Per questa ragione, è utile lavorare con un [ambiente virtuale](https://docs.python.org/3/library/venv.html). + +2. **Installare Visual Studio Code**. Assicurarsi di avere installato Visual Studio Code sul proprio computer. Si seguano queste istruzioni per [installare Visual Studio Code](https://code.visualstudio.com/) per l'installazione basica. Si userà Python in Visual Studio Code in questo corso, quindi meglio rinfrescarsi le idee su come [configurare Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-15963-cxa) per lo sviluppo in Python. + + > Si prenda confidenza con Python tramite questa collezione di [moduli di apprendimento](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-15963-cxa) + +3. **Installare Scikit-learn**, Seguendo [quest istruczionsi](https://scikit-learn.org/stable/install.html). Visto che ci si deve assicurare di usare Python 3, ci si raccomanda di usare un ambiente virtuale. Si noti che se si installa questa libreria in un M1 Mac, ci sono istruzioni speciali nella pagina di cui al riferimento qui sotto. + +1. **Installare Jupyter Notebook**. Servirà [installare il pacchetto Jupyter](https://pypi.org/project/jupyter/). + +## Ambiente di crezione ML + +Si useranno **notebook** per sviluppare il codice Python e creare modelli di machine learning. Questo tipo di file è uno strumento comune per i data scientist, e viene identificato dal suffisso o estensione `.ipynb`. + +I notebook sono un ambiente interattivo che consente allo sviluppatore di scrivere codie, aggiungere note e scrivere documentazione attorno al codice il che è particolarmente utile per progetti sperimentali o orientati alla ricerca. + +### Esercizio - lavorare con un notebook + +In questa cartella, si troverà il file _notebook.ipynb_. + +1. Aprure _notebook.ipynb_ in Visual Studio Code. + + Un server Jupyter verrà lanciato con Python 3+. Si troveranno aree del notebook che possono essere `eseguite`, pezzi di codice. Si può eseguire un blocco di codice selezionando l'icona che assomiglia a un bottone di riproduzione. + +1. Selezionare l'icona `md` e aggiungere un poco di markdown, e il seguente testo **# Benvenuto nel tuo notebook**. + + Poi, aggiungere un blocco di codice Python. + +1. Digitare **print('hello notebook')** nell'area riservata al codice. +1. Selezionare la freccia per eseguire il codice. + + Si dovrebbe vedere stampata la seguente frase: + + ```output + hello notebook + ``` + +![VS Code con un notebook aperto](images/notebook.png) + +Si può inframezzare il codice con commenti per auto documentare il notebook. + +✅ Si pensi per un minuto all'ambiente di lavoro di uno sviluppatore web rispetto a quello di un data scientist. + +## Scikit-learn installato e funzionante + +Adesso che Python è impostato nel proprio ambiente locale, e si è familiari con i notebook Jupyter, si acquisterà ora confidenza con Scikit-learn (si pronuncia con la `si` di `science`). Scikit-learn fornisce una [API estensiva](https://scikit-learn.org/stable/modules/classes.html#api-ref) che aiuta a eseguire attività ML. + +Stando al loro [sito web](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn è una libreria di machine learning open source che supporta l'apprendimento assistito (supervised learning) e non assistito (unsuperivised learnin). Fornisce anche strumenti vari per l'adattamento del modello, la pre-elaborazione dei dati, la selezione e la valutazione dei modelli e molte altre utilità." + +In questo corso, si userà Scikit-learn e altri strumenti per costruire modelli di machine learning per eseguire quelle che vengono chiamate attività di 'machine learning tradizionale'. Si sono deliberamente evitate le reti neurali e il deep learning visto che saranno meglio trattati nel prossimo programma di studi 'AI per Principianti'. + +Scikit-Learn rende semplice costruire modelli e valutarli per l'uso. Si concentra principalmente sull'utilizzo di dati numerici e contiene diversi insiemi di dati già pronti per l'uso come strumenti di apprendimento. Include anche modelli pre-costruiti per gli studenti da provare. Si esplora ora il processo di caricamento dei dati preconfezionati, e utilizzando un modello di stimatore incorporato prima il modello ML con Scikit-Learn con alcuni dati di base. + +# Esercizio - Il Primo notebook Scikit-learn + +> Questo tutorial è stato ispirato dall'[esempio di regressione lineare](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) nel sito web di Scikit-learn. + +Nel file _notebook.ipynb_ associato a questa lezione, svuotare tutte le celle usando l'icona cestino ('trash can'). + +In questa sezione, di lavorerà con un piccolo insieme di dati sul diabete che è incorporato in Scikit-learn per scopi di apprendimento. Si immagini di voler testare un trattamento per i pazienti diabetici. I modelli di machine learning potrebbero essere di aiuto nel determinare quali pazienti risponderebbero meglio al trattamento, in base a combinazioni di variabili. Anche un modello di regressione molto semplice, quando visualizzato, potrebbe mostrare informazioni sulle variabili che aiuteranno a organizzare le proprie sperimentazioni cliniche teoriche. + +✅ Esistono molti tipi di metodi di regressione e quale scegliere dipende dalla risposta che si sta cercando. Se si vuole prevedere l'altezza probabile per una persona di una data età, si dovrebbe usare la regressione lineare, visto che si sta cercando un **valore numerico**. Se si è interessati a scoprire se un tipo di cucina dovrebbe essere considerato vegano o no, si sta cercando un' **assegnazione di categoria** quindi si dovrebbe usare la regressione logistica. Si imparerà di più sulla regressione logistica in seguito. Si pensi ad alcune domande che si possono chiedere ai dati e quale di questi metodi sarebbe più appropriato. + +Si inizia su questo compito. + +### Importare le librerie + +Per questo compito verranno importate alcune librerie: + +- **matplotlib**. E' un utile [strumento grafico](https://matplotlib.org/) e verrà usato per creare una trama a linee. +- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) è una libreira utile per gestire i dati numerici in Python. +- **sklearn**. Questa è la libreria Scikit-learn. + +Importare alcune librerie che saranno di aiuto per le proprie attività. + +1. Con il seguente codice si aggiungono le importazioni: + + ```python + import matplotlib.pyplot as plt + import numpy as np + from sklearn import datasets, linear_model, model_selection + ``` + + Qui sopra vengono importati `matplottlib`, `numpy` da `sklearn` si importa `datasets`, `linear_model` e `model_selection`. `model_selection` viene usato per dividere i dati negli insiemi di addestramento e test. + +### L'insieme di dati riguardante il diabete + +L'[insieme dei dati sul diabetes](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) include 442 campioni di dati sul diabete, con 10 variabili caratteristiche, alcune delle quali includono: + +age (età): età in anni +bmi: indice di massa corporea (body mass index) +bp: media pressione sanguinea +s1 tc: Cellule T (un tipo di leucocito) + +✅ Questo insieme di dati include il concetto di "sesso" come caratteristica variabile importante per la ricerca sul diabete. Molti insiemi di dati medici includono questo tipo di classificazione binaria. Si rifletta su come categorizzazioni come questa potrebbe escludere alcune parti di una popolazione dai trattamenti. + +Ora si caricano i dati di x e y. + +> 🎓 Si ricordi, questo è apprendimento supervisionato (supervised learning), e serve dare un nome all'obiettivo 'y'. + +In una nuova cella di codice, caricare l'insieme di dati sul diabete chiamando `load_diabetes()`. Il parametro `return_X_y=True` segnala che `X` sarà una matrice di dati e `y` sarà l'obiettivo della regressione. + +1. Si aggiungono alcuni comandi di stampa per msotrare la forma della matrice di dati e suoi primi elementi: + + ```python + X, y = datasets.load_diabetes(return_X_y=True) + print(X.shape) + print(X[0]) + ``` + + Quella che viene ritornata è una tuple. Quello che si sta facento è assegnare i primi due valori della tupla a `X` e `y` rispettivamente. Per saperne di più sulle [tuples](https://wikipedia.org/wiki/Tuple). + + Si può vedere che questi dati hanno 442 elementi divisi in array di 10 elementi: + + ```text + (442, 10) + [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 + -0.04340085 -0.00259226 0.01990842 -0.01764613] + ``` + + ✅ Si rifletta sulla relazione tra i dati e l'obiettivo di regressione. La regressione lineare prevede le relazioni tra la caratteristica X e la variabile di destinazione Y. Si può trovare l'[obiettivo](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) per l'insieme di dati sul diabete nella documentazione? Cosa dimostra questo insieme di dati, dato questo obiettivo? + +2. Successivamente, selezionare una porzione di questo insieme di dati da tracciare sistemandola in un nuovo array usando la funzione di numpy's `newaxis`. Verrà usata la regressione lineare per generare una linea tra i quali in questi dati secondo il modello che determina. + + ```python + X = X[:, np.newaxis, 2] + ``` + + ✅ A picere, stampare i dati per verificarne la forma. + +3. Ora che si hanno dei dati pronti per essere tracciati, è possibile vedere se una macchina può aiutare a determinare una divisione logica tra i numeri in questo insieme di dati. Per fare ciò, è necessario dividere sia i dati (x) che l'obiettivo (Y) in insiemi di test e addestamento. Scikit-Learn ha un modo semplice per farlo; si possono dividere i dati di prova in un determinato punto. + + ```python + X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) + ``` + +4. Ora si è pronti ad addestare il modello! Caricare il modello di regressione lineare e addestrarlo con i propri insiemi di addestramento X e y usando `model.fit()`: + + ```python + model = linear_model.LinearRegression() + model.fit(X_train, y_train) + ``` + + ✅ `model.fit()` è una funzione che si vedrà in molte librerie ML tipo TensorFlow + +5. Successivamente creare una previsione usando i dati di test, con la funzione `predict()`. Questo servirà per tracciare la linea tra i gruppi di dati + + ```python + y_pred = model.predict(X_test) + ``` + +6. Ora è il momento di mostrare i dati in un tracciato. Matplotlib è uno strumento molto utile per questo compito.Si crei un grafico a dispersione (scatterplot) di tutti i dati del test X e Y e si utilizzi la previsione per disegnare una linea nel luogo più appropriato, tra i raggruppamenti dei dati del modello. + + ```python + plt.scatter(X_test, y_test, color='black') + plt.plot(X_test, y_pred, color='blue', linewidth=3) + plt.show() + ``` + + ![un grafico a dispersione che mostra i punti dati sul diabete](../images/scatterplot.png) + + ✅ Si pensi a cosa sta succedendo qui. Una linea retta scorre attraverso molti piccoli punti dati, ma cosa sta facendo esattamente? Si può capire come si dovrebbe utilizzare questa linea per prevedere dove un nuovo punto di dati non noto dovrebbe adattarsi alla relazione con l'asse y del tracciato? Si cerchi di mettere in parole l'uso pratico di questo modello. + +Congratulazioni, si è costruito il primo modello di regressione lineare, creato una previsione con esso, e visualizzata in una tracciato! + +--- + +## 🚀Sfida + +Tracciare una variabile diversa da questo insieme di dati. Suggerimento: modificare questa riga: `X = X[:, np.newaxis, 2]`. Dato l'obiettivo di questo insieme di dati, cosa si potrebbe riuscire a scoprire circa la progressione del diabete come matattia? + +## [Qui post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/10/) + +## Revisione e Auto Apprendimento + +In questo tutorial, si è lavorato con una semplice regressione lineare, piuttosto che un regressione univariata o multipla. Si legga circa le differenze tra questi metodi oppure si dia uno sguardo a [questo video](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) + +Si legga di più sul concetto di regressione e si pensi a quale tipo di domande potrebbero trovare risposta con questa tecnica. Seguire questo [tutorial](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-15963-cxa) per approfondire la propria conoscenza. + +## Compito + +[Un insieme di dati diverso](assignment.md) diff --git a/2-Regression/translations/README.it.md b/2-Regression/translations/README.it.md new file mode 100644 index 00000000..19e0100b --- /dev/null +++ b/2-Regression/translations/README.it.md @@ -0,0 +1,34 @@ +# Modelli di regressione per machine learning + +## Argomento regionale: modelli di Regressione per i prezzi della zucca in Nord America 🎃 + +In Nord America, le zucche sono spesso intagliate in facce spaventose per Halloween. Si scoprirà di più su queste affascinanti verdure! + +![jack-o-lantern](../images/jack-o-lanterns.jpg) +> Foto di Beth Teutschmann su Unsplash + +## Cosa si imparerà + +Le lezioni in questa sezione riguardano i tipi di regressione nel contesto di machine learning. I modelli di regressione possono aiutare a determinare la _relazione_ tra le variabili. Questo tipo di modello può prevedere valori come lunghezza, temperatura o età, scoprendo così le relazioni tra le variabili mentre analizza i punti dati. + +In questa serie di lezioni si scoprirà la differenza tra regressione lineare e regressione logistica e quando si dovrebbe usare l'una o l'altra. + +In questo gruppo di lezioni si imposterà una configurazione per iniziare le attività di machine learning, inclusa la configurazione di Visual Studio Code per gestire i notebook, l'ambiente comune per i data scientist. Si scoprirà Scikit-learn, una libreria per machine learning, e si creeranno i primi modelli, concentrandosi in questo capitolo sui modelli di Regressione. + +> Esistono utili strumenti a basso codice che possono aiutare a imparare a lavorare con i modelli di regressione. Si provi [Azure Machine Learning per questa attività](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) + +### Lezioni + +1. [Gli Attrezzi Necessari](1-Tools/README.md) +2. [Gestione dati](2-Data/README.md) +3. [Regressione lineare e polinomiale](3-Linear/README.md) +4. [Regressione logistica](4-Logistic/README.md) + +--- +### Crediti + +"ML con regressione" scritto con ♥️ da [Jen Looper](https://twitter.com/jenlooper) + +♥️ I collaboratori del quiz includono: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) e [Ornella Altunyan](https://twitter.com/ornelladotcom) + +L'insieme di dati relativi alla zucca è suggerito da [questo progetto su](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) Kaggle e i suoi dati provengono dai [Rapporti Standard sui Mercati Terminali delle Colture Speciali](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distribuiti dal Dipartimento dell'Agricoltura degli Stati Uniti. Sono stati aggiunti alcuni punti intorno al colore in base alla varietà per normalizzare la distribuzione. Questi dati sono di pubblico dominio. From 62eb776b7fe94d86c9c1585cafaa0e9e6a031161 Mon Sep 17 00:00:00 2001 From: kenya-sk Date: Mon, 12 Jul 2021 23:59:13 +0900 Subject: [PATCH 012/228] add japanese translation of 2-Regression/2-Data --- 2-Regression/2-Data/translations/README.ja.md | 144 +++++++++--------- 1 file changed, 74 insertions(+), 70 deletions(-) diff --git a/2-Regression/2-Data/translations/README.ja.md b/2-Regression/2-Data/translations/README.ja.md index 122d5bad..77807478 100644 --- a/2-Regression/2-Data/translations/README.ja.md +++ b/2-Regression/2-Data/translations/README.ja.md @@ -1,55 +1,55 @@ # Scikit-learnを用いた回帰モデルの構築: データの準備と可視化 -> ![Data visualization infographic](../images/data-visualization.png) +> ![データの可視化に関するインフォグラフィック](../images/data-visualization.png) > [Dasani Madipalli](https://twitter.com/dasani_decoded) によるインフォグラフィック ## [講義前のクイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) ## イントロダクション -Now that you are set up with the tools you need to start tackling machine learning model building with Scikit-learn, you are ready to start asking questions of your data. As you work with data and apply ML solutions, it's very important to understand how to ask the right question to properly unlock the potentials of your dataset. - +Scikit-learnを使って機械学習モデルの構築を行うために必要なツールの用意ができたところで、データに対する問いかけを始める準備が整いました。データを扱いMLソリューションを適用する際には、データセットの潜在能力を適切に引き出すために正しい問いかけをすることが非常に重要です。 このレッスンでは、以下のことを学びます。 - モデルを構築するためのデータ処理方法について - データの可視化におけるMatplotlibの使い方について -## Asking the right question of your data +## データに対して正しい問いかけをする + +どのような質問に答えるかによって、どのようなMLアルゴリズムを活用するかが決まります。また、返ってくる回答の質は、データの性質に大きく依存します。 -The question you need answered will determine what type of ML algorithms you will leverage. And the quality of the answer you get back will be heavily dependent on the nature of your data. +このレッスンのために用意された[データ]((../../data/US-pumpkins.csv))を見てみましょう。この.csvファイルは、VS Codeで開くことができます。ざっと確認してみると、空欄があったり、文字列や数値データが混在していることがわかります。また、'Package'という奇妙な列では 'sacks' や 'bins' などの異なる単位の値が混在しています。このように、データはちょっとした混乱状態にあります。 -Take a look at the [data](../data/US-pumpkins.csv) provided for this lesson. You can open this .csv file in VS Code. A quick skim immediately shows that there are blanks and a mix of strings and numeric data. There's also a strange column called 'Package' where the data is a mix between 'sacks', 'bins' and other values. The data, in fact, is a bit of a mess. +実際のところ、MLモデルの作成にすぐに使えるような整ったデータセットをそのまま受け取ることはあまりありません。このレッスンでは、Pythonの標準ライブラリを使って生のデータセットを準備する方法を学びます。また、データを可視化するための様々なテクニックを学びます。 -In fact, it is not very common to be gifted a dataset that is completely ready to use to create a ML model out of the box. In this lesson, you will learn how to prepare a raw dataset using standard Python libraries. You will also learn various techniques to visualize the data. +## ケーススタディ: カボチャの市場 -## Case study: 'the pumpkin market' +ルートの`date`フォルダの中に [US-pumpkins.csv](../../data/US-pumpkins.csv) という名前の.csvファイルがあります。このファイルには、カボチャの市場に関する1757行のデータが、都市ごとにグループ分けされて入っています。これは、米国農務省が配布している [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) から抽出した生データです。 -In this folder you will find a .csv file in the root `data` folder called [US-pumpkins.csv](../data/US-pumpkins.csv) which includes 1757 lines of data about the market for pumpkins, sorted into groupings by city. This is raw data extracted from the [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distributed by the United States Department of Agriculture. +### データの準備 -### Preparing data +このデータはパブリックドメインです。米国農務省のウェブサイトから、都市ごとに個別ファイルをダウンロードすることができます。ファイルが多くなりすぎないように、すべての都市のデータを1つのスプレッドシートに連結しました。次に、データを詳しく見てみましょう。 -This data is in the public domain. It can be downloaded in many separate files, per city, from the USDA web site. To avoid too many separate files, we have concatenated all the city data into one spreadsheet, thus we have already _prepared_ the data a bit. Next, let's take a closer look at the data. +### カボチャのデータ - 初期の結論 -### The pumpkin data - early conclusions +このデータについて何か気付いたことはありますか?文字列、数字、空白、奇妙な値が混在していて、意味を理解しなければならないこと気付いたと思います。 -What do you notice about this data? You already saw that there is a mix of strings, numbers, blanks and strange values that you need to make sense of. +回帰を使って、このデータにどのような問いかけができますか?「ある月に販売されるカボチャの価格を予測する」というのはどうでしょうか?データをもう一度見てみると、この課題に必要なデータ構造を作るために、いくつかの変更が必要です。 -What question can you ask of this data, using a Regression technique? What about "Predict the price of a pumpkin for sale during a given month". Looking again at the data, there are some changes you need to make to create the data structure necessary for the task. -## Exercise - analyze the pumpkin data +## エクササイズ - カボチャのデータを分析 -Let's use [Pandas](https://pandas.pydata.org/), (the name stands for `Python Data Analysis`) a tool very useful for shaping data, to analyze and prepare this pumpkin data. +データを整形するのに非常に便利な [Pandas](https://pandas.pydata.org/) (Python Data Analysisの略) を使って、このカボチャのデータを分析したり整えてみましょう。 -### First, check for missing dates +### 最初に、日付が欠損していないか確認する -You will first need to take steps to check for missing dates: +日付が欠損していないか確認するために、いくつかのステップがあります: -1. Convert the dates to a month format (these are US dates, so the format is `MM/DD/YYYY`). -2. Extract the month to a new column. +1. 日付を月の形式に変換する(これは米国の日付なので、形式は `MM/DD/YYYY` となる)。 +2. 新しい列として月を抽出する。 -Open the _notebook.ipynb_ file in Visual Studio Code and import the spreadsheet in to a new Pandas dataframe. +Visual Studio Codeで _notebook.ipynb_ ファイルを開き、スプレッドシートを Pandas DataFrame としてインポートします。 -1. Use the `head()` function to view the first five rows. +1. `head()` 関数を使って最初の5行を確認します。 ```python import pandas as pd @@ -57,30 +57,32 @@ Open the _notebook.ipynb_ file in Visual Studio Code and import the spreadsheet pumpkins.head() ``` - ✅ What function would you use to view the last five rows? + ✅ 最後の5行を表示するには、どのような関数を使用しますか? + -1. Check if there is missing data in the current dataframe: +1. 現在のデータフレームに欠損データがあるかどうかをチェックします。 ```python pumpkins.isnull().sum() ``` - There is missing data, but maybe it won't matter for the task at hand. + 欠損データがありましたが、今回のタスクには影響がなさそうです。 -1. To make your dataframe easier to work with, drop several of its columns, using `drop()`, keeping only the columns you need: + +1. データフレームを扱いやすくするために、`drop()` 関数を使っていくつかの列を削除し、必要な列だけを残すようにします。 ```python new_columns = ['Package', 'Month', 'Low Price', 'High Price', 'Date'] pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1) ``` -### Second, determine average price of pumpkin +### 次に、カボチャの平均価格を決定します。 -Think about how to determine the average price of a pumpkin in a given month. What columns would you pick for this task? Hint: you'll need 3 columns. +ある月のかぼちゃの平均価格を決定する方法を考えてみましょう。このタスクのために、どの列が必要ですか?ヒント:3つの列が必要になります。 -Solution: take the average of the `Low Price` and `High Price` columns to populate the new Price column, and convert the Date column to only show the month. Fortunately, according to the check above, there is no missing data for dates or prices. +解決策:「最低価格」と「最高価格」の平均値を取って新しい「price」列を作成し、「日付」列を月のみ表示するように変換します。幸いなことに、上記で確認した結果によると日付や価格に欠損データはありませんでした。 -1. To calculate the average, add the following code: +1. 平均値を算出するために、以下のコードを追加します。 ```python price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2 @@ -89,37 +91,39 @@ Solution: take the average of the `Low Price` and `High Price` columns to popula ``` - ✅ Feel free to print any data you'd like to check using `print(month)`. + ✅ `print(month)` などを使って自由にデータを確認してみてください。 + -2. Now, copy your converted data into a fresh Pandas dataframe: +2. 変換したデータをPandasの新しいデータフレームにコピーします。 ```python new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price}) ``` - Printing out your dataframe will show you a clean, tidy dataset on which you can build your new regression model. + データフレームを出力すると、新しい回帰モデルを構築するための綺麗に整頓されたデータセットが表示されます。 + +### でも、待ってください!なにかおかしいです。 -### But wait! There's something odd here +`Package` 列をみると、カボチャは様々な形で販売されています。「1 1/9ブッシェル」で売られているもの、「1/2ブッシェル」で売られているもの、かぼちゃ1個単位で売られているもの、1ポンド単位で売られているもの、幅の違う大きな箱で売られているものなど様々です。 -If you look at the `Package` column, pumpkins are sold in many different configurations. Some are sold in '1 1/9 bushel' measures, and some in '1/2 bushel' measures, some per pumpkin, some per pound, and some in big boxes with varying widths. -> Pumpkins seem very hard to weigh consistently +> かぼちゃの重さを一定にするのはとても難しいようです。 -Digging into the original data, it's interesting that anything with `Unit of Sale` equalling 'EACH' or 'PER BIN' also have the `Package` type per inch, per bin, or 'each'. Pumpkins seem to be very hard to weigh consistently, so let's filter them by selecting only pumpkins with the string 'bushel' in their `Package` column. +元のデータを調べてみると、「Unit of Sale」が「EACH」または「PER BIN」となっているものは、「Package」が「per inch」、「per bin」、「each」となっているのが興味深いです。カボチャの計量単位に一貫性を持たせるのが非常に難しいようなので、`Package`列に「bushel」という文字列を持つカボチャだけを選択してフィルタリングしてみましょう。 -1. Add a filter at the top of the file, under the initial .csv import: +1. ファイルの一番上にフィルタを追加します。 ```python pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)] ``` - If you print the data now, you can see that you are only getting the 415 or so rows of data containing pumpkins by the bushel. + 今、データを出力してみると、ブッシェル単位のカボチャを含む415行ほどのデータしか得られていないことがわかります。 -### But wait! There's one more thing to do +### でも、待ってください!もうひとつ、やるべきことがあります。 -Did you notice that the bushel amount varies per row? You need to normalize the pricing so that you show the pricing per bushel, so do some math to standardize it. +行ごとにブッシェルの量が異なることに気付きましたか?1ブッシェルあたりの価格を表示するためには、計算して価格を標準化する必要があります。 -1. Add these lines after the block creating the new_pumpkins dataframe: +1. new_pumpkinsデータフレームを作成するブロックの後に以下の行を追加します。 ```python new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9) @@ -127,34 +131,34 @@ Did you notice that the bushel amount varies per row? You need to normalize the new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2) ``` -✅ According to [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), a bushel's weight depends on the type of produce, as it's a volume measurement. "A bushel of tomatoes, for example, is supposed to weigh 56 pounds... Leaves and greens take up more space with less weight, so a bushel of spinach is only 20 pounds." It's all pretty complicated! Let's not bother with making a bushel-to-pound conversion, and instead price by the bushel. All this study of bushels of pumpkins, however, goes to show how very important it is to understand the nature of your data! +✅ [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308) によると、ブッシェルの重さは体積を測るものなので、農産物の種類によって異なります。例えば、トマトの1ブッシェルは、56ポンドの重さになるとされています。葉っぱや野菜は重量が少なくてもスペースを取るので、ほうれん草の1ブッシェルはたったの20ポンドです。なんだか複雑ですね!ブッシェルからポンドへの換算は面倒なのでやめて、ブッシェル単位で価格を決めましょう。しかし、カボチャのブッシェルについての議論は、データの性質を理解することがいかに重要であるかを示しています。 -Now, you can analyze the pricing per unit based on their bushel measurement. If you print out the data one more time, you can see how it's standardized. +これで、ブッシェルの測定値に基づいて、ユニットごとの価格を分析することができます。もう1度データを出力してみると、標準化されていることがわかります。 -✅ Did you notice that pumpkins sold by the half-bushel are very expensive? Can you figure out why? Hint: little pumpkins are way pricier than big ones, probably because there are so many more of them per bushel, given the unused space taken by one big hollow pie pumpkin. +✅ ハーフブッシェルで売られているカボチャがとても高価なことに気付きましたか?なぜだかわかりますか?小さなカボチャは大きなカボチャよりもはるかに高価です。おそらく大きなカボチャ中身には、体積あたりで考えると空洞な部分が多く含まれると考えられます。 -## Visualization Strategies +## 可視化戦略 -Part of the data scientist's role is to demonstrate the quality and nature of the data they are working with. To do this, they often create interesting visualizations, or plots, graphs, and charts, showing different aspects of data. In this way, they are able to visually show relationships and gaps that are otherwise hard to uncover. +データサイエンティストの役割の一つは、扱うデータの質や性質を示すことです。そのために、データのさまざまな側面を示す興味深いビジュアライゼーション(プロット、グラフ、チャート)を作成することがよくあります。そうすることで、他の方法では発見しにくい関係性やギャップを視覚的に示すことができます。 -Visualizations can also help determine the machine learning technique most appropriate for the data. A scatterplot that seems to follow a line, for example, indicates that the data is a good candidate for a linear regression exercise. +また、可視化することでデータに適した機械学習の手法を判断することができます。例えば、散布図が直線に沿っているように見える場合は、線形回帰が適用する手法の良い候補の一つとして考えられます。 -One data visualization libary that works well in Jupyter notebooks is [Matplotlib](https://matplotlib.org/) (which you also saw in the previous lesson). +Jupyter notebookでうまく利用できるテータ可視化ライブラリの一つに [Matplotlib](https://matplotlib.org/) があります (前のレッスンでも紹介しています)。 -> Get more experience with data visualization in [these tutorials](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-15963-cxa). +> [こちらのチュートリアル](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-15963-cxa) でデータの可視化ついてより深く体験することができます。 -## Exercise - experiment with Matplotlib +## エクササイズ - Matplotlibの実験 -Try to create some basic plots to display the new dataframe you just created. What would a basic line plot show? +先ほど作成したデータフレームを表示するために、いくつか基本的なプロットを作成してみてください。折れ線グラフから何が読み取れるでしょうか? -1. Import Matplotlib at the top of the file, under the Pandas import: +1. ファイルの先頭、Pandasのインポートの下で Matplotlibをインポートします。 ```python import matplotlib.pyplot as plt ``` -1. Rerun the entire notebook to refresh. -1. At the bottom of the notebook, add a cell to plot the data as a box: +1. ノートブック全体を再実行してリフレッシュします。 +2. ノートブックの下部に、データをプロットするためのセルを追加します。 ```python price = new_pumpkins.Price @@ -163,39 +167,39 @@ Try to create some basic plots to display the new dataframe you just created. Wh plt.show() ``` - ![A scatterplot showing price to month relationship](../images/scatterplot.png) + ![価格と月の関係を示す散布図](../images/scatterplot.png) - Is this a useful plot? Does anything about it surprise you? + これは役に立つプロットですか?なにか驚いたことはありますか? - It's not particularly useful as all it does is display in your data as a spread of points in a given month. + これはデータをある月についてデータの広がりとして表示しているだけなので、特に役に立つものではありません。 -### Make it useful +### 活用できるようにする -To get charts to display useful data, you usually need to group the data somehow. Let's try creating a plot where the y axis shows the months and the data demonstrates the distribution of data. +グラフに有用なデータを表示するには、通常、データを何らかの方法でグループ化する必要があります。ここでは、X軸で月を表し、データの分布を示すようなプロットを作ってみましょう。 -1. Add a cell to create a grouped bar chart: +1. セルを追加してグループ化された棒グラフを作成します。 ```python new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar') plt.ylabel("Pumpkin Price") ``` - ![A bar chart showing price to month relationship](../images/barchart.png) + ![値段と月の関係を表した棒グラフ](../images/barchart.png) - This is a more useful data visualization! It seems to indicate that the highest price for pumpkins occurs in September and October. Does that meet your expectation? Why or why not? + このプロットの方が、より有用なデータを可視化しています!カボチャの価格が最も高くなるのは、9月と10月であることを示しているようです。このプロットはあなたの期待に応えるものですか?どのような点で期待通りですか?また、どのような点で期待に答えられていませんか? --- -## 🚀Challenge +## 🚀チャレンジ -Explore the different types of visualization that Matplotlib offers. Which types are most appropriate for regression problems? +Matplotlibが提供する様々なタイプのビジュアライゼーションを探ってみましょう。回帰の問題にはどのタイプが最も適しているでしょうか? -## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12/) +## [講義後クイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12/) -## Review & Self Study +## レビュー & 自主学習 -Take a look at the many ways to visualize data. Make a list of the various libraries available and note which are best for given types of tasks, for example 2D visualizations vs. 3D visualizations. What do you discover? +データを可視化するための様々な方法を見てみましょう。様々なライブラリをリストアップし、例えば2Dビジュアライゼーションと3Dビジュアライゼーションのように、特定のタイプのタスクに最適なものをメモします。どのような発見がありましたか? -## Assignment +## 課題 -[Exploring visualization](assignment.md) +[ビジュアライゼーションの探求](assignment.md) From 3360c6716d6a9c033435c26c3e55036491868e8f Mon Sep 17 00:00:00 2001 From: kenya-sk Date: Tue, 13 Jul 2021 00:10:12 +0900 Subject: [PATCH 013/228] add japanese translation of 2-Regression/2-Data --- 2-Regression/2-Data/translations/README.ja.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/2-Regression/2-Data/translations/README.ja.md b/2-Regression/2-Data/translations/README.ja.md index 77807478..1570be3c 100644 --- a/2-Regression/2-Data/translations/README.ja.md +++ b/2-Regression/2-Data/translations/README.ja.md @@ -1,6 +1,7 @@ # Scikit-learnを用いた回帰モデルの構築: データの準備と可視化 > ![データの可視化に関するインフォグラフィック](../images/data-visualization.png) +> > [Dasani Madipalli](https://twitter.com/dasani_decoded) によるインフォグラフィック ## [講義前のクイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) @@ -18,7 +19,7 @@ Scikit-learnを使って機械学習モデルの構築を行うために必要 どのような質問に答えるかによって、どのようなMLアルゴリズムを活用するかが決まります。また、返ってくる回答の質は、データの性質に大きく依存します。 -このレッスンのために用意された[データ]((../../data/US-pumpkins.csv))を見てみましょう。この.csvファイルは、VS Codeで開くことができます。ざっと確認してみると、空欄があったり、文字列や数値データが混在していることがわかります。また、'Package'という奇妙な列では 'sacks' や 'bins' などの異なる単位の値が混在しています。このように、データはちょっとした混乱状態にあります。 +このレッスンのために用意された[データ]((../../data/US-pumpkins.csv))を見てみましょう。この.csvファイルは、VS Codeで開くことができます。ざっと確認してみると、空欄があったり、文字列や数値データが混在していることがわかります。また、「Package」という奇妙な列では「sacks」や 「bins」などの異なる単位の値が混在しています。このように、データはちょっとした混乱状態にあります。 実際のところ、MLモデルの作成にすぐに使えるような整ったデータセットをそのまま受け取ることはあまりありません。このレッスンでは、Pythonの標準ライブラリを使って生のデータセットを準備する方法を学びます。また、データを可視化するための様々なテクニックを学びます。 @@ -141,7 +142,7 @@ Visual Studio Codeで _notebook.ipynb_ ファイルを開き、スプレッド データサイエンティストの役割の一つは、扱うデータの質や性質を示すことです。そのために、データのさまざまな側面を示す興味深いビジュアライゼーション(プロット、グラフ、チャート)を作成することがよくあります。そうすることで、他の方法では発見しにくい関係性やギャップを視覚的に示すことができます。 -また、可視化することでデータに適した機械学習の手法を判断することができます。例えば、散布図が直線に沿っているように見える場合は、線形回帰が適用する手法の良い候補の一つとして考えられます。 +また、可視化することでデータに適した機械学習の手法を判断することができます。例えば、散布図が直線に沿っているように見える場合は、適用する手法の候補の一つとして線形回帰が考えられます。 Jupyter notebookでうまく利用できるテータ可視化ライブラリの一つに [Matplotlib](https://matplotlib.org/) があります (前のレッスンでも紹介しています)。 @@ -171,11 +172,11 @@ Jupyter notebookでうまく利用できるテータ可視化ライブラリの これは役に立つプロットですか?なにか驚いたことはありますか? - これはデータをある月についてデータの広がりとして表示しているだけなので、特に役に立つものではありません。 + これはデータをある月について、データの広がりとして表示しているだけなので、特に役に立つものではありません。 ### 活用できるようにする -グラフに有用なデータを表示するには、通常、データを何らかの方法でグループ化する必要があります。ここでは、X軸で月を表し、データの分布を示すようなプロットを作ってみましょう。 +グラフに有用なデータを表示するには、通常、データを何らかの方法でグループ化する必要があります。ここでは、X軸を月として、データの分布を示すようなプロットを作ってみましょう。 1. セルを追加してグループ化された棒グラフを作成します。 From 4be82a4530c550a5b404fa6ded6ec0e82a8c83a9 Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Mon, 12 Jul 2021 19:56:29 +0200 Subject: [PATCH 014/228] Ch2-1 readme/assignment translation completed --- .../1-Tools/translations/README.it.md | 55 ++++++++++--------- .../1-Tools/translations/assignment.it.md | 13 +++++ 2 files changed, 41 insertions(+), 27 deletions(-) create mode 100644 2-Regression/1-Tools/translations/assignment.it.md diff --git a/2-Regression/1-Tools/translations/README.it.md b/2-Regression/1-Tools/translations/README.it.md index 94c0a5c6..48c61d34 100644 --- a/2-Regression/1-Tools/translations/README.it.md +++ b/2-Regression/1-Tools/translations/README.it.md @@ -32,21 +32,21 @@ In questa lezione, si imparerà come: > Si prenda confidenza con Python tramite questa collezione di [moduli di apprendimento](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-15963-cxa) -3. **Installare Scikit-learn**, Seguendo [quest istruczionsi](https://scikit-learn.org/stable/install.html). Visto che ci si deve assicurare di usare Python 3, ci si raccomanda di usare un ambiente virtuale. Si noti che se si installa questa libreria in un M1 Mac, ci sono istruzioni speciali nella pagina di cui al riferimento qui sotto. +3. **Installare Scikit-learn**, seguendo [queste istruzioni](https://scikit-learn.org/stable/install.html). Visto che ci si deve assicurare di usare Python 3, ci si raccomanda di usare un ambiente virtuale. Si noti che se si installa questa libreria in un M1 Mac, ci sono istruzioni speciali nella pagina di cui al riferimento qui sopra. 1. **Installare Jupyter Notebook**. Servirà [installare il pacchetto Jupyter](https://pypi.org/project/jupyter/). -## Ambiente di crezione ML +## Ambiente di creazione ML Si useranno **notebook** per sviluppare il codice Python e creare modelli di machine learning. Questo tipo di file è uno strumento comune per i data scientist, e viene identificato dal suffisso o estensione `.ipynb`. -I notebook sono un ambiente interattivo che consente allo sviluppatore di scrivere codie, aggiungere note e scrivere documentazione attorno al codice il che è particolarmente utile per progetti sperimentali o orientati alla ricerca. +I notebook sono un ambiente interattivo che consente allo sviluppatore di scrivere codice, aggiungere note e scrivere documentazione attorno al codice il che è particolarmente utile per progetti sperimentali o orientati alla ricerca. ### Esercizio - lavorare con un notebook In questa cartella, si troverà il file _notebook.ipynb_. -1. Aprure _notebook.ipynb_ in Visual Studio Code. +1. Aprire _notebook.ipynb_ in Visual Studio Code. Un server Jupyter verrà lanciato con Python 3+. Si troveranno aree del notebook che possono essere `eseguite`, pezzi di codice. Si può eseguire un blocco di codice selezionando l'icona che assomiglia a un bottone di riproduzione. @@ -63,7 +63,7 @@ In questa cartella, si troverà il file _notebook.ipynb_. hello notebook ``` -![VS Code con un notebook aperto](images/notebook.png) +![VS Code con un notebook aperto](../images/notebook.png) Si può inframezzare il codice con commenti per auto documentare il notebook. @@ -71,25 +71,25 @@ Si può inframezzare il codice con commenti per auto documentare il notebook. ## Scikit-learn installato e funzionante -Adesso che Python è impostato nel proprio ambiente locale, e si è familiari con i notebook Jupyter, si acquisterà ora confidenza con Scikit-learn (si pronuncia con la `si` di `science`). Scikit-learn fornisce una [API estensiva](https://scikit-learn.org/stable/modules/classes.html#api-ref) che aiuta a eseguire attività ML. +Adesso che Python è impostato nel proprio ambiente locale, e si è familiari con i notebook Jupyter, si acquisterà ora confidenza con Scikit-learn (si pronuncia con la `si` della parola inglese `science`). Scikit-learn fornisce una [API estensiva](https://scikit-learn.org/stable/modules/classes.html#api-ref) che aiuta a eseguire attività ML. Stando al loro [sito web](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn è una libreria di machine learning open source che supporta l'apprendimento assistito (supervised learning) e non assistito (unsuperivised learnin). Fornisce anche strumenti vari per l'adattamento del modello, la pre-elaborazione dei dati, la selezione e la valutazione dei modelli e molte altre utilità." In questo corso, si userà Scikit-learn e altri strumenti per costruire modelli di machine learning per eseguire quelle che vengono chiamate attività di 'machine learning tradizionale'. Si sono deliberamente evitate le reti neurali e il deep learning visto che saranno meglio trattati nel prossimo programma di studi 'AI per Principianti'. -Scikit-Learn rende semplice costruire modelli e valutarli per l'uso. Si concentra principalmente sull'utilizzo di dati numerici e contiene diversi insiemi di dati già pronti per l'uso come strumenti di apprendimento. Include anche modelli pre-costruiti per gli studenti da provare. Si esplora ora il processo di caricamento dei dati preconfezionati, e utilizzando un modello di stimatore incorporato prima il modello ML con Scikit-Learn con alcuni dati di base. +Scikit-learn rende semplice costruire modelli e valutarli per l'uso. Si concentra principalmente sull'utilizzo di dati numerici e contiene diversi insiemi di dati già pronti per l'uso come strumenti di apprendimento. Include anche modelli pre-costruiti per gli studenti da provare. Si esplora ora il processo di caricamento dei dati preconfezionati, e, utilizzando un modello di stimatore incorporato, un primo modello ML con Scikit-Learn con alcuni dati di base. -# Esercizio - Il Primo notebook Scikit-learn +## Esercizio - Il Primo notebook Scikit-learn > Questo tutorial è stato ispirato dall'[esempio di regressione lineare](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) nel sito web di Scikit-learn. Nel file _notebook.ipynb_ associato a questa lezione, svuotare tutte le celle usando l'icona cestino ('trash can'). -In questa sezione, di lavorerà con un piccolo insieme di dati sul diabete che è incorporato in Scikit-learn per scopi di apprendimento. Si immagini di voler testare un trattamento per i pazienti diabetici. I modelli di machine learning potrebbero essere di aiuto nel determinare quali pazienti risponderebbero meglio al trattamento, in base a combinazioni di variabili. Anche un modello di regressione molto semplice, quando visualizzato, potrebbe mostrare informazioni sulle variabili che aiuteranno a organizzare le proprie sperimentazioni cliniche teoriche. +In questa sezione, di lavorerà con un piccolo insieme di dati sul diabete che è incorporato in Scikit-learn per scopi di apprendimento. Si immagini di voler testare un trattamento per i pazienti diabetici. I modelli di machine learning potrebbero essere di aiuto nel determinare quali pazienti risponderebbero meglio al trattamento, in base a combinazioni di variabili. Anche un modello di regressione molto semplice, quando visualizzato, potrebbe mostrare informazioni sulle variabili che aiuteranno a organizzare le sperimentazioni cliniche teoriche. -✅ Esistono molti tipi di metodi di regressione e quale scegliere dipende dalla risposta che si sta cercando. Se si vuole prevedere l'altezza probabile per una persona di una data età, si dovrebbe usare la regressione lineare, visto che si sta cercando un **valore numerico**. Se si è interessati a scoprire se un tipo di cucina dovrebbe essere considerato vegano o no, si sta cercando un' **assegnazione di categoria** quindi si dovrebbe usare la regressione logistica. Si imparerà di più sulla regressione logistica in seguito. Si pensi ad alcune domande che si possono chiedere ai dati e quale di questi metodi sarebbe più appropriato. +✅ Esistono molti tipi di metodi di regressione e quale scegliere dipende dalla risposta che si sta cercando. Se si vuole prevedere l'altezza probabile per una persona di una data età, si dovrebbe usare la regressione lineare, visto che si sta cercando un **valore numerico**. Se si è interessati a scoprire se un tipo di cucina dovrebbe essere considerato vegano o no, si sta cercando un'**assegnazione di categoria** quindi si dovrebbe usare la regressione logistica. Si imparerà di più sulla regressione logistica in seguito. Si pensi ad alcune domande che si possono chiedere ai dati e quale di questi metodi sarebbe più appropriato. -Si inizia su questo compito. +Si inizia con questa attività. ### Importare le librerie @@ -109,26 +109,26 @@ Importare alcune librerie che saranno di aiuto per le proprie attività. from sklearn import datasets, linear_model, model_selection ``` - Qui sopra vengono importati `matplottlib`, `numpy` da `sklearn` si importa `datasets`, `linear_model` e `model_selection`. `model_selection` viene usato per dividere i dati negli insiemi di addestramento e test. + Qui sopra vengono importati `matplottlib`, e `numpy`, da `sklearn` si importa `datasets`, `linear_model` e `model_selection`. `model_selection` viene usato per dividere i dati negli insiemi di addestramento e test. ### L'insieme di dati riguardante il diabete -L'[insieme dei dati sul diabetes](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) include 442 campioni di dati sul diabete, con 10 variabili caratteristiche, alcune delle quali includono: +L'[insieme dei dati sul diabete](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) include 442 campioni di dati sul diabete, con 10 variabili caratteristiche, alcune delle quali includono: -age (età): età in anni -bmi: indice di massa corporea (body mass index) -bp: media pressione sanguinea -s1 tc: Cellule T (un tipo di leucocito) +- age (età): età in anni +- bmi: indice di massa corporea (body mass index) +- bp: media pressione sanguinea +- s1 tc: Cellule T (un tipo di leucocito) ✅ Questo insieme di dati include il concetto di "sesso" come caratteristica variabile importante per la ricerca sul diabete. Molti insiemi di dati medici includono questo tipo di classificazione binaria. Si rifletta su come categorizzazioni come questa potrebbe escludere alcune parti di una popolazione dai trattamenti. -Ora si caricano i dati di x e y. +Ora si caricano i dati di X e y. > 🎓 Si ricordi, questo è apprendimento supervisionato (supervised learning), e serve dare un nome all'obiettivo 'y'. In una nuova cella di codice, caricare l'insieme di dati sul diabete chiamando `load_diabetes()`. Il parametro `return_X_y=True` segnala che `X` sarà una matrice di dati e `y` sarà l'obiettivo della regressione. -1. Si aggiungono alcuni comandi di stampa per msotrare la forma della matrice di dati e suoi primi elementi: +1. Si aggiungono alcuni comandi di stampa per msotrare la forma della matrice di dati e i suoi primi elementi: ```python X, y = datasets.load_diabetes(return_X_y=True) @@ -146,17 +146,17 @@ In una nuova cella di codice, caricare l'insieme di dati sul diabete chiamando ` -0.04340085 -0.00259226 0.01990842 -0.01764613] ``` - ✅ Si rifletta sulla relazione tra i dati e l'obiettivo di regressione. La regressione lineare prevede le relazioni tra la caratteristica X e la variabile di destinazione Y. Si può trovare l'[obiettivo](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) per l'insieme di dati sul diabete nella documentazione? Cosa dimostra questo insieme di dati, dato questo obiettivo? + ✅ Si rifletta sulla relazione tra i dati e l'obiettivo di regressione. La regressione lineare prevede le relazioni tra la caratteristica X e la variabile di destinazione y. Si può trovare l'[obiettivo](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) per l'insieme di dati sul diabete nella documentazione? Cosa dimostra questo insieme di dati, dato quell'obiettivo? -2. Successivamente, selezionare una porzione di questo insieme di dati da tracciare sistemandola in un nuovo array usando la funzione di numpy's `newaxis`. Verrà usata la regressione lineare per generare una linea tra i quali in questi dati secondo il modello che determina. +2. Successivamente, selezionare una porzione di questo insieme di dati da tracciare sistemandola in un nuovo array usando la funzione di numpy's `newaxis`. Verrà usata la regressione lineare per generare una linea tra i valori in questi dati secondo il modello che determina. ```python X = X[:, np.newaxis, 2] ``` - ✅ A picere, stampare i dati per verificarne la forma. + ✅ A piacere, stampare i dati per verificarne la forma. -3. Ora che si hanno dei dati pronti per essere tracciati, è possibile vedere se una macchina può aiutare a determinare una divisione logica tra i numeri in questo insieme di dati. Per fare ciò, è necessario dividere sia i dati (x) che l'obiettivo (Y) in insiemi di test e addestamento. Scikit-Learn ha un modo semplice per farlo; si possono dividere i dati di prova in un determinato punto. +3. Ora che si hanno dei dati pronti per essere tracciati, è possibile vedere se una macchina può aiutare a determinare una divisione logica tra i numeri in questo insieme di dati. Per fare ciò, è necessario dividere sia i dati (X) che l'obiettivo (y) in insiemi di test e addestamento. Scikit-learn ha un modo semplice per farlo; si possono dividere i dati di prova in un determinato punto. ```python X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) @@ -177,7 +177,7 @@ In una nuova cella di codice, caricare l'insieme di dati sul diabete chiamando ` y_pred = model.predict(X_test) ``` -6. Ora è il momento di mostrare i dati in un tracciato. Matplotlib è uno strumento molto utile per questo compito.Si crei un grafico a dispersione (scatterplot) di tutti i dati del test X e Y e si utilizzi la previsione per disegnare una linea nel luogo più appropriato, tra i raggruppamenti dei dati del modello. +6. Ora è il momento di mostrare i dati in un tracciato. Matplotlib è uno strumento molto utile per questo compito. Si crei un grafico a dispersione (scatterplot) di tutti i dati del test X e y e si utilizzi la previsione per disegnare una linea nel luogo più appropriato, tra i raggruppamenti dei dati del modello. ```python plt.scatter(X_test, y_test, color='black') @@ -199,12 +199,13 @@ Tracciare una variabile diversa da questo insieme di dati. Suggerimento: modific ## [Qui post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/10/) -## Revisione e Auto Apprendimento +## Riepilogo e Auto Apprendimento -In questo tutorial, si è lavorato con una semplice regressione lineare, piuttosto che un regressione univariata o multipla. Si legga circa le differenze tra questi metodi oppure si dia uno sguardo a [questo video](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) +In questo tutorial, si è lavorato con una semplice regressione lineare, piuttosto che una regressione univariata o multipla. Ci so informi circa le differenze tra questi metodi oppure si dia uno sguardo a [questo video](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) Si legga di più sul concetto di regressione e si pensi a quale tipo di domande potrebbero trovare risposta con questa tecnica. Seguire questo [tutorial](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-15963-cxa) per approfondire la propria conoscenza. ## Compito -[Un insieme di dati diverso](assignment.md) +[Un insieme di dati diverso](assignment.it.md) + diff --git a/2-Regression/1-Tools/translations/assignment.it.md b/2-Regression/1-Tools/translations/assignment.it.md new file mode 100644 index 00000000..51fa1663 --- /dev/null +++ b/2-Regression/1-Tools/translations/assignment.it.md @@ -0,0 +1,13 @@ +# Regressione con Scikit-learn + +## Istruzioni + +Dare un'occhiata all'[insieme di dati Linnerud](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) in Scikit-learn. Questo insieme di dati ha [obiettivi](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset) multipli: "Consiste di tre variabili di esercizio (dati) e tre variabili fisiologiche (obiettivo) raccolte da venti uomini di mezza età in un fitness club". + +Con parole proprie, descrivere come creare un modello di Regressione che tracci la relazione tra il punto vita e il numero di addominali realizzati. Fare lo stesso per gli altri punti dati in questo insieme di dati. + +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- | +| Inviare un paragrafo descrittivo | Viene presentato un paragrafo ben scritto | Vengono inviate alcune frasi | Non viene fornita alcuna descrizione | From 677aa8ac435e0fb3c4d32913d9bd9a688be5bb91 Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Tue, 13 Jul 2021 12:02:05 +0800 Subject: [PATCH 015/228] Update README.zh-cn.md --- .../2-Data/translations/README.zh-cn.md | 156 +++++++++--------- 1 file changed, 79 insertions(+), 77 deletions(-) diff --git a/2-Regression/2-Data/translations/README.zh-cn.md b/2-Regression/2-Data/translations/README.zh-cn.md index 2c7f23ad..c3fbf348 100644 --- a/2-Regression/2-Data/translations/README.zh-cn.md +++ b/2-Regression/2-Data/translations/README.zh-cn.md @@ -1,85 +1,86 @@ -# Build a regression model using Scikit-learn: prepare and visualize data +# 使用Scikit-learn构建回归模型:准备和可视化数据 -> ![Data visualization infographic](./images/data-visualization.png) -> Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded) +> ![数据可视化信息图](../images/data-visualization.png) +> 作者[Dasani Madipalli](https://twitter.com/dasani_decoded) -## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) +## [课前测](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) -## Introduction +## 介绍 -Now that you are set up with the tools you need to start tackling machine learning model building with Scikit-learn, you are ready to start asking questions of your data. As you work with data and apply ML solutions, it's very important to understand how to ask the right question to properly unlock the potentials of your dataset. +既然你已经设置了开始使用Scikit-learn处理机器学习模型构建所需的工具,你就可以开始对数据提出问题了。当你处理数据并应用ML解决方案时,了解如何提出正确的问题以正确释放数据集的潜力非常重要。 -In this lesson, you will learn: +在本课中,你将学习: -- How to prepare your data for model-building. -- How to use Matplotlib for data visualization. +- 如何为模型构建准备数据。 +- 如何使用Matplotlib进行数据可视化。 -## Asking the right question of your data +## 对你的数据提出正确的问题 -The question you need answered will determine what type of ML algorithms you will leverage. And the quality of the answer you get back will be heavily dependent on the nature of your data. +你需要回答的问题将决定你将使用哪种类型的ML算法。你得到的答案的质量将在很大程度上取决于你的数据的性质。 -Take a look at the [data](../data/US-pumpkins.csv) provided for this lesson. You can open this .csv file in VS Code. A quick skim immediately shows that there are blanks and a mix of strings and numeric data. There's also a strange column called 'Package' where the data is a mix between 'sacks', 'bins' and other values. The data, in fact, is a bit of a mess. +查看为本课程提供的[数据](../data/US-pumpkins.csv)。你可以在VS Code中打开这个.csv文件。快速浏览一下就会发现有空格,还有字符串和数字数据的混合。还有一个奇怪的列叫做“Package”,其中的数据是“sacks”、“bins”和其他值的混合。事实上,数据有点乱。 -In fact, it is not very common to be gifted a dataset that is completely ready to use to create a ML model out of the box. In this lesson, you will learn how to prepare a raw dataset using standard Python libraries. You will also learn various techniques to visualize the data. +事实上,获得一个完全准备好用于创建开箱即用的ML模型的数据集并不是很常见。在本课中,你将学习如何使用标准Python库准备原始数据集。你还将学习各种技术来可视化数据。 -## Case study: 'the pumpkin market' +## 案例研究:“南瓜市场” -In this folder you will find a .csv file in the root `data` folder called [US-pumpkins.csv](../data/US-pumpkins.csv) which includes 1757 lines of data about the market for pumpkins, sorted into groupings by city. This is raw data extracted from the [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distributed by the United States Department of Agriculture. +你将在`data`文件夹中找到一个名为[US-pumpkins.csv](../data/US-pumpkins.csv)的.csv 文件,其中包含有关南瓜市场的1757行数据,已 按城市排序分组。这是从美国农业部分发的[特种作物终端市场标准报告](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice)中提取的原始数据。 -### Preparing data +### 准备数据 -This data is in the public domain. It can be downloaded in many separate files, per city, from the USDA web site. To avoid too many separate files, we have concatenated all the city data into one spreadsheet, thus we have already _prepared_ the data a bit. Next, let's take a closer look at the data. +这些数据属于公共领域。它可以从美国农业部网站下载,每个城市有许多不同的文件。为了避免太多单独的文件,我们将所有城市数据合并到一个电子表格中,因此我们已经准备了一些数据。接下来,让我们仔细看看数据。 -### The pumpkin data - early conclusions +### 南瓜数据 - 早期结论 -What do you notice about this data? You already saw that there is a mix of strings, numbers, blanks and strange values that you need to make sense of. +你对这些数据有什么看法?你已经看到了无法理解的字符串、数字、空格和奇怪值的混合体。 -What question can you ask of this data, using a Regression technique? What about "Predict the price of a pumpkin for sale during a given month". Looking again at the data, there are some changes you need to make to create the data structure necessary for the task. -## Exercise - analyze the pumpkin data +你可以使用回归技术对这些数据提出什么问题?“预测给定月份内待售南瓜的价格”怎么样?再次查看数据,你需要进行一些更改才能创建任务所需的数据结构。 +## 练习 - 分析南瓜数据 -Let's use [Pandas](https://pandas.pydata.org/), (the name stands for `Python Data Analysis`) a tool very useful for shaping data, to analyze and prepare this pumpkin data. +让我们使用[Pandas](https://pandas.pydata.org/),(“Python 数据分析”的意思)一个非常有用的工具,用于分析和准备南瓜数据。 -### First, check for missing dates +### 首先,检查遗漏的日期 -You will first need to take steps to check for missing dates: +你首先需要采取以下步骤来检查缺少的日期: -1. Convert the dates to a month format (these are US dates, so the format is `MM/DD/YYYY`). -2. Extract the month to a new column. +1. 将日期转换为月份格式(这些是美国日期,因此格式为`MM/DD/YYYY`)。 -Open the _notebook.ipynb_ file in Visual Studio Code and import the spreadsheet in to a new Pandas dataframe. +2. 将月份提取到新列。 -1. Use the `head()` function to view the first five rows. +在 Visual Studio Code 中打开notebook.ipynb文件,并将电子表格导入到新的Pandas dataframe中。 + +1. 使用 `head()`函数查看前五行。 ```python import pandas as pd - pumpkins = pd.read_csv('../data/US-pumpkins.csv') + pumpkins = pd.read_csv('../../data/US-pumpkins.csv') pumpkins.head() ``` - ✅ What function would you use to view the last five rows? + ✅ 使用什么函数来查看最后五行? -1. Check if there is missing data in the current dataframe: +2. 检查当前dataframe中是否缺少数据: ```python pumpkins.isnull().sum() ``` - There is missing data, but maybe it won't matter for the task at hand. + 有数据丢失,但可能对手头的任务来说无关紧要。 -1. To make your dataframe easier to work with, drop several of its columns, using `drop()`, keeping only the columns you need: +3. 为了让你的dataframe更容易使用,使用`drop()`删除它的几个列,只保留你需要的列: ```python new_columns = ['Package', 'Month', 'Low Price', 'High Price', 'Date'] pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1) ``` -### Second, determine average price of pumpkin +### 然后,确定南瓜的平均价格 -Think about how to determine the average price of a pumpkin in a given month. What columns would you pick for this task? Hint: you'll need 3 columns. +考虑如何确定给定月份南瓜的平均价格。你会为此任务选择哪些列?提示:你需要3列。 -Solution: take the average of the `Low Price` and `High Price` columns to populate the new Price column, and convert the Date column to only show the month. Fortunately, according to the check above, there is no missing data for dates or prices. +解决方案:取`Low Price`和`High Price`列的平均值来填充新的Price列,将Date列转换成只显示月份。幸运的是,根据上面的检查,没有丢失日期或价格的数据。 -1. To calculate the average, add the following code: +1. 要计算平均值,请添加以下代码: ```python price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2 @@ -88,37 +89,37 @@ Solution: take the average of the `Low Price` and `High Price` columns to popula ``` - ✅ Feel free to print any data you'd like to check using `print(month)`. + ✅ 请随意使用`print(month)`打印你想检查的任何数据。 -2. Now, copy your converted data into a fresh Pandas dataframe: +2. 现在,将转换后的数据复制到新的Pandas dataframe中: ```python new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price}) ``` - Printing out your dataframe will show you a clean, tidy dataset on which you can build your new regression model. + 打印出的dataframe将向你展示一个干净整洁的数据集,你可以在此数据集上构建新的回归模型。 -### But wait! There's something odd here +### 但是等等!这里有点奇怪 -If you look at the `Package` column, pumpkins are sold in many different configurations. Some are sold in '1 1/9 bushel' measures, and some in '1/2 bushel' measures, some per pumpkin, some per pound, and some in big boxes with varying widths. +如果你看看`Package`(包装)一栏,南瓜有很多不同的配置。有的以1 1/9蒲式耳的尺寸出售,有的以1/2蒲式耳的尺寸出售,有的以每只南瓜出售,有的以每磅出售,有的以不同宽度的大盒子出售。 -> Pumpkins seem very hard to weigh consistently +> 南瓜似乎很难统一称重方式 -Digging into the original data, it's interesting that anything with `Unit of Sale` equalling 'EACH' or 'PER BIN' also have the `Package` type per inch, per bin, or 'each'. Pumpkins seem to be very hard to weigh consistently, so let's filter them by selecting only pumpkins with the string 'bushel' in their `Package` column. +深入研究原始数据,有趣的是,任何`Unit of Sale`等于“EACH”或“PER BIN”的东西也具有每英寸、每箱或“每个”的`Package`类型。南瓜似乎很难采用统一称重方式,因此让我们通过仅选择`Package`列中带有字符串“蒲式耳”的南瓜来过滤它们。 -1. Add a filter at the top of the file, under the initial .csv import: +1. 在初始.csv导入下添加过滤器: ```python pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)] ``` - If you print the data now, you can see that you are only getting the 415 or so rows of data containing pumpkins by the bushel. + 如果你现在打印数据,你可以看到你只获得了 415 行左右包含按蒲式耳计算的南瓜的数据。 -### But wait! There's one more thing to do +### 可是等等! 还有一件事要做 -Did you notice that the bushel amount varies per row? You need to normalize the pricing so that you show the pricing per bushel, so do some math to standardize it. +你是否注意到每行的蒲式耳数量不同?你需要对定价进行标准化,以便显示每蒲式耳的定价,因此请进行一些数学计算以对其进行标准化。 -1. Add these lines after the block creating the new_pumpkins dataframe: +1. 在创建 new_pumpkins dataframe的代码块之后添加这些行: ```python new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9) @@ -126,34 +127,35 @@ Did you notice that the bushel amount varies per row? You need to normalize the new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2) ``` -✅ According to [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), a bushel's weight depends on the type of produce, as it's a volume measurement. "A bushel of tomatoes, for example, is supposed to weigh 56 pounds... Leaves and greens take up more space with less weight, so a bushel of spinach is only 20 pounds." It's all pretty complicated! Let's not bother with making a bushel-to-pound conversion, and instead price by the bushel. All this study of bushels of pumpkins, however, goes to show how very important it is to understand the nature of your data! +✅ 根据 [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308),蒲式耳的重量取决于产品的类型,因为它是一种体积测量。“例如,一蒲式耳西红柿应该重56 磅……叶子和蔬菜占据更多空间,重量更轻,所以一蒲式耳菠菜只有20磅。” 这一切都相当复杂!让我们不要费心进行蒲式耳到磅的转换,而是按蒲式耳定价。然而,所有这些对蒲式耳南瓜的研究表明,了解数据的性质是多么重要! -Now, you can analyze the pricing per unit based on their bushel measurement. If you print out the data one more time, you can see how it's standardized. +现在,你可以根据蒲式耳测量来分析每单位的定价。如果你再打印一次数据,你可以看到它是如何标准化的。 -✅ Did you notice that pumpkins sold by the half-bushel are very expensive? Can you figure out why? Hint: little pumpkins are way pricier than big ones, probably because there are so many more of them per bushel, given the unused space taken by one big hollow pie pumpkin. +✅ 你有没有注意到半蒲式耳卖的南瓜很贵?你能弄清楚为什么吗?提示:小南瓜比大南瓜贵得多,这可能是因为考虑到一个大的空心馅饼南瓜占用的未使用空间,每蒲式耳的南瓜要多得多。 -## Visualization Strategies +## 可视化策略 -Part of the data scientist's role is to demonstrate the quality and nature of the data they are working with. To do this, they often create interesting visualizations, or plots, graphs, and charts, showing different aspects of data. In this way, they are able to visually show relationships and gaps that are otherwise hard to uncover. +数据科学家的部分职责是展示他们使用的数据的质量和性质。为此,他们通常会创建有趣的可视化或绘图、图形和图表,以显示数据的不同方面。通过这种方式,他们能够直观地展示难以发现的关系和差距。 -Visualizations can also help determine the machine learning technique most appropriate for the data. A scatterplot that seems to follow a line, for example, indicates that the data is a good candidate for a linear regression exercise. +可视化还可以帮助确定最适合数据的机器学习技术。例如,似乎沿着一条线的散点图表明该数据是线性回归练习的良好候选者。 -One data visualization libary that works well in Jupyter notebooks is [Matplotlib](https://matplotlib.org/) (which you also saw in the previous lesson). +一个在Jupyter notebooks中运行良好的数据可视化库是[Matplotlib](https://matplotlib.org/)(你在上一课中也看到过)。 -> Get more experience with data visualization in [these tutorials](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-15963-cxa). +> 在[这些教程](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-15963-cxa)中获得更多数据可视化经验。 -## Exercise - experiment with Matplotlib +## 练习 - 使用 Matplotlib 进行实验 -Try to create some basic plots to display the new dataframe you just created. What would a basic line plot show? +尝试创建一些基本图形来显示你刚刚创建的新dataframe。基本线图会显示什么? -1. Import Matplotlib at the top of the file, under the Pandas import: +1. 在文件顶部导入Matplotlib: ```python import matplotlib.pyplot as plt ``` -1. Rerun the entire notebook to refresh. -1. At the bottom of the notebook, add a cell to plot the data as a box: +2. 重新刷新以运行整个notebook。 + +3. 在notebook底部,添加一个单元格以绘制数据: ```python price = new_pumpkins.Price @@ -162,39 +164,39 @@ Try to create some basic plots to display the new dataframe you just created. Wh plt.show() ``` - ![A scatterplot showing price to month relationship](./images/scatterplot.png) + ![显示价格与月份关系的散点图](../images/scatterplot.png) - Is this a useful plot? Does anything about it surprise you? + 这是一个有用的图吗?有什么让你吃惊的吗? - It's not particularly useful as all it does is display in your data as a spread of points in a given month. + 它并不是特别有用,因为它所做的只是在你的数据中显示为给定月份的点数分布。 -### Make it useful +### 让它有用 -To get charts to display useful data, you usually need to group the data somehow. Let's try creating a plot where the y axis shows the months and the data demonstrates the distribution of data. +为了让图表显示有用的数据,你通常需要以某种方式对数据进行分组。让我们尝试创建一个图,其中y轴显示月份,数据显示数据的分布。 -1. Add a cell to create a grouped bar chart: +1. 添加单元格以创建分组条形图: ```python new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar') plt.ylabel("Pumpkin Price") ``` - ![A bar chart showing price to month relationship](./images/barchart.png) + ![显示价格与月份关系的条形图](../images/barchart.png) - This is a more useful data visualization! It seems to indicate that the highest price for pumpkins occurs in September and October. Does that meet your expectation? Why or why not? + 这是一个更有用的数据可视化!似乎表明南瓜的最高价格出现在9月和10月。这符合你的期望吗?为什么?为什么不? --- -## 🚀Challenge +## 🚀挑战 -Explore the different types of visualization that Matplotlib offers. Which types are most appropriate for regression problems? +探索Matplotlib提供的不同类型的可视化。哪种类型最适合回归问题? -## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12/) +## [课后测](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12/) -## Review & Self Study +## 复习与自学 -Take a look at the many ways to visualize data. Make a list of the various libraries available and note which are best for given types of tasks, for example 2D visualizations vs. 3D visualizations. What do you discover? +请看一下可视化数据的多种方法。列出各种可用的库,并注意哪些库最适合给定类型的任务,例如2D可视化与3D可视化。你发现了什么? -## Assignment +## 任务 -[Exploring visualization](assignment.md) +[探索可视化](../assignment.md) From 773edc1f74cf6abbff46e02a9269fe1f5dded212 Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Tue, 13 Jul 2021 12:02:54 +0800 Subject: [PATCH 016/228] Update README.zh-cn.md --- .../1-Tools/translations/README.zh-cn.md | 173 +++++++++--------- 1 file changed, 86 insertions(+), 87 deletions(-) diff --git a/2-Regression/1-Tools/translations/README.zh-cn.md b/2-Regression/1-Tools/translations/README.zh-cn.md index e36c34fe..819b9766 100644 --- a/2-Regression/1-Tools/translations/README.zh-cn.md +++ b/2-Regression/1-Tools/translations/README.zh-cn.md @@ -1,132 +1,131 @@ -# Get started with Python and Scikit-learn for regression models +# 开始使用Python和Scikit学习回归模型 -![Summary of regressions in a sketchnote](../../sketchnotes/ml-regression.png) +![回归](../../sketchnotes/ml-regression.png) -> Sketchnote by [Tomomi Imura](https://www.twitter.com/girlie_mac) +> 作者[Tomomi Imura](https://www.twitter.com/girlie_mac) -## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/9/) -## Introduction +## [课前测](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/9/) +## 介绍 -In these four lessons, you will discover how to build regression models. We will discuss what these are for shortly. But before you do anything, make sure you have the right tools in place to start the process! +在这四节课中,你将了解如何构建回归模型。我们将很快讨论这些是什么。但在你做任何事情之前,请确保你有合适的工具来开始这个过程! -In this lesson, you will learn how to: +在本课中,你将学习如何: -- Configure your computer for local machine learning tasks. -- Work with Jupyter notebooks. -- Use Scikit-learn, including installation. -- Explore linear regression with a hands-on exercise. +- 为本地机器学习任务配置你的计算机。 +- 使用Jupyter notebooks。 +- 使用Scikit-learn,包括安装。 +- 通过动手练习探索线性回归。 -## Installations and configurations +## 安装和配置 -[![Using Python with Visual Studio Code](https://img.youtube.com/vi/7EXd4_ttIuw/0.jpg)](https://youtu.be/7EXd4_ttIuw "Using Python with Visual Studio Code") +[![在 Visual Studio Code中使用 Python](https://img.youtube.com/vi/7EXd4_ttIuw/0.jpg)](https://youtu.be/7EXd4_ttIuw "在 Visual Studio Code中使用 Python") -> 🎥 Click the image above for a video: using Python within VS Code. +> 🎥 单击上图观看视频:在VS Code中使用Python。 -1. **Install Python**. Ensure that [Python](https://www.python.org/downloads/) is installed on your computer. You will use Python for many data science and machine learning tasks. Most computer systems already include a Python installation. There are useful [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-15963-cxa) available as well, to ease the setup for some users. +1. **安装 Python**。确保你的计算机上安装了[Python](https://www.python.org/downloads/)。你将在许多数据科学和机器学习任务中使用 Python。大多数计算机系统已经安装了Python。也有一些有用的[Python编码包](https://code.visualstudio.com/learn/educations/installers?WT.mc_id=academic-15963-cxa)可用于简化某些用户的设置。 - Some usages of Python, however, require one version of the software, whereas others require a different version. For this reason, it's useful to work within a [virtual environment](https://docs.python.org/3/library/venv.html). + 然而,Python的某些用法需要一个版本的软件,而其他用法则需要另一个不同的版本。 因此,在[虚拟环境](https://docs.python.org/3/library/venv.html)中工作很有用。 -2. **Install Visual Studio Code**. Make sure you have Visual Studio Code installed on your computer. Follow these instructions to [install Visual Studio Code](https://code.visualstudio.com/) for the basic installation. You are going to use Python in Visual Studio Code in this course, so you might want to brush up on how to [configure Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-15963-cxa) for Python development. +2. **安装 Visual Studio Code**。确保你的计算机上安装了Visual Studio Code。按照这些说明[安装 Visual Studio Code](https://code.visualstudio.com/)进行基本安装。在本课程中,你将在Visual Studio Code中使用Python,因此你可能想复习如何[配置 Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-15963-cxa)用于Python开发。 - > Get comfortable with Python by working through this collection of [Learn modules](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-15963-cxa) + > 通过学习这一系列的 [学习模块](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-15963-cxa)熟悉Python -3. **Install Scikit-learn**, by following [these instructions](https://scikit-learn.org/stable/install.html). Since you need to ensure that you use Python 3, it's recommended that you use a virtual environment. Note, if you are installing this library on a M1 Mac, there are special instructions on the page linked above. +3. **按照[这些说明]安装Scikit learn**(https://scikit-learn.org/stable/install.html)。由于你需要确保使用Python3,因此建议你使用虚拟环境。注意,如果你是在M1 Mac上安装这个库,在上面链接的页面上有特别的说明。 -1. **Install Jupyter Notebook**. You will need to [install the Jupyter package](https://pypi.org/project/jupyter/). +4. **安装Jupyter Notebook**。你需要[安装Jupyter包](https://pypi.org/project/jupyter/)。 -## Your ML authoring environment +## 你的ML工作环境 -You are going to use **notebooks** to develop your Python code and create machine learning models. This type of file is a common tool for data scientists, and they can be identified by their suffix or extension `.ipynb`. +你将使用**notebooks**开发Python代码并创建机器学习模型。这种类型的文件是数据科学家的常用工具,可以通过后缀或扩展名`.ipynb`来识别它们。 -Notebooks are an interactive environment that allow the developer to both code and add notes and write documentation around the code which is quite helpful for experimental or research-oriented projects. +Notebooks是一个交互式环境,允许开发人员编写代码并添加注释并围绕代码编写文档,这对于实验或面向研究的项目非常有帮助。 -### Exercise - work with a notebook +### 练习 - 使用notebook -In this folder, you will find the file _notebook.ipynb_. +1. 在Visual Studio Code中打开_notebook.ipynb_。 -1. Open _notebook.ipynb_ in Visual Studio Code. + Jupyter服务器将以python3+启动。你会发现notebook可以“运行”的区域、代码块。你可以通过选择看起来像播放按钮的图标来运行代码块。 - A Jupyter server will start with Python 3+ started. You will find areas of the notebook that can be `run`, pieces of code. You can run a code block, by selecting the icon that looks like a play button. +2. 选择`md`图标并添加一点markdown,输入文字**#Welcome to your notebook**。 -1. Select the `md` icon and add a bit of markdown, and the following text **# Welcome to your notebook**. + 接下来,添加一些Python代码。 - Next, add some Python code. +1. 在代码块中输入**print("hello notebook")**。 -1. Type **print('hello notebook')** in the code block. -1. Select the arrow to run the code. +2. 选择箭头运行代码。 - You should see the printed statement: + 你应该看到打印的语句: ```output hello notebook ``` -![VS Code with a notebook open](images/notebook.png) +![打开notebook的VS Code](../images/notebook.png) -You can interleaf your code with comments to self-document the notebook. +你可以为你的代码添加注释,以便notebook可以自描述。 -✅ Think for a minute how different a web developer's working environment is versus that of a data scientist. +✅ 想一想web开发人员的工作环境与数据科学家的工作环境有多大的不同。 -## Up and running with Scikit-learn +## 启动并运行Scikit-learn -Now that Python is set up in your local environment, and you are comfortable with Jupyter notebooks, let's get equally comfortable with Scikit-learn (pronounce it `sci` as in `science`). Scikit-learn provides an [extensive API](https://scikit-learn.org/stable/modules/classes.html#api-ref) to help you perform ML tasks. +现在Python已在你的本地环境中设置好,并且你对Jupyter notebook感到满意,让我们同样熟悉Scikit-learn(在“science”中发音为“sci”)。 Scikit-learn提供了[大量的API](https://scikit-learn.org/stable/modules/classes.html#api-ref)来帮助你执行ML任务。 -According to their [website](https://scikit-learn.org/stable/getting_started.html), "Scikit-learn is an open source machine learning library that supports supervised and unsupervised learning. It also provides various tools for model fitting, data preprocessing, model selection and evaluation, and many other utilities." +根据他们的[网站](https://scikit-learn.org/stable/getting_started.html),“Scikit-learn是一个开源机器学习库,支持有监督和无监督学习。它还提供了各种模型拟合工具、数据预处理、模型选择和评估以及许多其他实用程序。” -In this course, you will use Scikit-learn and other tools to build machine learning models to perform what we call 'traditional machine learning' tasks. We have deliberately avoided neural networks and deep learning, as they are better covered in our forthcoming 'AI for Beginners' curriculum. +在本课程中,你将使用Scikit-learn和其他工具来构建机器学习模型,以执行我们所谓的“传统机器学习”任务。我们特意避免了神经网络和深度学习,因为它们在我们即将推出的“面向初学者的人工智能”课程中得到了更好的介绍。 -Scikit-learn makes it straightforward to build models and evaluate them for use. It is primarily focused on using numeric data and contains several ready-made datasets for use as learning tools. It also includes pre-built models for students to try. Let's explore the process of loading prepackaged data and using a built in estimator first ML model with Scikit-learn with some basic data. +Scikit-learn使构建模型和评估它们的使用变得简单。它主要侧重于使用数字数据,并包含几个现成的数据集用作学习工具。它还包括供学生尝试的预建模型。让我们探索加载预先打包的数据和使用内置的estimator first ML模型和Scikit-learn以及一些基本数据的过程。 -## Exercise - your first Scikit-learn notebook +## 练习 - 你的第一个Scikit-learn notebook -> This tutorial was inspired by the [linear regression example](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) on Scikit-learn's web site. +> 本教程的灵感来自Scikit-learn网站上的[线性回归示例](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py)。 -In the _notebook.ipynb_ file associated to this lesson, clear out all the cells by pressing the 'trash can' icon. +在与本课程相关的_notebook.ipynb_文件中,通过点击“垃圾桶”图标清除所有单元格。 -In this section, you will work with a small dataset about diabetes that is built into Scikit-learn for learning purposes. Imagine that you wanted to test a treatment for diabetic patients. Machine Learning models might help you determine which patients would respond better to the treatment, based on combinations of variables. Even a very basic regression model, when visualized, might show information about variables that would help you organize your theoretical clinical trials. +在本节中,你将使用一个关于糖尿病的小数据集,该数据集内置于Scikit-learn中以用于学习目的。想象一下,你想为糖尿病患者测试一种治疗方法。机器学习模型可能会帮助你根据变量组合确定哪些患者对治疗反应更好。即使是非常基本的回归模型,在可视化时,也可能会显示有助于组织理论临床试验的变量信息。 -✅ There are many types of regression methods, and which one you pick depends on the answer you're looking for. If you want to predict the probable height for a person of a given age, you'd use linear regression, as you're seeking a **numeric value**. If you're interested in discovering whether a type of cuisine should be considered vegan or not, you're looking for a **category assignment** so you would use logistic regression. You'll learn more about logistic regression later. Think a bit about some questions you can ask of data, and which of these methods would be more appropriate. +✅ 回归方法有很多种,你选择哪一种取决于你正在寻找的答案。如果你想预测给定年龄的人的可能身高,你可以使用线性回归,因为你正在寻找**数值**。如果你有兴趣了解某种菜肴是否应被视为素食主义者,那么你正在寻找**类别分配**,以便使用逻辑回归。稍后你将了解有关逻辑回归的更多信息。想一想你可以对数据提出的一些问题,以及这些方法中的哪一个更合适。 -Let's get started on this task. +让我们开始这项任务。 -### Import libraries +### 导入库 -For this task we will import some libraries: +对于此任务,我们将导入一些库: -- **matplotlib**. It's a useful [graphing tool](https://matplotlib.org/) and we will use it to create a line plot. -- **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) is a useful library for handling numeric data in Python. -- **sklearn**. This is the Scikit-learn library. +- **matplotlib**。这是一个有用的[绘图工具](https://matplotlib.org/),我们将使用它来创建线图。 +- **numpy**。 [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html)是一个有用的库,用于在Python中处理数字数据。 +- **sklearn**。这是Scikit-learn库。 -Import some libraries to help with your tasks. +导入一些库来帮助你完成任务。 -1. Add imports by typing the following code: +1. 通过输入以下代码添加导入: - ```python + ```python import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selection ``` - Above you are importing `matplottlib`, `numpy` and you are importing `datasets`, `linear_model` and `model_selection` from `sklearn`. `model_selection` is used for splitting data into training and test sets. + 在上面的代码中,你正在导入`matplottlib`、`numpy`,你正在从`sklearn`导入`datasets`、`linear_model`和`model_selection`。 `model_selection`用于将数据拆分为训练集和测试集。 -### The diabetes dataset +### 糖尿病数据集 -The built-in [diabetes dataset](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) includes 442 samples of data around diabetes, with 10 feature variables, some of which include: +内置的[糖尿病数据集](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset)包含442个围绕糖尿病的数据样本,具有10个特征变量,其中包括: -age: age in years -bmi: body mass index -bp: average blood pressure -s1 tc: T-Cells (a type of white blood cells) +age:岁数 +bmi:体重指数 +bp:平均血压 +s1 tc:T细胞(一种白细胞) -✅ This dataset includes the concept of 'sex' as a feature variable important to research around diabetes. Many medical datasets include this type of binary classification. Think a bit about how categorizations such as this might exclude certain parts of a population from treatments. +✅ 该数据集包括“性别”的概念,作为对糖尿病研究很重要的特征变量。许多医学数据集包括这种类型的二元分类。想一想诸如此类的分类如何将人群的某些部分排除在治疗之外。 -Now, load up the X and y data. +现在,加载X和y数据。 -> 🎓 Remember, this is supervised learning, and we need a named 'y' target. +> 🎓 请记住,这是监督学习,我们需要一个命名为“y”的目标。 -In a new code cell, load the diabetes dataset by calling `load_diabetes()`. The input `return_X_y=True` signals that `X` will be a data matrix, and `y` will be the regression target. +在新的代码单元中,通过调用`load_diabetes()`加载糖尿病数据集。输入`return_X_y=True`表示`X`将是一个数据矩阵,而`y`将是回归目标。 -1. Add some print commands to show the shape of the data matrix and its first element: +1. 添加一些打印命令来显示数据矩阵的形状及其第一个元素: ```python X, y = datasets.load_diabetes(return_X_y=True) @@ -134,9 +133,9 @@ In a new code cell, load the diabetes dataset by calling `load_diabetes()`. The print(X[0]) ``` - What you are getting back as a response, is a tuple. What you are doing is to assign the two first values of the tuple to `X` and `y` respectively. Learn more [about tuples](https://wikipedia.org/wiki/Tuple). + 作为响应返回的是一个元组。你正在做的是将元组的前两个值分别分配给`X`和`y`。了解更多 [关于元组](https://wikipedia.org/wiki/Tuple)。 - You can see that this data has 442 items shaped in arrays of 10 elements: + 你可以看到这个数据有442个项目,组成了10个元素的数组: ```text (442, 10) @@ -144,38 +143,38 @@ In a new code cell, load the diabetes dataset by calling `load_diabetes()`. The -0.04340085 -0.00259226 0.01990842 -0.01764613] ``` - ✅ Think a bit about the relationship between the data and the regression target. Linear regression predicts relationships between feature X and target variable y. Can you find the [target](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) for the diabetes dataset in the documentation? What is this dataset demonstrating, given that target? + ✅ 稍微思考一下数据和回归目标之间的关系。线性回归预测特征X和目标变量y之间的关系。你能在文档中找到糖尿病数据集的[目标](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset)吗?鉴于该目标,该数据集展示了什么? -2. Next, select a portion of this dataset to plot by arranging it into a new array using numpy's `newaxis` function. We are going to use linear regression to generate a line between values in this data, according to a pattern it determines. +2. 接下来,通过使用numpy的`newaxis`函数将其排列到一个新数组中来选择要绘制的该数据集的一部分。我们将使用线性回归根据它确定的模式在此数据中的值之间生成一条线。 ```python X = X[:, np.newaxis, 2] ``` - ✅ At any time, print out the data to check its shape. + ✅ 随时打印数据以检查其形状。 -3. Now that you have data ready to be plotted, you can see if a machine can help determine a logical split between the numbers in this dataset. To do this, you need to split both the data (X) and the target (y) into test and training sets. Scikit-learn has a straightforward way to do this; you can split your test data at a given point. +3. 现在你已准备好绘制数据,你可以查看机器是否可以帮助确定此数据集中数字之间的逻辑分割。为此你需要将数据(X)和目标(y)拆分为测试集和训练集。Scikit-learn有一个简单的方法来做到这一点;你可以在给定点拆分测试数据。 ```python X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) ``` -4. Now you are ready to train your model! Load up the linear regression model and train it with your X and y training sets using `model.fit()`: +4. 现在你已准备好训练你的模型!加载线性回归模型并使用`model.fit()`使用X和y训练集对其进行训练: ```python model = linear_model.LinearRegression() model.fit(X_train, y_train) ``` - ✅ `model.fit()` is a function you'll see in many ML libraries such as TensorFlow + ✅ `model.fit()`是一个你会在许多机器学习库(例如 TensorFlow)中看到的函数 -5. Then, create a prediction using test data, using the function `predict()`. This will be used to draw the line between data groups +5. 然后,使用函数`predict()`,使用测试数据创建预测。这将用于绘制数据组之间的线 ```python y_pred = model.predict(X_test) ``` -6. Now it's time to show the data in a plot. Matplotlib is a very useful tool for this task. Create a scatterplot of all the X and y test data, and use the prediction to draw a line in the most appropriate place, between the model's data groupings. +6. 现在是时候在图中显示数据了。Matplotlib是完成此任务的非常有用的工具。创建所有X和y测试数据的散点图,并使用预测在模型的数据分组之间最合适的位置画一条线。 ```python plt.scatter(X_test, y_test, color='black') @@ -183,24 +182,24 @@ In a new code cell, load the diabetes dataset by calling `load_diabetes()`. The plt.show() ``` - ![a scatterplot showing datapoints around diabetes](./images/scatterplot.png) + ![显示糖尿病周围数据点的散点图](../images/scatterplot.png) - ✅ Think a bit about what's going on here. A straight line is running through many small dots of data, but what is it doing exactly? Can you see how you should be able to use this line to predict where a new, unseen data point should fit in relationship to the plot's y axis? Try to put into words the practical use of this model. + ✅ 想一想这里发生了什么。一条直线穿过许多小数据点,但它到底在做什么?你能看到你应该如何使用这条线来预测一个新的、未见过的数据点对应的y轴值吗?尝试用语言描述该模型的实际用途。 -Congratulations, you built your first linear regression model, created a prediction with it, and displayed it in a plot! +恭喜,你构建了第一个线性回归模型,使用它创建了预测,并将其显示在绘图中! --- -## 🚀Challenge +## 🚀挑战 -Plot a different variable from this dataset. Hint: edit this line: `X = X[:, np.newaxis, 2]`. Given this dataset's target, what are you able to discover about the progression of diabetes as a disease? -## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/10/) +从这个数据集中绘制一个不同的变量。提示:编辑这一行:`X = X[:, np.newaxis, 2]`。鉴于此数据集的目标,你能够发现糖尿病作为一种疾病的进展情况吗? +## [课后测](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/10/) -## Review & Self Study +## 复习与自学 -In this tutorial, you worked with simple linear regression, rather than univariate or multiple linear regression. Read a little about the differences between these methods, or take a look at [this video](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) +在本教程中,你使用了简单线性回归,而不是单变量或多元线性回归。阅读一些关于这些方法之间差异的信息,或查看[此视频](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) -Read more about the concept of regression and think about what kinds of questions can be answered by this technique. Take this [tutorial](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-15963-cxa) to deepen your understanding. +阅读有关回归概念的更多信息,并思考这种技术可以回答哪些类型的问题。用这个[教程](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-15963-cxa)加深你的理解。 -## Assignment +## 任务 -[A different dataset](assignment.md) +[不同的数据集](../assignment.md) From 71197564fa10eea091bd405aee76c455b759c40f Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Tue, 13 Jul 2021 12:06:48 +0800 Subject: [PATCH 017/228] Update README.zh-cn.md --- 2-Regression/1-Tools/translations/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/1-Tools/translations/README.zh-cn.md b/2-Regression/1-Tools/translations/README.zh-cn.md index 819b9766..4dff2795 100644 --- a/2-Regression/1-Tools/translations/README.zh-cn.md +++ b/2-Regression/1-Tools/translations/README.zh-cn.md @@ -1,6 +1,6 @@ # 开始使用Python和Scikit学习回归模型 -![回归](../../sketchnotes/ml-regression.png) +![回归](../../../sketchnotes/ml-regression.png) > 作者[Tomomi Imura](https://www.twitter.com/girlie_mac) From 823616599b21693a13b26ad94cc5fe786c8c8d02 Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Tue, 13 Jul 2021 12:17:36 +0800 Subject: [PATCH 018/228] [WIP]translate 3.1 to Simplified Chinese --- .../1-Web-App/translations/README.zh-cn.md | 347 ++++++++++++++++++ 1 file changed, 347 insertions(+) create mode 100644 3-Web-App/1-Web-App/translations/README.zh-cn.md diff --git a/3-Web-App/1-Web-App/translations/README.zh-cn.md b/3-Web-App/1-Web-App/translations/README.zh-cn.md new file mode 100644 index 00000000..6150aece --- /dev/null +++ b/3-Web-App/1-Web-App/translations/README.zh-cn.md @@ -0,0 +1,347 @@ +# Build a Web App to use a ML Model + +In this lesson, you will train an ML model on a data set that's out of this world: _UFO sightings over the past century_, sourced from [NUFORC's database](https://www.nuforc.org). + +You will learn: + +- How to 'pickle' a trained model +- How to use that model in a Flask app + +We will continue our use of notebooks to clean data and train our model, but you can take the process one step further by exploring using a model 'in the wild', so to speak: in a web app. + +To do this, you need to build a web app using Flask. + +## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/17/) + +## Building an app + +There are several ways to build web apps to consume machine learning models. Your web architecture may influence the way your model is trained. Imagine that you are working in a business where the data science group has trained a model that they want you to use in an app. + +### Considerations + +There are many questions you need to ask: + +- **Is it a web app or a mobile app?** If you are building a mobile app or need to use the model in an IoT context, you could use [TensorFlow Lite](https://www.tensorflow.org/lite/) and use the model in an Android or iOS app. +- **Where will the model reside**? In the cloud or locally? +- **Offline support**. Does the app have to work offline? +- **What technology was used to train the model?** The chosen technology may influence the tooling you need to use. + - **Using Tensor flow**. If you are training a model using TensorFlow, for example, that ecosystem provides the ability to convert a TensorFlow model for use in a web app by using [TensorFlow.js](https://www.tensorflow.org/js/). + - **Using PyTorch**. If you are building a model using a library such as [PyTorch](https://pytorch.org/), you have the option to export it in [ONNX](https://onnx.ai/) (Open Neural Network Exchange) format for use in JavaScript web apps that can use the [Onnx Runtime](https://www.onnxruntime.ai/). This option will be explored in a future lesson for a Scikit-learn-trained model. + - **Using Lobe.ai or Azure Custom vision**. If you are using an ML SaaS (Software as a Service) system such as [Lobe.ai](https://lobe.ai/) or [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-15963-cxa) to train a model, this type of software provides ways to export the model for many platforms, including building a bespoke API to be queried in the cloud by your online application. + +You also have the opportunity to build an entire Flask web app that would be able to train the model itself in a web browser. This can also be done using TensorFlow.js in a JavaScript context. + +For our purposes, since we have been working with Python-based notebooks, let's explore the steps you need to take to export a trained model from such a notebook to a format readable by a Python-built web app. + +## Tool + +For this task, you need two tools: Flask and Pickle, both of which run on Python. + +✅ What's [Flask](https://palletsprojects.com/p/flask/)? Defined as a 'micro-framework' by its creators, Flask provides the basic features of web frameworks using Python and a templating engine to build web pages. Take a look at [this Learn module](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-15963-cxa) to practice building with Flask. + +✅ What's [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 is a Python module that serializes and de-serializes a Python object structure. When you 'pickle' a model, you serialize or flatten its structure for use on the web. Be careful: pickle is not intrinsically secure, so be careful if prompted to 'un-pickle' a file. A pickled file has the suffix `.pkl`. + +## Exercise - clean your data + +In this lesson you'll use data from 80,000 UFO sightings, gathered by [NUFORC](https://nuforc.org) (The National UFO Reporting Center). This data has some interesting descriptions of UFO sightings, for example: + +- **Long example description**. "A man emerges from a beam of light that shines on a grassy field at night and he runs towards the Texas Instruments parking lot". +- **Short example description**. "the lights chased us". + +The [ufos.csv](./data/ufos.csv) spreadsheet includes columns about the `city`, `state` and `country` where the sighting occurred, the object's `shape` and its `latitude` and `longitude`. + +In the blank [notebook](notebook.ipynb) included in this lesson: + +1. import `pandas`, `matplotlib`, and `numpy` as you did in previous lessons and import the ufos spreadsheet. You can take a look at a sample data set: + + ```python + import pandas as pd + import numpy as np + + ufos = pd.read_csv('../data/ufos.csv') + ufos.head() + ``` + +1. Convert the ufos data to a small dataframe with fresh titles. Check the unique values in the `Country` field. + + ```python + ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']}) + + ufos.Country.unique() + ``` + +1. Now, you can reduce the amount of data we need to deal with by dropping any null values and only importing sightings between 1-60 seconds: + + ```python + ufos.dropna(inplace=True) + + ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)] + + ufos.info() + ``` + +1. Import Scikit-learn's `LabelEncoder` library to convert the text values for countries to a number: + + ✅ LabelEncoder encodes data alphabetically + + ```python + from sklearn.preprocessing import LabelEncoder + + ufos['Country'] = LabelEncoder().fit_transform(ufos['Country']) + + ufos.head() + ``` + + Your data should look like this: + + ```output + Seconds Country Latitude Longitude + 2 20.0 3 53.200000 -2.916667 + 3 20.0 4 28.978333 -96.645833 + 14 30.0 4 35.823889 -80.253611 + 23 60.0 4 45.582778 -122.352222 + 24 3.0 3 51.783333 -0.783333 + ``` + +## Exercise - build your model + +Now you can get ready to train a model by diving the data into the training and testing group. + +1. Select the three features you want to train on as your X vector, and the y vector will be the `Country`. You want to be able to input `Seconds`, `Latitude` and `Longitude` and get a country id to return. + + ```python + from sklearn.model_selection import train_test_split + + Selected_features = ['Seconds','Latitude','Longitude'] + + X = ufos[Selected_features] + y = ufos['Country'] + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + ``` + +1. Train your model using logistic regression: + + ```python + from sklearn.metrics import accuracy_score, classification_report + from sklearn.linear_model import LogisticRegression + model = LogisticRegression() + model.fit(X_train, y_train) + predictions = model.predict(X_test) + + print(classification_report(y_test, predictions)) + print('Predicted labels: ', predictions) + print('Accuracy: ', accuracy_score(y_test, predictions)) + ``` + +The accuracy isn't bad **(around 95%)**, unsurprisingly, as `Country` and `Latitude/Longitude` correlate. + +The model you created isn't very revolutionary as you should be able to infer a `Country` from its `Latitude` and `Longitude`, but it's a good exercise to try to train from raw data that you cleaned, exported, and then use this model in a web app. + +## Exercise - 'pickle' your model + +Now, it's time to _pickle_ your model! You can do that in a few lines of code. Once it's _pickled_, load your pickled model and test it against a sample data array containing values for seconds, latitude and longitude, + +```python +import pickle +model_filename = 'ufo-model.pkl' +pickle.dump(model, open(model_filename,'wb')) + +model = pickle.load(open('ufo-model.pkl','rb')) +print(model.predict([[50,44,-12]])) +``` + +The model returns **'3'**, which is the country code for the UK. Wild! 👽 + +## Exercise - build a Flask app + +Now you can build a Flask app to call your model and return similar results, but in a more visually pleasing way. + +1. Start by creating a folder called **web-app** next to the _notebook.ipynb_ file where your _ufo-model.pkl_ file resides. + +1. In that folder create three more folders: **static**, with a folder **css** inside it, and **templates`**. You should now have the following files and directories: + + ```output + web-app/ + static/ + css/ + templates/ + notebook.ipynb + ufo-model.pkl + ``` + + ✅ Refer to the solution folder for a view of the finished app + +1. The first file to create in _web-app_ folder is **requirements.txt** file. Like _package.json_ in a JavaScript app, this file lists dependencies required by the app. In **requirements.txt** add the lines: + + ```text + scikit-learn + pandas + numpy + flask + ``` + +1. Now, run this file by navigating to _web-app_: + + ```bash + cd web-app + ``` + +1. In your terminal type `pip install`, to install the libraries listed in _reuirements.txt_: + + ```bash + pip install -r requirements.txt + ``` + +1. Now, you're ready to create three more files to finish the app: + + 1. Create **app.py** in the root + 2. Create **index.html** in _templates_ directory. + 3. Create **styles.css** in _static/css_ directory. + +1. Build out the _styles.css__ file with a few styles: + + ```css + body { + width: 100%; + height: 100%; + font-family: 'Helvetica'; + background: black; + color: #fff; + text-align: center; + letter-spacing: 1.4px; + font-size: 30px; + } + + input { + min-width: 150px; + } + + .grid { + width: 300px; + border: 1px solid #2d2d2d; + display: grid; + justify-content: center; + margin: 20px auto; + } + + .box { + color: #fff; + background: #2d2d2d; + padding: 12px; + display: inline-block; + } + ``` + +1. Next, build out the _index.html_ file: + + ```html + + + + + 🛸 UFO Appearance Prediction! 👽 + + + + +
+ +
+ +

According to the number of seconds, latitude and longitude, which country is likely to have reported seeing a UFO?

+ +
+ + + + +
+ + +

{{ prediction_text }}

+ +
+
+ + + + ``` + + Take a look at the templating in this file. Notice the 'mustache' syntax around variables that will be provided by the app, like the prediction text: `{{}}`. There's also a form that posts a prediction to the `/predict` route. + + Finally, you're ready to build the python file that drives the consumption of the model and the display of predictions: + +1. In `app.py` add: + + ```python + import numpy as np + from flask import Flask, request, render_template + import pickle + + app = Flask(__name__) + + model = pickle.load(open("../ufo-model.pkl", "rb")) + + + @app.route("/") + def home(): + return render_template("index.html") + + + @app.route("/predict", methods=["POST"]) + def predict(): + + int_features = [int(x) for x in request.form.values()] + final_features = [np.array(int_features)] + prediction = model.predict(final_features) + + output = prediction[0] + + countries = ["Australia", "Canada", "Germany", "UK", "US"] + + return render_template( + "index.html", prediction_text="Likely country: {}".format(countries[output]) + ) + + + if __name__ == "__main__": + app.run(debug=True) + ``` + + > 💡 Tip: when you add [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) while running the web app using Flask, any changes you make to your application will be reflected immediately without the need to restart the server. Beware! Don't enable this mode in a production app. + +If you run `python app.py` or `python3 app.py` - your web server starts up, locally, and you can fill out a short form to get an answer to your burning question about where UFOs have been sighted! + +Before doing that, take a look at the parts of `app.py`: + +1. First, dependencies are loaded and the app starts. +1. Then, the model is imported. +1. Then, index.html is rendered on the home route. + +On the `/predict` route, several things happen when the form is posted: + +1. The form variables are gathered and converted to a numpy array. They are then sent to the model and a prediction is returned. +2. The Countries that we want displayed are re-rendered as readable text from their predicted country code, and that value is sent back to index.html to be rendered in the template. + +Using a model this way, with Flask and a pickled model, is relatively straightforward. The hardest thing is to understand what shape the data is that must be sent to the model to get a prediction. That all depends on how the model was trained. This one has three data points to be input in order to get a prediction. + +In a professional setting, you can see how good communication is necessary between the folks who train the model and those who consume it in a web or mobile app. In our case, it's only one person, you! + +--- + +## 🚀 Challenge: + +Instead of working in a notebook and importing the model to the Flask app, you could train the model right within the Flask app! Try converting your Python code in the notebook, perhaps after your data is cleaned, to train the model from within the app on a route called `train`. What are the pros and cons of pursuing this method? + +## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/18/) + +## Review & Self Study + +There are many ways to build a web app to consume ML models. Make a list of the ways you could use JavaScript or Python to build a web app to leverage machine learning. Consider architecture: should the model stay in the app or live in the cloud? If the latter, how would you access it? Draw out an architectural model for an applied ML web solution. + +## Assignment + +[Try a different model](assignment.md) + + From b33be348ec6ff8c6d3c8474889bcee3ca377fa6d Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Tue, 13 Jul 2021 12:36:27 +0800 Subject: [PATCH 019/228] Create README.zh.md --- 1-Introduction/translations/README.zh.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 1-Introduction/translations/README.zh.md diff --git a/1-Introduction/translations/README.zh.md b/1-Introduction/translations/README.zh.md new file mode 100644 index 00000000..6ed91bac --- /dev/null +++ b/1-Introduction/translations/README.zh.md @@ -0,0 +1,22 @@ +# 机器学习入门 + +课程的本章节将为您介绍机器学习领域背后的基本概念、什么是机器学习,并学习它的历史以及曾为此做出贡献的技术研究者门。让我们一起开始探索机器学习的全新世界吧! + +![globe](images/globe.jpg) +> 图片由 Bill Oxford提供,来自 Unsplash + +### 课程安排 + +1. [机器学习简介](1-intro-to-ML/README.md) +1. [机器学习及人工智能的历史](2-history-of-ML/README.md) +1. [公平性与机器学习](3-fairness/README.md) +1. [机器学习的技术](4-techniques-of-ML/README.md) +### 致谢 + +"机器学习简介"由 [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) 及 [Jen Looper](https://twitter.com/jenlooper),共同倾 ♥️ 而作 + +"机器学习及人工智能历史" 由 [Jen Looper](https://twitter.com/jenlooper) 及 [Amy Boyd](https://twitter.com/AmyKateNicho)倾 ♥️ 而作 + +"公平性与机器学习" 由 [Tomomi Imura](https://twitter.com/girliemac) 倾 ♥️ 而作 + +"机器学习的技术" 由 [Jen Looper](https://twitter.com/jenlooper) 及 [Chris Noring](https://twitter.com/softchris) 倾 ♥️ 而作 From 6015d52f9a9b931b2eccbed6703242280615076f Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Tue, 13 Jul 2021 13:07:15 +0800 Subject: [PATCH 020/228] Rename README.zh.md to README.zh-cn.md --- 1-Introduction/translations/{README.zh.md => README.zh-cn.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 1-Introduction/translations/{README.zh.md => README.zh-cn.md} (100%) diff --git a/1-Introduction/translations/README.zh.md b/1-Introduction/translations/README.zh-cn.md similarity index 100% rename from 1-Introduction/translations/README.zh.md rename to 1-Introduction/translations/README.zh-cn.md From 0974b44742a4d64a79435b97155396f81cabd972 Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Tue, 13 Jul 2021 13:10:36 +0800 Subject: [PATCH 021/228] Update README.zh-cn.md change relative path to translation folders --- 1-Introduction/translations/README.zh-cn.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/1-Introduction/translations/README.zh-cn.md b/1-Introduction/translations/README.zh-cn.md index 6ed91bac..3eb10832 100644 --- a/1-Introduction/translations/README.zh-cn.md +++ b/1-Introduction/translations/README.zh-cn.md @@ -7,10 +7,10 @@ ### 课程安排 -1. [机器学习简介](1-intro-to-ML/README.md) -1. [机器学习及人工智能的历史](2-history-of-ML/README.md) -1. [公平性与机器学习](3-fairness/README.md) -1. [机器学习的技术](4-techniques-of-ML/README.md) +1. [机器学习简介](1-intro-to-ML/translations/README.zh-cn.md) +1. [机器学习及人工智能的历史](2-history-of-ML/translations/README.zh-cn.md) +1. [公平性与机器学习](3-fairness/translations/README.zh-cn.md) +1. [机器学习的技术](4-techniques-of-ML/translations/README.zh-cn.md) ### 致谢 "机器学习简介"由 [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) 及 [Jen Looper](https://twitter.com/jenlooper),共同倾 ♥️ 而作 From 3c97843a72bfbf281eef0c45330952d29a7dbfa0 Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Tue, 13 Jul 2021 13:16:44 +0800 Subject: [PATCH 022/228] Update README.zh-cn.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit update relative path of translations folder of each lessons and align the title。 更新了各个课程的相对路径,并保持标题翻译的一致性 --- 1-Introduction/translations/README.zh-cn.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/1-Introduction/translations/README.zh-cn.md b/1-Introduction/translations/README.zh-cn.md index 3eb10832..534e244e 100644 --- a/1-Introduction/translations/README.zh-cn.md +++ b/1-Introduction/translations/README.zh-cn.md @@ -7,10 +7,10 @@ ### 课程安排 -1. [机器学习简介](1-intro-to-ML/translations/README.zh-cn.md) -1. [机器学习及人工智能的历史](2-history-of-ML/translations/README.zh-cn.md) -1. [公平性与机器学习](3-fairness/translations/README.zh-cn.md) -1. [机器学习的技术](4-techniques-of-ML/translations/README.zh-cn.md) +1. [机器学习简介](../1-intro-to-ML/translations/README.zh-cn.md) +1. [机器学习的历史](../2-history-of-ML/translations/README.zh-cn.md) +1. [机器学习中的公平性](../3-fairness/translations/README.zh-cn.md) +1. [机器学习技术](../4-techniques-of-ML/translations/README.zh-cn.md) ### 致谢 "机器学习简介"由 [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) 及 [Jen Looper](https://twitter.com/jenlooper),共同倾 ♥️ 而作 From 6e8b5f77ce5964db87ae0a4a927fd6dd72ddafc4 Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Tue, 13 Jul 2021 19:50:34 +0800 Subject: [PATCH 023/228] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E7=9B=B8=E5=AF=B9=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 1-Introduction/translations/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/translations/README.zh-cn.md b/1-Introduction/translations/README.zh-cn.md index 534e244e..f1ad8e1e 100644 --- a/1-Introduction/translations/README.zh-cn.md +++ b/1-Introduction/translations/README.zh-cn.md @@ -2,7 +2,7 @@ 课程的本章节将为您介绍机器学习领域背后的基本概念、什么是机器学习,并学习它的历史以及曾为此做出贡献的技术研究者门。让我们一起开始探索机器学习的全新世界吧! -![globe](images/globe.jpg) +![globe](../images/globe.jpg) > 图片由 Bill Oxford提供,来自 Unsplash ### 课程安排 From 168a45bb3f75c6271b6c00b2702ef4d8e52ad0e0 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Tue, 13 Jul 2021 16:16:29 +0000 Subject: [PATCH 024/228] French translation of introduction base README Propose README.fr.md file for the french translation of introduction base README --- 1-Introduction/translations/README.fr.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 1-Introduction/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..63205898 --- /dev/null +++ b/1-Introduction/translations/README.fr.md @@ -0,0 +1,22 @@ +# Introduction à l’apprentissage automatique + +Dans cette section du programme, vous découvrirez les concepts de base sous-jacents au domaine de l'apprentissage automatique, ce qu’il est, et vous découvrirez son histoire et les techniques que les chercheurs utilisent pour travailler avec lui. Explorons ensemble ce nouveau monde de Machine Learning ! + +![globe](images/globe.jpg) +> Photo par Bill Oxford sur Unsplash + +### Leçons + +1. [Introduction à l’apprentissage automatique](1-intro-to-ML/README.md) +1. [L’histoire de l’apprentissage automatique et de l’IA](2-history-of-ML/README.md) +1. [Équité et apprentissage automatique](3-équité/README.md) +1. [Techniques d’apprentissage automatique](4-techniques-of-ML/README.md) +### Crédits + +"Introduction à l’apprentissage automatique" a été écrit avec ♥️ par une équipe de personnes comprenant [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) et [Jen Looper](https://twitter.com/jenlooper) + +"L’histoire de l’apprentissage automatique" a été écrit avec ♥️ par [Jen Looper](https://twitter.com/jenlooper) et [Amy Boyd](https://twitter.com/AmyKateNicho) + +"Équité et apprentissage automatique" a été écrit avec ♥️ par [Tomomi Imura](https://twitter.com/girliemac) + +"Techniques d’apprentissage automatique" a été écrit avec ♥️ par [Jen Looper](https://twitter.com/jenlooper) et [Chris Noring](https://twitter.com/softchris) From d8c701ec6f2e83ddf36c32333950ae06740cb003 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Tue, 13 Jul 2021 16:18:23 +0000 Subject: [PATCH 025/228] fix image link --- 1-Introduction/translations/README.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/translations/README.fr.md b/1-Introduction/translations/README.fr.md index 63205898..d9fde678 100644 --- a/1-Introduction/translations/README.fr.md +++ b/1-Introduction/translations/README.fr.md @@ -2,7 +2,7 @@ Dans cette section du programme, vous découvrirez les concepts de base sous-jacents au domaine de l'apprentissage automatique, ce qu’il est, et vous découvrirez son histoire et les techniques que les chercheurs utilisent pour travailler avec lui. Explorons ensemble ce nouveau monde de Machine Learning ! -![globe](images/globe.jpg) +![globe](../images/globe.jpg) > Photo par Bill Oxford sur Unsplash ### Leçons From f7469d105668567a5147adfffc320072b4add770 Mon Sep 17 00:00:00 2001 From: duanyang25 <34642309+duanyang25@users.noreply.github.com> Date: Wed, 14 Jul 2021 00:40:33 +0800 Subject: [PATCH 026/228] Create README.zh-cn.md translate README to Simplified Chinese --- 9-Real-World/translations/README.zh-cn.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 9-Real-World/translations/README.zh-cn.md diff --git a/9-Real-World/translations/README.zh-cn.md b/9-Real-World/translations/README.zh-cn.md new file mode 100644 index 00000000..58bcb420 --- /dev/null +++ b/9-Real-World/translations/README.zh-cn.md @@ -0,0 +1,14 @@ +# 附言: 经典机器学习在现实生活中的应用 + +在课程的这一章节中,你将会了解一些经典机器学习的现实应用。我们在网络上找遍了涉及课程中这些技术的应用的白皮书和文章,从中尽力排除了神经网络、深度学习和AI。让我们一起来探索机器学习是如何被应用在商业系统、生态应用、金融、艺术文化和其他领域中吧。 + +![chess](images/chess.jpg) + +> 照片由 Alexis Fauvet 拍摄并发布在 Unsplash 平台 + +## 课程安排 + +1. [机器学习的现实应用](1-Applications/README.md) +## 致谢 + +"机器学习的现实应用" 由 [Jen Looper](https://twitter.com/jenlooper) 和 [Ornella Altunyan](https://twitter.com/ornelladotcom) 两人的团队共同撰写. From 083a024c836f3972229daf8b063c3caa76e18f85 Mon Sep 17 00:00:00 2001 From: duanyang25 <34642309+duanyang25@users.noreply.github.com> Date: Wed, 14 Jul 2021 00:53:02 +0800 Subject: [PATCH 027/228] Update README.zh-cn.md Update relative paths --- 9-Real-World/translations/README.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/9-Real-World/translations/README.zh-cn.md b/9-Real-World/translations/README.zh-cn.md index 58bcb420..89cae2cb 100644 --- a/9-Real-World/translations/README.zh-cn.md +++ b/9-Real-World/translations/README.zh-cn.md @@ -2,13 +2,13 @@ 在课程的这一章节中,你将会了解一些经典机器学习的现实应用。我们在网络上找遍了涉及课程中这些技术的应用的白皮书和文章,从中尽力排除了神经网络、深度学习和AI。让我们一起来探索机器学习是如何被应用在商业系统、生态应用、金融、艺术文化和其他领域中吧。 -![chess](images/chess.jpg) +![chess](../images/chess.jpg) > 照片由 Alexis Fauvet 拍摄并发布在 Unsplash 平台 ## 课程安排 -1. [机器学习的现实应用](1-Applications/README.md) +1. [机器学习的现实应用](../1-Applications/README.md) ## 致谢 "机器学习的现实应用" 由 [Jen Looper](https://twitter.com/jenlooper) 和 [Ornella Altunyan](https://twitter.com/ornelladotcom) 两人的团队共同撰写. From e062028016ede3c0006a9b7ba9a2f6c57ca382b7 Mon Sep 17 00:00:00 2001 From: edgargonarr <35715904+edgargonarr@users.noreply.github.com> Date: Tue, 13 Jul 2021 17:41:46 -0500 Subject: [PATCH 028/228] Update README.md --- 3-Web-App/1-Web-App/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3-Web-App/1-Web-App/README.md b/3-Web-App/1-Web-App/README.md index 6150aece..7c91acb5 100644 --- a/3-Web-App/1-Web-App/README.md +++ b/3-Web-App/1-Web-App/README.md @@ -165,7 +165,7 @@ Now you can build a Flask app to call your model and return similar results, but web-app/ static/ css/ - templates/ + templates/ notebook.ipynb ufo-model.pkl ``` From dbafeac18d3a742da75629f8f1b9d13318a6106b Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Wed, 14 Jul 2021 00:39:51 +0000 Subject: [PATCH 029/228] Keep "Machine learning" term in fr translation Keep "Machine learning" term in fr translation --- 1-Introduction/translations/README.fr.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/1-Introduction/translations/README.fr.md b/1-Introduction/translations/README.fr.md index d9fde678..c27f9bef 100644 --- a/1-Introduction/translations/README.fr.md +++ b/1-Introduction/translations/README.fr.md @@ -1,22 +1,22 @@ -# Introduction à l’apprentissage automatique +# Introduction au machine learning -Dans cette section du programme, vous découvrirez les concepts de base sous-jacents au domaine de l'apprentissage automatique, ce qu’il est, et vous découvrirez son histoire et les techniques que les chercheurs utilisent pour travailler avec lui. Explorons ensemble ce nouveau monde de Machine Learning ! +Dans cette section du programme, vous découvrirez les concepts de base sous-jacents au domaine du machine learning, ce qu’il est, et vous découvrirez son histoire et les techniques que les chercheurs utilisent pour travailler avec lui. Explorons ensemble ce nouveau monde de ML ! ![globe](../images/globe.jpg) > Photo par Bill Oxford sur Unsplash ### Leçons -1. [Introduction à l’apprentissage automatique](1-intro-to-ML/README.md) -1. [L’histoire de l’apprentissage automatique et de l’IA](2-history-of-ML/README.md) -1. [Équité et apprentissage automatique](3-équité/README.md) -1. [Techniques d’apprentissage automatique](4-techniques-of-ML/README.md) +1. [Introduction au machine learning](1-intro-to-ML/README.md) +1. [L’histoire du machine learning et de l’IA](2-history-of-ML/README.md) +1. [Équité et machine learning](3-équité/README.md) +1. [Techniques de machine learning](4-techniques-of-ML/README.md) ### Crédits -"Introduction à l’apprentissage automatique" a été écrit avec ♥️ par une équipe de personnes comprenant [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) et [Jen Looper](https://twitter.com/jenlooper) +"Introduction au machine learning" a été écrit avec ♥️ par une équipe de personnes comprenant [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) et [Jen Looper](https://twitter.com/jenlooper) -"L’histoire de l’apprentissage automatique" a été écrit avec ♥️ par [Jen Looper](https://twitter.com/jenlooper) et [Amy Boyd](https://twitter.com/AmyKateNicho) +"L’histoire du machine learning" a été écrit avec ♥️ par [Jen Looper](https://twitter.com/jenlooper) et [Amy Boyd](https://twitter.com/AmyKateNicho) -"Équité et apprentissage automatique" a été écrit avec ♥️ par [Tomomi Imura](https://twitter.com/girliemac) +"Équité et machine learning" a été écrit avec ♥️ par [Tomomi Imura](https://twitter.com/girliemac) -"Techniques d’apprentissage automatique" a été écrit avec ♥️ par [Jen Looper](https://twitter.com/jenlooper) et [Chris Noring](https://twitter.com/softchris) +"Techniques de machine learning" a été écrit avec ♥️ par [Jen Looper](https://twitter.com/jenlooper) et [Chris Noring](https://twitter.com/softchris) From 721ec86311781b23a4f35a0c145bfa8d323305f5 Mon Sep 17 00:00:00 2001 From: edgargonarr <35715904+edgargonarr@users.noreply.github.com> Date: Tue, 13 Jul 2021 23:25:37 -0500 Subject: [PATCH 030/228] Update README.md In line 178, templates folder seems to be inside of static folder and this condition gives notfoundtemplate error. I suggest delete one tab, I discovered this solution because I sew your solutions folder on github where locations is correct --- 3-Web-App/1-Web-App/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3-Web-App/1-Web-App/README.md b/3-Web-App/1-Web-App/README.md index 6150aece..7c91acb5 100644 --- a/3-Web-App/1-Web-App/README.md +++ b/3-Web-App/1-Web-App/README.md @@ -165,7 +165,7 @@ Now you can build a Flask app to call your model and return similar results, but web-app/ static/ css/ - templates/ + templates/ notebook.ipynb ufo-model.pkl ``` From 16e145ca87c05085b52db104d8e644490bd1f020 Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Wed, 14 Jul 2021 12:40:33 +0800 Subject: [PATCH 031/228] Update README.zh-cn.md --- .../1-Web-App/translations/README.zh-cn.md | 162 +++++++++--------- 1 file changed, 81 insertions(+), 81 deletions(-) diff --git a/3-Web-App/1-Web-App/translations/README.zh-cn.md b/3-Web-App/1-Web-App/translations/README.zh-cn.md index 6150aece..cb8a051c 100644 --- a/3-Web-App/1-Web-App/translations/README.zh-cn.md +++ b/3-Web-App/1-Web-App/translations/README.zh-cn.md @@ -1,58 +1,58 @@ -# Build a Web App to use a ML Model +# 构建使用ML模型的Web应用程序 -In this lesson, you will train an ML model on a data set that's out of this world: _UFO sightings over the past century_, sourced from [NUFORC's database](https://www.nuforc.org). +在本课中,你将在一个数据集上训练一个ML模型,这个数据集来自世界各地:过去一个世纪的UFO目击事件,来源于[NUFORC的数据库](https://www.nuforc.org)。 -You will learn: +你将学会: -- How to 'pickle' a trained model -- How to use that model in a Flask app +- 如何“pickle”一个训练有素的模型 +- 如何在Flask应用程序中使用该模型 -We will continue our use of notebooks to clean data and train our model, but you can take the process one step further by exploring using a model 'in the wild', so to speak: in a web app. +我们将继续使用notebook来清理数据和训练我们的模型,但你可以进一步探索在web应用程序中使用模型。 -To do this, you need to build a web app using Flask. +为此,你需要使用Flask构建一个web应用程序。 -## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/17/) +## [课前测](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/17/) -## Building an app +## 构建应用程序 -There are several ways to build web apps to consume machine learning models. Your web architecture may influence the way your model is trained. Imagine that you are working in a business where the data science group has trained a model that they want you to use in an app. +有多种方法可以构建Web应用程序以使用机器学习模型。你的web架构可能会影响你的模型训练方式。想象一下,你在一家企业工作,其中数据科学小组已经训练了他们希望你在应用程序中使用的模型。 -### Considerations +### 注意事项 -There are many questions you need to ask: +你需要问很多问题: -- **Is it a web app or a mobile app?** If you are building a mobile app or need to use the model in an IoT context, you could use [TensorFlow Lite](https://www.tensorflow.org/lite/) and use the model in an Android or iOS app. -- **Where will the model reside**? In the cloud or locally? -- **Offline support**. Does the app have to work offline? -- **What technology was used to train the model?** The chosen technology may influence the tooling you need to use. - - **Using Tensor flow**. If you are training a model using TensorFlow, for example, that ecosystem provides the ability to convert a TensorFlow model for use in a web app by using [TensorFlow.js](https://www.tensorflow.org/js/). - - **Using PyTorch**. If you are building a model using a library such as [PyTorch](https://pytorch.org/), you have the option to export it in [ONNX](https://onnx.ai/) (Open Neural Network Exchange) format for use in JavaScript web apps that can use the [Onnx Runtime](https://www.onnxruntime.ai/). This option will be explored in a future lesson for a Scikit-learn-trained model. - - **Using Lobe.ai or Azure Custom vision**. If you are using an ML SaaS (Software as a Service) system such as [Lobe.ai](https://lobe.ai/) or [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-15963-cxa) to train a model, this type of software provides ways to export the model for many platforms, including building a bespoke API to be queried in the cloud by your online application. +- **它是web应用程序还是移动应用程序?**如果你正在构建移动应用程序或需要在物联网环境中使用模型,你可以使用[TensorFlow Lite](https://www.tensorflow.org/lite/)并在Android或iOS应用程序中使用该模型。 +- **模型放在哪里?**在云端还是本地? +- **离线支持**。该应用程序是否必须离线工作? +- **使用什么技术来训练模型?**所选的技术可能会影响你需要使用的工具。 + - **使用Tensor flow**。例如,如果你正在使用TensorFlow训练模型,则该生态系统提供了使用[TensorFlow.js](https://www.tensorflow.org/js/)转换TensorFlow模型以便在Web应用程序中使用的能力。 + - **使用 PyTorch**。如果你使用[PyTorch](https://pytorch.org/)等库构建模型,则可以选择将其导出到[ONNX](https://onnx.ai/)(开放神经网络交换)格式,用于可以使用 [Onnx Runtime](https://www.onnxruntime.ai/)的JavaScript Web 应用程序。此选项将在Scikit-learn-trained模型的未来课程中进行探讨。 + - **使用Lobe.ai或Azure自定义视觉**。如果你使用ML SaaS(软件即服务)系统,例如[Lobe.ai](https://lobe.ai/)或[Azure Custom Vision](https://azure.microsoft.com/services/ cognitive-services/custom-vision-service/?WT.mc_id=academic-15963-cxa)来训练模型,这种类型的软件提供了为许多平台导出模型的方法,包括构建一个定制API,供在线应用程序在云中查询。 -You also have the opportunity to build an entire Flask web app that would be able to train the model itself in a web browser. This can also be done using TensorFlow.js in a JavaScript context. +你还有机会构建一个完整的Flask Web应用程序,该应用程序能够在 Web浏览器中训练模型本身。这也可以在JavaScript上下文中使用 TensorFlow.js来完成。 -For our purposes, since we have been working with Python-based notebooks, let's explore the steps you need to take to export a trained model from such a notebook to a format readable by a Python-built web app. +出于我们的目的,既然我们一直在使用基于Python的notebook,那么就让我们探讨一下将经过训练的模型从notebook导出为Python构建的web应用程序可读的格式所需要采取的步骤。 -## Tool +## 工具 -For this task, you need two tools: Flask and Pickle, both of which run on Python. +对于此任务,你需要两个工具:Flask和Pickle,它们都在Python上运行。 -✅ What's [Flask](https://palletsprojects.com/p/flask/)? Defined as a 'micro-framework' by its creators, Flask provides the basic features of web frameworks using Python and a templating engine to build web pages. Take a look at [this Learn module](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-15963-cxa) to practice building with Flask. +✅ 什么是 [Flask](https://palletsprojects.com/p/flask/)? Flask被其创建者定义为“微框架”,它提供了使用Python和模板引擎构建网页的Web框架的基本功能。看看[本学习单元](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-15963-cxa)练习使用Flask构建应用程序。 -✅ What's [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 is a Python module that serializes and de-serializes a Python object structure. When you 'pickle' a model, you serialize or flatten its structure for use on the web. Be careful: pickle is not intrinsically secure, so be careful if prompted to 'un-pickle' a file. A pickled file has the suffix `.pkl`. +✅ 什么是[Pickle](https://docs.python.org/3/library/pickle.html)? Pickle🥒是一 Python模块,用于序列化和反序列化 Python对象结构。当你“pickle”一个模型时,你将其结构序列化或展平以在 Web上使用。小心:pickle本质上不是安全的,所以如果提示“un-pickle”文件,请小心。生产的文件具有后缀`.pkl`。 -## Exercise - clean your data +## 练习 - 清理你的数据 -In this lesson you'll use data from 80,000 UFO sightings, gathered by [NUFORC](https://nuforc.org) (The National UFO Reporting Center). This data has some interesting descriptions of UFO sightings, for example: +在本课中,你将使用由 [NUFORC](https://nuforc.org)(国家 UFO 报告中心)收集的80,000次UFO目击数据。这些数据对UFO目击事件有一些有趣的描述,例如: -- **Long example description**. "A man emerges from a beam of light that shines on a grassy field at night and he runs towards the Texas Instruments parking lot". -- **Short example description**. "the lights chased us". +- **详细描述**。"一名男子从夜间照射在草地上的光束中出现,他朝德克萨斯仪器公司的停车场跑去"。 +- **简短描述**。 “灯光追着我们”。 -The [ufos.csv](./data/ufos.csv) spreadsheet includes columns about the `city`, `state` and `country` where the sighting occurred, the object's `shape` and its `latitude` and `longitude`. +[ufos.csv](./data/ufos.csv)电子表格包括有关目击事件发生的`city`、`state`和`country`、对象的`shape`及其`latitude`和`longitude`的列。 -In the blank [notebook](notebook.ipynb) included in this lesson: +在包含在本课中的空白[notebook](notebook.ipynb)中: -1. import `pandas`, `matplotlib`, and `numpy` as you did in previous lessons and import the ufos spreadsheet. You can take a look at a sample data set: +1. 像在之前的课程中一样导入`pandas`、`matplotlib`和`numpy`,然后导入ufos电子表格。你可以查看一个示例数据集: ```python import pandas as pd @@ -62,7 +62,7 @@ In the blank [notebook](notebook.ipynb) included in this lesson: ufos.head() ``` -1. Convert the ufos data to a small dataframe with fresh titles. Check the unique values in the `Country` field. +2. 将ufos数据转换为带有新标题的小dataframe。检查`country`字段中的唯一值。 ```python ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']}) @@ -70,7 +70,7 @@ In the blank [notebook](notebook.ipynb) included in this lesson: ufos.Country.unique() ``` -1. Now, you can reduce the amount of data we need to deal with by dropping any null values and only importing sightings between 1-60 seconds: +3. 现在,你可以通过删除任何空值并仅导入1-60秒之间的目击数据来减少我们需要处理的数据量: ```python ufos.dropna(inplace=True) @@ -80,9 +80,9 @@ In the blank [notebook](notebook.ipynb) included in this lesson: ufos.info() ``` -1. Import Scikit-learn's `LabelEncoder` library to convert the text values for countries to a number: +4. 导入Scikit-learn的`LabelEncoder`库,将国家的文本值转换为数字: - ✅ LabelEncoder encodes data alphabetically + ✅ LabelEncoder按字母顺序编码数据 ```python from sklearn.preprocessing import LabelEncoder @@ -92,7 +92,7 @@ In the blank [notebook](notebook.ipynb) included in this lesson: ufos.head() ``` - Your data should look like this: + 你的数据应如下所示: ```output Seconds Country Latitude Longitude @@ -103,11 +103,11 @@ In the blank [notebook](notebook.ipynb) included in this lesson: 24 3.0 3 51.783333 -0.783333 ``` -## Exercise - build your model +## 练习 - 建立你的模型 -Now you can get ready to train a model by diving the data into the training and testing group. +现在,你可以通过将数据划分为训练和测试组来准备训练模型。 -1. Select the three features you want to train on as your X vector, and the y vector will be the `Country`. You want to be able to input `Seconds`, `Latitude` and `Longitude` and get a country id to return. +1. 选择要训练的三个特征作为X向量,y向量将是`Country` 你希望能够输入`Seconds`、`Latitude`和`Longitude`并获得要返回的国家/地区ID。 ```python from sklearn.model_selection import train_test_split @@ -120,7 +120,7 @@ Now you can get ready to train a model by diving the data into the training and X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) ``` -1. Train your model using logistic regression: +2. 使用逻辑回归训练模型: ```python from sklearn.metrics import accuracy_score, classification_report @@ -134,13 +134,13 @@ Now you can get ready to train a model by diving the data into the training and print('Accuracy: ', accuracy_score(y_test, predictions)) ``` -The accuracy isn't bad **(around 95%)**, unsurprisingly, as `Country` and `Latitude/Longitude` correlate. +准确率还不错**(大约 95%)**,不出所料,因为`Country`和`Latitude/Longitude`相关。 -The model you created isn't very revolutionary as you should be able to infer a `Country` from its `Latitude` and `Longitude`, but it's a good exercise to try to train from raw data that you cleaned, exported, and then use this model in a web app. +你创建的模型并不是非常具有革命性,因为你应该能够从其`Latitude`和`Longitude`推断出`Country`,但是,尝试从清理、导出的原始数据进行训练,然后在web应用程序中使用此模型是一个很好的练习。 -## Exercise - 'pickle' your model +## 练习 - “pickle”你的模型 -Now, it's time to _pickle_ your model! You can do that in a few lines of code. Once it's _pickled_, load your pickled model and test it against a sample data array containing values for seconds, latitude and longitude, +现在,是时候_pickle_你的模型了!你可以在几行代码中做到这一点。一旦它是 _pickled_,加载你的pickled模型并针对包含秒、纬度和经度值的示例数据数组对其进行测试, ```python import pickle @@ -151,15 +151,15 @@ model = pickle.load(open('ufo-model.pkl','rb')) print(model.predict([[50,44,-12]])) ``` -The model returns **'3'**, which is the country code for the UK. Wild! 👽 +该模型返回**'3'**,这是英国的国家代码。👽 -## Exercise - build a Flask app +## 练习 - 构建Flask应用程序 -Now you can build a Flask app to call your model and return similar results, but in a more visually pleasing way. +现在你可以构建一个Flask应用程序来调用你的模型并返回类似的结果,但以一种更美观的方式。 -1. Start by creating a folder called **web-app** next to the _notebook.ipynb_ file where your _ufo-model.pkl_ file resides. +1. 首先在你的 _ufo-model.pkl_ 文件所在的_notebook.ipynb_文件旁边创建一个名为**web-app**的文件夹。 -1. In that folder create three more folders: **static**, with a folder **css** inside it, and **templates`**. You should now have the following files and directories: +2. 在该文件夹中创建另外三个文件夹:**static**,其中有文件夹**css**和**templates`**。 你现在应该拥有以下文件和目录 ```output web-app/ @@ -170,9 +170,9 @@ Now you can build a Flask app to call your model and return similar results, but ufo-model.pkl ``` - ✅ Refer to the solution folder for a view of the finished app + ✅ 请参阅解决方案文件夹以查看已完成的应用程序 -1. The first file to create in _web-app_ folder is **requirements.txt** file. Like _package.json_ in a JavaScript app, this file lists dependencies required by the app. In **requirements.txt** add the lines: +3. 在_web-app_文件夹中创建的第一个文件是**requirements.txt**文件。与JavaScript应用程序中的_package.json_一样,此文件列出了应用程序所需的依赖项。在**requirements.txt**中添加以下几行: ```text scikit-learn @@ -181,25 +181,25 @@ Now you can build a Flask app to call your model and return similar results, but flask ``` -1. Now, run this file by navigating to _web-app_: +4. 现在,进入web-app文件夹: ```bash cd web-app ``` -1. In your terminal type `pip install`, to install the libraries listed in _reuirements.txt_: +5. 在你的终端中输入`pip install`,以安装_reuirements.txt_中列出的库: ```bash pip install -r requirements.txt ``` -1. Now, you're ready to create three more files to finish the app: +6. 现在,你已准备好创建另外三个文件来完成应用程序: - 1. Create **app.py** in the root - 2. Create **index.html** in _templates_ directory. - 3. Create **styles.css** in _static/css_ directory. + 1. 在根目录中创建**app.py** + 2. 在_templates_目录中创建**index.html**。 + 3. 在_static/css_目录中创建**styles.css**。 -1. Build out the _styles.css__ file with a few styles: +7. 使用一些样式构建_styles.css_文件: ```css body { @@ -233,7 +233,7 @@ Now you can build a Flask app to call your model and return similar results, but } ``` -1. Next, build out the _index.html_ file: +8. 接下来,构建_index.html_文件: ```html @@ -268,11 +268,11 @@ Now you can build a Flask app to call your model and return similar results, but ``` - Take a look at the templating in this file. Notice the 'mustache' syntax around variables that will be provided by the app, like the prediction text: `{{}}`. There's also a form that posts a prediction to the `/predict` route. + 看看这个文件中的模板。请注意应用程序将提供的变量周围的“mustache”语法,例如预测文本:`{{}}`。还有一个表单可以将预测发布到`/predict`路由。 - Finally, you're ready to build the python file that drives the consumption of the model and the display of predictions: + 最后,你已准备好构建使用模型和显示预测的python 文件: -1. In `app.py` add: +9. 在`app.py`中添加: ```python import numpy as np @@ -309,39 +309,39 @@ Now you can build a Flask app to call your model and return similar results, but app.run(debug=True) ``` - > 💡 Tip: when you add [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) while running the web app using Flask, any changes you make to your application will be reflected immediately without the need to restart the server. Beware! Don't enable this mode in a production app. + > 💡 提示:当你在使用Flask运行Web应用程序时添加 [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode)时你对应用程序所做的任何更改将立即反映,无需重新启动服务器。注意!不要在生产应用程序中启用此模式 -If you run `python app.py` or `python3 app.py` - your web server starts up, locally, and you can fill out a short form to get an answer to your burning question about where UFOs have been sighted! +如果你运行`python app.py`或`python3 app.py` - 你的网络服务器在本地启动,你可以填写一个简短的表格来回答你关于在哪里看到UFO的问题! -Before doing that, take a look at the parts of `app.py`: +在此之前,先看一下`app.py`的实现: -1. First, dependencies are loaded and the app starts. -1. Then, the model is imported. -1. Then, index.html is rendered on the home route. +1. 首先,加载依赖项并启动应用程序。 +2. 然后,导入模型。 +3. 然后,在home路由上渲染index.html。 -On the `/predict` route, several things happen when the form is posted: +在`/predict`路由上,当表单被发布时会发生几件事情: -1. The form variables are gathered and converted to a numpy array. They are then sent to the model and a prediction is returned. -2. The Countries that we want displayed are re-rendered as readable text from their predicted country code, and that value is sent back to index.html to be rendered in the template. +1. 收集表单变量并转换为numpy数组。然后将它们发送到模型并返回预测。 +2. 我们希望显示的国家/地区根据其预测的国家/地区代码重新呈现为可读文本,并将该值发送回index.html以在模板中呈现。 -Using a model this way, with Flask and a pickled model, is relatively straightforward. The hardest thing is to understand what shape the data is that must be sent to the model to get a prediction. That all depends on how the model was trained. This one has three data points to be input in order to get a prediction. +以这种方式使用模型,包括Flask和pickled模型,是相对简单的。最困难的是要理解数据是什么形状的,这些数据必须发送到模型中才能得到预测。这完全取决于模型是如何训练的。有三个数据要输入,以便得到一个预测。 -In a professional setting, you can see how good communication is necessary between the folks who train the model and those who consume it in a web or mobile app. In our case, it's only one person, you! +在一个专业的环境中,你可以看到训练模型的人和在Web或移动应用程序中使用模型的人之间的良好沟通是多么的必要。在我们的情况下,只有一个人,你! --- -## 🚀 Challenge: +## 🚀 挑战: -Instead of working in a notebook and importing the model to the Flask app, you could train the model right within the Flask app! Try converting your Python code in the notebook, perhaps after your data is cleaned, to train the model from within the app on a route called `train`. What are the pros and cons of pursuing this method? +你可以在Flask应用程序中训练模型,而不是在notebook上工作并将模型导入Flask应用程序!尝试在notebook中转换Python代码,可能是在清除数据之后,从应用程序中的一个名为`train`的路径训练模型。采用这种方法的利弊是什么? -## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/18/) +## [课后测](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/18/) -## Review & Self Study +## 复习与自学 -There are many ways to build a web app to consume ML models. Make a list of the ways you could use JavaScript or Python to build a web app to leverage machine learning. Consider architecture: should the model stay in the app or live in the cloud? If the latter, how would you access it? Draw out an architectural model for an applied ML web solution. +有很多方法可以构建一个Web应用程序来使用ML模型。列出可以使用JavaScript或Python构建Web应用程序以利用机器学习的方法。考虑架构:模型应该留在应用程序中还是存在于云中?如果是后者,你将如何访问它?为应用的ML Web解决方案绘制架构模型。 -## Assignment +## 任务 -[Try a different model](assignment.md) +[尝试不同的模型](../assignment.md) From e975db0a74cf8ba14780cc2775a1d0d99f13e275 Mon Sep 17 00:00:00 2001 From: lty <247969917@qq.com> Date: Wed, 14 Jul 2021 18:14:43 +0800 Subject: [PATCH 032/228] Fix a spelling error in README.md --- 6-NLP/1-Introduction-to-NLP/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-NLP/1-Introduction-to-NLP/README.md b/6-NLP/1-Introduction-to-NLP/README.md index 0d47a1d7..227ad589 100644 --- a/6-NLP/1-Introduction-to-NLP/README.md +++ b/6-NLP/1-Introduction-to-NLP/README.md @@ -81,7 +81,7 @@ This gave the impression that Eliza understood the statement and was asking a fo ## Exercise - coding a basic conversational bot -A conversational bot, like Eliza, is a program that elicits user input and seems to understand and respond intelligently. Unlike Eliza, our bot will not have several rules giving it the appearance of having an intelligent conversation. Instead, out bot will have one ability only, to keep the conversation going with random responses that might work in almost any trivial conversation. +A conversational bot, like Eliza, is a program that elicits user input and seems to understand and respond intelligently. Unlike Eliza, our bot will not have several rules giving it the appearance of having an intelligent conversation. Instead, our bot will have one ability only, to keep the conversation going with random responses that might work in almost any trivial conversation. ### The plan From 5f225d0063e3bce27429a00df83ac2b973b47925 Mon Sep 17 00:00:00 2001 From: lty <247969917@qq.com> Date: Wed, 14 Jul 2021 18:19:45 +0800 Subject: [PATCH 033/228] Add 6.1 Chinese and English README.md --- .../translations/README.zh-cn.md | 225 ++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md diff --git a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md new file mode 100644 index 00000000..06ed9ca0 --- /dev/null +++ b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md @@ -0,0 +1,225 @@ +# Introduction to natural language processing +# 自然语言处理介绍 +This lesson covers a brief history and important concepts of *natural language processing*, a subfield of *computational linguistics*. +这节课讲解了*自然语言处理*简要历史和重要概念,*自然语言处理*是计算语言学的一个子领域。 +## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/31/) + +## Introduction +## 介绍 +NLP, as it is commonly known, is one of the best-known areas where machine learning has been applied and used in production software. +众所周知,自然语言处理(Natural Language Processing, NLP)是机器学习在生产软件中应用最广泛的领域之一。 + +✅ Can you think of software that you use every day that probably has some NLP embedded? What about your word processing programs or mobile apps that you use regularly? + +✅你能想到哪些你日常生活中使用的软件嵌入了某些自然语言处理技术呢?你经常使用的文字处理程序或移动应用程序是否嵌入了自然语言处理技术呢? + +You will learn about: +你将会学习到: + +- **The idea of languages**. How languages developed and what the major areas of study have been. +- **Definition and concepts**. You will also learn definitions and concepts about how computers process text, including parsing, grammar, and identifying nouns and verbs. There are some coding tasks in this lesson, and several important concepts are introduced that you will learn to code later on in the next lessons. +- **语言的思想**. 语言的发展历程及主要研究领域. +- **定义和概念**. 你还将学习到有关计算机如何处理文本的定义和概念,包括解析、语法以及名词和动词的识别。本节课程包含一些编码任务并介绍了几个重要的概念,你将在下一节课中学习编码实现这些概念。 + +## Computational linguistics +## 计算语言学 + +Computational linguistics is an area of research and development over many decades that studies how computers can work with, and even understand, translate, and communicate with languages. natural language processing (NLP) is a related field focused on how computers can process 'natural', or human, languages. +计算语言学是一个经过几十年研究和发展的领域,它研究计算机如何使用语言、理解语言、翻译语言及使用语言交流。自然语言处理(NLP)是计算语言学中一个专注于计算机如何处理“自然”或人类语言的相关领域, + +### Example - phone dictation +### 例子 - 电话号码识别 + +If you have ever dictated to your phone instead of typing or asked a virtual assistant a question, your speech was converted into a text form and then processed or *parsed* from the language you spoke. The detected keywords were then processed into a format that the phone or assistant could understand and act on. +如果你曾经在手机上使用语音输入替代键盘输入或者向语音助手小娜提问,那么你的语音将被转录为文本形式后进行处理或者叫*解析*。被检测到的关键字最后将被处理成手机或语音助手可以理解并采取行动的格式。 + +![comprehension](images/comprehension.png) +> Real linguistic comprehension is hard! Image by [Jen Looper](https://twitter.com/jenlooper) +> 真实的语言理解十分困难!图源:[Jen Looper](https://twitter.com/jenlooper) + +### How is this technology made possible? +### 这项技术是如何实现的? + +This is possible because someone wrote a computer program to do this. A few decades ago, some science fiction writers predicted that people would mostly speak to their computers, and the computers would always understand exactly what they meant. Sadly, it turned out to be a harder problem that many imagined, and while it is a much better understood problem today, there are significant challenges in achieving 'perfect' natural language processing when it comes to understanding the meaning of a sentence. This is a particularly hard problem when it comes to understanding humour or detecting emotions such as sarcasm in a sentence. +有人编写了一个计算机程序来实现这项技术。几十年前,一些科幻作家预测人类很大可能会和他们的电脑对话,而电脑总是能准确地理解人类的意思。可惜的是,事实证明这是一个比许多人想象中更难实现的问题,虽然今天这个问题已经被初步解决,但在理解句子的含义时,要实现“完美”的自然语言处理仍然存在重大挑战。句子中的幽默理解或讽刺等情绪的检测是一个特别困难的问题。 + +At this point, you may be remembering school classes where the teacher covered the parts of grammar in a sentence. In some countries, students are taught grammar and linguistics as a dedicated subject, but in many, these topics are included as part of learning a language: either your first language in primary school (learning to read and write) and perhaps a second language in post-primary, or high school. Don't worry if you are not an expert at differentiating nouns from verbs or adverbs from adjectives! +此时,你可能会想起学校课堂上老师讲解的部分句子语法。在某些国家/地区,语法和语言学知识是学生的专题课内容。但在另一些国家/地区,不管是在小学时的第一语言(学习阅读和写作),或者在高年级及高中时学习的第二语言中,语法及语言学知识是作为学习语言的一部分教学的。如果你不能很好地区分名词与动词或者区分副词与形容词,请不要担心! + +If you struggle with the difference between the *simple present* and *present progressive*, you are not alone. This is a challenging thing for many people, even native speakers of a language. The good news is that computers are really good at applying formal rules, and you will learn to write code that can *parse* a sentence as well as a human. The greater challenge you will examine later is understanding the *meaning*, and *sentiment*, of a sentence. +如果你还为区分*一般现在时*与*现在进行时*而烦恼,你并不是一个人。即使是对以这门语言为母语的人在内的很多人来说这都是一项有挑战性的任务。好消息是,计算机非常善于应用标准的规则,你将学会编写可以像人一样"解析"句子的代码。稍后你将面对的更大挑战是理解句子的*语义*和*情绪*。 + +## Prerequisites +## 前提 + +For this lesson, the main prerequisite is being able to read and understand the language of this lesson. There are no math problems or equations to solve. While the original author wrote this lesson in English, it is also translated into other languages, so you could be reading a translation. There are examples where a number of different languages are used (to compare the different grammar rules of different languages). These are *not* translated, but the explanatory text is, so the meaning should be clear. +本节教程的主要先决条件是能够阅读和理解本节教程的语言。本节中没有数学问题或方程需要解决。虽然原作者用英文写了这教程,但它也被翻译成其他语言,所以你可能在阅读翻译内容。有使用多种不同语言的示例(以比较不同语言的不同语法规则)。这些是*未*翻译的,但解释性文本是翻译内容,所以表义应当是清晰的。 + +For the coding tasks, you will use Python and the examples are using Python 3.8. +编程任务中,你将会使用Python语言,示例使用的是Python 3.8版本。 + +In this section, you will need, and use: +在本节中你将需要并使用: + +- **Python 3 comprehension**. Programming language comprehension in Python 3, this lesson uses input, loops, file reading, arrays. +- **Visual Studio Code + extension**. We will use Visual Studio Code and its Python extension. You can also use a Python IDE of your choice. +- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) is a simplified text processing library for Python. Follow the instructions on the TextBlob site to install it on your system (install the corpora as well, as shown below): +- **Python 3 理解**. Python 3中的编程语言理解,本课使用输入、循环、文件读取、数组。 +- **Visual Studio Code + 扩展**. 我们将使用 Visual Studio Code 及其 Python 扩展。你还可以使用你选择的 Python IDE。 +- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob)是一个简化的 Python 文本处理库。按照 TextBlob 网站上的说明在您的系统上安装它(也安装语料库,如下所示): +- + ```bash + pip install -U textblob + python -m textblob.download_corpora + ``` + +> 💡 Tip: You can run Python directly in VS Code environments. Check the [docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-15963-cxa) for more information. +> 💡 提示:可以在 VS Code 环境中直接运行 Python。 点击[docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-15963-cxa)查看更多信息。 + +## Talking to machines +## 与机器对话 + +The history of trying to make computers understand human language goes back decades, and one of the earliest scientists to consider natural language processing was *Alan Turing*. +试图让计算机理解人类语言的历史可以追溯到几十年前,最早考虑自然语言处理的科学家之一是 *Alan Turing*。 + +### The 'Turing test' +### 图灵测试 + + +When Turing was researching *artificial intelligence* in the 1950's, he considered if a conversational test could be given to a human and computer (via typed correspondence) where the human in the conversation was not sure if they were conversing with another human or a computer. +当图灵在1950年代研究*人工智能*时,他考虑是否可以对人和计算机进行对话测试(通过打字对应),其中对话中的人不确定他们是在与另一个人交谈还是与计算机交谈. + +If, after a certain length of conversation, the human could not determine that the answers were from a computer or not, then could the computer be said to be *thinking*? +如果经过一定时间的交谈,人类无法确定答案是否来自计算机,那么是否可以说计算机正在“思考”? + +### The inspiration - 'the imitation game' +### 灵感 - “模仿游戏” + +The idea for this came from a party game called *The Imitation Game* where an interrogator is alone in a room and tasked with determining which of two people (in another room) are male and female respectively. The interrogator can send notes, and must try to think of questions where the written answers reveal the gender of the mystery person. Of course, the players in the other room are trying to trick the interrogator by answering questions in such as way as to mislead or confuse the interrogator, whilst also giving the appearance of answering honestly. +这个想法来自一个名为 *模仿游戏* 的派对游戏,其中一名审讯者独自一人在一个房间里,负责确定两个人(在另一个房间里)是男性还是女性。审讯者可以传递笔记,并且需要想出能够揭示神秘人性别的问题。当然,另一个房间的玩家试图通过回答问题的方式来欺骗审讯者,例如误导或迷惑审讯者,同时表现出诚实回答的样子。 + +### Eliza的研发 + +In the 1960's an MIT scientist called *Joseph Weizenbaum* developed [*Eliza*](https:/wikipedia.org/wiki/ELIZA), a computer 'therapist' that would ask the human questions and give the appearance of understanding their answers. However, while Eliza could parse a sentence and identify certain grammatical constructs and keywords so as to give a reasonable answer, it could not be said to *understand* the sentence. If Eliza was presented with a sentence following the format "**I am** sad" it might rearrange and substitute words in the sentence to form the response "How long have **you been** sad". +在 1960 年代,一位名叫 *Joseph Weizenbaum* 的麻省理工学院科学家开发了[*Eliza*](https:/wikipedia.org/wiki/ELIZA),Eliza是一位计算机“治疗师”,它可以向人类提出问题并表现出理解他们的答案。然而,虽然 Eliza 可以解析句子并识别某些语法结构和关键字以给出合理的答案,但不能说它*理解*了句子。如果 Eliza 看到的句子格式为“**I am** sad”,它可能会重新排列并替换句子中的单词以形成响应“How long have ** you been** sad"。 + +This gave the impression that Eliza understood the statement and was asking a follow-on question, whereas in reality, it was changing the tense and adding some words. If Eliza could not identify a keyword that it had a response for, it would instead give a random response that could be applicable to many different statements. Eliza could be easily tricked, for instance if a user wrote "**You are** a bicycle" it might respond with "How long have **I been** a bicycle?", instead of a more reasoned response. +这给人的印象是伊丽莎理解了这句话,并在问一个后续问题,而实际上,它是在改变时态并添加一些词。如果 Eliza 无法识别它有响应的关键字,它会给出一个随机响应,该响应可以适用于许多不同的语句。 Eliza 很容易被欺骗,例如,如果用户写了**You are** a bicycle",它可能会回复"How long have **I been** a bicycle?",而不是更合理的回答。 + +[![Chatting with Eliza](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "Chatting with Eliza") + +> 🎥 Click the image above for a video about original ELIZA program +> 🎥 点击上方的图片查看真实的ELIZA程序视频 + +> Note: You can read the original description of [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) published in 1966 if you have an ACM account. Alternately, read about Eliza on [wikipedia](https://wikipedia.org/wiki/ELIZA) +> 注意:如果你拥有ACM账户,你可以阅读1996年发表的[Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract)的原始介绍。或者,在[wikipedia](https://wikipedia.org/wiki/ELIZA)阅读有关 Eliza 的信息 + +## Exercise - coding a basic conversational bot +## 联系 - 编码实现一个基础的对话机器人 + +A conversational bot, like Eliza, is a program that elicits user input and seems to understand and respond intelligently. Unlike Eliza, our bot will not have several rules giving it the appearance of having an intelligent conversation. Instead, out bot will have one ability only, to keep the conversation going with random responses that might work in almost any trivial conversation. +像 Eliza 一样的对话机器人是一个似乎可以智能地理解和响应用户输入的程序。与 Eliza 不同的是,我们的机器人不会用规则让它看起来像是在进行智能对话。取而代之的是,我们的对话机器人将只有一种能力,通过几乎在所有琐碎对话中都适用的随机响应保持对话的进行。 + +### The plan +### 计划 + +Your steps when building a conversational bot: +搭建聊天机器人的步骤 + +1. Print instructions advising the user how to interact with the bot +2. Start a loop + 1. Accept user input + 2. If user has asked to exit, then exit + 3. Process user input and determine response (in this case, the response is a random choice from a list of possible generic responses) + 4. Print response +3. loop back to step 2 +1. 打印指导用户如何与机器人交互的说明 +2. 开启循环 + 1. 获取用户输入 + 2. 如果用户要求退出,就退出 + 3. 处理用户输入并选择一个回答(在这个例子中,回答从一个可能的通用回答列表中随机选择) + 4. 打印回答 +3. 重复步骤2 + +### Building the bot +### 构建聊天机器人 + +接下来让我们构建聊天机器人。我们将从定义一些短语开始。 + +1. 使用以下随机响应在 Python 中自己创建此机器人: + + ```python + random_responses = ["That is quite interesting, please tell me more.", + "I see. Do go on.", + "Why do you say that?", + "Funny weather we've been having, isn't it?", + "Let's change the subject.", + "Did you catch the game last night?"] + ``` + + Here is some sample output to guide you (user input is on the lines starting with `>`): + + ```output + Hello, I am Marvin, the simple robot. + You can end this conversation at any time by typing 'bye' + After typing each answer, press 'enter' + How are you today? + > I am good thanks + That is quite interesting, please tell me more. + > today I went for a walk + Did you catch the game last night? + > I did, but my team lost + Funny weather we've been having, isn't it? + > yes but I hope next week is better + Let's change the subject. + > ok, lets talk about music + Why do you say that? + > because I like music! + Why do you say that? + > bye + It was nice talking to you, goodbye! + ``` + + 该任务的一种可能解决方案在[这里](solution/bot.py) + + ✅ Stop and consider + ✅ 停止并思考 + + 1. Do you think the random responses would 'trick' someone into thinking that the bot actually understood them? + 2. What features would the bot need to be more effective? + 3. If a bot could really 'understand' the meaning of a sentence, would it need to 'remember' the meaning of previous sentences in a conversation too? + + 1. 你认为随机响应会“欺骗”某人认为机器人实际上理解他们吗? + 2. 机器人需要哪些功能才能更有效? + 3. 如果机器人真的可以“理解”一个句子的意思,它是否也需要“记住”对话中前面句子的意思? + +--- + +## 🚀Challenge +## 🚀挑战 + +Choose one of the "stop and consider" elements above and either try to implement them in code or write a solution on paper using pseudocode. +选择上面的“停止并思考”元素之一,然后尝试在代码中实现它们或使用伪代码在纸上编写解决方案。 + +In the next lesson, you'll learn about a number of other approaches to parsing natural language and machine learning. +在下一课中,您将了解解析自然语言和机器学习的许多其他方法。 + +## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/32/) +## [课后测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/32/) + +## Review & Self Study +## 复习与自学 + +Take a look at the references below as further reading opportunities. +看看下面的参考资料作为进一步的阅读机会。 + +### References +### 参考 + +1. Schubert, Lenhart, "Computational Linguistics", *The Stanford Encyclopedia of Philosophy* (Spring 2020 Edition), Edward N. Zalta (ed.), URL = . +2. Princeton University "About WordNet." [WordNet](https://wordnet.princeton.edu/). Princeton University. 2010. + +## Assignment +## 任务 + +[查找一个机器人](assignment.md) From a0e4826c25c771f1c8559def049b955347854ade Mon Sep 17 00:00:00 2001 From: lty <247969917@qq.com> Date: Wed, 14 Jul 2021 18:24:33 +0800 Subject: [PATCH 034/228] Add Chinese README for 6.1 --- .../translations/README.zh-cn.md | 69 +------------------ 1 file changed, 2 insertions(+), 67 deletions(-) diff --git a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md index 06ed9ca0..8dbfebc2 100644 --- a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md +++ b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md @@ -1,69 +1,41 @@ -# Introduction to natural language processing # 自然语言处理介绍 -This lesson covers a brief history and important concepts of *natural language processing*, a subfield of *computational linguistics*. 这节课讲解了*自然语言处理*简要历史和重要概念,*自然语言处理*是计算语言学的一个子领域。 -## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/31/) -## Introduction +## [课前测验]](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/31/) + ## 介绍 -NLP, as it is commonly known, is one of the best-known areas where machine learning has been applied and used in production software. 众所周知,自然语言处理(Natural Language Processing, NLP)是机器学习在生产软件中应用最广泛的领域之一。 -✅ Can you think of software that you use every day that probably has some NLP embedded? What about your word processing programs or mobile apps that you use regularly? - ✅你能想到哪些你日常生活中使用的软件嵌入了某些自然语言处理技术呢?你经常使用的文字处理程序或移动应用程序是否嵌入了自然语言处理技术呢? -You will learn about: 你将会学习到: -- **The idea of languages**. How languages developed and what the major areas of study have been. -- **Definition and concepts**. You will also learn definitions and concepts about how computers process text, including parsing, grammar, and identifying nouns and verbs. There are some coding tasks in this lesson, and several important concepts are introduced that you will learn to code later on in the next lessons. - **语言的思想**. 语言的发展历程及主要研究领域. - **定义和概念**. 你还将学习到有关计算机如何处理文本的定义和概念,包括解析、语法以及名词和动词的识别。本节课程包含一些编码任务并介绍了几个重要的概念,你将在下一节课中学习编码实现这些概念。 - -## Computational linguistics ## 计算语言学 -Computational linguistics is an area of research and development over many decades that studies how computers can work with, and even understand, translate, and communicate with languages. natural language processing (NLP) is a related field focused on how computers can process 'natural', or human, languages. 计算语言学是一个经过几十年研究和发展的领域,它研究计算机如何使用语言、理解语言、翻译语言及使用语言交流。自然语言处理(NLP)是计算语言学中一个专注于计算机如何处理“自然”或人类语言的相关领域, - -### Example - phone dictation ### 例子 - 电话号码识别 -If you have ever dictated to your phone instead of typing or asked a virtual assistant a question, your speech was converted into a text form and then processed or *parsed* from the language you spoke. The detected keywords were then processed into a format that the phone or assistant could understand and act on. 如果你曾经在手机上使用语音输入替代键盘输入或者向语音助手小娜提问,那么你的语音将被转录为文本形式后进行处理或者叫*解析*。被检测到的关键字最后将被处理成手机或语音助手可以理解并采取行动的格式。 ![comprehension](images/comprehension.png) -> Real linguistic comprehension is hard! Image by [Jen Looper](https://twitter.com/jenlooper) > 真实的语言理解十分困难!图源:[Jen Looper](https://twitter.com/jenlooper) - -### How is this technology made possible? ### 这项技术是如何实现的? -This is possible because someone wrote a computer program to do this. A few decades ago, some science fiction writers predicted that people would mostly speak to their computers, and the computers would always understand exactly what they meant. Sadly, it turned out to be a harder problem that many imagined, and while it is a much better understood problem today, there are significant challenges in achieving 'perfect' natural language processing when it comes to understanding the meaning of a sentence. This is a particularly hard problem when it comes to understanding humour or detecting emotions such as sarcasm in a sentence. 有人编写了一个计算机程序来实现这项技术。几十年前,一些科幻作家预测人类很大可能会和他们的电脑对话,而电脑总是能准确地理解人类的意思。可惜的是,事实证明这是一个比许多人想象中更难实现的问题,虽然今天这个问题已经被初步解决,但在理解句子的含义时,要实现“完美”的自然语言处理仍然存在重大挑战。句子中的幽默理解或讽刺等情绪的检测是一个特别困难的问题。 -At this point, you may be remembering school classes where the teacher covered the parts of grammar in a sentence. In some countries, students are taught grammar and linguistics as a dedicated subject, but in many, these topics are included as part of learning a language: either your first language in primary school (learning to read and write) and perhaps a second language in post-primary, or high school. Don't worry if you are not an expert at differentiating nouns from verbs or adverbs from adjectives! 此时,你可能会想起学校课堂上老师讲解的部分句子语法。在某些国家/地区,语法和语言学知识是学生的专题课内容。但在另一些国家/地区,不管是在小学时的第一语言(学习阅读和写作),或者在高年级及高中时学习的第二语言中,语法及语言学知识是作为学习语言的一部分教学的。如果你不能很好地区分名词与动词或者区分副词与形容词,请不要担心! -If you struggle with the difference between the *simple present* and *present progressive*, you are not alone. This is a challenging thing for many people, even native speakers of a language. The good news is that computers are really good at applying formal rules, and you will learn to write code that can *parse* a sentence as well as a human. The greater challenge you will examine later is understanding the *meaning*, and *sentiment*, of a sentence. 如果你还为区分*一般现在时*与*现在进行时*而烦恼,你并不是一个人。即使是对以这门语言为母语的人在内的很多人来说这都是一项有挑战性的任务。好消息是,计算机非常善于应用标准的规则,你将学会编写可以像人一样"解析"句子的代码。稍后你将面对的更大挑战是理解句子的*语义*和*情绪*。 - -## Prerequisites ## 前提 -For this lesson, the main prerequisite is being able to read and understand the language of this lesson. There are no math problems or equations to solve. While the original author wrote this lesson in English, it is also translated into other languages, so you could be reading a translation. There are examples where a number of different languages are used (to compare the different grammar rules of different languages). These are *not* translated, but the explanatory text is, so the meaning should be clear. 本节教程的主要先决条件是能够阅读和理解本节教程的语言。本节中没有数学问题或方程需要解决。虽然原作者用英文写了这教程,但它也被翻译成其他语言,所以你可能在阅读翻译内容。有使用多种不同语言的示例(以比较不同语言的不同语法规则)。这些是*未*翻译的,但解释性文本是翻译内容,所以表义应当是清晰的。 -For the coding tasks, you will use Python and the examples are using Python 3.8. 编程任务中,你将会使用Python语言,示例使用的是Python 3.8版本。 -In this section, you will need, and use: 在本节中你将需要并使用: -- **Python 3 comprehension**. Programming language comprehension in Python 3, this lesson uses input, loops, file reading, arrays. -- **Visual Studio Code + extension**. We will use Visual Studio Code and its Python extension. You can also use a Python IDE of your choice. -- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) is a simplified text processing library for Python. Follow the instructions on the TextBlob site to install it on your system (install the corpora as well, as shown below): - **Python 3 理解**. Python 3中的编程语言理解,本课使用输入、循环、文件读取、数组。 - **Visual Studio Code + 扩展**. 我们将使用 Visual Studio Code 及其 Python 扩展。你还可以使用你选择的 Python IDE。 - **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob)是一个简化的 Python 文本处理库。按照 TextBlob 网站上的说明在您的系统上安装它(也安装语料库,如下所示): @@ -73,66 +45,40 @@ In this section, you will need, and use: python -m textblob.download_corpora ``` -> 💡 Tip: You can run Python directly in VS Code environments. Check the [docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-15963-cxa) for more information. > 💡 提示:可以在 VS Code 环境中直接运行 Python。 点击[docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-15963-cxa)查看更多信息。 -## Talking to machines ## 与机器对话 -The history of trying to make computers understand human language goes back decades, and one of the earliest scientists to consider natural language processing was *Alan Turing*. 试图让计算机理解人类语言的历史可以追溯到几十年前,最早考虑自然语言处理的科学家之一是 *Alan Turing*。 - -### The 'Turing test' ### 图灵测试 - -When Turing was researching *artificial intelligence* in the 1950's, he considered if a conversational test could be given to a human and computer (via typed correspondence) where the human in the conversation was not sure if they were conversing with another human or a computer. 当图灵在1950年代研究*人工智能*时,他考虑是否可以对人和计算机进行对话测试(通过打字对应),其中对话中的人不确定他们是在与另一个人交谈还是与计算机交谈. -If, after a certain length of conversation, the human could not determine that the answers were from a computer or not, then could the computer be said to be *thinking*? 如果经过一定时间的交谈,人类无法确定答案是否来自计算机,那么是否可以说计算机正在“思考”? - -### The inspiration - 'the imitation game' ### 灵感 - “模仿游戏” -The idea for this came from a party game called *The Imitation Game* where an interrogator is alone in a room and tasked with determining which of two people (in another room) are male and female respectively. The interrogator can send notes, and must try to think of questions where the written answers reveal the gender of the mystery person. Of course, the players in the other room are trying to trick the interrogator by answering questions in such as way as to mislead or confuse the interrogator, whilst also giving the appearance of answering honestly. 这个想法来自一个名为 *模仿游戏* 的派对游戏,其中一名审讯者独自一人在一个房间里,负责确定两个人(在另一个房间里)是男性还是女性。审讯者可以传递笔记,并且需要想出能够揭示神秘人性别的问题。当然,另一个房间的玩家试图通过回答问题的方式来欺骗审讯者,例如误导或迷惑审讯者,同时表现出诚实回答的样子。 ### Eliza的研发 -In the 1960's an MIT scientist called *Joseph Weizenbaum* developed [*Eliza*](https:/wikipedia.org/wiki/ELIZA), a computer 'therapist' that would ask the human questions and give the appearance of understanding their answers. However, while Eliza could parse a sentence and identify certain grammatical constructs and keywords so as to give a reasonable answer, it could not be said to *understand* the sentence. If Eliza was presented with a sentence following the format "**I am** sad" it might rearrange and substitute words in the sentence to form the response "How long have **you been** sad". 在 1960 年代,一位名叫 *Joseph Weizenbaum* 的麻省理工学院科学家开发了[*Eliza*](https:/wikipedia.org/wiki/ELIZA),Eliza是一位计算机“治疗师”,它可以向人类提出问题并表现出理解他们的答案。然而,虽然 Eliza 可以解析句子并识别某些语法结构和关键字以给出合理的答案,但不能说它*理解*了句子。如果 Eliza 看到的句子格式为“**I am** sad”,它可能会重新排列并替换句子中的单词以形成响应“How long have ** you been** sad"。 -This gave the impression that Eliza understood the statement and was asking a follow-on question, whereas in reality, it was changing the tense and adding some words. If Eliza could not identify a keyword that it had a response for, it would instead give a random response that could be applicable to many different statements. Eliza could be easily tricked, for instance if a user wrote "**You are** a bicycle" it might respond with "How long have **I been** a bicycle?", instead of a more reasoned response. 这给人的印象是伊丽莎理解了这句话,并在问一个后续问题,而实际上,它是在改变时态并添加一些词。如果 Eliza 无法识别它有响应的关键字,它会给出一个随机响应,该响应可以适用于许多不同的语句。 Eliza 很容易被欺骗,例如,如果用户写了**You are** a bicycle",它可能会回复"How long have **I been** a bicycle?",而不是更合理的回答。 [![Chatting with Eliza](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "Chatting with Eliza") -> 🎥 Click the image above for a video about original ELIZA program > 🎥 点击上方的图片查看真实的ELIZA程序视频 -> Note: You can read the original description of [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) published in 1966 if you have an ACM account. Alternately, read about Eliza on [wikipedia](https://wikipedia.org/wiki/ELIZA) > 注意:如果你拥有ACM账户,你可以阅读1996年发表的[Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract)的原始介绍。或者,在[wikipedia](https://wikipedia.org/wiki/ELIZA)阅读有关 Eliza 的信息 -## Exercise - coding a basic conversational bot ## 联系 - 编码实现一个基础的对话机器人 -A conversational bot, like Eliza, is a program that elicits user input and seems to understand and respond intelligently. Unlike Eliza, our bot will not have several rules giving it the appearance of having an intelligent conversation. Instead, out bot will have one ability only, to keep the conversation going with random responses that might work in almost any trivial conversation. 像 Eliza 一样的对话机器人是一个似乎可以智能地理解和响应用户输入的程序。与 Eliza 不同的是,我们的机器人不会用规则让它看起来像是在进行智能对话。取而代之的是,我们的对话机器人将只有一种能力,通过几乎在所有琐碎对话中都适用的随机响应保持对话的进行。 -### The plan ### 计划 -Your steps when building a conversational bot: 搭建聊天机器人的步骤 -1. Print instructions advising the user how to interact with the bot -2. Start a loop - 1. Accept user input - 2. If user has asked to exit, then exit - 3. Process user input and determine response (in this case, the response is a random choice from a list of possible generic responses) - 4. Print response -3. loop back to step 2 1. 打印指导用户如何与机器人交互的说明 2. 开启循环 1. 获取用户输入 @@ -141,7 +87,6 @@ Your steps when building a conversational bot: 4. 打印回答 3. 重复步骤2 -### Building the bot ### 构建聊天机器人 接下来让我们构建聊天机器人。我们将从定义一些短语开始。 @@ -194,32 +139,22 @@ Your steps when building a conversational bot: 3. 如果机器人真的可以“理解”一个句子的意思,它是否也需要“记住”对话中前面句子的意思? --- - -## 🚀Challenge ## 🚀挑战 -Choose one of the "stop and consider" elements above and either try to implement them in code or write a solution on paper using pseudocode. 选择上面的“停止并思考”元素之一,然后尝试在代码中实现它们或使用伪代码在纸上编写解决方案。 -In the next lesson, you'll learn about a number of other approaches to parsing natural language and machine learning. 在下一课中,您将了解解析自然语言和机器学习的许多其他方法。 -## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/32/) ## [课后测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/32/) -## Review & Self Study ## 复习与自学 -Take a look at the references below as further reading opportunities. 看看下面的参考资料作为进一步的阅读机会。 - -### References ### 参考 1. Schubert, Lenhart, "Computational Linguistics", *The Stanford Encyclopedia of Philosophy* (Spring 2020 Edition), Edward N. Zalta (ed.), URL = . 2. Princeton University "About WordNet." [WordNet](https://wordnet.princeton.edu/). Princeton University. 2010. -## Assignment ## 任务 [查找一个机器人](assignment.md) From 4bccc6ae2fe5cdbaf3dd91be4bf53ba3ae3d0236 Mon Sep 17 00:00:00 2001 From: lty <247969917@qq.com> Date: Wed, 14 Jul 2021 18:31:38 +0800 Subject: [PATCH 035/228] Fix a image path error --- 6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md index 8dbfebc2..0b5b83f5 100644 --- a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md +++ b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md @@ -1,7 +1,7 @@ # 自然语言处理介绍 这节课讲解了*自然语言处理*简要历史和重要概念,*自然语言处理*是计算语言学的一个子领域。 -## [课前测验]](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/31/) +## [课前测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/31/) ## 介绍 众所周知,自然语言处理(Natural Language Processing, NLP)是机器学习在生产软件中应用最广泛的领域之一。 @@ -19,7 +19,7 @@ 如果你曾经在手机上使用语音输入替代键盘输入或者向语音助手小娜提问,那么你的语音将被转录为文本形式后进行处理或者叫*解析*。被检测到的关键字最后将被处理成手机或语音助手可以理解并采取行动的格式。 -![comprehension](images/comprehension.png) +![comprehension](../images/comprehension.png) > 真实的语言理解十分困难!图源:[Jen Looper](https://twitter.com/jenlooper) ### 这项技术是如何实现的? @@ -127,7 +127,6 @@ 该任务的一种可能解决方案在[这里](solution/bot.py) - ✅ Stop and consider ✅ 停止并思考 1. Do you think the random responses would 'trick' someone into thinking that the bot actually understood them? From 31b963c1d8621b6f05e64e5361924ea3ce8645c4 Mon Sep 17 00:00:00 2001 From: lty <247969917@qq.com> Date: Wed, 14 Jul 2021 18:33:15 +0800 Subject: [PATCH 036/228] ind --- 6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md index 0b5b83f5..9d1e0665 100644 --- a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md +++ b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md @@ -102,8 +102,8 @@ "Did you catch the game last night?"] ``` - Here is some sample output to guide you (user input is on the lines starting with `>`): - + 以下是一些指导你的示例输出(用户输入位于以 `>` 开头的行上): + ```output Hello, I am Marvin, the simple robot. You can end this conversation at any time by typing 'bye' @@ -128,10 +128,6 @@ 该任务的一种可能解决方案在[这里](solution/bot.py) ✅ 停止并思考 - - 1. Do you think the random responses would 'trick' someone into thinking that the bot actually understood them? - 2. What features would the bot need to be more effective? - 3. If a bot could really 'understand' the meaning of a sentence, would it need to 'remember' the meaning of previous sentences in a conversation too? 1. 你认为随机响应会“欺骗”某人认为机器人实际上理解他们吗? 2. 机器人需要哪些功能才能更有效? From 4a7ab265381462067304e844d37d3ed7d3642736 Mon Sep 17 00:00:00 2001 From: lty <247969917@qq.com> Date: Wed, 14 Jul 2021 18:35:01 +0800 Subject: [PATCH 037/228] ind --- 6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md index 9d1e0665..75cd69da 100644 --- a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md +++ b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md @@ -45,7 +45,7 @@ python -m textblob.download_corpora ``` -> 💡 提示:可以在 VS Code 环境中直接运行 Python。 点击[docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-15963-cxa)查看更多信息。 +> 💡 提示:可以在 VS Code 环境中直接运行 Python。 点击[docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-15963-cxa)查看更多信息。 ## 与机器对话 @@ -61,7 +61,7 @@ ### Eliza的研发 -在 1960 年代,一位名叫 *Joseph Weizenbaum* 的麻省理工学院科学家开发了[*Eliza*](https:/wikipedia.org/wiki/ELIZA),Eliza是一位计算机“治疗师”,它可以向人类提出问题并表现出理解他们的答案。然而,虽然 Eliza 可以解析句子并识别某些语法结构和关键字以给出合理的答案,但不能说它*理解*了句子。如果 Eliza 看到的句子格式为“**I am** sad”,它可能会重新排列并替换句子中的单词以形成响应“How long have ** you been** sad"。 +在 1960 年代,一位名叫 *Joseph Weizenbaum* 的麻省理工学院科学家开发了[*Eliza*](https:/wikipedia.org/wiki/ELIZA),Eliza是一位计算机“治疗师”,它可以向人类提出问题并表现出理解他们的答案。然而,虽然 Eliza 可以解析句子并识别某些语法结构和关键字以给出合理的答案,但不能说它*理解*了句子。如果 Eliza 看到的句子格式为“**I am** sad”,它可能会重新排列并替换句子中的单词以形成响应“How long have **you been** sad"。 这给人的印象是伊丽莎理解了这句话,并在问一个后续问题,而实际上,它是在改变时态并添加一些词。如果 Eliza 无法识别它有响应的关键字,它会给出一个随机响应,该响应可以适用于许多不同的语句。 Eliza 很容易被欺骗,例如,如果用户写了**You are** a bicycle",它可能会回复"How long have **I been** a bicycle?",而不是更合理的回答。 @@ -103,7 +103,7 @@ ``` 以下是一些指导你的示例输出(用户输入位于以 `>` 开头的行上): - + ```output Hello, I am Marvin, the simple robot. You can end this conversation at any time by typing 'bye' From eb6f65e3a8e8b9ba5ea8b555d314690558b0a236 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Wed, 14 Jul 2021 11:41:50 +0000 Subject: [PATCH 038/228] propose Regression french translation readme add a README.fr.md for Regression base README --- 2-Regression/translations/README.fr.md | 33 ++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 2-Regression/translations/README.fr.md diff --git a/2-Regression/translations/README.fr.md b/2-Regression/translations/README.fr.md new file mode 100644 index 00000000..eaed5756 --- /dev/null +++ b/2-Regression/translations/README.fr.md @@ -0,0 +1,33 @@ +# Modèles de régression pour le machine learning +## Sujet régional : Modèles de régression des prix des citrouilles en Amérique du Nord 🎃 + +En Amérique du Nord, les citrouilles sont souvent sculptées en visages effrayants pour Halloween. Découvrons-en plus sur ces légumes fascinants! + +![jack-o-lanterns](../images/jack-o-lanterns.jpg) +> Photo de Beth Teutschmann sur Unsplash + +## Ce que vous apprendrez + +Les leçons de cette section couvrent les types de régression dans le contexte du machine learning. Les modèles de régression peuvent aider à déterminer la _relation_ entre les variables. Ce type de modèle peut prédire des valeurs telles que la longueur, la température ou l'âge, découvrant ainsi les relations entre les variables lors de l'analyse des points de données. + +Dans cette série de leçons, vous découvrirez la différence entre la régression linéaire et la régression logistique, et quand vous devriez utiliser l'une ou l'autre. + +Dans ce groupe de leçons, vous serez préparé afin de commencer les tâches de machine learning, y compris la configuration de Visual Studio Code pour gérer les blocs-notes, l'environnement commun pour les scientifiques des données. Vous découvrirez Scikit-learn, une bibliothèque pour le machine learning, et vous construirez vos premiers modèles, en vous concentrant sur les modèles de régression dans ce chapitre. + +> Il existe des outils low-code utiles qui peuvent vous aider à apprendre à travailler avec des modèles de régression. Essayez [Azure ML pour cette tâche](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) + +### Cours + +1. [Outils du métier](1-Tools/README.md) +2. [Gestion des données](2-Data/README.md) +3. [Régression linéaire et polynomiale](3-Linear/README.md) +4. [Régression logistique](4-Logistic/README.md) + +--- +### Crédits + +"ML avec régression" a été écrit avec ♥️ par [Jen Looper](https://twitter.com/jenlooper) + +♥️ Les contributeurs du quiz incluent : [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) et [Ornella Altunyan](https://twitter.com/ornelladotcom) + +L'ensemble de données sur la citrouille est suggéré par [ce projet sur Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) et ses données proviennent des [Rapports standard des marchés terminaux des cultures spécialisées](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distribué par le département américain de l'Agriculture. Nous avons ajouté quelques points autour de la couleur en fonction de la variété pour normaliser la distribution. Ces données sont dans le domaine public. From ac061faf5fdf6e409e94b2da01bfc0beb825fa29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 20:40:40 +0800 Subject: [PATCH 039/228] Add files via upload --- 2-Regression/translations/Readme.zh-cn.md | 34 +++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 2-Regression/translations/Readme.zh-cn.md diff --git a/2-Regression/translations/Readme.zh-cn.md b/2-Regression/translations/Readme.zh-cn.md new file mode 100644 index 00000000..853c73b5 --- /dev/null +++ b/2-Regression/translations/Readme.zh-cn.md @@ -0,0 +1,34 @@ +# 机器学习中的回归模型 +## 本节主题: 北美南瓜价格的回归模型 🎃 + +在北美,南瓜经常在万圣节被刻上吓人的鬼脸。让我们来深入研究一下这种奇妙的蔬菜 + +![jack-o-lanterns](./images/jack-o-lanterns.jpg) +> Photo by Beth Teutschmann on Unsplash + +##你会学到什么 + +这节的课程包括机器学习领域中的多种回归模型。回归模型可以明确多种变量间的_关系_。这种模型可以用来预测类似长度、温度和年龄之类的值, 通过分析数据点来揭示变量之间的关系。 + +在本节的一系列课程中,你会学到线性回归和逻辑回归之间的区别,并且你将知道对于特定问题如何在这两种模型中进行选择 + +在这组课程中,你会准备好包括为管理笔记而设置VS Code、配置数据科学家常用的环境等机器学习的初始任务。你会开始上手Scikit-learn学习项目(一个机器学习的百科),并且你会以回归模型为主构建起你的第一种机器学习模型 + +> 这里有一些代码难度较低但很有用的工具可以帮助你学习使用回归模型。 试一下 [Azure ML for this task](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) + + +### Lessons + +1. [交易的工具](1-Tools/README.md) +2. [管理数据](2-Data/README.md) +3. [线性和多项式回归](3-Linear/README.md) +4. [逻辑回归](4-Logistic/README.md) + +--- +### Credits + +"机器学习中的回归" 由[Jen Looper](https://twitter.com/jenlooper)♥️ 撰写 + +♥️ 测试的贡献者: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) 和 [Ornella Altunyan](https://twitter.com/ornelladotcom) + +南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类 \ No newline at end of file From aa5048fb0e5dba984d5f7bd949301b3031d513e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:04:12 +0800 Subject: [PATCH 040/228] Update Readme.zh-cn.md --- 2-Regression/translations/Readme.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/translations/Readme.zh-cn.md b/2-Regression/translations/Readme.zh-cn.md index 853c73b5..ee1243a2 100644 --- a/2-Regression/translations/Readme.zh-cn.md +++ b/2-Regression/translations/Readme.zh-cn.md @@ -31,4 +31,4 @@ ♥️ 测试的贡献者: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) 和 [Ornella Altunyan](https://twitter.com/ornelladotcom) -南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类 \ No newline at end of file +南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类添加了围绕颜色的一些数据点。这些数据处在公共的域名上。 From 10a7a93f1d050f22fcb63c8b4f93c29baddab0d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:12:46 +0800 Subject: [PATCH 041/228] Add files via upload --- 2-Regression/translations/Readme.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/translations/Readme.zh-cn.md b/2-Regression/translations/Readme.zh-cn.md index ee1243a2..81c2c9d4 100644 --- a/2-Regression/translations/Readme.zh-cn.md +++ b/2-Regression/translations/Readme.zh-cn.md @@ -31,4 +31,4 @@ ♥️ 测试的贡献者: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) 和 [Ornella Altunyan](https://twitter.com/ornelladotcom) -南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类添加了围绕颜色的一些数据点。这些数据处在公共的域名上。 +南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类添加了围绕颜色的一些数据点。这些数据处在公共的域名上。 \ No newline at end of file From 11567b58cc5f88bfcd1fca645c1cc83fab48a8e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:13:48 +0800 Subject: [PATCH 042/228] Add files via upload --- 2-Regression/Readme.zh-cn.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 2-Regression/Readme.zh-cn.md diff --git a/2-Regression/Readme.zh-cn.md b/2-Regression/Readme.zh-cn.md new file mode 100644 index 00000000..4972c594 --- /dev/null +++ b/2-Regression/Readme.zh-cn.md @@ -0,0 +1,34 @@ +# 机器学习中的回归模型 +## 本节主题: 北美南瓜价格的回归模型 🎃 + +在北美,南瓜经常在万圣节被刻上吓人的鬼脸。让我们来深入研究一下这种奇妙的蔬菜 + +![jack-o-lanterns](../images/jack-o-lanterns.jpg) +> Photo by Beth Teutschmann on Unsplash + +##你会学到什么 + +这节的课程包括机器学习领域中的多种回归模型。回归模型可以明确多种变量间的_关系_。这种模型可以用来预测类似长度、温度和年龄之类的值, 通过分析数据点来揭示变量之间的关系。 + +在本节的一系列课程中,你会学到线性回归和逻辑回归之间的区别,并且你将知道对于特定问题如何在这两种模型中进行选择 + +在这组课程中,你会准备好包括为管理笔记而设置VS Code、配置数据科学家常用的环境等机器学习的初始任务。你会开始上手Scikit-learn学习项目(一个机器学习的百科),并且你会以回归模型为主构建起你的第一种机器学习模型 + +> 这里有一些代码难度较低但很有用的工具可以帮助你学习使用回归模型。 试一下 [Azure ML for this task](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) + + +### Lessons + +1. [交易的工具](1-Tools/README.md) +2. [管理数据](2-Data/README.md) +3. [线性和多项式回归](3-Linear/README.md) +4. [逻辑回归](4-Logistic/README.md) + +--- +### Credits + +"机器学习中的回归" 由[Jen Looper](https://twitter.com/jenlooper)♥️ 撰写 + +♥️ 测试的贡献者: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) 和 [Ornella Altunyan](https://twitter.com/ornelladotcom) + +南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类添加了围绕颜色的一些数据点。这些数据处在公共的域名上。 \ No newline at end of file From 7d9da49081ce7960872e84820c3adc205daa3b39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:15:26 +0800 Subject: [PATCH 043/228] Delete Readme.zh-cn.md --- 2-Regression/Readme.zh-cn.md | 34 ---------------------------------- 1 file changed, 34 deletions(-) delete mode 100644 2-Regression/Readme.zh-cn.md diff --git a/2-Regression/Readme.zh-cn.md b/2-Regression/Readme.zh-cn.md deleted file mode 100644 index 4972c594..00000000 --- a/2-Regression/Readme.zh-cn.md +++ /dev/null @@ -1,34 +0,0 @@ -# 机器学习中的回归模型 -## 本节主题: 北美南瓜价格的回归模型 🎃 - -在北美,南瓜经常在万圣节被刻上吓人的鬼脸。让我们来深入研究一下这种奇妙的蔬菜 - -![jack-o-lanterns](../images/jack-o-lanterns.jpg) -> Photo by Beth Teutschmann on Unsplash - -##你会学到什么 - -这节的课程包括机器学习领域中的多种回归模型。回归模型可以明确多种变量间的_关系_。这种模型可以用来预测类似长度、温度和年龄之类的值, 通过分析数据点来揭示变量之间的关系。 - -在本节的一系列课程中,你会学到线性回归和逻辑回归之间的区别,并且你将知道对于特定问题如何在这两种模型中进行选择 - -在这组课程中,你会准备好包括为管理笔记而设置VS Code、配置数据科学家常用的环境等机器学习的初始任务。你会开始上手Scikit-learn学习项目(一个机器学习的百科),并且你会以回归模型为主构建起你的第一种机器学习模型 - -> 这里有一些代码难度较低但很有用的工具可以帮助你学习使用回归模型。 试一下 [Azure ML for this task](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) - - -### Lessons - -1. [交易的工具](1-Tools/README.md) -2. [管理数据](2-Data/README.md) -3. [线性和多项式回归](3-Linear/README.md) -4. [逻辑回归](4-Logistic/README.md) - ---- -### Credits - -"机器学习中的回归" 由[Jen Looper](https://twitter.com/jenlooper)♥️ 撰写 - -♥️ 测试的贡献者: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) 和 [Ornella Altunyan](https://twitter.com/ornelladotcom) - -南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类添加了围绕颜色的一些数据点。这些数据处在公共的域名上。 \ No newline at end of file From f9f69077acc76f317c8c3ce3aa0e5837ccb2dc40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:16:48 +0800 Subject: [PATCH 044/228] Add files via upload --- 2-Regression/translations/Readme.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-Regression/translations/Readme.zh-cn.md b/2-Regression/translations/Readme.zh-cn.md index 81c2c9d4..3802d540 100644 --- a/2-Regression/translations/Readme.zh-cn.md +++ b/2-Regression/translations/Readme.zh-cn.md @@ -3,8 +3,8 @@ 在北美,南瓜经常在万圣节被刻上吓人的鬼脸。让我们来深入研究一下这种奇妙的蔬菜 -![jack-o-lanterns](./images/jack-o-lanterns.jpg) -> Photo by Beth Teutschmann on Unsplash +![jack-o-lantern](../images/jack-o-lanterns.jpg) +> Foto oleh Beth Teutschmann di Unsplash ##你会学到什么 From acf14616dea3863653b0d99ab0d32a1f0ca5a8e3 Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Wed, 14 Jul 2021 21:25:34 +0800 Subject: [PATCH 045/228] Update README.zh-cn.md --- 1-Introduction/3-fairness/translations/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/3-fairness/translations/README.zh-cn.md b/1-Introduction/3-fairness/translations/README.zh-cn.md index 02f41777..3b75ddab 100644 --- a/1-Introduction/3-fairness/translations/README.zh-cn.md +++ b/1-Introduction/3-fairness/translations/README.zh-cn.md @@ -145,7 +145,7 @@ | 未列出性别 | 0.33 | 0.31 | 1266 | -这张桌子告诉我们几件事。首先,我们注意到数据中的未列出性别的人相对较少。数据是有偏差的,所以你需要小心解释这些数字。 +这个表格告诉我们几件事。首先,我们注意到数据中的未列出性别的人相对较少。数据是有偏差的,所以你需要小心解释这些数字。 在本例中,我们有3个组和2个度量。当我们考虑我们的系统如何影响贷款申请人的客户群时,这可能就足够了,但是当你想要定义更多的组时,你可能需要将其提取到更小的摘要集。为此,你可以添加更多的度量,例如每个假阴性和假阳性的最大差异或最小比率。 From eda4113bebeaafd71be55a4a15edc6105b7d1a83 Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Wed, 14 Jul 2021 17:11:43 +0200 Subject: [PATCH 046/228] Italian Translation - Chapter 2-2 complete --- 2-Regression/2-Data/translations/README.it.md | 201 ++++++++++++++++++ .../2-Data/translations/assignment.it.md | 8 + 2 files changed, 209 insertions(+) create mode 100644 2-Regression/2-Data/translations/README.it.md create mode 100644 2-Regression/2-Data/translations/assignment.it.md diff --git a/2-Regression/2-Data/translations/README.it.md b/2-Regression/2-Data/translations/README.it.md new file mode 100644 index 00000000..3a67cdea --- /dev/null +++ b/2-Regression/2-Data/translations/README.it.md @@ -0,0 +1,201 @@ +# Costruire un modello di regressione usando Scikit-learn: preparare e visualizzare i dati + +> ![Infografica sulla visualizzazione dei dati](../images/data-visualization.png) +> Infografica di [Dasani Madipalli](https://twitter.com/dasani_decoded) + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) + +## Introduzione + +Ora che si hanno a disposizione gli strumenti necessari per iniziare ad affrontare la creazione di modelli di machine learning con Scikit-learn, si è pronti per iniziare a porre domande sui propri dati. Mentre si lavora con i dati e si applicano soluzioni ML, è molto importante capire come porre la domanda giusta per sbloccare correttamente le potenzialità del proprio insieme di dati. + +In questa lezione, si imparerà: + +- Come preparare i dati per la creazione del modello. +- Come utilizzare Matplotlib per la visualizzazione dei dati. + +## Fare la domanda giusta ai propri dati + +La domanda a cui si deve rispondere determinerà il tipo di algoritmi ML che verranno utilizzati. La qualità della risposta che si riceverà dipenderà fortemente dalla natura dei propri dati. + +Si dia un'occhiata ai [dati](../../data/US-pumpkins.csv) forniti per questa lezione. Si può aprire questo file .csv in VS Code. Una rapida scrematura mostra immediatamente che ci sono spazi vuoti e un mix di stringhe e dati numerici. C'è anche una strana colonna chiamata "Package" (pacchetto) in cui i dati sono un mix tra "sacks" (sacchi), "bins" (contenitori) e altri valori. I dati, infatti, sono un po' un pasticcio. + +In effetti, non è molto comune ricevere un insieme di dati completamente pronto per creare un modello ML pronto all'uso. In questa lezione si imparerà come preparare un insieme di dati non elaborato utilizzando le librerie standard di Python. Si impareranno anche varie tecniche per visualizzare i dati. + +## Caso di studio: 'il mercato della zucca' + +In questa cartella si troverà un file .csv nella cartella `data` radice chiamato [US-pumpkins.csv](../../data/US-pumpkins.csv) che include 1757 righe di dati sul mercato delle zucche, ordinate in raggruppamenti per città. Si tratta di dati grezzi estratti dai [Report Standard dei Mercati Terminali delle Colture Speciali](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) distribuiti dal Dipartimento dell'Agricoltura degli Stati Uniti. + +### Preparazione dati + +Questi dati sono di pubblico dominio. Possono essere scaricati in molti file separati, per città, dal sito web dell'USDA. Per evitare troppi file separati, sono stati concatenati tutti i dati della città in un unico foglio di calcolo, quindi un po' i dati sono già stati _preparati_ . Successivamente, si darà un'occhiata più da vicino ai dati. + +### I dati della zucca - prime conclusioni + +Cosa si nota riguardo a questi dati? Si è già visto che c'è un mix di stringhe, numeri, spazi e valori strani a cui occorre dare un senso. + +Che domanda si puà fare a questi dati, utilizzando una tecnica di Regressione? Che dire di "Prevedere il prezzo di una zucca in vendita durante un dato mese". Esaminando nuovamente i dati, ci sono alcune modifiche da apportare per creare la struttura dati necessaria per l'attività. + +## Esercizio: analizzare i dati della zucca + +Si usa [Pandas](https://pandas.pydata.org/), (il nome sta per `Python Data Analysis`) uno strumento molto utile per dare forma ai dati, per analizzare e preparare questi dati sulla zucca. + +### Innanzitutto, controllare le date mancanti + +Prima si dovranno eseguire i passaggi per verificare le date mancanti: + +1. Convertire le date in un formato mensile (queste sono date statunitensi, quindi il formato è `MM/GG/AAAA`). +2. Estrarre il mese in una nuova colonna. + +Aprire il file _notebook.ipynb_ in Visual Studio Code e importare il foglio di calcolo in un nuovo dataframe Pandas. + +1. Usare la funzione `head()` per visualizzare le prime cinque righe. + + ```python + import pandas as pd + pumpkins = pd.read_csv('../data/US-pumpkins.csv') + pumpkins.head() + ``` + + ✅ Quale funzione si userebbe per visualizzare le ultime cinque righe? + +1. Controllare se mancano dati nel dataframe corrente: + + ```python + pumpkins.isnull().sum() + ``` + + Ci sono dati mancanti, ma forse non avrà importanza per l'attività da svolgere. + +1. Per rendere più facile lavorare con il dataframe, si scartano molte delle sue colonne, usando `drop()`, mantenendo solo le colonne di cui si ha bisogno: + + ```python + new_columns = ['Package', 'Month', 'Low Price', 'High Price', 'Date'] + pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1) + ``` + +### Secondo, determinare il prezzo medio della zucca + +Si pensi a come determinare il prezzo medio di una zucca in un dato mese. Quali colonne si sceglierebbero per questa attività? Suggerimento: serviranno 3 colonne. + +Soluzione: prendere la media delle colonne `Low Price` e `High Price` per popolare la nuova colonna Price e convertire la colonna Date per mostrare solo il mese. Fortunatamente, secondo il controllo di cui sopra, non mancano dati per date o prezzi. + +1. Per calcolare la media, aggiungere il seguente codice: + + ```python + price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2 + + month = pd.DatetimeIndex(pumpkins['Date']).month + + ``` + + ✅ Si possono di stampare tutti i dati che si desidera controllare utilizzando `print(month)`. + +2. Ora copiare i dati convertiti in un nuovo dataframe Pandas: + + ```python + new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price}) + ``` + + La stampa del dataframe mostrerà un insieme di dati pulito e ordinato su cui si può costruire il nuovo modello di regressione. + +### Ma non è finita qui! C'è qualcosa di strano qui. + +Osservando la colonna `Package`, le zucche sono vendute in molte configurazioni diverse. Alcune sono venduti in misure '1 1/9 bushel' (bushel = staio) e alcuni in misure '1/2 bushel', alcuni per zucca, alcuni per libbra e alcuni in grandi scatole con larghezze variabili. + +> Le zucche sembrano molto difficili da pesare in modo coerente + +Scavando nei dati originali, è interessante notare che qualsiasi cosa con `Unit of Sale` (Unità di vendita) uguale a 'EACH' o 'PER BIN' ha anche il tipo di `Package` per 'inch' (pollice), per 'bin' (contenitore) o 'each' (entrambi). Le zucche sembrano essere molto difficili da pesare in modo coerente, quindi si filtrano selezionando solo zucche con la stringa "bushel" nella colonna `Package`. + +1. Aggiungere un filtro nella parte superiore del file, sotto l'importazione .csv iniziale: + + ```python + pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)] + ``` + + Se si stampano i dati ora, si può vedere che si stanno ricevendo solo le circa 415 righe di dati contenenti zucche per bushel. + +### Ma non è finita qui! C'è un'altra cosa da fare. + +Si è notato che la quantità di bushel varia per riga? Si deve normalizzare il prezzo in modo da mostrare il prezzo per bushel, quindi si facciano un po' di calcoli per standardizzarlo. + +1. Aggiungere queste righe dopo il blocco che crea il dataframe new_pumpkins: + + ```python + new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9) + + new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2) + ``` + +✅ Secondo [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), il peso di un bushel dipende dal tipo di prodotto, poiché è una misura di volume. "Un bushel di pomodori, per esempio, dovrebbe pesare 56 libbre... Foglie e verdure occupano più spazio con meno peso, quindi un bushel di spinaci è solo 20 libbre". È tutto piuttosto complicato! Non occorre preoccuparsi di fare una conversione da bushel a libbra, e invece si valuta a bushel. Tutto questo studio sui bushel di zucche, però, dimostra quanto sia importante capire la natura dei propri dati! + +Ora si può analizzare il prezzo per unità in base alla misurazione del bushel. Se si stampano i dati ancora una volta, si può vedere come sono standardizzati. + +✅ Si è notato che le zucche vendute a metà bushel sono molto costose? Si riesce a capire perché? Suggerimento: le zucche piccole sono molto più costose di quelle grandi, probabilmente perché ce ne sono molte di più per bushel, dato lo spazio inutilizzato occupato da una grande zucca cava. + +## Strategie di Visualizzazione + +Parte del ruolo del data scientist è dimostrare la qualità e la natura dei dati con cui sta lavorando. Per fare ciò, si creano spesso visualizzazioni interessanti o tracciati, grafici e diagrammi, che mostrano diversi aspetti dei dati. In questo modo, sono in grado di mostrare visivamente relazioni e lacune altrimenti difficili da scoprire. + +Le visualizzazioni possono anche aiutare a determinare la tecnica di machine learning più appropriata per i dati. Un grafico a dispersione che sembra seguire una linea, ad esempio, indica che i dati sono un buon candidato per un esercizio di regressione lineare. + +Una libreria di visualizzazione dei dati che funziona bene nei notebook Jupyter è [Matplotlib](https://matplotlib.org/) (che si è visto anche nella lezione precedente). + +> Per fare più esperienza con la visualizzazione dei dati si seguano [questi tutorial](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-15963-cxa). + +## Esercizio - sperimentare con Matplotlib + +Provare a creare alcuni grafici di base per visualizzare il nuovo dataframe appena creato. Cosa mostrerebbe un grafico a linee di base? + +1. Importare Matplotlib nella parte superiore del file, sotto l'importazione di Pandas: + + ```python + import matplotlib.pyplot as plt + ``` + +1. Rieseguire l'intero notebook per aggiornare. +1. Nella parte inferiore del notebook, aggiungere una cella per tracciare i dati come una casella: + + ```python + price = new_pumpkins.Price + month = new_pumpkins.Month + plt.scatter(price, month) + plt.show() + ``` + + ![Un grafico a dispersione che mostra la relazione tra prezzo e mese](../images/scatterplot.png) + + È un tracciato utile? C'è qualcosa che sorprende? + + Non è particolarmente utile in quanto tutto ciò che fa è visualizzare nei propri dati come una diffusione di punti in un dato mese. + +### Renderlo utile + +Per fare in modo che i grafici mostrino dati utili, di solito è necessario raggruppare i dati in qualche modo. Si prova a creare un grafico in cui l'asse y mostra i prezzi e l'asse x mostra la distribuzione dei dati raggruppati per mese. + +1. Aggiungere una cella per creare un grafico a barre raggruppato: + + ```python + new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar') + plt.ylabel("Pumpkin Price") + ``` + + ![Un grafico a barre che mostra la relazione tra prezzo e mese](../images/barchart.png) + + Questa è una visualizzazione dei dati più utile! Sembra indicare che il prezzo più alto per le zucche si verifica a settembre e ottobre. Questo soddisfa le proprie aspettative? Perché o perché no? + +--- + +## 🚀 Sfida + +Esplorare i diversi tipi di visualizzazione offerti da Matplotlib. Quali tipi sono più appropriati per i problemi di regressione? + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12/) + +## Revisione e Auto Apprendimento + +Dare un'occhiata ai molti modi per visualizzare i dati. Fare un elenco delle varie librerie disponibili e annotare quali sono le migliori per determinati tipi di attività, ad esempio visualizzazioni 2D rispetto a visualizzazioni 3D. Cosa si è scoperto? + +## Compito + +[Esplorazione della visualizzazione](assignment.it.md) diff --git a/2-Regression/2-Data/translations/assignment.it.md b/2-Regression/2-Data/translations/assignment.it.md new file mode 100644 index 00000000..6fe0cf50 --- /dev/null +++ b/2-Regression/2-Data/translations/assignment.it.md @@ -0,0 +1,8 @@ +# Esplorazione delle visualizzazioni + +Sono disponibili diverse librerie per la visualizzazione dei dati. Creare alcune visualizzazioni utilizzando i dati della zucca in questa lezione con matplotlib e seaborn in un notebook di esempio. Con quali librerie è più facile lavorare? +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | --------- | -------- | ----------------- | +| | Viene inviato un notebook con due esplorazioni/visualizzazioni | Viene inviato un notebook con una esplorazione/visualizzazione | Non è stato inviato un notebook | From 489eb93d5563f0f4e15a5cb23a62159bdc7d4747 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Wed, 14 Jul 2021 15:35:28 +0000 Subject: [PATCH 047/228] Update links for future translated readme Update links for future translated readme --- 2-Regression/translations/README.fr.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/2-Regression/translations/README.fr.md b/2-Regression/translations/README.fr.md index eaed5756..1b252f3f 100644 --- a/2-Regression/translations/README.fr.md +++ b/2-Regression/translations/README.fr.md @@ -18,10 +18,10 @@ Dans ce groupe de leçons, vous serez préparé afin de commencer les tâches de ### Cours -1. [Outils du métier](1-Tools/README.md) -2. [Gestion des données](2-Data/README.md) -3. [Régression linéaire et polynomiale](3-Linear/README.md) -4. [Régression logistique](4-Logistic/README.md) +1. [Outils du métier](1-Tools/translations/README.fr.md) +2. [Gestion des données](2-Data/translations/README.fr.md) +3. [Régression linéaire et polynomiale](3-Linear/translations/README.fr.md) +4. [Régression logistique](4-Logistic/translations/README.fr.md) --- ### Crédits From c53bc86acdbfe218775faf6bf61903b216d9ba24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 23:37:01 +0800 Subject: [PATCH 048/228] Rename Readme.zh-cn.md to Readme.zh-ch.md --- 2-Regression/translations/{Readme.zh-cn.md => Readme.zh-ch.md} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename 2-Regression/translations/{Readme.zh-cn.md => Readme.zh-ch.md} (98%) diff --git a/2-Regression/translations/Readme.zh-cn.md b/2-Regression/translations/Readme.zh-ch.md similarity index 98% rename from 2-Regression/translations/Readme.zh-cn.md rename to 2-Regression/translations/Readme.zh-ch.md index 3802d540..f25a542a 100644 --- a/2-Regression/translations/Readme.zh-cn.md +++ b/2-Regression/translations/Readme.zh-ch.md @@ -31,4 +31,4 @@ ♥️ 测试的贡献者: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) 和 [Ornella Altunyan](https://twitter.com/ornelladotcom) -南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类添加了围绕颜色的一些数据点。这些数据处在公共的域名上。 \ No newline at end of file +南瓜数据集受此启发 [this project on Kaggle](https://www.kaggle.com/usda/a-year-of-pumpkin-prices) 并且其数据源自 [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) 由美国农业部上传分享。我们根据种类添加了围绕颜色的一些数据点。这些数据处在公共的域名上。 From 95aa36df517eff69aabc23a583e384ffced6708d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 23:38:15 +0800 Subject: [PATCH 049/228] Update Readme.zh-ch.md --- 2-Regression/translations/Readme.zh-ch.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/2-Regression/translations/Readme.zh-ch.md b/2-Regression/translations/Readme.zh-ch.md index f25a542a..7ce096c3 100644 --- a/2-Regression/translations/Readme.zh-ch.md +++ b/2-Regression/translations/Readme.zh-ch.md @@ -19,10 +19,10 @@ ### Lessons -1. [交易的工具](1-Tools/README.md) -2. [管理数据](2-Data/README.md) -3. [线性和多项式回归](3-Linear/README.md) -4. [逻辑回归](4-Logistic/README.md) +1. [交易的工具](../1-Tools/README.md) +2. [管理数据](../2-Data/README.md) +3. [线性和多项式回归](../3-Linear/README.md) +4. [逻辑回归](../4-Logistic/README.md) --- ### Credits From 50a94e9ed8622fd6eb52489db602d710ba822f43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 23:44:01 +0800 Subject: [PATCH 050/228] Rename Readme.zh-ch.md to README.zh-ch.md --- 2-Regression/translations/{Readme.zh-ch.md => README.zh-ch.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 2-Regression/translations/{Readme.zh-ch.md => README.zh-ch.md} (100%) diff --git a/2-Regression/translations/Readme.zh-ch.md b/2-Regression/translations/README.zh-ch.md similarity index 100% rename from 2-Regression/translations/Readme.zh-ch.md rename to 2-Regression/translations/README.zh-ch.md From c2f2beed8e8bcbfbfb006dfc62322a54223c39d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Wed, 14 Jul 2021 23:50:08 +0800 Subject: [PATCH 051/228] Update README.zh-ch.md --- 2-Regression/translations/README.zh-ch.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/2-Regression/translations/README.zh-ch.md b/2-Regression/translations/README.zh-ch.md index 7ce096c3..24c7a26c 100644 --- a/2-Regression/translations/README.zh-ch.md +++ b/2-Regression/translations/README.zh-ch.md @@ -19,10 +19,10 @@ ### Lessons -1. [交易的工具](../1-Tools/README.md) -2. [管理数据](../2-Data/README.md) -3. [线性和多项式回归](../3-Linear/README.md) -4. [逻辑回归](../4-Logistic/README.md) +1. [交易的工具](../1-Tools/translations/README.zh-cn.md) +2. [管理数据](../2-Data/translations/README.zh-cn.md) +3. [线性和多项式回归](../3-Linear/translations/README.zh-cn.md) +4. [逻辑回归](../4-Logistic/translations/README.zh-cn.md) --- ### Credits From a1c1b414d13c3cee56f35ff57012675886c4e109 Mon Sep 17 00:00:00 2001 From: Colin Zang Date: Thu, 15 Jul 2021 00:40:54 +0800 Subject: [PATCH 052/228] Create README.zh-cn.md --- translations/README.zh-cn.md | 119 +++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 translations/README.zh-cn.md diff --git a/translations/README.zh-cn.md b/translations/README.zh-cn.md new file mode 100644 index 00000000..3918b008 --- /dev/null +++ b/translations/README.zh-cn.md @@ -0,0 +1,119 @@ +[![GitHub license](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-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/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) + +# 针对初学者的机器学习课程 + +> 🌍 环游世界,并通过世界文化来探索机器学习 🌍 + +微软 Azure Cloud 的倡导者们很高兴可以提供这套十二周、二十四节课的关于**机器学习**的课程。在这套课程中,你将学习关于**经典机器学习**的内容,主要将使用 Scikit-learn 这一库。关于深度学习的内容将会尽量避免 —— 它会被我们即将推出的 "AI for Beginners (针对初学者的 AI 教程)" 所涵盖。你也可以把这些课和我们即将推出的 "Data Science for Beginners (针对初学者的数据科学教程)" 相结合! + +通过把这些经典的技术应用在来自世界各地的数据,我们将 “环游世界”。每一节课都包括了课前和课后测验、课程内容的文字讲义说明、示例代码、作业等。通过这种基于项目的教学方法,你将在构建中学习,这样可以把技能学的更牢靠。 + +**✍️ 衷心感谢作者们** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Ornella Altunyan 以及 Amy Boyd + +**🎨 同时也要感谢我们的插画师** Tomomi Imura, Dasani Madipalli 以及 Jen Looper + + **🙏 特别感谢 🙏 我们的微软学生大使作者们,内容贡献和内容复核者们**, Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, 和 Snigdha Agarwal 等 + +--- +# 准备开始 + +**对于学生们**,为了更好的使用这套课程,把整个仓库 fork 到你自己的 Github 账户中,并自行(或和一个小组一起)完成以下练习: + +- 从课前测验开始 +- 阅读课程内容,完成所有的活动,在每次 knowledge check 时暂停并思考 +- 我们建议你基于理解来创建项目(而不是仅仅跑一遍示例代码)示例代码的位置在每一个项目的 `/solution` 文件夹中。 +- 进行课后测验 +- 完成课程挑战 +- 完成作业 +- 一节课完成后, 访问[讨论版](https://github.com/microsoft/ML-For-Beginners/discussions),通过天蝎相应的 PAT Rubric (课程目标)来深化自己的学习成果。你也可以回应其它的 PAT,这样我们可以一起学习。 + +> 如果希望进一步学习,我们推荐跟随 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) 的模块和学习路径。 + +**对于老师们**,我们对于如何使用这套教程[提供了一些建议](for-teachers.md)。 + +--- + +## 项目团队 + +[![宣传视频](ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "宣传视频") + +> 🎥 点击上方的图片,来观看一个关于这个项目和它的创造者们的视频! + +--- +## 教学方式 + +此课程基于两个教学原则:学生应该上手进行**项目实践**,并完成**频繁的测验**。 此外,为了使整个课程更具有整体性,课程们有一个共同的**主题**。 + +通过确保课程内容与项目强相关,我们让学习过程对学生更具吸引力,概念的学习也被深化了。难度较低的课前测验可以吸引学生学习课程,课后的第二次测验进一步重复了课堂中的概念。该课程被设计地灵活有趣,可以一次性全部学习,或者分开来一部分一部分学习。这些项目由浅入深,从第一周的的小项目开始,在第十二周的周期结束时变得较为复杂。本课程还包括一个关于机器学习实际应用的后记,可用作额外学分或讨论的基础。 + +> 在这里,你可以找到我们的[行为守则](CODE_OF_CONDUCT.md),[对项目作出贡献](CONTRIBUTING.md)以及[翻译](TRANSLATIONS.md)指南。我们欢迎各位提出有建设性的反馈! + +## 每一节课都包含: + +- 可选的笔记 +- 可选的补充视频 +- 课前热身测验 +- 文字课程 +- 对于基于项目的课程,包含构建项目的分步指南 +- knowledge checks +- 一个挑战 +- 补充阅读 +- 作业 +- 课后测验 + +> **关于测验**:所有的测验都在[这个应用里](https://jolly-sea-0a877260f.azurestaticapps.net),总共 50 个测验,每个测验三个问题。它们的链接在每节课中,而且这个测验应用可以在本地运行。请参考 `quiz-app` 文件夹中的指南。 + + +| 课程编号 | 主体 | 课程组 | 学习目标 | 课程链接 | 作者 | +| :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | +| 01 | 机器学习简介 | [简介](1-Introduction/README.md) | 了解机器学习背后的基本概念 | [课程](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | 机器学习的历史 | [简介](1-Introduction/README.md) | 了解该领域的历史 | [课程](1-Introduction/2-history-of-ML/README.md) | Jen 和 Amy | +| 03 | 机器学习与公平 | [简介](1-Introduction/README.md) | 在构建和应用机器学习模型时,我们应该考虑哪些有关公平的重要哲学问题? | [课程](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | 机器学习的技术工具 | [简介](1-Introduction/README.md) | 机器学习研究者使用哪些技术来构建机器学习模型? | [课程](1-Introduction/4-techniques-of-ML/README.md) | Chris 和 Jen | +| 05 | 回归简介 | [回归](2-Regression/README.md) | 开始使用 Python 和 Scikit-learn 构建回归模型 | [课程](2-Regression/1-Tools/README.md) | Jen | +| 06 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 可视化、进行数据清理,为机器学习做准备 | [课程](2-Regression/2-Data/README.md) | Jen | +| 07 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 建立线性和多项式回归模型 | [课程](2-Regression/3-Linear/README.md) | Jen | +| 08 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 构建逻辑回归模型 | [课程](2-Regression/4-Logistic/README.md) | Jen | +| 09 | 一个网页应用 🔌 | [网页应用](3-Web-App/README.md) | 构建一个 Web 应用程序以使用经过训练的模型 | [课程](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分类简介 | [分类](4-Classification/README.md) | 清理、准备和可视化数据; 分类简介 | [课程](4-Classification/1-Introduction/README.md) | Jen 和 Cassie | +| 11 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 分类器简介 | [课程](4-Classification/2-Classifiers-1/README.md) | Jen 和 Cassie | +| 12 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 关于分类器的更多内容 | [课程](4-Classification/3-Classifiers-2/README.md) | Jen 和 Cassie | +| 13 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 使用您的模型构建一个可以「推荐」的 Web 应用 | [课程](4-Classification/4-Applied/README.md) | Jen | +| 14 | 聚类简介 | [聚类](5-Clustering/README.md) | 清理、准备和可视化数据; 聚类简介 | [课程](5-Clustering/1-Visualize/README.md) | Jen | +| 15 | 探索尼日利亚人的音乐品味 🎧 | [聚类](5-Clustering/README.md) | 探索 K-Means 聚类方法 | [课程](5-Clustering/2-K-Means/README.md) | Jen | +| 16 | 自然语言处理 (NLP) 简介 ☕️ | [自然语言处理](6-NLP/README.md) | 通过构建一个简单的 bot (机器人) 来了解 NLP 的基础知识 | [课程](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 常见的 NLP 任务 ☕️ | [自然语言处理](6-NLP/README.md) | 通过理解处理语言结构时所需的常见任务来加深对于自然语言处理 (NLP) 的理解 | [课程](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻译和情感分析 ♥️ | [自然语言处理](6-NLP/README.md) | 对简·奥斯汀的文本进行翻译和情感分析 | [课程](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | 欧洲的浪漫酒店 ♥️ | [自然语言处理](6-NLP/README.md) | 对于酒店评价进行情感分析(上) | [课程](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | 欧洲的浪漫酒店 ♥️ | [自然语言处理](6-NLP/README.md) | 对于酒店评价进行情感分析(下) | [课程](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 时间序列预测简介 | [时间序列](7-TimeSeries/README.md) | 时间序列预测简介 forecasting | [课程](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 世界用电量 ⚡️ - 使用 ARIMA 进行时间序列预测 | [时间序列](7-TimeSeries/README.md) | 使用 ARIMA 进行时间序列预测 | [课程](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | 强化学习简介 | [强化学习](8-Reinforcement/README.md) | Q-Learning 强化学习简介 | [课程](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | 帮助 Peter 避开狼!🐺 | [强化学习](8-Reinforcement/README.md) | 强化学习练习 | [课程](8-Reinforcement/2-Gym/README.md) | Dmitry | +| 后记 | 现实世界中的机器学习场景和应用 | [自然场景下的机器学习](9-Real-World/README.md) | 探索有趣的经典机器学习方法,了解现实世界中机器学习的应用 | [课程](9-Real-World/1-Applications/README.md) | 团队 | +## 离线访问 + +您可以使用 [Docsify](https://docsify.js.org/#/) 离线运行此文档。 Fork 这个仓库,并在你的本地机器上[安装 Docsify](https://docsify.js.org/#/quickstart),并在这个仓库的根文件夹中运行 `docsify serve`。你可以通过 localhost 的 3000 端口访问此文档:`localhost:3000`。 +## PDF 文档们 + +点击[这里](pdf/readme.pdf)查找课程的 PDF 文档们。 + +## 需要你的帮助! + +想贡献一份翻译吗?请阅读我们的[翻译指南](TRANSLATIONS.md)并在[此处](https://github.com/microsoft/ML-For-Beginners/issues/71)添加你的意见。 + +## 其他课程 + +我们的团队还制作了其他课程!可以看一下: + +- [针对初学者的 Web 开发课程](https://aka.ms/webdev-beginners) +- [针对初学者的物联网课程](https://aka.ms/iot-beginners) + From f9fba092689ecf930fd556463810d598551a6aa4 Mon Sep 17 00:00:00 2001 From: Colin Zang Date: Thu, 15 Jul 2021 01:07:14 +0800 Subject: [PATCH 053/228] Update README.md --- README.md | 62 +++++++++++++++++++++++++++---------------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/README.md b/README.md index 34c09b57..4645edb3 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) [![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![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/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) [![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) @@ -37,13 +37,13 @@ Travel with us around the world as we apply these classic techniques to data fro > For further study, we recommend following these [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) modules and learning paths. -**Teachers**, we have [included some suggestions](for-teachers.md) on how to use this curriculum. +**Teachers**, we have [included some suggestions](../for-teachers.md) on how to use this curriculum. --- ## Meet the Team -[![Promo video](ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "Promo video") +[![Promo video](../ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "Promo video") > 🎥 Click the image above for a video about the project and the folks who created it! @@ -54,7 +54,7 @@ We have chosen two pedagogical tenets while building this curriculum: ensuring t By ensuring that the content aligns with projects, the process is made more engaging for students and retention of concepts will be augmented. In addition, a low-stakes quiz before a class sets the intention of the student towards learning a topic, while a second quiz after class ensures further retention. This curriculum was designed to be flexible and fun and can be taken in whole or in part. The projects start small and become increasingly complex by the end of the 12 week cycle. This curriculum also includes a postscript on real-world applications of ML, which can be used as extra credit or as a basis for discussion. -> Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), and [Translation](TRANSLATIONS.md) guidelines. We welcome your constructive feedback! +> Find our [Code of Conduct](../CODE_OF_CONDUCT.md), [Contributing](../CONTRIBUTING.md), and [Translation](../TRANSLATIONS.md) guidelines. We welcome your constructive feedback! ## Each lesson includes: - optional sketchnote @@ -73,42 +73,42 @@ By ensuring that the content aligns with projects, the process is made more enga | Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | | :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | -| 01 | Introduction to machine learning | [Introduction](1-Introduction/README.md) | Learn the basic concepts behind machine learning | [lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | The History of machine learning | [Introduction](1-Introduction/README.md) | Learn the history underlying this field | [lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Fairness and machine learning | [Introduction](1-Introduction/README.md) | What are the important philosophical issues around fairness that students should consider when building and applying ML models? | [lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniques for machine learning | [Introduction](1-Introduction/README.md) | What techniques do ML researchers use to build ML models? | [lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Introduction to regression | [Regression](2-Regression/README.md) | Get started with Python and Scikit-learn for regression models | [lesson](2-Regression/1-Tools/README.md) | Jen | -| 06 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data in preparation for ML | [lesson](2-Regression/2-Data/README.md) | Jen | -| 07 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build linear and polynomial regression models | [lesson](2-Regression/3-Linear/README.md) | Jen | -| 08 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build a logistic regression model | [lesson](2-Regression/4-Logistic/README.md) | Jen | -| 09 | A Web App 🔌 | [Web App](3-Web-App/README.md) | Build a web app to use your trained model | [lesson](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introduction to classification | [Classification](4-Classification/README.md) | Clean, prep, and visualize your data; introduction to classification | [lesson](4-Classification/1-Introduction/README.md) | Jen and Cassie | -| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Introduction to classifiers | [lesson](4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | -| 12 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | More classifiers | [lesson](4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | -| 13 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Build a recommender web app using your model | [lesson](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introduction to clustering | [Clustering](5-Clustering/README.md) | Clean, prep, and visualize your data; Introduction to clustering | [lesson](5-Clustering/1-Visualize/README.md) | Jen | -| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Explore the K-Means clustering method | [lesson](5-Clustering/2-K-Means/README.md) | Jen | -| 16 | Introduction to natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Learn the basics about NLP by building a simple bot | [lesson](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Common NLP Tasks ☕️ | [Natural language processing](6-NLP/README.md) | Deepen your NLP knowledge by understanding common tasks required when dealing with language structures | [lesson](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](6-NLP/README.md) | Translation and sentiment analysis with Jane Austen | [lesson](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews, 1 | [lesson](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 2 | [lesson](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introduction to time series forecasting | [Time series](7-TimeSeries/README.md) | Introduction to time series forecasting | [lesson](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ World Power Usage ⚡️ - time series forecasting with ARIMA | [Time series](7-TimeSeries/README.md) | Time series forecasting with ARIMA | [lesson](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | Introduction to reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [lesson](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 24 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [lesson](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Real-World ML scenarios and applications | [ML in the Wild](9-Real-World/README.md) | Interesting and revealing real-world applications of classical ML | [lesson](9-Real-World/1-Applications/README.md) | Team | +| 01 | Introduction to machine learning | [Introduction](../1-Introduction/README.md) | Learn the basic concepts behind machine learning | [lesson](../1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | The History of machine learning | [Introduction](../1-Introduction/README.md) | Learn the history underlying this field | [lesson](../1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Fairness and machine learning | [Introduction](../1-Introduction/README.md) | What are the important philosophical issues around fairness that students should consider when building and applying ML models? | [lesson](../1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniques for machine learning | [Introduction](../1-Introduction/README.md) | What techniques do ML researchers use to build ML models? | [lesson](../1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Introduction to regression | [Regression](../2-Regression/README.md) | Get started with Python and Scikit-learn for regression models | [lesson](../2-Regression/1-Tools/README.md) | Jen | +| 06 | North American pumpkin prices 🎃 | [Regression](../2-Regression/README.md) | Visualize and clean data in preparation for ML | [lesson](../2-Regression/2-Data/README.md) | Jen | +| 07 | North American pumpkin prices 🎃 | [Regression](../2-Regression/README.md) | Build linear and polynomial regression models | [lesson](../2-Regression/3-Linear/README.md) | Jen | +| 08 | North American pumpkin prices 🎃 | [Regression](../2-Regression/README.md) | Build a logistic regression model | [lesson](../2-Regression/4-Logistic/README.md) | Jen | +| 09 | A Web App 🔌 | [Web App](../3-Web-App/README.md) | Build a web app to use your trained model | [lesson](../3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introduction to classification | [Classification](../4-Classification/README.md) | Clean, prep, and visualize your data; introduction to classification | [lesson](../4-Classification/1-Introduction/README.md) | Jen and Cassie | +| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](../4-Classification/README.md) | Introduction to classifiers | [lesson](../4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | +| 12 | Delicious Asian and Indian cuisines 🍜 | [Classification](../4-Classification/README.md) | More classifiers | [lesson](../4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | +| 13 | Delicious Asian and Indian cuisines 🍜 | [Classification](../4-Classification/README.md) | Build a recommender web app using your model | [lesson](../4-Classification/4-Applied/README.md) | Jen | +| 14 | Introduction to clustering | [Clustering](../5-Clustering/README.md) | Clean, prep, and visualize your data; Introduction to clustering | [lesson](../5-Clustering/1-Visualize/README.md) | Jen | +| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](../5-Clustering/README.md) | Explore the K-Means clustering method | [lesson](../5-Clustering/2-K-Means/README.md) | Jen | +| 16 | Introduction to natural language processing ☕️ | [Natural language processing](../6-NLP/README.md) | Learn the basics about NLP by building a simple bot | [lesson](../6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Common NLP Tasks ☕️ | [Natural language processing](../6-NLP/README.md) | Deepen your NLP knowledge by understanding common tasks required when dealing with language structures | [lesson](../6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](../6-NLP/README.md) | Translation and sentiment analysis with Jane Austen | [lesson](../6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantic hotels of Europe ♥️ | [Natural language processing](../6-NLP/README.md) | Sentiment analysis with hotel reviews, 1 | [lesson](../6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantic hotels of Europe ♥️ | [Natural language processing](../6-NLP/README.md) | Sentiment analysis with hotel reviews 2 | [lesson](../6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introduction to time series forecasting | [Time series](../7-TimeSeries/README.md) | Introduction to time series forecasting | [lesson](../7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ World Power Usage ⚡️ - time series forecasting with ARIMA | [Time series](../7-TimeSeries/README.md) | Time series forecasting with ARIMA | [lesson](../7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | Introduction to reinforcement learning | [Reinforcement learning](../8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [lesson](../8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](../8-Reinforcement/README.md) | Reinforcement learning Gym | [lesson](../8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Real-World ML scenarios and applications | [ML in the Wild](../9-Real-World/README.md) | Interesting and revealing real-world applications of classical ML | [lesson](../9-Real-World/1-Applications/README.md) | Team | ## 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, and then in the root folder of this repo, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`. ## PDFs -Find a pdf of the curriculum with links [here](pdf/readme.pdf) +Find a pdf of the curriculum with links [here](../pdf/readme.pdf) ## Help Wanted! -Would you like to contribute a translation? Please read our [translation guidelines](TRANSLATIONS.md) and add input [here](https://github.com/microsoft/ML-For-Beginners/issues/71) +Would you like to contribute a translation? Please read our [translation guidelines](../TRANSLATIONS.md) and add input [here](https://github.com/microsoft/ML-For-Beginners/issues/71) ## Other Curricula From 928febc4932997c91418b83851c7a372a7e5e908 Mon Sep 17 00:00:00 2001 From: Colin Zang Date: Thu, 15 Jul 2021 01:09:11 +0800 Subject: [PATCH 054/228] Updated README.zh-cn.md --- README.md | 62 ++++++++++++++++++------------------ translations/README.zh-cn.md | 62 ++++++++++++++++++------------------ 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 4645edb3..34c09b57 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) [![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](../http://makeapullrequest.com) +[![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/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) [![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) @@ -37,13 +37,13 @@ Travel with us around the world as we apply these classic techniques to data fro > For further study, we recommend following these [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) modules and learning paths. -**Teachers**, we have [included some suggestions](../for-teachers.md) on how to use this curriculum. +**Teachers**, we have [included some suggestions](for-teachers.md) on how to use this curriculum. --- ## Meet the Team -[![Promo video](../ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "Promo video") +[![Promo video](ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "Promo video") > 🎥 Click the image above for a video about the project and the folks who created it! @@ -54,7 +54,7 @@ We have chosen two pedagogical tenets while building this curriculum: ensuring t By ensuring that the content aligns with projects, the process is made more engaging for students and retention of concepts will be augmented. In addition, a low-stakes quiz before a class sets the intention of the student towards learning a topic, while a second quiz after class ensures further retention. This curriculum was designed to be flexible and fun and can be taken in whole or in part. The projects start small and become increasingly complex by the end of the 12 week cycle. This curriculum also includes a postscript on real-world applications of ML, which can be used as extra credit or as a basis for discussion. -> Find our [Code of Conduct](../CODE_OF_CONDUCT.md), [Contributing](../CONTRIBUTING.md), and [Translation](../TRANSLATIONS.md) guidelines. We welcome your constructive feedback! +> Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), and [Translation](TRANSLATIONS.md) guidelines. We welcome your constructive feedback! ## Each lesson includes: - optional sketchnote @@ -73,42 +73,42 @@ By ensuring that the content aligns with projects, the process is made more enga | Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | | :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | -| 01 | Introduction to machine learning | [Introduction](../1-Introduction/README.md) | Learn the basic concepts behind machine learning | [lesson](../1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | The History of machine learning | [Introduction](../1-Introduction/README.md) | Learn the history underlying this field | [lesson](../1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Fairness and machine learning | [Introduction](../1-Introduction/README.md) | What are the important philosophical issues around fairness that students should consider when building and applying ML models? | [lesson](../1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniques for machine learning | [Introduction](../1-Introduction/README.md) | What techniques do ML researchers use to build ML models? | [lesson](../1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Introduction to regression | [Regression](../2-Regression/README.md) | Get started with Python and Scikit-learn for regression models | [lesson](../2-Regression/1-Tools/README.md) | Jen | -| 06 | North American pumpkin prices 🎃 | [Regression](../2-Regression/README.md) | Visualize and clean data in preparation for ML | [lesson](../2-Regression/2-Data/README.md) | Jen | -| 07 | North American pumpkin prices 🎃 | [Regression](../2-Regression/README.md) | Build linear and polynomial regression models | [lesson](../2-Regression/3-Linear/README.md) | Jen | -| 08 | North American pumpkin prices 🎃 | [Regression](../2-Regression/README.md) | Build a logistic regression model | [lesson](../2-Regression/4-Logistic/README.md) | Jen | -| 09 | A Web App 🔌 | [Web App](../3-Web-App/README.md) | Build a web app to use your trained model | [lesson](../3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introduction to classification | [Classification](../4-Classification/README.md) | Clean, prep, and visualize your data; introduction to classification | [lesson](../4-Classification/1-Introduction/README.md) | Jen and Cassie | -| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](../4-Classification/README.md) | Introduction to classifiers | [lesson](../4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | -| 12 | Delicious Asian and Indian cuisines 🍜 | [Classification](../4-Classification/README.md) | More classifiers | [lesson](../4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | -| 13 | Delicious Asian and Indian cuisines 🍜 | [Classification](../4-Classification/README.md) | Build a recommender web app using your model | [lesson](../4-Classification/4-Applied/README.md) | Jen | -| 14 | Introduction to clustering | [Clustering](../5-Clustering/README.md) | Clean, prep, and visualize your data; Introduction to clustering | [lesson](../5-Clustering/1-Visualize/README.md) | Jen | -| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](../5-Clustering/README.md) | Explore the K-Means clustering method | [lesson](../5-Clustering/2-K-Means/README.md) | Jen | -| 16 | Introduction to natural language processing ☕️ | [Natural language processing](../6-NLP/README.md) | Learn the basics about NLP by building a simple bot | [lesson](../6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Common NLP Tasks ☕️ | [Natural language processing](../6-NLP/README.md) | Deepen your NLP knowledge by understanding common tasks required when dealing with language structures | [lesson](../6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](../6-NLP/README.md) | Translation and sentiment analysis with Jane Austen | [lesson](../6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantic hotels of Europe ♥️ | [Natural language processing](../6-NLP/README.md) | Sentiment analysis with hotel reviews, 1 | [lesson](../6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantic hotels of Europe ♥️ | [Natural language processing](../6-NLP/README.md) | Sentiment analysis with hotel reviews 2 | [lesson](../6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introduction to time series forecasting | [Time series](../7-TimeSeries/README.md) | Introduction to time series forecasting | [lesson](../7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ World Power Usage ⚡️ - time series forecasting with ARIMA | [Time series](../7-TimeSeries/README.md) | Time series forecasting with ARIMA | [lesson](../7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | Introduction to reinforcement learning | [Reinforcement learning](../8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [lesson](../8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 24 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](../8-Reinforcement/README.md) | Reinforcement learning Gym | [lesson](../8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Real-World ML scenarios and applications | [ML in the Wild](../9-Real-World/README.md) | Interesting and revealing real-world applications of classical ML | [lesson](../9-Real-World/1-Applications/README.md) | Team | +| 01 | Introduction to machine learning | [Introduction](1-Introduction/README.md) | Learn the basic concepts behind machine learning | [lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | The History of machine learning | [Introduction](1-Introduction/README.md) | Learn the history underlying this field | [lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Fairness and machine learning | [Introduction](1-Introduction/README.md) | What are the important philosophical issues around fairness that students should consider when building and applying ML models? | [lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniques for machine learning | [Introduction](1-Introduction/README.md) | What techniques do ML researchers use to build ML models? | [lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Introduction to regression | [Regression](2-Regression/README.md) | Get started with Python and Scikit-learn for regression models | [lesson](2-Regression/1-Tools/README.md) | Jen | +| 06 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data in preparation for ML | [lesson](2-Regression/2-Data/README.md) | Jen | +| 07 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build linear and polynomial regression models | [lesson](2-Regression/3-Linear/README.md) | Jen | +| 08 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build a logistic regression model | [lesson](2-Regression/4-Logistic/README.md) | Jen | +| 09 | A Web App 🔌 | [Web App](3-Web-App/README.md) | Build a web app to use your trained model | [lesson](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introduction to classification | [Classification](4-Classification/README.md) | Clean, prep, and visualize your data; introduction to classification | [lesson](4-Classification/1-Introduction/README.md) | Jen and Cassie | +| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Introduction to classifiers | [lesson](4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | +| 12 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | More classifiers | [lesson](4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | +| 13 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Build a recommender web app using your model | [lesson](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introduction to clustering | [Clustering](5-Clustering/README.md) | Clean, prep, and visualize your data; Introduction to clustering | [lesson](5-Clustering/1-Visualize/README.md) | Jen | +| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Explore the K-Means clustering method | [lesson](5-Clustering/2-K-Means/README.md) | Jen | +| 16 | Introduction to natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Learn the basics about NLP by building a simple bot | [lesson](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Common NLP Tasks ☕️ | [Natural language processing](6-NLP/README.md) | Deepen your NLP knowledge by understanding common tasks required when dealing with language structures | [lesson](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](6-NLP/README.md) | Translation and sentiment analysis with Jane Austen | [lesson](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews, 1 | [lesson](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 2 | [lesson](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introduction to time series forecasting | [Time series](7-TimeSeries/README.md) | Introduction to time series forecasting | [lesson](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ World Power Usage ⚡️ - time series forecasting with ARIMA | [Time series](7-TimeSeries/README.md) | Time series forecasting with ARIMA | [lesson](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | Introduction to reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [lesson](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [lesson](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Real-World ML scenarios and applications | [ML in the Wild](9-Real-World/README.md) | Interesting and revealing real-world applications of classical ML | [lesson](9-Real-World/1-Applications/README.md) | Team | ## 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, and then in the root folder of this repo, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`. ## PDFs -Find a pdf of the curriculum with links [here](../pdf/readme.pdf) +Find a pdf of the curriculum with links [here](pdf/readme.pdf) ## Help Wanted! -Would you like to contribute a translation? Please read our [translation guidelines](../TRANSLATIONS.md) and add input [here](https://github.com/microsoft/ML-For-Beginners/issues/71) +Would you like to contribute a translation? Please read our [translation guidelines](TRANSLATIONS.md) and add input [here](https://github.com/microsoft/ML-For-Beginners/issues/71) ## Other Curricula diff --git a/translations/README.zh-cn.md b/translations/README.zh-cn.md index 3918b008..f46a50d6 100644 --- a/translations/README.zh-cn.md +++ b/translations/README.zh-cn.md @@ -2,7 +2,7 @@ [![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) [![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![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/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) [![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) @@ -37,13 +37,13 @@ > 如果希望进一步学习,我们推荐跟随 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) 的模块和学习路径。 -**对于老师们**,我们对于如何使用这套教程[提供了一些建议](for-teachers.md)。 +**对于老师们**,我们对于如何使用这套教程[提供了一些建议](../for-teachers.md)。 --- ## 项目团队 -[![宣传视频](ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "宣传视频") +[![宣传视频](../ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "宣传视频") > 🎥 点击上方的图片,来观看一个关于这个项目和它的创造者们的视频! @@ -54,7 +54,7 @@ 通过确保课程内容与项目强相关,我们让学习过程对学生更具吸引力,概念的学习也被深化了。难度较低的课前测验可以吸引学生学习课程,课后的第二次测验进一步重复了课堂中的概念。该课程被设计地灵活有趣,可以一次性全部学习,或者分开来一部分一部分学习。这些项目由浅入深,从第一周的的小项目开始,在第十二周的周期结束时变得较为复杂。本课程还包括一个关于机器学习实际应用的后记,可用作额外学分或讨论的基础。 -> 在这里,你可以找到我们的[行为守则](CODE_OF_CONDUCT.md),[对项目作出贡献](CONTRIBUTING.md)以及[翻译](TRANSLATIONS.md)指南。我们欢迎各位提出有建设性的反馈! +> 在这里,你可以找到我们的[行为守则](../CODE_OF_CONDUCT.md),[对项目作出贡献](../CONTRIBUTING.md)以及[翻译](../TRANSLATIONS.md)指南。我们欢迎各位提出有建设性的反馈! ## 每一节课都包含: @@ -74,41 +74,41 @@ | 课程编号 | 主体 | 课程组 | 学习目标 | 课程链接 | 作者 | | :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | -| 01 | 机器学习简介 | [简介](1-Introduction/README.md) | 了解机器学习背后的基本概念 | [课程](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | 机器学习的历史 | [简介](1-Introduction/README.md) | 了解该领域的历史 | [课程](1-Introduction/2-history-of-ML/README.md) | Jen 和 Amy | -| 03 | 机器学习与公平 | [简介](1-Introduction/README.md) | 在构建和应用机器学习模型时,我们应该考虑哪些有关公平的重要哲学问题? | [课程](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | 机器学习的技术工具 | [简介](1-Introduction/README.md) | 机器学习研究者使用哪些技术来构建机器学习模型? | [课程](1-Introduction/4-techniques-of-ML/README.md) | Chris 和 Jen | -| 05 | 回归简介 | [回归](2-Regression/README.md) | 开始使用 Python 和 Scikit-learn 构建回归模型 | [课程](2-Regression/1-Tools/README.md) | Jen | -| 06 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 可视化、进行数据清理,为机器学习做准备 | [课程](2-Regression/2-Data/README.md) | Jen | -| 07 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 建立线性和多项式回归模型 | [课程](2-Regression/3-Linear/README.md) | Jen | -| 08 | 北美南瓜价格 🎃 | [回归](2-Regression/README.md) | 构建逻辑回归模型 | [课程](2-Regression/4-Logistic/README.md) | Jen | -| 09 | 一个网页应用 🔌 | [网页应用](3-Web-App/README.md) | 构建一个 Web 应用程序以使用经过训练的模型 | [课程](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 分类简介 | [分类](4-Classification/README.md) | 清理、准备和可视化数据; 分类简介 | [课程](4-Classification/1-Introduction/README.md) | Jen 和 Cassie | -| 11 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 分类器简介 | [课程](4-Classification/2-Classifiers-1/README.md) | Jen 和 Cassie | -| 12 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 关于分类器的更多内容 | [课程](4-Classification/3-Classifiers-2/README.md) | Jen 和 Cassie | -| 13 | 美味的亚洲和印度美食 🍜 | [分类](4-Classification/README.md) | 使用您的模型构建一个可以「推荐」的 Web 应用 | [课程](4-Classification/4-Applied/README.md) | Jen | -| 14 | 聚类简介 | [聚类](5-Clustering/README.md) | 清理、准备和可视化数据; 聚类简介 | [课程](5-Clustering/1-Visualize/README.md) | Jen | -| 15 | 探索尼日利亚人的音乐品味 🎧 | [聚类](5-Clustering/README.md) | 探索 K-Means 聚类方法 | [课程](5-Clustering/2-K-Means/README.md) | Jen | -| 16 | 自然语言处理 (NLP) 简介 ☕️ | [自然语言处理](6-NLP/README.md) | 通过构建一个简单的 bot (机器人) 来了解 NLP 的基础知识 | [课程](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 常见的 NLP 任务 ☕️ | [自然语言处理](6-NLP/README.md) | 通过理解处理语言结构时所需的常见任务来加深对于自然语言处理 (NLP) 的理解 | [课程](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 翻译和情感分析 ♥️ | [自然语言处理](6-NLP/README.md) | 对简·奥斯汀的文本进行翻译和情感分析 | [课程](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | 欧洲的浪漫酒店 ♥️ | [自然语言处理](6-NLP/README.md) | 对于酒店评价进行情感分析(上) | [课程](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | 欧洲的浪漫酒店 ♥️ | [自然语言处理](6-NLP/README.md) | 对于酒店评价进行情感分析(下) | [课程](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 时间序列预测简介 | [时间序列](7-TimeSeries/README.md) | 时间序列预测简介 forecasting | [课程](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 世界用电量 ⚡️ - 使用 ARIMA 进行时间序列预测 | [时间序列](7-TimeSeries/README.md) | 使用 ARIMA 进行时间序列预测 | [课程](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | 强化学习简介 | [强化学习](8-Reinforcement/README.md) | Q-Learning 强化学习简介 | [课程](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 24 | 帮助 Peter 避开狼!🐺 | [强化学习](8-Reinforcement/README.md) | 强化学习练习 | [课程](8-Reinforcement/2-Gym/README.md) | Dmitry | -| 后记 | 现实世界中的机器学习场景和应用 | [自然场景下的机器学习](9-Real-World/README.md) | 探索有趣的经典机器学习方法,了解现实世界中机器学习的应用 | [课程](9-Real-World/1-Applications/README.md) | 团队 | +| 01 | 机器学习简介 | [简介](../1-Introduction/README.md) | 了解机器学习背后的基本概念 | [课程](../1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | 机器学习的历史 | [简介](../1-Introduction/README.md) | 了解该领域的历史 | [课程](../1-Introduction/2-history-of-ML/README.md) | Jen 和 Amy | +| 03 | 机器学习与公平 | [简介](../1-Introduction/README.md) | 在构建和应用机器学习模型时,我们应该考虑哪些有关公平的重要哲学问题? | [课程](../1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | 机器学习的技术工具 | [简介](../1-Introduction/README.md) | 机器学习研究者使用哪些技术来构建机器学习模型? | [课程](../1-Introduction/4-techniques-of-ML/README.md) | Chris 和 Jen | +| 05 | 回归简介 | [回归](../2-Regression/README.md) | 开始使用 Python 和 Scikit-learn 构建回归模型 | [课程](../2-Regression/1-Tools/README.md) | Jen | +| 06 | 北美南瓜价格 🎃 | [回归](../2-Regression/README.md) | 可视化、进行数据清理,为机器学习做准备 | [课程](../2-Regression/2-Data/README.md) | Jen | +| 07 | 北美南瓜价格 🎃 | [回归](../2-Regression/README.md) | 建立线性和多项式回归模型 | [课程](../2-Regression/3-Linear/README.md) | Jen | +| 08 | 北美南瓜价格 🎃 | [回归](../2-Regression/README.md) | 构建逻辑回归模型 | [课程](../2-Regression/4-Logistic/README.md) | Jen | +| 09 | 一个网页应用 🔌 | [网页应用](../3-Web-App/README.md) | 构建一个 Web 应用程序以使用经过训练的模型 | [课程](../3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分类简介 | [分类](../4-Classification/README.md) | 清理、准备和可视化数据; 分类简介 | [课程](../4-Classification/1-Introduction/README.md) | Jen 和 Cassie | +| 11 | 美味的亚洲和印度美食 🍜 | [分类](../4-Classification/README.md) | 分类器简介 | [课程](../4-Classification/2-Classifiers-1/README.md) | Jen 和 Cassie | +| 12 | 美味的亚洲和印度美食 🍜 | [分类](../4-Classification/README.md) | 关于分类器的更多内容 | [课程](../4-Classification/3-Classifiers-2/README.md) | Jen 和 Cassie | +| 13 | 美味的亚洲和印度美食 🍜 | [分类](../4-Classification/README.md) | 使用您的模型构建一个可以「推荐」的 Web 应用 | [课程](../4-Classification/4-Applied/README.md) | Jen | +| 14 | 聚类简介 | [聚类](../5-Clustering/README.md) | 清理、准备和可视化数据; 聚类简介 | [课程](../5-Clustering/1-Visualize/README.md) | Jen | +| 15 | 探索尼日利亚人的音乐品味 🎧 | [聚类](../5-Clustering/README.md) | 探索 K-Means 聚类方法 | [课程](../5-Clustering/2-K-Means/README.md) | Jen | +| 16 | 自然语言处理 (NLP) 简介 ☕️ | [自然语言处理](../6-NLP/README.md) | 通过构建一个简单的 bot (机器人) 来了解 NLP 的基础知识 | [课程](../6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 常见的 NLP 任务 ☕️ | [自然语言处理](../6-NLP/README.md) | 通过理解处理语言结构时所需的常见任务来加深对于自然语言处理 (NLP) 的理解 | [课程](../6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻译和情感分析 ♥️ | [自然语言处理](../6-NLP/README.md) | 对简·奥斯汀的文本进行翻译和情感分析 | [课程](../6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | 欧洲的浪漫酒店 ♥️ | [自然语言处理](../6-NLP/README.md) | 对于酒店评价进行情感分析(上) | [课程](../6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | 欧洲的浪漫酒店 ♥️ | [自然语言处理](../6-NLP/README.md) | 对于酒店评价进行情感分析(下) | [课程](../6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 时间序列预测简介 | [时间序列](../7-TimeSeries/README.md) | 时间序列预测简介 forecasting | [课程](../7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 世界用电量 ⚡️ - 使用 ARIMA 进行时间序列预测 | [时间序列](../7-TimeSeries/README.md) | 使用 ARIMA 进行时间序列预测 | [课程](../7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | 强化学习简介 | [强化学习](../8-Reinforcement/README.md) | Q-Learning 强化学习简介 | [课程](../8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | 帮助 Peter 避开狼!🐺 | [强化学习](../8-Reinforcement/README.md) | 强化学习练习 | [课程](../8-Reinforcement/2-Gym/README.md) | Dmitry | +| 后记 | 现实世界中的机器学习场景和应用 | [自然场景下的机器学习](../9-Real-World/README.md) | 探索有趣的经典机器学习方法,了解现实世界中机器学习的应用 | [课程](../9-Real-World/1-Applications/README.md) | 团队 | ## 离线访问 您可以使用 [Docsify](https://docsify.js.org/#/) 离线运行此文档。 Fork 这个仓库,并在你的本地机器上[安装 Docsify](https://docsify.js.org/#/quickstart),并在这个仓库的根文件夹中运行 `docsify serve`。你可以通过 localhost 的 3000 端口访问此文档:`localhost:3000`。 ## PDF 文档们 -点击[这里](pdf/readme.pdf)查找课程的 PDF 文档们。 +点击[这里](../pdf/readme.pdf)查找课程的 PDF 文档们。 ## 需要你的帮助! -想贡献一份翻译吗?请阅读我们的[翻译指南](TRANSLATIONS.md)并在[此处](https://github.com/microsoft/ML-For-Beginners/issues/71)添加你的意见。 +想贡献一份翻译吗?请阅读我们的[翻译指南](../TRANSLATIONS.md)并在[此处](https://github.com/microsoft/ML-For-Beginners/issues/71)添加你的意见。 ## 其他课程 From 38c3dfa0c332e03c8e4cefb52c7af5c014b9237e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Thu, 15 Jul 2021 01:19:49 +0800 Subject: [PATCH 055/228] rename --- 2-Regression/translations/{README.zh-ch.md => README.zh-cn.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename 2-Regression/translations/{README.zh-ch.md => README.zh-cn.md} (100%) diff --git a/2-Regression/translations/README.zh-ch.md b/2-Regression/translations/README.zh-cn.md similarity index 100% rename from 2-Regression/translations/README.zh-ch.md rename to 2-Regression/translations/README.zh-cn.md From 109b2078e8b6eacb37a9174745ee26cac2cb086f Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Wed, 14 Jul 2021 20:30:41 +0200 Subject: [PATCH 056/228] Italian Translation - Chapter 2-3 complete --- .../2-Data/translations/assignment.it.md | 1 + .../3-Linear/translations/README.it.md | 339 ++++++++++++++++++ .../3-Linear/translations/assignment.it.md | 11 + 3 files changed, 351 insertions(+) create mode 100644 2-Regression/3-Linear/translations/README.it.md create mode 100644 2-Regression/3-Linear/translations/assignment.it.md diff --git a/2-Regression/2-Data/translations/assignment.it.md b/2-Regression/2-Data/translations/assignment.it.md index 6fe0cf50..14527fca 100644 --- a/2-Regression/2-Data/translations/assignment.it.md +++ b/2-Regression/2-Data/translations/assignment.it.md @@ -1,6 +1,7 @@ # Esplorazione delle visualizzazioni Sono disponibili diverse librerie per la visualizzazione dei dati. Creare alcune visualizzazioni utilizzando i dati della zucca in questa lezione con matplotlib e seaborn in un notebook di esempio. Con quali librerie è più facile lavorare? + ## Rubrica | Criteri | Ottimo | Adeguato | Necessita miglioramento | diff --git a/2-Regression/3-Linear/translations/README.it.md b/2-Regression/3-Linear/translations/README.it.md new file mode 100644 index 00000000..1aafa601 --- /dev/null +++ b/2-Regression/3-Linear/translations/README.it.md @@ -0,0 +1,339 @@ +# Costruire un modello di regressione usando Scikit-learn: regressione in due modi + +![Infografica di regressione lineare e polinomiale](../images/linear-polynomial.png) +> Infografica di [Dasani Madipalli](https://twitter.com/dasani_decoded) + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/13/) + +### Introduzione + +Finora si è esplorato cos'è la regressione con dati di esempio raccolti dall'insieme di dati relativo ai prezzi della zucca, che verrà usato in questa lezione. Lo si è anche visualizzato usando Matplotlib. + +Ora si è pronti per approfondire la regressione per machine learning. In questa lezione si imparerà di più su due tipi di regressione: _regressione lineare di base_ e _regressione polinomiale_, insieme ad alcuni dei calcoli alla base di queste tecniche. + +> In questo programma di studi, si assume una conoscenza minima della matematica, e si cerca di renderla accessibile agli studenti provenienti da altri campi, quindi si faccia attenzione a note, 🧮 didascalie, diagrammi e altri strumenti di apprendimento che aiutano la comprensione. + +### Prerequisito + +Si dovrebbe ormai avere familiarità con la struttura dei dati della zucca che si sta esaminando. Lo si può trovare precaricato e prepulito nel file _notebook.ipynb_ di questa lezione. Nel file, il prezzo della zucca viene visualizzato per bushel (staio) in un nuovo dataframe. Assicurasi di poter eseguire questi notebook nei kernel in Visual Studio Code. + +### Preparazione + +Come promemoria, si stanno caricando questi dati in modo da porre domande su di essi. + +- Qual è il momento migliore per comprare le zucche? +- Che prezzo ci si può aspettare da una cassa di zucche in miniatura? +- Si devono acquistare in cestini da mezzo bushel o a scatola da 1 1/9 bushel? Si continua a scavare in questi dati. + +Nella lezione precedente, è stato creato un dataframe Pandas e si è popolato con parte dell'insieme di dati originale, standardizzando il prezzo per lo bushel. In questo modo, tuttavia, si sono potuti raccogliere solo circa 400 punti dati e solo per i mesi autunnali. + +Si dia un'occhiata ai dati precaricati nel notebook di accompagnamento di questa lezione. I dati sono precaricati e viene tracciato un grafico a dispersione iniziale per mostrare i dati mensili. Forse si può ottenere qualche dettaglio in più sulla natura dei dati pulendoli ulteriormente. + +## Una linea di regressione lineare + +Come si è appreso nella lezione 1, l'obiettivo di un esercizio di regressione lineare è essere in grado di tracciare una linea per: + +- **Mostrare le relazioni tra variabili**. +- **Fare previsioni**. Fare previsioni accurate su dove cadrebbe un nuovo punto dati in relazione a quella linea. + +È tipico della **Regressione dei Minimi Quadrati** disegnare questo tipo di linea. Il termine "minimi quadrati" significa che tutti i punti dati che circondano la linea di regressione sono elevati al quadrato e quindi sommati. Idealmente, quella somma finale è la più piccola possibile, perché si vuole un basso numero di errori, o `minimi quadrati`. + +Lo si fa perché si vuole modellare una linea che abbia la distanza cumulativa minima da tutti i punti dati. Si esegue anche il quadrato dei termini prima di aggiungerli poiché interessa la grandezza piuttosto che la direzione. + +> **🧮 Mostrami la matematica** +> +> Questa linea, chiamata _linea di miglior adattamento_ , può essere espressa da [un'equazione](https://en.wikipedia.org/wiki/Simple_linear_regression): +> +> ``` +> Y = a + bX +> ``` +> +> `X` è la "variabile esplicativa". `Y` è la "variabile dipendente". La pendenza della linea è `b` e `a` è l'intercetta di y, che si riferisce al valore di `Y` quando `X = 0`. +> +> ![calcolare la pendenza](../images/slope.png) +> +> Prima, calcolare la pendenza `b`. Infografica di [Jen Looper](https://twitter.com/jenlooper) +> +> In altre parole, facendo riferimento alla domanda originale per i dati sulle zucche: "prevedere il prezzo di una zucca per bushel per mese", `X` si riferisce al prezzo e `Y` si riferirisce al mese di vendita. +> +> ![completare l'equazione](../images/calculation.png) +> +> Si calcola il valore di Y. Se si sta pagando circa $4, deve essere aprile! Infografica di [Jen Looper](https://twitter.com/jenlooper) +> +> La matematica che calcola la linea deve dimostrare la pendenza della linea, che dipende anche dall'intercetta, o dove `Y` si trova quando `X = 0`. +> +> Si può osservare il metodo di calcolo per questi valori sul sito web [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) . Si visiti anche [questo calcolatore dei minimi quadrati](https://www.mathsisfun.com/data/least-squares-calculator.html) per vedere come i valori dei numeri influiscono sulla linea. + +## Correlazione + +Un altro termine da comprendere è il **Coefficiente di Correlazione** tra determinate variabili X e Y. Utilizzando un grafico a dispersione, è possibile visualizzare rapidamente questo coefficiente. Un grafico con punti dati sparsi in una linea ordinata ha un'alta correlazione, ma un grafico con punti dati sparsi ovunque tra X e Y ha una bassa correlazione. + +Un buon modello di regressione lineare sarà quello che ha un Coefficiente di Correlazione alto (più vicino a 1 rispetto a 0) utilizzando il Metodo di Regressione dei Minimi Quadrati con una linea di regressione. + +✅ Eseguire il notebook che accompagna questa lezione e guardare il grafico a dispersione City to Price. I dati che associano la città al prezzo per le vendite di zucca sembrano avere una correlazione alta o bassa, secondo la propria interpretazione visiva del grafico a dispersione? + + +## Preparare i dati per la regressione + +Ora che si ha una comprensione della matematica alla base di questo esercizio, si crea un modello di regressione per vedere se si può prevedere quale pacchetto di zucche avrà i migliori prezzi per zucca. Qualcuno che acquista zucche per una festa con tema un campo di zucche potrebbe desiderare che queste informazioni siano in grado di ottimizzare i propri acquisti di pacchetti di zucca per il campo. + +Dal momento che si utilizzerà Scikit-learn, non c'è motivo di farlo a mano (anche se si potrebbe!). Nel blocco di elaborazione dati principale del notebook della lezione, aggiungere una libreria da Scikit-learn per convertire automaticamente tutti i dati di tipo stringa in numeri: + +```python +from sklearn.preprocessing import LabelEncoder + +new_pumpkins.iloc[:, 0:-1] = new_pumpkins.iloc[:, 0:-1].apply(LabelEncoder().fit_transform) +``` + +Se si guarda ora il dataframe new_pumpkins, si vede che tutte le stringhe ora sono numeriche. Questo rende più difficile la lettura per un umano ma molto più comprensibile per Scikit-learn! +Ora si possono prendere decisioni più consapevoli (non solo basate sull'osservazione di un grafico a dispersione) sui dati più adatti alla regressione. + +Si provi a trovare una buona correlazione tra due punti nei propri dati per costruire potenzialmente un buon modello predittivo. A quanto pare, c'è solo una debole correlazione tra la città e il prezzo: + +```python +print(new_pumpkins['City'].corr(new_pumpkins['Price'])) +0.32363971816089226 +``` + +Tuttavia, c'è una correlazione leggermente migliore tra il pacchetto e il suo prezzo. Ha senso, vero? Normalmente, più grande è la scatola dei prodotti, maggiore è il prezzo. + +```python +print(new_pumpkins['Package'].corr(new_pumpkins['Price'])) +0.6061712937226021 +``` + +Una buona domanda da porre a questi dati sarà: "Che prezzo posso aspettarmi da un determinato pacchetto di zucca?" + +Si costruisce questo modello di regressione + +## Costruire un modello lineare + +Prima di costruire il modello, si esegue un altro riordino dei dati. Si eliminano tutti i dati nulli e si controlla ancora una volta che aspetto hanno i dati. + +```python +new_pumpkins.dropna(inplace=True) +new_pumpkins.info() +``` + +Quindi, si crea un nuovo dataframe da questo set minimo e lo si stampa: + +```python +new_columns = ['Package', 'Price'] +lin_pumpkins = new_pumpkins.drop([c for c in new_pumpkins.columns if c not in new_columns], axis='columns') + +lin_pumpkins +``` + +```output + Package Price +70 0 13.636364 +71 0 16.363636 +72 0 16.363636 +73 0 15.454545 +74 0 13.636364 +... ... ... +1738 2 30.000000 +1739 2 28.750000 +1740 2 25.750000 +1741 2 24.000000 +1742 2 24.000000 +415 rows × 2 columns +``` + +1. Ora si possono assegnare i dati delle coordinate X e y: + + ```python + X = lin_pumpkins.values[:, :1] + y = lin_pumpkins.values[:, 1:2] + ``` + +Cosa sta succedendo qui? Si sta usando [la notazione slice Python](https://stackoverflow.com/questions/509211/understanding-slice-notation/509295#509295) per creare array per popolare `X` e `y`. + +2. Successivamente, si avvia le routine di creazione del modello di regressione: + + ```python + from sklearn.linear_model import LinearRegression + from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error + from sklearn.model_selection import train_test_split + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + lin_reg = LinearRegression() + lin_reg.fit(X_train,y_train) + + pred = lin_reg.predict(X_test) + + accuracy_score = lin_reg.score(X_train,y_train) + print('Model Accuracy: ', accuracy_score) + ``` + + Poiché la correlazione non è particolarmente buona, il modello prodotto non è molto accurato. + + ```output + Model Accuracy: 0.3315342327998987 + ``` + +3. Si può visualizzare la linea tracciata nel processo: + + ```python + plt.scatter(X_test, y_test, color='black') + plt.plot(X_test, pred, color='blue', linewidth=3) + + plt.xlabel('Package') + plt.ylabel('Price') + + plt.show() + ``` + + ![Un grafico a dispersione che mostra il rapporto tra pacchetto e prezzo](../images/linear.png) + +4. Si testa il modello contro una varietà ipotetica: + + ```python + lin_reg.predict( np.array([ [2.75] ]) ) + ``` + + Il prezzo restituito per questa varietà mitologica è: + + ```output + array([[33.15655975]]) + ``` + +Quel numero ha senso, se la logica della linea di regressione è vera. + +🎃 Congratulazioni, si è appena creato un modello che può aiutare a prevedere il prezzo di alcune varietà di zucche. La zucca per le festività sarà bellissima. Ma probabilmente si può creare un modello migliore! + +## Regressione polinomiale + +Un altro tipo di regressione lineare è la regressione polinomiale. Mentre a volte c'è una relazione lineare tra le variabili - più grande è il volume della zucca, più alto è il prezzo - a volte queste relazioni non possono essere tracciate come un piano o una linea retta. + +✅ Ecco [alcuni altri esempi](https://online.stat.psu.edu/stat501/lesson/9/9.8) di dati che potrebbero utilizzare la regressione polinomiale + +Si dia un'altra occhiata alla relazione tra Varietà e Prezzo nel tracciato precedente. Questo grafico a dispersione deve essere necessariamente analizzato da una linea retta? Forse no. In questo caso, si può provare la regressione polinomiale. + +✅ I polinomi sono espressioni matematiche che possono essere costituite da una o più variabili e coefficienti + +La regressione polinomiale crea una linea curva per adattare meglio i dati non lineari. + +1. Viene ricreato un dataframe popolato con un segmento dei dati della zucca originale: + + ```python + new_columns = ['Variety', 'Package', 'City', 'Month', 'Price'] + poly_pumpkins = new_pumpkins.drop([c for c in new_pumpkins.columns if c not in new_columns], axis='columns') + + poly_pumpkins + ``` + +Un buon modo per visualizzare le correlazioni tra i dati nei dataframe è visualizzarli in un grafico "coolwarm": + +2. Si usa il metodo `Background_gradient()` con `coolwarm` come valore dell'argomento: + + ```python + corr = poly_pumpkins.corr() + corr.style.background_gradient(cmap='coolwarm') + ``` + + Questo codice crea una mappa di calore: + ![Una mappa di calore che mostra la correlazione dei dati](../images/heatmap.png) + +Guardando questo grafico, si può visualizzare la buona correlazione tra Pacchetto e Prezzo. Quindi si dovrebbe essere in grado di creare un modello un po' migliore dell'ultimo. + +### Creare una pipeline + +Scikit-learn include un'API utile per la creazione di modelli di regressione polinomiale: l'[API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) `make_pipeline`. Viene creata una 'pipeline' che è una catena di stimatori. In questo caso, la pipeline include caratteristiche polinomiali o previsioni che formano un percorso non lineare. + +1. Si costruiscono le colonne X e y: + + ```python + X=poly_pumpkins.iloc[:,3:4].values + y=poly_pumpkins.iloc[:,4:5].values + ``` + +2. Si crea la pipeline chiamando il metodo `make_pipeline()` : + + ```python + from sklearn.preprocessing import PolynomialFeatures + from sklearn.pipeline import make_pipeline + + pipeline = make_pipeline(PolynomialFeatures(4), LinearRegression()) + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + + pipeline.fit(np.array(X_train), y_train) + + y_pred=pipeline.predict(X_test) + ``` + +### Creare una sequenza + +A questo punto, è necessario creare un nuovo dataframe con dati _ordinati_ in modo che la pipeline possa creare una sequenza. + +Si aggiunge il seguente codice: + +```python +df = pd.DataFrame({'x': X_test[:,0], 'y': y_pred[:,0]}) +df.sort_values(by='x',inplace = True) +points = pd.DataFrame(df).to_numpy() + +plt.plot(points[:, 0], points[:, 1],color="blue", linewidth=3) +plt.xlabel('Package') +plt.ylabel('Price') +plt.scatter(X,y, color="black") +plt.show() +``` + +Si è creato un nuovo dataframe chiamato `pd.DataFrame`. Quindi si sono ordinati i valori chiamando `sort_values()`. Alla fine si è creato un grafico polinomiale: + +![Un grafico polinomiale che mostra la relazione tra pacchetto e prezzo](../images/polynomial.png) + +Si può vedere una linea curva che si adatta meglio ai dati. + +Si verifica la precisione del modello: + +```python +accuracy_score = pipeline.score(X_train,y_train) +print('Model Accuracy: ', accuracy_score) +``` + +E voilà! + +```output +Model Accuracy: 0.8537946517073784 +``` + +Ecco, meglio! Si prova a prevedere un prezzo: + +### Fare una previsione + +E possibile inserire un nuovo valore e ottenere una previsione? + +Si chiami `predict()` per fare una previsione: + +```python +pipeline.predict( np.array([ [2.75] ]) ) +``` + +Viene data questa previsione: + +```output +array([[46.34509342]]) +``` + +Ha senso, visto il tracciato! Se questo è un modello migliore del precedente, guardando gli stessi dati, si deve preventivare queste zucche più costose! + +Ben fatto! Sono stati creati due modelli di regressione in una lezione. Nella sezione finale sulla regressione, si imparerà a conoscere la regressione logistica per determinare le categorie. + +--- + +## 🚀 Sfida + +Testare diverse variabili in questo notebook per vedere come la correlazione corrisponde all'accuratezza del modello. + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/14/) + +## Revisione e Auto Apprendimento + +In questa lezione si è appreso della regressione lineare. Esistono altri tipi importanti di regressione. Leggere le tecniche Stepwise, Ridge, Lazo ed Elasticnet. Un buon corso per studiare per saperne di più è il [corso Stanford Statistical Learning](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) + +## Compito + +[Costruire un modello](assignment.it.md) diff --git a/2-Regression/3-Linear/translations/assignment.it.md b/2-Regression/3-Linear/translations/assignment.it.md new file mode 100644 index 00000000..e5aaaa77 --- /dev/null +++ b/2-Regression/3-Linear/translations/assignment.it.md @@ -0,0 +1,11 @@ +# Creare un Modello di Regressione + +## Istruzioni + +In questa lezione è stato mostrato come costruire un modello utilizzando sia la Regressione Lineare che Polinomiale. Usando questa conoscenza, trovare un insieme di dati o utilizzare uno degli insiemi integrati di Scikit-Learn per costruire un modello nuovo. Spiegare nel proprio notebook perché si è scelto una determinata tecnica e dimostrare la precisione del modello. Se non è accurato, spiegare perché. + +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | ------------------------------------------------------------ | -------------------------- | ------------------------------- | +| | presenta un notebook completo con una soluzione ben documentata | La soluzione è incompleta | La soluzione è difettosa o contiene bug | From 078846d8064d7fc2453e7c69a936b342426979bf Mon Sep 17 00:00:00 2001 From: edgargonarr <35715904+edgargonarr@users.noreply.github.com> Date: Wed, 14 Jul 2021 14:22:26 -0500 Subject: [PATCH 057/228] Update README.md The table for classification_report is not correctly aligned --- 4-Classification/2-Classifiers-1/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-Classification/2-Classifiers-1/README.md b/4-Classification/2-Classifiers-1/README.md index 15800922..bdff6bc9 100644 --- a/4-Classification/2-Classifiers-1/README.md +++ b/4-Classification/2-Classifiers-1/README.md @@ -217,7 +217,7 @@ Since you are using the multiclass case, you need to choose what _scheme_ to use print(classification_report(y_test,y_pred)) ``` - | precision | recall | f1-score | support | | | | | | | | | | | | | | | | | | | + | | precision | recall | f1-score| support | | | | | | | | | | | | | | | | | | | ------------ | ------ | -------- | ------- | ---- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | chinese | 0.73 | 0.71 | 0.72 | 229 | | | | | | | | | | | | | | | | | | | indian | 0.91 | 0.93 | 0.92 | 254 | | | | | | | | | | | | | | | | | | From ce68d9bf2214b9194a85fb3ab25227bd9bd20381 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 14 Jul 2021 17:31:56 -0400 Subject: [PATCH 058/228] Update README.md --- quiz-app/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quiz-app/README.md b/quiz-app/README.md index 042d53ca..83b30d1d 100644 --- a/quiz-app/README.md +++ b/quiz-app/README.md @@ -1,6 +1,6 @@ # Quizzes -These quizzes are the pre- and post-lecture quizzes for the web development for ml curriculum at https://aka.ms/ml-beginners +These quizzes are the pre- and post-lecture quizzes for the ML curriculum at https://aka.ms/ml-beginners ## Project setup From 1be8c54849e3213b590f3ad8a986271c6aea0a07 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Wed, 14 Jul 2021 23:38:49 +0200 Subject: [PATCH 059/228] Create README.fr.md --- .../1-intro-to-ML/translations/README.fr.md | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 1-Introduction/1-intro-to-ML/translations/README.fr.md diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md new file mode 100644 index 00000000..511f3764 --- /dev/null +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -0,0 +1,109 @@ +# Introduction au machine learning + +[![ML, AI, deep learning - Quelle est la différence ?](https://img.youtube.com/vi/lTd9RSxS9ZE/0.jpg)](https://youtu.be/lTd9RSxS9ZE "ML, AI, deep learning - What's the difference?") + +> 🎥 Cliquer sur l'image ci-dessus afin de regarder une vidéo expliquant la différence entre machine learning, AI et deep learning. + +## [Quizz de pré-conférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) + +### Introduction + +Bienvenue à ce cours sur le machine learning classique pour débutant ! Que vous soyez complètement nouveau sur ce sujet ou que vous soyez un professonnel du ML expérimenté cherchant à peaufiner vos connaissances, nous sommes heureux de vous avoir avec nous ! Nous voulons créer un tremplin chaleureux pour vos études en ML et serions ravis d'évaluer, de répondre et d'apprendre de vos retours d'[expériences](https://github.com/microsoft/ML-For-Beginners/discussions). + +[![Introduction au ML](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "Introduction to ML") + +> 🎥 Cliquer sur l'image ci-dessus afin de regarder une vidéo: John Guttag du MIT introduit le machine learning +### Débuter avec le machine learning + +Avant de commencer avec ce cours, vous aurez besoin d'un ordinateur configuré et prêt à faire tourner des notebooks (jupyter) localement. + +- **Configurer votre ordinateur avec ces vidéos**. Apprendre comment configurer votre ordinateur avec cette [série de vidéos](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6). +- **Apprendre Python**. Il est aussi recommandé d'avoir une connaissance basique de [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa), un langage de programmaton utile pour les data scientist que nous utilisons tout au long de ce cours. +- **Apprendre Node.js et Javascript**. Nous utilisons aussi Javascript par moment dans ce cours afin de construire des applications WEB, vous aurez donc besoin de [node](https://nodejs.org) et [npm](https://www.npmjs.com/) installé, ainsi que de [Visual Studio Code](https://code.visualstudio.com/) pour développer en Python et Javascript. +- **Créer un compte GitHub**. Comme vous nous avez trouvé sur [GitHub](https://github.com), vous y avez sûrement un compte, mais si non, créez en un et répliquez ce cours afin de l'utiliser à votre grés. (N'oublier pas de nous donner une étoile aussi 😊) +- **Explorer Scikit-learn**. Familiariser vous avec [Scikit-learn](https://scikit-learn.org/stable/user_guide.html), un ensemble de librairies ML que nous mentionnons dans nos leçons. + +### Qu'est-ce que le machine learning + +Le terme `machine learning` est un des mots les plus populaire et le plus utilisé ces derniers temps. Il y a une probabilité accrue que vous l'ayez entendu au moins une fois si vous avez une appétence pour la technologie indépendamment du domaine dans lequel vous travaillez. Le fonctionnement du machine learning, cependant, reste un mystère pour la plupart des personnes. Pour un débutant en machine learning, le sujet peut nous submerger. Ainsi, il est important de comprendre ce qu'est le machine learning et de l'apprendre petit à petit au travers d'exemples pratiques. + +![ml hype curve](images/hype.png) + +> Google Trends montre la récente 'courbe de popularité' pour le mot 'machine learning' + +Nous vivons dans un univers rempli de mystères fascinants. De grands scientifiques comme Stephen Hawking, Albert Einstein et pleins d'autres ont dévoués leur vie à la recherche d'informations utiles afin de dévoiler les mystères qui nous entourent. C'est la condition humaine pour apprendre : un enfant apprend de nouvelles choses et découvre la structure du monde année après année jusqu'à qu'ils deviennent adultes. + +Le cerveau d'un enfant et ses sens perçoivent l'environnement qui les entourent et apprennent graduellement des schémas secrets de la vie qui vont l'aider à fabriquer des règles logiques afin d'identifier les schémas appris. Le processus d'apprentissage du cerveau humain est ce que rend les hommes comme la créature la plus sophistiquée du monde vivant. Apprendre continuellement par la découverte de schémas cachés et ensuite innover sur ces schémas nous permet de nous améliorer tout au long de notre vie. Cette capacité d'apprendre et d'évoluer est liée au concept de [plasticité neuronale](https://www.simplypsychology.org/brain-plasticity.html), nous pouvons tirer quelques motivations similaires entre le processus d'apprentissage du cerveau humain et le concept de machine learning. + +Le [cerveau humain](https://www.livescience.com/29365-human-brain.html) perçoit des choses du monde réel, assimile les informations perçues, fait des décisions rationnelles et entreprend certaines actions selon le contexte. C'est ce que l'on appelle se comporter intelligemment. Lorsque nous programmons une reproduction du processus de ce comportement à une machine, c'est ce que l'on appelle intelligence artificielle (IA). + +Bien que le terme peut être confu, machine learning (ML) est un important sous-ensemble de l'intelligence artificielle. **ML se réfère à l'utilisation d'algorithmes spécialisés afin de découvrir des informations utiles et de trouver des schémas cachés depuis des données perçues pour corroborer un processus de décision rationnel**. + +![AI, ML, deep learning, data science](images/ai-ml-ds.png) + +> Un diagramme montrant les relations entre AI, ML, deep learning et data science. Infographie par [Jen Looper](https://twitter.com/jenlooper) et inspiré par [ce graphique](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) + +## Ce que vous allez apprendre dans ce cours + +Dans ce cours, nous allons nous concentrer sur les concepts clés du machine learning qu'un débutant se doit de connaître. Nous parlerons ce que l'on appelle le 'machine learning classique' en utilisant principalement Scikit-learn, une excellente librairie que beaucoup d'étudiants utilisent afin d'apprendre les bases. Afin de comprendre les concepts plus larges de l'intelligence artificielle ou du deep learning, une profonde connaissance en machine learning est indispensable, et c'est ce que nous aimerions fournir ici. + +Dans ce cours, vous allez apprendre : + +- Les concepts clés du machine learning +- L'histoire du ML +- ML et équité (fairness) +- Les techniques de régression ML +- Les techniques de classification ML +- Les techniques de regroupement (clustering) ML +- Les techniques du traitement automatique des langues (NLP) ML +- Les techniques de prédictions à partir de séries chronologiques ML +- Apprentissage renforcé +- D'applications réels du ML + +## Ce que nous ne couvrirons pas + +- Deep learning +- Neural networks +- IA + +Afin d'avoir la meilleur expérience d'apprentissage, nous éviterons les complexités des réseaux neuronaux, du 'deep learning' (construire un modèle utilisant plusieurs couches de réseaux neuronaux) et IA, dont nous parlerons dans un cours différent. Nous offirons aussi un cours à venir sur la data science pour concentrer sur cet aspect de champs très large. + +## Pourquoi etudier le machine learning ? + +Le machine learning, depuis une perspective systémique, est défini comme la création de systèmes automatiques pouvant apprendre des schémas cachés depuis des données afin d'aider à prendre des décisions intelligentes. + +Ce but est faiblement inspiré de la manière dont le cerveau humain apprend certaines choses depuis les données qu'il perçoit du monde extérieur. + +✅ Penser une minute aux raisons qu'une entreprise aurait d'essayer d'utiliser des stratégies de machine learning au lieu de créer des règles codés en dur. + +### Les applications du machine learning + +Les applications du machine learning sont maintenant pratiquement partout, et sont aussi omniprésentes que les données qui circulent autour de notre société (générés par nos smartphones, appareils connectés ou autres systèmes). En prenant en considération l'immense potentiel des algorithmes dernier cri de machine learning, les chercheurs ont pu exploités leurs capacités afin de résoudre des problèmes multidimensionnels et interdisciplinaires de la vie avec d'important retours positifs + +**Vous pouvez utiliser le machine learning de plusieurs manières** : + +- Afin de prédire la possibilité d'avoir une maladie à partir des données médicales d'un patient. +- Pour tirer parti des données météorologiques afin de prédire les événements météorologiques. +- Afin de comprendre le sentiment d'un texte. +- Afin de détecter les fake news pour stopper la propagation de la propagande. + +La finance, l'économie, les sciences de la terre, l'exploration spatiale, le génie biomédical, les sciences cognitives et même les domaines des sciences humaines ont adapté le machine learning pour résoudre les problèmes ardus et lourds de traitement des données dans leur domaine respectif. + +Le machine learning automatise le processus de découverte de modèles en trouvant des informations significatives à partir de données réelles ou générées. Il s'est avéré très utile dans les applications commerciales, de santé et financières, entre autres. + +Dans un avenir proche, comprendre les bases du machine learning sera indispensable pour les personnes de tous les domaines en raison de son adoption généralisée. + +--- +## 🚀 Challenge + +Esquisser, sur papier ou à l'aide d'une application en ligne comme [Excalidraw](https://excalidraw.com/), votre compréhension des différences entre l'IA, le ML, le deep learning et la data science. Ajouter quelques idées de problèmes que chacune de ces techniques est bonne à résoudre. + +## [Quizz de post-conférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) + +## Révision et auto-apprentissage + +Pour en savoir plus sur la façon dont vous pouvez utiliser les algorithmes de ML dans le cloud, suivez ce [Parcours d'apprentissage](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine- learning/?WT.mc_id=academic-15963-cxa). + +## Devoir + +[Être opérationnel](assignment.md) From 9439709d5b2a3a1311d6fbbd3f44bb56ae53112b Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Wed, 14 Jul 2021 23:47:41 +0200 Subject: [PATCH 060/228] Editing assignment link --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index 511f3764..19af588d 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -106,4 +106,4 @@ Pour en savoir plus sur la façon dont vous pouvez utiliser les algorithmes de M ## Devoir -[Être opérationnel](assignment.md) +[Être opérationnel](../assignment.md) From 5775c4b0690771414a7bdfb4f013beaaafa2df7f Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 14 Jul 2021 20:16:08 -0400 Subject: [PATCH 061/228] table tidy-up --- 4-Classification/2-Classifiers-1/README.md | 66 +++++++++++----------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/4-Classification/2-Classifiers-1/README.md b/4-Classification/2-Classifiers-1/README.md index bdff6bc9..0db1aeba 100644 --- a/4-Classification/2-Classifiers-1/README.md +++ b/4-Classification/2-Classifiers-1/README.md @@ -21,15 +21,14 @@ Assuming you completed [Lesson 1](../1-Introduction/README.md), make sure that a The data looks like this: - ```output - | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | - | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | - | 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | - ``` +| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | +| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | +| 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + 1. Now, import several more libraries: @@ -68,13 +67,13 @@ Assuming you completed [Lesson 1](../1-Introduction/README.md), make sure that a Your features look like this: - | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | - | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | --- | - | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | - | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | +| almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | +| -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | +| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | Now you are ready to train your model! @@ -200,13 +199,13 @@ Since you are using the multiclass case, you need to choose what _scheme_ to use The result is printed - Indian cuisine is its best guess, with good probability: - | | 0 | | | | | | | | | | | | | | | | | | | | | - | -------: | -------: | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | indian | 0.715851 | | | | | | | | | | | | | | | | | | | | | - | chinese | 0.229475 | | | | | | | | | | | | | | | | | | | | | - | japanese | 0.029763 | | | | | | | | | | | | | | | | | | | | | - | korean | 0.017277 | | | | | | | | | | | | | | | | | | | | | - | thai | 0.007634 | | | | | | | | | | | | | | | | | | | | | + | | 0 | + | -------: | -------: | + | indian | 0.715851 | + | chinese | 0.229475 | + | japanese | 0.029763 | + | korean | 0.017277 | + | thai | 0.007634 | ✅ Can you explain why the model is pretty sure this is an Indian cuisine? @@ -217,22 +216,23 @@ Since you are using the multiclass case, you need to choose what _scheme_ to use print(classification_report(y_test,y_pred)) ``` - | | precision | recall | f1-score| support | | | | | | | | | | | | | | | | | | - | ------------ | ------ | -------- | ------- | ---- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | chinese | 0.73 | 0.71 | 0.72 | 229 | | | | | | | | | | | | | | | | | | - | indian | 0.91 | 0.93 | 0.92 | 254 | | | | | | | | | | | | | | | | | | - | japanese | 0.70 | 0.75 | 0.72 | 220 | | | | | | | | | | | | | | | | | | - | korean | 0.86 | 0.76 | 0.81 | 242 | | | | | | | | | | | | | | | | | | - | thai | 0.79 | 0.85 | 0.82 | 254 | | | | | | | | | | | | | | | | | | - | accuracy | 0.80 | 1199 | | | | | | | | | | | | | | | | | | | | - | macro avg | 0.80 | 0.80 | 0.80 | 1199 | | | | | | | | | | | | | | | | | | - | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | | | | | | | | | | | | | | | | | | + | | precision | recall | f1-score | support | + | ------------ | ------ | -------- | ------- | ---- | + | chinese | 0.73 | 0.71 | 0.72 | 229 | + | indian | 0.91 | 0.93 | 0.92 | 254 | + | japanese | 0.70 | 0.75 | 0.72 | 220 | + | korean | 0.86 | 0.76 | 0.81 | 242 | + | thai | 0.79 | 0.85 | 0.82 | 254 | + | accuracy | 0.80 | 1199 | | | + | macro avg | 0.80 | 0.80 | 0.80 | 1199 | + | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | ## 🚀Challenge In this lesson, you used your cleaned data to build a machine learning model that can predict a national cuisine based on a series of ingredients. Take some time to read through the many options Scikit-learn provides to classify data. Dig deeper into the concept of 'solver' to understand what goes on behind the scenes. ## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/22/) + ## Review & Self Study Dig a little more into the math behind logistic regression in [this lesson](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) From 59cefad031d40dba0abdc293a4ed912a492934ff Mon Sep 17 00:00:00 2001 From: ahaliu1 <247969917@qq.com> Date: Thu, 15 Jul 2021 11:07:53 +0800 Subject: [PATCH 062/228] Fix two path error --- 6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md index 75cd69da..3d122be6 100644 --- a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md +++ b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md @@ -125,7 +125,7 @@ It was nice talking to you, goodbye! ``` - 该任务的一种可能解决方案在[这里](solution/bot.py) + 该任务的一种可能解决方案在[这里](../solution/bot.py) ✅ 停止并思考 @@ -152,4 +152,4 @@ ## 任务 -[查找一个机器人](assignment.md) +[查找一个机器人](../assignment.md) From 4b18d4f145dbe5c584da60ee82993e0610ff439d Mon Sep 17 00:00:00 2001 From: ahaliu1 <247969917@qq.com> Date: Thu, 15 Jul 2021 11:08:36 +0800 Subject: [PATCH 063/228] Fix two file path error --- 6-NLP/1-Introduction-to-NLP/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/6-NLP/1-Introduction-to-NLP/README.md b/6-NLP/1-Introduction-to-NLP/README.md index 227ad589..ea244c74 100644 --- a/6-NLP/1-Introduction-to-NLP/README.md +++ b/6-NLP/1-Introduction-to-NLP/README.md @@ -133,7 +133,7 @@ Let's create the bot next. We'll start by defining some phrases. It was nice talking to you, goodbye! ``` - One possible solution to the task is [here](solution/bot.py) + One possible solution to the task is [here](../solution/bot.py) ✅ Stop and consider @@ -162,4 +162,4 @@ Take a look at the references below as further reading opportunities. ## Assignment -[Search for a bot](assignment.md) +[Search for a bot](../assignment.md) From 27d16669d59fc09c8af6b651ff4bf9414b37029d Mon Sep 17 00:00:00 2001 From: Vishvanathan K Date: Thu, 15 Jul 2021 10:24:23 +0530 Subject: [PATCH 064/228] Update Markdown error --- 8-Reinforcement/1-QLearning/README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/8-Reinforcement/1-QLearning/README.md b/8-Reinforcement/1-QLearning/README.md index bfa07ffe..6301c46e 100644 --- a/8-Reinforcement/1-QLearning/README.md +++ b/8-Reinforcement/1-QLearning/README.md @@ -229,8 +229,7 @@ We are now ready to implement the learning algorithm. Before we do that, we also We add a few `eps` to the original vector in order to avoid division by 0 in the initial case, when all components of the vector are identical. Run them learning algorithm through 5000 experiments, also called **epochs**: (code block 8) - - ```python +```python for epoch in range(5000): # Pick initial point @@ -255,11 +254,11 @@ Run them learning algorithm through 5000 experiments, also called **epochs**: (c ai = action_idx[a] Q[x,y,ai] = (1 - alpha) * Q[x,y,ai] + alpha * (r + gamma * Q[x+dpos[0], y+dpos[1]].max()) n+=1 - ``` +``` - After executing this algorithm, the Q-Table should be updated with values that define the attractiveness of different actions at each step. We can try to visualize the Q-Table by plotting a vector at each cell that will point in the desired direction of movement. For simplicity, we draw a small circle instead of an arrow head. +After executing this algorithm, the Q-Table should be updated with values that define the attractiveness of different actions at each step. We can try to visualize the Q-Table by plotting a vector at each cell that will point in the desired direction of movement. For simplicity, we draw a small circle instead of an arrow head. - + ## Checking the policy From 829ac30282d356b1b4b601452c1ab48cd1da390e Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Thu, 15 Jul 2021 09:30:48 +0200 Subject: [PATCH 065/228] Changed url for images --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index 19af588d..a65367b5 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -27,7 +27,7 @@ Avant de commencer avec ce cours, vous aurez besoin d'un ordinateur configuré e Le terme `machine learning` est un des mots les plus populaire et le plus utilisé ces derniers temps. Il y a une probabilité accrue que vous l'ayez entendu au moins une fois si vous avez une appétence pour la technologie indépendamment du domaine dans lequel vous travaillez. Le fonctionnement du machine learning, cependant, reste un mystère pour la plupart des personnes. Pour un débutant en machine learning, le sujet peut nous submerger. Ainsi, il est important de comprendre ce qu'est le machine learning et de l'apprendre petit à petit au travers d'exemples pratiques. -![ml hype curve](images/hype.png) +![ml hype curve](../images/hype.png) > Google Trends montre la récente 'courbe de popularité' pour le mot 'machine learning' @@ -39,7 +39,7 @@ Le [cerveau humain](https://www.livescience.com/29365-human-brain.html) perçoit Bien que le terme peut être confu, machine learning (ML) est un important sous-ensemble de l'intelligence artificielle. **ML se réfère à l'utilisation d'algorithmes spécialisés afin de découvrir des informations utiles et de trouver des schémas cachés depuis des données perçues pour corroborer un processus de décision rationnel**. -![AI, ML, deep learning, data science](images/ai-ml-ds.png) +![AI, ML, deep learning, data science](../images/ai-ml-ds.png) > Un diagramme montrant les relations entre AI, ML, deep learning et data science. Infographie par [Jen Looper](https://twitter.com/jenlooper) et inspiré par [ce graphique](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) From 091d096eb19e3d8229e9556e3217c6c7823bb7fa Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Thu, 15 Jul 2021 09:33:50 +0200 Subject: [PATCH 066/228] Corrected Quizz to Quiz --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index a65367b5..828e7c62 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -4,7 +4,7 @@ > 🎥 Cliquer sur l'image ci-dessus afin de regarder une vidéo expliquant la différence entre machine learning, AI et deep learning. -## [Quizz de pré-conférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) +## [Quiz de pré-conférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) ### Introduction @@ -98,7 +98,7 @@ Dans un avenir proche, comprendre les bases du machine learning sera indispensab Esquisser, sur papier ou à l'aide d'une application en ligne comme [Excalidraw](https://excalidraw.com/), votre compréhension des différences entre l'IA, le ML, le deep learning et la data science. Ajouter quelques idées de problèmes que chacune de ces techniques est bonne à résoudre. -## [Quizz de post-conférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) +## [Quiz de post-conférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) ## Révision et auto-apprentissage From a0c925fdaf878c8c1017fdef25b339297b9e9c38 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Thu, 15 Jul 2021 12:22:53 +0200 Subject: [PATCH 067/228] Correction de traduction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Post-conférence -> Postlecture * Pré-conférence -> Prélecture * Hidden patterns -> Schémas non observés Comme discuté dans le groupe --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index 828e7c62..fd396d69 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -4,7 +4,7 @@ > 🎥 Cliquer sur l'image ci-dessus afin de regarder une vidéo expliquant la différence entre machine learning, AI et deep learning. -## [Quiz de pré-conférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) +## [Quiz prélecture](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) ### Introduction @@ -33,11 +33,11 @@ Le terme `machine learning` est un des mots les plus populaire et le plus utilis Nous vivons dans un univers rempli de mystères fascinants. De grands scientifiques comme Stephen Hawking, Albert Einstein et pleins d'autres ont dévoués leur vie à la recherche d'informations utiles afin de dévoiler les mystères qui nous entourent. C'est la condition humaine pour apprendre : un enfant apprend de nouvelles choses et découvre la structure du monde année après année jusqu'à qu'ils deviennent adultes. -Le cerveau d'un enfant et ses sens perçoivent l'environnement qui les entourent et apprennent graduellement des schémas secrets de la vie qui vont l'aider à fabriquer des règles logiques afin d'identifier les schémas appris. Le processus d'apprentissage du cerveau humain est ce que rend les hommes comme la créature la plus sophistiquée du monde vivant. Apprendre continuellement par la découverte de schémas cachés et ensuite innover sur ces schémas nous permet de nous améliorer tout au long de notre vie. Cette capacité d'apprendre et d'évoluer est liée au concept de [plasticité neuronale](https://www.simplypsychology.org/brain-plasticity.html), nous pouvons tirer quelques motivations similaires entre le processus d'apprentissage du cerveau humain et le concept de machine learning. +Le cerveau d'un enfant et ses sens perçoivent l'environnement qui les entourent et apprennent graduellement des schémas non observés de la vie qui vont l'aider à fabriquer des règles logiques afin d'identifier les schémas appris. Le processus d'apprentissage du cerveau humain est ce que rend les hommes comme la créature la plus sophistiquée du monde vivant. Apprendre continuellement par la découverte de schémas non observés et ensuite innover sur ces schémas nous permet de nous améliorer tout au long de notre vie. Cette capacité d'apprendre et d'évoluer est liée au concept de [plasticité neuronale](https://www.simplypsychology.org/brain-plasticity.html), nous pouvons tirer quelques motivations similaires entre le processus d'apprentissage du cerveau humain et le concept de machine learning. Le [cerveau humain](https://www.livescience.com/29365-human-brain.html) perçoit des choses du monde réel, assimile les informations perçues, fait des décisions rationnelles et entreprend certaines actions selon le contexte. C'est ce que l'on appelle se comporter intelligemment. Lorsque nous programmons une reproduction du processus de ce comportement à une machine, c'est ce que l'on appelle intelligence artificielle (IA). -Bien que le terme peut être confu, machine learning (ML) est un important sous-ensemble de l'intelligence artificielle. **ML se réfère à l'utilisation d'algorithmes spécialisés afin de découvrir des informations utiles et de trouver des schémas cachés depuis des données perçues pour corroborer un processus de décision rationnel**. +Bien que le terme peut être confu, machine learning (ML) est un important sous-ensemble de l'intelligence artificielle. **ML se réfère à l'utilisation d'algorithmes spécialisés afin de découvrir des informations utiles et de trouver des schémas non observés depuis des données perçues pour corroborer un processus de décision rationnel**. ![AI, ML, deep learning, data science](../images/ai-ml-ds.png) @@ -70,7 +70,7 @@ Afin d'avoir la meilleur expérience d'apprentissage, nous éviterons les comple ## Pourquoi etudier le machine learning ? -Le machine learning, depuis une perspective systémique, est défini comme la création de systèmes automatiques pouvant apprendre des schémas cachés depuis des données afin d'aider à prendre des décisions intelligentes. +Le machine learning, depuis une perspective systémique, est défini comme la création de systèmes automatiques pouvant apprendre des schémas non observés depuis des données afin d'aider à prendre des décisions intelligentes. Ce but est faiblement inspiré de la manière dont le cerveau humain apprend certaines choses depuis les données qu'il perçoit du monde extérieur. @@ -98,7 +98,7 @@ Dans un avenir proche, comprendre les bases du machine learning sera indispensab Esquisser, sur papier ou à l'aide d'une application en ligne comme [Excalidraw](https://excalidraw.com/), votre compréhension des différences entre l'IA, le ML, le deep learning et la data science. Ajouter quelques idées de problèmes que chacune de ces techniques est bonne à résoudre. -## [Quiz de post-conférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) +## [Quiz postlecture](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) ## Révision et auto-apprentissage From bd08fb25c2e3f49a95aefabfd976ea77d44775d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Thu, 15 Jul 2021 19:04:56 +0800 Subject: [PATCH 068/228] Add files via upload --- .../translations/README.zh-cn.md | 294 ++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 4-Classification/1-Introduction/translations/README.zh-cn.md diff --git a/4-Classification/1-Introduction/translations/README.zh-cn.md b/4-Classification/1-Introduction/translations/README.zh-cn.md new file mode 100644 index 00000000..d85c266c --- /dev/null +++ b/4-Classification/1-Introduction/translations/README.zh-cn.md @@ -0,0 +1,294 @@ +# 对分类方法的介绍 + +在这四节课程中,你将会学习机器学习中一个基本的重点 - _分类_. 我们会在关于亚洲和印度的神奇的美食的数据集上尝试使用多种分类算法。希望你有点饿了。 + +![一个桃子!](../images/pinch.png) + +>在学习的课程中赞叹泛亚地区的美食吧! 图片由 [Jen Looper](https://twitter.com/jenlooper)提供 + +分类算法是[监督学习](https://wikipedia.org/wiki/Supervised_learning) 的一种。它与回归算法在很多方面都有相同之处。如果机器学习所有的目标都是使用数据集来预测数值或物品的名字,那么分类算法通常可以分为两类 _二元分类_ 和 _多元分类_。 + +[![对分类算法的介绍](https://img.youtube.com/vi/eg8DJYwdMyg/0.jpg)](https://youtu.be/eg8DJYwdMyg "对分类算法的介绍") + +> 🎥 点击上方给的图片可以跳转到一个视频-MIT的John对分类算法的介绍 + +请记住: + +- **线性回归** 帮助你预测变量之间的关系并对一个新的数据点会落在哪条线上做出精确的预测。因此,你可以预测 _南瓜在九月的价格和十月的价格_。 +- **逻辑回归** 帮助你发现“二元范畴”:即在当前这个价格, _这个南瓜是不是橙色_? + +分类方法采用多种算法来确定其他可以用来确定一个数据点的标签或类别的方法。让我们来研究一下这个数据集,看看我们能否通过观察菜肴的原料来确定它的源头。 + +## [课程前的小问题](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/19/) + +分类是机器学习研究者和数据科学家使用的一种基本方法。从基本的二元分类(这是不是一份垃圾邮件?)到复杂的图片分类和使用计算机视觉的分割技术,它都是将数据分类并提出相关问题的有效工具。 + +![二元分类 vs 多元分类](../images/binary-multiclass.png) + +> 需要分类算法解决的二元分类和多元分类问题的对比. 信息图由[Jen Looper](https://twitter.com/jenlooper)提供 + +在开始清洗数据、数据可视化和调整数据以适应机器学习的任务前,让我们来了解一下多种可用来数据分类的机器学习方法。 + +派生自[统计数学](https://wikipedia.org/wiki/Statistical_classification),分类算法使用经典的机器学习的一些特征,比如通过'吸烟者'、'体重'和'年龄'来推断 _罹患某种疾病的可能性_。作为一个与你刚刚实践过的回归算法很相似的监督学习算法,你的数据是被标记过的并且算法通过采集这些标签来进行分类和预测并进行输出。 + +✅ 花一点时间来想象一下一个关于菜肴的数据集。一个多元分类的模型应该能回答什么问题?一个二元分类的模型又应该能回答什么?如果你想确定一个给定的菜肴是否会用到葫芦巴(一种植物,种子用来调味)该怎么做?如果你想知道给你一个装满了八角茴香、花椰菜和辣根的购物袋你能否做出一道代表性的印度菜又该怎么做? + +[![Crazy mystery baskets](https://img.youtube.com/vi/GuTeDbaNoEU/0.jpg)](https://youtu.be/GuTeDbaNoEU "疯狂的神秘篮子") + +> 🎥 点击图像观看视频。整个'Chopped'节目的前提都是建立在神秘的篮子上,在这个节目中厨师必须利用随机给定的食材做菜。可见一个机器学习模型能起到不小的作用 + +## 初见-分类器 + +我们关于这个菜肴数据集想要提出的问题其实是一个 **多元问题**,因为我们有很多潜在的具有代表性的菜肴。给定一系列食材数据,数据能够符合这些类别中的哪一类? + +Scikit-learn项目提供多种对数据进行分类的算法,你需要根据问题的具体类型来进行选择。在下两节课程中你会学到这些算法中的几个。 + +## 练习 - 清洗并平衡你的数据 + +在你开始进行这个项目前的第一个上手的任务就是清洗和 **平衡**你的数据来得到更好的结果。从当前目录的根目录中的 _nodebook.ipynb_ 开始。 + +第一个需要安装的东西是 [imblearn](https://imbalanced-learn.org/stable/)这是一个Scikit-learn项目中的一个包,它可以让你更好的平衡数据 (关于这个任务你很快你就会学到更多)。 + +1. 安装 `imblearn`, 运行命令 `pip install`: + + ```python + pip install imblearn + ``` + +1. 为了导入和可视化数据你需要导入下面的这些包, 你还需要从`imblearn`导入`SMOTE` + + ```python + import pandas as pd + import matplotlib.pyplot as plt + import matplotlib as mpl + import numpy as np + from imblearn.over_sampling import SMOTE + ``` + + 现在你已经准备好导入数据了。 + +1. 下一项任务是导入数据: + + ```python + df = pd.read_csv('../data/cuisines.csv') + ``` + + 使用函数 `read_csv()` 会读取csv文件的内容 _cusines.csv_ 并将内容放置在 变量`df`中。 + +1. 检查数据的形状是否正确: + + ```python + df.head() + ``` + + 前五行输出应该是这样的: + + ```output + | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | + | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | + | 0 | 65 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 1 | 66 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 2 | 67 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 3 | 68 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 4 | 69 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + ``` + +1. 调用函数 `info()` 可以获得有关这个数据集的信息: + + ```python + df.info() + ``` + + Your out resembles: + + ```output + + RangeIndex: 2448 entries, 0 to 2447 + Columns: 385 entries, Unnamed: 0 to zucchini + dtypes: int64(384), object(1) + memory usage: 7.2+ MB + ``` + + ## 练习 - 了解这些菜肴 + +现在任务变得更有趣了,让我们来探索如何将数据分配给各个菜肴 + +1. 调用函数 `barh()`可以绘制出数据的条形图: + + ```python + df.cuisine.value_counts().plot.barh() + ``` + + ![菜肴数据分配](../images/cuisine-dist.png) + + 这里有有限的一些菜肴,但是数据的分配是不平均的。但是你可以修正这一现象!在这样做之前再稍微探索一下。 + +1. 找出对于每个菜肴有多少数据是有效的并将其打印出来: + + ```python + thai_df = df[(df.cuisine == "thai")] + japanese_df = df[(df.cuisine == "japanese")] + chinese_df = df[(df.cuisine == "chinese")] + indian_df = df[(df.cuisine == "indian")] + korean_df = df[(df.cuisine == "korean")] + + print(f'thai df: {thai_df.shape}') + print(f'japanese df: {japanese_df.shape}') + print(f'chinese df: {chinese_df.shape}') + print(f'indian df: {indian_df.shape}') + print(f'korean df: {korean_df.shape}') + ``` + + 输出应该是这样的 : + + ```output + thai df: (289, 385) + japanese df: (320, 385) + chinese df: (442, 385) + indian df: (598, 385) + korean df: (799, 385) + ``` +## 探索有关食材的内容 + +现在你可以在数据中探索的更深一点并了解每道菜肴的代表性食材。你需要将反复出现的、容易造成混淆的数据清理出去,那么让我们来学习解决这个问题。 + +1. 在Python中创建一个函数 `create_ingredient()` 来创建一个食材的数据帧。这个函数会去掉数据中无用的列并按食材的数量进行分类。 + + ```python + def create_ingredient_df(df): + ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value') + ingredient_df = ingredient_df[(ingredient_df.T != 0).any()] + ingredient_df = ingredient_df.sort_values(by='value', ascending=False + inplace=False) + return ingredient_df + ``` +现在你可以使用这个函数来得到理想的每道菜肴最重要的10种食材。 + +1. 调用函数 `create_ingredient()` 然后通过函数`barh()`来绘制图像: + + ```python + thai_ingredient_df = create_ingredient_df(thai_df) + thai_ingredient_df.head(10).plot.barh() + ``` + + ![thai](../images/thai.png) + +1. 对日本的数据进行相同的操作: + + ```python + japanese_ingredient_df = create_ingredient_df(japanese_df) + japanese_ingredient_df.head(10).plot.barh() + ``` + + ![日本](../images/japanese.png) + +1. 现在处理中国的数据: + + ```python + chinese_ingredient_df = create_ingredient_df(chinese_df) + chinese_ingredient_df.head(10).plot.barh() + ``` + + ![中国](../images/chinese.png) + +1. 绘制印度食材的数据: + + ```python + indian_ingredient_df = create_ingredient_df(indian_df) + indian_ingredient_df.head(10).plot.barh() + ``` + + ![印度](../images/indian.png) + +1. 最后,绘制韩国的食材的数据: + + ```python + korean_ingredient_df = create_ingredient_df(korean_df) + korean_ingredient_df.head(10).plot.barh() + ``` + + ![韩国](../images/korean.png) + +1. 现在,去除在不同的菜肴间最普遍的容易造成混乱的食材,调用函数 `drop()`: + + 大家都喜欢米饭、大蒜和生姜 + + ```python + feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1) + labels_df = df.cuisine #.unique() + feature_df.head() + ``` + +## 平衡数据集 + +现在你已经清理过数据集了, 使用 [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Synthetic Minority Over-sampling Technique" - 来平衡数据集。 + +1. 调用函数 `fit_resample()`, 此方法通过插入数据来生成新的样本 + + ```python + oversample = SMOTE() + transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df) + ``` + + 通过对数据集的平衡,当你对数据进行分类时能够得到更好的结果。现在考虑一个二元分类的问题,如果你的数据集中的大部分数据都属于其中一个类别,那么机器学习的模型就会因为在那个类别的数据更多而判断那个类别更为常见。平衡数据能够去除不公平的数据点。 + +1. 现在你可以查看每个食材的标签数量: + + ```python + print(f'new label count: {transformed_label_df.value_counts()}') + print(f'old label count: {df.cuisine.value_counts()}') + ``` + + 输出应该是这样的 : + + ```output + new label count: korean 799 + chinese 799 + indian 799 + japanese 799 + thai 799 + Name: cuisine, dtype: int64 + old label count: korean 799 + indian 598 + chinese 442 + japanese 320 + thai 289 + Name: cuisine, dtype: int64 + ``` + + 现在这个数据集不仅干净、平衡而且还很“美味” ! + +1. 最后一步是保存你处理过后的平衡的数据(包括标签和特征),将其保存为一个可以被输出到文件中的数据帧。 + + ```python + transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer') + ``` + +1. 你可以通过调用函数 `transformed_df.head()` 和 `transformed_df.info()`再检查一下你的数据。 接下来要将数据保存以供在未来的课程中使用: + + ```python + transformed_df.head() + transformed_df.info() + transformed_df.to_csv("../data/cleaned_cuisine.csv") + ``` + + 这个全新的CSV文件可以在数据根目录中被找到。 + +--- + +## 🚀小练习 + +本项目的全部课程含有很多有趣的数据集。 探索一下 `data`文件夹,看看这里面有没有适合二元分类、多元分类算法的数据集,再想一下你对这些数据集有没有什么想问的问题。 + +## [课后练习](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/20/) + +## Review & Self Study + +探索一下 SMOTE的API文档。思考一下它最适合于什么样的情况、它能够解决什么样的问题。 + +## Assignment + +[探索一下分类方法](../assignment.md) +{"mode":"full","isActive":false} + + From bb1821234ebf62cb6f3b9827d5e7b0216b7b00ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Thu, 15 Jul 2021 21:04:43 +0800 Subject: [PATCH 069/228] Add files via upload --- .../1-Introduction/translations/README.zh-cn.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/4-Classification/1-Introduction/translations/README.zh-cn.md b/4-Classification/1-Introduction/translations/README.zh-cn.md index d85c266c..1dbc3598 100644 --- a/4-Classification/1-Introduction/translations/README.zh-cn.md +++ b/4-Classification/1-Introduction/translations/README.zh-cn.md @@ -282,13 +282,11 @@ Scikit-learn项目提供多种对数据进行分类的算法,你需要根据 ## [课后练习](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/20/) -## Review & Self Study +## 回顾 & 自学 探索一下 SMOTE的API文档。思考一下它最适合于什么样的情况、它能够解决什么样的问题。 -## Assignment +## 课后作业 [探索一下分类方法](../assignment.md) -{"mode":"full","isActive":false} - - +{"mode":"full","isActive":false} \ No newline at end of file From 05b028a5b2755a92c3c1f43fb7dd1be6cae01615 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=96=87=E4=BD=93=E4=B8=A4=E5=BC=80=E8=8A=B1=E7=94=9F?= <56857145+loap-a@users.noreply.github.com> Date: Thu, 15 Jul 2021 21:07:43 +0800 Subject: [PATCH 071/228] Update README.zh-cn.md --- 4-Classification/1-Introduction/translations/README.zh-cn.md | 1 - 1 file changed, 1 deletion(-) diff --git a/4-Classification/1-Introduction/translations/README.zh-cn.md b/4-Classification/1-Introduction/translations/README.zh-cn.md index 1dbc3598..2e258f3f 100644 --- a/4-Classification/1-Introduction/translations/README.zh-cn.md +++ b/4-Classification/1-Introduction/translations/README.zh-cn.md @@ -289,4 +289,3 @@ Scikit-learn项目提供多种对数据进行分类的算法,你需要根据 ## 课后作业 [探索一下分类方法](../assignment.md) -{"mode":"full","isActive":false} \ No newline at end of file From baa5cabaae13c85ac031ba836f37c416e8b1a875 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Thu, 15 Jul 2021 15:41:26 +0200 Subject: [PATCH 072/228] Corrected to accepted words MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Postconférence Préconférence --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index fd396d69..08ad7a09 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -4,7 +4,7 @@ > 🎥 Cliquer sur l'image ci-dessus afin de regarder une vidéo expliquant la différence entre machine learning, AI et deep learning. -## [Quiz prélecture](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) +## [Quiz préconférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) ### Introduction @@ -98,7 +98,7 @@ Dans un avenir proche, comprendre les bases du machine learning sera indispensab Esquisser, sur papier ou à l'aide d'une application en ligne comme [Excalidraw](https://excalidraw.com/), votre compréhension des différences entre l'IA, le ML, le deep learning et la data science. Ajouter quelques idées de problèmes que chacune de ces techniques est bonne à résoudre. -## [Quiz postlecture](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) +## [Quiz postconférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) ## Révision et auto-apprentissage From f49981f258791b6a7735f090367bae716c2bfba3 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Thu, 15 Jul 2021 15:55:38 +0200 Subject: [PATCH 073/228] Update README.fr.md --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index 08ad7a09..5fae99cd 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -4,7 +4,7 @@ > 🎥 Cliquer sur l'image ci-dessus afin de regarder une vidéo expliquant la différence entre machine learning, AI et deep learning. -## [Quiz préconférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) +## [Quiz de préconférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) ### Introduction @@ -98,7 +98,7 @@ Dans un avenir proche, comprendre les bases du machine learning sera indispensab Esquisser, sur papier ou à l'aide d'une application en ligne comme [Excalidraw](https://excalidraw.com/), votre compréhension des différences entre l'IA, le ML, le deep learning et la data science. Ajouter quelques idées de problèmes que chacune de ces techniques est bonne à résoudre. -## [Quiz postconférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) +## [Quiz de postconférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) ## Révision et auto-apprentissage From 846b62d0f7f9c5ac76ae9cf31c9c75c0e4b3426e Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Thu, 15 Jul 2021 17:41:04 +0200 Subject: [PATCH 074/228] Italian Translation - Chapter 2 complete --- .../4-Logistic/translations/README.it.md | 299 ++++++++++++++++++ .../4-Logistic/translations/assignment.it.md | 10 + 2 files changed, 309 insertions(+) create mode 100644 2-Regression/4-Logistic/translations/README.it.md create mode 100644 2-Regression/4-Logistic/translations/assignment.it.md diff --git a/2-Regression/4-Logistic/translations/README.it.md b/2-Regression/4-Logistic/translations/README.it.md new file mode 100644 index 00000000..6a31f5fb --- /dev/null +++ b/2-Regression/4-Logistic/translations/README.it.md @@ -0,0 +1,299 @@ +# Regressione logistica per prevedere le categorie + +![Infografica di regressione lineare e logistica](../images/logistic-linear.png) +> Infografica di [Dasani Madipalli](https://twitter.com/dasani_decoded) + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/15/) + +## Introduzione + +In questa lezione finale sulla Regressione, una delle tecniche _classiche_ di base di machine learning, si darà un'occhiata alla Regressione Logistica. Si dovrebbe utilizzare questa tecnica per scoprire modelli per prevedere le categorie binarie. Questa caramella è al cioccolato o no? Questa malattia è contagiosa o no? Questo cliente sceglierà questo prodotto o no? + +In questa lezione, si imparerà: + +- Una nuova libreria per la visualizzazione dei dati +- Tecniche per la regressione logistica + +✅ Con questo [modulo di apprendimento](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-15963-cxa) si potrà approfondire la comprensione del lavoro con questo tipo di regressione +## Prerequisito + +Avendo lavorato con i dati della zucca, ora si ha abbastanza familiarità con essi per rendersi conto che esiste una categoria binaria con cui è possibile lavorare: `Color` (Colore). + +Si costruisce un modello di regressione logistica per prevedere, date alcune variabili, di _che colore sarà probabilmente una data zucca_ (arancione 🎃 o bianca 👻). + +> Perché si parla di classificazione binaria in un gruppo di lezioni sulla regressione? Solo per comodità linguistica, poiché la regressione logistica è in [realtà un metodo di classificazione](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression), anche se lineare. Si scopriranno altri modi per classificare i dati nel prossimo gruppo di lezioni. + +## Definire la domanda + +Allo scopo, verrà espressa come binaria: 'Arancio' o 'Non Arancio'. C'è anche una categoria "striped" (a strisce) nell'insieme di dati, ma ci sono pochi casi, quindi non verrà presa in considerazione. Comunque scompare una volta rimossi i valori null dall'insieme di dati. + +> 🎃 Fatto divertente, a volte le zucche bianche vengono chiamate zucche "fantasma" Non sono molto facili da intagliare, quindi non sono così popolari come quelle arancioni ma hanno un bell'aspetto! + +## Informazioni sulla regressione logistica + +La regressione logistica differisce dalla regressione lineare, che si è appresa in precedenza, in alcuni importanti modi. + +### Classificazione Binaria + +La regressione logistica non offre le stesse caratteristiche della regressione lineare. La prima offre una previsione su una categoria binaria ("arancione o non arancione") mentre la seconda è in grado di prevedere valori continui, ad esempio data l'origine di una zucca e il momento del raccolto, di _quanto aumenterà il suo prezzo_. + +![Modello di classificazione della zucca](../images/pumpkin-classifier.png) +> Infografica di [Dasani Madipalli](https://twitter.com/dasani_decoded) +### Altre classificazioni: + +Esistono altri tipi di regressione logistica, inclusi multinomiale e ordinale: + +- **Multinomiale**, che implica avere più di una categoria: "arancione, bianco e a strisce". +- **Ordinale**, che coinvolge categorie ordinate, utile se si volessero ordinare i risultati in modo logico, come le zucche che sono ordinate per un numero finito di dimensioni (mini,sm,med,lg,xl,xxl). + +![Regressione multinomiale contro ordinale](../images/multinomial-ordinal.png) +> Infografica di [Dasani Madipalli](https://twitter.com/dasani_decoded) + +### È ancora lineare + +Anche se questo tipo di Regressione riguarda le "previsioni di categoria", funziona ancora meglio quando esiste una chiara relazione lineare tra la variabile dipendente (colore) e le altre variabili indipendenti (il resto dell'insieme di dati, come il nome della città e le dimensioni) . È bene avere un'idea se c'è qualche linearità che divide queste variabili o meno. + +### Le variabili NON devono essere correlate + +Si ricorda come la regressione lineare ha funzionato meglio con più variabili correlate? La regressione logistica è l'opposto: le variabili non devono essere allineate. Funziona per questi dati che hanno correlazioni alquanto deboli. + +### Servono molti dati puliti + +La regressione logistica fornirà risultati più accurati se si utilizzano più dati; quindi si tenga a mente che, essendo l'insieme di dati sulla zucca piccolo, non è ottimale per questo compito + +✅ Si pensi ai tipi di dati che si prestano bene alla regressione logistica + +## Esercizio: riordinare i dati + +Innanzitutto, si puliscono un po 'i dati, eliminando i valori null e selezionando solo alcune delle colonne: + +1. Aggiungere il seguente codice: + + ```python + from sklearn.preprocessing import LabelEncoder + + new_columns = ['Color','Origin','Item Size','Variety','City Name','Package'] + + new_pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1) + + new_pumpkins.dropna(inplace=True) + + new_pumpkins = new_pumpkins.apply(LabelEncoder().fit_transform) + ``` + + Si può sempre dare un'occhiata al nuovo dataframe: + + ```python + new_pumpkins.info + ``` + +### Visualizzazione - griglia affiancata + +A questo punto si è caricato di nuovo il [notebook iniziale](../notebook.ipynb) con i dati della zucca e lo si è pulito in modo da preservare un insieme di dati contenente alcune variabili, incluso `Color`. Si visualizza il dataframe nel notebook utilizzando una libreria diversa: [Seaborn](https://seaborn.pydata.org/index.html), che è costruita su Matplotlib, usata in precedenza. + +Seaborn offre alcuni modi accurati per visualizzare i dati. Ad esempio, si possono confrontare le distribuzioni dei dati per ogni punto in una griglia affiancata. + +1. Si crea una griglia di questo tipo istanziando `PairGrid`, usando i dati della zucca `new_pumpkins`, poi chiamando `map()`: + + ```python + import seaborn as sns + + g = sns.PairGrid(new_pumpkins) + g.map(sns.scatterplot) + ``` + + ![Una griglia di dati visualizzati](../images/grid.png) + + Osservando i dati fianco a fianco, si può vedere come i dati di Color si riferiscono alle altre colonne. + + ✅ Data questa griglia del grafico a dispersione, quali sono alcune esplorazioni interessanti che si possono immaginare? + +### Usare un grafico a sciame + +Poiché Color è una categoria binaria (arancione o no), viene chiamata "dati categoriali" e richiede "un [approccio più specializzato](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) alla visualizzazione". Esistono altri modi per visualizzare la relazione di questa categoria con altre variabili. + +È possibile visualizzare le variabili fianco a fianco con i grafici di Seaborn. + +1. Si provi un grafico a "sciame" per mostrare la distribuzione dei valori: + + ```python + sns.swarmplot(x="Color", y="Item Size", data=new_pumpkins) + ``` + + ![Uno sciame di dati visualizzati](../images/swarm.png) + +### Grafico violino + +Un grafico di tipo "violino" è utile in quanto è possibile visualizzare facilmente il modo in cui sono distribuiti i dati nelle due categorie. I grafici di tipo violino non funzionano così bene con insieme di dati più piccoli poiché la distribuzione viene visualizzata in modo più "liscio". + +1. Chiamare `catplot()` passando i parametri `x=Color`, `kind="violin"` : + + ```python + sns.catplot(x="Color", y="Item Size", + kind="violin", data=new_pumpkins) + ``` + + ![una tabella di un grafico di tipo violino](../images/violin.png) + + ✅ Provare a creare questo grafico e altri grafici Seaborn, utilizzando altre variabili. + +Ora che si ha un'idea della relazione tra le categorie binarie di colore e il gruppo più ampio di dimensioni, si esplora la regressione logistica per determinare il probabile colore di una data zucca. + +> **🧮 Mostrami la matematica** +> +> Si ricorda come la regressione lineare usava spesso i minimi quadrati ordinari per arrivare a un valore? La regressione logistica si basa sul concetto di "massima verosimiglianza" utilizzando [le funzioni sigmoidi](https://wikipedia.org/wiki/Sigmoid_function). Una "Funzione Sigmoide" su un grafico ha l'aspetto di una forma a "S". Prende un valore e lo mappa da qualche parte tra 0 e 1. La sua curva è anche chiamata "curva logistica". La sua formula si presenta così: +> +> ![funzione logistica](../images/sigmoid.png) +> +> dove il punto medio del sigmoide si trova nel punto 0 di x, L è il valore massimo della curva e k è la pendenza della curva. Se l'esito della funzione è maggiore di 0,5, all'etichetta in questione verrà assegnata la classe '1' della scelta binaria. In caso contrario, sarà classificata come '0'. + +## Costruire il modello + +Costruire un modello per trovare queste classificazioni binarie è sorprendentemente semplice in Scikit-learn. + +1. Si selezionano le variabili da utilizzare nel modello di classificazione e si dividono gli insiemi di training e test chiamando `train_test_split()`: + + ```python + from sklearn.model_selection import train_test_split + + Selected_features = ['Origin','Item Size','Variety','City Name','Package'] + + X = new_pumpkins[Selected_features] + y = new_pumpkins['Color'] + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + + ``` + +1. Ora si può addestrare il modello, chiamando `fit()` con i dati di addestramento e stamparne il risultato: + + ```python + from sklearn.model_selection import train_test_split + from sklearn.metrics import accuracy_score, classification_report + from sklearn.linear_model import LogisticRegression + + model = LogisticRegression() + model.fit(X_train, y_train) + predictions = model.predict(X_test) + + print(classification_report(y_test, predictions)) + print('Predicted labels: ', predictions) + print('Accuracy: ', accuracy_score(y_test, predictions)) + ``` + + Si dia un'occhiata al tabellone segnapunti del modello. Non è male, considerando che si hanno solo circa 1000 righe di dati: + + ```output + precision recall f1-score support + + 0 0.85 0.95 0.90 166 + 1 0.38 0.15 0.22 33 + + accuracy 0.82 199 + macro avg 0.62 0.55 0.56 199 + weighted avg 0.77 0.82 0.78 199 + + Predicted labels: [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 + 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 + 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 + 0 0 0 1 0 1 0 0 1 0 0 0 1 0] + ``` + +## Migliore comprensione tramite una matrice di confusione + +Sebbene si possano ottenere [i termini](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) del rapporto dei punteggi stampando gli elementi di cui sopra, si potrebbe essere in grado di comprendere più facilmente il modello utilizzando una [matrice di confusione](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix) che aiuti a capire come lo stesso sta funzionando. + +> 🎓 Una '[matrice di confusione](https://it.wikipedia.org/wiki/Matrice_di_confusione)' (o 'matrice di errore') è una tabella che esprime i veri contro i falsi positivi e negativi del modello, misurando così l'accuratezza delle previsioni. + +1. Per utilizzare una metrica di confusione, si `chiama confusion_matrix()`: + + ```python + from sklearn.metrics import confusion_matrix + confusion_matrix(y_test, predictions) + ``` + + Si dia un'occhiata alla matrice di confusione del modello: + + ```output + array([[162, 4], + [ 33, 0]]) + ``` + +Cosa sta succedendo qui? Si supponga che al modello venga chiesto di classificare gli elementi tra due categorie binarie, la categoria "zucca" e la categoria "non una zucca". + +- Se il modello prevede qualcosa come una zucca e appartiene alla categoria 'zucca' in realtà lo si chiama un vero positivo, mostrato dal numero in alto a sinistra. +- Se il modello prevede qualcosa come non una zucca e appartiene alla categoria 'zucca' in realtà si chiama falso positivo, mostrato dal numero in alto a destra. +- Se il modello prevede qualcosa come una zucca e appartiene alla categoria 'non-una-zucca' in realtà si chiama falso negativo, mostrato dal numero in basso a sinistra. +- Se il modello prevede qualcosa come non una zucca e appartiene alla categoria 'non-una-zucca' in realtà lo si chiama un vero negativo, mostrato dal numero in basso a destra. + +![Matrice di Confusione](../images/confusion-matrix.png) + +> Infografica di [Jen Looper](https://twitter.com/jenlooper) + +Come si sarà intuito, è preferibile avere un numero maggiore di veri positivi e veri negativi e un numero inferiore di falsi positivi e falsi negativi, il che implica che il modello funziona meglio. + +✅ Domanda: Secondo la matrice di confusione, come si è comportato il modello? Risposta: Non male; ci sono un buon numero di veri positivi ma anche diversi falsi negativi. + +I termini visti in precedenza vengono rivisitati con l'aiuto della mappatura della matrice di confusione di TP/TN e FP/FN: + +🎓 Precisione: TP/(TP + FN) La frazione di istanze rilevanti tra le istanze recuperate (ad es. quali etichette erano ben etichettate) + +🎓 Richiamo: TP/(TP + FP) La frazione di istanze rilevanti che sono state recuperate, ben etichettate o meno + +🎓 f1-score: (2 * precisione * richiamo)/(precisione + richiamo) Una media ponderata della precisione e del richiamo, dove il migliore è 1 e il peggiore è 0 + +🎓 Supporto: il numero di occorrenze di ciascuna etichetta recuperata + +🎓 Accuratezza: (TP + TN)/(TP + TN + FP + FN) La percentuale di etichette prevista accuratamente per un campione. + +🎓 Macro Media: il calcolo delle metriche medie non ponderate per ciascuna etichetta, senza tener conto dello squilibrio dell'etichetta. + +🎓 Media ponderata: il calcolo delle metriche medie per ogni etichetta, tenendo conto dello squilibrio dell'etichetta pesandole in base al loro supporto (il numero di istanze vere per ciascuna etichetta). + +✅ Si riesce a pensare a quale metrica si dovrebbe guardare se si vuole che il modello riduca il numero di falsi negativi? + +## Visualizzare la curva ROC di questo modello + +Questo non è un cattivo modello; la sua precisione è nell'intervallo dell'80%, quindi idealmente si potrebbe usare per prevedere il colore di una zucca dato un insieme di variabili. + +Si rende un'altra visualizzazione per vedere il cosiddetto punteggio 'ROC': + +```python +from sklearn.metrics import roc_curve, roc_auc_score + +y_scores = model.predict_proba(X_test) +# calculate ROC curve +fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1]) +sns.lineplot([0, 1], [0, 1]) +sns.lineplot(fpr, tpr) +``` +Usando di nuovo Seaborn, si traccia la [Caratteristica Operativa di Ricezione](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) o il ROC del modello. Le curve ROC vengono spesso utilizzate per ottenere una visualizzazione dell'output di un classificatore in termini di veri e falsi positivi. "Le curve ROC in genere presentano un tasso di veri positivi sull'asse Y e un tasso di falsi positivi sull'asse X". Pertanto, la ripidità della curva e lo spazio tra la linea del punto medio e la curva contano: si vuole una curva che si sposti rapidamente verso l'alto e oltre la linea. In questo caso, ci sono falsi positivi con cui iniziare, quindi la linea si dirige correttamente: + +![ROC](../images/ROC.png) + +Infine, si usa l'[`API roc_auc_score`](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html?highlight=roc_auc#sklearn.metrics.roc_auc_score) di Scikit-learn per calcolare l'effettiva "Area sotto la curva" (AUC): + +```python +auc = roc_auc_score(y_test,y_scores[:,1]) +print(auc) +``` +Il risultato è `0.6976998904709748`. Dato che l'AUC varia da 0 a 1, si desidera un punteggio elevato, poiché un modello corretto al 100% nelle sue previsioni avrà un AUC di 1; in questo caso, il modello è _abbastanza buono_. + +Nelle lezioni future sulle classificazioni si imparerà come eseguire l'iterazione per migliorare i punteggi del modello. Ma per ora, congratulazioni! Si sono completate queste lezioni di regressione! + +--- +## 🚀 Sfida + +C'è molto altro da svelare riguardo alla regressione logistica! Ma il modo migliore per imparare è sperimentare. Trovare un insieme di dati che si presti a questo tipo di analisi e costruire un modello con esso. Cosa si è appreso? suggerimento: provare [Kaggle](https://kaggle.com) per ottenere insiemi di dati interessanti. + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/16/) + +## Revisione e Auto Apprendimento + +Leggere le prime pagine di [questo articolo da Stanford](https://web.stanford.edu/~jurafsky/slp3/5.pdf) su alcuni usi pratici della regressione logistica. Si pensi alle attività più adatte per l'uno o l'altro tipo di attività di regressione studiate fino a questo punto. Cosa funzionerebbe meglio? + +## Compito + +[Ritentare questa regressione](assignment.it.md) diff --git a/2-Regression/4-Logistic/translations/assignment.it.md b/2-Regression/4-Logistic/translations/assignment.it.md new file mode 100644 index 00000000..7b9b2016 --- /dev/null +++ b/2-Regression/4-Logistic/translations/assignment.it.md @@ -0,0 +1,10 @@ +# Riprovare un po' di Regressione + +## Istruzioni + +Nella lezione è stato usato un sottoinsieme dei dati della zucca. Ora si torna ai dati originali e si prova a usarli tutti, puliti e standardizzati, per costruire un modello di regressione logistica. +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- | +| | Un notebook viene presentato con un modello ben spiegato con buone prestazioni | Un notebook viene presentato con un modello dalle prestazioni minime | Un notebook viene presentato con un modello con scarse o nessuna prestazione | From 93bcc7ff1b5416161067655086fdb7710405c30e Mon Sep 17 00:00:00 2001 From: JudyZhangYifan Date: Thu, 15 Jul 2021 17:54:36 -0400 Subject: [PATCH 075/228] 8-Reinforcement intro README translation --- 8-Reinforcement/translations/README.zh-cn.md | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 8-Reinforcement/translations/README.zh-cn.md diff --git a/8-Reinforcement/translations/README.zh-cn.md b/8-Reinforcement/translations/README.zh-cn.md new file mode 100644 index 00000000..c033d1db --- /dev/null +++ b/8-Reinforcement/translations/README.zh-cn.md @@ -0,0 +1,53 @@ +# 强化学习介绍 + +强化学习(Reinforcement learning,RL)被视为基础机器学习除监督学习以及无监督学习之外的范式之一。强化学习是完全关于决策的,它可以提供正确的决策或者至少能从他们中学习。 + +想象你现在有一个例如股票市场的模拟环境。如果你施加了一条给定的规章制度的话,将会发生什么呢?这条规章制度会带来积极还是消极的影响呢?如果产生了负面影响的话,那么你就需要接受这种 _负强化_ ,从中学习并改变方针。如果产生了正面的成果,那么你就需要基于这种 _正强化_ 越做越好。 + +![彼得与狼](../images/peter.png) + +> 彼得和他的朋友们需要逃离饥饿的狼!(图片来自:[Jen Looper](https://twitter.com/jenlooper)) + +## 区域主题:彼得与狼(俄罗斯) + +[彼得与狼](https://zh.wikipedia.org/wiki/%E5%BD%BC%E5%BE%97%E5%92%8C%E7%8B%BC) 是前苏联作曲家[普罗科菲耶夫](https://zh.wikipedia.org/wiki/%E8%B0%A2%E5%B0%94%E7%9B%96%C2%B7%E6%99%AE%E7%BD%97%E7%A7%91%E8%8F%B2%E8%80%B6%E5%A4%AB)写的一部交响童话。它讲述的是少先队员彼得勇敢地离家到森林空地去追捕狼的故事。在本节中,我们将训练可以帮助彼得的机器学习算法: + +- **探索** 周边区域并构建一张最佳的导航地图 +- **学习** 如何使用滑板并在上面保持平衡,以便更加快速地移动。 + +[![彼得与狼](https://img.youtube.com/vi/Fmi5zHg4QSM/0.jpg)](https://www.youtube.com/watch?v=Fmi5zHg4QSM) + +> 🎥 点击上图聆听普罗科菲耶夫的《彼得与狼》 + +## 强化学习 + +在之前的章节中,你已经看到了两个机器学习问题的例子: + +- **有监督的**——我们有数据集可以为我们想要解决的问题提出示例解决方案。[分类模型](../../4-Classification/README.md)与[回归模型](../../2-Regression/translations/README.zh-cn.md)都是有监督的任务。 +- **无监督的**——我们的训练数据没有标签。无监督学习的一个主要例子就是[聚类分析](../../5-Clustering/README.md)。 + +在本节中,我们会向你介绍一种新的学习问题。这种问题不需要有标签的训练数据,它们有以下几类问题: + +- **[半监督学习](https://wikipedia.org/wiki/Semi-supervised_learning)**——我们有很多没有标签的数据可以用于预先训练模型。 +- **[强化学习](https://wikipedia.org/wiki/Reinforcement_learning)**——一个智能体(agent)在某些模拟环境中进行实验并以此学习如何表现。 + +### 例子 - 电脑游戏 + +假设你想要教会电脑如何玩一个例如国际象棋或者[超级马里奥](https://wikipedia.org/wiki/Super_Mario)的游戏。对于电脑来说,我们需要让它预测在每个游戏状态下它的动作才能使它成功地玩游戏。虽然这看上去像是个分类问题,但是事实并非如此——因为我们没有包含(游戏)状态和相应动作的数据集。虽然我们可能有一些现有的国际象棋比赛数据或者玩家玩超级马里奥的记录,但是那些数据很可能无法包含足够多的潜在(游戏)状态。 + +**强化学习** (RL) 不是寻找现有的游戏数据,而是基于一种*想让电脑玩* 多次并观察结果的想法。因此,我们需要做以下两件事来应用强化学习: + +- **环境** 和 **模拟器** ——可以让我们多次玩游戏。这个模拟器将定义所有游戏的规则、可能的状态以及动作。 + +- **奖励函数** ——会告诉我们在每个动作或游戏中的表现如何。 + +其他机器学习和强化学习(RL)的主要差别就是在RL中我们通常无法在完成游戏之前知道我们是赢还是输。因此,我们无法评价游戏中的某一个特定动作是好是坏——我们只会在游戏结束时才得到奖励。我们的目标是设计一种可以在不确定条件下帮我们训练模型的算法。接下来我们将要学习一种叫**Q-learning**的RL算法。 + +## 课程 + +1. [强化学习与Q-Learning介绍](../1-QLearning/README.md) +2. [使用Gym模拟环境](../2-Gym/README.md) + +## Credits + +"强化学习介绍"由[Dmitry Soshnikov](http://soshnikov.com)撰写 ♥️ From 034b28edb4c39e4d56ba5a8377988f2c448c227d Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Jul 2021 11:24:28 +0800 Subject: [PATCH 076/228] Translated 1-intro-to-ML assignment.md into Simplified Chinese --- .../1-intro-to-ML/translations/assignment.zh-cn.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 1-Introduction/1-intro-to-ML/translations/assignment.zh-cn.md diff --git a/1-Introduction/1-intro-to-ML/translations/assignment.zh-cn.md b/1-Introduction/1-intro-to-ML/translations/assignment.zh-cn.md new file mode 100644 index 00000000..fd59f691 --- /dev/null +++ b/1-Introduction/1-intro-to-ML/translations/assignment.zh-cn.md @@ -0,0 +1,9 @@ +# 启动和运行 + +## 说明 + +在这个不评分的作业中,你应该温习一下 Python,将 Python 环境能够运行起来,并且可以运行 notebooks。 + +学习这个 [Python 学习路径](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa),然后通过这些介绍性的视频将你的系统环境设置好: + +https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 From 89ea1f05fa130042de972a6d4cfac97a7fca12b0 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Jul 2021 14:05:43 +0800 Subject: [PATCH 077/228] Translated 2-history-of-ML assignment.md into Simplified Chinese --- .../2-history-of-ML/translations/assignment.zh-cn.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/2-history-of-ML/translations/assignment.zh-cn.md diff --git a/1-Introduction/2-history-of-ML/translations/assignment.zh-cn.md b/1-Introduction/2-history-of-ML/translations/assignment.zh-cn.md new file mode 100644 index 00000000..adf3ee15 --- /dev/null +++ b/1-Introduction/2-history-of-ML/translations/assignment.zh-cn.md @@ -0,0 +1,11 @@ +# 建立一个时间轴 + +## 说明 + +使用这个 [仓库](https://github.com/Digital-Humanities-Toolkit/timeline-builder),创建一个关于算法、数学、统计学、人工智能、机器学习的某个方面或者可以综合多个以上学科来讲。你可以着重介绍某个人,某个想法,或者一个经久不衰的思想。请确保添加了多媒体元素在你的时间线中。 + +## 评判标准 + +| 标准 | 优秀 | 中规中矩 | 仍需努力 | +| ------------ | ---------------------------------- | ---------------------- | ------------------------------------------ | +| | 有一个用 GitHub page 展示的 timeline | 代码还不完整并且没有部署 | 时间线不完整,没有经过充分的研究,并且没有部署 | From 8f99e59b7722930941719b50905f854483b87fe7 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Jul 2021 15:16:20 +0800 Subject: [PATCH 078/228] Translated 3-fairness assignment.md into Simplified Chinese --- .../3-fairness/translations/assignment.zh-cn.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/3-fairness/translations/assignment.zh-cn.md diff --git a/1-Introduction/3-fairness/translations/assignment.zh-cn.md b/1-Introduction/3-fairness/translations/assignment.zh-cn.md new file mode 100644 index 00000000..a8124199 --- /dev/null +++ b/1-Introduction/3-fairness/translations/assignment.zh-cn.md @@ -0,0 +1,11 @@ +# 探索 Fairlearn + +## 说明 + +在这节课中,你了解了 Fairlearn,一个“开源的,社区驱动的项目,旨在帮助数据科学家们提高人工智能系统的公平性”。在这项作业中,探索 Fairlearn [笔记本](https://fairlearn.org/v0.6.2/auto_examples/index.html)中的一个例子,之后你可以用论文或者 ppt 的形式叙述你学习后的发现。 + +## 评判标准 + +| 标准 | 优秀 | 中规中矩 | 仍需努力 | +| -------- | --------- | -------- | ----------------- | +| | 提交了一篇论文或者ppt 关于讨论 Fairlearn 系统、挑选运行的例子、和运行这个例子后所得出来的心得结论 | 提交了一篇没有结论的论文 | 没有提交论文 | From 01c53fb14613d1fcb248e0bd4500a4674ea95fea Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Jul 2021 17:28:11 +0800 Subject: [PATCH 079/228] Translated 4-techniques-of-ML assignment.md into Simplified Chinese --- .../translations/assignment.zh-cn.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/4-techniques-of-ML/translations/assignment.zh-cn.md diff --git a/1-Introduction/4-techniques-of-ML/translations/assignment.zh-cn.md b/1-Introduction/4-techniques-of-ML/translations/assignment.zh-cn.md new file mode 100644 index 00000000..ba28b554 --- /dev/null +++ b/1-Introduction/4-techniques-of-ML/translations/assignment.zh-cn.md @@ -0,0 +1,11 @@ +# 采访一位数据科学家 + +## 说明 + +在你的公司、你所在的社群、或者在你的朋友和同学中,找到一位从事数据科学专业工作的人,与他或她交流一下。写一篇关于他们工作日常的小短文(500字左右)。他们是专家,还是说他们是“全栈”开发者? + +## 评判标准 + +| 标准 | 优秀 | 中规中矩 | 仍需努力 | +| -------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | --------------------- | +| | 提交一篇清晰描述了职业属性且字数符合规范的word文档 | 提交的文档职业属性描述得不清晰或者字数不合规范 | 啥都没有交 | From 39bf19bd05443b2b56111eb20de6ef02937d114d Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Fri, 16 Jul 2021 11:39:42 +0200 Subject: [PATCH 080/228] Modifying Quiz translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pre-lecture: Quiz préalable post-lecture: Quiz de validation des connaissances --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index 5fae99cd..1e27ca32 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -4,7 +4,7 @@ > 🎥 Cliquer sur l'image ci-dessus afin de regarder une vidéo expliquant la différence entre machine learning, AI et deep learning. -## [Quiz de préconférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) +## [Quiz préalable](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) ### Introduction @@ -98,7 +98,7 @@ Dans un avenir proche, comprendre les bases du machine learning sera indispensab Esquisser, sur papier ou à l'aide d'une application en ligne comme [Excalidraw](https://excalidraw.com/), votre compréhension des différences entre l'IA, le ML, le deep learning et la data science. Ajouter quelques idées de problèmes que chacune de ces techniques est bonne à résoudre. -## [Quiz de postconférence](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) +## [Quiz de validation des connaissances](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) ## Révision et auto-apprentissage From d5ef7e07218b043b967282b0656767f61684b771 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Fri, 16 Jul 2021 11:48:42 +0200 Subject: [PATCH 081/228] Create assignment.fr.md --- .../1-intro-to-ML/translations/assignment.fr.md | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 1-Introduction/1-intro-to-ML/translations/assignment.fr.md diff --git a/1-Introduction/1-intro-to-ML/translations/assignment.fr.md b/1-Introduction/1-intro-to-ML/translations/assignment.fr.md new file mode 100644 index 00000000..0d703d26 --- /dev/null +++ b/1-Introduction/1-intro-to-ML/translations/assignment.fr.md @@ -0,0 +1,10 @@ +# Être opérationnel + + +## Instructions + +Dans ce devoir non noté, vous devez vous familiariser avec Python et rendre votre environnement opérationnel et capable d'exécuter des notebook. + +Suivez ce [parcours d'apprentissage Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa), puis configurez votre système en parcourant ces vidéos introductives : + +https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 From 2a0c80f8c0d687016e8a737a537ae935e36723b4 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Fri, 16 Jul 2021 11:49:44 +0200 Subject: [PATCH 082/228] Changed url to assignment translation --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index 1e27ca32..a178790c 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -106,4 +106,4 @@ Pour en savoir plus sur la façon dont vous pouvez utiliser les algorithmes de M ## Devoir -[Être opérationnel](../assignment.md) +[Être opérationnel](assignment.fr.md) From c3074d622c0fe323c9f3d94a58c345f684431246 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Fri, 16 Jul 2021 14:39:00 +0200 Subject: [PATCH 083/228] Update README.fr.md --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index a178790c..e762c7f6 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -8,7 +8,7 @@ ### Introduction -Bienvenue à ce cours sur le machine learning classique pour débutant ! Que vous soyez complètement nouveau sur ce sujet ou que vous soyez un professonnel du ML expérimenté cherchant à peaufiner vos connaissances, nous sommes heureux de vous avoir avec nous ! Nous voulons créer un tremplin chaleureux pour vos études en ML et serions ravis d'évaluer, de répondre et d'apprendre de vos retours d'[expériences](https://github.com/microsoft/ML-For-Beginners/discussions). +Bienvenue à ce cours sur le machine learning classique pour débutant ! Que vous soyez complètement nouveau sur ce sujet ou que vous soyez un professionnel du ML expérimenté cherchant à peaufiner vos connaissances, nous sommes heureux de vous avoir avec nous ! Nous voulons créer un tremplin chaleureux pour vos études en ML et serions ravis d'évaluer, de répondre et d'apprendre de vos retours d'[expériences](https://github.com/microsoft/ML-For-Beginners/discussions). [![Introduction au ML](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "Introduction to ML") @@ -45,7 +45,7 @@ Bien que le terme peut être confu, machine learning (ML) est un important sous- ## Ce que vous allez apprendre dans ce cours -Dans ce cours, nous allons nous concentrer sur les concepts clés du machine learning qu'un débutant se doit de connaître. Nous parlerons ce que l'on appelle le 'machine learning classique' en utilisant principalement Scikit-learn, une excellente librairie que beaucoup d'étudiants utilisent afin d'apprendre les bases. Afin de comprendre les concepts plus larges de l'intelligence artificielle ou du deep learning, une profonde connaissance en machine learning est indispensable, et c'est ce que nous aimerions fournir ici. +Dans ce cours, nous allons nous concentrer sur les concepts clés du machine learning qu'un débutant se doit de connaître. Nous parlerons de ce que l'on appelle le 'machine learning classique' en utilisant principalement Scikit-learn, une excellente librairie que beaucoup d'étudiants utilisent afin d'apprendre les bases. Afin de comprendre les concepts plus larges de l'intelligence artificielle ou du deep learning, une profonde connaissance en machine learning est indispensable, et c'est ce que nous aimerions fournir ici. Dans ce cours, vous allez apprendre : From 0ea938006f66fa8a4453342f765f41b82f923a8b Mon Sep 17 00:00:00 2001 From: manusquall Date: Fri, 16 Jul 2021 12:55:26 +0000 Subject: [PATCH 084/228] add vscode option folder to gitignore, add fr option to quiz-app vue --- .gitignore | 2 + quiz-app/package-lock.json | 170 +- quiz-app/src/App.vue | 1 + quiz-app/src/assets/translations/fr.json | 2811 +++++++++++++++++++++ quiz-app/src/assets/translations/index.js | 2 + 5 files changed, 2895 insertions(+), 91 deletions(-) create mode 100644 quiz-app/src/assets/translations/fr.json diff --git a/.gitignore b/.gitignore index a80a15e3..51f47a5a 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,8 @@ bld/ # Visual Studio 2015/2017 cache/options directory .vs/ +# Visual Studio Code cache/options directory +.vscode/ # Uncomment if you have tasks that create the project's static files in wwwroot #wwwroot/ diff --git a/quiz-app/package-lock.json b/quiz-app/package-lock.json index e9aebee3..8f51a0ba 100644 --- a/quiz-app/package-lock.json +++ b/quiz-app/package-lock.json @@ -1087,16 +1087,6 @@ "postcss": "^7.0.0" } }, - "@kazupon/vue-i18n-loader": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@kazupon/vue-i18n-loader/-/vue-i18n-loader-0.5.0.tgz", - "integrity": "sha512-Tp2mXKemf9/RBhI9CW14JjR9oKjL2KH7tV6S0eKEjIBuQBAOFNuPJu3ouacmz9hgoXbNp+nusw3MVQmxZWFR9g==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "json5": "^2.1.1" - } - }, "@mrmlnc/readdir-enhanced": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", @@ -1720,6 +1710,16 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "optional": true, + "requires": { + "color-convert": "^2.0.1" + } + }, "cacache": { "version": "13.0.1", "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", @@ -1746,6 +1746,53 @@ "unique-filename": "^1.1.1" } }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "optional": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "optional": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "optional": true + }, + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "dev": true, + "optional": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -1762,6 +1809,16 @@ "minipass": "^3.1.1" } }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "optional": true, + "requires": { + "has-flag": "^4.0.0" + } + }, "terser-webpack-plugin": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz", @@ -1778,6 +1835,18 @@ "terser": "^4.6.12", "webpack-sources": "^1.4.3" } + }, + "vue-loader-v16": { + "version": "npm:vue-loader@16.3.0", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.3.0.tgz", + "integrity": "sha512-UDgni/tUVSdwHuQo+vuBmEgamWx88SuSlEb5fgdvHrlJSPB9qMBRF6W7bfPWSqDns425Gt1wxAUif+f+h/rWjg==", + "dev": true, + "optional": true, + "requires": { + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" + } } } }, @@ -10953,87 +11022,6 @@ } } }, - "vue-loader-v16": { - "version": "npm:vue-loader@16.1.2", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.1.2.tgz", - "integrity": "sha512-8QTxh+Fd+HB6fiL52iEVLKqE9N1JSlMXLR92Ijm6g8PZrwIxckgpqjPDWRP5TWxdiPaHR+alUWsnu1ShQOwt+Q==", - "dev": true, - "optional": true, - "requires": { - "chalk": "^4.1.0", - "hash-sum": "^2.0.0", - "loader-utils": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "optional": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "optional": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "optional": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "optional": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "optional": true - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "optional": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "optional": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, "vue-router": { "version": "3.4.9", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.4.9.tgz", diff --git a/quiz-app/src/App.vue b/quiz-app/src/App.vue index 78482d49..6baabd0c 100644 --- a/quiz-app/src/App.vue +++ b/quiz-app/src/App.vue @@ -6,6 +6,7 @@
diff --git a/quiz-app/src/assets/translations/fr.json b/quiz-app/src/assets/translations/fr.json new file mode 100644 index 00000000..ec8111c0 --- /dev/null +++ b/quiz-app/src/assets/translations/fr.json @@ -0,0 +1,2811 @@ +[ + { + "title": "Machine Learning pour les débutants: quiz", + "complete": "Félicitations, vous avez terminé le quiz!", + "error": "Désolé, essayez à nouveau", + "quizzes": [ + { + "id": 1, + "title": "Introduction au machine learning: quiz préalable", + "quiz": [ + { + "questionText": "Les applications de machine learning sont toutes autour de nous", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle est la différence technique entre le ml classique et le deep learning?", + "answerOptions": [ + { + "answerText": "ML classique a été inventé en premier", + "isCorrect": "false" + }, + { + "answerText": "L'utilisation de réseaux de neurones", + "isCorrect": "true" + }, + { + "answerText": "Le deep learning est utilisé dans les robots", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Pourquoi une entreprise pourrait-elle vouloir utiliser des stratégies ML?", + "answerOptions": [ + { + "answerText": "Pour automatiser la résolution de problèmes multidimensionnels", + "isCorrect": "false" + }, + { + "answerText": "Pour personnaliser une expérience de magasinage basée sur le type de client", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 2, + "title": "Introduction au machine learning: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Les algorithmes de machine learning sont destinés à simuler", + "answerOptions": [ + { + "answerText": "Des machines intelligentes", + "isCorrect": "false" + }, + { + "answerText": "Le cerveau humain", + "isCorrect": "true" + }, + { + "answerText": "Des orangutans", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Qu'est-ce qu'un exemple de technique classique de ML?", + "answerOptions": [ + { + "answerText": "Le traitement des langues naturelles", + "isCorrect": "true" + }, + { + "answerText": "Le deep learning", + "isCorrect": "false" + }, + { + "answerText": "Des neural networks", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Pourquoi tout le monde devrait-il apprendre les bases du ML?", + "answerOptions": [ + { + "answerText": "L'apprentissage ml est amusant et accessible à tout le monde", + "isCorrect": "false" + }, + { + "answerText": "Les stratégies ML sont utilisées dans de nombreuses industries et domaines", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 3, + "title": "Historique du machine learning: quiz préalable", + "quiz": [ + { + "questionText": "Quand approximativement le terme 'intelligence artificielle' a-t-il été inventé ?", + "answerOptions": [ + { + "answerText": "1980s", + "isCorrect": "false" + }, + { + "answerText": "années 1950", + "isCorrect": "true" + }, + { + "answerText": "années 1930", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Qui était l'un des premiers pionniers du machine learning?", + "answerOptions": [ + { + "answerText": "Alan Turing", + "isCorrect": "true" + }, + { + "answerText": "Bill Gates", + "isCorrect": "false" + }, + { + "answerText": "Shakey the Robot", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle est l'une des raisons pour lesquelles l'avancement de l'AI a ralenti dans les années 1970?", + "answerOptions": [ + { + "answerText": "Puissance de calcul limitée", + "isCorrect": "true" + }, + { + "answerText": "Pas assez d'ingénieurs qualifiés", + "isCorrect": "false" + }, + { + "answerText": "Conflits entre pays", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 4, + "title": "Historique du machine learning: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Qu'est-ce qu'un exemple de système d'IA \" Scruffy \" AI?", + "answerOptions": [ + { + "answerText": "ELIZA", + "isCorrect": "true" + }, + { + "answerText": "HACKML", + "isCorrect": "false" + }, + { + "answerText": "SSYSTEM", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quel est l'exemple d'une technologie qui a été développée pendant les « années d'or » ?", + "answerOptions": [ + { + "answerText": "Blocks World", + "isCorrect": "true" + }, + { + "answerText": "Jibo", + "isCorrect": "false" + }, + { + "answerText": "Robot Dogs", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quel événement était fondé sur la création et l'expansion du domaine de l'intelligence artificielle?", + "answerOptions": [ + { + "answerText": "Turing Test", + "isCorrect": "false" + }, + { + "answerText": "Projet de recherche d'été de Dartmouth", + "isCorrect": "true" + }, + { + "answerText": "AI Winter", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 5, + "title": "L'équité et machine learning: quiz préalable", + "quiz": [ + { + "questionText": "L'injustice dans le machine learning peut arriver", + "answerOptions": [ + { + "answerText": "intentionnellement", + "isCorrect": "false" + }, + { + "answerText": "Indormalement", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Le terme \" injustice \" en ml connotes:", + "answerOptions": [ + { + "answerText": "nuit à un groupe de personnes", + "isCorrect": "true" + }, + { + "answerText": "Dommage à une personne", + "isCorrect": "false" + }, + { + "answerText": "nuit à la majorité des gens", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Les cinq principaux types de préjudices incluent", + "answerOptions": [ + { + "answerText": "Allocation, qualité de service, stéréotypage, dénigration et sous-représentation", + "isCorrect": "true" + }, + { + "answerText": "Elocation, qualité de service, stéréotypage, dénigration et sous-représentation", + "isCorrect": "false" + }, + { + "answerText": "Allocation, qualité de service, stéréophonie, dénigration et sous-représentation", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 6, + "title": "Equité et machine learning: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "L'injustice dans un modèle peut être causée par", + "answerOptions": [ + { + "answerText": "dépassement de données historiques", + "isCorrect": "true" + }, + { + "answerText": "Sous-solliance sur les données historiques", + "isCorrect": "false" + }, + { + "answerText": "Trop d'alignement sur les données historiques", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Pour atténuer l'injustice, tu peux", + "answerOptions": [ + { + "answerText": "Identifier les préjudices et les groupes affectés", + "isCorrect": "false" + }, + { + "answerText": "Définir les métriques d'équité", + "isCorrect": "false" + }, + { + "answerText": "à la fois ce qui précède", + "isCorrect": "true" + } + ] + }, + { + "questionText": "FairLearn est un paquet qui peut", + "answerOptions": [ + { + "answerText": "Comparez plusieurs modèles en utilisant des métriques d'équité et de performance", + "isCorrect": "true" + }, + { + "answerText": "Choisissez le meilleur modèle pour vos besoins", + "isCorrect": "false" + }, + { + "answerText": "Aidez-vous à décider de ce qui est juste et ce qui n'est pas", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 7, + "title": "Outils et techniques: quiz préalable", + "quiz": [ + { + "questionText": "Lors de la construction d'un modèle, vous devriez:", + "answerOptions": [ + { + "answerText": "Préparez vos données, puis formez votre modèle", + "isCorrect": "true" + }, + { + "answerText": "Choisissez une méthode de formation, puis préparez vos données", + "isCorrect": "false" + }, + { + "answerText": "Tune Paramètres, puis formez votre modèle", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Vos données ___ vont avoir une incidence sur la qualité de votre modèle ML", + "answerOptions": [ + { + "answerText": "Quantité", + "isCorrect": "false" + }, + { + "answerText": "Forme", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Une variable de fonctionnalité est la suivante:", + "answerOptions": [ + { + "answerText": "une qualité de vos données", + "isCorrect": "false" + }, + { + "answerText": "Une propriété mesurable de vos données", + "isCorrect": "true" + }, + { + "answerText": "Une ligne de vos données", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 8, + "title": "Outils et techniques: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Vous devez visualiser vos données car", + "answerOptions": [ + { + "answerText": "Vous pouvez découvrir des valeurs aberrantes", + "isCorrect": "false" + }, + { + "answerText": "Vous pouvez découvrir une cause potentielle de biais", + "isCorrect": "true" + }, + { + "answerText": "tous les deux", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Sélectionnez vos données en:", + "answerOptions": [ + { + "answerText": "Entraînement et ensembles de Turing", + "isCorrect": "false" + }, + { + "answerText": "Entraînement et ensembles de test", + "isCorrect": "true" + }, + { + "answerText": "Ensembles de validation et d'évaluation", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Une commande commune de démarrer le processus de formation dans diverses bibliothèques ML est la suivante:", + "answerOptions": [ + { + "answerText": "Model.travel", + "isCorrect": "false" + }, + { + "answerText": "Model.train", + "isCorrect": "false" + }, + { + "answerText": "Model.fit", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 9, + "title": "Introduction à la régression: quiz préalable", + "quiz": [ + { + "questionText": "Laquelle de ces variables est une variable numérique?", + "answerOptions": [ + { + "answerText": "Hauteur", + "isCorrect": "true" + }, + { + "answerText": "Genre", + "isCorrect": "false" + }, + { + "answerText": "Couleur des cheveux", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Laquelle de ces variables est une variable catégorique?", + "answerOptions": [ + { + "answerText": "rythme cardiaque", + "isCorrect": "false" + }, + { + "answerText": "Type de sang", + "isCorrect": "true" + }, + { + "answerText": "Poids", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Lequel de ces problèmes est un problème basé sur l'analyse de régression?", + "answerOptions": [ + { + "answerText": "Prédire les marques d'examen final d'un étudiant", + "isCorrect": "true" + }, + { + "answerText": "Prédire le type de sang d'une personne", + "isCorrect": "false" + }, + { + "answerText": "Prédire si un email est spam ou non", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 10, + "title": "Introduction à la régression: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Si la précision de la formation du modèle d'apprentissage de votre machine est de 95% et que la précision des tests est de 30%, quel type de condition est appelé?", + "answerOptions": [ + { + "answerText": "Surface", + "isCorrect": "true" + }, + { + "answerText": "sous-facture", + "isCorrect": "false" + }, + { + "answerText": "Double ajustement", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Le processus d'identification des fonctionnalités significatives d'un ensemble de fonctionnalités est appelé:", + "answerOptions": [ + { + "answerText": "Extraction de fonctionnalités", + "isCorrect": "false" + }, + { + "answerText": "Réduction de la dimensionnalité de fonctionnalité", + "isCorrect": "false" + }, + { + "answerText": "Sélection de fonctionnalités", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Le processus de division d'un jeu de données dans un certain rapport d'entraînement et de test de jeu de données à l'aide de la méthode / la fonction Train_Test_split () '' Train_Test_Split () 'est appelée:", + "answerOptions": [ + { + "answerText": "Validation croisée", + "isCorrect": "false" + }, + { + "answerText": "validation de maintien", + "isCorrect": "true" + }, + { + "answerText": "laissez une validation d'une sortie", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 11, + "title": "Préparer et visualiser des données pour la régression: quiz préalable", + "quiz": [ + { + "questionText": "Lequel de ces modules Python est utilisé pour tracer la visualisation des données?", + "answerOptions": [ + { + "answerText": "Numpy", + "isCorrect": "false" + }, + { + "answerText": "Scikit-apprendre", + "isCorrect": "false" + }, + { + "answerText": "Matplotlib", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Si vous souhaitez comprendre la propagation ou les autres caractéristiques des points de données de votre ensemble de données, puis effectuez:", + "answerOptions": [ + { + "answerText": "Visualisation des données", + "isCorrect": "true" + }, + { + "answerText": "Pré-traitement des données", + "isCorrect": "false" + }, + { + "answerText": "Split test de train", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Lequel d'entre eux fait partie de l'étape de visualisation des données dans un projet de machine learning?", + "answerOptions": [ + { + "answerText": "Intégrant un algorithme d'apprentissage de certains machines", + "isCorrect": "false" + }, + { + "answerText": "Créer une représentation picturale des données à l'aide de différentes méthodes de tracé", + "isCorrect": "true" + }, + { + "answerText": "Normaliser les valeurs d'un jeu de données", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 12, + "title": "Préparez et visualisez des données pour la régression: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Lequel de ces extraits de code est correct d'après cette leçon, si vous souhaitez vérifier la présence de valeurs manquantes dans votre ensemble de données ? Supposons que l'ensemble de données soit stocké dans une variable nommée \"ensemble de données\", qui est un objet Pandas DataFrame.", + "answerOptions": [ + { + "answerText": "DataSet.isnull (). Somme ()", + "isCorrect": "true" + }, + { + "answerText": "FindMissing (DataSet)", + "isCorrect": "false" + }, + { + "answerText": "Somme (NULL (DataSet))", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Laquelle de ces méthodes de traçage est utile lorsque vous souhaitez comprendre la propagation de différents groupes de fichiers de données de votre jeu de données?", + "answerOptions": [ + { + "answerText": "Terrain de dispersion", + "isCorrect": "false" + }, + { + "answerText": "Terrain de ligne", + "isCorrect": "false" + }, + { + "answerText": "barre de bar", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Que peut ne pas vous dire la visualisation des données?", + "answerOptions": [ + { + "answerText": "Relations entre DataPoints", + "isCorrect": "false" + }, + { + "answerText": "La source de l'endroit où le jeu de données est collecté", + "isCorrect": "true" + }, + { + "answerText": "Trouver la présence de valeurs aberrantes dans l'ensemble de données", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 13, + "title": "régression linéaire et polynomiale: quiz préalable", + "quiz": [ + { + "questionText": "Matplotlib est un", + "answerOptions": [ + { + "answerText": "Bibliothèque de dessin", + "isCorrect": "false" + }, + { + "answerText": "Bibliothèque de visualisation de données", + "isCorrect": "true" + }, + { + "answerText": "Library Lanchage", + "isCorrect": "false" + } + ] + }, + { + "questionText": "La régression linéaire utilise ce qui suit pour tracer des relations entre variables", + "answerOptions": [ + { + "answerText": "Une ligne droite", + "isCorrect": "true" + }, + { + "answerText": "Un cercle", + "isCorrect": "false" + }, + { + "answerText": "une courbe", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Un bon modèle de régression linéaire a un coefficient de corrélation ___", + "answerOptions": [ + { + "answerText": "Low", + "isCorrect": "false" + }, + { + "answerText": "High", + "isCorrect": "true" + }, + { + "answerText": "flat", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 14, + "title": "Régression linéaire et polynomiale: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Si vos données sont non linéaires, essayez un type ___ de régression", + "answerOptions": [ + { + "answerText": "linéaire", + "isCorrect": "false" + }, + { + "answerText": "sphérique", + "isCorrect": "false" + }, + { + "answerText": "polynôme", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Ce sont tous types de méthodes de régression", + "answerOptions": [ + { + "answerText": "Falsestetep, crête, lasso et élastique", + "isCorrect": "false" + }, + { + "answerText": "Stealwise, Ridge, Lasso et Elasticnet", + "isCorrect": "true" + }, + { + "answerText": "Stealwise, Ridge, Lariat et Elasticnet", + "isCorrect": "false" + } + ] + }, + { + "questionText": "La régression des moindres carrés signifie que toutes les données de données entourant la ligne de régression sont:", + "answerOptions": [ + { + "answerText": "carré puis soustrait", + "isCorrect": "false" + }, + { + "answerText": "multiplié", + "isCorrect": "false" + }, + { + "answerText": "carré puis ajouté", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 15, + "title": "Régression logistique: quiz préalable", + "quiz": [ + { + "questionText": "Utilisez la régression logistique à prédire", + "answerOptions": [ + { + "answerText": "Si une pomme est mûre ou non", + "isCorrect": "true" + }, + { + "answerText": "Combien de billets peuvent être vendus dans un mois", + "isCorrect": "false" + }, + { + "answerText": "De quelle couleur le ciel tournera demain à 18 heures", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Types de régression logistique incluent", + "answerOptions": [ + { + "answerText": "multinomial et cardinal", + "isCorrect": "false" + }, + { + "answerText": "multinomial et ordinal", + "isCorrect": "true" + }, + { + "answerText": "Principal et ordinal", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Vos données ont des corrélations faibles. Le meilleur type de régression à utiliser est:", + "answerOptions": [ + { + "answerText": "Logistique", + "isCorrect": "true" + }, + { + "answerText": "linéaire", + "isCorrect": "false" + }, + { + "answerText": "cardinal", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 16, + "title": "Régression logistique: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Sea-né est un type de", + "answerOptions": [ + { + "answerText": "Bibliothèque de visualisation de données", + "isCorrect": "true" + }, + { + "answerText": "Bibliothèque de mappage", + "isCorrect": "false" + }, + { + "answerText": "Bibliothèque mathématique", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Une matrice de confusion est également connue sous le nom de:", + "answerOptions": [ + { + "answerText": "matrice d'erreur", + "isCorrect": "true" + }, + { + "answerText": "Matrix de vérité", + "isCorrect": "false" + }, + { + "answerText": "matrice de précision", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Un bon modèle aura:", + "answerOptions": [ + { + "answerText": "Un grand nombre de faux positifs et de vrais négatifs dans sa matrice de confusion", + "isCorrect": "false" + }, + { + "answerText": "Un grand nombre de vrais positifs et vrais négatifs dans sa matrice de confusion", + "isCorrect": "true" + }, + { + "answerText": "Un grand nombre de vrais positifs et de faux négatifs dans sa matrice de confusion", + "isCorrect": "false" + } + ] + } + ] + }, { + "id": 17, + "title": "Construire une application Web: quiz préalable", + "quiz": [ + { + "questionText": "Qu'est-ce que OnNX signifie?", + "answerOptions": [ + { + "answerText": "Exchange de réseau de neurones", + "isCorrect": "false" + }, + { + "answerText": "Exchange de réseau de neurones ouverts", + "isCorrect": "true" + }, + { + "answerText": "Exchange de réseau neural de sortie", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Comment le ballon est-il défini par ses créateurs?", + "answerOptions": [ + { + "answerText": "mini-cadre", + "isCorrect": "false" + }, + { + "answerText": "Grand-cadre", + "isCorrect": "false" + }, + { + "answerText": "micro-cadre", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Que fait le module de cornichon de Python", + "answerOptions": [ + { + "answerText": "Serialise un objet Python", + "isCorrect": "false" + }, + { + "answerText": "désagréalise un objet Python", + "isCorrect": "false" + }, + { + "answerText": "Serialise et désémarifier un objet Python", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 18, + "title": "Construire une application Web: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Quels sont les outils que nous pouvons utiliser pour héberger un modèle pré-formé sur le Web à l'aide de Python?", + "answerOptions": [ + { + "answerText": "Flacon", + "isCorrect": "true" + }, + { + "answerText": "Tensorflow.js", + "isCorrect": "false" + }, + { + "answerText": "ONNX.JS", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Qu'est-ce que SaaS signifie?", + "answerOptions": [ + { + "answerText": "Système en tant que service", + "isCorrect": "false" + }, + { + "answerText": "Logiciel en tant que service", + "isCorrect": "true" + }, + { + "answerText": "Sécurité en tant que service", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Qu'est-ce que la bibliothèque de labelencoder de Scikit-apprendre?", + "answerOptions": [ + { + "answerText": "Encode les données par ordre alphabétique", + "isCorrect": "true" + }, + { + "answerText": "Encode les données numériquement", + "isCorrect": "false" + }, + { + "answerText": "Code des données en série", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 19, + "title": "Classification 1: quiz préalable", + "quiz": [ + { + "questionText": "La classification est une forme d'apprentissage supervisé qui a beaucoup en commun avec", + "answerOptions": [ + { + "answerText": "Série temporelle", + "isCorrect": "false" + }, + { + "answerText": "Techniques de régression", + "isCorrect": "true" + }, + { + "answerText": "NLP", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle question peut aider la classification à répondre?", + "answerOptions": [ + { + "answerText": "Est-ce que ce courrier électronique ou pas?", + "isCorrect": "true" + }, + { + "answerText": "Les cochons peuvent voler?", + "isCorrect": "false" + }, + { + "answerText": "Quel est le sens de la vie?", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle est la première étape pour utiliser des techniques de classification?", + "answerOptions": [ + { + "answerText": "Création de cours d'un jeu de données", + "isCorrect": "false" + }, + { + "answerText": "Nettoyer et équilibrer vos données", + "isCorrect": "true" + }, + { + "answerText": "Affectation d'un point de données à un groupe ou à un résultat", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 20, + "title": "Classification 1: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Qu'est-ce qu'une question multiclasse?", + "answerOptions": [ + { + "answerText": "La tâche de classer les points de données dans plusieurs classes", + "isCorrect": "true" + }, + { + "answerText": "La tâche de classifier les points de données dans l'une des plusieurs classes", + "isCorrect": "true" + }, + { + "answerText": "La tâche de nettoyer les points de données de plusieurs manières", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Il est important de nettoyer des données récurrentes ou inutiles pour aider vos classificateurs à résoudre votre problème.", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle est la meilleure raison d'équilibrer vos données?", + "answerOptions": [ + { + "answerText": "Les données déséquilibrées ont l'air mauvais dans les visualisations", + "isCorrect": "false" + }, + { + "answerText": "L'équilibrage de vos données donne des résultats meilleurs, car un modèle ML n'enfraigne pas vers une classe", + "isCorrect": "true" + }, + { + "answerText": "L'équilibrage de vos données vous donne plus de points de données", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 21, + "title": "Classification 2: quiz préalable", + "quiz": [ + { + "questionText": "Les données équilibrées et propres ont produit les meilleurs résultats de la classification", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Comment choisissez-vous le bon classificateur?", + "answerOptions": [ + { + "answerText": "Comprend quel classificateurs fonctionnent le mieux pour quels scénarios", + "isCorrect": "false" + }, + { + "answerText": "Devineuse éduquée et chèque", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + }, + { + "questionText": "La classification est un type de", + "answerOptions": [ + { + "answerText": "NLP", + "isCorrect": "false" + }, + { + "answerText": "Apprentissage supervisé", + "isCorrect": "true" + }, + { + "answerText": "Langage de programmation", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 22, + "title": "Classification 2: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Qu'est-ce qu'un \"solveur\" ?", + "answerOptions": [ + { + "answerText": "La personne qui vérifie votre travail", + "isCorrect": "false" + }, + { + "answerText": "L'algorithme à utiliser dans le problème d'optimisation", + "isCorrect": "true" + }, + { + "answerText": "Une technique de machine learning", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quel classificateur avons-nous utilisé dans cette leçon?", + "answerOptions": [ + { + "answerText": "régression logistique", + "isCorrect": "true" + }, + { + "answerText": "Arbres de décision", + "isCorrect": "false" + }, + { + "answerText": "MultiClass one-vs-tout", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Comment savez-vous si l'algorithme de classification fonctionne comme prévu?", + "answerOptions": [ + { + "answerText": "En vérifiant la précision de ses prévisions", + "isCorrect": "true" + }, + { + "answerText": "En le contrôlant contre d'autres algorithmes", + "isCorrect": "false" + }, + { + "answerText": "En regardant des données historiques pour la qualité de cet algorithme de résoudre des problèmes similaires", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 23, + "title": "Classification 3: quiz préalable", + "quiz": [ + { + "questionText": "Un bon classificateur initial à essayer est:", + "answerOptions": [ + { + "answerText": "SVC linéaire", + "isCorrect": "true" + }, + { + "answerText": "k-signifie", + "isCorrect": "false" + }, + { + "answerText": "SVC logique", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Contrôles de régularisation:", + "answerOptions": [ + { + "answerText": "L'influence des paramètres", + "isCorrect": "true" + }, + { + "answerText": "L'influence de la vitesse de formation", + "isCorrect": "false" + }, + { + "answerText": "L'influence des valeurs aberrantes", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Le classificateur K-voisins peut être utilisé pour:", + "answerOptions": [ + { + "answerText": "Apprentissage supervisé", + "isCorrect": "false" + }, + { + "answerText": "L'apprentissage non supervisé", + "isCorrect": "false" + }, + { + "answerText": "tous les deux", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 24, + "title": "Classification 3: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Les classificateurs de support-vectoriel peuvent être utilisés pour", + "answerOptions": [ + { + "answerText": "Classification", + "isCorrect": "false" + }, + { + "answerText": "régression", + "isCorrect": "false" + }, + { + "answerText": "tous les deux", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Forêt aléatoire est un type de classificateur ___", + "answerOptions": [ + { + "answerText": "Ensemble", + "isCorrect": "true" + }, + { + "answerText": "Dissembliste", + "isCorrect": "false" + }, + { + "answerText": "Assemblez", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Adaboost est connu pour:", + "answerOptions": [ + { + "answerText": "Se concentrer sur les poids des éléments incorrectement classifiés", + "isCorrect": "true" + }, + { + "answerText": "Se concentrer sur des valeurs aberrantes", + "isCorrect": "false" + }, + { + "answerText": "Se concentrer sur des données incorrectes", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 25, + "title": "Classification 4: quiz préalable", + "quiz": [ + { + "questionText": "Les systèmes de recommandation peuvent être utilisés pour", + "answerOptions": [ + { + "answerText": "Recommander un bon restaurant", + "isCorrect": "false" + }, + { + "answerText": "recommander des modes à essayer", + "isCorrect": "false" + }, + { + "answerText": "tous les deux", + "isCorrect": "true" + } + ] + }, + { + "questionText": "L'intégration d'un modèle dans une application Web l'aide à être hors ligne", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + }, + { + "questionText": "OnNX Runtime peut être utilisé pour", + "answerOptions": [ + { + "answerText": "Exécution de modèles dans une application Web", + "isCorrect": "true" + }, + { + "answerText": "Modèles de formation", + "isCorrect": "false" + }, + { + "answerText": "Hyperparameter Tuning", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 26, + "title": "Classification 4: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "L'application Nettron vous aide:", + "answerOptions": [ + { + "answerText": "Visualiser les données", + "isCorrect": "false" + }, + { + "answerText": "Visualisez la structure de votre modèle", + "isCorrect": "true" + }, + { + "answerText": "Testez votre application Web", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Convertissez votre modèle SCIKIT-HALL pour une utilisation avec OnNX en utilisant:", + "answerOptions": [ + { + "answerText": "Sklearn-App", + "isCorrect": "false" + }, + { + "answerText": "Sklearn-web", + "isCorrect": "false" + }, + { + "answerText": "Sklearn-ONNX", + "isCorrect": "true" + } + ] + }, + { + "questionText": "L'utilisation de votre modèle dans une application Web s'appelle:", + "answerOptions": [ + { + "answerText": "Inférence", + "isCorrect": "true" + }, + { + "answerText": "Interférence", + "isCorrect": "false" + }, + { + "answerText": "Assurance", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 27, + "title": "Introduction au clustering: quiz préalable", + "quiz": [ + { + "questionText": "Un exemple de vie réel de regroupement serait", + "answerOptions": [ + { + "answerText": "Définir la table du dîner", + "isCorrect": "false" + }, + { + "answerText": "Tri du linge", + "isCorrect": "true" + }, + { + "answerText": "Shopping de l'épicerie", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Les techniques de clustering peuvent être utilisées dans ces industries", + "answerOptions": [ + { + "answerText": "Banking", + "isCorrect": "false" + }, + { + "answerText": "e-commerce", + "isCorrect": "false" + }, + { + "answerText": "tous les deux", + "isCorrect": "false" + } + ] + }, + { + "questionText": "La clustering est un type de:", + "answerOptions": [ + { + "answerText": "Apprentissage supervisé", + "isCorrect": "false" + }, + { + "answerText": "L'apprentissage non supervisé", + "isCorrect": "true" + }, + { + "answerText": "Apprentissage du renforcement", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 28, + "title": "Introduction au clustering: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "La géométrie euclidienne est arrangée", + "answerOptions": [ + { + "answerText": "Planes", + "isCorrect": "true" + }, + { + "answerText": "Courbes", + "isCorrect": "false" + }, + { + "answerText": "Sphères", + "isCorrect": "false" + } + ] + }, + { + "questionText": "La densité de vos données de clustering est liée à sa", + "answerOptions": [ + { + "answerText": "bruit", + "isCorrect": "true" + }, + { + "answerText": "Profondeur", + "isCorrect": "false" + }, + { + "answerText": "Validité", + "isCorrect": "false" + } + ] + }, + { + "questionText": "L'algorithme de regroupement le plus connu est", + "answerOptions": [ + { + "answerText": "k-signifie", + "isCorrect": "true" + }, + { + "answerText": "K-Middle", + "isCorrect": "false" + }, + { + "answerText": "K-Mart", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 29, + "title": "K-Means Clustering: quiz préalable", + "quiz": [ + { + "questionText": "K-Means est dérivé de:", + "answerOptions": [ + { + "answerText": "Génie électrique", + "isCorrect": "false" + }, + { + "answerText": "Traitement du signal", + "isCorrect": "true" + }, + { + "answerText": "Linguistics informatiques", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Une bonne score de silhouette signifie:", + "answerOptions": [ + { + "answerText": "Les grappes sont bien séparées et bien définies", + "isCorrect": "true" + }, + { + "answerText": "Il y a peu de grappes", + "isCorrect": "false" + }, + { + "answerText": "Il y a beaucoup de clusters", + "isCorrect": "false" + } + ] + }, + { + "questionText": "La variance est:", + "answerOptions": [ + { + "answerText": "La moyenne des différences carrées de la moyenne", + "isCorrect": "false" + }, + { + "answerText": "Un problème de regroupement s'il devient trop élevé", + "isCorrect": "false" + }, + { + "answerText": "tous les deux", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 30, + "title": "K-olth regroupement: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Un diagramme de Voronoi montre:", + "answerOptions": [ + { + "answerText": "Variance d'une cluster", + "isCorrect": "false" + }, + { + "answerText": "La graine d'une grappe et sa région", + "isCorrect": "true" + }, + { + "answerText": "L'inertie d'une cluster", + "isCorrect": "false" + } + ] + }, + { + "questionText": "L'inertie est", + "answerOptions": [ + { + "answerText": "Une mesure de la manière dont les clusters cohérents internes sont", + "isCorrect": "true" + }, + { + "answerText": "Une mesure de la quantité de grappes déplacées", + "isCorrect": "false" + }, + { + "answerText": "Une mesure de la qualité des grappes", + "isCorrect": "false" + } + ] + }, + { + "questionText": "en utilisant k-moyen, vous devez d'abord déterminer la valeur de 'k'", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 31, + "title": "Intro to NLP: quiz préalable", + "quiz": [ + { + "questionText": "Que signifie NLP pour ces leçons?", + "answerOptions": [ + { + "answerText": "Traitement des langues neurales", + "isCorrect": "false" + }, + { + "answerText": "Traitement des langues naturelles", + "isCorrect": "true" + }, + { + "answerText": "Traitement linguistique naturel", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Eliza était un bot précoce qui a agi comme un ordinateur", + "answerOptions": [ + { + "answerText": "Thérapeute", + "isCorrect": "true" + }, + { + "answerText": "Docteur", + "isCorrect": "false" + }, + { + "answerText": "Infirmière", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Le test de Turing 'd'Alan Turing a essayé de déterminer si un ordinateur était", + "answerOptions": [ + { + "answerText": "Inmistingtilisable d'un humain", + "isCorrect": "false" + }, + { + "answerText": "Penser", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 32, + "title": "Intro to NLP: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Joseph Weizenbaum a inventé le bot", + "answerOptions": [ + { + "answerText": "Elisha", + "isCorrect": "false" + }, + { + "answerText": "Eliza", + "isCorrect": "true" + }, + { + "answerText": "Eloise", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Un bot conversationnel donne une sortie basée sur", + "answerOptions": [ + { + "answerText": "Choisir des choix prédéfinis au hasard", + "isCorrect": "false" + }, + { + "answerText": "Analyse de l'entrée et de l'utilisation de l'intelligence de la machine", + "isCorrect": "false" + }, + { + "answerText": "tous les deux", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Comment feriez-vous le bot plus efficace?", + "answerOptions": [ + { + "answerText": "En le demandant plus de questions.", + "isCorrect": "false" + }, + { + "answerText": "En l'alignant plus de données et de la formation en conséquence", + "isCorrect": "true" + }, + { + "answerText": "Le bot est stupide, il ne peut pas apprendre :(", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 33, + "title": "Tâches NLP: quiz préalable", + "quiz": [ + { + "questionText": "Tokenization", + "answerOptions": [ + { + "answerText": "Splituelle du texte au moyen de la ponctuation", + "isCorrect": "false" + }, + { + "answerText": "Splituelle du texte en jetons séparés (mots)", + "isCorrect": "true" + }, + { + "answerText": "Splituelle du texte en phrases", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Embeddings", + "answerOptions": [ + { + "answerText": "Convertit numériquement les données de texte afin que les mots puissent se classer", + "isCorrect": "true" + }, + { + "answerText": "Intégrance des mots en phrases", + "isCorrect": "false" + }, + { + "answerText": "Intégrance des phrases dans les paragraphes", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Marquage des parties de la parole", + "answerOptions": [ + { + "answerText": "Divise des phrases par leurs parties de la parole", + "isCorrect": "false" + }, + { + "answerText": "prend des mots togmentés et les étiquettes de leur part de la parole", + "isCorrect": "true" + }, + { + "answerText": "Phrases de diagrammes", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 34, + "title": "Tâches NLP: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Construisez un dictionnaire de la fréquence à laquelle les mots se reproduisent en utilisant:", + "answerOptions": [ + { + "answerText": "Dictionnaire de mots et d'expressions", + "isCorrect": "false" + }, + { + "answerText": "Fréquences de mots et de phrases", + "isCorrect": "true" + }, + { + "answerText": "Bibliothèque de mots et de phrases", + "isCorrect": "false" + } + ] + }, + { + "questionText": "N-grammes se réfèrent à", + "answerOptions": [ + { + "answerText": "Un texte peut être divisé en séquences de mots d'une longueur définie", + "isCorrect": "true" + }, + { + "answerText": "Un mot peut être divisé en séquences de caractères d'une longueur de jeu", + "isCorrect": "false" + }, + { + "answerText": "Un texte peut être divisé en paragraphes d'une longueur définie", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Analyse du sentiment", + "answerOptions": [ + { + "answerText": "analyse une phrase pour la positivité ou la négativité", + "isCorrect": "true" + }, + { + "answerText": "analyse une phrase pour sentimentalité", + "isCorrect": "false" + }, + { + "answerText": "analyse une phrase pour la tristesse", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 35, + "title": "NLP et traduction: quiz préalable", + "quiz": [ + { + "questionText": "Traduction naïf", + "answerOptions": [ + { + "answerText": "Traduit uniquement les mots", + "isCorrect": "true" + }, + { + "answerText": "Traduit la structure de la phrase", + "isCorrect": "false" + }, + { + "answerText": "Traduit le sentiment", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Un corpus * de textes fait référence à", + "answerOptions": [ + { + "answerText": "Un petit nombre de textes", + "isCorrect": "false" + }, + { + "answerText": "Un grand nombre de textes", + "isCorrect": "true" + }, + { + "answerText": "Un texte standard", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Si un modèle ML a suffisamment de traductions humaines pour construire un modèle sur, il peut", + "answerOptions": [ + { + "answerText": "Traductions abrégées", + "isCorrect": "false" + }, + { + "answerText": "Normaliser les traductions", + "isCorrect": "false" + }, + { + "answerText": "Améliorer la précision des traductions", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 36, + "title": "NLP et traduction: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "La bibliothèque de traduction de texte sous-jacente est:", + "answerOptions": [ + { + "answerText": "Google Translate", + "isCorrect": "true" + }, + { + "answerText": "Bing", + "isCorrect": "false" + }, + { + "answerText": "Un modèle ML personnalisé", + "isCorrect": "false" + } + ] + }, + { + "questionText": "utiliser `blob.translate` vous avez besoin:", + "answerOptions": [ + { + "answerText": "Une connexion Internet", + "isCorrect": "true" + }, + { + "answerText": "Un dictionnaire", + "isCorrect": "false" + }, + { + "answerText": "JavaScript", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Déterminer le sentiment, une approche ML serait de:", + "answerOptions": [ + { + "answerText": "Appliquez des techniques de régression pour générer manuellement des opinions et des scores et rechercher des modèles", + "isCorrect": "false" + }, + { + "answerText": "Appliquez des techniques de PNL pour générer manuellement des opinions et des scores et rechercher des modèles", + "isCorrect": "true" + }, + { + "answerText": "Appliquez des techniques de regroupement pour des opinions et des scores générés manuellement et rechercher des modèles", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 37, + "title": "NLP 4: quiz préalable", + "quiz": [ + { + "questionText": "Quelles informations pouvons-nous obtenir du texte écrit ou parlé par un humain?", + "answerOptions": [ + { + "answerText": "motifs et fréquences", + "isCorrect": "false" + }, + { + "answerText": "sentiment et signification", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Qu'est-ce que l'analyse du sentiment?", + "answerOptions": [ + { + "answerText": "Une étude sur la question de savoir si un héritage de famille a une valeur sentimentale", + "isCorrect": "false" + }, + { + "answerText": "Une méthode d'identification systématique, d'extraction, de quantification et d'étude des états affectifs et des informations subjectives", + "isCorrect": "true" + }, + { + "answerText": "La capacité de savoir si quelqu'un est triste ou heureux", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle question pourrait être répondue à l'aide d'un jeu de données de critiques hôteliers, de python et d'analyse de sentiment?", + "answerOptions": [ + { + "answerText": "Quels sont les mots et expressions les plus fréquemment utilisés dans les critiques?", + "isCorrect": "true" + }, + { + "answerText": "Quel hôtel a la meilleure piscine?", + "isCorrect": "false" + }, + { + "answerText": "Y a-t-il un service de voiturier dans cet hôtel?", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 38, + "title": "NLP 4: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Quelle est l'essence de la NLP?", + "answerOptions": [ + { + "answerText": "catégoriser la langue humaine en joyeux ou triste", + "isCorrect": "false" + }, + { + "answerText": "Interprétation de sens ou de sentiment sans avoir à avoir un homme humain le faire", + "isCorrect": "true" + }, + { + "answerText": "Trouver des valeurs aberrantes dans le sentiment et les examiner", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelles sont certaines choses que vous pourriez rechercher lors de la nettoyage des données?", + "answerOptions": [ + { + "answerText": "Personnages dans d'autres langues", + "isCorrect": "false" + }, + { + "answerText": "lignes vierges ou colonnes", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Il est important de comprendre vos données et ses fruits avant d'effectuer des opérations à ce sujet.", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 39, + "title": "NLP 5: quiz préalable", + "quiz": [ + { + "questionText": "Pourquoi est-il important de nettoyer les données avant de l'analyser?", + "answerOptions": [ + { + "answerText": "Certaines colonnes pourraient avoir des données manquantes ou incorrectes", + "isCorrect": "false" + }, + { + "answerText": "Les données en désordre peuvent conduire à de fausses conclusions sur le jeu de données", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Quel est un exemple d'une stratégie de nettoyage des données?", + "answerOptions": [ + { + "answerText": "Supprimer des colonnes / rangées qui ne sont pas utiles pour répondre à une question spécifique", + "isCorrect": "true" + }, + { + "answerText": "Se débarrasser des valeurs vérifiées qui ne correspondent pas à votre hypothèse", + "isCorrect": "false" + }, + { + "answerText": "Déplacement des valeurs aberrantes vers une table séparée et exécutant les calculs de cette table pour voir s'ils correspondent à", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Il peut être utile de classer les données à l'aide d'une colonne Tag.", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 40, + "title": "NLP 5: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Quel est l'objectif de l'ensemble de données?", + "answerOptions": [ + { + "answerText": "Pour voir combien de critiques négatives et positives il y a pour les hôtels à travers le monde", + "isCorrect": "false" + }, + { + "answerText": "Pour ajouter du sentiment et des colonnes qui vous aideront à choisir le meilleur hôtel", + "isCorrect": "true" + }, + { + "answerText": "Analyser pourquoi les gens laissent des critiques spécifiques", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quels sont les mots d'arrêt?", + "answerOptions": [ + { + "answerText": "Mots anglais communs qui ne changent pas le sentiment d'une phrase", + "isCorrect": "false" + }, + { + "answerText": "mots que vous pouvez supprimer pour accélérer l'analyse du sentiment", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Pour tester l'analyse du sentiment, assurez-vous qu'il correspond au score du critique pour le même examen.", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 41, + "title": "Série introduction à temps: quiz préalable", + "quiz": [ + { + "questionText": "La prévision de la série chronologique est utile", + "answerOptions": [ + { + "answerText": "Déterminer les coûts futurs", + "isCorrect": "false" + }, + { + "answerText": "Prédicter les prix futurs", + "isCorrect": "false" + }, + { + "answerText": "à la fois ce qui précède", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Une série chronologique est une séquence prise à:", + "answerOptions": [ + { + "answerText": "points successifs également espacés dans l'espace", + "isCorrect": "false" + }, + { + "answerText": "points successifs également espacés dans le temps", + "isCorrect": "true" + }, + { + "answerText": "points successifs également espacés dans l'espace et le temps", + "isCorrect": "false" + } + ] + }, + { + "questionText": "La série chronologique peut être utilisée dans:", + "answerOptions": [ + { + "answerText": "Prévision de tremblement de terre", + "isCorrect": "true" + }, + { + "answerText": "Vision informatique", + "isCorrect": "false" + }, + { + "answerText": "Analyse des couleurs", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 42, + "title": "Série introduction à TIME: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Tendances de la série chronologique sont", + "answerOptions": [ + { + "answerText": "mesure mesurable augmente et diminue au fil du temps", + "isCorrect": "true" + }, + { + "answerText": "La quantification diminue au fil du temps", + "isCorrect": "false" + }, + { + "answerText": "Des lacunes entre augmentations et diminution au fil du temps", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Les valeurs aberrantes sont", + "answerOptions": [ + { + "answerText": "Points proches de la variance de données standard", + "isCorrect": "false" + }, + { + "answerText": "Pointes loin de la variance de données standard", + "isCorrect": "true" + }, + { + "answerText": "Points dans la variance des données standard", + "isCorrect": "false" + } + ] + }, + { + "questionText": "La prévision de la série chronologique est la plus utile pour", + "answerOptions": [ + { + "answerText": "Econométrics", + "isCorrect": "true" + }, + { + "answerText": "Histoire", + "isCorrect": "false" + }, + { + "answerText": "Bibliothèques", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 43, + "title": "Série TIME ARIMA: quiz préalable", + "quiz": [ + { + "questionText": "Arima signifie", + "answerOptions": [ + { + "answerText": "Moyenne mobile intégrale autonome", + "isCorrect": "false" + }, + { + "answerText": "Action mobile intégrée autorégressive", + "isCorrect": "false" + }, + { + "answerText": "Moyenne mobile intégrée autorégresive", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Stationarité fait référence à", + "answerOptions": [ + { + "answerText": "Les données dont les attributs ne changent pas lors de la décalage", + "isCorrect": "false" + }, + { + "answerText": "Les données dont la distribution ne change pas lors de la décalage de temps", + "isCorrect": "true" + }, + { + "answerText": "Les données dont la distribution change lors de la décalage", + "isCorrect": "false" + } + ] + }, + { + "questionText": "différenciation", + "answerOptions": [ + { + "answerText": "Stabilise la tendance et la saisonnalité", + "isCorrect": "false" + }, + { + "answerText": "Exacerbe la tendance et la saisonnalité", + "isCorrect": "false" + }, + { + "answerText": "Élimine la tendance et la saisonnalité", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 44, + "title": "Série TIME ARIMA: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Arima est utilisé pour créer un modèle adapté à la forme spéciale des données de la série chronologique", + "answerOptions": [ + { + "answerText": "aussi plat que possible", + "isCorrect": "false" + }, + { + "answerText": "aussi étroitement que possible", + "isCorrect": "true" + }, + { + "answerText": "via ScatterPlots", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Utilisez Sarimax à", + "answerOptions": [ + { + "answerText": "Gérer les modèles d'ARIMA saisonniers", + "isCorrect": "true" + }, + { + "answerText": "Gérer des modèles spéciaux Arima", + "isCorrect": "false" + }, + { + "answerText": "Gérer les modèles statistiques ARIMA", + "isCorrect": "false" + } + ] + }, + { + "questionText": " `La validation` de la promenade implique ", + "answerOptions": [ + { + "answerText": "Réévaluer un modèle progressivement tel qu'il est validé", + "isCorrect": "false" + }, + { + "answerText": "Ré-entraînant un modèle progressivement tel qu'il est validé", + "isCorrect": "true" + }, + { + "answerText": "Ré-configurez un modèle progressivement tel qu'il est validé", + "isCorrect": "false" + } + ] + } + ] + }, { + "id": 45, + "title": "Renforcement 1: quiz préalable", + "quiz": [ + { + "questionText": "Qu'est-ce que l'apprentissage du renforcement?", + "answerOptions": [ + { + "answerText": "Enseigner à quelqu'un quelque chose encore et encore jusqu'à ce qu'ils comprennent", + "isCorrect": "false" + }, + { + "answerText": "Une technique d'apprentissage qui déchiffre le comportement optimal d'un agent dans certains environnements en exécutant de nombreuses expériences", + "isCorrect": "true" + }, + { + "answerText": "Comprendre comment exécuter plusieurs expériences à la fois", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Qu'est-ce qu'une politique?", + "answerOptions": [ + { + "answerText": "une fonction qui renvoie l'action à tout état donné", + "isCorrect": "true" + }, + { + "answerText": "Un document qui vous dit si vous pouvez renvoyer ou non un article", + "isCorrect": "false" + }, + { + "answerText": "Une fonction utilisée à des fins aléatoires", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Une fonction de récompense renvoie un score pour chaque état d'environnement.", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "true" + }, + { + "answerText": "Faux", + "isCorrect": "false" + } + ] + } + ] + }, { + "id": 46, + "title": "Renforcement 1: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Qu'est-ce que q-apprentissage?", + "answerOptions": [ + { + "answerText": "Un mécanisme d'enregistrement de la \"bonté\" de chaque État", + "isCorrect": "false" + }, + { + "answerText": "Un algorithme où la politique est définie par une table Q", + "isCorrect": "false" + }, + { + "answerText": "Les deux ci-dessus", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Pour quelles valeurs une table Q correspond à la stratégie de marche aléatoire?", + "answerOptions": [ + { + "answerText": "toutes les valeurs égales", + "isCorrect": "true" + }, + { + "answerText": "-0,25", + "isCorrect": "false" + }, + { + "answerText": "toutes les valeurs différentes", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Il valait mieux utiliser l'exploration que l'exploitation pendant le processus d'apprentissage de notre leçon.", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "false" + }, + { + "answerText": "Faux", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 47, + "title": "Renforcement 2: quiz préalable", + "quiz": [ + { + "questionText": "Les échecs et les jeux sont des jeux avec des états continus.", + "answerOptions": [ + { + "answerText": "vrai", + "isCorrect": "false" + }, + { + "answerText": "Faux", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Quel est le problème de la cartpole?", + "answerOptions": [ + { + "answerText": "Un processus d'élimination des valeurs aberrantes", + "isCorrect": "false" + }, + { + "answerText": "Une méthode d'optimisation de votre panier", + "isCorrect": "false" + }, + { + "answerText": "Une version simplifiée d'équilibrage", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Quel outil pouvons-nous utiliser pour jouer à différents scénarios d'états potentiels dans un jeu?", + "answerOptions": [ + { + "answerText": "Devinez et chèque", + "isCorrect": "false" + }, + { + "answerText": "Environnements de simulation", + "isCorrect": "true" + }, + { + "answerText": "Test de transition de l'état", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 48, + "title": "Renforcement 2: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Où définissons-nous toutes les actions possibles dans un environnement?", + "answerOptions": [ + { + "answerText": "Méthodes", + "isCorrect": "false" + }, + { + "answerText": "espace d'action", + "isCorrect": "true" + }, + { + "answerText": "Liste d'action", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle paire avez-nous utilisée comme valeur de la clé de dictionnaire?", + "answerOptions": [ + { + "answerText": "(état, action) comme clé de la table Q-Table comme valeur", + "isCorrect": "true" + }, + { + "answerText": "State comme clé, action en tant que valeur", + "isCorrect": "false" + }, + { + "answerText": "La valeur de la fonction QValues ​​est la clé, l'action en tant que valeur", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quels sont les hyperparamètres que nous avons utilisés pendant q-apprentissage?", + "answerOptions": [ + { + "answerText": "Valeur de la table Q, récompense actuelle, action aléatoire", + "isCorrect": "false" + }, + { + "answerText": "Taux d'apprentissage, facteur de réduction, facteur d'exploration / d'exploitation", + "isCorrect": "true" + }, + { + "answerText": "Récompenses cumulatives, taux d'apprentissage, facteur d'exploration", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 49, + "title": "Applications du monde réel: quiz préalable", + "quiz": [ + { + "questionText": "Quel est un exemple d'application ML dans l'industrie des finances?", + "answerOptions": [ + { + "answerText": "Personnaliser le voyage client à l'aide de NLP", + "isCorrect": "false" + }, + { + "answerText": "Gestion de la richesse à l'aide de la régression linéaire", + "isCorrect": "true" + }, + { + "answerText": "Gestion de l'énergie à l'aide de séries chronologiques", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle technique ML peut utiliser les hôpitaux pour gérer la réadmission?", + "answerOptions": [ + { + "answerText": "Clustering", + "isCorrect": "true" + }, + { + "answerText": "Série temporelle", + "isCorrect": "false" + }, + { + "answerText": "NLP", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quel est un exemple d'utilisation des séries chronologiques pour la gestion de l'énergie?", + "answerOptions": [ + { + "answerText": "Animaux de détection de mouvement", + "isCorrect": "false" + }, + { + "answerText": "Parkings intelligents", + "isCorrect": "true" + }, + { + "answerText": "Suivi des incendies de forêt", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 50, + "title": "Applications du monde réel: quiz de validation des connaissances", + "quiz": [ + { + "questionText": "Quelle technique ML peut être utilisée pour détecter la fraude par carte de crédit?", + "answerOptions": [ + { + "answerText": "régression", + "isCorrect": "false" + }, + { + "answerText": "Clustering", + "isCorrect": "true" + }, + { + "answerText": "NLP", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quelle technique ML est illustrée dans la gestion forestière?", + "answerOptions": [ + { + "answerText": "Apprentissage du renforcement", + "isCorrect": "true" + }, + { + "answerText": "Série temporelle", + "isCorrect": "false" + }, + { + "answerText": "NLP", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Quel est un exemple d'application ML dans l'industrie des soins de santé?", + "answerOptions": [ + { + "answerText": "Prédire le comportement des étudiants en utilisant la régression", + "isCorrect": "false" + }, + { + "answerText": "Gestion des essais cliniques à l'aide de classificateurs", + "isCorrect": "true" + }, + { + "answerText": "Sensation de mouvement des animaux utilisant des classificateurs", + "isCorrect": "false" + } + ] + } + ] + } + ] +}] \ No newline at end of file diff --git a/quiz-app/src/assets/translations/index.js b/quiz-app/src/assets/translations/index.js index e4abf6eb..85931b8b 100644 --- a/quiz-app/src/assets/translations/index.js +++ b/quiz-app/src/assets/translations/index.js @@ -1,12 +1,14 @@ // index.js import en from './en.json'; import tr from './tr.json'; +import fr from './fr.json'; //export const defaultLocale = 'en'; const messages = { en: en[0], tr: tr[0], + fr: fr[0] }; export default messages; From 4dab6027cc9af7640a5403f6d8f77d1ffcae106c Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Fri, 16 Jul 2021 21:18:52 +0800 Subject: [PATCH 085/228] Update README.zh-cn.md --- 2-Regression/4-Logistic/translations/README.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-Regression/4-Logistic/translations/README.zh-cn.md b/2-Regression/4-Logistic/translations/README.zh-cn.md index 52453de5..b4397856 100644 --- a/2-Regression/4-Logistic/translations/README.zh-cn.md +++ b/2-Regression/4-Logistic/translations/README.zh-cn.md @@ -120,7 +120,7 @@ Seaborn提供了一些巧妙的方法来可视化你的数据。例如,你可 sns.swarmplot(x="Color", y="Item Size", data=new_pumpkins) ``` - ![分类散点图可视化数据](images/swarm.png) + ![分类散点图可视化数据](../images/swarm.png) ### 小提琴图 @@ -133,7 +133,7 @@ Seaborn提供了一些巧妙的方法来可视化你的数据。例如,你可 kind="violin", data=new_pumpkins) ``` - ![小提琴图](images/violin.png) + ![小提琴图](../images/violin.png) ✅ 尝试使用其他变量创建此图和其他Seaborn图。 From 580cfc314c2348e52849a90be12d6b9e74decd5e Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Fri, 16 Jul 2021 10:14:21 -0400 Subject: [PATCH 086/228] small link format error --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index e762c7f6..0d07a5e8 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -102,7 +102,7 @@ Esquisser, sur papier ou à l'aide d'une application en ligne comme [Excalidraw] ## Révision et auto-apprentissage -Pour en savoir plus sur la façon dont vous pouvez utiliser les algorithmes de ML dans le cloud, suivez ce [Parcours d'apprentissage](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine- learning/?WT.mc_id=academic-15963-cxa). +Pour en savoir plus sur la façon dont vous pouvez utiliser les algorithmes de ML dans le cloud, suivez ce [Parcours d'apprentissage](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-15963-cxa). ## Devoir From c67123ad7322722cfab87a0666ef8c5417f3c9aa Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Fri, 16 Jul 2021 10:23:19 -0400 Subject: [PATCH 087/228] linking assignment --- 1-Introduction/1-intro-to-ML/translations/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.zh-cn.md b/1-Introduction/1-intro-to-ML/translations/README.zh-cn.md index 8693ff20..45ec79be 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.zh-cn.md +++ b/1-Introduction/1-intro-to-ML/translations/README.zh-cn.md @@ -104,4 +104,4 @@ ## 任务 -[启动并运行](../assignment.md) +[启动并运行](assignment.zh-cn.md) From d07d80730ddc9c8eda3dc294be54fb51130f5e24 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Fri, 16 Jul 2021 10:25:47 -0400 Subject: [PATCH 088/228] linking Chinese language assignments --- .../translations/README.zh-cn.md | 2 +- .../3-fairness/translations/README.zh-cn.md | 22 +++++++++---------- .../translations/README.zh-cn.md | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/1-Introduction/2-history-of-ML/translations/README.zh-cn.md b/1-Introduction/2-history-of-ML/translations/README.zh-cn.md index 51e66ecd..8ca7e690 100644 --- a/1-Introduction/2-history-of-ML/translations/README.zh-cn.md +++ b/1-Introduction/2-history-of-ML/translations/README.zh-cn.md @@ -113,4 +113,4 @@ Alan Turing,一个真正杰出的人,[在2019年被公众投票选出](https ## 任务 -[创建时间线](../assignment.md) +[创建时间线](assignment.zh-cn.md) diff --git a/1-Introduction/3-fairness/translations/README.zh-cn.md b/1-Introduction/3-fairness/translations/README.zh-cn.md index 3b75ddab..22204544 100644 --- a/1-Introduction/3-fairness/translations/README.zh-cn.md +++ b/1-Introduction/3-fairness/translations/README.zh-cn.md @@ -89,11 +89,11 @@ ✅ **讨论**:重温一些例子,看看它们是否显示出不同的危害。 -| | 分配 | 服务质量 | 刻板印象 | 诋毁 | 代表性过高或过低 | -| ----------------------- | :--------: | :----------------: | :----------: | :---------: | :----------------------------: | -| 自动招聘系统 | x | x | x | | x | -| 机器翻译 | | | | | | -| 照片加标签 | | | | | | +| | 分配 | 服务质量 | 刻板印象 | 诋毁 | 代表性过高或过低 | +| ------------ | :---: | :------: | :------: | :---: | :--------------: | +| 自动招聘系统 | x | x | x | | x | +| 机器翻译 | | | | | | +| 照片加标签 | | | | | | ## 检测不公平 @@ -138,11 +138,11 @@ ✅ 在以后关于聚类的课程中,你将看到如何在代码中构建这个“混淆矩阵” -| | 假阳性率 | 假阴性率 | 数量 | -| ---------- | ------------------- | ------------------- | ----- | -| 女性 | 0.37 | 0.27 | 54032 | -| 男性 | 0.31 | 0.35 | 28620 | -| 未列出性别 | 0.33 | 0.31 | 1266 | +| | 假阳性率 | 假阴性率 | 数量 | +| ---------- | -------- | -------- | ----- | +| 女性 | 0.37 | 0.27 | 54032 | +| 男性 | 0.31 | 0.35 | 28620 | +| 未列出性别 | 0.33 | 0.31 | 1266 | 这个表格告诉我们几件事。首先,我们注意到数据中的未列出性别的人相对较少。数据是有偏差的,所以你需要小心解释这些数字。 @@ -211,4 +211,4 @@ ## 任务 -[探索Fairlearn](../assignment.md) +[探索Fairlearn](assignment.zh-cn.md) diff --git a/1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md b/1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md index d01d5bbf..373602f3 100644 --- a/1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md +++ b/1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md @@ -54,7 +54,7 @@ - **训练**。这部分数据集适合你的模型进行训练。这个集合构成了原始数据集的大部分。 - **测试**。测试数据集是一组独立的数据,通常从原始数据中收集,用于确认构建模型的性能。 -- **验证**。验证集是一个较小的独立示例组,用于调整模型的超参数或架构,以改进模型。根据你的数据大小和你提出的问题,你可能不需要构建第三组(正如我们在[时间序列预测](../../7-TimeSeries/1-Introduction/README.md)中所述)。 +- **验证**。验证集是一个较小的独立示例组,用于调整模型的超参数或架构,以改进模型。根据你的数据大小和你提出的问题,你可能不需要构建第三组(正如我们在[时间序列预测](../../../7-TimeSeries/1-Introduction/README.md)中所述)。 ## 建立模型 @@ -105,4 +105,4 @@ ## 任务 -[采访一名数据科学家](../assignment.md) +[采访一名数据科学家](assignment.zh-cn.md) From 1ac779f41cfff29cca56e6093b651ada4bef4025 Mon Sep 17 00:00:00 2001 From: Colin Zang Date: Fri, 16 Jul 2021 22:44:19 +0800 Subject: [PATCH 089/228] Update README.zh-cn.md --- translations/README.zh-cn.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/translations/README.zh-cn.md b/translations/README.zh-cn.md index f46a50d6..dfe0760c 100644 --- a/translations/README.zh-cn.md +++ b/translations/README.zh-cn.md @@ -29,11 +29,11 @@ - 从课前测验开始 - 阅读课程内容,完成所有的活动,在每次 knowledge check 时暂停并思考 -- 我们建议你基于理解来创建项目(而不是仅仅跑一遍示例代码)示例代码的位置在每一个项目的 `/solution` 文件夹中。 +- 我们建议你基于理解来创建项目(而不是仅仅跑一遍示例代码)。示例代码的位置在每一个项目的 `/solution` 文件夹中。 - 进行课后测验 - 完成课程挑战 - 完成作业 -- 一节课完成后, 访问[讨论版](https://github.com/microsoft/ML-For-Beginners/discussions),通过天蝎相应的 PAT Rubric (课程目标)来深化自己的学习成果。你也可以回应其它的 PAT,这样我们可以一起学习。 +- 一节课完成后, 访问[讨论版](https://github.com/microsoft/ML-For-Beginners/discussions),通过填写相应的 PAT Rubric (课程目标) 来深化自己的学习成果。你也可以回应其它的 PAT,这样我们可以一起学习。 > 如果希望进一步学习,我们推荐跟随 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) 的模块和学习路径。 @@ -52,7 +52,7 @@ 此课程基于两个教学原则:学生应该上手进行**项目实践**,并完成**频繁的测验**。 此外,为了使整个课程更具有整体性,课程们有一个共同的**主题**。 -通过确保课程内容与项目强相关,我们让学习过程对学生更具吸引力,概念的学习也被深化了。难度较低的课前测验可以吸引学生学习课程,课后的第二次测验进一步重复了课堂中的概念。该课程被设计地灵活有趣,可以一次性全部学习,或者分开来一部分一部分学习。这些项目由浅入深,从第一周的的小项目开始,在第十二周的周期结束时变得较为复杂。本课程还包括一个关于机器学习实际应用的后记,可用作额外学分或讨论的基础。 +通过确保课程内容与项目强相关,我们让学习过程对学生更具吸引力,概念的学习也被深化了。难度较低的课前测验可以吸引学生学习课程,而课后的第二次测验也进一步重复了课堂中的概念。该课程被设计地灵活有趣,可以一次性全部学习,或者分开来一部分一部分学习。这些项目由浅入深,从第一周的小项目开始,在第十二周结束时变得较为复杂。本课程还包括一个关于机器学习实际应用的后记,可用作额外学分或进一步讨论的基础。 > 在这里,你可以找到我们的[行为守则](../CODE_OF_CONDUCT.md),[对项目作出贡献](../CONTRIBUTING.md)以及[翻译](../TRANSLATIONS.md)指南。我们欢迎各位提出有建设性的反馈! From 0e93c335f31adf87e090f5362103e165f751ed32 Mon Sep 17 00:00:00 2001 From: Colin Zang Date: Fri, 16 Jul 2021 23:21:17 +0800 Subject: [PATCH 090/228] Create README.zh-cn.md --- 8-Reinforcement/translations/README.zh-cn.md | 53 ++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 8-Reinforcement/translations/README.zh-cn.md diff --git a/8-Reinforcement/translations/README.zh-cn.md b/8-Reinforcement/translations/README.zh-cn.md new file mode 100644 index 00000000..25a53cfc --- /dev/null +++ b/8-Reinforcement/translations/README.zh-cn.md @@ -0,0 +1,53 @@ +# 强化学习简介 + +强化学习 (RL, Reinforcement Learning),是基本的机器学习范式之一(仅次于监督学习 (Supervised Learning) 和无监督学习(Unsupervised Learning))。强化学习和「策略」息息相关:它应当产生正确的策略,或从错误的策略中学习。 + +假设有一个模拟环境,比如说股市。当我们用某一个规则来限制这个市场时,会发生什么?这个规则(或者说策略)有积极或消极的影响吗?如果它的影响是正面的,我们需要从这种_负面强化_中学习,改变我们的策略。如果它的影响是正面的,我们需要在这种_积极强化_的基础上再进一步发展。 + +![彼得和狼](../images/peter.png) + +> 彼得和他的朋友们得从饥饿的狼这儿逃掉!图片来自 [Jen Looper](https://twitter.com/jenlooper) + +## 本节主题:彼得与狼(俄罗斯) + +[彼得与狼](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) 是俄罗斯作曲家[谢尔盖·普罗科菲耶夫](https://en.wikipedia.org/wiki/Sergei_Prokofiev)创作的音乐童话。它讲述了彼得勇敢地走出家门,到森林中央追逐狼的故事。在本节中,我们将训练帮助 Peter 追狼的机器学习算法: + +- **探索**周边区域并构建最佳地图 +- **学习**如何使用滑板并在滑板上保持平衡,以便更快地移动。 + +[![彼得和狼](https://img.youtube.com/vi/Fmi5zHg4QSM/0.jpg)](https://www.youtube.com/watch?v=Fmi5zHg4QSM) + +> 🎥 点击上面的图片,听普罗科菲耶夫的《彼得与狼》 + +## 强化学习 + +在前面的部分中,您已经看到了两类机器学习问题的例子: + +- **监督**,在有已经标记的,暗含解决方案的数据集的情况下。 [分类](../../4-Classification/README.md) 和 [回归](../../2-Regression/README.md) 是监督学习任务。 +- **无监督**,在我们没有标记训练数据集的情况下。无监督学习的主要例子是 [聚类](../../5-Clustering/README.md)。 + +在本节中,我们将学习一类新的机器学习问题,它不需要已经标记的训练数据 —— 比如这两类问题: + +- **[半监督学习](https://wikipedia.org/wiki/Semi-supervised_learning)**,在我们有很多未标记的、可以用来预训练模型的数据的情况下。 +- **[强化学习](https://wikipedia.org/wiki/Reinforcement_learning)**,在这种方法中,机器通过在某种模拟环境中进行实验来学习最佳策略。 + +### 示例 - 电脑游戏 + +假设我们要教会计算机玩某一款游戏 —— 例如国际象棋,或者 [超级马里奥](https://wikipedia.org/wiki/Super_Mario)。为了让计算机学会玩游戏,我们需要它预测在每个游戏「状态」下,它应该做什么「操作」。虽然这看起来像是一个分类问题,但事实并非如此,因为我们并没有像这样的,包含「状态」和状态对应的「操作」的数据集。我们只有一些有限的数据,比如来自国际象棋比赛的记录,或者是玩家玩超级马里奥的记录。这些数据可能无法涵盖足够多的「状态」。 + +不同于这种需要大量现有的数据的方法,**强化学习**是基于*让计算机多次玩*并观察玩的结果的想法。因此,要使用强化学习方法,我们需要两个要素: + +- **环境**和**模拟器**,它们允许我们多次玩游戏。该模拟器应该定义所有游戏规则,以及可能的状态和动作。 + +- **奖励函数**,它会告诉我们每个每一步(或者每局游戏)的表现如何。 + +其他类型的机器学习和强化学习 (RL) 之间的主要区别在于,在 RL 中,我们通常在完成游戏之前,都不知道我们是赢还是输。因此,我们不能说单独的某个动作是不是「好」的 - 我们只会在游戏结束时获得奖励。我们的目标是设计算法,使我们能够在这种不确定的条件下训练模型。我们将了解一种称为 **Q-learning** 的 RL 算法。 + +## 课程 + +1.【强化学习和 Q-Learning 介绍】(1-QLearning/README.md) +2.【使用 Gym 模拟环境】(2-Gym/README.md) + +## 本文作者 + +“强化学习简介” 由 [Dmitry Soshnikov](http://soshnikov.com) 用 ♥️ 编写 \ No newline at end of file From 7240be1e93f701d0c4d1d94d87113febf183fae1 Mon Sep 17 00:00:00 2001 From: manusquall Date: Sat, 17 Jul 2021 01:59:53 +0000 Subject: [PATCH 091/228] stop at 43 --- package.json | 4 +- quiz-app/src/assets/translations/fr.json | 236 +++++++++++------------ 2 files changed, 120 insertions(+), 120 deletions(-) diff --git a/package.json b/package.json index b64c6bf1..3b5c347c 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "Machine Learning for Beginners - A Curriculum", "main": "index.js", "scripts": { - "convert": "node_modules/.bin/docsify-to-pdf" - }, + "convert": "node_modules/.bin/docsify-to-pdf" + }, "repository": { "type": "git", "url": "git+https://github.com/microsoft/ML-For-Beginners.git" diff --git a/quiz-app/src/assets/translations/fr.json b/quiz-app/src/assets/translations/fr.json index ec8111c0..3ec4ec9e 100644 --- a/quiz-app/src/assets/translations/fr.json +++ b/quiz-app/src/assets/translations/fr.json @@ -1,18 +1,18 @@ [ { - "title": "Machine Learning pour les débutants: quiz", + "title": "Machine Learning pour les Débutants: Quiz", "complete": "Félicitations, vous avez terminé le quiz!", "error": "Désolé, essayez à nouveau", "quizzes": [ { "id": 1, - "title": "Introduction au machine learning: quiz préalable", + "title": "Introduction au machine learning: Quiz préalable", "quiz": [ { "questionText": "Les applications de machine learning sont toutes autour de nous", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -59,7 +59,7 @@ }, { "id": 2, - "title": "Introduction au machine learning: quiz de validation des connaissances", + "title": "Introduction au machine learning: Quiz de validation des connaissances", "quiz": [ { "questionText": "Les algorithmes de machine learning sont destinés à simuler", @@ -116,7 +116,7 @@ }, { "id": 3, - "title": "Historique du machine learning: quiz préalable", + "title": "Historique du machine learning: Quiz préalable", "quiz": [ { "questionText": "Quand approximativement le terme 'intelligence artificielle' a-t-il été inventé ?", @@ -173,7 +173,7 @@ }, { "id": 4, - "title": "Historique du machine learning: quiz de validation des connaissances", + "title": "Historique du machine learning: Quiz de validation des connaissances", "quiz": [ { "questionText": "Qu'est-ce qu'un exemple de système d'IA \" Scruffy \" AI?", @@ -230,7 +230,7 @@ }, { "id": 5, - "title": "L'équité et machine learning: quiz préalable", + "title": "L'équité et le machine learning: Quiz préalable", "quiz": [ { "questionText": "L'injustice dans le machine learning peut arriver", @@ -287,7 +287,7 @@ }, { "id": 6, - "title": "Equité et machine learning: quiz de validation des connaissances", + "title": "L'équité et le machine learning: Quiz de validation des connaissances", "quiz": [ { "questionText": "L'injustice dans un modèle peut être causée par", @@ -324,10 +324,10 @@ ] }, { - "questionText": "FairLearn est un paquet qui peut", + "questionText": "Fairlearn est un paquet qui peut", "answerOptions": [ { - "answerText": "Comparez plusieurs modèles en utilisant des métriques d'équité et de performance", + "answerText": "Comparer plusieurs modèles en utilisant des métriques d'équité et de performance", "isCorrect": "true" }, { @@ -335,7 +335,7 @@ "isCorrect": "false" }, { - "answerText": "Aidez-vous à décider de ce qui est juste et ce qui n'est pas", + "answerText": "Vous aider à décider de ce qui est juste et ce qui ne l'est pas", "isCorrect": "false" } ] @@ -344,7 +344,7 @@ }, { "id": 7, - "title": "Outils et techniques: quiz préalable", + "title": "Outils et techniques: Quiz préalable", "quiz": [ { "questionText": "Lors de la construction d'un modèle, vous devriez:", @@ -401,7 +401,7 @@ }, { "id": 8, - "title": "Outils et techniques: quiz de validation des connaissances", + "title": "Outils et techniques: Quiz de validation des connaissances", "quiz": [ { "questionText": "Vous devez visualiser vos données car", @@ -458,7 +458,7 @@ }, { "id": 9, - "title": "Introduction à la régression: quiz préalable", + "title": "Introduction à la régression: Quiz préalable", "quiz": [ { "questionText": "Laquelle de ces variables est une variable numérique?", @@ -515,7 +515,7 @@ }, { "id": 10, - "title": "Introduction à la régression: quiz de validation des connaissances", + "title": "Introduction à la régression: Quiz de validation des connaissances", "quiz": [ { "questionText": "Si la précision de la formation du modèle d'apprentissage de votre machine est de 95% et que la précision des tests est de 30%, quel type de condition est appelé?", @@ -572,7 +572,7 @@ }, { "id": 11, - "title": "Préparer et visualiser des données pour la régression: quiz préalable", + "title": "Préparer et visualiser des données pour la régression: Quiz préalable", "quiz": [ { "questionText": "Lequel de ces modules Python est utilisé pour tracer la visualisation des données?", @@ -629,7 +629,7 @@ }, { "id": 12, - "title": "Préparez et visualisez des données pour la régression: quiz de validation des connaissances", + "title": "Préparer et visualiser des données pour la régression: Quiz de validation des connaissances", "quiz": [ { "questionText": "Lequel de ces extraits de code est correct d'après cette leçon, si vous souhaitez vérifier la présence de valeurs manquantes dans votre ensemble de données ? Supposons que l'ensemble de données soit stocké dans une variable nommée \"ensemble de données\", qui est un objet Pandas DataFrame.", @@ -686,7 +686,7 @@ }, { "id": 13, - "title": "régression linéaire et polynomiale: quiz préalable", + "title": "Régression linéaire et polynomiale: Quiz préalable", "quiz": [ { "questionText": "Matplotlib est un", @@ -743,7 +743,7 @@ }, { "id": 14, - "title": "Régression linéaire et polynomiale: quiz de validation des connaissances", + "title": "Régression linéaire et polynomiale: Quiz de validation des connaissances", "quiz": [ { "questionText": "Si vos données sont non linéaires, essayez un type ___ de régression", @@ -800,7 +800,7 @@ }, { "id": 15, - "title": "Régression logistique: quiz préalable", + "title": "Régression logistique: Quiz préalable", "quiz": [ { "questionText": "Utilisez la régression logistique à prédire", @@ -857,7 +857,7 @@ }, { "id": 16, - "title": "Régression logistique: quiz de validation des connaissances", + "title": "Régression logistique: Quiz de validation des connaissances", "quiz": [ { "questionText": "Sea-né est un type de", @@ -913,7 +913,7 @@ ] }, { "id": 17, - "title": "Construire une application Web: quiz préalable", + "title": "Construire une application Web: Quiz préalable", "quiz": [ { "questionText": "Qu'est-ce que OnNX signifie?", @@ -970,7 +970,7 @@ }, { "id": 18, - "title": "Construire une application Web: quiz de validation des connaissances", + "title": "Construire une application Web: Quiz de validation des connaissances", "quiz": [ { "questionText": "Quels sont les outils que nous pouvons utiliser pour héberger un modèle pré-formé sur le Web à l'aide de Python?", @@ -1027,7 +1027,7 @@ }, { "id": 19, - "title": "Classification 1: quiz préalable", + "title": "Classification 1: Quiz préalable", "quiz": [ { "questionText": "La classification est une forme d'apprentissage supervisé qui a beaucoup en commun avec", @@ -1084,7 +1084,7 @@ }, { "id": 20, - "title": "Classification 1: quiz de validation des connaissances", + "title": "Classification 1: Quiz de validation des connaissances", "quiz": [ { "questionText": "Qu'est-ce qu'une question multiclasse?", @@ -1107,7 +1107,7 @@ "questionText": "Il est important de nettoyer des données récurrentes ou inutiles pour aider vos classificateurs à résoudre votre problème.", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -1137,13 +1137,13 @@ }, { "id": 21, - "title": "Classification 2: quiz préalable", + "title": "Classification 2: Quiz préalable", "quiz": [ { "questionText": "Les données équilibrées et propres ont produit les meilleurs résultats de la classification", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -1190,7 +1190,7 @@ }, { "id": 22, - "title": "Classification 2: quiz de validation des connaissances", + "title": "Classification 2: Quiz de validation des connaissances", "quiz": [ { "questionText": "Qu'est-ce qu'un \"solveur\" ?", @@ -1247,7 +1247,7 @@ }, { "id": 23, - "title": "Classification 3: quiz préalable", + "title": "Classification 3: Quiz préalable", "quiz": [ { "questionText": "Un bon classificateur initial à essayer est:", @@ -1304,7 +1304,7 @@ }, { "id": 24, - "title": "Classification 3: quiz de validation des connaissances", + "title": "Classification 3: Quiz de validation des connaissances", "quiz": [ { "questionText": "Les classificateurs de support-vectoriel peuvent être utilisés pour", @@ -1361,7 +1361,7 @@ }, { "id": 25, - "title": "Classification 4: quiz préalable", + "title": "Classification 4: Quiz préalable", "quiz": [ { "questionText": "Les systèmes de recommandation peuvent être utilisés pour", @@ -1384,7 +1384,7 @@ "questionText": "L'intégration d'un modèle dans une application Web l'aide à être hors ligne", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -1414,7 +1414,7 @@ }, { "id": 26, - "title": "Classification 4: quiz de validation des connaissances", + "title": "Classification 4: Quiz de validation des connaissances", "quiz": [ { "questionText": "L'application Nettron vous aide:", @@ -1471,7 +1471,7 @@ }, { "id": 27, - "title": "Introduction au clustering: quiz préalable", + "title": "Introduction au Clustering: Quiz préalable", "quiz": [ { "questionText": "Un exemple de vie réel de regroupement serait", @@ -1508,18 +1508,18 @@ ] }, { - "questionText": "La clustering est un type de:", + "questionText": "La Clustering est un type :", "answerOptions": [ { - "answerText": "Apprentissage supervisé", + "answerText": "D'apprentissage supervisé", "isCorrect": "false" }, { - "answerText": "L'apprentissage non supervisé", + "answerText": "D'apprentissage non supervisé", "isCorrect": "true" }, { - "answerText": "Apprentissage du renforcement", + "answerText": "D'apprentissage de renforcement", "isCorrect": "false" } ] @@ -1528,30 +1528,30 @@ }, { "id": 28, - "title": "Introduction au clustering: quiz de validation des connaissances", + "title": "Introduction au Clustering: Quiz de validation des connaissances", "quiz": [ { - "questionText": "La géométrie euclidienne est arrangée", + "questionText": "La géométrie euclidienne est disposée le long", "answerOptions": [ { - "answerText": "Planes", + "answerText": "De plans", "isCorrect": "true" }, { - "answerText": "Courbes", + "answerText": "De courbes", "isCorrect": "false" }, { - "answerText": "Sphères", + "answerText": "De sphères", "isCorrect": "false" } ] }, { - "questionText": "La densité de vos données de clustering est liée à sa", + "questionText": "La densité de vos données de clustering est liée à son / sa", "answerOptions": [ { - "answerText": "bruit", + "answerText": "Bruit", "isCorrect": "true" }, { @@ -1568,15 +1568,15 @@ "questionText": "L'algorithme de regroupement le plus connu est", "answerOptions": [ { - "answerText": "k-signifie", + "answerText": "k-means", "isCorrect": "true" }, { - "answerText": "K-Middle", + "answerText": "K-middle", "isCorrect": "false" }, { - "answerText": "K-Mart", + "answerText": "K-mart", "isCorrect": "false" } ] @@ -1585,7 +1585,7 @@ }, { "id": 29, - "title": "K-Means Clustering: quiz préalable", + "title": "K-Means Clustering: Quiz préalable", "quiz": [ { "questionText": "K-Means est dérivé de:", @@ -1605,7 +1605,7 @@ ] }, { - "questionText": "Une bonne score de silhouette signifie:", + "questionText": "Un bon score de silhouette signifie:", "answerOptions": [ { "answerText": "Les grappes sont bien séparées et bien définies", @@ -1642,13 +1642,13 @@ }, { "id": 30, - "title": "K-olth regroupement: quiz de validation des connaissances", + "title": "K-Means Clustering: Quiz de validation des connaissances", "quiz": [ { "questionText": "Un diagramme de Voronoi montre:", "answerOptions": [ { - "answerText": "Variance d'une cluster", + "answerText": "Une variance d'une cluster", "isCorrect": "false" }, { @@ -1682,7 +1682,7 @@ "questionText": "en utilisant k-moyen, vous devez d'abord déterminer la valeur de 'k'", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -1695,7 +1695,7 @@ }, { "id": 31, - "title": "Intro to NLP: quiz préalable", + "title": "Intro aux NLP: Quiz préalable", "quiz": [ { "questionText": "Que signifie NLP pour ces leçons?", @@ -1732,14 +1732,14 @@ ] }, { - "questionText": "Le test de Turing 'd'Alan Turing a essayé de déterminer si un ordinateur était", + "questionText": "Le test Turing d'Alan Turing a essayé de déterminer si un ordinateur était", "answerOptions": [ { - "answerText": "Inmistingtilisable d'un humain", + "answerText": "indiscernable d'un humain", "isCorrect": "false" }, { - "answerText": "Penser", + "answerText": "Pensif", "isCorrect": "false" }, { @@ -1752,7 +1752,7 @@ }, { "id": 32, - "title": "Intro to NLP: quiz de validation des connaissances", + "title": "Intro aux NLP: Quiz de validation des connaissances", "quiz": [ { "questionText": "Joseph Weizenbaum a inventé le bot", @@ -1775,7 +1775,7 @@ "questionText": "Un bot conversationnel donne une sortie basée sur", "answerOptions": [ { - "answerText": "Choisir des choix prédéfinis au hasard", + "answerText": "Un choix de choix prédéfinis au hasard", "isCorrect": "false" }, { @@ -1789,14 +1789,14 @@ ] }, { - "questionText": "Comment feriez-vous le bot plus efficace?", + "questionText": "Comment feriez-vous pour que le bot soit plus efficace?", "answerOptions": [ { "answerText": "En le demandant plus de questions.", "isCorrect": "false" }, { - "answerText": "En l'alignant plus de données et de la formation en conséquence", + "answerText": "En lui fournissant plus de données et en le formant en conséquence", "isCorrect": "true" }, { @@ -1809,21 +1809,21 @@ }, { "id": 33, - "title": "Tâches NLP: quiz préalable", + "title": "Tâches NLP: Quiz préalable", "quiz": [ { "questionText": "Tokenization", "answerOptions": [ { - "answerText": "Splituelle du texte au moyen de la ponctuation", + "answerText": "Divise le texte au moyen de la ponctuation", "isCorrect": "false" }, { - "answerText": "Splituelle du texte en jetons séparés (mots)", + "answerText": "Divise le texte en jetons séparés (mots)", "isCorrect": "true" }, { - "answerText": "Splituelle du texte en phrases", + "answerText": "Divise le texte en phrases", "isCorrect": "false" } ] @@ -1836,11 +1836,11 @@ "isCorrect": "true" }, { - "answerText": "Intégrance des mots en phrases", + "answerText": "Intégre des mots en phrases", "isCorrect": "false" }, { - "answerText": "Intégrance des phrases dans les paragraphes", + "answerText": "Intégre des phrases dans les paragraphes", "isCorrect": "false" } ] @@ -1866,7 +1866,7 @@ }, { "id": 34, - "title": "Tâches NLP: quiz de validation des connaissances", + "title": "Tâches NLP: Quiz de validation des connaissances", "quiz": [ { "questionText": "Construisez un dictionnaire de la fréquence à laquelle les mots se reproduisent en utilisant:", @@ -1923,10 +1923,10 @@ }, { "id": 35, - "title": "NLP et traduction: quiz préalable", + "title": "NLP et traduction: Quiz préalable", "quiz": [ { - "questionText": "Traduction naïf", + "questionText": "La traduction naïve", "answerOptions": [ { "answerText": "Traduit uniquement les mots", @@ -1943,7 +1943,7 @@ ] }, { - "questionText": "Un corpus * de textes fait référence à", + "questionText": "Un *corpus* de textes fait référence à", "answerOptions": [ { "answerText": "Un petit nombre de textes", @@ -1960,10 +1960,10 @@ ] }, { - "questionText": "Si un modèle ML a suffisamment de traductions humaines pour construire un modèle sur, il peut", + "questionText": "Si un modèle ML a suffisamment de traductions humaines pour construire un modèle, il peut", "answerOptions": [ { - "answerText": "Traductions abrégées", + "answerText": "Abréger des traductions", "isCorrect": "false" }, { @@ -1980,7 +1980,7 @@ }, { "id": 36, - "title": "NLP et traduction: quiz de validation des connaissances", + "title": "NLP et traduction: Quiz de validation des connaissances", "quiz": [ { "questionText": "La bibliothèque de traduction de texte sous-jacente est:", @@ -2000,7 +2000,7 @@ ] }, { - "questionText": "utiliser `blob.translate` vous avez besoin:", + "questionText": "Pour utiliser `blob.translate` vous avez besoin:", "answerOptions": [ { "answerText": "Une connexion Internet", @@ -2017,7 +2017,7 @@ ] }, { - "questionText": "Déterminer le sentiment, une approche ML serait de:", + "questionText": "Pour déterminer un sentiment, une approche ML serait de:", "answerOptions": [ { "answerText": "Appliquez des techniques de régression pour générer manuellement des opinions et des scores et rechercher des modèles", @@ -2037,7 +2037,7 @@ }, { "id": 37, - "title": "NLP 4: quiz préalable", + "title": "NLP 4: Quiz préalable", "quiz": [ { "questionText": "Quelles informations pouvons-nous obtenir du texte écrit ou parlé par un humain?", @@ -2094,17 +2094,17 @@ }, { "id": 38, - "title": "NLP 4: quiz de validation des connaissances", + "title": "NLP 4: Quiz de validation des connaissances", "quiz": [ { "questionText": "Quelle est l'essence de la NLP?", "answerOptions": [ { - "answerText": "catégoriser la langue humaine en joyeux ou triste", + "answerText": "catégoriser la langue humaine en joyeuse ou triste", "isCorrect": "false" }, { - "answerText": "Interprétation de sens ou de sentiment sans avoir à avoir un homme humain le faire", + "answerText": "Interprétation de sens ou de sentiment sans avoir un humain pour le faire", "isCorrect": "true" }, { @@ -2114,7 +2114,7 @@ ] }, { - "questionText": "Quelles sont certaines choses que vous pourriez rechercher lors de la nettoyage des données?", + "questionText": "Quelles sont certaines choses que vous pourriez rechercher lors du nettoyage des données?", "answerOptions": [ { "answerText": "Personnages dans d'autres langues", @@ -2131,10 +2131,10 @@ ] }, { - "questionText": "Il est important de comprendre vos données et ses fruits avant d'effectuer des opérations à ce sujet.", + "questionText": "Il est important de comprendre votre donnée et ses faiblesses avant d'effectuer des opérations à ce sujet.", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -2147,7 +2147,7 @@ }, { "id": 39, - "title": "NLP 5: quiz préalable", + "title": "NLP 5: Quiz préalable", "quiz": [ { "questionText": "Pourquoi est-il important de nettoyer les données avant de l'analyser?", @@ -2178,7 +2178,7 @@ "isCorrect": "false" }, { - "answerText": "Déplacement des valeurs aberrantes vers une table séparée et exécutant les calculs de cette table pour voir s'ils correspondent à", + "answerText": "Déplacement des valeurs aberrantes vers une table séparée et exécutant les calculs de cette table pour voir s'ils correspondent", "isCorrect": "false" } ] @@ -2187,7 +2187,7 @@ "questionText": "Il peut être utile de classer les données à l'aide d'une colonne Tag.", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -2200,17 +2200,17 @@ }, { "id": 40, - "title": "NLP 5: quiz de validation des connaissances", + "title": "NLP 5: Quiz de validation des connaissances", "quiz": [ { "questionText": "Quel est l'objectif de l'ensemble de données?", "answerOptions": [ { - "answerText": "Pour voir combien de critiques négatives et positives il y a pour les hôtels à travers le monde", + "answerText": "Voir combien de critiques négatives et positives il y a pour les hôtels à travers le monde", "isCorrect": "false" }, { - "answerText": "Pour ajouter du sentiment et des colonnes qui vous aideront à choisir le meilleur hôtel", + "answerText": "Ajouter du sentiment et des colonnes qui vous aideront à choisir le meilleur hôtel", "isCorrect": "true" }, { @@ -2240,7 +2240,7 @@ "questionText": "Pour tester l'analyse du sentiment, assurez-vous qu'il correspond au score du critique pour le même examen.", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -2253,27 +2253,27 @@ }, { "id": 41, - "title": "Série introduction à temps: quiz préalable", + "title": "Introduction aux Time Series (séries temporelles): Quiz préalable", "quiz": [ { - "questionText": "La prévision de la série chronologique est utile", + "questionText": "La prévision de Time Series est utile pour", "answerOptions": [ { "answerText": "Déterminer les coûts futurs", "isCorrect": "false" }, { - "answerText": "Prédicter les prix futurs", + "answerText": "Prédire les prix futurs", "isCorrect": "false" }, { - "answerText": "à la fois ce qui précède", + "answerText": "Les deux à la fois", "isCorrect": "true" } ] }, { - "questionText": "Une série chronologique est une séquence prise à:", + "questionText": "Une série temporelles est une séquence prise à:", "answerOptions": [ { "answerText": "points successifs également espacés dans l'espace", @@ -2290,7 +2290,7 @@ ] }, { - "questionText": "La série chronologique peut être utilisée dans:", + "questionText": "La série temporelles peut être utilisée dans les cas de:", "answerOptions": [ { "answerText": "Prévision de tremblement de terre", @@ -2310,17 +2310,17 @@ }, { "id": 42, - "title": "Série introduction à TIME: quiz de validation des connaissances", + "title": "Introduction aux Time Series (séries temporelles): Quiz de validation des connaissances", "quiz": [ { - "questionText": "Tendances de la série chronologique sont", + "questionText": "Les tendances de série temporelles sont", "answerOptions": [ { - "answerText": "mesure mesurable augmente et diminue au fil du temps", + "answerText": "des augmentations et des diminutions mesurables au fil du temps", "isCorrect": "true" }, { - "answerText": "La quantification diminue au fil du temps", + "answerText": "La quantification des diminutions au fil du temps", "isCorrect": "false" }, { @@ -2330,14 +2330,14 @@ ] }, { - "questionText": "Les valeurs aberrantes sont", + "questionText": "Les valeurs aberrantes sont des", "answerOptions": [ { "answerText": "Points proches de la variance de données standard", "isCorrect": "false" }, { - "answerText": "Pointes loin de la variance de données standard", + "answerText": "Points loin de la variance de données standard", "isCorrect": "true" }, { @@ -2347,18 +2347,18 @@ ] }, { - "questionText": "La prévision de la série chronologique est la plus utile pour", + "questionText": "La prévision de la série temporelle est la plus utile pour", "answerOptions": [ { - "answerText": "Econométrics", + "answerText": "L'conométrics", "isCorrect": "true" }, { - "answerText": "Histoire", + "answerText": "L'histoire", "isCorrect": "false" }, { - "answerText": "Bibliothèques", + "answerText": "Les bibliothèques", "isCorrect": "false" } ] @@ -2367,7 +2367,7 @@ }, { "id": 43, - "title": "Série TIME ARIMA: quiz préalable", + "title": "Série TIME ARIMA: Quiz préalable", "quiz": [ { "questionText": "Arima signifie", @@ -2424,7 +2424,7 @@ }, { "id": 44, - "title": "Série TIME ARIMA: quiz de validation des connaissances", + "title": "Série TIME ARIMA: Quiz de validation des connaissances", "quiz": [ { "questionText": "Arima est utilisé pour créer un modèle adapté à la forme spéciale des données de la série chronologique", @@ -2480,7 +2480,7 @@ ] }, { "id": 45, - "title": "Renforcement 1: quiz préalable", + "title": "Renforcement 1: Quiz préalable", "quiz": [ { "questionText": "Qu'est-ce que l'apprentissage du renforcement?", @@ -2520,7 +2520,7 @@ "questionText": "Une fonction de récompense renvoie un score pour chaque état d'environnement.", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "true" }, { @@ -2532,7 +2532,7 @@ ] }, { "id": 46, - "title": "Renforcement 1: quiz de validation des connaissances", + "title": "Renforcement 1: Quiz de validation des connaissances", "quiz": [ { "questionText": "Qu'est-ce que q-apprentissage?", @@ -2572,7 +2572,7 @@ "questionText": "Il valait mieux utiliser l'exploration que l'exploitation pendant le processus d'apprentissage de notre leçon.", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "false" }, { @@ -2585,13 +2585,13 @@ }, { "id": 47, - "title": "Renforcement 2: quiz préalable", + "title": "Renforcement 2: Quiz préalable", "quiz": [ { "questionText": "Les échecs et les jeux sont des jeux avec des états continus.", "answerOptions": [ { - "answerText": "vrai", + "answerText": "Vrai", "isCorrect": "false" }, { @@ -2638,7 +2638,7 @@ }, { "id": 48, - "title": "Renforcement 2: quiz de validation des connaissances", + "title": "Renforcement 2: Quiz de validation des connaissances", "quiz": [ { "questionText": "Où définissons-nous toutes les actions possibles dans un environnement?", @@ -2695,7 +2695,7 @@ }, { "id": 49, - "title": "Applications du monde réel: quiz préalable", + "title": "Applications du monde réel: Quiz préalable", "quiz": [ { "questionText": "Quel est un exemple d'application ML dans l'industrie des finances?", @@ -2752,7 +2752,7 @@ }, { "id": 50, - "title": "Applications du monde réel: quiz de validation des connaissances", + "title": "Applications du monde réel: Quiz de validation des connaissances", "quiz": [ { "questionText": "Quelle technique ML peut être utilisée pour détecter la fraude par carte de crédit?", From 6277966cb81afa13415dff1b9582ddd399ad1307 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Sat, 17 Jul 2021 17:38:22 +0300 Subject: [PATCH 092/228] Add Turkish translation of the base README.md file --- translations/README.tr.md | 119 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 translations/README.tr.md diff --git a/translations/README.tr.md b/translations/README.tr.md new file mode 100644 index 00000000..fa7c6169 --- /dev/null +++ b/translations/README.tr.md @@ -0,0 +1,119 @@ +[![GitHub license](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-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/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) + +# Yeni Başlayanlar için Makine Öğrenimi - Bir Eğitim Programı + +> :earth_africa: Dünya kültürleri sayesinde Makine Öğrenimi'ni keşfederken dünyayı gezin :earth_africa: + +Microsoft'taki Azure Cloud Destekleyicileri tamamen **Makine Öğrenimi** hakkında olan 12 hafta ve 24 derslik eğitim programını sunmaktan memnuniyet duyar. Bu eğitim programında, kütüphane olarak temelde Scikit-learn kullanarak ve yakında çıkacak olan 'Yeni Başlayanlar için Yapay Zeka' dersinde anlatılan derin öğrenmeden uzak durarak, zaman zaman adlandırıldığı şekliyle, **klasik makine öğrenimi**ni öğreneceksiniz. Bu dersleri yakında çıkacak olan 'Yeni Başlayanlar için Veri Bilimi' eğitim programımızla da birleştirin! + +Biz bu klasik teknikleri dünyanın birçok alanından verilere uygularken bizimle dünyayı gezin. Her bir ders, ders başı ve ders sonu kısa sınavlarını, dersi tamamlamak için yazılı yönergeleri, bir çözümü, bir ödevi ve daha fazlasını içerir. Yeni becerilerin 'yerleşmesi' için kanıtlanmış bir yol olan proje temelli pedagojimiz, yaparken öğrenmenizi sağlar. + +**:writing_hand: Yazarlarımıza yürekten teşekkürler** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Ornella Altunyan, and Amy Boyd + +**:art: Çizerlerimize de teşekkürler** Tomomi Imura, Dasani Madipalli, and Jen Looper + + **:pray: Microsoft Student Ambassador yazarlarımıza, eleştirmenlerimize ve içeriğe katkıda bulunanlara özel teşekkürler :pray:**, özellikle Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, and Snigdha Agarwal + +--- +# Başlarken + +**Öğrenciler**, bu eğitim programını kullanmak için, tüm yazılım havuzunu kendi GitHub hesabınıza çatallayın ve alıştırmaları kendiniz veya bir grup ile tamamlayın: + +- Bir ders öncesi kısa sınavı ile başlayın +- Her bilgi kontrolünde durup derinlemesine düşünerek dersi okuyun ve etkinlikleri tamamlayın. +- Çözüm kodunu çalıştırmaktansa dersleri kavrayarak projeleri yapmaya çalışın; yine de o çözüm kodu her proje yönelimli derste `/solution` klasörlerinde mevcut. +- Ders sonrası kısa sınavını çözün +- Meydan okumayı tamamlayın +- Ödevi tamamlayın +- Bir ders grubunu tamamladıktan sonra, [Tartışma Panosu](https://github.com/microsoft/ML-For-Beginners/discussions)'nu ziyaret edin ve uygun PAT yönergesini doldurarak "sesli öğrenin" (Yani, tamamen öğrenmeden önce öğrenme süreciniz üzerine derin düşünerek içgözlem ve geridönütlerle kendinizde farkındalık oluşturun.). 'PAT', bir Progress Assessment Tool'dur (Süreç Değerlendirme Aracı), öğrenmenizi daha ileriye taşımak için doldurduğunuz bir yönergedir. Diğer PAT'lere de karşılık verebilirsiniz, böylece beraber öğrenebiliriz. + +> İleri çalışma için, bu [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) modüllerini ve öğrenme rotalarını takip etmenizi tavsiye ediyoruz. + +**Öğretmenler**, bu eğitim programının nasıl kullanılacağı hakkında [bazı öneriler ekledik](for-teachers.md). + +--- + +## Takımla Tanışın + +[![Tanıtım videosu](ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "Promo video") + +> :movie_camera: Proje ve projeyi yaratanlar hakkındaki video için yukarıdaki fotoğrafa tıklayın! + +--- +## Pedagoji + +Bu eğitim programını oluştururken iki pedagojik ilke seçtik: uygulamalı **proje temelli** olduğundan ve **sık kısa sınavlar** içerdiğinden emin olmak. Ayrıca, bu eğitim programında tutarlılık sağlaması için genel bir **tema** var. + +İçeriğin projelerle uyumlu olduğuna emin olarak, süreç öğrenciler için daha ilgi çekici hale getirilmiştir ve kavramların akılda kalıcılığı artacaktır. Ayrıca, dersten önce ikincil değerli bir kısa sınav öğrencinin niyetini konuyu öğrenmek yaparken dersten sonra yapılan ikinci bir kısa sınav da akılda kalıcılığı sağlar. Bu eğitim programı esnek ve eğlenceli olacak şekilde hazırlanmıştır ve tümüyle veya kısmen işlenebilir. Projeler kolay başlar ve 12 haftalık zamanın sonuna doğru karmaşıklıkları gittikçe artar. Bu eğitim programı, Makine Öğreniminin gerçek hayattaki uygulamaları üzerine, ek puan veya tartışma için bir temel olarak kullanılabilecek bir ek yazı da içermektedir. + +> [Davranış Kuralları](CODE_OF_CONDUCT.md)'mızı, [Katkıda Bulunma](CONTRIBUTING.md) ve [Çeviri](TRANSLATIONS.md) kılavuz ilkelerimizi inceleyin. Yapıcı geridönütlerinizi memnuniyetle karşılıyoruz! +## Her ders şunları içermektedir: + +- isteğe bağlı eskiz notu +- isteğe bağlı ek video +- ders öncesi ısınma kısa sınavı +- yazılı ders +- proje temelli dersler için, projenin nasıl yapılacağına dair adım adım kılavuz +- bilgi kontrolleri +- bir meydan okuma +- ek okuma +- ödev +- ders sonrası kısa sınavı + +> **Kısa sınavlar hakkında bir not**: Her biri üç sorudan oluşan ve toplamda 50 tane olan tüm kısa sınavlar [bu uygulamada](https://jolly-sea-0a877260f.azurestaticapps.net) bulunmaktadır. Derslerin içinden de bağlantı yoluyla ulaşılabilirler ancak kısa sınav uygulaması yerelde çalıştırılabilir; `quiz-app` klasöründeki yönergeleri takip edin. + + +| Ders Numarası | Konu | Ders Gruplandırması | Öğrenme Hedefleri | Ders | Yazar | +| :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | +| 01 | Makine Öğrenimi Giriş | [Giriş](1-Introduction/README.md) | Makine öğreniminin temel kavramlarını öğrenmek | [ders](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Makine Öğrenimi Tarihi | [Giriş](1-Introduction/README.md) | Bu alanın altında yatan tarihi öğrenmek | [ders](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Eşitlik ve Makine Öğrenimi | [Giriş](1-Introduction/README.md) | Öğrencilerin ML modelleri yaparken ve uygularken düşünmeleri gereken eşitlik hakkındaki önemli felsefi sorunlar nelerdir? | [ders](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Makine Öğrenimi için Yöntemler | [Giriş](1-Introduction/README.md) | ML araştırmacıları ML modelleri üretmek için hangi yöntemleri kullanırlar? | [ders](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Regresyona Giriş | [Regresyon](2-Regression/README.md) | Regresyon modelleri için Python ve Scikit-learn'e başlamak | [ders](2-Regression/1-Tools/README.md) | Jen | +| 06 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](2-Regression/README.md) | ML hazırlığı için verileri görselleştirmek ve temizlemek | [ders](2-Regression/2-Data/README.md) | Jen | +| 07 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](2-Regression/README.md) | Doğrusal ve polinom regresyon modelleri yapmak | [ders](2-Regression/3-Linear/README.md) | Jen | +| 08 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](2-Regression/README.md) | Lojistik bir regresyon modeli yapmak | [ders](2-Regression/4-Logistic/README.md) | Jen | +| 09 | Bir Web Uygulaması :electric_plug: | [Web Uygulaması](3-Web-App/README.md) | Eğittiğiniz modeli kullanmak için bir web uygulaması yapmak | [ders](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Sınıflandırmaya Giriş | [Sınıflandırma](4-Classification/README.md) | Verilerinizi temizlemek, hazırlamak, ve görselleştirmek; sınıflandırmaya giriş | [ders](4-Classification/1-Introduction/README.md) | Jen and Cassie | +| 11 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](4-Classification/README.md) | Sınıflandırıcılara giriş | [ders](4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | +| 12 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](4-Classification/README.md) | Daha fazla sınıflandırıcı | [ders](4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | +| 13 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](4-Classification/README.md) | Modelinizi kullanarak tavsiyede bulunan bir web uygulaması yapmak | [ders](4-Classification/4-Applied/README.md) | Jen | +| 14 | Kümelemeye Giriş | [Kümeleme](5-Clustering/README.md) | Verilerinizi temizlemek, hazırlamak, ve görselleştirmek; kümelemeye giriş | [ders](5-Clustering/1-Visualize/README.md) | Jen | +| 15 | Nijerya'nın Müzik Zevklerini Keşfetme :headphones: | [Kümeleme](5-Clustering/README.md) | K merkezli kümeleme yöntemini keşfetmek | [ders](5-Clustering/2-K-Means/README.md) | Jen | +| 16 | Doğal Dil İşlemeye Giriş :coffee: | [Doğal Dil İşleme](6-NLP/README.md) | Basit bir bot yaratarak NLP temellerini öğrenmek | [ders](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Yaygın NLP Görevleri :coffee: | [Doğal Dil İşleme](6-NLP/README.md) | Dil yapılarıyla uğraşırken gereken yaygın görevleri anlayarak NLP bilginizi derinleştirmek | [ders](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Çeviri ve Duygu Analizi :hearts: | [Doğal Dil İşleme](6-NLP/README.md) | Jane Austen ile çeviri ve duygu analizi | [ders](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Avrupa'nın Romantik Otelleri :hearts: | [Doğal Dil İşleme](6-NLP/README.md) | Otel değerlendirmeleriyle duygu analizi, 1 | [ders](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Avrupa'nın Romantik Otelleri :hearts: | [Doğal Dil İşleme](6-NLP/README.md) | Otel değerlendirmeleriyle duygu analizi 2 | [ders](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Zaman Serisi Tahminine Giriş | [Zaman Serisi](7-TimeSeries/README.md) | Zaman serisi tahminine giriş | [ders](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | :zap: Dünya Güç Kullanımı :zap: - ARIMA ile Zaman Serisi Tahmini | [Zaman Serisi](7-TimeSeries/README.md) | ARIMA ile zaman serisi tahmini | [ders](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | Pekiştirmeli Öğrenmeye Giriş | [Pekiştirmeli Öğrenme](8-Reinforcement/README.md) | Q-Learning ile pekiştirmeli öğrenmeye giriş | [ders](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | Peter'ın Kurttan Uzak Durmasına Yardım Edin! :wolf: | [Pekiştirmeli Öğrenme](8-Reinforcement/README.md) | Pekiştirmeli öğrenme spor salonu | [ders](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Ek Yazı | Gerçek Hayattan ML Senaryoları ve Uygulamaları | [Vahşi Doğada ML](9-Real-World/README.md) | Klasik makine öğreniminin ilginç ve açıklayıcı gerçek hayat uygulamaları | [ders](9-Real-World/1-Applications/README.md) | Team | +## Çevrimdışı erişim + +Bu dokümantasyonu [Docsify](https://docsify.js.org/#/) kullanarak çevrimdışı çalıştırabilirsiniz. Bu depoyu çatallayın, yerel makinenizde [Docsify'ı kurum](https://docsify.js.org/#/quickstart) ve sonra bu deponun kök dizininde `docsify serve` yazın. İnternet sitesi, 3000 portunda `localhost:3000` yerel ana makinenizde sunulacaktır. + +## PDF'ler + +Eğitim programının bağlantılarla PDF'sine [buradan](pdf/readme.pdf) ulaşabilirsiniz. + +## Yardım İsteniyor! + +Bir çeviri katkısında bulunmak ister misiniz? Lütfen [çeviri kılavuz ilkelerimizi](TRANSLATIONS.md) okuyun ve [buraya](https://github.com/microsoft/ML-For-Beginners/issues/71) girdiyi ekleyin. + +## Diğer Eğitim Programları + +Takımımız başka eğitim programları üretiyor! İnceleyin: + +- [Yeni Başlayanlar için Web Geliştirme](https://aka.ms/webdev-beginners) +- [Yeni Başlayanlar için Nesnelerin İnterneti](https://aka.ms/iot-beginners) + From aa4ec30a6b1a5b6e253e1195589eb9f6b75dd984 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Sat, 17 Jul 2021 17:58:13 +0300 Subject: [PATCH 093/228] Update some words in the Turkish translation of base README.md --- translations/README.tr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/translations/README.tr.md b/translations/README.tr.md index fa7c6169..2311bf67 100644 --- a/translations/README.tr.md +++ b/translations/README.tr.md @@ -10,7 +10,7 @@ # Yeni Başlayanlar için Makine Öğrenimi - Bir Eğitim Programı -> :earth_africa: Dünya kültürleri sayesinde Makine Öğrenimi'ni keşfederken dünyayı gezin :earth_africa: +> :earth_africa: Dünya kültürleri sayesinde Makine Öğrenimini keşfederken dünyayı gezin :earth_africa: Microsoft'taki Azure Cloud Destekleyicileri tamamen **Makine Öğrenimi** hakkında olan 12 hafta ve 24 derslik eğitim programını sunmaktan memnuniyet duyar. Bu eğitim programında, kütüphane olarak temelde Scikit-learn kullanarak ve yakında çıkacak olan 'Yeni Başlayanlar için Yapay Zeka' dersinde anlatılan derin öğrenmeden uzak durarak, zaman zaman adlandırıldığı şekliyle, **klasik makine öğrenimi**ni öğreneceksiniz. Bu dersleri yakında çıkacak olan 'Yeni Başlayanlar için Veri Bilimi' eğitim programımızla da birleştirin! @@ -20,7 +20,7 @@ Biz bu klasik teknikleri dünyanın birçok alanından verilere uygularken bizim **:art: Çizerlerimize de teşekkürler** Tomomi Imura, Dasani Madipalli, and Jen Looper - **:pray: Microsoft Student Ambassador yazarlarımıza, eleştirmenlerimize ve içeriğe katkıda bulunanlara özel teşekkürler :pray:**, özellikle Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, and Snigdha Agarwal + **:pray: Microsoft Student Ambassador yazarlarımıza, eleştirmenlerimize ve içeriğe katkıda bulunanlara özel teşekkürler :pray:** özellikle Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, and Snigdha Agarwal --- # Başlarken @@ -55,7 +55,7 @@ Bu eğitim programını oluştururken iki pedagojik ilke seçtik: uygulamalı ** İçeriğin projelerle uyumlu olduğuna emin olarak, süreç öğrenciler için daha ilgi çekici hale getirilmiştir ve kavramların akılda kalıcılığı artacaktır. Ayrıca, dersten önce ikincil değerli bir kısa sınav öğrencinin niyetini konuyu öğrenmek yaparken dersten sonra yapılan ikinci bir kısa sınav da akılda kalıcılığı sağlar. Bu eğitim programı esnek ve eğlenceli olacak şekilde hazırlanmıştır ve tümüyle veya kısmen işlenebilir. Projeler kolay başlar ve 12 haftalık zamanın sonuna doğru karmaşıklıkları gittikçe artar. Bu eğitim programı, Makine Öğreniminin gerçek hayattaki uygulamaları üzerine, ek puan veya tartışma için bir temel olarak kullanılabilecek bir ek yazı da içermektedir. > [Davranış Kuralları](CODE_OF_CONDUCT.md)'mızı, [Katkıda Bulunma](CONTRIBUTING.md) ve [Çeviri](TRANSLATIONS.md) kılavuz ilkelerimizi inceleyin. Yapıcı geridönütlerinizi memnuniyetle karşılıyoruz! -## Her ders şunları içermektedir: +## Her bir ders şunları içermektedir: - isteğe bağlı eskiz notu - isteğe bağlı ek video @@ -97,10 +97,10 @@ Bu eğitim programını oluştururken iki pedagojik ilke seçtik: uygulamalı ** | 22 | :zap: Dünya Güç Kullanımı :zap: - ARIMA ile Zaman Serisi Tahmini | [Zaman Serisi](7-TimeSeries/README.md) | ARIMA ile zaman serisi tahmini | [ders](7-TimeSeries/2-ARIMA/README.md) | Francesca | | 23 | Pekiştirmeli Öğrenmeye Giriş | [Pekiştirmeli Öğrenme](8-Reinforcement/README.md) | Q-Learning ile pekiştirmeli öğrenmeye giriş | [ders](8-Reinforcement/1-QLearning/README.md) | Dmitry | | 24 | Peter'ın Kurttan Uzak Durmasına Yardım Edin! :wolf: | [Pekiştirmeli Öğrenme](8-Reinforcement/README.md) | Pekiştirmeli öğrenme spor salonu | [ders](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Ek Yazı | Gerçek Hayattan ML Senaryoları ve Uygulamaları | [Vahşi Doğada ML](9-Real-World/README.md) | Klasik makine öğreniminin ilginç ve açıklayıcı gerçek hayat uygulamaları | [ders](9-Real-World/1-Applications/README.md) | Team | +| Ek Yazı | Gerçek Hayattan ML Senaryoları ve Uygulamaları | [Vahşi Doğada ML](9-Real-World/README.md) | Klasik makine öğreniminin ilginç ve açıklayıcı gerçek hayat uygulamaları | [ders](9-Real-World/1-Applications/README.md) | Takım | ## Çevrimdışı erişim -Bu dokümantasyonu [Docsify](https://docsify.js.org/#/) kullanarak çevrimdışı çalıştırabilirsiniz. Bu depoyu çatallayın, yerel makinenizde [Docsify'ı kurum](https://docsify.js.org/#/quickstart) ve sonra bu deponun kök dizininde `docsify serve` yazın. İnternet sitesi, 3000 portunda `localhost:3000` yerel ana makinenizde sunulacaktır. +Bu dokümantasyonu [Docsify](https://docsify.js.org/#/) kullanarak çevrimdışı çalıştırabilirsiniz. Bu yazılım havuzunu çatallayın, yerel makinenizde [Docsify'ı kurum](https://docsify.js.org/#/quickstart) ve sonra bu yazılım havuzunun kök dizininde `docsify serve` yazın. İnternet sitesi, 3000 portunda `localhost:3000` yerel ana makinenizde sunulacaktır. ## PDF'ler From 194190f73bee3cee9c3728a46a297462578a34eb Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Sat, 17 Jul 2021 19:18:11 +0200 Subject: [PATCH 094/228] Translation of AI History README + Assignment --- .../2-history-of-ML/translations/README.fr.md | 117 ++++++++++++++++++ .../translations/assignment.fr.md | 11 ++ 2 files changed, 128 insertions(+) create mode 100644 1-Introduction/2-history-of-ML/translations/README.fr.md create mode 100644 1-Introduction/2-history-of-ML/translations/assignment.fr.md diff --git a/1-Introduction/2-history-of-ML/translations/README.fr.md b/1-Introduction/2-history-of-ML/translations/README.fr.md new file mode 100644 index 00000000..9c74b0b8 --- /dev/null +++ b/1-Introduction/2-history-of-ML/translations/README.fr.md @@ -0,0 +1,117 @@ +# Histoire du Machine Learning (apprentissage automatique) + +![Résumé de l'histoire du machine learning dans un sketchnote](../../../sketchnotes/ml-history.png) +> Sketchnote de [Tomomi Imura](https://www.twitter.com/girlie_mac) + +## [Quizz préalable](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/3/) + +Dans cette leçon, nous allons parcourir les principales étapes de l'histoire du machine learning et de l'intelligence artificielle. + +L'histoire de l'intelligence artificielle, l'IA, en tant que domaine est étroitement liée à l'histoire du machine learning, car les algorithmes et les avancées informatiques qui sous-tendent le ML alimentent le développement de l'IA. Bien que ces domaines en tant que domaines de recherches distincts ont commencé à se cristalliser dans les années 1950, il est important de rappeler que les [découvertes algorithmiques, statistiques, mathématiques, informatiques et techniques](https://wikipedia.org/wiki/Timeline_of_machine_learning) ont précédé et chevauchait cette époque. En fait, le monde réfléchit à ces questions depuis [des centaines d'années](https://fr.wikipedia.org/wiki/Histoire_de_l%27intelligence_artificielle) : cet article traite des fondements intellectuels historiques de l'idée d'une « machine qui pense ». + +## Découvertes notables + +- 1763, 1812 [théorème de Bayes](https://wikipedia.org/wiki/Bayes%27_theorem) et ses prédécesseurs. Ce théorème et ses applications sous-tendent l'inférence, décrivant la probabilité qu'un événement se produise sur la base de connaissances antérieures. +- 1805 [Théorie des moindres carrés](https://wikipedia.org/wiki/Least_squares) par le mathématicien français Adrien-Marie Legendre. Cette théorie, que vous découvrirez dans notre unité Régression, aide à l'ajustement des données. +- 1913 [Chaînes de Markov](https://wikipedia.org/wiki/Markov_chain) du nom du mathématicien russe Andrey Markov sont utilisées pour décrire une séquence d'événements possibles basée sur un état antérieur. +- 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron) est un type de classificateur linéaire inventé par le psychologue américain Frank Rosenblatt qui sous-tend les progrès de l'apprentissage en profondeur. +- 1967 [Nearest Neighbor](https://wikipedia.org/wiki/Nearest_neighbor) est un algorithme conçu à l'origine pour cartographier les itinéraires. Dans un contexte ML, il est utilisé pour détecter des modèles. +- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) est utilisé pour former des [réseaux de neurones feedforward (propagation avant)](https://fr.wikipedia.org/wiki/R%C3%A9seau_de_neurones_%C3%A0_propagation_avant). +- 1982 [Réseaux de neurones récurrents](https://wikipedia.org/wiki/Recurrent_neural_network) sont des réseaux de neurones artificiels dérivés de réseaux de neurones à réaction qui créent des graphes temporels. + +✅ Faites une petite recherche. Quelles autres dates sont marquantes dans l'histoire du ML et de l'IA ? + +## 1950 : Des machines qui pensent + +Alan Turing, une personne vraiment remarquable qui a été élue [par le public en 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) comme le plus grand scientifique du 20e siècle, est reconnu pour avoir aidé à jeter les bases du concept d'une "machine qui peut penser". Il a lutté avec ses opposants et son propre besoin de preuves empiriques de sa théorie en créant le [Test de Turing] (https://www.bbc.com/news/technology-18475646), que vous explorerez dans nos leçons de TALN. + +## 1956 : Projet de recherche d'été à Dartmouth + +« Le projet de recherche d'été de Dartmouth sur l'intelligence artificielle a été un événement fondateur pour l'intelligence artificielle en tant que domaine », et c'est ici que le terme « intelligence artificielle » a été inventé ([source](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)). + +> Chaque aspect de l'apprentissage ou toute autre caractéristique de l'intelligence peut en principe être décrit si précisément qu'une machine peut être conçue pour les simuler. + +Le chercheur en tête, le professeur de mathématiques John McCarthy, espérait « procéder sur la base de la conjecture selon laquelle chaque aspect de l'apprentissage ou toute autre caractéristique de l'intelligence peut en principe être décrit avec une telle précision qu'une machine peut être conçue pour les simuler ». Les participants comprenaient une autre sommité dans le domaine, Marvin Minsky. + +L'atelier est crédité d'avoir initié et encouragé plusieurs discussions, notamment « l'essor des méthodes symboliques, des systèmes spécialisés sur des domaines limités (premiers systèmes experts) et des systèmes déductifs par rapport aux systèmes inductifs ». ([source](https://fr.wikipedia.org/wiki/Conf%C3%A9rence_de_Dartmouth)). + +## 1956 - 1974 : "Les années d'or" + +Des années 50 au milieu des années 70, l'optimisme était au rendez-vous en espérant que l'IA puisse résoudre de nombreux problèmes. En 1967, Marvin Minsky a déclaré avec assurance que « Dans une génération... le problème de la création d'"intelligence artificielle" sera substantiellement résolu. » (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall) + +La recherche sur le traitement du langage naturel a prospéré, la recherche a été affinée et rendue plus puissante, et le concept de « micro-mondes » a été créé, où des tâches simples ont été effectuées en utilisant des instructions en langue naturelle. + +La recherche a été bien financée par les agences gouvernementales, des progrès ont été réalisés dans le calcul et les algorithmes, et des prototypes de machines intelligentes ont été construits. Certaines de ces machines incluent : + +* [Shakey le robot](https://fr.wikipedia.org/wiki/Shakey_le_robot), qui pouvait manœuvrer et décider comment effectuer des tâches « intelligemment ». + + ![Shakey, un robot intelligent](../images/shakey.jpg) + > Shaky en 1972 + +* Eliza, une des premières « chatbot », pouvait converser avec les gens et agir comme une « thérapeute » primitive. Vous en apprendrez plus sur Eliza dans les leçons de TALN. + + ![Eliza, un bot](../images/eliza.png) + > Une version d'Eliza, un chatbot + +* Le « monde des blocs » était un exemple de micro-monde où les blocs pouvaient être empilés et triés, et où des expériences d'apprentissages sur des machines, dans le but qu'elles prennent des décisions, pouvaient être testées. Les avancées réalisées avec des bibliothèques telles que [SHRDLU](https://fr.wikipedia.org/wiki/SHRDLU) ont contribué à faire avancer le traitement du langage. + + [![Monde de blocs avec SHRDLU](https://img.youtube.com/vi/QAJz4YKUwqw/0.jpg)](https://www.youtube.com/watch?v=QAJz4YKUwqw "Monde de blocs avec SHRDLU" ) + + > 🎥 Cliquez sur l'image ci-dessus pour une vidéo : Blocks world with SHRDLU + +## 1974 - 1980 : « l'hiver de l'IA » + +Au milieu des années 1970, il était devenu évident que la complexité de la fabrication de « machines intelligentes » avait été sous-estimée et que sa promesse, compte tenu de la puissance de calcul disponible, avait été exagérée. Les financements se sont taris et la confiance dans le domaine s'est ralentie. Parmi les problèmes qui ont eu un impact sur la confiance, citons : + +- **Restrictions**. La puissance de calcul était trop limitée. +- **Explosion combinatoire**. Le nombre de paramètres à former augmentait de façon exponentielle à mesure que l'on en demandait davantage aux ordinateurs, sans évolution parallèle de la puissance et de la capacité de calcul. +- **Pénurie de données**. Il y avait un manque de données qui a entravé le processus de test, de développement et de raffinement des algorithmes. +- **Posions-nous les bonnes questions ?**. Les questions mêmes, qui étaient posées, ont commencé à être remises en question. Les chercheurs ont commencé à émettre des critiques sur leurs approches : + - Les tests de Turing ont été remis en question au moyen, entre autres, de la « théorie de la chambre chinoise » qui postulait que « la programmation d'un ordinateur numérique peut faire croire qu'il comprend le langage mais ne peut pas produire une compréhension réelle ». ([source](https://plato.stanford.edu/entries/chinese-room/)) + - L'éthique de l'introduction d'intelligences artificielles telles que la "thérapeute" ELIZA dans la société a été remise en cause. + +Dans le même temps, diverses écoles de pensée sur l'IA ont commencé à se former. Une dichotomie a été établie entre les pratiques IA ["scruffy" et "neat"](https://wikipedia.org/wiki/Neats_and_scruffies). Les laboratoires _Scruffy_ peaufinaient leurs programmes pendant des heures jusqu'à ce qu'ils obtiennent les résultats souhaités. Les laboratoires _Neat_ "se concentraient sur la logique et la résolution formelle de problèmes". ELIZA et SHRDLU étaient des systèmes _scruffy_ bien connus. Dans les années 1980, alors qu'émergeait la demande de rendre les systèmes ML reproductibles, l'approche _neat_ a progressivement pris le devant de la scène car ses résultats sont plus explicables. + +## 1980 : Systèmes experts + +Au fur et à mesure que le domaine s'est développé, ses avantages pour les entreprises sont devenus plus clairs, particulièrement via les « systèmes experts » dans les années 1980. "Les systèmes experts ont été parmi les premières formes vraiment réussies de logiciels d'intelligence artificielle (IA)." ([source](https://fr.wikipedia.org/wiki/Syst%C3%A8me_expert)). + +Ce type de système est en fait _hybride_, composé en partie d'un moteur de règles définissant les exigences métier et d'un moteur d'inférence qui exploite le système de règles pour déduire de nouveaux faits. + +Cette époque a également vu une attention croissante accordée aux réseaux de neurones. + +## 1987 - 1993 : IA « Chill » + +La prolifération du matériel spécialisé des systèmes experts a eu pour effet malheureux de devenir trop spécialisée. L'essor des ordinateurs personnels a également concurrencé ces grands systèmes spécialisés et centralisés. La démocratisation de l'informatique a commencé et a finalement ouvert la voie à l'explosion des mégadonnées. + +## 1993 - 2011 + +Cette époque a vu naître une nouvelle ère pour le ML et l'IA afin de résoudre certains des problèmes qui n'avaient pu l'être plus tôt par le manque de données et de puissance de calcul. La quantité de données a commencé à augmenter rapidement et à devenir plus largement disponibles, pour le meilleur et pour le pire, en particulier avec l'avènement du smartphone vers 2007. La puissance de calcul a augmenté de façon exponentielle et les algorithmes ont évolué parallèlement. Le domaine a commencé à gagner en maturité alors que l'ingéniosité a commencé à se cristalliser en une véritable discipline. + +## À présent + +Aujourd'hui, le machine learning et l'IA touchent presque tous les aspects de notre vie. Cette ère nécessite une compréhension approfondie des risques et des effets potentiels de ces algorithmes sur les vies humaines. Comme l'a déclaré Brad Smith de Microsoft, « les technologies de l'information soulèvent des problèmes qui vont au cœur des protections fondamentales des droits de l'homme comme la vie privée et la liberté d'expression. Ces problèmes accroissent la responsabilité des entreprises technologiques qui créent ces produits. À notre avis, ils appellent également à une réglementation gouvernementale réfléchie et au développement de normes autour des utilisations acceptables" ([source](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)). + +Reste à savoir ce que l'avenir nous réserve, mais il est important de comprendre ces systèmes informatiques ainsi que les logiciels et algorithmes qu'ils exécutent. Nous espérons que ce programme vous aidera à mieux les comprendre afin que vous puissiez décider par vous-même. + +[![L'histoire du Deep Learning](https://img.youtube.com/vi/mTtDfKgLm54/0.jpg)](https://www.youtube.com/watch?v=mTtDfKgLm54 "L'histoire du Deep Learning") +> 🎥 Cliquez sur l'image ci-dessus pour une vidéo : Yann LeCun discute de l'histoire du deep learning dans cette conférence + +--- +## 🚀Défi + +Plongez dans l'un de ces moments historiques et apprenez-en plus sur les personnes derrière ceux-ci. Il y a des personnalités fascinantes, et aucune découverte scientifique n'a jamais été créée avec un vide culturel. Que découvrez-vous ? + +## [Quiz de validation des connaissances](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/4/) + +## Révision et auto-apprentissage + +Voici quelques articles à regarder et à écouter : + +[Ce podcast où Amy Boyd discute de l'évolution de l'IA](http://runasradio.com/Shows/Show/739) + +[![L'histoire de l'iA par Amy Boyd](https://img.youtube.com/vi/EJt3_bFYKss/0.jpg)](https://www.youtube.com/watch?v=EJt3_bFYKss "L'histoire de l'iA par Amy Boyd") + +## Assignment + +[Créer une frise chonologique](assignment.fr.md) diff --git a/1-Introduction/2-history-of-ML/translations/assignment.fr.md b/1-Introduction/2-history-of-ML/translations/assignment.fr.md new file mode 100644 index 00000000..f1f06cb7 --- /dev/null +++ b/1-Introduction/2-history-of-ML/translations/assignment.fr.md @@ -0,0 +1,11 @@ +# Créer une frise chronologique + +## Instructions + +Utiliser [ce repo](https://github.com/Digital-Humanities-Toolkit/timeline-builder), créer une frise chronologique de certains aspects de l'histoire des algorithmes, des mathématiques, des statistiques, de l'IA ou du machine learning, ou une combinaison de ceux-ci. Vous pouvez vous concentrer sur une personne, une idée ou une longue période de réflexion. Assurez-vous d'ajouter des éléments multimédias. + +## Rubrique + +| Critères | Exemplaire | Adéquate | A améliorer | +| -------- | ---------------------------------------------------------------- | ------------------------------------ | ------------------------------------------------------------------ | +| | Une chronologie déployée est présentée sous forme de page GitHub | Le code est incomplet et non déployé | La chronologie est incomplète, pas bien recherchée et pas déployée | From 051fced33be1891a143f3dc6656b3ca8bef90853 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Sat, 17 Jul 2021 20:21:38 +0300 Subject: [PATCH 095/228] Fix file paths for images, lessons, and .md files --- translations/README.tr.md | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/translations/README.tr.md b/translations/README.tr.md index 2311bf67..cc517004 100644 --- a/translations/README.tr.md +++ b/translations/README.tr.md @@ -37,13 +37,13 @@ Biz bu klasik teknikleri dünyanın birçok alanından verilere uygularken bizim > İleri çalışma için, bu [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) modüllerini ve öğrenme rotalarını takip etmenizi tavsiye ediyoruz. -**Öğretmenler**, bu eğitim programının nasıl kullanılacağı hakkında [bazı öneriler ekledik](for-teachers.md). +**Öğretmenler**, bu eğitim programının nasıl kullanılacağı hakkında [bazı öneriler ekledik](../for-teachers.md). --- ## Takımla Tanışın -[![Tanıtım videosu](ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "Promo video") +[![Tanıtım videosu](../ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "Promo video") > :movie_camera: Proje ve projeyi yaratanlar hakkındaki video için yukarıdaki fotoğrafa tıklayın! @@ -54,7 +54,7 @@ Bu eğitim programını oluştururken iki pedagojik ilke seçtik: uygulamalı ** İçeriğin projelerle uyumlu olduğuna emin olarak, süreç öğrenciler için daha ilgi çekici hale getirilmiştir ve kavramların akılda kalıcılığı artacaktır. Ayrıca, dersten önce ikincil değerli bir kısa sınav öğrencinin niyetini konuyu öğrenmek yaparken dersten sonra yapılan ikinci bir kısa sınav da akılda kalıcılığı sağlar. Bu eğitim programı esnek ve eğlenceli olacak şekilde hazırlanmıştır ve tümüyle veya kısmen işlenebilir. Projeler kolay başlar ve 12 haftalık zamanın sonuna doğru karmaşıklıkları gittikçe artar. Bu eğitim programı, Makine Öğreniminin gerçek hayattaki uygulamaları üzerine, ek puan veya tartışma için bir temel olarak kullanılabilecek bir ek yazı da içermektedir. -> [Davranış Kuralları](CODE_OF_CONDUCT.md)'mızı, [Katkıda Bulunma](CONTRIBUTING.md) ve [Çeviri](TRANSLATIONS.md) kılavuz ilkelerimizi inceleyin. Yapıcı geridönütlerinizi memnuniyetle karşılıyoruz! +> [Davranış Kuralları](../CODE_OF_CONDUCT.md)'mızı, [Katkıda Bulunma](../CONTRIBUTING.md) ve [Çeviri](../TRANSLATIONS.md) kılavuz ilkelerimizi inceleyin. Yapıcı geridönütlerinizi memnuniyetle karşılıyoruz! ## Her bir ders şunları içermektedir: - isteğe bağlı eskiz notu @@ -73,42 +73,42 @@ Bu eğitim programını oluştururken iki pedagojik ilke seçtik: uygulamalı ** | Ders Numarası | Konu | Ders Gruplandırması | Öğrenme Hedefleri | Ders | Yazar | | :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | -| 01 | Makine Öğrenimi Giriş | [Giriş](1-Introduction/README.md) | Makine öğreniminin temel kavramlarını öğrenmek | [ders](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Makine Öğrenimi Tarihi | [Giriş](1-Introduction/README.md) | Bu alanın altında yatan tarihi öğrenmek | [ders](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Eşitlik ve Makine Öğrenimi | [Giriş](1-Introduction/README.md) | Öğrencilerin ML modelleri yaparken ve uygularken düşünmeleri gereken eşitlik hakkındaki önemli felsefi sorunlar nelerdir? | [ders](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Makine Öğrenimi için Yöntemler | [Giriş](1-Introduction/README.md) | ML araştırmacıları ML modelleri üretmek için hangi yöntemleri kullanırlar? | [ders](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Regresyona Giriş | [Regresyon](2-Regression/README.md) | Regresyon modelleri için Python ve Scikit-learn'e başlamak | [ders](2-Regression/1-Tools/README.md) | Jen | -| 06 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](2-Regression/README.md) | ML hazırlığı için verileri görselleştirmek ve temizlemek | [ders](2-Regression/2-Data/README.md) | Jen | -| 07 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](2-Regression/README.md) | Doğrusal ve polinom regresyon modelleri yapmak | [ders](2-Regression/3-Linear/README.md) | Jen | -| 08 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](2-Regression/README.md) | Lojistik bir regresyon modeli yapmak | [ders](2-Regression/4-Logistic/README.md) | Jen | -| 09 | Bir Web Uygulaması :electric_plug: | [Web Uygulaması](3-Web-App/README.md) | Eğittiğiniz modeli kullanmak için bir web uygulaması yapmak | [ders](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Sınıflandırmaya Giriş | [Sınıflandırma](4-Classification/README.md) | Verilerinizi temizlemek, hazırlamak, ve görselleştirmek; sınıflandırmaya giriş | [ders](4-Classification/1-Introduction/README.md) | Jen and Cassie | -| 11 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](4-Classification/README.md) | Sınıflandırıcılara giriş | [ders](4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | -| 12 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](4-Classification/README.md) | Daha fazla sınıflandırıcı | [ders](4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | -| 13 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](4-Classification/README.md) | Modelinizi kullanarak tavsiyede bulunan bir web uygulaması yapmak | [ders](4-Classification/4-Applied/README.md) | Jen | -| 14 | Kümelemeye Giriş | [Kümeleme](5-Clustering/README.md) | Verilerinizi temizlemek, hazırlamak, ve görselleştirmek; kümelemeye giriş | [ders](5-Clustering/1-Visualize/README.md) | Jen | -| 15 | Nijerya'nın Müzik Zevklerini Keşfetme :headphones: | [Kümeleme](5-Clustering/README.md) | K merkezli kümeleme yöntemini keşfetmek | [ders](5-Clustering/2-K-Means/README.md) | Jen | -| 16 | Doğal Dil İşlemeye Giriş :coffee: | [Doğal Dil İşleme](6-NLP/README.md) | Basit bir bot yaratarak NLP temellerini öğrenmek | [ders](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Yaygın NLP Görevleri :coffee: | [Doğal Dil İşleme](6-NLP/README.md) | Dil yapılarıyla uğraşırken gereken yaygın görevleri anlayarak NLP bilginizi derinleştirmek | [ders](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Çeviri ve Duygu Analizi :hearts: | [Doğal Dil İşleme](6-NLP/README.md) | Jane Austen ile çeviri ve duygu analizi | [ders](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Avrupa'nın Romantik Otelleri :hearts: | [Doğal Dil İşleme](6-NLP/README.md) | Otel değerlendirmeleriyle duygu analizi, 1 | [ders](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Avrupa'nın Romantik Otelleri :hearts: | [Doğal Dil İşleme](6-NLP/README.md) | Otel değerlendirmeleriyle duygu analizi 2 | [ders](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Zaman Serisi Tahminine Giriş | [Zaman Serisi](7-TimeSeries/README.md) | Zaman serisi tahminine giriş | [ders](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | :zap: Dünya Güç Kullanımı :zap: - ARIMA ile Zaman Serisi Tahmini | [Zaman Serisi](7-TimeSeries/README.md) | ARIMA ile zaman serisi tahmini | [ders](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | Pekiştirmeli Öğrenmeye Giriş | [Pekiştirmeli Öğrenme](8-Reinforcement/README.md) | Q-Learning ile pekiştirmeli öğrenmeye giriş | [ders](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 24 | Peter'ın Kurttan Uzak Durmasına Yardım Edin! :wolf: | [Pekiştirmeli Öğrenme](8-Reinforcement/README.md) | Pekiştirmeli öğrenme spor salonu | [ders](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Ek Yazı | Gerçek Hayattan ML Senaryoları ve Uygulamaları | [Vahşi Doğada ML](9-Real-World/README.md) | Klasik makine öğreniminin ilginç ve açıklayıcı gerçek hayat uygulamaları | [ders](9-Real-World/1-Applications/README.md) | Takım | +| 01 | Makine Öğrenimi Giriş | [Giriş](../1-Introduction/README.md) | Makine öğreniminin temel kavramlarını öğrenmek | [ders](../1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Makine Öğrenimi Tarihi | [Giriş](../1-Introduction/README.md) | Bu alanın altında yatan tarihi öğrenmek | [ders](../1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Eşitlik ve Makine Öğrenimi | [Giriş](../1-Introduction/README.md) | Öğrencilerin ML modelleri yaparken ve uygularken düşünmeleri gereken eşitlik hakkındaki önemli felsefi sorunlar nelerdir? | [ders](../1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Makine Öğrenimi için Yöntemler | [Giriş](../1-Introduction/README.md) | ML araştırmacıları ML modelleri üretmek için hangi yöntemleri kullanırlar? | [ders](../1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Regresyona Giriş | [Regresyon](../2-Regression/README.md) | Regresyon modelleri için Python ve Scikit-learn'e başlamak | [ders](../2-Regression/1-Tools/README.md) | Jen | +| 06 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](../2-Regression/README.md) | ML hazırlığı için verileri görselleştirmek ve temizlemek | [ders](../2-Regression/2-Data/README.md) | Jen | +| 07 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](../2-Regression/README.md) | Doğrusal ve polinom regresyon modelleri yapmak | [ders](../2-Regression/3-Linear/README.md) | Jen | +| 08 | Kuzey Amerika balkabağı fiyatları :jack_o_lantern: | [Regresyon](../2-Regression/README.md) | Lojistik bir regresyon modeli yapmak | [ders](../2-Regression/4-Logistic/README.md) | Jen | +| 09 | Bir Web Uygulaması :electric_plug: | [Web Uygulaması](../3-Web-App/README.md) | Eğittiğiniz modeli kullanmak için bir web uygulaması yapmak | [ders](../3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Sınıflandırmaya Giriş | [Sınıflandırma](../4-Classification/README.md) | Verilerinizi temizlemek, hazırlamak, ve görselleştirmek; sınıflandırmaya giriş | [ders](../4-Classification/1-Introduction/README.md) | Jen and Cassie | +| 11 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](../4-Classification/README.md) | Sınıflandırıcılara giriş | [ders](../4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | +| 12 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](../4-Classification/README.md) | Daha fazla sınıflandırıcı | [ders](../4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | +| 13 | Leziz Asya ve Hint mutfağı :ramen: | [Sınıflandırma](../4-Classification/README.md) | Modelinizi kullanarak tavsiyede bulunan bir web uygulaması yapmak | [ders](../4-Classification/4-Applied/README.md) | Jen | +| 14 | Kümelemeye Giriş | [Kümeleme](../5-Clustering/README.md) | Verilerinizi temizlemek, hazırlamak, ve görselleştirmek; kümelemeye giriş | [ders](../5-Clustering/1-Visualize/README.md) | Jen | +| 15 | Nijerya'nın Müzik Zevklerini Keşfetme :headphones: | [Kümeleme](../5-Clustering/README.md) | K merkezli kümeleme yöntemini keşfetmek | [ders](../5-Clustering/2-K-Means/README.md) | Jen | +| 16 | Doğal Dil İşlemeye Giriş :coffee: | [Doğal Dil İşleme](../6-NLP/README.md) | Basit bir bot yaratarak NLP temellerini öğrenmek | [ders](../6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Yaygın NLP Görevleri :coffee: | [Doğal Dil İşleme](../6-NLP/README.md) | Dil yapılarıyla uğraşırken gereken yaygın görevleri anlayarak NLP bilginizi derinleştirmek | [ders](../6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Çeviri ve Duygu Analizi :hearts: | [Doğal Dil İşleme](../6-NLP/README.md) | Jane Austen ile çeviri ve duygu analizi | [ders](../6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Avrupa'nın Romantik Otelleri :hearts: | [Doğal Dil İşleme](../6-NLP/README.md) | Otel değerlendirmeleriyle duygu analizi, 1 | [ders](../6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Avrupa'nın Romantik Otelleri :hearts: | [Doğal Dil İşleme](../6-NLP/README.md) | Otel değerlendirmeleriyle duygu analizi 2 | [ders](../6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Zaman Serisi Tahminine Giriş | [Zaman Serisi](../7-TimeSeries/README.md) | Zaman serisi tahminine giriş | [ders](../7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | :zap: Dünya Güç Kullanımı :zap: - ARIMA ile Zaman Serisi Tahmini | [Zaman Serisi](../7-TimeSeries/README.md) | ARIMA ile zaman serisi tahmini | [ders](../7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | Pekiştirmeli Öğrenmeye Giriş | [Pekiştirmeli Öğrenme](../8-Reinforcement/README.md) | Q-Learning ile pekiştirmeli öğrenmeye giriş | [ders](../8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | Peter'ın Kurttan Uzak Durmasına Yardım Edin! :wolf: | [Pekiştirmeli Öğrenme](../8-Reinforcement/README.md) | Pekiştirmeli öğrenme spor salonu | [ders](../8-Reinforcement/2-Gym/README.md) | Dmitry | +| Ek Yazı | Gerçek Hayattan ML Senaryoları ve Uygulamaları | [Vahşi Doğada ML](../9-Real-World/README.md) | Klasik makine öğreniminin ilginç ve açıklayıcı gerçek hayat uygulamaları | [ders](../9-Real-World/1-Applications/README.md) | Takım | ## Çevrimdışı erişim Bu dokümantasyonu [Docsify](https://docsify.js.org/#/) kullanarak çevrimdışı çalıştırabilirsiniz. Bu yazılım havuzunu çatallayın, yerel makinenizde [Docsify'ı kurum](https://docsify.js.org/#/quickstart) ve sonra bu yazılım havuzunun kök dizininde `docsify serve` yazın. İnternet sitesi, 3000 portunda `localhost:3000` yerel ana makinenizde sunulacaktır. ## PDF'ler -Eğitim programının bağlantılarla PDF'sine [buradan](pdf/readme.pdf) ulaşabilirsiniz. +Eğitim programının bağlantılarla PDF'sine [buradan](../pdf/readme.pdf) ulaşabilirsiniz. ## Yardım İsteniyor! -Bir çeviri katkısında bulunmak ister misiniz? Lütfen [çeviri kılavuz ilkelerimizi](TRANSLATIONS.md) okuyun ve [buraya](https://github.com/microsoft/ML-For-Beginners/issues/71) girdiyi ekleyin. +Bir çeviri katkısında bulunmak ister misiniz? Lütfen [çeviri kılavuz ilkelerimizi](../TRANSLATIONS.md) okuyun ve [buraya](https://github.com/microsoft/ML-For-Beginners/issues/71) girdiyi ekleyin. ## Diğer Eğitim Programları From 42c364d5d31d7a57bf64867048afa7a650950032 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Sat, 17 Jul 2021 19:24:02 +0200 Subject: [PATCH 096/228] Remplacement de TALN par NLP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remplacer défi par challenge --- .../2-history-of-ML/translations/README.fr.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/1-Introduction/2-history-of-ML/translations/README.fr.md b/1-Introduction/2-history-of-ML/translations/README.fr.md index 9c74b0b8..78ba70cc 100644 --- a/1-Introduction/2-history-of-ML/translations/README.fr.md +++ b/1-Introduction/2-history-of-ML/translations/README.fr.md @@ -23,7 +23,7 @@ L'histoire de l'intelligence artificielle, l'IA, en tant que domaine est étroit ## 1950 : Des machines qui pensent -Alan Turing, une personne vraiment remarquable qui a été élue [par le public en 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) comme le plus grand scientifique du 20e siècle, est reconnu pour avoir aidé à jeter les bases du concept d'une "machine qui peut penser". Il a lutté avec ses opposants et son propre besoin de preuves empiriques de sa théorie en créant le [Test de Turing] (https://www.bbc.com/news/technology-18475646), que vous explorerez dans nos leçons de TALN. +Alan Turing, une personne vraiment remarquable qui a été élue [par le public en 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) comme le plus grand scientifique du 20e siècle, est reconnu pour avoir aidé à jeter les bases du concept d'une "machine qui peut penser". Il a lutté avec ses opposants et son propre besoin de preuves empiriques de sa théorie en créant le [Test de Turing] (https://www.bbc.com/news/technology-18475646), que vous explorerez dans nos leçons de NLP (TALN en français). ## 1956 : Projet de recherche d'été à Dartmouth @@ -39,7 +39,7 @@ L'atelier est crédité d'avoir initié et encouragé plusieurs discussions, not Des années 50 au milieu des années 70, l'optimisme était au rendez-vous en espérant que l'IA puisse résoudre de nombreux problèmes. En 1967, Marvin Minsky a déclaré avec assurance que « Dans une génération... le problème de la création d'"intelligence artificielle" sera substantiellement résolu. » (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall) -La recherche sur le traitement du langage naturel a prospéré, la recherche a été affinée et rendue plus puissante, et le concept de « micro-mondes » a été créé, où des tâches simples ont été effectuées en utilisant des instructions en langue naturelle. +La recherche sur le Natural Language Processing (traitement du langage naturel en français) a prospéré, la recherche a été affinée et rendue plus puissante, et le concept de « micro-mondes » a été créé, où des tâches simples ont été effectuées en utilisant des instructions en langue naturelle. La recherche a été bien financée par les agences gouvernementales, des progrès ont été réalisés dans le calcul et les algorithmes, et des prototypes de machines intelligentes ont été construits. Certaines de ces machines incluent : @@ -48,12 +48,12 @@ La recherche a été bien financée par les agences gouvernementales, des progr ![Shakey, un robot intelligent](../images/shakey.jpg) > Shaky en 1972 -* Eliza, une des premières « chatbot », pouvait converser avec les gens et agir comme une « thérapeute » primitive. Vous en apprendrez plus sur Eliza dans les leçons de TALN. +* Eliza, une des premières « chatbot », pouvait converser avec les gens et agir comme une « thérapeute » primitive. Vous en apprendrez plus sur Eliza dans les leçons de NLP. ![Eliza, un bot](../images/eliza.png) > Une version d'Eliza, un chatbot -* Le « monde des blocs » était un exemple de micro-monde où les blocs pouvaient être empilés et triés, et où des expériences d'apprentissages sur des machines, dans le but qu'elles prennent des décisions, pouvaient être testées. Les avancées réalisées avec des bibliothèques telles que [SHRDLU](https://fr.wikipedia.org/wiki/SHRDLU) ont contribué à faire avancer le traitement du langage. +* Le « monde des blocs » était un exemple de micro-monde où les blocs pouvaient être empilés et triés, et où des expériences d'apprentissages sur des machines, dans le but qu'elles prennent des décisions, pouvaient être testées. Les avancées réalisées avec des bibliothèques telles que [SHRDLU](https://fr.wikipedia.org/wiki/SHRDLU) ont contribué à faire avancer le natural language processing. [![Monde de blocs avec SHRDLU](https://img.youtube.com/vi/QAJz4YKUwqw/0.jpg)](https://www.youtube.com/watch?v=QAJz4YKUwqw "Monde de blocs avec SHRDLU" ) @@ -98,7 +98,7 @@ Reste à savoir ce que l'avenir nous réserve, mais il est important de comprend > 🎥 Cliquez sur l'image ci-dessus pour une vidéo : Yann LeCun discute de l'histoire du deep learning dans cette conférence --- -## 🚀Défi +## 🚀Challenge Plongez dans l'un de ces moments historiques et apprenez-en plus sur les personnes derrière ceux-ci. Il y a des personnalités fascinantes, et aucune découverte scientifique n'a jamais été créée avec un vide culturel. Que découvrez-vous ? From 0ae3500513f1f83c74612dc5a7820180bbe9d2a9 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Sat, 17 Jul 2021 23:50:37 +0200 Subject: [PATCH 097/228] Correction orthographique --- 1-Introduction/2-history-of-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/2-history-of-ML/translations/README.fr.md b/1-Introduction/2-history-of-ML/translations/README.fr.md index 78ba70cc..5debe07e 100644 --- a/1-Introduction/2-history-of-ML/translations/README.fr.md +++ b/1-Introduction/2-history-of-ML/translations/README.fr.md @@ -110,8 +110,8 @@ Voici quelques articles à regarder et à écouter : [Ce podcast où Amy Boyd discute de l'évolution de l'IA](http://runasradio.com/Shows/Show/739) -[![L'histoire de l'iA par Amy Boyd](https://img.youtube.com/vi/EJt3_bFYKss/0.jpg)](https://www.youtube.com/watch?v=EJt3_bFYKss "L'histoire de l'iA par Amy Boyd") +[![L'histoire de l'IA par Amy Boyd](https://img.youtube.com/vi/EJt3_bFYKss/0.jpg)](https://www.youtube.com/watch?v=EJt3_bFYKss "L'histoire de l'IA par Amy Boyd") -## Assignment +## Devoir [Créer une frise chonologique](assignment.fr.md) From 8d1ad5cc65ef3c0eb3e863d4a21e87d93987c3d4 Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Sat, 17 Jul 2021 23:57:51 +0200 Subject: [PATCH 098/228] Update assignment.fr.md --- 1-Introduction/2-history-of-ML/translations/assignment.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/2-history-of-ML/translations/assignment.fr.md b/1-Introduction/2-history-of-ML/translations/assignment.fr.md index f1f06cb7..c562516e 100644 --- a/1-Introduction/2-history-of-ML/translations/assignment.fr.md +++ b/1-Introduction/2-history-of-ML/translations/assignment.fr.md @@ -2,7 +2,7 @@ ## Instructions -Utiliser [ce repo](https://github.com/Digital-Humanities-Toolkit/timeline-builder), créer une frise chronologique de certains aspects de l'histoire des algorithmes, des mathématiques, des statistiques, de l'IA ou du machine learning, ou une combinaison de ceux-ci. Vous pouvez vous concentrer sur une personne, une idée ou une longue période de réflexion. Assurez-vous d'ajouter des éléments multimédias. +Utiliser [ce repo](https://github.com/Digital-Humanities-Toolkit/timeline-builder), créer une frise chronologique de certains aspects de l'histoire des algorithmes, des mathématiques, des statistiques, de l'IA ou du machine learning, ou une combinaison de ceux-ci. Vous pouvez vous concentrer sur une personne, une idée ou une longue période d'innovations. Assurez-vous d'ajouter des éléments multimédias. ## Rubrique From 645e67b6f4e19bfd18615f48c85aac48b2dc0b79 Mon Sep 17 00:00:00 2001 From: Fan Date: Sun, 18 Jul 2021 15:07:11 +0900 Subject: [PATCH 099/228] fix style mistake in 1-Introduction --- 1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md b/1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md index 373602f3..318876bd 100644 --- a/1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md +++ b/1-Introduction/4-techniques-of-ML/translations/README.zh-cn.md @@ -72,7 +72,7 @@ 训练过程完成后(训练大型模型可能需要多次迭代或“时期”),你将能够通过使用测试数据来衡量模型的性能来评估模型的质量。此数据是模型先前未分析的原始数据的子集。 你可以打印出有关模型质量的指标表。 -🎓 **模型拟合 ** +🎓 **模型拟合** 在机器学习的背景下,模型拟合是指模型在尝试分析不熟悉的数据时其底层功能的准确性。 From 79dca20d33b24bf1f52c5d6ea3e354603b9db195 Mon Sep 17 00:00:00 2001 From: Fan Date: Sun, 18 Jul 2021 15:13:01 +0900 Subject: [PATCH 100/228] fix style mistake in 2-Regression --- 2-Regression/1-Tools/translations/README.zh-cn.md | 4 ++-- 2-Regression/translations/README.zh-cn.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/2-Regression/1-Tools/translations/README.zh-cn.md b/2-Regression/1-Tools/translations/README.zh-cn.md index 4dff2795..41b167e3 100644 --- a/2-Regression/1-Tools/translations/README.zh-cn.md +++ b/2-Regression/1-Tools/translations/README.zh-cn.md @@ -46,7 +46,7 @@ Notebooks是一个交互式环境,允许开发人员编写代码并添加注 Jupyter服务器将以python3+启动。你会发现notebook可以“运行”的区域、代码块。你可以通过选择看起来像播放按钮的图标来运行代码块。 -2. 选择`md`图标并添加一点markdown,输入文字**#Welcome to your notebook**。 +2. 选择`md`图标并添加一点markdown,输入文字 **# Welcome to your notebook**。 接下来,添加一些Python代码。 @@ -80,7 +80,7 @@ Scikit-learn使构建模型和评估它们的使用变得简单。它主要侧 > 本教程的灵感来自Scikit-learn网站上的[线性回归示例](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py)。 -在与本课程相关的_notebook.ipynb_文件中,通过点击“垃圾桶”图标清除所有单元格。 +在与本课程相关的 _notebook.ipynb_ 文件中,通过点击“垃圾桶”图标清除所有单元格。 在本节中,你将使用一个关于糖尿病的小数据集,该数据集内置于Scikit-learn中以用于学习目的。想象一下,你想为糖尿病患者测试一种治疗方法。机器学习模型可能会帮助你根据变量组合确定哪些患者对治疗反应更好。即使是非常基本的回归模型,在可视化时,也可能会显示有助于组织理论临床试验的变量信息。 diff --git a/2-Regression/translations/README.zh-cn.md b/2-Regression/translations/README.zh-cn.md index 24c7a26c..f7c511e6 100644 --- a/2-Regression/translations/README.zh-cn.md +++ b/2-Regression/translations/README.zh-cn.md @@ -6,7 +6,7 @@ ![jack-o-lantern](../images/jack-o-lanterns.jpg) > Foto oleh Beth Teutschmann di Unsplash -##你会学到什么 +## 你会学到什么 这节的课程包括机器学习领域中的多种回归模型。回归模型可以明确多种变量间的_关系_。这种模型可以用来预测类似长度、温度和年龄之类的值, 通过分析数据点来揭示变量之间的关系。 From 488fabcd6d0f2b4c4df121dc9a15e47219f1491c Mon Sep 17 00:00:00 2001 From: Colin Zang Date: Sun, 18 Jul 2021 20:43:10 +0800 Subject: [PATCH 101/228] Update README.zh-cn.md --- .../translations/README.zh-cn.md | 93 ++++++++++--------- 1 file changed, 50 insertions(+), 43 deletions(-) diff --git a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md index 3d122be6..e9df88a3 100644 --- a/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md +++ b/6-NLP/1-Introduction-to-NLP/translations/README.zh-cn.md @@ -1,97 +1,103 @@ # 自然语言处理介绍 -这节课讲解了*自然语言处理*简要历史和重要概念,*自然语言处理*是计算语言学的一个子领域。 +这节课讲解了 *自然语言处理* 的简要历史和重要概念,*自然语言处理*是计算语言学的一个子领域。 ## [课前测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/31/) ## 介绍 -众所周知,自然语言处理(Natural Language Processing, NLP)是机器学习在生产软件中应用最广泛的领域之一。 +众所周知,自然语言处理 (Natural Language Processing, NLP) 是机器学习在生产软件中应用最广泛的领域之一。 -✅你能想到哪些你日常生活中使用的软件嵌入了某些自然语言处理技术呢?你经常使用的文字处理程序或移动应用程序是否嵌入了自然语言处理技术呢? +✅ 你能想到哪些你日常生活中使用的软件可能嵌入了自然语言处理技术呢?或者,你经常使用的文字处理程序或移动应用程序中是否嵌入了自然语言处理技术呢? 你将会学习到: -- **语言的思想**. 语言的发展历程及主要研究领域. -- **定义和概念**. 你还将学习到有关计算机如何处理文本的定义和概念,包括解析、语法以及名词和动词的识别。本节课程包含一些编码任务并介绍了几个重要的概念,你将在下一节课中学习编码实现这些概念。 +- **什么是「语言」**。语言的发展历程,以及相关研究的主要领域。 +- **定义和概念**。你还将了解关于计算机文本处理的概念。包括解析 (parsing)、语法 (grammar) 以及识别名词与动词。这节课中有一些编程任务;还有一些重要概念将在以后的课程中被引入,届时你也会练习通过编程实现其它概念。 + ## 计算语言学 -计算语言学是一个经过几十年研究和发展的领域,它研究计算机如何使用语言、理解语言、翻译语言及使用语言交流。自然语言处理(NLP)是计算语言学中一个专注于计算机如何处理“自然”或人类语言的相关领域, -### 例子 - 电话号码识别 +计算语言学 (Computational Linguistics) 是一个经过几十年研究和发展的领域,它研究如何让计算机能使用、理解、翻译语言并使用语言交流。自然语言处理 (NLP) 是计算语言学中一个专注于计算机如何处理「自然的」(或者说,人类的)语言的相关领域。 + +### 举例:电话号码识别 -如果你曾经在手机上使用语音输入替代键盘输入或者向语音助手小娜提问,那么你的语音将被转录为文本形式后进行处理或者叫*解析*。被检测到的关键字最后将被处理成手机或语音助手可以理解并采取行动的格式。 +如果你曾经在手机上使用语音输入替代键盘输入,或者使用过虚拟语音助手,那么你的语音将被转录(或者叫*解析*)为文本形式后进行处理。被检测到的关键字最后将被处理成手机或语音助手可以理解并可以依此做出行为的格式。 ![comprehension](../images/comprehension.png) -> 真实的语言理解十分困难!图源:[Jen Looper](https://twitter.com/jenlooper) +> 真正意义上的语言理解很难!图源:[Jen Looper](https://twitter.com/jenlooper) + ### 这项技术是如何实现的? -有人编写了一个计算机程序来实现这项技术。几十年前,一些科幻作家预测人类很大可能会和他们的电脑对话,而电脑总是能准确地理解人类的意思。可惜的是,事实证明这是一个比许多人想象中更难实现的问题,虽然今天这个问题已经被初步解决,但在理解句子的含义时,要实现“完美”的自然语言处理仍然存在重大挑战。句子中的幽默理解或讽刺等情绪的检测是一个特别困难的问题。 +我们之所以可能完成这样的任务,是因为有人编写了一个计算机程序来实现它。几十年前,一些科幻作家预测,在未来,人类很大可能会能够他们的电脑对话,而电脑总是能准确地理解人类的意思。可惜的是,事实证明这个问题的解决比我们想象的更困难。虽然今天这个问题已经被初步解决,但在理解句子的含义时,要实现 “完美” 的自然语言处理仍然存在重大挑战 —— 理解幽默或是检测感情(比如讽刺)对于计算机来说尤其困难。 + +现在,你可能会想起课堂上老师讲解的语法。在某些国家/地区,语法和语言学知识是学生的专题课内容。但在另一些国家/地区,不管是从小学习的第一语言(学习阅读和写作),还是之后学习的第二语言中,语法及语言学知识都是作为语言的一部分教学的。所以,如果你不能很好地区分名词与动词或者区分副词与形容词,请不要担心! -此时,你可能会想起学校课堂上老师讲解的部分句子语法。在某些国家/地区,语法和语言学知识是学生的专题课内容。但在另一些国家/地区,不管是在小学时的第一语言(学习阅读和写作),或者在高年级及高中时学习的第二语言中,语法及语言学知识是作为学习语言的一部分教学的。如果你不能很好地区分名词与动词或者区分副词与形容词,请不要担心! +你还为难以区分*一般现在时*与*现在进行时*而烦恼吗?没关系的,即使是对以这门语言为母语的人在内的大多数人来说,区分它们都很有挑战性。但是,计算机非常善于应用标准的规则,你将学会编写可以像人一样"解析"句子的代码。稍后你将面对的更大挑战是理解句子的*语义*和*情绪*。 -如果你还为区分*一般现在时*与*现在进行时*而烦恼,你并不是一个人。即使是对以这门语言为母语的人在内的很多人来说这都是一项有挑战性的任务。好消息是,计算机非常善于应用标准的规则,你将学会编写可以像人一样"解析"句子的代码。稍后你将面对的更大挑战是理解句子的*语义*和*情绪*。 ## 前提 -本节教程的主要先决条件是能够阅读和理解本节教程的语言。本节中没有数学问题或方程需要解决。虽然原作者用英文写了这教程,但它也被翻译成其他语言,所以你可能在阅读翻译内容。有使用多种不同语言的示例(以比较不同语言的不同语法规则)。这些是*未*翻译的,但解释性文本是翻译内容,所以表义应当是清晰的。 +本节教程的主要先决条件是能够阅读和理解本节教程的语言。本节中没有数学问题或方程需要解决。虽然原作者用英文写了这教程,但它也被翻译成其他语言,所以你可能在阅读翻译内容。这节课的示例中涉及到很多语言种类(以比较不同语言的不同语法规则)。这些是*未*翻译的,但对它们的解释是翻译过的,所以你应该能理解它在讲什么。 -编程任务中,你将会使用Python语言,示例使用的是Python 3.8版本。 +编程任务中,你将会使用 Python 语言,示例使用的是 Python 3.8 版本。 -在本节中你将需要并使用: +在本节中你将需要并使用如下技能: -- **Python 3 理解**. Python 3中的编程语言理解,本课使用输入、循环、文件读取、数组。 -- **Visual Studio Code + 扩展**. 我们将使用 Visual Studio Code 及其 Python 扩展。你还可以使用你选择的 Python IDE。 -- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob)是一个简化的 Python 文本处理库。按照 TextBlob 网站上的说明在您的系统上安装它(也安装语料库,如下所示): +- **Python 3**。你需要能够理解并使用 Python 3. 本课将会使用输入、循环、文件读取、数组功能。 +- **Visual Studio Code + 扩展**. 我们将使用 Visual Studio Code 及其 Python 扩展。你也可以使用你喜欢的 Python IDE。 +- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob)是一个精简的 Python 文本处理库。请按照 TextBlob 网站上的说明,在您的系统上安装它(也需要安装语料库,安装代码如下所示): - ```bash pip install -U textblob python -m textblob.download_corpora ``` -> 💡 提示:可以在 VS Code 环境中直接运行 Python。 点击[docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-15963-cxa)查看更多信息。 +> 💡 提示:你可以在 VS Code 环境中直接运行 Python。 点击[docs](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-15963-cxa)查看更多信息。 ## 与机器对话 -试图让计算机理解人类语言的历史可以追溯到几十年前,最早考虑自然语言处理的科学家之一是 *Alan Turing*。 +试图让计算机理解人类语言的尝试最早可以追溯到几十年前。*Alan Turing* 是最早研究自然语言处理问题的科学家之一。 + ### 图灵测试 -当图灵在1950年代研究*人工智能*时,他考虑是否可以对人和计算机进行对话测试(通过打字对应),其中对话中的人不确定他们是在与另一个人交谈还是与计算机交谈. +当图灵在 1950 年代研究*人工智能*时,他想出了这个思维实验:让人类和计算机通过打字的方式来交谈,其中人类并不知道对方是人类还是计算机。 + +如果经过一定时间的交谈,人类无法确定对方是否是计算机,那么是否可以认为计算机正在“思考”? -如果经过一定时间的交谈,人类无法确定答案是否来自计算机,那么是否可以说计算机正在“思考”? ### 灵感 - “模仿游戏” -这个想法来自一个名为 *模仿游戏* 的派对游戏,其中一名审讯者独自一人在一个房间里,负责确定两个人(在另一个房间里)是男性还是女性。审讯者可以传递笔记,并且需要想出能够揭示神秘人性别的问题。当然,另一个房间的玩家试图通过回答问题的方式来欺骗审讯者,例如误导或迷惑审讯者,同时表现出诚实回答的样子。 +这个想法来自一个名为 *模仿游戏* 的派对游戏,其中一名审讯者独自一人在一个房间里,负责确定在另一个房间里的两人的性别(男性或女性)。审讯者可以传递笔记,并且需要想出能够揭示神秘人性别的问题。当然,另一个房间的玩家也可以通过回答问题的方式来欺骗审讯者,例如用看似真诚的方式误导或迷惑审讯者。 -### Eliza的研发 +### Eliza 的研发 -在 1960 年代,一位名叫 *Joseph Weizenbaum* 的麻省理工学院科学家开发了[*Eliza*](https:/wikipedia.org/wiki/ELIZA),Eliza是一位计算机“治疗师”,它可以向人类提出问题并表现出理解他们的答案。然而,虽然 Eliza 可以解析句子并识别某些语法结构和关键字以给出合理的答案,但不能说它*理解*了句子。如果 Eliza 看到的句子格式为“**I am** sad”,它可能会重新排列并替换句子中的单词以形成响应“How long have **you been** sad"。 +在 1960 年代的麻省理工学院,一位名叫 *Joseph Weizenbaum* 的科学家开发了[*Eliza*](https:/wikipedia.org/wiki/ELIZA)。Eliza 是一位计算机“治疗师”,它可以向人类提出问题并让人类觉得它能理解人类的回答。然而,虽然 Eliza 可以解析句子并识别某些语法结构和关键字以给出合理的答案,但不能说它*理解*了句子。如果 Eliza 看到的句子格式为“**I am** sad”(**我很** 难过),它可能会重新排列并替换句子中的单词,回答 “How long have **you been** sad"(**你已经** 难过 多久了)。 -这给人的印象是伊丽莎理解了这句话,并在问一个后续问题,而实际上,它是在改变时态并添加一些词。如果 Eliza 无法识别它有响应的关键字,它会给出一个随机响应,该响应可以适用于许多不同的语句。 Eliza 很容易被欺骗,例如,如果用户写了**You are** a bicycle",它可能会回复"How long have **I been** a bicycle?",而不是更合理的回答。 +看起来像是 Eliza 理解了这句话,还在询问关于这句话的问题,而实际上,它只是在改变时态和添加词语。如果 Eliza 没有在回答中发现它知道如何响应的词汇,它会给出一个随机响应,该响应可以适用于许多不同的语句。 Eliza 很容易被欺骗,例如,如果用户写了 "**You are** a bicycle"(**你是** 个 自行车),它可能会回复 "How long have **I been** a bicycle?"(**我已经是** 一个 自行车 多久了?),而不是更合理的回答。 -[![Chatting with Eliza](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "Chatting with Eliza") +[![跟 Eliza 聊天](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "跟 Eliza 聊天") -> 🎥 点击上方的图片查看真实的ELIZA程序视频 +> 🎥 点击上方的图片查看关于 Eliza 原型的视频 -> 注意:如果你拥有ACM账户,你可以阅读1996年发表的[Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract)的原始介绍。或者,在[wikipedia](https://wikipedia.org/wiki/ELIZA)阅读有关 Eliza 的信息 +> 旁注:如果你拥有 ACM 账户,你可以阅读 1996 年发表的 [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract)的原始介绍。或者,在[维基百科](https://wikipedia.org/wiki/ELIZA)上阅读有关 Eliza 的信息。 -## 联系 - 编码实现一个基础的对话机器人 +## 练习 - 编程实现一个基础的对话机器人 -像 Eliza 一样的对话机器人是一个似乎可以智能地理解和响应用户输入的程序。与 Eliza 不同的是,我们的机器人不会用规则让它看起来像是在进行智能对话。取而代之的是,我们的对话机器人将只有一种能力,通过几乎在所有琐碎对话中都适用的随机响应保持对话的进行。 +像 Eliza 一样的对话机器人是一个看起来可以智能地理解和响应用户输入的程序。与 Eliza 不同的是,我们的机器人不会用规则让它看起来像是在进行智能对话。我们的对话机器人将只有一种能力:它只会通过基本上可以糊弄所有普通对话的句子来随机回答,使得谈话能够继续进行。 ### 计划 搭建聊天机器人的步骤 -1. 打印指导用户如何与机器人交互的说明 +1. 打印用户与机器人交互的使用说明 2. 开启循环 1. 获取用户输入 2. 如果用户要求退出,就退出 - 3. 处理用户输入并选择一个回答(在这个例子中,回答从一个可能的通用回答列表中随机选择) + 3. 处理用户输入并选择一个回答(在这个例子中,从回答列表中随机选择一个回答) 4. 打印回答 3. 重复步骤2 ### 构建聊天机器人 -接下来让我们构建聊天机器人。我们将从定义一些短语开始。 +接下来让我们建一个聊天机器人。我们将从定义一些短语开始。 -1. 使用以下随机响应在 Python 中自己创建此机器人: +1. 使用以下随机的回复(`random_responses`)在 Python 中自己创建此机器人: ```python random_responses = ["That is quite interesting, please tell me more.", @@ -102,7 +108,7 @@ "Did you catch the game last night?"] ``` - 以下是一些指导你的示例输出(用户输入位于以 `>` 开头的行上): + 程序运行看起来应该是这样:(用户输入位于以 `>` 开头的行上) ```output Hello, I am Marvin, the simple robot. @@ -125,18 +131,18 @@ It was nice talking to you, goodbye! ``` - 该任务的一种可能解决方案在[这里](../solution/bot.py) + 示例程序在[这里](../solution/bot.py)。这只是一种可能的解决方案。 - ✅ 停止并思考 + ✅ 停下来,思考一下 - 1. 你认为随机响应会“欺骗”某人认为机器人实际上理解他们吗? - 2. 机器人需要哪些功能才能更有效? - 3. 如果机器人真的可以“理解”一个句子的意思,它是否也需要“记住”对话中前面句子的意思? + 1. 你认为这些随机响应能够“欺骗”人类,使人类认为机器人实际上理解了他们的意思吗? + 2. 机器人需要哪些功能才能更有效的回应? + 3. 如果机器人真的可以“理解”一个句子的意思,它是否也需要“记住”前面句子的意思? --- ## 🚀挑战 -选择上面的“停止并思考”元素之一,然后尝试在代码中实现它们或使用伪代码在纸上编写解决方案。 +在上面的「停下来,思考一下」板块中选择一个问题,尝试编程实现它们,或使用伪代码在纸上编写解决方案。 在下一课中,您将了解解析自然语言和机器学习的许多其他方法。 @@ -144,7 +150,8 @@ ## 复习与自学 -看看下面的参考资料作为进一步的阅读机会。 +看看下面的参考资料作为进一步的参考阅读。 + ### 参考 1. Schubert, Lenhart, "Computational Linguistics", *The Stanford Encyclopedia of Philosophy* (Spring 2020 Edition), Edward N. Zalta (ed.), URL = . From 479ebae0be16751f333a429c994a48ef52e18fa2 Mon Sep 17 00:00:00 2001 From: Colin Zang Date: Sun, 18 Jul 2021 20:58:42 +0800 Subject: [PATCH 102/228] Create README.zh-cn.md --- 6-NLP/translations/README.zh-cn.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 6-NLP/translations/README.zh-cn.md diff --git a/6-NLP/translations/README.zh-cn.md b/6-NLP/translations/README.zh-cn.md new file mode 100644 index 00000000..db08bd08 --- /dev/null +++ b/6-NLP/translations/README.zh-cn.md @@ -0,0 +1,24 @@ +# 自然语言处理入门 + +自然语言处理 (NLP) 是人工智能的一个子领域,主要研究如何让机器理解和处理人类语言,并用它来执行拼写检查或机器翻译等任务。 + +## 本节主题:欧洲语言文学和欧洲浪漫酒店 ❤️ + +在这部分课程中,您将了解机器学习最广泛的用途之一:自然语言处理 (NLP)。源自计算语言学,这一类人工智能会通过语音或文本与人类交流,建立连接人与机器的桥梁。 + +课程中,我们将通过构建小型对话机器人来学习 NLP 的基础知识,以了解机器学习是如何使这个机器人越来越“智能”。您将穿越回 1813 年,与简·奥斯汀的经典小说 **傲慢与偏见** 中的 Elizabeth Bennett 和 Mr. Darcy 聊天(该小说于 1813 年出版)。然后,您将通过欧洲的酒店评论来进一步学习情感分析。 + +![傲慢与偏见之书,和茶](../images/p&p.jpg) +> 由 Elaine Howlin 拍摄, 来自 Unsplash + +## 课程 + +1. [自然语言处理简介](../1-Introduction-to-NLP/README.md) +2. [NLP 常见任务与技巧](../2-Tasks/README.md) +3. [机器学习翻译和情感分析](../3-Translation-Sentiment/README.md) +4. [准备数据](../4-Hotel-Reviews-1/README.md) +5. [用于情感分析的工具:NLTK](../5-Hotel-Reviews-2/README.md) + +## 作者 + +这些自然语言处理课程由 [Stephen Howell](https://twitter.com/Howell_MSFT) 用 ☕ 编写 \ No newline at end of file From 54a3eb726b273b8b955986439dd946172d193fb7 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Sun, 18 Jul 2021 16:35:47 +0300 Subject: [PATCH 103/228] Add 3 files translated to Turkish under Classification lesson --- .../1-Introduction/translations/README.tr.md | 297 ++++++++++++++++++ .../translations/assignment.tr.md | 11 + 4-Classification/translations/README.tr.md | 25 ++ 3 files changed, 333 insertions(+) create mode 100644 4-Classification/1-Introduction/translations/README.tr.md create mode 100644 4-Classification/1-Introduction/translations/assignment.tr.md create mode 100644 4-Classification/translations/README.tr.md diff --git a/4-Classification/1-Introduction/translations/README.tr.md b/4-Classification/1-Introduction/translations/README.tr.md new file mode 100644 index 00000000..9413d5f3 --- /dev/null +++ b/4-Classification/1-Introduction/translations/README.tr.md @@ -0,0 +1,297 @@ +# Sınıflandırmaya giriş + +Bu dört derste klasik makine öğreniminin temel bir odağı olan _sınıflandırma_ konusunu keşfedeceksiniz. Asya ve Hindistan'ın nefis mutfağının tamamı üzerine hazırlanmış bir veri setiyle çeşitli sınıflandırma algoritmalarını kullanmanın üzerinden geçeceğiz. Umarız açsınızdır! + +![sadece bir tutam!](../images/pinch.png) + +> Bu derslerede Pan-Asya mutfağını kutlayın! Fotoğraf [Jen Looper](https://twitter.com/jenlooper) tarafından çekilmiştir. + +Sınıflandırma, regresyon yöntemleriyle birçok ortak özelliği olan bir [gözetimli öğrenme](https://wikipedia.org/wiki/Supervised_learning) biçimidir. Eğer makine öğrenimi tamamen veri setleri kullanarak değerleri veya nesnelere verilecek isimleri öngörmekse, sınıflandırma genellikle iki gruba ayrılır: _ikili sınıflandırma_ ve _çok sınıflı sınıflandırma_. + +[![Sınıflandırmaya giriş](https://img.youtube.com/vi/eg8DJYwdMyg/0.jpg)](https://youtu.be/eg8DJYwdMyg "Introduction to classification") + +> :movie_camera: Video için yukarıdaki fotoğrafa tıklayın: MIT's John Guttag introduces classification (MIT'den John Guttag sınıflandırmayı tanıtıyor) + +Hatırlayın: + +- **Doğrusal regresyon** değişkenler arasındaki ilişkileri öngörmenize ve o doğruya ilişkili olarak yeni bir veri noktasının nereye düşeceğine dair doğru öngörülerde bulunmanıza yardımcı oluyordu. Yani, _bir balkabağının fiyatının aralık ayına göre eylül ayında ne kadar olabileceğini_ öngörebilirsiniz örneğin. +- **Lojistik regresyon** "ikili kategoriler"i keşfetmenizi sağlamıştı: bu fiyat noktasında, _bu balkabağı turuncu mudur, turuncu-değil midir?_ + +Sınıflandırma, bir veri noktasının etiketini veya sınıfını belirlemek için farklı yollar belirlemek üzere çeşitli algoritmalar kullanır. Bir grup malzemeyi gözlemleyerek kökeninin hangi mutfak olduğunu belirleyip belirleyemeyeceğimizi görmek için bu mutfak verisiyle çalışalım. + +## [Ders öncesi kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/19/) + +### Giriş + +Sınıflandırma, makine öğrenimi araştırmacısının ve veri bilimcisinin temel işlerinden biridir. İkili bir değerin temel sınıflandırmasından ("Bu e-posta gereksiz (spam) midir yoksa değil midir?") bilgisayarla görüden yararlanarak karmaşık görüntü sınıflandırma ve bölütlemeye kadar, veriyi sınıf sınıf sıralayabilmek ve soru sorabilmek daima faydalıdır. + +Süreci daha bilimsel bir yolla ifade etmek gerekirse, sınıflandırma yönteminiz, girdi bilinmeyenlerinin arasındaki ilişkiyi çıktı bilinmeyenlerine eşlemenizi sağlayan öngörücü bir model oluşturur. + +![ikili ve çok sınıflı sınıflandırma karşılaştırması](../images/binary-multiclass.png) + +> Sınıflandırma algoritmalarının başa çıkması gereken ikili ve çok sınıflı problemler. Bilgilendirme grafiği [Jen Looper](https://twitter.com/jenlooper) tarafından hazırlanmıştır. + +Verimizi temizleme, görselleştirme ve makine öğrenimi görevleri için hazırlama süreçlerine başlamadan önce, veriyi sınıflandırmak için makine öğreniminin leveraj edilebileceği çeşitli yolları biraz öğrenelim. + +[İstatistikten](https://wikipedia.org/wiki/Statistical_classification) türetilmiş olarak, klasik makine öğrenimi kullanarak sınıflandırma, _X hastalığının gelişmesi ihtimalini_ belirlemek için `smoker`, `weight`, ve `age` gibi öznitelikler kullanır. Daha önce yaptığınız regresyon alıştırmalarına benzeyen bir gözetimli öğrenme yöntemi olarak, veriniz etiketlenir ve makine öğrenimi algoritmaları o etiketleri, sınıflandırmak ve veri setinin sınıflarını (veya 'özniteliklerini') öngörmek ve onları bir gruba veya bir sonuca atamak için kullanır. + +:white_check_mark: Mutfaklarla ilgili bir veri setini biraz düşünün. Çok sınıflı bir model neyi cevaplayabilir? İkili bir model neyi cevaplayabilir? Farz edelim ki verilen bir mutfağın çemen kullanmasının muhtemel olup olmadığını belirlemek istiyorsunuz. Farzedelim ki yıldız anason, enginar, karnabahar ve bayır turpu ile dolu bir alışveriş poşetinden tipik bir Hint yemeği yapıp yapamayacağınızı görmek istiyorsunuz. + +[![Çılgın gizem sepetleri](https://img.youtube.com/vi/GuTeDbaNoEU/0.jpg)](https://youtu.be/GuTeDbaNoEU "Crazy mystery baskets") + +> :movie_camera: Video için yukarıdaki fotoğrafa tıklayın. Aşçıların rastgele malzeme seçeneklerinden yemek yaptığı 'Chopped' programının tüm olayı 'gizem sepetleri'dir. Kuşkusuz, bir makine öğrenimi modeli onlara yardımcı olurdu! + +## Merhaba 'sınıflandırıcı' + +Bu mutfak veri setiyle ilgili sormak istediğimiz soru aslında bir **çok sınıflı soru**dur çünkü elimizde farklı potansiyel ulusal mutfaklar var. Verilen bir grup malzeme için, veri bu sınıflardan hangisine uyacak? + +Scikit-learn, veriyi sınıflandırmak için kullanmak üzere, çözmek istediğiniz problem çeşidine bağlı olarak, çeşitli farklı algoritmalar sunar. Önümüzdeki iki derste, bu algoritmalardan birkaçını öğreneceksiniz. + +## Alıştırma - verinizi temizleyip dengeleyin + +Bu projeye başlamadan önce elinizdeki ilk görev, daha iyi sonuçlar almak için, verinizi temizlemek ve **dengelemek**. Bu klasördeki boş _notebook.ipynb_ dosyasıyla başlayın. + +Kurmanız gereken ilk şey [imblearn](https://imbalanced-learn.org/stable/). Bu, veriyi daha iyi dengelemenizi sağlayacak bir Scikit-learn paketidir. (Bu görev hakkında birazdan daha fazla bilgi göreceksiniz.) + +1. `imblearn` kurun, `pip install` çalıştırın, şu şekilde: + + ```python + pip install imblearn + ``` + +1. Verinizi almak ve görselleştirmek için ihtiyaç duyacağınız paketleri alın (import edin), ayrıca `imblearn` paketinden `SMOTE` alın. + + ```python + import pandas as pd + import matplotlib.pyplot as plt + import matplotlib as mpl + import numpy as np + from imblearn.over_sampling import SMOTE + ``` + + Şimdi okumak için hazırsınız, sonra veriyi alın. + +1. Sonraki görev veriyi almak olacak: + + ```python + df = pd.read_csv('../../data/cuisines.csv') + ``` + + `read_csv()` kullanmak _cusines.csv_ csv dosyasının içeriğini okuyacak ve `df` değişkenine yerleştirecek. + +1. Verinin şeklini kontrol edin: + + ```python + df.head() + ``` + + İlk beş satır şöyle görünüyor: + + ```output + | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | + | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | + | 0 | 65 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 1 | 66 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 2 | 67 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 3 | 68 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 4 | 69 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + ``` + +1. `info()` fonksiyonunu çağırarak bu veri hakkında bilgi edinin: + + ```python + df.info() + ``` + + Çıktınız şuna benzer: + + ```output + + RangeIndex: 2448 entries, 0 to 2447 + Columns: 385 entries, Unnamed: 0 to zucchini + dtypes: int64(384), object(1) + memory usage: 7.2+ MB + ``` + +## Alıştırma - mutfaklar hakkında bilgi edinmek + +Şimdi, işimiz daha da ilginçleşmeye başlıyor. Mutfak mutfak verinin dağılımını keşfedelim + +1. `barh()` fonksiyonunu çağırarak veriyi sütunlarla çizdirin: + + ```python + df.cuisine.value_counts().plot.barh() + ``` + + ![mutfak veri dağılımı](../images/cuisine-dist.png) + + Sonlu sayıda mutfak var, ancak verinin dağılımı düzensiz. Bunu düzeltebilirsiniz! Bunu yapmadan önce, biraz daha keşfedelim. + +1. Her mutfak için ne kadar verinin mevcut olduğunu bulun ve yazdırın: + + ```python + thai_df = df[(df.cuisine == "thai")] + japanese_df = df[(df.cuisine == "japanese")] + chinese_df = df[(df.cuisine == "chinese")] + indian_df = df[(df.cuisine == "indian")] + korean_df = df[(df.cuisine == "korean")] + + print(f'thai df: {thai_df.shape}') + print(f'japanese df: {japanese_df.shape}') + print(f'chinese df: {chinese_df.shape}') + print(f'indian df: {indian_df.shape}') + print(f'korean df: {korean_df.shape}') + ``` + + çıktı şöyle görünür: + + ```output + thai df: (289, 385) + japanese df: (320, 385) + chinese df: (442, 385) + indian df: (598, 385) + korean df: (799, 385) + ``` + +## Malzemeleri keşfetme + +Şimdi veriyi daha derinlemesine inceleyebilirsiniz ve her mutfak için tipik malzemelerin neler olduğunu öğrenebilirsiniz. Mutfaklar arasında karışıklık yaratan tekrar eden veriyi temizlemelisiniz, dolayısıyla şimdi bu problemle ilgili bilgi edinelim. + +1. Python'da, malzeme veri iskeleti yaratmak için `create_ingredient()` diye bir fonksiyon oluşturun. Bu fonksiyon, yardımcı olmayan bir sütunu temizleyerek ve sayılarına göre malzemeleri sıralayarak başlar: + + ```python + def create_ingredient_df(df): + ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value') + ingredient_df = ingredient_df[(ingredient_df.T != 0).any()] + ingredient_df = ingredient_df.sort_values(by='value', ascending=False + inplace=False) + return ingredient_df + ``` + + Şimdi bu fonksiyonu, her mutfağın en yaygın ilk on malzemesi hakkında hakkında fikir edinmek için kullanabilirsiniz. + +1. `create_ingredient()` fonksiyonunu çağırın ve `barh()` fonksiyonunu çağırarak çizdirin: + + ```python + thai_ingredient_df = create_ingredient_df(thai_df) + thai_ingredient_df.head(10).plot.barh() + ``` + + ![Tayland](../images/thai.png) + +1. Japon verisi için de aynısını yapın: + + ```python + japanese_ingredient_df = create_ingredient_df(japanese_df) + japanese_ingredient_df.head(10).plot.barh() + ``` + + ![Japon](../images/japanese.png) + +1. Şimdi Çin malzemeleri için yapın: + + ```python + chinese_ingredient_df = create_ingredient_df(chinese_df) + chinese_ingredient_df.head(10).plot.barh() + ``` + + ![Çin](../images/chinese.png) + +1. Hint malzemelerini çizdirin: + + ```python + indian_ingredient_df = create_ingredient_df(indian_df) + indian_ingredient_df.head(10).plot.barh() + ``` + + ![Hint](../images/indian.png) + +1. Son olarak, Kore malzemelerini çizdirin: + + ```python + korean_ingredient_df = create_ingredient_df(korean_df) + korean_ingredient_df.head(10).plot.barh() + ``` + + ![Kore](../images/korean.png) + +1. Şimdi, `drop()` fonksiyonunu çağırarak, farklı mutfaklar arasında karışıklığa sebep olan en çok ortaklık taşıyan malzemeleri temizleyelim: + + Herkes pirinci, sarımsağı ve zencefili seviyor! + + ```python + feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1) + labels_df = df.cuisine #.unique() + feature_df.head() + ``` + +## Veri setini dengeleyin + +Veriyi temizlediniz, şimdi [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Synthetic Minority Over-sampling Technique" ("Sentetik Azınlık Aşırı-Örnekleme/Örneklem-Artırma Tekniği") kullanarak dengeleyelim. + +1. `fit_resample()` fonksiyonunu çağırın, bu strateji ara değerlemeyle yeni örnekler üretir. + + ```python + oversample = SMOTE() + transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df) + ``` + + Verinizi dengeleyerek, sınıflandırırken daha iyi sonuçlar alabileceksiniz. Bir ikili sınıflandırma düşünün. Eğer verimizin çoğu tek bir sınıfsa, bir makine öğrenimi modeli, sırf onun için daha fazla veri olduğundan o sınıfı daha sık tahmin edecektir. Veriyi dengelemek herhangi eğri veriyi alır ve bu dengesizliğin ortadan kaldırılmasına yardımcı olur. + +1. Şimdi, her bir malzeme için etiket sayısını kontrol edebilirsiniz: + + ```python + print(f'new label count: {transformed_label_df.value_counts()}') + print(f'old label count: {df.cuisine.value_counts()}') + ``` + + Çıktınız şöyle görünür: + + ```output + new label count: korean 799 + chinese 799 + indian 799 + japanese 799 + thai 799 + Name: cuisine, dtype: int64 + old label count: korean 799 + indian 598 + chinese 442 + japanese 320 + thai 289 + Name: cuisine, dtype: int64 + ``` + + Veri şimdi tertemiz, dengeli ve çok lezzetli! + +1. Son adım, dengelenmiş verinizi, etiket ve özniteliklerle beraber, yeni bir dosyaya gönderilebilecek yeni bir veri iskeletine kaydetmek: + + ```python + transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer') + ``` + +1. `transformed_df.head()` ve `transformed_df.info()` fonksiyonlarını kullanarak verinize bir kez daha göz atabilirsiniz. Gelecek derslerde kullanabilmek için bu verinin bir kopyasını kaydedin: + + ```python + transformed_df.head() + transformed_df.info() + transformed_df.to_csv("../../data/cleaned_cuisine.csv") + ``` + + Bu yeni CSV şimdi kök data (veri) klasöründe görülebilir. + +--- + +## :rocket: Meydan okuma + +Bu öğretim programı farklı ilgi çekici veri setleri içermekte. `data` klasörlerini inceleyin ve ikili veya çok sınıflı sınıflandırma için uygun olabilecek veri setleri bulunduran var mı, bakın. Bu veri seti için hangi soruları sorabilirdiniz? + +## [Ders sonrası kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/20/) + +## Gözden Geçirme & Kendi Kendine Çalışma + +SMOTE'nin API'ını keşfedin. En iyi hangi durumlar için kullanılıyor? Hangi problemleri çözüyor? + +## Ödev + +[Sınıflandırma yöntemlerini keşfedin](assignment.md) diff --git a/4-Classification/1-Introduction/translations/assignment.tr.md b/4-Classification/1-Introduction/translations/assignment.tr.md new file mode 100644 index 00000000..99dfe5c2 --- /dev/null +++ b/4-Classification/1-Introduction/translations/assignment.tr.md @@ -0,0 +1,11 @@ +# Sınıflandırma yöntemlerini keşfedin + +## Yönergeler + +[Scikit-learn dokümentasyonunda](https://scikit-learn.org/stable/supervised_learning.html) veriyi sınıflandırma yöntemlerini içeren büyük bir liste göreceksiniz. Bu dokümanlar arasında ufak bir çöpçü avı yapın: Hedefiniz, sınıflandırma yöntemleri aramak ve bu eğitim programındaki bir veri seti, sorabileceğiniz bir soru ve bir sınıflandırma yöntemi eşleştirmek. Bir .doc dosyasında elektronik çizelge veya tablo hazırlayın ve veri setinin sınıflandırma algoritmasıyla nasıl çalışacağını açıklayın. + +## Rubrik + +| Ölçüt | Örnek Alınacak Nitelikte | Yeterli | Geliştirme Gerekli | +| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| | Bir sınıflandırma yönteminin yanısıra 5 algoritmayı inceleyen bir doküman sunulmuş. İnceleme iyi açıklanmış ve detaylı. | Bir sınıflandırma yönteminin yanısıra 5 algoritmayı inceleyen bir doküman sunulmuş. İnceleme iyi açıklanmış ve detaylı. | Bir sınıflandırma yönteminin yanısıra 3'ten az algoritmayı inceleyen bir doküman sunulmuş ve inceleme iyi açıklanmış veya detaylı değil. | diff --git a/4-Classification/translations/README.tr.md b/4-Classification/translations/README.tr.md new file mode 100644 index 00000000..dc2ed959 --- /dev/null +++ b/4-Classification/translations/README.tr.md @@ -0,0 +1,25 @@ +# Sınıflandırmaya başlarken +## Bölgesel konu: Leziz Asya ve Hint Mutfağı :ramen: + +Asya ve Hindistan'da yemek gelenekleri fazlaca çeşitlilik gösterir ve çok lezzetlidir! Malzemelerini anlamaya çalışmak için bölgesel mutfak hakkındaki verilere bakalım. + +![Taylandlı yemek satıcısı](../images/thai-food.jpg) +> Fotoğraf Lisheng Chang tarafından çekilmiştir ve Unsplash'tadır. + +## Öğrenecekleriniz + +Bu bölümde, bu eğitim programının tamamen regresyon üzerine olan ilk bölümünde öğrendiğiniz becerilere dayanıp onların üstüne beceriler ekleyeceksiniz ve verileriniz hakkında bilgi sahibi olmanızı sağlayacak diğer sınıflandırıcıları öğreneceksiniz. + +> Sınıflandırma modelleriyle çalışmayı öğrenmenizi sağlayacak faydalı düşük kodlu araçlar vardır. [Bu görev için Azure ML](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa)'i deneyin. + +## Dersler + +1. [Sınıflandırmaya giriş](../1-Introduction/README.md) +2. [Daha fazla sınıflandırıcı](../2-Classifiers-1/README.md) +3. [Hatta daha fazla sınıflandırıcı](../3-Classifiers-2/README.md) +4. [Uygulamalı Makine Öğrenimi: bir web uygulaması oluşturun](../4-Applied/README.md) +## Katkıda bulunanlar + +"Sınıflandırmaya başlarken" [Cassie Breviu](https://www.twitter.com/cassieview) ve [Jen Looper](https://www.twitter.com/jenlooper) tarafından :hearts: ile yazılmıştır. + +Leziz mutfak veri seti [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines)'dan alınmıştır. From 47eba72c03526c2140409874691fbc48a0fcd2f9 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Sun, 18 Jul 2021 18:36:01 +0300 Subject: [PATCH 104/228] Fix file paths --- 4-Classification/1-Introduction/translations/README.tr.md | 6 +++--- 4-Classification/translations/README.tr.md | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/4-Classification/1-Introduction/translations/README.tr.md b/4-Classification/1-Introduction/translations/README.tr.md index 9413d5f3..e4cc372a 100644 --- a/4-Classification/1-Introduction/translations/README.tr.md +++ b/4-Classification/1-Introduction/translations/README.tr.md @@ -19,7 +19,7 @@ Hatırlayın: Sınıflandırma, bir veri noktasının etiketini veya sınıfını belirlemek için farklı yollar belirlemek üzere çeşitli algoritmalar kullanır. Bir grup malzemeyi gözlemleyerek kökeninin hangi mutfak olduğunu belirleyip belirleyemeyeceğimizi görmek için bu mutfak verisiyle çalışalım. -## [Ders öncesi kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/19/) +## [Ders öncesi kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/19/?loc=tr) ### Giriş @@ -286,7 +286,7 @@ Veriyi temizlediniz, şimdi [SMOTE](https://imbalanced-learn.org/dev/references/ Bu öğretim programı farklı ilgi çekici veri setleri içermekte. `data` klasörlerini inceleyin ve ikili veya çok sınıflı sınıflandırma için uygun olabilecek veri setleri bulunduran var mı, bakın. Bu veri seti için hangi soruları sorabilirdiniz? -## [Ders sonrası kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/20/) +## [Ders sonrası kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/20/?loc=tr) ## Gözden Geçirme & Kendi Kendine Çalışma @@ -294,4 +294,4 @@ SMOTE'nin API'ını keşfedin. En iyi hangi durumlar için kullanılıyor? Hangi ## Ödev -[Sınıflandırma yöntemlerini keşfedin](assignment.md) +[Sınıflandırma yöntemlerini keşfedin](assignment.tr.md) diff --git a/4-Classification/translations/README.tr.md b/4-Classification/translations/README.tr.md index dc2ed959..91b74255 100644 --- a/4-Classification/translations/README.tr.md +++ b/4-Classification/translations/README.tr.md @@ -14,7 +14,7 @@ Bu bölümde, bu eğitim programının tamamen regresyon üzerine olan ilk böl ## Dersler -1. [Sınıflandırmaya giriş](../1-Introduction/README.md) +1. [Sınıflandırmaya giriş](../1-Introduction/translations/README.tr.md) 2. [Daha fazla sınıflandırıcı](../2-Classifiers-1/README.md) 3. [Hatta daha fazla sınıflandırıcı](../3-Classifiers-2/README.md) 4. [Uygulamalı Makine Öğrenimi: bir web uygulaması oluşturun](../4-Applied/README.md) From 66f2f1318827f960638fee94c3ee0617f7914dad Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Sun, 18 Jul 2021 19:34:27 +0200 Subject: [PATCH 105/228] Italian Translation - Chapter 2 correction in 2-Data --- 3-Web-App/1-Web-App/translations/README.it.md | 347 ++++++++++++++++++ .../1-Web-App/translations/assignment.it.md | 11 + 3-Web-App/translations/README.it.md | 22 ++ 3 files changed, 380 insertions(+) create mode 100644 3-Web-App/1-Web-App/translations/README.it.md create mode 100644 3-Web-App/1-Web-App/translations/assignment.it.md create mode 100644 3-Web-App/translations/README.it.md diff --git a/3-Web-App/1-Web-App/translations/README.it.md b/3-Web-App/1-Web-App/translations/README.it.md new file mode 100644 index 00000000..18e6af10 --- /dev/null +++ b/3-Web-App/1-Web-App/translations/README.it.md @@ -0,0 +1,347 @@ +# Crearere un'app web per utilizzare un modello ML + +In questa lezione, si addestrerà un modello ML su un insieme di dati fuori dal mondo: _avvistamenti di UFO nel secolo scorso_, provenienti dal [database di NUFORC](https://www.nuforc.org). + +Si imparerà: + +- Come "scapigliare" un modello addestrato +- Come usare quel modello in un'app Flask + +Si continuerà a utilizzare i notebook per pulire i dati e addestrare il modello, ma si può fare un ulteriore passo avanti esplorando il processo utilizzando un modello "in the wild", per così dire: in un'app web. + +Per fare ciò, è necessario creare un'app Web utilizzando Flask. + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/17/) + +## Costruire un'app + +Esistono diversi modi per creare app Web per utilizzare modelli di machine learning. L'architettura web può influenzare il modo in cui il modello viene addestrato. Si immagini di lavorare in un'azienda in cui il gruppo di data science ha addestrato un modello che vogliono che venga utilizzato in un'app. + +### Considerazioni + +Ci sono molte domande da porsi: + +- **È un'app Web o un'app mobile?** Se si sta creando un'app mobile o si deve usare il modello in un contesto IoT, ci si può avvalere [di TensorFlow Lite](https://www.tensorflow.org/lite/) e usare il modello in un'app Android o iOS. +- **Dove risiederà il modello**? E' utilizzato in cloud o in locale? +- **Supporto offline**. L'app deve funzionare offline? +- **Quale tecnologia è stata utilizzata per addestrare il modello?** La tecnologia scelta può influenzare gli strumenti che è necessario utilizzare. + - **Utilizzare** TensorFlow Se si sta addestrando un modello utilizzando TensorFlow, ad esempio, tale ecosistema offre la possibilità di convertire un modello TensorFlow per l'utilizzo in un'app Web utilizzando [TensorFlow.js](https://www.tensorflow.org/js/). + - **Utilizzare PyTorch**. Se stai costruendo un modello utilizzando una libreria come PyTorch[,](https://pytorch.org/) si ha la possibilità di esportarlo in formato [ONNX](https://onnx.ai/) ( Open Neural Network Exchange) per l'utilizzo in app Web JavaScript che possono utilizzare il motore di esecuzione [Onnx](https://www.onnxruntime.ai/). Questa opzione verrà esplorata in una lezione futura per un modello addestrato da Scikit-learn + - **Utilizzo di Lobe.ai o Azure Custom vision**. Se si sta usando un sistema ML SaaS (Software as a Service) come [Lobe.ai](https://lobe.ai/) o [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-15963-cxa) per addestrare un modello, questo tipo di software fornisce modi per esportare il modello per molte piattaforme, inclusa la creazione di un'API su misura da interrogare nel cloud dalla propria applicazione online. + +Si hai anche l'opportunità di creare un'intera app Web Flask in grado di addestrare il modello stesso in un browser Web. Questo può essere fatto anche usando TensorFlow.js in un contesto JavaScript. + +Per i nostri scopi, poiché si è lavorato con i notebook basati su Python, verranno esplorati i passaggi necessari per esportare un modello addestrato da un tale notebook in un formato leggibile da un'app Web creata in Python. + +## Strumento + +Per questa attività sono necessari due strumenti: Flask e Pickle, entrambi eseguiti su Python. + +✅ Cos'è [Flask](https://palletsprojects.com/p/flask/)? Definito come un "micro-framework" dai suoi creatori, Flask fornisce le funzionalità di base dei framework web utilizzando Python e un motore di modelli per creare pagine web. Si dia un'occhiata a [questo modulo di apprendimento](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-15963-cxa) per esercitarsi a costruire con Flask. + +✅ Cos'è [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 è un modulo Python che serializza e de-serializza una struttura di oggetti Python. Quando si utilizza pickle in un modello, si serializza o si appiattisce la sua struttura per l'uso sul web. Cautela: pickle non è intrinsecamente sicuro, quindi si faccia attenzione se viene chiesto di de-serializzare un file. Un file creato con pickle ha il suffisso `.pkl`. + +## Esercizio: pulire i dati + +In questa lezione verranno utilizzati i dati di 80.000 avvistamenti UFO, raccolti da [NUFORC](https://nuforc.org) (The National UFO Reporting Center). Questi dati hanno alcune descrizioni interessanti di avvistamenti UFO, ad esempio: + +- **Descrizione di esempio lunga**. "Un uomo emerge da un raggio di luce che di notte brilla su un campo erboso e corre verso il parcheggio della Texas Instruments". +- **Descrizione di esempio breve**. "le luci ci hanno inseguito". + +Il [foglio](./data/ufos.csv) di calcolo ufos.csv include colonne sulla `città`, `lo stato` e il `paese` in cui è avvenuto l'avvistamento, la `forma dell'oggetto e la` sua `latitudine` e `longitudine`. + +Nel [notebook](notebook.ipynb) vuoto incluso in questa lezione: + +1. importare `pandas`, `matplotlib` e numpy `come` fatto nelle lezioni precedenti e importare il foglio di calcolo ufos. Si può dare un'occhiata a un insieme di dati di esempio: + + ```python + import pandas as pd + import numpy as np + + ufos = pd.read_csv('../data/ufos.csv') + ufos.head() + ``` + +1. Convertire i dati ufos in un piccolo dataframe con nuove intestazioni Controllare i valori univoci nel campo `Country` . + + ```python + ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']}) + + ufos.Country.unique() + ``` + +1. Ora si può ridurre la quantità di dati da gestire eliminando qualsiasi valore nullo e importando solo avvistamenti tra 1-60 secondi: + + ```python + ufos.dropna(inplace=True) + + ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)] + + ufos.info() + ``` + +1. Importare la libreria LabelEncoder `di` Scikit-learn per convertire i valori di testo per i paesi in un numero: + + ✅ LabelEncoder codifica i dati in ordine alfabetico + + ```python + from sklearn.preprocessing import LabelEncoder + + ufos['Country'] = LabelEncoder().fit_transform(ufos['Country']) + + ufos.head() + ``` + + I dati dovrebbero assomigliare a questo: + + ```output + Seconds Country Latitude Longitude + 2 20.0 3 53.200000 -2.916667 + 3 20.0 4 28.978333 -96.645833 + 14 30.0 4 35.823889 -80.253611 + 23 60.0 4 45.582778 -122.352222 + 24 3.0 3 51.783333 -0.783333 + ``` + +## Esercizio: costruire il proprio modello + +Ora ci si può preparare per addestrare un modello portando i dati nel gruppo di addestramento e test. + +1. Selezionare le tre caratteristiche su cui lo si vuole allenare come vettore X mentre il vettore y sarà `Country` Se deve essere in grado di inserire `Secondi`, `Latitudine` e `Longitudine` e ottenere un ID nazione da restituire. + + ```python + from sklearn.model_selection import train_test_split + + Selected_features = ['Seconds','Latitude','Longitude'] + + X = ufos[Selected_features] + y = ufos['Country'] + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + ``` + +1. Addestrare il modello usando la regressione logistica: + + ```python + from sklearn.metrics import accuracy_score, classification_report + from sklearn.linear_model import LogisticRegression + model = LogisticRegression() + model.fit(X_train, y_train) + predictions = model.predict(X_test) + + print(classification_report(y_test, predictions)) + print('Predicted labels: ', predictions) + print('Accuracy: ', accuracy_score(y_test, predictions)) + ``` + +La precisione non è male **(circa il 95%)**, non sorprende che `Country` e `Latitude/Longitude` siano correlati. + +Il modello creato non è molto rivoluzionario in quanto si dovrebbe essere in grado di dedurre una `nazione` dalla sua `latitudine` e `longitudine`, ma è un buon esercizio provare ad allenare dai dati grezzi che sono stati puliti ed esportati, e quindi utilizzare questo modello in una app web. + +## Esercizio: usare pickle con il modello + +Ora è il momento di utilizzare pickle _con_ il modello! Lo si può fare in poche righe di codice. Una volta che è stato serializzato con pickle_,_ caricare il modello e testarlo rispetto a un array di dati di esempio contenente valori per secondi, latitudine e longitudine, + +```python +import pickle +model_filename = 'ufo-model.pkl' +pickle.dump(model, open(model_filename,'wb')) + +model = pickle.load(open('ufo-model.pkl','rb')) +print(model.predict([[50,44,-12]])) +``` + +Il modello restituisce **"3"**, che è il codice paese per il Regno Unito. Jolly 👽 + +## Esercizio: creare un'app Flask + +Ora si può creare un'app Flask per chiamare il modello e restituire risultati simili, ma in un modo visivamente più gradevole. + +1. Iniziare creando una cartella chiamata web-app **a** livello del _file_ notebook.ipynb dove risiede _il_ file ufo-model.pkl. + +1. In quella cartella creare altre tre cartelle: **static**, con una cartella **css** al suo interno e **templates**. Ora si dovrebbero avere i seguenti file e directory: + + ```output + web-app/ + static/ + css/ + templates/ + notebook.ipynb + ufo-model.pkl + ``` + + ✅ Fare riferimento alla cartella della soluzione per una visualizzazione dell'app finita + +1. Il primo file da creare nella cartella dell'_app_ Web è **il** file requirements.txt. Come _package.json_ in un'app JavaScript, questo file elenca le dipendenze richieste dall'app. In **requirements.txt** aggiungere le righe: + + ```text + scikit-learn + pandas + numpy + flask + ``` + +1. Ora, eseguire questo file portandosi su _web-app_: + + ```bash + cd web-app + ``` + +1. Aprire una finestra di terminale dove risiede requirements.txt e digitare `pip install`, per installare le librerie elencate in _reuirements.txt_: + + ```bash + pip install -r requirements.txt + ``` + +1. Ora si è pronti per creare altri tre file per completare l'app: + + 1. Crea **app.py** nella directory radice + 2. Creare **index.html** nella directory _templates_ . + 3. Crea **sytles.css** nella directory _static/css_ . + +1. Inserire nel _file_ styles.css alcuni stili: + + ```css + body { + width: 100%; + height: 100%; + font-family: 'Helvetica'; + background: black; + color: #fff; + text-align: center; + letter-spacing: 1.4px; + font-size: 30px; + } + + input { + min-width: 150px; + } + + .grid { + width: 300px; + border: 1px solid #2d2d2d; + display: grid; + justify-content: center; + margin: 20px auto; + } + + .box { + color: #fff; + background: #2d2d2d; + padding: 12px; + display: inline-block; + } + ``` + +1. Quindi, creare il file _index.html_ : + + ```html + + + + + 🛸 UFO Appearance Prediction! 👽 + + + + +
+ +
+ +

According to the number of seconds, latitude and longitude, which country is likely to have reported seeing a UFO?

+ +
+ + + + +
+ + +

{{ prediction_text }}

+ +
+
+ + + + ``` + + Dare un'occhiata al modello in questo file. Notare la sintassi con le parentesi graffe attorno alle variabili che verranno fornite dall'app, come il testo di previsione: `{{}}`. C'è anche un modulo che invia una previsione al percorso `/` predict. + + Infine, si è pronti per creare il file python che guida il consumo del modello e la visualizzazione delle previsioni: + +1. In `app.py` aggiungere: + + ```python + import numpy as np + from flask import Flask, request, render_template + import pickle + + app = Flask(__name__) + + model = pickle.load(open("../ufo-model.pkl", "rb")) + + + @app.route("/") + def home(): + return render_template("index.html") + + + @app.route("/predict", methods=["POST"]) + def predict(): + + int_features = [int(x) for x in request.form.values()] + final_features = [np.array(int_features)] + prediction = model.predict(final_features) + + output = prediction[0] + + countries = ["Australia", "Canada", "Germany", "UK", "US"] + + return render_template( + "index.html", prediction_text="Likely country: {}".format(countries[output]) + ) + + + if __name__ == "__main__": + app.run(debug=True) + ``` + + > 💡 Suggerimento: quando si aggiunge [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) durante l'esecuzione dell'app Web utilizzando Flask, qualsiasi modifica apportata all'applicazione verrà applicata immediatamente senza la necessità di riavviare il server. Attenzione! Non abilitare questa modalità in un'app di produzione. + +Se si esegue `python app.py` o `python3 app.py` , il server web si avvia, localmente, e si può compilare un breve modulo per ottenere una risposta alla domanda scottante su dove sono stati avvistati gli UFO! + +Prima di farlo, dare un'occhiata alle parti di `app.py`: + +1. Innanzitutto, le dipendenze vengono caricate e l'app si avvia. +1. Quindi, il modello viene importato. +1. Quindi, index.html viene visualizzato sulla rotta home. + +Sulla rotta `/predict` , accadono diverse cose quando il modulo viene inviato: + +1. Le variabili del modulo vengono raccolte e convertite in un array numpy. Vengono quindi inviati al modello e viene restituita una previsione. +2. Le nazioni che si vogliono visualizzare vengono nuovamente esposte come testo leggibile dal loro codice paese previsto e tale valore viene inviato a index.html per essere visualizzato nel modello. + +Usare un modello in questo modo, con Flask e un modello serializzato è relativamente semplice. La cosa più difficile è capire che forma hanno i dati che devono essere inviati al modello per ottenere una previsione. Tutto dipende da come è stato addestrato il modello. Questo ha tre punti dati da inserire per ottenere una previsione. + +In un ambiente professionale, si può vedere quanto sia necessaria una buona comunicazione tra le persone che addestrano il modello e coloro che lo consumano in un'app Web o mobile. In questo caso, si ricoprono entrambi i ruoli! + +--- + +## 🚀 Sfida + +Invece di lavorare su un notebook e importare il modello nell'app Flask, si può addestrare il modello direttamente nell'app Flask! Provare a convertire il codice Python nel notebook, magari dopo che i dati sono stati puliti, per addestrare il modello dall'interno dell'app su un percorso chiamato /`train`. Quali sono i pro e i contro di seguire questo metodo? + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/18/) + +## Revisione e Auto Apprendimento + +Esistono molti modi per creare un'app Web per utilizzare i modelli ML. Elencare dei modi in cui si potrebbe utilizzare JavaScript o Python per creare un'app Web per sfruttare machine learning. Considerare l'architettura: il modello dovrebbe rimanere nell'app o risiedere nel cloud? Se quest'ultimo, come accedervi? Disegnare un modello architettonico per una soluzione web ML applicata. + +## Compito + +[Provare un modello diverso](assignment.md) + + diff --git a/3-Web-App/1-Web-App/translations/assignment.it.md b/3-Web-App/1-Web-App/translations/assignment.it.md new file mode 100644 index 00000000..21a1b804 --- /dev/null +++ b/3-Web-App/1-Web-App/translations/assignment.it.md @@ -0,0 +1,11 @@ +# Provare un modello diverso + +## Istruzioni + +Ora che si è creato un'app Web utilizzando un modello di regressione addestrato, usare uno dei modelli di una lezione precedente sulla regressione per ripetere questa app Web. Si può mantenere lo stile o progettarla in modo diverso per riflettere i dati della zucca. Fare attenzione a modificare gli input in modo che riflettano il metodo di addestramento del proprio modello. + +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------- | +| | L'app Web funziona come previsto e viene distribuita nel cloud | L'app Web contiene difetti o mostra risultati imprevisti | L'app web non funziona correttamente | diff --git a/3-Web-App/translations/README.it.md b/3-Web-App/translations/README.it.md new file mode 100644 index 00000000..52d9c5ec --- /dev/null +++ b/3-Web-App/translations/README.it.md @@ -0,0 +1,22 @@ +# Creare un'app Web per utilizzare il modello ML + +In questa sezione del programma di studi, verrà presentato un argomento ML applicato: come salvare il modello di Scikit-learn come file che può essere utilizzato per fare previsioni all'interno di un'applicazione web. Una volta salvato il modello, si imparerà come utilizzarlo in un'app Web integrata in Flask. Per prima cosa si creerà un modello utilizzando alcuni dati che riguardano gli avvistamenti di UFO! Quindi, si creerà un'app Web che consentirà di inserire un numero di secondi con un valore di latitudine e longitudine per prevedere quale paese ha riferito di aver visto un UFO. + +![Parcheggio UFO](images/ufo.jpg) + +Foto di Michael Herren su Unsplash + + +## Lezioni + +1. [Costruire un'app Web](1-Web-App/README.md) + +## Crediti + +"Costruire un'app web" è stato scritto con ♥️ da [Jen Looper](https://twitter.com/jenlooper). + +♥️ I quiz sono stati scritti da Rohan Raj. + +L'insieme di dati proviene da [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings). + +L'architettura dell'app web è stata suggerita in parte da [questo articolo](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) e da [questo](https://github.com/abhinavsagar/machine-learning-deployment) repository di Abhinav Sagar. \ No newline at end of file From 889e697dac61751545e9be35aec744fecc785981 Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Sun, 18 Jul 2021 19:37:32 +0200 Subject: [PATCH 106/228] Italian Translation - Chapter 2 sentence modified in 2-Data --- 2-Regression/2-Data/translations/README.it.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/2-Data/translations/README.it.md b/2-Regression/2-Data/translations/README.it.md index 3a67cdea..7b78ac52 100644 --- a/2-Regression/2-Data/translations/README.it.md +++ b/2-Regression/2-Data/translations/README.it.md @@ -171,7 +171,7 @@ Provare a creare alcuni grafici di base per visualizzare il nuovo dataframe appe ### Renderlo utile -Per fare in modo che i grafici mostrino dati utili, di solito è necessario raggruppare i dati in qualche modo. Si prova a creare un grafico in cui l'asse y mostra i prezzi e l'asse x mostra la distribuzione dei dati raggruppati per mese. +Per fare in modo che i grafici mostrino dati utili, di solito è necessario raggruppare i dati in qualche modo. Si prova a creare un grafico che mostra la distribuzione dei dati dove l'asse x mostra i mesi. 1. Aggiungere una cella per creare un grafico a barre raggruppato: From 8f29d285edc1248e10245534a88c0705e758f9f0 Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Sun, 18 Jul 2021 20:55:00 +0200 Subject: [PATCH 107/228] Italian Translation - Chapter 3 complete --- 3-Web-App/1-Web-App/translations/README.it.md | 116 +++++++++--------- .../1-Web-App/translations/assignment.it.md | 4 +- 3-Web-App/translations/README.it.md | 8 +- 3 files changed, 64 insertions(+), 64 deletions(-) diff --git a/3-Web-App/1-Web-App/translations/README.it.md b/3-Web-App/1-Web-App/translations/README.it.md index 18e6af10..82454852 100644 --- a/3-Web-App/1-Web-App/translations/README.it.md +++ b/3-Web-App/1-Web-App/translations/README.it.md @@ -1,13 +1,13 @@ -# Crearere un'app web per utilizzare un modello ML +# Creare un'app web per utilizzare un modello ML In questa lezione, si addestrerà un modello ML su un insieme di dati fuori dal mondo: _avvistamenti di UFO nel secolo scorso_, provenienti dal [database di NUFORC](https://www.nuforc.org). Si imparerà: -- Come "scapigliare" un modello addestrato +- Come serializzare/deserializzare un modello addestrato - Come usare quel modello in un'app Flask -Si continuerà a utilizzare i notebook per pulire i dati e addestrare il modello, ma si può fare un ulteriore passo avanti esplorando il processo utilizzando un modello "in the wild", per così dire: in un'app web. +Si continuerà a utilizzare il notebook per pulire i dati e addestrare il modello, ma si può fare un ulteriore passo avanti nel processo esplorando l'utilizzo del modello direttamente in un'app web. Per fare ciò, è necessario creare un'app Web utilizzando Flask. @@ -15,44 +15,44 @@ Per fare ciò, è necessario creare un'app Web utilizzando Flask. ## Costruire un'app -Esistono diversi modi per creare app Web per utilizzare modelli di machine learning. L'architettura web può influenzare il modo in cui il modello viene addestrato. Si immagini di lavorare in un'azienda in cui il gruppo di data science ha addestrato un modello che vogliono che venga utilizzato in un'app. +Esistono diversi modi per creare app Web per utilizzare modelli di machine learning. L'architettura web può influenzare il modo in cui il modello viene addestrato. Si immagini di lavorare in un'azienda nella quale il gruppo di data science ha addestrato un modello che va utilizzato in un'app. ### Considerazioni Ci sono molte domande da porsi: -- **È un'app Web o un'app mobile?** Se si sta creando un'app mobile o si deve usare il modello in un contesto IoT, ci si può avvalere [di TensorFlow Lite](https://www.tensorflow.org/lite/) e usare il modello in un'app Android o iOS. +- **È un'app web o un'app su dispositivo mobile?** Se si sta creando un'app su dispositivo mobile o si deve usare il modello in un contesto IoT, ci si può avvalere [di TensorFlow Lite](https://www.tensorflow.org/lite/) e usare il modello in un'app Android o iOS. - **Dove risiederà il modello**? E' utilizzato in cloud o in locale? - **Supporto offline**. L'app deve funzionare offline? - **Quale tecnologia è stata utilizzata per addestrare il modello?** La tecnologia scelta può influenzare gli strumenti che è necessario utilizzare. - - **Utilizzare** TensorFlow Se si sta addestrando un modello utilizzando TensorFlow, ad esempio, tale ecosistema offre la possibilità di convertire un modello TensorFlow per l'utilizzo in un'app Web utilizzando [TensorFlow.js](https://www.tensorflow.org/js/). - - **Utilizzare PyTorch**. Se stai costruendo un modello utilizzando una libreria come PyTorch[,](https://pytorch.org/) si ha la possibilità di esportarlo in formato [ONNX](https://onnx.ai/) ( Open Neural Network Exchange) per l'utilizzo in app Web JavaScript che possono utilizzare il motore di esecuzione [Onnx](https://www.onnxruntime.ai/). Questa opzione verrà esplorata in una lezione futura per un modello addestrato da Scikit-learn + - **Utilizzare** TensorFlow. Se si sta addestrando un modello utilizzando TensorFlow, ad esempio, tale ecosistema offre la possibilità di convertire un modello TensorFlow per l'utilizzo in un'app Web utilizzando [TensorFlow.js](https://www.tensorflow.org/js/). + - **Utilizzare PyTorch**. Se si sta costruendo un modello utilizzando una libreria come PyTorch[,](https://pytorch.org/) si ha la possibilità di esportarlo in formato [ONNX](https://onnx.ai/) ( Open Neural Network Exchange) per l'utilizzo in app Web JavaScript che possono utilizzare il [motore di esecuzione Onnx](https://www.onnxruntime.ai/). Questa opzione verrà esplorata in una lezione futura per un modello addestrato da Scikit-learn - **Utilizzo di Lobe.ai o Azure Custom vision**. Se si sta usando un sistema ML SaaS (Software as a Service) come [Lobe.ai](https://lobe.ai/) o [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-15963-cxa) per addestrare un modello, questo tipo di software fornisce modi per esportare il modello per molte piattaforme, inclusa la creazione di un'API su misura da interrogare nel cloud dalla propria applicazione online. -Si hai anche l'opportunità di creare un'intera app Web Flask in grado di addestrare il modello stesso in un browser Web. Questo può essere fatto anche usando TensorFlow.js in un contesto JavaScript. +Si ha anche l'opportunità di creare un'intera app Web Flask in grado di addestrare il modello stesso in un browser Web. Questo può essere fatto anche usando TensorFlow.js in un contesto JavaScript. -Per i nostri scopi, poiché si è lavorato con i notebook basati su Python, verranno esplorati i passaggi necessari per esportare un modello addestrato da un tale notebook in un formato leggibile da un'app Web creata in Python. +Per questo scopo, poiché si è lavorato con i notebook basati su Python, verranno esplorati i passaggi necessari per esportare un modello addestrato da tale notebook in un formato leggibile da un'app Web creata in Python. -## Strumento +## Strumenti Per questa attività sono necessari due strumenti: Flask e Pickle, entrambi eseguiti su Python. -✅ Cos'è [Flask](https://palletsprojects.com/p/flask/)? Definito come un "micro-framework" dai suoi creatori, Flask fornisce le funzionalità di base dei framework web utilizzando Python e un motore di modelli per creare pagine web. Si dia un'occhiata a [questo modulo di apprendimento](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-15963-cxa) per esercitarsi a costruire con Flask. +✅ Cos'è [Flask](https://palletsprojects.com/p/flask/)? Definito come un "micro-framework" dai suoi creatori, Flask fornisce le funzionalità di base dei framework web utilizzando Python e un motore di template per creare pagine web. Si dia un'occhiata a [questo modulo di apprendimento](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-15963-cxa) per esercitarsi a sviluppare con Flask. -✅ Cos'è [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 è un modulo Python che serializza e de-serializza una struttura di oggetti Python. Quando si utilizza pickle in un modello, si serializza o si appiattisce la sua struttura per l'uso sul web. Cautela: pickle non è intrinsecamente sicuro, quindi si faccia attenzione se viene chiesto di de-serializzare un file. Un file creato con pickle ha il suffisso `.pkl`. +✅ Cos'è [Pickle](https://docs.python.org/3/library/pickle.html)? Pickle 🥒 è un modulo Python che serializza e de-serializza la struttura di un oggetto Python. Quando si utilizza pickle in un modello, si serializza o si appiattisce la sua struttura per l'uso sul web. Cautela: pickle non è intrinsecamente sicuro, quindi si faccia attenzione se viene chiesto di de-serializzare un file. Un file creato con pickle ha il suffisso `.pkl`. ## Esercizio: pulire i dati -In questa lezione verranno utilizzati i dati di 80.000 avvistamenti UFO, raccolti da [NUFORC](https://nuforc.org) (The National UFO Reporting Center). Questi dati hanno alcune descrizioni interessanti di avvistamenti UFO, ad esempio: +In questa lezione verranno utilizzati i dati di 80.000 avvistamenti UFO, raccolti dal Centro Nazionale per gli Avvistamenti di UFO [NUFORC](https://nuforc.org) (The National UFO Reporting Center). Questi dati hanno alcune descrizioni interessanti di avvistamenti UFO, ad esempio: - **Descrizione di esempio lunga**. "Un uomo emerge da un raggio di luce che di notte brilla su un campo erboso e corre verso il parcheggio della Texas Instruments". - **Descrizione di esempio breve**. "le luci ci hanno inseguito". -Il [foglio](./data/ufos.csv) di calcolo ufos.csv include colonne sulla `città`, `lo stato` e il `paese` in cui è avvenuto l'avvistamento, la `forma dell'oggetto e la` sua `latitudine` e `longitudine`. +Il foglio di calcolo [ufo.csv](../data/ufos.csv) include colonne su città (`city`), stato (`state`) e nazione (`country`) in cui è avvenuto l'avvistamento, la forma (`shape`) dell'oggetto e la sua latitudine (`latitude`) e longitudine (`longitude`). -Nel [notebook](notebook.ipynb) vuoto incluso in questa lezione: +Nel [notebook](../notebook.ipynb) vuoto incluso in questa lezione: -1. importare `pandas`, `matplotlib` e numpy `come` fatto nelle lezioni precedenti e importare il foglio di calcolo ufos. Si può dare un'occhiata a un insieme di dati di esempio: +1. importare `pandas`, `matplotlib` e `numpy` come fatto nelle lezioni precedenti e importare il foglio di calcolo ufo.csv. Si può dare un'occhiata a un insieme di dati campione: ```python import pandas as pd @@ -80,7 +80,7 @@ Nel [notebook](notebook.ipynb) vuoto incluso in questa lezione: ufos.info() ``` -1. Importare la libreria LabelEncoder `di` Scikit-learn per convertire i valori di testo per i paesi in un numero: +1. Importare la libreria `LabelEncoder` di Scikit-learn per convertire i valori di testo per le nazioni in un numero: ✅ LabelEncoder codifica i dati in ordine alfabetico @@ -105,9 +105,9 @@ Nel [notebook](notebook.ipynb) vuoto incluso in questa lezione: ## Esercizio: costruire il proprio modello -Ora ci si può preparare per addestrare un modello portando i dati nel gruppo di addestramento e test. +Ora ci si può preparare per addestrare un modello portando i dati nei gruppi di addestramento e test. -1. Selezionare le tre caratteristiche su cui lo si vuole allenare come vettore X mentre il vettore y sarà `Country` Se deve essere in grado di inserire `Secondi`, `Latitudine` e `Longitudine` e ottenere un ID nazione da restituire. +1. Selezionare le tre caratteristiche su cui lo si vuole allenare come vettore X mentre il vettore y sarà `Country` Si deve essere in grado di inserire secondi (`Seconds`), latitudine (`Latitude`) e longitudine (`Longitude`) e ottenere un ID nazione da restituire. ```python from sklearn.model_selection import train_test_split @@ -136,11 +136,11 @@ Ora ci si può preparare per addestrare un modello portando i dati nel gruppo di La precisione non è male **(circa il 95%)**, non sorprende che `Country` e `Latitude/Longitude` siano correlati. -Il modello creato non è molto rivoluzionario in quanto si dovrebbe essere in grado di dedurre una `nazione` dalla sua `latitudine` e `longitudine`, ma è un buon esercizio provare ad allenare dai dati grezzi che sono stati puliti ed esportati, e quindi utilizzare questo modello in una app web. +Il modello creato non è molto rivoluzionario in quanto si dovrebbe essere in grado di dedurre una nazione (`Country`) dalla sua latitudine e longitudine (`Latitude` e `Longitude`), ma è un buon esercizio provare ad allenare dai dati grezzi che sono stati puliti ed esportati, e quindi utilizzare questo modello in una app web. ## Esercizio: usare pickle con il modello -Ora è il momento di utilizzare pickle _con_ il modello! Lo si può fare in poche righe di codice. Una volta che è stato serializzato con pickle_,_ caricare il modello e testarlo rispetto a un array di dati di esempio contenente valori per secondi, latitudine e longitudine, +Ora è il momento di utilizzare _pickle_ con il modello! Lo si può fare in poche righe di codice. Una volta che è stato _serializzato con pickle_, caricare il modello e testarlo rispetto a un array di dati di esempio contenente valori per secondi, latitudine e longitudine, ```python import pickle @@ -151,13 +151,13 @@ model = pickle.load(open('ufo-model.pkl','rb')) print(model.predict([[50,44,-12]])) ``` -Il modello restituisce **"3"**, che è il codice paese per il Regno Unito. Jolly 👽 +Il modello restituisce **"3"**, che è il codice nazione per il Regno Unito. Fantastico! 👽 ## Esercizio: creare un'app Flask Ora si può creare un'app Flask per chiamare il modello e restituire risultati simili, ma in un modo visivamente più gradevole. -1. Iniziare creando una cartella chiamata web-app **a** livello del _file_ notebook.ipynb dove risiede _il_ file ufo-model.pkl. +1. Iniziare creando una cartella chiamata **web-app** a livello del file _notebook.ipynb_ dove risiede il file _ufo-model.pkl_. 1. In quella cartella creare altre tre cartelle: **static**, con una cartella **css** al suo interno e **templates**. Ora si dovrebbero avere i seguenti file e directory: @@ -165,14 +165,14 @@ Ora si può creare un'app Flask per chiamare il modello e restituire risultati s web-app/ static/ css/ - templates/ + templates/ notebook.ipynb ufo-model.pkl ``` - ✅ Fare riferimento alla cartella della soluzione per una visualizzazione dell'app finita + ✅ Fare riferimento alla cartella della soluzione per una visualizzazione dell'app finita. -1. Il primo file da creare nella cartella dell'_app_ Web è **il** file requirements.txt. Come _package.json_ in un'app JavaScript, questo file elenca le dipendenze richieste dall'app. In **requirements.txt** aggiungere le righe: +1. Il primo file da creare nella cartella _web-app_ è il file **requirements.txt**. Come _package.json_ in un'app JavaScript, questo file elenca le dipendenze richieste dall'app. In **requirements.txt** aggiungere le righe: ```text scikit-learn @@ -195,41 +195,41 @@ Ora si può creare un'app Flask per chiamare il modello e restituire risultati s 1. Ora si è pronti per creare altri tre file per completare l'app: - 1. Crea **app.py** nella directory radice - 2. Creare **index.html** nella directory _templates_ . - 3. Crea **sytles.css** nella directory _static/css_ . + 1. Creare **app.py** nella directory radice. + 2. Creare **index.html** nella directory _templates_. + 3. Creare **sytles.css** nella directory _static/css_. -1. Inserire nel _file_ styles.css alcuni stili: +1. Inserire nel file _styles.css_ alcuni stili: ```css body { - width: 100%; - height: 100%; - font-family: 'Helvetica'; - background: black; - color: #fff; - text-align: center; - letter-spacing: 1.4px; - font-size: 30px; + width: 100%; + height: 100%; + font-family: 'Helvetica'; + background: black; + color: #fff; + text-align: center; + letter-spacing: 1.4px; + font-size: 30px; } input { - min-width: 150px; + min-width: 150px; } .grid { - width: 300px; - border: 1px solid #2d2d2d; - display: grid; - justify-content: center; - margin: 20px auto; + width: 300px; + border: 1px solid #2d2d2d; + display: grid; + justify-content: center; + margin: 20px auto; } .box { - color: #fff; - background: #2d2d2d; - padding: 12px; - display: inline-block; + color: #fff; + background: #2d2d2d; + padding: 12px; + display: inline-block; } ``` @@ -268,7 +268,7 @@ Ora si può creare un'app Flask per chiamare il modello e restituire risultati s ``` - Dare un'occhiata al modello in questo file. Notare la sintassi con le parentesi graffe attorno alle variabili che verranno fornite dall'app, come il testo di previsione: `{{}}`. C'è anche un modulo che invia una previsione al percorso `/` predict. + Dare un'occhiata al template di questo file. Notare la sintassi con le parentesi graffe attorno alle variabili che verranno fornite dall'app, come il testo di previsione: `{{}}`. C'è anche un modulo che invia una previsione alla rotta `/predict`. Infine, si è pronti per creare il file python che guida il consumo del modello e la visualizzazione delle previsioni: @@ -309,39 +309,39 @@ Ora si può creare un'app Flask per chiamare il modello e restituire risultati s app.run(debug=True) ``` - > 💡 Suggerimento: quando si aggiunge [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) durante l'esecuzione dell'app Web utilizzando Flask, qualsiasi modifica apportata all'applicazione verrà applicata immediatamente senza la necessità di riavviare il server. Attenzione! Non abilitare questa modalità in un'app di produzione. + > 💡 Suggerimento: quando si aggiunge [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) durante l'esecuzione dell'app web utilizzando Flask, qualsiasi modifica apportata all'applicazione verrà recepita immediatamente senza la necessità di riavviare il server. Attenzione! Non abilitare questa modalità in un'app di produzione. Se si esegue `python app.py` o `python3 app.py` , il server web si avvia, localmente, e si può compilare un breve modulo per ottenere una risposta alla domanda scottante su dove sono stati avvistati gli UFO! Prima di farlo, dare un'occhiata alle parti di `app.py`: 1. Innanzitutto, le dipendenze vengono caricate e l'app si avvia. -1. Quindi, il modello viene importato. -1. Quindi, index.html viene visualizzato sulla rotta home. +1. Poi il modello viene importato. +1. Infine index.html viene visualizzato sulla rotta home. Sulla rotta `/predict` , accadono diverse cose quando il modulo viene inviato: -1. Le variabili del modulo vengono raccolte e convertite in un array numpy. Vengono quindi inviati al modello e viene restituita una previsione. -2. Le nazioni che si vogliono visualizzare vengono nuovamente esposte come testo leggibile dal loro codice paese previsto e tale valore viene inviato a index.html per essere visualizzato nel modello. +1. Le variabili del modulo vengono raccolte e convertite in un array numpy. Vengono quindi inviate al modello e viene restituita una previsione. +2. Le nazioni che si vogliono visualizzare vengono nuovamente esposte come testo leggibile ricavato dal loro codice paese previsto e tale valore viene inviato a index.html per essere visualizzato nel template della pagina web. Usare un modello in questo modo, con Flask e un modello serializzato è relativamente semplice. La cosa più difficile è capire che forma hanno i dati che devono essere inviati al modello per ottenere una previsione. Tutto dipende da come è stato addestrato il modello. Questo ha tre punti dati da inserire per ottenere una previsione. -In un ambiente professionale, si può vedere quanto sia necessaria una buona comunicazione tra le persone che addestrano il modello e coloro che lo consumano in un'app Web o mobile. In questo caso, si ricoprono entrambi i ruoli! +In un ambiente professionale, si può vedere quanto sia necessaria una buona comunicazione tra le persone che addestrano il modello e coloro che lo consumano in un'app web o su dispositivo mobile. In questo caso, si ricoprono entrambi i ruoli! --- ## 🚀 Sfida -Invece di lavorare su un notebook e importare il modello nell'app Flask, si può addestrare il modello direttamente nell'app Flask! Provare a convertire il codice Python nel notebook, magari dopo che i dati sono stati puliti, per addestrare il modello dall'interno dell'app su un percorso chiamato /`train`. Quali sono i pro e i contro di seguire questo metodo? +Invece di lavorare su un notebook e importare il modello nell'app Flask, si può addestrare il modello direttamente nell'app Flask! Provare a convertire il codice Python nel notebook, magari dopo che i dati sono stati puliti, per addestrare il modello dall'interno dell'app su un percorso chiamato `/train`. Quali sono i pro e i contro nel seguire questo metodo? ## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/18/) ## Revisione e Auto Apprendimento -Esistono molti modi per creare un'app Web per utilizzare i modelli ML. Elencare dei modi in cui si potrebbe utilizzare JavaScript o Python per creare un'app Web per sfruttare machine learning. Considerare l'architettura: il modello dovrebbe rimanere nell'app o risiedere nel cloud? Se quest'ultimo, come accedervi? Disegnare un modello architettonico per una soluzione web ML applicata. +Esistono molti modi per creare un'app web per utilizzare i modelli ML. Elencare dei modi in cui si potrebbe utilizzare JavaScript o Python per creare un'app web per sfruttare machine learning. Considerare l'architettura: il modello dovrebbe rimanere nell'app o risiedere nel cloud? In quest'ultimo casi, come accedervi? Disegnare un modello architettonico per una soluzione web ML applicata. ## Compito -[Provare un modello diverso](assignment.md) +[Provare un modello diverso](assignment.it.md) diff --git a/3-Web-App/1-Web-App/translations/assignment.it.md b/3-Web-App/1-Web-App/translations/assignment.it.md index 21a1b804..7bc7ffd9 100644 --- a/3-Web-App/1-Web-App/translations/assignment.it.md +++ b/3-Web-App/1-Web-App/translations/assignment.it.md @@ -2,10 +2,10 @@ ## Istruzioni -Ora che si è creato un'app Web utilizzando un modello di regressione addestrato, usare uno dei modelli di una lezione precedente sulla regressione per ripetere questa app Web. Si può mantenere lo stile o progettarla in modo diverso per riflettere i dati della zucca. Fare attenzione a modificare gli input in modo che riflettano il metodo di addestramento del proprio modello. +Ora che si è creato un'app web utilizzando un modello di Regressione addestrato, usare uno dei modelli da una lezione precedente sulla Regressione per rifare questa app web. Si può mantenere lo stile o progettarla in modo diverso per riflettere i dati della zucca. Fare attenzione a modificare gli input in modo che riflettano il metodo di addestramento del proprio modello. ## Rubrica | Criteri | Ottimo | Adeguato | Necessita miglioramento | | -------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------- | -| | L'app Web funziona come previsto e viene distribuita nel cloud | L'app Web contiene difetti o mostra risultati imprevisti | L'app web non funziona correttamente | +| | L'app web funziona come previsto e viene distribuita nel cloud | L'app web contiene difetti o mostra risultati imprevisti | L'app web non funziona correttamente | diff --git a/3-Web-App/translations/README.it.md b/3-Web-App/translations/README.it.md index 52d9c5ec..d376b8ec 100644 --- a/3-Web-App/translations/README.it.md +++ b/3-Web-App/translations/README.it.md @@ -1,15 +1,15 @@ -# Creare un'app Web per utilizzare il modello ML +# Creare un'app web per utilizzare il modello ML -In questa sezione del programma di studi, verrà presentato un argomento ML applicato: come salvare il modello di Scikit-learn come file che può essere utilizzato per fare previsioni all'interno di un'applicazione web. Una volta salvato il modello, si imparerà come utilizzarlo in un'app Web integrata in Flask. Per prima cosa si creerà un modello utilizzando alcuni dati che riguardano gli avvistamenti di UFO! Quindi, si creerà un'app Web che consentirà di inserire un numero di secondi con un valore di latitudine e longitudine per prevedere quale paese ha riferito di aver visto un UFO. +In questa sezione del programma di studi, verrà presentato un argomento ML applicato: come salvare il modello di Scikit-learn come file che può essere utilizzato per fare previsioni all'interno di un'applicazione web. Una volta salvato il modello, si imparerà come utilizzarlo in un'app web sviluppata con Flask. Per prima cosa si creerà un modello utilizzando alcuni dati che riguardano gli avvistamenti di UFO! Quindi, si creerà un'app web che consentirà di inserire un numero di secondi con un valore di latitudine e longitudine per prevedere quale paese ha riferito di aver visto un UFO. -![Parcheggio UFO](images/ufo.jpg) +![Parcheggio UFO](../images/ufo.jpg) Foto di Michael Herren su Unsplash ## Lezioni -1. [Costruire un'app Web](1-Web-App/README.md) +1. [Costruire un'app web](../1-Web-App/translations/README.it.md) ## Crediti From 9628c457b884ecd79af96a32537107f701587b1d Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Sun, 18 Jul 2021 21:23:45 +0200 Subject: [PATCH 108/228] Update README.fr.md --- 1-Introduction/2-history-of-ML/translations/README.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/2-history-of-ML/translations/README.fr.md b/1-Introduction/2-history-of-ML/translations/README.fr.md index 5debe07e..66132162 100644 --- a/1-Introduction/2-history-of-ML/translations/README.fr.md +++ b/1-Introduction/2-history-of-ML/translations/README.fr.md @@ -114,4 +114,4 @@ Voici quelques articles à regarder et à écouter : ## Devoir -[Créer une frise chonologique](assignment.fr.md) +[Créer une frise chronologique](assignment.fr.md) From 6b37ceab9682fb8cc8f1cd6bd77011faa8199e95 Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Mon, 19 Jul 2021 11:28:36 +0700 Subject: [PATCH 109/228] Add Indonesian translation for 1-3 README --- .../3-fairness/translations/README.id.md | 215 ++++++++++++++++++ 1 file changed, 215 insertions(+) create mode 100644 1-Introduction/3-fairness/translations/README.id.md diff --git a/1-Introduction/3-fairness/translations/README.id.md b/1-Introduction/3-fairness/translations/README.id.md new file mode 100644 index 00000000..44056ab8 --- /dev/null +++ b/1-Introduction/3-fairness/translations/README.id.md @@ -0,0 +1,215 @@ +# Keadilan dalam Machine Learning + +![Ringkasan dari Keadilan dalam Machine Learning dalam sebuah catatan sketsa](../../sketchnotes/ml-fairness.png) +> Catatan sketsa oleh [Tomomi Imura](https://www.twitter.com/girlie_mac) + +## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/5/) + +## Pengantar + +Dalam kurikulum ini, kamu akan mulai mengetahui bagaimana Machine Learning bisa memengaruhi kehidupan kita sehari-hari. Bahkan sekarang, sistem dan model terlibat dalam tugas pengambilan keputusan sehari-hari, seperti diagnosis kesehatan atau mendeteksi penipuan. Jadi, penting bahwa model-model ini bekerja dengan baik untuk memberikan hasil yang adil bagi semua orang. + +Bayangkan apa yang bisa terjadi ketika data yang kamu gunakan untuk membangun model ini tidak memiliki demografi tertentu, seperti ras, jenis kelamin, pandangan politik, agama, atau secara tidak proporsional mewakili demografi tersebut. Bagaimana jika keluaran dari model diinterpretasikan lebih menyukai beberapa demografis tertentu? Apa konsekuensi untuk aplikasinya? + +Dalam pelajaran ini, kamu akan: + +- Meningkatkan kesadaran dari pentingnya keadilan dalam Machine Learning. +- Mempelajari tentang berbagai kerugian terkait keadilan. +- Learn about unfairness assessment and mitigation. +- Mempelajari tentang mitigasi dan penilaian ketidakadilan. + +## Prasyarat + +Sebagai prasyarat, silakan ikuti jalur belajar "Prinsip AI yang Bertanggung Jawab" dan tonton video di bawah ini dengan topik: + +Pelajari lebih lanjut tentang AI yang Bertanggung Jawab dengan mengikuti [Jalur Belajar](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-15963-cxa) ini + +[![Pendekatan Microsoft untuk AI yang Bertanggung Jawab](https://img.youtube.com/vi/dnC8-uUZXSc/0.jpg)](https://youtu.be/dnC8-uUZXSc "Pendekatan Microsoft untuk AI yang Bertanggung Jawab") + +> 🎥 Klik gambar diatas untuk menonton video: Pendekatan Microsoft untuk AI yang Bertanggung Jawab + +## Ketidakadilan dalam data dan algoritma + +> "Jika Anda menyiksa data cukup lama, data itu akan mengakui apa pun " - Ronald Coase + +Pernyataan ini terdengar ekstrem, tetapi memang benar bahwa data dapat dimanipulasi untuk mendukung kesimpulan apa pun. Manipulasi semacam itu terkadang bisa terjadi secara tidak sengaja. Sebagai manusia, kita semua memiliki bias, dan seringkali sulit untuk secara sadar mengetahui kapan kamu memperkenalkan bias dalam data. + +Menjamin keadilan dalam AI dan machine learning tetap menjadi tantangan sosioteknik yang kompleks. Artinya, hal itu tidak bisa ditangani baik dari perspektif sosial atau teknis semata. + +### Kerugian Terkait Keadilan + +Apa yang kamu maksud dengan ketidakadilan? "Ketidakadilan" mencakup dampak negatif, atau "bahaya", bagi sekelompok orang, seperti yang didefinisikan dalam hal ras, jenis kelamin, usia, atau status disabilitas. + +Kerugian utama yang terkait dengan keadilan dapat diklasifikasikan sebagai: + +- **Alokasi**, jika suatu jenis kelamin atau etnisitas misalkan lebih disukai daripada yang lain. +- **Kualitas layanan**. Jika kamu melatih data untuk satu skenario tertentu tetapi kenyataannya jauh lebih kompleks, itu mengarah ke layanan yang berkinerja buruk. +- **Stereotip**. Mengaitkan grup tertentu dengan atribut yang ditentukan sebelumnya. +- **Fitnah**. Untuk mengkritik dan melabeli sesuatu atau seseorang secara tidak adil. +- **Representasi yang kurang atau berlebihan**. Idenya adalah bahwa kelompok tertentu tidak terlihat dalam profesi tertentu, dan layanan atau fungsi apa pun yang terus dipromosikan yang berkontribusi pada kerugian. + +Mari kita lihat contoh-contohnya. + +### Alokasi + +Pertimbangkan sistem hipotetis untuk menyaring aplikasi pinjaman. Sistem cenderung memilih pria kulit putih sebagai kandidat yang lebih baik daripada kelompok lain. Akibatnya, pinjaman ditahan dari pemohon tertentu. + +Contoh lain adalah alat perekrutan eksperimental yang dikembangkan oleh perusahaan besar untuk menyaring kandidat. Alat tersebut secara sistematis mendiskriminasi satu gender dengan menggunakan model yang dilatih untuk lebih memilih kata-kata yang terkait dengan yang lain. Hal ini mengakibatkan kandidat yang resumenya berisi kata-kata seperti "tim rugby wanita". + +✅ Lakukan sedikit riset untuk menemukan contoh dunia nyata dari sesuatu seperti ini + +### Kualitas Layanan + +Para peneliti menemukan bahwa beberapa pengklasifikasi gender komersial memiliki tingkat kesalahan yang lebih tinggi di sekitar gambar wanita dengan warna kulit lebih gelap dibandingkan dengan gambar pria dengan warna kulit lebih terang. [Referensi](https://www.media.mit.edu/publications/gender-shades-intersectional-accuracy-disparities-in-commercial-gender-classification/) + +Contoh terkenal lainnya adalah dispenser sabun tangan yang sepertinya tidak bisa merasakan orang dengan kulit gelap. [Referensi](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773) + +### Stereotip + +Stereotypical gender view was found in machine translation. When translating “he is a nurse and she is a doctor” into Turkish, problems were encountered. Turkish is a genderless language which has one pronoun, “o” to convey a singular third person, but translating the sentence back from Turkish to English yields the stereotypical and incorrect as “she is a nurse and he is a doctor”. + +Pandangan gender stereotip ditemukan dalam terjemahan mesin. Ketika menerjemahkan "dia (laki-laki) adalah seorang perawat dan dia (perempuan) adalah seorang dokter" ke dalam bahasa Turki, masalah muncul. Turki adalah bahasa tanpa gender yang memiliki satu kata ganti, "o" untuk menyampaikan orang ketiga tunggal, tetapi menerjemahkan kalimat kembali dari Turki ke Inggris menghasilkan stereotip dan salah sebagai "dia (perempuan) adalah seorang perawat dan dia (laki-laki) adalah seorang dokter". + +![terjemahan ke bahasa Turki](images/gender-bias-translate-en-tr.png) + +![terjemahan kembali ke bahasa Inggris](images/gender-bias-translate-tr-en.png) + +### Fitnah + +Sebuah teknologi pelabelan gambar yang terkenal salah memberi label gambar orang berkulit gelap sebagai gorila. Pelabelan yang salah berbahaya bukan hanya karena sistem membuat kesalahan karena secara khusus menerapkan label yang memiliki sejarah panjang yang sengaja digunakan untuk merendahkan orang kulit hitam. + +[![AI: Bukankah Aku Seorang Wanita?](https://img.youtube.com/vi/QxuyfWoVV98/0.jpg)](https://www.youtube.com/watch?v=QxuyfWoVV98 "Bukankah Aku Seorang Wanita?") +> 🎥 Klik gambar diatas untuk sebuah video: AI, Bukankah Aku Seorang Wanita? - menunjukkan kerugian yang disebabkan oleh pencemaran nama baik yang menyinggung ras oleh AI + +### Representasi yang kurang atau berlebihan + +Hasil pencarian gambar yang condong ke hal tertentu (skewed) dapat menjadi contoh yang bagus dari bahaya ini. Saat menelusuri gambar profesi dengan persentase pria yang sama atau lebih tinggi daripada wanita, seperti teknik, atau CEO, perhatikan hasil yang lebih condong ke jenis kelamin tertentu. + +![Pencarian CEO di Bing](images/ceos.png) +> Pencarian di Bing untuk 'CEO' ini menghasilkan hasil yang cukup inklusif + +Lima jenis bahaya utama ini tidak saling eksklusif, dan satu sistem dapat menunjukkan lebih dari satu jenis bahaya. Selain itu, setiap kasus bervariasi dalam tingkat keparahannya. Misalnya, memberi label yang tidak adil kepada seseorang sebagai penjahat adalah bahaya yang jauh lebih parah daripada memberi label yang salah pada gambar. Namun, penting untuk diingat bahwa bahkan kerugian yang relatif tidak parah dapat membuat orang merasa terasing atau diasingkan dan dampak kumulatifnya bisa sangat menekan. + +✅ **Diskusi**: Tinjau kembali beberapa contoh dan lihat apakah mereka menunjukkan bahaya yang berbeda. + +| | Alokasi | Kualitas Layanan | Stereotip | Fitnah | Representasi yang kurang atau berlebihan | +| ----------------------- | :--------: | :----------------: | :----------: | :---------: | :----------------------------: | +| Sistem perekrutan otomatis | x | x | x | | x | +| Terjemahan mesin | | | | | | +| Melabeli foto | | | | | | + + +## Mendeteksi Ketidakadilan + +Ada banyak alasan mengapa sistem tertentu berperilaku tidak adil. Bias sosial, misalnya, mungkin tercermin dalam kumpulan data yang digunakan untuk melatih mereka. Misalnya, ketidakadilan perekrutan mungkin telah diperburuk oleh ketergantungan yang berlebihan pada data historis. Dengan menggunakan pola dalam resume yang dikirimkan ke perusahaan selama periode 10 tahun, model tersebut menentukan bahwa pria lebih berkualitas karena mayoritas resume berasal dari pria, yang mencerminkan dominasi pria di masa lalu di industri teknologi. + +Data yang tidak memadai tentang sekelompok orang tertentu dapat menjadi alasan ketidakadilan. Misalnya, pengklasifikasi gambar memiliki tingkat kesalahan yang lebih tinggi untuk gambar orang berkulit gelap karena warna kulit yang lebih gelap kurang terwakili dalam data. + +Asumsi yang salah yang dibuat selama pengembangan menyebabkan ketidakadilan juga. Misalnya, sistem analisis wajah yang dimaksudkan untuk memprediksi siapa yang akan melakukan kejahatan berdasarkan gambar wajah orang dapat menyebabkan asumsi yang merusak. Hal ini dapat menyebabkan kerugian besar bagi orang-orang yang salah diklasifikasikan. + +## Pahami model kamu dan bangun dalam keadilan + +Meskipun banyak aspek keadilan tidak tercakup dalam metrik keadilan kuantitatif, dan tidak mungkin menghilangkan bias sepenuhnya dari sistem untuk menjamin keadilan, Kamu tetap bertanggung jawab untuk mendeteksi dan mengurangi masalah keadilan sebanyak mungkin. + +Saat Kamu bekerja dengan model pembelajaran mesin, penting untuk memahami model Kamu dengan cara memastikan interpretasinya dan dengan menilai serta mengurangi ketidakadilan. + +Mari kita gunakan contoh pemilihan pinjaman untuk mengisolasi kasus untuk mengetahui tingkat dampak setiap faktor pada prediksi. + +## Metode Penilaian + +1. **Identifikasi bahaya (dan manfaat)**. Langkah pertama adalah mengidentifikasi bahaya dan manfaat. Pikirkan tentang bagaimana tindakan dan keputusan dapat memengaruhi calon pelanggan dan bisnis itu sendiri. + +1. **Identifikasi kelompok yang terkena dampak**. Setelah Kamu memahami jenis kerugian atau manfaat apa yang dapat terjadi, identifikasi kelompok-kelompok yang mungkin terpengaruh. Apakah kelompok-kelompok ini ditentukan oleh jenis kelamin, etnis, atau kelompok sosial? + +1. **Tentukan metrik keadilan**. Terakhir, tentukan metrik sehingga Kamu memiliki sesuatu untuk diukur dalam pekerjaan Kamu untuk memperbaiki situasi. + +### Identifikasi bahaya (dan manfaat) + +Apa bahaya dan manfaat yang terkait dengan pinjaman? Pikirkan tentang skenario negatif palsu dan positif palsu: + +**False negatives** (ditolak, tapi Y=1) - dalam hal ini, pemohon yang akan mampu membayar kembali pinjaman ditolak. Ini adalah peristiwa yang merugikan karena sumber pinjaman ditahan dari pemohon yang memenuhi syarat. + +**False positives** (diterima, tapi Y=0) - dalam hal ini, pemohon memang mendapatkan pinjaman tetapi akhirnya wanprestasi. Akibatnya, kasus pemohon akan dikirim ke agen penagihan utang yang dapat mempengaruhi permohonan pinjaman mereka di masa depan. + +### Identifikasi kelompok yang terkena dampak + +Langkah selanjutnya adalah menentukan kelompok mana yang kemungkinan akan terpengaruh. Misalnya, dalam kasus permohonan kartu kredit, seorang model mungkin menentukan bahwa perempuan harus menerima batas kredit yang jauh lebih rendah dibandingkan dengan pasangan mereka yang berbagi aset rumah tangga. Dengan demikian, seluruh demografi, yang ditentukan berdasarkan jenis kelamin, terpengaruh. + +### Tentukan metrik keadilan + +Kamu telah mengidentifikasi bahaya dan kelompok yang terpengaruh, dalam hal ini, digambarkan berdasarkan jenis kelamin. Sekarang, gunakan faktor terukur untuk memisahkan metriknya. Misalnya, dengan menggunakan data di bawah ini, Kamu dapat melihat bahwa wanita memiliki tingkat *false positive* terbesar dan pria memiliki yang terkecil, dan kebalikannya berlaku untuk *false negative*. + +✅ Dalam pelajaran selanjutnya tentang Pengelompokan, Kamu akan melihat bagaimana membangun 'matriks kebingungan' ini dalam kode + +| | False positive rate | False negative rate | count | +| ---------- | ------------------- | ------------------- | ----- | +| Women | 0.37 | 0.27 | 54032 | +| Men | 0.31 | 0.35 | 28620 | +| Non-binary | 0.33 | 0.31 | 1266 | + + +Tabel ini memberitahu kita beberapa hal. Pertama, kami mencatat bahwa ada sedikit orang non-biner dalam data. Datanya condong, jadi Kamu harus berhati-hati dalam menafsirkan angka-angka ini. + +Dalam hal ini, kita memiliki 3 grup dan 2 metrik. Ketika kita memikirkan tentang bagaimana sistem kita memengaruhi kelompok pelanggan dengan permohonan pinjaman mereka, ini mungkin cukup, tetapi ketika Kamu ingin menentukan jumlah grup yang lebih besar, Kamu mungkin ingin menyaringnya menjadi kumpulan ringkasan yang lebih kecil. Untuk melakukannya, Kamu dapat menambahkan lebih banyak metrik, seperti perbedaan terbesar atau rasio terkecil dari setiap *false negative* dan *false positive*. + +✅ Berhenti dan Pikirkan: Kelompok lain yang apa lagi yang mungkin terpengaruh untuk pengajuan pinjaman? + +## Mengurangi ketidakadilan + +Untuk mengurangi ketidakadilan, jelajahi model untuk menghasilkan berbagai model yang dimitigasi dan bandingkan pengorbanan yang dibuat antara akurasi dan keadilan untuk memilih model yang paling adil. + +Pelajaran pengantar ini tidak membahas secara mendalam mengenai detail mitigasi ketidakadilan algoritmik, seperti pendekatan pasca-pemrosesan dan pengurangan (*post-processing and reductions approach*), tetapi berikut adalah *tool* yang mungkin ingin Kamu coba. + +### Fairlearn + +[Fairlearn](https://fairlearn.github.io/) adalah sebuah *package* Python open-source yang memungkinkan Kamu untuk menilai keadilan sistem Kamu dan mengurangi ketidakadilan. + +*Tool* ini membantu Kamu menilai bagaimana prediksi model memengaruhi kelompok yang berbeda, memungkinkan Kamu untuk membandingkan beberapa model dengan menggunakan metrik keadilan dan kinerja, dan menyediakan serangkaian algoritma untuk mengurangi ketidakadilan dalam klasifikasi dan regresi biner. + +- Pelajari bagaimana cara menggunakan komponen-komponen yang berbeda dengan mengunjungi [GitHub](https://github.com/fairlearn/fairlearn/) Fairlearn + +- Jelajahi [panduan pengguna](https://fairlearn.github.io/main/user_guide/index.html), [contoh-contoh](https://fairlearn.github.io/main/auto_examples/index.html) + +- Coba beberapa [sampel notebook](https://github.com/fairlearn/fairlearn/tree/master/notebooks). + +- Pelajari [bagaimana cara mengaktifkan penilaian keadilan](https://docs.microsoft.com/azure/machine-learning/how-to-machine-learning-fairness-aml?WT.mc_id=academic-15963-cxa) dari model machine learning di Azure Machine Learning. + +- Lihat [sampel notebook](https://github.com/Azure/MachineLearningNotebooks/tree/master/contrib/fairness) ini untuk skenario penilaian keadilan yang lebih banyak di Azure Machine Learning. + +--- +## 🚀 Tantangan + +Untuk mencegah kemunculan bias pada awalnya, kita harus: + +- memiliki keragaman latar belakang dan perspektif di antara orang-orang yang bekerja pada sistem +- berinvestasi dalam dataset yang mencerminkan keragaman masyarakat kita +- mengembangkan metode yang lebih baik untuk mendeteksi dan mengoreksi bias ketika itu terjadi + +Pikirkan tentang skenario kehidupan nyata di mana ketidakadilan terbukti dalam pembuatan dan penggunaan model. Apa lagi yang harus kita pertimbangkan? + +## [Quiz Pasca-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/6/) +## Ulasan & Belajar Mandiri + +Dalam pelajaran ini, Kamu telah mempelajari beberapa dasar konsep keadilan dan ketidakadilan dalam pembelajaran mesin. + +Tonton workshop ini untuk menyelami lebih dalam kedalam topik: + +- YouTube: Kerugian terkait keadilan dalam sistem AI: Contoh, penilaian, dan mitigasi oleh Hanna Wallach dan Miro Dudik [Kerugian terkait keadilan dalam sistem AI: Contoh, penilaian, dan mitigasi - YouTube](https://www.youtube.com/watch?v=1RptHwfkx_k) + +Kamu juga dapat membaca: + +- Pusat sumber daya RAI Microsoft: [Sumber daya Responsible AI – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4) + +- Grup riset FATE Microsoft: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/) + +Jelajahi *toolkit* Fairlearn + +[Fairlearn](https://fairlearn.org/) + +Baca mengenai *tools* Azure Machine Learning untuk memastikan keadilan + +- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-15963-cxa) + +## Tugas + +[Jelajahi Fairlearn](assignment.md) From f8f4ceacf499aae9cadd26d9e6b8bba788c41d2f Mon Sep 17 00:00:00 2001 From: fribble186 Date: Mon, 19 Jul 2021 16:12:43 +0800 Subject: [PATCH 110/228] Translated 2-Regression assignment.md into Simplified Chinese --- .../1-Tools/translations/assignment.zh-cn.md | 14 ++++++++++++++ .../2-Data/translations/assignment.zh-cn.md | 9 +++++++++ .../3-Linear/translations/assignment.zh-cn.md | 12 ++++++++++++ .../4-Logistic/translations/assignment.zh-cn.md | 11 +++++++++++ 4 files changed, 46 insertions(+) create mode 100644 2-Regression/1-Tools/translations/assignment.zh-cn.md create mode 100644 2-Regression/2-Data/translations/assignment.zh-cn.md create mode 100644 2-Regression/3-Linear/translations/assignment.zh-cn.md create mode 100644 2-Regression/4-Logistic/translations/assignment.zh-cn.md diff --git a/2-Regression/1-Tools/translations/assignment.zh-cn.md b/2-Regression/1-Tools/translations/assignment.zh-cn.md new file mode 100644 index 00000000..c296c8ca --- /dev/null +++ b/2-Regression/1-Tools/translations/assignment.zh-cn.md @@ -0,0 +1,14 @@ +# 用 Scikit-learn 实现一次回归算法 + +## 说明 + +先看看 Scikit-learn 中的 [Linnerud 数据集](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) +这个数据集中有多个[目标变量(target)](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset),其中包含了三种运动(训练数据)和三个生理指标(目标变量)组成,这些数据都是从一个健身俱乐部中的20名中年男子收集到的。 + +之后用自己的方式,创建一个可以描述腰围和完成仰卧起坐个数关系的回归模型。用同样的方式对这个数据集中的其它数据也建立一下模型探究一下其中的关系。 + +## 评判标准 + +| 标准 | 优秀 | 中规中矩 | 仍需努力 | +| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- | +| 需要提交一段能描述数据集中关系的文字 | 很好的描述了数据集中的关系 | 只能描述少部分的关系 | 啥都没有提交 | diff --git a/2-Regression/2-Data/translations/assignment.zh-cn.md b/2-Regression/2-Data/translations/assignment.zh-cn.md new file mode 100644 index 00000000..e9c0f1c2 --- /dev/null +++ b/2-Regression/2-Data/translations/assignment.zh-cn.md @@ -0,0 +1,9 @@ +# 探索数据可视化 + +有好几个库都可以进行数据可视化。用 matplotlib 和 seaborn 对本课中涉及的 Pumpkin 数据集创建一些数据可视化的图标。并思考哪个库更容易使用? + +## 评判标准 + +| 标准 | 优秀 | 中规中矩 | 仍需努力 | +| -------- | --------- | -------- | ----------------- | +| | 提交了含有两种探索可视化方法的notebook工程文件 | 提交了只包含有一种探索可视化方法的notebook工程文件 | 没提交 notebook 工程文件 | diff --git a/2-Regression/3-Linear/translations/assignment.zh-cn.md b/2-Regression/3-Linear/translations/assignment.zh-cn.md new file mode 100644 index 00000000..e9c476c3 --- /dev/null +++ b/2-Regression/3-Linear/translations/assignment.zh-cn.md @@ -0,0 +1,12 @@ +# 创建自己的回归模型 + +## 说明 + +在这节课中你学到了如何用线性回归和多项式回归建立一个模型。利用这些只是,找到一个你感兴趣的数据集或者是 Scikit-learn 内置的数据集来建立一个全新的模型。用你的 notebook 来解释为什么用了这种技术来对这个数据集进行建模,并且证明出你的模型的准确度。如果它没你想象中准确,请思考一下并解释一下原因。 + +## 评判标准 + +| 标准 | 优秀 | 中规中矩 | 仍需努力 | +| -------- | ------------------------------------------------------------ | -------------------------- | ------------------------------- | +| | 提交了一个完整的 notebook 工程文件,其中包含了解集,并且可读性良好 | 不完整的解集 | 解集是有缺陷或者有错误的 | + diff --git a/2-Regression/4-Logistic/translations/assignment.zh-cn.md b/2-Regression/4-Logistic/translations/assignment.zh-cn.md new file mode 100644 index 00000000..8dc55af3 --- /dev/null +++ b/2-Regression/4-Logistic/translations/assignment.zh-cn.md @@ -0,0 +1,11 @@ +# 再探回归模型 + +## 说明 + +在这节课中,你使用了 pumpkin 数据集的子集。现在,让我们回到原始数据,并尝试使用所有数据。经过了数据清理和标准化,建立一个逻辑回归模型。 + +## 评判标准 + +| 标准 | 优秀 | 中规中矩 | 仍需努力 | +| -------- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- | +| | 用notebook呈现了一个解释性和性能良好的模型 | 用notebook呈现了一个性能一般的模型 | 用notebook呈现了一个性能差的模型或根本没有模型 | From fafbd6b2b44d35dac162390ed37aed84e433303b Mon Sep 17 00:00:00 2001 From: Foo-x Date: Mon, 19 Jul 2021 18:39:02 +0900 Subject: [PATCH 111/228] fix: typo --- 1-Introduction/1-intro-to-ML/translations/README.ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.ja.md b/1-Introduction/1-intro-to-ML/translations/README.ja.md index aded0f7e..1107739c 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.ja.md +++ b/1-Introduction/1-intro-to-ML/translations/README.ja.md @@ -98,7 +98,7 @@ AI、ML、深層学習、データサイエンスの違いについて理解し ## 振り返りと自習 -クラウド上でMLアルゴリズムをどのように扱うことができるかについては、この[ラーニングパス](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-15963-cxa)に従ってください。. +クラウド上でMLアルゴリズムをどのように扱うことができるかについては、この[ラーニングパス](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-15963-cxa)に従ってください。 ## 課題 From 48590a589ecae9cb929bfe5a6d52740eec40b79b Mon Sep 17 00:00:00 2001 From: manusquall Date: Mon, 19 Jul 2021 10:35:08 +0000 Subject: [PATCH 112/228] finish the fr.json translation proposition --- quiz-app/src/assets/translations/fr.json | 156 +++++++++++------------ 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/quiz-app/src/assets/translations/fr.json b/quiz-app/src/assets/translations/fr.json index 3ec4ec9e..80b55749 100644 --- a/quiz-app/src/assets/translations/fr.json +++ b/quiz-app/src/assets/translations/fr.json @@ -415,7 +415,7 @@ "isCorrect": "true" }, { - "answerText": "tous les deux", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -1033,7 +1033,7 @@ "questionText": "La classification est une forme d'apprentissage supervisé qui a beaucoup en commun avec", "answerOptions": [ { - "answerText": "Série temporelle", + "answerText": "Série chronologique", "isCorrect": "false" }, { @@ -1164,7 +1164,7 @@ "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -1213,7 +1213,7 @@ "questionText": "Quel classificateur avons-nous utilisé dans cette leçon?", "answerOptions": [ { - "answerText": "régression logistique", + "answerText": "Régression logistique", "isCorrect": "true" }, { @@ -1221,7 +1221,7 @@ "isCorrect": "false" }, { - "answerText": "MultiClass one-vs-tout", + "answerText": "Multiclasse un-contre-tous", "isCorrect": "false" } ] @@ -1257,7 +1257,7 @@ "isCorrect": "true" }, { - "answerText": "k-signifie", + "answerText": "K-Means", "isCorrect": "false" }, { @@ -1295,7 +1295,7 @@ "isCorrect": "false" }, { - "answerText": "tous les deux", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -1310,15 +1310,15 @@ "questionText": "Les classificateurs de support-vectoriel peuvent être utilisés pour", "answerOptions": [ { - "answerText": "Classification", + "answerText": "La classification", "isCorrect": "false" }, { - "answerText": "régression", + "answerText": "La régression", "isCorrect": "false" }, { - "answerText": "tous les deux", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -1327,15 +1327,15 @@ "questionText": "Forêt aléatoire est un type de classificateur ___", "answerOptions": [ { - "answerText": "Ensemble", + "answerText": "Ensembliste", "isCorrect": "true" }, { - "answerText": "Dissembliste", + "answerText": "Disensembliste", "isCorrect": "false" }, { - "answerText": "Assemblez", + "answerText": "Assembliste", "isCorrect": "false" } ] @@ -1371,17 +1371,17 @@ "isCorrect": "false" }, { - "answerText": "recommander des modes à essayer", + "answerText": "Recommander des modes à essayer", "isCorrect": "false" }, { - "answerText": "tous les deux", + "answerText": "Les deux", "isCorrect": "true" } ] }, { - "questionText": "L'intégration d'un modèle dans une application Web l'aide à être hors ligne", + "questionText": "L'intégration d'un modèle dans une application Web l'aide à être compatible hors ligne", "answerOptions": [ { "answerText": "Vrai", @@ -1394,7 +1394,7 @@ ] }, { - "questionText": "OnNX Runtime peut être utilisé pour", + "questionText": "Onnx Runtime peut être utilisé pour", "answerOptions": [ { "answerText": "Exécution de modèles dans une application Web", @@ -1405,7 +1405,7 @@ "isCorrect": "false" }, { - "answerText": "Hyperparameter Tuning", + "answerText": "Réglage des hyperparamètres", "isCorrect": "false" } ] @@ -1417,7 +1417,7 @@ "title": "Classification 4: Quiz de validation des connaissances", "quiz": [ { - "questionText": "L'application Nettron vous aide:", + "questionText": "L'application Netron vous aide:", "answerOptions": [ { "answerText": "Visualiser les données", @@ -1434,10 +1434,10 @@ ] }, { - "questionText": "Convertissez votre modèle SCIKIT-HALL pour une utilisation avec OnNX en utilisant:", + "questionText": "Convertissez votre modèle Scikit-learnL pour une utilisation avec Onnx en utilisant:", "answerOptions": [ { - "answerText": "Sklearn-App", + "answerText": "Sklearn-app", "isCorrect": "false" }, { @@ -1445,7 +1445,7 @@ "isCorrect": "false" }, { - "answerText": "Sklearn-ONNX", + "answerText": "Sklearn-onnX", "isCorrect": "true" } ] @@ -1471,7 +1471,7 @@ }, { "id": 27, - "title": "Introduction au Clustering: Quiz préalable", + "title": "Introduction au Clustering (regroupement): Quiz préalable", "quiz": [ { "questionText": "Un exemple de vie réel de regroupement serait", @@ -1502,7 +1502,7 @@ "isCorrect": "false" }, { - "answerText": "tous les deux", + "answerText": "Les deux", "isCorrect": "false" } ] @@ -1528,10 +1528,10 @@ }, { "id": 28, - "title": "Introduction au Clustering: Quiz de validation des connaissances", + "title": "Introduction au Clustering (regroupement): Quiz de validation des connaissances", "quiz": [ { - "questionText": "La géométrie euclidienne est disposée le long", + "questionText": "La géométrie Euclidienne est disposée le long", "answerOptions": [ { "answerText": "De plans", @@ -1633,7 +1633,7 @@ "isCorrect": "false" }, { - "answerText": "tous les deux", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -1701,15 +1701,15 @@ "questionText": "Que signifie NLP pour ces leçons?", "answerOptions": [ { - "answerText": "Traitement des langues neurales", + "answerText": "Neural Language Processing (Traitement des langues neurales)", "isCorrect": "false" }, { - "answerText": "Traitement des langues naturelles", + "answerText": "Natural Language Processing (Traitement des langues naturelles)", "isCorrect": "true" }, { - "answerText": "Traitement linguistique naturel", + "answerText": "Natural Linguistic Processing (Traitement linguistique naturel)", "isCorrect": "false" } ] @@ -1783,7 +1783,7 @@ "isCorrect": "false" }, { - "answerText": "tous les deux", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -1812,7 +1812,7 @@ "title": "Tâches NLP: Quiz préalable", "quiz": [ { - "questionText": "Tokenization", + "questionText": "La tokenization", "answerOptions": [ { "answerText": "Divise le texte au moyen de la ponctuation", @@ -1829,7 +1829,7 @@ ] }, { - "questionText": "Embeddings", + "questionText": "L'Embeddings", "answerOptions": [ { "answerText": "Convertit numériquement les données de texte afin que les mots puissent se classer", @@ -1846,18 +1846,18 @@ ] }, { - "questionText": "Marquage des parties de la parole", + "questionText": "Le balisage des parties du discours (Parts-of-Speech Tagging)", "answerOptions": [ { - "answerText": "Divise des phrases par leurs parties de la parole", + "answerText": "Divise les phrases en fonction de leurs parties du discours", "isCorrect": "false" }, { - "answerText": "prend des mots togmentés et les étiquettes de leur part de la parole", + "answerText": "prend les mots tokenisés et les marque selon leur partie du discours", "isCorrect": "true" }, { - "answerText": "Phrases de diagrammes", + "answerText": "schématise des phrases", "isCorrect": "false" } ] @@ -1886,18 +1886,18 @@ ] }, { - "questionText": "N-grammes se réfèrent à", + "questionText": "N-grams fait référence à", "answerOptions": [ { - "answerText": "Un texte peut être divisé en séquences de mots d'une longueur définie", + "answerText": "Un texte pouvant être divisé en séquences de mots d'une longueur définie", "isCorrect": "true" }, { - "answerText": "Un mot peut être divisé en séquences de caractères d'une longueur de jeu", + "answerText": "Un mot pouvant être divisé en séquences de caractères d'une longueur de jeu", "isCorrect": "false" }, { - "answerText": "Un texte peut être divisé en paragraphes d'une longueur définie", + "answerText": "Un texte pouvant être divisé en paragraphes d'une longueur définie", "isCorrect": "false" } ] @@ -2000,7 +2000,7 @@ ] }, { - "questionText": "Pour utiliser `blob.translate` vous avez besoin:", + "questionText": "Pour utiliser `blob.translate` vous avez besoin de:", "answerOptions": [ { "answerText": "Une connexion Internet", @@ -2017,18 +2017,18 @@ ] }, { - "questionText": "Pour déterminer un sentiment, une approche ML serait de:", + "questionText": "Pour déterminer un sentiment, une approche ML serait d':", "answerOptions": [ { - "answerText": "Appliquez des techniques de régression pour générer manuellement des opinions et des scores et rechercher des modèles", + "answerText": "Appliquer des techniques de régression pour générer manuellement des opinions et des scores et rechercher des modèles", "isCorrect": "false" }, { - "answerText": "Appliquez des techniques de PNL pour générer manuellement des opinions et des scores et rechercher des modèles", + "answerText": "Appliquer des techniques de PNL pour générer manuellement des opinions et des scores et rechercher des modèles", "isCorrect": "true" }, { - "answerText": "Appliquez des techniques de regroupement pour des opinions et des scores générés manuellement et rechercher des modèles", + "answerText": "Appliquer des techniques de regroupement pour des opinions et des scores générés manuellement et rechercher des modèles", "isCorrect": "false" } ] @@ -2253,10 +2253,10 @@ }, { "id": 41, - "title": "Introduction aux Time Series (séries temporelles): Quiz préalable", + "title": "Introduction aux Séries chronologiques (Time Series) : Quiz préalable", "quiz": [ { - "questionText": "La prévision de Time Series est utile pour", + "questionText": "La prévision de série chronologique est utile pour", "answerOptions": [ { "answerText": "Déterminer les coûts futurs", @@ -2273,7 +2273,7 @@ ] }, { - "questionText": "Une série temporelles est une séquence prise à:", + "questionText": "Une série chronologique est une séquence prise à:", "answerOptions": [ { "answerText": "points successifs également espacés dans l'espace", @@ -2290,7 +2290,7 @@ ] }, { - "questionText": "La série temporelles peut être utilisée dans les cas de:", + "questionText": "La série chronologique peut être utilisée dans les cas de:", "answerOptions": [ { "answerText": "Prévision de tremblement de terre", @@ -2310,10 +2310,10 @@ }, { "id": 42, - "title": "Introduction aux Time Series (séries temporelles): Quiz de validation des connaissances", + "title": "Introduction aux séries chronologiques : Quiz de validation des connaissances", "quiz": [ { - "questionText": "Les tendances de série temporelles sont", + "questionText": "Les tendances de série chronologique sont", "answerOptions": [ { "answerText": "des augmentations et des diminutions mesurables au fil du temps", @@ -2347,10 +2347,10 @@ ] }, { - "questionText": "La prévision de la série temporelle est la plus utile pour", + "questionText": "La prévision de séries chronologiques est utile pour", "answerOptions": [ { - "answerText": "L'conométrics", + "answerText": "L'économétrie", "isCorrect": "true" }, { @@ -2367,27 +2367,27 @@ }, { "id": 43, - "title": "Série TIME ARIMA: Quiz préalable", + "title": "Les séries chronologiques ARIMA: Quiz préalable", "quiz": [ { - "questionText": "Arima signifie", + "questionText": "ARIMA signifie", "answerOptions": [ { - "answerText": "Moyenne mobile intégrale autonome", + "answerText": "AutoRegressive Integral Moving Average", "isCorrect": "false" }, { - "answerText": "Action mobile intégrée autorégressive", + "answerText": "AutoRegressive Integrated Moving Action", "isCorrect": "false" }, { - "answerText": "Moyenne mobile intégrée autorégresive", + "answerText": "AutoRegressive Integrated Moving Average", "isCorrect": "true" } ] }, { - "questionText": "Stationarité fait référence à", + "questionText": "La stationnarité fait référence à", "answerOptions": [ { "answerText": "Les données dont les attributs ne changent pas lors de la décalage", @@ -2404,7 +2404,7 @@ ] }, { - "questionText": "différenciation", + "questionText": "La différenciation", "answerOptions": [ { "answerText": "Stabilise la tendance et la saisonnalité", @@ -2424,7 +2424,7 @@ }, { "id": 44, - "title": "Série TIME ARIMA: Quiz de validation des connaissances", + "title": "Les séries chronologiques ARIMA: Quiz de validation des connaissances", "quiz": [ { "questionText": "Arima est utilisé pour créer un modèle adapté à la forme spéciale des données de la série chronologique", @@ -2444,7 +2444,7 @@ ] }, { - "questionText": "Utilisez Sarimax à", + "questionText": "Utilisez Sarimax pour", "answerOptions": [ { "answerText": "Gérer les modèles d'ARIMA saisonniers", @@ -2461,18 +2461,18 @@ ] }, { - "questionText": " `La validation` de la promenade implique ", + "questionText": " La validation « Walk-Forward » implique de", "answerOptions": [ { "answerText": "Réévaluer un modèle progressivement tel qu'il est validé", "isCorrect": "false" }, { - "answerText": "Ré-entraînant un modèle progressivement tel qu'il est validé", + "answerText": "Re-entraîner un modèle progressivement tel qu'il est validé", "isCorrect": "true" }, { - "answerText": "Ré-configurez un modèle progressivement tel qu'il est validé", + "answerText": "Re-configurer un modèle progressivement tel qu'il est validé", "isCorrect": "false" } ] @@ -2535,7 +2535,7 @@ "title": "Renforcement 1: Quiz de validation des connaissances", "quiz": [ { - "questionText": "Qu'est-ce que q-apprentissage?", + "questionText": "Qu'est-ce que le Q-Learning?", "answerOptions": [ { "answerText": "Un mécanisme d'enregistrement de la \"bonté\" de chaque État", @@ -2552,7 +2552,7 @@ ] }, { - "questionText": "Pour quelles valeurs une table Q correspond à la stratégie de marche aléatoire?", + "questionText": "Pour quelles valeurs une Q-Table correspond à la stratégie de marche aléatoire?", "answerOptions": [ { "answerText": "toutes les valeurs égales", @@ -2588,7 +2588,7 @@ "title": "Renforcement 2: Quiz préalable", "quiz": [ { - "questionText": "Les échecs et les jeux sont des jeux avec des états continus.", + "questionText": "Les échecs et le go sont des jeux avec des états continus", "answerOptions": [ { "answerText": "Vrai", @@ -2601,7 +2601,7 @@ ] }, { - "questionText": "Quel est le problème de la cartpole?", + "questionText": "Quel est le problème CartPole ?", "answerOptions": [ { "answerText": "Un processus d'élimination des valeurs aberrantes", @@ -2658,14 +2658,14 @@ ] }, { - "questionText": "Quelle paire avez-nous utilisée comme valeur de la clé de dictionnaire?", + "questionText": "Quelle paire avons-nous utilisée comme valeur de la clé de dictionnaire?", "answerOptions": [ { - "answerText": "(état, action) comme clé de la table Q-Table comme valeur", + "answerText": "(état, action) comme clé, l'entrée Q-Table comme valeur", "isCorrect": "true" }, { - "answerText": "State comme clé, action en tant que valeur", + "answerText": "L'état comme clé, action en tant que valeur", "isCorrect": "false" }, { @@ -2675,7 +2675,7 @@ ] }, { - "questionText": "Quels sont les hyperparamètres que nous avons utilisés pendant q-apprentissage?", + "questionText": "Quels sont les hyperparamètres que nous avons utilisés pendant le Q-Learning?", "answerOptions": [ { "answerText": "Valeur de la table Q, récompense actuelle, action aléatoire", @@ -2718,15 +2718,15 @@ "questionText": "Quelle technique ML peut utiliser les hôpitaux pour gérer la réadmission?", "answerOptions": [ { - "answerText": "Clustering", + "answerText": "Le Clustering (Regroupement)", "isCorrect": "true" }, { - "answerText": "Série temporelle", + "answerText": "Les séries chronologiques", "isCorrect": "false" }, { - "answerText": "NLP", + "answerText": "Le NLP", "isCorrect": "false" } ] @@ -2779,7 +2779,7 @@ "isCorrect": "true" }, { - "answerText": "Série temporelle", + "answerText": "Série chronologique", "isCorrect": "false" }, { From d741c3f67ea6e4d2d79749fb94d425c4c4f9d58a Mon Sep 17 00:00:00 2001 From: manusquall Date: Mon, 19 Jul 2021 10:41:33 +0000 Subject: [PATCH 113/228] review and correct some meaning --- quiz-app/src/assets/translations/fr.json | 40 ++++++++++++------------ 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/quiz-app/src/assets/translations/fr.json b/quiz-app/src/assets/translations/fr.json index 80b55749..9908c3ea 100644 --- a/quiz-app/src/assets/translations/fr.json +++ b/quiz-app/src/assets/translations/fr.json @@ -820,7 +820,7 @@ ] }, { - "questionText": "Types de régression logistique incluent", + "questionText": "Les types de régression logistique incluent", "answerOptions": [ { "answerText": "multinomial et cardinal", @@ -848,7 +848,7 @@ "isCorrect": "false" }, { - "answerText": "cardinal", + "answerText": "cardinale", "isCorrect": "false" } ] @@ -860,7 +860,7 @@ "title": "Régression logistique: Quiz de validation des connaissances", "quiz": [ { - "questionText": "Sea-né est un type de", + "questionText": "Seaborn est un type de", "answerOptions": [ { "answerText": "Bibliothèque de visualisation de données", @@ -880,15 +880,15 @@ "questionText": "Une matrice de confusion est également connue sous le nom de:", "answerOptions": [ { - "answerText": "matrice d'erreur", + "answerText": "Matrice d'erreur", "isCorrect": "true" }, { - "answerText": "Matrix de vérité", + "answerText": "Matrice de vérité", "isCorrect": "false" }, { - "answerText": "matrice de précision", + "answerText": "Matrice de précision", "isCorrect": "false" } ] @@ -916,35 +916,35 @@ "title": "Construire une application Web: Quiz préalable", "quiz": [ { - "questionText": "Qu'est-ce que OnNX signifie?", + "questionText": "Qu'est-ce que ONNX signifie?", "answerOptions": [ { - "answerText": "Exchange de réseau de neurones", + "answerText": "Over Neural Network Exchange", "isCorrect": "false" }, { - "answerText": "Exchange de réseau de neurones ouverts", + "answerText": "Open Neural Network Exchange", "isCorrect": "true" }, { - "answerText": "Exchange de réseau neural de sortie", + "answerText": "Output Neural Network Exchange", "isCorrect": "false" } ] }, { - "questionText": "Comment le ballon est-il défini par ses créateurs?", + "questionText": "Comment Flask est-il défini par ses créateurs?", "answerOptions": [ { - "answerText": "mini-cadre", + "answerText": "mini-framework", "isCorrect": "false" }, { - "answerText": "Grand-cadre", + "answerText": "grand-framework", "isCorrect": "false" }, { - "answerText": "micro-cadre", + "answerText": "micro-framework", "isCorrect": "true" } ] @@ -953,15 +953,15 @@ "questionText": "Que fait le module de cornichon de Python", "answerOptions": [ { - "answerText": "Serialise un objet Python", + "answerText": "Serialiser un objet Python", "isCorrect": "false" }, { - "answerText": "désagréalise un objet Python", + "answerText": "Dé-sérialiser un objet Python", "isCorrect": "false" }, { - "answerText": "Serialise et désémarifier un objet Python", + "answerText": "Sérialiser et Dé-sérialiser un objet Python", "isCorrect": "true" } ] @@ -976,7 +976,7 @@ "questionText": "Quels sont les outils que nous pouvons utiliser pour héberger un modèle pré-formé sur le Web à l'aide de Python?", "answerOptions": [ { - "answerText": "Flacon", + "answerText": "Flask", "isCorrect": "true" }, { @@ -984,7 +984,7 @@ "isCorrect": "false" }, { - "answerText": "ONNX.JS", + "answerText": "onnx.JS", "isCorrect": "false" } ] @@ -1018,7 +1018,7 @@ "isCorrect": "false" }, { - "answerText": "Code des données en série", + "answerText": "Encode des données en série", "isCorrect": "false" } ] From 7dea56de001724f4df76d2e32e998e904d5ba189 Mon Sep 17 00:00:00 2001 From: manusquall Date: Mon, 19 Jul 2021 10:58:34 +0000 Subject: [PATCH 114/228] fix mistranslation --- quiz-app/src/assets/translations/fr.json | 104 +++++++++++------------ 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/quiz-app/src/assets/translations/fr.json b/quiz-app/src/assets/translations/fr.json index 9908c3ea..da0ee317 100644 --- a/quiz-app/src/assets/translations/fr.json +++ b/quiz-app/src/assets/translations/fr.json @@ -50,7 +50,7 @@ "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -107,7 +107,7 @@ "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -236,15 +236,15 @@ "questionText": "L'injustice dans le machine learning peut arriver", "answerOptions": [ { - "answerText": "intentionnellement", + "answerText": "Intentionnellement", "isCorrect": "false" }, { - "answerText": "Indormalement", + "answerText": "Involontairement", "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -253,15 +253,15 @@ "questionText": "Le terme \" injustice \" en ml connotes:", "answerOptions": [ { - "answerText": "nuit à un groupe de personnes", + "answerText": "Préjudices pour un groupe de personnees", "isCorrect": "true" }, { - "answerText": "Dommage à une personne", + "answerText": "préjudice à une personne", "isCorrect": "false" }, { - "answerText": "nuit à la majorité des gens", + "answerText": "Préjudices pour la majorité des gens", "isCorrect": "false" } ] @@ -293,21 +293,21 @@ "questionText": "L'injustice dans un modèle peut être causée par", "answerOptions": [ { - "answerText": "dépassement de données historiques", + "answerText": "Dépendance excessive de données historiques", "isCorrect": "true" }, { - "answerText": "Sous-solliance sur les données historiques", + "answerText": "sous-dépendance sur les données historiques", "isCorrect": "false" }, { - "answerText": "Trop d'alignement sur les données historiques", + "answerText": "Alignement trop étroit sur les données historiques", "isCorrect": "false" } ] }, { - "questionText": "Pour atténuer l'injustice, tu peux", + "questionText": "Pour atténuer l'injustice, vous pouvez", "answerOptions": [ { "answerText": "Identifier les préjudices et les groupes affectés", @@ -318,7 +318,7 @@ "isCorrect": "false" }, { - "answerText": "à la fois ce qui précède", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -375,7 +375,7 @@ "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -521,11 +521,11 @@ "questionText": "Si la précision de la formation du modèle d'apprentissage de votre machine est de 95% et que la précision des tests est de 30%, quel type de condition est appelé?", "answerOptions": [ { - "answerText": "Surface", + "answerText": "Surapprentissage", "isCorrect": "true" }, { - "answerText": "sous-facture", + "answerText": "Insuffisance", "isCorrect": "false" }, { @@ -552,18 +552,18 @@ ] }, { - "questionText": "Le processus de division d'un jeu de données dans un certain rapport d'entraînement et de test de jeu de données à l'aide de la méthode / la fonction Train_Test_split () '' Train_Test_Split () 'est appelée:", + "questionText": "Le processus de division d'un ensemble de données en un certain rapport d'ensemble de données d'entraînement et de test à l'aide de la méthode/fonction 'train_test_split ()' de Scikit Learn est appelé une:", "answerOptions": [ { "answerText": "Validation croisée", "isCorrect": "false" }, { - "answerText": "validation de maintien", + "answerText": "Validation d'attentn", "isCorrect": "true" }, { - "answerText": "laissez une validation d'une sortie", + "answerText": "Validation \"Oubliez-en un\" ", "isCorrect": "false" } ] @@ -582,7 +582,7 @@ "isCorrect": "false" }, { - "answerText": "Scikit-apprendre", + "answerText": "Scikit-learn", "isCorrect": "false" }, { @@ -592,18 +592,18 @@ ] }, { - "questionText": "Si vous souhaitez comprendre la propagation ou les autres caractéristiques des points de données de votre ensemble de données, puis effectuez:", + "questionText": "Si vous souhaitez comprendre la propagation ou les autres caractéristiques des points de données de votre ensemble de données, alors effectuez:", "answerOptions": [ { - "answerText": "Visualisation des données", + "answerText": "Une visualisation des données", "isCorrect": "true" }, { - "answerText": "Pré-traitement des données", + "answerText": "Un pré-traitement des données", "isCorrect": "false" }, { - "answerText": "Split test de train", + "answerText": "Un Train Test Splitn", "isCorrect": "false" } ] @@ -612,7 +612,7 @@ "questionText": "Lequel d'entre eux fait partie de l'étape de visualisation des données dans un projet de machine learning?", "answerOptions": [ { - "answerText": "Intégrant un algorithme d'apprentissage de certains machines", + "answerText": "Intégrer un algorithme d'apprentissage de certains machines", "isCorrect": "false" }, { @@ -634,16 +634,16 @@ { "questionText": "Lequel de ces extraits de code est correct d'après cette leçon, si vous souhaitez vérifier la présence de valeurs manquantes dans votre ensemble de données ? Supposons que l'ensemble de données soit stocké dans une variable nommée \"ensemble de données\", qui est un objet Pandas DataFrame.", "answerOptions": [ - { - "answerText": "DataSet.isnull (). Somme ()", + { + "answerText": "dataset.isnull().sum()", "isCorrect": "true" }, { - "answerText": "FindMissing (DataSet)", + "answerText": "findMissing(dataset)", "isCorrect": "false" }, { - "answerText": "Somme (NULL (DataSet))", + "answerText": "sum(null(dataset))", "isCorrect": "false" } ] @@ -652,15 +652,15 @@ "questionText": "Laquelle de ces méthodes de traçage est utile lorsque vous souhaitez comprendre la propagation de différents groupes de fichiers de données de votre jeu de données?", "answerOptions": [ { - "answerText": "Terrain de dispersion", + "answerText": "Nuage de pointsn", "isCorrect": "false" }, { - "answerText": "Terrain de ligne", + "answerText": "Graphique linéaire", "isCorrect": "false" }, { - "answerText": "barre de bar", + "answerText": "Graphique à barres", "isCorrect": "true" } ] @@ -689,7 +689,7 @@ "title": "Régression linéaire et polynomiale: Quiz préalable", "quiz": [ { - "questionText": "Matplotlib est un", + "questionText": "Matplotlib est une", "answerOptions": [ { "answerText": "Bibliothèque de dessin", @@ -700,7 +700,7 @@ "isCorrect": "true" }, { - "answerText": "Library Lanchage", + "answerText": "Bibliothèque de prêt", "isCorrect": "false" } ] @@ -717,7 +717,7 @@ "isCorrect": "false" }, { - "answerText": "une courbe", + "answerText": "Une courbe", "isCorrect": "false" } ] @@ -726,15 +726,15 @@ "questionText": "Un bon modèle de régression linéaire a un coefficient de corrélation ___", "answerOptions": [ { - "answerText": "Low", + "answerText": "Bas", "isCorrect": "false" }, { - "answerText": "High", + "answerText": "Elevé", "isCorrect": "true" }, { - "answerText": "flat", + "answerText": "Plat", "isCorrect": "false" } ] @@ -757,7 +757,7 @@ "isCorrect": "false" }, { - "answerText": "polynôme", + "answerText": "polynômial", "isCorrect": "true" } ] @@ -766,15 +766,15 @@ "questionText": "Ce sont tous types de méthodes de régression", "answerOptions": [ { - "answerText": "Falsestetep, crête, lasso et élastique", + "answerText": "Falsestep, Ridge, Lasso et Elasticnet", "isCorrect": "false" }, { - "answerText": "Stealwise, Ridge, Lasso et Elasticnet", + "answerText": "Stepwise, Ridge, Lasso et Elasticnet", "isCorrect": "true" }, { - "answerText": "Stealwise, Ridge, Lariat et Elasticnet", + "answerText": "Stepwise, Ridge, Lariat et Elasticnet", "isCorrect": "false" } ] @@ -1735,7 +1735,7 @@ "questionText": "Le test Turing d'Alan Turing a essayé de déterminer si un ordinateur était", "answerOptions": [ { - "answerText": "indiscernable d'un humain", + "answerText": "Indiscernable d'un humain", "isCorrect": "false" }, { @@ -1743,7 +1743,7 @@ "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -2047,11 +2047,11 @@ "isCorrect": "false" }, { - "answerText": "sentiment et signification", + "answerText": "Sentiment et signification", "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -2121,11 +2121,11 @@ "isCorrect": "false" }, { - "answerText": "lignes vierges ou colonnes", + "answerText": "Lignes vierges ou colonnes", "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -2161,7 +2161,7 @@ "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -2227,11 +2227,11 @@ "isCorrect": "false" }, { - "answerText": "mots que vous pouvez supprimer pour accélérer l'analyse du sentiment", + "answerText": "Mots que vous pouvez supprimer pour accélérer l'analyse du sentiment", "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] @@ -2546,7 +2546,7 @@ "isCorrect": "false" }, { - "answerText": "Les deux ci-dessus", + "answerText": "Les deux", "isCorrect": "true" } ] From cdd0dfb8baddaebb2dcdfe987bda759ae5374245 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Mon, 19 Jul 2021 12:32:28 +0000 Subject: [PATCH 115/228] Update the links to redirect to translated pages --- 1-Introduction/translations/README.fr.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/1-Introduction/translations/README.fr.md b/1-Introduction/translations/README.fr.md index c27f9bef..462dea70 100644 --- a/1-Introduction/translations/README.fr.md +++ b/1-Introduction/translations/README.fr.md @@ -7,10 +7,10 @@ Dans cette section du programme, vous découvrirez les concepts de base sous-jac ### Leçons -1. [Introduction au machine learning](1-intro-to-ML/README.md) -1. [L’histoire du machine learning et de l’IA](2-history-of-ML/README.md) -1. [Équité et machine learning](3-équité/README.md) -1. [Techniques de machine learning](4-techniques-of-ML/README.md) +1. [Introduction au machine learning](../1-intro-to-ML/translations/README.fr.md) +1. [L’histoire du machine learning et de l’IA](../2-history-of-ML/translations/README.fr.md) +1. [Équité et machine learning](../3-fairness/translations/README.fr.md) +1. [Techniques de machine learning](../4-techniques-of-ML/translations/README.fr.md) ### Crédits "Introduction au machine learning" a été écrit avec ♥️ par une équipe de personnes comprenant [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) et [Jen Looper](https://twitter.com/jenlooper) From 7bb38cd9d98a11e97bb74ee58927f24c2d928a32 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Mon, 19 Jul 2021 12:38:53 +0000 Subject: [PATCH 116/228] update the quiz links to the french translation --- 1-Introduction/1-intro-to-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.fr.md b/1-Introduction/1-intro-to-ML/translations/README.fr.md index 0d07a5e8..d8915f58 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.fr.md +++ b/1-Introduction/1-intro-to-ML/translations/README.fr.md @@ -4,7 +4,7 @@ > 🎥 Cliquer sur l'image ci-dessus afin de regarder une vidéo expliquant la différence entre machine learning, AI et deep learning. -## [Quiz préalable](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) +## [Quiz préalable](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1?loc=fr) ### Introduction @@ -98,7 +98,7 @@ Dans un avenir proche, comprendre les bases du machine learning sera indispensab Esquisser, sur papier ou à l'aide d'une application en ligne comme [Excalidraw](https://excalidraw.com/), votre compréhension des différences entre l'IA, le ML, le deep learning et la data science. Ajouter quelques idées de problèmes que chacune de ces techniques est bonne à résoudre. -## [Quiz de validation des connaissances](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) +## [Quiz de validation des connaissances](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2?loc=fr) ## Révision et auto-apprentissage From 2cbe730dd959bc6ce906c0ea0dd5b7b42dacfc40 Mon Sep 17 00:00:00 2001 From: "Charles Emmanuel S. Ndiaye" Date: Mon, 19 Jul 2021 12:40:20 +0000 Subject: [PATCH 117/228] update the quiz links to the french translation --- 1-Introduction/2-history-of-ML/translations/README.fr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/2-history-of-ML/translations/README.fr.md b/1-Introduction/2-history-of-ML/translations/README.fr.md index 66132162..9c59eb6f 100644 --- a/1-Introduction/2-history-of-ML/translations/README.fr.md +++ b/1-Introduction/2-history-of-ML/translations/README.fr.md @@ -3,7 +3,7 @@ ![Résumé de l'histoire du machine learning dans un sketchnote](../../../sketchnotes/ml-history.png) > Sketchnote de [Tomomi Imura](https://www.twitter.com/girlie_mac) -## [Quizz préalable](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/3/) +## [Quizz préalable](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/3?loc=fr) Dans cette leçon, nous allons parcourir les principales étapes de l'histoire du machine learning et de l'intelligence artificielle. @@ -102,7 +102,7 @@ Reste à savoir ce que l'avenir nous réserve, mais il est important de comprend Plongez dans l'un de ces moments historiques et apprenez-en plus sur les personnes derrière ceux-ci. Il y a des personnalités fascinantes, et aucune découverte scientifique n'a jamais été créée avec un vide culturel. Que découvrez-vous ? -## [Quiz de validation des connaissances](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/4/) +## [Quiz de validation des connaissances](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/4?loc=fr) ## Révision et auto-apprentissage From 922413c563afdda446f99d582c08db3da38d253b Mon Sep 17 00:00:00 2001 From: Foo-x Date: Mon, 19 Jul 2021 21:44:29 +0900 Subject: [PATCH 118/228] feat: add ja 1.1 assignment Add Japanese translation of the 1.1 assignment. Refs #149 --- 1-Introduction/1-intro-to-ML/translations/README.ja.md | 2 +- .../1-intro-to-ML/translations/assignment.ja.md | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 1-Introduction/1-intro-to-ML/translations/assignment.ja.md diff --git a/1-Introduction/1-intro-to-ML/translations/README.ja.md b/1-Introduction/1-intro-to-ML/translations/README.ja.md index 1107739c..ada00550 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.ja.md +++ b/1-Introduction/1-intro-to-ML/translations/README.ja.md @@ -102,4 +102,4 @@ AI、ML、深層学習、データサイエンスの違いについて理解し ## 課題 -[起動し、実行してください。](assignment.md) +[稼働させる](assignment.ja.md) diff --git a/1-Introduction/1-intro-to-ML/translations/assignment.ja.md b/1-Introduction/1-intro-to-ML/translations/assignment.ja.md new file mode 100644 index 00000000..9c86969c --- /dev/null +++ b/1-Introduction/1-intro-to-ML/translations/assignment.ja.md @@ -0,0 +1,9 @@ +# 稼働させる + +## 指示 + +この評価のない課題では、Pythonについて復習し、環境を稼働させてノートブックを実行できるようにする必要があります。 + +この[Pythonラーニングパス](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa)を受講し、次の入門用ビデオに従ってシステムをセットアップしてください。 + +https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 From e1e18f2a3cad47b9e9c1199f36dfdc80bb9f1a3e Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Mon, 19 Jul 2021 14:50:54 +0200 Subject: [PATCH 119/228] Add missing comma Add the missing comma and fix #208 --- 4-Classification/1-Introduction/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-Classification/1-Introduction/README.md b/4-Classification/1-Introduction/README.md index 4490131c..09a35154 100644 --- a/4-Classification/1-Introduction/README.md +++ b/4-Classification/1-Introduction/README.md @@ -163,7 +163,7 @@ Now you can dig deeper into the data and learn what are the typical ingredients def create_ingredient_df(df): ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value') ingredient_df = ingredient_df[(ingredient_df.T != 0).any()] - ingredient_df = ingredient_df.sort_values(by='value', ascending=False + ingredient_df = ingredient_df.sort_values(by='value', ascending=False, inplace=False) return ingredient_df ``` From 34807d24a36319b21a93049bee2fff52fa1769ef Mon Sep 17 00:00:00 2001 From: simplg <81249731+simplg@users.noreply.github.com> Date: Mon, 19 Jul 2021 14:52:54 +0200 Subject: [PATCH 120/228] Fix path and table format Fix #209 with the correct path to cleaned_cuisine.csv Fix also a formating error with the table where almond was the index column of the dataframe --- 4-Classification/2-Classifiers-1/README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/4-Classification/2-Classifiers-1/README.md b/4-Classification/2-Classifiers-1/README.md index 0db1aeba..213179bb 100644 --- a/4-Classification/2-Classifiers-1/README.md +++ b/4-Classification/2-Classifiers-1/README.md @@ -15,7 +15,7 @@ Assuming you completed [Lesson 1](../1-Introduction/README.md), make sure that a ```python import pandas as pd - cuisines_df = pd.read_csv("../../data/cleaned_cuisine.csv") + cuisines_df = pd.read_csv("../data/cleaned_cuisine.csv") cuisines_df.head() ``` @@ -67,13 +67,13 @@ Assuming you completed [Lesson 1](../1-Introduction/README.md), make sure that a Your features look like this: -| almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | -| -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | -| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | +| | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | +| -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | -----: | +| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | Now you are ready to train your model! From 60526b022f0d2d098693448d361972613f20ed4d Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Mon, 19 Jul 2021 10:20:02 -0400 Subject: [PATCH 121/228] changing classification file name to cleaned_cuisines --- 4-Classification/1-Introduction/README.md | 2 +- 4-Classification/1-Introduction/solution/notebook.ipynb | 2 +- 4-Classification/1-Introduction/translations/README.tr.md | 2 +- 4-Classification/1-Introduction/translations/README.zh-cn.md | 2 +- 4-Classification/2-Classifiers-1/README.md | 2 +- 4-Classification/2-Classifiers-1/solution/notebook.ipynb | 2 +- 4-Classification/3-Classifiers-2/README.md | 2 +- 4-Classification/3-Classifiers-2/notebook.ipynb | 2 +- 4-Classification/3-Classifiers-2/solution/notebook.ipynb | 2 +- 4-Classification/4-Applied/README.md | 2 +- 4-Classification/4-Applied/solution/notebook.ipynb | 2 +- .../data/{cleaned_cuisine.csv => cleaned_cuisines.csv} | 0 12 files changed, 11 insertions(+), 11 deletions(-) rename 4-Classification/data/{cleaned_cuisine.csv => cleaned_cuisines.csv} (100%) diff --git a/4-Classification/1-Introduction/README.md b/4-Classification/1-Introduction/README.md index 4490131c..8e075f0e 100644 --- a/4-Classification/1-Introduction/README.md +++ b/4-Classification/1-Introduction/README.md @@ -275,7 +275,7 @@ Now that you have cleaned the data, use [SMOTE](https://imbalanced-learn.org/dev ```python transformed_df.head() transformed_df.info() - transformed_df.to_csv("../data/cleaned_cuisine.csv") + transformed_df.to_csv("../data/cleaned_cuisines.csv") ``` This fresh CSV can now be found in the root data folder. diff --git a/4-Classification/1-Introduction/solution/notebook.ipynb b/4-Classification/1-Introduction/solution/notebook.ipynb index c5b8c629..5abb9693 100644 --- a/4-Classification/1-Introduction/solution/notebook.ipynb +++ b/4-Classification/1-Introduction/solution/notebook.ipynb @@ -622,7 +622,7 @@ "metadata": {}, "outputs": [], "source": [ - "transformed_df.to_csv(\"../../data/cleaned_cuisine.csv\")" + "transformed_df.to_csv(\"../../data/cleaned_cuisines.csv\")" ] }, { diff --git a/4-Classification/1-Introduction/translations/README.tr.md b/4-Classification/1-Introduction/translations/README.tr.md index e4cc372a..fd0e2184 100644 --- a/4-Classification/1-Introduction/translations/README.tr.md +++ b/4-Classification/1-Introduction/translations/README.tr.md @@ -275,7 +275,7 @@ Veriyi temizlediniz, şimdi [SMOTE](https://imbalanced-learn.org/dev/references/ ```python transformed_df.head() transformed_df.info() - transformed_df.to_csv("../../data/cleaned_cuisine.csv") + transformed_df.to_csv("../../data/cleaned_cuisines.csv") ``` Bu yeni CSV şimdi kök data (veri) klasöründe görülebilir. diff --git a/4-Classification/1-Introduction/translations/README.zh-cn.md b/4-Classification/1-Introduction/translations/README.zh-cn.md index 2e258f3f..adef7c8a 100644 --- a/4-Classification/1-Introduction/translations/README.zh-cn.md +++ b/4-Classification/1-Introduction/translations/README.zh-cn.md @@ -269,7 +269,7 @@ Scikit-learn项目提供多种对数据进行分类的算法,你需要根据 ```python transformed_df.head() transformed_df.info() - transformed_df.to_csv("../data/cleaned_cuisine.csv") + transformed_df.to_csv("../data/cleaned_cuisines.csv") ``` 这个全新的CSV文件可以在数据根目录中被找到。 diff --git a/4-Classification/2-Classifiers-1/README.md b/4-Classification/2-Classifiers-1/README.md index 0db1aeba..c5588f1b 100644 --- a/4-Classification/2-Classifiers-1/README.md +++ b/4-Classification/2-Classifiers-1/README.md @@ -15,7 +15,7 @@ Assuming you completed [Lesson 1](../1-Introduction/README.md), make sure that a ```python import pandas as pd - cuisines_df = pd.read_csv("../../data/cleaned_cuisine.csv") + cuisines_df = pd.read_csv("../../data/cleaned_cuisines.csv") cuisines_df.head() ``` diff --git a/4-Classification/2-Classifiers-1/solution/notebook.ipynb b/4-Classification/2-Classifiers-1/solution/notebook.ipynb index a819dbe5..770ac85c 100644 --- a/4-Classification/2-Classifiers-1/solution/notebook.ipynb +++ b/4-Classification/2-Classifiers-1/solution/notebook.ipynb @@ -47,7 +47,7 @@ ], "source": [ "import pandas as pd\n", - "cuisines_df = pd.read_csv(\"../../data/cleaned_cuisine.csv\")\n", + "cuisines_df = pd.read_csv(\"../../data/cleaned_cuisines.csv\")\n", "cuisines_df.head()" ] }, diff --git a/4-Classification/3-Classifiers-2/README.md b/4-Classification/3-Classifiers-2/README.md index dd25926e..9720c763 100644 --- a/4-Classification/3-Classifiers-2/README.md +++ b/4-Classification/3-Classifiers-2/README.md @@ -6,7 +6,7 @@ In this second classification lesson, you will explore more ways to classify num ### Prerequisite -We assume that you have completed the previous lessons and have a cleaned dataset in your `data` folder called _cleaned_cuisine.csv_ in the root of this 4-lesson folder. +We assume that you have completed the previous lessons and have a cleaned dataset in your `data` folder called _cleaned_cuisines.csv_ in the root of this 4-lesson folder. ### Preparation diff --git a/4-Classification/3-Classifiers-2/notebook.ipynb b/4-Classification/3-Classifiers-2/notebook.ipynb index f4dec474..4659a7b6 100644 --- a/4-Classification/3-Classifiers-2/notebook.ipynb +++ b/4-Classification/3-Classifiers-2/notebook.ipynb @@ -47,7 +47,7 @@ ], "source": [ "import pandas as pd\n", - "cuisines_df = pd.read_csv(\"../data/cleaned_cuisine.csv\")\n", + "cuisines_df = pd.read_csv(\"../data/cleaned_cuisines.csv\")\n", "cuisines_df.head()" ] }, diff --git a/4-Classification/3-Classifiers-2/solution/notebook.ipynb b/4-Classification/3-Classifiers-2/solution/notebook.ipynb index d953c603..a089b21f 100644 --- a/4-Classification/3-Classifiers-2/solution/notebook.ipynb +++ b/4-Classification/3-Classifiers-2/solution/notebook.ipynb @@ -47,7 +47,7 @@ ], "source": [ "import pandas as pd\n", - "cuisines_df = pd.read_csv(\"../../data/cleaned_cuisine.csv\")\n", + "cuisines_df = pd.read_csv(\"../../data/cleaned_cuisines.csv\")\n", "cuisines_df.head()" ] }, diff --git a/4-Classification/4-Applied/README.md b/4-Classification/4-Applied/README.md index 773271a1..1f3573c2 100644 --- a/4-Classification/4-Applied/README.md +++ b/4-Classification/4-Applied/README.md @@ -40,7 +40,7 @@ First, train a classification model using the cleaned cuisines dataset we used. 1. Then, work with your data in the same way you did in previous lessons, by reading a CSV file using `read_csv()`: ```python - data = pd.read_csv('../data/cleaned_cuisine.csv') + data = pd.read_csv('../data/cleaned_cuisines.csv') data.head() ``` diff --git a/4-Classification/4-Applied/solution/notebook.ipynb b/4-Classification/4-Applied/solution/notebook.ipynb index 5ed9da52..b388d2ca 100644 --- a/4-Classification/4-Applied/solution/notebook.ipynb +++ b/4-Classification/4-Applied/solution/notebook.ipynb @@ -115,7 +115,7 @@ } ], "source": [ - "data = pd.read_csv('../../data/cleaned_cuisine.csv')\n", + "data = pd.read_csv('../../data/cleaned_cuisines.csv')\n", "data.head()" ] }, diff --git a/4-Classification/data/cleaned_cuisine.csv b/4-Classification/data/cleaned_cuisines.csv similarity index 100% rename from 4-Classification/data/cleaned_cuisine.csv rename to 4-Classification/data/cleaned_cuisines.csv From 0c108193ccae130f6dfa7e326db29e835f206219 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Mon, 19 Jul 2021 19:44:41 +0300 Subject: [PATCH 122/228] Add Turkish translation of Classifiers-1 --- .../2-Classifiers-1/translations/README.tr.md | 241 ++++++++++++++++++ .../translations/assignment.tr.md | 8 + 2 files changed, 249 insertions(+) create mode 100644 4-Classification/2-Classifiers-1/translations/README.tr.md create mode 100644 4-Classification/2-Classifiers-1/translations/assignment.tr.md diff --git a/4-Classification/2-Classifiers-1/translations/README.tr.md b/4-Classification/2-Classifiers-1/translations/README.tr.md new file mode 100644 index 00000000..f02bd759 --- /dev/null +++ b/4-Classification/2-Classifiers-1/translations/README.tr.md @@ -0,0 +1,241 @@ +# Mutfak sınıflandırıcıları 1 + +Bu derste, mutfaklarla ilgili dengeli ve temiz veriyle dolu, geçen dersten kaydettiğiniz veri setini kullanacaksınız. + +Bu veri setini çeşitli sınıflandırıcılarla _bir grup malzemeyi baz alarak verilen bir ulusal mutfağı öngörmek_ için kullanacaksınız. Bunu yaparken, sınıflandırma görevleri için algoritmaların leveraj edilebileceği yollardan bazıları hakkında daha fazla bilgi edineceksiniz. + +## [Ders öncesi kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/21/?loc=tr) +# Hazırlık + +[Birinci dersi](../../1-Introduction/README.md) tamamladığınızı varsayıyoruz, dolayısıyla bu dört ders için _cleaned_cuisines.csv_ dosyasının kök `/data` klasöründe var olduğundan emin olun. + +## Alıştırma - ulusal bir mutfağı öngörün + +1. Bu dersin _notebook.ipynb_ dosyasında çalışarak, Pandas kütüphanesiyle beraber o dosyayı da alın: + + ```python + import pandas as pd + cuisines_df = pd.read_csv("../data/cleaned_cuisines.csv") + cuisines_df.head() + ``` + + Veri şöyle görünüyor: + +| | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | +| --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | +| 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + + +1. Şimdi, birkaç kütüphane daha alın: + + ```python + from sklearn.linear_model import LogisticRegression + from sklearn.model_selection import train_test_split, cross_val_score + from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve + from sklearn.svm import SVC + import numpy as np + ``` + +1. X ve y koordinatlarını eğitme için iki veri iskeletine bölün. `cuisine` etiket veri iskeleti olabilir: + + ```python + cuisines_label_df = cuisines_df['cuisine'] + cuisines_label_df.head() + ``` + + Şöyle görünecek: + + ```output + 0 indian + 1 indian + 2 indian + 3 indian + 4 indian + Name: cuisine, dtype: object + ``` + +1. `Unnamed: 0` ve `cuisine` sütunlarını, `drop()` fonksiyonunu çağırarak temizleyin. Kalan veriyi eğitilebilir öznitelikler olarak kaydedin: + + ```python + cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) + cuisines_feature_df.head() + ``` + + Öznitelikleriniz şöyle görünüyor: + +| almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | +| -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | +| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | +| 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + +Şimdi modelinizi eğitmek için hazırsınız! + +## Sınıflandırıcınızı seçme + +Veriniz temiz ve eğitme için hazır, şimdi bu iş için hangi algoritmanın kullanılması gerektiğine karar vermelisiniz. + +Scikit-learn, sınıflandırmayı gözetimli öğrenme altında grupluyor. Bu kategoride sınıflandırma için birçok yöntem görebilirsiniz. [Çeşitlilik](https://scikit-learn.org/stable/supervised_learning.html) ilk bakışta oldukça şaşırtıcı. Aşağıdaki yöntemlerin hepsi sınıflandırma yöntemlerini içermektedir: + +- Doğrusal Modeller +- Destek Vektör Makineleri +- Stokastik Gradyan İnişi +- En Yakın Komşu +- Gauss Süreçleri +- Karar Ağaçları +- Topluluk Metotları (Oylama Sınıflandırıcısı) +- Çok sınıflı ve çok çıktılı algoritmalar (çok sınıflı ve çok etiketli sınıflandırma, çok sınıflı-çok çıktılı sınıflandırma) + +> [Verileri sınıflandırmak için sinir ağlarını](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) da kullanabilirsiniz, ancak bu, bu dersin kapsamı dışındadır. + +### Hangi sınıflandırıcıyı kullanmalı? + +Şimdi, hangi sınıflandırıcıyı seçmelisiniz? Genellikle, birçoğunu gözden geçirmek ve iyi bir sonuç aramak deneme yollarından biridir. Scikit-learn, oluşturulmuş bir veri seti üzerinde KNeighbors, iki yolla SVC, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB ve QuadraticDiscrinationAnalysis karşılaştırmaları yapan ve sonuçları görsel olarak gösteren bir [yan yana karşılaştırma](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) sunar: + +![sınıflandırıcıların karşılaştırılması](../images/comparison.png) +> Grafikler Scikit-learn dokümantasyonlarında oluşturulmuştur. + +> AutoML, bu karşılaştırmaları bulutta çalıştırarak bu problemi muntazam bir şekilde çözer ve veriniz için en iyi algoritmayı seçmenizi sağlar. [Buradan](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-15963-cxa) deneyin. + +### Daha iyi bir yaklaşım + +Böyle tahminlerle çözmekten daha iyi bir yol ise, indirilebilir [ML Kopya kağıdı](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-15963-cxa) içindeki fikirlere bakmaktır. Burada, bizim çok sınıflı problemimiz için bazı seçenekler olduğunu görüyoruz: + +![çok sınıflı problemler için kopya kağıdı](../images/cheatsheet.png) +> Microsoft'un Algoritma Kopya Kağıdı'ndan, çok sınıflı sınıflandırma seçeneklerini detaylandıran bir bölüm + +:white_check_mark: Bu kopya kağıdını indirin, yazdırın ve duvarınıza asın! + +### Akıl yürütme + +Elimizdeki kısıtlamalarla farklı yaklaşımlar üzerine akıl yürütelim: + +- **Sinir ağları çok ağır**. Temiz ama minimal veri setimizi ve eğitimi not defterleriyle yerel makinelerde çalıştırdığımızı göz önünde bulundurursak, sinir ağları bu görev için çok ağır oluyor. +- **İki sınıflı sınıflandırıcısı yok**. İki sınıflı sınıflandırıcı kullanmıyoruz, dolayısıyla bire karşı hepsi (one-vs-all) yöntemi eleniyor. +- **Karar ağacı veya lojistik regresyon işe yarayabilirdi**. Bir karar ağacı veya çok sınıflı veri için lojistik regresyon işe yarayabilir. +- **Çok Sınıf Artırmalı Karar Ağaçları farklı bir problemi çözüyor**. Çok sınıf artırmalı karar ağacı, parametrik olmayan görevler için en uygunu, mesela sıralama (ranking) oluşturmak için tasarlanan görevler. Yani, bizim için kullanışlı değil. + +### Scikit-learn kullanımı + +Verimizi analiz etmek için Scikit-learn kullanacağız. Ancak, Scikit-learn içerisinde lojistik regresyonu kullanmanın birçok yolu var. [Geçirilecek parametreler](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) göz atın. + +Aslında, Scikit-learn'den lojistik regresyon yapmasını beklediğimizde belirtmemiz gereken `multi_class` ve `solver` diye iki önemli parametre var. `multi_class` değeri belli bir davranış uygular. Çözücünün değeri, hangi algoritmanın kullanılacağını gösterir. Her çözücü her `multi_class` değeriyle eşleştirilemez. + +Dokümanlara göre, çok sınıflı durumunda eğitme algoritması: + +- Eğer `multi_class` seçeneği `ovr` olarak ayarlanmışsa, **bire karşı diğerleri (one-vs-rest, OvR) şemasını kullanır** +- Eğer `multi_class` seçeneği `multinomial` olarak ayarlanmışsa, **çapraz düzensizlik yitimini/kaybını kullanır**. (Güncel olarak `multinomial` seçeneği yalnızca ‘lbfgs’, ‘sag’, ‘saga’ ve ‘newton-cg’ çözücüleriyle destekleniyor.) + +> :mortar_board: Buradaki 'şema' ya 'ovr' (one-vs-rest, yani bire karşı diğerleri) ya da 'multinomial' olabilir. Lojistik regresyon aslında ikili sınıflandırmayı desteklemek için tasarlandığından, bu şemalar onun çok sınıflı sınıflandırma görevlerini daha iyi ele alabilmesini sağlıyor. [kaynak](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) + +> :mortar_board: 'Çözücü', "eniyileştirme probleminde kullanılacak algoritma" olarak tanımlanır. [kaynak](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression) + +Scikit-learn, çözücülerin, farklı tür veri yapıları tarafından sunulan farklı meydan okumaları nasıl ele aldığını açıklamak için bu tabloyu sunar: + +![çözücüler](../images/solvers.png) + +## Alıştırma - veriyi bölün + +İkincisini önceki derte öğrendiğinizden, ilk eğitme denememiz için lojistik regresyona odaklanabiliriz. +`train_test_split()` fonksiyonunu çağırarak verilerinizi eğitme ve sınama gruplarına bölün: + +```python +X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) +``` + +## Alıştırma - lojistik regresyon uygulayın + +Çok sınıflı durumu kullandığınız için, hangi _şemayı_ kullanacağınızı ve hangi _çözücüyü_ ayarlayacağınızı seçmeniz gerekiyor. Eğitme için, bir çok sınıflı ayarında LogisticRegression ve **liblinear** çözücüsünü kullanın. + +1. multi_class'ı `ovr` ve solver'ı `liblinear` olarak ayarlayarak bir lojistik regresyon oluşturun: + + ```python + lr = LogisticRegression(multi_class='ovr',solver='liblinear') + model = lr.fit(X_train, np.ravel(y_train)) + + accuracy = model.score(X_test, y_test) + print ("Accuracy is {}".format(accuracy)) + ``` + + :white_check_mark: Genelde varsayılan olarak ayarlanan `lbfgs` gibi farklı bir çözücü deneyin. + + > Not olarak, gerektiğinde verinizi düzleştirmek için Pandas [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) fonksiyonunu kullanın. + + Doğruluk **%80** üzerinde iyidir! + +1. Bir satır veriyi (#50) sınayarak bu modeli eylem halinde görebilirsiniz: + + ```python + print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}') + print(f'cuisine: {y_test.iloc[50]}') + ``` + + Sonuç bastırılır: + + ```output + ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object') + cuisine: indian + ``` + + :white_check_mark: Farklı bir satır sayısı deneyin ve sonuçları kontrol edin + +1. Daha derinlemesine inceleyerek, bu öngörünün doğruluğunu kontrol edebilirsiniz: + + ```python + test= X_test.iloc[50].values.reshape(-1, 1).T + proba = model.predict_proba(test) + classes = model.classes_ + resultdf = pd.DataFrame(data=proba, columns=classes) + + topPrediction = resultdf.T.sort_values(by=[0], ascending = [False]) + topPrediction.head() + ``` + + Sonuç bastırılır - Hint mutfağı iyi olasılıkla en iyi öngörü: + + | | 0 | + | -------: | -------: | + | indian | 0.715851 | + | chinese | 0.229475 | + | japanese | 0.029763 | + | korean | 0.017277 | + | thai | 0.007634 | + + :while_check_mark: Modelin, bunun bir Hint mutfağı olduğundan nasıl emin olduğunu açıklayabilir misiniz? + +1. Regresyon derslerinde yaptığınız gibi, bir sınıflandırma raporu bastırarak daha fazla detay elde edin: + + ```python + y_pred = model.predict(X_test) + print(classification_report(y_test,y_pred)) + ``` + + | | precision | recall | f1-score | support | + | ------------ | ------ | -------- | ------- | ---- | + | chinese | 0.73 | 0.71 | 0.72 | 229 | + | indian | 0.91 | 0.93 | 0.92 | 254 | + | japanese | 0.70 | 0.75 | 0.72 | 220 | + | korean | 0.86 | 0.76 | 0.81 | 242 | + | thai | 0.79 | 0.85 | 0.82 | 254 | + | accuracy | 0.80 | 1199 | | | + | macro avg | 0.80 | 0.80 | 0.80 | 1199 | + | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | + +## :rocket: Meydan Okuma + +Bu derste, bir grup malzemeyi baz alarak bir ulusal mutfağı öngörebilen bir makine öğrenimi modeli oluşturmak için temiz verinizi kullandınız. Scikit-learn'ün veri sınıflandırmak için sağladığı birçok yöntemi okumak için biraz vakit ayırın. Arka tarafta neler olduğunu anlamak için 'çözücü' kavramını derinlemesine inceleyin. + +## [Ders sonrası kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/22/?loc=tr) + +## Gözden geçirme & kendi kendine çalışma + +[Bu deste](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) lojistik regresyonun arkasındaki matematiği derinlemesine inceleyin. +## Ödev + +[Çözücüleri çalışın](assignment.tr.md) diff --git a/4-Classification/2-Classifiers-1/translations/assignment.tr.md b/4-Classification/2-Classifiers-1/translations/assignment.tr.md new file mode 100644 index 00000000..9b545f1a --- /dev/null +++ b/4-Classification/2-Classifiers-1/translations/assignment.tr.md @@ -0,0 +1,8 @@ +# Çözücüleri çalışın +## Yönergeler + +Bu derste, doğru bir model yaratmak için algoritmaları bir makine öğrenimi süreciyle eşleştiren çeşitli çözücüleri öğrendiniz. Derste sıralanan çözücüleri inceleyin ve iki tanesini seçin. Kendi cümlelerinizle, bu iki çözücünün benzerliklerini ve farklılıklarını bulup yazın. Ne tür problemleri ele alıyorlar? Çeşitli veri yapılarıyla nasıl çalışıyorlar? Birini diğerine neden tercih ederdiniz? + +| Ölçüt | Örnek Alınacak Nitelikte | Yeterli | Geliştirme Gerekli | +| -------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- | +| | Her biri bir çözücü üzerine yazılmış, onları dikkatle karşılaştıran ve iki paragraf içeren bir .doc dosyası sunulmuş | Bir paragraf içeren bir .doc dosyası sunulmuş | Görev tamamlanmamış | From 3707c00ab3355b357e91e0471e081a32c0a7e5f2 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Mon, 19 Jul 2021 19:48:02 +0300 Subject: [PATCH 123/228] Add Turkish translation of Classifiers-1 --- 4-Classification/2-Classifiers-1/translations/assignment.tr.md | 1 + 1 file changed, 1 insertion(+) diff --git a/4-Classification/2-Classifiers-1/translations/assignment.tr.md b/4-Classification/2-Classifiers-1/translations/assignment.tr.md index 9b545f1a..10d4c64f 100644 --- a/4-Classification/2-Classifiers-1/translations/assignment.tr.md +++ b/4-Classification/2-Classifiers-1/translations/assignment.tr.md @@ -2,6 +2,7 @@ ## Yönergeler Bu derste, doğru bir model yaratmak için algoritmaları bir makine öğrenimi süreciyle eşleştiren çeşitli çözücüleri öğrendiniz. Derste sıralanan çözücüleri inceleyin ve iki tanesini seçin. Kendi cümlelerinizle, bu iki çözücünün benzerliklerini ve farklılıklarını bulup yazın. Ne tür problemleri ele alıyorlar? Çeşitli veri yapılarıyla nasıl çalışıyorlar? Birini diğerine neden tercih ederdiniz? +## Rubrik | Ölçüt | Örnek Alınacak Nitelikte | Yeterli | Geliştirme Gerekli | | -------- | -------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- | From e2a499310553f917b9a32eacdcf9c2e30330047a Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Mon, 19 Jul 2021 19:52:29 +0300 Subject: [PATCH 124/228] Fix typo --- translations/README.tr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/README.tr.md b/translations/README.tr.md index cc517004..f4dab353 100644 --- a/translations/README.tr.md +++ b/translations/README.tr.md @@ -100,7 +100,7 @@ Bu eğitim programını oluştururken iki pedagojik ilke seçtik: uygulamalı ** | Ek Yazı | Gerçek Hayattan ML Senaryoları ve Uygulamaları | [Vahşi Doğada ML](../9-Real-World/README.md) | Klasik makine öğreniminin ilginç ve açıklayıcı gerçek hayat uygulamaları | [ders](../9-Real-World/1-Applications/README.md) | Takım | ## Çevrimdışı erişim -Bu dokümantasyonu [Docsify](https://docsify.js.org/#/) kullanarak çevrimdışı çalıştırabilirsiniz. Bu yazılım havuzunu çatallayın, yerel makinenizde [Docsify'ı kurum](https://docsify.js.org/#/quickstart) ve sonra bu yazılım havuzunun kök dizininde `docsify serve` yazın. İnternet sitesi, 3000 portunda `localhost:3000` yerel ana makinenizde sunulacaktır. +Bu dokümantasyonu [Docsify](https://docsify.js.org/#/) kullanarak çevrimdışı çalıştırabilirsiniz. Bu yazılım havuzunu çatallayın, yerel makinenizde [Docsify'ı kurun](https://docsify.js.org/#/quickstart) ve sonra bu yazılım havuzunun kök dizininde `docsify serve` yazın. İnternet sitesi, 3000 portunda `localhost:3000` yerel ana makinenizde sunulacaktır. ## PDF'ler From 534f059fef10a984cf17debb46800efcd4a131bf Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Mon, 19 Jul 2021 19:54:31 +0300 Subject: [PATCH 125/228] Fix file paths --- 4-Classification/1-Introduction/translations/README.tr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/4-Classification/1-Introduction/translations/README.tr.md b/4-Classification/1-Introduction/translations/README.tr.md index e4cc372a..4b8c2c90 100644 --- a/4-Classification/1-Introduction/translations/README.tr.md +++ b/4-Classification/1-Introduction/translations/README.tr.md @@ -49,7 +49,7 @@ Scikit-learn, veriyi sınıflandırmak için kullanmak üzere, çözmek istediğ ## Alıştırma - verinizi temizleyip dengeleyin -Bu projeye başlamadan önce elinizdeki ilk görev, daha iyi sonuçlar almak için, verinizi temizlemek ve **dengelemek**. Bu klasördeki boş _notebook.ipynb_ dosyasıyla başlayın. +Bu projeye başlamadan önce elinizdeki ilk görev, daha iyi sonuçlar almak için, verinizi temizlemek ve **dengelemek**. Üst klasördeki boş _notebook.ipynb_ dosyasıyla başlayın. Kurmanız gereken ilk şey [imblearn](https://imbalanced-learn.org/stable/). Bu, veriyi daha iyi dengelemenizi sağlayacak bir Scikit-learn paketidir. (Bu görev hakkında birazdan daha fazla bilgi göreceksiniz.) @@ -74,7 +74,7 @@ Kurmanız gereken ilk şey [imblearn](https://imbalanced-learn.org/stable/). Bu, 1. Sonraki görev veriyi almak olacak: ```python - df = pd.read_csv('../../data/cuisines.csv') + df = pd.read_csv('../data/cuisines.csv') ``` `read_csv()` kullanmak _cusines.csv_ csv dosyasının içeriğini okuyacak ve `df` değişkenine yerleştirecek. @@ -275,7 +275,7 @@ Veriyi temizlediniz, şimdi [SMOTE](https://imbalanced-learn.org/dev/references/ ```python transformed_df.head() transformed_df.info() - transformed_df.to_csv("../../data/cleaned_cuisine.csv") + transformed_df.to_csv("../data/cleaned_cuisine.csv") ``` Bu yeni CSV şimdi kök data (veri) klasöründe görülebilir. From e3d630e499752e47b9e060f3b98535a574260382 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Mon, 19 Jul 2021 19:56:13 +0300 Subject: [PATCH 126/228] Link to translated lesson and fix typo --- 4-Classification/translations/README.tr.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/4-Classification/translations/README.tr.md b/4-Classification/translations/README.tr.md index 91b74255..347999d8 100644 --- a/4-Classification/translations/README.tr.md +++ b/4-Classification/translations/README.tr.md @@ -1,21 +1,21 @@ # Sınıflandırmaya başlarken ## Bölgesel konu: Leziz Asya ve Hint Mutfağı :ramen: -Asya ve Hindistan'da yemek gelenekleri fazlaca çeşitlilik gösterir ve çok lezzetlidir! Malzemelerini anlamaya çalışmak için bölgesel mutfak hakkındaki verilere bakalım. +Asya ve Hindistan'da yemek gelenekleri fazlaca çeşitlilik gösterir ve çok lezzetlidir! Malzemelerini anlamaya çalışmak için bölgesel mutfaklar hakkındaki veriye bakalım. ![Taylandlı yemek satıcısı](../images/thai-food.jpg) > Fotoğraf Lisheng Chang tarafından çekilmiştir ve Unsplash'tadır. ## Öğrenecekleriniz -Bu bölümde, bu eğitim programının tamamen regresyon üzerine olan ilk bölümünde öğrendiğiniz becerilere dayanıp onların üstüne beceriler ekleyeceksiniz ve verileriniz hakkında bilgi sahibi olmanızı sağlayacak diğer sınıflandırıcıları öğreneceksiniz. +Bu bölümde, bu eğitim programının tamamen regresyon üzerine olan ilk bölümünde öğrendiğiniz becerilere dayanıp onların üstüne beceriler ekleyeceksiniz ve veriniz hakkında bilgi sahibi olmanızı sağlayacak diğer sınıflandırıcıları öğreneceksiniz. > Sınıflandırma modelleriyle çalışmayı öğrenmenizi sağlayacak faydalı düşük kodlu araçlar vardır. [Bu görev için Azure ML](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa)'i deneyin. ## Dersler 1. [Sınıflandırmaya giriş](../1-Introduction/translations/README.tr.md) -2. [Daha fazla sınıflandırıcı](../2-Classifiers-1/README.md) +2. [Daha fazla sınıflandırıcı](../2-Classifiers-1/translations/README.tr.md) 3. [Hatta daha fazla sınıflandırıcı](../3-Classifiers-2/README.md) 4. [Uygulamalı Makine Öğrenimi: bir web uygulaması oluşturun](../4-Applied/README.md) ## Katkıda bulunanlar From 6a245acfc044382d9965442f93f99c5d2dbb152c Mon Sep 17 00:00:00 2001 From: feiyun0112 Date: Tue, 20 Jul 2021 11:57:52 +0800 Subject: [PATCH 127/228] Update README.zh-cn.md --- 2-Regression/2-Data/translations/README.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-Regression/2-Data/translations/README.zh-cn.md b/2-Regression/2-Data/translations/README.zh-cn.md index c3fbf348..bc273ab1 100644 --- a/2-Regression/2-Data/translations/README.zh-cn.md +++ b/2-Regression/2-Data/translations/README.zh-cn.md @@ -174,14 +174,14 @@ 为了让图表显示有用的数据,你通常需要以某种方式对数据进行分组。让我们尝试创建一个图,其中y轴显示月份,数据显示数据的分布。 -1. 添加单元格以创建分组条形图: +1. 添加单元格以创建分组柱状图: ```python new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar') plt.ylabel("Pumpkin Price") ``` - ![显示价格与月份关系的条形图](../images/barchart.png) + ![显示价格与月份关系的柱状图](../images/barchart.png) 这是一个更有用的数据可视化!似乎表明南瓜的最高价格出现在9月和10月。这符合你的期望吗?为什么?为什么不? From 0ef25fe4c2e830211011f6e6b086b49a79ff5175 Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Tue, 20 Jul 2021 17:16:11 +0200 Subject: [PATCH 128/228] Italian Translation - Chapter 2 fixed links --- 2-Regression/translations/README.it.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/2-Regression/translations/README.it.md b/2-Regression/translations/README.it.md index 19e0100b..c6e957f9 100644 --- a/2-Regression/translations/README.it.md +++ b/2-Regression/translations/README.it.md @@ -19,10 +19,10 @@ In questo gruppo di lezioni si imposterà una configurazione per iniziare le att ### Lezioni -1. [Gli Attrezzi Necessari](1-Tools/README.md) -2. [Gestione dati](2-Data/README.md) -3. [Regressione lineare e polinomiale](3-Linear/README.md) -4. [Regressione logistica](4-Logistic/README.md) +1. [Gli Attrezzi Necessari](../1-Tools/translations/README.it.md) +2. [Gestione dati](../2-Data/translations/README.it.md) +3. [Regressione lineare e polinomiale](../3-Linear/translations/README.it.md) +4. [Regressione logistica](../4-Logistic/translations/README.it.md) --- ### Crediti From 9aebad19bb38f424e2f72e0db4a45d900fe5ad47 Mon Sep 17 00:00:00 2001 From: Foo-x Date: Wed, 21 Jul 2021 01:11:37 +0900 Subject: [PATCH 129/228] feat: add ja Base README Refs #149 --- translations/README.ja.md | 118 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 translations/README.ja.md diff --git a/translations/README.ja.md b/translations/README.ja.md new file mode 100644 index 00000000..bf0604b6 --- /dev/null +++ b/translations/README.ja.md @@ -0,0 +1,118 @@ +[![GitHub license](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) +[![GitHub contributors](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![GitHub issues](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![GitHub pull-requests](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-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/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![GitHub forks](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![GitHub stars](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) + +# 初心者のための機械学習 - カリキュラム + +> 🌍 世界の文化に触れながら機械学習を探求する旅 🌍 + +マイクロソフトの Azure Cloud Advocates では、12週間、24レッスンの**機械学習**に関するカリキュラムを提供しています。このカリキュラムでは、今後公開する予定の「初心者のためのAI」で扱う深層学習を避け、主に Scikit-learn ライブラリを使用した**古典的機械学習**と呼ばれるものについて学びます。同様に公開予定の「初心者のためのデータサイエンス」と合わせてご活用ください! + +世界各地のデータに古典的な手法を適用しながら、一緒に世界を旅してみましょう。各レッスンには、レッスン前後の小テストや、レッスンを完了するための指示・解答・課題などが含まれています。新しいスキルを「定着」させるものとして実証されているプロジェクトベースの教育法によって、構築しながら学ぶことができます。 + +**✍️ 著者の皆様に心から感謝いたします** Jen Looper さん、Stephen Howell さん、Francesca Lazzeri さん、Tomomi Imura さん、Cassie Breviu さん、Dmitry Soshnikov さん、Chris Noring さん、Ornella Altunyan さん、そして Amy Boyd さん + +**🎨 イラストレーターの皆様にも心から感謝いたします** Tomomi Imura さん、Dasani Madipalli さん、そして Jen Looper さん + +**🙏 Microsoft Student Ambassador の著者・査読者・コンテンツ提供者の皆様に特に感謝いたします 🙏** 特に、Rishit Dagli さん、Muhammad Sakib Khan Inan さん、Rohan Raj さん、Alexandru Petrescu さん、Abhishek Jaiswal さん、Nawrin Tabassum さん、Ioan Samuila さん、そして Snigdha Agarwal さん + +--- +# はじめに + +**学生の皆さん**、このカリキュラムを利用するには、自分のGitHubアカウントにリポジトリ全体をフォークして、一人もしくはグループで演習を完了させてください。 + +- 講義前の小テストから始めてください。 +- 知識を確認するたびに立ち止まったり振り返ったりしながら、講義を読んで各アクティビティを完了させてください。 +- 解答のコードをただ実行するのではなく、レッスンを理解してプロジェクトを作成するようにしてください。なお、解答のコードは、プロジェクトに紐づく各レッスンの `/solution` フォルダにあります。 +- 講義後の小テストを受けてください。 +- チャレンジを完了させてください。 +- 課題を完了させてください。 +- レッスングループの完了後は [Discussionボード](https://github.com/microsoft/ML-For-Beginners/discussions) にアクセスし、適切なPAT表に記入することで「声に出して学習」してください。"PAT" とは Progress Assessment Tool(進捗評価ツール)の略で、学習を促進するために記入する表のことです。他のPATにリアクションすることもできるので、共に学ぶことが可能です。 + +> さらに学習を進める場合は、[Microsoft Learn](https://docs.microsoft.com/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) のラーニングパスに従うことをお勧めします。 + +**先生方**、このカリキュラムをどのように使用するか、[いくつかの提案](/for-teachers.md) があります。 + +--- + +## チームの紹介 + +[![プロモーションビデオ](/ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "プロモーションビデオ") + +> 🎥 上の画像をクリックすると、このプロジェクトと、プロジェクトを作った人たちについてのビデオを観ることができます! + +--- +## 教育法 + +このカリキュラムを構築するにあたり、私たちは2つの教育方針を選びました。**プロジェクトベース**の体験と、**頻繁な小テスト**を含むことです。さらにこのカリキュラムには、まとまりを持たせるための共通の**テーマ**があります。 + +内容とプロジェクトとの整合性を保つことで、学生にとって学習プロセスがより魅力的になり、概念の定着度が高まります。さらに、授業前の軽い小テストは学生の学習意欲を高め、授業後の2回目の小テストはより一層の定着につながります。このカリキュラムは柔軟かつ楽しいものになるようデザインされており、すべて、もしくは一部を受講できます。プロジェクトは小さなものから始まり、12週間の間に少しずつ複雑なものになっていきます。また、このカリキュラムには機械学習の実世界への応用に関するあとがきも含んでおり、追加の単位あるいは議論の題材として使用できます。 + +> [行動規範](/CODE_OF_CONDUCT.md)、[貢献](/CONTRIBUTING.md)、[翻訳](/TRANSLATIONS.md) のガイドラインをご覧ください。建設的なご意見をお待ちしております! +## 各レッスンの内容 + +- オプションのスケッチノート +- オプションの補足ビデオ +- 講義前の小テスト +- 成文のレッスン +- プロジェクトベースのレッスンを行うため、プロジェクトの構築方法に関する段階的なガイド +- 知識の確認 +- チャレンジ +- 副読本 +- 課題 +- 講義後の小テスト + +> **小テストに関する注意**: すべての小テストは [このアプリ](https://jolly-sea-0a877260f.azurestaticapps.net) に含まれており、各3問からなる50個の小テストがあります。これらはレッスン内からリンクされていますが、アプリをローカルで実行することもできます。`quiz-app` フォルダ内の指示に従ってください。 + + +| レッスン番号 | トピック | レッスングループ | 学習の目的 | 関連するレッスン | 著者 | +| :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | +| 01 | 機械学習への導入 | [導入](/1-Introduction/translations/README.ja.md) | 機械学習の基本的な概念を学ぶ | [レッスン](/1-Introduction/1-intro-to-ML/translations/README.ja.md) | Muhammad | +| 02 | 機械学習の歴史 | [導入](/1-Introduction/translations/README.ja.md) | この分野の背景にある歴史を学ぶ | [レッスン](/1-Introduction/2-history-of-ML/translations/README.ja.md) | Jen and Amy | +| 03 | 公平性と機械学習 | [導入](/1-Introduction/translations/README.ja.md) | 機械学習モデルを構築・適用する際に学生が考慮すべき、公平性に関する重要な哲学的問題は何か? | [レッスン](/1-Introduction/3-fairness/translations/README.ja.md) | Tomomi | +| 04 | 機械学習の手法 | [導入](/1-Introduction/translations/README.ja.md) | 機械学習の研究者はどのような手法でモデルを構築しているか? | [レッスン](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | 回帰への導入 | [回帰](/2-Regression/README.md) | 回帰モデルをPythonと Scikit-learn で始める | [レッスン](/2-Regression/1-Tools/translations/README.ja.md) | Jen | +| 06 | 北米のカボチャの価格 🎃 | [回帰](/2-Regression/README.md) | 機械学習に向けてデータを可視化してクリーニングする | [レッスン](/2-Regression/2-Data/translations/README.ja.md) | Jen | +| 07 | 北米のカボチャの価格 🎃 | [回帰](/2-Regression/README.md) | 線形および多項式回帰モデルを構築する | [レッスン](2-Regression/3-Linear/README.md) | Jen | +| 08 | 北米のカボチャの価格 🎃 | [回帰](/2-Regression/README.md) | ロジスティック回帰モデルを構築する | [レッスン](/2-Regression/4-Logistic/README.md) | Jen | +| 09 | Webアプリ 🔌 | [Webアプリ](/3-Web-App/README.md) | 学習したモデルを使用するWebアプリを構築する | [レッスン](/3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分類への導入 | [分類](/4-Classification/README.md) | データをクリーニング・前処理・可視化する。分類への導入 | [レッスン](/4-Classification/1-Introduction/README.md) | Jen and Cassie | +| 11 | 美味しいアジア料理とインド料理 🍜 | [分類](/4-Classification/README.md) | 分類器への導入 | [レッスン](/4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | +| 12 | 美味しいアジア料理とインド料理 🍜 | [分類](/4-Classification/README.md) | その他の分類器 | [レッスン](/4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | +| 13 | 美味しいアジア料理とインド料理 🍜 | [分類](/4-Classification/README.md) | モデルを使用して推薦Webアプリを構築する | [レッスン](/4-Classification/4-Applied/README.md) | Jen | +| 14 | クラスタリングへの導入 | [クラスタリング](/5-Clustering/README.md) | データをクリーニング・前処理・可視化する。クラスタリングへの導入 | [レッスン](/5-Clustering/1-Visualize/README.md) | Jen | +| 15 | ナイジェリアの音楽的嗜好を探る 🎧 | [クラスタリング](/5-Clustering/README.md) | K-Means法を探る | [レッスン](/5-Clustering/2-K-Means/README.md) | Jen | +| 16 | 自然言語処理への導入 ☕️ | [自然言語処理](/6-NLP/README.md) | 単純なボットを構築して自然言語処理の基礎を学ぶ | [レッスン](/6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 自然言語処理の一般的なタスク ☕️ | [自然言語処理](/6-NLP/README.md) | 言語構造を扱う際に必要となる一般的なタスクを理解することで、自然言語処理の知識を深める | [レッスン](/6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻訳と感情分析 ♥️ | [自然言語処理](/6-NLP/README.md) | ジェーン・オースティンの翻訳と感情分析 | [レッスン](/6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](/6-NLP/README.md) | ホテルのレビューの感情分析 1 | [レッスン](/6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](/6-NLP/README.md) | ホテルのレビューの感情分析 2 | [レッスン](/6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 時系列予測への導入 | [Time series](/7-TimeSeries/README.md) | 時系列予測への導入 | [レッスン](/7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 世界の電力使用量 ⚡️ - ARIMAによる時系列予測 | [Time series](/7-TimeSeries/README.md) | ARIMAによる時系列予測 | [レッスン](/7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | 強化学習への導入 | [Reinforcement learning](/8-Reinforcement/README.md) | Q学習を使った強化学習への導入 | [レッスン](/8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | ピーターが狼を避けるのを手伝ってください! 🐺 | [Reinforcement learning](/8-Reinforcement/README.md) | 強化学習ジム | [レッスン](/8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | 実世界の機械学習シナリオと応用 | [ML in the Wild](/9-Real-World/README.md) | 興味深くて意義のある、古典的機械学習の実世界での応用 | [レッスン](/9-Real-World/1-Applications/README.md) | Team | +## オフラインアクセス + +[Docsify](https://docsify.js.org/#/) を使うと、このドキュメントをオフラインで実行できます。このリポジトリをフォークして、ローカルマシンに [Docsify をインストール](https://docsify.js.org/#/quickstart) し、このリポジトリのルートフォルダで `docsify serve` と入力してください。ローカルホストの3000番ポート、つまり `localhost:3000` でWebサイトが起動します。 + +## PDF + +カリキュラムのPDFへのリンクは [こちら](/pdf/readme.pdf)。 + +## ヘルプ募集! + +翻訳をしてみませんか?[翻訳ガイドライン](/TRANSLATIONS.md) をご覧の上、[こちら](https://github.com/microsoft/ML-For-Beginners/issues/71) でお知らせください。 + +## その他のカリキュラム + +私たちはその他のカリキュラムも提供しています!ぜひチェックしてみてください。 + +- [初心者のためのWeb開発](https://aka.ms/webdev-beginners) +- [初心者のためのIoT](https://aka.ms/iot-beginners) From ab48ec879a94d829d728b4a23522748fe1300840 Mon Sep 17 00:00:00 2001 From: Foo-x Date: Wed, 21 Jul 2021 02:19:08 +0900 Subject: [PATCH 130/228] fix: relative link path --- translations/README.ja.md | 60 +++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/translations/README.ja.md b/translations/README.ja.md index bf0604b6..a719c746 100644 --- a/translations/README.ja.md +++ b/translations/README.ja.md @@ -37,13 +37,13 @@ > さらに学習を進める場合は、[Microsoft Learn](https://docs.microsoft.com/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) のラーニングパスに従うことをお勧めします。 -**先生方**、このカリキュラムをどのように使用するか、[いくつかの提案](/for-teachers.md) があります。 +**先生方**、このカリキュラムをどのように使用するか、[いくつかの提案](../for-teachers.md) があります。 --- ## チームの紹介 -[![プロモーションビデオ](/ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "プロモーションビデオ") +[![プロモーションビデオ](../ml-for-beginners.png)](https://youtu.be/Tj1XWrDSYJU "プロモーションビデオ") > 🎥 上の画像をクリックすると、このプロジェクトと、プロジェクトを作った人たちについてのビデオを観ることができます! @@ -54,7 +54,7 @@ 内容とプロジェクトとの整合性を保つことで、学生にとって学習プロセスがより魅力的になり、概念の定着度が高まります。さらに、授業前の軽い小テストは学生の学習意欲を高め、授業後の2回目の小テストはより一層の定着につながります。このカリキュラムは柔軟かつ楽しいものになるようデザインされており、すべて、もしくは一部を受講できます。プロジェクトは小さなものから始まり、12週間の間に少しずつ複雑なものになっていきます。また、このカリキュラムには機械学習の実世界への応用に関するあとがきも含んでおり、追加の単位あるいは議論の題材として使用できます。 -> [行動規範](/CODE_OF_CONDUCT.md)、[貢献](/CONTRIBUTING.md)、[翻訳](/TRANSLATIONS.md) のガイドラインをご覧ください。建設的なご意見をお待ちしております! +> [行動規範](../CODE_OF_CONDUCT.md)、[貢献](../CONTRIBUTING.md)、[翻訳](../TRANSLATIONS.md) のガイドラインをご覧ください。建設的なご意見をお待ちしております! ## 各レッスンの内容 - オプションのスケッチノート @@ -73,42 +73,42 @@ | レッスン番号 | トピック | レッスングループ | 学習の目的 | 関連するレッスン | 著者 | | :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | -| 01 | 機械学習への導入 | [導入](/1-Introduction/translations/README.ja.md) | 機械学習の基本的な概念を学ぶ | [レッスン](/1-Introduction/1-intro-to-ML/translations/README.ja.md) | Muhammad | -| 02 | 機械学習の歴史 | [導入](/1-Introduction/translations/README.ja.md) | この分野の背景にある歴史を学ぶ | [レッスン](/1-Introduction/2-history-of-ML/translations/README.ja.md) | Jen and Amy | -| 03 | 公平性と機械学習 | [導入](/1-Introduction/translations/README.ja.md) | 機械学習モデルを構築・適用する際に学生が考慮すべき、公平性に関する重要な哲学的問題は何か? | [レッスン](/1-Introduction/3-fairness/translations/README.ja.md) | Tomomi | -| 04 | 機械学習の手法 | [導入](/1-Introduction/translations/README.ja.md) | 機械学習の研究者はどのような手法でモデルを構築しているか? | [レッスン](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | 回帰への導入 | [回帰](/2-Regression/README.md) | 回帰モデルをPythonと Scikit-learn で始める | [レッスン](/2-Regression/1-Tools/translations/README.ja.md) | Jen | -| 06 | 北米のカボチャの価格 🎃 | [回帰](/2-Regression/README.md) | 機械学習に向けてデータを可視化してクリーニングする | [レッスン](/2-Regression/2-Data/translations/README.ja.md) | Jen | -| 07 | 北米のカボチャの価格 🎃 | [回帰](/2-Regression/README.md) | 線形および多項式回帰モデルを構築する | [レッスン](2-Regression/3-Linear/README.md) | Jen | -| 08 | 北米のカボチャの価格 🎃 | [回帰](/2-Regression/README.md) | ロジスティック回帰モデルを構築する | [レッスン](/2-Regression/4-Logistic/README.md) | Jen | -| 09 | Webアプリ 🔌 | [Webアプリ](/3-Web-App/README.md) | 学習したモデルを使用するWebアプリを構築する | [レッスン](/3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 分類への導入 | [分類](/4-Classification/README.md) | データをクリーニング・前処理・可視化する。分類への導入 | [レッスン](/4-Classification/1-Introduction/README.md) | Jen and Cassie | -| 11 | 美味しいアジア料理とインド料理 🍜 | [分類](/4-Classification/README.md) | 分類器への導入 | [レッスン](/4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | -| 12 | 美味しいアジア料理とインド料理 🍜 | [分類](/4-Classification/README.md) | その他の分類器 | [レッスン](/4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | -| 13 | 美味しいアジア料理とインド料理 🍜 | [分類](/4-Classification/README.md) | モデルを使用して推薦Webアプリを構築する | [レッスン](/4-Classification/4-Applied/README.md) | Jen | -| 14 | クラスタリングへの導入 | [クラスタリング](/5-Clustering/README.md) | データをクリーニング・前処理・可視化する。クラスタリングへの導入 | [レッスン](/5-Clustering/1-Visualize/README.md) | Jen | -| 15 | ナイジェリアの音楽的嗜好を探る 🎧 | [クラスタリング](/5-Clustering/README.md) | K-Means法を探る | [レッスン](/5-Clustering/2-K-Means/README.md) | Jen | -| 16 | 自然言語処理への導入 ☕️ | [自然言語処理](/6-NLP/README.md) | 単純なボットを構築して自然言語処理の基礎を学ぶ | [レッスン](/6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 自然言語処理の一般的なタスク ☕️ | [自然言語処理](/6-NLP/README.md) | 言語構造を扱う際に必要となる一般的なタスクを理解することで、自然言語処理の知識を深める | [レッスン](/6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 翻訳と感情分析 ♥️ | [自然言語処理](/6-NLP/README.md) | ジェーン・オースティンの翻訳と感情分析 | [レッスン](/6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](/6-NLP/README.md) | ホテルのレビューの感情分析 1 | [レッスン](/6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](/6-NLP/README.md) | ホテルのレビューの感情分析 2 | [レッスン](/6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 時系列予測への導入 | [Time series](/7-TimeSeries/README.md) | 時系列予測への導入 | [レッスン](/7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 世界の電力使用量 ⚡️ - ARIMAによる時系列予測 | [Time series](/7-TimeSeries/README.md) | ARIMAによる時系列予測 | [レッスン](/7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | 強化学習への導入 | [Reinforcement learning](/8-Reinforcement/README.md) | Q学習を使った強化学習への導入 | [レッスン](/8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 24 | ピーターが狼を避けるのを手伝ってください! 🐺 | [Reinforcement learning](/8-Reinforcement/README.md) | 強化学習ジム | [レッスン](/8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | 実世界の機械学習シナリオと応用 | [ML in the Wild](/9-Real-World/README.md) | 興味深くて意義のある、古典的機械学習の実世界での応用 | [レッスン](/9-Real-World/1-Applications/README.md) | Team | +| 01 | 機械学習への導入 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習の基本的な概念を学ぶ | [レッスン](../1-Introduction/1-intro-to-ML/translations/README.ja.md) | Muhammad | +| 02 | 機械学習の歴史 | [導入](../1-Introduction/translations/README.ja.md) | この分野の背景にある歴史を学ぶ | [レッスン](../1-Introduction/2-history-of-ML/translations/README.ja.md) | Jen and Amy | +| 03 | 公平性と機械学習 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習モデルを構築・適用する際に学生が考慮すべき、公平性に関する重要な哲学的問題は何か? | [レッスン](../1-Introduction/3-fairness/translations/README.ja.md) | Tomomi | +| 04 | 機械学習の手法 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習の研究者はどのような手法でモデルを構築しているか? | [レッスン](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | 回帰への導入 | [回帰](../2-Regression/README.md) | 回帰モデルをPythonと Scikit-learn で始める | [レッスン](../2-Regression/1-Tools/translations/README.ja.md) | Jen | +| 06 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | 機械学習に向けてデータを可視化してクリーニングする | [レッスン](../2-Regression/2-Data/translations/README.ja.md) | Jen | +| 07 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | 線形および多項式回帰モデルを構築する | [レッスン](2-Regression/3-Linear/README.md) | Jen | +| 08 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | ロジスティック回帰モデルを構築する | [レッスン](../2-Regression/4-Logistic/README.md) | Jen | +| 09 | Webアプリ 🔌 | [Webアプリ](../3-Web-App/README.md) | 学習したモデルを使用するWebアプリを構築する | [レッスン](../3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分類への導入 | [分類](../4-Classification/README.md) | データをクリーニング・前処理・可視化する。分類への導入 | [レッスン](../4-Classification/1-Introduction/README.md) | Jen and Cassie | +| 11 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | 分類器への導入 | [レッスン](../4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | +| 12 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | その他の分類器 | [レッスン](../4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | +| 13 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | モデルを使用して推薦Webアプリを構築する | [レッスン](../4-Classification/4-Applied/README.md) | Jen | +| 14 | クラスタリングへの導入 | [クラスタリング](../5-Clustering/README.md) | データをクリーニング・前処理・可視化する。クラスタリングへの導入 | [レッスン](../5-Clustering/1-Visualize/README.md) | Jen | +| 15 | ナイジェリアの音楽的嗜好を探る 🎧 | [クラスタリング](../5-Clustering/README.md) | K-Means法を探る | [レッスン](../5-Clustering/2-K-Means/README.md) | Jen | +| 16 | 自然言語処理への導入 ☕️ | [自然言語処理](../6-NLP/README.md) | 単純なボットを構築して自然言語処理の基礎を学ぶ | [レッスン](../6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 自然言語処理の一般的なタスク ☕️ | [自然言語処理](../6-NLP/README.md) | 言語構造を扱う際に必要となる一般的なタスクを理解することで、自然言語処理の知識を深める | [レッスン](../6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻訳と感情分析 ♥️ | [自然言語処理](../6-NLP/README.md) | ジェーン・オースティンの翻訳と感情分析 | [レッスン](../6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](../6-NLP/README.md) | ホテルのレビューの感情分析 1 | [レッスン](../6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](../6-NLP/README.md) | ホテルのレビューの感情分析 2 | [レッスン](../6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 時系列予測への導入 | [Time series](../7-TimeSeries/README.md) | 時系列予測への導入 | [レッスン](../7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 世界の電力使用量 ⚡️ - ARIMAによる時系列予測 | [Time series](../7-TimeSeries/README.md) | ARIMAによる時系列予測 | [レッスン](../7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | 強化学習への導入 | [Reinforcement learning](../8-Reinforcement/README.md) | Q学習を使った強化学習への導入 | [レッスン](../8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | ピーターが狼を避けるのを手伝ってください! 🐺 | [Reinforcement learning](../8-Reinforcement/README.md) | 強化学習ジム | [レッスン](../8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | 実世界の機械学習シナリオと応用 | [ML in the Wild](../9-Real-World/README.md) | 興味深くて意義のある、古典的機械学習の実世界での応用 | [レッスン](../9-Real-World/1-Applications/README.md) | Team | ## オフラインアクセス [Docsify](https://docsify.js.org/#/) を使うと、このドキュメントをオフラインで実行できます。このリポジトリをフォークして、ローカルマシンに [Docsify をインストール](https://docsify.js.org/#/quickstart) し、このリポジトリのルートフォルダで `docsify serve` と入力してください。ローカルホストの3000番ポート、つまり `localhost:3000` でWebサイトが起動します。 ## PDF -カリキュラムのPDFへのリンクは [こちら](/pdf/readme.pdf)。 +カリキュラムのPDFへのリンクは [こちら](../pdf/readme.pdf)。 ## ヘルプ募集! -翻訳をしてみませんか?[翻訳ガイドライン](/TRANSLATIONS.md) をご覧の上、[こちら](https://github.com/microsoft/ML-For-Beginners/issues/71) でお知らせください。 +翻訳をしてみませんか?[翻訳ガイドライン](../TRANSLATIONS.md) をご覧の上、[こちら](https://github.com/microsoft/ML-For-Beginners/issues/71) でお知らせください。 ## その他のカリキュラム From 7248e533e6284a83fc65ca9a976a5cf09e16b58f Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 20 Jul 2021 20:07:31 -0400 Subject: [PATCH 131/228] quiz fix --- quiz-app/src/assets/translations/en.json | 5626 +++++++++++----------- quiz-app/src/assets/translations/fr.json | 2 +- 2 files changed, 2814 insertions(+), 2814 deletions(-) diff --git a/quiz-app/src/assets/translations/en.json b/quiz-app/src/assets/translations/en.json index ae358aef..21b8375e 100644 --- a/quiz-app/src/assets/translations/en.json +++ b/quiz-app/src/assets/translations/en.json @@ -1,2815 +1,2815 @@ [ - { - "title": "Machine Learning for Beginners: Quizzes", - "complete": "Congratulations, you completed the quiz!", - "error": "Sorry, try again", - "quizzes": [ - { - "id": 1, - "title": "Introduction to Machine Learning: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Applications of machine learning are all around us", - "answerOptions": [ - { - "answerText": "True", - "isCorrect": "true" - }, - { - "answerText": "False", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What is the technical difference between classical ML and deep learning?", - "answerOptions": [ - { - "answerText": "classical ML was invented first", - "isCorrect": "false" - }, - { - "answerText": "the use of neural networks", - "isCorrect": "true" - }, - { - "answerText": "deep learning is used in robots", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Why might a business want to use ML strategies?", - "answerOptions": [ - { - "answerText": "to automate the solving of multi-dimensional problems", - "isCorrect": "false" - }, - { - "answerText": "to customize a shopping experience based on the type of customer", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 2, - "title": "Introduction to Machine Learning: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Machine learning algorithms are meant to simulate", - "answerOptions": [ - { - "answerText": "intelligent machines", - "isCorrect": "false" - }, - { - "answerText": "the human brain", - "isCorrect": "true" - }, - { - "answerText": "orangutans", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What is an example of a classical ML technique?", - "answerOptions": [ - { - "answerText": "natural language processing", - "isCorrect": "true" - }, - { - "answerText": "deep learning", - "isCorrect": "false" - }, - { - "answerText": "Neural Networks", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Why should everyone learn the basics of ML?", - "answerOptions": [ - { - "answerText": "learning ML is fun and accessible to everyone", - "isCorrect": "false" - }, - { - "answerText": "ML strategies are being used in many industries and domains", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 3, - "title": "History of Machine Learning: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Approximately when was the term 'artificial intelligence' coined?", - "answerOptions": [ - { - "answerText": "1980s", - "isCorrect": "false" - }, - { - "answerText": "1950s", - "isCorrect": "true" - }, - { - "answerText": "1930s", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Who was one of the early pioneers of machine learning?", - "answerOptions": [ - { - "answerText": "Alan Turing", - "isCorrect": "true" - }, - { - "answerText": "Bill Gates", - "isCorrect": "false" - }, - { - "answerText": "Shakey the robot", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What is one of the reasons that advancement in AI slowed in the 1970s?", - "answerOptions": [ - { - "answerText": "Limited compute power", - "isCorrect": "true" - }, - { - "answerText": "Not enough skilled engineers", - "isCorrect": "false" - }, - { - "answerText": "Conflicts between countries", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 4, - "title": "History of Machine Learning: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "What's an example of a 'scruffy' AI system?", - "answerOptions": [ - { - "answerText": "ELIZA", - "isCorrect": "true" - }, - { - "answerText": "HACKML", - "isCorrect": "false" - }, - { - "answerText": "SSYSTEM", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What is an example of a technology that was developed during 'The Golden Years'?", - "answerOptions": [ - { - "answerText": "Blocks world", - "isCorrect": "true" - }, - { - "answerText": "Jibo", - "isCorrect": "false" - }, - { - "answerText": "Robot dogs", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Which event was foundational in the creation and expansion of the field of artificial intelligence?", - "answerOptions": [ - { - "answerText": "Turing Test", - "isCorrect": "false" - }, - { - "answerText": "Dartmouth Summer Research Project", - "isCorrect": "true" - }, - { - "answerText": "AI Winter", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 5, - "title": "Fairness and Machine Learning: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Unfairness in Machine Learning can happen", - "answerOptions": [ - { - "answerText": "intentionally", - "isCorrect": "false" - }, - { - "answerText": "unintentionally", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "The term 'unfairness' in ML connotes:", - "answerOptions": [ - { - "answerText": "harms for a group of people", - "isCorrect": "true" - }, - { - "answerText": "harm to one person", - "isCorrect": "false" - }, - { - "answerText": "harms for the majority of people", - "isCorrect": "false" - } - ] - }, - { - "questionText": "The five main types of harms include", - "answerOptions": [ - { - "answerText": "allocation, quality of service, stereotyping, denigration, and over- or under- representation", - "isCorrect": "true" - }, - { - "answerText": "elocation, quality of service, stereotyping, denigration, and over- or under- representation ", - "isCorrect": "false" - }, - { - "answerText": "allocation, quality of service, stereophonics, denigration, and over- or under- representation ", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 6, - "title": "Fairness and Machine Learning: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Unfairness in a model can be caused by", - "answerOptions": [ - { - "answerText": "overrreliance on historical data", - "isCorrect": "true" - }, - { - "answerText": "underreliance on historical data", - "isCorrect": "false" - }, - { - "answerText": "too closely aligning to historical data", - "isCorrect": "false" - } - ] - }, - { - "questionText": "To mitigate unfairness, you can", - "answerOptions": [ - { - "answerText": "identify harms and affected groups", - "isCorrect": "false" - }, - { - "answerText": "define fairness metrics", - "isCorrect": "false" - }, - { - "answerText": "both the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "Fairlearn is a package that can", - "answerOptions": [ - { - "answerText": "compare multiple models by using fairness and performance metrics", - "isCorrect": "true" - }, - { - "answerText": "choose the best model for your needs", - "isCorrect": "false" - }, - { - "answerText": "help you decide what is fair and what is not", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 7, - "title": "Tools and Techniques: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "When building a model, you should:", - "answerOptions": [ - { - "answerText": "prepare your data, then train your model", - "isCorrect": "true" - }, - { - "answerText": "choose a training method, then prepare your data", - "isCorrect": "false" - }, - { - "answerText": "tune parameters, then train your model", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Your data's ___ will impact the quality of your ML model", - "answerOptions": [ - { - "answerText": "quantity", - "isCorrect": "false" - }, - { - "answerText": "shape", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "A feature variable is:", - "answerOptions": [ - { - "answerText": "a quality of your data", - "isCorrect": "false" - }, - { - "answerText": "a measurable property of your data", - "isCorrect": "true" - }, - { - "answerText": "a row of your data", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 8, - "title": "Tools and Techniques: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "You should visualize your data because", - "answerOptions": [ - { - "answerText": "you can discover outliers", - "isCorrect": "false" - }, - { - "answerText": "you can discover potential cause for bias", - "isCorrect": "true" - }, - { - "answerText": "both of these", - "isCorrect": "true" - } - ] - }, - { - "questionText": "Split your data into:", - "answerOptions": [ - { - "answerText": "training and turing sets", - "isCorrect": "false" - }, - { - "answerText": "training and test sets", - "isCorrect": "true" - }, - { - "answerText": "validation and evaluation sets", - "isCorrect": "false" - } - ] - }, - { - "questionText": "A common command to start the training process in various ML libraries is:", - "answerOptions": [ - { - "answerText": "model.travel", - "isCorrect": "false" - }, - { - "answerText": "model.train", - "isCorrect": "false" - }, - { - "answerText": "model.fit", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 9, - "title": "Introduction to Regression: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Which of these variables is a numeric variable?", - "answerOptions": [ - { - "answerText": "Height", - "isCorrect": "true" - }, - { - "answerText": "Gender", - "isCorrect": "false" - }, - { - "answerText": "Hair Color", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Which of these variables is a categorical variable?", - "answerOptions": [ - { - "answerText": "Heart Rate", - "isCorrect": "false" - }, - { - "answerText": "Blood Type", - "isCorrect": "true" - }, - { - "answerText": "Weight", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Which of these problems is a Regression analysis-based problem?", - "answerOptions": [ - { - "answerText": "Predicting the final exam marks of a student", - "isCorrect": "true" - }, - { - "answerText": "Predicting the blood type of a person", - "isCorrect": "false" - }, - { - "answerText": "Predicting whether an email is spam or not", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 10, - "title": "Introduction to Regression: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "If your Machine Learning model's training accuracy is 95 % and the testing accuracy is 30 %, then what type of condition it is called?", - "answerOptions": [ - { - "answerText": "Overfitting", - "isCorrect": "true" - }, - { - "answerText": "Underfitting", - "isCorrect": "false" - }, - { - "answerText": "Double Fitting", - "isCorrect": "false" - } - ] - }, - { - "questionText": "The process of identifying significant features from a set of features is called:", - "answerOptions": [ - { - "answerText": "Feature Extraction", - "isCorrect": "false" - }, - { - "answerText": "Feature Dimensionality Reduction", - "isCorrect": "false" - }, - { - "answerText": "Feature Selection", - "isCorrect": "true" - } - ] - }, - { - "questionText": "The process of splitting a dataset into a certain ratio of training and testing dataset using Scikit Learn's 'train_test_split()' method/function is called:", - "answerOptions": [ - { - "answerText": "Cross-Validation", - "isCorrect": "false" - }, - { - "answerText": "Hold-Out Validation", - "isCorrect": "true" - }, - { - "answerText": "Leave one out Validation", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 11, - "title": "Prepare and Visualize Data for Regression: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Which of these Python modules is used to plot the visualization of data?", - "answerOptions": [ - { - "answerText": "Numpy", - "isCorrect": "false" - }, - { - "answerText": "Scikit-learn", - "isCorrect": "false" - }, - { - "answerText": "Matplotlib", - "isCorrect": "true" - } - ] - }, - { - "questionText": "If you want to understand the spread or the other characteristics of data points of your dataset, then perform:", - "answerOptions": [ - { - "answerText": "Data Visualization", - "isCorrect": "true" - }, - { - "answerText": "Data Preprocessing", - "isCorrect": "false" - }, - { - "answerText": "Train Test Split", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Which of these is a part of the Data Visualization step in a Machine Learning project?", - "answerOptions": [ - { - "answerText": "Incorporating a certain Machine Learning algorithm", - "isCorrect": "false" - }, - { - "answerText": "Creating a pictorial representation of data using different plotting methods", - "isCorrect": "true" - }, - { - "answerText": "Normalizing the values of a dataset", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 12, - "title": "Prepare and Visualize Data for Regression: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Which of these code snippets is correct based on this lesson, if you want to check for the presence of missing values in your dataset? Suppose the dataset is stored in a variable named 'dataset' which is a Pandas DataFrame object.", - "answerOptions": [ - { - "answerText": "dataset.isnull().sum()", - "isCorrect": "true" - }, - { - "answerText": "findMissing(dataset)", - "isCorrect": "false" - }, - { - "answerText": "sum(null(dataset))", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Which of these plotting methods is useful when you would like to understand the spread of different groups of datapoints from your dataset?", - "answerOptions": [ - { - "answerText": "Scatter Plot", - "isCorrect": "false" - }, - { - "answerText": "Line Plot", - "isCorrect": "false" - }, - { - "answerText": "Bar Plot", - "isCorrect": "true" - } - ] - }, - { - "questionText": "What can Data Visualization NOT tell you?", - "answerOptions": [ - { - "answerText": "Relationships among datapoints", - "isCorrect": "false" - }, - { - "answerText": "The source from where the dataset is collected", - "isCorrect": "true" - }, - { - "answerText": "Finding the presence of outliers in the dataset", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 13, - "title": "Linear and Polynomial Regression: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Matplotlib is a ", - "answerOptions": [ - { - "answerText": "drawing library", - "isCorrect": "false" - }, - { - "answerText": "data visualization library", - "isCorrect": "true" - }, - { - "answerText": "lending library", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Linear Regression uses the following to plot relationships between variables", - "answerOptions": [ - { - "answerText": "a straight line", - "isCorrect": "true" - }, - { - "answerText": "a circle", - "isCorrect": "false" - }, - { - "answerText": "a curve", - "isCorrect": "false" - } - ] - }, - { - "questionText": "A good Linear Regression model has a ___ Correlation Coefficient", - "answerOptions": [ - { - "answerText": "low", - "isCorrect": "false" - }, - { - "answerText": "high", - "isCorrect": "true" - }, - { - "answerText": "flat", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 14, - "title": "Linear and Polynomial Regression: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "If your data is nonlinear, try a ___ type of Regression", - "answerOptions": [ - { - "answerText": "linear", - "isCorrect": "false" - }, - { - "answerText": "spherical", - "isCorrect": "false" - }, - { - "answerText": "polynomial", - "isCorrect": "true" - } - ] - }, - { - "questionText": "These are all types of Regression methods", - "answerOptions": [ - { - "answerText": "Falsestep, Ridge, Lasso and Elasticnet", - "isCorrect": "false" - }, - { - "answerText": "Stepwise, Ridge, Lasso and Elasticnet", - "isCorrect": "true" - }, - { - "answerText": "Stepwise, Ridge, Lariat and Elasticnet", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Least-Squares Regression means that all the datapoints surrounding the regression line are:", - "answerOptions": [ - { - "answerText": "squared and then subtracted", - "isCorrect": "false" - }, - { - "answerText": "multiplied", - "isCorrect": "false" - }, - { - "answerText": "squared and then added up", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 15, - "title": "Logistic Regression: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Use Logistic Regression to predict", - "answerOptions": [ - { - "answerText": "whether an apple is ripe or not", - "isCorrect": "true" - }, - { - "answerText": "how many tickets can be sold in a month", - "isCorrect": "false" - }, - { - "answerText": "what color the sky will turn tomorrow at 6 PM", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Types of Logistic Regression include", - "answerOptions": [ - { - "answerText": "multinomial and cardinal", - "isCorrect": "false" - }, - { - "answerText": "multinomial and ordinal", - "isCorrect": "true" - }, - { - "answerText": "principal and ordinal", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Your data has weak correlations. The best type of Regression to use is:", - "answerOptions": [ - { - "answerText": "Logistic", - "isCorrect": "true" - }, - { - "answerText": "Linear", - "isCorrect": "false" - }, - { - "answerText": "Cardinal", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 16, - "title": "Logistic Regression: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Seaborn is a type of", - "answerOptions": [ - { - "answerText": "data visualization library", - "isCorrect": "true" - }, - { - "answerText": "mapping library", - "isCorrect": "false" - }, - { - "answerText": "mathematical library", - "isCorrect": "false" - } - ] - }, - { - "questionText": "A confusion matrix is also known as a:", - "answerOptions": [ - { - "answerText": "error matrix", - "isCorrect": "true" - }, - { - "answerText": "truth matrix", - "isCorrect": "false" - }, - { - "answerText": "accuracy matrix", - "isCorrect": "false" - } - ] - }, - { - "questionText": "A good model will have:", - "answerOptions": [ - { - "answerText": "a large number of false positives and true negatives in its confusion matrix", - "isCorrect": "false" - }, - { - "answerText": "a large number of true positives and true negatives in its confusion matrix", - "isCorrect": "true" - }, - { - "answerText": "a large number of true positives and false negatives in its confusion matrix", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 17, - "title": "Build a Web App: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "What does ONNX stand for?", - "answerOptions": [ - { - "answerText": "Over Neural Network Exchange", - "isCorrect": "false" - }, - { - "answerText": "Open Neural Network Exchange", - "isCorrect": "true" - }, - { - "answerText": "Output Neural Network Exchange", - "isCorrect": "false" - } - ] - }, - { - "questionText": "How is Flask defined by its creators?", - "answerOptions": [ - { - "answerText": "mini-framework", - "isCorrect": "false" - }, - { - "answerText": "large-framework", - "isCorrect": "false" - }, - { - "answerText": "micro-framework", - "isCorrect": "true" - } - ] - }, - { - "questionText": "What does the Pickle module of Python do", - "answerOptions": [ - { - "answerText": "Serializes a Python Object", - "isCorrect": "false" - }, - { - "answerText": "De-serializes a Python Object", - "isCorrect": "false" - }, - { - "answerText": "Serializes and De-serializes a Python Object", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 18, - "title": "Build a Web App: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "What are the tools we can use to host a pre-trained model on the web using Python?", - "answerOptions": [ - { - "answerText": "Flask", - "isCorrect": "true" - }, - { - "answerText": "TensorFlow.js", - "isCorrect": "false" - }, - { - "answerText": "onnx.js", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What does SaaS stand for?", - "answerOptions": [ - { - "answerText": "System as a Service", - "isCorrect": "false" - }, - { - "answerText": "Software as a Service", - "isCorrect": "true" - }, - { - "answerText": "Security as a Service", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What does Scikit-learn's LabelEncoder library do?", - "answerOptions": [ - { - "answerText": "Encodes data alphabetically", - "isCorrect": "true" - }, - { - "answerText": "Encodes data numerically", - "isCorrect": "false" - }, - { - "answerText": "Encodes data serially", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 19, - "title": "Classification 1: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Classification is a form of supervised learning that has a lot in common with", - "answerOptions": [ - { - "answerText": "Time Series", - "isCorrect": "false" - }, - { - "answerText": "Regression techniques", - "isCorrect": "true" - }, - { - "answerText": "NLP", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What question can classification help answer?", - "answerOptions": [ - { - "answerText": "Is this email spam or not?", - "isCorrect": "true" - }, - { - "answerText": "Can pigs fly?", - "isCorrect": "false" - }, - { - "answerText": "What is the meaning of life?", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What is the first step to using Classification techniques?", - "answerOptions": [ - { - "answerText": "creating classes of a dataset", - "isCorrect": "false" - }, - { - "answerText": "cleaning and balancing your data", - "isCorrect": "true" - }, - { - "answerText": "assigning a data point to a group or outcome", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 20, - "title": "Classification 1: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "What is a multiclass question?", - "answerOptions": [ - { - "answerText": "the task of classifying data points into multiple classes", - "isCorrect": "true" - }, - { - "answerText": "the task of classifying data points into one of several classes", - "isCorrect": "true" - }, - { - "answerText": "the task of cleaning data points in multiple ways", - "isCorrect": "false" - } - ] - }, - { - "questionText": "It's important to clean out recurrent or unhelpful data to help your classifiers solve your problem.", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "true" - }, - { - "answerText": "false", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What's the best reason to balance your data?", - "answerOptions": [ - { - "answerText": "Imbalanced data looks bad in visualizations", - "isCorrect": "false" - }, - { - "answerText": "Balancing your data yields better results because an ML model won't skew towards one class", - "isCorrect": "true" - }, - { - "answerText": "Balancing your data gives you more data points", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 21, - "title": "Classification 2: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Balanced, clean data yields the best classification results", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "true" - }, - { - "answerText": "false", - "isCorrect": "false" - } - ] - }, - { - "questionText": "How do you choose the right classifier?", - "answerOptions": [ - { - "answerText": "Understand which classifiers work best for which scenarios", - "isCorrect": "false" - }, - { - "answerText": "Educated guess and check", - "isCorrect": "false" - }, - { - "answerText": "Both of the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "Classification is a type of", - "answerOptions": [ - { - "answerText": "NLP", - "isCorrect": "false" - }, - { - "answerText": "Supervised Learning", - "isCorrect": "true" - }, - { - "answerText": "Programming language", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 22, - "title": "Classification 2: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "What is a 'solver'?", - "answerOptions": [ - { - "answerText": "the person who double-checks your work", - "isCorrect": "false" - }, - { - "answerText": "the algorithm to use in the optimization problem", - "isCorrect": "true" - }, - { - "answerText": "a machine learning technique", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Which classifier did we use in this lesson?", - "answerOptions": [ - { - "answerText": "Logistic Regression", - "isCorrect": "true" - }, - { - "answerText": "Decision Trees", - "isCorrect": "false" - }, - { - "answerText": "One-vs-All Multiclass", - "isCorrect": "false" - } - ] - }, - { - "questionText": "How do you know if the classification algorithm is working as expected?", - "answerOptions": [ - { - "answerText": "By checking the accuracy of its predictions", - "isCorrect": "true" - }, - { - "answerText": "By checking it against other algorithms", - "isCorrect": "false" - }, - { - "answerText": "By looking at historical data for how good this algorithm is at solving similar problems", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 23, - "title": "Classification 3: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "A good initial classifier to try is:", - "answerOptions": [ - { - "answerText": "Linear SVC", - "isCorrect": "true" - }, - { - "answerText": "K-Means", - "isCorrect": "false" - }, - { - "answerText": "Logical SVC", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Regularization controls:", - "answerOptions": [ - { - "answerText": "the influence of parameters", - "isCorrect": "true" - }, - { - "answerText": "the influence of training speed", - "isCorrect": "false" - }, - { - "answerText": "the influence of outliers", - "isCorrect": "false" - } - ] - }, - { - "questionText": "K-Neighbors classifier can be used for:", - "answerOptions": [ - { - "answerText": "supervised learning", - "isCorrect": "false" - }, - { - "answerText": "unsupervised learning", - "isCorrect": "false" - }, - { - "answerText": "both of these", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 24, - "title": "Classification 3: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Support-Vector classifiers can be used for", - "answerOptions": [ - { - "answerText": "classification", - "isCorrect": "false" - }, - { - "answerText": "regression", - "isCorrect": "false" - }, - { - "answerText": "both of these", - "isCorrect": "true" - } - ] - }, - { - "questionText": "Random Forest is a ___ type of classifier", - "answerOptions": [ - { - "answerText": "Ensemble", - "isCorrect": "true" - }, - { - "answerText": "Dissemble", - "isCorrect": "false" - }, - { - "answerText": "Assemble", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Adaboost is known for:", - "answerOptions": [ - { - "answerText": "focusing on the weights of incorrectly classified items", - "isCorrect": "true" - }, - { - "answerText": "focusing on outliers", - "isCorrect": "false" - }, - { - "answerText": "focusing on incorrect data", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 25, - "title": "Classification 4: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Recommendation systems might be used for", - "answerOptions": [ - { - "answerText": "Recommending a good restaurant", - "isCorrect": "false" - }, - { - "answerText": "Recommending fashions to try", - "isCorrect": "false" - }, - { - "answerText": "Both of these", - "isCorrect": "true" - } - ] - }, - { - "questionText": "Embedding a model in a web app helps it to be offline-capable", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "true" - }, - { - "answerText": "false", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Onnx Runtime can be used for", - "answerOptions": [ - { - "answerText": "Running models in a web app", - "isCorrect": "true" - }, - { - "answerText": "Training models", - "isCorrect": "false" - }, - { - "answerText": "Hyperparameter tuning", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 26, - "title": "Classification 4: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Netron app helps you:", - "answerOptions": [ - { - "answerText": "Visualize data", - "isCorrect": "false" - }, - { - "answerText": "Visualize your model's structure", - "isCorrect": "true" - }, - { - "answerText": "Test your web app", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Convert your Scikit-learn model for use with Onnx using:", - "answerOptions": [ - { - "answerText": "sklearn-app", - "isCorrect": "false" - }, - { - "answerText": "sklearn-web", - "isCorrect": "false" - }, - { - "answerText": "sklearn-onnx", - "isCorrect": "true" - } - ] - }, - { - "questionText": "Using your model in a web app is called:", - "answerOptions": [ - { - "answerText": "inference", - "isCorrect": "true" - }, - { - "answerText": "interference", - "isCorrect": "false" - }, - { - "answerText": "insurance", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 27, - "title": "Introduction to Clustering: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "A real-life example of clustering would be", - "answerOptions": [ - { - "answerText": "Setting the dinner table", - "isCorrect": "false" - }, - { - "answerText": "Sorting the laundry", - "isCorrect": "true" - }, - { - "answerText": "Grocery shopping", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Clustering techniques can be used in these industries", - "answerOptions": [ - { - "answerText": "banking", - "isCorrect": "false" - }, - { - "answerText": "e-commerce", - "isCorrect": "false" - }, - { - "answerText": "both of these", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Clustering is a type of:", - "answerOptions": [ - { - "answerText": "supervised learning", - "isCorrect": "false" - }, - { - "answerText": "unsupervised learning", - "isCorrect": "true" - }, - { - "answerText": "reinforcement learning", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 28, - "title": "Introduction to Clustering: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Euclidean geometry is arranged along", - "answerOptions": [ - { - "answerText": "planes", - "isCorrect": "true" - }, - { - "answerText": "curves", - "isCorrect": "false" - }, - { - "answerText": "spheres", - "isCorrect": "false" - } - ] - }, - { - "questionText": "The density of your clustering data is related to its", - "answerOptions": [ - { - "answerText": "noise", - "isCorrect": "true" - }, - { - "answerText": "depth", - "isCorrect": "false" - }, - { - "answerText": "validity", - "isCorrect": "false" - } - ] - }, - { - "questionText": "The best-known clustering algorithm is", - "answerOptions": [ - { - "answerText": "k-means", - "isCorrect": "true" - }, - { - "answerText": "k-middle", - "isCorrect": "false" - }, - { - "answerText": "k-mart", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 29, - "title": "K-Means Clustering: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "K-Means is derived from:", - "answerOptions": [ - { - "answerText": "electrical engineering", - "isCorrect": "false" - }, - { - "answerText": "signal processing", - "isCorrect": "true" - }, - { - "answerText": "computational linguistics", - "isCorrect": "false" - } - ] - }, - { - "questionText": "A good Silhouette score means:", - "answerOptions": [ - { - "answerText": "clusters are well-separated and well-defined", - "isCorrect": "true" - }, - { - "answerText": "there are few clusters", - "isCorrect": "false" - }, - { - "answerText": "there are many clusters", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Variance is:", - "answerOptions": [ - { - "answerText": "the average of the squared differences from the mean", - "isCorrect": "false" - }, - { - "answerText": "a problem for clustering if it becomes too high", - "isCorrect": "false" - }, - { - "answerText": "both of these", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 30, - "title": "K-Means Clustering: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "A Voronoi diagram shows:", - "answerOptions": [ - { - "answerText": "a cluster's variance", - "isCorrect": "false" - }, - { - "answerText": "a cluster's seed and its region", - "isCorrect": "true" - }, - { - "answerText": "a cluster's inertia", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Inertia is", - "answerOptions": [ - { - "answerText": "a measure of how internally coherent clusters are", - "isCorrect": "true" - }, - { - "answerText": "a measure of how much clusters move", - "isCorrect": "false" - }, - { - "answerText": "a measure of cluster quality", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Using K-Means, you must first determine the value of 'k'", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "true" - }, - { - "answerText": "false", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 31, - "title": "Intro to NLP: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "What does NLP stand for in these lessons?", - "answerOptions": [ - { - "answerText": "Neural Language Processing", - "isCorrect": "false" - }, - { - "answerText": "natural language processing", - "isCorrect": "true" - }, - { - "answerText": "Natural Linguistic Processing", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Eliza was an early bot that acted as a computer", - "answerOptions": [ - { - "answerText": "therapist", - "isCorrect": "true" - }, - { - "answerText": "doctor", - "isCorrect": "false" - }, - { - "answerText": "nurse", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Alan Turing's 'Turing Test' tried to determine if a computer was", - "answerOptions": [ - { - "answerText": "indistinguishable from a human", - "isCorrect": "false" - }, - { - "answerText": "thinking", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 32, - "title": "Intro to NLP: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Joseph Weizenbaum invented the bot", - "answerOptions": [ - { - "answerText": "Elisha", - "isCorrect": "false" - }, - { - "answerText": "Eliza", - "isCorrect": "true" - }, - { - "answerText": "Eloise", - "isCorrect": "false" - } - ] - }, - { - "questionText": "A conversational bot gives output based on", - "answerOptions": [ - { - "answerText": "Randomly choosing predefined choices", - "isCorrect": "false" - }, - { - "answerText": "Analyzing the input and using machine intelligence", - "isCorrect": "false" - }, - { - "answerText": "Both of these", - "isCorrect": "true" - } - ] - }, - { - "questionText": "How would you make the bot more effective?", - "answerOptions": [ - { - "answerText": "By asking it more questions.", - "isCorrect": "false" - }, - { - "answerText": "By feeding it more data and training it accordingly", - "isCorrect": "true" - }, - { - "answerText": "The bot is dumb, it cannot learn :(", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 33, - "title": "NLP Tasks: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Tokenization", - "answerOptions": [ - { - "answerText": "Splits text by means of punctuation", - "isCorrect": "false" - }, - { - "answerText": "Splits text into separate tokens (words)", - "isCorrect": "true" - }, - { - "answerText": "Splits text into phrases", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Embeddings", - "answerOptions": [ - { - "answerText": "converts text data numerically so words can cluster", - "isCorrect": "true" - }, - { - "answerText": "embeds words into phrases", - "isCorrect": "false" - }, - { - "answerText": "embeds sentences into paragraphs", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Parts-of-Speech Tagging", - "answerOptions": [ - { - "answerText": "divides sentences by their parts of speech", - "isCorrect": "false" - }, - { - "answerText": "takes tokenized words and tags them by their part of speech", - "isCorrect": "true" - }, - { - "answerText": "diagrams sentences", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 34, - "title": "NLP Tasks: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Build a dictionary of how often words reoccur using:", - "answerOptions": [ - { - "answerText": "Word and Phrase Dictionary", - "isCorrect": "false" - }, - { - "answerText": "Word and Phrase Frequencies", - "isCorrect": "true" - }, - { - "answerText": "Word and Phrase Library", - "isCorrect": "false" - } - ] - }, - { - "questionText": "N-grams refer to", - "answerOptions": [ - { - "answerText": "A text can be split into sequences of words of a set length", - "isCorrect": "true" - }, - { - "answerText": "A word can be split into sequences of characters of a set length", - "isCorrect": "false" - }, - { - "answerText": "A text can be split into paragraphs of a set length", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Sentiment analysis", - "answerOptions": [ - { - "answerText": "analyzes a phrase for positivity or negativity", - "isCorrect": "true" - }, - { - "answerText": "analyzes a phrase for sentimentality", - "isCorrect": "false" - }, - { - "answerText": "analyzes a phrase for sadness", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 35, - "title": "NLP and Translation: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Naive translation", - "answerOptions": [ - { - "answerText": "translates words only", - "isCorrect": "true" - }, - { - "answerText": "translates sentence structure", - "isCorrect": "false" - }, - { - "answerText": "translates sentiment", - "isCorrect": "false" - } - ] - }, - { - "questionText": "A *corpus* of texts refers to", - "answerOptions": [ - { - "answerText": "A small number of texts", - "isCorrect": "false" - }, - { - "answerText": "A large number of texts", - "isCorrect": "true" - }, - { - "answerText": "One standard text", - "isCorrect": "false" - } - ] - }, - { - "questionText": "If a ML model has enough human translations to build a model on, it can", - "answerOptions": [ - { - "answerText": "abbreviate translations", - "isCorrect": "false" - }, - { - "answerText": "standardize translations", - "isCorrect": "false" - }, - { - "answerText": "improve the accuracy of translations", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 36, - "title": "NLP and Translation: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Underlying TextBlob's translation library is:", - "answerOptions": [ - { - "answerText": "Google Translate", - "isCorrect": "true" - }, - { - "answerText": "Bing", - "isCorrect": "false" - }, - { - "answerText": "A custom ML model", - "isCorrect": "false" - } - ] - }, - { - "questionText": "To use `blob.translate` you need:", - "answerOptions": [ - { - "answerText": "an internet connection", - "isCorrect": "true" - }, - { - "answerText": "a dictionary", - "isCorrect": "false" - }, - { - "answerText": "JavaScript", - "isCorrect": "false" - } - ] - }, - { - "questionText": "To determine sentiment, an ML approach would be to:", - "answerOptions": [ - { - "answerText": "apply Regression techniques to manually generated opinions and scores and look for patterns", - "isCorrect": "false" - }, - { - "answerText": "apply NLP techniques to manually generated opinions and scores and look for patterns", - "isCorrect": "true" - }, - { - "answerText": "apply Clustering techniques to manually generated opinions and scores and look for patterns", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 37, - "title": "NLP 4: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "What information can we get from text that was written or spoken by a human?", - "answerOptions": [ - { - "answerText": "patterns and frequencies", - "isCorrect": "false" - }, - { - "answerText": "sentiment and meaning", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "What is sentiment analysis?", - "answerOptions": [ - { - "answerText": "a study of whether a family heirloom has sentimental value", - "isCorrect": "false" - }, - { - "answerText": "a method of systematically identifying, extracting, quantifying, and studying affective states and subjective information", - "isCorrect": "true" - }, - { - "answerText": "the ability to tell whether someone is sad or happy", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What question could be answered using a dataset of hotel reviews, Python, and sentiment analysis?", - "answerOptions": [ - { - "answerText": "What are the most frequently used words and phrases in reviews?", - "isCorrect": "true" - }, - { - "answerText": "Which resort has the best pool?", - "isCorrect": "false" - }, - { - "answerText": "Is there valet parking at this hotel?", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 38, - "title": "NLP 4: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "What is the essence of NLP?", - "answerOptions": [ - { - "answerText": "categorizing human language into happy or sad", - "isCorrect": "false" - }, - { - "answerText": "interpreting meaning or sentiment without having to have a human do it", - "isCorrect": "true" - }, - { - "answerText": "finding outliers in sentiment and examining them", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What are some things you might look for while cleaning data?", - "answerOptions": [ - { - "answerText": "characters in other languages", - "isCorrect": "false" - }, - { - "answerText": "blank rows or columns", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "It is important to understand your data and its foibles before performing operations on it.", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "true" - }, - { - "answerText": "false", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 39, - "title": "NLP 5: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Why is it important to clean data before analyzing it?", - "answerOptions": [ - { - "answerText": "Some columns might have missing or incorrect data", - "isCorrect": "false" - }, - { - "answerText": "Messy data can lead to false conclusions about the dataset", - "isCorrect": "false" - }, - { - "answerText": "Both of the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "What is one example of a strategy for cleaning data?", - "answerOptions": [ - { - "answerText": "removing columns/rows that aren't useful for answering a specific question", - "isCorrect": "true" - }, - { - "answerText": "getting rid of verified values that don't fit your hypothesis", - "isCorrect": "false" - }, - { - "answerText": "moving the outliers to a separate table and running the calculations for that table to see if they match", - "isCorrect": "false" - } - ] - }, - { - "questionText": "It can be useful to categorize data using a Tag column.", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "true" - }, - { - "answerText": "false", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 40, - "title": "NLP 5: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "What is the goal of the dataset?", - "answerOptions": [ - { - "answerText": "to see how many negative and positive reviews there are for hotels across the world", - "isCorrect": "false" - }, - { - "answerText": "to add sentiment and columns that will help you choose the best hotel", - "isCorrect": "true" - }, - { - "answerText": "to analyze why people leave specific reviews", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What are stop words?", - "answerOptions": [ - { - "answerText": "common English words that do not change the sentiment of a sentence", - "isCorrect": "false" - }, - { - "answerText": "words that you can remove to speed up sentiment analysis", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "To test the sentiment analysis, make sure it matches the reviewer's score for the same review.", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "true" - }, - { - "answerText": "false", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 41, - "title": "Intro to Time Series: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Time Series Forecasting is useful in", - "answerOptions": [ - { - "answerText": "determining future costs", - "isCorrect": "false" - }, - { - "answerText": "predicting future pricing", - "isCorrect": "false" - }, - { - "answerText": "both the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "A time series is a sequence taken at:", - "answerOptions": [ - { - "answerText": "successive equally spaced points in space", - "isCorrect": "false" - }, - { - "answerText": "successive equally spaced points in time", - "isCorrect": "true" - }, - { - "answerText": "successive equally spaced points in space and time", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Time series can be used in:", - "answerOptions": [ - { - "answerText": "earthquake prediction", - "isCorrect": "true" - }, - { - "answerText": "computer vision", - "isCorrect": "false" - }, - { - "answerText": "color analysis", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 42, - "title": "Intro to Time Series: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Time series trends are", - "answerOptions": [ - { - "answerText": "Measurable increases and decreases over time", - "isCorrect": "true" - }, - { - "answerText": "Quantifying decreases over time", - "isCorrect": "false" - }, - { - "answerText": "Gaps between increases and decreases over time", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Outliers are", - "answerOptions": [ - { - "answerText": "points close to standard data variance", - "isCorrect": "false" - }, - { - "answerText": "points far away from standard data variance", - "isCorrect": "true" - }, - { - "answerText": "points within standard data variance", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Time Series Forecasting is most useful for", - "answerOptions": [ - { - "answerText": "Econometrics", - "isCorrect": "true" - }, - { - "answerText": "History", - "isCorrect": "false" - }, - { - "answerText": "Libraries", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 43, - "title": "Time Series ARIMA: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "ARIMA stands for", - "answerOptions": [ - { - "answerText": "AutoRegressive Integral Moving Average", - "isCorrect": "false" - }, - { - "answerText": "AutoRegressive Integrated Moving Action", - "isCorrect": "false" - }, - { - "answerText": "AutoRegressive Integrated Moving Average", - "isCorrect": "true" - } - ] - }, - { - "questionText": "Stationarity refers to", - "answerOptions": [ - { - "answerText": "data whose attributes does not change when shifted in time", - "isCorrect": "false" - }, - { - "answerText": "data whose distribution does not change when shifted in time", - "isCorrect": "true" - }, - { - "answerText": "data whose distribution changes when shifted in time", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Differencing", - "answerOptions": [ - { - "answerText": "stabilizes trend and seasonality", - "isCorrect": "false" - }, - { - "answerText": "exacerbates trend and seasonality", - "isCorrect": "false" - }, - { - "answerText": "eliminates trend and seasonality", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 44, - "title": "Time Series ARIMA: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "ARIMA is used to make a model fit the special form of time series data", - "answerOptions": [ - { - "answerText": "as flat as possible", - "isCorrect": "false" - }, - { - "answerText": "as closely as possible", - "isCorrect": "true" - }, - { - "answerText": "via scatterplots", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Use SARIMAX to", - "answerOptions": [ - { - "answerText": "manage seasonal ARIMA models", - "isCorrect": "true" - }, - { - "answerText": "manage special ARIMA models", - "isCorrect": "false" - }, - { - "answerText": "manage statistical ARIMA models", - "isCorrect": "false" - } - ] - }, - { - "questionText": "'Walk-Forward' validation involves", - "answerOptions": [ - { - "answerText": "re-evaluating a model progressively as it is validated", - "isCorrect": "false" - }, - { - "answerText": "re-training a model progressively as it is validated", - "isCorrect": "true" - }, - { - "answerText": "re-configuring a model progressively as it is validated", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 45, - "title": "Reinforcement 1: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "What is reinforcement learning?", - "answerOptions": [ - { - "answerText": "teaching someone something over and over again until they understand", - "isCorrect": "false" - }, - { - "answerText": "a learning technique that deciphers the optimal behavior of an agent in some environment by running many experiments", - "isCorrect": "true" - }, - { - "answerText": "understanding how to run multiple experiments at once", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What is a policy?", - "answerOptions": [ - { - "answerText": "a function that returns the action at any given state", - "isCorrect": "true" - }, - { - "answerText": "a document that tells you whether or not you can return an item", - "isCorrect": "false" - }, - { - "answerText": "a function that is used for a random purpose", - "isCorrect": "false" - } - ] - }, - { - "questionText": "A reward function returns a score for each state of an environment.", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "true" - }, - { - "answerText": "false", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 46, - "title": "Reinforcement 1: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "What is Q-Learning?", - "answerOptions": [ - { - "answerText": "a mechanism for recording the 'goodness' of each state", - "isCorrect": "false" - }, - { - "answerText": "an algorithm where the policy is defined by a Q-Table", - "isCorrect": "false" - }, - { - "answerText": "both of the above", - "isCorrect": "true" - } - ] - }, - { - "questionText": "For what values does a Q-Table correspond to the random walk policy?", - "answerOptions": [ - { - "answerText": "all equal values", - "isCorrect": "true" - }, - { - "answerText": "-0.25", - "isCorrect": "false" - }, - { - "answerText": "all different values", - "isCorrect": "false" - } - ] - }, - { - "questionText": "It was better to use exploration than exploitation during the learning process in our lesson.", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "false" - }, - { - "answerText": "false", - "isCorrect": "true" - } - ] - } - ] - }, - { - "id": 47, - "title": "Reinforcement 2: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "Chess and Go are games with continuous states.", - "answerOptions": [ - { - "answerText": "true", - "isCorrect": "false" - }, - { - "answerText": "false", - "isCorrect": "true" - } - ] - }, - { - "questionText": "What is the CartPole problem?", - "answerOptions": [ - { - "answerText": "a process for eliminating outliers", - "isCorrect": "false" - }, - { - "answerText": "a method for optimizing your shopping cart", - "isCorrect": "false" - }, - { - "answerText": "a simplified version of balancing", - "isCorrect": "true" - } - ] - }, - { - "questionText": "What tool can we use to play out different scenarios of potential states in a game?", - "answerOptions": [ - { - "answerText": "guess and check", - "isCorrect": "false" - }, - { - "answerText": "simulation environments", - "isCorrect": "true" - }, - { - "answerText": "state transition testing", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 48, - "title": "Reinforcement 2: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Where do we define all possible actions in an environment?", - "answerOptions": [ - { - "answerText": "methods", - "isCorrect": "false" - }, - { - "answerText": "action space", - "isCorrect": "true" - }, - { - "answerText": "action list", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What pair did we use as the dictionary key-value?", - "answerOptions": [ - { - "answerText": "(state, action) as the key, Q-Table entry as the value", - "isCorrect": "true" - }, - { - "answerText": "state as the key, action as the value", - "isCorrect": "false" - }, - { - "answerText": "the value of the qvalues function as the key, action as the value", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What are the hyperparameters we used during Q-Learning?", - "answerOptions": [ - { - "answerText": "q-table value, current reward, random action", - "isCorrect": "false" - }, - { - "answerText": "learning rate, discount factor, exploration/exploitation factor", - "isCorrect": "true" - }, - { - "answerText": "cumulative rewards, learning rate, exploration factor", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 49, - "title": "Real World Applications: Pre-Lecture Quiz", - "quiz": [ - { - "questionText": "What's an example of an ML application in the Finance industry?", - "answerOptions": [ - { - "answerText": "Personalizing the customer journey using NLP", - "isCorrect": "false" - }, - { - "answerText": "Wealth management using linear regression", - "isCorrect": "true" - }, - { - "answerText": "Energy management using Time Series", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What ML technique can hospitals use to manage readmission?", - "answerOptions": [ - { - "answerText": "Clustering", - "isCorrect": "true" - }, - { - "answerText": "Time Series", - "isCorrect": "false" - }, - { - "answerText": "NLP", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What is an example of using Time Series for energy management?", - "answerOptions": [ - { - "answerText": "Motion sensing animals", - "isCorrect": "false" - }, - { - "answerText": "Smart parking meters", - "isCorrect": "true" - }, - { - "answerText": "Tracking forest fires", - "isCorrect": "false" - } - ] - } - ] - }, - { - "id": 50, - "title": "Real World Applications: Post-Lecture Quiz", - "quiz": [ - { - "questionText": "Which ML technique can be used to detect credit card fraud?", - "answerOptions": [ - { - "answerText": "Regression", - "isCorrect": "false" - }, - { - "answerText": "Clustering", - "isCorrect": "true" - }, - { - "answerText": "NLP", - "isCorrect": "false" - } - ] - }, - { - "questionText": "Which ML technique is exemplified in forest management?", - "answerOptions": [ - { - "answerText": "Reinforcement Learning", - "isCorrect": "true" - }, - { - "answerText": "Time Series", - "isCorrect": "false" - }, - { - "answerText": "NLP", - "isCorrect": "false" - } - ] - }, - { - "questionText": "What's an example of an ML application in the Health Care industry?", - "answerOptions": [ - { - "answerText": "Predicting student behavior using regression", - "isCorrect": "false" - }, - { - "answerText": "Managing clinical trials using classifiers", - "isCorrect": "true" - }, - { - "answerText": "Motion sensing of animals using classifiers", - "isCorrect": "false" - } - ] - } - ] - } - ] - } + { + "title": "Machine Learning for Beginners: Quizzes", + "complete": "Congratulations, you completed the quiz!", + "error": "Sorry, try again", + "quizzes": [ + { + "id": 1, + "title": "Introduction to Machine Learning: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Applications of machine learning are all around us", + "answerOptions": [ + { + "answerText": "True", + "isCorrect": "true" + }, + { + "answerText": "False", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What is the technical difference between classical ML and deep learning?", + "answerOptions": [ + { + "answerText": "classical ML was invented first", + "isCorrect": "false" + }, + { + "answerText": "the use of neural networks", + "isCorrect": "true" + }, + { + "answerText": "deep learning is used in robots", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Why might a business want to use ML strategies?", + "answerOptions": [ + { + "answerText": "to automate the solving of multi-dimensional problems", + "isCorrect": "false" + }, + { + "answerText": "to customize a shopping experience based on the type of customer", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 2, + "title": "Introduction to Machine Learning: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Machine learning algorithms are meant to simulate", + "answerOptions": [ + { + "answerText": "intelligent machines", + "isCorrect": "false" + }, + { + "answerText": "the human brain", + "isCorrect": "true" + }, + { + "answerText": "orangutans", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What is an example of a classical ML technique?", + "answerOptions": [ + { + "answerText": "natural language processing", + "isCorrect": "true" + }, + { + "answerText": "deep learning", + "isCorrect": "false" + }, + { + "answerText": "Neural Networks", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Why should everyone learn the basics of ML?", + "answerOptions": [ + { + "answerText": "learning ML is fun and accessible to everyone", + "isCorrect": "false" + }, + { + "answerText": "ML strategies are being used in many industries and domains", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 3, + "title": "History of Machine Learning: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Approximately when was the term 'artificial intelligence' coined?", + "answerOptions": [ + { + "answerText": "1980s", + "isCorrect": "false" + }, + { + "answerText": "1950s", + "isCorrect": "true" + }, + { + "answerText": "1930s", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Who was one of the early pioneers of machine learning?", + "answerOptions": [ + { + "answerText": "Alan Turing", + "isCorrect": "true" + }, + { + "answerText": "Bill Gates", + "isCorrect": "false" + }, + { + "answerText": "Shakey the robot", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What is one of the reasons that advancement in AI slowed in the 1970s?", + "answerOptions": [ + { + "answerText": "Limited compute power", + "isCorrect": "true" + }, + { + "answerText": "Not enough skilled engineers", + "isCorrect": "false" + }, + { + "answerText": "Conflicts between countries", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 4, + "title": "History of Machine Learning: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "What's an example of a 'scruffy' AI system?", + "answerOptions": [ + { + "answerText": "ELIZA", + "isCorrect": "true" + }, + { + "answerText": "HACKML", + "isCorrect": "false" + }, + { + "answerText": "SSYSTEM", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What is an example of a technology that was developed during 'The Golden Years'?", + "answerOptions": [ + { + "answerText": "Blocks world", + "isCorrect": "true" + }, + { + "answerText": "Jibo", + "isCorrect": "false" + }, + { + "answerText": "Robot dogs", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Which event was foundational in the creation and expansion of the field of artificial intelligence?", + "answerOptions": [ + { + "answerText": "Turing Test", + "isCorrect": "false" + }, + { + "answerText": "Dartmouth Summer Research Project", + "isCorrect": "true" + }, + { + "answerText": "AI Winter", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 5, + "title": "Fairness and Machine Learning: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Unfairness in Machine Learning can happen", + "answerOptions": [ + { + "answerText": "intentionally", + "isCorrect": "false" + }, + { + "answerText": "unintentionally", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "The term 'unfairness' in ML connotes:", + "answerOptions": [ + { + "answerText": "harms for a group of people", + "isCorrect": "true" + }, + { + "answerText": "harm to one person", + "isCorrect": "false" + }, + { + "answerText": "harms for the majority of people", + "isCorrect": "false" + } + ] + }, + { + "questionText": "The five main types of harms include", + "answerOptions": [ + { + "answerText": "allocation, quality of service, stereotyping, denigration, and over- or under- representation", + "isCorrect": "true" + }, + { + "answerText": "elocation, quality of service, stereotyping, denigration, and over- or under- representation ", + "isCorrect": "false" + }, + { + "answerText": "allocation, quality of service, stereophonics, denigration, and over- or under- representation ", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 6, + "title": "Fairness and Machine Learning: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Unfairness in a model can be caused by", + "answerOptions": [ + { + "answerText": "overrreliance on historical data", + "isCorrect": "true" + }, + { + "answerText": "underreliance on historical data", + "isCorrect": "false" + }, + { + "answerText": "too closely aligning to historical data", + "isCorrect": "false" + } + ] + }, + { + "questionText": "To mitigate unfairness, you can", + "answerOptions": [ + { + "answerText": "identify harms and affected groups", + "isCorrect": "false" + }, + { + "answerText": "define fairness metrics", + "isCorrect": "false" + }, + { + "answerText": "both the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Fairlearn is a package that can", + "answerOptions": [ + { + "answerText": "compare multiple models by using fairness and performance metrics", + "isCorrect": "true" + }, + { + "answerText": "choose the best model for your needs", + "isCorrect": "false" + }, + { + "answerText": "help you decide what is fair and what is not", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 7, + "title": "Tools and Techniques: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "When building a model, you should:", + "answerOptions": [ + { + "answerText": "prepare your data, then train your model", + "isCorrect": "true" + }, + { + "answerText": "choose a training method, then prepare your data", + "isCorrect": "false" + }, + { + "answerText": "tune parameters, then train your model", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Your data's ___ will impact the quality of your ML model", + "answerOptions": [ + { + "answerText": "quantity", + "isCorrect": "false" + }, + { + "answerText": "shape", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "A feature variable is:", + "answerOptions": [ + { + "answerText": "a quality of your data", + "isCorrect": "false" + }, + { + "answerText": "a measurable property of your data", + "isCorrect": "true" + }, + { + "answerText": "a row of your data", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 8, + "title": "Tools and Techniques: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "You should visualize your data because", + "answerOptions": [ + { + "answerText": "you can discover outliers", + "isCorrect": "false" + }, + { + "answerText": "you can discover potential cause for bias", + "isCorrect": "true" + }, + { + "answerText": "both of these", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Split your data into:", + "answerOptions": [ + { + "answerText": "training and turing sets", + "isCorrect": "false" + }, + { + "answerText": "training and test sets", + "isCorrect": "true" + }, + { + "answerText": "validation and evaluation sets", + "isCorrect": "false" + } + ] + }, + { + "questionText": "A common command to start the training process in various ML libraries is:", + "answerOptions": [ + { + "answerText": "model.travel", + "isCorrect": "false" + }, + { + "answerText": "model.train", + "isCorrect": "false" + }, + { + "answerText": "model.fit", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 9, + "title": "Introduction to Regression: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Which of these variables is a numeric variable?", + "answerOptions": [ + { + "answerText": "Height", + "isCorrect": "true" + }, + { + "answerText": "Gender", + "isCorrect": "false" + }, + { + "answerText": "Hair Color", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Which of these variables is a categorical variable?", + "answerOptions": [ + { + "answerText": "Heart Rate", + "isCorrect": "false" + }, + { + "answerText": "Blood Type", + "isCorrect": "true" + }, + { + "answerText": "Weight", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Which of these problems is a Regression analysis-based problem?", + "answerOptions": [ + { + "answerText": "Predicting the final exam marks of a student", + "isCorrect": "true" + }, + { + "answerText": "Predicting the blood type of a person", + "isCorrect": "false" + }, + { + "answerText": "Predicting whether an email is spam or not", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 10, + "title": "Introduction to Regression: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "If your Machine Learning model's training accuracy is 95 % and the testing accuracy is 30 %, then what type of condition it is called?", + "answerOptions": [ + { + "answerText": "Overfitting", + "isCorrect": "true" + }, + { + "answerText": "Underfitting", + "isCorrect": "false" + }, + { + "answerText": "Double Fitting", + "isCorrect": "false" + } + ] + }, + { + "questionText": "The process of identifying significant features from a set of features is called:", + "answerOptions": [ + { + "answerText": "Feature Extraction", + "isCorrect": "false" + }, + { + "answerText": "Feature Dimensionality Reduction", + "isCorrect": "false" + }, + { + "answerText": "Feature Selection", + "isCorrect": "true" + } + ] + }, + { + "questionText": "The process of splitting a dataset into a certain ratio of training and testing dataset using Scikit Learn's 'train_test_split()' method/function is called:", + "answerOptions": [ + { + "answerText": "Cross-Validation", + "isCorrect": "false" + }, + { + "answerText": "Hold-Out Validation", + "isCorrect": "true" + }, + { + "answerText": "Leave one out Validation", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 11, + "title": "Prepare and Visualize Data for Regression: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Which of these Python modules is used to plot the visualization of data?", + "answerOptions": [ + { + "answerText": "Numpy", + "isCorrect": "false" + }, + { + "answerText": "Scikit-learn", + "isCorrect": "false" + }, + { + "answerText": "Matplotlib", + "isCorrect": "true" + } + ] + }, + { + "questionText": "If you want to understand the spread or the other characteristics of data points of your dataset, then perform:", + "answerOptions": [ + { + "answerText": "Data Visualization", + "isCorrect": "true" + }, + { + "answerText": "Data Preprocessing", + "isCorrect": "false" + }, + { + "answerText": "Train Test Split", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Which of these is a part of the Data Visualization step in a Machine Learning project?", + "answerOptions": [ + { + "answerText": "Incorporating a certain Machine Learning algorithm", + "isCorrect": "false" + }, + { + "answerText": "Creating a pictorial representation of data using different plotting methods", + "isCorrect": "true" + }, + { + "answerText": "Normalizing the values of a dataset", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 12, + "title": "Prepare and Visualize Data for Regression: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Which of these code snippets is correct based on this lesson, if you want to check for the presence of missing values in your dataset? Suppose the dataset is stored in a variable named 'dataset' which is a Pandas DataFrame object.", + "answerOptions": [ + { + "answerText": "dataset.isnull().sum()", + "isCorrect": "true" + }, + { + "answerText": "findMissing(dataset)", + "isCorrect": "false" + }, + { + "answerText": "sum(null(dataset))", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Which of these plotting methods is useful when you would like to understand the spread of different groups of datapoints from your dataset?", + "answerOptions": [ + { + "answerText": "Scatter Plot", + "isCorrect": "false" + }, + { + "answerText": "Line Plot", + "isCorrect": "false" + }, + { + "answerText": "Bar Plot", + "isCorrect": "true" + } + ] + }, + { + "questionText": "What can Data Visualization NOT tell you?", + "answerOptions": [ + { + "answerText": "Relationships among datapoints", + "isCorrect": "false" + }, + { + "answerText": "The source from where the dataset is collected", + "isCorrect": "true" + }, + { + "answerText": "Finding the presence of outliers in the dataset", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 13, + "title": "Linear and Polynomial Regression: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Matplotlib is a ", + "answerOptions": [ + { + "answerText": "drawing library", + "isCorrect": "false" + }, + { + "answerText": "data visualization library", + "isCorrect": "true" + }, + { + "answerText": "lending library", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Linear Regression uses the following to plot relationships between variables", + "answerOptions": [ + { + "answerText": "a straight line", + "isCorrect": "true" + }, + { + "answerText": "a circle", + "isCorrect": "false" + }, + { + "answerText": "a curve", + "isCorrect": "false" + } + ] + }, + { + "questionText": "A good Linear Regression model has a ___ Correlation Coefficient", + "answerOptions": [ + { + "answerText": "low", + "isCorrect": "false" + }, + { + "answerText": "high", + "isCorrect": "true" + }, + { + "answerText": "flat", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 14, + "title": "Linear and Polynomial Regression: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "If your data is nonlinear, try a ___ type of Regression", + "answerOptions": [ + { + "answerText": "linear", + "isCorrect": "false" + }, + { + "answerText": "spherical", + "isCorrect": "false" + }, + { + "answerText": "polynomial", + "isCorrect": "true" + } + ] + }, + { + "questionText": "These are all types of Regression methods", + "answerOptions": [ + { + "answerText": "Falsestep, Ridge, Lasso and Elasticnet", + "isCorrect": "false" + }, + { + "answerText": "Stepwise, Ridge, Lasso and Elasticnet", + "isCorrect": "true" + }, + { + "answerText": "Stepwise, Ridge, Lariat and Elasticnet", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Least-Squares Regression means that all the datapoints surrounding the regression line are:", + "answerOptions": [ + { + "answerText": "squared and then subtracted", + "isCorrect": "false" + }, + { + "answerText": "multiplied", + "isCorrect": "false" + }, + { + "answerText": "squared and then added up", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 15, + "title": "Logistic Regression: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Use Logistic Regression to predict", + "answerOptions": [ + { + "answerText": "whether an apple is ripe or not", + "isCorrect": "true" + }, + { + "answerText": "how many tickets can be sold in a month", + "isCorrect": "false" + }, + { + "answerText": "what color the sky will turn tomorrow at 6 PM", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Types of Logistic Regression include", + "answerOptions": [ + { + "answerText": "multinomial and cardinal", + "isCorrect": "false" + }, + { + "answerText": "multinomial and ordinal", + "isCorrect": "true" + }, + { + "answerText": "principal and ordinal", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Your data has weak correlations. The best type of Regression to use is:", + "answerOptions": [ + { + "answerText": "Logistic", + "isCorrect": "true" + }, + { + "answerText": "Linear", + "isCorrect": "false" + }, + { + "answerText": "Cardinal", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 16, + "title": "Logistic Regression: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Seaborn is a type of", + "answerOptions": [ + { + "answerText": "data visualization library", + "isCorrect": "true" + }, + { + "answerText": "mapping library", + "isCorrect": "false" + }, + { + "answerText": "mathematical library", + "isCorrect": "false" + } + ] + }, + { + "questionText": "A confusion matrix is also known as a:", + "answerOptions": [ + { + "answerText": "error matrix", + "isCorrect": "true" + }, + { + "answerText": "truth matrix", + "isCorrect": "false" + }, + { + "answerText": "accuracy matrix", + "isCorrect": "false" + } + ] + }, + { + "questionText": "A good model will have:", + "answerOptions": [ + { + "answerText": "a large number of false positives and true negatives in its confusion matrix", + "isCorrect": "false" + }, + { + "answerText": "a large number of true positives and true negatives in its confusion matrix", + "isCorrect": "true" + }, + { + "answerText": "a large number of true positives and false negatives in its confusion matrix", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 17, + "title": "Build a Web App: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "What does ONNX stand for?", + "answerOptions": [ + { + "answerText": "Over Neural Network Exchange", + "isCorrect": "false" + }, + { + "answerText": "Open Neural Network Exchange", + "isCorrect": "true" + }, + { + "answerText": "Output Neural Network Exchange", + "isCorrect": "false" + } + ] + }, + { + "questionText": "How is Flask defined by its creators?", + "answerOptions": [ + { + "answerText": "mini-framework", + "isCorrect": "false" + }, + { + "answerText": "large-framework", + "isCorrect": "false" + }, + { + "answerText": "micro-framework", + "isCorrect": "true" + } + ] + }, + { + "questionText": "What does the Pickle module of Python do", + "answerOptions": [ + { + "answerText": "Serializes a Python Object", + "isCorrect": "false" + }, + { + "answerText": "De-serializes a Python Object", + "isCorrect": "false" + }, + { + "answerText": "Serializes and De-serializes a Python Object", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 18, + "title": "Build a Web App: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "What are the tools we can use to host a pre-trained model on the web using Python?", + "answerOptions": [ + { + "answerText": "Flask", + "isCorrect": "true" + }, + { + "answerText": "TensorFlow.js", + "isCorrect": "false" + }, + { + "answerText": "onnx.js", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What does SaaS stand for?", + "answerOptions": [ + { + "answerText": "System as a Service", + "isCorrect": "false" + }, + { + "answerText": "Software as a Service", + "isCorrect": "true" + }, + { + "answerText": "Security as a Service", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What does Scikit-learn's LabelEncoder library do?", + "answerOptions": [ + { + "answerText": "Encodes data alphabetically", + "isCorrect": "true" + }, + { + "answerText": "Encodes data numerically", + "isCorrect": "false" + }, + { + "answerText": "Encodes data serially", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 19, + "title": "Classification 1: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Classification is a form of supervised learning that has a lot in common with", + "answerOptions": [ + { + "answerText": "Time Series", + "isCorrect": "false" + }, + { + "answerText": "Regression techniques", + "isCorrect": "true" + }, + { + "answerText": "NLP", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What question can classification help answer?", + "answerOptions": [ + { + "answerText": "Is this email spam or not?", + "isCorrect": "true" + }, + { + "answerText": "Can pigs fly?", + "isCorrect": "false" + }, + { + "answerText": "What is the meaning of life?", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What is the first step to using Classification techniques?", + "answerOptions": [ + { + "answerText": "creating classes of a dataset", + "isCorrect": "false" + }, + { + "answerText": "cleaning and balancing your data", + "isCorrect": "true" + }, + { + "answerText": "assigning a data point to a group or outcome", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 20, + "title": "Classification 1: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "What is a multiclass question?", + "answerOptions": [ + { + "answerText": "the task of classifying data points into multiple classes", + "isCorrect": "true" + }, + { + "answerText": "the task of classifying data points into one of several classes", + "isCorrect": "true" + }, + { + "answerText": "the task of cleaning data points in multiple ways", + "isCorrect": "false" + } + ] + }, + { + "questionText": "It's important to clean out recurrent or unhelpful data to help your classifiers solve your problem.", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "true" + }, + { + "answerText": "false", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What's the best reason to balance your data?", + "answerOptions": [ + { + "answerText": "Imbalanced data looks bad in visualizations", + "isCorrect": "false" + }, + { + "answerText": "Balancing your data yields better results because an ML model won't skew towards one class", + "isCorrect": "true" + }, + { + "answerText": "Balancing your data gives you more data points", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 21, + "title": "Classification 2: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Balanced, clean data yields the best classification results", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "true" + }, + { + "answerText": "false", + "isCorrect": "false" + } + ] + }, + { + "questionText": "How do you choose the right classifier?", + "answerOptions": [ + { + "answerText": "Understand which classifiers work best for which scenarios", + "isCorrect": "false" + }, + { + "answerText": "Educated guess and check", + "isCorrect": "false" + }, + { + "answerText": "Both of the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Classification is a type of", + "answerOptions": [ + { + "answerText": "NLP", + "isCorrect": "false" + }, + { + "answerText": "Supervised Learning", + "isCorrect": "true" + }, + { + "answerText": "Programming language", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 22, + "title": "Classification 2: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "What is a 'solver'?", + "answerOptions": [ + { + "answerText": "the person who double-checks your work", + "isCorrect": "false" + }, + { + "answerText": "the algorithm to use in the optimization problem", + "isCorrect": "true" + }, + { + "answerText": "a machine learning technique", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Which classifier did we use in this lesson?", + "answerOptions": [ + { + "answerText": "Logistic Regression", + "isCorrect": "true" + }, + { + "answerText": "Decision Trees", + "isCorrect": "false" + }, + { + "answerText": "One-vs-All Multiclass", + "isCorrect": "false" + } + ] + }, + { + "questionText": "How do you know if the classification algorithm is working as expected?", + "answerOptions": [ + { + "answerText": "By checking the accuracy of its predictions", + "isCorrect": "true" + }, + { + "answerText": "By checking it against other algorithms", + "isCorrect": "false" + }, + { + "answerText": "By looking at historical data for how good this algorithm is at solving similar problems", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 23, + "title": "Classification 3: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "A good initial classifier to try is:", + "answerOptions": [ + { + "answerText": "Linear SVC", + "isCorrect": "true" + }, + { + "answerText": "K-Means", + "isCorrect": "false" + }, + { + "answerText": "Logical SVC", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Regularization controls:", + "answerOptions": [ + { + "answerText": "the influence of parameters", + "isCorrect": "true" + }, + { + "answerText": "the influence of training speed", + "isCorrect": "false" + }, + { + "answerText": "the influence of outliers", + "isCorrect": "false" + } + ] + }, + { + "questionText": "K-Neighbors classifier can be used for:", + "answerOptions": [ + { + "answerText": "supervised learning", + "isCorrect": "false" + }, + { + "answerText": "unsupervised learning", + "isCorrect": "false" + }, + { + "answerText": "both of these", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 24, + "title": "Classification 3: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Support-Vector classifiers can be used for", + "answerOptions": [ + { + "answerText": "classification", + "isCorrect": "false" + }, + { + "answerText": "regression", + "isCorrect": "false" + }, + { + "answerText": "both of these", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Random Forest is a ___ type of classifier", + "answerOptions": [ + { + "answerText": "Ensemble", + "isCorrect": "true" + }, + { + "answerText": "Dissemble", + "isCorrect": "false" + }, + { + "answerText": "Assemble", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Adaboost is known for:", + "answerOptions": [ + { + "answerText": "focusing on the weights of incorrectly classified items", + "isCorrect": "true" + }, + { + "answerText": "focusing on outliers", + "isCorrect": "false" + }, + { + "answerText": "focusing on incorrect data", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 25, + "title": "Classification 4: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Recommendation systems might be used for", + "answerOptions": [ + { + "answerText": "Recommending a good restaurant", + "isCorrect": "false" + }, + { + "answerText": "Recommending fashions to try", + "isCorrect": "false" + }, + { + "answerText": "Both of these", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Embedding a model in a web app helps it to be offline-capable", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "true" + }, + { + "answerText": "false", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Onnx Runtime can be used for", + "answerOptions": [ + { + "answerText": "Running models in a web app", + "isCorrect": "true" + }, + { + "answerText": "Training models", + "isCorrect": "false" + }, + { + "answerText": "Hyperparameter tuning", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 26, + "title": "Classification 4: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Netron app helps you:", + "answerOptions": [ + { + "answerText": "Visualize data", + "isCorrect": "false" + }, + { + "answerText": "Visualize your model's structure", + "isCorrect": "true" + }, + { + "answerText": "Test your web app", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Convert your Scikit-learn model for use with Onnx using:", + "answerOptions": [ + { + "answerText": "sklearn-app", + "isCorrect": "false" + }, + { + "answerText": "sklearn-web", + "isCorrect": "false" + }, + { + "answerText": "sklearn-onnx", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Using your model in a web app is called:", + "answerOptions": [ + { + "answerText": "inference", + "isCorrect": "true" + }, + { + "answerText": "interference", + "isCorrect": "false" + }, + { + "answerText": "insurance", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 27, + "title": "Introduction to Clustering: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "A real-life example of clustering would be", + "answerOptions": [ + { + "answerText": "Setting the dinner table", + "isCorrect": "false" + }, + { + "answerText": "Sorting the laundry", + "isCorrect": "true" + }, + { + "answerText": "Grocery shopping", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Clustering techniques can be used in these industries", + "answerOptions": [ + { + "answerText": "banking", + "isCorrect": "false" + }, + { + "answerText": "e-commerce", + "isCorrect": "false" + }, + { + "answerText": "both of these", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Clustering is a type of:", + "answerOptions": [ + { + "answerText": "supervised learning", + "isCorrect": "false" + }, + { + "answerText": "unsupervised learning", + "isCorrect": "true" + }, + { + "answerText": "reinforcement learning", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 28, + "title": "Introduction to Clustering: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Euclidean geometry is arranged along", + "answerOptions": [ + { + "answerText": "planes", + "isCorrect": "true" + }, + { + "answerText": "curves", + "isCorrect": "false" + }, + { + "answerText": "spheres", + "isCorrect": "false" + } + ] + }, + { + "questionText": "The density of your clustering data is related to its", + "answerOptions": [ + { + "answerText": "noise", + "isCorrect": "true" + }, + { + "answerText": "depth", + "isCorrect": "false" + }, + { + "answerText": "validity", + "isCorrect": "false" + } + ] + }, + { + "questionText": "The best-known clustering algorithm is", + "answerOptions": [ + { + "answerText": "k-means", + "isCorrect": "true" + }, + { + "answerText": "k-middle", + "isCorrect": "false" + }, + { + "answerText": "k-mart", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 29, + "title": "K-Means Clustering: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "K-Means is derived from:", + "answerOptions": [ + { + "answerText": "electrical engineering", + "isCorrect": "false" + }, + { + "answerText": "signal processing", + "isCorrect": "true" + }, + { + "answerText": "computational linguistics", + "isCorrect": "false" + } + ] + }, + { + "questionText": "A good Silhouette score means:", + "answerOptions": [ + { + "answerText": "clusters are well-separated and well-defined", + "isCorrect": "true" + }, + { + "answerText": "there are few clusters", + "isCorrect": "false" + }, + { + "answerText": "there are many clusters", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Variance is:", + "answerOptions": [ + { + "answerText": "the average of the squared differences from the mean", + "isCorrect": "false" + }, + { + "answerText": "a problem for clustering if it becomes too high", + "isCorrect": "false" + }, + { + "answerText": "both of these", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 30, + "title": "K-Means Clustering: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "A Voronoi diagram shows:", + "answerOptions": [ + { + "answerText": "a cluster's variance", + "isCorrect": "false" + }, + { + "answerText": "a cluster's seed and its region", + "isCorrect": "true" + }, + { + "answerText": "a cluster's inertia", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Inertia is", + "answerOptions": [ + { + "answerText": "a measure of how internally coherent clusters are", + "isCorrect": "true" + }, + { + "answerText": "a measure of how much clusters move", + "isCorrect": "false" + }, + { + "answerText": "a measure of cluster quality", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Using K-Means, you must first determine the value of 'k'", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "true" + }, + { + "answerText": "false", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 31, + "title": "Intro to NLP: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "What does NLP stand for in these lessons?", + "answerOptions": [ + { + "answerText": "Neural Language Processing", + "isCorrect": "false" + }, + { + "answerText": "natural language processing", + "isCorrect": "true" + }, + { + "answerText": "Natural Linguistic Processing", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Eliza was an early bot that acted as a computer", + "answerOptions": [ + { + "answerText": "therapist", + "isCorrect": "true" + }, + { + "answerText": "doctor", + "isCorrect": "false" + }, + { + "answerText": "nurse", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Alan Turing's 'Turing Test' tried to determine if a computer was", + "answerOptions": [ + { + "answerText": "indistinguishable from a human", + "isCorrect": "false" + }, + { + "answerText": "thinking", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 32, + "title": "Intro to NLP: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Joseph Weizenbaum invented the bot", + "answerOptions": [ + { + "answerText": "Elisha", + "isCorrect": "false" + }, + { + "answerText": "Eliza", + "isCorrect": "true" + }, + { + "answerText": "Eloise", + "isCorrect": "false" + } + ] + }, + { + "questionText": "A conversational bot gives output based on", + "answerOptions": [ + { + "answerText": "Randomly choosing predefined choices", + "isCorrect": "false" + }, + { + "answerText": "Analyzing the input and using machine intelligence", + "isCorrect": "false" + }, + { + "answerText": "Both of these", + "isCorrect": "true" + } + ] + }, + { + "questionText": "How would you make the bot more effective?", + "answerOptions": [ + { + "answerText": "By asking it more questions.", + "isCorrect": "false" + }, + { + "answerText": "By feeding it more data and training it accordingly", + "isCorrect": "true" + }, + { + "answerText": "The bot is dumb, it cannot learn :(", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 33, + "title": "NLP Tasks: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Tokenization", + "answerOptions": [ + { + "answerText": "Splits text by means of punctuation", + "isCorrect": "false" + }, + { + "answerText": "Splits text into separate tokens (words)", + "isCorrect": "true" + }, + { + "answerText": "Splits text into phrases", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Embeddings", + "answerOptions": [ + { + "answerText": "converts text data numerically so words can cluster", + "isCorrect": "true" + }, + { + "answerText": "embeds words into phrases", + "isCorrect": "false" + }, + { + "answerText": "embeds sentences into paragraphs", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Parts-of-Speech Tagging", + "answerOptions": [ + { + "answerText": "divides sentences by their parts of speech", + "isCorrect": "false" + }, + { + "answerText": "takes tokenized words and tags them by their part of speech", + "isCorrect": "true" + }, + { + "answerText": "diagrams sentences", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 34, + "title": "NLP Tasks: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Build a dictionary of how often words reoccur using:", + "answerOptions": [ + { + "answerText": "Word and Phrase Dictionary", + "isCorrect": "false" + }, + { + "answerText": "Word and Phrase Frequencies", + "isCorrect": "true" + }, + { + "answerText": "Word and Phrase Library", + "isCorrect": "false" + } + ] + }, + { + "questionText": "N-grams refer to", + "answerOptions": [ + { + "answerText": "A text can be split into sequences of words of a set length", + "isCorrect": "true" + }, + { + "answerText": "A word can be split into sequences of characters of a set length", + "isCorrect": "false" + }, + { + "answerText": "A text can be split into paragraphs of a set length", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Sentiment analysis", + "answerOptions": [ + { + "answerText": "analyzes a phrase for positivity or negativity", + "isCorrect": "true" + }, + { + "answerText": "analyzes a phrase for sentimentality", + "isCorrect": "false" + }, + { + "answerText": "analyzes a phrase for sadness", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 35, + "title": "NLP and Translation: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Naive translation", + "answerOptions": [ + { + "answerText": "translates words only", + "isCorrect": "true" + }, + { + "answerText": "translates sentence structure", + "isCorrect": "false" + }, + { + "answerText": "translates sentiment", + "isCorrect": "false" + } + ] + }, + { + "questionText": "A *corpus* of texts refers to", + "answerOptions": [ + { + "answerText": "A small number of texts", + "isCorrect": "false" + }, + { + "answerText": "A large number of texts", + "isCorrect": "true" + }, + { + "answerText": "One standard text", + "isCorrect": "false" + } + ] + }, + { + "questionText": "If a ML model has enough human translations to build a model on, it can", + "answerOptions": [ + { + "answerText": "abbreviate translations", + "isCorrect": "false" + }, + { + "answerText": "standardize translations", + "isCorrect": "false" + }, + { + "answerText": "improve the accuracy of translations", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 36, + "title": "NLP and Translation: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Underlying TextBlob's translation library is:", + "answerOptions": [ + { + "answerText": "Google Translate", + "isCorrect": "true" + }, + { + "answerText": "Bing", + "isCorrect": "false" + }, + { + "answerText": "A custom ML model", + "isCorrect": "false" + } + ] + }, + { + "questionText": "To use `blob.translate` you need:", + "answerOptions": [ + { + "answerText": "an internet connection", + "isCorrect": "true" + }, + { + "answerText": "a dictionary", + "isCorrect": "false" + }, + { + "answerText": "JavaScript", + "isCorrect": "false" + } + ] + }, + { + "questionText": "To determine sentiment, an ML approach would be to:", + "answerOptions": [ + { + "answerText": "apply Regression techniques to manually generated opinions and scores and look for patterns", + "isCorrect": "false" + }, + { + "answerText": "apply NLP techniques to manually generated opinions and scores and look for patterns", + "isCorrect": "true" + }, + { + "answerText": "apply Clustering techniques to manually generated opinions and scores and look for patterns", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 37, + "title": "NLP 4: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "What information can we get from text that was written or spoken by a human?", + "answerOptions": [ + { + "answerText": "patterns and frequencies", + "isCorrect": "false" + }, + { + "answerText": "sentiment and meaning", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "What is sentiment analysis?", + "answerOptions": [ + { + "answerText": "a study of whether a family heirloom has sentimental value", + "isCorrect": "false" + }, + { + "answerText": "a method of systematically identifying, extracting, quantifying, and studying affective states and subjective information", + "isCorrect": "true" + }, + { + "answerText": "the ability to tell whether someone is sad or happy", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What question could be answered using a dataset of hotel reviews, Python, and sentiment analysis?", + "answerOptions": [ + { + "answerText": "What are the most frequently used words and phrases in reviews?", + "isCorrect": "true" + }, + { + "answerText": "Which resort has the best pool?", + "isCorrect": "false" + }, + { + "answerText": "Is there valet parking at this hotel?", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 38, + "title": "NLP 4: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "What is the essence of NLP?", + "answerOptions": [ + { + "answerText": "categorizing human language into happy or sad", + "isCorrect": "false" + }, + { + "answerText": "interpreting meaning or sentiment without having to have a human do it", + "isCorrect": "true" + }, + { + "answerText": "finding outliers in sentiment and examining them", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What are some things you might look for while cleaning data?", + "answerOptions": [ + { + "answerText": "characters in other languages", + "isCorrect": "false" + }, + { + "answerText": "blank rows or columns", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "It is important to understand your data and its foibles before performing operations on it.", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "true" + }, + { + "answerText": "false", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 39, + "title": "NLP 5: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Why is it important to clean data before analyzing it?", + "answerOptions": [ + { + "answerText": "Some columns might have missing or incorrect data", + "isCorrect": "false" + }, + { + "answerText": "Messy data can lead to false conclusions about the dataset", + "isCorrect": "false" + }, + { + "answerText": "Both of the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "What is one example of a strategy for cleaning data?", + "answerOptions": [ + { + "answerText": "removing columns/rows that aren't useful for answering a specific question", + "isCorrect": "true" + }, + { + "answerText": "getting rid of verified values that don't fit your hypothesis", + "isCorrect": "false" + }, + { + "answerText": "moving the outliers to a separate table and running the calculations for that table to see if they match", + "isCorrect": "false" + } + ] + }, + { + "questionText": "It can be useful to categorize data using a Tag column.", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "true" + }, + { + "answerText": "false", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 40, + "title": "NLP 5: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "What is the goal of the dataset?", + "answerOptions": [ + { + "answerText": "to see how many negative and positive reviews there are for hotels across the world", + "isCorrect": "false" + }, + { + "answerText": "to add sentiment and columns that will help you choose the best hotel", + "isCorrect": "true" + }, + { + "answerText": "to analyze why people leave specific reviews", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What are stop words?", + "answerOptions": [ + { + "answerText": "common English words that do not change the sentiment of a sentence", + "isCorrect": "false" + }, + { + "answerText": "words that you can remove to speed up sentiment analysis", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "To test the sentiment analysis, make sure it matches the reviewer's score for the same review.", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "true" + }, + { + "answerText": "false", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 41, + "title": "Intro to Time Series: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Time Series Forecasting is useful in", + "answerOptions": [ + { + "answerText": "determining future costs", + "isCorrect": "false" + }, + { + "answerText": "predicting future pricing", + "isCorrect": "false" + }, + { + "answerText": "both the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "A time series is a sequence taken at:", + "answerOptions": [ + { + "answerText": "successive equally spaced points in space", + "isCorrect": "false" + }, + { + "answerText": "successive equally spaced points in time", + "isCorrect": "true" + }, + { + "answerText": "successive equally spaced points in space and time", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Time series can be used in:", + "answerOptions": [ + { + "answerText": "earthquake prediction", + "isCorrect": "true" + }, + { + "answerText": "computer vision", + "isCorrect": "false" + }, + { + "answerText": "color analysis", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 42, + "title": "Intro to Time Series: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Time series trends are", + "answerOptions": [ + { + "answerText": "Measurable increases and decreases over time", + "isCorrect": "true" + }, + { + "answerText": "Quantifying decreases over time", + "isCorrect": "false" + }, + { + "answerText": "Gaps between increases and decreases over time", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Outliers are", + "answerOptions": [ + { + "answerText": "points close to standard data variance", + "isCorrect": "false" + }, + { + "answerText": "points far away from standard data variance", + "isCorrect": "true" + }, + { + "answerText": "points within standard data variance", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Time Series Forecasting is most useful for", + "answerOptions": [ + { + "answerText": "Econometrics", + "isCorrect": "true" + }, + { + "answerText": "History", + "isCorrect": "false" + }, + { + "answerText": "Libraries", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 43, + "title": "Time Series ARIMA: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "ARIMA stands for", + "answerOptions": [ + { + "answerText": "AutoRegressive Integral Moving Average", + "isCorrect": "false" + }, + { + "answerText": "AutoRegressive Integrated Moving Action", + "isCorrect": "false" + }, + { + "answerText": "AutoRegressive Integrated Moving Average", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Stationarity refers to", + "answerOptions": [ + { + "answerText": "data whose attributes does not change when shifted in time", + "isCorrect": "false" + }, + { + "answerText": "data whose distribution does not change when shifted in time", + "isCorrect": "true" + }, + { + "answerText": "data whose distribution changes when shifted in time", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Differencing", + "answerOptions": [ + { + "answerText": "stabilizes trend and seasonality", + "isCorrect": "false" + }, + { + "answerText": "exacerbates trend and seasonality", + "isCorrect": "false" + }, + { + "answerText": "eliminates trend and seasonality", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 44, + "title": "Time Series ARIMA: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "ARIMA is used to make a model fit the special form of time series data", + "answerOptions": [ + { + "answerText": "as flat as possible", + "isCorrect": "false" + }, + { + "answerText": "as closely as possible", + "isCorrect": "true" + }, + { + "answerText": "via scatterplots", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Use SARIMAX to", + "answerOptions": [ + { + "answerText": "manage seasonal ARIMA models", + "isCorrect": "true" + }, + { + "answerText": "manage special ARIMA models", + "isCorrect": "false" + }, + { + "answerText": "manage statistical ARIMA models", + "isCorrect": "false" + } + ] + }, + { + "questionText": "'Walk-Forward' validation involves", + "answerOptions": [ + { + "answerText": "re-evaluating a model progressively as it is validated", + "isCorrect": "false" + }, + { + "answerText": "re-training a model progressively as it is validated", + "isCorrect": "true" + }, + { + "answerText": "re-configuring a model progressively as it is validated", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 45, + "title": "Reinforcement 1: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "What is reinforcement learning?", + "answerOptions": [ + { + "answerText": "teaching someone something over and over again until they understand", + "isCorrect": "false" + }, + { + "answerText": "a learning technique that deciphers the optimal behavior of an agent in some environment by running many experiments", + "isCorrect": "true" + }, + { + "answerText": "understanding how to run multiple experiments at once", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What is a policy?", + "answerOptions": [ + { + "answerText": "a function that returns the action at any given state", + "isCorrect": "true" + }, + { + "answerText": "a document that tells you whether or not you can return an item", + "isCorrect": "false" + }, + { + "answerText": "a function that is used for a random purpose", + "isCorrect": "false" + } + ] + }, + { + "questionText": "A reward function returns a score for each state of an environment.", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "true" + }, + { + "answerText": "false", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 46, + "title": "Reinforcement 1: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "What is Q-Learning?", + "answerOptions": [ + { + "answerText": "a mechanism for recording the 'goodness' of each state", + "isCorrect": "false" + }, + { + "answerText": "an algorithm where the policy is defined by a Q-Table", + "isCorrect": "false" + }, + { + "answerText": "both of the above", + "isCorrect": "true" + } + ] + }, + { + "questionText": "For what values does a Q-Table correspond to the random walk policy?", + "answerOptions": [ + { + "answerText": "all equal values", + "isCorrect": "true" + }, + { + "answerText": "-0.25", + "isCorrect": "false" + }, + { + "answerText": "all different values", + "isCorrect": "false" + } + ] + }, + { + "questionText": "It was better to use exploration than exploitation during the learning process in our lesson.", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "false" + }, + { + "answerText": "false", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 47, + "title": "Reinforcement 2: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "Chess and Go are games with continuous states.", + "answerOptions": [ + { + "answerText": "true", + "isCorrect": "false" + }, + { + "answerText": "false", + "isCorrect": "true" + } + ] + }, + { + "questionText": "What is the CartPole problem?", + "answerOptions": [ + { + "answerText": "a process for eliminating outliers", + "isCorrect": "false" + }, + { + "answerText": "a method for optimizing your shopping cart", + "isCorrect": "false" + }, + { + "answerText": "a simplified version of balancing", + "isCorrect": "true" + } + ] + }, + { + "questionText": "What tool can we use to play out different scenarios of potential states in a game?", + "answerOptions": [ + { + "answerText": "guess and check", + "isCorrect": "false" + }, + { + "answerText": "simulation environments", + "isCorrect": "true" + }, + { + "answerText": "state transition testing", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 48, + "title": "Reinforcement 2: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Where do we define all possible actions in an environment?", + "answerOptions": [ + { + "answerText": "methods", + "isCorrect": "false" + }, + { + "answerText": "action space", + "isCorrect": "true" + }, + { + "answerText": "action list", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What pair did we use as the dictionary key-value?", + "answerOptions": [ + { + "answerText": "(state, action) as the key, Q-Table entry as the value", + "isCorrect": "true" + }, + { + "answerText": "state as the key, action as the value", + "isCorrect": "false" + }, + { + "answerText": "the value of the qvalues function as the key, action as the value", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What are the hyperparameters we used during Q-Learning?", + "answerOptions": [ + { + "answerText": "q-table value, current reward, random action", + "isCorrect": "false" + }, + { + "answerText": "learning rate, discount factor, exploration/exploitation factor", + "isCorrect": "true" + }, + { + "answerText": "cumulative rewards, learning rate, exploration factor", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 49, + "title": "Real World Applications: Pre-Lecture Quiz", + "quiz": [ + { + "questionText": "What's an example of an ML application in the Finance industry?", + "answerOptions": [ + { + "answerText": "Personalizing the customer journey using NLP", + "isCorrect": "false" + }, + { + "answerText": "Wealth management using linear regression", + "isCorrect": "true" + }, + { + "answerText": "Energy management using Time Series", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What ML technique can hospitals use to manage readmission?", + "answerOptions": [ + { + "answerText": "Clustering", + "isCorrect": "true" + }, + { + "answerText": "Time Series", + "isCorrect": "false" + }, + { + "answerText": "NLP", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What is an example of using Time Series for energy management?", + "answerOptions": [ + { + "answerText": "Motion sensing animals", + "isCorrect": "false" + }, + { + "answerText": "Smart parking meters", + "isCorrect": "true" + }, + { + "answerText": "Tracking forest fires", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 50, + "title": "Real World Applications: Post-Lecture Quiz", + "quiz": [ + { + "questionText": "Which ML technique can be used to detect credit card fraud?", + "answerOptions": [ + { + "answerText": "Regression", + "isCorrect": "false" + }, + { + "answerText": "Clustering", + "isCorrect": "true" + }, + { + "answerText": "NLP", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Which ML technique is exemplified in forest management?", + "answerOptions": [ + { + "answerText": "Reinforcement Learning", + "isCorrect": "true" + }, + { + "answerText": "Time Series", + "isCorrect": "false" + }, + { + "answerText": "NLP", + "isCorrect": "false" + } + ] + }, + { + "questionText": "What's an example of an ML application in the Health Care industry?", + "answerOptions": [ + { + "answerText": "Predicting student behavior using regression", + "isCorrect": "false" + }, + { + "answerText": "Managing clinical trials using classifiers", + "isCorrect": "true" + }, + { + "answerText": "Motion sensing of animals using classifiers", + "isCorrect": "false" + } + ] + } + ] + } + ] + } ] diff --git a/quiz-app/src/assets/translations/fr.json b/quiz-app/src/assets/translations/fr.json index da0ee317..f3ecffc4 100644 --- a/quiz-app/src/assets/translations/fr.json +++ b/quiz-app/src/assets/translations/fr.json @@ -1503,7 +1503,7 @@ }, { "answerText": "Les deux", - "isCorrect": "false" + "isCorrect": "true" } ] }, From ab1b0113307e95f2f7b39274f205292bbab1b02c Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Wed, 21 Jul 2021 16:27:14 +0700 Subject: [PATCH 132/228] Add Indonesian translation for 1-4 assignment --- .../4-techniques-of-ML/translations/assignment.id.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/4-techniques-of-ML/translations/assignment.id.md diff --git a/1-Introduction/4-techniques-of-ML/translations/assignment.id.md b/1-Introduction/4-techniques-of-ML/translations/assignment.id.md new file mode 100644 index 00000000..9f7b23be --- /dev/null +++ b/1-Introduction/4-techniques-of-ML/translations/assignment.id.md @@ -0,0 +1,11 @@ +# Wawancara seorang data scientist + +## Instruksi + +Di perusahaan Kamu, dalam user group, atau di antara teman atau sesama siswa, berbicaralah dengan seseorang yang bekerja secara profesional sebagai data scientist. Tulis makalah singkat (500 kata) tentang pekerjaan sehari-hari mereka. Apakah mereka spesialis, atau apakah mereka bekerja 'full stack'? + +## Rubrik + +| Kriteria | Sangat Bagus | Cukup | Perlu Peningkatan | +| -------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | --------------------- | +| | Sebuah esai dengan panjang yang sesuai, dengan sumber yang dikaitkan, disajikan sebagai file .doc | Esai dikaitkan dengan buruk atau lebih pendek dari panjang yang dibutuhkan | Tidak ada esai yang disajikan | From c7cae4e48fa3d2577a5697f3a156476834341abf Mon Sep 17 00:00:00 2001 From: Foo-x Date: Wed, 21 Jul 2021 18:37:18 +0900 Subject: [PATCH 133/228] style: format README --- README.md | 76 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 39 insertions(+), 37 deletions(-) diff --git a/README.md b/README.md index 34c09b57..8e7dca00 100644 --- a/README.md +++ b/README.md @@ -20,19 +20,20 @@ Travel with us around the world as we apply these classic techniques to data fro **🎨 Thanks as well to our illustrators** Tomomi Imura, Dasani Madipalli, and Jen Looper - **🙏 Special thanks 🙏 to our Microsoft Student Ambassador authors, reviewers and content contributors**, notably Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, and Snigdha Agarwal +**🙏 Special thanks 🙏 to our Microsoft Student Ambassador authors, reviewers and content contributors**, notably Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, and Snigdha Agarwal --- + # Getting Started **Students**, to use this curriculum, fork the entire repo to your own GitHub account and complete the exercises on your own or with a group: -- Start with a pre-lecture quiz -- Read the lecture and complete the activities, pausing and reflecting at each knowledge check. -- Try to create the projects by comprehending the lessons rather than running the solution code; however that code is available in the `/solution` folders in each project-oriented lesson. -- Take the post-lecture quiz -- Complete the challenge -- Complete the assignment +- Start with a pre-lecture quiz. +- Read the lecture and complete the activities, pausing and reflecting at each knowledge check. +- Try to create the projects by comprehending the lessons rather than running the solution code; however that code is available in the `/solution` folders in each project-oriented lesson. +- Take the post-lecture quiz. +- Complete the challenge. +- Complete the assignment. - After completing a lesson group, visit the [Discussion board](https://github.com/microsoft/ML-For-Beginners/discussions) and "learn out loud" by filling out the appropriate PAT rubric. A 'PAT' is a Progress Assessment Tool that is a rubric you fill out to further your learning. You can also react to other PATs so we can learn together. > For further study, we recommend following these [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-15963-cxa) modules and learning paths. @@ -48,6 +49,7 @@ Travel with us around the world as we apply these classic techniques to data fro > 🎥 Click the image above for a video about the project and the folks who created it! --- + ## Pedagogy We have chosen two pedagogical tenets while building this curriculum: ensuring that it is hands-on **project-based** and that it includes **frequent quizzes**. In addition, this curriculum has a common **theme** to give it cohesion. @@ -55,6 +57,7 @@ We have chosen two pedagogical tenets while building this curriculum: ensuring t By ensuring that the content aligns with projects, the process is made more engaging for students and retention of concepts will be augmented. In addition, a low-stakes quiz before a class sets the intention of the student towards learning a topic, while a second quiz after class ensures further retention. This curriculum was designed to be flexible and fun and can be taken in whole or in part. The projects start small and become increasingly complex by the end of the 12 week cycle. This curriculum also includes a postscript on real-world applications of ML, which can be used as extra credit or as a basis for discussion. > Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), and [Translation](TRANSLATIONS.md) guidelines. We welcome your constructive feedback! + ## Each lesson includes: - optional sketchnote @@ -70,45 +73,45 @@ By ensuring that the content aligns with projects, the process is made more enga > **A note about quizzes**: All quizzes are contained [in this app](https://jolly-sea-0a877260f.azurestaticapps.net), for 50 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. - -| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | -| :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | -| 01 | Introduction to machine learning | [Introduction](1-Introduction/README.md) | Learn the basic concepts behind machine learning | [lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | The History of machine learning | [Introduction](1-Introduction/README.md) | Learn the history underlying this field | [lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Fairness and machine learning | [Introduction](1-Introduction/README.md) | What are the important philosophical issues around fairness that students should consider when building and applying ML models? | [lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniques for machine learning | [Introduction](1-Introduction/README.md) | What techniques do ML researchers use to build ML models? | [lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Introduction to regression | [Regression](2-Regression/README.md) | Get started with Python and Scikit-learn for regression models | [lesson](2-Regression/1-Tools/README.md) | Jen | -| 06 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data in preparation for ML | [lesson](2-Regression/2-Data/README.md) | Jen | -| 07 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build linear and polynomial regression models | [lesson](2-Regression/3-Linear/README.md) | Jen | -| 08 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build a logistic regression model | [lesson](2-Regression/4-Logistic/README.md) | Jen | -| 09 | A Web App 🔌 | [Web App](3-Web-App/README.md) | Build a web app to use your trained model | [lesson](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introduction to classification | [Classification](4-Classification/README.md) | Clean, prep, and visualize your data; introduction to classification | [lesson](4-Classification/1-Introduction/README.md) | Jen and Cassie | -| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Introduction to classifiers | [lesson](4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | -| 12 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | More classifiers | [lesson](4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | -| 13 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Build a recommender web app using your model | [lesson](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introduction to clustering | [Clustering](5-Clustering/README.md) | Clean, prep, and visualize your data; Introduction to clustering | [lesson](5-Clustering/1-Visualize/README.md) | Jen | -| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Explore the K-Means clustering method | [lesson](5-Clustering/2-K-Means/README.md) | Jen | -| 16 | Introduction to natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Learn the basics about NLP by building a simple bot | [lesson](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Common NLP Tasks ☕️ | [Natural language processing](6-NLP/README.md) | Deepen your NLP knowledge by understanding common tasks required when dealing with language structures | [lesson](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](6-NLP/README.md) | Translation and sentiment analysis with Jane Austen | [lesson](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews, 1 | [lesson](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 2 | [lesson](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introduction to time series forecasting | [Time series](7-TimeSeries/README.md) | Introduction to time series forecasting | [lesson](7-TimeSeries/1-Introduction/README.md) | Francesca | +| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | +| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | +| 01 | Introduction to machine learning | [Introduction](1-Introduction/README.md) | Learn the basic concepts behind machine learning | [lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | The History of machine learning | [Introduction](1-Introduction/README.md) | Learn the history underlying this field | [lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Fairness and machine learning | [Introduction](1-Introduction/README.md) | What are the important philosophical issues around fairness that students should consider when building and applying ML models? | [lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniques for machine learning | [Introduction](1-Introduction/README.md) | What techniques do ML researchers use to build ML models? | [lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Introduction to regression | [Regression](2-Regression/README.md) | Get started with Python and Scikit-learn for regression models | [lesson](2-Regression/1-Tools/README.md) | Jen | +| 06 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data in preparation for ML | [lesson](2-Regression/2-Data/README.md) | Jen | +| 07 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build linear and polynomial regression models | [lesson](2-Regression/3-Linear/README.md) | Jen | +| 08 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build a logistic regression model | [lesson](2-Regression/4-Logistic/README.md) | Jen | +| 09 | A Web App 🔌 | [Web App](3-Web-App/README.md) | Build a web app to use your trained model | [lesson](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introduction to classification | [Classification](4-Classification/README.md) | Clean, prep, and visualize your data; introduction to classification | [lesson](4-Classification/1-Introduction/README.md) | Jen and Cassie | +| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Introduction to classifiers | [lesson](4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | +| 12 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | More classifiers | [lesson](4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | +| 13 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Build a recommender web app using your model | [lesson](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introduction to clustering | [Clustering](5-Clustering/README.md) | Clean, prep, and visualize your data; Introduction to clustering | [lesson](5-Clustering/1-Visualize/README.md) | Jen | +| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Explore the K-Means clustering method | [lesson](5-Clustering/2-K-Means/README.md) | Jen | +| 16 | Introduction to natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Learn the basics about NLP by building a simple bot | [lesson](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Common NLP Tasks ☕️ | [Natural language processing](6-NLP/README.md) | Deepen your NLP knowledge by understanding common tasks required when dealing with language structures | [lesson](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](6-NLP/README.md) | Translation and sentiment analysis with Jane Austen | [lesson](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 1 | [lesson](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantic hotels of Europe ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment analysis with hotel reviews 2 | [lesson](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introduction to time series forecasting | [Time series](7-TimeSeries/README.md) | Introduction to time series forecasting | [lesson](7-TimeSeries/1-Introduction/README.md) | Francesca | | 22 | ⚡️ World Power Usage ⚡️ - time series forecasting with ARIMA | [Time series](7-TimeSeries/README.md) | Time series forecasting with ARIMA | [lesson](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | Introduction to reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [lesson](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 24 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [lesson](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Real-World ML scenarios and applications | [ML in the Wild](9-Real-World/README.md) | Interesting and revealing real-world applications of classical ML | [lesson](9-Real-World/1-Applications/README.md) | Team | +| 23 | Introduction to reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [lesson](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [lesson](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Real-World ML scenarios and applications | [ML in the Wild](9-Real-World/README.md) | Interesting and revealing real-world applications of classical ML | [lesson](9-Real-World/1-Applications/README.md) | Team | + ## 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, and then in the root folder of this repo, type `docsify serve`. The website will be served on port 3000 on your localhost: `localhost:3000`. ## PDFs -Find a pdf of the curriculum with links [here](pdf/readme.pdf) +Find a pdf of the curriculum with links [here](pdf/readme.pdf). ## Help Wanted! -Would you like to contribute a translation? Please read our [translation guidelines](TRANSLATIONS.md) and add input [here](https://github.com/microsoft/ML-For-Beginners/issues/71) +Would you like to contribute a translation? Please read our [translation guidelines](TRANSLATIONS.md) and add input [here](https://github.com/microsoft/ML-For-Beginners/issues/71). ## Other Curricula @@ -116,4 +119,3 @@ Our team produces other curricula! Check out: - [Web Dev for Beginners](https://aka.ms/webdev-beginners) - [IoT for Beginners](https://aka.ms/iot-beginners) - From 7509cbabcdf14c48d982d3459112a79a721ebf98 Mon Sep 17 00:00:00 2001 From: Foo-x Date: Wed, 21 Jul 2021 19:09:23 +0900 Subject: [PATCH 134/228] style: format whitespace and newline --- translations/README.ja.md | 57 ++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/translations/README.ja.md b/translations/README.ja.md index a719c746..2fe13ee4 100644 --- a/translations/README.ja.md +++ b/translations/README.ja.md @@ -23,6 +23,7 @@ **🙏 Microsoft Student Ambassador の著者・査読者・コンテンツ提供者の皆様に特に感謝いたします 🙏** 特に、Rishit Dagli さん、Muhammad Sakib Khan Inan さん、Rohan Raj さん、Alexandru Petrescu さん、Abhishek Jaiswal さん、Nawrin Tabassum さん、Ioan Samuila さん、そして Snigdha Agarwal さん --- + # はじめに **学生の皆さん**、このカリキュラムを利用するには、自分のGitHubアカウントにリポジトリ全体をフォークして、一人もしくはグループで演習を完了させてください。 @@ -48,6 +49,7 @@ > 🎥 上の画像をクリックすると、このプロジェクトと、プロジェクトを作った人たちについてのビデオを観ることができます! --- + ## 教育法 このカリキュラムを構築するにあたり、私たちは2つの教育方針を選びました。**プロジェクトベース**の体験と、**頻繁な小テスト**を含むことです。さらにこのカリキュラムには、まとまりを持たせるための共通の**テーマ**があります。 @@ -55,6 +57,7 @@ 内容とプロジェクトとの整合性を保つことで、学生にとって学習プロセスがより魅力的になり、概念の定着度が高まります。さらに、授業前の軽い小テストは学生の学習意欲を高め、授業後の2回目の小テストはより一層の定着につながります。このカリキュラムは柔軟かつ楽しいものになるようデザインされており、すべて、もしくは一部を受講できます。プロジェクトは小さなものから始まり、12週間の間に少しずつ複雑なものになっていきます。また、このカリキュラムには機械学習の実世界への応用に関するあとがきも含んでおり、追加の単位あるいは議論の題材として使用できます。 > [行動規範](../CODE_OF_CONDUCT.md)、[貢献](../CONTRIBUTING.md)、[翻訳](../TRANSLATIONS.md) のガイドラインをご覧ください。建設的なご意見をお待ちしております! + ## 各レッスンの内容 - オプションのスケッチノート @@ -70,34 +73,34 @@ > **小テストに関する注意**: すべての小テストは [このアプリ](https://jolly-sea-0a877260f.azurestaticapps.net) に含まれており、各3問からなる50個の小テストがあります。これらはレッスン内からリンクされていますが、アプリをローカルで実行することもできます。`quiz-app` フォルダ内の指示に従ってください。 +| レッスン番号 | トピック | レッスングループ | 学習の目的 | 関連するレッスン | 著者 | +| :----------: | :------------------------------------------: | :----------------------------------------------------: | ------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------: | :------------: | +| 01 | 機械学習への導入 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習の基本的な概念を学ぶ | [レッスン](../1-Introduction/1-intro-to-ML/translations/README.ja.md) | Muhammad | +| 02 | 機械学習の歴史 | [導入](../1-Introduction/translations/README.ja.md) | この分野の背景にある歴史を学ぶ | [レッスン](../1-Introduction/2-history-of-ML/translations/README.ja.md) | Jen and Amy | +| 03 | 公平性と機械学習 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習モデルを構築・適用する際に学生が考慮すべき、公平性に関する重要な哲学的問題は何か? | [レッスン](../1-Introduction/3-fairness/translations/README.ja.md) | Tomomi | +| 04 | 機械学習の手法 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習の研究者はどのような手法でモデルを構築しているか? | [レッスン](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | 回帰への導入 | [回帰](../2-Regression/README.md) | 回帰モデルをPythonと Scikit-learn で始める | [レッスン](../2-Regression/1-Tools/translations/README.ja.md) | Jen | +| 06 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | 機械学習に向けてデータを可視化してクリーニングする | [レッスン](../2-Regression/2-Data/translations/README.ja.md) | Jen | +| 07 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | 線形および多項式回帰モデルを構築する | [レッスン](2-Regression/3-Linear/README.md) | Jen | +| 08 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | ロジスティック回帰モデルを構築する | [レッスン](../2-Regression/4-Logistic/README.md) | Jen | +| 09 | Webアプリ 🔌 | [Web アプリ](../3-Web-App/README.md) | 学習したモデルを使用するWebアプリを構築する | [レッスン](../3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分類への導入 | [分類](../4-Classification/README.md) | データをクリーニング・前処理・可視化する。分類への導入 | [レッスン](../4-Classification/1-Introduction/README.md) | Jen and Cassie | +| 11 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | 分類器への導入 | [レッスン](../4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | +| 12 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | その他の分類器 | [レッスン](../4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | +| 13 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | モデルを使用して推薦Webアプリを構築する | [レッスン](../4-Classification/4-Applied/README.md) | Jen | +| 14 | クラスタリングへの導入 | [クラスタリング](../5-Clustering/README.md) | データをクリーニング・前処理・可視化する。クラスタリングへの導入 | [レッスン](../5-Clustering/1-Visualize/README.md) | Jen | +| 15 | ナイジェリアの音楽的嗜好を探る 🎧 | [クラスタリング](../5-Clustering/README.md) | K-Means法を探る | [レッスン](../5-Clustering/2-K-Means/README.md) | Jen | +| 16 | 自然言語処理への導入 ☕️ | [自然言語処理](../6-NLP/README.md) | 単純なボットを構築して自然言語処理の基礎を学ぶ | [レッスン](../6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 自然言語処理の一般的なタスク ☕️ | [自然言語処理](../6-NLP/README.md) | 言語構造を扱う際に必要となる一般的なタスクを理解することで、自然言語処理の知識を深める | [レッスン](../6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻訳と感情分析 ♥️ | [自然言語処理](../6-NLP/README.md) | ジェーン・オースティンの翻訳と感情分析 | [レッスン](../6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](../6-NLP/README.md) | ホテルのレビューの感情分析 1 | [レッスン](../6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](../6-NLP/README.md) | ホテルのレビューの感情分析 2 | [レッスン](../6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 時系列予測への導入 | [Time series](../7-TimeSeries/README.md) | 時系列予測への導入 | [レッスン](../7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 世界の電力使用量 ⚡️ - ARIMAによる時系列予測 | [Time series](../7-TimeSeries/README.md) | ARIMAによる時系列予測 | [レッスン](../7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | 強化学習への導入 | [Reinforcement learning](../8-Reinforcement/README.md) | Q学習を使った強化学習への導入 | [レッスン](../8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 24 | ピーターが狼を避けるのを手伝ってください! 🐺 | [Reinforcement learning](../8-Reinforcement/README.md) | 強化学習ジム | [レッスン](../8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | 実世界の機械学習シナリオと応用 | [ML in the Wild](../9-Real-World/README.md) | 興味深くて意義のある、古典的機械学習の実世界での応用 | [レッスン](../9-Real-World/1-Applications/README.md) | Team | -| レッスン番号 | トピック | レッスングループ | 学習の目的 | 関連するレッスン | 著者 | -| :-----------: | :--------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------: | :------------: | -| 01 | 機械学習への導入 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習の基本的な概念を学ぶ | [レッスン](../1-Introduction/1-intro-to-ML/translations/README.ja.md) | Muhammad | -| 02 | 機械学習の歴史 | [導入](../1-Introduction/translations/README.ja.md) | この分野の背景にある歴史を学ぶ | [レッスン](../1-Introduction/2-history-of-ML/translations/README.ja.md) | Jen and Amy | -| 03 | 公平性と機械学習 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習モデルを構築・適用する際に学生が考慮すべき、公平性に関する重要な哲学的問題は何か? | [レッスン](../1-Introduction/3-fairness/translations/README.ja.md) | Tomomi | -| 04 | 機械学習の手法 | [導入](../1-Introduction/translations/README.ja.md) | 機械学習の研究者はどのような手法でモデルを構築しているか? | [レッスン](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | 回帰への導入 | [回帰](../2-Regression/README.md) | 回帰モデルをPythonと Scikit-learn で始める | [レッスン](../2-Regression/1-Tools/translations/README.ja.md) | Jen | -| 06 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | 機械学習に向けてデータを可視化してクリーニングする | [レッスン](../2-Regression/2-Data/translations/README.ja.md) | Jen | -| 07 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | 線形および多項式回帰モデルを構築する | [レッスン](2-Regression/3-Linear/README.md) | Jen | -| 08 | 北米のカボチャの価格 🎃 | [回帰](../2-Regression/README.md) | ロジスティック回帰モデルを構築する | [レッスン](../2-Regression/4-Logistic/README.md) | Jen | -| 09 | Webアプリ 🔌 | [Webアプリ](../3-Web-App/README.md) | 学習したモデルを使用するWebアプリを構築する | [レッスン](../3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 分類への導入 | [分類](../4-Classification/README.md) | データをクリーニング・前処理・可視化する。分類への導入 | [レッスン](../4-Classification/1-Introduction/README.md) | Jen and Cassie | -| 11 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | 分類器への導入 | [レッスン](../4-Classification/2-Classifiers-1/README.md) | Jen and Cassie | -| 12 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | その他の分類器 | [レッスン](../4-Classification/3-Classifiers-2/README.md) | Jen and Cassie | -| 13 | 美味しいアジア料理とインド料理 🍜 | [分類](../4-Classification/README.md) | モデルを使用して推薦Webアプリを構築する | [レッスン](../4-Classification/4-Applied/README.md) | Jen | -| 14 | クラスタリングへの導入 | [クラスタリング](../5-Clustering/README.md) | データをクリーニング・前処理・可視化する。クラスタリングへの導入 | [レッスン](../5-Clustering/1-Visualize/README.md) | Jen | -| 15 | ナイジェリアの音楽的嗜好を探る 🎧 | [クラスタリング](../5-Clustering/README.md) | K-Means法を探る | [レッスン](../5-Clustering/2-K-Means/README.md) | Jen | -| 16 | 自然言語処理への導入 ☕️ | [自然言語処理](../6-NLP/README.md) | 単純なボットを構築して自然言語処理の基礎を学ぶ | [レッスン](../6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 自然言語処理の一般的なタスク ☕️ | [自然言語処理](../6-NLP/README.md) | 言語構造を扱う際に必要となる一般的なタスクを理解することで、自然言語処理の知識を深める | [レッスン](../6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 翻訳と感情分析 ♥️ | [自然言語処理](../6-NLP/README.md) | ジェーン・オースティンの翻訳と感情分析 | [レッスン](../6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](../6-NLP/README.md) | ホテルのレビューの感情分析 1 | [レッスン](../6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](../6-NLP/README.md) | ホテルのレビューの感情分析 2 | [レッスン](../6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 時系列予測への導入 | [Time series](../7-TimeSeries/README.md) | 時系列予測への導入 | [レッスン](../7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 世界の電力使用量 ⚡️ - ARIMAによる時系列予測 | [Time series](../7-TimeSeries/README.md) | ARIMAによる時系列予測 | [レッスン](../7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | 強化学習への導入 | [Reinforcement learning](../8-Reinforcement/README.md) | Q学習を使った強化学習への導入 | [レッスン](../8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 24 | ピーターが狼を避けるのを手伝ってください! 🐺 | [Reinforcement learning](../8-Reinforcement/README.md) | 強化学習ジム | [レッスン](../8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | 実世界の機械学習シナリオと応用 | [ML in the Wild](../9-Real-World/README.md) | 興味深くて意義のある、古典的機械学習の実世界での応用 | [レッスン](../9-Real-World/1-Applications/README.md) | Team | ## オフラインアクセス [Docsify](https://docsify.js.org/#/) を使うと、このドキュメントをオフラインで実行できます。このリポジトリをフォークして、ローカルマシンに [Docsify をインストール](https://docsify.js.org/#/quickstart) し、このリポジトリのルートフォルダで `docsify serve` と入力してください。ローカルホストの3000番ポート、つまり `localhost:3000` でWebサイトが起動します。 From 1619a0888d01dd8a90412743f6ea6206a5e2d6ab Mon Sep 17 00:00:00 2001 From: Foo-x Date: Wed, 21 Jul 2021 19:14:16 +0900 Subject: [PATCH 135/228] fix: update end of sentence to be more natural --- translations/README.ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/translations/README.ja.md b/translations/README.ja.md index 2fe13ee4..39ab3fae 100644 --- a/translations/README.ja.md +++ b/translations/README.ja.md @@ -54,7 +54,7 @@ このカリキュラムを構築するにあたり、私たちは2つの教育方針を選びました。**プロジェクトベース**の体験と、**頻繁な小テスト**を含むことです。さらにこのカリキュラムには、まとまりを持たせるための共通の**テーマ**があります。 -内容とプロジェクトとの整合性を保つことで、学生にとって学習プロセスがより魅力的になり、概念の定着度が高まります。さらに、授業前の軽い小テストは学生の学習意欲を高め、授業後の2回目の小テストはより一層の定着につながります。このカリキュラムは柔軟かつ楽しいものになるようデザインされており、すべて、もしくは一部を受講できます。プロジェクトは小さなものから始まり、12週間の間に少しずつ複雑なものになっていきます。また、このカリキュラムには機械学習の実世界への応用に関するあとがきも含んでおり、追加の単位あるいは議論の題材として使用できます。 +内容とプロジェクトとの整合性を保つことで、学生にとって学習プロセスがより魅力的になり、概念の定着度が高まります。さらに、授業前の軽い小テストは学生の学習意欲を高め、授業後の2回目の小テストはより一層の定着につながります。このカリキュラムは柔軟かつ楽しいものになるようデザインされており、すべて、もしくは一部を受講することが可能です。プロジェクトは小さなものから始まり、12週間の間に少しずつ複雑なものになっていきます。また、このカリキュラムには機械学習の実世界への応用に関するあとがきも含んでおり、追加の単位あるいは議論の題材として使用できます。 > [行動規範](../CODE_OF_CONDUCT.md)、[貢献](../CONTRIBUTING.md)、[翻訳](../TRANSLATIONS.md) のガイドラインをご覧ください。建設的なご意見をお待ちしております! From a8bf4c95e120c33cdb0eb1d45e48cc87563da18f Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Wed, 21 Jul 2021 21:13:45 +0700 Subject: [PATCH 136/228] Add Indonesian translation for 1-4 README --- .../translations/README.id.md | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 1-Introduction/4-techniques-of-ML/translations/README.id.md diff --git a/1-Introduction/4-techniques-of-ML/translations/README.id.md b/1-Introduction/4-techniques-of-ML/translations/README.id.md new file mode 100644 index 00000000..dc945954 --- /dev/null +++ b/1-Introduction/4-techniques-of-ML/translations/README.id.md @@ -0,0 +1,105 @@ +# Teknik-teknik Machine Learning + +Proses membangun, menggunakan, dan memelihara model machine learning dan data yang digunakan adalah proses yang sangat berbeda dari banyak alur kerja pengembangan lainnya. Dalam pelajaran ini, kita akan mengungkap prosesnya, dan menguraikan teknik utama yang perlu Kamu ketahui. Kamu akan: + +- Memahami gambaran dari proses yang mendasari machine learning. +- Menjelajahi konsep dasar seperti 'models', 'predictions', dan 'training data'. + +## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/7/) +## Pengantar + +Gambaran membuat proses machine learning (ML) terdiri dari sejumlah langkah: + +1. **Menentukan pertanyaan**. Sebagian besar proses ML dimulai dengan mengajukan pertanyaan yang tidak dapat dijawab oleh program kondisional sederhana atau mesin berbasis aturan (*rules-based engine*). Pertanyaan-pertanyaan ini sering berkisar seputar prediksi berdasarkan kumpulan data. +2. **Mengumpulkan dan menyiapkan data**. Untuk dapat menjawab pertanyaanmu, Kamu memerlukan data. Bagaimana kualitas dan terkadang kuantitas data kamu akan menentukan seberapa baik kamu dapat menjawab pertanyaan awal kamu. Memvisualisasikan data merupakan aspek penting dari fase ini. Fase ini juga mencakup pemisahan data menjadi kelompok *training* dan *testing* untuk membangun model. +3. **Memilih metode training**. Tergantung dari pertanyaan dan sifat datamu, Kamu perlu memilih bagaimana kamu ingin men-training sebuah model untuk mencerminkan data kamu dengan baik dan membuat prediksi yang akurat terhadapnya. Ini adalah bagian dari proses ML yang membutuhkan keahlian khusus dan seringkali perlu banyak eksperimen. +4. **Melatih model**. Dengan menggunakan data *training*, kamu akan menggunakan berbagai algoritma untuk melatih model guna mengenali pola dalam data. Modelnya mungkin bisa memanfaatkan *internal weight* yang dapat disesuaikan untuk memberi hak istimewa pada bagian tertentu dari data dibandingkan bagian lainnya untuk membangun model yang lebih baik. +5. **Mengevaluasi model**. Gunakan data yang belum pernah dilihat sebelumnya (data *testing*) untuk melihat bagaimana kinerja model. +6. **Parameter tuning**. Berdasarkan kinerja modelmu, Kamu dapat mengulang prosesnya menggunakan parameter atau variabel yang berbeda, yang mengontrol perilaku algoritma yang digunakan untuk melatih model. +7. **Prediksi**. Gunakan input baru untuk menguji keakuratan model kamu. + +## Pertanyaan apa yang harus ditanyakan? + +Komputer sangat ahli dalam menemukan pola tersembunyi dalam data. Hal ini sangat membantu peneliti yang memiliki pertanyaan tentang domain tertentu yang tidak dapat dijawab dengan mudah dari hanya membuat mesin berbasis aturan kondisional (*conditionally-based rules engine*). Untuk tugas aktuaria misalnya, seorang data scientist mungkin dapat membuat aturan secara manual seputar mortalitas perokok vs non-perokok. + +Namun, ketika banyak variabel lain dimasukkan ke dalam persamaan, model ML mungkin terbukti lebih efisien untuk memprediksi tingkat mortalitas di masa depan berdasarkan riwayat kesehatan masa lalu. Contoh yang lebih menyenangkan mungkin membuat prediksi cuaca untuk bulan April di lokasi tertentu berdasarkan data yang mencakup garis lintang, garis bujur, perubahan iklim, kedekatan dengan laut, pola aliran udara (Jet Stream), dan banyak lagi. + +✅ [Slide deck](https://www2.cisl.ucar.edu/sites/default/files/0900%20June%2024%20Haupt_0.pdf) ini menawarkan perspektif historis pada model cuaca dengan menggunakan ML dalam analisis cuaca. + +## Tugas Pra-Pembuatan + +Sebelum mulai membangun model kamu, ada beberapa tugas yang harus kamu selesaikan. Untuk menguji pertanyaan kamu dan membentuk hipotesis berdasarkan prediksi model, Kamu perlu mengidentifikasi dan mengonfigurasi beberapa elemen. + +### Data + +Untuk dapat menjawab pertanyaan kamu dengan kepastian, Kamu memerlukan sejumlah besar data dengan jenis yang tepat. Ada dua hal yang perlu kamu lakukan pada saat ini: + +- **Mengumpulkan data**. Ingat pelajaran sebelumnya tentang keadilan dalam analisis data, kumpulkan data kamu dengan hati-hati. Waspadai sumber datanya, bias bawaan apa pun yang mungkin dimiliki, dan dokumentasikan asalnya. +- **Menyiapkan data**. Ada beberapa langkah dalam proses persiapan data. Kamu mungkin perlu menyusun data dan melakukan normalisasi jika berasal dari berbagai sumber. Kamu dapat meningkatkan kualitas dan kuantitas data melalui berbagai metode seperti mengonversi string menjadi angka (seperti yang kita lakukan di [Clustering](../../5-Clustering/1-Visualize/README.md)). Kamu mungkin juga bisa membuat data baru berdasarkan data yang asli (seperti yang kita lakukan di [Classification](../../4-Classification/1-Introduction/README.md)). Kamu bisa membersihkan dan mengubah data (seperti yang kita lakukan sebelum pelajaran [Web App](../3-Web-App/README.md)). Terakhir, Kamu mungkin juga perlu mengacaknya dan mengubah urutannya, tergantung pada teknik *training* kamu. + +✅ Setelah mengumpulkan dan memproses data kamu, luangkan waktu sejenak untuk melihat apakah bentuknya memungkinkan kamu untuk menjawab pertanyaan yang kamu maksudkan. Mungkin data tidak akan berkinerja baik dalam tugas yang kamu berikan, seperti yang kita temukan dalam pelajaran [Clustering](../../5-Clustering/1-Visualize/README.md). + +### Memilih variabel fiturmu + +Sebuah [fitur](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) adalah sebuah properti yang dapat diukur dalam data kamu. Dalam banyak dataset, properti dinyatakan sebagai sebuah heading kolom seperti 'date' 'size' atau 'color'. Variabel fitur kamu yang biasanya direpresentasikan sebagai `y` dalam kode, mewakili jawaban atas pertanyaan yang kamu coba tanyakan tentang data kamu: pada bulan Desember, labu dengan **warna** apa yang akan paling murah? di San Francisco, lingkungan mana yang menawarkan **harga** real estate terbaik? + +🎓 **Feature Selection dan Feature Extraction** Bagaimana kamu tahu variabel mana yang harus dipilih saat membangun model? Kamu mungkin akan melalui proses pemilihan fitur (*Feature Selection*) atau ekstraksi fitur (*Feature Extraction*) untuk memilih variabel yang tepat untuk model yang paling berkinerja. Namun, keduanya tidak sama: "Ekstraksi fitur membuat fitur baru dari fungsi fitur asli, sedangkan pemilihan fitur mengembalikan subset fitur." ([sumber](https://wikipedia.org/wiki/Feature_selection)) +### Visualisasikan datamu + +Aspek penting dari toolkit data scientist adalah kemampuan untuk memvisualisasikan data menggunakan beberapa *library* seperti Seaborn atau MatPlotLib. Merepresentasikan data kamu secara visual memungkinkan kamu mengungkap korelasi tersembunyi yang dapat kamu manfaatkan. Visualisasimu mungkin juga membantu kamu mengungkap data yang bias atau tidak seimbang (seperti yang kita temukan dalam [Classification](../../4-Classification/2-Classifiers-1/README.md)). +### Membagi dataset + +Sebelum memulai *training*, Kamu perlu membagi dataset menjadi dua atau lebih bagian dengan ukuran yang tidak sama tapi masih mewakili data dengan baik. + +- **Training**. Bagian dataset ini digunakan untuk men-training model kamu. Bagian dataset ini merupakan mayoritas dari dataset asli. +- **Testing**. Sebuah dataset tes adalah kelompok data independen, seringkali dikumpulkan dari data yang asli yang akan digunakan untuk mengkonfirmasi kinerja dari model yang dibuat. +- **Validating**. Dataset validasi adalah kumpulan contoh mandiri yang lebih kecil yang kamu gunakan untuk menyetel hyperparameter atau arsitektur model untuk meningkatkan model. Tergantung dari ukuran data dan pertanyaan yang kamu ajukan, Kamu mungkin tidak perlu membuat dataset ketiga ini (seperti yang kita catat dalam [Time Series Forecasting](../7-TimeSeries/1-Introduction/README.md)). + +## Membuat sebuah model + +Dengan menggunakan data *training*, tujuan kamu adalah membuat model atau representasi statistik data kamu, menggunakan berbagai algoritma untuk **melatihnya**. Melatih model berarti mengeksposnya dengan data dan mengizinkannya membuat asumsi tentang pola yang ditemukan, divalidasi, dan diterima atau ditolak. + +### Tentukan metode training + +Tergantung dari pertanyaan dan sifat datamu, Kamu akan memilih metode untuk melatihnya. Melangkah menuju dokumentasi [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - yang kita gunakan dalam pelajaran ini - kamu bisa menjelajahi banyak cara untuk melatih sebuah model. Tergantung dari pengalamanmu, kamu mungkin perlu mencoba beberapa metode yang berbeda untuk membuat model yang terbaik. Kemungkinan kamu akan melalui proses di mana data scientist mengevaluasi kinerja model dengan memasukkan data yang belum pernah dilihat, memeriksa akurasi, bias, dan masalah penurunan kualitas lainnya, dan memilih metode training yang paling tepat untuk tugas yang ada. +### Melatih sebuah model + +Berbekal data *training*, Kamu siap untuk menggunakannya untuk membuat model. Kamu akan melihat di banyak *library* ML mengenai kode 'model.fit' - pada saat inilah kamu mengirimkan data kamu sebagai *array* nilai (biasanya 'X') dan variabel fitur (biasanya 'y' ). +### Mengevaluasi model + +Setelah proses *training* selesai (ini mungkin membutuhkan banyak iterasi, atau 'epoch', untuk melatih model besar), Kamu akan dapat mengevaluasi kualitas model dengan menggunakan data tes untuk mengukur kinerjanya. Data ini merupakan subset dari data asli yang modelnya belum pernah dianalisis sebelumnya. Kamu dapat mencetak tabel metrik tentang kualitas model kamu. + +🎓 **Model fitting** + +Dalam konteks machine learning, *model fitting* mengacu pada keakuratan dari fungsi yang mendasari model saat mencoba menganalisis data yang tidak familiar. + +🎓 **Underfitting** dan **overfitting** adalah masalah umum yang menurunkan kualitas model, karena model tidak cukup akurat atau terlalu akurat. Hal ini menyebabkan model membuat prediksi yang terlalu selaras atau tidak cukup selaras dengan data pelatihannya. Model overfit memprediksi data *training* terlalu baik karena telah mempelajari detail dan noise data dengan terlalu baik. Model underfit tidak akurat karena tidak dapat menganalisis data *training* atau data yang belum pernah dilihat sebelumnya secara akurat. + +![overfitting model](images/overfitting.png) +> Infografis oleh [Jen Looper](https://twitter.com/jenlooper) + +## Parameter tuning + +Setelah *training* awal selesai, amati kualitas model dan pertimbangkan untuk meningkatkannya dengan mengubah 'hyperparameter' nya. Baca lebih lanjut tentang prosesnya [di dalam dokumentasi](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-15963-cxa). + +## Prediksi + +Ini adalah saat di mana Kamu dapat menggunakan data yang sama sekali baru untuk menguji akurasi model kamu. Dalam setelan ML 'terapan', di mana kamu membangun aset web untuk menggunakan modelnya dalam produksi, proses ini mungkin melibatkan pengumpulan input pengguna (misalnya menekan tombol) untuk menyetel variabel dan mengirimkannya ke model untuk inferensi, atau evaluasi. + +Dalam pelajaran ini, Kamu akan menemukan cara untuk menggunakan langkah-langkah ini untuk mempersiapkan, membangun, menguji, mengevaluasi, dan memprediksi - semua gestur data scientist dan banyak lagi, seiring kemajuanmu dalam perjalanan menjadi 'full stack' ML engineer. + +--- + +## 🚀Tantangan + +Gambarlah sebuah flow chart yang mencerminkan langkah-langkah seorang praktisi ML. Di mana kamu melihat diri kamu saat ini dalam prosesnya? Di mana kamu memprediksi kamu akan menemukan kesulitan? Apa yang tampak mudah bagi kamu? + +## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/8/) + +## Ulasan & Belajar Mandiri + +Cari di Internet mengenai wawancara dengan data scientist yang mendiskusikan pekerjaan sehari-hari mereka. Ini [salah satunya](https://www.youtube.com/watch?v=Z3IjgbbCEfs). + +## Tugas + +[Wawancara dengan data scientist](assignment.md) From ae5d451e5ce921068b7b117a4abc85aca11633cb Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Wed, 21 Jul 2021 21:19:23 +0700 Subject: [PATCH 137/228] Update some translation --- 1-Introduction/1-intro-to-ML/translations/README.id.md | 4 ++-- 1-Introduction/1-intro-to-ML/translations/assignment.id.md | 2 +- 1-Introduction/2-history-of-ML/translations/README.id.md | 4 ++-- 1-Introduction/4-techniques-of-ML/translations/README.id.md | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.id.md b/1-Introduction/1-intro-to-ML/translations/README.id.md index 8d0044b0..4cef05dc 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.id.md +++ b/1-Introduction/1-intro-to-ML/translations/README.id.md @@ -2,7 +2,7 @@ [![ML, AI, deep learning - Apa perbedaannya?](https://img.youtube.com/vi/lTd9RSxS9ZE/0.jpg)](https://youtu.be/lTd9RSxS9ZE "ML, AI, deep learning - Apa perbedaannya?") -> 🎥 Klik gambar diatas untuk melihat video yang mendiskusikan perbedaan antara Machine Learning, AI, dan Deep Learning. +> 🎥 Klik gambar diatas untuk menonton video yang mendiskusikan perbedaan antara Machine Learning, AI, dan Deep Learning. ## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) @@ -12,7 +12,7 @@ Selamat datang di pelajaran Machine Learning klasik untuk pemula! Baik kamu yang [![Pengantar Machine Learning](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "Pengantar Machine Learning") -> 🎥 Klik gambar diatas untuk melihat video: John Guttag dari MIT yang memberikan pengantar Machine Learning. +> 🎥 Klik gambar diatas untuk menonton video: John Guttag dari MIT yang memberikan pengantar Machine Learning. ### Memulai Machine Learning Sebelum memulai kurikulum ini, kamu perlu memastikan komputer kamu sudah dipersiapkan untuk menjalankan *notebook* secara lokal. diff --git a/1-Introduction/1-intro-to-ML/translations/assignment.id.md b/1-Introduction/1-intro-to-ML/translations/assignment.id.md index 9de8a4bd..c6ba6e4a 100644 --- a/1-Introduction/1-intro-to-ML/translations/assignment.id.md +++ b/1-Introduction/1-intro-to-ML/translations/assignment.id.md @@ -4,6 +4,6 @@ Dalam tugas yang tidak dinilai ini, kamu akan mempelajari Python dan mempersiapkan *environment* kamu sehingga dapat digunakan untuk menjalankan *notebook*. -Ambil [Jalur Belajar Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa) ini, kemudian persiapkan sistem kamu dengan melihat video-video pengantar ini: +Ambil [Jalur Belajar Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa) ini, kemudian persiapkan sistem kamu dengan menonton video-video pengantar ini: https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 diff --git a/1-Introduction/2-history-of-ML/translations/README.id.md b/1-Introduction/2-history-of-ML/translations/README.id.md index 4053785b..a0a4ce05 100644 --- a/1-Introduction/2-history-of-ML/translations/README.id.md +++ b/1-Introduction/2-history-of-ML/translations/README.id.md @@ -56,7 +56,7 @@ Penelitian didanai dengan baik oleh lembaga pemerintah, banyak kemajuan dibuat d [![blocks world dengan SHRDLU](https://img.youtube.com/vi/QAJz4YKUwqw/0.jpg)](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world dengan SHRDLU") - > 🎥 Klik gambar diatas untuk melihat video: Blocks world with SHRDLU + > 🎥 Klik gambar diatas untuk menonton video: Blocks world with SHRDLU ## 1974 - 1980: "Musim Dingin AI" @@ -94,7 +94,7 @@ Saat ini, *machine learning* dan AI hampir ada di setiap bagian dari kehidupan k Kita masih belum tahu apa yang akan terjadi di masa depan, tetapi penting untuk memahami sistem komputer dan perangkat lunak serta algoritma yang dijalankannya. Kami berharap kurikulum ini akan membantu kamu untuk mendapatkan pemahaman yang lebih baik sehingga kamu dapat memutuskan sendiri. [![Sejarah Deep Learning](https://img.youtube.com/vi/mTtDfKgLm54/0.jpg)](https://www.youtube.com/watch?v=mTtDfKgLm54 "Sejarah Deep Learning") -> 🎥 Klik gambar diatas untuk melihat video: Yann LeCun mendiskusikan sejarah dari Deep Learning dalam pelajaran ini +> 🎥 Klik gambar diatas untuk menonton video: Yann LeCun mendiskusikan sejarah dari Deep Learning dalam pelajaran ini --- ## 🚀Tantangan diff --git a/1-Introduction/4-techniques-of-ML/translations/README.id.md b/1-Introduction/4-techniques-of-ML/translations/README.id.md index dc945954..77f5880f 100644 --- a/1-Introduction/4-techniques-of-ML/translations/README.id.md +++ b/1-Introduction/4-techniques-of-ML/translations/README.id.md @@ -3,7 +3,7 @@ Proses membangun, menggunakan, dan memelihara model machine learning dan data yang digunakan adalah proses yang sangat berbeda dari banyak alur kerja pengembangan lainnya. Dalam pelajaran ini, kita akan mengungkap prosesnya, dan menguraikan teknik utama yang perlu Kamu ketahui. Kamu akan: - Memahami gambaran dari proses yang mendasari machine learning. -- Menjelajahi konsep dasar seperti 'models', 'predictions', dan 'training data'. +- Menjelajahi konsep dasar seperti '*models*', '*predictions*', dan '**training data*'. ## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/7/) ## Pengantar @@ -61,7 +61,7 @@ Dengan menggunakan data *training*, tujuan kamu adalah membuat model atau repres ### Tentukan metode training -Tergantung dari pertanyaan dan sifat datamu, Kamu akan memilih metode untuk melatihnya. Melangkah menuju dokumentasi [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - yang kita gunakan dalam pelajaran ini - kamu bisa menjelajahi banyak cara untuk melatih sebuah model. Tergantung dari pengalamanmu, kamu mungkin perlu mencoba beberapa metode yang berbeda untuk membuat model yang terbaik. Kemungkinan kamu akan melalui proses di mana data scientist mengevaluasi kinerja model dengan memasukkan data yang belum pernah dilihat, memeriksa akurasi, bias, dan masalah penurunan kualitas lainnya, dan memilih metode training yang paling tepat untuk tugas yang ada. +Tergantung dari pertanyaan dan sifat datamu, Kamu akan memilih metode untuk melatihnya. Buka dokumentasi [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) yang kita gunakan dalam pelajaran ini, kamu bisa menjelajahi banyak cara untuk melatih sebuah model. Tergantung dari pengalamanmu, kamu mungkin perlu mencoba beberapa metode yang berbeda untuk membuat model yang terbaik. Kemungkinan kamu akan melalui proses di mana data scientist mengevaluasi kinerja model dengan memasukkan data yang belum pernah dilihat, memeriksa akurasi, bias, dan masalah penurunan kualitas lainnya, dan memilih metode training yang paling tepat untuk tugas yang ada. ### Melatih sebuah model Berbekal data *training*, Kamu siap untuk menggunakannya untuk membuat model. Kamu akan melihat di banyak *library* ML mengenai kode 'model.fit' - pada saat inilah kamu mengirimkan data kamu sebagai *array* nilai (biasanya 'X') dan variabel fitur (biasanya 'y' ). From 90ce8e8a8f9b378b4ead8aa97c1098040464722b Mon Sep 17 00:00:00 2001 From: edgargonarr <35715904+edgargonarr@users.noreply.github.com> Date: Wed, 21 Jul 2021 12:52:56 -0500 Subject: [PATCH 138/228] Update README.md --- 6-NLP/1-Introduction-to-NLP/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-NLP/1-Introduction-to-NLP/README.md b/6-NLP/1-Introduction-to-NLP/README.md index ea244c74..eeae6bec 100644 --- a/6-NLP/1-Introduction-to-NLP/README.md +++ b/6-NLP/1-Introduction-to-NLP/README.md @@ -162,4 +162,4 @@ Take a look at the references below as further reading opportunities. ## Assignment -[Search for a bot](../assignment.md) +[Search for a bot](assignment.md) From c27305513c23c72e943d0d55a435db253356347e Mon Sep 17 00:00:00 2001 From: Foo-x Date: Thu, 22 Jul 2021 18:25:17 +0900 Subject: [PATCH 139/228] fix: wrong quiz answers --- quiz-app/src/assets/translations/en.json | 4 ++-- quiz-app/src/assets/translations/fr.json | 4 ++-- quiz-app/src/assets/translations/tr.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/quiz-app/src/assets/translations/en.json b/quiz-app/src/assets/translations/en.json index 21b8375e..b9ef44e2 100644 --- a/quiz-app/src/assets/translations/en.json +++ b/quiz-app/src/assets/translations/en.json @@ -412,7 +412,7 @@ }, { "answerText": "you can discover potential cause for bias", - "isCorrect": "true" + "isCorrect": "false" }, { "answerText": "both of these", @@ -1092,7 +1092,7 @@ "answerOptions": [ { "answerText": "the task of classifying data points into multiple classes", - "isCorrect": "true" + "isCorrect": "false" }, { "answerText": "the task of classifying data points into one of several classes", diff --git a/quiz-app/src/assets/translations/fr.json b/quiz-app/src/assets/translations/fr.json index f3ecffc4..9b946ab5 100644 --- a/quiz-app/src/assets/translations/fr.json +++ b/quiz-app/src/assets/translations/fr.json @@ -412,7 +412,7 @@ }, { "answerText": "Vous pouvez découvrir une cause potentielle de biais", - "isCorrect": "true" + "isCorrect": "false" }, { "answerText": "Les deux", @@ -1091,7 +1091,7 @@ "answerOptions": [ { "answerText": "La tâche de classer les points de données dans plusieurs classes", - "isCorrect": "true" + "isCorrect": "false" }, { "answerText": "La tâche de classifier les points de données dans l'une des plusieurs classes", diff --git a/quiz-app/src/assets/translations/tr.json b/quiz-app/src/assets/translations/tr.json index 050bbd2a..aa479e28 100644 --- a/quiz-app/src/assets/translations/tr.json +++ b/quiz-app/src/assets/translations/tr.json @@ -412,7 +412,7 @@ }, { "answerText": "önyargı için potansiyel bir sebebi keşfedebilirsiniz", - "isCorrect": "true" + "isCorrect": "false" }, { "answerText": "bunların her ikisi", @@ -1092,7 +1092,7 @@ "answerOptions": [ { "answerText": "veri noktalarını birden çok sınıfa sınıflandırma görevi", - "isCorrect": "true" + "isCorrect": "false" }, { "answerText": "veri noktalarını birkaç sınıftan birine sınıflandırma görevi", From 6767a5d7ff0f2d01463c75db08075ba2c2ea5aef Mon Sep 17 00:00:00 2001 From: kenya-sk Date: Thu, 22 Jul 2021 18:28:04 +0900 Subject: [PATCH 140/228] add japanese translation of Regression/3-Linear --- .../1-Tools/translations/README.ja.md | 2 +- 2-Regression/2-Data/translations/README.ja.md | 2 +- .../3-Linear/translations/README.ja.md | 334 ++++++++++++++++++ 3 files changed, 336 insertions(+), 2 deletions(-) create mode 100644 2-Regression/3-Linear/translations/README.ja.md diff --git a/2-Regression/1-Tools/translations/README.ja.md b/2-Regression/1-Tools/translations/README.ja.md index 0bebf16d..427ef7b0 100644 --- a/2-Regression/1-Tools/translations/README.ja.md +++ b/2-Regression/1-Tools/translations/README.ja.md @@ -215,4 +215,4 @@ s1 tc: T細胞(白血球の一種) ## 課題 -[異なるデータセット](assignment.md) +[異なるデータセット](../assignment.md) diff --git a/2-Regression/2-Data/translations/README.ja.md b/2-Regression/2-Data/translations/README.ja.md index 1570be3c..07fd923b 100644 --- a/2-Regression/2-Data/translations/README.ja.md +++ b/2-Regression/2-Data/translations/README.ja.md @@ -203,4 +203,4 @@ Matplotlibが提供する様々なタイプのビジュアライゼーション ## 課題 -[ビジュアライゼーションの探求](assignment.md) +[ビジュアライゼーションの探求](../assignment.md) diff --git a/2-Regression/3-Linear/translations/README.ja.md b/2-Regression/3-Linear/translations/README.ja.md new file mode 100644 index 00000000..2dd458b8 --- /dev/null +++ b/2-Regression/3-Linear/translations/README.ja.md @@ -0,0 +1,334 @@ +# Scikit-learnを用いた回帰モデルの構築: 回帰を行う2つの方法 + +![線形回帰 vs 多項式回帰 のインフォグラフィック](../images/linear-polynomial.png) +> [Dasani Madipalli](https://twitter.com/dasani_decoded) によるインフォグラフィック +## [講義前のクイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/13/) +### イントロダクション + +これまで、このレッスンで使用するカボチャの価格データセットから集めたサンプルデータを使って、回帰とは何かを探ってきました。また、Matplotlibを使って可視化を行いました。 + +これで、MLにおける回帰をより深く理解する準備が整いました。このレッスンでは、2種類の回帰について詳しく説明します。基本的な線形回帰 (_basic linear regression_)と多項式回帰 (_polynomial regression_)の2種類の回帰について、その基礎となる数学を学びます。 + +> このカリキュラムでは、最低限の数学の知識を前提とし、他の分野の学生にも理解できるようにしていますので、理解を助けるためのメモ、🧮吹き出し、図などの学習ツールをご覧ください。 + +### 事前確認 + +ここでは、パンプキンデータの構造について説明しています。このレッスンの_notebook.ipynb_ファイルには、事前に読み込まれ、整形されたデータが入っています。このファイルでは、カボチャの価格がブッシェル単位で新しいデータフレームに表示されています。 これらのノートブックを、Visual Studio Codeのカーネルで実行できることを確認してください。 + +### 準備 + +忘れてはならないのは、データを読み込んだら問いかけを行うことです。 + +- カボチャを買うのに最適な時期はいつですか? +- ミニカボチャ1ケースの価格はどのくらいでしょうか? +- 半ブッシェルのバスケットで買うべきか、1 1/9ブッシェルの箱で買うべきか。 + +データを掘り下げていきましょう。 + +前回のレッスンでは、Pandasのデータフレームを作成し、元のデータセットの一部を入力して、ブッシェル単位の価格を標準化しました。しかし、この方法では、約400のデータポイントしか集めることができず、しかもそれは秋の期間のものでした。 + +このレッスンに付属するノートブックで、あらかじめ読み込んでおいたデータを見てみましょう。データが事前に読み込まれ、月毎のデータが散布図として表示されています。データをもっと綺麗にすることで、データの性質をもう少し知ることができるかもしれません。 + +## 線形回帰 + +レッスン1で学んだように、線形回帰の演習では、以下のような線を描けるようになることが目標です。 + +- **変数間の関係を示す。** +- **予測を行う。** 新しいデータポイントが、その線のどこに位置するかを正確に予測することができる。 + +このような線を描くことは、**最小二乗回帰 (Least-Squares Regression)** の典型的な例です。「最小二乗」という言葉は、回帰線を囲むすべてのデータポイントとの距離が二乗され、その後加算されることを意味しています。理想的には、最終的な合計ができるだけ小さくなるようにします。これはエラーの数、つまり「最小二乗」の値を小さくするためです。 + +これは、すべてのデータポイントからの累積距離が最小となる直線をモデル化したいためです。また、方向ではなく大きさに注目しているので、足す前に項を二乗します。 + +> **🧮 Show me the math** +> +> この線は、_line of best fit_ と呼ばれ、[方程式](https://en.wikipedia.org/wiki/Simple_linear_regression) で表すことができます。 +> +> ``` +> Y = a + bX +> ``` +> +> `X`は「説明変数」です。`Y`は「目的変数」です。`a`は切片で`b`は直線の傾きを表します。`X=0`のとき、`Y`の値は切片`a`となります。 +> +>![傾きの計算](../images/slope.png) +> +> はじめに、傾き`b`を計算してみます。[Jen Looper](https://twitter.com/jenlooper) によるインフォグラフィック。 +> +> カボチャのデータに関する最初の質問である、「月毎のブッシェル単位でのカボチャの価格を予測してください」で言い換えてみると、`X`は価格を、`Y`は販売された月を表しています。 +> +>![方程式の計算](../images/calculation.png) +> +> Yの値を計算してみましょう。$4前後払っているなら、4月に違いありません![Jen Looper](https://twitter.com/jenlooper) によるインフォグラフィック。 +> +> 直線を計算する数学は、直線の傾きを示す必要がありますが、これは切片、つまり「X = 0」のときに「Y」がどこに位置するかにも依存します。 +> +> これらの値の計算方法は、[Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html) というサイトで見ることができます。また、[this Least-squares calculator](https://www.mathsisfun.com/data/least-squares-calculator.html) では、値が線にどのような影響を与えるかを見ることができます。 + +## 相関関係 + +もう一つの理解すべき用語は、与えられたXとYの変数間の**相関係数 (Correlation Coefficient)** です。散布図を使えば、この係数をすぐに可視化することができます。データポイントがきれいな直線上に散らばっているプロットは、高い相関を持っていますが、データポイントがXとYの間のあらゆる場所に散らばっているプロットは、低い相関を持っています。 + +良い線形回帰モデルとは、最小二乗法によって求めた回帰線が高い相関係数 (0よりも1に近い)を持つものです。 + +✅ このレッスンのノートを開いて、「都市と価格」の散布図を見てみましょう。散布図の視覚的な解釈によると、カボチャの販売に関する「都市」と「価格」の関連データは、相関性が高いように見えますか、それとも低いように見えますか? + +## 回帰に用いるデータの準備 + +この演習の背景にある数学を理解したので、回帰モデルを作成して、どのパッケージのカボチャの価格が最も高いかを予測できるかどうかを確認してください。休日のパンプキンパッチ用にパンプキンを購入する人は、パッチ用のパンプキンパッケージの購入を最適化するために、この情報を必要とするかもしれません。 + +ここではScikit-learnを使用するので、手作業で行う必要はありません。レッスンノートのメインのデータ処理ブロックに、Scikit-learnのライブラリを追加して、すべての文字列データを自動的に数字に変換します。 + +```python +from sklearn.preprocessing import LabelEncoder + +new_pumpkins.iloc[:, 0:-1] = new_pumpkins.iloc[:, 0:-1].apply(LabelEncoder().fit_transform) +``` + +new_pumpkinsデータフレームを見ると、すべての文字列が数値になっているのがわかります。これにより、人が読むのは難しくなりましたが、Scikit-learnにとってはとても分かりやすくなりました。 +これで、回帰に最も適したデータについて、(散布図を見ただけではなく)より高度な判断ができるようになりました。 + +良い予測モデルを構築するために、データの2点間に良い相関関係を見つけようとします。その結果、「都市」と「価格」の間には弱い相関関係しかないことがわかりました。 + +```python +print(new_pumpkins['City'].corr(new_pumpkins['Price'])) +0.32363971816089226 +``` + +しかし、パッケージと価格の間にはもう少し強い相関関係があります。これは理にかなっていると思いますか?通常、箱が大きければ大きいほど、価格は高くなります。 + +```python +print(new_pumpkins['Package'].corr(new_pumpkins['Price'])) +0.6061712937226021 +``` + +このデータに対する良い質問は、次のようになります。「あるカボチャのパッケージの価格はどのくらいになるか?」 + +この回帰モデルを構築してみましょう! + +## 線形モデルの構築 + +モデルを構築する前に、もう一度データの整理をしてみましょう。NULLデータを削除し、データがどのように見えるかをもう一度確認します。 + +```python +new_pumpkins.dropna(inplace=True) +new_pumpkins.info() +``` + +そして、この最小セットから新しいデータフレームを作成し、それを出力します。 + +```python +new_columns = ['Package', 'Price'] +lin_pumpkins = new_pumpkins.drop([c for c in new_pumpkins.columns if c not in new_columns], axis='columns') + +lin_pumpkins +``` + +```output + Package Price +70 0 13.636364 +71 0 16.363636 +72 0 16.363636 +73 0 15.454545 +74 0 13.636364 +... ... ... +1738 2 30.000000 +1739 2 28.750000 +1740 2 25.750000 +1741 2 24.000000 +1742 2 24.000000 +415 rows × 2 columns +``` + +1. これで、XとYの座標データを割り当てることができます。 + + ```python + X = lin_pumpkins.values[:, :1] + y = lin_pumpkins.values[:, 1:2] + ``` +✅ ここでは何をしていますか? Pythonの[スライス記法](https://stackoverflow.com/questions/509211/understanding-slice-notation/509295#509295) を使って、`X`と`y`の配列を作成しています。 + +2. 次に、回帰モデル構築のためのルーチンを開始します。 + + ```python + from sklearn.linear_model import LinearRegression + from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error + from sklearn.model_selection import train_test_split + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + lin_reg = LinearRegression() + lin_reg.fit(X_train,y_train) + + pred = lin_reg.predict(X_test) + + accuracy_score = lin_reg.score(X_train,y_train) + print('Model Accuracy: ', accuracy_score) + ``` + + 相関関係があまり良くないので、生成されたモデルもあまり正確ではありません。 + + ```output + Model Accuracy: 0.3315342327998987 + ``` + +3. 今回の過程で描かれた線を可視化します。 + + ```python + plt.scatter(X_test, y_test, color='black') + plt.plot(X_test, pred, color='blue', linewidth=3) + + plt.xlabel('Package') + plt.ylabel('Price') + + plt.show() + ``` + ![パッケージと価格の関係を表す散布図](../images/linear.png) + +4. 架空の値に対してモデルをテストする。 + + ```python + lin_reg.predict( np.array([ [2.75] ]) ) + ``` + + この架空の値に対して、以下の価格が返されます。 + + ```output + array([[33.15655975]]) + ``` + +回帰の線が正しく引かれていれば、その数字は理にかなっています。 + +🎃 おめでとうございます!あなたは、数種類のカボチャの価格を予測するモデルを作成しました。あなたの休日のパンプキンパッチは美しいものになるでしょう。でも、もっと良いモデルを作れるかもしれません。 + +## 多項式回帰 + +線形回帰のもう一つのタイプは、多項式回帰です。時には変数の間に直線的な関係 (カボチャの量が多いほど、価格は高くなる)があることもありますが、これらの関係は、平面や直線としてプロットできないこともあります。 + +✅ 多項式回帰を使うことができるデータの[さらにいくつかの例](https://online.stat.psu.edu/stat501/lesson/9/9.8) を示します。 + +先ほどの散布図の「品種」と「価格」の関係をもう一度見てみましょう。この散布図は、必ずしも直線で分析しなければならないように見えますか?そうではないかもしれません。このような場合は、多項式回帰を試してみましょう。 + +✅ 多項式とは、1つ以上の変数と係数で構成される数学的表現である。 + +多項式回帰では、非線形データをよりよく適合させるために曲線を作成します。 + +1. 元のカボチャのデータの一部を入力したデータフレームを作成してみましょう。 + + ```python + new_columns = ['Variety', 'Package', 'City', 'Month', 'Price'] + poly_pumpkins = new_pumpkins.drop([c for c in new_pumpkins.columns if c not in new_columns], axis='columns') + + poly_pumpkins + ``` + +データフレーム内のデータ間の相関関係を視覚化するには、「coolwarm」チャートで表示するのが良いでしょう。 + +2. `Background_gradient()` メソッドの引数に `coolwarm` を指定して使用します。 + + ```python + corr = poly_pumpkins.corr() + corr.style.background_gradient(cmap='coolwarm') + ``` + +  このコードはヒートマップを作成します。 + ![データの相関関係を示すヒートマップ](../images/heatmap.png) + +このチャートを見ると、「パッケージ」と「価格」の間に正の相関関係があることが視覚化されています。つまり、前回のモデルよりも多少良いモデルを作ることができるはずです。 + +### パイプラインの作成 + +Scikit-learnには、多項式回帰モデルを構築するための便利なAPIである`make_pipeline` [API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) が用意されています。「パイプライン」は推定量の連鎖で作成されます。今回の場合、パイプラインには多項式の特徴量、非線形の経路を形成する予測値が含まれます。 + +1. X列とy列を作ります。 + + ```python + X=poly_pumpkins.iloc[:,3:4].values + y=poly_pumpkins.iloc[:,4:5].values + ``` + +2. `make_pipeline()` メソッドを呼び出してパイプラインを作成します。 + + ```python + from sklearn.preprocessing import PolynomialFeatures + from sklearn.pipeline import make_pipeline + + pipeline = make_pipeline(PolynomialFeatures(4), LinearRegression()) + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + + pipeline.fit(np.array(X_train), y_train) + + y_pred=pipeline.predict(X_test) + ``` + +### 系列の作成 + +この時点で、パイプラインが系列を作成できるように、ソートされたデータで新しいデータフレームを作成する必要があります。 + +以下のコードを追加します。 + + ```python + df = pd.DataFrame({'x': X_test[:,0], 'y': y_pred[:,0]}) + df.sort_values(by='x',inplace = True) + points = pd.DataFrame(df).to_numpy() + + plt.plot(points[:, 0], points[:, 1],color="blue", linewidth=3) + plt.xlabel('Package') + plt.ylabel('Price') + plt.scatter(X,y, color="black") + plt.show() + ``` + +`pd.DataFrame` を呼び出して新しいデータフレームを作成しました。次に`sort_values()` を呼び出して値をソートしました。最後に多項式のプロットを作成しました。 + +![パッケージと価格の関係を示す多項式のプロット](../images/polynomial.png) + +よりデータにフィットした曲線を確認することができます。 + +モデルの精度を確認してみましょう。 + + ```python + accuracy_score = pipeline.score(X_train,y_train) + print('Model Accuracy: ', accuracy_score) + ``` + + これで完成です! + + ```output + Model Accuracy: 0.8537946517073784 + ``` + +いい感じです!価格を予測してみましょう。 + +### 予測の実行 + +新しい値を入力し、予測値を取得できますか? + +`predict()` メソッドを呼び出して、予測を行います。 + + ```python + pipeline.predict( np.array([ [2.75] ]) ) + ``` + 以下の予測結果が得られます。 + + ```output + array([[46.34509342]]) + ``` + +プロットを見てみると、納得できそうです!そして、同じデータを見て、これが前のモデルよりも良いモデルであれば、より高価なカボチャのために予算を組む必要があります。 + +🏆 お疲れ様でした!1つのレッスンで2つの回帰モデルを作成しました。回帰に関する最後のセクションでは、カテゴリーを決定するためのロジスティック回帰について学びます。 + +--- +## 🚀チャレンジ + +このノートブックでいくつかの異なる変数をテストし、相関関係がモデルの精度にどのように影響するかを確認してみてください。 + +## [講義後クイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/14/) + +## レビュー & 自主学習 + +このレッスンでは、線形回帰について学びました。回帰には他にも重要な種類があります。Stepwise、Ridge、Lasso、Elasticnetなどのテクニックをご覧ください。より詳しく学ぶには、[Stanford Statistical Learning course](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) が良いでしょう。 + +## 課題 + +[モデル構築](../assignment.md) From f16880941b47e0183bb275754b174c1018844225 Mon Sep 17 00:00:00 2001 From: kenya-sk Date: Thu, 22 Jul 2021 18:32:18 +0900 Subject: [PATCH 141/228] add japanese translation of Regression/3-Linear --- 2-Regression/3-Linear/translations/README.ja.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-Regression/3-Linear/translations/README.ja.md b/2-Regression/3-Linear/translations/README.ja.md index 2dd458b8..3c87a736 100644 --- a/2-Regression/3-Linear/translations/README.ja.md +++ b/2-Regression/3-Linear/translations/README.ja.md @@ -197,13 +197,13 @@ lin_pumpkins 回帰の線が正しく引かれていれば、その数字は理にかなっています。 -🎃 おめでとうございます!あなたは、数種類のカボチャの価格を予測するモデルを作成しました。あなたの休日のパンプキンパッチは美しいものになるでしょう。でも、もっと良いモデルを作れるかもしれません。 +🎃 おめでとうございます!数種類のカボチャの価格を予測するモデルを作成しました。休日のパンプキンパッチは美しいものになるでしょう。でも、もっと良いモデルを作れるかもしれません。 ## 多項式回帰 線形回帰のもう一つのタイプは、多項式回帰です。時には変数の間に直線的な関係 (カボチャの量が多いほど、価格は高くなる)があることもありますが、これらの関係は、平面や直線としてプロットできないこともあります。 -✅ 多項式回帰を使うことができるデータの[さらにいくつかの例](https://online.stat.psu.edu/stat501/lesson/9/9.8) を示します。 +✅ 多項式回帰を使うことができる、[いくつかの例](https://online.stat.psu.edu/stat501/lesson/9/9.8) を示します。 先ほどの散布図の「品種」と「価格」の関係をもう一度見てみましょう。この散布図は、必ずしも直線で分析しなければならないように見えますか?そうではないかもしれません。このような場合は、多項式回帰を試してみましょう。 From e299a0898e71b8f6518305d33c32ab9d1a2391a3 Mon Sep 17 00:00:00 2001 From: kenya-sk Date: Thu, 22 Jul 2021 18:56:32 +0900 Subject: [PATCH 142/228] add japanse assignment --- 2-Regression/1-Tools/translations/README.ja.md | 2 +- 2-Regression/1-Tools/translations/assignment.ja.md | 13 +++++++++++++ 2-Regression/2-Data/translations/README.ja.md | 2 +- 2-Regression/2-Data/translations/assignment.ja.md | 9 +++++++++ 2-Regression/3-Linear/translations/README.ja.md | 2 +- 2-Regression/3-Linear/translations/assignment.ja.md | 11 +++++++++++ 6 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 2-Regression/1-Tools/translations/assignment.ja.md create mode 100644 2-Regression/2-Data/translations/assignment.ja.md create mode 100644 2-Regression/3-Linear/translations/assignment.ja.md diff --git a/2-Regression/1-Tools/translations/README.ja.md b/2-Regression/1-Tools/translations/README.ja.md index 427ef7b0..bc264cb6 100644 --- a/2-Regression/1-Tools/translations/README.ja.md +++ b/2-Regression/1-Tools/translations/README.ja.md @@ -215,4 +215,4 @@ s1 tc: T細胞(白血球の一種) ## 課題 -[異なるデータセット](../assignment.md) +[異なるデータセット](./assignment.ja.mds) diff --git a/2-Regression/1-Tools/translations/assignment.ja.md b/2-Regression/1-Tools/translations/assignment.ja.md new file mode 100644 index 00000000..6f7d9ef0 --- /dev/null +++ b/2-Regression/1-Tools/translations/assignment.ja.md @@ -0,0 +1,13 @@ +# Scikit-learnを用いた回帰 + +## 課題の指示 + +Scikit-learnで[Linnerud dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) を見てみましょう。このデータセットは複数の[ターゲット](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset) を持っています。フィットネスクラブで20人の中年男性から収集した3つの運動変数(data)と3つの生理変数(target)で構成されています。 + +あなた自身の言葉で、ウエストラインと腹筋の回数との関係をプロットする回帰モデルの作成方法を説明してください。このデータセットの他のデータポイントについても同様に説明してみてください。 + +## ルーブリック + +| 指標 | 模範的 | 適切 | 要改善 | +| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- | +| 説明文を提出してください。 | よく書けた文章が提出されている。 | いくつかの文章が提出されている。 | 文章が提出されていません。 | diff --git a/2-Regression/2-Data/translations/README.ja.md b/2-Regression/2-Data/translations/README.ja.md index 07fd923b..f6e77d4f 100644 --- a/2-Regression/2-Data/translations/README.ja.md +++ b/2-Regression/2-Data/translations/README.ja.md @@ -203,4 +203,4 @@ Matplotlibが提供する様々なタイプのビジュアライゼーション ## 課題 -[ビジュアライゼーションの探求](../assignment.md) +[ビジュアライゼーションの探求](./assignment.ja.md) diff --git a/2-Regression/2-Data/translations/assignment.ja.md b/2-Regression/2-Data/translations/assignment.ja.md new file mode 100644 index 00000000..1838d76e --- /dev/null +++ b/2-Regression/2-Data/translations/assignment.ja.md @@ -0,0 +1,9 @@ +# ビジュアライゼーションの活用 + +データのビジュアライゼーションには、いくつかの異なるライブラリがあります。このレッスンのPumpkinデータを使って、matplotlibとseabornを使って、サンプルノートブックでいくつかのビジュアライゼーションを作ってみましょう。どのライブラリが作業しやすいでしょうか? + +## ルーブリック + +| 指標 | 模範的 | 適切 | 要改善 | +| -------- | --------- | -------- | ----------------- | +| | ノートブックには2つの活用法/可視化方法が示されている。 | ノートブックには1つの活用法/可視化方法が示されている。 | ノートブックが提出されていない。 | diff --git a/2-Regression/3-Linear/translations/README.ja.md b/2-Regression/3-Linear/translations/README.ja.md index 3c87a736..cc3c3b7b 100644 --- a/2-Regression/3-Linear/translations/README.ja.md +++ b/2-Regression/3-Linear/translations/README.ja.md @@ -331,4 +331,4 @@ Scikit-learnには、多項式回帰モデルを構築するための便利なAP ## 課題 -[モデル構築](../assignment.md) +[モデル構築](./assignment.ja.md) diff --git a/2-Regression/3-Linear/translations/assignment.ja.md b/2-Regression/3-Linear/translations/assignment.ja.md new file mode 100644 index 00000000..d0f8a4c5 --- /dev/null +++ b/2-Regression/3-Linear/translations/assignment.ja.md @@ -0,0 +1,11 @@ +# 回帰モデルの作成 + +## 課題の指示 + +このレッスンでは、線形回帰と多項式回帰の両方を使ってモデルを構築する方法を紹介しました。この知識をもとに、自分でデータセットを探すか、Scikit-learnのビルトインセットの1つを使用して、新しいモデルを構築してください。手法を選んだ理由をノートブックに書き、モデルの精度を示してください。精度が十分でない場合は、その理由も説明してください。 + +## ルーブリック + +| 指標 | 模範的 | 適切 | 要改善 | +| -------- | ------------------------------------------------------------ | -------------------------- | ------------------------------- | +| | ドキュメント化されたソリューションを含む完全なノートブックを提示する。 | 解決策が不完全である。 | 解決策に欠陥またはバグがある。 | From 17956345de401bdf8a37c1719ff4f8f2c929e987 Mon Sep 17 00:00:00 2001 From: kenya-sk Date: Thu, 22 Jul 2021 18:57:55 +0900 Subject: [PATCH 143/228] add japanse assignment --- 2-Regression/1-Tools/translations/README.ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/1-Tools/translations/README.ja.md b/2-Regression/1-Tools/translations/README.ja.md index bc264cb6..f65832c8 100644 --- a/2-Regression/1-Tools/translations/README.ja.md +++ b/2-Regression/1-Tools/translations/README.ja.md @@ -215,4 +215,4 @@ s1 tc: T細胞(白血球の一種) ## 課題 -[異なるデータセット](./assignment.ja.mds) +[異なるデータセット](./assignment.ja.md) From c0c5de60bfc8e2ceab69a72f20f6e5e981d104da Mon Sep 17 00:00:00 2001 From: kenya-sk Date: Thu, 22 Jul 2021 18:59:39 +0900 Subject: [PATCH 144/228] add japanse assignment --- 2-Regression/2-Data/translations/assignment.ja.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/2-Data/translations/assignment.ja.md b/2-Regression/2-Data/translations/assignment.ja.md index 1838d76e..09f344d6 100644 --- a/2-Regression/2-Data/translations/assignment.ja.md +++ b/2-Regression/2-Data/translations/assignment.ja.md @@ -1,4 +1,4 @@ -# ビジュアライゼーションの活用 +# ビジュアライゼーションの探求 データのビジュアライゼーションには、いくつかの異なるライブラリがあります。このレッスンのPumpkinデータを使って、matplotlibとseabornを使って、サンプルノートブックでいくつかのビジュアライゼーションを作ってみましょう。どのライブラリが作業しやすいでしょうか? From 5d3b11f4ed69575369c2373c14c4831e73206624 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Thu, 22 Jul 2021 18:31:08 +0300 Subject: [PATCH 145/228] Update links to translated lessons --- 4-Classification/translations/README.tr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/4-Classification/translations/README.tr.md b/4-Classification/translations/README.tr.md index 347999d8..9514dd0a 100644 --- a/4-Classification/translations/README.tr.md +++ b/4-Classification/translations/README.tr.md @@ -16,8 +16,8 @@ Bu bölümde, bu eğitim programının tamamen regresyon üzerine olan ilk böl 1. [Sınıflandırmaya giriş](../1-Introduction/translations/README.tr.md) 2. [Daha fazla sınıflandırıcı](../2-Classifiers-1/translations/README.tr.md) -3. [Hatta daha fazla sınıflandırıcı](../3-Classifiers-2/README.md) -4. [Uygulamalı Makine Öğrenimi: bir web uygulaması oluşturun](../4-Applied/README.md) +3. [Hatta daha fazla sınıflandırıcı](../3-Classifiers-2/translations/README.tr.md) +4. [Uygulamalı Makine Öğrenimi: bir web uygulaması oluşturun](../4-Applied/translations/README.tr.md) ## Katkıda bulunanlar "Sınıflandırmaya başlarken" [Cassie Breviu](https://www.twitter.com/cassieview) ve [Jen Looper](https://www.twitter.com/jenlooper) tarafından :hearts: ile yazılmıştır. From 15386734715f270d5ddf507b889468fcccca9e60 Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Thu, 22 Jul 2021 18:32:03 +0300 Subject: [PATCH 146/228] Add Classifiers-2 translated to Turkish --- .../3-Classifiers-2/translations/README.tr.md | 235 ++++++++++++++++++ .../translations/assignment.tr.md | 11 + 2 files changed, 246 insertions(+) create mode 100644 4-Classification/3-Classifiers-2/translations/README.tr.md create mode 100644 4-Classification/3-Classifiers-2/translations/assignment.tr.md diff --git a/4-Classification/3-Classifiers-2/translations/README.tr.md b/4-Classification/3-Classifiers-2/translations/README.tr.md new file mode 100644 index 00000000..24ea3dfd --- /dev/null +++ b/4-Classification/3-Classifiers-2/translations/README.tr.md @@ -0,0 +1,235 @@ +# Mutfak sınıflandırıcıları 2 + +Bu ikinci sınıflandırma dersinde, sayısal veriyi sınıflandırmak için daha fazla yöntem öğreneceksiniz. Ayrıca, bir sınıflandırıcıyı diğerlerine tercih etmenin sonuçlarını da öğreneceksiniz. + +## [Ders öncesi kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/23/?loc=tr) + +### Ön koşul + +Önceki dersleri tamamladığınızı ve bu 4-ders klasörünün kökündeki `data` klasörünüzdeki _cleaned_cuisines.csv_ adlı veri setini temizlediğinizi varsayıyoruz. + +### Hazırlık + +Temizlenmiş veri setiyle _notebook.ipynb_ dosyanızı yükledik ve model oluşturma sürecine hazır olması için X ve y veri iskeletlerine böldük. + +## Bir sınıflandırma haritası + +Daha önce, Microsoft'un kopya kağıdını kullanarak veri sınıflandırmanın çeşitli yollarını öğrendiniz. Scikit-learn de buna benzer, öngörücülerinizi (sınıflandırıcı) sınırlandırmanıza ilaveten yardım edecek bir kopya kağıdı sunar. + +![Scikit-learn'den Makine Öğrenimi Haritası](../images/map.png) +> Tavsiye: [Bu haritayı çevrim içi ziyaret edin](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ve rotayı seyrederken dokümantasyonu okumak için tıklayın. + +### Plan + +Verinizi iyice kavradığınızda bu harita çok faydalı olacaktır, çünkü karara ulaşırken rotalarında 'yürüyebilirsiniz': + +- >50 adet örneğimiz var +- Bir kategori öngörmek istiyoruz +- Etiketlenmiş veri var +- 100 binden az örneğimiz var +- :sparkles: Bir Linear SVC (Doğrusal Destek Vektör Sınıflandırma) seçebiliriz +- Eğer bu işe yaramazsa, verimiz sayısal olduğundan + - :sparkles: Bir KNeighbors (K Komşu) Sınıflandırıcı deneyebiliriz + - Eğer bu işe yaramazsa, :sparkles: SVC (Destek Vektör Sınıflandırma) ve :sparkles: Ensemble (Topluluk) Sınıflandırıcılarını deneyin + +Bu çok faydalı bir yol. + +## Alıştırma - veriyi bölün + +Bu yolu takip ederek, kullanmak için bazı kütüphaneleri alarak başlamalıyız. + +1. Gerekli kütüphaneleri alın: + + ```python + from sklearn.neighbors import KNeighborsClassifier + from sklearn.linear_model import LogisticRegression + from sklearn.svm import SVC + from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier + from sklearn.model_selection import train_test_split, cross_val_score + from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve + import numpy as np + ``` + +1. Eğitme ve sınama verinizi bölün: + + ```python + X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) + ``` + +## Linear SVC Sınıflandırıcısı + +Destek Vektör kümeleme (SVC), makine öğrenimi yöntemlerinden Destek Vektör Makinelerinin (Aşağıda bunun hakkında daha fazla bilgi edineceksiniz.) alt dallarından biridir. Bu yöntemde, etiketleri nasıl kümeleyeceğinize karar vermek için bir 'kernel' seçebilirsiniz. 'C' parametresi 'düzenlileştirme'yi ifade eder ve parametrelerin etkilerini düzenler. Kernel (çekirdek) [birçoğundan](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC) biri olabilir; burada, doğrusal SVC leveraj ettiğimizden emin olmak için, 'linear' olarak ayarlıyoruz. Olasılık varsayılan olarak 'false' olarak ayarlıdır; burada, olasılık öngörülerini toplamak için, 'true' olarak ayarlıyoruz. Rastgele durumu (random state), olasılıkları elde etmek için veriyi karıştırmak (shuffle) üzere, '0' olarak ayarlıyoruz. + +### Alıştırma - doğrusal SVC uygulayın + +Sınıflandırıcıardan oluşan bir dizi oluşturarak başlayın. Sınadıkça bu diziye ekleme yapacağız. + +1. Liner SVC ile başlayın: + + ```python + C = 10 + # Create different classifiers. + classifiers = { + 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0) + } + ``` + +2. Linear SVC kullanarak modelinizi eğitin ve raporu bastırın: + + ```python + n_classifiers = len(classifiers) + + for index, (name, classifier) in enumerate(classifiers.items()): + classifier.fit(X_train, np.ravel(y_train)) + + y_pred = classifier.predict(X_test) + accuracy = accuracy_score(y_test, y_pred) + print("Accuracy (train) for %s: %0.1f%% " % (name, accuracy * 100)) + print(classification_report(y_test,y_pred)) + ``` + + Sonuç oldukça iyi: + + ```output + Accuracy (train) for Linear SVC: 78.6% + precision recall f1-score support + + chinese 0.71 0.67 0.69 242 + indian 0.88 0.86 0.87 234 + japanese 0.79 0.74 0.76 254 + korean 0.85 0.81 0.83 242 + thai 0.71 0.86 0.78 227 + + accuracy 0.79 1199 + macro avg 0.79 0.79 0.79 1199 + weighted avg 0.79 0.79 0.79 1199 + ``` + +## K-Komşu sınıflandırıcısı + +K-Komşu, makine öğrenimi yöntemlerinden "neighbors" (komşular) ailesinin bir parçasıdır ve gözetimli ve gözetimsiz öğrenmenin ikisinde de kullanılabilir. Bu yöntemde, önceden tanımlanmış sayıda nokta üretilir ve veri bu noktalar etrafında, genelleştirilmiş etiketlerin veriler için öngörülebileceği şekilde toplanır. + +### Alıştırma - K-Komşu sınıflandırıcısını uygulayın + +Önceki sınıflandırıcı iyiydi ve veriyle iyi çalıştı, ancak belki daha iyi bir doğruluk elde edebiliriz. K-Komşu sınıflandırıcısını deneyin. + +1. Sınıflandırıcı dizinize bir satır ekleyin (Linear SVC ögesinden sonra bir virgül ekleyin): + + ```python + 'KNN classifier': KNeighborsClassifier(C), + ``` + + Sonuç biraz daha kötü: + + ```output + Accuracy (train) for KNN classifier: 73.8% + precision recall f1-score support + + chinese 0.64 0.67 0.66 242 + indian 0.86 0.78 0.82 234 + japanese 0.66 0.83 0.74 254 + korean 0.94 0.58 0.72 242 + thai 0.71 0.82 0.76 227 + + accuracy 0.74 1199 + macro avg 0.76 0.74 0.74 1199 + weighted avg 0.76 0.74 0.74 1199 + ``` + + :white_check_mark: [K-Komşu](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) hakkında bilgi edinin + +## Destek Vektör Sınıflandırıcısı + +Destek Vektör sınıflandırıcıları, makine öğrenimi yöntemlerinden [Destek Vektörü Makineleri](https://wikipedia.org/wiki/Support-vector_machine) ailesinin bir parçasıdır ve sınıflandırma ve regresyon görevlerinde kullanılır. SVM'ler (Destek Vektör Makineleri), iki kategori arasındaki uzaklığı en yükseğe getirmek için eğitme örneklerini boşluktaki noktalara eşler. Sonraki veri, kategorisinin öngörülebilmesi için bu boşluğa eşlenir. + +### Alıştırma - bir Destek Vektör Sınıflandırıcısı uygulayın + +Bir Destek Vektör Sınıflandırıcısı ile daha iyi bir doğruluk elde etmeye çalışalım. + +1. K-Neighbors ögesinden sonra bir virgül ekleyin, sonra bu satırı ekleyin: + + ```python + 'SVC': SVC(), + ``` + + Sonuç oldukça iyi! + + ```output + Accuracy (train) for SVC: 83.2% + precision recall f1-score support + + chinese 0.79 0.74 0.76 242 + indian 0.88 0.90 0.89 234 + japanese 0.87 0.81 0.84 254 + korean 0.91 0.82 0.86 242 + thai 0.74 0.90 0.81 227 + + accuracy 0.83 1199 + macro avg 0.84 0.83 0.83 1199 + weighted avg 0.84 0.83 0.83 1199 + ``` + + :white_check_mark: [Destek Vektörleri](https://scikit-learn.org/stable/modules/svm.html#svm) hakkında bilgi edinin + +## Topluluk Sınıflandırıcıları + +Önceki sınamanın oldukça iyi olmasına rağmen rotayı sonuna kadar takip edelim. Bazı Topluluk Sınıflandırıcılarını deneyelim, özellikle Random Forest ve AdaBoost'u: + +```python +'RFST': RandomForestClassifier(n_estimators=100), + 'ADA': AdaBoostClassifier(n_estimators=100) +``` + +Sonuç çok iyi, özellikle Random Forest sonuçları: + +```output +Accuracy (train) for RFST: 84.5% + precision recall f1-score support + + chinese 0.80 0.77 0.78 242 + indian 0.89 0.92 0.90 234 + japanese 0.86 0.84 0.85 254 + korean 0.88 0.83 0.85 242 + thai 0.80 0.87 0.83 227 + + accuracy 0.84 1199 + macro avg 0.85 0.85 0.84 1199 +weighted avg 0.85 0.84 0.84 1199 + +Accuracy (train) for ADA: 72.4% + precision recall f1-score support + + chinese 0.64 0.49 0.56 242 + indian 0.91 0.83 0.87 234 + japanese 0.68 0.69 0.69 254 + korean 0.73 0.79 0.76 242 + thai 0.67 0.83 0.74 227 + + accuracy 0.72 1199 + macro avg 0.73 0.73 0.72 1199 +weighted avg 0.73 0.72 0.72 1199 +``` + +:white_check_mark: [Topluluk Sınıflandırıcıları](https://scikit-learn.org/stable/modules/ensemble.html) hakkında bilgi edinin + +Makine Öğreniminin bu yöntemi, modelin kalitesini artırmak için, "birçok temel öngörücünün öngörülerini birleştirir." Bizim örneğimizde, Random Trees ve AdaBoost kullandık. + +- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest) bir ortalama alma yöntemidir, aşırı öğrenmeden kaçınmak için rastgelelikle doldurulmuş 'karar ağaçları'ndan oluşan bir 'orman' oluşturur. n_estimators parametresi, ağaç sayısı olarak ayarlanmaktadır. + +- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html), bir sınıflandıcıyı bir veri setine uydurur ve sonra o sınıflandırıcının kopyalarını aynı veri setine uydurur. Yanlış sınıflandırılmış ögelerin ağırlıklarına odaklanır ve bir sonraki sınıflandırıcının düzeltmesi için uydurma/oturtmayı ayarlar. + +--- + +## :rocket: Meydan okuma + +Bu yöntemlerden her biri değiştirebileceğiniz birsürü parametre içeriyor. Her birinin varsayılan parametrelerini araştırın ve bu parametreleri değiştirmenin modelin kalitesi için ne anlama gelebileceği hakkında düşünün. + +## [Ders sonrası kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/24/?loc=tr) + +## Gözden Geçirme & Kendi Kendine Çalışma + +Bu derslerde çok fazla jargon var, bu yüzden yararlı terminoloji içeren [bu listeyi](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-15963-cxa) incelemek için bir dakika ayırın. + +## Ödev + +[Parametre oyunu](assignment.tr.md) \ No newline at end of file diff --git a/4-Classification/3-Classifiers-2/translations/assignment.tr.md b/4-Classification/3-Classifiers-2/translations/assignment.tr.md new file mode 100644 index 00000000..fbc74092 --- /dev/null +++ b/4-Classification/3-Classifiers-2/translations/assignment.tr.md @@ -0,0 +1,11 @@ +# Parametre Oyunu + +## Yönergeler + +Bu sınıflandırıcılarla çalışırken varsayılan olarak ayarlanmış birçok parametre var. VS Code'daki Intellisense, onları derinlemesine incelemenize yardımcı olabilir. Bu dersteki Makine Öğrenimi Sınıflandırma Yöntemlerinden birini seçin ve çeşitli parametre değerlerini değiştirerek modelleri yeniden eğitin. Neden bazı değişikliklerin modelin kalitesini artırdığını ve bazılarının azalttığını açıklayan bir not defteri yapın. Cevabınız açıklayıcı olmalı. + +## Rubrik + +| Ölçüt | Örnek Alınacak Nitelikte | Yeterli | Geliştirme Gerekli | +| -------- | ---------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ------------------------------- | +| | Bir sınıflandırıcının tamamen oluşturulduğu ve parametrelerinin değiştirilip yazı kutularında açıklandığı bir not defteri sunulmuş | Not defteri kısmen sunulmuş veya az açıklanmış | Not defteri hatalı veya kusurlu | \ No newline at end of file From c7cc3cadd62e920ae45ab9160f39488e77b80b0e Mon Sep 17 00:00:00 2001 From: Buse Orak Date: Thu, 22 Jul 2021 18:33:18 +0300 Subject: [PATCH 147/228] Add Applied lesson translated to Turkish --- .../4-Applied/translations/README.tr.md | 336 ++++++++++++++++++ .../4-Applied/translations/assignment.tr.md | 11 + 2 files changed, 347 insertions(+) create mode 100644 4-Classification/4-Applied/translations/README.tr.md create mode 100644 4-Classification/4-Applied/translations/assignment.tr.md diff --git a/4-Classification/4-Applied/translations/README.tr.md b/4-Classification/4-Applied/translations/README.tr.md new file mode 100644 index 00000000..12423ee0 --- /dev/null +++ b/4-Classification/4-Applied/translations/README.tr.md @@ -0,0 +1,336 @@ +# Mutfak Önerici Bir Web Uygulaması Oluşturun + +Bu derste, önceki derslerde öğrendiğiniz bazı yöntemleri kullanarak, bu seri boyunca kullanılan leziz mutfak veri setiyle bir sınıflandırma modeli oluşturacaksınız. Ayrıca, kaydettiğiniz modeli kullanmak üzere, Onnx'un web çalışma zamanından yararlanan küçük bir web uygulaması oluşturacaksınız. + +Makine öğreniminin en faydalı pratik kullanımlarından biri, önerici/tavsiyeci sistemler oluşturmaktır ve bu yöndeki ilk adımınızı bugün atabilirsiniz! + +[![Önerici Sistemler Tanıtımı](https://img.youtube.com/vi/giIXNoiqO_U/0.jpg)](https://youtu.be/giIXNoiqO_U "Recommendation Systems Introduction") + +> :movie_camera: Video için yukarıdaki fotoğrafa tıklayın: Andrew Ng introduces recommendation system design (Andrew Ng önerici sistem tasarımını tanıtıyor) + +## [Ders öncesi kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/25/?loc=tr) + +Bu derste şunları öğreneceksiniz: + +- Bir model nasıl oluşturulur ve Onnx modeli olarak kaydedilir +- Modeli denetlemek için Netron nasıl kullanılır +- Modeliniz çıkarım için bir web uygulamasında nasıl kullanılabilir + +## Modelinizi oluşturun + +Uygulamalı Makine Öğrenimi sistemleri oluşturmak, bu teknolojilerden kendi iş sistemleriniz için yararlanmanızın önemli bir parçasıdır. Onnx kullanarak modelleri kendi web uygulamalarınız içerisinde kullanabilirsiniz (Böylece gerektiğinde çevrim dışı bir içerikte kullanabilirsiniz.). + +[Önceki bir derste](../../../3-Web-App/1-Web-App/README.md) UFO gözlemleriyle ilgili bir Regresyon modeli oluşturmuş, "pickle" kullanmış ve bir Flask uygulamasında kullanmıştınız. Bu mimariyi bilmek çok faydalıdır, ancak bu tam yığın Python uygulamasıdır ve bir JavaScript uygulaması kullanımı gerekebilir. + +Bu derste, çıkarım için temel JavaScript tabanlı bir sistem oluşturabilirsiniz. Ancak öncelikle, bir model eğitmeniz ve Onnx ile kullanım için dönüştürmeniz gerekmektedir. + +## Alıştırma - sınıflandırma modelini eğitin + +Öncelikle, kullandığımız temiz mutfak veri setini kullanarak bir sınıflandırma modeli eğitin. + +1. Faydalı kütüphaneler almakla başlayın: + + ```python + !pip install skl2onnx + import pandas as pd + ``` + + Scikit-learn modelinizi Onnx biçimine dönüştürmeyi sağlamak için '[skl2onnx](https://onnx.ai/sklearn-onnx/)'a ihtiyacınız var. + +1. Sonra, önceki derslerde yaptığınız şekilde, `read_csv()` kullanarak bir CSV dosyasını okuyarak veriniz üzerinde çalışın: + + ```python + data = pd.read_csv('../data/cleaned_cuisines.csv') + data.head() + ``` + +1. İlk iki gereksiz sütunu kaldırın ve geriye kalan veriyi 'X' olarak kaydedin: + + ```python + X = data.iloc[:,2:] + X.head() + ``` + +1. Etiketleri 'y' olarak kaydedin: + + ```python + y = data[['cuisine']] + y.head() + + ``` + +### Eğitme rutinine başlayın + +İyi doğruluğu olan 'SVC' kütüphanesini kullanacağız. + +1. Scikit-learn'den uygun kütüphaneleri alın: + + ```python + from sklearn.model_selection import train_test_split + from sklearn.svm import SVC + from sklearn.model_selection import cross_val_score + from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report + ``` + +1. Eğitme ve sınama kümelerini ayırın: + + ```python + X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3) + ``` + +1. Önceki derste yaptığınız gibi bir SVC Sınıflandırma modeli oluşturun: + + ```python + model = SVC(kernel='linear', C=10, probability=True,random_state=0) + model.fit(X_train,y_train.values.ravel()) + ``` + +1. Şimdi, `predict()` fonksiyonunu çağırarak modelinizi sınayın: + + ```python + y_pred = model.predict(X_test) + ``` + +1. Modelin kalitesini kontrol etmek için bir sınıflandırma raporu bastırın: + + ```python + print(classification_report(y_test,y_pred)) + ``` + + Daha önce de gördüğümüz gibi, doğruluk iyi: + + ```output + precision recall f1-score support + + chinese 0.72 0.69 0.70 257 + indian 0.91 0.87 0.89 243 + japanese 0.79 0.77 0.78 239 + korean 0.83 0.79 0.81 236 + thai 0.72 0.84 0.78 224 + + accuracy 0.79 1199 + macro avg 0.79 0.79 0.79 1199 + weighted avg 0.79 0.79 0.79 1199 + ``` + +### Modelinizi Onnx'a dönüştürün + +Dönüştürmeyi uygun Tensor sayısıyla yaptığınıza emin olun. Bu veri seti listelenmiş 380 malzeme içeriyor, dolayısıyla bu sayıyı `FloatTensorType` içinde belirtmeniz gerekiyor: + +1. 380 tensor sayısını kullanarak dönüştürün. + + ```python + from skl2onnx import convert_sklearn + from skl2onnx.common.data_types import FloatTensorType + + initial_type = [('float_input', FloatTensorType([None, 380]))] + options = {id(model): {'nocl': True, 'zipmap': False}} + ``` + +1. onx'u oluşturun ve **model.onnx** diye bir dosya olarak kaydedin: + + ```python + onx = convert_sklearn(model, initial_types=initial_type, options=options) + with open("./model.onnx", "wb") as f: + f.write(onx.SerializeToString()) + ``` + + > Not olarak, dönüştürme senaryonuzda [seçenekler](https://onnx.ai/sklearn-onnx/parameterized.html) geçirebilirsiniz. Biz bu durumda, 'nocl' parametresini True ve 'zipmap' parametresini 'False' olarak geçirdik. Bu bir sınıflandırma modeli olduğundan, bir sözlük listesi üreten (gerekli değil) ZipMap'i kaldırma seçeneğiniz var. `nocl`, modelde sınıf bilgisinin barındırılmasını ifade eder. `nocl` parametresini 'True' olarak ayarlayarak modelinizin boyutunu küçültün. + +Tüm not defterini çalıştırmak şimdi bir Onnx modeli oluşturacak ve bu klasöre kaydedecek. + +## Modelinizi inceleyin + +Onnx modelleri Visual Studio code'da pek görünür değiller ama birçok araştırmacının modelin doğru oluştuğundan emin olmak üzere modeli görselleştirmek için kullandığı çok iyi bir yazılım var. [Netron](https://github.com/lutzroeder/Netron)'u indirin ve model.onnx dosyanızı açın. 380 girdisi ve sınıflandırıcısıyla basit modelinizin görselleştirildiğini görebilirsiniz: + +![Netron görseli](../images/netron.png) + +Netron, modellerinizi incelemek için faydalı bir araçtır. + +Şimdi, bu düzenli modeli web uygulamanızda kullanmak için hazırsınız. Buzdolabınıza baktığınızda ve verilen bir mutfak için artık malzemelerin hangi birleşimini kullanabileceğinizi bulmayı denediğinizde kullanışlı olacak bir uygulama oluşturalım. Bu birleşim modeliniz tarafından belirlenecek. + +## Önerici bir web uygulaması oluşturun + +Modelinizi doğrudan bir web uygulamasında kullanabilirsiniz. Bu mimari, modelinizi yerelde ve hatta gerektiğinde çevrim dışı çalıştırabilmenizi de sağlar. `model.onnx` dosyanızı kaydettiğiniz klasörde `index.html` dosyasını oluşturarak başlayın. + +1. Bu _index.html_ dosyasında aşağıdaki işaretlemeyi ekleyin: + + ```html + + +
+ Cuisine Matcher +
+ + ... + + + ``` + +1. Şimdi, `body` etiketleri içinde çalışarak, bazı malzemeleri ifade eden bir onay kutusu listesi göstermek için küçük bir işaretleme ekleyin: + + ```html +

Check your refrigerator. What can you create?

+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ +
+ ``` + + Her bir onay kutusuna bir değer verildiğine dikkat edin. Bu, veri setine göre malzemenin bulunduğu indexi ifade eder. Örneğin bu alfabetik listede elma beşinci sütundadır, dolayısıyla onun değeri '4'tür çünkü saymaya 0'dan başlıyoruz. Verilen malzemenin indexini görmek için [malzemeler tablosuna](../../data/ingredient_indexes.csv) başvurabilirsiniz. + + index.html dosyasındaki işinize devam ederek, son `
` kapamasından sonra modelinizin çağrılacağı bir script bloğu ekleyin. + +1. Öncelikle, [Onnx Runtime](https://www.onnxruntime.ai/) alın: + + ```html + + ``` + + > Onnx Runtime, Onnx modelinizin, eniyileştirmeler ve kullanmak için bir API da dahil olmak üzere, geniş bir donanım platform yelpazesinde çalışmasını sağlamak için kullanılır. + +1. Runtime uygun hale geldiğinde, onu çağırabilirsiniz: + + ```javascript + + ``` + +Bu kodda birçok şey gerçekleşiyor: + +1. Ayarlanması ve çıkarım için modele gönderilmesi için, bir malzeme onay kutusunun işaretli olup olmadığına bağlı 380 muhtemel değerden (ya 1 ya da 0) oluşan bir dizi oluşturdunuz. +2. Onay kutularından oluşan bir dizi ve uygulama başladığında çağrılan bir `init` fonksiyonunda işaretli olup olmadıklarını belirleme yolu oluşturdunuz. Eğer onay kutusu işaretliyse, `ingredients` dizisi, seçilen malzemeyi ifade etmek üzere değiştirilir. +3. Herhangi bir onay kutusunun işaretli olup olmadığını kontrol eden bir `testCheckboxes` fonksiyonu oluşturdunuz. +4. Düğmeye basıldığında o fonksiyonu kullanıyor ve eğer herhangi bir onay kutusu işaretlenmişse çıkarıma başlıyorsunuz. +5. Çıkarım rutini şunları içerir: + 1. Makinenin eşzamansız bir yüklemesini ayarlama + 2. Modele göndermek için bir Tensor yapısı oluşturma + 3. Modelinizi eğitirken oluşturduğunuz `float_input` (Bu adı doğrulamak için Netron kullanabilirsiniz.) girdisini ifade eden 'feeds' oluşturma + 4. Bu 'feeds'i modele gönderme ve yanıt için bekleme + +## Uygulamanızı test edin + +index.html dosyanızın olduğu klasördeyken Visual Studio Code'da bir terminal açın. Global kapsamda `[http-server](https://www.npmjs.com/package/http-server)` indirilmiş olduğundan emin olun ve istemde `http-server` yazın. Bir yerel ana makine açılmalı ve web uygulamanızı görebilirsiniz. Çeşitli malzemeleri baz alarak hangi mutfağın önerildiğine bakın: + +![malzeme web uygulaması](../images/web-app.png) + +Tebrikler, birkaç değişkenle bir 'önerici' web uygulaması oluşturdunuz! Bu sistemi oluşturmak için biraz zaman ayırın! +## :rocket: Meydan okuma + +Web uygulamanız çok minimal, bu yüzden [ingredient_indexes](../../data/ingredient_indexes.csv) verisinden malzemeleri ve indexlerini kullanarak web uygulamanızı oluşturmaya devam edin. Verilen bir ulusal yemeği yapmak için hangi tat birleşimleri işe yarıyor? + +## [Ders sonrası kısa sınavı](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/26/?loc=tr) + +## Gözden Geçirme & Kendi Kendine Çalışma + +Bu dersin sadece yemek malzemeleri için bir öneri sistemi oluşturmanın olanaklarına değinmesiyle beraber, makine öğrenimi uygulamalarının bu alanı örnekler açısından çok zengin. Bu sistemlerin nasıl oluşturulduğu hakkında biraz daha okuyun: + +- https://www.sciencedirect.com/topics/computer-science/recommendation-engine +- https://www.technologyreview.com/2014/08/25/171547/the-ultimate-challenge-for-recommendation-engines/ +- https://www.technologyreview.com/2015/03/23/168831/everything-is-a-recommendation/ + +## Ödev + +[Yeni bir önerici oluşturun](assignment.tr.md) \ No newline at end of file diff --git a/4-Classification/4-Applied/translations/assignment.tr.md b/4-Classification/4-Applied/translations/assignment.tr.md new file mode 100644 index 00000000..f561bf48 --- /dev/null +++ b/4-Classification/4-Applied/translations/assignment.tr.md @@ -0,0 +1,11 @@ +# Bir önerici oluşturun + +## Yönergeler + +Bu dersteki alıştırmalar göz önünde bulundurulursa, Onnx Runtime ve dönüştürülmüş bir Onnx modeli kullanarak JavaScript tabanlı web uygulamasının nasıl oluşturulacağını artık biliyorsunuz. Bu derslerdeki verileri veya başka bir yerden kaynaklandırılmış verileri (Lütfen kaynakça verin.) kullanarak yeni bir önerici oluşturma deneyimi kazanın. Verilen çeşitli kişilik özellikleriyle bir evcil hayvan önericisi veya kişinin ruh haline göre bir müzik türü önericisi oluşturabilirsiniz. Yaratıcı olun! + +## Rubrik + +| Ölçüt | Örnek Alınacak Nitelikte | Yeterli | Geliştirme Gerekli | +| -------- | ---------------------------------------------------------------------- | ------------------------------------- | --------------------------------- | +| | İyi belgelenen ve çalışan bir web uygulaması ve not defteri sunulmuş | İkisinden biri eksik veya kusurlu | İkisi ya eksik ya da kusurlu | \ No newline at end of file From 97fee635f40080496b8f02feded656fee5b5b48e Mon Sep 17 00:00:00 2001 From: R-icntay <63848664+R-icntay@users.noreply.github.com> Date: Thu, 22 Jul 2021 22:49:43 +0300 Subject: [PATCH 148/228] Add R resources for lessons 05 and 06 --- 2-Regression/1-Tools/images/encouRage.jpg | Bin 0 -> 571629 bytes .../1-Tools/solution/lesson_1-R.ipynb | 436 ++++++++++++ 2-Regression/1-Tools/solution/lesson_1.Rmd | 250 +++++++ .../2-Data/images/dplyr_wrangling.png | Bin 0 -> 1064382 bytes 2-Regression/2-Data/images/unruly_data.jpg | Bin 0 -> 128312 bytes 2-Regression/2-Data/solution/lesson_2-R.ipynb | 644 ++++++++++++++++++ 2-Regression/2-Data/solution/lesson_2.Rmd | 345 ++++++++++ 7 files changed, 1675 insertions(+) create mode 100644 2-Regression/1-Tools/images/encouRage.jpg create mode 100644 2-Regression/1-Tools/solution/lesson_1-R.ipynb create mode 100644 2-Regression/1-Tools/solution/lesson_1.Rmd create mode 100644 2-Regression/2-Data/images/dplyr_wrangling.png create mode 100644 2-Regression/2-Data/images/unruly_data.jpg create mode 100644 2-Regression/2-Data/solution/lesson_2-R.ipynb create mode 100644 2-Regression/2-Data/solution/lesson_2.Rmd diff --git a/2-Regression/1-Tools/images/encouRage.jpg b/2-Regression/1-Tools/images/encouRage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e1d08fc267969b74a0926c504d4b8c74a9e4f5a8 GIT binary patch literal 571629 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

+l4Z1oN?n2x# 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%0D&5@^w~unmN}vc zw`S45PUvynu)EmSul9NGS=2h?V_W`S6V#D=&%U<{VyC61`CfVvqmeY^G&SR>`at5V z-YwIewn#+r;r_&+$w`uYJKH;b!%?rB(yb3MF7vK{;4$+6kyi5uR8=sHp>i*f$ zs%`9OK(F;>*ALYa21e&!XP!l9r>TxJyCQwWXdaaiQOlET8g9jTjR*N~Vst zzDDDGZp-r3U<`UTeMDnrUNK%~V2B zc6PWr)py-a)GIBUinb|ZEJ%I!%)RU~X3nv)x=uJVYTyS}O^;`(^Ig@%p4qKwhCNmN z+F`x9nNjy{)CP#6GCC}#lc~+WX%?W(CZ=EaBOw?yyQxCAH}2;70;3NySNG2=*_5Ml zzs5}K$j4vQ^IKM7DsPQl}mz{uQJe%~s>Ta#biRE)L{#FGU}NABhlb601`_k z+bFDIKSFj)S@rGp(2qEhU}31=)7Wj@xZ`HRuP!9TgB$_czwhcB>CN8KxG~i8h-y=C z^kbn>9~YvD1n;do_I;RqiEUPWn;1Q`zNkm&ukwpCa=O$*negKxzg0(h2|qI3r#A^a zS4$lT11Ft=auYk6h-;12SFsf=JtVs05$Csb!UKa`La*Cy-}`N4?u zAN5Rm#Eh^PBUi;W!!nTb1cTOSuc$%r76Z7LGbL-*hcfp^atvW z&VC2*+L~60=*3vg?Kqz}OnYb&kk-x2VRjXj_U1jb0?II`OLzxII~F0NM(@*@)8ov3 zj~-6RgD>aZkJn446vx~Tt8Se)Fi=s&$qBztbOd8;-d@WAy;;rR0LBiPWjZzvHI0`ULx}h??yhT1uaU7+4uT*2 zMSCE|RfOAr?x>arSLxs>{fic|HQjUC-KQ@gLMEsynxh%(+q1+q@E>xZb+QGlxz?O# zdv=+2gu?3c$8O7H565>i%8&rAu+AE#-jW4%cyaA%EXP$O?te!U4&b3ls+j9C!37wytj3WlWhmgKYtlDwdNkpnMVRLjL+e_;Q_e zn0P*B1v!E3tds9Awro6^Hz)%mVwfI@%XaW5N0EgGF2?Q-8hC7tnoCQMm|egD~+VDo zz*~!X1*PV5XJ6DTvp@OQ@rK92eLluHdjsdJXPRegZfY|sO+wz6nBQ5X?jUNP;^Or% zt$D>Xvm^xpRWy#Ee+T?`WBL%V7m@;2aa*n%Ej{Z{sL51|PWxC06h-)Jf&7S+p){Fc zZ@+mhsLD>>N?vst_wo58L}6xTOdOH^zI4CW4)k#hMc8rpe1-}i?@{XpGH+!<0HQcZ zhpBlZ-?EZ1;u0iYz-C_! zf1VYO5n8LG@hqwcWsrgY4V5p;bWCSLSn?Nbf+nxTD_GXHu94S3|IJP?h_dL0b&JV* zuFT9GkR^uj&ji0bGZ|X747!&ku7G7PZhPj3STmpYu` z1|f;VvK06OJwx+a9YOwDpzUy5rhkld3*NeR_7jTm&nT6FmQrWy*!S72{Ro7+i=64$ z58}Fq)p7rM{uiw*<3WuUZ!I7K_fz(NKNB3l826{&vbxXbTQXh2zT4xNr)?=mqjs-RxfPW zr*xJjxBP_+Q9EZYrDsjDR4Caxl(h$A0EwNy{fpM5z5waZOlMCY4(twO5ARp$FW!@r zNPiO3X)Q7YUs6U-=@U`*@59i{ROIC^FlbDyN~8`1a1TA?p{Cp z-|vopZxcIEbXm_bv13FPnM%(xcEt!17FOJM0FQSXwbU9V5isD49VLdl8bc;0QAi~B zADfNN??b5KfWo;CxE0B&w*wqLUvM`w=;g#&6@$i~e+%*>o}l_5Rd8>a;w-Rc2)!IX z|2eyA|C_N6S7XLey7DRF!l>Pyo>H3(op$?4Q~2wEHxL1I=CxBirzbiRU#FxLXykM{ zDd(M6z)wmky~$^(C4iGY*0rgL zjDG)~xp|)5GtGd|L++W0#oqdBO8jkp*M6$gu5AULocID_&GJTwy`9GjNdpB|GagR( zEjRvlWF2qgCiUK$XrmqfkfB~a;K zVoT@rp)|1L2J(E*>{;Hc`A}&UQ0j8a84mYKi0q5$fuK&2L~l8|a>6!ba#=04fx6bE z`!Q$je(SED%xz}w!L#i3WDc3?rSx**06}&fI}K->eLVxrBFL&v;{B(LEpjnYp zJo)D8-Cs1NtXAIx(I{>q9R3mO@XYmoK3Pjc2geXGF*ci}NSj76k2Vb^mwmq*_aeMT1vXk2=b%uCz;7cXD?Kc` z2j5W1!mi&rN*q7EoKX}qq`mGI{0fEEt?;f8vgd5oCFu7Vb9VzWJOAYk1ZYihP$*QL z9oEaGWK^Vw!+;g%aPka;16)wX7W3;AQBk~&yI||=O&x8pZuI}o#1rXgtgX=Aq= z?k;F^%^`ky-hKL`?zJqgR^5Sltu9UfzLX2`7YhXd(Hb6)5LpP*tPE?lY1?L(J_~yC zB-FzPGnu{p9WbDrzdXZ7$5>7mqNk){e}hef$EQb2Y7jcOA2a@Y1Vjxd={+m<06qV9 zgIK-g^Hkw=tkDovblonIk^mD5G5EQP*Y;R?n4TN!Xv;pz4*{eBB(D;FDd~k6;FjF5 z$g^}rHMs|g7|=o{_Tg0;V z6pRs|MPAa3158;$>HzRzSR1Ib0Uksc{L1iyJp9SG_dyy4>5jDiS01 zn80btoZhysuI1lM!?|*}@0_{#Bl-%twZ)r}gLCjv=;H4WxaH;NyS2L4kM8*v3^iD% zSL3=w-ZdwZ2t@Jpx=U}Ywprb`hs=7x#h-Z_AMqnr))ZTmt~VjdCz(}9nC)(X{bwDW z*rS+dlRyD^ty(J$%|Zu#7qL;#cRjonV%^u~-zkJg!N0bQ4H|xO5LQ$mdbe_atrRfy z$8GRn%4 zUqY}3>vCZ{4}K5ZQ>tGnv&fAjEO^)TbZ7PJ*;Aq#^;V87FS*O~G$KU|6yF%ok!g!D z?uZ6Jpq&=qzww%rid(vW3l}S+2=cgX2Ww7BnOzfJ`y{pYwsQI?t+a}Cl9Iq4wrrTF zSXqSwjHd?w6czt#kov%l($zHt7jC#KGb)mWSSf z63P4yk-!jsDhT0uY!s1rqA&Kn3gxSHbB@5jE1hU7*eCsAGk}IS&mw|1?l$_G z$YVhjnl{iE(6h?0ZbVe#t2SLltvMEaw=sl7BEstWMiB2KKP+wvUI%Gxka@HusXi#Z z1(L#EYFQ$;4cZ-yDWwbJ9-(ca0Kwcu=E{QE_~^X`bQS63eY+I-BW+$s=coSjYl`|3 zE|7Z-R0L=|lK|yQ2xwksak@9Vw&)}jE8W9TShCseocMfby2M5gN*?uBi* zIwr`BdC%GFff=Tr4qrHPs;pQkvI?eYExDcI;Y7C;_1yqncB0_z!*MgK`#B~1I@F|3 zdWwEoPwc1mHt~$BXiHuPD&{U(tt06Yx&5p7DPBiB6BGBrCP6jE4?GqtTBaqW6@?8E zW`Hi95*EGXl@hH#oI*!I-xDy(|5_wYyMfV|N*jW@DpeoT?412ootsJ(1NkX5hK=c* zCf~1io#Q2nL)IDMS(S7&z z1^;a(E#kNhux0ST#Jf>>9ws`dhE|8Q8v}UMHJyf3#Iwv6AN5USmfK#-l&W|O5nWWL zdU5R3h6M7pr1%Y%_zFszTsB7eonOiI;nD{;&a zR%X48r!B^i|L>4VfF)g@jJsylSuQ>k(y+juK;&R@y1RY60o+$>I&!F9d*&E99!^lS z1+P<^D^Ry?Oi8D_pduPO1L~nUd1iVh^PnkHJ?YXwVx|-~@JEr3DpUN14eCaP* zvli&l8ox>BZq9?OuLc4)&h!p+TKhUN9q5aehuHV$`5^+B>Xw(6>}|`#g8c8@M8Hw} zf1Wd-P(6982=sHj@ByW2-#NyBn_|~~RYBU(?F+?jmbdG&-Dw;j9cztE3?6{c^<@+Y zOBeZ?7zyWoV9g>t4g2bx;Rr4t+mD)3 zbCcW7o#o4Pu6uW;)&22ANXLVYb{AaNEHZ*ABV*Ij{N*O_i)xdYy3UBErwzU-=||lZgaC9@C-nW%gc}3 zX20uRV*+P$-)^SbracSKkale@Ae@)@II-wMK3}PG+^_%?^n&i!vHmo9C^22ciJDuf zMr8Y3V80<|l5qhpi|R_5n8)I5Rj%x>E2{A9g38_8fU+`>#?L2)W%IA?%1pOuz<}tx z6NEGP>>cvcx&0I*XI(Td?v4~(Yv%CWC(~2lq|tsPVqGM7H+8_qD|rg#!c|!mUS`d8 z+B@(l2)2o{n7sY3-IZnl&LaHb0-NF)JAx~+yR4cFd?mR$HlTKHgE^ijYQ8Y>l2J|7 zi&r5w{~Ss7xR=P)B%w-+Tu2R_%qEB70}k4axAA{ykN>+Yj1ijMR>j6kQ43y~xUv-k zpp|CmN~mNNc(;(U#6`M*MpEEOZyWNLHx(j0??>F!dt)VGEcAs~pjJ)y+QK^+xB1~h zLR13gkDQlwP8qCkEekrznVL_Bk9*xvi}t{Ez3VtPum)SNrU_}lZ!sOV75Y6DZ`}dZ z^8d7^*cn5%h-y1u^2aMYN95ZQ77Kdg-4C1QTcntq*+X$jc;6#Bmvu9#!?7VM>KXOo z>`QnOjkt25YdV!121_h7@A}Kk}<)2*jn-<8(-uXNR zyz+>h$E|EQrZoq+ZGApRLW)`@mHBB+HUKsLsWY{(LjN5&Q#C2N{m0}zfWIFDa8HnJ zvuiZzyIR6VEMj-T+_c0Y?dzlg)eGEc6>}S7$rKTOx9lk)W8;F;A925t6QK!4nl(SN z3vCm9Z;`mrpUBIzKtJMh8=h_|`%c5f0*1)+UEPfNkX^-Ys+PUeD0mc)eeFxCNzCQq zc=)lP3@+39_3<^D>d3EJdRd)4YXYO#Nq}!anok7pZ9F))&-OlW?H9 z0;x-BI7sv7yBpTBIhtUl>nesW%TIZ=`w(ubY~uIcs@Zu-PlhGG&E0<+4)+s@C~=|5 zY4gUdAaD=%1z4wtS-hNG+i<&14CQQ9{>)qW zi!(O@@E}=O+8(&F(`f`Ce~cy8?1C#e!BOMfGMdxWYop?wmYz1qKv?=O&p5cY!Wlh2 zii$-V{shVZQ#u=^ie0KO;QOPJMuoqp@+I{cLC0~fm@;tS5Dc6wi@%Z8}@YaQ#u*r7ad}54cHjBA6L!hZ7U)}`q1YK>28PV3!b~L zrj8o72yrLbexNcv7y3C$k!B|g0M3E;A5!Jiyu5_4RlRl1*g#GLv%oRv_1r0|)l;F> zk=CSEpfI+iB>|VUuh@XE8Nt-lWRLfB< zWhu{(&*hmeX=UyvmqUnp9tPg^z4u}dI}BHhPRbBo@^!~jVSmw3 zFR@)QL-O3&Te2v~)ZOH6=D9d4%~KyDMHL>ANqK$iSYl32tAr`Onxt&?Y)J<6si_b0 z{=5)ljw}I*v*fVNaXdNIX(H!J>wQ7d>Yr$E^^(zHU3J7LRnwHnKb^}C;N9&Y4zTp- zma?NYtIPUG9mL^4!JY|4Ijw?PsRcMrnWknyJ}Ps6Ecn!{S$(e5uP?TIf5B4LrU;Rt z8RzT(SzT6~UmM4<^yoJR$g(uobbdf-|^zi~k0<|18|u%mG)8xA`;v+NgLYEP3=u{iV6(Ea7^f_=~ABC+mS=#8K*SQceiAAJ4!am5z;>Ut9MwjZ&40@`;$ zg*g>V#dXm9H&l1cbeVJ^iL^e*#|m_7qgh&F`$$cSkl1MaJ-b6$kqWg+3)`@TK?Fp2 zBCCzL=>?6)@x62Tf6^Aym9~6utjN%jR*%L{Xs<**)MFvGko8YR1BbpctcQNR3A3`0 zDtgT-^-%KhF=vTWPrFd|EP~(K900r1*AOs=T`HrrEuXi-2t6dSmo4EqEL#q2J?-Gv zE~eVgugd|-nEy7mChd#WmmnG^{e|UrlT&a#8TG@BmbrpklFql7T61FCOm8v8?bh}f z9%U%tWXt^CEc(d<3W22H7VbcmX#EJ78@EOFhT1;dzu|59!vHE6-)r?4XZfX&yY$pP zcejP_>70@b$B}$}*NF_9gug=aB(5qhjm~Xo-?B)*W|#YrwR4HRC%|XE>-mbS!A!RD z!)BoV2x+2yOIs2|3vGNj2d=RrhAO<66tCjUI_0R-uG&^Zs|Q;ZrN$T9q8%pAQ2d_R zmK*bCtNR=w`I_0b>{o9Js52b@<&2n~xa$ z@2Z`C_fi+Sz0`1FHHd(FDkPNczZPeFCcc38l}!gC8S_$WB23^oBp1nrW8gGH*`uqY zO2tL!^~#`W-Fhi0!xvO!q1dnUQ?$3^i>8nk;Mn87fcx<-+2Au-O}L}B+t%SG$6?5a zfwLij9B*1(!wo|ObE~Gc5zf(aXHcNJ7ji#$17>d}x3BCMOM(6!tP!*|3 zIc*;No58bZ$EyryuuLec&OcjPf2z{5|G*W+FtM#tUCds^IJJIU2Tp)fSI5Odb#JOh z=~04eN|oh}1VMAsxQ%z@b{vf@R83VAr?d3O$bG0DSKdFV+Bm&Q6R^sCVu9q`B!SEd z`)NQJ@L_!ja*z8GS_#M}HGXy5;95Kgnp-$bd-M3{A%Oh*?fYGlR(VVms?(}N{F#0G zE?={Zf9pW>0MEIWr4O=(Cq9C1N9#rrB&VqWSio-%(x$%i%h-jz)_q+V23Aer4zMO zHBsh*Fr}i+;dOwT{9XjJ8o_?${4F!AEy?$STs~Gv@3@SmeLAZpr-ndkd;13A<{&~F z(NSujvt4wRXrh_m@THEt|0IZ3e9;a)o<#}%hnBu0+LJ*Fy)9KpbBAx|v-Ycbpx&sY z>lchn!0!1vB6c*vy}8A0n&~dl#^$o<{NRBrHDHR*nE0`gzy+@H=K8rlO9uz8)(m-~ z`ninJu72*zjUL#D@04S`18RqV9X@m1s^G`bpm^L0HsNUKJ`UU2qARaO?Ras$VA3Dq zDk!rSOPaN~l*`NEAe#`7AbEF(cSIwbJti@davfcCUJTQKYVTB>_V}M ztSI93_|h=~N|mcC_tT`v*aMP`6~-YqG0%7(z~l${1Yp_-Q>CV5vD$9Rd0jwgZAr7W zhqL{RGiW#9;{sT9On`MF^7zruJEBTwL5EAFyp09Q%zEIGvYvYwABH-84KH2M>JSiS z_goS`c6Uxk8v2!3ddyW8fa8(MRbZc*YK{#VR?7$g{>=ik5d{;VdL2;DOs!3frM!yh?MXm>wt8|-_N<@_o z9fG~nO!_A_Z+ymWXeO=}%Lg)v;;M`AFIa7dmtP&WJLhKz<5ZnRqqewRZ1OCvF!% z++GUYZc4OrGN9kZufGFvJcnJC7Te{o?&2p6i{&5J0mG*mkmE-^B}5j@GKps)_k!fL zDCS7mQv(M9=%D9d-qJOC)~AD7weX>@BU~MuD#aPO#%mU1->Y6QKO|?;@3Q@dE?A|6 zkl&9S=3uN|lNYh$j#}K#TnLTFX#qG@kwQt~M3KpC>)7rp7_K%JRILU`OoMrsE?+^%_!vz>Jok@RiyHO>IY~LcG(n84>VXx9-N{ch z0Ufz1OyU8YdXp6yD@0fRS(EE_a#S3`nZIqFJfW?mj&U)%5BD~hU@J!dl4@w;4;(+k zCt_(Nz&;7}o}*OGt~-PIC&_GM)<{;!0y@E5*aJ#^$x%ckli^a}{rOk_JO3)+{C@;F zVf8F#j9b5_W}fJs=(#Gh!D26oK66 zfDH)g6fqYNL=jIS~BjRwdsGZuD(Fe^GxvM85Eed5adE6fEu0oA-Un>E(qKl}CU8-x5`qecoOvn;pM z-f(WX1H;TCW1rZf*lPxbHCA6$5;eJGofVvB2@oPewinEbHqJv&~g}^j_$9R^wJL)heX65^DP+xwZKT5g0Gs*O=9bsPT-2|)Uh4x`ntLre%()^l; z+Jo1M)IyJV3(STe`GRH~3j>=V5(}Q(yG1cCNN_C1s!MQI7F8u2Y2-I5>$H%SiK+o}Yl;eM4-$fE|sZdk&qpHJG zJS;{<*XNH7IDgs-ruQ44%ht7>=}+DpI}||s%@8>>o4nC@1K_{;6u-1`kT5#U2!+1| zdO>>M3(jvqF9_V34@0rGzKCVDH3(%h?@pl6MXNlt=XPs{XxJ2Sv%7gevnxn=@tyXH zi#~@PQJJ_3orD-|z<-?W@jJ)*_*c;{0!0*-%E{u%tV*kO_B6vYWnZ{*?dPHCg>Ap4LJ?O~1#ztkI+Gj`HEE%Ch9@bH-xeqtCAV25 zweZC3QXjV^jyji`@ya~_xK&w)GuNd0zY)V=!mQNM7F|1+g`bcap}aX72*WM<{fPc` zQ+LgR&?w?}wbLa!En?wXt~jiPM8CjVqE-ETZ~3hVo-!%3mRPoF`sQcVH<7a=l)vwY z5;-tGFpJN)@|%4Y3nLM99|iQd%Svkd?}aQKQPg(@X9qx@zgfet!`27o1xx>nmT2OG zj#pz?3rBBp>%;X-n5^SIE<(7LfcHio=D!@=6c6wn4c5u>xhmnSs zi?$JZ99D;QgV@3t0hx}ePCCkoDTa!{x$IVG&$%S;g%!9XG+yPC~ zQM||3Pon#~084JyxP)2uJUWm1dN?>-UPwq;)RtjVwo< zvmW+blWHrN!IUjwzDc&s^j5JnpE;ENU=4&!Sn^1LR&Bd8Nxra?--@w(pQeMiG2fJ+ zYo28hj^xyQG5C4ci-#;+u1?W=N5aELWKCdTim=||+g4tK`M+-&H7CPP667diXQd<@ zZ|OojzGX&WqmPmV$k%22&(?~!@2$x)SX2?y(anb>8R#-mG`X(&f(akfuFQxBgIZ_A z1G;zhj?L~0_n-J=#$czcF}0UmJ~~W~+s*3SroIL($K`0<^$|7ilFMlZqLj170U)VV zryjup{q%^A3fp1O>rMl*>WRx?IG}3r3?>?av99+cV^=i90K+^Tw*Ev(d78C=sEKG{ zSB)R88XZ)TB7R&}2+WJ%&#i)cQ^|!Oalr~``;J?D)~u~YF21+3$dUF4P$skw7eP@2 z5LHO2#WgCe05F&Bw|CODTbA9^x5=tJa2tVmt^vl~I<9`k-FU8^)9LJ1;%|E9(j2wE zdO%rg=Or}MyQ*s`X*%P$m6+VZeAf;dEjYsjjlW+cO9#zZTtL%-Rl$E&s~6C0VDCSx zk(gyyrVHq!J8~uIpwYJ-oAt}C28T$_3n-a4SA-O~Vh(N|eaEKqA(H5Z>j!ehAnZ__O(8bs8=~eKK16xxFdUE06Ls0 zo-)l{j_v+diYD~uM+CUjssC!TU|d5(2#2>MK_W|}UsG6epPDq-7Xsl)G=^o*YqGP} z``nRQ>P0UM)7@C=O6y>4W-!}0^v`jX8_qQ&(vSD3!jJ`pT%w}7qd8@WWMZb>&kxA0 za%J>ANn;FYm$~ET5L1-qmqE8eMec5 z3$5E;e;fb`eg$^@DtT#kSi|DGcG3afr}70$hzQIVe-+tKZH}YJ-KLrKBD;*zGHSYZ`*Y;B z&;uyZ{ zV@KlaZo>CAzt~DWW%&WHf8ZggyMG+Uyt#&0I(Cn}xdL-=^8r4OF~5%XC0sx;@ykd? z?%hgJ4nx@8xR1U?rPW;8VXK{OLr<%k380&b8Y)>ZK~-MeOB&WsOxi9)ua6&wSWbje!?pEW;uXVl!HmGn13HQa_%oT2tEox zY;@+%S)!)!#&_u4G@RV-)C8^4MTLOx1V%}1-|kfS-}j~95}FTm*ZhCFD>!EXZHQ22?a;4vAK1E;F^w+zq4qM9y~z9l1BfFb|>8UAFazxo`0&EAu9Lf8~@EM zTfig%wacEt|0#X=-y1Pz|Is0)#sAL%ZsEOifEp}ji0r>3+=Z_E=P)tq|MveJ)l>88 z&&6y8OJdOjdXP#qgMPOkYxU=Xnk)QnKk@2Uc&2hn%e|<+YeVG#>}F5e?$92Wl>sV) zH;D}f(pP}Ip5M;l9IqvCiKj+?FOvPJ9XJgjxOymY89gkm7Ok0}GJ2Y&t~QYKl*b~9 z#*v*)i_HV#*`GmRp;tFSX`41zg$;(Izk@e?2Xm& zZRN7j;~}GHqk^7lPIJra8Y9`0CX9Q7zz!O2yMh zYlL{Ojzcaq*Jr$Wn?8!Lju?-+Eo)~zwW_klFi<|UcQF*?@#8pbTTx0#>?_x_tiF8! z(X7+VD`x*HwWIvLdUMb_UvP#pSVb{rTj>2Lo%IG~eEzz|pFf5LUCc#IMqTBp^7e1E zf-pZ-P$g2V-t}Pu7 zwALIv>gfZy8*zsPxM2~AD#sv@P9Z##&zS;@l=*$nhH2Wa4)*C(&}Yb=*Og<)+t^!1 zOa1d|zC@8gwC^9Vd7|IEppZ_yX%wH|=oK5TO82Ww++zOV`DeRkBYFr41eS9rPK;Y| z^Sk(L75e1~r^K>%h|OwLDxYGU&i`RAn{jt}S95}CS6Q#uCQIK=wnrD9V@|(3lJ$-I zn#HP`^61@CNR75>@u{e9qnR}aHP6=8rYgd~=y}l<&fVjZQJr1xXq#OMp~Pv+_=~EH za69J5g84FTY&Kb=gC)0*Ue|(7Sfd&-nntFKZCliXeWIcQ52tE=h@)pc z+SpfLc;h3z$!FsuXpbo2^UK}GF_Oga?2%zp8Jn#Z7}VdmV0)rkz5j@)dZf~N;vBa5 z{x6!Wv(Dz9B+=tKlU$d;A`-UGg9e#ZO^p+C;A#0VB@Vca9yHfCnUDU1tH!#pMGICW zcAjRd!iK#hNiUFN-Q0R@JDi>se~a;Lfg5=aFNwS127Toe7&=~d(x{XM+ToF_tkCtz3@eweM43n z{F;`7Z-n} z@8v-qP0S;rUpzn#MN>^)1X7w}D{a<3NuPM;OfFx;zZV!BmSb99AWvglp2**vyJ(dA zBMR@!{Z7mK6h~Yk8a>XzjBZryGN$sUc0@Ev+<(~4;z$%M;N^{xo#)cCFg??(!-NSV9eP~N6CrL zp%&tz{GsBV#X0w2$7RZI>Ure&arvQ%hsyvxv4}Yu*iQcbqSL*wmN8v{i1M~0eCPA*NvhM3`SGM6HHJhX~~aMA_rVNN9H`{TSS?^kYP2eLEb8v?i(DED3`iN z{-V061$oN!WM@~qiIP=GWO7A zkkRS`1EPE-`*cz>BD`3Wpk0R;+qp!D`RAlkz;%ci?m1y@mOqqIobgBY{sZBV2A2(B zDEI@s#_c;$Ng*mtBZ7_LZMoUUv$~$?gL$&8lJsvvlJJIiwV@4brS#*poGVn@I9kr{ zgG6HYX|vLAl!HIpvM!*^#y{K)a;N#)kcZz)NRwVBR}a?uT9yBypVfm(&ua6Sh+6z` z3buU9mT!i>WszC#=)0apMPV?b900M9ZikFY=mx~>gZt-}AQ|X{w`Ef@=s_5*83}g> z%W}&jc%v<=S0(u_LSf9GcQQ1^s2fFJTf`{Q?+D6;?Fi7hwAs)|R^(Tv8r_dVhRMKK z)iX#&E9e6dv3{U(9n(2$JTgMXo(XaCmvzg}4vvpegfug5q@1Liln_O*kLMn3PE z2fEd`m^!i(;C~ukr1>-}I&@dIIe%1kKG7@KJL$;I;eO(n?+|Z#szS5jJ0ao)MfTH8 zGHiyQ5Yw_LT&vxra0G4&L!a%v5{<@x|2^6@7*8*nWn|BSPF_C1>V4=R=Abppo?E>a zB)C_hQ=8mf?Zh5q)F6Z3UBa)nC~>uj)n~Uea2GAnTk!2e&W&5Ue;#y8QI1l$@!sl) zQFP9;Esbwi+639+d5CPdo!UYz1eeP zk8wqByFQKn>6(oXVF#S=+xA0;weuE9%AKB=dN#h?UT$P|;O)DLFrEyCls90nLUf)q zm~kA(J77%~XCCFCsYB>VpZVX-tbh$Pii?!E(Yh)L9<`Mho^T7w!xwiTMhCRF@UXAX z6Di4gR<+xuC75LWZ9L9fk!LBkT_N5AhDWPsCe!5G^+G&hov3VFj6D|pN}IHwQ`pb- z{{Wta{1D#L&yVn^!*J+eo+=lA-LVm*}(dv>p&Hkb2@A{5Uh3Y%+&3ksV zscmT;97uk%WSz-gVKh0bt$)h8$iFJn$`wvi^;G;%)dKiYCpx*_*wY&%eS@#JS0aq> zHNy~xB*&5tW7(}Vze-iL(o=G!Nx@8-*?&;)55PJCeOCgavty^uZ}m??*EPg1DAG5D z6@mJbnED4bQ1dF9Khz_qtAJf}Kbco3hvL65#n*pnR4;c1uC6bDRLRfGvvPkIEZm)^ z#b)I4{e>_@ftft)*?UfwexLTW@sf&B?7w9A?QbJesE1>M+U{;uE(ER zske@ZkX)n2d;Zo%2iGV#jK);~K*VvE0oz_@N>WVukPyf-`;9 z6`NZ=ZCpH8{nOC7Nno!r#1(mt@KX`u_%Hrz>J}0HWjBd@PE34Q@E96r)&*RmA8}oH z@LF#9RXIc4x~RWJo0Aj!mTpW3?own19ssIj&L8%Qq$Bc4dE>!WDf#59l#%}caIEOe zJ>^#^A1cnu3ES}{W2!>>;i zJSEs~!#7>@S{Jw#p?8T_qMPStuE+aAY2DDiBOWucW_m7Q{K9wc(||2 zu~G~_l~JH~bi3BmtsUW2z;~{-o-411;-w48w{Er8l2u8Pkq&TQmv@TI$^1&q$w$>w zCvV79;X|jo#X$b{fU$}H0MrXRDDj9^c2YiKv$B!kv$Br{u1V3IL9-R77sM)uyNj1m z{l$J>AA+V&41U$sGr>AQ1SK^mEy{SOH;TM53u|^ANL+4q{YtS9a->%)+RAA-%b=4A zb@3}3%z*vPKVFP`b#!`0eA)YXoE08bTuRMvX{V#hj-==M#%c?F-$CNBSlH9H8isbX zb`0mVaVxKf^DoRZ#dYmnVfjj+i0%PW6knpIOnzmX0lq6YCI^5jnLqykY^p*dgBO;F z<~QLAO{=w)ydw`JC6pcIIU|vhD!tkA%ZsSRD{F4g`(dDf{F$=3W`1M zdt$Xq2XljGq*WBPtEyU;jgsaD^Z}v36ORQjRpm6^W=`Y}w$k{w?BR*SXsMv?OQWQ_3rcM3pGbd=`X0tMOyMs!m zPT~ImXs)b}+Ocr(RgCZcqRz^^VilblAJu+q`xbn6o&rm(i}YAO=3QAlO6nTFEeqvT z$>9&!6lUyc``a}s=UC+}tG!(YjZ-R)M>~Q77~E2DL@w0E^t^nh@J%+2DDQUBo7QBlPZHqjdIC z3EWd7a`L<|y0fFa@C!~ih*}OmxjqBgHUi)R{JRw(L-|!8!}(Sn1c9JN3${@6;|-<% z0DDQ)T@jmjoDD3RE$~p!yr6so z^a@|}Q3Jg~@B8yOpW~!<*`VO*J8F@m#yr_hspDxj5`%2I)CRN^oc4pp%@NSUcG5Z- z5TnC1&X}IH77^4hH8sZ(n`7VWRXd8WH*%u9Q-eh6q_fnT)t+Z017=FR`2|dNtoK(? zS7A0md05rhv!3ax3*IZq#USrjB22SpqrnJ}%^akI9i$!Npr3YL+smV$rKj64_Nso? zK|9K46U>C~hnsoW>It`>OV|Z6r9NasIg8R3HSAZXRe8vQuD28%;)YN=M^TYoC1*4i;gJ7iK0He92lGr*PSQDXe&(otF8JfITtdaY(|2vSLTJyTKScD zS*oQ-DY(^02?Ruem__c8UBqPXbl3W{V^8sdkI zh7-pP$>IL8m{%Tz2k2@)pfc%a>AKlfLM+Fdjg$)?Z3|(#quK~xAMn3%MnoB7Y!~bk z`tw}r=IUIl+nU@Iin?&ru54MwJ2)Mj%^;|7PKs6IS*MqqvKrBHlbdzeg`8xri4Ekg zyXd(#0A1@KT+nQ6wbfi@T!XgrFM&GANM^rb=0JB4nDOTc*+U|;oKs=)jse)2sHZ?3%iCtdJ52!X|}Y3QlkfH#>rr@eQhEmn>wnRqN`hr)`&YgJHYDZwh>) zyil934eDxo!lK-!o@{Z~sRoQmP2P-(&c$4QiNkW3Gald1(-Y>)qpGF2tX3-(k2b3h zX{XW0kF`3w%5#qX&DLN^sSktdksl?R)IgV$78i>I(y^g)PX5{Yi zU0>BU@dD~=Z=BI3sI2A=;;S~fNY{dsBN=a6MR`bxv(7620Dx0OqZTH#Kq^r#%?T;A zDIzP(0isq-hDBX3R0RisNFuwGg1r|sA?A&)#a(q%q1m}O`_?iadSFoaB3F94lQ`F6&?;>`JkJCVx_YM1p9-UE;+UFM8tg7)j3@Y8z>58{3oqC{G}yPZ4~a& z5v^a9P$xx+t<^fIF}EAEsoyg~n5Zmhtg3)DXw*{#Cf<283Cw$LL~bESXE{u~G%Lh{ z5hnzFS)k|EN?=G>NOBXcn$;|!@ltS-7jY_XGv*t{bXOUQE^(?8QdH*21uNiprm$;L zXijrwHF|YZE+na6n+7woCmUP!v-YclRS+8y+a!3|bg6|g?U?Md^Z|02#>>G2)61~d z$|~7UY-Z;GH?Pb>`IOq=M(YMp(M%kl2hGROG}Q4ve-#kzccr54m)%Ai#h2JKe#&7@ zL$tB*;!lESh6wyD1%oT{tQr-KaHZVzH4ZvEoH%b3B_%j|Dd-orO$1E=`7H;~j5B=c`b2q*p3a_qgMGC2&@s<*C4`jWy^%hM z-7bdVi%RukH%KWFFua=@+3X&HbTj7!=x-7uo4E!sZV9l4tbHvX;Zes6B(Fg-+))n% zZbDj|ZIgy}qMRM(;;#xcbEL?G1zTxgA=gTDLib)6H&Vv75bbK?Ox4hCtIabS)WRoO zvCERAmi#Qf%`Hnk(|N^kRo7{jGNOMfaFz=cH`z5+OB)TwOj)9cg?O2jef8K8aA;`? zqH8pQwM}_B0JDpxRGJE-9pJB$0Nzx=s=V?@ZBvidYEYeiXt1XXg}@2sj20?~nLUUN zs7Y=K(8k36Gg{Da)PsVMsZ~PjS_swxt}Bu_AJA#~21RXclW>!Je1(%f+!wTYR$;w1 zDAkVy9@8*H$DsLGBg&7ekrF(~FT})danTz)HrJd2pDITMD85m@R38k?D~ueYl*|U* zS+sD}dt7nuD8tDFH=Ay=bkR*)SnD+Oh6M6>#q|x4_4|=QA$)=!#S}Ieer7Tw^dW!kcVlFguMk*t&%$s^nG{n?_R@W(^Uyv&1_Lt$SE>!rJ9g zMGfuS*)iwF_zHO24NRixN=C;t>k?6!v;%JPn-D~kb?;4N=v3P~)@G`zb0mb-Y8BbZ ztxbauN#%SZWjgW2LgQqwT~rfxsiwtvmFyMpv!ek(~`bsgvi^poiK zTTgDA9s_SuP6&viPIIR&*N==3qCj?dgM9hW*fk#47vL-Q z6?LbIn`B3vgV<&bk)ixn%=ZMs+DM^xuL_V$XRMnpGZlHjaSB|(RpaKVnv#Qc>sNI_ zhcw)grdQ5!S2aqDB!#iFa%)&5B%JAI&Wc8b2yPk8G*w$0U~Iw-78y_)sW!X|9L z(`A8;z%1sFvl>Z3?`aoob55}(6DN0B2>lRv?_9euIHDVh_h&QN_C31Q#T0-#EU_r8|K!qcUk+$+1Mn2Zlqdknvm>sXTx3f!EwA1wakE-xg z4f7vPhMhkt40%EIQX*X5RpU9|Zr1n3aBBdmT&dBhSi8X&hB`$VLnJC>zu*4=gmSh+ zk(}hSGIpK}DrOU!Kc=rd+2q*LcCH$V!9B#v@I|a4&MIzFv<>T$YP{;Y%&PMVd_g8I zQQBogdrjDb0-YK&uS7IX*eHUG0il^*QM?uRt;;rna*H+D!w{z9Adbue#b%Tv$8mM- zOQ;CHCd_!%wK^1Lx0G((YEanG+^)DyVmub2v{Z_5cBEy5mHlNF+zwb(6w$6ovEqv3 zj|4AaI}O!&<@n$NpW+?D;^gu+I_|d=026+%HU zVx^>Y1OcME4y8+48XJcmK!E9S;DHeNj1&eUu!ExPTYBee{XMPkoL2a z{6st3FM2k;E3!=~IHWSZ$6s_b{PH*VFT^;#cQHbgDrsTHbsW(TT)+igHq!8I9T zysNJ`d7(*={;AK>yd;}CF`-?C)p{vX7%2o~WK^8z9x6i-WSAs1sd|ews-+vc${cNy zqMVjwl(m%DbMQ^L;uk3$({e4^oiV8eGawqK8z!r_jI6p){7fdqg8UyW5ai`|RJse& zxc>lItMF}zUs(yMx-fi&0=#u%nq?vd2vkyeqP?i%npYE2RfQp{KuK5(pv4nozKig&oj5Mge?s_=)aNS0dc6(&o31?R ztSzc?QqbYHIQJdQKJ8QDc`R^PDi>(Hxo) z%x;$QzZDo}jRCjPx$#;%)@|pV%Po0I#P7{wBD3R}x zdDpJ$Plg)K41lOU>7Jc!q5gg6W-y52-x!nMjnw+ z;d#!*28~IPPA=4pXJS*-*+{Ib3grO15wwcMb$%8x&u)(K&~l_s8_n4Wi zN}+3b1=l%eMS1V%k!DWqu*YSQb?0nq@?b+BRXC3><7?ACBiOUt0?liR(0h3FI8QkT zoNrZ0PQ%PIvg{Ff?NxNu!L0^(pn7oKsNZbnn#NAMS6NO9OjA-THOlLoE@k7~j#C@D z!JApC(I2AG1Qm6xuBoZGAnmqIlDrL8Xqi{ub5y4xxm0IGAe8u>!A;%?j*CmWhU`I-t~SYCoh+33?K{1yowVprU}Qjpw)z?G?2`6=wm1zJR3iZ3YB~;2R52vz z=NN{Z6Qaa2Xi{s8IC_9V@ZvkgG5)Zhpz5=tuy?9ByMS4+&w9;k0_zCis}=q#r>Ah( zR!n`)$DC&GR4Gp5b`Eop_|IYFpj7Qw@`n<3EY^Y1H)PX?ycZ5@8gMwBieRE06O-38 z=ulqguxr$_-{6EOV+>UFHrnc^OvQIvY)oXD;O;7Nm6vB#+^$OvYVbH&MIs3U1t3EP z#dt-UEsHj|Y*S$m8{pI+mU_Dg28EnvQ=R6WVO(rZ@~=BRiW@afZX1*+ zTHIGA*kqZmUn|abrl^neTR@zl`_;7NIW-^WH)^=*J7G_Qs(lm|zd?W>+^4SC>E ze{tpuE2XyF5PUn$+t+U4&R>?2wPiBenC_AP;y@vCQ zf-K4CJ!La($bIKx>z#QRPyYb(Vc?(rPvfu|VraQziNeh10JB^VLiQRX+@z#Xu(TS5 zRmsVI1{sqlRmm`aMD`kg^f&P1GAEF+x} z<3(ny_sh8xIjhbp_N_>Ri7NHrcqz(+U{M=Wq2A0QlTfmmc{dp*h;?IW+_P8{-?q09PotdY3(q_T)tqGAO|h`qi*jl6?EciRx3?ihVrxA zN+jtEChFZNk%_?v>`>z|Wcer_P-h*>@ff-P06}1CZt$VP2o7!?4)xbYF9{7w*_=~$xKx5Qi$g}bkTE6r%N$fL1T1nRm#7!{{SmHC~@EyT@i9{=4(3s zg0?6@+kFYdru3)VD0zbMb}~^OeAd$5P4R{AvY5d3nHOGmz@*P6-O6X84mpiGR(#?e z>P={G4tb3PN?JprJHpB#?07vqw4!PVz9E^ka5hTP1`HQ$92QXC9fi(t1OTgsB}$DQ z8RbO~%>*HuxgupfN?Mn@&AE(8V4_8dSvTslOx0R@3!Ac`RS~fUd9Ac@K&!<}se-l? zW{cv(c`CDS6+>m?Z4=wBXtsD!QK{K1b~@wmAwBPO&zhlF#0J2h9N^xZo%V9h92Lh( zTXlp~)Rq!K8@OvhnzgA01$}~BY^&QX%4AP@QW@M9Yd~6Mb%im8B<6JwZBJk$S}Z!f z2*#$jVChe@)$EyqZehF?_*mdU*1s;<{7P5(HtcG-2v2F)nF@2d*>-!;Os1~F%xBc} zknahL-4u#&*m@S9b!9Bt8hT?26pUZ8E^(PW#>H+eDX|!6ZFED9q+D?}H11hQ+~4P- z9QQEm2)oVN3XnbJHItmWCf7-`P(A>ri5q+ZY%ev_s-w>2c}`?V(KDxoQMlW+lE%rh zjzWDs{g|WlL=_TyRS*fG25Uj6UcpRYR^>1!HAX2u6MPid31+?4NFw)XY*e!INbgso zM3|i1u7y!uNI@9uMh~lnj50C?NJKy8Xr|8>XC9xcGE<9Zb)Je`Tt+ciCjhkDmF zBdKmQQg@w8IXUMWGfg%u=UYoTW8Ljg=+9yIPoWsznDbAy*UN4{Yg6MoJMOe$Bq6X( z&N2u?Za#6^dqvmx6*i0P+B#OdXq}`s4~bN|JC=|=$V7W?n@f(MiQCY^JXBG(A4*_k z=Q~@rEu^PMjQft1!+E*2Va2L&-Cb?hXCgFV{q2X|qYrbU9R)VkO85@es`1=|r783< z9qyF};YRK*q9wvkC^)*hf)NfgSKUp4Kizb!neIShNkyIgjm_E>$B8&tB7rvRT2e*L zGm@U8g5HY3Na8t#qhfnee6TWCq?}I0cWT1HwA&InX}hUDCv}g8F~o6D+m$r76e?G+ z&(74EU0Telde%hXs(~hR)Qg-n>WiA|oK+0eghwt~=`Gf5#ZQwmU0at{?*-MBdLf?g z(0k*}KB;Qp? zTljVwoi2%o-au_(=?n-C&hwqI00hZgtXjqUCqsPN)*3gRd8C3hg(rr@-cft8CU&r= z{{T;-4}fJ6&yXu8j_oJI1o7wHaF|ps3Ua)6^Z~4t@hhq`;+SIQ-NHpS6GYk&4$1QY zoWrK23BBcCePvZA38KuJ1{5VjxZ=|NHGD*EMJ8m7OrkM&eF84T529>a*@Ig0aaisL zvECSk_g4)Zab+?(y zjQ9>dQKwQIo{6aJht+C(^%^6@SOtwDuXvR91Os5+mbEy6(%^~NiVEwr3ZEuBl*2zm zBvYX~U!a_J1o!@dHZ&1=%@QqFA@YpeT7*oY&Jae?DfY|I{G0xZJ+#^|=w8oN*57M` zTPmrwvv;g{k`;(>2)V{&^k2DT`^g_pjKImweCJvCm%JFeHK7>N9v62e<*;i^?j0L` zB`vHy7EcF@mP_z<7QayvQd6C~9Gng_UQFG(2~k7kF(q;<1BUf@Uv9xPAc_R->99=h zIbX?QxsMo3r)1ejT+gp#zQJ9V0J%e}1sWc*(KoMYwFHXuLQ+9_+%dOBKRg|5>?zu*~vyv@v zkq8OYQ`^JXn-#i{cc5jpH+_0x&Y!Wh_5wsqE6`2Dvr?2s5zl*ex1M3b&VSh#ILw}n z%O-dFqoJFOf-rJpChK<9$-|WQqYfaE7MzYPLD8St7Wt;FC`ON)4`$TZP(YJ4j$msV zT;s7$G(gS5tI5Zi-WMkovM78>zX|A`0i-Y*vSuIoP3$GQ^&$w9g|aGPZ(G!8Tfdtc z)wyzGQefFzGJK>^K91~{fT6{4C^TxaBRy9X)7*+HzR6jW!u5&!BKH6!r>j!D>NQEC zT-jNc4dG+iDG;5-OOq#pk+X_?F^%b<(Mjo9l%1_l8y<+)sa|1`3Qo;;x0387r&@Fu zdIgZemu21TReglI_JTL7**TZGRoIO!JlK2b&%X~b{{TX+#B7g86M}~Ajt8K<5!?o{ zrK1nkutbJrLTpejM3p9s93)0I2QP8F<*jskS|?z_|-^XOj?;MUE1(PDkdZsE}4u~^%J!rIZ>R(S8T1tJv`#wd?ke`(lw zDeG6t)vEJM z$F;NRXV`>h_n_}UIwsD~ODpZngWElm?3ZFRI3U<>ob_zxHTw+I?Q|^{wBUJ{Vm4^F zXG7c3L~hoU6CJgqn=)h-%$BFtMelKOJ6GZZCd)q&mC>TNPx6`|G#FzY=w*35T`wCP z{Gq^It7fh;kcZcs7bSZ{%~i*o%nuEyWh}wkR!1jBzhqWV@pL&vICXJ`WSJ50+}Lo8 z%*MN5LWM3)=yT>Vs%zVWgvFSwdQwKG1oIWdkm@Qpsy(t<@0y?iLy0_Yy4get{;V-I zeV~Coc4WCQ#GcMFESESFQZ=X$U!v+c+ttHSsMuVmu}^K3#Wo6O)6%|z$a8y3P*V0aj5!YDJGEs;A9}oWH{{Y!h*-USSa!iSo zLokc9bE=OnOPvkZZykM&(H*H5zZ1=d?{?P_N!4^CRnPSM0q%~ugzS8gN>9}tWm91;#{?rovB@BZQ`Rf`a4q$9MVZB z@|gB_fwIXARdmiN=hYyD&MHL(BSWa7w<$ML0MU)bW@m*W(hmgFuV1xu>E+nDM&cIn zk8W%xpwX+fQC7;;Ra4ssz>A>qBCnP@In~N)T%+XC=CEr(%JbZ0#tliCJm&0NcAm#^ zr!l`>p5=87q+%#+lWFmG34F< z0J2|-n+xvJSgYsuv}#X`_;O=J%+w}al-@r5EI7mbxBb(ybE6r*QO~I6YFfFGxG4Mr zYiyfJ->nDwu24?FFAG0lQM;^h2RYPg6B+N$Jnlm$hH{7DOc09rPK51kJuWtvuwR#& zqf5!gV@bN?9O#D2!xaoZQdNl6KS>%$4?G z?QFVv_CIi`_QK<-Iw|R;)9hP$l@?I@TI`}OtOnA#NUo`)TdAu2Os^+)QsJC$VYn$m zj}7N@yB8+iH~j}bBRlP%s%;Nrq*ch7u|E9CM00!7xdWNciN!(_z_@*EC9N>dcO{`=G66FaAv#uF>XQ%z=0%xOJ}W_Nt&mC3?!G^*rcA13dj<>3z| z>~|>#-fqVs50W9%SEA-O>ZJ{UZ`QJp>6H!J96DIJKdvaDx+E7du-!85!5`pJN4lEp zZv_@!tkc=C);IcLMjq;!T&MXEaNo`lVHre?N$d;p(OWo=(4L{#i`$zN40fs9x;B){ z^>xvLA=LF$jY_M06yfVyRM}~oEn+;J-4N?QCml>|f^!ZIYJ~;^K!@iYg2|rHT5u?h zhQ~KyO}vfMR3V_|(M`Y<)3eQ2i_eOc_cmw%T>a=YdsRNcE{0tcwd!1p@fdc&3}R3k z_4DP=pHGdND-LcpRld>VW*pcq$=K+E88@01W zwZ|Th9%cx=)BzZe#Ph)Qgsq6rcbjuH+se}efLYOAd-@lrjgdK*VlX&wQ-tEf^ja5& z*7GkkkamSP8J=K%Pe`NgjzyJ>@k;AW$?|x2W++t2nL&`-dBr;-{{RrpAW)rQ7;rO$ z>A?p(J|^9k#vb8AiXFB;z*D{iT2zgu8?bVZ2Y1-n2YY4pQ6;U2WH~;Y^p3!r37WpV z;|o(Hz?lqS)_|_IPLAys?B2O&Wl=?GBOsy-qdCydmfpd+NQF3JYV2l9dYI0d4B5}B zea|>1HY0A?GuoU-omG1gtr9RH7Rq|nOp0@jKnnQUgJFuG*P%TTsd+1=?jl%wS1!dq z$ICMjik`iFs%035M0E1#^rom5Jj@mx+!hNDWwBVSd6+CM$D^8bJe9n=#=kWVRnCax zqQ;{VF&w;1ebKRFZVL-BSo9o|bX$)ef*ZCv(|RDDz^T(ztKd+Dls9dF&)|q~rVk0ZeoLe)O=!Z2NTdG%X1@(~Z&%-)6#Y?%`VD7dxeQB~ z@$Q=;pLBNEqiYJ5)|)RkNnLQ2pz3qJ;>ZVzE@+#}BsilMEn`Hhx$cZb9z)tx-q*Gy zv}B(iDVv;7Y&OY*&Nu`h!u`i->?PAR=)-oYT|kjhhc_N&4`bdiO<Iy%Sm5{KarX8~T?D#2?a(MVVcK~n;#9Tk=gXfyii);is%*mCeS)gTrNv`z z7UHq&_^ehcBpbwEY^J=dcx`6URpgmB>wB^65^2wN9S~?O8|1U%IQR6pss)XQmC;#4 zHv+L(^DtNif~=&T_B1uRrDJdC&a3_rwA-_KVJ;^2C=soImB_^E-Sk5&$+Tx(%a;ED zHd;E-i4f*}w;;v|0nI3lg+cfSZFdCT2HpEs6X38=ql!o@=J+Tjm6XtYc?N;6YP}8N z!*@TE${~l3vV`a_hv zC=w+xZNdqd)P~-IWd`z%B;Y5_!<$~mC#&JpVyIG*5jCl)EWv^W@UJy_HvzlaiPAoYMvh}p@)b@VBFjRG${ z-8La&v9kq&!pwQIaOByvteip>yk>T&joS~Qt@U2oCPHwe=*A365i-vu57qOEY&dNVYeaw@ z9EGzg95JB}>&yYdvc+mL+0ftQ+k0%Rs@2Tf%$H&=b^#bIWeS`86ydr@)J@Ku)!1`a zp3(wynzN{;!kQdr!|gQ9lQ?$ibaL0Jaxr^2gvU6*%v^xvFf2C$!^ZPRFK? zS)_CY#{iuW_b0j_o7;dX**rPJXrbCsbT&|HDq@dmT(maL($Su@Myy5g}0V7K<`aOhY2XK518dK&&nbUTEisx&i?=@wBl?n z4&|bHtSTI5Lomz4?wwr(*6w4RG_Y?Klf@lv;#`DDOKqU15^TA8y&UPV!TCt+8F1M<{!AsKI9_bvZP{btH(^p3wWQZB}#HC7$6e-qOt3yRplgF30a` zT$EnR$umf)og>+#J*XKI9h%C&iu`Oy3Jqd0kprbdR+;Nhu0ELPnvpdQmq_PO>= zj@r2>%44xeX)abKI=X2obLZ_$Xqw#epu%sO!RTz(7c*3rb;ftB_}&3$7rVW6BfVz9 zVD3}^c8s8GY}QVH)ExIc*aYZ~*K6`fnuNQPp*t3vb}(X4V+4TcvX6;E@B8-Wu;60J zbwvK+i-t}qyrV=!t6^)gQYf1VI+Nm^X{2rK4ldGrrc=+VK~U#`aGG;kNd)UtWmQp^ zK9=8MLhzLPR(kVPSp>$BDGzC;?%OfY zOQeyE}{6fC8L zXHv_~&4;&Y3}BEQ9B$;@&ON!tUU({mzkSLdByJ0XqjB0)=xT0c7ZAOr!m5BQ9WzQNVU`;r$ojer?l0_wMg``=_KJWufimS zCuX~*xdx|dzZS09)6Db}{V#ah7Xp}l(am&6U=yC~Pd4l}mn-q}-LqFq6M#?tr|>&- z$lQxgA!}QTp4BmiwR|Zn@ZE^A^Mt@%Uy9Eq#Y?nD_zIfjU83waSuSVcVVpG9cbsMg zvs`T>w$IjJDm@9ntpKkK*ZtG4iBH;H>Z^C9CNo^5?B=X)o&6RwI|8O_7Sp$+Mb)7+$`u{e!JNYho~gXJmqsH5B} zNEFxY9K!zqIMJaKj<*yh+!X9LutMUUgak&h+aaIy{{WQ~d#Y`%fS+jUq%4{A498}h zb4tuJ3Q-}dk{4JOknvS}R+RWG#ue&?H|HL~Gtm#z44`}EK-?wI(H)70{W13|C>z4X zRx1a3y2z|2U_AzOXk+&;%s0BLG(>lD&B@PumTVYdX1F)uYSPLN1y)4;&RNce-u0gx zcLkjl<#lD;T&_ZBYi^1te+cIffGA%8w8e$q)i$P-3W!5*8c{@bMNH9#;lT)EXE(#O zIBgaQ9PNcMySa^k%8^MfOk=F6D~_C&kY4Cg3pnPL%1)Y*cGL=|YsuZOJNQI+uvl46(@uiDJwPi)TonlmOscr73GZ301F+2gn&~&ib7&uR$Y?*z|RD}&v;O<$kKedQC z?TGgccTo(76i*#Xt3NXT059f15-+fWL>x8qqZXMPg%&Z*5)-P=$~+pgp7$=So-SFr zJU<0SfzO70&*ecr;O9d-S^TIc+#JqQ6LHcDVL%Z?|)ii8p z4rEB=32hEjZSR?9UY7N-+ZA!0(Pqfst6+p4K1%;SfBj_6X z5@#RM_=T~ZnCc19X}9H6hj@|>_hrtGKhr70-02|jDhI*NfxxIg4>qk?wcL!s zSI3;i95~}5oX5G9J5|u&dr1lHID)11S2c@jWUd2OA-PC|3vk6=wX&+7(PLS(puvD! zl>19QH3z@#?4BJxRGVbY0+T|<%oR^XFJuSkMNM`oh%S=6J4{cBQH>qSoak=Y;G{-#?sI5B3m-R%Kl;roIY%-t&c35~e+8J=wdsaSNg z^u;<1@6l_p=ry@vGql+KlkG7(km1js#|033{LG!(h*?8@(QoVtp9tt0?T=E}^Uy#$ z%7x$e=f!8cH4-1J-g{fTj*<@&q4)jy(0(M%#PhR^*7VX)vWRTg*-S`|y3np2Cc9|of8HN{k-r*$$Ic%ZPao=k9PUmLlRowvttOTN z%m|-nh+^nIb=*+o+Fg4GYOqa7qRn<3&slFo6qdV;#uwcV;-+0&at*sxVS zu3w??9Dr2kL5!62R*}RT&>I0l$A1e_^zfJqhSu@=rJx`aFNYI zEIZemg%u)2`Bs)w^-V5@{A%ZPGF+rUNNmB9q!@~sG5MBmPTv(sP{OAt@~iH2-7Sk3 zp?t(3YAL)F!n*Z-5t}u&2e)4`n6<$cM7%~c3pNBp#b)H=y~{O_+uXBWN5aK97@<%#2I7X1O?UFH2gz8M4^Aw|Fb>gyuCh z(A^T@6!MZzhZjs@uKKR*<0k(ADivO&(I6}?XM&pw!rgqp@av>1nyOif4jPmw~>}t2JJTW>lM+IkG|&F;yYo?RoS*9UeAe*)dv6TGwVg$*HOSgf+WW z+TL;O(2u$Ns2>363*7`v?_ZZ<{IoBXX2M|os*P`lOz4L2y;>^YJ?PFJ2WtGgJJm9H zUn(+VM{>P~3wxGrmtBIpJjZ!=5fR%{q!_N+PC(Hh<*S15<`FU&P{ zzeP*#;MGWReu|kl_pIEVzA4OhPbM5lX-;EXIAmuXoao#XURjr=DKE=H`Bd8i5a7_7 z@td_s2_~J&OOZQf6g|@l_pH?#7SJ3!K35Z2iOkKV>V=*rq#0Chf^5?I*@DGpgL`N} zxlU_+b$gY(H!TVAT%0C{MK}Pjn!Gymih}h^xlfLV6a$OMO$R0`Vl87fiu6eLHJ68@b-zU(>q?xywaRDr!vd!#><6y zM*(+PUzvmRh53f2-J6;M4y=OeqAc8)o-SFLJ4X{WnUl2eVL)Gr# zQAfMYx^dK+*R;xbsIQnT4Vs9}kD7%Oxij7bc6_1%^Yh!xcGii7RL8d$Hf0;56E&P< zni&jK)UK>9tSDTTXmrzD+z6VH6AJVfz6tkD7JgXr-NH*Tz3MAAwAl_Ptk8NV!-z9A z6*fE-B2^qLk;-6?-WTQvfmdLXZtheDYEB5c0R(SdY`6tnq5Z~4z9dJyG*a`C4dA3I z;-+!t6|gBoZ+Tl>aX+EkeG^P9uQvrwWcB`#WbXLCg$IXam^0=RJESQ-g=a^GIJsVj z8Lr^7Tu$087`_Oxu%A_-^;Cqk2ZGLN6H{&lN!TmRz^1xrHO5=kba$Qs2VRKds%1qd zS(0}u(EFxURLSA^E~+2Or~tIX$6-PlhGwSNbKs`d6W*NoCgD33+@>Av;)Py>`TqbM z=)-Fd*+d@aIynCTOsD)D*-TAU!8x-85hWR%3UT#FDilqQ9hR?X?^)SQKI1gk!h88v zXt*_X2KN=20fUK}q(I&cQg%@D-mbI~PQ?xzu??!Y!n zGUioH(O3t>r0k|0b{VY5&MQLlq#&;yYGBEAu2qQd6*E(17~{Yv7r}d4MkFFYSB5I% zs*AZ-jloxxcM^z#%c4`oULj80DzK8Sa)^pY=?nwBs6GDxev+|S z^D4)O^DoRXb>G@m8x;2}$Po_}OrQIfZcGXw!)!M2stn1n;Wg(D=7m_18~*@xP9{{& z_mwAQjdtKBr8Ofmrzq3nr0O?$Q)~vFCTsH0zEFs|CBacvs2yQm)+{a8U@4_bU`?B) zc&w%y1jYIw!qN#&dvosUnwx`~sPW#U+BE}uYNDY{W(y~Ea*&)vkZfGYpG7guf5KPn zJm`bnD~k%3Fhv-ODy?%)ah#kgoX~SH7D9=&qovM`41VQYpdJ-jt%~mDnUnarX0jMv ze7FfL`0*XZ%Bp~sn*t|->ZQc2=&;-MS@F+sRle@^(gs_4=-;)e?#xP;Bq9N`n! zYIth{ukBP2hjN!M;LxOUn5Xxuz1}uvw3XDpTo!`V6;$T4rnF|M4ZaHiro$v*#G%@z zrDq!*LMKJll`DiTVMt7^0647UH6RpbZEXI&*iB7O^$zr=r15o3dO8OZgCfNZbj=r7 zepOCU+yc#o5S{8nCI0^a{3*k03D{O{O)d;2QVAcic~>|%VS=Vn6X#!>2XTm2eo)cE zs<}z|7h4fj#69S_%`zKYr2+tJM!l*VWDMM*!Idf&71XA2vU>HatdV*8E6*gJWYrYd zdzY&1ibowvM^ZYJ+@A|n%9y~eD5);==Yd4fF%z1Kr{`*1o7r^45^oiHInLOOLM1#b z%~;`zydGLr*tqRkis`eIW(zd&Y7KjC6KPEwK^)>Xh4_O?NGtO$W2jFt&E3s*$T zW4W_)fE(3vh<+=qCxBUyqC1TiW=_$>%~Iod1ze^5)Kh#%JBhZCAKtKIc)58nK zus9VXrOf0Tt4hvU;FIQrPpv<)m#b#gCb+a6it?D|Ou9`|X`Pc`?^1Y^g1*tkU9ukc ze+ph{O>VT(jMHw&>qZM zk);kQ`!F^(OGK*8Tp>u&X;oZ#&u`Y)e-Y<<#|6oSDQ2M3X{(va!xYvzo76)PIJLt7 zvod!cE|ScL3BOg=%YaqNB7DkZ&dkU$9l@)qmlCs`4ZZ6>DDY~ji0<{&gT-dShCgb6 zc&4~(9Ux;AiC=X+N`nTZW{`ia>lBvw6vj}RYO~GRd8C? zwXFgZT!fGd8J)_MSDt2VyE0~jTi<2hGX)V$o%LVS-{bZH=|&jc5+kKsM7m>RjFxVY zZi5&Nk^&nYqq|GGL%O>qrBPA8dw=dKu6Fp@8FFqp2D3oY8owu~guaLSsVB(61Idt&u1BXBn~ z5(jXp5%5netR|vl(z>O|z74LLN8eY&$0Z~0@ontIluAJDOV9<0iX}Ct!cNHUs;gFP zUD?$)!v~Jx8!PKUnw>yfGt7uQx-bLEXMw+`dXTIU7d})xxM8Pirt_p<<^lVJwX4V; z_#dkn&=eMq$UO7?LoD4NBd_d>XjZ?9UNdeLvI#+!g$^+mHyhk=hOtU#f7A=o;(tgJ z-G?hrr1m!~_)x;LywLLlxxa`H8#MSPly~6^M<{L&076z`o6_>drG)#kksczT4{;h& zKaCqY0J>D)1zhAR8|qJ?t6E4-63>^G6}dy_3Yy|w6pG5X+lT!BYnAm?>rS0icl=iW zhbHiM{w=P?v z^7f%S$NOze-<-AfDx-^ZRbgMB>necUq}F=^C1>fAUyNre6(Kc`CdC~L3X0i{Zv+iF zi5lupgY^&HF2URiO6KW0dXwZrP-_32;00FcL3_!8?C<$FFmJj@r>QZLu?m{M1nQhI z6{Z*bW-1Q=Px5CtCEt%Txx5?C{C~fCt?mfp*;{_Oj(Q%LjKvXitM9HCIRWmObvKJ` z7sY(QlF~&*ON!yX%BcV%|1&aCp0C?jp0B2c;W|8VGw7m=d?HkUZn=_vO_mLmpL=SW(82Eku0th{fj|dk5`tW90WRd z_EYhL6ygQ3LDSqy3(J7%6+CT}E9JtGZ8RclNWr-AUig7D|03hiq7>0Lx|X#~0l(ES zZOAD%;4#kQRs@XwglYdno3ZP4X({iQ<<1{zo%3@^gysVBu#|#Nz#tGBQP_ zB8Phu!-Z9?ysz+ImA9|9sh4<`5kUg(@z&)(519D$S$f7*h`H3C)fe(ISm9MaY9J_&{<#VWK4+5q~ za+-v*_TB8-9y=^Ror>7I=M{<0{ANZq5O=722cVOe&qHJX$Za7$R!4VrlN~ z=eShH`Q6TMP?R+4BPM?>icO%qN~lX6u=f--O;}zb|PjQ#R?ZRaRZs4WfK~{SGF3B|2iayM3L3Bbq=PG72FV0N=ECJYK zmmR~QME(y=3pVJP12pf&A$XSPZ!|8D#>G)hp7-R&~;oC64O5@ zMfEBk?(WN!g_7tnNTQItha=9<2P@k0aXQUSPvyJX{qq8QF9psH|+&P^7wrk>Jm*EJA6h!<=^x$A>cPp#%tgsaVx%~P1x_j~$ciqtgR<NmT{PbI^YqnKO~V z;CuBZ3>)*v>Zm0*bM;r~M+jrc&W-|2(#)td)Uuh!=)rEjhnnTzp18r~|} zeLn*wI}oO=14~HL0s=U{oXbgZQY?l+0VvcR(hP^Q>H-YHcT(Ty^~sKocYjVh!!M!} zJmdlOiPNP$YzRlf&NWbZ)GSK$9c&y*X{(N6c3P36zN|l3?Q`Ff`z(4~BcclZIO+-$#FX&eb%_ZIfBUxhO~@p4L$`Q&gQU`|Qt;5`12XT!Jqj zoUAh|o)_Vj`(gP!(vw$PO0%kv6bfQVu2+pCjfIV_3K%IMf;xc~;VT$oC^6_rUiRoZ zuVbne;DH~+-BQ**bhtTb2(c=fx1=YLBKXSGE#?&1#D!vb@0Gd2$%tv&YUon!el#s% zuKT!vy;A&FSc~*t0N6Q2K`~zN_L9T20HoCzj4=CqmK1mSPV>qMh+AEis{u<$?>S(} zQhM=bqMWBoXAR$%t8DG-=;`snRC2n)*HIIGTgt!gx9^91YWh99#ko(RZ~^E>G(?4S zw1BeNA2t?OcJr8aqZ(h>MWO`DKxJ2MG}88>L0{Ka|KJ|E;2W=l4cF1qMXudfSN2e> z<6mySIX`=4DbJe(x_M;k=6^GtH$-T*W4Bl+_X-NtsF#jnpK7}i(@q~05Okz-V7GDf z+9P5FNpcQ88hj14$5G7nv@z3uu2iB2jq$dwA$UnK^J&2baTvbDVhZ+Lej$>z9TrP_ z-|9?ImX6V0f58vh@BaW;l2ujsswuP*E)H5g(o6hRl3mk`x0~mF^hWl(t}H+(>;9D5 zi}w8jj4T&Z5}X-K1@D^LFN2`Y~Cpk*MsK;L#P?m}_`8Ob78| zk}+ODD8QUnd%5H>BZvD5N=2iFUasnrBZdN*%$Tj_EGath&+8Nu7=%u9hr@hU%|pF> zVXs`d>S)43%Pajq3QYu=_1tF^t^=QN;AVC7-?hZSuL_W}j~&>*GK3!X1LJ>Ow9omRz)GfH zKZMC#0#sUgj|UR)LxTfqhx$--nqq#pJIK|L7&pF#UJXc7eQB6&w zI9*8Hj4idDhDnvm1@D_Lzp%V3z6&)^B!j`E=3^du9?*WlPK7T{X2~LGZbzAYDzavF zpwj}u_ccsX0o%H6UC)`#*avW6Mcx6*u#VbB;yL0?Mni?oH-|1XF@EX-9^YP3zmAA* z0cA9E_US%qwarjVv_XNe8=lVEaw@`kq+K?pVW|s7NMT;MxKS$?EKBF3bgJc4)*M4+ zOJ3~P80m*kh2k4rjLMZKF%mkA+Ng|BG8QEG5^8tILP5Wy5+7q}iv#@| zP-p4t6mfpd-T1;-a#DBIOvov(Wxbi~A;nMPChv+XOJ@tdm_^!Arbb5)kv|o2`SDSg zq*XFCaLW6a;pCb>*Q*Aj&sRo6PI4M0#PfOCTi>)e@hX=dE73u~ABR1%#gg$@nmd+z z=SmCgJUqwIH+Chn+M~;oEilBnY@C;GxUmQB^9JLvM)fHk8jdC~0L4Gv=Z{Gv{g^3p z`Npd52qnk!~W~tu%Auq zFByl|RjS?d){duTGKZh#PQVjHvx9`Q7O~TLP&MjeP?g$&_^;X7^EmA#_ud&)# zl3yzpj`i1zDLz3qAytp11&UsW3J&3dRi2kKk;+%7ZXs|&O3Ns3Q#&_@b1G&7+({t; zA9uF4B$C6#9yhuwyt>KHeedqk0N~Iw%f{yVoO;L8V(ZZQiB((TrsSj(fD)7pSGVKupGXN{yhHYMg#%8EyL^v$9x2+&@M`8S-kah%GK(Y4z&A5K+nd0y zA)CxJb{0$U*D!(*cMx}oX1*UN7#vpn{R)+p@6Y^y%)1~pakU)0ylBRBI(I`a6zDim zHDR7Gl;n%IdfBV|b*Qd%dP?}>y+eStvKP@@uY8PmvCq0v_KU6V5aNAj_aYLYn>DG1*%WBz$Y zvz>|U?E;dISzGZkt>drMQt_LmL-~NstVmq!#@31}6kMl8meX%TJo<2AuatLhz3sJ0 zArt9uUx}_QpWfj*TcW)Oqe(1nnlHOWJ8asg;<0$kS*7aEw)$9UJeBq_t*o^jHh++b zx8Cgmw+NvW30mY ze$D+^Ep;1g1?JMyOJOU~9=o=qMlY({>`);Kjld{6kh`|mL0&=95o0LZOQU)ygWS`c zg=_K`r%X=ig4o~*AN3RN_ z^RY&cV5xX}eOy$0ymmetVHbjb z4S;)qfwQXZo(d^K+$ATdQZ+MB=&mce*K)?9_Aosp;}>jX=;V$e=2kqCXd|_5_r{b> z-X%DzBPDD39FZ6+ccl^^38(*fnEDv`yr!&tx@;U3YCLl<)w>oy5ylrE0{eSEw?k<5 zCDooA4eHM5a;J#;EOXji!2}(3z742}{8~8vNZJekhn5fWxUQPTCukwfZN3&{ZGS^$ zF|;klaw=P_c<~#Evc~qrH*{NOJYQfgCFT6ev2nwf*qKBmMV(>e%`%KjsE_AkC)i?^ zOe-_)=;3rvaC!n^Y=?|oDHIYYCJqB8`Hw$~ce0_8`JaDKT-7b2o_GJ9>XA46T@{s_ z_vLS2H~Dych!yAb*xf%~VE!3C%_a2gKeUe@$!}W_4O3G$uf zIxt@Dz&oD9;fa6|1rHpnl$A}2-i&+m;I%=wTL&Q5vQ)rw!1Zl#0)E(Ndlh#EiyAi# zpG{!^wz%>b1#vM~KJ5!zKC)xY_q>(^nAvxnWkB6gn>9isX)_MM9_TIpj2e0+*YJ#(M<|_TlF>GKjBrJwQpq zmoYq*zW1~Xz5hdEh?!U_l_y)NDKh9*?PF+J3(oql7dDgp_ zU0IQ*>|+cH1UN3t@hom^Vl-rjuv{K>n{TXj|0!Q7zsau?tUBjFF8O_z?jmAOG&_}e zyCO9=&4Bl9K@AY4h3Wl_IiW2}Y3TJK{R^Q`PtTsde!$^sLR+Qc*pf(Pjwg+u#DWMa z7ZNQbmlhn*>o;M+Ph9keZ9{(!+KCT3j$-e^1#v}Y20yTb79`Xq(f^XrGIL10ce7t! zDf=bT7qik>F&Q%~uFEM&oe;?p3ncTv-Ec`MuESyVE%ly%pIr(jbdZrI&!33x1LIyx zDvAf|8`Zx3P2VO=!tJ{!B2-x!yQdTe72~|4XyPTKJ5T1}GCb3v_S1`SM*r<~v5@`m^w0s877 zf%mZLKeWKo0a+ahqZhW0GxRbPR)^XnXI8zAzEO%5}x&BeSPQFmlNKo0FU z1!w!7s>q56mz7);P3*?zIO%RE?pTV6Bx4MVSlXoapOjG2bvqT|JXWj9^DV_^R))jP z7bgor`#Z0R^o?LB)fR=mOs9^O=6W}Q;$M<@PL0W6RQf&gNqpt5^lEKWbg?r}v75`a9@QZ?@isE{U85Md$^ zA{ilH602FWpe5tsZHGKy7`2x`PbAZonj#yrZv|V)68sesa%FC#__Y8E#+9S%DxO zRat>TAy0pDCtrnByEqOXj%yBAj1lbz{brflL@QU9?uS7o-;P;Rgty5q5Yw(qHrA#_9a|!{U6J-N1+gh@0FggfFbA8@Fa;lL&#yNIX{x8~QzOa~^ikjO* z`T2S%KVR@?s%l>ZiwJZ*Ta8FRV)<=T4zJH@MRfw&))-Rwfx=6DHJ_>)uhmb zzZZtf(1N-2l5E#=248_nPe{%xEWf`ah_)I;aN^8bt?bD6(7j?CI!fj(75lp^SHpf+yc0Qst3-=nwb@DD2K*Kv&tyM~V z)&_;wa207zW=>-1<$Z{vV_z+?`9rF)p;v0vCX<$qv*4MjQPX+?vWdpsgyslS*VJyr z$d)TV``izC-H-AhgVYBJk-|2;1;kAs6C;CMx7-SXEhRh7(Xw=35U{~@NzgVt&^7X= z+4-r1+?Q;P$qtSn}og$B%z0U8p}o5Xp}U+=*r= zGMu4|KkEdNOFHc_gQs#v+v)3Lf=gTx#;MgGs+^$35L8}+0A&V4Jn5;mRuv!zzT>0S z5~pwaK?McYzNv><_O3^|T#XwRwf#|C+&}@dQx0Lrf{tQ}6I{7iT#+$^{C+{~*$3vD zf&D3QocppJvUY`R>UVxywK8!6_`yRh3nph%?obPRnQAB(B6?n($ScfHX0gzV!f=@N zcm}XYI8R3w-r-3`T&%p?kj~C~uG#}5xgrrs?3KVa^{y4iey90l#w&H` zhZ176=GZPZO1N;}c>3zBjdYWOrB1>I_4}qQylcTRb#zMnYC9V3_AYNY}<>| zE?LvwKJt}Cfj(erJB)F9$JD@?R)W|vP|&KPYDVcm%6Q(uCHQCYFo<2pIJ2=|>PP(z zW?%B?=%Vq5($@|u$yT`> zv|*+BWN@6bFobSEoyy=`w?uOW?6a5yz$g1a?JcXDseVl2pr>nCw&W(X;0(MPduKQs z$%RnjnA$&hl^XLw5J7qE^t81XbeGX1MHBYb3TM)x|Yn2R)jfcjY$+*ZK1awy`* zyUfL7=u@o7|u18(5=M)9?hY-crBrDIj+6o+M^U!X3)Bg|w39Lp(tVqXHbKfcivMe4bHwmvtKP}I;0V6{Wzch{( zKCkIkv}ka^c!zn6GX-+UGgk*(!nvk42%$kC0l z>jH9CQXLR|L!a+(j~aGmmfa&7S(>oCo$E!kkftlHVj5QE%!IrJIbFVDFA4&GKwoxo5!?);`}7CnHEIw1 zMEot>xz{eb>`UH^Env==L-_^P2byCQ;Aw+WeqX-eX2sGWEovSjO>j)d!D*65bb#mA zk>~+tlCx7uCC6fYONtvO#j=8NiD%~EmW}p+>6v;Yp*|HvmyDT3EBHdQl%- z{tr#*zmWnkIBB`GYt824(MOs4e`vZ1&J5+M6@v^R6yi(p6$u)v*fZc&z2m_}&UVo^ zwvFYo6j71o&}Sn+H_QDK8t7a`^C0Olr#w$xuTK&-#7fa z^AhE$FB{jC-ay!v)3LrAiI~y8FqWtspCR5CLe`4J8Hs1A8< z$UfNqj5LEJY5V1DyhT1gzwt-}g&mmP8eLA_$@48YV?7lTGdirbbw=6+;;0!2v7S3Nj&}JB5GU zc`j~MBq*ZgI81Jz8Z+b}1R1k@ps8*SrY&7gxIl%zK2xdvx6@%)HrmqWGrLWCP(U?~ zm+zAxt&XnexAqUs9|h{XMCp31tbPSI_5-?fyqO>ictuAd?VO3FvX3w*f~}#kFKgQS z9ox6^boN*K`OnF1-WimW^wl`|q+1>V0);E;Jgwx;gYU;6&! zJ&oJd3wA+%(j4KOdSG2BxXgr9|4fs7v)P%WN7iZJraL#FCgs-oVEyYAc==G;W?c?n zSLys9KqWZ}YPgd2{?H8s;I_#-Z+=$ahxDfVTvwdfklmz{Do^j?!=!G$*rwuWQ3{!b zr4DL4OM~)2Jq1v<-Qp=f%zK7_zR`fszbg==K@JtpDfY(Pd;$#&3f3!!?Zcz#4b7vX zod_B}IWC20Z|wrr1hf9oE=K98?>FxPD*MJKB`hi!SuWomb`O->TuBe4>*G*iK@}KI zrKE#Gza{MTsG*WoRQ!3Uts2rN@(dpU!8TqG5v|ddXZ(wA(JVe9CA^I7LU-0_pA>sGYfw^K$=tGD$H9HG2o0UAQlDR&Dd4SVbsxhC zID6iFAGdGXoXxUMYN)r5Mp8vVdZc!1R$9BM_?BikMIYE~hG&?4xOh6w-vH1=oJZ(B-ve;9B+;NTV z)U-_*Phc;|tjhaVukDDg=3 z&3kj6E3(K`-)B}yr8=W)dH>M{YWC#)44xsCAQOCISnkMaG||xlg*$zmIzj-Osnp$y{3N=@&cjx%ji7)9q)=~Xn0hht0-xt* zN_@3Curd(7%2i7hcX(~<)8zhfhB|yhs&Dd;DV*cSk<1h4_er3%UO}e^_iyCFbF7uj z!w$1#U;Nvt=Y|zac7B{>xD)55MXFVs4NAN`SiR3Zbo<+23FKHP{+YB*n{wP7%Cx4P z6AhT}iq?(@o?}O&cPjumcQ|zl8zZfuq1d5Obzf+IRJHgiEXR*rZ2xvRsGc;y}#0Tmc99%L9^|y5uKqXf_q8 znDKG^jQwwoTVd|kCu!K?**rD7d;!a|g`WORNY>cDj5nA4e*-c#GC@aO8@(!{c!h&k zcDh5mSeIB#tiIjAt;26UQJV&yeJLyUe|id~UEXc;Rt7cvs%)wj!Z`hUvQHc8rm!wn z8X&?)i5JLm>k!gC){)%2eV4%fdtIYxS-yQns79rxy;>y9PZ!cl=1AH4t|7&(aZwyv zm;T-=PT_EM`zEU3Yd>qrn3n3yUZZB2!j%FFYH&e!t+5QR&7ATbM85&gi~rJ8 z05aGJF)i#!3NGP>6|*BR0Yxa|qm8ngF_iIofs(i{OO*1)`28S?2%hzU6z=Ecp26`( z^c(s6cz4It-dxY(;$gH{%f#i@kpc#??Ks^o(l&7$Bv^GdWWDG>gQh>rct=3btx6*; zy0Fx>;ffRyw21B*u8PiL>D5U4X~ELBOI;vJo2C<7FVRZQ|JUYaygaJ4^q2Aj7=b!h za6Q}=n|T<0arh+Np-p)|@);VH>6`RqS|Jsw4yA*l9rK~B8^NPv5wT*(9s}X+5ZW_7 ze}pzm08q=ZvEMSw{ypF^+eSV29Ye~;$o4&2+hD7GR#^`HnZJdOck)b+;R4_8Xd(lN z9f@%;_b++bfn{CD3(90dIh7O_!L|0joWoFZ^)o_Qknr60~bF}%HM2k+J z3m>b+E`l&qw60CKr@$BU_*`=75(@|T?q?j9fNPBGphwK*j;-bzZY7fN^-YhXbV~OC zYuwQ+6M-U5f3V6}K!rH#$DlyLA1}b z-axg5GwbcDC9nbxZ3U5esS1X)KBQqyjb-=F!&r44fa6p;icjfw0y{^q-hSYYY19|9 ztK=w0l9`-g4561veojovufM5P;e^3ub_;MaBh}R{Al0#|uHN8=TC%Ip~^n z>!ZeC8eZSE*Y+MvEXKzGaO5cirXaMbI-5Rp@^LThSAz5{ZO2YsUYRPB7w$Pc-l-6IJ?Wm zFr0dlwCxoQ=E(FEs}~*E%wJyzkWERwdth2XHIXr*r;x=^CYofoB!sZ5jovQ9XVL$3 z3D89Rmz$m$vbEdqZ>N!$ku##xUt>QazK0nWcbZqEetf`x8JmiO#?4{iEkD!eEY641 zW*+_^Q(g5J|M%d6*Q6(v;s}t!&9&Tpy+&G#stmui@;j#SlDPvICu30!>EuAp??}UG z*k(BM$uH*V%rS4GXe+`!`tRQjTRkHcG4i5ZvTa7K6!O)gZQRZ5G#f&~nAHqx9G1Tf zsnUWQMp6mmLQ$xQed4aZCQ?`-6Vt+{wPYv^JwBE|%GK?KacttN&EKyP3=HtCaY2QI zbyg9n;Q@!#ivcb7MNS*By_}zqfb2K;FYj}oOj18;ZQ0z^3*4$Zs!1)nbGl8UBqAqUupEGq-Z!w zB-ib(lpPe_^Nic5d~MT9okV=^K}Yer?@NZb7yk~A2|3WZCPu3|`KkEgC3hw!Nt!mJ z7FHIu^t&(7ft*jxyRn{*HfI}9lwZ(wv?+XeIKZuE!nY$j-7vHuu3sirjFW9Olzrdc z`_7YmhPsTzdQ>XO?-P{7_{k6JBUmX3Z8iVtRfaIAi}Z(?g|X|EzWZ5%`@l3;nz&IB z#i$ZqmAb=331#JhQWqqsm<(L)l*FK=5!faEthFquZ?*;$<0~#>PMlSlRbDg5)@GN9 z3~OEr3I933rGv>NVg>N&(BEtm%bOM)ME3^B;V7V8{UyawZItj(c@eK7t{l9~>49qd z?L_%V+uPC%upcUqZHHZV%TT*{>i_j^Km<7F`qsgGAPMs+belX@nmu>*SQyvv8=f$6xr1Jq$zD&@lU?B zWg?s^r2hPLYQ3&qoOihz#3vI_9dYh-dYg|ZS<6U#TX6p+&65LtJxiO;mBxn5mmVzT z>m`i4&TydMZ3>XpUM5p3IH z*2IswR(S`X9Agu9^I9{zLiai<$Fl3mzm5YxjDUWXCbBvVxXy-4G*bQKTuEc{eGB=b z_^7fW#Y{7;b#cJN#;LgFnklO*GyEmzzbh8LM2?qCI%@xu=SeB@o9*Dp*U*haYi>&>H);1)^iK=1lAQepC-YZS95A5nF ze87YXnYJ?lnnSi4#)vt$1pX0jkutwEtxps3xRzU_1-!|*9{)5?b87GxB* zxc(4}s@4=xz^`EMleS+an5Nd(F^rQBkY^AA=40`6tDYJbEL{_gNlxpa4bm8ZQWkVof+3`y`2a)P{9C9T4yneX-93>`xwX-8kFa(L+|s2=MSN zH1mcAJGR)41vdhX7c=x<6b|Ktr9xuO1ZQ`dKRm1kbtq%X=IK9bsn0h#9d7%79wZAQ5 zK-DHSRf12}Wz3pTYMf$w8ckl^O$bc?+ zj`PT&-qGl;)x>CWDb_D2tU^@%S;-M^zdwbcVo0e{H8nRxo5Nwbk#kU2BRjR#;_dnT z>nmK>VIj^R5jtd>=D6u(&BHb`Nc5g~B`I=7b5lDtUG0&rUeF3DN+V)A6#9N)#B1iq z<{tz6x^QYZ(7TQ%0FQ$eis#|;cl#0vX%9{JApM} zixxN~arm>+6@?F!LF8gB>7NKtSbB9|ts+S(l$nKv2FO&7*6D3`pSSltQl$J;CfQL)n51g9w9TF4;SCyb33CdX z&;25h>m_}LNZJ39W%KT>5BW6}TxrT4kW%kIm^TX7{ok#!3(JXP}O-ixep`OKE zU5kY?w1|GVnGYgjewkDWoAaGb=e=ebI*W5o@Qf%4Ftx_lIq~<{MrB1+e?90kHHBq2 znH#qQOqvbp+R01o&sMokDFUM0pt%xr(T=B{99DW83$C-m7;>^2-)X=rUR9aIyW_)| z#4;mx2aUbB{y2tU5zFx~YG)l=^T;S`M^2XCgh${%05|u|8p}vy6%zgN{X+BM;z#Uq z2McLpO=Fod|Iknf2Nl#V-O6>ED)Bp9^?hZD7Jqb4%OX^F6u0q^;Q(@?$T9HrhWx?6 z+aVH0Zl&Ng$u;lg20+F&@-@uXFjGrzwfSYiR{Wk1%G?)4^i;q}K1&1Zn3M*y^M~{?mj1`AZs9S8 zI7c2~_5|ghSR}y6yemP=a7VJHh;x_}wk~eCnJKWZwYK%L2|uN0Z~<~{I}-Hx}ZLVRajqQviBTyT7G9LH8K&CELM6XS^2=hV|wKt zEvmsex}&fMA?J@LesS0J;Eb}lnn=(e$fnc_ODuF#84go!*gLAivM zXS(zyZtdcmG@CPTRX0b;LcCF%9|Z(8sUr<3VSZ`WHDZBt`3FM8UPwC0v2O!5Kg`II zKFv@AQuZ&O`@3umlnCy+x+mdtXnT8Du2M+Gb5ePE!5Id;KZcK3nUd}kcA_Y@jvG|1 z_tcq6FSmQUBo~6B5i#jHqpwvhtzBG0r_5Gw--if#ie)4o3Hni%y&a1j;3(HKFAlVu}rV zs$tC4>b-D0=x7;=Vd&M#Ti)ekKnJ1zhV{wl+9hofe#3Sj+Q7ii4Q3dvWCb;Zh59f5 z^?v#J@onpxH~{_)khj8>?K^=w$(QOhTd_DHP|Cx8}->Lj&2p)Z)ioF5&WbAu85v? z7TStZ4@E6Wu{HV`k0dcZzH>-js{{tf@L}T-!y>sX*)vFO5cuS7bp>+XmvJ{7b;W~X zyy~C!02|S5guuFq| zr}WoOCSI-45a5U(Nkn@4ln|wYJ(A~safz-^@08i6HIX8H3bfI+?3_SSX-nH#_GMC= z2Rt15bGFmn9{4YZrz}^}j+Y6hZC zr4{AZ(A8b;XU0HirJ=SP7O`CAo*YC|@Ls#GzlFPqw#*~CPmD3^Yy$#WT6Jm!i2r1W`Ey zSXl^Ne8+uf&&}%c-GFdbQVXat2ei}U*s3zW^L36FY66cWaC~wW#2kxHW)iF4*NwU1 zJLnx-Lmm4P0%h*W8<%o=_yvW=leS%3q=!cs@~#uoDCV~Hyn+c$t91db;rIUO}k58XuZQ(bkE|F za?EL^Lnily(mu;c(Yh||?+eb_*~jO6Z+a#eZFVG3AdTl@FUDj#>sbJLmNqqQfW8Qa zrs>?5fxz?)F-oxS4I(hYG0CDo+N1BrP3a%nn6=!v{c8ytmLPRVqs@7RMYGv~+~{3X z)84XG^dbwP_Gc=kvK2dR=7@=iT2z3o$`#dXVjy6u%{vZ>@FtgQP+Ff>W>E<8iNzt1 z^ov{kjR&~GE36KweR+ckE_x9C;6TjBViuVu@6~L6RuheZYn>Z?E}pfLGfB=%M%Xi> z_fm4QgG((y9EXoIljtIIF)A@NH8UnD;((){`^mUXJR6eX-i%b=6IioJXU8i_KJc1a z^ey;?^{P~1QM977j9r^&1pn+ss0+t@Yazixz0*UbOHP+My^1q|IAAQ>pLyTPP4kK; zjY8@tV#y~3no<(?#Swc&Tn#cPo=F#)AWrOUHv7A@f0J^akIWLfgM!)Qr!+I4p|~bm za*7N4K zyf=*cz`@3$u=plZGmKCz?l}VygwF=2KWJTXa^nqZC_dmbIrbPrQvtA2hp2%H^E&)P zOWn=IyV4X`+{_!avlUcm$!GY?9)?@H#KNe+&{xOIMI|wzmwR~k6ma0T9O#8x$ zX_wTHcH8#3@k1f{q1z|hjfvq9^g+b zJFMwo>-TOhQM=rf+8M8)MaNUywr^zxPt;mgLu^{=3hvsW-&Ssu3ALJ zvI1bzi_wEuqH+Ssyi0Ysag9`T0|&Q`fyzT4n|#UF&gehFlo^j}TMGfpsnh~*o_{AV z<-9JgdjE@P5uokJRxt^|DtVt?T?Hsm%0jl3Fn26<9=!jhkqk5Y{!pjF69p9UFYFs; z7|jAaHa#;~c!hjpW}0o+#<@`at6=_Eo4Q)BuUhWi;g^c-BcA%yMUP~J7GRX{R1myo z9gy_(zmfCo|Ar8Woz;ue6D(J&Q-WO~y<>iTlRXy59f1(H=U_A}`8M$-%QJ1uMKZ?$ zBfm_R&}H~3zc7O>Q@Oysm&PB^>lMGM-%u8M%@&N>6h7FNC0;du8l?qTa%iJ^xy}EU zHmObOZ)`VLY=xpLaHIRVxr2~1De>3Qp9wRbZhH9etS$W&rj7Qk0s*|KPv8CMgdAle zuD$m}Fcl7V?7Bbven}!3?-@qEXd#AT^N?2mn$F_&mWU^|4vzv-vwb3ZRPl^VZBaV! zM4m(?p<;?3cSnAZ zg$vphKAjnH;(WxvA&f!PJJ_xncp!VHCKyiYczShI-Rcq~a4_Kanb9|&=C9b<HeI@1_!RRQlo3kALVQuc96w7uN{62cr9#I8yI1k_k+M=~*=u^Jv zo|@vjmI%oBfzJoz*&o7ShpF}%!lesTCY8^XVrte;>5RSa9(Iz9j(J&r5B5h zt4PF4>1f@Rm%yEXqrhOCv3p+MzHTBq(K-^2tGd<7G3s?QQuJ*q<`dkicIDqfh8=iL zHUWpUGOl>rx-#MnPHWPNYB)?e4xb53DDNLqvwT?3e@B}yd)Zs=YN*Is98+V#`jmGX^Re$_n! zS2=9#8hFb|V5x4cmL9g51=+X~(oQ>L`Ecw{Gis{5OT@ML8RT%r5CxQM=dacIhvqyL zZW4dse^O3#LxLSfkNC`=kz ziHqoQlfWOm+UngipletSdMt#h1@7?(dFdH$dh4<|(>S1~UA;%G2h>kX-vUDMGb?kz zB5Nit(QZLZ_MAd8(S=(J!kU&Y+VAOhpX2@RQ%QVfz1A!Mw_ZTlG0i1Ok-|!G;gixN zJ;JwID=%?_6+T(ED0nsQpS;`F;V`g%jaRzG%CV&;uWSUHn&ym`%2}FzQ z60||!RM>w)^1p&>D`wzqt7E_YNC?J-Nxzn2haH+PY{I|)04^Xu!i|(e z9#bcNcJ`Ei!=jw#Rv!(D3{O@f4F3R^5V!gMd4qOU{M!~#v%Lm3;9fDvv#tKKk(>0i$CT& z70O3+NT*pPc}IqgjZ(VD9hj6z5)+`d>)SA;bji9! z(Xl}XO2};C&N0sbx4BKj%0902ZRoKY!S5L*l~Q|ggf`ALA`z=`E#jwY)y#@6Iw_UvU}7$?M`9V5o@(k9u@`_ zn>L|5B|?C7>bZ7QPG~qRCnb5oO{(K5y-0INOz-DK9^qfG^QPQUyvY%{5>uXCE7+qO zP$|xF%`Fm97~we@COojb%UM!mW!d>wjMx3`hY8M=<0N3dKb6Ghl|wMKpwR{9Th}Ha zk>0cw7_>))l}?6rsuC3=JAo*;MTX>I#Ra=&ueHayT`>ssLglS^Ba5r0PY?9 z^KWg+&)q}H+B2Y;9tArlan6A6p;=o$)1QS_Rg=1*@aHf6;)F;PZ12K5wj-58_gyW9 zYbu4Y!Q9BCf6i;Z*1&n1* z(G1GYlb_;LphFGbSCoq9bBkOi3Ye=72smm&vT*t-a&zFhOrtanN}3}J8Xj=wwT;BA z-9kYz&K^z(2Z{7m=+Rig?-?pbF`cp)n*RWY$h+RysZ1)s_=nrzeP!s-iA5nW}NUMasO)>{I1#lc@(xk}V7k zai2kom^~%g$>Oakv9jk(L(vmYgnZ#8l;m+}=2U++9w~=oY>G(pmDZ*%3?BQ%o^8I{l!CQZegsK<>7pR7KSu;BGNGC6)}ps^)RN= zwKgcgu0}m2WbD3mTYPu(B+)g0DtIo{3}T~YcW$xNAE7RV5uwa*kqNP&IP!CxC;tEn zBZP!YghXb;B`vVZ%73KqvVZhX+#(2=D>n#HJX(M7wza_qyvRd~bf0wCUOeWt-}~U9 zyK6zVcuOk&d87XT)gQWxle-9wlH?+0@{@$_DkD8+kebg}IiLIBoW_qV%;fd*nSI;8-Aet|>~BO^b)v^&6xiYl)O(hDsk5NvoHLz=1Q^W_WDthl{{TZ? zdxJ*Ov$D3l>}GP7Nsc#&k~M=G!bxpIuoZnc_wl;IkLd27Oy7S17%!8kBUvsXy7NXwoF z`p2ANFxOa6+*}4TUzmmSgiNmWgi3ptlm!t(c;@q?t8 z#>5c=brnI}fNN@0t-3X*!>PJtuQvrIKRH~{!g{{VG=DUKq)U??@906#*XlSUb? z*RZYQ!R=6GM!xX+D9rVkLJdB19NQpe0BN%6?pZ8TjmaMBC|PSpYsJ@bP@GKO%*XdA zF53is%E`{yP5WER5Ay(c{{Y_Q20L(j0kzR$8?0!VEAh>3_K3ycVLGoRl0j$0NneaI zY(o3_yHqIc!R-!G!tPZst)GpAJd|xM&QOQ09N(uh1NOp~)nu_Y!Ef0+A<3QP+$8cm z!T#(20EtFzFoi$8f$)DZ4@ce`6S7w3%gl(~75I#xzmlBdL^}5b7{MmANDgF`=&&Bx zaPMc4Lu+#0T(b-9mNK>R;=1b?CQ1-p4kR$+AoJ1~IVk*0Tr+e>dJ#Xwqe+0Unm>`Je2P0pE0p=iRAEi=@oM&gd4Tm&$IlKO-?q| zZndb8DseU!90D#ugG&{^SyL#By69AmTB(AF#x#hSCbgPG(OwXQP%)8DjmW;ZZbBRw zcQ=*FJo1r!Wy(VwLXia*?djaZff7z+KC!8>a3u)BY4hBXjht6De)!^!7{6?%&tsODny@h#_$Sy z(1z^be?sn2v71CrLPl^IDs@H` zAj5guTBHPrNgf;kOQ>#*U=yIlNR3>7l9p8t^zvZ`I`>T*!%0yZ2 zlYLQ#NjEqSDp1ApnSI%_z$cBSeF$S$52;1&#HKz}gwp=mQzhkc$SwWqOngYk+;97@ z_#XyXX*k z9K3H`+PHf_UhD#MoTs&2vPDx11-zRLHKvXB$YSdW0&+#W7b?M>tS3i4V4zO}SX`f+ z#~Fn9gGN+WpN^opLkzO34#M1|49A)O0J;tp2bg0+I;u9SrjkL8leRA?>6Lknyo|GW zB5z`Yw{KyP&^mr56ZKm#XKacV!Mf5Pxlr1b}D4>{1qq!LC=@^$M0v8 zo#1Chrd~EVUu`yo2GXUm1S~StfJMIVY!NlF${a!Fy2tJzL)|fMa7}I?oNeWcNEldD ztj%!<-)-sZRSpQtnC1g3!8nm-W_va&!!u5Fq|^?k{)Rxy0IN;Ma6%J~bOU$0QiYea zX1H8`9Z7(?abV^@_*pzXZizI*>%GVL{w(F-xI)S`>~d^ux+F5z8HO`oG0@&7*9j1t zlt3qwy*N=ng08nEXpigOr-J-`QXFA1*RLNv);lVPld-X#i>1%KAw9go3n&iFGXd(j0K%H)L)RNw;JHkp+^laBRo3}7Y#kij;1+Iq+_PlP z3T|;cYz`WeGM0Dr0gMwR65>7Lr{;_Wk#eFd71A6BX7ag2CUJ7k%b|BwW^&Pf7Js_( zITz0LCVitPw(#IMDFiM&F|n^wcr zxg3R;8|!N-ZZka(Ckd{I{f!e`wpQqQEH7Fi{ud{a-y>W{QhWlNoJrr!*v(~fE!V4_ z7{M}C_Yr%}a*(7kg^=Jw(tD&7ES?^WHp`@(Or{G4_kgRH!0vMV*gOGLF`dDS$>fop z#DKh>Lkw|z)gffQFI5vWI*4cp%77+QyAd684SJ4{|SdB^ZTrV_KM74YDXn zM0_LW%@}v8ABBxO>^#Oe(&(aWO?vFQY-}<9W5ZBrz;;en8Mz#5+PM$$1{S+h_N&Zr zaNMsP0=!%|Zd9tiO%P4sp~GO7)m7GjLUbpZStC%WdG6p7PVRHRs4bZ?2$LP1#XcaM zuoJLxO;>f5c|D1}wkvncC$-YXVrkj0cL1Geo&vUB^@W#84o93Bt6I9jD>+7r>#)dU zW!Qv*rq+IkjH@Jb8wt-3HPJfkxs<_VQL15I$+BiK+jaK*rTH}ZP|8Vi(6Wc#*E5O` zqDl@?>YaQ$3$kDE=|qczqIs-N%CfTP@y^|9aSb&ML!X@yqrF|pa(L0ty4oqlFtTC4 zJ<4&6Nax>mJOVi{_;fgLh&@pzH2(lAmCB-*om&SsO%p2gf0bNhi?$6)^UTjW>jEw& zy4<8F&6c0>D6RKlPwG_P5v}4;zn4L$s&9RkX^Rts7n8`MJBy^Lki+@bZcCGnGgNL) z-VFZ$%KXS27#HVWtCvMmIdp%WN+fuX;_i<%jywX;mlCt0G%qU~>m@;Z>b#T>;Zo~X zbVnZke~`%{5$h2kfy(lRLK_=Wx{g`fVpUyZLq@P0uxM5W$XpUoKD}rP% zI12Hw8w*>eD%Dy<8cpbK#ff?+sM?gsw@Ysc$n=&Uwo4RN8?=_$ISpPT-rzw!^w+`?7FDl&X+iYzf{}F~bFRCOdYZ@#fh*XhdVU zgl(OeD1_r_vg2yx>R@GM$cMdA_xbtKL)Z&|i>a{oSRoHor`t$EQ zF^WUOSyOfzhcH9@Tt=~?L9H?$MK`_9;(G-I)gd`n>wDLfjU}A>-TwgWyqp>LEXYk9 zR-N7fXGC%D=p~cn(PD6F2Pk|v17;;oJL1PXCm_6zNeR2|^SriK1)N-^48)9m*8c#y z@);2Q?pd)J2jFM>uPv3vckWX`ttIWFV08D-@o+<6!V2(~MkmoXEHJQhqd=kg{%~|m;_j9Ib5y^kUiP&NcPXsc& zzdk9bVb#Z_p_J^H?o|?5#%o4HV!J$Oi~JSG3AF&(qEl3@m|G6cV-D6RC)^z8d?7c2 zjg`K)OqpPGs?_jP;dmqVK=4=20Tg$ravJ+%qHDpUdNJY|#dS&s$5<5ht;>^n#3wN7 zvMYUIMAukc-Bxc?)T@EC?KT^%0p51?ltT55=B!ms3e7U!vAm@DtnUz}KTD?Z$;KE& zYVypz4^&3rP>YjBbT@87ANYhjhyG(Q@LZ-(6|oz&r=x^2T82xD61 zvWL%ObvK!q!c^kBxFd16V=PpmHtzDK;z{Rbwwp@6{Ngp7704Anvb^In*eDetJHcQZ z#HqxL0?&;;^_vR!cl)f!04iM_%CTMDMN`oK0K??bB5wgsF@*qcGb{chDv1-}5>tng zFuQB>zUn{$Y~J>?Z!147h1_PmlOsm%kX}b4V}2)1X2xtUg^SB&QJ=;3%rV{;hBOjR z04C+xb7b*WL)pCgdMsa2q^NwZb#Jki$>Ww}dyqqG`)(bHW*VsuxP9hP2Wu2FwS(-UGgy7M*-fY-P#V?Is>U6qLhX%# z=0n9B0(FyD4k|@R;8krSVhD*&Xt?PWRZAs^SOBjVPRCrH`5_cy)p#P^%aL)YvQ7&8 zGevNmb!`1FEPF$maRnHe1GyLaheZDXvbmK(b2c4Ca+y3=!*+nV{O#96SMx4uxlk%60*6iM$8avD4IMkanVYzunhVWOPE-ore z7q}`LgL3tnaa^PqU3TS0-r%#LxOX7Rfvm45Fy-YO8m~IL+@%a(KSiGEZ0R#WDv+G3 zb-nA#Wlio_z3Ve2pA{xTV?xpcxmGLudO9y9kw$mySDk&`ohT(3cgdMEtHRQi4-BZJ!|>P2P;Q3$|s zYZ`I7F+jtIb|0?n7bOhdCa!VU+POBI=Pc@kC5JLaZsr2)0+c8;+DeG$3>$(jiM0vg zG$e3Xb7ip0qm3Q9KxXknmaAKy>G|C`LpEUwQA&0ah3&H{>nc&bCWEz1)jn9YMh(*IY?0DcQ0KNqUV|o`h_vD?3h`4@Q&qA@!5KDNl%}!8U5ddpU6SXp`KMAbqKxNi z*sr#a3ghVOTM@V>xEcPK7;#wFwBiUw`6JFw{g|~EIsu5!S{+qa{619?gJkHXl);A> zZ5gF`XmMe8O=e}Vhs19E)Y%b^;Cb2c8r~&mWo&WS%;hYXC3DW#nIa5+NxLD@U%FWf zTvz`9?NG_!adVHHd7qAg<~nVWYySX+K0*oaPK^_ggvN=JG()5+#CFDspkBtnZ@yLRsw3mOW{6iZcr1oD4`8mwgvf(&;|q$yqnz=>}ynCAYokJKG0t50&~t9tiE-wOd9hfRWP>h)EdygYI|H~ zR5;k_ia1M}H<|QtGG`fH80=Y)xk0ssNJGnq0Oi%?Ke_Tuixtj>TxlqkP~yeYz@5Dv zY}}_IWJ9cpCy}Trw@92--#9DK-Ux802Lhr)dCiE$6i*o`g-m&_ZIHet4|M+g=qKGO z55j}t^^Cz>%BIJSa>aGGxHU^Bhh45xIz#S`*Yw1cr}!?Z{tKypg6d!3 zx~DFvuB+-6fbm{uiqm52M}q5qim^|E&WPnx;^qEdilxrxtk%21QW^17ggjLP2XgB? z6=FNZSDAJM7sNj3SEJm?+rFhH~-D6R^6szt4(n|b`XNr}#h6;_aG-6X> z>>V`C0u6!-m<`BdYK4>QXs;fPs#vS~mHN4>awk>bqj3qp62A=R5hTp0ncg){axM2i zkc*#!%x!|!*$n&W2gGZ0jwM$phx0GYv2~>W(y7Wj_NqdNp_aoeyS+l;W#=+Z+SR8Q z#Xcy43xK8S)fXHboxZ@}f-X;Xsdl&V3Isuc5Bp7HV84q3u13-DxP?Z=Z|_uz z9Cxm^KZ>iPpWMGJUGY4xC6T~q>{J~IV-J;$n%%=$=%Yb%u9u1x_L1}?NJ*UTT9Vmq$3$^&Ve77);buM?_&IfRT}%8GVYqj8DMEz!huv(}ZbKM+LQ1TL z&M#hDEQHU6vtCv_XrDz)k+1mbuEB)JZP?K+WZxPac)4d~`9IFTINt)PmqH&E5OYX# zP6T@m$>k8k$JtCiFx@reA<4%V9D6?|Fm19XR_BEnIH3*R09Mgg5?>jj2P2C5kPekUF z{{R&&>Aq3Y;-0xjHguvcl*vR9CB0oQ{i>}CKq|B;Hw0l$M-Yn(uM%c@9Ot#XN^`k* zZjit^J1NSd2J5cX*N+7_Q3(X$CCZErHW;V58157pcHUWo$+*w`!sS^f-=lb|@id)a zGg-ojI2BkyUS?|2QdgK{R)c1<&vKHPZW|QjRKh68s+C10nkKia#D1r_=LU(Wu}&{} zb(eK(Lnnt#s_cX3x-Bt@65O^>eiMR4Fzd31o7 z8_{TSZ1FnRobCZ$0K)I+%t)CtOO7gIB!+`p00U6z+*yjMn4t-=CFNKyye#ICVF6uo zqM5|2t#l|y)_ba^a+W#ASTkLJ_LZdb`&JP=7gG^tz;}66$$z^$Ba-Z!@gxH27jxk(S*12`AU1?o!(RIH-y3^pg*Dkfou78T_ zU*fvQc&#JiuCx+W*n&ryeZa%X#*_B&OoIubtYDBH&dp|=*5IV|OC@ZLvkH9Rb-K2Q zqk*tPoUVbX0}a=mumssOv7q8{RJ-1TzYhh#>ynf5aLw&knCXt%Vux~jb}0(0(lXan zMBLf>$c#b3P+2mmK!BXdSBZ?$svhnxT}Ss7Or4$U^6>nQKXaxZhQAF?tN zhNqoA3u8tDw`RPrEd`I?fm6w!o$5JVaFOR<$>Lw=sM!srQ#vU{&NC*@_*QU+!Q`1 z?`J8#$si<*utxAR)IyNO8slqD<#LrkgH=GPsm+?c%tb<;2Uz_9BbDVHv6WE+;Rq1g zCwYwtirYFjSy1nH#>AXOZJm<%VZnT75wDU7sUBE7^jw?CMYVy&3vR+A-j^MxH za!9v!hW`L6aTwTh*7qspSzDdCf=CwRt#gLA=P3_o%Z{YyyA4*~I?!WI3P&Df#yrj3 z+SP{;rr3c@ydDbl2Mj`NLEf&oOe^qnhRteXZE#m({K{=J9i~SGehkmu z21SH9L9bfGgc!qmWi^8UExdIbHU%lwLJ=GTuHdwfg3ac$`k%p2PrJ^Sm=Dlfdh{vn zm{R2en;Z&rwv`LN@7traV|6+nwmCQ{7Tq?^YOYzT_c4m_by0JVk2ZY3)3E`zp5GV5 zdsxw|m3JeD%AZ)!FD)36>Wmc{sz6mGV6;|lYVtWlnZah|kMUJ|A`R^e%Vex~!eqRo zB18JGC6ut8gvk2_-|CM-%o!CZ*~4zN%H**F$Eziy55Z`|@Lpii0x|YFjH$%@w|vmn**xA2x{c_Z6~jUhJN>(vM*MK+daSBEhDh_UxU2b8L%F*aXj2X7 zs7j#)Ri#5~vXa;Y=Lb|P@ZQ%qXgQkuhN0SxarcBD5)YR%6F{-WQnBH_x6y7JB z3np(8nFx8IYBMQ;D(BHetOmZc(_Xr{1$;h6OdRZYSHJ4<@-5 zCc4q9%EWmaFbg@@3miq@b>Kr;gk9xFn83alr1A$A+2aZbC3wR*{I1G)b z>UXE2L-m?Ma}F&svOKY`*>dp(Jk8M_f@x4zhX zu+4}S_!;fkq(rQT6yg?Ri+B~*Pl~8v?ot<9!A#v!Y$_a zro2){Xc4Z*j`d6sc+^lMUvHddHO(HdS0O?W;cHEFH2S}Z& z>)benaEyHJf++V2jLn1|WLTRTqQ&l4VV?E6*_~xZ;DQ`GZN`~^rWPm{YFKkG;cKa_ za**`3jjB!(Hb~eff(W&qDX{MuSsUXki;uTaBEpBtJ)(hf*=wCWK&;Hhc8Rw&+mOj} z)18A~{{Ehh28+${-(jTMaR>&BtqHHCK8S{Z<^^%0;Mdt^(;}|MV0d1k@L!nz@R2+n8Y}rsKzA-q2)M)`P(sg&Ko(gwDqZYVLa%GQp$4N*llcLir zOswqXN*$JoYf&0a965w~#00=JqD-O+GsO+dcC-Ld69>K9WLH;rg3vDFRUos$Ka*$< zW^j;9bK$hSX1Nv%Cgc@$Ae=F6gcx!oUbQgbR`oXk2C3qRbsQ1e6!xPLx{&2wF7Hte z*A;XcwAb6GJ|sr6nX}rASgs_TTvWSF@roH9Q0(!bwyQF*4C#|yUKEBWY%O>6<5Pkj~aWIBL%l%+jXFlbp73)$^AnlR^y|&a>?;*gjF;Mdcn&?MpezgQ384G(x~F5U^OPRcAF{V8a!3+USkM zU^c8&*Lu6>GTWw()KLx!DBb7={7I1<@+P?;-t~0hW%djZhqn-~Lw6?^SXvX{q*`aeQW+dko3BK2yOhHm zRN%#z)n>hgXGCb=ysU4mmyl)WBKKld3er9{NC}i!JQ)=?raQ&=Pi^|6MjFrru1UN(89@91yIG+#}Y+HIdo{nP!P=ke!mzu+6 z&P}((EM-}!&>jPU7o<^%3Abm67;`F&Mhm3l=m=1TE^=!|p<#PbqLRGDaoS3a;>nIXEOj^^F>v8aez#aq_p?lK760MUZnD^(tn8P;`{VUVXYk%nFrxrM_^eT$8-- zx{+E_m;o`HTmrkQOOiWW&qH#iuE1`zgyX0w*~+n3y=EF6XoE1M*`6z5Q&Lw;l@~76 zq^kb_1=hdCHuH(5yJXjpy2mcCuCS|x<<(G3h|eB?E;^H*3X|#;_*flW$pEiEMMrh|;jYN%>Ub$CzZMNmx`PH4`Lp(avwD8ypHoXVi9nS;NV|7rXT%l;kpp8_s5@ zBMT^m=x-X2GVt#kS1pp)Yj!CRL9>=3O$ot)rL&^YV)F-b89q-kz*e!p$Sjk_Vt~6?P>;nC-?CC^03h%M~YKy-XTgK}A{x zCittO%=Ut&A%tSL8Pa;yV7PEu!s~XGSKd0)K{T3_sE%unumY4wtcKC%qM>m1%7-!? z0;LsAmqKd>A#d%}7BVRFU0w({8H0zW%uq9+y7zZyVR)2C+3x-<7)Hs9AU@5NJJrl}2fYb{k zwL*BZn1nWpSzcvS`K>5(+r?jqE2w$`Q5p*6825Z7MT~Vc-B_Ri6>S%kZfH_ykmeFp zn7{&?p~<5XxhOfX!n*8sp!Z#&k#dtF2#p%$g3c=NvKJ3*Vn1V1Ht$8n7_RgPattPJ zgl_k0^xNRX6KmUasJT1whT=Ob8b^|cpA(?F5siCJq7?rC56K^J$$2cYD>$}lxqUyU z{{WTcqeYAKU+~#87u*a_ri7wRy9%13?`oGwJW89Nz9z&P}t>@#TZ_Zw1in8q~JrWkP4(C;`#wJ zPTM582RiJ~YeaxT8*wJ8rvzg>Pt^+Zg%tJ8L7%PYM-A!(Mp5CiT$9*9cRo*S)b1#p zn*fzlZ|I7YA++Z>&dtk3avIz1i@1w;qV0&h^qbZ)3QlzTcRyf7#}c6BcLVu1PU?W{ znz>Bob7WdJBE#m`*p0=Gm`sYz7YUC`!(=uGIn}BRiR5B$z}pmooeRni$Rb1@Mh#*qaI) zZ#~99CS>iE>|S=CYvMwlkdiQCw6uk!sa2dPRp>9`71Nm$VYc=zIw2Rh&BaT#OsXDq zM*FGl+AZ8upg7@H^dYSid0FAE2wh{Gb}Nr<$?NT}WJg^aR%{#W7&_|Cgj&$9-r$B& zcvk?UhhcRy;TqHxYX?tzBswPetps$Y8@lf%w?sCO&Q(kch_2caVme51MN zqln2+ISZmf?Ana*Azs0#>_c((#v^vL+DZ=AP#d~RTPH*lU1FPD2CmM zlmTp|g@r|lFCtqacluu^cJeF@IFpJDXpjO*V9YDIL_5;J>k8!WLUmZ~!~X!p;|9F-->JPu6BYbGFy3EmZPVR~vVXR1| zwBpRvekCSxu*o#;_QlQhU1XCR)0j|9wwoN>k^`ca3A$R5YlES^x=nCbhC0VdGU_cJ zVG1@(O&l)^7}#tMi0!(OacFEtQNz-ZPri>7*K8;TJ4rHFT|vVFo0G5yMQg8cQX*YD zVMy{#tVe7Ku%Wi=8YBm{rH^QHP9UQjC!3*c))btL*BKmCl)0aTgk;gDzR0mgRM
wZt(-II5W9boxT7&)}0xUno%nP&5mcp*;cVdF< zCi|zp$R7%d%|;ylzJ+WkaKqk2>a$w~zqLecU@x;+*V4E8iQH{1Zjfx3B@oDJDkMfa zb1G3ABDqM>EH&qX7{{Xqnl555-DX(q>PnqQ(U7FR{ zUQNGMH#%id*+c?sK$M4VEjSeBIAB!5#zR^HN>^q&cu}^GvJPOQs-L|?b8uj)Zy!O0 z82jZ$?y^^>!AY*J&WATqyxs^oxIL=0PEML@eX)lVXp)tH?UzjL+}3gEV>QycFz87e zQ(x-|s7=_!V&xCI+mgXwff278y$J#?&|73!ezZCLdRHBe3D(V~R))AK3IMM(%p(pX zLz-~~ekUh;izgx-tDy{FCB}dS%SQm^Q3ZX`v)iY+ph!?Db7D79GaSc7aI8a49X;0h zM{ZPv)hN*A!C!>n;n4p8-5lBNPJ(>eizgA_ZdYKAO}llez13G(4R$N}QMf%(ioD6b z9-=iWg+`&2?p2zvYGbCpH$A<#4w$uQ zSa2a0J5{-@SKcOdDa)8I8BW(cr^G&S=u8+QZc}x6C||-cVz{}+#{g+^qtK8Kyley3 zVI2;T@mbNKjxJxCgYzooQ2bO#P@@Mt%7~4;_ZA%KRX24N6g-)Rq~0n{66gk7l{fw& z+AZ}5`}=hFYcw4DuA_#FwkpCdZq}(b3(4SwOs_S*uCjwbkR36}VIPRvKg3`)uVI{+ z4ss4@rm&k4m^+~V0J+X<+;ea$?oKX`Sfcm3XK7ieJ=u``V!WGkyUH5X4olUaqPo_N`_P8gG_q5YzYOskI(U$_iYTxT#IN1F zvVo2GWLXURqtINf%k`Ekl@R$lOBC)&f#u8cwEmeZG6mn+CFc(XSg!7TmVQ&*Vilhq zpHi!pe`o$xV?V)F@e2GY2a}%N%3P1ss$}f%s^y^%CV#Z45Clfz6ekZ+JZrh_li9RM zO369WU1NMz96W5J%GB;E>}K8LP_IEU`zx;!Jo!5vMNnP~JWT9a)EffPQXIn934*`j zpM9RAl#WJbfyy%(u?DnA4uYmj_LY<$c2>aTXMXtYont&!c2NXzcwd`?^D5;`?yBqm z0JN<)pW3jC;Im-GDX`lG%#){6V`H_U#kz{khXi*O{z(0+t!UuTzcKxxerh88#D5jm z$3M8N;}G#HMPRioLedBl?rj9^Eq;klX>{1*IqXbxUMD4XBWR}zqhgWfxBNpcW_~cC zomq0pI9xeI39i3$xwDN z#TRUbR9GIcqI5TDG|1R8n2?7o<3e_JH^+aPJXUNtE$&#tAGLmC!J&R>{tNRlyj5dI zJ>_Xd@hZ2^60}yY6{%?jq!yafD@d(t530~w0ceGy79BiTlC0#PcVOnosl)J6h}jh} zoZAChCQ5Ew{vgjO=0iSi^X=qQzDix5C?2WjMs})m;yc|=cE;P9s;ZXmoF0roHzCeamK0@ z4f^FGqlXb9Uy8*+a1|}DpyB)qFT-euEZNAOdk?(T-lio>IVhkxr3jGSnB#`U2amRF zj6M@%4)oh_mjyPNtFbeO)lH>HtB=oueu|Z8(LJf5M}EeCDlBv6HfgSSyc;*UU;HE+ z-w$Lvo)e}4S|MTBB+yA$j0ekww_z~3UVIZPc|i@un`Lh%!!2Z>*Bij#Y`WSsV&$A( zM4)CD(0TO2&gp3(i-W5zK7p0wMilao(oUCO)Fi+*EV#o_xwNA{8@+prQN@_VOnBSUN_- zbsSVM-8`$tIol1ClGKu5zH@U)~pnvLUX&2jUG;ksBGvN54|tmy7M0<1`dVE+J_ zbyMP3<=ft%hC^#wWk5HnHH{nxIgAP$-9T$(VegeKk0a1~5M zx<2+^7>i@>kxX{S3uf~q4&Q5{IN;pTYuJl<_u;Fq(h5hl6kY2?Da{%%g}|VLi-q&w z*>azNuH?;+%}t6iVft9^Qg>PtT?%&{^s)Z{0)pMf#@?kbIT(izG;9gbVi}fU!Cx3e z6JNNf+-!v1Q<+7e)%ms99t`HiB70AZw4Vlc_gD|AMp(}*%qcqU~4VVdh9 zH(3)XosI=UW~rv>6BtT(Qec%fxI|jy~= zDDzz}{qRB#Q0W~`Jo57*^Pt_TBv-ogiza!qFxq>S1iBOPO3cwFshs0!vM}N3m>udL zf7uqRrx2Vv2oBxPoP^MfF@|fwFr6mml^cqR-+$0>{uLMDun2~3*U&+J(JN-!6(XXI zWroOa+R#yC5)ZtuIL$Y8J+6!Kn?Y0W=s8wVUh!MhyFAm_=)9N>oYl}~$W0`js0>{e zC*1~&0GDNs&9Kkfz~QK)FFlm9Gxm@Z+2>;0BD-T`nf*WHs8IH~I$m~dgnNn$xP*Q+ z8;y}2v5E^e0&R+YMsBiU}4?WP`gM^e^jwZjlcJLH-@bnu#ALT{(dMuy!e+j2`pq)v>Xi`}_ z0rPW|t6Ua!6X4Emm$lK`?@yQ?v0c_V@>dRvtmE14>{K#EoU87fMdTt8n+Q+8vpKs$ z1AUiuu*pOkiM$X#vx!lgt&bzQI$AEy3P0`sRJJrJti5GGTfx>g8lV&k#frPMxEJ^0 z?(XjHT48AG(6pGFN$-8n%GwbY zaj`kuM({I@;vWMH*T`@BPW-S}PT2~NOe)k)OJ+=f+I-ZD=pC?p8~<#jLO{;8jYLiO zS<()?;Yf-<(>joXPc3c{am1@l5SWAbP^_^h8OCLx@+^59yi3s+(042+8YwwZY=_ZT zJb|e?DSrPI6Rw@@`;(g;AL%m<^;!xya5D9Ah@GP~T$Hw*Yur`oH_ot~GGRk@kYo3A z65$px7Tn;y(ksST*jh9>r%z(T8wol)f=Q>Y+ZNwX#K%pkdqhYBd2(c^9Znv73-*X4 zqcX7-nQENd2|o646it9R z_KH3w=FgMpTP#wXT^1%C&sS_3mfp8BYK9mKneL@y>lo`(#*UC78dk3$J1yVhG|YMX zxaghkGwNsS3EofhgIua_5(Q?J2{^cmpHAWwLbfPon2djPO>-!!FuO~$agLUyv(us= zlRpa!{$gIdJl&C!oG`Xw@L>2XTI8U%0bs5U@^j>y4+x6}@=q}(Hg96@8}np`&^N&V zT8nYi$$Luk}uU!RB#8}MX0D}N0%?A6! zLnE(-li++KO@FY$%CPMk4L_|=zjDv0Mtp2H4DSyO>v%>_v!4xYjKh>a7T4zpACpDH zYf9t$EZ>~F;9i>Qoth{p=MgKbInZG&n*ksJ>Z`vX%S*+6I6$zH?<#D;H5(PM;cz@@ zJ%eI`-udASgy{ub#_yhCQKEbktx~WKLUHj+P-2w*G`F_XI0o5I=o5`wFdb&$&O(ma zL_YBZ@u>YaiWvU3|1M;BDXBJ3-yw93#kX7RJ^`(*xp6g{`+6(rbjQlTc688(m_APo z)Ak40jV3jwbl;zR8U142#~7xBAj#`cC|iw_2s!DOe5(K^+;_v88|Tp0OirN;aj!me z^@A#AJ`P$K@nM*>5A8=VcSQ$W4pz!PE7Lx!xt}5B26LuG0|@=Xf}49m4dJKD=;fT; zj<*ey6PcKKKXEe5!sfBSaTV%&_zYC_GE;PQNPo^OJx$Z(Lie^$yFo0(^cmV0tjSw=21Qvi)G z95MR^_#y5G3Dq#oO`g1}K4R$!RIX)K-jkhmzXJa}Lo?Y(?nYU&AE_A5eWeiJAV(Qh zv6@jSWRqUsA|Eko9Q;Xb=jpJu<5ITm;zyVuiHbLbm7m@rXn$^>tYVWqHxmk@$-$0Y ztJj$i81{AqL_&tz4h!2@0j>({RwfC;MV+m%Jw&I$J`bwy5H{WE)acoWjS!~&(JDGz zQgLCDZO@yD%c(w+L*3A^`;4pC<*x+tX8=!4wvy7Ny7`9cDsN!uJTA zaQDFir3TP9uYwDR>$aD_?Um^+R5bPTi+KVuo#~v~a9pL-kONH8glo2VHV{?6nhME! zoGoB_!K31ce}4)z^=KXFb6{kX4_hUo%73<)(82F7_p4m%qcz)pSay>5IJ)XAA3^&a zJO!*mjK%n^B2`v?#)hLT=;8Q*6t)Xb=6&+J_C6raV@36N3>ktCv$I9TUF>*T$D#!v zgD>GRqhd+_f|_-ccAiND+QMP(`K5&@BV=I)L1%* zwuqZ`gD5r}5g|PPP)ti?M=r4PQsq`_FP_*a>r$S~sEQ+{zJk4Pok0n$T>u!%3#6CR zf8bGk`RZ$`uxQK`97s>!!fB6U>x6S9-zrgdBtD3_SgRv!9bAkP-&biPn&I9`yQJnL z5s~rkC)W~!SNd-Z(d~RKE?q<$Ffv*bWCXt|TJ<_4#c@Z=HJUF4nCn+237Inu4aH?m zVWT}!tM@IF+*4;Qryr zNH6wsvj^dqB7YrfpXavbX2!RE!)>YO`gQ>Kb-n+bUd0m@S6Ie$ScRqj3#M`O4FL-YIHJ|i9Pga?lXK(!3K-;&~wui;5SW$=vHihH;>dxOT5XDDa@sDh2L_;R$BSEK= zqzvzn4&tZPm@c%$1%_iyv$s1L33m;X1Hea={oMgc*9-@-lHS1DV-s4Jw>qa+v_S{) zDzE)Wa#2qb093$zb14M&3xDwYpU6G7rNLL_qDE(0s9^lRAk}-xs3yXY`qgSW2glUj zYM<~#v8j-iezC|G>efp+!o7UrD{bx-b+m1TO@^@Xo4pgxZcGS6@9A*^!aj$KvYY=J zz@jmW;Tpw}h}TWV`_2xUCLf;Q&h(ml%}v z9C5CDt@(G-&2+&deS>4SeY-4F7tU6F^wn>Ow*bAbesC89eEN{8(~fS#uW{^KdvgsZ za)k>uwga2Z^3B@xF`L#kUtHQ`%y&Qew~JuWNp7JB$Z>c?Yd;uP(-B|3yURUjgdJYR zosSRjSslLnV}RtIg1@dbT$lVH#M;pi`77PE0RQI}j(D`+WO1GH8DKyaeECL@kg}fo zyt4K)7tvymY1r+pJ^pB^DuHZVR7e4|!QMZ&ntMiD7=S5!A3_PRd66>a88eFy2tIsy zuhu|jJSwe8^}3q@6Tw9ZsOkUjxW{24fzhBJe3{EhWWV&*evl%fQU?@W)uVy4S*-x zkBd|y7-{L0VAniB6VLBRcHsFoaCnsh{Wa>EY_*AX$i1l@oHc$?nS8sEa_UChR!^ zv~_+crpd-WLKegvea43M*XOblf3{R`_XT`tOT?)^O|s9l%L-nvFE2@ubVVIhV^}ny z?ous!cbf7%EN^KR;|aszX68(Nf&Cz+^W}{)Vm|U25fP#IT>qKPbB9uZvC1=1K%6B< zY-pSEE`c}CFCk^6O)+O%J!d2*W90SPvYSHtDg`P{9CGSudJ-+x zS4~O+Pf6fV(CF4T7Mjy!vP&YrW@+=@D3%!eP|>90g}EtzNP$l#@WC3K!GdJ(zF?#B zxr6mYDXU$WZ+A*9SZi|d>_6}`4`KfQ;Af~;YXgQ$e-&ADc>@+roh>R@9K!EC8CkEY zejc>$SG62hMO*`l{{b#D0pNv+tmY-2|F)+|t=0|uXL|WpI{QyN?o<3~S@>7lwK?k+ ztrPkEB`wD9@94U%&(((pM=Rjh=^$Y^OvEFVkN;Y)8rYP$5BPk%+v^U&6d6lRxAE1~wZvA{0MuG8 zgaaA>A~%nB^2JCo?HBj{&fd94wPPnHqD2Rnda~3 za*-^Q0mv;5n>O7E=l6qO9@7H>_+glBr`i{sUyfQO4+9eD2JUWu{k{pBD@J{HOpkpL$xcOotjPkRhaOqUpCbj zVxH+ws0?Z}O)auo6Z^eWJ{g=2D`c{@%jphvJJMqssSba{d4ebgF0_ob@E-9mHGjii zr0^YXv-rAQQg~XD-#Q0V1z9^d*td#@vw?Ggvz27c!RegO9e8Nt zOm;er=T1H@qmKF#*i@XnDROhjVhqQ%kGv0b>@_BY&m|%jTg-0c>;bQ8UFIF|l!n%+5?GiX=+pjl?m_KR zmSVFQ;h2!G@-3IJi8!7~yg$9W6_~sqX;H!Qy0g?LfMs60W$?S71`Hv$I9qN2Ka8`M z@GOURAo|LCRc*TOK`rj_o7g6OmpUi?rWVMky-fB3_y%K6nF~*vi2+Kb0f_s;(foUB z0>hs$Uv*z!6Nk3#oN>%iHhtkXCF~CzKak^^v1VYTr$3?>ULxTw8|3|@4#%N~xq?0| zPJ~fCbBg^?&8Qh3DvLB{9ZZXF-Zti1xkmkHfs{HPT3SYgQv%OzvGqtl+TLHT2s4sw zexU4sq^#`=fM;2r#pbgnn$GCHtKv)1MuqdL7+|Kww8?c%He*?*`_lGI&mRI`;CFs- z)I^&uIfMMs}@ACL+n6Q`%uEl~8mptgKdEYg>dtYY5;*_>TtX=ahe$h|m^5pdrYxD=b zQEr)`9SeUqhPNe42uB@a@cTw77mYQqW7@zu7D;@1@@faW92x3r6ygP( z_L@4MFc6!Jl@z)?Cpnz70VAC`BKlmoB@aExS35NDvm6Y1hYD^M55-_TPYJsEf$$Pr`zSw-h2D^(Ntm32`Xwc=6n!8Gr#{saGI3bPZFFl6&cY6AcfWYnG?-gZY_aCsHQXazZY`}S z3oA?D+cQjl-F+~=W*&)2bANxSFUK+0tFOl~%#A#q4D7>;Iy@_f-G`WsC)Svq|Ckb1 z(;^RrwFEymKcwu2j&?G>47cz+BpLNd(ggO*cjBKm-q2JVuWCN)_L?*%EVtfPkFxcv z@C&7>d{p$wBZ-LV8O?l}eu3?*R!N}~yQOXE?|viG$^O20mpYt&)LoT=Na~dGUB48bw=EaGhX&(EUW-rVwz z1XcAhAz(+>tiGkFR9|OA-;Tb}=IM(I1vf4X3Tn!1i@h}M90I(Tk*XX}DT!~g8Qi)C zAhyt@Ab?tz0FfgcnAyqC_qJ;fdf#@K-~F!0ZPjpaQn%Kwq?07E$JNH%Q;Wd`w%2`* z{Ub&NhHJKx^fLX1Ye=`t7lT@?hSUDWzhI`I(dEc?iG$Sl-%pBwynTW%;wy!?;4*-(X~+Ikwgh&w>xDS_C`d1zg#PA|wW zgq`vA<(HT(ve~DWj~*w5R$(D`oW3~D&c7WvjcQIZdXjo7(i^kd!G8bLah2YYZMbbE^b*XGYvhM z=lX+%;4ug%`}vpGZ#_$&XiBWDCCYCmjnw;SESqoAfFleI4^?2$`Q~(2aK0CTe)fo_ zRI1G+XuZ!G;kiV^Wt5dR(Lfe+%}g&p^n^(AR=~4>9pNV1jxAi?MYj8k61P+NNi>D) zcuut9#syt7)zmxWXRIq?T9D?!5}9(IE|wkM$7Z~}mZy^O{D@w6OE36wt#2u&#*2Y* zU|Eh%0w|TfAi2v~(!+R!An1(#@(Vh1sI+^NSMY}&52Be$v3sHH*dG$TX1Ml7FQDb? zZ>r(?5%9FM_=nRN4le!)T?pUO$ILYE7)CStM>vV7s+wbh zD|p#epOXBGOlqNG47}R*ia(s;;U?A@%4su^(z<1kt?MDT>`}wlXr3G=%S*I0On2rJ z<4!~}5RW@`Z*E7=DGL!>FW^)m`G{fvL(L27Gv7q-;eFKNHnu>*!05EFS`22tb*M8k zFDBB&x2>)*>*PzMxUKtgbnmH*I`XHb1X9-}!*fX0Hc zUydxj>RYuw(t%BO1r-M!zV^2pHR^;6Uo3J_HnUeDBC3;{wnv%U6NZ6a^MR1$^-S*h0v2bNDy5l=Ig6`*6w|EydQfsv$2p*DaA>fru0zB5 zEZfXs@g>Y_%EIiFNM@`VXuV+yPi0Gi{c!d8X|1Hd zE?4SWdmI}aOD)cFEd+;YWbE%MiAmT_1|pa_jWQ5h?iLmF@b)5u;TWp5)TFFop@^i< z7M^n!Jw`9(I-MBLOF3Ac%#?^(yVh$YN8_I!4GcokQ@A}^d{8?6d}Zarho_-%l;o5 zBW|^u?5LKJ>6&&P)tjV)x3#kXd4{ zcnJ{oE^NZr&9*{G;`OPCQ~~})({UQsW*BDKl(tC*voX;rtsA_RP~-IKf*L3x8%2Bj zG4Jtx@UAgW8(kTG!FGNs*%NsVM%1>tOR}fB@`UGG$Y|Dnc>L&hls22v+om8*L);e2 zmht~HY#NZoG1tRA8Uk}qxP!s-^%^i1qZi1WZye#ZRJM1sJ`idq4*L;6BPBhna!DvH zb}j}_)%JgVQ~L({D|XpTN_z$l;m4pzxc7F5EO1zY0Pjyf0<6LnCnjeb{kwR1uB`-E z-AhqA-34CNNZrd6>Xw+6LZxUp#zC3%C&YTN% zd4uJyAd2<``0UTDVmNS|%=)BZ`{e}tvr6YMpQ&1Iy(pnGP5Yh$cg`f3?(tphpY5+q zzaf*p@Is2l4z`)=@En&UdV8DSqTcm-$>D!2;g?1t+$h{)JIp))mZ<8(x@+ng!$LtC z7IMC;P-9V~IEQCO?Wx}+e^h*j`xq%Jtsn?_R9X1TQ(2s@tU4N25ZKs9UJIW;(p|yJAkvzD#zez$I<(b%ip*M>d=~KO{>1hcb7sFEbCC|fCQiPi?FaAs zCkMJ|s~(2Qou78gYfg&GF7hx_W1ku*SBBqc-{oZ;Ic;;SqA8HIRQWcHsMu*)01NX2 zd{oR4L-eD?tOW6}eORic?4YFRr%KID!3(^bv~ydpB!HdUS>M?6Z8i1VkHBnbc0wdK z$HWD649wODfpbq>MwzOA6-@%}x29^y57r}MXg$GA2*vJo)l_=@V<6wA*Ye@wPNr_Q z1#bo)`awNJzkh^_DtL<{eLfm4^S=7Ct=PeRSn?nVnkgukuEh@uY`c3Kb)+O5cAg&>?*5ZdQA%dWheXDI1c8`( zVFta~2kGmNf|E+@y?E5g`tulX8Fns~v+^rtozpd+wS+~$9=L)ur-dw+ETQ=BW z%sF=-^|E!0W^>+>g%BhCD_=JOX;GXb4@S~R)O)aB+YJH-MBLPnMo-OBPRlv}lPDp810 zrv@_g3TNNDi0;$!@V7oK7T}~uwUya%7)6^9g#M_`sJcHp{{~17VQ#!&XHT2>tvK%q|1ZA+)U$I3A z`$q)%5J1qY&}pg zx#yxEhl!aV9E2Rc&ZC?1iP^0eA01PTE4Lq*rO8712kq8I{VX%*!%GB~72SqoHDxf! zGpb0{Su@bBxiYdJe$Ks{(i-`8q<)ill9ixxBleQ$=DM%sV}8;2LuZRZNVLrChwRwm zQJJK%#iddS(ntN?f5bN6_-Ygw33x`Ix!dg)?gTenf~YVtz~1m|4<~3?Vs`4e;KRq_ z{jblghlOuay*yensOzKfT9zf)=oq^FR|CsjyqdIfVWL&;P z;D9(ugt#fNorKH^-o-A1>}0vRvl)Q4PeK%p*v*S-4whOVuDwxxLrAp^TCXzeP=9iN zV{oPSJDl#I@tS4v2Msg=`3N^YlKLne+xrZKQ0AE*ZYLxB54gjb^H=UIcSA428}i-2 z-|fzU?I@>Ss~Wz==V~TZ&>=PtfestP{Jf~XG^$=acG(%ja0>+48wv2WwDmGpz6{L< zIL?#mG+Kf|GNi^jQM@i}PNtL|eAPoJjGUh?)K$EG~C#*4jJ20v> zg@iqgXqdwwUR2we3R|y8^XjjUZ%;KhqB4*=QTn5W)70o5MGOc2(Y@{RZJ%V{u4!0>jr7+4%dox7;-Ne$(b`Q?l79L_dQ-$POgXAXC9E!*<59MY=te;7^cQrcZl84=3{lRbg~d% z%;^u2%dY#hV~mHL9$8fFNrhK*gQ`9+MK34>p~fJyLQz9(WWb&I-OC$>3i7RXrMDp- zo{uug8sh-3uStD!LtvNoJ_AlsVJ$s;KA)h2O(A&du{;*X!zK2^zA~z(BR*a#7C0HfScnjii|>|xKzPXae%@G zrft#Tt9pTV&+s{~e0%|A%A!F-ZyqFiXlN(_- zTQw_8z4X)v-vZB1HffRhk6Do_bf&b>jLXWThhJALSQ;fshWXxf%8K3Ss-ED|bng=W zxs~w;BYH#~L<`#3yYbVT!_8!G+ZoQon z#YK|~xs-67S)Z%cV)?Ij5OPcVzf{=UrK;A6Thd{>Z7oqXd3a=X7J3r7E}gJ*J(k=M zSk}qrThC$`pY4a()sWaVWWemdrFdOY7v|8Rn^V%I9+Iz8u}V)!RTr+aG3mOjz>-hu zw@8C*mMvP~oDCCXJW39;b?bX3`2PhN8=~oz76u5@uZ(!)deB~5ZWcjux5~j=3uD=p z(uK#G?$LI`*|UVpN2N3s>I!cAl%gDNOG*{*>2Tra)0}hy#D4pJfHjlkUr_1#8Lp`V z!kGr=8>`l+)~$=)B#J~^tVvqdbcPv?dGK{ge8PITzly zMhChZMbtT}V3iv2dAV{9HQ6k6@`+H8(Gse=cYc<8HC=*6WAivAH+h!1B~ zoOwf$8brd7Z3JN9LvOM%?!E?HMOXFHFrpAHB!%feQj;IzAsw~Ny;U^vA; z`U+l{rer_c@d-V&}T-kTBQXG1DYlynYlKFrJ?IUylV8wXk>n%D%mo`0hnaWU9+hL^I69*%q zT4nOYv`1XiBK1$}7peHQGO2IsHtPG?b6!4?I68r_0_DR!YW<5aqc07 zi^khol&R4;?Q*ETA5H!$Xcy*5HjuvgY&^xsirdQr(>0SiH#P zY<AjjIZW`iDkQRPaIn5X4@;l2^yRyw%x0NedRo(Wre&id(U8ZS3cxIE@Q6 z_^7j)3F6mn$%}Vxpu)-zn@A-aP-DX9>>!j^U)Pb{4$TnHq&3pa3j83fPkf}0DJ!BEbEhih>Zh&Ii>&wx!+x>L>eTw<*FnXY#0#-ZCX zy<9XpM)n$WMQvCMUyTWmyYn#i$Gwaj-Sbut3BY6%Uk6~>kYXuFmphqpcj&J!{YC!k zIls^szCN8~F&d=BUfH46*-v9n75FBf@?lHAQRGA!SY_?u*R**hv z0?_B3EdJ^bF{gkz{M#q)S>;6k* z1?DgvXFrjdi0#_&?KS|eC+O8Y_dLzra!+6TAw|RAq!oINJ(rVO1$piVzND`ZVg+u1 zk0wSnzCR=fb(rV+o9CaWdB4)*Wz)-0gMozpCG8&PCvr@2A3QI9i42LjQH#KEKLd>P zh3K9Kflb)}8^9@-AVID)Io7IQtPS1n9J$nC6l!r7TE$iJ6M1e^gn#hrBv%i@+|@z7 z(4mGZYc_>wajB-ukPuDpAed#3N9XC!@-g(J?uC8CRjYWKmGXW6u(>4n77?=|!_7u@ zWz_m@m?EJ~@v%3eCHL^b30D z@C$t1?&BBwu5GwFe@ZX_O>-SUK`YyLLHz{)KUvjO;@8~Wdan3~7c?vSps6+iKiAZ4 z#nr8ZW@$5U&s3R>R73vn_A{;uzowex89iQ5yYeMK+|#WhbX(QlffPrc^kvY=)2{t{Q`ursQ6u*#^R)ETLMc<3QRpWbB6o5I%qP=p#S-UUR8%pV0{!|M+DRhHm zBtFBgJL~?Ty$|Nh;5yM$f~);LE$e92>R2R`FDEb_R_SLA?$p9%uH+uB!^B zD5k?<+iqaqm2zzn4op^(RamPSYAJN6bM$ijPz9iQeeQS|IV)snTgImQR*Uo{d-vaT z|0w45T7;)W@t_J-Nh>>D2!YoR0H?CmrS)t4Oxpilw}fqo9Xa>k8A^FXS7wGTs9lx# zYeFdN6k&AXfwPS{i}zN_k6XnY54FSdZLBP%3YNCa&%fKH_p(bh^SyLCRWhvHgEd_o z7S+1n4wtcCMXy3DYT((5Mk_?7REXbN$B#W?M=GYN%P$RPg&xw9mRDJ zzXg;J-eIR&m2Q^*(S#S)Z#xA+zYv{bY%PWFeI}VuJ<)qt=;Ky{KB(N-o?3fy)c~__^&h90S^7&N0_@c+=pFbf?%mpn zGND?`8>PnI3celS%Pv~m*=m_=C(W(22r9WimMd4b%3(`!oXTL!cZ`%W)msK0DKCn> z1np5B9F@PZ7}`$U;l1Yi^>O6uUB;M<4m^*GwoF>$BL~WH-G?L{awUH#=`3}F?BWsz2ZYgFI^VDo`Xb7QB6%bi zI7Kg3`JrB>3xd>bRHMa!^uHb)@D#ncRZ_l2xDMt2*ZHo+fP)MO$NwS-ggPGKCui6Q zsc50LGNRXuOd)?^1l7Y%{;wlk@&Eq(pHEZBV*d^M|8V~AC>6;6&+7|Qr4=K5ZoLM0 z3V3cqrL9&{xQ@6rBS&%leEJM<+yNMtkee`eTUBD`)+0^QfB9FQe?f^$siHPYGk?Cd z9{fW=N@{kY1)q=eO$Wx^*xlIbUxLUweU+5O^~teX5$qb^e=%YI6O$*ENrfzyw6rL? zD}Sb-;wG{E6ajpsz1f;vRcV!j9g#%Aqr!Tj7ImW*HeKd+S5@`(xXcAYeNR_^EAgZr z2q0wxacyImk$ zsAo|Vi$Vv->zaBzOR+=huCVOYA=aS}H+#U3_^_78tZGAwfhc7e1Nzlm9)WX%m)oGoZuc~zqwoWS6 zh|@}{v;|fpl_naL*4V`w>BqQQt^M;%weArReUlk=XPwzCc^N6Zd^r_74{)#bnR?({ zt|Tnf-~wv;6`O(uLg2fgRsr*hq$xMM{z>2PkuPC6BF_?@q6bROIJ<}nU63VmEPQi&e}!M=latBoxHPCVC#ti991u-qIKkQ`U)-h2%u(k=H`Rvs~X&k zfQo4`+1+PA`uD)VBc0absebi2z|z)LL^} zV_TEUMg9}2E8rE=@oyi9865@$3j_P+&09E_e=iUS282P*DvYjd>`eAOE|29)ZTHlL zlF`?E3%9 zC7Z$wsFN_8)v0D4VHRd#9hAuTq1GRJNw%uQDT0tCrLrj8hE}pV$Y-;p=d&Eh+%ZeD z+>T51dCTS$%H3xm<51qAc}wLiY2f~BmV`UCa+ZW{25;mMTiJi#5=zGlj}!`z*h zct`&^|6(ZAxu?x5w7Sn!WvLyNsQ*jtKOa0%W)<>*XKW+rxR>Yvm?iG~@VEPNS)bj) zr?cKUsH}sqz>*?vB{H7(`zr2j=&0##s)bo5?(Y;_hAdylfEr46P28s)S54zhfH-AI zFJyVoZR^t-sI-;Xou=$E54*K}e(_$&(w@r#-mT|>9OFB-d=Rgb)?c;JV|++KC9_SW)8BJnI_sTO35?Z&LgMM= zc>S>xvDv?34b7UjjChX(Tx6KH?Y00Fa5x7PFB?StpVE1K^`8Hi2kY77eco*HPg&M; z|1zdMx7pf;s|nWs=Ydx6{?A|arp_}^h%6=q19wWEzaYmt?eYI!s+lD`3a(|m38e~o zynV+P#M%p+chu5JyL?`n|BB2{@jpe@{!fwrTX5@nOBHwgS>Wwoll}84C-05yrHuWb zlD}31U61zPYwKx5_TS6AZsUb&w{FRvKKR1lrl7%m6Z`6XP` z>)I3{5q!?L{}=Rai6JpD@zQ@9AW*k!1TZ_@{zdFQWJvZCBkG1e9?df5XZ!_`y9`N7 zOB;}^6aM!xvflsW%8oCs^lAh5%%JzWz_TbR{YZec)?GGUFACBy!U^0du^EhQ!QU2<~rb@E@(jd|PFxM+4LFEKac<_=35f;?{@H0LJ8@KXs& zQRfgK7wsc^0}Wa>5A?FdEDGI6FQngeuNr&ixfs1lX{lm!e?b!ziO0{kF<}kZ&(m~L zCWs0J91=Ot7wp5p*Jm-Izh14CylkBE*NC}w4uQ~ca%F~7mLDeeKVu$@Ud(da@}~FI zr2)J<`w^s5AZMJvpsdMs;*zP9iUN{EvJatuLHs+_2ciHajXHtWR}**C!D~gKU-%hl!w%6i5T15FQm4QQqHbb~k)7{u;G6(B!^bXrME2u^ za)mNHO2qV-SH$y&{LUS0vn|hn1h=@5(9ry*a1Gn{8rL;`-*lC%IMQ1-)%c6Fg|4wK zlI31CR6`iYhFgSFwNRQ!d1@4FVV3u$dEZS*d^z}XIfXrsT}o zc67i!zLHt5bizV4U`h*&O7ES{>s1`Y^oeqz%t?V$0I~c9jZA!U%4~V~sN*1dGm9T1 z0RY6>$eDjf>mw-QtM%^Ug0I|Q&L?8IO){hk)y_9@uYTSHaMeG;h<><3wfxmdp>}gm z`hCkm!0EmSB?e-PS7QQ~d1uH`DQ+5YY5pQ)s5lp_*AB2=|tzRKd5yKJM=r;gM3*AlVq?U>zA*1+?Xi zj_8aUV|NZc9H=c}qj4)Zo6upyleIoG=Hpvs9p2|Js=-ymc$j|xsCb;P&U-BjAjcCz z@9*^V{iSip@gJ6|-$G`*Kn20fhWDG+s^;;BfyD3#gJZntgTMCS>RTQt5A7^^{m%ym z4bQ1MM{Oda3rKesM=D0XW5vnsW3a@k5KW@KViESc1y^F03gQ&>`ePudP|)X~Q;x}V z^-Z1&EWF1Z5;8kMOilf!j?QNOB=5`@QH_MO0T?u*2%kPHSy3AP`hGmVNWKz^s`+q^ z@GfvskhNY|>h-evA$$RjbXPK{yO^5mn4=&VTE-i{?#Ic?JKlPIZ!&EB)lf3jhj(b| z$M>J0$$QuZc;obqj~=G@6~lZsAH#I|%()EouyL`g|AJu5@r)xDq4$ucs|V^1vB9Rb zL%8&Un&(c%So2U2F3Q1|{9)PGBPJA~6vL5*iGts=KYVryUmH+%Eg}U4=$(g2$rv-S zV`6)1;TxC+1iYBEVqwJk+_-6AB$0L4|AM-L@1Uh)J^-g`7UHMl_|P4LO=Gt#WO|DV zIPJYfLFov)E)b7+17hP$Y6k8dX28mf-lG9V=Qe|M+1~vV?>4c7Ri zAx7L@wuyVAYJ7Cl&uP^oTlmu&>br!ZV!9*jdYF*5XFMDTvQ>y_@OaKWDuLPT{^ya| z* ze1@-Is#IID&qFiV11cC5UA_xO{;E`VH?+QW=sxC8ZNfWBWpt;QXlqBd0J(NwaCD9z zU9i52+J#cs5Oh)`UwFp~jhag3$yioe$uHnLy3qMMj?)qR`r5wxLCcT-DJe$ ziHBR;k{Mfkuv;I|4_G`oEnEo;Lkwu-9;%xFgFsFV^oiK5vWFr;gh?|sR z^Rq?R+6epUPWB4C7fcqu`2O+J>g8)mysu)n1t2pQJs(j|wUKu*7LH_Km8r*=lFlY)lZ7WkA)vpk(YIk~ntJ>$6i2uMl&O z86=^`DZJzN3rf?xS*BWFl6i%gx+$t*@z7FcSvk?L3Fp=bhN80+2815!Rn3uRX||h$(_r&$F}|zE4~jeu}}tPawfloH|Ty zp|;f9SK8V#X^a+OcEMwCY2SI8`CLz}^*Slux?_!VaI*5A^U#o0e9fRHBcYgalp`(YB!)*U z^sBYTkNyq+-q%;S?g2E)zaYN=$nix~B?&9}lfgQf=gnh6!`;T#q^@IHOy7$z+J_te zKwr;pfAj!|CR^dC$$*twOYU80vbVy{QC;Tr#x>&*FYR13*zLo{HSHLxFU&VLQoPZ& z5=B9=QBo_{nzOEYv~O{~YWh+z2PtEpS+eSt*tU#!FWL6^kh8b zI{!KGfN)6Oys&pg2gm+s+gGB8eN`QvBR0qy7V7zFM>JPZk4Zfzz6O*>JQ3e7@UaX* zUjqQSuX+{@n0=-i^T6{@I2V$B2-!b9N7;Wm=R$6J1hW{C*AqLQQ`MG4)X$wW@2ni( z-wVKWKv>-rn?i2|1QAdA0}*}EB5sKNN$|VS_6c0d3s^5JSIyw3an!NOfR`>48 zFzvsj)vac0UEK9OS||r7D@;6HoP3Xec^rXQg$6uqznq1iY{1{^>u<~_Y6Vw(ICG?# z82RG*L*enc93GNc{VIRzBu|G>z64TKGtD) zaqq(}P#o}twz4%7Tq;1t;&FV;_R_hnI)4&?u0dEcT1QT)jpKkIx{m@EcjX69y72ah z9QVf?>v^}q;iOU566WZ1GJ^d*5N$+ULRf)W6G5|KiDLAj`=<3vmc8>FYYDtaPKPqA z3deDO&>HOKhw4PEx{oWe9_)^;HgNYM%i5QWugZrc??3X|-p5D>`;k&J=e>3{hUc;f zCOCked%q#bCtTw%feHVD;^R@L{RQqhg1oda&tA~lH zlK{Be-$#n!k`$_O>>*3UI$^el6l&5K{y%W`n>KT* zEPbL^UNiUZ?y8rSdIUD=eSVr3Y^aHl@khhuyfyL?iI2~nxGoXuHXd*LE!cl$?utv5 zK}xdP1rw9txM`RJ+h&y>Kga859t4?uU4BE1muQe&^2S=>hnhkhgaP!5p@va;Ufo9U zsj#g=?Pvf)Hxhuw3XIMs|@{UW)Ry)UR%nlQTQF^%uCcOU43Hr_1(O>{sd-o&p8q z*i^^3g6h)QpiIl&{wjlInx`MkS~pIadv>bZ0;b9QNuB>Fu70k{F}_jsI@HPDE4Ybd zB}sYeX+E1+CmhWH+4i|oRr%9CN;C`1a9R%qUrcT`L&ZO#2zZ|-$a;8ter&aCAqTR ze+fWY^$Bna@hg`=ahW%iuzYe_%GDY|JSi>kTMa{`;` zEdxam^6(o8;Ome|+*ftU6<%mq)6Wc|JO2Q=f7suc!!dcfwP2PrshWU8SAE}PN1ycN z4WrtF8BW9R9gkd=GQI2el*U!BYuaQLEp-CD-qjbr?F7r<>3YM0L||p=REzgJXw{5* zU+)6scBkGO$@+4ZHAAR*L2rA&M*)OAJv=6i6+j&mtrJ0+ zpNF9nbii)G?E=`8a+Gq9DHerkWFDECfc$i=uG#cxAr?MTG(bdH-b4Te*d>G}u7}EP z1*5K2P*Yue0oDQX!K4qV5l-II@+pYgo24+Tm`3RXoC4J}`7;#FTW(*1_>WN8d@@h1 z>=93GA83WJiu%XQxJ?VmJ*B=YoF0VgLzA>8NA~{!v7cUqwe)iPGHex}P+>|JuS*sq zXsnVeNyZ(4(9(Cf@*Fgc((9bF`>omBm@|4aa0=$rM1vNEe>Xc(KIcvEYG(t`v zEG9<>n{alP>#_nAh5QN_2JbnEfa9z!0LM+I*Zq7HA*ZB&588Oezt0Po_(~p=usZyI zx_o8qfE0fPb{-3zBG5-m@IE}PG=I0yujKAVI37?Ehs1T?;cA#B)hpqo+M}ATCZpzU z;H0FavRN#aaL2ZmUfb2vzl^&3}!v5Yq$x_nl9wFD12fSN-j7*ee=?d6m3u|PyPJZEHs%jq z_KX_L3MlcuS_o$WHHxck)I+YbS>Nm62Srar{K^Az{uYmK9beB4z^~y01Z9Qx)8h9X zqnAGw-$)cu{3Up4;I-0J^nMekz%~B$wN&db$cCa6Yp3w}=QGY{oVT2}oCgi10yu0n zNrH)QId3^{Id3^^x16?H&Rfn~&RfoBpUB(Jb)b9Btm?;~I?-Nye@m>#AMqPR;4@E= zn042&LgH7Zn-KIf`IIvM09|44`TqcjzjA*G?>+wUOd-d1K#F_j9GmcBy^rQhC0VDii!s3UPwfiJO|d;HJcFV!F-Kc zMrCy|6|KI}1gMXy6whc)1hHkWJROex2<+>BL*TPR#4U!O&zk-eGjZgO!|>LNW_NAA zEx0J7_*AmIJx*Fnigx%|x^P$h+|Gzbb@@!Y#aC%>vEy!5pLg4iH>MF_t+KIjsVi8T>1z+4 zTxz_&lPBA&ku8J+N(W&yQEdqb8y+IO(e{VHP2{|%kQ2@%E1^QOCq*#D_jolZqwD-l6BkrRt!0p=ofzM&v%$8y zApZcWCGhFFJ=qy)j&Kfy<|`kWvT2!SA-Z75DHyiCgfZ|1gIfAm!Kx&bzO!D5Mzh$G zFe`uySG?qaq}4ra0M6sdh5;R;sC^^UtvZmJSf@zJu3e)>)1xj{i$WFIa?BRCh(5zH zVO@@pbZFQj^70FtsP%;v7V9ywWxQUUt1+U_Ls6pFSvuGBHbMfu&4*O69v-JTb97A@ z=34FYQ$I>8A8&)dis(O}3m~uILY%EF{t+VW85hJd;#TYYPQ$=7-@$QZL2U(<5}K6Z z)8PW>aGe;2(L;DQ{hJm3XsTn>{{T_)eeEtDLGR#Uw|=Vd>Oo_j0xU7KYo}R}^(jid zd<#wmMwCY}BDB<*+uZ^3wCe&|#gm^Ov~-j?V3ZugvL#Pt!N6j3Ee0kJa$~LT?Btdm z*}D-d=4_nYpa2C2!c=_(^6?s{HXCDpznW;Cq)kw+bu%Cae5FejbGW(jW$r~`b5;*v z^+mSbUJjXw(juE)x7G!?z_9g%>Z$|~Cd>O=x|A;4vY0kZWBf(Z;Hxg&RG>hNx8Q$X zhU~CRL3yuXSTR2HuXVBg^(xIl1I9ib4?J5^26mgaCN&UYt9QLz%#L1}D8 zffsFD7%%o(G6faz&28?D{+h1+yyKS8QzK zdTPf7hHq-s0_nFzw-xfZOA3u621&UBoJ!|H8>bB*G(b@jU@MG?BEr~2Twl0K+L(>Z za}^BH=^-?8FSMgydt>yIu7qI2bCDUWBR&EpX`}nnS35`iyasPm(yz=tG$YL5Q#nHd zjBZUr78o0m^MrK|ByPT0Qtan-rcD6lqXBUxFu}?zBbtq%MX{EGb%WY_5Ipm3R%0mH zfz<>Rj-GWd$Cov{zf|bXWSp{%cgG7zQC5RzMD&W(;MwiT4xVD?Ubaf?E4*9=qQM=a z94gkSUDEe{6n6|(;naeW^MV03ca#pelnN4Vc=UVtRY9NU?B^bI>%|&OpW#gj_5K5b z<)8DUms_df-n>N6xTd>_s7?Uryc=b=#a&m3D?xLa@+Of0BHF*%De8PnqjIApuTRm2 zpC2WB{!XP4PPOd<)F9#cH4n@yC9xvlZd?`Z0}%=tKs4_RmVYgGC_=*IzJv*`uDOvG zL1|L3=-Ye*APtfK07Qe1Lc*NXs1vIQNB}el1*uCRo;yud5W}d%3vJjnrROfw)_`{* zzIZXTs*y$%DA{+1uDa0miwl(KCL-WP!gfKdMTVfFT8cGEtEoc`JRp|+gY}}zPMa6c4J-STOENDRrb4c)1KF*M{1_?94dA%uP zH1aCuy}J-?Gn&${Eq0W32RY?JS$Rt&$fcJ+(e|6p35|j)Wv90e;a*+ITy~v=zoeS5 zCM%k3KC_THd|Dm+R~7uY24Z<}tMcGH+0>cm;1NHB4G>ZI7(;)EW&Q*Q^bKLIrezPO z!WL9;*MW>}2nPQE5eHH$leBi14*am4Ib5R`db~2OAQ};CUK!56*#!qUC?6LD)z#+$ z;?}+29^ith@+{(m*6>)PSp;*oVpgc61vS2XHvU-Ka$kAcpKJ+mUzEC8o>9R-=>l@f z#1pw*-Wst^oFcqtn@lh&2HHE4&hfcT)>2mXB1`s{wCm-p=fVYAJ!RRlTt(DCS~WvR z_-AEIa9}Yfu^8sd=sJ*M2m!bTlbp+1^MDfW-jd>6#*|=EHH_zo`Wq0QflZGfo5v1; zY}luVX-H#5k;H4Hx17HXO&CwiS(#uIVf=)0f#jKmu31144rFFk(PiYWya7Wm5qV2j z>uTi0L2TY8TTW$5w%~7PNCp)g#ZjuRP?2TyF)~-q1@CJWF=p$@|2Csk)6(7 z9WMSSU&~mR;)n2iAf?tH0~5>QZohyoUScVGTmmkh@WIh9;Z<&a9arV@BHEn*8Y0Y48Er-H(WvZx|E84?uS}M*ND5qnSEG&Y(ACRit{zSu}9^=O8 zZzgV-JwKMcb$yX`4eh}jGpsF+U;>#QP^j!DzZ0oF6#L8}Jn~?uo~`Azc4<)oD2NqW z6FD_Q5scO<^LK>mhAz3m!kaG*M3HqavjDA#^o5iQHq5S^^~yFZHD*0mIHg{3Q9tPs<^DN;HU*D-O+xZ(-$dWgeZN;JzK@ z8L8K4PIFLAU^Uhx)!cc(dhGyO!*$9czyqAgd!(TC1lKM2IMxxca_X@~-v_pJ>w$GbvC*>Q2H` zRbH~Q4e7wrR_i7zv=w78_JC>_;MP0b2j`4NbOg4vE{4+*&s;}4H3;&(p#wVT0U*?4 zs?TsW9R!o-YJO4e2e%M;Wp&oPJIsUmVb|jb{{RBu-T8b6V;0-^VQoQ!_y(i3J_ZJ= zd?9a!kCF|S@y`=5%GPv)oC1VC=(@kLbck(W4Zbrq6|cC7gqv!GOI)Mem%2adPLYrk zQI;Ilg8o9w{EnIQOUOEWI{pT%%R;oxnOSpp{#elcW_cC;cmOD|)@woKc|njliO2x= z;_v`Eq+atTUsJ3_BhF(Uk@7D7vAcw4%3+FCR=dTHv%#RT1{n$&y&|aSQH2{&=b&(D zXx#(e-LENml5Z0Cw~!7y_J@I3CCZdMO{wY2f&rXjCEq|2*_LhyuE^yo+1_(v`AZtn z4Efm(o<&O5;NZt=hz74jEkTHwp_X`k{R`UEy#g?W5~6MJ%bmedauq z-Wc2H*-mUsy1;NT4+|ejj5X5~&2VK(HCoSXi?dX+{Y)A8!m`@uC?3g_%rhi&Qf;8zu*-Y!#lh16)wLMH}D{Gu_`v9*mx3P^WFs&@WnI3 zeK~w@$nd+9%3yLMI%E42v=H@c@?_WxT%4m$P_^p@D6d(Y9n7N)zpk*FN=Wl+HQ+VFtT*CY z#=<6;)t60cv`Qh((=9EjW!3P(mB!R5RkYjHT}0N?SW_JYHM>-KLG&b1Yf-dSV}rce zW!kW`Jv16+b*Pn_vP+PURm+n)iFA9sm_Z4kMQ+U)OLs#sF@hlj(NfI`)Q4DkOc@>G zeSg+2rxu%7d-eI^n@#!fJ)x-Xvb;_LM`_KwOE)i|HRCU)eDSYFX-* z($3zpyf-}M16UE3h7i?9DTCE?ujjOWC!Lh-yt!aZBPu9!bDQMCLqN3=#(7Q#wzgu2 zWGV`{Y1EnEF}bX*RsCY9kDCI(GEB}`ezQ`tBHa@9=_*K_ZxyHf=cC{whSJ`D!r19B z8*lJm!#9G1_$22uUVh#%9!Y{J7KH zq3PCjQ&`#v(e;b@B<%*(ggTKMGW_CkJ)$Pi0)IkL%pXz$B>`+RXf?nz6E8Vq>*x#l zqbjV1ts9V44fH%CY2=j*UCFI;b4WtED&rcxC18$H%K+B1HHoGw9l2On zSx&Gx)e%;%P>ol(LYioFmkD)nnvRmLQgTk&oWXc9VA?LIRX3T*cf)AIJkl}ViM2eAY*;YG1*^&nF5o5$5;Ggr3|83*!EIOr z%z3eg)%K>P#4_{&fffz6m9)N@bO6f-If8^T$M%^kdW5X&EIgS}M zc84}O&|NLZ=3@blAn7d0a}3j8+k(ZoB2a4rpI;KP_`B>r9o@eM+(xxfHuLh84BF)X z00HzqA$`6b8}ueu>!O~J$_#9yav4)chF{CyCKzXGovL@-$2=toHB z^$C`Nd3~eO=mqV?K(0YTis^U7%Hv32y^tSxlE!JYE7=+P4jQNhyrb`|N!hb~(s$v| z<_qZBYk6RY-5t{|`j3CqfmjX=313=%jJgZcy?);EsfD3~agsbVH6x1FdP}m-#1z&+ z+`Q&ujn*N{Kybp*d0{Z$S*d%mK8Y)J?L)M0lL>5TjlC@{{1*Qsj{L7HfpQ)samNF4yUYAXhWw!CPyknff#=F9{QIVKGwPuu3DEh2J^ z&OsoHIxlyIflQ%GNo$_(-m_zO4v^44)0ohWF?&lSYF6wUTclc)T)7V684~tAAw&|8 zO9=BwQRb|`uDx+PN*r@i<$}o;k3Q19cIyoiSg^dyfJ}{!xIUNjo{!^4x+FD180Pr4 z6A{JVd*RW3e*s^q#}P)%F;?h)f9ZTi(c-$iz6+$gNNS1olNSR|>~yWK@n_&2pn;pO z!~JlY`_BG)i{Or0qEk=CL%?deBP1hH@C|p0sU8P!ibaTKSOKTRT>-LQgr$MbbK+5r zNZHAj5t6JT(AzYr@9%!`W4Ud>^_sCr4lxqTURKhR2Sx%>3lLjPbLTr>2={EN* zC{#V8g;lsFcB3zsFOkBP5}h&o1+Hg7QK{{V*8c2-tj4?<73fjU3fiahu;9@@{ z369N!tOTz$vjEEV&e|}zJx7%5oV9R6&|e)xHCCC747RYKJz+($h=#W*`>^bu>@*!i zyrx*d`?1{Jib5iwL}MW-)FfF6XqPQnFp z&tR7V`$Z#THQW}u{{VJ?P$<2hfYO_JoybvLEugt}GZT7rff+@H?0T)HHSgXiBt`*`&{D%W3uN}9Y1A(!>O!DGBdNpcu~ zgl!$43bY`-CIi461#0aNGHT6##9MRDlJ|muHvSah;`JEv^ovPX~ znYo6r*_PQ-i05*|Ha8|0-LW<9(@5gvhZ3HRRu-Cvm6BG_gr%Jj?F+zdu82&9UGs>j zzg^BYzp8x6n5oh{RVq{tQuTGo5zzCfRejWP7;j>L*paG*HuL6Qk9uq{aI}?%Q2Qv@ zfI@{exhc&?hOA;K>4L!Xn@b7}QfoT_Ga0En$4#OpzYx}F{#bSX5Nia|Cj0L+QbSpw z0n~GX9%M|ovUW|Xpzgr! z1H{?h%=EiMJf9}+f5siY1$gdyUAaM!?5RY&3+a|z_0=nYq1E(>0jS&qc3+2pX#7Q` zTdc;nayJ3)v+|T2rd%(S?J+(6C3b7_J#0@?F!MgKySs>^jM!;Asl-^7hIHBuuU%-F z6u@9154i&%5z@A1P%L_hbEr2f<6U5L@6nFZ4vwd2SgsgQL2XfhsLb)-2-J$)o9=l) zuQ24)Vz8-GUT%mryI-WVZI$cFP`u)%!f5+SUZTe-eV%F71v(5$@}yd{n@x5jT+c)@ zXy*3SC^$Z#froXd#&KqHga&~h!!~-ch2DgDO%gDrp7WGfvGS?s2Gfm4lLmRr`X2$k z#sSgwluMQoK*A-xf%$_Q4G1A`2Q_noYYPbtX0Un3Sylqul31)N`E2HAoVX zR1QHio^&4kL{us%%;hay4Abcx>dgDQ!XDeRcSrcO`5Oe@N{uuFM#TcD~P2QC6S zBm6F}gu1gt9oc=Q*!6~DHpBs@jbvCsa_M*2xJ+XFYJCD*%F%gD!yi; ziR&1>3#wNSfA)_0KUd-QVje4$Qd6^#QXOE&!E_tq$EXrV?H2BO5c4L9;beYARit1x6(~yPc(Yw5TO=V!R zIy5vYQ?Z7OzR`usCnI7y*V)aPbeCtF0`!9oOdElCeMC~_%sI3clDcfbEsbjij;VDu z12ro;p!z`qSLG{`(Rs{H(Yg!-T4Wgn-^uL-WTOM{o&_;p*KhT`6-N&7>|9N$(OUA*{sU7<_# zmkzepW^0tKHd#ypt~N+g)K?fq`2!QsJ2>Yxgq~$4+YQO3KrL>wH8(urz?SV!e;WRz z$pxQC1T}e>hnWW5BL@PY!xvF`BQK3yG%V};B74#@(ls`zrG$tWoWPZ;=FI2jCRlpp zJf>2sQNjo{8K#iobzP;ly$*3vD|%=_ZYAKRkKZM3XCex*&l|4r(|(X^0WBpC$NLv7 z>ZyR2;d5w5oSu$42d^p!{e z39`=6%PwcNHCvwsm=jUgsBEk*D(K9ySX82}w># zQ!#Fj%PkKTU@~Df232`~3(};{;6ul(@oDg~9%yV{k!`>0s8B(A@gQGl&1V6Is=;T8 znuyv~2nsqo#7vsLqrkxizqJSgfTQRAFWjSak3x@mWz%hP=F#LTH+}VGO8Gzu%=*sw zd(VkygrH}t%=*yhdqjj))p*s68u|!fy;T(i+?qQMd_AH&9#81_Mp}k};k~rEN&qys-p#4drldn~G#N8Xzv~Z^Rf1-F01K zpe;q^yyyr_BF&q_fTPuZHSv^&q^fCVq8>o0y;8d{V(}?Uo0MCl3vJR6l#778?l9;g zBUjc|A(&Z=!*cq^BVRb6$RKh`>lg?QamQdnjofsJPfD{Ck}Pr}D3xO~Gu*+5;X<3t z#m7rQcBZUcY;$uc#+(VAYYL$RU6;3kC0)UY0QfRcm@^iUK~B=TkyL2o2NMb`mps8h z5Yj5Nsx*R;R#eti)1a1it0RI1{{X6l&r}2eQ5*NO5Di1T4dLkpL1-1$gnSk3nedfo zg;O1$%Nro4#+MSmf);SbZhSvs@U*;4<*WzW_*)cI-28nnhZUq6zt;Asb2DPN0jGmR z)FRp=MHbF2Tdd{ zXw3E0Lk->dP3-MiQv23$vXr1hnV>EX0i zLuxY6(#-o!oYfrRE@}+Xg|t;if7arcvpN!`8tV%Cxi#PkIsjLNVM2|c1@6AN;db5F zm%m=DAfS58-be#$nHVY>Wu_NUR^cqSD{z$?WsJ3ouiABe;P2%(ex%yG*>dLL3)qqc zZGKTBlVbAtmMi&l@Lox2Pw)ntln%J~X4%u>Xn5BLbYK;rzu_$oK{Op+e1Av9?Yugl z)}Gt&feUC~!Bz)9TC1E0t@lqFHf{lY&`XF|pEG~vor@{a)$0|3S6ld0;k?!94H3-f z^pwSN72v5*SxGm$gY`ZY!;s5A+$Z_*7$=St#Ua`1#ftviYnP?K2#Xj1QGnsfR(Id` zrw`lfJ9&R!g`?w36*Q90fOK)?0L2d}ufbprPL9T5q#GQgNYS;!+hd`orc&T@mp}o% zyueLy1stMb9!NME!;&gjan%0+*cF#d&mYPflTWwDwN_Lt28Jr5Xo;Xl8-|lwUiUS7 z$65(#g`AkuXCbh3J7vq(F*Ip9CL6%=n&pG$9001CE;9uIWTL<^iotsAFaWm{^nwk2 z54_Jex8H+k{oW7_0$0vocTbGzJcy0z+k#sYPtGw#+KmZ{2N#Qj4s0+Q7iJ(wHgc6w zu@W>(PLNE{%IQ53HismQB$-cK#F1mpULGJx>?5@G;f?v4=r7JuoQ8 z$+^-)pE6ot(3l*Ud&_Etq&Cfa%=EQ=JEqwc`Pa*vqEu09F0bc9R^NxC6s%!Y;lBVV zSecz+4}(_0`LKgK2BP_fg&r@*o;Q zr~tTflE)C$Fins(e+86UtDdaO_OTR2fYvIQaP}fVXb$f4BUhsAsD{C#RV-HVh#}HC z5SgN*qZo&#CD_*=>^kzImd>#1k77(farZ@Q2^G{RdWrYdDbR@=wdAxW}88k4N4kBfVUM<(Rv!h z@xh@g<4s(dr!m89iB%Fb)3y38Pk!2fDwx>uuIAP_*;ZW zjnw{>vH5Lo3)1*vzDBdlUuXDCCu)a}CGh4Q$)P{13j)Bkqg+s-m+CQN%6Bs4LR|&8a*H_964i8bXFbvPXPja3b%v-# z+pjUO<5-9Ziv4D}<`RWQ80Qz6(etUg*@za62rG+6a)VK#VGg9tGOlH0v0KzTdIvnc zAq^VWD2sCW%k_)jX!3KKD{%umy0D&$&Z%M@Y48W7n$&Mz6DOF(K$rN@NS4p>5m(v-{HfroK^iZu+j2N<5|vUWy&_fJ9Ig=bFVYkU*%%_G=!q4KN4p63p}iIdlw3i3_u!$2z~t!) z<5j~J2Xz7J#~cVO5j#8L%W{9TW92UcwoA735RLnNP6B0BGYvV8-%;pN*1=S9EQUK^ z5&1g4X1@Fr-(KG-%-;A)qQ1HCGe^eunm^1~K~Kq#mDb^>@WwB}()a-SNm2AtqwV|` zRYqH8?ReEM8Ta^g&rTK{f2RWIMD&2&hhBH5dOHlje887QxK5JeHru@H!J&|^+QBjqm7D(5V2`kYYhH!Vd3W4cIY$Qfw+aM^m(CHY;e*#`FQ)sm zO*?U1CYv^u9v9iPA1?A-t7Gzg4_J5xq@*!K9is+#Dyt5&pb#*N3FnxgD$q=?HWtYK z)&>P#9piwC{0>p#()bPk{LA^!}`0*cfNLf<@mF%F7)v-%$u&zrS;43 z&Gb?CiZ>_KuY#0;s>KLs?)FRoQq^L8Q0t9uf$AH@8GR)wS~(UU^Eog5?07T-03jQ` z#fZ6wB2UnMk7#YV52F=zeviTnxQ~7P*h$i0^7$1mH7-ojz!DfjlXBeBF$?h<^{m9` z7)ZFpa-nFGJ?FNC^mJP zj&ZETh7#WNLr)>Vaak$no9$8&4t%aqtlsl0W-(&mhype|0??Fv6c0=Ovt0B=Qzyuv zl$K4PD(5#I(allni?F7o6I{%)97Lpa$N4i=2-Ch6iqJhGsr>>}Lb+3(!s{!%`$xdd zFM+OT{$|LFZwqCO`*5om6zaXgeK~4JO2O!>nqM0M#Xs5_IS63f#P$BipUgk zEdGvWZ@_3jp|(QUT(Gk8J!f?gczHm6{{S7;F&i+s{5mgxr2hbe;}wU;T4S>dX{$i} zczu71q}Ea@_U#=T=sXSIItbVN_(H#AZm%yXXKPDP{KHKRuE)7Fifh+Dh*BL(|YIfvzg)2aS_!e^~Njfe$=`x($4v{-BJHXIJG&T;5pu=*ES}~DR zBa8&Gfa?-gm%vPVn9PN*>m2D`ICG7WMQHN*FhH?`bisAyz+IlxX?tb4JN2G$ zW)Yk*sOcR%(>x}+OgrE}TH+cmg8H9$inuoy{+h)IP+~MC2JwJt_l!``TFU$pXLl%| zTZzf}%6~n+a+%2m1LSXlTvoft;zcwmJJ61@&PW@B>Vnk+(qNDqXdFi@x|PmTG7KZ{ zkYE#jIv>#RA<0k3q)&%lAW;>jVty{Jr@>e7c-=?*K|g(a{QEP^mQSJMV!L>#J_1=x ze6u(fo~dfHCr{{z;GJduPTL-H0O_x!-c(Z&kIpSn^M0OEoN}?ZmwDbd zv<;o}iBWbBt?;i<$e-j+t2XTHfEBhn?C>ePza$sm8FTISehJEq2KbhX7gib`yc6CJ zcMODu8HIf%3@-E5X)_3IIzph8<&f!Nr)#I_z@uwvrh4XF zqDNA6iEfZ{b>Vb%FPaD58hnN3xV&_m4d?MQ*l(=|pizsY?q@9-c|>yX7+VHn9N&{2FfMAk zxM>Nhh64_Z68u=-Wg2(j}uRVntwS& z=uVUan6B>wW2oRdGPa&r;?`| zkXf6#+q6>3VA0tgsyc4&;b>Jc=I0BxxVK%%an%xR1hPpLN{j0EbJAnVW3Lz`nQmn@njM z*W2ns*B1)($#(Q*2e%c~ak(pXIK5y95eEF>AO?ZMk28J1`3{6nE6jvhbKYQVZ7-S^LZSkg z5!reUQq+;)T;R6FU=)`(ACy-Lf|(kJhbMQNq)SZ1O;7FGMk?xa6PJP zP!%DQm!epJ=dbsLS2Qq5kY#jfTf*aJnvCTii_2h*SDD1^4o-}3Og9Z|59TOH>enW}R zTYhTbJzsKrf4hb`JJqvDUB{uu_*}0F+WNV5izQ=Ld^8g|j?)v74^5p2*cj2P0GH7ZfyO~r%3fjI9&-4u+A!M>rSC46FY`+ynK(>ir@z_s; zbo>+&nC1Tf#vlV@^Nt1uz;92ljo8O6_^P1zsd~*iG>Amhs41gR8{c>k=Bir+w9HYn z{JX0E04ToW1J`IH>x-2^$eS9e$ zJ3D*JCoyT|&*A68Q0kQPW%vI8XJliERnOK1Wpy1){ik{V08{+nDY^YdFChBFB2a3} zVp~vxCm={FPi{53!ZsQq%6p?gj&iSE$t3%4dtpU91ddf zYc~?z(qJqr$r&SV>;d+V-`ZExgyjyOLTx$|f%4iQ6vtBVFk+azz#~AmVpUHJOPsE8 z-nJ;IuRyIT=FB+TpE&h*lsp7?h7Kci=`@Qb{u)Yf(hukZjteO%E8+V~OG{LTRISI;=R44QOOLC&<4s?Qbzz*sV$M6nq3bcc-Qs#z&%!P6 z=`%eBJ3>JdAIdC*F7M*d)gv?4k1P&4J_PIruRGM$NzGqWzf+YcLj!)i1(B za&%LxJMz4q0loni%TGhca_;@#ZZ)xLtG?b6bf-&hXb_h5j@mv5uP5m`uKf=OMhqdZ zAe_b9ht!!Gc#<2@DI-=UtG|N)pDpXiz%=POKXP=~jsvGQGIBPntYVq~gHgzwcObaj zx75PKa|Sy&sQRbv9XBB}ZimkP%anNeuc-_SBxk^!Z8p)~Go@nMpugldRmbXS7d=3zqwcy^Z}jq3ysV6~M#d@uSxG!;?mK%gvO20%=*@?uImORU)j z4=8#KTDeX`S-qtRXGDs5wY<@WRRDkn0=OO_r}RODesad6(ts3vUHlcb^Y{vb6_@ak z7`7i+Wq@!#Xqx~)5xe;Dtrr!Kh%KpC;Rl7ITAGsVgZX0oow$jhux;?0qE6K56Q#i; zz9FhSxLZHVKCI32=PAscC#>kWhrcPw;9HV*=U#QuS9imsb2H#dNCs9amNwA+<-#=+ z2SA5kGNZt5tnW%fwuhq`y3c`}^Le20^z6RS(kN=wE?qS(j9MtXd~RY)jH#Zn8@LOwE@rqS&p7~MD0hZ>j@4a@;UdFf?V`@CVJV5(K+^)-1RGw z(lg$OITHyj-QNBVum`lz?>d^E-#gHe?I>TRTsFb=OqdP|gE_%_zxzA|50~2&`vKIG zeSkZ3@${s^bo-GJH#jeOlM_6SkpN+(M+R%%b?1ClMX@>@3edpAv7W4O)B%@bz=`9e zrJWL&Za273T~{s_%*|P{Zj{R54cXp@T4+bffYH4Kxw~@UuA(<@#{&K3Jt`HRtwLST zq`%K%4XS53K(gbZ@MgcD9VRc%Rfuw(#n?w0doP%ZE|z zDPFwz*gR{k+rp_Zdw6HPUNR1FJda{{{Sjy z4}jaB2OXRlXFr8xr!sVro4*suj5ejx^^PIT=X^G$8=MZ}rT@g;xRFBOifz(ce{Wax)M zGpo$GWhp>coL~Y*2gr_8m=w(zbD5>xaR~~0!qe?DK71>$@i5Zt4Hw~sWm*{O<$R+v z1D9dR4vv^SCdlPF+!5L5^!|6>{*fhrvBtRI=?r3?ak*C!lR)oGA$NF0vR|f=6+no- ziPZxu@$v;XuVX99tPNNFmv;jg4w0HKut&CLmA*}(dSV8RHD|=yz4(C*a^JEw*abOp zT4Ls!M3Yq)!D?opR`lhC0%Urwu{U5PG)>$4AAlhHNzcxauB6ZEc@!`0kPG%izIZKY*+; zS$_!P!w^`v>ktUo{Jw@^G=Lm;@v1G0Cy9tk0pUyI)E-eBzECQH;_t4LMFKq7jfnK3 z@t^0<3X+LwqdJMyOLJws*>5>-Id3^{Ii7zU4qc*xRb|uxjA)a z=4f2tay~CmiGFDEv61Vs*m3>Y(M2~8DXTvQxGt2X|uQ^UrYFzZ_B^Tn^jTc>1p?$q!{_^ zll448eI_RAnw%&?9ds28E|4lhoK@Z>b4S=oTxVy3rEsy~lyA(BMVoJ1nf^sf20{MN z=}$kW6KSCUJ`+DXEX%=rVg$vMyvAPxg*0`el1)xU-T`1HI0w!8s=Zve2%^u&le=@E}sK+@bAnGT&8RWg6;l%zNI$5 zcq!m`?Zd~A>iiCYdrpowCy2a^8L}r;hGW;c$Cme9`6iM`wYaVd)g#ANMEy=&QfP zr@lLiBLGKn^_29Uw*b7G^k?bMpSQqfXf0-(OGA;gI2BzrbB{4wKT0Kpx~ ze=-5H`p3EQj{pLVK15)AFezYFyk@@>F+2@ZG|Irce5;(Bm9)k@?w&sR^-xa&{{Vm3Ch0qforzYd;D`O$uv1_=5MJ5|zsY)$ zo)=m#y-(YV6W})R5+da4(Kn1_*si%M&PjmagraSAlt;9kVrb?~`T5E@@P?;VITdZG z?)>uuU|fg`9r+X4e)_{?T`5;9Ba6|Lq9&KTQ>n26afy)Eyr_E$N_Bqc&=Ar>Qf@YoPf<14cypN5MEnQo)!Tqc3CtqY|4~cO18u2eTJBK@s9pDKQYu z2R*q(Rk+b{3TzU~Sl*#BtDa23GcNT(Za@}CAR2KUwwkA3m*^9ra@Y@U9ia_Jv|KmC z-03lb^ha7g^8vZTa22w)%}C!9InOBa0I{!wN5!gX{)RDsFb2mPCYupD5U4&#+91<$ z(qhuT#FK84Km=Y}?*$^7;wJ}OCuT+sFYbuK z`Am^AOpqYN-RkEpk@F05Gwn~*iLboGn;>+#cNzlH6>n5Fc}$Qgxq{ItW1kC08V1zN z?%Titn8IxkFKFR4x{A-IdZn})cW57tiB~#p{FFNP2aT!R(ycoTgqqhvJZ`y z`gpaO$5+6{8W7v_RVkFpmDYL8On*iej&Z7;q}>e;NAyZ({u$Dg_nC*MixWRg5aXjL z(dW7&6Oy+z9sn=(osiS~HQW~VB`1^j`QVqM>0*?JOi>);baqAbmE2wCAqE5(Vt$YV z0Uk|jHS~-Qsyjfznzk|60(`T_^#ZdR2EmoYRy=ZX(oocG>cJgjaJfx5f<~33Z7bmUX^Gd8M+F~@~yyB@oOdisL(R02FESwIw+`WU1HU`obD8I6jQW_AqDQ z;G-GXGGV$WFPVP zX<-cpQe(TqmB`9xVvPD8t-jKsJkFm^6wtG{Rm@Q#@I5)ZOh&{;drU3{{T5ez2#yexHuK#MptOtadU^JX>N;Y3=#xhEcpFPzbD7-`TsiA4X8jUB zXVQQa0C?7mW{}gze=nE9(m`=Y68WXYC3tTwE&l+?IwSR^{{WllQ^c37Zog&)Y4Sb6 zBg`MO6Vx7Y3hzdAWo3Q^hBsRiS5C+1n2y6=ti78C-$}b>JF+pzJ5mr$s`?*RdzdC{ zltt}yN@ebdYRakS9k+j_;{7)^JAb8d$&a}Kb&_PZkPBUN($0Kuc$IkW;3SIpr|fWNM+tD0X^hNQcYDnpUt)ci}Eq!#dwkyl=+30g=IW^U z-|=OfxvqDRZ=)Xs#$vvnKg9e!KHvFFpj!|vC|aBQAlYYvfz0}Z>1X%981^4kPovAt z-`}#^%&0}4;7m7Loynl%K4-u(t-y>CRuK2jUC)p=_L>q|uA#%paIFwC@>* z0h!%L8z)+Daw;RvVKJ)5K6ISm?^@Zk^A6=;N)y~)5I;-?NRaO50s(z4T!I|Sj z47{H+GK03(0{(~IES3mfmJAnN02{)HGRAM^UkbO7xrudQRG1B~cY|79`3N%uv{0`p zzj!-z8poi*Viz2xZz-$~n$aqm9oL4hMILil7N0Y1%&j}0Bt?p5KSMX9y&2NM8Z@>V^aSBtMW?PTNh6b@dLUtr^jA2 zLA^d~Oc`QTz93Z@gS_~SKHvErz=B3mva^U`M$Z}> zA=Q{a+=C3da6JLCkUie$;-b%YnAe}h8B;_500+bN z%(9KH_7Bnee8|Z*KS(8Z2mwGlc&z=6Ptr3#e+O)TMV+Re+*;F@+=NT&-FZxTb{;<7 zQ`!w*`aS^7)(ZTOyW{7Pd&||$r)Tx?Vk@?LM1{}d7`s2DzjdC9c(C`cY3L`vikiD% zxk%C7F*XNQWmMh(*LD)_;vv~G!e?dQ-ENWg0tRItubBQvTXn+}mz0=3a!>%fgLD5K@vPS!nXTNPVd0jgpRNEq9$(99V| zK>4KC9=VjIzLu%)BmM3bq5W%yYde?sfQbmXyYi254E6p$R1kVwHb6~N08o5m zgUN=!_%k-I^d@Na1ZtboEj^E!_kTeeyQ(~Q2t@CT`yLP4jU{~Qd%S;Ry!|IHfzm77 zVXr3oKLGhl*oyxER<9p1tUHhb7;1qZbHwmgR;xp{GYSy zIH5-)p4IR_Y!@v509YUA!1rIIxVaCy9beDvk`OG{YDp4aPI%@ktC9o!AXV8wRD|EIV zQje~x8*TSWZoG(0!G-Avv~^V5L6el26dEsBhT4Sa`NjxpDS@GWh;mU+P6x{%l;n+z zyVKHW#ay>5mrw|%mK4M^*Q4(-MS)pP#9fmY-9Z#i@fO&c)H*^<&+946*58&IY@N&a zWvRVfewdnqzbw~@9dS8Q@duPgn-=x>uBUI6M{s~F@b-*s)R80_x(ne>k7qJ)KIrtp}>pJ`LcLd0M=l%|xV?Jynwp0RuH)aqo+In%3SSF9k*!h{7 z{*~kNN$Hv0&ERfFeHh2n>0EsP_Dp*p1I&k{qn{p+`{T0ed#}3_nD}~(mzZbkuMFouqI)BC;&j( z=MO|H<$qJWR?qBs`qA{|eM9J;4LPayPPBX6e1Jnkx4`H^_JjI@yi`Um=2>x6&qHVd zGqcf(Q(V1fpdYNKCshOu^iK|p)jzDf-BZgREK6^ohD-Q%FEK6aUvCw|n1#+3_Bfnh zGPXn0!U-R-nWoxCYb6efPPD3YwEZu)%iO%#Nt^B7c!IJFlkSGf3cN<$UAM zechKUQPyQmJzTP#80O7IPD0~uk*q?fZn4q@UiZy*W&9GMSe*~#U0&ZjgRJJDH6^n7 zk!`9lBeZex%XHuc{1a%t@Hu=`8o?bN0^ToVUJ#IhLE2=yK}~<)w2>>SnP;fr9juS5 z>Ua5Ws1JC}e@gN7Jw2i}=bEP4_i@|x7|*IdGV3*hGI%YTSYfNT`IR-hQeB>x{SedO z8&>5&G+=6!a^AE~M0NiFGiE!>&r-H%gR~9PjAf3JVyF2 z)h#rY2G`aU&UL5WJ3qg)wYd`R4+-QfPSzMw9#N%|^ozPJTfCr3To`)IcMaFpT<%lv z@Gsz8zY;xa#k&TR00T&tQ=}tG3ucfD^qRf8lS2RsxSF8(pz<(+Xh2BJI?I%O7dEK9 zD2wij)>J|7{e-rboDQabm-0Y~L97I|^LVq~U0jInjT&`}P|TsoUj5QJbHs){b`q=zoFK{zYdFui#O%U6_{M1vW-qEb9}YI#Z=OQ>6#cgYqEv_QQ2p z9%utVK1V==?YJcz-dtv>O~h=69JTY5a1}rBgbTXZ9s38%cMW~tn6175v{@X2XnuKr zScRToXRiW$Bd1deo1x9{3d8J|sz4d3EK8T80 z#$ZJo7~76+Q5FoRF9F;bU<-z3JB;W(^^auH04N8S5xCk12J5vXF8v9KMLN6L&3*eD z%2{tvec|48>;5Acz1uPT+>qX|hgf@07iS0Dfz9AR%It9Wtdpz^Wx1PnRiZKz>7!n z4BiUv`OEkSbtB1$=F4-Pu07h8=1%B!pj&*!SkJ80Tm|1c*oLU#s1h4R&F+{;F_}%z zl%=yz{2Zvb(KeRY8b2)5ewRO6ugohJ&@4Pw=H|GSb+S#MToTtBCCb`Au5^%B`k<{- zpMfx|;H5h4$s;&%5{GUVduB+FULBl6CE7%g-*Y< zb2VJHw-LkNcTj^og4cJ~q#>N>KPbnmAF%`8^FW&Y)_rha>kzg1gn$|lTnB@r>*5q; z-UI95P90860c1*P>n}y4nOT7Dz0iIpkI`H2D;JNK9k3sNpYKlw16MqvT-&$|VI&6| zGFc2p!A8H$<4gRiD&fOs__9jd0$XHFZPonSP;+6^{9`qL5oeYrEF&Xnm&d4Fmi zaRd7A9sa#vl_r4ZaTbV(1WJBrX+5FBF51<-%N3KFRC$M&^B=;LDiIAIoEdX@!M42c z5=Jg6Z9w;y7TLR`wpH!3XEswJyEK}idMD-+FK`O_MGdfo+H!=fjDx47gHRm~4kOs6 zsl2U?V-19K+^8~yR;Ef7H<%K&4g_*Ni9p=u{l|-?FWoBUZ|;74U%fbwA3wXp?6Tt2 z9_-FVs(MN~cn;)G)9B0Dq07?q^1D`Z5Igk)+9(2E1G9AyH2buXp7(wcR*#W=;-OC1 zK{|E?vqW4+uLqP%P_n==kRq`2I1LVK@<;JIFFi5gODT+&@#VC)9KYZ9@Bp+2S=0j} zHBiG_?F}H_D1P#dd5K?m{3o17CFKWYI!#Khn3gMj^C48#TZN#eQoF#-dJ!Qk2wWh; z1Xc#o2FTJeKSsV&dBDlH&I4G+(OD1UfWx@XgGV-6F2j~5keROU@ce-I_FGNv$BRfdNrL zlpr90AL+cKl&zK+KGKs8v#Y?B4z)~fMgd5&t0=S|xtqd+Ylx8b2&A{^Wy_ifU0}qY zE7gH-I-vv$0Zx&_ho10PCVI-2v81I#xcknbXEXpo9|lMIRMtOic!`}7_LMX9RHmkC z>%dxKS|_UXV##?q%^y;mW+;7NZ`Lx&ZF2SB;w=`yFTM!Hb}RHpQ>uVH*^Y7;{-XWh z$fEN7+Rt<)h+1CpDs!Q8TON7K{$@{Zi;c^V)ct;wHRnU>&P(2s@UFKGt)d0%p4GwX zmt)>7-QMSlo-kM3$KqqPwP{!RjT6l{_ly$dzgQVzTx$VJL4-Cq+%UUAy_ z%m+s(Xn?~7>p276l=a{Z3(JEGA|Z{C*fS!ugGbjN;(RS{{S3+uM;#MGo$LS4Ea*eoW z20Huhfq=QHbwSFbQgS8}vJU2R23o4%BDtUzC^H*jVD(H)=)*x>V2yK$_Itw^ttS$# zE|A8t({$}CIgvLb8N?rGL)+^()>>#en5yEVg6i98dA7AQmgZD9jya!3eu_o?yjiZS zBQ(|zyb?eyZQ#b)$nV11se>ixn=*(Lt=TS@D6WoAzo&<+l2tyP%k+vqwO|?U!S{`E zeSgAR+D@2z{>f+;HFzRsr7bJusjq&+XpcpI!hM)Ytar@b$2RZ03cDfV&`kG=ZdsnD zG`p$ZL6%|=ELZ6;Nc2HelSh#Q-seF*C`0uVRu?^XTqb{%Y}7h*zofJu(eDBF!fXB9 z=r88_r?D_VGzXL<3mh}5Xirpv%&cN*`AZahA4qnB1aB}sNH%mB-PmkJPa|-Vy3*Ze z{pkG8?)jD!HLY>|uMdfapEIHS9fdXiGq6nyR~#t6qO9pde+Ukm6a!RNL7Xmf=P!IKm(dGs`09gVMvrL@e z4i~j84A2bVboAkV#X)rbuLWwf@4J@-DpqYg)WGJ&jUh^^LF7PPzP z8?FapRvJ}{ifSTcWh9@%5!eZF6z&V;;i=kO{hU531?-tcVdnr9z0m5(>gC`Pi1giM z%mwQ=gXCfz0G(0)0I;6leo;n~sIROBsoRksZjYqBB<`>mLTTyEChF~p^#n72%Krdq z?mSPSG~V#DEblNw5IKI3bU-J>wCgofcum5=Ny`Hx8wtBbYXMtg7$quX2c&lX1$}r> z4*|-;n32>-h!LjoJesCaFi;%n0yfBFR9?}V&(<6;w~+;TV!-tAXiaeG_xHNVn}`Eini<+UbjgBS}Mymi#=}#Lz*P!^NiX>Co8v%)8=%) zgt<*WiZam-3DE?hT2=cP(+zWp4_mshvcL0_dwb zT-f1qSi*{L9t))f*X^ga_3 zu9X&{U=>By0ev}5<)c{lm4(8CP-&qgg_^$^oV390si&=3>`27_*WA8_eZ27@8WhkO50N&r%%v?;POR zuw()*GB3^TE)yQU^j_KNk zt1+y${{ZY`%P_}wHMzSzqjJ2E++Q!^d+Q%)H+S#OZ?#n5?Jp0EQg`JGSVaCh7zNCChvdE$9D-KG4>Whdi**cU= zfp-kMuH;<2EFQC^edxi-Fc7%jnJIWY(m3&5dzS2m=vd+vArXnl{19B6wOp`s%%eaO(F7% z)>;CpSm@vziA@Zv!0>nlaW?UE@svbYLIBIoE(&NC!IIA+7AHg{S{Nm4=CK_+A>lPX zXzTnqMo0sRX-_F%!D1mg+9elOS8o3R0cf^viOsGmM7GYWJJ9CM5I+fMmRE$uZ4f#O zFaH2==l9J8&+v;Q`GSD?gMT$y`w=W9`6fr+AT^zef`HrMwy%(kd=%I4w{%*mz6PQ3VxrC_QZKKpK@J04FY~E*|I4{R=bRw%3lh{R6 zEDGPwHT^`E(b`pn7K6cbCV zXx~$ORf&vJ_8~HI&$|}A+NI$AhSCczsV47y7w1Rm!I#j{%|ZuM36|7(Fa|Z6 z$ZC5+Znyr=((vPaD$DFm2Zgy>lelxi1dp(Vx1*uu8EI|RW|-aZQ?xN@f*PAqgPfk> z{(NIIwcw{N;D8s5!>Zy96t;16J{6??MCtPnwo^Ntj`cNh_lWEtQVxD z)*-ALBdUzVFhUVCtgXPX5}qV0NV?1G#LH2yjvDa=vY=)!u5>BN16Ef7mu^#yz$HC9*9eSR+U0=`DOe+&DLbN6}pQG0&Ou7bBTp7|1v~nCalGCd$H!OOcI-q%W-ang7=ta#3~l9Nan`kPN%S3WR|J{=+qZ(}W2wq;V%J3wl=O(rRd{mEHpp5ijSng0MP zZPU^laUwL8;1`HuJDn3HwAwZ=Xt1pUYJ~;}$~4+@FmN@PyhJxo29JkQiAhfav=c&f zXF_zRLR*xll&6%Zl;}bBob&;M_>fr-Vz5cG<7D( zwCf~D*{r2cgaK%aMX_W8v_aP{kjD`FpiDC5I-&4?c&Mt|I(Y@kuK_mC2gfKtvrmxG z?fkqlSMS9AcH&nER`e+hl*jZQf4QCH!-fQ70yx6dQ7z)(R+-viLMjUDKKis1OsmSdq=Kc zF2n+~$w>`i2t7D6PQDTzJ|A>MbSMb2T_F}|?B-^@;84KRu{LVVU<#dL8*ni)La81d z5KReEIS{{iCcBX^proJ~tuK_y9k^_t_8G9HT(SQEWiGc7^|!iMHI)XZaC+3clwU)L zOQy7Y%>MvG9w((!k7i{m9x-u>Xi_$%o^uvc-Zap{-D3N-OcIE^uR-L!m-zB%LLv{8MO|9OLe?p^?L(4z3 zs3_+CX_C!V+McYlLBbeCbmt;VEaPAiEn6@!4t2Q$sN(B#uUFrnU8^j z?JAAxBd{L^jM4Cf=x~5E<3yvBrzy~#DbSR1{y@j)yT=Qu(3GC2VDakic}|RU;5G#7 z@N`bIq_>TsDEO~g043NPc!YC#%CKwUsS>rDuP=d&HE`Q|5{Fo}+r*)kVyGJ|@%fK| z^na9ubVq>NDEamN7x2FyL>}bU{IaDC$1`~2(+7+#mFML|^^EE99~l*{QfirxSE`10 za>$8}au0ZEM?v*+f*_5L%h0>x!_oEdx*?>xS|%LR68XP&YyiiwO%mO?_27aK;my3# zFpz5RE2hhPbP%W(+mZ8O7Gzh|G1au#T%jsnaZOF~xb9x~{{T>uN0l_f2{_jxUMNB^u7Vum ziZ!TJnckvX|%9rMdPI5GJ{oqMq?VX<&`qgzUiqR%=v14>z)FzFAQ`y_wfS zRuwOBln{N;_#)i2o(&&^Ls$)^e>rOT+Z%AWciK5_W}ROVwx%No z1$sa}BiHkn@s;p?@dAL>A5(c+jeK_(6*g-t{6a+;l)sgg_4Ui`4%BE?B_)i$iR37HK)PTGIOlq@qUN4(RO?uGnYgcVRS|0F zfI(wj<$Rza|)&sIFNk?1+*O2W2*Pfjzg}L zgzMxkWZ=lQl|VErgP#C8thI@M)6^dDCPSe7qF2#V_9G5`ZrPu%<>Ky|dN0g4V^`%8 zvsfW7X$=npNpUm$qOmTLySA z(kjpzcGWO;bUXM!ri(qH^H#pReTq6Q13MaURYwIm0MVBE70pem=M5@)%-&9tkZWlV zAw#67M$-fZH#l>HoWdl~%n0TBd@9Yv(KdnsUv=R1@2ma?(5_2jUpBms^(KL&^SlW^)TUIogek#sPE)d5E%`bs5PKZu+M@N^P+u=HlAEfzM80h+ zjKhhSgCUVCq7xxVZkD8s;lQ<7>4-4%Z>ENlMBM>+Q#ZVGIRN@iHj5TSLtRlX-J zJ+tNi0Dc8<>7Hz^9(0@OWYoZ~X+ssILv`~~`uG?<)k+j)5Ccs^}py%a-C*RkU>H1VQFccpIu_K6n)~ zNyaXJ?5E%*4kN3T=bqY3>)qdJM&s3roa`=uA6Z3o7t#IeGW~LK{g8tw{UscHu0E3W z)_N%_RHjoYj3~k$^Vwiw$;x5qtH8jT>hqRKtA<&$+b~GV)adafo@blSutOD4hZOVmc#prVtVcIcYn;ye*nR!Hw4$<&M+A2iaRC9PP;cd2c1MotMbDJ+X#32CTa+a?z z0g*S(7V~-db(2a|rdz~HN+u>Hl9HTz%S(P@j@rg;$d_AheL|o#E3~RiqMk6f5!xLh z?B_I-tR(g(C|mr1vY2U{X_lQyydKd5KAg#1+FHhJ>)|qxVe^ewx<(3W>!`%a>~@G2 zfa?~ZJ(KGwe8>>oeWRe~^^PyBz3UAP1kOgY#*xx9r z-?9ED(F$X?Yt7;2ZL{}$zAaO(O_)1mL033-l>{qA;#Tf-l?N5KHQk5GKTIK0lpYy@ z)Hq!34ILt#D$cVKl<@jr32pq&_s_Q+5R0KN)Um#Xo(ea5#a7slXai4@*Sz7OE^DEz zuMhwyl(lF5DZ7#{L3%T2P2fi3(d2#J6EiEmV z{1xT6$HLgVvo{J_u#H{N+qinTiY;~{WXAEM5X%?=4r-x1&e7T72ejK3ttRK$Ek2!e{s}CvE4-JMlL^P2@!t6gL+BB|Eu$5rq z_WuA7i3Cd%em}D1#EvEb{y<8$4#kUwCWM6DipuabcDEegNlRgmPk{Q%{a{5Mm7Bat zYCR@^M)6Ho-<)CvnOoqF@`B1TFLrXxFGy+Q?9u8;-9J$&lG_g~%g;8TE@7KOhDcvC z7K_N4q!c`XLD+p}gPQI;z+PolW~H2y=uc>rB_{KEY`y#-aJ#F%-tk(&@39J5(Fsis zlQHu0t)?fe7rUN4s?TXqzi+iaTg~Adp8A-!wM><+)0vkRwR4tUAYJiaRrrP{ zE6}bsRW!wjwRw{j?Fay)2gH2LFI)RcB9kpa$W2I^VjVs^q|FaF>T@25_|*3s=;$tK zeTy7L9!V3ms5Gdu@ddbuZi?Py`VeU1Hv=yHJ*VP$Bz_$pH^#Ko(amZTa) zhmvsi+%c(XZ082&3iRmWFM*)`E3W|z3Q9=-0A$5X0VgWBl-{xu^#&^^SwM2cAPz&k zSeQ3cAT7%chfo``uA6@YXEJo$CsKFkNu35$lPS$96pC;bjJC>0!l{mE@>%cUH6yX| zmUEpnX1SF+v$-?TnxVk(iPvbo5iW?Ze_>Omc#9f;y24(nM<&P0J}}q}zr=3c{_W=C zV-r)}QE?#jE^2?8iz~ti_mplQu!04J zB)Q5MuFMG87irjvyI>OL7Ah8+T|opjubq9M?K>{~3`LJquks<*MFX@RntVZp!t$fe*ka-joaafxcjrOiS~_Iy&Zi00PO5cNuAOA+GTv{=>+k^qObGZC$>OA@ z3kSl6$n)n(;95FF?arqO)lRx~8E-#;?r?9kXpUXM>9nmIqT|+&az<^Ab)S~0#q{RW z-|HQ1pJIQ$d^I9ArC#U=v?Y#cH@a@|w6s_ValLv7?eNBP66{_rtB zwvp5Ih&s1NK5T8}kZgLUY%@2PFIY=$VZ1=Y*4_`NrsWo#$BMHxpO^ia2R_sK#4&^? zJZ)tMZ69w1tIvJD^7|TnlG$vuw7hGBZ_$Fl3+PN?^`h2P#13&|t&?}XIx|(nbCe*; z+s>01O2Re`ykpp_*%HRZ;ns5VBh3y?Av)7Xe};(WKBW0Ef4@wjIWLk9af}CDz=*g- zrm24~31vdFS#$JZ8q1?W9an*(6oWW6XIq^qD}a^Lda?G50|ZO zyc`!YJ8d#t6>`gR!{xN>Bf|;1uLpGH#-&Sm1soR$TINAWhVVlDe;JaJnC}u`H0wuXUzsVxhKoZNbr>pzABQ znz=@sNR5UJr?Yi07!HWlHD{(*rfWB(pckIJAUYu3sC#9c z_l2WPWLTnW?9xyS5FOyy3vZHG2w(6zpa_Jy1oPX59jhMc0}y2n`#2Tu4>^|yXJ>t< z>~wreb@$mm^QXt5{{Ug8>sNiCoWvaZ_zKmvzKNpf`gpMP$_cFDx|pIimS$X{CswWj zIvACXa1zk2L_zE7my!*ljrkCFBj2)PEX z8pJ7!Uryr`9`nADsw-$UCuD^~^EcG$Ub@BA0}0JX;yEZ=)&a0@UQqqZQUxOOmN4I= z0KDp^WZM=|_l0?0)%(kODpIq-BAn2o2y-ACci+zb|o$ zyIeBPhX5l|;+&^sw6wNo!=)-+a~6Eu9jS}R;g`cYG09TLlY_|X#8cy#g{nHV{@%{tj4NM88eYEfU_N8JI4=S z;p~=kl;#B|wVHQ9e;3zlV_q7mek@{bdkPGr*`b2*d z8m}avmbzp+P38GQIL^n~UOPH%8%t?Op>3IA5Mbj>V&y#(+D*Xf(#=TWfh{9wjRNu#)C$eIMd0Qe#imV0 zCeyoB!0D@k8*l-4G(!fogbSe;oG1Z=#Ym~#(iSpk{{TL3_y@{wxRtx@6a(d zyrzfoOv=$o8V&ydH8-JZOAyf#w(Q_lKxvEx23BZP!vp6Pvtg94M$x-fpX>5AOC^$$ zl9HYS**hhrrKP2~U1`>Q?WLuqyx@)JY8+r>&29cMlbfPWXd`xm(NfyN4CWeql}i<= zSQU@b(K*1Ekje%^<%($ddL4a9PH6sOVcud6@aZ+%oJI+E$?q;Y@7dZU>p=6&5HvyQ z<9G|z=b`5e%>xrQJIG|9ML3hq(XZ#ZW9^`pL?2eCOXKLPY2mk{CDsE%iD{t0*8VOEDE?f6@APJRh>y?3~g&qQ? zbIk|sZ-K+mmKCTOuh&&7(aL5%X^zLCGJ~D*YQOR(PVa#Vvx4dc#y4W8F+ApibCgkO zw7)zkBzU_0lKhf3^}Z9Cyq+!|hOpbX(D41AswEzGnEISi)V$!9GpU+{4OM=dM~`Ht zrFM$rL`CzzwE9MbYsLMN#=n2_KX8YXG4m_;m%fDhk$WKzU}xn!^Z_bX(*5%!M$qp<+o?;$Gg_Y}W!f$8YrBosrIehT5$Dpi{mapaVX@|Xf6v>-K3 z7nHL26%lY-&X7TOCX#hRlsVTahz(dK?3?tL{6?#R%DsUUW3F<32$nRi=}-y*R&$)V zpzjng3>>-4f=t~8ftYAP%lY{wdGHUCy|+#-3ub3+p)X+fh_k0Ckw+SpDe-|xiE&OF z%S(J}=?$Nd(1zDYG>rAIS{&hmI($`TT^tn-umdrCB~8Jy<;v*AF(~!RhQrMME8gJ_ zq_|kwJsZb>OI4Z|q#qI5HjhQMD4~vLP(p#UxPoYjNFa^&os+h9a9UbgT3T9L&Rfn~ z{Xhx_yz9OJ@<7lRa9nB+V$1IyY=-9j8=5<5qW6@{`Il~M;TWE8tS#Y5M@<;HXy{TI zUWBH|OJ5=FkCpCqaTE-^MEE1CB?b1(8@UwSzEB>;&P41W%iB-?TU@C!422O z$W0@nJpTZ+M*EUwESD3xoq-MCNBEU4pr2>~ zPC;>)AK^hOwh5shECAcWErCey2@5UC--(jhZLB_bp5uWJpSf>?*yLRLK@863cGo1a z%e-K)=&<8wd)8dUJ5WNpfI!AqEhQ1Q%qY9nb;{ztdkRt+?h?|CL1N+)W3dk4G_nA4 zf~BhSsxwm9OGinCO-j|8LD4rv)EB06A%j6d{RT<6cn8L*QC0;MaoKtCPS_BlQc)|7 zlF3P48%s?5RYLF?`3*!C9XMKDAhE+=;_tNK5Ot(fj8*s$5kz%2o9PX)nmNCTzPILH zQy1s-W82;Wx!zek0!!DcMr=hY2{ylM z#5W-C>N~QwOVl5EXWW07FqRo;E!5Fa+w%byJBY*$fVO$c&!{Ap4r~7a5jBC$VjD!t zb(c$(wMM5nUh8NEuqFAo0}Le37thpV+W!DC?;mm_Eh>x7WjV|<8+t3zgX}#r^owOr zP>HkP}O zJqcZXt%(eDZ8!e_VZseuAZo?EOSCI6ps`qmnQUlP@^_Z(n`p&J>Nj3{OISrSmA5Q= zEgICT63{xr23;>gB#xvgjHt0|tbL4tXmpgtdgAMcx&b|s4-o!*n1tv{a*O2@cm>LI zrRBK&ld@MyOe|&a?yi$w7G=_5p)V~hEtdSUSy5vJA0xCh&b$V07-{jw{4?>4Hx-vK zEl6WA*yoQ&GB|&RwHRBT5IM9={{WcQ1znrhKHe|a za+kJQ$X?T6lcryI-!OAba|69Tu^(Yr8%WmY+F#rPF57d?RZek-{jU(-^?wLMCwf%( z&I9?_Jsx0wvmK5>89|wW7V?!W#!Rs`&by%NdEBRUZo_UXolAT7CWS1fwsQi|nKFYn z205^n$!xCVvY57eW>ETD70i5u!=UYrcOp<=WabJrFB<;$e`2@7Yd6hW> z&I&DJ=8)S3EjGtE5Z`1Zyphq5IZ*lwtRIk+i0q`RBK{J+R% zAg&b^cV^l02G<9-z|Fy>Xz)~zDXbg+014JWHpLa`YW16PwdT#A+=Z>37cAunzc>&J zToCLFFE_y5hfuOrXR_sgdkJUk5~%cGU{O7gDOL5_b8yNgP;4w~0J733#;bN){*?a! zp9P7JAT=&L#kCmoaLgIm&o!wiX&W}^5%6`aT-z`ktj5Ef7HtqTp!m`@4Wiw{uO}Ii zl-PUO_=Rc-bR2n~_Mg1jwUx~u`|&Ebuh{VF#HB#q7Q@au!H1@Y`k1v}(`Y(kJ)aP= z=Aui1p=O`t_TNcdNdnyin=@H$=XN!Q9`LjY&uO4-Rp&ad-ha;ylL7{@d02&UXGuWL zW~3gt_fGSwq#BX1BN9S#v)&*uwXMM!70dp>M!6M7Y*t*lZ)Gw0T}+XTA%r=md;r@( zB)^>(pGlFkh-Qn<(YC0m$THe4)1Kld)a-hAd$_%G@y*#mwq%#oOKKU3s+^S)rlcj+ z8B-P32>l;9R_bc)+7sCl+Rl+zWePs`KcwG&K{8!oHUmdV##uV zYrEcK@~j@10(4Qy7ai>#PrN`pF1hlCLw8RV&M6n&FPuPt=pk-fT35l={{T>{9=WJK z0>=CNh>hY~yfl7Fr{P(NY;U(8HT(&h?D~FLZSUi|9m81~5IjrGfL=(jv8Mbx;V(9y zTmJxodXemu4?wu|LZ%@_YtCnmsw0n}iB1MH0UL9HIjWg=QqXfm`(MF$bBv+X$p{;k zbFyIt(5Ylw1+xXPBr-PG!P*Z>&me-!Y17+)mvCJ#DV^g_0?UtHL`8PeUqA*v=QWgz8Z`joXZxjkx>>I zn5Kb4n=f*t$txb5a2oVsqE>NI*v<8qtVa_uuRTI`moj24yHrWKCEo6GgvHUQZbkRw zcUghoRAMbqc*$Da7W14t7Uq_-s7OaC%2L!CP7N5?H4U9=-w`qYJtN9WCAju&DxDJt6?#YoE0kI?{mr{ zV;^z!@Zs%G)UUtCq2b%Ll*(*6no0My(eV$5|zPzY0G~hFT#01RwYwcC`n*(+n%=D7yMzZi6he=X} zyr!lhSa_C;X1n^f6A;d~&t$lE_QD6grP~p@Fm)KVL+cGdT(O!l4#<_6u=6e$h7*y) z(qrHdO;4Q>p7Y00^&I9JnjHOVU|f{U5u_MqO<<^=Ny&zWX!YR~AF!9pF2^<)=g7Hq zmVAX9Uwuv<#vE!B_Gvdqc@^}k{a~L*zbMBa*8C#A)ANj9qLIVVgrWxSoE=tPmaY`a z8hGN!dY-A{Sx$cm*nX@2MY%Sd=yUj%v79x5gP^Vei9tQ_I!hbjAqAqT-|aO)=*z7_ z!8>*6wilWV-!eL6c@p6~iqG)?d9iUp)jAo7*Op>sW%HFZ9kSqFqz0&h(?Pf?=Lw21 zk)fn|*8wTm?@(8XZ5V2yYlKVk^A0-;ST?`T%!+ zN3>3~qv|*>nkhQnYFXWOiEijSN?5~^9aNXfimi$MY7;6_vDuyqF6)Q{(SpyUP(9cH zP*8tNHUiaXMdY0Tm_RHJ{r>=zO!Kget5Hsbablfie6_?F4M~?YCB9>#=2r(*%Mw_u zlU(1$?{PoAnVUy-=yHOuUhynN?<2gT=8dujDczrF_PrR>a41%q(;5V_WLT@b362}@ z!1KCEDFyHT?>N@Gyr}f~C|&p~~`_ivxa*K*_rZ`GOG~@@ObU!JUDK>)6 zJ(Cz1+@jW0A=w#_JahfcP@4m?F=%wOrK!1ArtsE~xpo@rcZTlJuINF$2_ozyrUtp( zCanT?xWVEK$|-ONS$dFg?8K$sb5=2nWj!8DysODOAlk_mA--&ZSek0!8F$hhCu$rh zgZ}`%XWC-A%C<^NZ1%Vx2whVb9$wP{fUC+-TE4_Fq;bG`dr-+{o+m-K+lHPBso_hm zP_+|FN}yd3w_oi=eBf7UU855{_d868Su_!(=wu>y=ky@h=Jtd3(F2UEnA$q+7b-$j`NwFVS!>ET%SKH&TW%isa{ob*2hM0`9O1is%YGK=WB7$s9rIZD= zcZkYVcxe^z13y_bfqJkTwTd-^Pd+JCqsD*kTV`Q`Fck1(a7Cx)Xd62Pxr_L9B(Sv)+ z`D6~UnPLejNlfTRf#}ABTyhbp?y|_iFG90OZq;F1$7;V)RUh|h6!i!bqquO$?WWSt zHmgY!-m=2|BRu|sLMyCRA6aeIH=U*ffoG#w86u1{;L2r6>RUD*k(F@E)b87|ZVKQr ztT%-Bl6DA|Di1kD8?!5wnurR*4UVx@xi3-E;xa>N?)yskCx^{0^&C4u8tbaQ0Ex{a zx8{DHB2;4igwXI)`DSHWKB;$`)|9mybR$%D3l~#q)?A&fNkb;XD#3;33fNi#*eEa9 zdBkJZU`7wR5Ds@3>etc{hXflrp;*|5Pysxz9spE2Mr1dRq<*gJbh`Q@;}fhQgfe}m zq_6&_Dr!E`mb;J@uIbE%t6gaS0A?Xwl4pQ5H<3)c)@{Biz`?>Y-;hEzhi7=)HjD!* z(FY%MLy6mUIu)yp9mpcxr#NXYY`1Q2UN2eSZ$s`vX!vLOrCM-aZ0bKI{{SADS=IA| zn~$`g&z~Nrk7!UW@zB;|$^QVs^nH99UzWO$(3(jR>S6Z!aJLG_t*%}zK5n09rv!K% ze4S2wKX1H3<`ne&&`{;{1{@Gr=o*-E+I7%(d$16y?!AAB=}{Z@64TBq?aFNclJMs7 zk_cPuN<_B9PdR9#4op)n!UCI>5|nn~cO>!XBH)ZItkTGO{{T!%8j0mAb`2fgC$v}_ ztPMfYnH$jQD7b8#`uxHK0NtOL$H*?~3oN{##y(e^AgF*Ek-H{Ria53d49u7e1=ft* zcttv~IS50wjaNxvvH*D^O*kpM^JI8VsMXq6v5m$3WwM2y!f2-ZLp*C$Fpk;LBNKKr z81gxdOHPo*wby}UVgz=)`NAqKSb*vBI6C2N+XxIAg57FVYRrJkyj-BSdLy?v?9%RL z@7Wb(=1A4p?-VNqkHDi71bp!dUBl6UUH6}cj$nOfUH+Nk#io=sL*Z3VEh{(R?d{Wo zWV8bYh-%RcVj~jKL2RW>KxkaE*2WAI?})3DvkOEq@_@pe^DD1>%3N!B=rC%AK1F$a z$W#q~qn8UJNk-3dTV6;=thGZtPOxYVyyBwv17m~uNAp{+ zmmi;c*DQDI0BZEO#FS~K9mqmFm ziSOo)PqZxsSKA+F6VXe6ya65a6s32kx27dw75R@0k6Dhyw*t&|ue@R$H_$$eIg+qS zhcaHqBze_-h|af+#)Ylc?k3pmEoAkTa*7wPHS9jq4{UuVJsw;J+0_-c-1+f%R`Qe{ za=UTbgY7gzbx+z0+_i^Bv#CE!nLc~1v>0~N-}fRI>?N-L@w9hl+&!}UD=Bxvj!}Fw zzHAJn3mbYmvohPpp~2p^kDRLD?E@IRrNy!f8a1zDFvt?t#f}kql zs@YdqjO(ky+osauQUhAnI`APHL_zh=siZ8sR5+ULf8J zonBB?%Tf3XoI9#0xHD|WG~}uZ zRRA@Xq-evu$s(Y!fLQG>j+7RrpNwDf`t!cP>j&t*RSk^Oxvo*)6iu|QALWm2sIm~l*p;fwiN5Q7jyIH_;iEbZTWiSBE=H@n2Qhm@$G*EqETV;&IbEY_x-E?e7g89-;ef_=1GF|Xlkm><*v&z^W~50hHQ z$ky{3xSgv|Si|y^xOy8iBSZE~JSoqiQ2NXeST=ux{ic}Wfejv+@{4$lH`(-fYKBSH z?f1EXa)&E87J(;v&$$Cf81p8ixJorTWtBy!9=o2XB3Z-rT+zhcusq;l-F_de*P`<+ zJs-CWyH%IUHr&4AAj+=4eX0eui_ssa1*)KjsgJZ2T950_0#+RWwSKiTVT^g7Tj8jF zmh+(Q6IVc%mdt#h4k1l*suPnGyq#~}Bsd)H^@A1~B(I%y&@#WroUcybBhAywGDF>b z3ybM_IV0z?lUf%eLVtvl{7@rtzX@Ph0asXfoLG7d_#glRgZg+npj#EXY04ll6ThO2 zjQgjCiV!s4_r8s|GW;Yqs?)Hul9Q#G65MoCwfEGv{X48lTt|Ds`lDvM8hREVq6Z(YJ1_j%%l;q^+ z3Y>)9=c@(kAlKjR0*Rt6wcgQEUgS+ky<9YI1Rr?ir}Q$wwDfTLE1;SX>?Lrfo@Mk; zyts8Y+mGm$IHHy9ZDk3wnfy$HtFq<60yM+MM{UX4WO7(^?-r6{IgaVJwHH;Edh(Ra zu7%9mZ%Pa9h2w$Cy31o|+1INyGVQ|Dmq;prIzd4-A>|^-hz~*5J9l0lp9Z@_+LO!p zL;0q^m_IsI-)s`5nP1dz_+kMY9XM(#W*hIWzOfl>HzWDi&Mg!_LjuH&p z>Ywa{X<}I`Kfa4TjC;+#g8u-#7e{7x{{T|iu@&kR{U*0)`;{#^uR1jL`cHeJu=-aH zq(5}O{)B%J!?t;mx5(tu)%w%JB2|x2BJ^?lzY{J)`cKwt>|xQv^gVb~Y@+Bd_10=h zUm`xx6x~Co0P<$3TFuc7s(L9SD_VrvDjXqMu;9=%^#xdcs~Pha2$0IgR9 ze$_YM-thyKqSxT_S`^{#Zv@zL2XmAWENqu@+y)z&ho=KU=fLZ|#1XKmTep9pb#F>k z6!g||_BJ}RT{?MO-y2)fs3TaibFvHfnR<0x*wN5iH%n}`H8J^Y8o^o7h-iB;4g-Ns z=TU`d>UQ}z{K?=4T98rgDa&P)Hn>RliA0%svo_&1K~Z&17e*~tUEq_-XwFp>unUlZ zchNK2jPSeDg}^%!=E3Skbb(=9%;awk;zMQRW@9ed2htC9cuHJ%mTHLtIUqt(GQ&<$ zR9RfSZ_)rd!YT~S4VjLeHWGz{(ol*xKA@KCmCHuHf%YKV8&;%9uek=b9UpQ`mYX$tPN(I{V;UhutP8nj=4hJq#QPjT6B_-iwbSC3*f@DRGY?=% zsqhM^<|2cVsuHCD*4SFcu5;xLW?4WSvcT#ph>#VIQmFf-xwE&Ar&O;00N~dbUPIn( z!62kf7;CT`%>emK!A`_P2AfQxoUAD33^*mhHMCM~P_%^rD5g_l4luf1C2zDifYo`q zZ~$iJ2L?@RQgkU0lM}B^BRo@PTBYR&4~NUQ1zBmkoGu!%&3Fb~Uyy2$y4s0M?@kFAO+9QT88OxKXG>o{+FW0q`7-9ppb=E! zU-WW@FgwdF$l-?V-d|DHWP>mr*04`Ol~JtBKwA?@xGDodm4=C)Y9hT^%KXld>t~!S zmT8xlE{8dUqiKLoq5zaU;6V*#m%Mm6Ijx90h0d`%&ycA@sa0A^vx^N5kpvdilJgEY zW;vGm33*uR#k$O~9W;Zv@?0j}7^$MJm~)CqvnAMeh${h$gR(2YejyNL=0Fy#@Sjws zb9Z@!P124*aT+Q=C_qrWXF@E(J73JyjAe{wZLqy61;ioCJ{$|Fb|&J~@0F{Gc$&p@ zKV70fTz%kV4r++tc7CZ+X`}%av5EAHOfZ*1D{W3jGdbF?_mtPJ_#at#mh!_bGiWpI zf*pzjPI1d{UGtI%H^sdn1Ab9Kj8(X!NLR+{N$56ZiJfONl)=sF47ybhI3|uZnH-A? zp%I}eA;wwE00&1%NmkKq@EBolv2H52RCaUsc-MO0O!3GUVp7&nLR?8=16^%vf?nKl zT9a!#%tl-?XtwJdH&&+P+_0?e1!|6QrpK+evq#yaBErJgZ%AAqF-tB`nQq*C0;sXx z8#*5aS4b$Y>SVZ;^MoGJMyb#qOY~wXgVx?S;;T#aA4P$$0y+orH1iRW2A?(Gar{ST zVs>f!%`m$KlPdyO^|`~HzO*Oab4|U%Vy>2%kJC;R3<#SJe&T6fyy#d(rpqc773>%Z zPm+&9RzFbXGI^g#z2>K7`GtALHurHVfo^2{LUy&7V(0BDcwG|{^oEc$Ig|0VEDO5* zKkR~5{MCQMMozU`JO2 z2D0WALuTx|;BWV4C& zhzr>-w>fR6?#GP^)r2Y=t-kO+*gq(>_WPWkogqP!ZhjCTmNBo`#;|L!QC(-V2zUip zCWBHlR^_j3ym)!V*<%TM%TRWVsjv`EQ=UXJvrsh0d5G!zW>x?-+y%5-1jrJ(#x8jf zyD-7Jpa4*OQnKMvYwC{4Rp|pkOd#wu65Dduie33c>njT5n1EDODqMDkpw~9G?>UXa*kV%sq4^m8ZhmaVrKP?v zKhjcCSB*$*_8?%mfAl7h^|NdF3~E|;Yr#n0sv9zn*e!gJn;yeNl*|ihUFszfUlD-|FEdW*9w$TOx zq1m62&Bm>})AKbdV(#wCw2d{7kDsvR%1u^9>_8{?iImClv84rD+PvH4D5p{?0XOml#^ zrGP37y^`p`7>vSV3{=!X2g#R&r+7BxV7Gt@fX_G;q)h^&L+P2QJH-^$1+KT1%9@8! zine^9zO|hBxF%IAL#vdxkjAd^ZxZVP7J{)9E0iEz0$j1$j8(fsMQ~b`vdjTbp3|I> zfAJ=5zHBw29dNwm!ELJNT8kVbdZPYQ6ylu%);uePjpn7i+w?p`H}5H6IdQzY4cI@C9dL6+8rLXhXvVCT zN7qi0*NC-@7T`+|c~mAFVcCfcvrCwQ*Q^hv7^Tuzr&Yk(!|f01-S6>$5z&>-wGL6% z24k$uxCOJX0?iyuYA;Qiv1N}kY#^_F{u8`w4|H$y;MGZrePyPUfL4mBqZpw;2G}S# zmd{|u4MsCvoV=yW3s{H)e5=kWD}7)HJ+acv%Xilx@y6{LLw7OO5)g1at{Or*Kqv{; zdvobBFpK9O9Dg|F4!_82e|jqI4*}JE^eu!P)ByKbxYl%s(rkcZ2NBa{5&DUxIb-IY zTvuULH_cv+LJ9$@G{A<=;GKYi7`$~|Q{;QfLf3MB+x=zo(RD38=cIS3?g~Fai&OUD zi?BAv*+d|n>ysYvc;o(!g@$sit|T_PtvUyvGsTpD4>g zq>45{i``<$1k}`fNx`P0qrrmMBx8yZGiQD%v>8s9X7FP3Vc@yUSK1$4-fTW_nnq@- zsIvz4%UX{`7`aCUO)9mPHd?u|lrUhF!g|K_)#xZdZrkuka7pIOvtSOaHaW_(T?i|! z2G9va_qk;Xxyu}nsVJz6rsb{WZA+_*mLWCWKKYs#QOt%$UQ%Pzw zkb>iHWy_wVIe&O1{df*j6H}!U<1e&LrI1f{^@EJiA*Xz}d)^QV0O)woqq(Py)8G?J z`L{@G`6ZH)oH^9Eg7S$iNYN$eZ1;0#+>DMFoh_F|DnmTaFTBkeuUt7tT4@_EUo}{e zKt|AWKFoA;7cTVPbPUMT!_7%)jgWsN{$(%SBtyiX;jaCgP+VH zsEJrzEx|Mogy{he%(H1{v6Jrme2%oe@*#f<6xCaal~(*Bt77U$&g(~+;<0{QeP`E) zv3Lq6B(0^Nqo?#emXPYlaMXT-&JL|Sk0Y;Nl~z2ZWyx=+{7;!{TTv3;xqPJ&7D-^U zB@br=G-@hR_-~%LG~x?a=9p!pqy=a#mQuE`gs)NLK?Mzt2LJ~`*AF>)t_6B(KhhgQ zU!&0|j?L9dV@A2eHp)6?vWgXBnpf^_sO`#NRvWa{?G9vh%#9dJnM{)HXmCMReaLR8 zhVcU)v8UfKP&q<-n$JN>eF6b0#1#-lY_m zIO-~+1PH`(?*$^-Mv#VCA1AIU$mYT~xTLo$LfrC%y4u6QVoTRTF^3vZPr^40}k1Ro9)ozEG*QBCdnoVP`pWbgP#eA`Q zaAsgqIxyI_!+uUufM|zN)$cTGS1%QPwu;c)dCa}w8e3y%015(w;Qd;&;5960fNwSB z<`2?Si`n}utY4M~b5n_5zFQF%71{1@Pbp^Q?x-~&k_Cym;JW?toFBm{3W}|&8Ou78 z%JzjSPFMjbRBf)l(XhsWqFIR2olu9~@l$Ew!=Dyg1rGD}^n*)7^RoN=jcGt0ZN9?} z73dt;cq%)Cu7pG^MJW?e_%C6PYBI);mD~=iYm?z{sVtgPW$(WY2M=i-?*9Np&uK4d z(g!hG&GaimQByx-5KHEOTk?$330KUB0DQ6B2GL`oD()XKaV#fXMbfW02v;E3fptm* zW_QUdjpYRQbc2Mi2Pnjx9v2W;2)Ce4Tq}45pL7e{wT&g_rHwr0?HGUFlKgVZYZwkMZ( z`TSmPJ&|@FLymww=lqFi>5M>D4I`|?L^^`j6W40rqzri(MO9)26l)=avC2^yL5y6$ zwbD0Xk-y26)mseOz85m*En5vsi8YS6pd76BC1MTkz6%f>r0aR%&>C5B8_0Qz0k#F{ zd=@Q{!#cywFE9^8j;YO7TMn3&5|ikB5G?`CfGr8k;xUzYk(~tFj|xf) z(%vU)aPo25p~V45NzlKv+-o4^QlZblNXVl(E59kMwPQid>%kPVDRp*z;O>KFO$R7K z;xj;W?zxV-S5@ivJO=tQU&}AA_~Nn1=#ut$6CAH90QEUm8xLCfFZqlW0n5ASnT>mg zqJfvE3;0O-_8EgGFSo*Vm!q1UnO%Khsy0zj6Sb%?;AQ6j07Tm&>E<+y_Ft*x^eoqgjCCiN>g-eb|$cQX;UW};~5#@up5X_mwRsPeAUI8&&K z?y#ercGvm;0K^pY3k*{{vUn;gos>z2)N4<-8H7ZtE-3V;1>KlG_=pl=glKlsk*> zB{G>zsZ!g&R!>>}z88?J)VXjyT68$|loWe4m)#enbz>&nn7Y)A=T>) z7&QxWr81dJrc*5~;B}SZr@|Zm06Hv&pOdmuSC46LIiKOOAxhobBI(o=7t&CRl9qo- zuftWH!-Y3u9-qC;w|zi9{1UQQ8lbKEN-=5ZHuG?|D*R{Kf7%%1MV8lh80l*J1NPxp zbTx?pIIe4bA97=qeUjVGS5r?%19ri?);;4DMR(}g@KdWHc}N}4s1M_b2yzx5zvS=^ zmk)XSL-ezM?S7vmu)q?b24re~sE(O<{^3UHeT-T<7lTHeL?D5~WI%%4IUr($do343wm#q@<*zq@q$%Q7Dv3 zB@(3)xKycL3YG9HjAr!A_J6Mn!GjF9kt*rCnuKi0x?Cp}8B30^w(x4Yz|b}&A%dDh zEi%yQEYFrkD?3VGTgp^rP35xG-t~?eru=M;R&YbVwg@WMNvM^V-Cl5+-T*38F}pvRbx)#a zrX09Lc2+)59x;#4f^n~UQF7U$EmoBpq1n{Dwp=v|iUMoz5w4jW$)p*60ef#_KWWJl z&J?&ai3-O~1b70W6>M$ln@a%aX=+G8aN$wFL@8Xz6sK^&f3l3TTj#m?vHbUY~<;nN;;eB1(xqoOnUUqf-z^Y)hMp9!_dn5N|VZ0Z!?Zn$UM(Ejx5YemNgZzy( zwT|D&uqv(d%pZOUVsn*F%fO*R@@Fwm@5TELv-fwS}X=*57IXoOD`!TF{%FdkThz#?Bj$CD!MhaR$0cH?e z?2}1%1D_}>%z5xBg4GOfO%-OSfjO|ic8=tH=jTdpe9l5(e>`l0pNzDB2}-L^VHr;` z@16w`wh9kc9?R&od-8w?D+wDQkh;Kaf?ho=iQ{R)v6S^Uq1`if|8PwiA17T z^&i^ujJ%t@peD7h?B%SsDwGWnwp`OsyxJD;h%3k(^IQx?5U3VWMm*roYHZ@-7OVVI zt`7M@JMSzbv%eYxot{%Hs&lxXjNphPPgJLYIYG`~iw97_nl-RO(t^GXrW_m;>G+q_ zn6;4@c_h#u_NHyNhHrm(V=s_J>=~ew5!6+bp_!{h(aJO^RpJYhdd+;;hVXeD)ugK? z7?@bSPEZsrnjqyF(t4BZk2(a_YbxEW3?gwl*S8`Cw)DNE6s36Duk@vS9^ zYpWcA>m7m&qt-;_>_v^8tTWs3n;CUlM8+Bg=4J|Ev6VQuRdZmz3E<$8KxwF@G;O=uF-ib$NWH1L`|3rIO;{dze1Yw*qMoU4Ymp5oq4?x_E4c ziub_%(zl&@&QufDJ?>&lYMur$8f{Q%=vJ zQ#Is!{BEZKYulVsk%I5+?=?{7$K|07v|fKpX?PcGucW+mi^r#kumX{tMyD>5ShZxK zhF5gU&b)|Xti1lPyMKVOCYn4t(KRdBd7Cp-lKD73Ql&DPX=!P17ilReDJYamB}(Df z0Spv?KkYb+X;&|^A?gmqKCWX#-OBfvighroT8ixcz15QTg-)pRi^<;HvJOebEbYjpvQtTGZmd8p=Q_e+n>92FR4y(isg|NTT3MQ#-wM~dkibh8z&r78Xs(RziMe{r z_h;f(A+|Zel0eG3)5>T#@VcXu(?qt2=&w;W4Q~Ubt=Fs>r%v$j?UjMkis4FKMunz$ z(Xv{(psiMg8;BVETH;);CrV5Vd8@{QZTH?QlPf1IOnZzz-XsND4QFOU&#XLta0T3j zlbpyMxo={2HtvDjF##AtPJ@ZMjV z=_+t%Ax8~j8(Q8yK5J|F^prmlh@Zhcp(}C|ulmHGQ_h0+W4|wbn2`_BLMXaS5Wu8& zo7?uUH2vU=c7gef7wF#t)QfkjiiiBpEw!Uw&-?J9jehoPK5xsD0&RiX`1dLTx_Y54 z{qySr#kD&AQD|~x%zD*&L9^K%hv&gj8}lHqwEeCQ8Vw*fUcPHT9fga+r&TteQcy{H zX<&o_vD4q_JqxOI`}hf+0qr*I_P_Iwl>LOqviSih7K#E{rUsMQ{{Rsc8_YwOA=)S> zGkwvV&(DMj{v?PGRrQoZ~-9}U|bN{kv0)&9J~_ZOHpu$7s0XOwpwJCdYh zO1HSNn7OAYcV?jWCV>L1>1-0ew>NAe)+Bw1I-=De+(niHqAO>og8f+3GPEyP1r73v zju5N%Z{z0Z9D8D}6Nbhk8rMQSRtKj94%sx`C)`*@x4wv0?(0%ER@$q$=%~<9#poAP z90k=T^FWN{v1y~MJVCdC?)aHfS0?bWWfIoW4Pbo;+vy+inD(b<9&_e`m>kVtNlZjy z47sLPRt1d}rM9QuCbavZr_B3$BBRq-?k2hK8SCrJpMDi?UqxS-WoRSJ;ZZigO0obb z!7v#Pb4Sz418BmG^Mh5>h*W1i=HYl`o0iWU%@wm-L3(e>D{%2AuBK-B2J>M?vlb7q zxm9qd7rG|zHsarXSa=$MFnrRcWPd+#Dt;;$qxc(<1_rxH6%@TwMgI9tum|3sY5OY> z_MUgc_TV+;%hi4#Xv{4Z>yzm<%CC{r+vzcG`q%y{00wVPhunKOqQ*b!VT6MHQgH<- zJ7A5Ue7G%Lp!L>20~MJ}6lHjtU^C2tD&=_`eVI&Ps+vE1{%0iqy8B9HGSi&i(SBoY zO?%Q_cF}5W7=t1^o#xSnAMPRTqD+-^XUz<@jz^m> zrn}#B@}%NrqGbur7@0ea&HlrHwVa+y_YMj@Z{^I_Vh2Uv3`v3twN-$8WcaQ>%WTwfv8ZQ3rq zdQ#`92@%eK_~wYIL)?o#_)ev_eC<^NsuFw!Ge3HR6>3%4_JJJNip>W=jwo`7tBA-ZnoaI1W z@ZOyu94BM%4e!|LHCOCxL;c)eFfStp!^$R!5(*nsRkvnTebLRUOM&nOK612bzGfe^ zv|M2Be!K~-ns2!NCuQfRIBfB&ls82-h@z#VGxYG~W<&upmDog0ENR@DJCP}wD$ABN z5@qU*FfapWxn0U@Q1}suY7aS-)uE0pmRVx`X_bo5J)EmqLSSl3Ucx$j+rQ`wV6Tlt zq^zu@q@<*zrzuWSoTWKRa+H*ml$4Z|l$4Z|l$4Z|l$4Z|iyx4elhKFm=(R6CNphe> z?Ig=}XPx;>Izpn)xKL{ldK3`eJ6( zBJTAL&)0>5oRHcK9#uwbQCY3TU20cp?-g&XeWlrj=^E)d$`plxl`nK*lsC&uhLZZ! z2X(S`n0_eLY`v?&<-el}txU^4j6|4qbMT#EX&MX%5u-W@VWS3sQSl2i=9dZk$_*-u zpbb_E1DC-f>hm6cM|sk?L_3{+h!8A0NO-y&pwCO=MAzP)(EtFBK;z-R+{ysw1Lt4B*GWmeyQyOm$Y{K*6@Cq z=uIsic*7KqpX|IqFF*1Ns)?y?mtFvh-#NlNYGQGH1Hqj_zq8T-`v~^c4FrH*Pb4O9$HnLFknq@)fO%Oai<!RvpseZ(V=7DS|FObI=jVzR@M@NJB-BDHzP?{wc6r+D(M}DhhA}8YEsi) zQil=Lr(IDj)i0}YkFjvv{axS;r(^9doe+M+A3yKT3y(8DSj~Z&@Dz5a5rHC|3X5lX5Tw*JuonHi^U z$GmGBz0Nc%ot@*ovOrNpLN3zhOR9YdnstuFw5l>HbYm12NW(B*`vDdgGf9m4#Whwn z+y-N>G&5>t)pB?4JJsSl2^-x8dbA{h-)>A4n^J z1?L*P$QC&sgZ++<%j>{pTV$TUUa)_)g}J4vr+|R4jmB4tq%{4!MMlBe#=kghCW5s&Byn6+JE z9Rrk6kCDn~l$0G?tQl+$k6BgLMjiBoa31xPg?kiFblMdLkT3zK$p~ok6uL`Q&hP+> zUfm-?4(?Q&&z^}&Cz?H|H@py_xoJs&qp=b@&_@8uqXu9!w_*?t4}p$#dqqb#i0Zcb zo8qeXs#Fu23oq>o_jQWLS);lN2Q%p^-&9;E-tDjg=f1G@Bz|yH-VXalaHMIOQpcV# zE^uKZi~+Y%b*lG`*nHvD)^vnXYB@o6fd^^lLdb>W4)a#KPk9_0qe#8wDD-uBUlY)U zDEUKN$6PYA4*nFIh2<)V_t4L4jBG9M`U&!`+`~bR_rwUkSow%Hq1Ly0w;ai zcHg93Tm8~$UMs7+>wf?rty>HSnBUnh8{4X2JA9~)kI9?3o3F-ofu5Dzd3SosTpd{j ztZh}b_%)C+xt;4tP-)IzU~2S$Zx)a62X&ovlD`QisDI-sSSF5+el^3gitvn^bS6oo z4t;n5R&P2IR1?>)#Op*p`3=7&zer1^=f2YO2j=>+|Jd8_k zM*R}NCDeD`D(d(`v=y3Q?5U#%Ory2!pR|U>G*7*nP<71E;mK5U;k`Gihn#sKt-Z7J zDUx$np)@OT0sW15$a!7}!6*|trM!bv#6=*&67q9|_$aXLW&Pt2WAjs=&j-;2 z-GcL!s2t_y6cMLsq8lmof;P(TjH$S3!L!gGprhq63rY9CFoCuy$8-?;y13bBEsL=@ z3!(zZeI+v$isd!wN~qC_n6`aWKnd1o+Z}NP4$Y0(3h7mVQm%8EoSz?gx3pkdCHC=T zZtv5JAqMLlhPD-gC|j^U>|pSZaVa;M?KAnBCH%8<4sJ*1a2*epa}YuP)GLfMyd*6^ z3C6vaM-G4n4pTk#%34P25Mk>);sLBp!34Ig3_?ydE|ADU@4?ED(a(dZM^_F(A2?!E zFPono%a_9C%O#S|a>-=md^=Rp{Rx-p5Qv+98FzMyH(ep5Dl^p`n86Pi->Lch#FMyl zPb-zJz1dFlc-~RVW4-qI3&paSk0(Ewo}rZf$4R7%N5*^1$8~MfyP@X{7W)q(k9aQU zty($-ce#bzS9mK|Xv<^Iux;Tk*3b!@ZztYSFcfHaM~z<=bNRav0b!edgv}$?)>W6x$(tupY8tODk9ld*tNf;IZdTv4ch;Y|1xqc{9HPa4233r~Z&m0T#14xEA=l>^2ph-e53**G z=(aA_VBj>_H2k-V(sR@l0h$7%S9lu3h?7;)7_+t3ULmZ|*?7dT1wLp2)^}3YBB_qE zp9Bt<&L>GLYCi=&fcH*Nz!8z8zJCv=j~5zw4*Er0CUF9T5NPGR0FfT4cU6A8J}!>V z$=9sA!QOF-L|*lfg5ji;h)%J62dwp~cuhAk_nl7qJ}ejZ2sT+X7~i=TGWiw&9p0u0 zCpid=N+F`}$}_AdI8;^SnW-29qI{e98_h51qRDgmY6(tB+W-e&Bho8kWO5+P z*bliITJjqJu^Yy3k z2n8N;`F;?w_LPEi45qySyA|2nJ$Ku~dP|WhdO{07J6H&d%-tO8;;FZo>h_hG9gHp= z9UTrPu-}Ch9isf6cW}qXLX)tb?^22NJ8z^O$FQ%g=f7LW_q0JV08Krgf( zoT2)JyL0AY@f>OuFfJIKH|B??3?*1O6L@nFZ$>57c8jFhWok-|LA=T?;Hdg4p71QW z>ltLGkh)VnMEDebrrG)xj}r~eJ*K0gQ)*?l;L6C<)R%h*&gQKhV-Dep&D#Ew?71D{ zzU*FNqZy{WHDRGeMVHQ2a&aEB0Fg9P{B5+Jy{ySoLqBtYZt?(XjH z?v1-!rg^{bpEa}A+)UL4+`@Uzsj6MOcG(Cx;O5v&^c~5tKds?wVNS1_>$xO2ZY8QE zavrVIn zKnr5$l|Zsl+e6RO4TUfFdmxlHGs|>!VlLc9@qWGJa0{`}(-El7G@gTNz0{-42whNn z2L?RFqp<o0-HL?Ho|R^Y}{7V(VWoQACs6mGJ^+x&AhDruyeJ%jVLd_ zY=9Ws@s$#4H7x``Kccfw7mvq(i~YWR&HR=hDU9Aqh<|zk2QT_?nEc(d071o2Ky=)?yPQ8QZO-eCF+F!oSYo|4 za(L15H49wMe@(s@Vx`_UNqR`>^6zJz#2#Y=9!)S zh8*Ho+$Ft291cyWrdN%>?Sdx!E9MF5V&ZGdWTE+s{5hY`6_}SGz&c-Y-6_LLZ(KsT zh2v^Ebu(IVw9*R}e4i;0Le=<6jXfPc)51Q;_TWK zKFT`$WfU-8)#>5Rx6&zlQZVumRzyGJ8m%8;*y{O%d5E*?Zi6n9bQ-e>uhBoIMI&DxWraPd$s z6t8{DM0os7hc&xlf49~FV>LXZuH*TF14}M5J7F9U7s7@k(uL?1ai&v6F9l}Jnn3(!;tk!SNFi~Ku*uYUQcbSYV<_d2R~)e zftLWOvSg{9hh;K1BnP;rc6n#APj9YQYdsZuH~ncaNU?etiJ&vJa;}$7E`I!!)ItKS zq|?GfqruW^lo2lRMOZP^fK=+jJ0u)rbiy%ltoBsID%weBw9x)pTFn6AL43R(w%p)n zy()tHH2sPe&n8!PvdnPdn-3^1v+@~NWY{y%&gn$!1}w`D*Z-fFnJYE zWc;(-^4ex@T1Fg#IK(fP>1nsmQ>%tn31Qjz|pQkwf2sx>9 ze@YIYSs?>G^3EtT@G{mAYtk23Lps~g3oE70lU%R(~yF{pbg)E$CL}8 zI*gk;hpijcaJz@psDhCot4e6YSq?gY04{vM^!Kl+i&bE^JE!UeNkCh65dq0}GK^I0 z1=K*r$E_BucRO5t9o%ujQ?obl9-I8k2YYitQ1?FoxuDrW<`t`E4p@lNk?=Q~Q;&?2 zuK{wc(aVALW?`OhGNzrN`^yo@7;Do+S4v?pBeNf%Pba}2u{^Uz41$^8Q_ua=pn+hn z;lK>n0VT&YX{md5T-N-xAPe4jqZ{awNxMdaAyL{13|WC?Pig7t={cAh)6n0hk8*0b zwfxxyIw8n3NOtLeMV2{qeZw@x&d$r7&g#RcbuuzPv?UZ02wx!>9^da0uFHyFm}X?0 z0P7QiwF#L#9yO|9O2MP(a^72bF|wO(z1>{JRxpkr49k(D5kig;H9Oim=kLf<3{)>~ z1-^q){>YW!Z4F|3*1Zf1hrc$|X*up>Z{Sp|zWNyMrKFqOM2dRb*CxE+Wl{pL#5yER zI=&kvoe6%LX|Eh1n)IBe6;kGGExypxMN)a0>(Vev5X9`5vZ`j*X^FYCUD9Bz{A`l) z^MFvGYRQhpsG!~Mpl7zmYm6%{9gT3BeZ6cFDsOXp1Y3(r#x=B!QfGhg8{vVxHXMAS zGHQiAyGhBKIP0vf<2=DNYTQ47CV4##3QWJMRuZLyeb;H%idI_z9na0KB--cZ3@*26 zI^m6!*YL_HzuiN~IQiPO&hJ0Y|~@EJ>eqlU{?BQqm|zu5ZpLe0c|;+MJuEj|(g00L?&*Aua` zIO{LY5uL7-dOtYG*ZW=EYu&b8{?bazG>Tpz@D#qJ1jE@`+zSmnL;JBh4x4d<8}?Ef z8mqi!)@MK>qYw^6QRr6HGegwut3Mc2%)7gL8|*7@A) z{ZnSrFRZ^orEJLQmvn=r`W!XD3hFZs4dU*mI_w*APWC6v$r(CIqcvP~X!!m>uHna| zUDtt6=pB3ggX&0q?TM6H5^z7AgacsFXjzgAXf`WJ>sD+x&u#PJR#2f2@p-%GQ~X!E zbB+jX>jXU}Om^%hkWf0+Rdl4}n(XK-jJ@oOtmfv&pX%|=Z$wq5xF}yP=%vpz$B(ue zG4cx0z7fkf8X_37lc!sXIvP!nU|`o;%m#W55iL!jHne3S5&iN1bOaY7yN<^=$rZ9G zhDC4_QNb`n9ao%>oXNy-Wf>CtIxsOk*m``wl|ZOQ`RM?)-CJW3=0*)Yl#qGonbzoT zi`b_~s^SSJV_!BbCH$J7Y{v();P2gm#o~(v?d$dPu}bBIiU~z^i*FNAkSTvt5l)@- zUyo#FXDt|?EX~%&ok%rrpG%ovIeqW2!^VZ+^V85J*#PU4$jEq%g8jAPFt}aqyFkdE zU|33(s`AZ~ckWXYOg&)R%NCVZ)e3g^=F*cam5gm=6c@tQj@?`f%Xp^_M+dsepT0N@ zu1I@^#A-ZMNV9*C8c6F1_j!cEqx4Z8J}J7}qFy4NeT-vDMA4P-mAA3FBaS9FLPI{T zA%MoYUCLhLHT11m3Yn2_XCNeT-#p7A2i+D3J=HO{cRG;-fpdkWp=J}N;^mZHxI<;` zC0>SG#}wxpzmn_7k#2~nHINBiN|}UtTOd+8L$0no)`=NYnPU0nb5}^Om#uv`Q=l@j z!!q{hv9B|ZCG1eoaMA4Ot4OJK{23!nA7Z0Wh!f+n5{BITh|Jq}#yLyw#J$^)4M~q| zxSt-ih>Z(DBIHrE`XtzSwd(CNmNqj7gpk@(@N+W)^Uf(y3r_8pJ1XsQGPo@e3uiY3 zZD7vp4R#r~?hlzd5}RIiGvU!aX_;R6L7IA~5JW6-GrZF+e#qss8WU3eQyq%eNBT_I>YR$(CTop>bMs!1a2M_?@|$`IK2t> z-qL3CH~X5+xaA$egom0AG;pbJVe7bT-S`Xxf7U}WayiL^d0?UwrAnkMBuUKKflRIR z)!g-gD;~Ed%!4q(*bmh`%*5VKMvE$qK9XJ)=4!$(rL`K0RN<$@5=vG|M{{1wL0b-`LubB>R zI74z_y@v-&B#E&u^)paklr0q|)9$-U*#^BFq2C4uRKJ~U=)S=@dZFo%PP*Mws9j`t zD$0hon4(N%o?|+;6YP^vl$oRDy*2O(k$r0{p0LIbyPK_>((IVS(eEPVwV}$fY>um= zU+5*A`;PiZVa7YE=OBTNKVaJgyW?XNX3C<@BkYO8w}5WZw^?RfgO{$I-0Ds6XN()V zY#A~DHtnmdX_yV=1=loZK&%g-F~P!Lv`Df)`za6E3>3eaD^h zf8P!1nO|<+E0{|?b~+Pq=k>900@(S_D_)`IJ_ zANFf$!F0lWu$>g<{r>v;VEuOB(vcm30UL6aJa#MtZBoa9==HmzCfL*%<=jjezxIMw zsGNe-e>$FAzPzB>d~zdvZ>yCotzUz@;* zNBrFYvTg|>97N|fP7Pk$4TA5vn+Up1*t!Tp&AieN+N;GjQ7}M(QVXii>i`<};tz?O zS0;tW5yVFFVn^pYaHM*zKJ&INA3G4jT`1o72A*p|V231V{JdpQwD%a&f#fi(gY-n?ocQ|flnSZzB zD=>u1NA8tl9+;S%r@ta@^vk*WdYTbD1AHRlA-E-jua4m8MU%na9{a)k2)7#jK{D|b z^g}VBq5=~I#41CgxhmTrRPUb)aP~RxRSdD|jpzohs2UK-@bs+~RDL!$sSX_f1TTO{ z`R2wJL0elcBP7%fY?wsM7$5Ra$P(hwqXZrM3CXyR^W_djmV#6xO{47Qj%dZQAIy(r zbrUb1DShuU?-eB!#<9ax``$_R)4@{#=|?A}jofVHbX%;^I-`tV0OqS%w|wgH|P z$>Jn-0+|A@h3ng=Ufi2HTwAB_r@3m^qv4jm=1dtSC{LIr`s>N$-LvhlnlON)2?NXO z%dfiLa`ZD_5;Ds2UE9S7xKbbR8f(QngV$=geHZDub6V%44>i&+006+0U}ZHsQsREP z>s2$uQIg7B_v)K2#FD@jZD9=gA~LXh>l|)~*z8ZbMMOLyeTw9WRLS{c*oCc4PNR5r zY8RfPp%rZ2PdG0_0yWMaq3qe=hakxm>akp2akhu>ls0nPE7P!2$Q(NIT$LF1+Gl!0 zRHP{rT^*O7idz9*1(h)S3-yD+2Zz7%M?8)Crn$>0p%od;DINsvlWjevjpQs{hJCho zPwd<#zc{COn8Hlx@^HUSbR>L*M`rcv!#|h!q>O$(UZ$V7plYdHZeMA8otpzpDo-Fe zr*NJ`Vh2S_SpA|JFHp!Ve)qDDXa(;CE{3OtZZuu$2&t@-+gJ3EGrb^v8gBKehFE)= zoT^FLRB2UmY0+K)x+`_r+{cfJXm2j9bw9aKiLbr}WyaO~2LV^2{ck3BllTvSJZi0R z2p+Gp5YCaFIjWOI)KZMETVH?5yx&avj#~UAd;~`c_p6+l6Cp%YF7tFz1xs03;o|E< zy7g2BWdE{Bn%kzO@8!ho6z4@L{-NOuhRpbcILuYk8esN?*wSPSprpaUkDy*to7>mA z4AYwQ7PK|s!EtHJ-^3$1;GE&fgtDCOyfdWvgXwNx1ebEip_1U*il~}6#6!|0BtmCA9=@UH7vIV&Dbr#a#iuW0w&yzNdM7n}GYG zaRZw;_~CNS)+}R0E5S`vy^HVHD5FlSRA}9I{BGDO%yGla{KQ1y|I@ZF(r-H4CZ0BV zLEay~s;Z@lsFa)s98X{WqBT_SmNcliX}cUOq1(45|3Y46-n&47Cfruio#BE}B(RjY zVa-M;v;YyFPLxe>93pXqF%4)o_lPsyx-Jc@CB>xdKvv=iN$El)&?g);gMmGOQOeNc zZF76w6`Q~5`UF@{*iKhy+<;joKb3W?giQ}d3{KegrR%?vp^cpudZ#e|T9&1#Iej1a zsjg0j>f`Q7%P+5fJdE#}Z<^i1A=)4*S`@3Ea35lvuYu z?Juv>FGAfmkhzcn1(9Ydc@^~Kic#a0y5880DoeF5^1(TR4HXO?1x!jQCp!jxBj3Cp z8P40AA~=QMoHVjRp0MZ2N)#-QA^4ukFPhev$ zuoIzuV}HuV!Xf#)6o12hzimTDUI~L+yH)WgE#Lhiai8`*kJ#7stl1uh!cDR&WW>Al>Kz$ z2Dd3!;N`kN(=|n%mHvhe@9e;)z~u>p=D2<(w&k_N_@itX>7aUS%K%~LUnUggMmW@~COf39KT_!Gxk5H-=hCKTCYY9&mx?BJrt zy+ZuZ`NF_jCKGChtqn>f{d(x`!jhTi(}X!ayp&lRET)ae_)}K7U>wC{Ew_N5{HC=l z7``E5o_lZ}6B@#qtRSB#KW&M;6qhJ^f6v?{Sz80j{pU0(MG&&0M}L)gg35Fs{6IH= zO-Il*v_8%@C!Z#DJXc-4eZ+ERxAfs zSg*^$RQT_brF310M6kam92zSUdsSeE_-mO^^Hb>SIKO3Z#OW+2V6~R5;ngY1 zm+K)DdqWfEClVB(lolO2kqvngtSS<<_ogMw8HT)!WZTt~Tsjh!2^F_AmG`Xn(Oi)% z8W~N6d(!Jsw>Cyzg&J2UGUGa~SqWFtV>1`Uqi6%P44VKC64&i+D>>iA)z(2TwNHT= zctQ4y^y(Pp8H#hvx#Mb1+&pDmIsD1(3I8qo6Iz;j@=D8kvM~~1Mo~W8Ha8&LVXkWB zAy#8SfBYzyQ0gGrOo_CL1CRY#Vx|c(XF)zLf-~9*H);6P482=((BfIUBCn$gTR6L>Qq-BBX&&}YL|UQx+V@9HLh zl*8+B8^zdC$vgtIFpt93)Eb>QxOo4fH9LY5eIfClL&jGq`({GaJ2mJZIl(6rFyHCE zagYSVe?fx#xfzS!BpSfCM;y2MV(lx;>~@9oeyV@miUt27A#n-wA6?hNm*kybWaNW& z*_lvGW;-y4`*%UV}YQH{K(dSmHZa9bW-tDD`fhn+jWb0SgqQ%(98t#bajzrw&9uluJP%kZ&+e$I_Qm*&cK z9g`wHA_(jl<+AzMBXP&f0<&3R=7xPO@#5c;wlxPU=^)WOf^;MZXCo1mqWu?>{sB5L z{>uCV)ZRuL{*{$2nZ-*AT(zP1Bvus3qKRnhEIZccKL`S09}w$5(We%d+C$|kRs43T ztYd>RF&*EHo59T*t9Q9gEr^2qf@*@$&tW`sc-Aw>6xf9hHy6)P)GC)P9JoiJz9;)v zJ0D}oavO0`)nAmV8VZD_XX2sxnq2sN9U1Y6kl3hZ%3<=_-YsEOnVc(6khZHGkX(5F zj`Kf5Q?&bF|EL7mz%k)}ZMv_Ee(mKEhTT^MYJsmQY_>9>e@QDPI;6q-TY@5Q_Ox@W zuObpxS-rorUSD^LwbfguDBWY+bd_e0Wk@*RyS!pa?%uO->VdRZQQsN3nPe@3JkKd;OJGy27zU09v@CQ$k z+|i*hbO)-{II_hc{|napC$&p4$MF>MdURROU{{POZfP5v@YbL@oz!_`A$@B5Zi1|s zS^B-aqejAfH6U@yX^OO~^Pt`qgfD27cE>i*@$IkAsCO$KW61C0KNrO;EItm3Nh(ud z6t?xirZ$F`;9AzW+c6pGtLe#%pf@14JM=&`Nk)Tyo|X+Qmt`Ba?}7gD z;05P91im^gMSg55SVuDuNNbX){1~|h?OVV~ha4js&Vo|7$-+z)q7ur*`SGGw0)0|2i5f1yR(}!mywL zN-IF4L{cQWqTohSSTD>yGJ7KSa>OG+Sr{6`o~k|N5xL|Jc!*7Z!BRmTb3yCk7|y~> z#KJFa%RLmwkV@)Rc2nO8ELGj)V7=<*R>gGD&ZQ%(iLrRJof( z=cb?+>Tih-1u|gmI}mCNj6QRStZi#g1eHI$!Bc3IZl7P0d8?n6Kh zXarf_)hL<$Exa)x&T=+unv&_g-qnr()W-tMMJExjE6r{oveH>+;W7q&$rUFaah&&~ z$EJ8TynHwW)Li1zjB7LTX>oBiOITA)0l6<-I|Sl{H` z2PX&I(t?3>p{;nLlUs^D`i}`GN^}c4-;Sp|M)ye^ko=j0EgDIxu<&yWA%*P{8Yf>f zYenhfmVl;})3@(<((J^c=w9(zEZLYXGV&o74GqcN%+UU9N8;7PfFC+>joDMlC39a8 z?T-jmSY4~1VCzqq@Pu1tEqZ8<@q2&9<#5$rX5wh)UU|pI|;2 zwDA3=EC3}}8tfaVhTYFTvZMHMlYTaDn&PgGdM;eBBDjf0n#QOSsa8J0Y*`ZbTEF@o ze>^xq@(=KZkE3lqVB!>rD<_G{&Jb>Mv?1T|518~6gFI2oAsh8TJIGHJb`~LHVSjRFv$@cp2g)iHOzaMAYSRuKlLDV)H113n|5#3}HX|Q(@+XX{@)MI) zQ!z#yCgk_~FC_p#$;yA;D1twQL_d+eVFjt?VYH(v#X%SZo1lytDob5ytLi3II8quz zP@;U{k%b9c%@K~3D%hLzqrUSFDb9WB?Hr~Vj#_pzyhZ<&+p{ocN8CS0zIL(*sso%6 z?P%3|^jFsL3D?>BaivlEP(Kuo9tNmx9o}v&=4z*>=Qk76D)1XsQkZ!4AK6}9d{wIv zLetusxTQt@;)=l?UR=DzQ7WW4Kt06IJc0+YG3unZUGnikx3yhtmz5RLO5CL2tiZ`% z#VEVgO+f9X1|IJ|qicS4kXwueFsbIf-LNi@-2Cv*Q2p6grJT)9prq%DPk{9*C9GO9 zx==AI>4w9pfe`V#O*S_rLx$KAM%*?HSwoI(m~E~CyY(_JuzoB78j&Vd+qdkV#`t7l zrj5VNcX^f9{b9SU?ISV$utsiM$BqA&$Ec6w2@T0K!nu&++Cugqtt*@TW$f8QX+sl& zV)L&6GIh~wLl>!XI2;U43IuZsoe%g~D*jNt{joBw{QIJg5$HWm{qV7Bv#k@&4qVFb zE~u)-yoPPwWcyJp&Hr)R-_5t2A<@xvF%@yTcts()|B~DPCTR84`kCcc>S9`RbKlk^ z?abEcJduEz;ivU_(rCZ(W^3zJL^-b ztO>`y!o`7*F{+*Bd9c#yDlf&T!WkoBPPffWZjV?zgS~aA^F&KeWvgPY|7bZJ(E$Q1 z=2Jx5odz z_dwpl9}#Hgor_o)WV%hdVm43i6;#WDT!Mf zk&H6U*_KFcl=;!!&zS!J3hLwWZ57w?@%oAuH}i$uYiS@S|5A5)V_DhG19{|eQCg(^(EcJ(nKfDpQ`N< zvrw3xXQt1)AFL+dtc;-GVnZuiMA@R~34bK(7GpUsWP>w5GGb5yh@^i-SG~86I`X1w zT2CRXi6c&B-5gXWRlzZuHuw$|zMvBk5M}gpguZKfEWbe3m0r=-Bz$519ogvVbn%+B z1wvbPS_``3o<0=2XBJA%x_Nx_UFuuWA{sZhgRogSbWFcNU+v(PD@dV` z?T@Yd2VmlJ(GoGXp7Pzp81ALeO|m-kqjBT+&Ybc!1Vah0o+FO&j_=uCG$q%PoEofb z%JxOVv^3bFOg!|x=FmQTyUyHo7XU=|cc_d2qO*HlyoNB@d{NG4@YJWZvaQL%^^e+z zBuFQ`l$|qRngmU*Ks{=5Ixfk#Ip^Z#7bKD}~b8(YSE=ikfg zn3&+VgIrPsCDF+k%O8MkE18aJ1#IULtqNOL_DXL|ip{aD+mPJP&_=aDrjqn#={Y;k zUTiieu;8C70lo=@{XYP-O<*jjf~;_Nu^DbUR>1AkS3)#B0fMQDskT;N9Uv>~36A+E z{3p!6;l!FG+ANHhz3VY9#xKu)OkO(==>s8`SX!w%>4idj^Q18S%OQ-sd}GwZ{8`Z@ zRl&V_ZhFxlN$o5Dbxm46W@lL{d&l%6v3wv(JKf?OL5id8Vb8A<&3o_`(rEjh16Bvl zg`ek}2SMgn_4DFNG1@-gKs{*pGj^9&^nC4*F2Jq=ZjP@x*?0BgWuX&jVhmoaLG3U) z;|C1B4r=U%$2&u>i}6`7L}}-~v%o$U`;%c1hBV88qnHF+ABb&-?CFxqpo|@S^W)1W zX)Aoo1OpegAoP7B9=#WPYm=1&el?KO#sjfy`lq8)OLgrh>n69p`(@dB`^~_JOK98s z2>WBNQ_B=z&WsoyYq^)o47bTwoy+GB`O*_BGPM`bUsHs9`K0V$-lQ{Si)@z_?r`_6 zyP)D#qTS@JKl8n;^WOe3eF$XuffSP6ZPMU~E96lZ^i6^A5yvlH*hK1&o$zXYDP995xt^OSC%S( zIRJIfvk9=k&Gp{jZl?-dhmB&U#)QA-wz85;8~w2o(l|&U&hCd4_$z)rBna7J@w|*r zODIT0hS!+A9+*XG4h;?f63jhO8?dk#!3cMWpUrQs;8G~rZ~8)( zz2uDnDK6ymqXAG~7t8h7au@w8I76kXDo{IV7Xmpv+BC6lJ7MEaCs&xvVhZgjxi^0q z$S;?`a>A&`U2Z-+&10mKujokJ`~#qa5VDT!EAWY(IDT{44JvxbQVt=ON><^E&QRM@ zw@p2*lMo{`%}j%!d6Mv0pte;a@Aa-A_X=}Bll?7YTO1rLRkxD<-!ei zv6rp2h+CCi2YZ|Ci#A7;x6y`aVhBVL$O`FL@>9Uv3y9C?J*s$q^NL;2_E9_)6zpjq zA-Kd^78g`C$kw!s?JG`_1K(|2n0nRG@ZVA)lv=ibvUHwz)Lja$hxLr!9rW3Iq&6{N zpuW6ih76oQm&7jlbY`v9fR+AYSO05gff(PZ#-Mc^XKTx9d)afPoV46s0^k+{ouum) zKljAzeHCfBNJxkBE*5pk#1XVx>_Tn)LSg;Aq>m5xa*tbS&NDUtI8$f2RT1*fc9TjM zu8lMz04*KUnl^b#QKOiFjCO^Q8#P=AvH`*Co89Q{pE}Z??{O*sJTdW>W$zN01(@rm zGe<0i#)%ep7ke=Ve&56FM4u(hP|u`C1QQ;yipUMWGKq?FVv4mf8yJ_;BSsxlos{`b z0mL2E$y=D5r6dCHUz9AdBg8$ceU9A?YcJlW8cja0vh|z-DPMXuZoJnWSTg;g0V(q>FTLtYA{z?5y6z$YG`o!J8jsZsUNn^H;b z2HOoL{Lk35N0|?xfdPcFH@d)&%BmT@#_%!UB&3?E-_O+HzOkC_JAvZbQxcX8b++pi~CKENb8w zVL{(ip5oi^Zb{^3Unl^lKU@(ZXj*N2FnGI=4afSi4Y#ty~b4A=v=?*pNJsLKgYUFG2GW2X3Z(vECZv@V#^k1-q@1drbp+YDBh<76}J*F&$o! zqBEa8?%VG$9n+Ee_rBr3y2lIfyo5%utsk-|Hg?4G7`YpzEpaOkVpm=S4wGIEeG{Pm z+?G856~$GMcuVcoTYK+nk<=p%a0N$*+!t+9 zqai=)aYRc(LWwiaD{72W6K_ua_hkCMBvhe4;c>X(UMhy5OORrJ=eNZ=ww|mIOcsj{=@snp;|c@o!Q_tqRkDmu*q#?zn|VN7#*Dqg0lw zEo-N-66Xm!32qsptZ|H2^Fzecso>amvG2K!TT!cf^$?@3Kk9x$oFlUvBEWDZ^|5nQ*BFjQ796{TL13A6NeAnry`>AbufU0H zN}ZAdPq>g#mO40I5mPq3h@Ku2;lUGS9&7f@T&V-QUnfWaNGdYWd>eR04E+RcLUh{O zhv<~L_8N27n?3}F)QooXmwoj&RF4`hq)LKoJJl^ z=U*rm9P2UWcfmk~@&p4!^E5@v%qq}jRZD|C4*M4o#hINN7{27gK0TH0sy!wuu6yRQ zH~+aOK4o!I0jQDBLJ3TEehhv3gfR2LxG*O`wpL`)ACsDqlm4(nzoD+YRGq~_6O z50`oID;EGV!53-~NXtwC0^4Wh+alX%qR#}C6E0P#lWP7@g@uAUBXuNyV)O_$@PcMk zgoYM*F6RQiJRKzZST*z8Mav^Ws6ZsDLo61&#H9Lpk2TSr8q%dJ0CmKMlt|Iy6iB6T zv424>WZ~g1@LFy^d59m0{-$3Ya=r)CsdNs zR&p{zs4Q;XNmhpM<~D;^L1Nq|7Jph@3b6?VZvv)^1}UAMV`oV=2vu>orK}f%M({kbm6h2v8Giq?z`P* z+^~y0fzViXEM#n(HU`MLh3nEAoXLl7=G4*-C|0k}PfD2alxBu-5gNxP=14poC zFhmJ%7XBZPA4!-|lMI3rXijqJcm9FXr&cgLf`}8aKrgm*<%2HC(ecLsp96F*D58s+ z7N^a1Hi6@CK0NySYV(w;vPtHONaC-yHXTbni4{ynJZdGj@;dHs=_X#&)Z*`jlLX_W zQ!ek4n*4T*lkrnwKazb9D2^Sy+3k4LIh+J8PqjN7pbMqSw_|EIJ4`1e6Rt1znAZ}a z1gl(%MaD(FI_(msG_}?uaV1;wBgO=7DK1wv(FuED2whuBUN7~4uibQS-AaoYRg}oH zw-kZm;2r6(f%G`#O+UBdg*jKb<=oFc4^IbpedcsZHHBV*XzzcD3TP-9j>yki?}T^^~ zCWQMs(paUqrrUOS9GsW_Ms}G#qi)Sc_We6WA<6Qe0<^QbP0wyuRg;G36e(i2J%A#GY780wua;wfBoT)87Frcvv<2glG;yQg{iLYEr{>2p>KxYESmz~ z5O}uu4}`a+b8Tx2=%3034>kV*sH_;x&j!l^Wfc6d^1o}0j1!91ReD0gL>-oAt9uXH z?l?tn`1|BmRJn2ZEUTBE{65p8*F5nwWe6)}x|vk)kgH>Md(lR!=m=6B?@VW04Zz-i zi1P?&*SkiS4r^UhWk3H3F$UsNFRnl4VKrf1JnA`P@StR+r!KVl2k`96CXfS}g)j1e z0Hxh)ql3AvqZe$75UEu@yxV2GKQneLH9$s&`FhgG7A?w9%uk zYQyy+ucenuiuAMdh{eo#_tef8#%`4S?Cvdy%!kfR`aKeo$sO*o!lEXq?hqe80nQ+p zF<+{?fR^IzR{9k3I?=-J?C5A_5t9xv&6dCPK_yrBHMg?s7mJUX>-+q`xxh%Z+!2nG z-<4KqT|PJ)QK}>vRHFvDKTzL<8C^nCq``DQ4|>l`(6~x&d~SRpEts{evB|#fr*S5z zeiUYDH3aIS$?aF;dnUanu*VmO858>SCm~tEmbBRb3t(Ay4W!)US>+nv41Goo;dzbx z>0)=cyV(RZ6A!=~f7NG~w=&na%Gw(>GL;ffeQl*)qApo#Wxb2mO|fc@wwY~7ks-fs z$LlyMTn;Y}C+qNdDH+<1_|X+>^cJKM03u>uhARd`%fK9>G^A6L_*WdXO(tyZd7o_6 zSKNvhh1sK?iMTt3J_(EC*rz_$TG17i&OLiqU^ZAp#ugy1$T#+~W*gOh;0z7-_aDFz zNNbixL`z+)6oPwSi=e=I4kQZlKOBX8rk#umT&&~m%p!dVy>OA6Jb%>Xhd%3e3<+UY zvJorZ2GYH43;Y9YGLOd!jp7Wd@dNvefKvNO8%Po!@;2ggxpOann zRFd3c(LcasbTXUb1#~;G6}DW**&hav4{{nm|LyCmeCDdfX-6TNO|*W=^d*6UgYVz> z>(E#=p#m0$MYFxccdHf8;=6Y=;g=CFzr}5#E*XJ zYghIYzFt>>SF6Y9DQ@BV=Jt9ua7=+%pjd$8T?lLY<^j?2| zGf-f0wfF}x(LeFfyVp-V#BI|eAioP#cdh8-T^qa2&G}j?jRFVb!`u!-8o=p^;P5QP z4w2`SOnT&)-}@}m{2zBdy|yvr<8c7L4x|5Z<-qmxe-0+hjhfUf`*B$}XfggTgAVi` z@9{ql7xQv+w&&Yr!zGgp;;O)VXtaIVWVNa;|`aUmjwz``Ep zn$7Eihip?!N~IT9=U^J=2bw_7LktJgFqfXWKW0$=rhLIZZ{=h9L%D4oU(thkye#*x z58Mksa3%!T*fXwbwBBeO7~oLd^mk1h|4X)n$LHsF3i_liL|fEH-)Vcikq3cS%lcvg zy?ds4wd8*QcewcC3x+-413tcv9&4KPVh)D*AbtKjvoznMeCfe5LoL3U;t0fPUnE7| z0!$g>gEp0R=%$X5gVf%bHo+egZsG!KJne5gRX6XQ$>8&u&`N9M26J;hNIAYF%d5R$ zwBHIm{6bGl&weX9R@8oM*6^4eUHQys2Q7L~<%D=P{#eEjQ&Xb%JFU$&bvAH&>;1Du zi*UnU#wPNrYSyiE=i4NDrKuBFv!N=qT$W^`$9K+%7Y;p-=K$RMcN9a%=dro>jEZp(RZE3aYp@<_8Y^y^aqtChC z7_;(gV5caSkqFF0Q@+PU!={wPK}OD(VX@iY^nrXy#74jTP^wo{Y+-P+x*w7=M7x!~z0I zyXa*Rg5l|UaVuP@svX=o5Auq#WI_F&0LOgm(H~ueCv0uwEBdLj@(_z(QwywPGkj9; zW?=>29%^As-%>H%T~{BoM9ZZ1Dz4o41W#^f-iAhtbg3*0Rkv0WmpspIHNfu?HnjU%Y>drc6`#@#6gpOgH>s z8-6@zV1VL(G^q-~uv*N2-U7zj)NZeOIh;?>yihi&2WK-!gey~vf7J_QeQQ8do?my; zi%t&`7xifCu!}vezTY2Hi1m2$i>Uo0sOs9z4^A9HB+V0$*K_!QH@h-)s#Qd&cqE`k zt*`eHArLRIcF8$EJ`m-$I^UpE`D;>nM5m6~%>q*Q%eS;+ze`^ZckP|RByH0psDLR zGU61-y0}~V9zg8-y?}WoUpV-e)vS8a%KjukJQp*1h2_-XQ) zl}7Ng?}0DJ@8ENt=OY1C1>$1*#VW-_Sfl%b-(Ysv>4iJul zJ(z)f={W)>o`G9l3G^=>T$;VfxyY$?JU34-M9h@N`KmgCegVD_tFd}AhpUejOPT84 zL3fY8ob(?d!QvX4kQV!pRK+~ZXS-*wxL$ve#jDe<>o{4vT?FBs`Y36q;MLY+`?&Lb z{sHuTce*GLwLa5QiNh0nv-kd;8maUY)$=svu)wQkF1%9HTM}j{P}SZLYuZ?$f+cpJ z8~%f1-6f4)rr|-iU5IGriemUsu1j?M^1TEG`X5`d~=tL#=g0(m2A)`VUZ#Q4D1wjzqXdxlG1kr*-v>;ma5kyI%MG$rL5-p-d z@6nAGozXjkAu|}`+fuG8*L~-HpXYtw@B8OFp2I%I+IyepxqiQM^|jYt+rTSy)?Zc@ zb5A67BdODb>L4G;p!U8GhO@S}ClE#X$E}7Nyr`oS(3#=z+#B>G?LLPe*e2{5t!XSm zJg?u^wq&n40TnJU1gTkg9V#~Dad2uXOSKmcG1L&b5aFa6f*ueVwk2-G=&tV)E+-o_ zcT5M_FjVFcEcB1^r6QrfzKhl@6nOB@;3Ydz9CKWp6<4 z*$!(s)-;{#HO?0E@O{LXeS272GWcM;=8LJekppnM?jrH7X8p6HykuQOtBIrSuisYHuRY8QE?Ar=koiwvJd{xYcTKt(fij z^;cVt*-Gkusd?NsLNyj+Tca$H7gU)?;iT00SPpVKK(?WXpdoQC2I>*P^2NF|gf)-v_N^6k& zH{JynQ2-4N1N%BV9Vadk98U+Cu+K(Ka3?3#@Nhb>^NQ0%O%QYm9mIdRyl<}X z7%HF2HRFk)*jmN6xE*ry!`4w3n{5I3^?LZo%K>hORI^zMud-o*`!2vUk?bKFkqa)D zc#RL;E!!{IB2!@ZG5T91*gnbuhExkmxVwsGpG@60)f(8FS!bW0!wkighc`g@QB-D+ zF8$pixpDZ>jU}cbb<~nAhw8ex{y<}Sr=vm{+Z7n z4$~R+`S-bXPC&)DbD1dRj59QlNhs>cu^2GMgp5MJaU4?+b!29WviZgdYF+EJ@uj){ znChWrB2@JlqNNbv5#x~y3if%T(GS~QSV^qg9paXw}G({@Qh+^7P>1+=Xnec z-WL(+XOs>ogiEBQ5$HnZ&VlIgECZCuO$Cd(5X(h4#f4tTy*9i~FeGCY*RvN@R8NYO znM9aE>S~|@O5SP^-a7;{<0L2^<7=ZjcYBSi$BY~ z3r(M&yaHsn`cdKHD?klwf)gRC#EN^E8&>#W$Lwuf)!c)h=F89OpR zaz`ELIruOhoIWc$U15v7TaKQ&b~8H-N)@m#SK6;j$ZP~;B&uza7by>;muk$e31P(P6y`TrFI;Cb6sNuX`9N{$ za3C(7&M(K=+Q%UR)F(|69p*aCKq*?bO7fBfE0_TQKPm`goMZ5x96@_Jt7mvhh~@2lx3LhM~y| z?jN~Z*3My~7#w=yzCQMS!#pcaJgD}9b8#m$!1++#k1)*i7VG*9ZaX4Dv$R(nR?vXqRTo~G-) zZilefG_7m$ym+{L7u7zq`pDY$`ODr)RPFW~UksvKHt=^#(C#N7pBqgXk3S$VS-P#8 zy}XmoM{o1hOmyd{WF(SFt{SPneSL_3%QtNKGSMzxFCG1+&R3)KnxMd_;dS1pnB1p$ z-shO)_lvi4YgI=zaNZu7!_kQTOG6)?>#S(7$>og6!1wtH*wok^M5%cpGPE4#Ei>b#1%L8juIzB zU(HZ42T|esF@~+JQ>5c{FdP3%BAmN}#v-?urSa;6R7(3}_rx(tMAX`e(-PWI$Fy|V z%in6|EKfjR9+*JMfoEN|nM$S(g_~(xriT!&Vap?EG6-S2&lDaphNqTl@3x&+HMZA? zpf87wJ3))S&h~IKhVGO`$9{Xa`ogG<_Cv5#!i%(Eh|eL5PTtLmN{~5%mrAw5hpo?% z!jMV{thZhl^zsQ3bsvkQ==mH6EZsgTIm7Tg7)DeZ@Wn)`+u*@NpPkT(jlKD7+Q^ve zmOh6n@B#b`yF^e5o(%f>+g@E!=>b-|^yy2G%SFyi?$)+aXmD;md(pR>@GC@LGa7@v zyguX7j%HayU<_K-B_)J4y7AB5NL-c0y!cc7EZ?un8_d2{vaY$UjX$!js!o8M8w4IK zFKU#xLHD#38V?TLRi3SK#$mA!(~t97?|eLN#U825CQ!h$4`iM*ra=-Vq5E|*EK|Jg zpYx*DO1)E(HY<(aR?X$4$I5zv^?N<5lpKODRs{X$r?O_ZgVi{9rsNrZ6?-&AlZ)Q%>2qJTalDuxP_8`q%np2x z<%{s;Bsw_7XDbZW=HSC)v=ukdw{@B0s%O4*J?K@UNrWL-&z|eb7&P+)#09H&mgELr zoHU6dK**Y@Lfi|`42w(B8}rs;hl+Z~f)iKX`fIWZD9c6BBkG;#?_Oh3CVd4KGBKT* z+xqy>$tXBL-+dI@UV7=}d*ZYH0uux;=)UObeevy07+GvcQL->DeQ#cJR#NI>$c$7& zM8Kap1zz%7-QIYUCCDM>aldn5{c_4jJegR# zMU@GM82N-`RR~^YNCC&yZmp!-&o`sif_+$|W5i!<49Sge#TRa04{SC1B49@EXXO#m zb|}+3$|U{Touhj8s}Kb24CdBwxKT$QJVU!03-`kb98|7vQ8U{vbM13CykcqqYkFot zc_WLrHn&^0g*J=#_HI*tZ|Dh#Wdl4gqXzb?ujpDjxV1MH_ay(u;V?Uu+hw}`6HxN8 zeVNM91YdprEur=l`r5}C$Fh&s)99T0SdZUT9g}Zlw$W-4(WjU{bIx(PT%7mb>S0xO zH^*g#@q5o8n61)ANT#CU0DFU(N7dIc765ZhPTtBeb#P zQ>Tx#7^BGFGwY=GbM_vj_Xc?yVxD-5J|ozaPbQyu=*dP9#KatzI7!=hTo}~v4X4OW zJ;seeuc38ge7Fnw#1I=6xvOTp>Km+2j`s#BMh-*K>a0kHmwQlGaQ7@ z-!!BrDwmam&KTk9aIeFI9a_7Z)l@HRneXs=`vdzB)brr>F<3+z-^z>-Ct*Y?ZdniF znMAzquY{AgyqJ4#?m&Tq@VeD6*k#MZ*H)LT|6^B}-AdLg7j zBFOJjn88@`YG(ZSb;Jg7xL4I(CWmKVN%n(ST$goX7Xm7)>jSDZqgpPc^E5KX^7+1V z=u+yip=sQ@m20f+!l-X(t+fQdjq5Lwb=8QMs$L7f4<&fdbC-j5Od7cfK8O}zeBtj& zVk0#{m)=V>B`_gX69Lu zNWQKMIONYB=80*oYO%Y|Zc9|2`W5Ej*c?q^O5rB{(Le3of)~|Ac2XukB~_~%Eox)& za!D3C;ze)8+;SGhiTfQG*d>SW^Od^XZhzcA&f#Mk8uB`kwYoCIBMQ^AwH2v$ImIFg z(WUeJyyqFBr!V{G-dL%GB~nMOg-ueClv0HhP=*ZHY&M(c6z`jzfVMfGrL!03+?(mW z6c>GkIi35ZJ%v_>3Y)p9gQAPil}$NniYF0F86%gAP|5p3iY98cvC9a9$&urV0Xu_U zzqMfA<0yv+MxPBzbvclw8y8p2>o>`IPz}xHDKABeV`keqf<4B>V-Y@o9cw(q#;1X? z5w|tx@D^HA=R3A!H~o2#x})*2oc#8LmE^4tHE>c-K>isVgI+g26b~@|)aGkO_4XJLp7u9NLOjdRYnA+IW{u0Pad*#7 zt#{+pq%AFH%yHv9WxF*)_}rHi=WFt8lg*T%_gU+85T)z+qD;Btc{fUCj@nDFc=O2z z$=g7~a8X`n0$+5-x~%5GI8<&{!S$W;{5!D-zT1hycFe`A7hLKBEQUz+&BWbH#?A?L zyIZ?CFidT{xK+Yy(Ff*n>!{~rFE%#udpNirAYm}w&DdU!Ict>u^@R)p9Bp5tyNWp; z@R8Ht7pez+0<+7#Kg2qHViF3{@MXJzTRA|kP~If9`f!DSD}1V6KiJcPYjy3GrxE(D zjmSQ)-o3c~dg|I7?@3O@9Vwvi?kg}MPuU>Som(h(PaNOJp<7k$alr+FYmag?$SBX= z1U}^ZL3kH`P*{Z*?6yofhuVC(ocd98QHLmidKN5u!FNanF8fmKJW@9nGNS581}elKhkK9?teKbgXp{k*xa z8&p#7sJkuAlz+yPVWFr;zXINU>GJ|7^3oK?Yj<&#iOC8zfxMcC?`A43RlKK6aFCS| zZ!xFCnYrLaGo%y=d^%(N;$)e7?tSx(qIIyP@!)MflP+#d@8EtsFoP3vwz(<&Icgd1 z&w5MdM%$|<7^19iaGfL1&p7i1k!Gj0T$yj{TQUTT%7O}$o1pZZz*~{DkGb(6OI?__ z!(ihKjXqs;qasfHIQf(OQau3yY>w@aK&P#%FXI;s$elGdL&4r$lk5TBTjQmTF3F_s zNB4kjS$1BoS7XMf^ZQ!9Ro>3agNQEVOhE#)V}Js?uAmJZ3N7Cvn7CJNFuv7>J_eC6#F z(CgktUsysQ)0p2j@<1R;GYHsh5Ks5)Md2yQ=5v!C4p;Q`v4py$8K{B~qvSW>*sFLp zgq4Xembyv9aNaC=P@AYqXFP8grBg^59Q>daIvOi?EE*eR?Anv<$nUA@GG|&Dixr=> z;C&U^2HmdmI~OR(GZ^IO?IlddqL0~z_`rK4-1U|f&7ci!deR1v{_U}s7CC)bg0B)6 z_fy~R7LR>0wb-J37;550T&3nzPCK*`s_nIwJg5g_E6SH{cZQVGKKjNUA?2iGVt^pu zV%-f#WyaDVVfh3(*zsHTl^+%5d)cw=c2}81T+d`@f^N>Gm<@CZvknUnEDANJ(+kr{ zhmql_mGDQErqLAcMo%p32%Cu?Mo3~cM{iS;4^~@6Yk$%O(U;zBv#1;4Y;bfz++BT5 z11}bO65-8u3kLowRn&N9GBe>e0f>Fi{n3%U{?MiOYNNV!#Wvb`+Z6UD^P!cuCc1&o zSvO76zin*pcavTwXM_vA6LvFUYOI>l#!W;A$L znr}KjeGEdfBd#hv$&>T?spdk!VV8h=vA}0>vJCM}jWpPimGJ6f-r)?Xj7w+&E#&aKK~!cAXcrWHb8Glq zzxh33CRV#(Kb;C!iSCX2g?7(m%F^)5L>+Z<(yPSJB@qnWEl;3RC^k<_x}xVmp&x(F zMRRrgP?;KiJloQ!D+(dvrJp}^qK((+KHsjYnT@>CEKry+@~R6%kv1cH?hOUBYj|Sv zH7T$g`-*^3dbinpapOjBH*l<-+a@0gr09^{#S^1Syy6!=t5=F9wPrcyV5b^4C0I;* z3jKJb{KD8S>KuZvgS&ePJcM7@9$^c-9aj>75?4cLg* z`G+OuceRd!m5~vJZ_*3(FQhK;pLyMFXBp`qbxaAL&0VcDc%9;>?pP(N@9h*j^hnb3=u0kS0QUAD8(p*U;_lYY{yq=ob!TcjT7zbv|OUg#cyi?Oox ziWBYygo==4hlN)S)17qMp0Pa^87WXv#Anb_SFwB^BBR`&P_9cAE5n;+T7lhCA&B$X z!s1^@zfXAeplEkr(4=Fh@m1`+o}%Z$l%9fR20>it1g0;Vtx=#&!yth8afY*h1VQ-H zdC~_gIxtP)^rb`gw?1vdhCOTuxa}9vN{d}{K6~CnJA8um0a63^hH{xbO1{}MH2uPa zgF<^%#`yb;#pDr}3>Fz)E;GbYWKC<}k@qW$ODuY8PYM?m-+WgazY@)@r7GTcq3Ind z8_CXV?{yzhJNC!hF!#MsaonBNUFXe_B^_ZuaR?ReFsQgPNBHK;%eeRx5s~m20sjEz0roqe{3foq zml-v2Nloc|UcMjc6L@gAL5#!_LbVXfS{j^Ia%|w zX7?MaJo!9nDA`$|i)K%4zDcDnlYTBk9b(93J?-jtK7V~;_eO?2JfzX-fw9L_oF`)n z1de+tRjT=ob>V*8rY*4&chSL@Vus8679#DB4y%aDk?#2-cSK0XaXuY1+>{X_jNRe1 z4p7;ZwX4${_1kbSd1|bH+Kn@Lb%0$>wJ39R;C8weZ^b>?#(`(dc`p zFO`-lUh)EwZd%nfUDGCiAQjvoJ98o3sX6^-P;yIW&=~Dnzi&Q4-RfX#tRbyXT(M+S z6!9Z-p3X(B7L&KnBYULpF$($3FWm~^8}rpp^f*q&Q|c6_<2~CCX?m=Bas93mcrBzV zVbg{PM@AFVL}6EhbsJ~NCQEHLV%9Wa!O3njAb_NVOa!Krq&Mcu*u~_!O}@qrQsolM zKaWPoVeK0vHC$~A{}8Fz31%O}%PYP3 z%+sw`mV39Xq%%0w4{f;WT^5zzwUK+J-_l21?&NwXcn!@(0z3Zu!Q#D_=26 zU{qBaL>~&97;-n^Bv5Pp}(VERTTkj8pLL(^ZQZJT77tClXMoAe#-Slv+ zytg70ic5lVY3k3uu50(bgzvr}nYLpRfl*nbyq>L{9Z-c729^$fd%F0HEz<*2aqEhP zn_R_(7_UOR+~CP~E}2R<48=qzQ-(;m(Gsj~t?muh?hu{KgFOyJ1(GF5rLN!MTIATl z8n|K&fAZS3Pe)PwY*4y}G{U?FLKSl}=BvA4u$cbz)_Z>jk4Pp5|D{_&BF4CxpG#lg zv#lmp5U?4xlJ7lN#X+q<7SeYRg*XAl3_ou_B;I_gd5Mp#WGaqd`xgGj9s-#&r}3r$ zDd@H2_`JCxBvb5c+8LFPQDzYf-PUsXkP~|C7^N4P?!?3-?M45t_0BZ*_U$0KV>*{l zE6JM7*K-vpO^fygXo4aq!VX>C`-5 z_*UVnI7i~-Y4wfMgM6_W&+iVQYAM@ixsmJ_&QZme!rs5frutgJ!S0!LpjEN~%GB;b z2>#g2jqIu}mq0(NP^XDtcG)oElr?z}xIFj9$2ymr=({Gl(skad1RZs>6^+Y$GNEGmHd)^Ib$H4$U)`)fT6CI zCNvhOv#pEu=)mC;;wID$BCOneN9fCq1K@Fisg-FMo|Dh*hpmrSkqOQmLRqpr)*%Vr zswp8sp{->ZlNpr94bFSa1VKBOUbr`OdOTpYcOJ#pg~uZTkotbF<#QEDw!|dl+B8W3!#Pw~1N&=n1=FIe6?(9e>RPw~l*0p`P7H%|tTv zR@2l4JEb*W(>QRG_K-(Qxw}GX#XDE}(T;xM(byi<0iFi;chjI*%W;xm8A;obo?By#hT*SLp&@0CwidUnH_!#ZBC8Y`IkI5d_ih#ljLoFh!AJ}uZc z!NDJrj7*6iTT_jnFA^&vp^Ti5G(C`rZOZq^a%m(^IRW)LY4i1@Vz&E(`j-i>c_2m( z4~g$G+=!oa#)?{^uu4?-uS*4Wq~=J@U1qsl^v?Bx#MM`hl3A_0QLgUqZ&>mqd za$<+yTpF=5pMxxEIlE@FtH#QuBsl*h%ku=pOKNRqEe|ZAdhtbYq< zF`JHz6KRWXYbT|6w&WmmrSAkpStu1CZQNR)|Ani>gvD{&`qfsq2noeqeRuc94djaz zW0U@v=-_GUM3LAu!)iL#w{d3mZN7t#y7Z1PS*0@JUo?gp7Pe7~>ir_^n zdiPAy-ziveffM=;RDA|DR@>CU?L&&Ynf|(*2=vR%^nLU&hgkZ~PNw#qTKQS(M|`=y zJoAvguj!J)YWD~#JlKLqocxH@-guIG(c!&iNVb1hnKX&cOz$+Uxg@Qrfx%I2c&kIt8#z%C z8^+OAO2~$JX0xtavF%(%mahX>;tC)qboZ5DbR5zald*QV_L^0*d=j6CUC4abs4v_; zpNe?fiHtQ2x6|A^jH;mMi(Qme-U%pT{q}GpC+?K0$x2zjEBPI(*tKs(m@|z|`pYxG znjH10g2Elqa4H(#b>Jftk}fx^sCic;6*^?!%j9!|on+^%nRezZsLfHx?y{x11@G!6b{mO-HP8VTME zeg2Y}KCnJK(gqK22>T}Ss}y7zi>pJFS!*oh(K;%vRhV&6N;H`*D3|eTsF$_&-DKp| zYy=d%>8@ z-p|71B7V+{xUTeE-P^{~2@!`3WU`$~Q_rYPBGO2iX}~yy+H<0pn~26vK<%A+qM7#G zM+8A7$256g?N-{)zlUtAo^@z6VJ`*xQyB7WUfG+8BN$Sgo*f zcs~elC^fjQ_(pMBB2FERzE_6-+(?f@q5^@GZQzhvJTtiTM05stBr+%d+%+IaOSE9u zjaUX1&$$`0AO87imcflWy>ew=UA-rjGcNH%4Uq-@en9oNG)dS^Tu&4VX2cw_3ya%y zE#z;+7Zn4mc(BUC_nNT91YO`X2}j)optDyWT~om;`W8b-FM}!Jb(C;BE9|}4pVbk7 zZQ&rLS9M!T8FdohDK)4vGx^-)vu8wReQqo7`Gu?ay6s{u9|cMfNQ1gyP}*feCU5}7 z*2=B>&5Yt=Uk@&zVmnj|_o3uzajv>I&YC+oy^f5U4^las;PaV958f_~cVDae)_ZFp zTNjq&i8viHJ6vF;rv)BCwbna4#zv_J`nS6)ET1o+WecGhnKtXG&D`opC5Zb*|9NF+ zZ1Ea-U9Nxe>&xY7xWZpi25woVdpwqv?v2d*s$>L4;S6(`Rg zkc*P6QXdnLizT3qu2?z6ZxXFCisbW17X^0<_Oj<4v!pJAxOn2X^|R=L2X`WrZwETE ze)h^b+q@GX7%ECb$ms%E$QSg#-tQ{}NfTqETfC%ekI_c(=nkCW9Gu%=9-wKJY`^Lh zES-<%nP5V0Nm0DPW;eABN=a`xgX*qG8hrs!pF&ZBbTX4mN>4}_zWCf|>3;=U5v*4=sBZon7##@67% zl#4WpVBWiN3`w)7Zu>7nuo_RJnjw8f(Dg4R_D2lLLNF3Z3@9zh!dfO3yR+LD_ z^HChWu=b^B+?ZVmH511f^P%en5$Z)L|*VyT(Y2?NHT*WeTOl&?dzn9j^ z1}2i&&=9C1dY@vYyQ0D`tjn)%yp3cqkC5HV%PZ)~#Nw9bxX!fmws*|sPWqLb?W{n~ zi2TTw>>IR4ew)hJ9wW2e@w(?m%_64Oii7>ykTac{G=55Swj!{%jvASkX1JP$+_&M! zigY#vHY?k}M*T`vx*}r5>#yB?@b=yzyA2?vdM1tRIo?|q5hy(mAH{A}A!xC25Cz2n!njw7St#*1gU;pOZ&3+yCc zZqNYiTG7HS!aU$ypRE_FQX~C&c@qS`{Xtt9u5|!>*-DnyzXI4=_*u+Tk0oPUJTY*i z=s}I~;0=NFX3wqsyYYlIz}9n&*KG?HC>%faMH;M%tQ2QKiIk8;idtRrrE+RvQfV2@ z@~y@!64h^;Y$~_$@<0rzkXvkZ*QpQ}+jAdU1?he8Bp0nddzR{>R&&FOD(nF040=tkQlW+wU?LV^gNaP$9fYGWgZ)jg6B>#Fhn#@! zphJcvMl~?%NDuDAN{_WS!7~sl1~}iGGs|73EskSg>EDO>Hl`Zy zJ@E|7CAhroIqJDTg`!t=gtXTCO@C=xG?}xERN9t43gV>STo7}ZZ)=Wb_ zPc)AZTs=n!u>Bzv=(Pxf=ZZ%mdK(;|)uaG${!x#7hkDIWP2d;ebm=XQ93{+XVES(S z>qSOGnJEW6`Q;C+u{>Et7LThIw)-C#of}wLoLzm!TPy5ycR!icxjSQzCw%m<(ZGT{qOQkXK4NICB7dL z7n8yD3u8d<^fRJY*mIspiYX89mhYSqZY1E%ZZE=!sgGYv>cU1DZxAhF;WeYzXTi(a zm{MQ{1B&dM+6%U;k3&Oup+G_iqJ2ktBSh*e#Ewotk^?nE$20XLklqF%@YR02F7Vtk zrnHYXcE2ikK~+yK{!qUFdR2?TtD1#dt$9~rbrcd;?DJ&K7Wxbf53}FQ!SbMZE$3H8QFMCHSOrh9kdlRLi$hb5AVec~m^bs_Z zCx<}zx&MQ}B)4d8UKYnUjp2lXE)uPy46YW%ek==;7!s2AkUNg+HfpPOk_d`1OOt8l zGZaIMUkK~lhgszkE`4e&sOSjC2y0l#lyaSb1~6rB4%s@NzAy53loX+&Xf@}GW)Jr|ZOO?k=ByfETR&B~W}C&m}@+)Q@#@N!P^55wj} zBnJ{z8zh`)@4m3ru04b6 z+@Y-m!GZpc3-|U|lNlmaTu^@YPQb_`(wXT{BV1pltj@hVsvz3OllV9bN1B{@T>gD4 z?r`dzMWKKj2E-1qim33+=kLk`7TDyHT8N)mCXReuY{UB9MK7`5lbZ||zBa~d!v5%7 z->!)-nqK8r3JGqFs}ER<+x}JkXDj>p@x{HzGRKxU7UIf1g!dG>RX@^2XJt()-JjCF zqe!iY|1D^k;qH=1!=nj#!y zIQcbp4x&VRk50+|<&yQcz=ED_>gX@bQ&!g7{Ugma;eyW8mHf9Pq=D5~B5+QPttU%E zj#%9r(`;-|G?-cY1SIzm??cyR2*-fg*99qXrjf)o+t9@ZdhgdRW4(~6n}*~ULydV9 z9vV#eUm^I=JVs{AkhZW|q}R9@7O_g{)|BLQLoEiUpuv2B&AY8)KjHDVmOkInj_?s= zMLz^?1j!n~A$>AHJvMs+y3g{&>;9V+DeBdhT2@6`_Ky)74uu3) zD#R(6Y>1pW#44+Rd8tY}Hnv2(11v67i31aZb0!sZZ=rHUJQ8 z60oq|xdRO9tRme`K+)h?^@Bky*$F5CJPSiRVd+mmK|tuh2@5nBvEaqikl|_Q`(0o# z_%r_Vz{Cr9`Bc~WpP~6voZmI(VF$=ld;Z`h7`g;|*JK;bOq!KMzlyohI?|hVv+aR+ zBHfoqLN?GG=*MtOB-74?j#aw5OXe5f@0qtVn{vu&O%bB!Ov2dEW+tz$pjiyEb;UbI z)B>{KWiR#w=@CL!0;Fhw@#_HL{#hliK8`!!MI}sd_UtRHXp%QwzRuf^MTfzYYSz>l z<wbo8IT5P)aBf7(cQqdNdd&p5i;ICkLk-Tp%%o@t-t9#$~BY2`I9x?($51wY75HOGs!20s$GZ=nI zBY06(Xm17@NQ|DT4J1Dm3 zHuK6uX(K|7C!ck^#S(8q-(AFR;3`IrDxy94xp%296TZ#TU}ONJHye{bbvvV?Gd&fo z7__vq96R3Gy9j59F|k-a(t1%4g^qVuOM^5)x0&IA#2J38%!eKt_KmbS3qq6!sU7>x zF8j?+LxGrf3yjj|y+G6_`nC)aZ%%uenVa%rpHv3@kGW1jT0kbu7enYlzEY^sgPLdi zvCf3s+xN8T6y6Gf>Gb-o~VcH-^`fCly>@cGx2_k8FH)$ib91he+uIkEwzXwyjcIr~S+ z5}hQ7A72yYk#^>O5?>Jki8yU`GaWB!2Tos2CKHyu{$w0PhKB>f1>pf7MxjE&B>(65 z9}oPG2mZ$c|KoxG@xcH8JwV2foP5>>_d>$>kwEyg`IAD?yP)0(HLL&D6jBPcO^YMK zB@k26BZd-3#==OZT_V9A{$?`%L3tkjCSqP-EnAHwia``sfNo9_oOtSnsCR~Y*S1lL z0y52%lE|(6GDUED*_BA_8Fk#`%Hm@T@-68N*kfV7R7ExD? zsHFcqe^*)(H8ip^W9ipnXt3qrdA?< z99EG<``;Y&pGY}S;W0On@oVB!$>LMVpB`EipvW$=!8;(wR?sZ*_v^r|)4QM-&CJ^& z<88{vodYjbr2(+tkLq|5pTIT`8kU(7jO`_paFbauv z=m|*baG6Y~`9CBFmLH&V3p~j1odE#qckAiE^RK_o>w)>IzfOR>ji~>l|4;4I0ixd- z{*eE1g8kv1UrzcN5xg2P4M=~2@|1Xr{&!L|*?qo_A9dX#>Caj1Bam;-GW`kJ&})33 zKVAQu)Bg*1fj4D$t9hSdy8wFi|0~OfD}Tnn!Y@nnyPto+JLIR|-!+6JNMZPWezkE?D767bC_%B1jit|j_~aN z3#|iWuV~iM#A&VYBYyCoDAa~c|3dfE-skZzr^RZkwi<4K(-sI+D7th0lmWKWsQy2r zu(l(~`1QM$(oy(NSAIMJN&idae>%mYkuV#{@96%-VDY<`|Dib3aM#P{Xw?D&_r|nk z>#~#7wc7p=I00EB!vD`0AdW=@A*WW>vz<rljy+57ykLdqwfA|PdneYb!;&lH` zU_Ik#KhP@)=yQ0Bm}r?Zoq$kC!|!qAT9_OC?-Iyo`X|bn@BZ)Qn>aPw_{io0$ zNEE>lA58wl0Ke$pbt{1qAidXi3{WVCKLvhKx!$veuAIU=vd|H@bY6v&DGTfWw~ut5JG`GB_q=uW}@4Z&Y3TT(}e z+Wv6{3TWMt$q(xP^2>SQ>CK-p+G9`atg0hB&1U<06ddw)P&J>~uVgTjAfpZiH$ubJ zu+dLd|3mBj?-(j3e!*a}|8*Bi6{-dYGSBWSuV3Ee5dj!={Sc@>I<7maJx0{m9fiO> zcd&Y^ili|4lBTGP_@?#v@h(P<{`B8Ffc^85-x?nko^PquiSEa5sHm4tN-op zAtt3oBjH!vBDGxr4$h0sF+Z-LfUI@a=dd0?4d76h+zrQK_#~0bOGoh-fI?GyLo>M~ zVGXMGSF-&w^n(qM4Bz8M)p;R9N9x^10HDXoKnf6#Pydj-Z7<0>F=TK`%;&#HpkNo? zZ*pq(1hi~|1#}LN<@p6(?$>$EQ}7RlUoDf8+{Wh*p^*TA_+>%-7XZ-7P8)!?dI{Lb zZwxe3eqt0Flv}799S(|Q{f1=Nfl2Q1%ToTq{{RPx-!bLfM;yVuztx>)At&u03{QV| zLa)C*0lA<{F}mV+g@BK1T~=i59z-F|0|;sgnc#4Zu^JVwriCjKWZ^I1ojwF zh-y<~cA7q%uaP=c%Rd2)9ABO^k5zh_S;Ui~ki%~7Gt%OPgvFKId1c9r`&I}}EegEd zDJe=N_xv|Vz?EMI58$o8u?PqQ6v96G5wYL@CGbP?>a}`r)c83YL_LD1@^5)S7pR51 zHg=C{0iW{*9j}Lfo`;DQeK$D+|7C;pf8F$Qs7UV4qy2L}hz?TNQU789%SXj83!&hiZa^{Sr2kvKR|pBagmgMa zncQ`reEsyG4e0R#c)d&3rLdFh&F%cV6De(gpMfl2^^4s1L30UAv<5JPPzR#o8T=7X zVMUksZ!Y^4c}~Xlov=+*llqs+uPQ{_)SHZFha|V_NS|*9>EbX=f&<6GC7G#Ee}nof z4LVqRsTyU&fnM~duA(~dX>zY=0_o5Wus~w|QrHb91F8@FoUcH0hZ;QQOa4ZNOa>}H zU^~|JI_#-fug7v71{j5afnLd}9`FySSzw2VAkmT2nW~O(fQICbByyd%?kHm5?wLQ( zSS)xr^Jr9a_7I{gov%+=aSs$2wCfZ=^;OfLSB^R&MAsEttVd<~7plJl4LHC=5e_S( zC@?#9TC)OidR9F-1BY;*x$Jy|KmWtzQ$v9I_o!=Cy;3CY$v;Kw%o%QB-ZBqA$w|2l zD}1HLlAFL(_v@Ht?p-*9YMf>9>-02Ve7$rZ_(A1b@6KD)j( zX>;iS3#^%)=Wp`=i9_`A4-bgee~)YXw6`Z!*%ey^XPh`y&+S0%1Es0%aL(s^Tcv1p z`kcVjHRz=fSELO|AXk0N^<0C*0e3}Fby&7vOr122N<#pZ<{t>O$euYh{p*nQ6oek{ z_o9fH18HHBDqnsQ02FsWV35`$gK$ViHuP`#zZCxw0CtW4q#OQ&0FU5z0=rCgSR23^ zWfx5H@oAr7K%Or`w?{LL@UfPaApy3)DNqb8+L<2yvmF+lID>Y>+PD!VzDovL9V|9IS|{9EBa zF!}7yTe+K__?I#e*o9%g0%d!EpA`rvVFAVW?!a%g`S%7lh2v-<^~xuv4Z*JXF~zSd z?ZkK&War!;zAXT14%9>1VtCF=FejD!?-qZC+i>uiPR;!|4#Fm#fNARqTq5Qula`CW z%kQov?mqCNJptXq`z8IC+P?)Bozx}M71Mv$pHnwsrtNG2;RXRI(ttfmCBCTSbA+gI z>iED7lUxvHrWbDw|6V9Qr&3Tet~?lRaumej0@nW>VRBFg?1utxIjLNKxA-&M*@VyV zeI)h+);faC6X-<%Et~J)7yIAkcY7p}<9;e9pkd^H#oz>V2(trArkua_mw|a@*?Dq1 zy0>?MM)|Tj&=GR#d@U(#0#JB?3{C`Ez+=m+t|qwOt3*UWRKL_6bas)VAfX^r8BB}!e?d>ZWn*J z2tXw0ln9Ao1#jPTX`qQlHl5bZsRa+!urc5J=(*`IY3Id_aN$mp$VW#A?9syJ+jc|2 zZO3zOqu{@z`WYrCJDq=*B?JofJmMHYPy#+i!F7n3W3^$7klz*9YLHcaq$i-eKDNh9gQBFO)PYIA91?)B;Gx#sqE&_@T$Sy`am}C-V zUcXu556e}SiqLD%pDr|wI{c_SMkc>CU!#iAMoa<4=`Wjq1^81=Nt|K$2_sG&;NU{U z9N-D#rnUcDK7~zkhw6*O3CO66@83C8!#C@X@=+7bN{$H3Pt#2f+P~u4ndktWX}H)m z3lIP**?9$Ngr*X80rm*7_Cpx&@f5Gqw;z>zIp2n$T>!bFTs^(?DW!Ec*)vb3?@AgV z>i7@9s*5N zh5F0ruRy)N*LN@TjGm!-R>i=W0unns@M#TyQHS(%tnT6ra0G>3^?yBac713^L_+mh z7msNal+JJs|6ZS@ZUvA?fZ10a=kfMNDzy>y{=dxrNV&g$13vbEO74G}Wqgk4@H|a| zV}}&K5p_xAjnZE-{6InGq+<^Mf7pBTc&NTVe*9u=8H_AR)-1_7LW!|w$u3($qEKW@ zsO(EfS+lfSqLdU_OLj`x#!^&dEwT>AmO;NWGpOF_vps&_$M>J_b=*1kEU)u?z0T|G z=bj5@_7)iV4}2->ivgtnVY)m1kw6P-AdwxA7;4$i2a#laaD+k7OhS(esm<=Dz!Mbs zj_w+rE9j*8<8mldo47PjUWfvNEx*9#GnbF;o%xn2DV7;b?sx3ke9MKeg(LCp>+fa~IUleB zI>1;xsoF4Z5;!6d;-0Bc4T6JGYyd&xC%~^NOHv1!Tb$qP;4?ny3Y!$hcO~`R*P^zQ zEc37u;gxL5@EjSlMG4;#2JB%f_?E!wjS4@YVbZN?BfOfFY(QBu>>)6)bAETQ9tMT2 zvFs*t*+4DX!a^m4T10EvRZf9At8z2(pO!&aQod;tI5*I0h;$T|Ud?B#gKTSp8Qgp# z{Y5G**-`;n2dR>IO!`-nkA34rlfJq*HnIVj z$U-G1XSOk5;o8ZoRHIwghL=gS?f56m$4s4*3fZDh?osTYOxBz8T;_W%Kz!ATcH)~@ccp7Gz2 zZ*nnD)QG7VUF%f>3l}kKi-N+fAb`ueIdH%Eu4iaJowv2$;xj<75=ZyFUeD1H;k%YO zi~@%xUf{cj zsZTUCzktrao~K?wR}5%e0pKtT7iz&VyyGj*sR;qgca29` z_L~t<uL`v3BHH z@BvJzTO%A>zlK{CxkF#zK%lnV8tit;axZhflvWavcwr8sDw>fXCw$60u7708tUh?d z8bG;sG~*EurdgSupjV&nth`1!)plVUb{m07DThl3&A@!C-%5c0e*v0+skB>RBT51m z&9d6}5Y%3vrq4j5XfV$S?TPpDWz@8iD;dxX5M|P{v!T3A$p0wq8ZqM2<5bT{PZI6R zRh#uafs+_!$qquW(a0e$^fOFFG3YDdi}soNUZiFH+Q}3-^pnU+Y2lNDA-M3UMKamM})Tc~jpuYh#rM9of z0i(E1eOBzU#GY?HL@MK5n?(UwMmiMN6CP=jBLrAQ1N3;~-FJN1+WY0okUk2`_v|eL zPUAPM7w<3p4e8(9zw0!v&tZ(6$F{()Q=SAl;G-wY^J?YA-GNGa6!wkxaudT&Z+|L5 zIoyQz$o8F8XYylYY}~~0(i*4rdpOls_Hde5+5k_Lgj`$KBv8x$Q;1{uo+^=x3ya-N zom_d?>(*F;OYUwSnmwSj{7aE8KvJ8Ywf2Y$wyTQA%SygYY2Xh!!eChoG1 z!g7|)aorU#V#gby<;;|F(Fn#?cU}psUlLH^uO%9wN zud_mAC_tYk$EiSaXb6lJ8#D=NQF8|i+S1Lb#P*Cll^Kebkwgb9f?4L&N)-0n*#eB> zEDnPM<4cV18g3Fa2IsN*$c|>ks+|_pacY)vW{1^M^ptJ74te8J%JS21Q}Kq$z1!qhVY_~0b6H$!6GlHddsjEA8|7X8L6mdyn8Po ziR-Yx|LDG#ZxVk}e8a$p#}^I?p3BF~C-1LE4Sv7(@Oed})@jp6JMJA{c<|(v8G7$# z0(*YpVYXqTAQ1C;<@@blSSVjSmblo*0a(D`Int8@Yv)7J>zz|#1Wbt$kzCXKW&%XZ z#4Me7p~7#D<2{acDa_S}jfUJCG51O-vWs}IgWFHanVUYh)sDZHR?)$Zt(C&6p+?Ma zN?%g3M9EThFpO#6vF2UNVcxz;D)kozu#GGpT=?!{<+x9z3uvZrQ_;7<8g1Zem%iU( zS8h{)B7pw`3h?v5vtYf&U~TN_M%BQEn;;hRQV;Jn9Omj_e3OD!`z_A6C6Y0}Rb<-d zqscquTcOG8aVO$z&2APQOIgNg(=8B}8(2TfXP?kf;1h6}R=qRIH(8M8p7r+XOaL2k zq8|)Y6@TRcEt1ATcW_gkmMt~$OFSvpKitl&99j`F?JZyIb4)ZZU+l%_!loR4TE6p9%f^*V|5M7PS|oXb&a=llLat; zAhOS@0v8Z%d!Pb$)0dczuzsniD(6ND?}mCOY=f7*VHJWDv)eKpc$(~Y(spz1=UlF! zdCBW=y+tZ7`zRx$Q>=3KN!t)o+NRlBhhZsbTf4W_aS|B9K>j!JuXFH*`DbBRejCs~ z+~flo`nvr!-ErJk_8-v1Ba1QGOYKr0Tn(+)WEWMlYCpwZBrH%aBZX^w+ok zK9gfvR$SMq&(JT$YOt>}Fm8EBI*MBGMUi=8iWcO0o1iOWzMKW9C^V(rbWI3C{D7*!*0n8rN8j=`hrwY9e#;M}2^sQbx)rpM zWAm$W%R^S}*Gojm#rtTI?_)Qz3lGY*ac05umn@aSf-Rl8XFi27eX}NVfGmpRw$bb& za&WZrjYZpaD(**QVF$S7RjBSQ*|Ige@o4Eg3c}d(sI=)l(CpLjIY980!wQ~kc^Upb z%Pc=#dtGZc7~7X@l?8dwk#z}8vA6H+k|QFVGJUEq)fb_5(Z6nH(eF|emB3|D;-ct! zU=YlQzSf3w2#&(iA!@0(YpA%vI0syjBb-ZN(gQGVQaCpRQO|lP5To$kc7fH&NwTUl^Aa0zVsR1Q4b(O z5Q9GVIVG8(CTZiKR~UIo(CyBQJpTEyKW# zg>%!ieg1^~vmv5IT8~Dvrz>E`HsBG~Ve>|jw3fz|?MnovY0A+lFyHyd7@xK4584HZq57WRr zt>66vqALg%jE`?61sq(nV#nde4To}XBC8Mcut*lLzQN|M%(&tOp4A(X+SPOaCia=! zRZtAPw`KqgWk6ur3$yqCfKn<0szty+cqeXz2N&}b>ub;a@sGWKg#Q^}3$L*U*U6>k z#O57XsAIei45FX5C^S&Z!APW$2 z9D`8ZT~zI0w%2HD2IMNJ3}6VAKfvd8KP+bD+{aY)f#@|x$PB>F+ilMtNAE}eiExvV zF@NUG?Vl6n9qaD-Jl6RKqxUFwdhfpo@lqX9lLFHU2bBVlxQRP6@BE?+EMI=QK@-Dr zC&CIFfXAPfO`YecctR#xfGy~63REgnOPD@2{H2-%1LTQwT`q>`8g_~|ErO+=!5Xr{ zCV%4-nF|-n#`*?EHu3&xnFu+;yAg$sX}$f(9T!YEn*MS3VO35N>?7;3Qkut-STw0P zni4m9ekPL6v$JAgHY4~-!+nytyq}^x{a8x7?a|heBTiLcJ_AQwF$WboL`|gC2 z(Jx@(V|{iXWX-Pzlnp`_C~M?`)QP5=oBtKx-p*%-FB|YU@P)79 zhq$f;udn1F?#$)8{jS_T>w!085iH|bga+ej+YKorVt{e>41#4j-kH@$0-P{|(pq>j ze@i8YgWpth-^`@&v0a)t3`6XzW_L14YkE8t6~TxFMHJSWw6ha@prTxX@%u1t3Mi5N zufR9$WrS4(JQJ*gG^jyUR(G_o;nArH7tN@`8xF{q_k03w0IH5u3cNYfQhF3^}SF&8yMOB?#)yUeWe^(Y72BngZmc@y-nmdx1oEFffrD#BfRPsy<{ zRn6DO%M@x_d_?wl_dPgNSA3ZWtIQY-&^sCtlV8{V!oa#K+lwB7O~+4R<8XBq(okn2J;4y_cvW&g_d=suHs^c^(*~u#+GeToIrk zm4V*&BAE#C&wGrrIB-PO?TYN{k=XGC3}Ami$PhFbwc`Jt?}<}$M^whxskEBXUUv>b zkVUApc#zkorwZ3|B((P_9!@EgnaGcD%ir0f;KK9`Te2M1eD=na(rb8Y7`HNvd1Y%R z+JS;8le^-1T{jbHS4i_M=%U|!HtTU)3Y2~s{eC}w6CWo34jZz)7M_8YGPVYfU^G{` zhRXrN_zEl+vXkuf2>lc<>-ERTBTZ7sz>V@nEMN%T(N?@zuR zyRYXW8U;hV%X#^DD5;tln6jLH$LQLWF}zqdHDTL^k}z$}0Jag&0HS>DCj%o(%U8qZ zTvHZ<1~0NHv)iqZ-Bk`bJKHE~4WklNtpjruWILJz8vW0&Aq|6M7_M-Cm?Y;QtOjkQ zwFP**mwDK3!^?YQ!yp|HfJwd02?hF%;%HJB^Zr^Lx3a+X=#+w?;RQ}_k%)bBdvl-- znoPg;-+xi3Mj=3%99}%`@Ogn)BA8710u7flQDmVB4#8}X5QFx73M6p%)$nNuf}NyC zVc+s)ZX%3Lvf9Pqaa9Ho`8S5C+c|qC>9(Yq!gdHB*kG6${>o8dN$U`d;d@N@@snvA z6j)EE2Q6+FSVA6p_Vw0=qsn_D1?&ecog_KXK!NpJsxf2j@5y%#ucxe*wj5&46gAlH-IhFrJc zsr7;JoHC57IgL|V*;M6Tr_k zBe793iMEWLCr&?WGP+FlHwpnq8FY{kJ?ccDbVcx)wHq{y^H7blY=Tx0Z@@t(gMEEx zR-RJ@y?bTx z4G7_tZnmB(4h`Q|&yGEg>%8130+`*t&H^H+MoOiQ&!y^%>syuC1zT$c0)W!SOL_t% zLtY7eYR$5+b)GZhi|E$R5`d6gRNZlVk32@FyG zH~HU-{hRdu;cmc9D>bm*7>eZABc4S|xzZ`E$e%h|rGmp*&W-gHjhFAMjai4Wo-`3s zJ<892w6{%&bI9u&!2gsGCZ(ihwwZ+w=Ak<(5quc)ve6&gsE-<G2mGvM5z4IlT7J`HBWfugU1+vuUo7~Lh9Hw+)lNwT!67HZ zJ9eh!g>hGRfKjbjl?#(~Os8 zE^fSX=qGyApoWykTdL_h+)X2?8+bNU0EC|c_5w7pOf2H$*KnEfx+m1h-t^VWNkklC z=myO;hl&(M=%YBqgv;EtKFY7vyq-HS5awRL6RL$npNB2xKgmRMe{Zs(5J@8JQ8S9ebQMG^CDFRa@Ket-zrw`$Y3` zEz;vF@(-u^DpBc_tnpM*SX!w(>YihhN8#bi-QnMhk~Q_;!ptH+Q@=bH#wti{?@&0~ zCn_vsWwDviREn7BO9^Aw$S1X6hGFR;sD1!2jbB%3HhG!NBXGyOO>U|-2OkU=_gA?E zXoZ6Ar;BKjd=PT+j(a`50#5vDY|J`-n+87M&QJ@Tf+>tofcM~{0vdbvufSEJsMJ@)(XZQVv@OjwABwN;CnMdHHia{?^2EhmL$-w+aJ@LfFoh}_~4k%2_6 zAfn~>yWs`}iCU|;L9+Cw^(-S$Fsw%yT10;HBwZxx8{s~c-;F6nn5lxkfYk>%R^(dF zG(o626^&EHII&XPqtNtS8BNNvD%Ty+RU}d!q=@g0R6KXPLg=v~?e?Qph*s1H8v_A` zYS%9Xa8re_wbgiErqyII07F*_4@pfoDCl?Oz!6CH@bz^HyJ1W!(d!MDmSEMk(ne?B z3?S=YkQ41+o`kq$WCRlWGRO`%^1YUmJC;-N&Ga+{WJ4y?ehpR3EOl_l1E#VFlMMyN zr$xSIJTo;V@j3YlW|H?>%3IUshq7rC`=-=S+8^BJkXT&ejfxDY>C7}p3rsLgJ zA`zN7ZbQ9b=k*rI3HX-9K0bsW^e*7LsAb))md`)GYeGuGDZoOH{B+~!&&a{`B1CM{k=(4Vi zr{7jnV1SWvp>NE`=vm8xs#ztsA!`h?cXI9JCgSHfR*TC|hcVf)uGfknEj3N66+BIq zM?cFw6B)Ti8Cc#|RIL7qpLy%SFt%92iToexwXKTMOu|Dp0@0R!x(iSj|Q1%(SQPl-_Uohy?Fed^E)opmnOFO z_2_DHZxUDHcy({vl zRV;#FEH>DPa9_Gl z21j<~0Qr-zxFG9=LOA{7s9>?AD7RqLbgj$?^K9faRu@%htuFX0evMY|1_@Ys^-uW| zCKezq!V7&5Ga+!^N<;3ssLEE?p{ z(hTNYn@U9?{ulYzk>Gh`I&V32*z~c$I={v(*2GjMk>a_e$b|a)AIOZHE8jcF#U;wr za=CTrf%C%zg8|91X@X27L0>!>vzoVf$9Kd!zi%bKQ4}0rfj4i%@l{XoN(TyG2YqMH z+uY2y&alp+FIZK=1~shD9uX4$F1><9OXmf_gFDF9G3^1tK!Sgmsz5>juVNEN?X&NQ zfhp#P`anCmoYx)>6XsSOtvk>WzJLobI*tTqs8Z6bQ~Wi<*X;yhAe7-u=crI%c27x_ zU77512w-5Q64eSAkQ{G9R)znb1Frb>IC!2=!!P{ zng)!yYzz2+p@v2RAn!#36gK`l!LD}fCpae#UX(=g=agG@g*8-dGR?DUvV<_|g6G0T zYLyW+YWu3L(xL_%1@95}n=}9bQfOBhuwonpLy%Id;d7v;zU>5Hz`qzS8L&P*x536v zYk+|hTN?=W;o*i-{FnrL9xx1ky;#A?TN}bNz-lYl0VAYXvNeA6J%X=MOVp^YWg_0r zcuf6g73Zo)f*nMPBd*hayIc#M6EUn;9If8_O}@ov1Hi8e|EGPqe?P!aG#r5$@C#%A z2*aTd@B_Wz^Emml5Pi4$jIBj^G_UsHC22!I=({!k#s-3~VJ>uk8(LJVLzizYXmjul zV>(Mkd+B6#tqV>xU?`ID`cZc+l*WICd;_O5(*}Nftq@wlh7I?1v^zdOU$j)E__S|* z7YryjcO@p@k!IxXYhdWiS0O=3R1*+_;n*MQk9Rpu@Ksh5LDmYsD{Ia1fk=Q0JR=;6 z*Sjjs?uU&AodhF&kX(tsw{LAd%HzMnKX!AxAIN_cF1^AaSj*A>Q^-U{+V7o0=M_X!{%3-2BhtLY#J%H)?qA&fh=&H(C72B=iLZta@Im2LsA zuMh9Iboq8$FF*K(_!c342Mq!|y9q|@1e78c6)pjtUj|j#=Z-l161lX|#b?`LCkX4O z5r{|q=XFej=my)x48_M9{bglU4sruMWPPNRQecS)yhbl8HO+(boR;`+D7)4r7ww0^ z?|S+J?jJ7cD}(#;iNThJG8gQz@B@8EBx0U{eJuFs*;n0*xjzk}CBN7FiF?CEW!=II zslg5I{be8z_HWwXpqa74mfud-MS3km*e7dW#3&=9I`RxCL~;eT-CqMK&d~pX@LzJV zoO5Q+VX#_Mv0Q^bxqNo)^^z`+28RP`nhVe=rONZFxaL;9f%D(}GDDEmo3$64gTUX) za>FyOac%+y(pVTo1yRL9uwW8`1C_0&w$?UACCr_CR@i@sAJ^*;{`KVU;s{X~DS?(} zrSsqpgTk2wc~*%eX|Oy0?-%z!y%<2_0#%8DUDv-MCqBM3U}GzuQHzC-;^e{}rmAIC)JEdmaus5-;XA!umTt^77xF zTR-sqj79XJp@JYoTK0`G>~CCrXLyT$VS#Xwi3yRY$$$e-ccnoPxoqgVGydlaqW+02 zRQYdN$b1ER)p-PI6A5QlVjo&3F!UOJGz*b^{r&OnRj@t3P$gLD!Tan#FR~fI2;{~i zz=FT_g8$kYnZ7OLFL|TQTxp}6fEO7eMbeI^-3tWAwXWwoK0e_(5lBVS)*r3Cx$6y6 z(fzXslr~N|N?{frJY2Z89-a@D20^ybBtt$0G6P&ADdbUnZ-AF>|GNL?4~&6e#cwA9 z7YVia!wvb994jKY2?O~bS(4sDdC<_89vdZPC44Y3mm7r8T50$nL4y6CH~7BR(e`?A zph%VDml8!jJgTU!Mqe5;)OG2!f~>^uP|N-!zBtDBp>IU@#>Rj)YV(kPuv*8~@W8 zh`;}NnSYz9lvnJYx=Mq&A5m6T>qq`5e)cf;uK^?Y4v@&cQS4~}+m3ENbA7}#QF>s4 z7y>?HK~xEd#5~{PjS`3k#%G}4BGqwb@Vqh%Qi4GwV5tchSS;{V0ARXy&|c4cw`R+hj+p#UGk zh6R9TIK_leq6jo5Hw4)LI57d7xPjgngQc6nnM1LV4gZ!5pw9OjgME1101FxD=u!co zc>DSlOaeM~aEZuW7K-fdU{MY4Tub!h6(Br8Bte2#*vxR(u;9IX{Ept!8VJLBj`NcV zB%2qGIw5JM0j@Zwg|0Z9PW zfm9L#l>nzzN)RHCo@!A1RDGE{{#C#Y6GkM&?7|kTL1bXb$YCH*88Y~Gih)tRijRm; z0$AZl6*xD88w^lTp@M1k14oG1Qw0n_@qtQ5L8;#fJ?^p?kJ`Y!!9a2>2m*?eY(tMq z9N2Q*=a+rL_Xr6!n!PYi=-eTuY9ufpgcw zVb#z5)>&a0DJbQ(Z1Mvt3{v&lDjLNZ{u$%VUVxU* zZ}vr2UGx5n0)cIPvFNkly|5iUHkVo5HQ3!>u^S#*AGj&OkgBltX>`0^9>Q}0z2T{% z;wAx!-`OM6ktJV`_+A%R?SJ0=RS!2FlqydE$J3a56B1*B*gKw5{WBBXRq7xUnKIUE zbbKHIEw!eW(sFn4fAngiRGWmso3!b{I0;GthgG>n#c!j2Z|*VIk;s zW!YAB5Xcn~zZ+E`&jD2cj-W$$iQ^6N5mF*m0yf|R@&jBThw#h*trF1}eD?k#x=Z>4 z*3%u!VUPEPNR|CB%oRI`6f=t6ddUNYLx{5WDmik>7=Yp}aP z2ETFj@w?jtxp6rlptAP8FL_ENl%v27nkDe>aYMYL@AM*?25i#7HcPpqMX=#gUs*xk zyN9#8*K?eC&14t?Lj+NA1BIw(cYhtL#7)2Q7x^DNb<`xeN=Yqtr?-h3AL2064y&)9 z{NAVd6_Q(dTJwkPP)3mWeZ6J=<+$2;17$uu2K+^WvksVazszn!rbKuKH*%4Ca}lTb zUNAY)$z(i?EZ}O>3B7~&WZZA~2HD#PA_4r!deo6xlo`AGMzsIvmxS4OYy2$-vf|yn zVwH;-{N`_&XSMF-v-S&b_H$@7v`;;g)n{zXc?d>+rsVyZ`__K^am=A~XFx{`)(X=z z519H#%H-6OCf#%W!4~@_#e&RB*0^ZW?jxNbRR-OYaC8^TSy(NVcZ*x#KVtodk2-i& z*~;8_aN}@iER>mWalza$3t?l-C7spl*Tv@NZQ@*FZE%Q72_io;LcsqZ(S%g%47APH z%wV(x;wGkygf?t2-i1ia!E8O>C~1%Mn7Xw55BIe1oR}SAV@~z&^{F9P_x_QTeHg1b44oucwmh)tH{W*$9N_$N zsBf;zx(JJs>f%Hnp;;n5!l#_<0Ebra0ASOBT)cy#@17bH;M69@f)kkZ3HENdka~(x zF!fRsrIKp6oMOO^UJj=RIp1+J%#DB#+;`X-aVOA$E0 zA$Sg-5S4%siM|*V$PGt4zFs?VX6JVgDEccq+l{-Ih>?sovTmKmfAmB0>)U#N&y0VA z93Qbswq!F!IClb?GsMWCRpbQ0ZND)u+Y48iB$wbeh>08=Jq~w!3aQE=ASHa0w|*Hl z&qvI_xHlgEvtN>}Mv(sj+COq_M!$c{6a#@PIVvvj;fjOw&Nra*#R|vwWM12`g97u9 z3-Kv(s)Uyk>i>uPzj!3+_yfuRmp2VRtvrS%$`Y@DFSUF84@rT!9kO%1Yxk|}U~+T%CCs(5(G2<4S2R>;X_S*?u9tt;PPV}_Vf>$u zdqtA8mu~aRw#;E#+P$pJ)!%+>sgD!wyZdoC<#4xy^W88n^Ur$N*4u}jZ7YhqPhEE| zxhVIxS8veUD8HpcPG_>97|n;(!^#y@HsyCc3!c0iI#E%O7lIM%Jz~A`BpxK&@&%(e zH`OxmN`USQ#tl_a+)^tCpJ-_UX0oMcQm>0I{@L+uGyb$6?pDb6+@0F(-BEh?%T&wC zl-?Xh+cRlgR5Yp4E+79L-JcfGPK%sMbB~Ls3y+C%e8KGTlWUr40Y`6C?Cg(m^tOF= z*4tfo#&34DeX^rcuKlxJ{tu{M%tEx&JIgP~0HdT|%v>ZPAt4cef!`!;{uSoN zJ(s-qc%j(t?zvWS*yWD?OSz60;++;?lIr=3Gri%**(GbpGWk4DbXRFuR9F^TdRyzg zJ$zVC|Kgc5XN#?CEQ^mFJ7#@7H}jHY(ay4)MxxE+$B!SosK58{VRP%CYzPv{$;kxQ zY>H81Fkt8Y{rjsz*<{b;7zxIxNY2u6MYvIW<2s*|G`csT!9D0@>(#U6WX>iJv5X3Tt%J#`#EpO@XU3u`poIQAY%MZ#;|nr#ms$&z^=XoPeKIgo3(cyB-Gy)K zRot>+4Op_<<8;~lt9aFuvflwsu2(`lHP)F6ZZruR}u@ zQN{VYAB|8*^)mC2=yEK~JFSUiw+Tn2kDU>GIebg+Bhx!wQOoGO+oC!{&sVp7x8>yj z%3Nhw(r_-bSyS-LbhWx{+s&Oe;TiT~Y!};H!uI6P8tq_r)xD|t=qssdQ;gLI$x*3$ z*^6@@#q9IeYNXZS7k@xky_FeNoGewcujr>mM#vw6s>gPz49;;$s#fJpMCcyW^_P}m zA_-tL)IFada4nO4b!74I_PkkR#WC{X^VI4Bm)3^kQN!|)euL6vy;ObqT4YScXLQ9i zqub85?_Z5j=ilR-)!_xwVY`xjEF00y(t8f^fNdG(oM2hSRIi(QfJ#p}C(YMtMcCBI zSBqy)3K_*c)+pN44Cd6w`%Z@)2)Lp#D0k5%cP_-;GXL>X%qNO5eMUk3=J__Ve~;{d+=ZRhwuJb)Jy+(DiMvS-PxFA5Cj9Xc?B1t0Ub1 zzCyKtT|7(FP3vq9X@+rP4SRKgw`Sz$fPO{^UFX!ybf(z%PS(z=zGg?S&M7yyYP$-n z3z4O-`1kXfuBB2&^rm{xze&y!@=tE2G$d{y5FnPucIYaYol;i;wif?s@alH_(X&*ScCpckVDxqtJ zI(u00=#b0y32U~eW5C+R5d(KoL z+;t(xV4;HcMTb9c?6HP0!$%ioc9SxDy5@{iQx#=gzZtmeWb4(`#QDG%bGu%j^sKyp z?&~y5Yq(cKRjw4c$7&#Ma{B#_ri?~5?IY#< z_A6>mYn7On(rISj?qrkaB~`y#)id;;5_sWANoIck?U8}^fqZQPHmv*U_jSh7Ue8ao z6f%Rq?LBtvI0Jm!(t!56;$s$}6tORl^<~m^k<(uMxDY5fY+f)bZ1Qf~VB{MLst4zv zEb{X=iD)mY4%bA*N^zF=9D>Pv+O?dW!h9ob>8%-Z_s{sGc6%*XE9 zaXd2Gcgcz@U|$VtX}9g5@?tDp+9@L-;Lz6tgJCyUxo;0HT#Z_JWD-iDdQi2aQ8TY6 zB%3tw%R!x~Die8WMPJ9Sjt` zIy6m{6MQys@2y<7H>am7_`9ZzIr|O>cUu&`qW$hKl}xe2XZGtHcadc)wg^%NFu*#@oKuS7hD$s9|azTe7kn!1bqo~+q5yP@y6mgP5px2w}T)x6iw!F@i`W%*T+UHFRu!mDSfk$K=zoUQj&dCu=ePO z{OfHPxJ6O#J#)Favp&k~3prY7_nZ2i(kqAT$7)RX-LF={o*6tHrhqa(WF5?38Banf zW>_NMAho2`?Iy$;nW7$8XO+!7*=YV;#p(P*A-+nRUS~6pM(zoU`g$ zr&QTbdD=vM_qznGgYODy#J*DtW=kv3*Q3>Wg6^cw3A?7^C{wwAdnUWrU z61^qpsgnmvSzb*?;g&)#s$<41Lkq#nH&RCoM7Gfxp-F`Vn7f81cFX2ZFV}blt7dPv zlb>Or0B0A9?rbhxIvY;oKIC1MEh%xQIdU;!a`A+PKrELg>syxHkaE_pB)vsGd^h(BzW7$k|D8HUS znV{5elboiPH~a&hm+Y1FQ7O2Vd-SMCKegri$E^`8J#gEdJ&M^^Pno@3>pgOBkDvSu zC9bIhDl?6ERVo7?mF#>N9mf`5sCDUEqtDpE%}1$!-vZ`H-tsVNOGzl&=eNgK7W~Cb;v(DrHm&eHKU>tz;#TXW~MQ7hk5Hstu=dy=K-eV`wb@Qj>7s|x>^#Q2$4nU zXyem*)9wj<1$#WbZhbi5xie5zf0)DQ0gvVFT{UAI77c7C#aNSWh3({Vp?a`0VaCo5 zt{o^#*YP=lN$sWWxyRizG!(fWTH$FQCrRyZW*a3hie+T+{`ZFZd_ddKkI!;a1> zcb99To$X=Phbrh|n;tn@L_HqtGP|?;#^XBfSOnQSHF@~vf@zFS59_JiUdCR0Cp2V0*H=_{p5G>U44(S#pyv5J@nD(LXB)M(>@EqF)zjJ^ zN7050=2xlHcte7hf(%zIj|UkC999>6JH?L)htQ@w-+k& z&Y~tyC{>c9-&1ovJBbyBNgKL8%cR$1c*pY8{04lN*Ye!$&vYRr?K>qeeVjWV#a6ys zUZqfKH}6p{HM3snYQZDsVb->utw9OXiIu8hG0|diGmcB0_wQAb7twyyeSP@dfYMjv z=Orn+oT!G+`VV>b4>&>&n zDgE2y^+yv|H7cu<(^u=t?H?-JsSBDNggE2o5+Pan!pm|WH4Lq<){AbxVjJvqU&&L+ z#x074M~L=iQ+hayXlywHK$jbq?JX5)2zl)iDh0P7-Emw3j72 zDQcnQN&dXmRl3*UOl?bBlhdSYjy4e;whS)x^Nl?)lv@5bo^vG@5x1yH-*zG&>u9$+ z3vtTm_CGscH9i-eWKpTlAe<4jQe|u}Nh44PD|*3paD0&e7U}1%ONnD4k8!~l?(r91 zwRJKDr!ri3P;;1EPPvpamAn+y-kUqr^ibQ>8Zm0Ac2?9$R3%q)Pe;J62L4O0$8)dv zsduA{-6%5mF|3w(R*2<>_!uc!AI^|$5wM-ApE@ZM*}GfLiRv_+CG*=4oo+{@D+B9a zugn~~<8p9&NO+>n={Lt5HmzbQ2WMe$O`qnp&yi29vL;k7O$&0=PEJtsLdY>vxzxi%4 zxcM~V<2Z(GwuQGqtaN{Ovr-k=f_?7LXlqm+FXb8QA5deVL8LgPYUYQNrzO7D*{>Yu zt=D+^FzGt!>!tFO_p6RTA{)g5&QIZd>LpV~k2 zr9viH#n;cXtCVyCp7_+N zIa3d_&CPHw6>%L_k@_P4_6o`6{a${{^L3f#3QxhVT_I(rOW6j!a;u3sGT%i*781vU z+HeCig1bMxGO0WmOsi^L=c_4y6?dqCvQtKgRgcUpTI1D|%H3v9)gLYPw;HH@I+7i9 zrt7-KP3H>I_FOE3<_afe8hyz=@#x_;6E~;X`EOds3XHziMLn55|^pP=VPp;;ipqREkh=X0Y zuxs|i+VM7a*^uwS@4}WTYkm3OCy|A3^$Ty>vSTczl?dmc85y|*lJY9`r|sWP`K;`?xO0kA7Nzd%8eOz# zYucCeEpO^Mj9oOfc=kMuO?Ym}kUdWi@ zJ)`bw!P1qYfDF!z0DZKy>%A4MwTh7;t3VLFBAue^Cv%Zfl0sH~!O6~+)+o=SkDZps z(Zg)m*`YyMgp007gbDeeLe7CNloqdJbF+?~OpM~%ewD0pOg`c6C4`aU>50fnmCFf& zCnL0rWkmT4q^{C@qCA?O$bL3>?nwm4+-1Ien-G%7)h6#&bH@d#dBiEt-@#+tV zv4W;~d?sgBYx8Q@xK?Pv8lTxE@B4P3@4?S|R9UpK(UnKk_AB4B!1vV3PWn3TpC(B; zqr)mD9x|?WC6b)7TD#vm%Y~~+L5qr4N?S7A_5b{}?rrY0Ec*eta8ELc&WVej%Um}d zZUk4h^pvJt$dltP+$WiOyrkXJ(&x25d@;q+SaMFhS{w$-x^A&fSA` z<@f|lG)xblfpiC+yxy*U-s-H8p{uxz5*Horc+mGmhGg+{k%1zU_MzjXo=+5CTvQyu zh&GI2X)R=VydoEa4Cr%we6my{lX-^(rw%bM9~v2lUMBDBtgKEL z(KpifIL(uD0e61-oa|tw-vucS=K}!`AzC`Cfa4~oUr*IlT@xK!40&Jb;Gnv=L*xrM zL{EPq){9bAzdIx|E!E?ESLc3H{*UB72hUIjsMnD@<+v1t8on~T+7_7JxYwYSUuRi) z!RX};y?(7k!)VRNmsA9%lzG+;-1KpMEL>|tTSygg9(f_EU14|Nt7X!G^D*s$u|BId z-bdc9oS}Jsq<3+cUP`xIKm^XvC(;ux&@^-=i#7liSwEy%ZdiI)U)Eg5Xpg955ygN| zO2|~T)5m7rOS88$c${TXlRJy(17}!#Uwo0GI~c8=y}RXP)|iB@BFT}CA~|-)js~Ng zT-Hg@Pd~@g8fG&qg7o^h5ck*dQb6-uZ zWo&y)QS7rA$>Qj|dcXKF;@esV_2)@1*&1^7RkO!c(QcH=YwhGh{QRe8ofU2KX3@_=(5Kg(m4=HCIXtbcSk&~54k>uMMr8pd1^h# z8_vOBlfE3EX(Cqo19HFB6HZ^xJRi$7HL;xj1MOvC~$t;(Eq&csDo z{SEn(tYqr|%WLQNE%ENHL>)&x@8a7X(X__+koU!vPlIM)+THA$*L_(n1*%g}$Kb9U zohOG5D#Tq@j2NwdcJ+H8y;3TAM#N1~btu#S{B0eCqC*pG`lW)RWzt2iy0=tS*UOW? zX|?rK*6Y#AOHqs%fv;D6$auVlzGxDc_Q8KiK7H&ghxy6;{_}FjKW8{ka!`DIr6U?t zJWF|7^zP^K2YHP5LCvZ6WlF1-(-y(g{(zT$&0g9tox1l{;O+UU6UJ}ZbZY5I#~&Kv zbi(!{PVaXEt4qS2q-muwGZ3!v@((Dv6SADPXN$73Ef`z4eNUoO(W}{uYNY3d!Gfz> z!+ZGLfhKac7LGBA;!Yc;*SQK;5mvQx(Kg;Del8Z*QWx9lptfOIWzrj+v5jY|YJ5iF zuPjZ=5)XV~RykHsF4yt0)vy9b;2eW8)vz2Q_y5%%E-SOk+zw(d9U_K%Jd*#pG zT}nCdC9PsVM&jis$LF*(VX6iKZ99wT$}-Y2m+l=!zcLWmqi$m`C((tKS9BAO3P}ry z8T6XrxfwWa>$F;(!VJzyYw9xUkGxlCQd;KX5;H@-*OcRdb-Itjdomc zsV{LM?Iz7WU0NWdVG-Ind@DmZ*ZQ<=A-!qcrJ5MtBIIzF(0QgE zLQm(%$yrQd+k8?|_@DMWNpS25t=u*{JKHuCnQ0Sv`>I5iWo?q}V2P-p(Ow~cWn-3A zLx&v6wU^kB=asj=RjJNjy5E@CfX3?H6G}B~!tC|qdHq%CsZ3Z8c~X0X{mwuK*e)8Z z6e(RDho)YyVX=$1upg)0E5|jyq5|5B548CkUfm*_p1Kja5c|d>cBg%(qIWL8eE)-f zDxA$qylg=r4cGZiggR^{}yfe=YdJ^3p|55u>Ct>A=V+ zZO_K2X1i&MF~%VneLEbh9@mb}NCE35ls+}0eb|V&zD)Et%<(+P!jUYB#w23sMrJz& zMiHty;Dr2zZha{QEo-!G#kv2=&|ukQZ{1{L|LJSZq?OaZ`jYFPS5)+F{pY8iGj1bm z+W=gtV4+d)AKL=7xtRF{)vuH_UEKr?E@YUhGd^=}VcJyXF=wW`g1;u=a!+@1pIOk6 zq)%ZBqt}C%eyhyS0VsA*X=#0h4@*kwW6itNf0B>pn=C3_cm%WEeE?%Bq^oa=Sa;aQ z?vX3ezLOQ{R#{yFy2LKcTC4iHnUQQt$7TX)Ro>!zo^z&F-pgtm16mTfb$18-*iAPZ3HU%czMW>;vU5PYIDDKYFh7G~-0W&tah49ZIY)}TQENp1k@@PD??gXY!dHX=BL(;6AfDo zfCI>FxcNG>ttR$Mbp}%3v_5NZj_|5Ee!$hceYZQe@j~-xyXEYiGs%E8*!n2DDh+Ur)0CH$q7g=h_lT(m14_c{MI&PW7k>v1d-Rkig!p8oh&O%%QnMNgH^m z>I6(NQD2^#Ii%vxwIS3;I_!yO#pbCZ%YE&~JWVUibItK5?OS}o1GsuiLd%e^9`tC> zWsxN+(9&93htJ4mA2Kg%)9G_vD<}l&TXJRFI(^%seSu(5%8M7uV}(%os$cACSXtRw z|M#&BNvrAwHBCU$x`z%YAfQ}vaiQ9M5!!!H5@nzCIy}onrj#Il z>)&p@bORq>M;r}ip4g{wo7F0Q7Dy+cEISDhk%1Xj2#tS!Cyorf;YdQ8lA63DFTF%t z)QyqCt;V3S?V!v-bR$bbplv9&{sTDsDoyLkFPZ-ENQUV{vbPmb84X?B-0Xs@I=o`? zDFcb#h6ezq{KNoX|I+uA?6*W{B)P?}Lc)a*h(GhW>RTR0!EMTvcV3`4CFv2dD}HxO zDiofJe&+pG^Z%fzPtXA202|ib&A6aM3K^HrXi|1RpoASmQ-E%$sHXbJL5olazw*CK zkErdT{LGdy%Y-2>)#gmTa+wr1zQsY8vWXLH#|?^dgMyR;pkI{ZUldPuZv;LBQ6W@s z{{|NW?NN`a?*ZJ{1JPIK0NDkWF{36dJ3BVKn#3g8%1?sc4|>1Kjo+A7La=`hAfg2V ztBjSjp51M*T3m6tq1y!aS>)|Mke6+Ejlk00tbwq9b5PQa4_|UVzDN-U5e4=IhzzBv zdLPUk^j(f2khr56zZto~fYs!sc~7+(kE%tR1&8>5auPl#7=de#;4NYZ#_M6!rI-V$ z08;jFxmSF6{WZf^qm(+v-({ZrWX`fWKht=Jg*#)+Yyyv%X1NEuom~|ZA9ky4`3awhAV3xcnd$8-GT=Uv@m73 zp1ILWHYkS67`z8xC8hJ_beht1P|4<>&36y+{zB>cbpCL7Dbz4Ts_yAX+8J4)o&R<7 zomxs*_^}$!%kr#JwTPqi%tW%t9Jm)Cg||UbEug_s%S+AV`5zPrb`}%)9_3DN_mk)bNkpjdT15Rp)YdcD1t)< zINx^??lwEzjfO`X(3;lurq0aLlZWZuI1%CV172tdi1u1atY1tOUZ|VH5X9b&G;v)~I44?F+SS^nR=pNwgNqD0F}5($?soOjD-qig+gD5h@6 z1H!t2M2AB3;l;(()pcM|t$+LXZ$B-1rA}f=Ze(wGa`Y-M5ak`=aRd~ZF0vTA@sLPk ztk3j1JIpNYMV1idthdt`GH%wX(-(mID=szh*t_f_BWjrgt5`;qHhtNkQ(lb_ib~x7 zpb+dPes$*9_)Byo)|y#-A#{mbLVl-%)gmn8fJw2yg0?Uuqy9V?KVHu_)!?B2#kKHO zw@1t2`bOA7glM~o>2qHY!Ml7~8^^6!U*@wwET5tmlCc&SvYt^F#b)ugTkuz8$@s1e z9R?Kh3JvS_5tL`p(NJmyt0!I6?b_QIwA_sjga#$KuSJAG^sWZI#fHm(@7|u=(y>*K z=m!{{>RhMp&-~o*)_{hV3Mj0lUI*!IX$Mk%RmyMf^2uRK*bdzgwM_o=sQn zv)#~;$2W@Rg1ItmAeC6(G-Mv1(%*J!(l zu5kVkJ{lOB7QwuFrW?QXm$EeEGW;;bvRyQSn62j$R{6in7?u_Dm0=%P+I%URlx3!A zg8wb*X>h#`L2D7ffC);j0gK~iuTQzOLdflTcXK?in?eUT?a-;!lufH6fA!4F7ht~) z;ldD-Z9l{zN!Bxg-c(RQ`&=>&gK1M|Kzlv6cPQ$T8;@9v%>G2Ga>)tw*|<+EQ$A^c zQEx6QfI@pDWnn4FNIR18EamN5vQ6Z59iiy?*^+bES_ZcYX(r<+Gvh!I=Vr#_@BGo^<~b=TldnlD`>>0s zY#%kTfW*FQPI2Qw2ody1{T4!biAHu=$Dase17$@o+$eWTv>D(SPRMwx})hf##2dadOBSdinWaIZgN` z@8R&aKzduz2?s73S3fcq2Rc%JKi7zHvi5J~;xSGDauwrZh!FQ03$i4%WRnncTxB+M zI=x)D@NOttG5t8TEtk^$?T4v089248Km`A`0xg!Lv&7~Zd z6;ISQ3mCp;_aO}%z*n^;p{jZ5S8QgUKOuS1RYP}Ch}}e24Xdij>+LDZ+uiRyEQ z_GK|(jC=Ml?a!YoNrE$drjkbnGS{r=(#hIv1{A_JrG_f42Gfj+C)S%VAe$Ui+Ei@W zj9nzM-Pw%lVq`WR2_%C-LN^I3wxUgeM0*xk3=a!hxIlMBH)mK0a>kIx*=)jjLk5N$ z!o7XTLK0{$qLj1Yp}~kMo|VC+LC*8V7q_Pc!iF))U9_FFkHXd&+GFVh?4HRzwKp+z zRa>Gmvo&|}@Bs^7}6Fxld!6ODy z)3pfi2};Kgy(*m86G_+7Q^~Rrd`4tv(JWL~!y}EZjm9f)U#8yVg`4+)^$o>Gq()Zs zwEBUIbHp1`hy_%-o2po6Le%p%hvWqn%@t`dS z{jilZUz;Rdbc-d7o8I5ZE&gM($EjLUr|mx#P;4*W?A{4o^852iWAL2KVvOc& z<{YywLqA8>LMyExrTf^cr!L$Pwj?8(reLzt!%>d8Rlwy~U~*-`1$^RMR|Z*|dkAvu zl1TcIWq4+PDP*xWd_r04T%Vx7GOuk)AC?;r)L>ipDmg^gCHCXmjbytC<{k@wr0pC) zPwnf=GE~|vVLX?WPz^EeJIk?3Ii$~LKhKY7JxM#t;uV&yXbzK3k|l~Ik+~!axW4@i zciyjwaPN1Z8&3orTBvZXk15B0qN~ayFogN@;HrjxC{{_5Lf0@yM#*-8UQ|7H{y{6h z8&yLg?UEL&0C$nlBfB|})_l(*;&X)4vhINhL?Pnpgn0lw{Fc-5_;01{dOoDfp?aWp(kTTqQQ%_2UJchx#Oi);7hb)$Jjp|E-?PmeD zx^WUX6R|xkV!wvrZL-Rjp{m>M&d#S5+hplBQJp4uE!Ette$;9fZ8JKx%RA#u{?>67 zsRR`Ef{(h2r|L{g0Ji}+3r0eN70U>%s$Ka>5pbm>Z2Mnu*Tm^93I) z#Uxc}r&t;MbUI|KkLO?xC+~j!WnZ$GZach!S_osCmKZX~-zNywEQv&ys=D-r4wnEz z#L|=w(Hfz&$I{7Y*C}#4grEE=16<99bG0&%2K1vC%6ss5hYT`A53>g$eoX`v@(kjW zxobAt8H!w^pbilX@C+=xX8fb3{_>V3%UO_xEP+8DC8DC8#ztD@^GZ4VTj; zu#kbetU#SM5Y{3{rn_4F#y)fKbf_Zi^(jzM2};{=H3CiO4bLVJDh|?~~7Ak8K}h8(uYBl}DYa@SW46ogX<$ z7G>FT<>cPjn>f>M#D5e1D(M>m@M;a|%TV$XQo5qd9$c>$j?=70XKP ztd!rY!lhl=nRYMv-Qi6j9L=|*S2cvl-|d!ksM@HdGzH=b?Kw!eXkPKOE$GnaD`VQc zaVDLoY-8SHT}w4dQ{^zRSqC_s$R+DrQ*!*!T+qSp5KzkJix(}gWvp=9-C@gbd%bWuS& zhFi4tQh)t`tVfR+~mMfgOeHPr4Yqg>LMHh@0}|2P*jDbENg35$LGpL9<#+kL%qN zWjZ0A=hsXHV55_dV6~b8ZZ)pAzD2L9x---Vm2SX=V9=hw=$~FAMguEObt0J zBRNZB%`=;OnnnWOyb@Zr4V$n|hP|-x!cfcui6iXwbb}Qs`PGv~hBC~n@DPY07Y!6G z7HjQQowM9L8MUEq`P{)g83Mz*sek!NB5~{KVFJ{mPLE-`=A6HTXyZ7g7M2GndMdv} zf~+FwZmFw1wpaC$z*g_Oq#yg}Dbz^ojsa4AKM6Nl4o2X+I;=f|@PAMyWmnENTbVCU zpwaDy8rF0Nz6t)#o73w%ht)pwNm8JagvMTqEtVevtCdBU;dLH0?j|ZukuBJsto3rl zX+7+3Ov54CGLF;cuMF>;BHBR-_!;M?NI zr)4l$!xp_LNzb+3>ULwX9d&>Nj@muctTuf%T5h{Nx~aIm=};ErWrd^KT(6=`7|ql2 z1;PX4uabe9Hal(0rif}T(9HUkc|k0*e})6FZtqKpoC@Lh#GbCK2kXo#7Rb0`byDb zFRb8|$NolV9iJV(47q05;yk5`u_=>qL@ljG*DCyFz-bv?AZdB)UB`A|`tHmYPiSj) z{r)md4hZ9U2y^B@TBlS_j`Nq|TZug+8sbZkJhR3)q_xI?dM&vDRW{`iKk@u4nSGIo27_5X_`l z)UTl%7<21Y(DWmr#%z^tszGRabxCJP8GfSKvmSn_dO91$T{anXtS9o5*nOB+=KgiL zM{GTLf&(_GUctk({huxck@}^{f6iteen$ppG3P|>vzxKnu~vP05l9NDw+y+&Y5!E= zM(nOoi~mrS(^d@Ti5#w(wi}OL5R?~1nw5VA3o;T(Pfhy|*6F}WR?mS@D~xX$>r7Nw zuFVjY!cBsbu@rWKtNjC{mO_!+rzDt!7%aq`+JaBZerB)pnT&1g67BcDkI?leo_V|v z#s6yNG4jnd*l$`GQ&EK0?`QP?I&IQCmPZ!6O2o@g)h1y4OCIiu3uov#~MN; z!0MD$4?OQ~5;77RGNl<5b14@>_FBm_v5C>|BPS%<_*JM{@LE5N?(Da);ax>4F!bha z+GYM`dHUO*<-xi&TVBYpMahUah^R_rfAK+`DRd3qgAAA?ERT*<#X(zdHkUDLd<&DU zp}WH3VP5T*c&pVog41H!eu+-k**AfBe}q@J=fNKuO#J|E8$Zlei3TvBdt2?m8l+L!eX3`$u!{fuXwoV zP`c-M<-VZz=Msf+#+pC0e8*+BTXQpI1#l25&0~~Tge+}iRF)qRef3FOsiqt%n^LNH z`y0tAm`ijQxj7qc9L6H*vFmkyeTTxf6>AU(Wk$-Z1_)X5TuU>KM3ndgv!`L4%q)3! z0Q)x>#HAjINgk^QOBIQRAI|y7Mna;}$S+wG>1}q|>Q|(98Wefs+8h$LL@~HuR0f*R zPk3+hg-8|^pegMGteNO49_;6stkLrOM~cu(|iv*!3n%&NoEO5wAF|l(2() zs>$dOTYp*~A~}3;aA$#LoRMgFA3-jS@_UM8vu&tbMuyHdiRPi2UlCVdQ}EDnTKJ0b z3Z8!%=_Zq&37GiWN&2Ah>w0uGg|SWxE7LmZ$=c4V%*pE*sE#cdNjt#8J8LBB_pIv5 zOq^8Wind`0wAr@7?5PS^L_~rbTprYQ(GjD_OEX z48_V;ofkbB7F1AYKwDFJB&#}$caCBX5JT0T8$Ac=!duVCGGo01By&JrJpp309-EXW zNeMNau{&J1uHABS9tk?l7^H8sjo`(p00xse8tii8KRUc}mfHh8W5%Fs2?z&#S=NFN zw9|%f90UdAcNDwiqUuRr^+1m9VXk2qyTbCUfgqnb<<(D9=5St|iOKe}=sQL-()#CT zJhivz`%aig)C4?#60OkR`5*AmB5%K9V>m*f(cc;^4CtI>JANL#)N~p}Z6+LUx@YKz z2iN?;vcDaH{f9XjgFzzSnhMYLO-zDl_4f;rbF;PKI1KacdWAq~_2gne?({E27G*Y5i{E?BRThQW{cLF$SI zCRUh)>1XP&-Zb6aN6+3&dhp7)vlY`^bdiZ{+{%*MDB*?U--njS8o_TNgYcp7%+e*M z-y3=rRvw|WV_fVIFet?7bzL+u9|tWP4HzvhG4;#Vf!?DYAJlrbRLGviY_{r$Om@Fx z`h(IDdK%+HSDw?xw@5Qn?Sx|^dF|>PtzF_~;F)SQh0t%)eV<92aQWpBa2poRq0)ti z{k$nExMsaB31kaNB;4CQd$RcD3F=C>W18uK$c(wX0gKH%<+X)J|3Pi^`+1?P)ChNq zw*Jwv-&HE7)*DhnfW36=S2rA!alZtqb?LvB48U2oY;E(_*pp(jg*S$^wg~l&fn}(} zBlF1&POJn2SEoKUq9Y`o+B@0LN%68XUy33Dg%1a+j#{d z6tMo21m9(x|6iHa|KR}U?h}lfV6iYO=iN5)_S`qaYzzJeg_C0+NB+6Sa$=)-GtALE zgh;b|8L^pl5ufR@+zdI~BI~umi$?TBN>E?LR$ijDF1ntG&?r}A*8l2{TnQRQUGd7M zoqk~={ss@tseUf8O}R?3RtMi&w*dp$Zw5PudQ}0<5?U&nK0;XZrFl%Dp1y3qv<;1c zm22cNbVzv*v32#FO0v@L2%n5zq_ni;#Xvko&E%zA8|lo&T6zJG0#t$=_==yU`#>Tj zaxUmPSN!uVGjx!()}C7HTHnhtdWmlh7U6 z2^t5l1WEK;7hJwwet+t}O|FjeRy^!Jj)^VsEiP8xMMEMRk@%OGGQhxmM5Rqoe)G~T zFF325PZ*szv2o4uq4U~cH^OcPF|T(HrzHrbglnON_clqjRwGV@@t=@fU=1DHp$Q^9 zhKMoLnD=>7_+ji{(hg_6f>jfj2H3c2YqKE>JBdb64`tk)!Ww^llFdf3?Id5-+*8c@ z_gS_d@B0se7ukwF)Gdm@ji2peJS7K%O3Y&q0x$i@$fE-vw2!FqE2{eB8}-nHR_L#bHBuS$usf5Wn)y$mM5M`}i zc8&3TXUtk(rnYBn=X;M`SqY&wnF;vh44MlM7r;bdCI zxl&A7D-WxS+X3HjV!2eiBO_KE(gYte^PDL9HkJ zK^I>G9mt<b&0vE2!4h-RHo|D3VVjd;b9*)mcc=y z=$xo?JkNGWMyX8xF&4CZH=MB9-&j+WyUVNN*ZXv6!KmO#kS?G5njx942I6*}_Y}P> zT`W3`Bis_bHeyu(H2Bl{I;_%^+uP_*yWI~xi_=KPSCyni7Xq$%zO9snN4#(Kq@bZ@ zqxDu(YucyMF#~FO!Zzdjt$LY_pc(|`ZL_y&`#xE~xsk^$Z-IO;C)4}`WN#cDqHqnR zH-0{{10s%sB*uVPJTGhM_(i(eEJ{(Ml2#5y0_in1R@jBMxm;4o#=0dZS3zt8^6b6g`AhO=O_b}of$+9L@m?SP*DR~e=JxPISG~>=SVw;NuI?;PE3!I zR!AgH!r?b)r6rF-k6Z&OcPqPSa|usM!!-bYl@J8#VoCj-i&BrktX4b@>EUiVmJ2QQ z-5`+^FdBSSY|;KAzAwWy=eoRV(Gjc|FVQi2bz84H70L@o-V|Ljc2Q>Ppim7I(v3HS z`z3G)P(gM|Z5TK4^0p50ro7_7R)Ca0M;J2I5-wmgJrMa1>MvGv7GuY&WGE=>xK#Mq z(NO@OAbyR>yZfVwpLWI9{?GUcjK{mAmPiDXFK-|9a!cfFKoP=0hSA5p@DHyDHxA@A z>W4yOaN=WCm^C+T+m>Oks;sAh#|&ynXW#Ga^iVgU+?_iOfAK0aX&k|q;V605MM zOgB!yeGngN4(EWK4RMe-rKfc3V}L7p)E|7(PkYw>ohFB`N#~KuX;Qs8Vo=rTzM(dX zJa3Rp}h4#UBEgxym(8y%2+Gz%$kLez9YOujJ5?0lYMk615FPV{XcrS_NxN7oVR`ooBa#*nq|0@b@&QZfA zg!?H@`!OCz=#rCc8S7&=)@sMc>;=)_N_IZ(d1F)X&8 zc#7EVbn}9Z-wg|Aw<%kr!BP|G&Y_5)m1bA_ZHF6Z%(C6}GNn#7@|f$kt7-!WwU8pA z*R?4fn^Sb48~e!#V$5+4p(8=eHw0782~h2eJ@pQNL123cGWd88z7{~R8o6f-M_8{r z8iTU4{0=AUqDI3k=mND!aXYXr&3LbtpiSh5I7C&bLL8Kmk(J={`w!%VQ|BHIn(pS+ zr&~4f5+%~zW$(U3>C(lW!tX$J$_nab(uzjG*P#t-_vlE)BG~2AHIz1Zh4o$I5YH^pBZI7!w$r|Kv>d1MV)`W-%Yzl=2n=cLJ4 z`qk;o@JIZCa znGActtt?Q*?QObkq~dKfQt_z#ta`r#5+wTeR55X-i)`K|* zNeP+jbzu@E%kMfBZz;AdxVfneTR>JOqI;N{#CS>8AN$Jb8g#Ahv2|US&?P6$JohZT z-kpIBk8zH7e}qvYvVMIVL8UbQR>@?^{HcwNm0+@J_jd3wMW<-KLa|M5J-0$^xU2_K zav9Ynm;=qI%Fr3A)w0G$ez@hD$A^180m<~F<$U%=yqLycXOCh_AAXy8%06%9 z|K^pU+?$1l?aV$I4_}Q4&D)Oi%_B!pU-0V=jM|V!#cOm$IPNofUpuuPEK2%AxTj|w zr`STdXC%=+4F}P$0#XIaGU_%#6?XoEf$Kia*hFD&_X%uuZqTi|DYNK3r0= zDG5V3HP+nUkFmlXp{l9T6yUEJSCV_DAf&@GImtpDroXDj=y>EbX_4LbF7=Cf!_ba< zs4&Ydecbe#+F2m&B~+M7rSUqkjEoZU?ViPD-seN9soTf-;s8Zvm2R|(K*M^#5qz`i zyp2DP`R#MA`xQvayt~o6EI3i4_$K3Y__e9ypIuKMT;0~K%A;(XGTidm&XI0e$<{|{ z_l97~_!Gq@oz1V6*%*!rbAsDI)irG#RjZx1^RNgx z%`@Gdnx@a;YWQv(WM6GgJ+;S+g!bWpr1F8Zg882+8dm1Ss;_QG=$RRMGp~qc<~#tC zZEYJb>45yCzP+NFnPJV+f7_X3>(s=9KD}e1!~bz?It^KJcJi`}J<_PZEP9-pJ|Zc} z)cv{B%r?5B@FZ(}4LbP`stG1eU92AvlXtgD9cWqLowVq1s>6bab*n#Aq;i?1#!Q9w zEShEh-u*Kct)Za=hEHAoE;9AB=yS^Dj1Ve1V1^9Zq7))4)rT(^AZ}TUgv{*U;y43X1mVbeFGjg(FRBZ{DZf zg&lr1&Ml7UR?T=ne?{q8&uYl>nT(#x%sMrY_+oQ66C&PH)2 z2==L4p>gaa4W>m?-TcaXkWix~@{)e(uN68~wh@NeW@Jm~Rm!$~SofM$S&?<2mk7@~ zRk0rfU^@IeI4c?u%ubQ@xm*AYb|sU4sEQ;B>e-9V&h6O9?fBP|+=_oXc3PYm^&UST zQkG{?R!dtXaL(l3X>P?vZr&HCre7L$Q2AC~)(|#rohW>RQ>Mw{$q3*sYop(Y-ae#R zn$RxQ{cjXQclF5MuWERjVyX1dN;CupH>j~OZp)m^9E+5iGwT@5F?gH^YJ#DeEs-&K zjmhpNq5Y09Nq_V5+dC67Y~Kr5x)HtdH=BXX-#3-y*uk2Dg5b9M$01I=fSY-T3 zt%c!N0TexyVxp=ZUs%&$v>j~2wxtWq?{@YpU;VsWs^AvsZUvEO%CM{GtlO7#Zg?hJ z!!F0*mwksShAtphU-Ba4r*k+GWEAajA|ZHbZAl~>CnC3>J(cpPrjaXn@=+}oVroSl zSgc;tAa)(@FwOF)V^_CGqk22Jf46dX#NIFn zYUoIG?Sf=0u6sz(7Tg7~BNM#u5WJBhkC1~&N}Tc||AnSq+5<+Z^4>82`*`KGJwJPR z!e#yEcBL*@MSk{RWtR1*@gaO2vsu784bhlLPG)yVIv6K=E&w&2>%j zwPe{kEU98gq&Iz#w=YMT+&=rfK^axx+Sb1&LKfa}4#2=fS2XH2sv1@*fwiat&NeRX zZ05tyL_#>L&ZK^A|5|E$ZtbHaY65Yhf;ntGva(&bdL_Gvde(MwPeF|# ztzvP2okPnD8-6mvayoAh3=@Yb~DgE|5^b%n*NwdelV85nwt}`C29PIKk zwE4iST79=n*{qfLjKaL^h^zVZU77~P*q_i=1$NPyw-_b*l%m=mcI%B(6!zq!G`x-F>rNXM(nxvx`aET>fR$60mNCndtY}Ds zUsWGn%1rxf{Wym_^O?NfdX(}f4kJ@4n!sEles+uG!Q~a_%Z+Gw4wxh<^-MzXO8n+U>yDFb zhWV2y*%wi-SJA($kYV=7mQ*U4fhMCwH50_n@r+zgOdA^*maC&S{rf2FWmU#Sqrw_2 z!E>sNw%nb>t?8{d3$mHS@4$Jtc2Dd3-$feo-0*Mhz-?firvmA4OMAxX9@er-$*7}X zhU#H2d*3p4w(pFj67ee$wUUn2Wd}sb%!xnH(4B~^KrKMvXXzy}vj3nO0i*fP$&;Rf zxxqmt_~-0OU&HV41BL13wpDZ0#60udsH0=dIY^NHUNQ27$JvVcq%0KA=$V%`ur1#c zFKc+)M+CING)WMUn-#dy5bvwxSEhmqjDar;u%q|Ny!p_z*CtM+U`Tj@+y2^kVDNKg zT5mI#j$K?YKY~1*bDL4m?eDjgiYyEM%&gps)!dkW3&i0~ncgwPNw5w_eeQS2@a1@- z*^`na)uR}DaPlsN6zDO1ijYlFMCCk1%sF>@9CY%oG`_XU^5*OmmiXjB(B?ZV*#WQ@&pTFsNP zzN-HEd~JQ@uf{_ep(8dkn`?qSTW@|k7Vvf*J{v#nd4jK^YrTPC0$W4o+s`MCLE;p< z7BkFC>&K`q%JUb#uE=p|h{vo%Fx3Oy-!tNOh74`DI+0jH9d?qc$cCTJMe|9Ea($(p z@BcRLUyFL^<8LA1BLndUOIhIIupMWMzrq^N=Yh#WGd~5Fbb8rZB`|FVHjOe))2tPg z({Dz2N2n1G*Wq3hhgO5?f4WEIx9eXQSNFlFy~K&#)AiST(Dvk?iz@El-M=fx?5Avz zj=0VY+Q`f~CHVE5{*5BsZPVSOUPM1QG>{rz84s)0ae`*X6hXBg@x>VO^)G zg}1WBS5JA<4VFU5+TmQJkb2^WI3j_7FKmMDi>3e2Zfhqm-yp$nTb7-Zk9qFDd?z0N zzs8>bm+hyud+28FOc=yARO?1EFj3{xY3EyTg`(DxaB#mQtNm0+v!%ayQL(@tt>en? zvg`vXl*|IpFK6o78rAoiiEr1+7p0b7GJ57rD9bQxQWFPuaBWy#^zn$YLZrUZQGn7z z*xRcgo)6I5w+6(No069j@@*QAj3@xWJ8vfaUz0ODf*h&`gn;Wm574bp?jPhp_?E}& z8&SL=L9BJ0L5*t2xL@5Q$Jpa;z6?K7=;n<>gus>>5~1I}qi=nDam=_&q;P`tS);h< z7;1y~>P%Ae{G6Or&y#EE&COYXWOm?Y@)T9NN$rN7jgURtkUB}ix!~e0sN3_w|JXMe zPPze|a((zrVoU|R-%To$*}*HVyZ#@PM~07b*MCrI_`MyZTvCpIq&!{=bC7C73I2on z>HIo?moVrJbI*0YD`nw4k+^$Sfb z>9N5dO{!4CtdW`(hDR$^ikDJYid7E2*9kaTv9=gl2z5_1BWZ*guIbSk{>jaUZi2G}k?%0J1`xuW9K;s&i&Ono+WGL% zI&^bUu7Ou%_O$tt-MM5TJpQ!V{o~|aaBDP2&ZAEZLTXN)WPQzKu|%o|bx9pf`}!a> zM8AyY3G`44wJO&4B#*^&y>*(nMkegXVKuFhI;EXxM=ti6e8{ck(PPuG5t;{&*Gdf_ zVnZq!%T^@WQ>AMHD;cZVtJ#}7ozcp4Thi3a68Y=KxpIS$A|(HVG7Y;#E^$K57%Ciu zdv$MNyn*OcvjRH^j_Lrre_xOlXHzz8u)y_V!VnS0puSaP-M~DFa3}r#6q=>U;YU$i z2-qapsT+W~G=OQkhj>xO0BQ+0^7eldNLRPODy(5L6zi7oxuI`0DT8_6+ZZ7=C0y5$ zERq4~Pg64o(l&0iSB=ceHaRsEASXhbqkP`UI)GsBotWc7G)wUFsLccy{B+|XjszGx zwR}PCFEe~IBg|L}4?Jr*yCs|07LDf-Y=w(U_cU6zIEzY7I!b{Yc&FT{>(<4W@1hUF zqeOU0B*tYOP#GBSvIQ$0GwX)jf@M{lN*IyU+udPeBhGuKU-avD-{8e~DC-RxbM^Fh zrNYsfIOZ6|EIuRZIggXkSQKjYxE8z2N9L0&ax$2j@QMMjl<>5R)fqM-e0`GHcwMMo zou6ZCp+&Ke7F4V5u~RJ4CW45Mk4V^^6*Xi_S}}bpSIbPY8PUelTB6Bpneeo$Rvufo#ND($Aqc(`{tzSi770 z9STbG`Ly#$G{o)@1XB<|lJqtG1qd~RQ0R0C)b9eITwg^tQt(5~>;a)GTJ_2357K*_ zUSlYECk4+qV8;CP;kuMpR0VNavw}vLacf)=h^~7Qj@aZzfC~mjNp15FB~P|4oR}x* zDZ}e%QQEfFKE!|YMCp0jr_VRKdNb4TYq>3JQzRgQj63N)_9w1gg5gX+14hC*h3=LZ zch=SBhQuG{Q|2~m_g|#qq^s$6gE_clNTs(r$MpP8wyU8M=prKLWaca{Q#Hy{BO`k+#F-r^SbL>MI><%b5Y&sllR=S@ILX25bX{h zh5H~0B=#tflL4TY_7Y)uq0zF2ff<-ub|XgNWrQr>RW34?2V768*t-Ewo{M1t$Zlc) zu|x4?wQWrfskXm=PoRNAUrAa3I2-M6evv(J+G6N8TFcPgn7)CBog=x08`9P1OwciI zrR>2!78hrV=M7gF!o9krHHujWi9D%eRDs^|g3oYB3z)rfnqTlAVsP2DdrF4eWWLJc zmlFj?TCl7wj1LvYj@`1Mc&}@c34oiYOfUt3h7y>WkY$1QKJYI_Mei* z9L($bne7U*b%0{tE}tWI$m|q-U&X9$2QNGde9wd%j?Fim>>hdcFfrj~w z4x1KtHBS-o@*|sO2SeHmB3K6=|JJi`TQ3*`wXC#lcZBDlGt`-Dj%*K5{7J3ij?##( zv3HZUhKlUPjF%nBw&)b5AU(~`fxrlpgLTi_8>DPN3)G)xdASLFXj>1y7(GE=$XhUS zSNCP;N^qcM?1XaaI1iAo8`vOgM`RXOD?Lh%b9{r(cpe)Fr~~^E#b)(}&PHYm5WM;5 za~KT5QDQeqD)}z*9?CG*@f9fXPP<_GJUjoaBfRFh=b6U>Gw*6rd-c1nOhFgXnJhfA zgTWB`Tq)01zKws%I+5@yw| z!9xWv7b!$x@Q4LGn;ikiW`B_>DGN43ocW^9wGc~zblo6#%;*9GtbT`Hgyg6NkvTne zZcX|R2a)4&o|K1B+rgq;r_a$!0fAO)p}ITGYH}1{n6eYwZBG70?~G%?@5yRLRC`h0 zlsw)YNG4FQMW`6N=-efT{}OS0(!=<|9*>+-FE=1?ueujT##>qsc=7%FtHdY&RuO=_gM`{n z6YdqW@$ChWPZF;|^%7XSNlGN=jY$*M(kx{b?TtnXK@XN;l^K&M+4w+PlmF9JEGBgh zT}YeN7}A-SRt^Y9_5;!gZ7#>|5^wN{WFxYgbbryM*{elrToK6 z!o&kl6l~m(6Y1?2qWe!KA!ZX|QURW_>35IzAQfG+>~*?N*Zp+S7}9p+=>q!erQhDI z@`GW~tKX6SgF3eQhG{z|!jSX!+QiVCI>&n0?&-3i2MRH0udaFGJ-LPLK|e~tC^J5| zn+@6qEdo12mvySIMwg!74X57VU!HM*~;jq{L(bzng()mXw`)}r5 zJ8HKdj#_6tXz)qO(IhU7wA@Ukd4bl(KE!n@Wmkf4)eB+Q0P}t&YyT#7lYUmIK1n-X z>S_M=cL`MUr;CAJzL|rh1SIkyF~Q7VEdCoH-xfnK!e^&Lq2&ncZifz4yLsN_gLl!eOUx zhUfPs&09+Ehu$sm=CGYN)lsU^AfdnAJ49(5{9b3UXF8TW5e^L3WN{QX(PQisyb+xx z`z6QlxGzD$;*7p{874N0+pS~SBhbUYu2P|E4ZrDw-sF2DP^jcafTU=XEnj)-8c&+b zy9_JFb6anb*>JKV<|VNto|GyGaK%EOvADQ6yg<=nsqob61Z$Ky=74TVO-N_sGHIj*P{piu z=&-r4Cl^w|pdh|}Ng$TipS3Ff2Gn9MPzuYwdT%Ft$_>|noNNl+R;m3EO%KCtb6BO;MKjEp&m|>%`BB?f^BPn_ za_pHZ@)Os0@e(*xW_0Id3T*fk+9AJukdB#>`^xmzC zt9S324MC`4kw@8JZdMoC@X^R$0GeJ@NuX(p!5T|36mo&tyL98HQ4=xwv>0boCXrA9 z*>hSJX?y?G@45*i(s!PeCUhzO(MqVlW$S-6>-xU@P|l>(i<9K-SxF^0c}hIVhRVpB9nk!YeiGCSPNNTxxhCm2+=AiSWwkBL>Z?6 z1_RrV(yymVni+zSxuGQp64|>KQw`g)iTY9FxB7L$zu_}uCMi<^#i(z0s$K}H_>f(K z+V+YaL6F6nUGUc}j{6{Rv*7<@#S#p9BKn`7wkw}ecxbxNy$9D?h0zw@Wi>WrQ?80W zB|#qz=%WMj!!!F^M3i?^q%Fj9+nBfObZh`@1QOces)qJbu-wk({tZy%;ntEs@ilsS zW=-bjd%J)C2)5z=%`&WBj`|sDRuIYE^E+?0e`@X((V}n!VHgZC z16`6QhWq4Gq=$aysY)c9!v?9d3^?g8xAh{^3-HusbT7If}ncT#Zibe@-%xJ zwW~Y<@4xD?N0b$||KTE`5(s z^~YeURVn=tBcum;$t-dJH@y)@*M~T6tDlz>M;(S(0i&9C!&(dGDJ=@2{z<#RG(8`K zD^@A_3%$WhPDHEnj0uAoDA2Vj#d3~=QIcskB(m-cHjcQ2&5TJ$*Y;i4Q9vsVv@aHP zgR>yOMp{{uTe`A}P-4`8lGEq2Si@rI=NWvSVDMn5A_xhZx#PVHRT?)Q!sJQo?I4V( zOzQo>^UA+RnEoZniW>Wd@fRRY)uTIDse7YhyTMSI2c)Ds@h5?$T_+{^=&mY4ktV9MeB@l6*C&|KOHVE4d=g5*rkuqnaubFYg5K zh0L;Vex)ZRf`af zAwN{9P{E=oD+$=2VYg^HtgvKEdZm2YQ2te+@|p|o7=1NWJ|~@}fOGN~db(%ttI&hU zgJ8|syHQ)*I{GH-#;fuCL!aMy$ZM!NYB}KaJ~O)=>Q%Ua_k4S1V!`#cHZyz1RY)2& z@R(1r;7l+fv)CH2qRg-l5Bv+bndhQx6O7mI`nvp1?&TXNkS&e+lUC?0Hm#xf&8E7mO@R!|5MO0By`+^on@B(Az@$`42&3Mi`{{PRAlc{PFenQl=*ia zZ~wJ{CV9b)!v8#G>fX&>K>v4xjm+bX%t>j0AsF!cud}`OpN9-M-h&S8+V!t`{D;8F zfl92=Z%@?XfwzqQOie5!e_TB8MAXsY(QPa^mxynha*Dk$cGdN?$9J^bHI znmlEC%{LsGL>cga_%~O8Cym8V*ok|%DJjQH|A6~#uv0Sw_}yb=rFa9VIZ5=V_R=vc zwuu5;%!3n8!1GCAq2NTCl@&M`#aF=0j2gU9V|HCwCMG2&ZMQeHHx$|Xkz#u~Uq{Mb zEog>ms3&16Ny;<0x}DCj0BFW(X|aa-*ke+YJ}zqytC)3UF8KhbBY$TKTJJ*Uy^D* zRa+Ap;q612aoW#r@*5y;Pk^O{C7wVxf4FJ8`r7&M6wd0Qk6O{s?H4^wU^`yOWD$9< zUT}W|LC$e$?Rf1RfwTe5P~aWIjy;3Sm$}meEXk7Ts(yr)Jxi+$ayHON~tb) z`wPJPcn!P$m`ZmOFitT7xfrYAojXk^3TF+ioN#nH^>?p;Q>w)60U0B}BflOuDu2Vjv&tfiQ@ETZGQQ4dy`IZdjPt^E_)kyb3vC<(cc{Jl>8io!)sZ|ty zkPnyvwlh*mWzowKXNgSeJ*JH0v&s4wU}*yKSn6%v+c$TMqFKhFG6;0?)0 zvp*zAe>DD%_$X!z%i^Foha3EhM|IY6;L8aGn_o!hRsOvcj-uO3T8qA64+<==b@4;E zmb+cS>obS0J>26DM(;77eB95kU4)lbu>mhxd6@W1$bIv`>r<# zeto<>JxXq!&#^W(M`2kkFqh9)ZV?){VY3+iC`*t-WaIRds~7iI?vLuUJNd}duH3$7 zli4}_9iA`HAP<|C@Wa7A)DS;*1?!bq>bq{H1T0*c$`d%RL?MN-R-ZC)OX zG$}gpF6j=xWa;UHNq)NDUHqWoi0?NjmZI*E-%ONiD`#3Nrg*AfexK`S z>&c}BIl)(ItQorPGa#cVWX~bl8(w@AZNrr>Z>1X^X>R`dTKkqG-LjGXI_{0bI&!`y zrrDW)=4&pdIt82;GZu7GBZKxW?lho>6uu@uH4e{%%`MxCzP7@*JUQq>@D~s`#SokS647&yZUa-`THIZJ z`JDNyxZ2_xp37S?%E?&Hj_~Hs@Oxf&&d|^TWU!NU9H$r3XHS&;;gAZ?>i}2k7fI*q z;vYU#Fm93dOs4rG)u7@xd|p<#a$)};(K*_NylrGWU$l|xZ$7r{yo(yLFFA}j{sPR6 z0Wah8i^CaRfIxNP<^}E0Rz6QI=+&SU=t{L2%^~n5kxD`QMgBuiS(&xKX#w`xjP>&R zLnl%66F_L_Lr+Uj3wZYzK$@Ed=Z7*(OPa|O47{$QLEW9M&!-+Zxn&XtdiJJEut8bg zXqTmc89TMM-YWYbaMzWpnjyd6V$3*10oc`VRjqA}J8ld&mRjVZQI9al^j>WB-0kY? zKsPJi6LHXhWi9~8O4Qw=24#^o6WECry`S^67D#GZl^~OzYno4?W2nksEkcqa` zAzX|$3=+56wPMiiGMq+hB_tgiXl_QFrVrs^!o%xZunCH^o~25gUD~=UM7j^jpyq$U zZHlR;uX}2}iIyd<2Ke0Wb>(|s+s{Iw6Cy5afo+&}Jm#R4{HM~5os zotfwyp4~<~{N5+>TumsNF9KIoML$`>W3}i`F6*a&o!olRcIjb;PzuQFux?J{ckX~P zOj_PK9iDPkZs;{V}lZa+#Fg##4nb9Kd@kkh&*v+@8r1P zdx8Q$M4&Y{W+)U&)LI=W6UN1vBfQ)9e(CdxpdwUx@<4PA0b9C_%%w3>UdNdZ%7k4; zLnNMHYtAbYCqKp{k*55 zDPKWmH7NKfCOMnz1B}30`O(A>4BJjZF^qqlm~gq`q}K0}%q||sG1qihBLC1`m6>K$ z*r_lk@H3v|;l}xU;eJ`w>4tJP=D6lOEDHMCExu1u)<}QGvcIjgh5GU-Yb;uWa-vU; zzah_5d0fTZ7!hx_sME=w#_J2=gG6);m0)dkU_PTJ{ep?WDkQZXxoSY;?h zdUv+hD0EQS`<9k*a+$?8r{oUCAc3V5ck6w+o}eFHmMyzLSlE}uCKF0K0&<16{)o|G zsH)wbCvxo;Je(QwZ}Smy^r50kk-~Qhv0IFK8isYxMjw>LyZfN|$@;96hUQMV6?Bqk zC{xzX()#)qI3_!wpI&R7h%*`Q*T@;Lqd!POV^i7Cl2ZFkvYH+`CuO8(FyiR5+K2-- zY~4KeB|d;5nZe~+WdiRRC_`dqNM!C0$ghAX1}2VObSe{KoUs4$fZL_F?GRe0R33Ea zcS-tG#h|mnS3{ylw%O}UKdU3NfO(=}BQe+fjpU^t(QNztCSXDX;yaaiv}6KYYOL_( z;*|Cq3>&9Uy#A^XjRBF*5aogi&3a4IrmbVM-jegKdN&a{2z$4vUe=JBRbTvB*3I{q z93F_X+sCw5^GNp8)Px%8LzZAR{rX64bq091<$pnEa9&M|xzAP-`WeF6t7opsELf*i zk_jWb5_;QhMwOWPnmQVq?fN6ff2`9>Q<5u_@SDM=O(YkRT2H4#pOnU_^TP@RZ#tFy zv^U(z57zp~QM9sW_WZ9WR=26ot{*w>h4@ROS=y@>Un6uV?Y&&dw8bShxjm?gV?w5i z8KQ}vgz5KhwJn3NP0a79!%CH%j62got3{@FpRL0Dtyf{BK<#U3`3nT~F)^qnsuyQw z;4+jLws52W_l25jnPTq951rSY4^_2~RG(b}V4027kB=u`CoLY>yaka8DB+ ze1~i9`G%1H7BH^-vx%1Zm#Eqo9G2gMW@1MeRNWH%faOQexamtmXdTU8!Sl=9k-grq zNw;GiIC3PWnS`CcD1&)lgmG1G!V3ZmmZi%Y$@?hq@b@?P+%`-Ln_!g_*wvyvnzsll zDYSMPfR|9^5I>6T+0WFhUnFehp1@H!iS)tVIoK)N*h@ZXD&I}P!A>Ry5Mpvin;YI* zB9QBK$7LsrD;Tu~2T6qa)6LNBtg@J+rxR1w@WiL!UQh4XiEIPpu3OIvwKasy7XI+J zK69BC?Q5LH1n1d$+7L3k8u9vo9f6G)YyTO%t{NC^$0yDxI8FYPJN|jRGe+RP!&uwe zzAQbDyH>~ZIp@;h)GZvFz2-H?ONU>a&e%$*_5{K)c>tIg?$Yq?$*r1ct+!wh?LHNg zm06t?03nkVQ?DjCwW{^fx`vp~ejf81U7M{;I12ZIuLiy0jm>eHa#p+m%9(69Lna+Y z1-&S5^7jCtv&Iw$ZN1IZC0a{YqJH4lQhXv9dx$2Os`95dQDj+Kqf>_YI9nC#z-?$+ z3van2Y6_IR!b=h|=nX_!$Btc_fWDfQYMn(4_W1^5^9B+Wt#f5OFTZ*;ADt~n=P+UP zBf?ZGl6TCqdo|A0&%Ol>*XeZ^H{O(e{?j@f)vj2Cfs!URKJf@==G=pdb0o9xF@!uv zkDl&J{u_WKunz7FY!F^7dHb@%^?lp*c$BFGXQT~tcy~^$ba)_>l%^SbJqLo<_N)!d z%I^&Qoc0(DZiu}36I8s|+9BRQZFv_9rUsayk*O>;hBO zDt(R`;O6}okmfWu7X}LwsCf)FrlG9S8o0k?C=-Y^Gx)hcK`x7VtFKU7*jIvcZyQk{ zv;TyBj@Hm$7Ky*q{bhXNezO32NquSF%V)VIj3NctJDuj0@P`V6&R>=vhQD z2}IOEan6y-#uZtfnbBZl{d0jH8Jjy*|E2ZKkus}*~rXR~t9WCgPfG#u|h(9qr4 z+&`Ot9kV>w<;;f2=;y}HEQLj%m_zN9qdq1=D^az<-^*cDcIFD~KQ(+|7Gk(A3QjpJ z7|B>*j#%~XFNGox97n}O%iG~SX-kxV7q0)dI6jD1!jup*MzjuEZby=_`fjyC>aQMI zxXCyt%YWY@ngRLo)!tp0t+U#lDEN-y9;HgKI_giE^XHczB;=ZqzBz3u`X3})R`pG{ zKdzMXUj71{n5=!k7HnGq`oAj9TP2+lrN^(*!J~0Nu{wc%_@~-!nr^aE@_E6i`NSvea8 zC{>d1$tL$*(giX#k*2-K^y#X8kyO^#xm zTs$uS1=wR%Z9cy4gdmS2=LOHl;fSb8%v#0QUP7;#mC-{&8>_=sQ|LO1FYuKq$J8pC$T(GkI%{5F;`?@@LWW<0_Y5+=7_Tgi!F#h;+(S6Ramo&W4AwB2U8{~*z8 z)$Zkh!16K_TEW^seTv$MSla!t<>}vHa(l$ID~Fsi5pNYaa<07ZFkj&`&N`=0M(;(k z+2)}mIT|!U{Gph33c@vRfrtttDkt1)A*b#$*i5RwEMaWF@eMeStr*JE#rAip*}Z=# z4L9l59XuR5HCF#IW;Z9WgSm`#l6Kf&52+hWHT5+@J1X%SB8kQ9o%Gynm`~KurwPkH zF+GJ&oH!jrtyN6V!V_f8YvGtCg1q1yE>ax)eW+Tg-&0L?)UHwd0kz z`lDMN=jCFZ88`4+KAPZG$HOktRc~gSeFI%_3VD-kMPD(A?_ZO!U~J}yL#|lAoMUq~ zZW;SKa;iw03$t@Dtv z>1Y{w$OC_d+eNfock~t!%4&^c{1EpPFJ3P*+RRry_BV)K!Q1*hxAB&)7jaP+0424w zb^4jIXK(^W&$wIPn{4M6L%nJC8|Qoey3yifNwp(yY!-s`^RsLVCxMSUU&pi5K-D)a zTs^e-_rC2Y{&v{LPdSL5@$2g^QsK+7s2Zeo{J)bTzv)zCf|P444sJBn10gqQNNjSy zYnq+-DNV#UAK5sVPe66WOm8|iUdsk_Nx;=Vp5stVQB`dOSORn|ql=7JxYs5pkb%gf ztYx$95ca)Nu9;*|=)=&(o^yQt7L4DG=wI7O%)sr>SP5ra7|A54aoT5OHW`K8zP4I@YEJ=uQOwr|&GKlI6brLwq-bBBt?fSJZzZ=sh@>Ls)p z5|5cn0V#82RpJs7T@{(F{=4whu|yMVuuX8Vk|`T7M*D*3`%PW&@;-2)R8h`$kN!ib zF;NZgA!kUziMaiK$59XpzSHmCf0mPcjr{~8l6{wT>AxWtCbOlV!WTuLlxl=gTs93ST%MTg2(phM?&kQuV<#8pfeUWs-#o{3Ngzm&9U(85*QQqjmuG8+$FMD0BktFO}N;BB0uNQkQVo49E+D5W5D1~r5r z#Llg=8qLY$#Jp8j1b^MI{DB>H21G@IJKOQ(V1Fmmt*P#(SHT5zW&` zBPOWPM43%q(ICF-9d_`0BhoL)wXxE&Gy;OhOqgfHUJH$h$c?EKl zEw%!Nn~dz@&>|#jnyHXgVd|@0p};W*BR{0DuDe_jUXkLCG63Ww*@4C!WKm%noiL)N zbR;;bVq{6eaGRQa`kr5Su`taExR?@D=$K5@I&uLY9gIWNmpKRk&@GHH#u1e^Wr2ok zR*0`uIn}y}zrVJ$G@i@)#pUTm^elqC77yZj)a@;f{2+LIG3i`TY_5tHtM4`Vov;21;u%^Zc+D~Yja#M!i#qmpzMczk1u9pv^)qUv3`D6C1vy!9yre{p=qSeHi#V^&IO&RZ14 zhpfetQ_YYbgk2KF-R!D zwi+YMcbsrDwxWzd`kX(Fk;avKMITc$g~9GaTEgYYzo>O_oCb=1Gx>FYTda87dg-7U zbbCXGkm7<<6SoS||>?Fkh5%dtqK#=e7FQo6 z`BRS+MxRX^y)ukUbLD40#UTDX=dOOp+?%l{)!gbLN}SRi^pa=x(GqK5c9-ag$I0U3 zRqD2;?S~SrlmCl*a$d9qyvm=a$5=Y~yV8=KA3Y!3GI!|Akz%)qPJQwT>CR*ZB&;rb zrBzCZCia=6nH^%PuVkkQ2hF)>8vxkfU@iEc=!>e*{U~U>0?g|D@I_TgA^*~zZpkRs z6Yk)kyzCQ`idBuv*@Bby8*~hu?nfDh-DUT*m;q#02rBc|FXXW*R2l_8azJA8Ewqj~Q(?MGANZbp z`n(@;~};MhqQRw+dBP%HSOp&{x4k2uo(7WJew|u9E;0S*^2RJ91ZiX!qHG$bvfdgW2=f!)}UJR z8WjF~e;2R(T}d*FPz)#M988pj=$Yef7lT-nJ{lJAJsq78=S6n& z6iLZGx6=9i3wjQCj>0OO-ZN2Ik({$Ph{BEN^faLeNs&!N%ru`Z1Uf%?TA4}Ef4C$& zaq7S4}$HwNX7rvz9M5p`ZdO^+&6>NZ>sc(rt@P41ZS|N;}nzrP#gURJw+7 zp>i`bup~EVGbr99oNWq?%hoc$4V?BvtK061MxC$5yGhoD*>weGjVRz)1T_`Inz45U z_4Ze~%nB)PMdtylNn75tHvz!@zOVBuc9io6{p~Mzx@y9y`643g+`2JeDcDuEannTT)RlySfZGWR`~&%F%SV{&hq3i10jUGg(9Ms=@g zQCyxsW_PZ8nAP84vcge#{{pONX|m7FDYM zAhMO=uj`@kGZ&oo4rI&4UQX9_EYorz zLip%#MiVz0UKkNolvP4w1Dt+Gc3?BMApoLS0zm}=r^^y*7gp{ znb^B=+#UTfb$ja3DD+L_r7ro~Se2dqF+1J@QwMg79y3dk5u7lnzaQ+bo~^a3HJ_S< zh}>9!9@0$C*hTx17a{vXnlO!fP{7OiPHy-ECVU0W6#|7~Y}_)orn_WqDrq^u{w=(V z#e1AIXyFS$-S;|IX_QcCt>=BB`2Hw98e@?dsq7d>O?=UR;a54d2i@4^YO1k&c?cF* zzOVP;g3oREhLMb8N!WE!Tk8qvO8-D8ZF9S_evdBhd*gRl+}GgcdL|)d^uf}Mn+GS5 zhFmkV?d9BQ|N832dS*ght1$gjMEHObxvv2{e_&EzG+Tw0S2#>@3b7q8odc$&3M3O1 zHE^e)g|vw(DY42gJ%TzD3 z?~de&BQhFve$uNR5A|snik%TR6|nC)aL!3I`MP)m9K=3VDp2Pk8aObUG4pI&;v}+yd3= zEbNIDKqJ3m{WiwfUOiwS)&w`0gH(@{`qfWmvJQ(CqPSEvupL2tFqQ3?(f;bLTcodF zW<;UoWh|pA_VtznEHdF6S9zA86M&^7$fLK=?=4XtjR<6;DTA*I^P%ddq&ljB$-a`q zW0vxbukZ`_3-I2d3S-d$cAZlIRu@mvV4T&?C9H3za8=u-Sd+tc(1FZGw(BE)a}MIL z75XQiNfR|TxwA-_tWCX-0Y8S^Xa$AxwYyb)a0k^61azSSpc>ts)c1NuQY6@+Zpd0*$pJ3X_riHD{|RIfd0mS*(;;1d^l$SkMtvc+I5$;> zbVXM7tHIqI4WsirTy+?*)v9iSb%CaL=@?x?En<>h5~bbNZVm}NkxHJJx!zGXNy8$F z(x0i1v6DlBJGGWA-_0Qda&$>1Snrd{XPZ#$)l?ri(VFN5pmymMp6-7)BFr-v2^9D0 z>UK~gqDl5k#6N5~;4cY%``G!_w|Lc0;Rw#Q{w5&MDe$RF+O>zq9~{0@eU!7HhcMse z`PZ`lfVR*@-0bYdaOx={<_wA?7(U+qN_c%7xT+3qdu;^c8$BW74IUe6`9uVviaPkpW( zv%iCcL%KF*tA)DD?FyC41Bh@_`7f?T`q+8c&hTJzs&3v?o%}+zt=;5=Vl7QMqz~9w z%@Lp-y&|rt&?ME6NZ>YG9zrmOR;{m#xp6M(CeOvTCP!gd+i^NvLo_kSm=VlCY!0MK zQ0Ogw><9g;evcmUN+rdHY~~pAToL{x@(0SE65SxOhO(W>3)EbR(*!Q3uU^hzY6{j@ zh_)%%5bSj8$MwY05GBy>6t1WDLJzPr6qghUzO@dqDm|ncGwgWM7uA;O0Fe8ND=evx zyt_1*^~2ugkqnkabwCT=RI}pa!Kjmx<7?fP>K&WEB#aS++)>UE4&vToD8q!1k3*?& zU$@(w(~uA8eIcLnjX^M7|Isgh00a5^72nt z!$dkrzFgsYVB*$Kg!!Q zX{awUhfod^h3ceI*;`yA%+Yv1_>UCpU%orkr^<5#0#yq`!`Lip7Ux&k8>jjj${CMQ zqH|Xwap*S~eyVwpGQ+uIIb)2tl5L_@j5rr&N>6|tPxsx=6UqZs%;%CngF#-X$%1I3BzD$&Q764CT}VUY?-Ja{%X)xFradJ40K zu&qaJ?d!}v{{lkE%bkhp#`VXvea-Sd4;lsD2IzDundM*N5A%QIhlcj%@4tE5g*nDz85!ee|F=Ry(?aBTY$XFSc{-oPV31 z`sNg>zkRU3Y_>w9+!MNg{l=R9JMZ3i7_wSG=jXJq=3U53_8JD`9hZ=6u3+i!fis8D z87N01-uv}vj{x{$jV={RsA1pSkjD5uj_>N(k{9ZNRZWCqKeh_x?#&lNx0%cI^;2zD zyeT!;exb}>Byq|{(Dc@#2%@Y!%YfV$t5`wb#(nJeDGHd}dVZYcyos)FZw*X;IXPWA zMUK?zZf+zaVb(4>gpxfb+VGKB3~M1v%~~Dor0!hIE!_96nHE$1xWuMEof9-n{jSm0 zj@h?@J{uB)yq+4}$`cmIn6qv}pUG?0zZFp%5UK&6iQu8q2M?g7%4^8@B+K9Z9cM*j zL(w4>lylZsp}RmVxwTS}6kp=fw!IU!Km*jWk*7w#8Te^MxkRa@FDdji1mL)6y!8ic z-EKQBdzjG97#4JW-Q_oVpvgUVzVhv;o=EhZs4w{~Zf5^AC28ud=7&@5vzhYEmt&%@ zlOvfDn`3pn;VPG!)s|rrT?K2OprD9GtQyXFpi&Y?I}++2-D~1k;L6%yoerf@NJf4xDDE}!r~Yj za}**6!)&Ud@fQ6Mr+9-K`QKCKF&;T5FOzaNt;ih}|9-QU2Y)=_!a?_+<8$xH0szNF}ET0q%C@=d)7 zBW1=gHZy}Y3n$+;r!fnEQ#U#lutqB!UKnt_eC#*sktGYxjC}p7fQGP=nMDe=wbA}+ z5QZqxIg9@NrzSM-4hjtAdk$j6P&wZfs?jng%zQN)Vdv3q^&o`ku_p_j|2-ZIokPPo zO_;cbNx6M-erPIZtwJ03CGGw3M!vcv=iXO^Jz?mk)MIEWaQM+w;d@TeTv3BT-MKxp zVhl4(a@_XMwguWLo-g__nY&vPLmJN5%tO~&whoDB>4Q1+dO&A$2*&ATICS@YYN;k< z1P}L0Rv?@ka^XDV=&qH^!50%AL>TXw2KeNLTy{hV=*I4bQow073buC!lF#|*nD z4-^H4x=+VPffgP`01kVym^hXSM}O6VBiqHE*$|xSW%}b(Nw@D}C(^em#el9F!V0rm-hULlQNwC1`v%KU0sqGd^P5Q8f@GejL3ybK0@nJjz! z2(n0HgvC~rbH-UGHAtG+QyB1fxwSmt$RY5PG_j;|nPZQt8nU%6>c(IDV^!YHsPg&R zHkuI7AZF|7BAZqNw3S)4=_Z`14W&?sUHWX*MyO94Am{1L&HnHv)Fe^YkNp(Gupx(1 za4HS?{d`TU6S1ww|K^*PDjnMoD$hr^S0Lnd@mlONojZz04Ae+i-1ps&QK*U&rCfEp z6HW{)E+CiH)g5h{2hs5z=z-JTt`Y|iSKNZa;H-rlW{-S%Z0KmisM$}D_pf527zDyi zj$`gpV{HuA=o`4+L7k}X2c23EMTzq%7tN0(__T#d=G9tt8Nj}a7Jl0c1AgM&x^r(i zRUl~zzEmSk9R`x-(M;axA6+<*;%IIIk%R|9SCk2oedknndFAnnV8iJGd328I(O@lw zJ3c-889v0A%MKEpbhX+jMXhsp#f8kR6pmA#+TheGb1yD@>zqOfoI;1YWt2v7SP9<6 zV}E#JVtPym)k5bfwn!il@?}&Z+`uD!Tn>2CgE{FCpbD>SXf+ROrku0e|13)<#UK#9 zAIC%8R%f}L$M51bU4+t8YJ9A3yC0Pvpu>umONK^hs-Z-3#?AkjH2$ri8l_capT+!gA%W{Njbb*+C{Da>RtN1q*-eee+qCE*EDTvutbNZpt z&6dSQIl3N7ZYM`4%qeq+%ccBsQmz503T~3s^YN#<N`p-D47P29oM}7we`mUDtSMmJj+FyXpVf1-0v+5e(xetv)a3GCkI)c`GZ41%I2hzOKP0S8A#V&T#FV2W<~41x+(}P< z+XcxRiJ6}JF!%_XDoIm};{1UiOW2>dFyM-C0tigWEc zdr05l@^s%1DXy5L(;|=}+4}Y*)Z%_`C`KBZhJ3M2cS4wkYArm1#km}mp}C=i$O9-s zP^2RIy1gCKs^zU{?UCVJc__P2IuE~^pAW$$zb|Kw$;<{mhTwyQ1tzs6bcJHyDI+vs z#$UduEsA1;1{OsqT%=EP1ojp0y=2{<1X^I?LX5kRQ~c@~L?JJa$8MVFC3S?tgsH%V zsk3lX3JU|f!29p45`T!Pv?SCfsJTw5zJQrfVM#-WF#f0dR4QcpwyHTti{;rN7W{2AlK^KUz5NnS6kUL zd_~@9oN1&MgzG>&&3NkLfZsCm9F(Fqy+(i|87*$8q2=-_Z!gg>{!^MpLDZcWL-_tQ z*FXT}9$ok%EBhn9VNCpc^K|h(1Zka8ZI-Syq_u4DdIZz?q zZ=TPR8|xD>#Ntm?C|&^yvRv44N}^|Efp9A=(Zgj_NZJNYYOdQ^&l#S;j~^5X8k+Or zFq(#k5(x5heOJ*^QpjC|dtyk5rg0hle)V`TY&iYQUF+0T$}wEsiwT*7#D&A&%BzZX z#$%;klCI=0gREe-*)R!D(ig@8E>DaIzLX(=QleN z`7M=E>(X7BX#+UHMdH5%7c9UG7oU_599HHM2&Np_ld5_2my}I=Cz_}3ttkwm{reCT zDU>yVEypr~1- z_ll3HM8)SxES+dWp(|=r_b*c?ZUNI$4|6^Y(vTzKP>d-#e`vR9N51t=USEYH55ei4cB6SZjqirUnC-hYjYs#5DCHZ33v{-?#D<~wIl*bbX~NdRw5lV@LMaKqJXWCibiC4 zKlg+7)xCUO*x@MW^LTAwrl9KAF7>VjS}kG^q4F?+)Z3;7%UZO2T0ggU!4IJj%sKOp zStd#%G4zIeww37p6?0f72IW|e-3GUvQ1>w9B~T{qG4^36vS)K#omKJ zx`-usLByI4{T*Tku9;K|@_Pa7x?FmbrTu(D!FR-fLGcBji=q6kp3 zRnJWLgiRb%)j#~$u<$lW0eTY0Se8hvsSz;Jpixm^8x-~*^|&S_IhkP z5wlB%Ad3AyJnH7@2aXL}m8GPX6@AJA;Cfm5%dx)X8Hqa%c8Hcth4gP=cf!0c*x{~K zAx=z3kC4gfmd3GC$za?|xX1C$Z5~Q_i>T!h^;hgWuL)@g~+bwgo7kO5OgMnu_qLa zcL~eZg6^yR`I#Cn8wfo2(chReOqP`P6LN66!PKB2?+zPIFPjGFYb_o^HEQOn`_=Y= z(y2|*2D;*rJ?z^`$CfS>?Ojq$|Y}*G&u~)7QQGJW6&5>f?lXD3{1ce4DV(hOPx+g=kQ|zziw9lUJsP z2I5`6YF-Ucsg;lzrQ49ONY7adaH5HjlGvS{dXZ@-c|I1ujv>> z1R`l5D?Boz8WG!#+K@PQL9k-i7;h@n@)}p#iP*X<5Uv8W3)B+s7hdfh)J0;dV-*w8 z$I|7FUDAAM%h#u3f|KCZGS0(eUNO%b+3a_K#y61=(>gcQ3BQ-SLP_k|wH7Q#N0co@ zVV>F8Kc!T4Ekm6l$EsSJITVM)mAUvSg}X8OdqIm9i-l{k&E7-X*xd)MEA_2{nW^niSJ{Ygj5N;4O0ut%`5Y3J#-K&#M_j zL<;$4X%4Ba@QYncs^SZ8U<2bp)Ot^Iy$ithlwfR@C$CX%)B)>2&d=?1hsp)lI~7jt zQ|l>OJ%7xrgH+4NlJDJfH)O0YJd?3B6Ylgp_o2Eamz#EgxwO^sL5q5({K)m1t$lwY zBSckf3*6Q+Nwx%(8s>0@Jx1e_hu#?eDHf9np;hd0zLneEiUFc%=Bq~xDmOO?O|$Xi zf))XxEF)_9!_7c)7u<8C*+iULOqi|L9Qxt_unWQQd`8s`Ac9|%9d?hONRdwXoHTJ6 zAC2Y}Q@~gYrb!*0h>VwR0!Le~g6}JH$c?J}PrBgih6x$KwlXC_C@m5i@=7sn_bELL z#%WrM_F4IiVQe=M1}v=ogs0;Ut`RrI6_kw5i>DPlJoiZr@!F?Qn5Us%g?aH{PB#u5 zc*QSYE{U;$jo0SBQ?st?JCvp5CpznISXx=FKd>{FZdwH{x-{Md|4O(eRTq(Oh-40PXM5^sQFNpVM6Y-^ZA1*gsDvTji(hGcL{ zH)J;LpR-pkosv%9vj)f>*)v(U*3zjnvdWMnW@=kdu*srs$G!#ZU)TW$#OjqdUlJ`( z@LTd~TOF=(>6IE;?-nre4Ee*ScD$Z$TI}D2Q7PI@l7O~XsRtFVD&Yz{kF7v8X|3a( z&g*SP!g@!&!Du+1qjd@4!p738*P$~9rQEC24MrJGzOJ)gGbAqi>r(qClo<18cZ@>5 zFSW%Bq@ocRl1&8dg825<%W3j^za0s8r~unj}q0UUhY)Hzu}aw7+9kyysv)=%<=qgCV^Vt! z5~wTD^qoGONp7$1Za5Lr=23!sXIAA>-vumSO;CMse!gt}&@GQ~q9i5CS!j%nKdl`p z<*a5Fs_+F3To-LI70ucn$bD!)!=NmF0P7I%d&*EY@in`1S;NRPo^J)E1bfMON3>gD zRl%>KcA;m0aJZgj`d8)kfD)v~%?V5$pY-WPN(GS?&OU~T|Lke-a0yJnHipBtlL zen&E~W+Z!mwQ~@!8mWVT?8n3P`I2B)k$;4h4Xwo3AaxBz7m6TBKC1RW%k>{AtR>-$ z$<0<8#|MI8M;ZQ{+|V4Wa`a92{Tr)gJMfbvbRlCm(_R+T8-+aezQfIyDMR9X-@L%2 z>#%Cql}WaZ8i<_kdJ6NQMbCK-or@Bum*;5MS{-l{I-6mAE^$k6*J3}wbF^J3h7}JG z3OLx*7}(aWZa~To8h54zmp)X5RxR;843c1!)N{HadRiM_6rx!N>tT?Cb6L|lNm@6n zkO9w%hf!SUAbH;E0=V-_WrbRTxP;Nqb7XDeiA?GVH7(Tbp*8XhMWkSbb=-0 zoqs;A(Q}R~`QPaphfeQ6 za_;T^QpU6X^TXVhQwwUpsmjdA+ye&m#d?K?d-gvKS@Q+L{p1X@?O+d6LrIHyM!Z?& z*)*6`?j2OfQ7X_?ljQUkPQ(o^qPpWwQk$nJGVhtcndC&8`iRy^zQd@}2V3QQd*7_7 zsjHWQs`#2FCLV*IqQe^}NxsJzA0`Fdru!g*MJU~hhkx+Wv3TauF!fqmTs$9^ko_4T zE)Hw0zw>6WUK6r<0a+^)Vl7~kYJeD2vL*-}$1F*lP%dJE;GE3x;F0^`imoE+O70}$ zB&^`xeh(;5>r&s=mruD{uWz!i;uzLzYrcfhncIH%)mdH0Rr`&vPmHlEYKKqMFx%~& z^%b0x%%3BCJw-Koz5=9~G>Z~9CGJ4XJ zN_Bgb@?2WN@LEv2QOKD8aGFTK&{jWx$$7SR)y=cybX63I?Vk2W6e8UEM1|=;G}?lR(6{_2gYn;a0G+x)obZ zFuac)k(nfc-~$<5J7Hda0$B0}0QQlF8Pi<=Jhmufp2Y!)qrpS&TKb|1`%Qs+e{)n^z~^u}kmFP-9Ly>b1fm zi}rb2)gfKh)%)p+#2zKb;c-|LDibeQ@Ld+lMcU=0r0*48%vjaLgEqq}uxYYvx}vnb zkt!=sT)dwivUK471vNunmG8>`RZy=X_Ld_!Ml!+}6k|(~Kk4W8)c)E%)2o0=^HEkM z1)Yc?8ms8a6Gr}4MaUV`B3U-A>fas9wnP;?K3)Z5C-gJsuvIqnHNMFm%ihjh>UEsL z?)iDK_^VVGKjbVNJ8i=A&kA4TpMP7?)G+NAp#nUAPy;qgn=JKIlO_b}1adC%Pm&Sv zFLlh(Z^Sy}@4tLOBCsujNYv>*3x2|g7v((>n6tr0yH3vuv#AaO{moJDTk&J&CaTN`mVOtI3MU)1e-V3Zjz$b)=zfN0TVRAHLu z2??}sHwGHCQsW5GDH88A}l43fT<~XSK**uwXZd2=ky9XMi>B6>g%Vrtnj78$aQn@>l2R zE|$Z0DY|8>uAHh?tUO zuJ>*&5F_=oGPqbmO>l1W=9+wBwjvQh;T5>SrIL?KogNKEesmj}h^KSp8DWFQ%=Gst z@X11Gp>R&J?^oiSkhnt$e7Cfc<*o<&Q;c?vuI9HkqlAJp;&FR14hk`XOk+n~3_bC) zkx`;hKg=jo^Bx^siDrsuku^tbO!LA+edK2yB>NHjG3`g>AbrIMLYd-#oY|0liOavc zre;Y7s^WlOzSug7n?`-p$J=mg30>L;LkTxN?4k{1k&Qxr#C;lN#^i}}J(m@fn>^v^ zqY;!;iy&IPBB|hEoQU9PqA(u9^*bvDvJ&?+L z+?$GLano_?F1JJCiZop_wsrc|-nZ(kaZ_jz>XVsydrI^_!z>p(#g}Yg z6m2BsBRN!u-U8lQq&3~}KRjDv0`gJZ^$1~;CV?=v7lTRr3zIpDv}LpcEDIPbI<88L zKKo%>jO-?yjBt(-yS>N;Jmcr8J6NXUG6x5cVRK5XU1tOiaz{{)TON51^e_i@F>%Tw zXv;ynT#J>Jb-}0)y4uHEnpsYkh?|fxT4rM;)qG+@0KOFhxsDl18S8qB z_*g0~uQT7|{mceLH$Y5j1qjkYGo=%p4e6$U=@QfkzNM-5G{bq`%;6VMV_4z9iirRM z0L}e_6!-XG$vcx4mek~JD$bhTNJfbs9*kdQO9@%Y+;0Ax%(pO`;WWMB5S)D1lK`9I z-4@{i!Bcqfa<}t2L1hH#)aU4TY%`bL{V2)+hTj!)aM(Q56E`I#QBRJ6$?pS-y_C0DUIk9H{RtnHhAhGcAesQ3A8n&M3} znST3Sqy)O0$6zH}Tcy4C9-Q=~1fIxe^a}3Zlhn_|4?cZOig~`$&Rya2wJ!RekS!7Q zv1mPk$UEO=lxA;_j*3Kx816Qu;4-W1ne8^OPe{}wt%%1{764cE9(ztiO9wI_XZF!9 zftP~~zB;3*LTd^ES;Tpt$%=%j#c%ZxjsoLA3(038bY(4JA+6T}d2`WYzg6Y+@tW`W zS=oW&*`EUNT`nFjR&=!h&=deQWv9%aWXe)b&QcWfv)ntFZR)D%+7PTB)>5Wv{V6S} z-icEOJ|-%=tsRbcb51T>Mw7GR%@c?FAXNVCBGyWPQLLm{JyuLD-sy|)5}LU;Ar@|l zJM;s!iQGchtIY*+?QpR~|K=Wv?0Ly*p1~O!%!(3MOL(+0<^p*aO`3oaL_LD>>z1Kj z(|uVNxFJnV0}eNVXT&T4hTE|<2@kE#=qkX*29Rm4B@`g3(R@sTx{g({e^C{ z`1cjGEx*l+j;5gm-o4AWE_^KY|6~P|^Pm!KspivuDA59|C;Qh7D7J&tdODeg_lHd2 zRuZJ>5ghHqywp;8hY2hF?HV(VUbud)FH@8#8(7wdV|74oqYotEgLttr1a*w;t`?~&@K(Go1A(d*1_r_k)m7maoYHVl|l zt+}?Cl_oD%v|<1`L+xaf;Ex7c#Ztz3L@$k~qBjr-7=DtBQZpTi$+JyOUaic$nc*NO zS?8;nbO%;SO(Bvkm{ynZQ*Apjo@cEEwq3|zd*|K&+|mH`Fv(`CUw@-{g3dm4Slx!K zfX4nv;6PgcZ)!JU4J9)VQNp}mz~54e8%C|6U9S5RT|fN-a&7GSHNxg@{sJ1mLT^OI zk>SA*GYmo@UPJwu*mS~!eAl|chAM*xFlQsRHxu<2!G%};=3`@XaS4_S8f zF1Gukt3hj+uq^=12**fkJmVAphPu-@%b^8s_Ah$GM8GA|L3}pdI#D8ZuWP3jyV0iG zOkdz;`;Do|h~MueQtEx};#>~&bJnL4mPP^u`&#DjX6E6H+^XUCv6EGWeJo9;1<{{4 z=DHmZ&D;L8cK=o)1|^<##-Ds)ZhN*S<}fM|`8ae^=-W77H&EFo{k>sn=u*jgYU z^3AzP{4+9F>iUWwg%=Zfq&)QMnYye50ZJ_G!V{-Y72}5V=KJrac)X&_&>nw;;`Pr~ z?-7~w9Uo3uXyG*nKQ*X}v#8$3LV(%kA8A$GmA-^w=HZ#@0j`W~$2 zE3F$$3eO@n@^-I`m~U!L4zYZ>p8_u{7WoD};?k~|8JT+1CuwN~5dd-TxWcY&b3MIv z_fZexL|xPx=0ekWApM)}8ex7U6VeuYHUX!altSV^h5WTJJR~g6E)^TGQ4q^y-;jbn zu^GUHdQHx*Z!p-Lq#sAN-bt-~?51h2ifeb#N!NVC)<&jJTMKrAS7(Zt@$?Jak4XGZ zsc8r#fMsUFT(9u>d}TW-nAmP&k-q74{ZDUMj8fY5c_jNHk2~eW06CxwsY zIqbjRhh1yn478})IaW)-KP6b~1bTw9t^q)yiZvM00Q^#>bf&X97l@4j-&`pvg^<#; zmaRBs$9O^u8&AQgyrooe!a5C6bZT*m)fjtAyD@#D1q|)AF9GfMEf)nff`I?laJ-miSx{#jeaGeW~ontMl_`v zV^`}PmA&mklxvCZuL+6*P3}Z-PK;XN1 zs)YTAcH=HpfC#Il7k0dS7^#9h*N;L!+JY0uf=Szer$@|NOY;<@n=yrMK+&IwEx%Dd0a=p&udwqhF=D?r# zr!&eOc`opyzu^3dZFEjS_CuYfH%dvEvp# zZjkx2KS*wo#1eM~q?I~D01Mx&jlKWc;lI*DrhE&y{VUZgjV{yogglEzG~`Hf_JvFY zK?v!T=XMArk`|v>_lZ7;|I(%tbFT!_mU-H+>*4nfb_Haq?kd3;mmiJzP0#g~slnjG zZzZHs)=8A2$h}e_9vY6%Va*vu7WIu4HQ3!ng#j~Vyje!ba0+Q(7ljs#wEW_%BuLpR zDU@~ZizB&f=b_h8In!@5X-7>{m^wat(lc6+O0onNyJmheHX?l_R!T|T1F2qG8UtNy z1~70%H@A`{OtVe|9Mko&a!V=3BZas^Wqsm6lIv>KjPc>Nqg_XQtt zk=Nwk2m-+_{7=eOuF~v{v-|sNh0b*krgkp(xXt07ZULPFQ?{UW9;MxO4l$!gDnCJ3 zg?vm|aDWN>OF69egmEr@=5cIri0_S^YA((?UI3MVb;|EPB$P+pDYtovDz#EjX(@ro zxQxe!mdraw=c{5B9WIfwD_{H$u0N-oiI>CcVF(RynhvRg1R9L1q|tk%Y6m(@+W$3z zw6BS%N@}lRv49G3@`t1Guhs@kNZ29ihFw(gF7GJ{lI;(ke`MIPBqKSc*aj2SLOAP= zUve{9qYC+gL5@e;b>#4r13Fo@?n0IcR+z){>a1xL`t}d`)+`nFet%L3b$A#gm0zJP!zx7WTj~%72wX3tP zn>73JIs2(bS%i|oX}gH+X<6Nog~bm5|I_Q|z3K6`mtv8VXKU_+W0g7Ma3VMK{8HMb zEX;avd+Pz-k@qZG3c0Y`@VZxiSD$jwe4pF&9b1}+v*LR7Q&9>F6U8HLuat!28@jz? z94&V08hDVu35UjKE4|@khg*O!Gn&_`BkgNE^2Ry4dE*d(Z~3t?FKR{;zJ`ga#yWgM zs{w;DKWp{^F+Za=_AFF#E}KR2tMeV~zL4gU$>`t5uSeQ)orxR$k_Ra%xkdILx&rpo zyvQ91;8}Tona$=pC>%I0?~8&}9Xx-2CFt@6AKV?}{iX%ZB;g-$clf-} zU%MFh3p6k8EzbWa)q=f_nW4@Qi9172F(B;EFGNfGU3pyK)%N_`$?*FlHQN>u5HkfL zW29pGf^=w>fBYDyJF*sUe!B&hMCg$ICqfL9yjU`MNpb^QiGF+UxtnNsvKtB&VT}3! zy(*p{_;dSp5mG#AS=idiiu?s$H`!?9Z1kS&+jcBJTw2+_MgzRXAVFVBo;5(+Mh?<2 zW;14LD9w1|HV=iHt+U0cukE~a>rxVZxRYb3eME6j$u^rzt6efFOdmcm%IcKLuuL+tk4n=QM$(Wr0^W?J z5osd`EW8ZM4FCdSnAYWZ*(&hRmG?E-m0zuf77nT%REs2{2Rk`&j)irVI1il4q8U0AQs<5bRV^QoLE>~6}PPpT953m3eYL$2bRO7?8-OA{1~N9 z$WL$T7?w{FBTYZwoKkSjP8Bw#DN%UkDk@UV?{oU zZzKP=B${pI%?grlk|$&LPtwt>O>5j2rM1I4;?52LCLIwE;=A~5BIuNI*e;fvqLj`NO@2aOi$v3Wlin$k^{Gu8&MXsgiMVFGuHRWZeopk8789hfOn{_7 z-AGG%q`^Ek;g=o2lh;$)M)(h~owZq+^olFi6Wonq?TuN3VygCSmnSK9wdqO)D7(>M z5bf{+a>8OAhdLG;1OxZ;nq9VyEqxElaY^h?4~DT;Iw^S#npBXboZ`wI(zXm1r4iY5NfV)t+b{(w~AwmrP+TrXb!N^t2gt?L_Cm zq|%lt`_^d#;-zXo!3_V!+fmF>(@<%xY`4^;t`IcdR#F8u!8rMK-}U|niIq7}vit21 zNBz4J$ZO&>E4*;ayjv2iX4L%4czye&RI1~@J1LjrmP9%KHj_&1p)GXM80oh|m;)0y z)D;Txykv*^no}s-BERW`-{F7vv>wk;9VzYfZ*i9Exd>ZO&&Sx5a(uI1fsX`OPxy6# zOs#P)s18rULtHSt*k}~iTKJ7GAOeME^2?4Nf1uxEZ{h99n<|y9IXcvQ4tc_1jNu@1 za0n~T-WgiN0S9ZVVGfGydJ!&G>go#BYGE#FX)P*rohYV@yHYJKUzy$JFhO-VvbTYS zD@w^lFldqaD8YWF=E0fzHqnS#4&y}Vv(Dz2ppmy6ozk+&7Zksh-NH;B`A9~R$q^LMF2o;qSw6_M-{+I`A4x8 zRE%;CTCcSxWjro3q-`fM*;$fY4JilKBkmOy)sQAoLt5g3=m+*6blnEa`A#|L0d&~RfV2sxvB`wx zK9)w;ezIRNnR^;MHvDLayLQhvF8EfKd?6%o-`jo|uI4sX07 zw+Hs0z*EGk<-SZcr6@g_W#%!yS3xm7OLqS?Y{{MTRvgSsd7m^};<#*2AkrYh8+=7H zQ*$I10;BBE?r~RQOrT%syDI4Ilmz+49UU>!g&{5chd~V~ zC7)Fism@HVG84Oh*AN&#;vi1OdJ89s>VxWYXqg}H9~=!1w)*~o)iq5n|4rr)oQg8% z{Do!BRZ|fyeWHp|)+=!sy(1W}8rC~TL%=)E>9R7m>>Qfs+Tdx-5}MZ^UQbtWL0G*D8Y{h6 z^4I(E&0LA$&zLo@GfPZsr4N*58Fm>DA@!IOEM)1dd03#VXV~}oyabyL*Ky!pu}W>9 zR5jUAhf}3MAE6Hp+2fKp8(?H=bykOgCm|EX!tIiCE#%EeXT6}Ubmn9Ix9dS!oqcy%)wpvpEEsoLXf`oF)-*as0K0PH%ZF9-uVrKKm zU4$w8Z>0W#LV!296y;)N*zYInH7uVN{h!q6Qs$X?y%8^~2jw161Kh zg1_r>T6Zy-yp!_zV{~1ZhoB*)z>mXVje;f1NJ@+GQ`Bn2$_jWRrwE?C5KN!qX6vn- zpk5{p)oUv2YthD`=s2e-mtsmS12vKtP?D8B6pkfh7AhoTdq{zYP*C7QC<%AIK~sq^ zHDH%*{}FpH=6FRLYb;3V4=VeQLMi01hOVE9Z!6?kmkBq02Y*YFU{OaxrnGLJ_j`OS zClPIu&CqbF14=q>2D19zRV39R6bA%Xl_Tw|7)+h!tKEm44WX1I{-NrnxyPr-egUDP z&NIqCm5J@6R8+GF9F+Sfh8`Q!p$FX;O4?A5BmNYdsJ8KQ3bdB5Y~>>|#cT}Rwz{a^ zAK?$P$(8+*8Ta8U@{eRpdPJqX?Sd`$Z9*m+!>3%fhdG4!T8Gx)z3T*uJ#0lQFTD*k zMSz!YZ(j7{=yll1=M%ivNT{jWm16KAna4R*cZFx(Uou@^`Y*pQlUBTfTAs477-@S1 z*JozDt~>JL|Jd3J{rBTzOJ448TNfeU^_kh&i80$#@>KGlXPl=rZ8u{T$BA1))Kq2C zUXLSt7{*FESJ5X*_DuF$7GX|1YH5TKacs%$7O zZsiR=qSrOPBgMrs3gct{v37N0!wIXN81)R}Ai9nDH2Z8R4{2*sV>7=Ftqdi13$qvsSp%tQluc{X8?jFNXrzZ0spn6RsrT=DZE`!8mqGZh5(o9~ zs?5epn8_$cyq3hW0W{Mn)A?tvGPf$t{!~MqYP~RsDLYZz=sr|OzgCx-V7GxN?&_UM z6wD62Pu{+dZBhgP_P_Qs#2c?W+Bw}huWJJscZO|5ras5<{(QzQQ%q;R??_z67=>Ti z{r5yUM;A$AaUBv!`~DA9MNxIh%&vaCe7tXbpj8CrAW0{2N`&M05Xrkr#}`nE>k=*F zKHswHtIowtsOP_c6b>V4%=Xy~7*}4oZ!Jmbt+AJ++eg}GW)qRef_!ard@E9XD{{PT zgS>s5f6IAM86@s~T%93|pCg(LMX2L2#PLfuTptX#v#BTkzyr`PRGy)fe8l=>`2F#n zBVGw)8aZH>?4b&0Ip##vjkSrai4FPoIkkKCou9IowzXeS=N~m|@)QwVk;>cso(n9D ze_dNMf4x6;=KY#s?)fE@lzU#`lp*ndnEz!|0t1uXX>k z$_ogfTVThA0l~t+!NMcL!Tgs%Fd!T%P6-VQH*A1wfs#Y~f9Mu2&0RwZ=Uz5I$S^P< z7%}V@5L6!Rku-D9{Q#{yX|L3sMmTX(D|MUBG*6Wp0W9R_N&;D!u!fc{H7V2y^ z7>ofB&)3cx{NmpA@l{q<_Q+5Iu8K4DdiEm`TZvP!n!$qVmlcogmeSii`r2a=Ta{C= zi@}25OzMh9YH8j(AV=X8tN>)Bc;vTK+~$eB?gV5REIhvMlmB|)yJLC<;7ltbz^ab5 zAn>BiO?kc7sgIlsmX=mYSd0hU7iJ0vx2qyS%z_!OPdZk6)NA`xnK+jF0xH`>pWu^q z2(Ije@(1C;R`|{g(dqoBQj( z^iMGWeF|_2AWz}--=)`YYUroWxS+&l&wRv~V_PXOmcoK+lMwmmqes=GlHKu{d=KuD z$lZ*+Q>+`{nNCD3CT{c8YENxVFpZrYi~1mem=aic|jcX=8gNG@jh~Mb3K!0atlL00<=gU#Sj1$`1vp^=zj1w zbHmI&u)>Y;+v`UD?x@#l__pA-Lg^IeX|X&{EGAF-d?p+mv#Q!IZ0&wwD+flI2WVjF z_3tV3lurTScP-EU(|S%j>9sXE1<$^Urr2nb^&sOa<7(2^8uI#X-hTbeKFGLcJv5r? z$adlSFXMmzEI|MNWdCOy`lDdW9R$Os~ z?f#5H{NyY|XaG*8P%ZBe?$;tteO>|{!{8Jg-;rT7JKd13Sr$NWsojul%KQJKxO*Vj zGs6hTxj)gHs50Y&FljfWy8}zqG&wq`?DGRG6Ox zsZj`?aszPtrTwJQ4yon0dHl7tnwVI>>6$ZS%qT1(qU705hfPDg`!~zIw zQuqaQ`S-t8>IAQj+mI|R@OmJXH^)fVt|9r&3@(kRB6{(S{r>2TfdZH0cGf-TpxeZT;ZX(QQNB(@8~ za6x*HcXH==6?O2zH{eFfet8kr_-BK!n8_wufZ|=V9%LWdX4q!`;`W2`LepPBV*j;& zGezL}gQO^}7*+cB9XQ55CU#dd5a7Nh4+su@?|olDe}4mt=t+zT+yPpQDlP4o8OVte z*|VOVovwIe@O2@9U6|dDL4SCu&T?=;Fy_) z$dj2`;B`8)bc|Q1GPmif-gF&cbZ1C-=^P zc$m&FeW48o1$DEL0YE(sCbtQG6f2mV1?o$exzRm*qBIhArlx0EZa(5>)erYaA7k1V z&;cQvu2^WZ)@wUlBXr%%I84k0mi`Ug#VHq1JnR?kfJE}71#L~eXgh^b-7pcoD@;AK z3Nzf5MA3jYRxZV}LhEbt$nT7`q)qVKR%WC7`CKk?#oH?4ZKbOdko`oTlR=$U^AOk@Qjne z>C|7Sz8rJzwkva2S$=-S|5o`fj5a6uF75@ix;hM~#UwaMpFF=6NzD+6=9$5@mukgV zDzKK)cG(7 zlim=(-1LPL#N&wdi;N=6FRPA24*UXQtGvDV+TrX}_^S#n4f#~-_Y3I4S{d3P_Jj({ zGt?4RO)<@(`T}CMT_*5+wk?g{px_`*Tbd0vAHhvI;~lL5Xsm{KFSHwC51=)G&qO1Q z`XF!tB(u+*a>>l7b(oG%jrTjjOZKnPWgj8o3q`BY@Qm>TlxYnPIxA%E{APDYAz{RtrH7o zg-vX7(R)h5TeaS@d=XB47lcTnHXHn~C(Wy_@@!`mSukkJf!Gz_atwVACtD5OBURK5 z*OtX6QE+AR4x$F)T`+po%9dfUGk{KTzc!dNtJ4BHjQhNcBD=r;*7c8$KFrODLwELf~! zy{T)EDilb+m(8uia1emu_8U6HhIo~+dlF%KH2I?*OO>tG&6d{{i@MLAAZxgyr zPOLf-(fBZ}(OZs9Hv0@eY@o6DkO^_=n7+b zYc>j|dD98ja@dhwT|ZUU-+|%RLq2A?6%7;s5yk9$o z4OO^abU-H^t8whWQxIR(Mm){3LmaWdAhbPkc>%?-I`iNBJa*BJqIsL4YC)59vZTIyCEQi$NBYZ5`B2q{1hq6Bf8~LM-M658!_^7 zo1)ubh2$;y!tt!1laXdwg)@Ic9eXx197`3q7kUSo-GHH>kTcV2bXIeg>;t=#bXiuqj zxe~>XtM^gLYQi&6k#BBuj_7k9`=n8m0}mhIjbw|LEd{Lq1$=n{jd1qBy#4CKtz^IV z;3LJ3d(x1Ya@0GPKc_Hv!Llz*_QY5hFKNdX@s;)JViw$gU)lHzX9gTfl-v%w{d5m+ za%}oD21a?Z&P+e;TkE9%n!0ZpH0KQ$5_reLq61yj7<1Uvc_F-;4N}v6HS~3Z&qarw znrYJ98-cy*hCh89$=UbGh=?q{k*hWMPP)||I?#rp=?G0cwwYuaW*KFKRLF9xp5xBr zOl{r{l5t?q)H=4|eQq zxg6PW;>emmFKP=>O>9>dkf))9vb7^#Y&8Qu%?#BXH2P9n2dij5@6(}Sh~{eeqWu#5)LxG0TKJ85LX$egP_<- zv8qoxXA@2z`;SQtH;H&rzIVAwSc|JG=E1yx#*mL-3gs;qRu$a`Vl7%hg%9_V;`kJj z&xM*;hHg=w;E4lY}SKVPg8GIxV6Pn2;U)>RB_9(K^X1n z>?$yu(qY|Icx~oxa@Nf3nduf>$CxFw0`@Yc@y(9CD#-wQ}I%UQkbOE*rP&#jCeQ*CLF z`S(b8I7=IH)mjM>2M9K?I=;{Q-(vR!W>v@8-aJNsgMuRw=DI3dJ_%EfZyq_)6)2D; zn1)kiXk|_7%0RipL_T{7pXhoRa18DjH--ER}Lx9HeK}pX4CdDh1!As`K#JN z$30EK0nb0FAlo6y>vgIhWr7?=^xq%WjZLrWa*+-V^7;7abl=F_YYij|l<3}N z7eQ{0_mUj`zJPXZ&hjg@3)3B^ELqKyxbG=-V5cIqbs$>e9X=Ay|HAumF0~}9Ow{0x zw7reR6=e|fIYDHAT5nmD{yS%+3HAiZp5 z*$8A8ZLv(>`&_vPUYAnD_6Vu_DT{Vu%JtBC3^7h9=ajwv-DL2jim?rk*=P^rg)m`+ zS7O3mG%$*A2~Q_jX?Ov_SEX-RJzGM%W)dCm;aIVk5lV^}SgOZNPR>ZfTP-ezG77!* zY1q($`KBPw{XeRhen&ggQ9;Ru=f^z6+KtPz{QFnOxk72Ben~~<1>f9tXyTM3kSK~x zf>p{JVmc|l8M78|I$tvko!@_muj}b2k5*70|HkZsSr3-_8KJJLSL`8Zh55Kmt)b_| zZ&f*!?rDZ7S!epmilq+EKAfFJeQGENnC97~f$3h-KXz|KSk~F%4;f%l16lIwyz5}* zORu>t)DH*+HDdm772g;_w3DnN`0`uyB8N>&oKo!X`tS4*pq zjak<*C&Ou#Dlwe;#9!oK_^(ui^y!)3GZb>jLY|_tJ3{GWyZv+(XaMcB1OyWW9VNs^kc|>7N3h7~C0M zH0-XeYh{Xe<{RmGc3GcHP6so6DmTZ1Ho`7pHd;5VbbQZQcKdk58HQ#RsOUfGmMAW= zR_2-f577%_>2^e)BJ&(?!|D2clV5^9&fM^8AIVC&~R3};V|h-J;e zSYG>WCZA4BwVs>6db!7aR}EVdjlvU=A^u#w<{9_FlW8k=;(>k|f}d=Co|7eCo(%}!{NBL$?a#jnwdpE!2$HqSrA|&j zX@B6TvxGxD-|~1{!K!vAX6iMx+Qi#xL;r-C?AwY#Ce3B>8&kEH=Gwu!rypD(jqAt<3%Kkm(b)mEc767j*7F#3 zt8fF$dYMUV*i}hl2EC4{0MTna9}(mo*QurKxe>|v>!{$=svkmp zk(0bAsH%^xTsBCo*}#GgLCmPYl3zSKqrIx-c@P)9{JslrQcoifF=i$t6^L3Ej5lJL zH!<0}`cC^q>>kVz3gR`X&^WlG^O~>yXH2+UJbqG!?LuR9$$;AG$OHnGf}02D#V`ex zJa_!k&fL__@0G;w1)s1cgbO_;?jox>;9Ap>L$Mz)OM`jt@$4a;k(Z=6WI(HiluyZu zcYw6G5FQlG6IUm^8b z;F`#Q*yivD=I=?)n8delEF7F%j+Bb#DeBEf-c@{Z53q|cAlW}@m@(5Q(O_SWGUA)? zL)T|+`Fl^>;jJU0tS&#t97uf}dpz*C8_CWh)?)uzVkMDQ7Q-dD`&TG zz((J|a(Vl(R`1y!VMj7GJJ5doa+ zg7%N84bL4AXY1cCL~#5T2v{bV*g_=3(vPmxV9u+*(@Mh|B*p|cxAn;6ziL4o%0AtS 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%0D$xG%(s?b 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
q^xz{><*XkaY8X48GS z(}xk}XS9W_f8iwY;D=sBI&QsTjwoOi6LBC7?f5F&l=n3_cS`uR7hYIEE}QFCOk&JF)fL^X zHN9W1i=P3j?iyY|(sv&Pt&v~WzmHnOB#(8lHkIf&x3s8}?INIK|MUx1rD`H3l|9SB z?r|bg!YWWZV9@&GuPN13Y(H@*w`C`T?%AS*AS5*wl)B7uiHkI1CwK-03$E@Z>b{NM zMb=0f43d-jYTQlbIzsuoG5M!|N?XWdndG141?^m9S~=+1+3cGwLc9bBd&l`XeJQ|MoChM zV{}^p_nC0xx>Y%g9cW2WLz}{p^JE(1LNN|XaTFwzB!)f4%#h_x+*awZd4iV_RvniM zGqoG#^c8+iOv59D^}jE%n3IRTAS7966K#p`BZS%-kcFO)TBGb>6+004-PdZn!RB3M z&WKkVxRiZ=^u6XujqqY4Alu`5BDcguLz!OVR4?znT);Chh0p%rbibwCidZKl9;Ox&%kqo_JluAM~!PjMQ!3TDdu zH1zirmdej=Dxp(&B+&*n8sILk-Vpq8Iea|E}k2A^japJvP1+Ieeg9GeNO`b1r&v}^z%hN|43U<3$cMR zc6jZ`zsdDi%sP~W>eA^T>G~4|H{{9qYn$qT1abd^V^!z$(EO$LWVCVS=n7>0IxZ1p zJ9jbR&3)a8c(T!(vXI(T9rxZ7VpF-teHWfZ@F(!m>z&-85dtpXC{YV@wJfTwxt?PN z+V}E41d~{gB7fsw59*Mk@qBT*le|bh`>Yqe)UIY;N2LH zg!FkI9|wx$Cl5E*4fWN<1t>jBGta0Nk<6i_;#UlE81*JF!9BHT3$COxbh#PAl9_=r;mMs%P`^hte+cR|r{-{MyE$FX} z=r47{t`r}@j&HFDK##Yf(7KO$(wq5aeb(jwh#$}D6Wsgfr1Dwguf4fB8FxN2(G^=Y z8aCE3aOAOwh}1y>{m&m{iVkzz<+-OUO*miXoxuC7wr!&i6n{^5I#YkLhA�_jTQp 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 🎓 Remember, this is supervised learning, and we need a named 'y' target.\n", + "\n", + "Before you can manipulate data with R, you need to import the data into R's memory, or build a connection to the data that R can use to access the data remotely.\n", + "\n", + "> The [readr](https://readr.tidyverse.org/) package, which is part of the Tidyverse, provides a fast and friendly way to read rectangular data into R.\n", + "\n", + "Now, let's load the diabetes dataset provided in this source URL: \n", + "\n", + "Also, we'll perform a sanity check on our data using `glimpse()` and dsiplay the first 5 rows using `slice()`.\n", + "\n", + "Before going any further, let's also introduce something you will encounter often in R code 🥁🥁: the pipe operator `%>%`\n", + "\n", + "The pipe operator (`%>%`) performs operations in logical sequence by passing an object forward into a function or call expression. You can think of the pipe operator as saying \"and then\" in your code." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Z1geAMhM-bSP" + }, + "source": [ + "# Import the data set\n", + "diabetes <- read_table2(file = \"https://www4.stat.ncsu.edu/~boos/var.select/diabetes.rwrite1.txt\")\n", + "\n", + "\n", + "# Get a glimpse and dimensions of the data\n", + "glimpse(diabetes)\n", + "\n", + "\n", + "# Select the first 5 rows of the data\n", + "diabetes %>% \n", + " slice(1:5)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "UwjVT1Hz-c3Z" + }, + "source": [ + "`glimpse()` shows us that this data has 442 rows and 11 columns with all the columns being of data type `double` \n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "> glimpse() and slice() are functions in [`dplyr`](https://dplyr.tidyverse.org/). Dplyr, part of the Tidyverse, is a grammar of data manipulation that provides a consistent set of verbs that help you solve the most common data manipulation challenges\n", + "\n", + "
\n", + "\n", + "Now that we have the data, let's narrow down to one feature (`bmi`) to target for this exercise. This will require us to select the desired columns. So, how do we do this?\n", + "\n", + "[`dplyr::select()`](https://dplyr.tidyverse.org/reference/select.html) allows us to *select* (and optionally rename) columns in a data frame." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RDY1oAKI-m80" + }, + "source": [ + "# Select predictor feature `bmi` and outcome `y`\n", + "diabetes_select <- diabetes %>% \n", + " select(c(bmi, y))\n", + "\n", + "# Print the first 5 rows\n", + "diabetes_select %>% \n", + " slice(1:10)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "SDk668xK-tc3" + }, + "source": [ + "## 3. Training and Testing data\n", + "\n", + "It's common practice in supervised learning to *split* the data into two subsets; a (typically larger) set with which to train the model, and a smaller \"hold-back\" set with which to see how the model performed.\n", + "\n", + "Now that we have data ready, we can see if a machine can help determine a logical split between the numbers in this dataset. We can use the [rsample](https://tidymodels.github.io/rsample/) package, which is part of the Tidymodels framework, to create an object that contains the information on *how* to split the data, and then two more rsample functions to extract the created training and testing sets:\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "EqtHx129-1h-" + }, + "source": [ + "set.seed(2056)\n", + "# Split 67% of the data for training and the rest for tesing\n", + "diabetes_split <- diabetes_select %>% \n", + " initial_split(prop = 0.67)\n", + "\n", + "# Extract the resulting train and test sets\n", + "diabetes_train <- training(diabetes_split)\n", + "diabetes_test <- testing(diabetes_split)\n", + "\n", + "# Print the first 3 rows of the training set\n", + "diabetes_train %>% \n", + " slice(1:10)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "sBOS-XhB-6v7" + }, + "source": [ + "## 4. Train a linear regression model with Tidymodels\n", + "\n", + "Now we are ready to train our model!\n", + "\n", + "In Tidymodels, you specify models using `parsnip()` by specifying three concepts:\n", + "\n", + "- Model **type** differentiates models such as linear regression, logistic regression, decision tree models, and so forth.\n", + "\n", + "- Model **mode** includes common options like regression and classification; some model types support either of these while some only have one mode.\n", + "\n", + "- Model **engine** is the computational tool which will be used to fit the model. Often these are R packages, such as **`\"lm\"`** or **`\"ranger\"`**\n", + "\n", + "This modeling information is captured in a model specification, so let's build one!" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "20OwEw20--t3" + }, + "source": [ + "# Build a linear model specification\n", + "lm_spec <- \n", + " # Type\n", + " linear_reg() %>% \n", + " # Engine\n", + " set_engine(\"lm\") %>% \n", + " # Mode\n", + " set_mode(\"regression\")\n", + "\n", + "\n", + "# Print the model specification\n", + "lm_spec" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_oDHs89k_CJj" + }, + "source": [ + "After a model has been *specified*, the model can be `estimated` or `trained` using the [`fit()`](https://parsnip.tidymodels.org/reference/fit.html) function, typically using a formula and some data.\n", + "\n", + "`y ~ .` means we'll fit `y` as the predicted quantity/target, explained by all the predictors/features ie, `.` (in this case, we only have one predictor: `bmi` )" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "YlsHqd-q_GJQ" + }, + "source": [ + "# Build a linear model specification\n", + "lm_spec <- linear_reg() %>% \n", + " set_engine(\"lm\") %>%\n", + " set_mode(\"regression\")\n", + "\n", + "\n", + "# Train a linear regression model\n", + "lm_mod <- lm_spec %>% \n", + " fit(y ~ ., data = diabetes_train)\n", + "\n", + "# Print the model\n", + "lm_mod" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kGZ22RQj_Olu" + }, + "source": [ + "From the model output, we can see the coefficients learned during training. They represent the coefficients of the line of best fit that gives us the lowest overall error between the actual and predicted variable.\n", + "
\n", + "\n", + "## 5. Make predictions on the test set\n", + "\n", + "Now that we've trained a model, we can use it to predict the disease progression y for the test dataset using [parsnip::predict()](https://parsnip.tidymodels.org/reference/predict.model_fit.html). This will be used to draw the line between data groups." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "nXHbY7M2_aao" + }, + "source": [ + "# Make predictions for the test set\n", + "predictions <- lm_mod %>% \n", + " predict(new_data = diabetes_test)\n", + "\n", + "# Print out some of the predictions\n", + "predictions %>% \n", + " slice(1:5)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "R_JstwUY_bIs" + }, + "source": [ + "Woohoo! 💃🕺 We just trained a model and used it to make predictions!\n", + "\n", + "When making predictions, the tidymodels convention is to always produce a tibble/data frame of results with standardized column names. This makes it easy to combine the original data and the predictions in a usable format for subsequent operations such as plotting.\n", + "\n", + "`dplyr::bind_cols()` efficiently binds multiple data frames column." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "RybsMJR7_iI8" + }, + "source": [ + "# Combine the predictions and the original test set\n", + "results <- diabetes_test %>% \n", + " bind_cols(predictions)\n", + "\n", + "\n", + "results %>% \n", + " slice(1:5)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XJbYbMZW_n_s" + }, + "source": [ + "## 6. Plot modelling results\n", + "\n", + "Now, its time to see this visually 📈. We'll create a scatter plot of all the `y` and `bmi` values of the test set, then use the predictions to draw a line in the most appropriate place, between the model's data groupings.\n", + "\n", + "R has several systems for making graphs, but `ggplot2` is one of the most elegant and most versatile. This allows you to compose graphs by **combining independent components**." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "R9tYp3VW_sTn" + }, + "source": [ + "# Set a theme for the plot\n", + "theme_set(theme_light())\n", + "# Create a scatter plot\n", + "results %>% \n", + " ggplot(aes(x = bmi)) +\n", + " # Add a scatter plot\n", + " geom_point(aes(y = y), size = 1.6) +\n", + " # Add a line plot\n", + " geom_line(aes(y = .pred), color = \"blue\", size = 1.5)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zrPtHIxx_tNI" + }, + "source": [ + "> ✅ Think a bit about what's going on here. A straight line is running through many small dots of data, but what is it doing exactly? Can you see how you should be able to use this line to predict where a new, unseen data point should fit in relationship to the plot's y axis? Try to put into words the practical use of this model.\n", + "\n", + "Congratulations, you built your first linear regression model, created a prediction with it, and displayed it in a plot!\n" + ] + } + ] +} \ No newline at end of file diff --git a/2-Regression/1-Tools/solution/lesson_1.Rmd b/2-Regression/1-Tools/solution/lesson_1.Rmd new file mode 100644 index 00000000..d6a0c0ea --- /dev/null +++ b/2-Regression/1-Tools/solution/lesson_1.Rmd @@ -0,0 +1,250 @@ +--- +title: 'Build a regression model: Get started with R and Tidymodels for regression models' +output: + html_document: + df_print: paged + theme: flatly + highlight: breezedark + toc: yes + toc_float: yes + code_download: yes +--- + +## Introduction to Regression - Lesson 1 + +#### Putting it into perspective + +✅ There are many types of regression methods, and which one you pick depends on the answer you're looking for. If you want to predict the probable height for a person of a given age, you'd use `linear regression`, as you're seeking a **numeric value**. If you're interested in discovering whether a type of cuisine should be considered vegan or not, you're looking for a **category assignment** so you would use `logistic regression`. You'll learn more about logistic regression later. Think a bit about some questions you can ask of data, and which of these methods would be more appropriate. + +In this section, you will work with a [small dataset about diabetes](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html). Imagine that you wanted to test a treatment for diabetic patients. Machine Learning models might help you determine which patients would respond better to the treatment, based on combinations of variables. Even a very basic regression model, when visualized, might show information about variables that would help you organize your theoretical clinical trials. + +That said, let's get started on this task! + +![Artwork by \@allison_horst](../images/encouRage.jpg){width="630"} + +## 1. Loading up our tool set + +For this task, we'll require the following packages: + +- `tidyverse`: The [tidyverse](https://www.tidyverse.org/) is a [collection of R packages](https://www.tidyverse.org/packages) designed to makes data science faster, easier and more fun! + +- `tidymodels`: The [tidymodels](https://www.tidymodels.org/) framework is a [collection of packages](https://www.tidymodels.org/packages/) for modeling and machine learning. + +You can have them installed as: + +`install.packages(c("tidyverse", "tidymodels"))` + +The script below checks whether you have the packages required to complete this module and installs them for you in case they are missing. + +```{r, message=F, warning=F} +if (!require("pacman")) install.packages("pacman") +pacman::p_load(tidyverse, tidymodels) +``` + +Now, let's load these awesome packages and make them available in our current R session. (This is for mere illustration, `pacman::p_load()` already did that for you) + +```{r load_tidy_verse_models, message=F, warning=F} +# load the core Tidyverse packages +library(tidyverse) + +# load the core Tidymodels packages +library(tidymodels) + + +``` + +## 2. The diabetes dataset + +In this exercise, we'll put our regression skills into display by making predictions on a diabetes dataset. The [diabetes dataset](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.rwrite1.txt) includes `442 samples` of data around diabetes, with 10 predictor feature variables, `age`, `sex`, `body mass index`, `average blood pressure`, and `six blood serum measurements` as well as an outcome variable `y`: a quantitative measure of disease progression one year after baseline. + ++----------------------------+------------------------------------------------------------------------------------+ +| **Number of observations** | **442** | ++============================+====================================================================================+ +| **Number of predictors** | First 10 columns are numeric predictive values | ++----------------------------+------------------------------------------------------------------------------------+ +| **Outcome/Target** | Column 11 is a quantitative measure of disease progression one year after baseline | ++----------------------------+------------------------------------------------------------------------------------+ +| **Predictor Information** | - age age in years | +| | - sex | +| | - bmi body mass index | +| | - bp average blood pressure | +| | - s1 tc, total serum cholesterol | +| | - s2 ldl, low-density lipoproteins | +| | - s3 hdl, high-density lipoproteins | +| | - s4 tch, total cholesterol / HDL | +| | - s5 ltg, possibly log of serum triglycerides level | +| | - s6 glu, blood sugar level | ++----------------------------+------------------------------------------------------------------------------------+ + +> 🎓 Remember, this is supervised learning, and we need a named 'y' target. + +Before you can manipulate data with R, you need to import the data into R's memory, or build a connection to the data that R can use to access the data remotely.\ + +> The [readr](https://readr.tidyverse.org/) package, which is part of the Tidyverse, provides a fast and friendly way to read rectangular data into R. + +Now, let's load the diabetes dataset provided in this source URL: + +Also, we'll perform a sanity check on our data using `glimpse()` and dsiplay the first 5 rows using `slice()`. + +Before going any further, let's introduce something you will encounter quite often in R code: the pipe operator `%>%` + +The pipe operator (`%>%`) performs operations in logical sequence by passing an object forward into a function or call expression. You can think of the pipe operator as saying "and then" in your code.\ + +```{r load_dataset, message=F, warning=F} +# Import the data set +diabetes <- read_table2(file = "https://www4.stat.ncsu.edu/~boos/var.select/diabetes.rwrite1.txt") + + +# Get a glimpse and dimensions of the data +glimpse(diabetes) + + +# Select the first 5 rows of the data +diabetes %>% + slice(1:5) + +``` + +`glimpse()` shows us that this data has 442 rows and 11 columns with all the columns being of data type `double` + +> glimpse() and slice() are functions in [`dplyr`](https://dplyr.tidyverse.org/). Dplyr, part of the Tidyverse, is a grammar of data manipulation that provides a consistent set of verbs that help you solve the most common data manipulation challenges + +Now that we have the data, let's narrow down to one feature (`bmi`) to target for this exercise. This will require us to select the desired columns. So, how do we do this? + +[`dplyr::select()`](https://dplyr.tidyverse.org/reference/select.html) allows us to *select* (and optionally rename) columns in a data frame. + +```{r select, message=F, warning=F} +# Select predictor feature `bmi` and outcome `y` +diabetes_select <- diabetes %>% + select(c(bmi, y)) + +# Print the first 5 rows +diabetes_select %>% + slice(1:5) +``` + +## 3. Training and Testing data + +It's common practice in supervised learning to *split* the data into two subsets; a (typically larger) set with which to train the model, and a smaller "hold-back" set with which to see how the model performed. + +Now that we have data ready, we can see if a machine can help determine a logical split between the numbers in this dataset. We can use the [rsample](https://tidymodels.github.io/rsample/) package, which is part of the Tidymodels framework, to create an object that contains the information on *how* to split the data, and then two more rsample functions to extract the created training and testing sets: + +```{r split, message=F, warning=F} +set.seed(2056) +# Split 67% of the data for training and the rest for tesing +diabetes_split <- diabetes_select %>% + initial_split(prop = 0.67) + +# Extract the resulting train and test sets +diabetes_train <- training(diabetes_split) +diabetes_test <- testing(diabetes_split) + +# Print the first 3 rows of the training set +diabetes_train %>% + slice(1:3) + +``` + +## 4. Train a linear regression model with Tidymodels + +Now we are ready to train our model! + +In Tidymodels, you specify models using `parsnip()` by specifying three concepts: + +- Model **type** differentiates models such as linear regression, logistic regression, decision tree models, and so forth. + +- Model **mode** includes common options like regression and classification; some model types support either of these while some only have one mode. + +- Model **engine** is the computational tool which will be used to fit the model. Often these are R packages, such as **`"lm"`** or **`"ranger"`** + +This modeling information is captured in a model specification, so let's build one! + +```{r lm_model_spec, message=F, warning=F} +# Build a linear model specification +lm_spec <- + # Type + linear_reg() %>% + # Engine + set_engine("lm") %>% + # Mode + set_mode("regression") + + +# Print the model specification +lm_spec + +``` + +After a model has been *specified*, the model can be `estimated` or `trained` using the [`fit()`](https://parsnip.tidymodels.org/reference/fit.html) function, typically using a formula and some data. + +`y ~ .` means we'll fit `y` as the predicted quantity/target, explained by all the predictors/features ie, `.` (in this case, we only have one predictor: `bmi` ) + +```{r train, message=F, warning=F} +# Build a linear model specification +lm_spec <- linear_reg() %>% + set_engine("lm") %>% + set_mode("regression") + + +# Train a linear regression model +lm_mod <- lm_spec %>% + fit(y ~ ., data = diabetes_train) + +# Print the model +lm_mod +``` + +From the model output, we can see the coefficients learned during training. They represent the coefficients of the line of best fit that gives us the lowest overall error between the actual and predicted variable. + +## 5. Make predictions on the test set + +Now that we've trained a model, we can use it to predict the disease progression y for the test dataset using [parsnip::predict()](https://parsnip.tidymodels.org/reference/predict.model_fit.html). This will be used to draw the line between data groups. + +```{r test, message=F, warning=F} +# Make predictions for the test set +predictions <- lm_mod %>% + predict(new_data = diabetes_test) + +# Print out some of the predictions +predictions %>% + slice(1:5) +``` + +Woohoo! 💃🕺 We just trained a model and used it to make predictions! + +When making predictions, the tidymodels convention is to always produce a tibble/data frame of results with standardized column names. This makes it easy to combine the original data and the predictions in a usable format for subsequent operations such as plotting. + +`dplyr::bind_cols()` efficiently binds multiple data frames column. + +```{r test_pred, message=F, warning=F} +# Combine the predictions and the original test set +results <- diabetes_test %>% + bind_cols(predictions) + + +results %>% + slice(1:5) +``` + +## 6. Plot modelling results + +Now, its time to see this visually 📈. We'll create a scatter plot of all the `y` and `bmi` values of the test set, then use the predictions to draw a line in the most appropriate place, between the model's data groupings. + +R has several systems for making graphs, but `ggplot2` is one of the most elegant and most versatile. This allows you to compose graphs by **combining independent components**. + +```{r plot_pred, message=F, warning=F} +# Set a theme for the plot +theme_set(theme_light()) +# Create a scatter plot +results %>% + ggplot(aes(x = bmi)) + + # Add a scatter plot + geom_point(aes(y = y), size = 1.6) + + # Add a line plot + geom_line(aes(y = .pred), color = "blue", size = 1.5) + +``` + +> ✅ Think a bit about what's going on here. A straight line is running through many small dots of data, but what is it doing exactly? Can you see how you should be able to use this line to predict where a new, unseen data point should fit in relationship to the plot's y axis? Try to put into words the practical use of this model. + +Congratulations, you built your first linear regression model, created a prediction with it, and displayed it in a plot! diff --git a/2-Regression/2-Data/images/dplyr_wrangling.png b/2-Regression/2-Data/images/dplyr_wrangling.png new file mode 100644 index 0000000000000000000000000000000000000000..06c50bb337af3e4fa215b232ced50466e7fdbe72 GIT binary patch literal 1064382 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�^FtGEfFMnZ>fE^nmno+w;7H}Oe+VwCWcn*c^j ze#woKg{4WWi|_`+{`7LEOvWHqzsyVaR+MY7?DgOHbbsg+j(y=B`aMU7iZ^v8-j#TS zd?y^9OGF>xi6u9B#BUhR3JzB*JOp_|iK3d^5tcR&Z+3c)D!a1WoN=-RRo7M(EyFp% z2;O$yU<84otOz`hk06Xtv|sL0A}no9QI_jCPoHBMx{vgf*p$mgC5Ozvp&A}Hs9;kN zoIEnvymF83q)>fRo86R9Fq90wT&U=`H99$K>&Kmh%GIaABqBYrhPA_a9mjLQV~-c$ zCjNnXBkgT{NHg&TT;MX)8~TI-KuyS=c!`7kLu7+fD+K8lsTKNdAY* zCT`ivo2>W)(KRfwYE2njV^FwOc5=-(W`lKV+33GPN1Nw3!R#gKWf`s#t1)l-6AY)H z$M3ahR~R@k47x-K4EJ+;)YGVlRknWh-C&{HM*hCQ%*ZEU~K>#47FPp2cLHlIhZHIhUlG}D!?-0e~h z(pCPHC%=F_^FNtbb$99MLepWVUs?Tg?N&SGjAeNBrH=G1dO#61{K*Ml3Xbl-VEZrN zYzQ|NXa7g!bo-gXng_D79+mlIMH}7&x^#8d-}zrKm@yU_DNO~U5+Kpz4OvLe+-dX$ zrFRD(x%lOT=xDIHb;t2*rYmzv|0wo9ThCl}+>|`x&(%~>#EPc}s!1bq4`IIJRjm^d zn50*D$Bh0ND3}&eZ0b>%jLVM|rr#r^v8z6F-0%lfpl){PS;pEV>V{+mr)G9uiJMTe zRcA>e`{9cqsBKXRNsG)AuA1k|fQ$fI;i1*nda)fA4zx6J(RRz(1hNWf>A+!P&FA{z z7EGM`E{?u;F>|oav_Kf{aPovee5B|&JCQDf#?C^z%mBH*ByR=c3`52;qb6OgE+@^2 zbx191(OGb3qpAmW8w4hGKriN7foB1A-SHGi5<{*m*Qz$%Y9*1)SLv^-wFt~f-0bX4u_)2s;<7ST;;x0?{F7F;1O9$(swi9bx=b&B(-!IF_C}_4x#w{z)5b!VMYfrysi^ z5m_pkX4^Mn1dLs|eP>Lycb`UUS*&vY4@7#S=aoADFj8uXp7ehhX%vp%pYYmTWahZb zZho#MyoVB6Di#i>N+*iytW6+G{>zPB6!{nr9>jO%k0F|91xPxy9N9c8-8EusCSsL;hIGkYke>?t z<3;9kB-)K&YXiaO$VkY0y=eUZ-z((_$*^8B83Lp)ad6XPzKQ9rvw)3 z2a#ey+ITv;RrO@2*1;=;@~^JRr@g^_bG;>^dFop7fWNkZ4Ce>>r;N}SNCm2g3ZI(dv6*q6U|F)bqF;dY@Q!zBe#TCc%;qLbC;wh35OF7UDWBtko0_tNg5J=jF{Pe(Q&~#$YupTX#MszEg)jkQT|_S>Qy-R~BWhi* z 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

P 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%0D`St&dJjP!_z97bt@Wpku$#ofg6zAhq|3#q>_ef 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

H-B&WRZ|SJj+VDY$C{ z_0350CVmz-Y}BEmxur>WQzxLs>XqgqNeKI-I}kHY-5(ZdV_RX319P_`Nzsb#kHn^4 zfw?O>2msi=wNfmkB0N^}W?v+z60DozuA%4QKg1u*LbSZ;;m_WO5z zp-BFr98(%Er(jlQnXX`{ zTX>s8R(G>ov|F8$t%WQVK*4AaCZ;|+z$0(db!zt7wFrj{0A8R2z)2i#yV4}O; zIGjOG#ju&%xl8Hnh;cE6x}1(H30F@Rggs&f~EI4(BN@#C41q0xrD10zRn0u*BElp{qhK&^vp9+ebajsm>A+8rlB6u zAaGF;6LeZkNf^9k&38+xnDh0t_=)SE2;XOWeFX#KQHDCYs?9j5?gKuUC(GdVjYh5F zIEcvsCdw9>z0Tl;-WUj~F_L$}-Mmw(7n*ruWn5BBpNca(_+$?A1t?D>c*m3CRh!U( zfes5;6=Rfv24(4J1ZP;p?uLXG>AH1y^jIPO7Wq+r2^o5acDQ*D!?su5DIuG;+xnfAEjG=lE@v3(gN13l@V*#T%_`hp zwE~ zO`LTT75xbuUJufbs}Rn{6Bn`zKyv$jEU?NA|Ro(vw6L{sUwJ%(=&T+brHxkS3SV7gy`)An-FGvCx<}7ua*f42@F^eQG zOkO|CAM@FbZIHq15K<=!lh@X?aXr1D7okwfr84pkMq}HJKMy&43c#fO=;USl^u+nG znY_1_&e=bI``7L6;%PA{d7;P0Fef;nb?y~u`{Ev6)WgSihO4Fy<94@fcf{bWNqUp^ zr(+C0dw}^HcP0oY-C>*9-eJZv%@SKHVZu(?j%dk|63P&kd!Ym|je_?yF`d|DuA&)6 zujKFDt*_6SyW|VLad8SXm~j#Sa}-1qTHaJi{n$cd+h(L?L5evN6Enn4+`Gye<3`wO z6E4MD6ZO3Ts7?Hy_8aw|vfr-!e|CFHM;P=CKPv|B zuXny+&z;cKWJupGuLkBU_v!kCKt+I&j8yKKPbK27ukOrEE3Tckh4m9QBgx)pRJLxp zW~HSKE1tS%Q>b=^SuAaMDGsXgu#E1Vw(4yiH2Xkmrp54Gct&He?mmz2`eBtL&*zDy zK+fcStY0kyjZWY<#Sq!K<7%2ab=@^Hc zGBV-#5zbtUg;9G|ZZ0Jo7{AJ&b)uNK1(h4HSZa3@C#I-B∈HBPs7e>ymy3@8Fvm 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

U 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 z zt*LqIpvkQ3Dh;=4qAc$=NNFOuTjO5f+pQVy2A+3DukO{A%4OZXJ39q~xzymDTZXxe z+F}?63RhUUj5g(rshw_3+KuL{GmINZEx`i4i%xf!;gCW^*xec$E7z#Ok^XdjiQ{N!cu}$lyye&mOyl|sEWFH8#A|Nz z6GstNNaYqoHw{bDYZ7x4BNDGHFHGXky20(oK#q5g*wO_25#m!xUT-r`;y?0AHS=whnMb2_$px6WCp*XN zT^PzaCXhX>vw!f9t?<2{fSC%T^07ZR`~Cl( z4he(uSs0iVN}&5HIMBp`A|ZuJMOb&lO9cd;HNNOp>3PI-m9(oQY$bUsW^VNu%-oYf zt+7-a%dIe%(uJ8DrEw=X%HnGmZHiGdXP$yHboyXt^WBR(GMkmB@>gHf-NGtUtk;e2 z!sxvj!WFM_NUC`LQM2QO z&bZJ!C=W_A4jWToOo0cJ0u2^ezhU3Ef7$&eYMR?tg1KA1$?a`Oh3PI{-NT!cTXvmA z?G9tnPE^vcl+z-d#o&Z&{^CZ{_M_ZRnD-tZhf3dUWz(|)b5~DE8>@OEKqiZ@ZXTt? z&`gLizP?YABtZ~^2#@9`fH~~YpHZ^xOPrQ<)U-)Cyo~yZMT_P02yJl0fRLf*qZOd% z6Eag5?mM;i%YD!oe|4Q1(rJ!G$!nX(kB zsJ@(J+mwR>{&jK4`M$U4X&j9Ktm*GERCgq!=29P!t(Qyb^o-4(DIkWC?&tKiqQ7H& z6SC>*2PF24b)4{nLIJ&x>Mzylvfr2676VfK=zxq+iTNr9OpA5KLF3OBGt74i3G=`K zRwJ9u-rW?afrcjC87wow=1*x7$=3m6pu&6&;%b_84{yiT?`+umN{xd|NJ0ak4K2T> zfVozxa_46k?PI4tXHU#LZ_^Wtwp_nuzkBUp+s)=>-)r%F_{o#+-2AL99GSIR4XFg- z;x98>Z(B!lvjwDfKa7gzrx!kM$JwYYPgEVpwh70Phf0BLH`?m^alNJxF`+_CXmR%G z2+>Y}SSKhTu}>cD*dO1Vu)nxXZ(zRHbgzEn+8A+*N$h^mC_l%lzM8yq1f?dHM72F6_OexxHkoL^Ug6GMBwxD4G7Mg}#e88OOP3b6$Dy*I!-)L2+qyMpZ#0hE z74lrq7R6lQ@e@|f! z)T2^njmpsMKV&gli~TsR6qUtNgL@hv%V6OjFQjX~5d92eOy=EF+AHGV`I$nJM*gb(2XeiJp#uT)RkH|CzQW1H9P zbnRV6`G^b1h+wB;>qXDJ_`Hs+j}knx6z8@g5`WCc_bHSC5!w74PQh|SgWJ8blW?~a zf4@8RYch*4xP1al>;Vj2Cf)!q#;r1x9m9s%g7f^6G+xk{r|ejVfU-A0aeXjJkgT1J z2p1n=>RPSDVMLeA?b`L+Eo)3PoZ+i=$C0TCdk220)*|w2O(AL9R|>Cr*s%P3-PvU> zW~7Zqck~{ELHyrr{DNKm*uSyLC;!+kEF!G&7htW222~#32P)8JmJ#HI@0mT0)UN0{ z12gl(|0uM{1X8*P+gTgtb8Neqk?1q3iG5KLwNjN_>egY zuT(5c9kZCLQq3$zaFoW4<=-yA z!X>klFPI&Fj=B*qN#iktcb7EZJ@~NsaQB$TDfU4D1_w?)cKHyIs%A;?1~K=5QX3$W z+^wOSS?ZZ3(c5q}%`B$3F@9>D!DO@9usWAxw^?;=dl#>yc%S(!QoPTwsiXU24t!MD zrnKXzF$KmHxL+us<;sujrv2mYZ?evT!Mj$sDj(&tb1ZNs*yx?8VM|r>CQpN@ghcxq zF<4CJIE9kuPOW@fceVwyi>1?nk}u}3Lv~WjT;*OoN%86~UROyR0W!IUb>9vpj?tO) z*`d~>Jw^%XeS&C1FZV9*WYY zvo-~lrRJ8w-%eWo%Xm%!Nm53Ig!Lr!r#<`(lIIz~vcC#;m6OUB>D{)Z%=s6pdtp@8 z2@VJ7F5W_gj|)lhK1jyf8TvxwyNH}=%AKkl`$dNaZ1du^Nvqo_cY$K3EIx4YVxH-a z&a~@8Oi2g&0f-MAHO3X*3k7r_po*kbgS&D!SL-fudthTJ9nJUs`3|=0k+g#a1igzPOTPxlNO@8?WIVY;K8mJCIFd_r^^%eqPftvMWyZ-*uux-CjtLo#+P$DxAmJW`;? zC<~n30*5EKJh;L7y;Vi(9W~2sBwuvjV}}jXPM(cQE%tZOPjv@xty8pH%^7>OcFJBV zow1{Nq=w5kkw(%x1v)C97Xc;$Jyp+WRG$qbeBY_h+sm70>`fTO%k3$&uEiTgBjkH* zdqe4G7em3MCQVS?8?-32=MYM_gt}_l;A>a9 zZ1yAc^C;h3;%W))E{oKctM_He4GERE2KZue_kvr+senz)woAMPC$Tvuz?yZdsERL> zq1Lh+u;-8^yIblK_#KThOGvvT><0`$q|qBw;ynu^!xjNzTZ{g>QOd^(qLt>oGzXPm z#KVykqWvwW5639eefGUr?%o2by|zr&tu+ukOLhlo#_!Btg28*urfzTA zLJM{9o+Mi!LSkYCNB0)$Q2sCx5g+CvfA>>Z5^7T-!g$)mAMs?fRG9o87W$o>N}fh2 z1Nl88xsyk|FuL8&_|v!;Ho$hKu5b;A>%rF-ufnAHCUG$=+KP{+$DIZSM+%lYBEa3Y z=qd@b#Aq&WOmG-cdGhE!+}HDOySs?G<%do;?D7w_SERRD<7pn1%O~g!T9^20!!ZeC zHuoaeCFmaAtf_V@R${JSWG!&~6m!v~Wy^D=Lyq-8kJ0>`CrpDkdo@-~G?{7=@1m2T zj#RHsh(*SFPtHAcPccR3F7Q0e=}R7|F_!A(R63XZ{jOZfyc=fj@Z1kC z#us~(Qw)NJi~s;Y07*naR7~l!lzZV(v$ZQQ#91V2)~%veTFh&yl~(a=h`4ukNq2St;j2cQbh?YTSx4>iCU@&%XUE?`xkxovhe2h% z#)rTDn0++X4l??{KYIF6d*s>AyAuDbZISw0BU`&ArodV084gIIx-?MkROIAQy zx5DOO2{nKd4YpADQVMFCQEh?>=Lt?>2c2!%<<{OPBq?4oc?)9nvN+JV)xVJ28|K}m zio>LMab-49T|G0l7`$4i#rP~%ACKdp+)s*_Aco`j&x{zJMZ|(Bg84TGaRR#wQ~?n% zn|=hhCyQmx!h0r}oFaaLLKMH*`e#660sSKsZrzz!WMi?2B(KW<;F(C{&~D*3 z)G~Zd;~t^f$bxXXmkn4pTx&?wv{{ENkPZ@#%^oPAjS}6*8>AyctLXic>fNC#VE2&E zILU)e0rizqrD!vYQ$Bu6GF*4)#zQ;%t-bK5kGceFcJSCQ;%s{1O(p@i4lAE*p1W~V zC`mF)l2_%^{8d1GY40{@7)CV@Mh36O)jI95!XdmS>3gcBv6H97q1~rWJZB$0@&!9l zJjcP`b^EQ$ziQuI`ZHEofx)ZYNqq+%tDd$mU;O)4ovPUN_M50{u3CFi<4Bu*u9`F3 z23HH|H8!K>N{gsy{**m`?6Y=e>S3$qr#yUcnsMm8q5$2(jciu%bfc{h$>)lxt58Yu zhF+(hhy)DM;V&Qw^9*}+e|{T=6&uZ(pY;e*$+QNPU;WtEu!O}qT>aDEza%?Z-e>t? z7;xh-Nw~Ij9S?zS3qo!z!OK=AvO}1d(YhN~@!H~o&4x5B3s62&7-vY-g*mIWh7KM| za#V%ZpZvQqqDYfG?!cIRy?(;}X5(R-n^-6JrkyM;TLpE@I$+UnLfK&O@}2V*s-?fZ ze$ig6U9@+aNBv&j7GFR8?|nax!}UW4(PB6B5Ulo%WK-oX+8?@Tf4B<=ak&i?%w9#& zEaR1Ln%DTYT)v5FdF`;zTbDZzYkUj-`sJK`@d)dc<81GP*8A5UD^7BH0{hQA!n4E! ziU&&M?DVKDsJ_r*w=+s{ArYc+a>CKlkrvRb;YK-yH^N$Z1ze4wZ*We zRC~joL0vZU7*J}H_q)-^#%U2XJ?J zR8m2oup%sWboQo*D7?HLrMd}L2~t~bc@kUh?4#C7{r&Ff$M%UX3zgsafhV}bn_=vV>%AA|#385Msyb=Rfm}}hkc4Oj}yQOaV(TCr#KYwj1 z@KcGO?o8PtDxHh`NxgG41tx_?qV+~$GuYt&cq6KFWjk1GBQK$&9q^+x1Pivu5XeC?zccq3chE|bb>VRiG+hW%x>8vz zN#6AST+M-f`S;+vPd%cS)J0Dn4=SeTFF^|lBC7t3xQdhH^82xF_bJIoDb|?DI|`K! z8Ahs_JIyth;uWK}o7`s-vy~)WW25Hx@iuEPd2#FRs-4V4p=g_RR6KJDcoSV++ez`3 zIOYBDhd*bh5-HxDaF6516c|(B!K8q0!jPKge`VjY2_$Qzrnz!s&5CR!1~tumN^HXH zl?3kwlQ@!+TD^reQU3yGbQ)=aEET?aPPUg?B{oVpl`j?Z3Qy4N9s4fI0jToR{ks(; zcO!#W3raEU1{xJCF75^uG8+bRrxLliAYMXZ<<4q;-y5fc(S8=PX#^1M52M;oz0;n z-};iDHP>9oJT(D`Ra;wvGXl;4f zZgj3$4YjvjCRNW%1G4f1M}f`Q#qx1`dhz4-V@E%2XQv(+Gk6cNzw8~gHyCrNw$o+O zMhyLqUxnzAG;ffe5lb{ecI^cFbw72yV}El8Rl|tLsW13Co&KmU=nP^Ks2^+IRz4xG zfJ4Z_hB$c$aS|Efe96X7)()%yfr{}Q(kL&b6R6lDsTeGhISrWeY&XBjts*jzaA3Os}2eZ6eL<3wNsVA3q0!DX( zqe-O8+>shK*mKulb>2$gAV>~Pb+*3Dw*q$&i$G|V<7A}WSufh3TrJovoY`E$nR7bs zrM*ZqMZKQnQE9$`-kn|z7&-=~9GOO>MWHfx2m*NgD zEpMCG^U&%OGu~wedrYQbh#KZ>9ZevwPo1}KBE>t?soACVH>}!GZMQROU>=R7DWJme zByI2E9wazL2~h6D#+SmlLp^EBI9i{06qev{f8zEqA(lTrntT$s!lPtp%A`%gQh$Ws z$rjFjm~5EbJh3d%R*;({F7>7nF$8;1SSETzr?67cD=DIVCv$J*?so!X3(Ta9+J>r3(+dgd%x6j)Xtw-#&!dvu}Y5Q#B z<1WeTWiOF7E=YAHnv1qXcrxlFg_uHOt4I zreHsbs^X8s*gXqF7p87W^P5yIYi1Cv5j8~)SWERwtCcz)fJ(lE`?aN;oOEG0<-^A3tpN$6 z6z`+Y{gh449c8@9EXW7IkAub(7*pWEq<}U;-r$V$FL!^7O;;GaY%*4Fty_6{lMit= zDjF=g*-Xr>@eqed2+R_kjoLI_~s;|mq~Q6-V$jTJlO{NFS5G^;nQe_ulP z*vt^XtGbK&Hc7L>;j|^5CLal#d<5l?hRN|kKgR&BKvBO(q4sBYfv$%HUM}?ue?or_ zeVcOb6=_cn_n$}i@k+(+R-4c#8QUgYV&?uU@3=(wF9m!&W22)ysqq-r505i)U zZ_lMq-pQUhY0t>ENf^f_K=xhcZL-;Q6y*}Le3R=iRIWH2`5nbg4)r26J$GyxCVQEK zLTr1nCJ}?TiK^3;TWg-qnIoC{35nY1m7H*lIebm@zu{BR+yeY3x zJyda$RFf^F62_4;#>u0+qEVc}+?JaH1b3z&3g4#@btKKZ+@3_;GB;(C$p(j1Z!~7? zQt7gtDlOS;eiIFlFfuVUuA;evx=7u@`!bB(?=>E_mm25oN((98P8G@Mdo9JQQqqcI z+A`kz8p(;S@NEnqNK&=jMPMM;MS&~_geTtN&fRyHkzSgE0nBzIcycRsn|SFa-;j(y z>Lffl?(uc0-UgfS93nxT9Jr9cZkFxJE!0=9GL|fcv1F8@+*L~2ME$SCbDl>dUoGtz zcR`OFpdKaOvzTo=wVD`&Tgo0q>%Kno<(F8_-p6S#lmAg;RWk zcITQ;n4ze3W`N@J)CzrlfS~t{QCYQtkAibM!^iFo_F&eb0dLZM(XaYx8U3<@yN~#3 zI1cI*;pJ=d9k^7Sv6rSFLW-BMlo60KFlBqtb%3I0VzrEez}D#vHRU|b3)+*-HZ%rT-F`&^@V91P4kLz%0KIt zKS`gpQ+J3CFt}5rG^wZ0F*KqVP78vbJwZvGv#-ZOK-IiCvE+Uo4tt_>!WNFN*+2N1 zqP_IL|82DTmF=n4C7VV{_xbLV9B8-=Y@7YTl6~YE<23V>7{5J>lLSP42Y!l`VO)yV+Ruuo z+O#n!^}~`>EziK%m1<&`xnk~~;0{_z?@pa09z7CK(?xI252jBv8=HGhfiaW!o;HCt zq8Tk(8$pV@0vrKJrkBPEiT8CYwCI zPCleoiOUh+2!N?LiR5Jk+to7@ICQ?5uhgtOi-wa# z8-(sJUWLKCLAZYtX6r;dP0&t9W{%sZPX3HNIrTBC=4R}TjhF4^JKuuA%fSzCGv*}z z#NhqP`Cqh;AO8X>W+juxIKd=ND|5H#B+|SKHa~j|N#F~1W&JI?#r=4a2o?^hV?I_n zZRe&RwNsN9P}h6}hE|15bWQ$a^ZuZKwy)LS!n~k9!4|9+J%%Vgga_%~)9hJ(@zjKU zd$j{o6Q+p{_0f;D^cMqG>GY@^VVT4Ew!edNxR;u*tOQYy;3-Br}MXLA-`;ssH9Yx zB=vib~7NY45a;Bf&do>)k5MVkB9eYI`lo0j1MG&-zP`OGfq(aGN}U?@Z2w zHm|MP#O2#o_{$$z`>C_moke=7LEm}fj!nFN8!=kG7bU^llC&>URC*Ze@~Cd^@Z`#{ zPHU6asm$5!JFHpe8J7-V-BP43m#Kmny`xrZSdAkq%KLa9P}0>sRQbq1OY1(&iPy`F zjhj$OvWWXFLtnNZNUvzvVk}tUkoYw7)&kOY>>Q-DkV~uJ4H|)-=Yvv{O;M@Z){bX5 zKCsmvvTY~u``PHu=M(fR-3P7119ke8Sf5+9zjvh<9kaB|^3P&iHeRKU;h_f9BAGl| zi1OcN9rFE|M`7?at+>>-hc+&!ZRdllXFwWFLNacN5;!#Yx<83af_=_Pfd!MmCh0Zj zg|b9T3H3ySJ5Dxk%dfa3JPl)}lG~r1+)2C`iV@!N;b)BW+0bp_BP`7;!YAQreoCXT z%;SE7QzMvYvhMA|V%!e4+9S4!Kyep+eHijt&WYjL<us*M{} z)}i4I{Z!!zD{V}P(iJ-cqBRIBDB`nB+T3D z37%uP@$24M-Ak*xb;ay0GUr8U-7K!LdrX1%hyr6K?|Ve(LD~4Gs7^!IS77qq;M5`? z&0_jS!+@-NuWIX?L6R2+ZyVJ&JDI#rOcsl_y0T)8R-IE&`tTYwXfysWa2@fxcz@C+ zXOFN69S6jnav8^uDKMtMgG2$TPx+7Cm+b%UeiKG(+lnijHhCR2%`kLLn~$q}IxL~8 zZ;3HwRpVB|EaAhdfC`;X88ypO1uL>JEx@D|vz805STiMy>QRUVY>ssK2DfjtVf4a~ z=t@eM;j1M^FE}zw?olxA2op=E{R7>UUz;#PBqH zC&c^7L1Y@3$sQ5g)sznSOv@TUxg@uF{aZf4-X_ z(cI*Mee&d&?75lG*i0U^ag3osJu|r32$zJW#)Y}^qW#RdUj+8cFm$VoqiRqY<}WtP z@@!HSk(#KKr;tcov{RLbZL_^*b?(K}cwa3{qLOybrFknz?}|A*)&>R+f_yk8jGIINYKG_Pu=v_$N9ui<qyJzc=_)Xm2kJKqb_ZXUXy9gy0 z&YgDUl!aim;d+X<i69XOG!br*5a}H?0c8Hyt$vluaZm(ANI;`5>U8CIv}?H6i)F zOiY(VJD!+U$x@R5xE0;9d19DPLNQF?@$nfe@#D^h%dIg_NPN>oX#~>;=lR4qZ2Y;H zt{<34#4V*|^j_g2QPkB5Pd%U(~fkP*w2P{eE8fqiBzr zI*FDCY46f~_F}C1s2T82pS@T4HNuhuQo6Zw zubchVXG22$g3smrUN*4k0l|ITM(2GrrsxM*T+;?@gqb8)9-(t}-g4S+@rU^nFpvaUl+g z0^yA~B;;eX+faakHOI@>Y4MR>yKUXg+qhw-WQ;zVT8)O)me;wPX>%kgUTuu$D-}K( zSn#agVY1&rinqcg=g)o~Dc+}9S4*MH*o-MKroab{0@{3dqkG%_k^Lr%u9g*~ruoLY zl~C0z>D}&1!#X!Ntb2=tCUVyTgIDXr94C_}_%JV2P=hp&8kKz0${XAvSF3QpZo!$o zyJ7U^IAJ@{f-xqEUY75Y=54}s7Oz4JQT`9i#C5$GykhK5!id!Qm zBQB7$B@%2zoP@iVAFXr!0|!TNXA=^aO((bD{n?5LjI`c#JNdl$*|Iu1Ax`p;mAHjV z@Y1~9Uk}A)jW(o}E^hX-@5emCMvm6F0Q&k;cMN&~vMIORo-bavS$~T8=IOOYj*(m7 z+q$;PXWN9zN&x(%S<1n``hl<4)k(;p%N=wbod!+%qmsqyc@oN<=b%8b$}>qH)?K`) z{dOq?tOwGF0HTLXrr(6mIl@M$x88@27`za>!_$VCZD`)&Lr)S9t8|L%FdP;bYvvep zrpa&$_cWbshNno|^k<`YMbf)#Xe3y_v*ApV`2MJDO_;wrNT-BVn7w%<#~&0E>n=u7 z*62Ro-AeKbSBFD3x;g|W(u9o9lHwej4<-e8H`RyUcM|Z)>#ZRwj01ArTO($M4xlt@ ze67VXjKNTIj?b^WW;!$_Ny*ttG74&5QpB!tWla-?gIPdsW02d7QSHf zh2v~qYrDH^N6IJd;`9?%>TH3=?)#7e>J3{hEMJ(UL+DnQ3fu7!QZRv)t3v{9 z?wrlp7mw%cyUSf$N19j6T`ie4Zwpd=K`NZFfR-P3l9gV?n2+23Ln`d(ms_(}WcrGb zUEYm!MoVDhJK*UYMsR{oUU-Gc8v%Nqia8L|fq|s8N*m604XLE%&J?onEu@y3yn$ks zGl!zuS-ytbMf|LFctrX8!l;pS*k8{A7}9s8+EVxG`dzzFURUY&P#hIyY%&xO4Rt5) z9a^DDL$AWjnPSw*Ywv({Yn`=z6Rl%yjURkdNTba=d~Y1%u-Zw+tD`i~9D|eYZI-&{ z?bPpRHfn)eiA%x&gj?Idd)y0`r*=HC0p^p+~ZWJl^i()hmkd=Y|Nqf-M$ z+KuuN`~K{s_G8Q6x6}0--d6sdp1=jFfSa~XCmc-(5vd%}uOev7bAPl6+bUXuwJ#t{ zFd@#}#Aj^>XH-yF`egls+%asJEnLK@aE>#9lV9ViX2zIT3X{Ob3JJ{Ja=0hsmopO< zohcmgGHH15?)a;ANQtlhkYgxk#mFX;_VwawW-#x3f?|o>P zXAB`iyZr;Rt6xV8<6F=bX7o{1NT2*D1Kvew5l6cFu>9j9?VAE)ChxvUxJLwFVIc36iC*AyE$-sf z!=Ki)TEAxVJBa4dvQvidJFB1qaS8^nBzX(kpwgO60KPaSb9W0mV|-Dq1u8~A5k_{# zWWB178?Ov?!yDuEo#7r20FuRPx?viDh7=`}-CfR5K7QrUli>F~S$Xk$P*P|AsPck& z%DeEz0F^CB+a|Wk%fj8IaEXhIAvK)WEhbEC4^zgT>>t-F@_jkZM=2oek@d1Ok1Y=hW-a^9Q6-@$>w_qP6mp;pz`z*?%|c>E{|xV$rq7qU*+DxdS$VX)882uFF&vt2sZt~(1uU8&!Q zF}b-~w{@7jV(4y_Pp^W?+h%RW34R!s#WDv{xQp_h^u7LqAAn!Xqad}MK?afXsM_64 z9kmXXDp@hg>l^y$4h-?d)2PCtO~&SfM*+3E`cND%{XO4)y11uAQhDRl=f%vHHAdWv z5;7o(x$6?Sy7oe2sM9tSMt8dF%7U;S35Qaoo_Xc=I(!gKL|ew^E!t$JG;g0c@kRUO zk+0a1;wh$6Bx}8a5LhT5wVyis_w2Fx=g6vS7iS)~yaY%a5*`mu$aJ%-@s zw{+W-U_haL)I5FB*MP#KFn)x~bBNi<_JZKRmeak7tul3m&<(f~7>AWR0hXOOJxuQC zSJJH8Q617x$cOa`YL~^hZRQH7wWj2Mm z7d+>uY)33716H?yu9fN(Qo7ni=FxEF3<_!w(^%5GL4r5K;1zmca;R{2t#&$~#v!~M z>knhRbB#b+bL^2|oHyl8N2Ga`O~esx<*nxEGm`R~P?`LDj~=YLsc-Y>8WAznRM5$%9`2k(Q6Rym%coMhQH{wm>f$f3M_+z;0pkVjQ#<)K?d)!HoTUnTF_%L@e$8F)$ zN+Rc)^746*aX3sy>&vI4Zu!i=;{~PnRyJU!zGe3Ee861YG<)i=Vc`A&?E*cdT3M2} z!vENJ%>IY}#q6y|V7^{A`_MN@5B%T#=ScH@2KC8Eu>S0?n$2+7NQ)C0SK0h(NUwI5 zgzq3Dnu@`T1i2k~9#stBTYMV-G0Ms4;EVG?3GZ znBEJ}N!Nou@%O2R=o{ML9+!BW{UK0b%;Y@;qK<+x+{Ft6rEv!)?@b0e2CJ=6kg=Q- zE~vAq!QkCo(S5wY`rtntyEdVV6_f(8vAMFm#7R*Uuxj=n^8QvPXYJ7+`+^=@|7W24p!@p6S>%hj3v(GZr$Y$%Nlg zkZcbVOQQXPDh%FKf|meav+k(G z*5X$m7U3Hufp-L%AHfDNU*GOX6kqt0Ce4q;o>!8uaLFGs^^ad|Xb9YY+#ye5V*ZkL zW(DDDh?SlXWJy8_muE@aY0lC?LCsD4CI~`7JVZah$MPfYu8rs~C{_R^WZ{?<<_bkw?;?Fa?tr2Cwep^-X%!U5OuXa zv|(c-s6s7P#N>^!?{7ORc^hk@KJAkB{yxUg!M14AVS`l+s8uvN=nl}h2Cbp?TFl>| zPHS-bap(g~0lnAsAu;?kZt9iEzWVoN%~eQ$xkE|Szwc?8$y{ohC6OyhBT4b9K>liq zrkY>18%>$Rkiki!M;+*~Xi7(hs9RE2xQaZ&}@75>2-hD3A zu+!CxcCva-h+)Kq10OMmfNkgBbZ*=kbPREyQ$X)P=wG3rff1`7A?9OH&nzkOWJTz< zSRRt()d7MtlV+bj(sgOxCX=;ri7%_}tbQWqt~R2zg&O)z=;xkiaE6SNUzJB#WDAGf zVGRIYd6P8S4snoJCx{cPrMdnQPxxft5mqak` z*SLn{c%zxKTeRzKp0{YzNxnfA#PDSfKFasr9P@FNb}sSgysoC@C^;JOC1~%7r81Q0 zLC2|&qq%es%z?{U9^=8(uuq)W7&@I9RzPvTEu22jsI(!o1GO4HLuzG^SdJZ4X? zyuv|WzE5DdX_hIY;$1vDN3Ozn+L%KoLpfu-qLV1444s4k-}_O3+)22@`43@P8@K%N z@ift&%wXCqi1EI0K)gDtW;UPDVtl_XJcRY*jJSHjg-`IANB;Q8DWiCYb5DqNm>8#U znV2B!%!E12?tZkks3IdO3(yx*3H*quaPja+Jc%u+MecSGjrqhhH`O-v5P;`d1kgnW5C*S@S!yw|dm< z+-IR3s+-5syxCTNpxj$ufDcr)-UpRo!PrGddVAw0cUyA0M1CK1L)j&T(cEmXLAl0# zyughh#XG^mGlvxK%AHl)++1T*lqIsB0pyrq0e<4*)Aq=-+{HVy=$qC9z{Wvi3XCc6 zfK%WKpQyjw{Vh(wHm$_RwA3^gxr^6sqna5B-quydA5=7VhcH^>T1#Z=!fk1z3Z+ry zlr{@wsa*~#o7w7N=Vvsv&3u?J7HTh`&L${q(!T?I zMHxoYur^NI4$xb$lpbwyrHr&IEwwu?)unVo;9uB$Q2RzTe!_)b zMxWWy?Ezj8cipoe6+!j!hcfpRDN|TEMZd1vOW$0m`*KD$3G#f01nFHQLWL{Ypzp2h zJ*(p3WvspxpKPaeViA|2-*$!Y&9h>GgK3e;t9~BRNA&7m+RQkLO8Ik~N|iKkfymfT zJ*yz>M>L;&*oLwZ10Kb@iuXgt%Gi8hDWE>&>YBCd`93hcrA$VYd)SBdjkmE}Lz4gpc=f{Z z@AHn&r(s_y9FBsxN#S+S0-cj7d?dT1SSIr`_WaS$r3~J9KUsv4tu_;5H_QCZ#*f_} z915sQWxIdyD3qO^^^r^`GJvIRHW~j2wo#A$<5kwR?^2>W z^eq%uPiH)jCOzF($a6a26GA+%e9l=+-?6)&YDgSs@U~G#HEalOIPmOsVEXcoAMt!Z zTU+D(USrOD1NU|2I+yVqwv1n(<{S{6mdKV;x>JiL>|09-(v`LS^lQKJVfu}K z$gu>jcKf9-Z=~zL@?WLS%};>0p1}X~Kh0{D-3U+`SLxkJ#ynK-94)>DAoI80vn$M5 z&0}~oUgyLWbSeD^6%0tfE?>tFHmb<3K-*jyBnjb zYGF2+u*rLhKGMX_9T$uOb0+Vn@IqA)h|beApo0y)kM{tHx%TKsryH=Twu_49?T3$% zGTEgco;*Og8L+gv%&>?G5~O$!xM;i2#(Qj%j@8j++RFO1^rdhAdZ=se&hO$KqtM(t zr@&`}0y|8G|GUmVOMfu@FfDRYdI>3!BF?gqqKsDT{bT%*-n9%L7 zphk6lJMQM~auRQWJ9cMd@{%4zj9_Vx$;n|E`)WQlm-E=Qj0~5Jisrb3mjL%P!c?GE z2018ic*Ue>I%rBIZo~-nHt8A-t5AOofz)@X+J`;v{hRrNaB3t21pwk$M zZPK_kc1UB{ryccqWTFR=TR=3Wv`j{?usQfSBzSMJsPB>Izy}c`ZRbHss=6nw)SIfB zWlElCEPEMaPK0~OBBe(#d8u0r0hHf&(lCyu)JIYr!r*&v5U;ebJHqZCvr9f?NxoaGK zH|iHunOcwg$kZ@aIB#QqA3orBZ>03&50Ew|P^CTM3Jn|hZQC+?4XdA8-4S4z?qVXo z1h|=B;|z~-U`Jm7Ucd3xFNz9Z-L>rcHGw}n=f5XWz%f0fc~RHAewA~ZFl!A{&9V%! z5lUA?#5?H^Rn3>vVC{0WlmYMy2p%v|qjA98^^RYerqhfIkiz7R1EYIxOuKJJ0w;oJ zHPP6}mUM2{YffqhwmR=}mBG8hoxuyNLo<(n)&&g~@yqm8b@Kp5?_&<~Ti{7yhHL785x6SOwrzy|_TzwspZQ)4UQHa~;U2Yf+aqiYzA}CD96RH$?KC!P znzETsj&JNHj;JQCxV1DUYfRhIa<`lf=&TMj{G~O<|1GpaXrOcV=AHD@-@cu``pr+$ zkgM6&)($yS#OPerDGR4W?zQ{6FsBrt)-&o@;7!tm8-^);Gi=?}pJVf{Vch+k))>(} zprkwS(7S1Kt<9fys^{yrJo1ug^NDLelNwLXhs8QKlI6&pRG6Tn^DJLX8J&JW$+`YTT-KpNeyGTGY z1mbAilTa}@JGriPt+t>ewbIjyY~sSf59>~yIXt$^t4CBP8xrLdltVnO6HFnpl4n?c zNHkW+|MEoMk$(;^K)K!oWd^UI)Kz~$p-1L$FnDE(N;fz8b@OP1H$m9UhhGL}kY$aH zb?cF<5p|j6M{t?LJ@4QR2Cv9wNqNCwN>j5|9y(~qI3q!A#|KD99I&aVByT<)&|nFC z+z`iIyo2->3;4G=vAT+Tz%I<*<^c~g9uCGSS-7;`4T);+k=;i#LG1=7QQS5?i-hY* zI9{~4khmRVaQix05q_C{7&U zIx1+p&=KF^gS?DX!B?+;I~crgti6k55gRviGpE1|6tIoKs-i7LYr{9%53FjQyv2F{^PPjRo7iynbs-|dLvEXlUfnhy%?Zgf z!0}((NYhS^M>ip^@wzagmk#!W*&FSjuxPp3)Kw|p<^8?1)9a;8=By7Hiw`L?6pNzO zVm3&}95Mry=6#35%(v-PO7oVj_c6%n-gX| z4QXsMUW2Dru?fiis!Tj6`&BfiVyd#Uf{tXZE0-aK4- zD$V;Q`z9aL9%WA3rcU2M2I!fX7QKtJ(jshs2+!Y_(EL3+m6SD85!ePwz9Y8q1w4|D{FDf-+J;7KBEny6-SN#+ZV-&uo!>;g_S=j0icPq^JFs9WJKNIYBTr0YPH~tJ}8D`@b z{)l^FQFH91w%mu?T|P*cVeU>fak8eCaRQXz2x%#u;H$(pBWSCir_#01JHAo$Nxy3> z_*-^a!$h2J4mPd5jXvpj==k&?4>eu;VoGm)mktF})x2tBG)>!WaU*O(d7B{82tyx@ zwAyVv@&0O^$SV#<`MtF)NHcrACz@c>?!A;A{{XFvsJOoOhbcY!GbD6B&T%q;CmIT9 z8CPLoFQKZrmVF}ZJn&_wz?{kZyx*XM4jpyK$7rx~51Sh~7^v)X)l^l@n-7rU-I+y- zmyONU6+U=OG#}hgdkjK{-jC_nbIfoW4fV`l`u4w-Ub*!}#<}^1z%dfd1LhR?3{c=c z3a0+!^nax7;a=)-$J+`U_`Q!g5ym~d{g094eSjK47Uk`+X%?~w?|j8Odi%Y@bg;Z1 z4BsK#NN@O>I4o7fL=H%I$O*o^MbbH5o|vE}Jlz(JIT}BY$pc?4zW-k=Z9wQLr^VeB(!q;Q_UztcuQEs zXP|}#HEqy@jb`W2Zt4X9`S|u^=!V3RDv6ai!mlxn%u@4nE~@>a8;cnAVS!%f+q0HA z(kj7ATgno=gaqMc#c*-pqWRS}XtfF{q|q$Kxyvq#t^?k~02(UE8}pZfKuam!>ueCd zMdP~WLAiajojlx6+l*6v+_qiGf3SmuFLxsEvH>^C0XfUsUE+}3Qk+VdrMNFVj3>Tj zdMnM_Hr^#25`yi(;+B413(_!niv;iTDh%G&kjR0!2fKD`*60`L?&4DYxphVg*w-BI z^F8c%lt_J14aJKAMca?1_NQc2Bfs@vC+#B1>!20iQopG_vDbrrO8Fuhpe`rz-@WwZ z^owu&jr7hX)^n{pct54;&9i;UC_rnA5^LLo+rPOgnYpD5Z#EfHR#r}{gy$fAi}T_? zbG?)Pw~sQD%i+N3V0@QJsBKnSwFBn7BA|qi#v2p+v&Gggp7^X`hug4-$o>jrSmYUz zhR)5IDG-A^D*zZ}F*w2G9db`^N43odZZ@+)?;^n$%lvJqRyZVEW$t`)=MKz2SEqbH8+jHChKzs6It6*s8dM9oiNDCl@ai#Blou#-M!y&`j0 zM(+*!!S%xMt!kY)8WC&oC(Zk`GK;@Qxs>MhZr;1(yF&}H4Ls}jK3=!BzwOR-$fapd z#g4-O8GThd4;`k;PxMOMykF)(e{l87>6L>=>F4kLZdw|sI9(`vM$RYq5WM>B_YMXV zjp3yvS`8SECQ5gS&<=O8tGhB4P2~6(aN~9>PPm3CS;8a37RVNV%xV5*M#f+HpV4^ydG3n6meMzWhx=e*NUFwp+yo6vpzikj3R)6p zxZe@RUrtQAa4p}4N@LTXQgHD);g;FU0rSlG<$KkG!OM7&5>m$?>3sKI40OxZ?@e}x3FvoDr52g*}@EYw!bN7ZGOPpc73vGBdcLkY(W`JYJUo8_&_!VeoCRWtv>>wi7Hf930_ilk50kN2cx z^RPJuCQ!iUW;3hJuC^gJ%KZv3wF^Tp4>*r%3Zu$q_Zl>+Y`($1;jh0oOuu!vlkV;T z1430d*Uv=YsqMLBCZ=g7_Q{PTP0j_|^aV!^Yl6nY>%6s~h-3w%qA+T1PNP6fl4%V{ zYsY4^lDda$`A%I`FUO`bac-8gc|3FjS#{0&na>T8d>nFrZNxhvi$zp@d($!pUmd7@ zX&hKnnm6w1otEUZa8dFXIal0M(#X_Zl)=k9v(4abgJ+n2Nc+H72ssg_syYHj^KwVz5Zzs0;6q&PdljLf!S`8zEQ zYG1&4q0ImW%FfDKFy&WwVR^zlnf3jgMi|E#M=&RgKxm_`G~&ze5HA(wEc56Hr`T6SCebYxHnwe;Y0@Z zHVnAmyZW{C-u4ISD_h?ul889@E+Ku}_%+398i4**bifGI4y$PlkHMn^n1^9uRkwbC zjBDcY$H%N4UftC$@J-qh9{6iq8|Rq2mZQQ)p)4M7?YJ6V?TF8{4!G*9@r_@HxXx+V z%S&JXmnr>6{~?S@n59=>POj22%|B>U%ZY7Rgpbiire}o@1}HdX^tLAjXDObze4&2B zI1nB$T_$Zu^~^9+Klxt%-bG`eLD=p}+iSi}#u=umaoN}UHJ@T4Puw+4P4720jJT|S zt-E#BU2Wav5zd1F@m@+EfxnesMmqLO9?MAZ-uN;f4m54d&4s3bbA!2gjuaRog)-Pj z9qJAYUM{~LBAL=QZj&CO9zX`~9(VHAO@%e1jfemMKmbWZK~y$O+pT)S-Wn5VPNHnw zdzkh(VR^`@+DYgt{qkS>b)4i&z$k zTYG6070pYxx6I1`(vU~0C# z!r%=F-ZoQD0480{ylX7am^ZPA8<&b30~_@^&jN332D^D1?hI1rdHSa1nIUKREtPX@ z*Xj4e|H#|kz3^Z*hlhPO`n9Pku)O~kXVDQG~7ojtzKMns& z6<^=8ZO%s{DWYM|MiaLM4uZ+s3sudrh?kb-(NfjgIt!gwSlnG=VdDXm9aPC5?83;5 zMV=XBC_^6!)V&=RZC%ti^Nvh^lIg<8T!m@rTH}9lWY$4kEaf%F}=_b;J zoA*)C?1n0)3)B6|%}YTW!(>i5A6+DTdCe`x<9H(B{O2=4ffzp-2N&4P>^P2gJXG+M zt6uPhb@W3frR`yj?B$)1y(wZ2QohG0fR0AlmuUa?C;Nf*UZl=S|1a{*Yq(gWsgC;~ zj*{@3+`}99T>EYIyBX!NBCRC4r_j=-nI0zul;KJ#*Lp%E8NLz=-kXHa2^We zncsN(QA$uLu*_hpvqNTi<742P&exBVs&0m$$%xl{| zp5;-qFEEh~cm2#89OH~(wX(P)T)*z(ukprBG7&y4a#DiNYFNzYVAy(?QK=&(cHL}_ zP3A%rVPxvYqQk)re>@NvN#Ky`_2o1h(`7(;8mQKJk2*c3?)6^Y(>7LX8MKw=y#<~hv2XW?9NW^o#>?DQI#UT@lwc!Y z#{{jTIB#R9Qa`E5CUxcYkf;?@tK zFD=_~!*L`hz;2roKDAs0wv;Jw)a2r=I2(5fi;ooUV8m%pbC;fXEPf0=@~L5Fi@S!6 z*sZwnvJn+&8cQ6QVl|!-e-1r@nG{)ICRqVq(nK9`b3i*?{)ju|Cy3o}!I6>RkYApVc(s z01H1UF7l`err9LC^maD;`VZoU80>2u%sD`{no zlN{3qobiNn|C|DI3S1ZpY_P=pFVg>=?hZCnS2fLdx6;x_EHB;QzXOvO6{y1}TuhJ5 zLGW~#h&P+DCs0zRuTFrsvPC0{qVstLN7SIIA=;jCxzSGe=ovGoQjH?qw-7_}mrh@1CecoXNc36KAl z*Nx{WcLoT2Z14nw7xl!JJ2OVJ9V(m2dqBGhMz8sv!7ks-YOcsC?oPctp^~K{$E~a>`=`+bU4wFkBs6?4$&Q= z5}iHCI8@^J6J;4oZf)9i9l=fhtBb4Yn>T(g{iU0~oG$gQf&)ZzGpE2gDR9*MY<1a} z8NAu&)~8Hddmvv`wn6PUwo&D%7z6OhTzZZ9&@XY-+iyP@rd>cxVas&SHu@g!=yF6D zmpzTuIHJ#&XyNsTUDD_WWtfN?k1ugrrfbZIrwN@q#wj43+KdY0UC8(nJ=nq>F)=>1 z=@~CHellFeNt)pzOkvbK$10<~%o=~p2Hw16CYzszakwLsmjitHjh66;oc(9^RF6K0;?;Y3mAEzaN%_?{H(|Y-_br}JWLA}&jW0TuU4vUB0z? ziE(NnDbX9MxFyz8Hqz1qE{E*pZqsfb(Pr<_K5nwUd9Bw)!gnEEqJ7KkU8G#k;>#^g z4+3~MZjkF8Ck2a9~zq}&nc|(4@&IhtaaPFl!eRr^* zR{GpkYE0mX1V;rDkD!|B)^3}2d<}26k#LLONNpX()?FWaRBoh###@+g>5vG`yGpDT)r`VB>AIsO21$Vq4>S0|%>bBan zzzD-1b<#GE_!)JdlJ&ETrYun(bEpksEVm|pEPSH3h2ykzg$$J(Wkf%YwS_Vwqo0s? zJp6b{J}P`QUjNHTQ@_Wze9i)#M52onHh;s<>utt>#z}W{rw>C_^F!v)`A(*G5e}I! zZasLEwjXU0&j5IWQSxMIZ6z)An7pt_x3#^&y}T^Dc?HM1l#YFT1fSJNGx9S3A-jelJ?(-)(;|;FZ0d}o6_sI6__f&L zmobr5P8)DSf>xC8Y{9#nRnbg)3g-5VX`_(L17e=vE->kHn<$88#n&p=r|zuvu_DYr ztir6-IHZ&8viWhqCYc+>n#$nS?RKJ@W~(fUS8WS0BKJ0tsyjH|)|@l#BP}O0hFf+| zEriUPwJR&pzRl~R7@53TBDcPnOp0+yUL|v7;Cc`5fhVg0cPv=KPd`j+eFgt?ne#?ex;;E`Ke3_w|1#-CTK-jpFzqPXe8X%_%Sw z1!$20m%rS(`;^uh;l|q)kDzi-uPh3EcE9DtVfqeN*uA|nNZ;G?k_Em)Vj!XY()7`9 zkAJ#_YK(dN(7hT{`$Kye2snNMEIbuFv*;RF_fj}uuln7AQmD^jb2Bm{AM)sg8eh%$9VHwKz30KNj#(dwY31DxH#o*H=&pqHiH3YHy_wQmzraW82KeV| zhZD(l0V3y|zUTB3V@U*4cX+UYs%E8lIY;N<*D`L*?e8E_ar*%ql};5;HcIjKR#w;; z?WN7lJ8A!bjR;h}OyZ??=*E+f^^w|JD=%F47IRFNx8h#>L zCP58j7(mlFFFLC+olI7xcfE(#`*=gOa782ls&JO6|m$pnx@p(I37#IS)pK7W;FgDCA2;= zLKjy$94O*ls+!n9Giw!vwDD zh#E1)Hfb<;VM>^f>M|$2|4GR+gSV4TH}S@?)>*vs z_fqHJARWH(ZtB1FCDaFd<-imZ1rezkz)o->V3=c^bCh7*T5=x4+0^drqa1e|HrmF+ z)Y)NwM@BFA*ACXNrs0(vX~@1yFkZuscK6hfGd8OR$YD zv3GPCHY58^dBQ3^PAN3?4TdfEq7G5pe5zqG9B>LE1a990PpE5-w|**$CkF7f&iI~` z%3FfTdw95%9?>pThpZIk2^MFUy&Pscl_M#f!X&?B21OaZZ!8VdYs{OjFmDJI&XjHZy*^2C#C4fA zqcrcwyz9rTqUhPQfKSOZ4Xf^lWTx&C+L@M7<=f*~M;bTY5#xK{x;S=J7jWiab!W28osJk84a_h{ISOQhp5?<5k4Ko&BgS9KHjN3y-1`b3VF>xuQ zb%^hxws=esiH_2?@x4^;(pcgfP#aFG0;QTUA7}+Pe&g%+BlZ?54(y7vZPPz<12x`7 zf*Xf!3NhL{$Mj2*#lQJcO85VWZ>0JeYT?=iD{j->{E7T1(K|O6 zo&s|w?{j*^p5z(!_tIeZA@|8~>3Cm7Dx=+Tz+k%ba5HV)e*~-p{d5y|@vb6)!Xjc9 ziI&ZcM@%G;(_?&?)Ww%pE~U?Z^Ow>MqMkB~5M^%}MlZL}%p%Q88X3F`he(Xd z80Igt!_JnwW2J(2Mrgw3r}}ef{6^hnEJ}))xM~-G3Gl`==*U#*&djvS zzI_rQL!*%~VCJtiZYr6rztW6K5fh~+7?>8r|m zKQrHA%_mL}+g`leaX^`3F3-ClH2z1Cz2Lqel0~=dvz6Z=VV{kTJs7>JQLC>xzr*7= zhP>}R)HL_q@Ed>8_+`o{WoP?w0I*2YjEt#};)QW}(MH#GHRNY3>fP>>n z%mqYSO#TEK-;e&WqzZF0AJ31%A223uJ>Fp-jGN=k({YK+KtI(?_{0Wmmkpkuy!i|1 ztJi)Ssmb{!%~S%;BhEnq8>D@KK3MGR8*SF~wt#c~sM}_5h;Bv#?us6yUwplj{@y3U zbeFU0c8Qp)jrENhKB*ftVZ{;n`3bw=(^LD2;re6B9_7k@)nqO__&D|c#s8HSKlx!E zCqDi`8lcr|aQzJuFjv@xE$0Td-#Za1@hgKiHn)+1#LtNi!Wi6OJ}8kolwql4DsvXo zb~aIfd-sF1cpGN&<9pmcv6BlYlNSc>;Pv;?;X7YWgI8{4iC8DQFPfq5GI%?i$dW#i zQEeTdC?x4P$=>CViZqA`_cds+%2+$&+=&Ioa0z&%C}ZO~w~FHw@Et6%c`Y+o+>Y_S zTn5Vy8eBTe|LQwGp7`{TXmh87ktOqS-!=K4#{4s0mCb!<_n42s2ID&#%k#HrhP-OG zkg4n4ytfh5;K)!gb-zH1eut0Yb>iaQ-GZ;CX`^q4wcWxNT1KGo7u8rd8N7Q)rT1xLO82hp?S@pZhdIV+_q6EX*tAbuc}O2pvUiKT zwmIDT#u6%=nRl=8^k{ESb7X*}6Ab-&H}5Xkt>LqHzm;y)mTqmg{%X9-dUdcDjM-az zchYNIUwHL!3vEpY=>TTdHVmkp-YV;|uOcTgy@7 z+J1{t!XsFBIHHK<=P0bWM(AT6)wG^2P}n5%q$tRCNi z+>#0Rdt{rlebvX!GkdL@4r&PL$e87kp(;aGW@?vjUvCYYXNhkh*R3?+GHYq;!LSuh zf0rkixiWZlixanbm|tv=k*9YD%iR6f|9y5-lIezWFL6lgwV&d&4|AU=_jKra%*CJp zEoW|?3k8^{c?a)c_de>HA2E20Nun^A9PS^)UA*4O8;gw-3bu%f=B3r#`FFTqVw)4B z9%|1Eu+fCx*L35J&!>04_8p{n=XddrQfKa)Q{duLz|;2sV)*0qw}-!()igicPHP`N zPTf0OX`mGEUB;#z7VwNiPi5K$5}CS7yGY9MEc9XWx)Xbf5klr}Z=X$5o`aP=PLZ>? zFG*)9o1ntW*pE z!BQl4pamQ=C5`jufX6;<+#kbG-j#JDpIX5v)Hr0Re=RFzi@B)GPReXiqZ|dJHFpl^ zowGgfo-J@O#~(v&*uaf;m`0Q0$G|6gqgb)=&LYk^Y%QlYg|j?O!!#^th2=yW26^1& zOc|m80bJlCea08>$2=;7mwe(CVVz{6D6}CZ8@t>`oF#Y*;*%2EhA5NF-Tof;Oz+E( zCNSDoP8jucuFgAHjPm1gZD83f+zi>ARD|apSKr&L`Sw{rg{o#4uKm&u- zBO}i0N~0~*$8J4f+_z0)90yh}FLM{~DzwYQ6Haxtj)$hJ%-?ambN^?P0=9{e7udM3jnN`nZj9};^$a@lThrw|nf(2W z_Dvz$d08e^GS~hwf&`E80}6V8W`RDEzTQ(^2kgj~A2kcu&r}~DeUCmSV|hUMG}A6a z8%CV3t-h7MeeN|lW6D3Of z>HkPnH}Tof?>uIIs>R@q!dZ9M7)tqWY&ht%IDm26aStlb6;7-KbPu{I%`9_xZwtDP zkAb{9q^qT^uxN)(KzYw6W_mo*YRqD?G@fsu*p-MsJ6v#!yOmFj($57RYlnX{VNN|RyRzvJnkE_hY@+)r!J6Gcr?UR5}& zzL{1ZWpCrSXl@UcdQY!*pMJbTpI_SFf96uXF7vi|uZLW3B(rx1`m4#vg8|;vyTq6g z%fBZiczx%i(!8qfKJP5;c!6pjd2l=)Uq|HjK?$`nU4fzd<;}lHKY#Cc)6YKm{q*_m zAH(G3+A!MsfQi`w46;3#V_PuA9xYu>cb9LbkJnyHAFsZi?k&HPww5lXLpEC6^XRgd ze)Zr{dSmByT8=w;DTiZ(g^N9>((A)dShb_Lr}fa1R(#>~r{#`t{bgLLe(DirsD9%k z-8k$xobf!7S+T1>yfsdc8jm{{ZqzoqhPT}j909s8ZFdfdU%z?uhlJYx_%_r!wm@DQ zXN=>ewT{q@8bq8n-!Yl2SKdwO`WIom!Yh$M8%$RjwdL_}Wew8~X0FUwH*VUtOj$Pr z>CM5U#a-wy-Qa3 z7|MCT#iIbNZf>4A1?Y@JBzK4VsJ-Dn-eLbZ6W7gxosF%uaqnSl7@Sn51t$V)Fiw~V zqlhSNFe%?Z+?)b)3S2x2+~bVy-|GBE+F=sh zLvm{s70sch`3};%pCDzjfx1pNN}od2^VEUKH%!{)t+g!48|s>8K+dFmVE~gC>EGq; zRhYcHJZ>Kym26~=-a=WYEY8`M*hpQ4DYwGLt5TA69@l^qFdh~;NCWqCVj>81&9)*h z2-*x)@ni;XwKMJp$9P(B1XDNWZ*Gy5{1opoznZ6cjioiHF#+cWnm`3`B7CW90Sh&i z&_rfsmMk)VFeo)!%HY0@(pgHbs;b!y>O41Y7cQ41=Kd^Lwa;suf5s-bl1}Y9w5v51 z9z_LMc$uVe%HKLr&|FsPL|o9Cf+>j`d06+L{pqDOOE=|}-t|u6MQ~)KC#01`6hMYW zAExACVek$^(mB(wp`s4yMtKe!0>Ut1?cjX>XFap#>VahU0XUAyT9Ot)y z@jMPMA>G2*Y`%e`1@0k-lgeRSj5|p5F0I%{a>ka=l&W(+*khy2VCbY4iI`_iLkirq z3>Voz`qqu_rZ?B#o8QCRdPj5T)1!dR(k7UjVQ!=xgNP=X!~9a@J|Tm*GIkAhN@WVe z-{3IZFTa-3|9hW1tqtVK*a~hu;%iLxwBU?0O-&bmJ&qH4it#(;6sm@4$3ur+y#H}p z{J|dv<96r(<2O*L+=qA5(vSWmb^qf3LrMw8rh7CF0K$Y_uzFor_{n)-K?bl%y5)_J~W`XSOw!!>T9MM^q0!`nE0!D3j;#BcxczFk!_^Th}WOc}gx(w>$-ATt|r z`6|s%_0PA+V~O(jSa7)H_=p(T_!pbe3jth1bPk{fdlLu4{fWd7+2yW-|9El;tsp*H;TA0!swXdpBR@@9{a5* zDz5k*);b-7eog`9-Hf~QxxHelnlJ@MMXfGuuE&vuwN;t{U6Enxc__Oz*GTSsUx-TOD0 z+1u&xKXdx)DU+{j?WSi>pG z&HE42&f_hj98{;9MegEVT0x-;r$XG*+}L=)2Jtji&7HJ|X zfjI>}GZffkZ1^A3@2CG~z^V1!gS1lAG$*BZZ*QgkgCjM~Pm3sv+{L@HjoQyGm%x4Sc2^owtcb&x5xnE|Y8lXxr<>=#O%{fs2 zh;nyus#r|YhktsBqwh4>Ho(uz)-{di%;X)FO1s_fG zBKw*)JwusY#2>PecEEd!?UaTXx!Sd!ZVepL0Czb^u(dNt>(ElkhISS*W4w!3scDT2 z{Skl&J^EQ%L5g?XIn-Gi+)?@$+2zzysph7^NfL=AN$4v|7e2nbRqo-_p?3PhRb1RJ3H%s?x~jZ<}||WfCF-!I9NA`yFJIVeE}PLXk!RTJ|Iyh5^#2(2hMy zEUGai%0<*R61=-xNC@K2`#;7ZJ*33kG!ywAkF>b2uG~sLapOB_Wswc3xtUYonNT2F zD}5&S8h`DQxkKoy@j1+|ry=%Ozte8w%lPG5-t_a=VOXto(x1UMjQJR06+=$#Z|R?{ zcAxXharHO)d5LI&M%i-y8B@3mfXv**5C0qnD;v5pY#bX3K=+4#oEC2X2xcRUMg!|3 z8r-pAUo&snmOo4&s-9|>jH_3hK`0o=sC-^frSm60NS(LdXG8fKbIBKE?qOYIWFqOT zisn#DJ)tU5tqA8whVV8L&)m%$_w6#4o^EIzEIbA>ab@%(wcFVzKi<<|m5q4SV5_D% z7AIr)ETarwz7fyE*p>%u;>%p>b{MZGzVFeJEb#FdK$l0%leVG9o0aP}gy=C|mH zvA*xYo?b($^wqul>1!L`L+j<0^ugMj=@S^e*AE`2tNUnDa3bkg)Km_K`x&vtKZ7?bJKEeJ`)spR&$8Y1o397q=Ss76;ahZQyhBcQ?=UIfK}}GWwK$$|5wZW*-}^>- z<8$9kJ?=!AZ_u@=Id{(~aIq=i*2|xE?xz2I@DEr_BW;3u&QS*;Dr$t z^P#6eikO>$r*|lmc0DcaaBujbs+wm(|Vv#VirJt><}$qxmEc9{)H|-HF?gGFCgX{BPg_ux z=YWF_^`K}Q?uB+s+jv?;KB2&|d)29q(roWIT|Z9{cTskMM2;oN%2^&XEI_koj! zK@XU_m#(b^6RN`7k7QnnPq;XUQ3st0G`Byq6rf4O-p>YWj6n|x4Vb(;Y?kJ>HzQd@ z;y2gF4SekxlKMTfJ*oj|+}Q4e$xA=a^A6hm_*h_&50i%Ye)|m~Koz2)GMaL@w{N;r z=Pu-Th?JSxdN|5MQM((cLVwI5I`9Mz@GmX*kesJK2{^@AridK@;XX$0@cJeU-Z$6Y zHC?Mv^&xBIypDgF5- z-y@>!M|D~zScWX^omAr{x=BXcMCsLNi&K*=u{9pTU{fI}y1+fWp>DG2bHu=mTe$th ztd==Wb<~6zN3(Gs2q*p2l23{o53_Voh>7wLrqKci@)tHAF~%?spepu-Fwmys!4t0i zLKKxE6~dlSxVWPihRaZOo=eIKGT6>yV$fy$lA+6YV~EP@FwQHSh(vsOmu-9$NliVu zA+;l(ja#iUO7W`3m)*H&tEc7^bmYplgC6(tE~Zzh=2=E+Yb_OJ?rLh<3Dk)Ar}^U> zd?h}bkeCdWUA9l7RQtj)dOIv8dR&`*`48dk{0N%EA8}kdxQ?cvuP}#spF3b-^mlZ9+HRSn(TcUy{oi{=o(L$rSJDOuvTea*j}@? z>Zv&&wacUN;wUU9(_bG$y529n{{U6Z-%qb|7jF+q%J|~g=whNZjv?cTG0B$%aoiK> zp+f)0@If$lzq9`}#R)XU6CWMti4j;49@#axzTczj0OQLj0V8$}cP`g_ zFJd#Kzy~aOYBx{YU)&Xcg=zc4Z86PXJjGq@@P=nJ-f&HnAv;Ur>X~d;R5>Ha#b~73 z{3Q>$P+sT5juCCsq#>}YjYKgr3K`Bg8U>brZ+na`QL&z#_NJ|uSs zs0IjC&4-*^B+qs?>@#?6J$%H;?+wN>I_?Q(kvl(nFnK#nK>ADsHZ~rIs^-B2Rn0EG zyo2|1-}r@e<>oDzAa&Y!LI(4wIR)kvxG)qzUMv0AgMXAh>OabAnm^ghYMQx+cW|4# z;x?b2n&wJ0m}LsXd`>O$iC9cdx{OCG!Te)myMe|LDr+s2`50js{+hq(G}cXod2T1*m?6IA z7xQY$s`_OaU~zZi_|CQH$kXzv!g4Y0;m!37%t5HpJR;ZFn3opjmgnGk;ggF$nqt(K z%SXA`7*`FlRXVq^{3fop?n;&kc%2eY2sTw1Hz|X`yUIy^?{~F+CnYd1XcP=yBzO-w zI5B`J8O)1<^Hd8QzR${JINA|CHRTHda1wbY7m&p|8+VsD*k;`^_eskhZ zZoZE(Zcr(u;8m^PKV;l5-^8Y9Eqo-6K}eWj+_DDqP}Dx!Qa0}AJ{I5rstVmPsgEXt zWBsyKq+m4Tca9VI`CaVv(z}Eh-1dkAi(dvyEPo#)WiWG!j5t}Ljk9OMmQPEXmD}|qc@&rKshnt z^NF-9FtR$%!=ziK)3n@cy!REutkFgmR@2fN?(1?8M~h3Ss}Z06lZ<6_tq~3A z6xfsSoFUG;TGccY8iG#QmlJK23b-8@UM-F84 z%2zq0-12nn*)n=h-jxLKWiixErtaGJVW$5XZia!n6h>1s?oQgj!JOtb#xoB02BUW` zGkd!n%&>nvi+AFf=KZ{PI4q{y(KYlHJq1Q@Ew9qNw_viirFqTkX_%VFC@x!-rrOe% zd!S+Lu5x9eck_;n%Ne-!Yr5Jxk8IP#>1%?9sX9JV~;>Jyz$p?GfqN7$G@@D|uMj$`>*e&MPe4m~CBaD=yk$vy#E z;W}Gsb4)9!73bub^?2%{bz+snIA~o6mHF|FXw^d;b)3_d-rA-g@t5$3FBw-l1v8fs z$8nZ^7Wdlg_L~`W0lwNL>DesmC8Jn1%^&Ll1XW2|Zoq__`v_qZSJQQF%^Z4Da?(~O%Cs%h?`uDQd>lRkGzY;!8~fa#bAp;}lo z3Oe$QH@}eH`O43dj$^g+jy;XE^YA$ZE*u41F8tQ;`|0lte>Zhi(|mU`Eq(YXb?(3{ zRg(81C$W(Y1Sg~oZ^5*xqE!yc3GUfi#n)$Zi@S%1ABRteyxT{f5=u<+$e<-zxZ zRn*>xL~kDL+@O``AX8V#U2Pe@j+M1ck!N`LX$8hG%#ZWPNfXGN1Ux#(BOC>V%-vw{ zlAmb2~Z-{#ZW=lLXe%oWU)N)>P9dW{N?noy9MBs zA?yZoM`ooc+>jYd7Qt*#FQT5=`)7lG0W9bQU{Mq7e4m|+$U|^X+q)Mdb2I89;xSXu z@(rUXygZqy=au3eLp|!P8I6W!vJo~Vns-Tk*re&P$nP#gH{SJBU~x+x>f4tICWE(1 z@Deteawa-%gtbhOCepfyomR@@=|8oQT10Kz<%~uZ+pBDdx!7Mp!fl6V(`zVbe;$03 z(W?s7po^OyTQVG5YZ>z)(m7M8ONC~de2`%Z_ZgzVAzeoX?=~I& z8e71td;|7j@XE~02Ls%oIhi0v#~zN~LBNGSB}pK(oyy=1Efe0UH^DTx{RUztK}B;n zf=8UTdB?B#uBpD+!)1QwmCj|{X_qbVwbBaU0SNnucU>Rsad?gdf_R8xd3`DEY%t#{ zW0Yk&W&pNMJvP?jsxan2y@jRp`szFBmv8;e^!EDu%x&gN_G5IL2Rvm8*wSf?G~n1! z*QTQm*}LfQ9I~mdE%P)qXV{VKKeWw`lXTkb0uy$ob?K)N8u|K_PWnf;+r8(gxb}}p zM(FVr5!MQ{beag_C*mW7;;3eodv`lq+%9TIj7WYgtIS>Jt%hrfrW}BuR-T~8u@Xh{ zGyaf+d0CE6!vrmIy_@WrYju?1^{(AQlO}Ge0~~I`%jjiNmJhkiP^V+~Ni##T{0_%F{^%5|IS`0ulJ-C=FB%zK`tdXbi&_M4eCooS!cn3s9edxO#Y1wP2$ zE9?O-dQw7>ce8FH=%qD&+ZPdjTm68hB!ky+pcplGEZt>&@G<)gNcHyD&`JV>B-C~* z)r&gwB@RQxUA@QJam8|eTl#x9?_ITm;LhWlV`^62>{i2*7~gG`=DkzisqgoB8V|AW zEUctQ-Aieg??j(D~FtY|Wke4+0nlPhs#wD!yBYaYvVVJ;~ zo%y#(Fwq-yan&#qn8xph3|F;B_|4Id zur|$1GbsbZ&uh$|Ja!*)k1b;Sn+yV1-en-5jxVEe15K&iOK-BsSk3RKA(?dd;XN96 z^BXC>^Go^O;rSZkWqjM`F7tfFcy7|on9#)#Dw+r0$BStF_5ZkdzsIS;-3?THFv)iIGG@A{#Chkd-$^&#U~}L_Q4KU!#<_P+fjI@9 z4F&FS2KR3be}j1x_sbx?wf6BwTD+s0=IwN-B(IzOnBybI`O4#5PA2Ozrz&N*%6vT! zgE!}%H&z!9naH5>d4a1l7FS^WFz-BEX0voLpQv>XEQgxNm4LA$U__@D42dqp32h8$mGQVs2;I{O5^{YTk*oa?w+nHu%B-5-?q)cYBw! zkl-Qwlc* z`9gUqaxh9P)QrVGE~eG)u4} zqcr0V4BbPeqf7r)vR6ix4B-W&Hs|KENdXUxKW2krld=8^ABuIhfBhaPA@5z+`%4GG z@Erfnw5jE1(r-&>Er>yR^n2Kb9dVPl68PQ?y~qT^@7qKZ-(ez4+noqg28aOVM~0P* z+CI|3wtE@1111Q5pYl9m3`@oQx6&7`d?T%P*MrWJ($2%?6nH8Wpn>{b9@4Lak;`4O!$S^M z?t9(TCX(}TNVK_rYT!L^G6?C9`-}$*%N!)pzQeD+wv>MR-a^`; zZq+cRPT)K;VjjbzWdD6?=e^KedMQ`ZZHSo7-noaoCRNnt?lU&bG0{_ z%zQxQxxp3&{&Qg7mque5`pg;cFI`Q4bmdFwryl(w>XzA)qCBwEqpne2=~^dt)m`lj zKqnDffot9aVNp@SOP=A6_=w2y5m(ZRulfUb`DuqW_zBb@s z18sietzSH>>1FU<|58d{_;)$s!F|L_%+Zc|+RI$~dD&;AzMnatrjKvbFnumL+ zVcvVlxZ*UaHJmy2G3aeQP>L6(iv!^l;|6LEDVIe~d3O-cA9R+|E+M;+VQ(#VkXHNmP=hNRE{>$_`hu=p{^KM%GWFvLC zi+6|=uWFi=ihEi|a~;z(?puVqWEMtUm@{x~m=rSU7>qIyGW0CJY#l4n%iy-Ky@EvV zm9(%96KDlS+9D^&m9~lbj9bi@;+}{ZKw&j8_hljFJTH5W#^j2}$^<-hD#^kh3{w_d zp}yDT{!!In23t+a+b~h^YE0iq4U(tvbxK>~Vne(JmP9#Ue)*T#7?Mj$6$M5%$WbY2 z6#|*G;B>CTd>-m^eRW4V-bsMUA#3Ghs7y`OGcUp5?On>7=hkVk&*GkqIrAC%fiWFc z&>VcZ%mkXJh)jb6)+k}5iFDXeNOK1+U@04U<~rdf>}i-%gsG_HCAgGaY;y@)(54Rt zFA~pj4=-iR6>9;tozjDM*;lnEs)S|m_LYopz27$YtnQ#CKmNTeCfffw3+vXA!^8?w za9tKD!Bp8=LG9@Z2RatnWMLSA!Mni52hA!L*S0;$Z`%r0&9qbf(oX5{Y2~R>bxnUf zXPIB*WYQ+?0u72tlw8_;2d`AhW|1+)dw7?)k2l&}jlh;ktlHVO+FjEd=9tiRCva{) za}==kz&;7dp38K;D?Ii|8<5hqO7botDX&Cp`+z`0C}0JTZy*D5XtOxOcxk`(I)TdM zjfQLc7U{V0BUT&#Se)(MM-U%12RM!#FwV%_RodP1$9V2YJnb7*`j&l8$#+$k*1l(1 zSJsxH#}ewBIp9m&Nyag04F=FRZv0&Odhcgp5ZvIv+5Hm#;&gYa#VKYqBSX zv;K^4s#Z=&BZe*0QmQ!!II0%x%)RvI^%< zt87mrUm3fL2qntIon#ybWCC|u@;1JEnY%*|pW>F`yTbU=g^|DD0^}(hijel{PfGM^ zY&*V}>l~s}GW@(fKpalnUuB&0xn1UQPrn9aGQ}tv{it^({qFUjNN?=ki934V-}+&? z+~3As7`@a{6Z4(wHYf&Z91;k(@$tGn7iV0 z?6Vz&UH!sJS?wCuf@#8Pyk)6wZB0oR&URQt=J=7gR(J)kL4mvRWXA|h@pwX7#-QJH z81RYr;b# zw2P9J8!6rTxh$1z8&o+RBRg>b z06+jqL_t*E*21ZzRWjq|tuLjUZ-0dik(X2*!2~+YgXR>NQ{ZF@I2!!X@OJty`~NU4 zvRS!ucPlM_$hl3VcSB9{BR6RBq;6!McQV?Ev2}VS4{?dj*X1P+qX5}iW-_o7U!GS`x|N)+u9iaKK{AI1O=R8JjWU7;=wtd`@01iX21}pZ zmL?W-Ml8=4tWaO;35>0(%OdbHQYD?OZI~u7dRJ8!1rr$QxUNiK?u{F;S-H>Lsor;X z$QYLyEBTd0AD!@$ZFe#>dq|;1UwMMEzR*ddZ93SLQtFRaYX^fAi1Q866}hlHGK82dz6u@-AF|CoSImQd)TZ%jvzf zchYySUQK_of%dUHL(J*My6l)YFdv2GoD7Vx5}|bjQ`~GUd*|-L25K4IWNt%LT8oJA zqqIk^h-&>DZR)oI&+6pe4wqNb;I((sV4eH%V)A=dB>I&C>M|%A{sLGKQCkJmcg$iugob{LbGK} zQTO&eRgkT+i?vBtOqm z_p`!6t6<>rsh((v4<>Lq15w|bjNSq3;RA$gbo;Du)UC%s7u7dEZ9_4#L@({grHoT_ zpKGvqmvKy3-po`4-|Z#d<7>3#A7OLsKcsoh?|kNLDeY7H99a7cz6pQt&0kF)t-hZA z@`Hb!zPR;+^vc1*xUV-aM<^-(J=&jl_%3rPVUKSVtoC4XTMySG{)cgV&}~Ew%Q1u* zm+>`m0ap`Lz-ku+wNq8w#Njr+xb@ek39~)4!Xv(nku`lyQ~hRL!*tj5;WWQ+L~!{j zK{XCOcQ4~@iKT>%W9}omDK(6zn@hx-~9s^>JJ#i z&>o~JYNdRw@8!3Fl@Bz5PA_Zq=jEP>0?%*8G*fXd7LW_4A-e1bdn}MpZ{&tTV;HF1 zNZ5L`!R7)mZYoR}OkI@qR+iW_;EqcNs)glrI9Oope8>lybR(l)&Y{~|Nw>cE?R4eF zn{2Ez$()-x1?Cj^Oi*BJxS#&^@E@nUPMT5Eyb6PN!8>?W)qIbQ98{lb+H<8RA&k?8 zP}2-!Yzbzk3y==X-N7nbI?G7h?lO_8Ov!U*6pUW*EIvZj*`@u|Utt2;r3Q`8B}$S1 zkLEFTK2z)%e%-i@iu*%ESP_6%<{DvCpeD7r&J`O8UYWTuc@$5_yN3nbv2AsnU~DRJc#)0duT1ZzV;HC@@5O$92{p~CB_B7CGPiHXBu!1L)3MHQ zfuey1#Qf)iQ^409@0_lNe0{VDKfSS{Y5IEZkG?Vh zok~H~UdDkWR2s`nR@!`e6D)o#M!1| zbDBXl!SvJvwx%=ot)(GF@`IFRt@Wa&KxRbA#LS=Ji?c_2y{Q|@>_oRRw zF0_;Z+(GImR5@?6=dt~OLtDG)(i_9{*RFga{V%}Z=iq`RvQDF>hFIFkCLk&pATjo| zK%01(E;}$Zd4k|XG;x#QTVbP4D`-gkj7FWwM}2vZgKMv){+pjiT{CJh$KK_c(47Ss zT6EZG?`%SkO#}@%Am{zcldE)&dfFIfO%|}`J!^tiMWq*4OT;t1iL??t9cObdFY`>- zc(Z2Rr;hj8(|hDx*2A)-oHgxPN^Y6@+ep~b)Lpmsu5yT#{rx9xUY6CF;Z=IsyR6?H z6-KWDu8s!hc!Q+;^o{&J@7_J>T`a(tQf;&In_+8u9OD+>^+T_|gTTS;<>KOAy{Gpn zS5F#yNADdOz2xU?V1YyQS8**-j`PkAU{j~-w9l&$16>D+>Yn+1oZ7|=h%P<{p96Sp3&Z>C6iVESi z;SK@?e&ICy*1SY8$sKU~7|*-Sji3V7$YMvZKRm_VNb<)xW_XRSV_FHT@sYN~jfAz* zw(uX}vkbx%JFM{J@Fuv18QgLk-9Pt-rz@wcq5#_Z7g-+l$Uy zm#3W0@>`ErxN~>?R=#%^Ei6F`8QQC_P(00kTme!KI7^mh*aIckTvKM^&}i`>OKgu&aW zX=YwGHnlrf&FiS*H65X*Stc2a56!U4rVmVBpR~ydvU96!ZWRrw(uEBaNj+RkL!@~J zT{f~*3mq%BGKHyys>$lu=cJwmQ(h9d;4bCNTv8^7q!(7ZNt@lr7`(!nEq|~&W3guu zLbWNj@Nq}F3o&40GmiX2#k0tHf{7UU7!b&E{(KkkH71zFGX20MWEjh+NR{(hO_2bO zcz&W9GI(WnnSWF73?9GWkkQjyS4A@$f2&9e%ar9m^2au<_0qI*4>~$;ugtX!G4`8L z1wK(dD{~rd8N7R3A}LL}p;z>HNrG8u+eLymq@@cTjzbaxKI!?i8N5wiu2-Va zO~i}qu!%sD*aQnkN4%8MVorNOdV$mE$=E8F|>`f}VA8e`ruDAGG-_)^D= zW0?%(U>Y2aNMlfQ?}ecNO~7|;d#Y_Bq;pGnt!I3v{Pz1@VZE|UKad{Rb}ys$U+uR8hqVczELSURZ8?>Wj^|krCM5E7fhASC^Uj{4-{&?cM;GS90IA!mPIm!` zME3*MuiQ-6UVArP=ed04dg>{;^Y91h@WX$d`k(w^>ci|+YL`h)l-HUERV%&1E*|Mk zd(Y*^ojZEeZNUB1)RF_BOX*uTR?|-)z4cogy>!UrMtl{W_{V*QM4lrKJ)q83^BZst zFv0A*bhc0_4Sj0K8sNs!PS6BSahwHq3W}xW)PL*!G`R5w1LSkscJtl1(Y}j{=5029 zW$@}hqHK2hBA%#7>Vhu$cC4gCEkYe_@a=e~n|2mnr#E$WYe6EA+T`DLpd& zX@^B8qeArSCu=ijsp(UM_4UQ?VsQBIoqc`89I|c2z zg2gYR_qM8`ajU&(0j8ESgq~}iGh($#*n=)p@+-Vgc9la)`y4&;OgWD?MH!~ce0Sd4 z{&D&%cYh~+=fUr%*Z1xrwX0%qNKb#05qx*$6_~xRq&>ce9u~g`8ELrBigUa1^&;H6k`>DvW`YsKN?2VoF3<^rPD6!zNIB+&#%3<6H}V9L54f7@2EV z_jq_yHefUj+?YEe>ra8L-fE8ok9bD$R``?bNM3Ph*SCzVGwO8KmStKWT7h#OB~_PU z^wSQ~I^WK9R4lK;tX)AHhRn?#LLV}4m0XpX>mX=a3lQ2e#KS1oC0}I?apu)F|+rW}8o~ye|(T2YBw_9qywLV;@Fu zESTzm=-hjdb~jN;h+0AyY?C(BqO$Z)C3w5b-kU~;^<#(1kZn%MZtub%=7VsAHIrwN z3COGOd^NqMs^%Vp+1$)2FsHz0f&zDkTj@U={016VxQ7=t%}Yx0au4sJQoN5;wKhIl zoR2I{8#M0gF2PU?HO($$nV`i&9`_J+%>$S;3y)Y9!k`Ul+??!Ozg3!dK_>4yb%{HF zQ9a#tgAG#))woN5Rc6AOYi=0@AczMamB3*|^1o4ydxXIoFr*-%2Wwp7h5G!AXoPtr z9h_rEo&q0ZFcQ`na0(lfVge%(_$_EKc%fZut`_0?!7G-SMzatMj4u34BcqV?<2cPy zv~hnT4BjPFH21iVSH@yQ1QMZ&8TXgqP_;?MrKlD9x!Sd8)5;)&cLxTqW)1rLn#YZ_ zP)fSD0+Y8$GG{`LL*fUY-|1(@;N{)<9+W7aq(XN>iC&B#`xf(=%EYlRb?78YLBt_} z`l4njZGrWErgb(YFK@d+IY>9}J>niLRiov%-Mn-AOf|ks`bDhqYFM#-&r3)Es_HfR z&shA0@=B66UB)V>g#WryhA_P+nHYxRXEZh_&Ck@i>L~c!_p(#KcTGEpF|ROZ9s8o6 zkGBu{R~)dQ&pXh{gk4$ZTA2dpp;Q^Z`MV+F_@9YF_T4Tg$?U(&+;7|Mb@QPoB8Zx3 zOcRk40BVrs+2ye1&Fp`bpnGw=yVh>z9uY!{Q-x0Raou7 z0iKYY<(+x3+sAwCiXHB_!xq&iVH1aRY^XkVUx2#AT+R0EMkSkd3(MTEYdasObnnmey}Ohx>eVzB(@W57865O6OjGl) zO$h`o0%nhUeINXoP1Vck)zzEnm#*DNzr&R)heKy#&D#hRv;08i5o2+}G>%e4Rj9)J z?qKI~0u?Y7u!L4`L37*^pw#hrx4yudh>d3a&&zaZ3mvY%7-8^^*L&Q5 zrovg58R}E}N*r$RO`a{&p>vgMY+^HadDf=ZCQ9hLV?00P`=bQnVr}a)6k?Zg=ne;+ zZuJJNKVSqt<@es->7?QUC7up*pevN2N1K{fk7*eSuRaCUal1SG?0Z!1?d@_du{Zwi z_J`@$ZvSTbC+HdO{a=eKtb+aY&|co3_Mhx5JM4omU83;Eu(&;>@YS)`Ew> zh6jK@*)(x_#WTr_g^zi2iiv@fkWCJ=9L!t%*5`v=_$8qI!i_H<{Yrr77B=WniLQ-l z(f}tT*86g0R9=3E@&0{O4u2l^yP2^ob5>?1>b^rVRS8}<#_FQqysL4nwTdz3;*L0M z%MzJZz>8vAM`$6v=VnfU76s-^-WD;Qs*}?cSyeMk-a~G(U{Gv^Ros2KjyyTA!+?8Z>8n8-Pw zi^}rj9H;@v(ZPT+%$3Dhys!y5Bj+09qpphvE658DSt(X-8&eh zOE7s??(d~_w4PK3?^HDAMca-(H1@vjJIgSg)P{1=jU+6?@bRibmtdAbix^LiLqy_W zcO7~I_Zl2d^9>$?udEKEwZHcVykmZ}E7%Wo3j7{8Y?W94bML?rmO)s`Tq3jYqi2r9Ddq<3cJot zd0$$%l`f-NbvXEh=v-Rgfpt9I6LX!W{Z3m?)@B_uTb=a=CVQOgy)0GCJ!%lNF1aHJ8|a$~FhHV$#)uD1C_n#h;=sSID- zQJ#nchq$Cosk;?-j=7*}J*0PK>ULm|F05To10+}W;M&}O{5bviN8jW5({%TfAEm9W zjdTE0R!v|*Ys-3qp;QRCZl--Ceh;~Kcj@jQrb}Bqthe>R49DueLmTWN6p^(>M7Y%)5I)%Rh)V6UlT+m{eewcft#@*K~7 zEQE~hGxUS#gJZELdTk)g(FfO&>WWSJ6QM^U?ZbKW%&jcci;qBzdNR~enB)qT&0X4T z!>l-pKgp%a<_FOI0n)tJnRj}n(bJrLBE*<>K0pmPDue5LJ>+|{{iB7n`nK!uCx6+} zL$<*cGPuRKc$@dV0Yzz1A<=tM{a?s9No9q`Uv#UmGIzT$c^4eQTjAr*km&V=E*}Zf zghX!{i^t)g#P6HjVSV*6^A+?wG!M&o&Vi48e`mTNv3b~jl7WoR4xs@p6h!!bmTZA1oJ^Sy{&Oach0w&Gw83CX}dF6 z`30b1_#SC#_?oj7C+OYde?W>b59l(BcQr}RnLkaPDJH3Nry=r=d+r-LC2$MS)z zm2gAg>Z@<3cfRs7oO-{^csd490q6Fd0&@yn7z()I^8d5~yKp6aqAOgPd%|sA@Ez6cM4g``d8)T$s={>zW zpZT0VJ$F}E@%ydZxocN-RdrQ&pF5me*}ZG$&SB-sm2<9KD?j6$?SFpuJ1{|!;(ffE z+7Ib_kmBw6955-H(8tV6gwmrdGvO|3npO4df;#4}0))xi_g>x&Bnx2lwnAmI(!BGg zHYWTDaxqHtD#_a+4VZX+8NJIDaQeK`?bXR?5pkdBG;xS;e)4~vP#i{dK`z5c1~0&d z8N3;4^sQJ`%^YBbP|~Ta#mV<{Lt4y_MNPHN;xGKb1v&@g3jf+&V17Vn8I^U}R`K$8 z#xv5@onUT|2ZL7$UL<*A!`y`v|Fas$uOi7iYn;~+u93ST@G^Ln;63G8r*5o3qfuja zrE?pm>M~NiK?mtM&KO+=FO2Q8<6i0>!SH|qDI@GUOu7j z`C#@b>)Wf;`{`5v%zQW>UzaSMIk`M?()7u;86MyEU#jtqer!D0h3hwn0+z1(Rx)<& z>r{)L_px%hk1c%*J|Ys2xc09rFnZx&*8OKNjm>8Xt9{hagzYvw;F{ZQhXWcb!RT#M zhg4bU?kgB^CmVAR22JZ&#NpfV+WE*b{r|Ff@EzTde&DA+JwY5I=`mRJy#|7Vvodgf zyn{a8fk*x>8>>p$+H!omSDeGUHNLG!k+(WexMw0p*vMaeiwF6!zynSI^e6hx zpjmtkeoRf{TZuuVMSRx$eI!-7)VBjPS?uq^G=XnM38WEN-*BhoR3BV>C>kL-%Lz ze8gc_Hmse5f2D?cXgjf7uAY_im|MrobKZC0!hjG`#WDsQ9Og0BOAaA~ByUv(FN$v4 zUnbwnXvtfOfs4KvrbDRN6`nYcF+n0})$liLR@uyY2@YWND`Vo0ItgnZCi_#EAom#u z*BE^4>*q1!icAP*sk;weFe6L38dmp{m$;)eppD?$e5p;w%zIq#@jPJEeaa|zfc=cT zNUCp@q4|Y$?i9i}R)-`n+Y1+&!szXzj=d1O!>z?juYu8Pt2v-PJ%qik1h49vmyzDv zAWzPTrex_{HVmuMeCIG@@g-AT_NjSHsh%CNu@cquoxYhGQHa z=IO!cmD$@t^47-n zTUqO{(V>b#wjEIA)JMPkF>0Fk_g~Pj606Y%I?Q_t_}!oX^>p{$AJR|K!7j{#0t*Vf z@f0{hz2AR(_WSA6qbF(O*sP~P=Byg!{u*i;w+~U-yq;Po3^&aVYmRiAL5tevGRueR2bul;WG>p39?ADs{%Z*L01$?WQriC2MA8)X}n~0%+ed z4tC5(@$)c*2NAvN^yCmJGu%`Sy-vES@ck}GQ;$&YTlE>`Z#nwF+|3MLD@FWI&5QNI zw(47<$&l!!-L3Xyb~0DsFxIJe^vX1*o*35d!8KDbS+ToeDKmG4K5><`Plsm(@tYO8 zf;J3ihw^0@MJ@W`(|vG6ZDkuqt%6G{q~Qi=hrU2{$t%J$JQ^Kb?0ODNhHaK$0Ty|b z@mrX+ZZ-yd@Uc&knd`SW#v9j+uQ(4LGwioUg_dELkRv9#!Vxz=mso%gQb zoCkM4=%|bIg&q-g3_dxyzG6Ik0)zg6IQ-ik4@ajCROw~9#`hT`PhkMe!svCXvre13ySbL$-rm5jGI8?< z;!UD7aLU#yV}4XtgXh*h8W9>1Mn<~os{6+~>DJlv^qbrJ>7VXx!3LRb1V3cXIb;-u z!uUaYtrHZ=9w6pO+s>x(F4oHDb-!c~_HWz?N#6bn8{MO1dYuT^DBUQJ#(Dh-(KWIk z#gET4V|$UY8&Y3rb(+*LCc%(l!1WS+4yVnM7vZmPN9sC^hz^<&Wb%SR>LQJMjH>cu zBrj$5jy2Yg5qcT-j0LYuV&p33D#8K)_N>`m{0Wa1yey8R+X|^zPA?9-!ZUL+rjzkKal3u{^gK+Vx z-ua7PJL4 z2a99?D}1pE({>%k?u`$*;QJR+y7S9fYWKzmbW(Siw6l*FcjVG1yU{gA&1zu0ur4UD zpuiXkOql763Au2ZodR@*A-#Kwq%Mr!*zKrdyMXJmAUk}uM?dJa3{!W&`Lp~kGpUrx z+mfR~=hs4K{TZ7b`@1h;^dhA<7^@PG+fOG zl-Feo82nw@~9D{ z%$cT%{Y(!o*mfGmw$$M+Pw%1~@oI#6ldQw}FF7;sosA9>kr(&DA%SZFj?g&zHS7O~ zyKO>dpbWfY?m0c&J&t$GaS3Z1JLZ1UJMZ3P&5zWWZEj({p%h>oiGHuBXa>#mMIN}< zrDz%BQkb^3P1OL(P_++^F^N00di1x!riBCCX2WQiHP8xsL8~au%lg#-u;dwCp;Xi7^7d(XO@#^? zfsg2nGn3rMg`LF>c!KosgOXd$x!2Leu!V-NjSiZ=*e7_L_R}u=3f&7By#a>_rt$7< ztfejX7uqr5oCOiXNVO`1mDR67`52~QVhrIRCi@^OhfmUPw7*E(t-Bn;^O!|8<=u!i z)jBo2OmWmvw|q=Hj2O!3`>GA;a?t+ltq)S~<~<6~$=xMPosTN61Nlsba55%&W{oiu z*g6nUqwcttn3e*RX8>rycvY45r2VcM?1-h$I`s+-X_L>G8@AEktql;ZnFzrL25O|BQ4PV>hdTZ%UFA zaT)b+8G4tL-s15>fkU3FFbYTEmv3?Pv2^lyp7TcyB0XDj{^m8m0kD$1p|W{O>}9qq z|MZL5>v|0Sjb3d=Gz=JlvrRU|1 z#Ig2eqisMgY(c={>zgvf**Tz(VF%%fT|gDW7SGb=>hB7s-*ud9Z#q?>av}ve8)d*L zz>J4mffJF+x9`d$-r6g_h*Q3GYuE!=^&R1hf5E8um9+iVRPT~zaVy^O-3S-f%F}!q z-?xl&`@WcXSN6acdjvO3SO)I`TiVA%3-o}Ej914l7uc$4_KtV^(UM+?H~JR7S5wFk z?h(Ju!K-a2?x^VKRyv%XS(pU{78H2nDX@p+$bWhEd+FftRoZ-nn&vOK2mBEdyh!o(4w+;* zpSuPslqqqWMTKgbmE>J!5)W%?JbWkks%+*?-rfxs+`IHir))Sl%fAK__w&9&LP(vA zsO5#Xml?|50TLV_(s#0o@i+LLg%&szEaFY~8cbH14?_&zMnK{CiGQ4*vHK;dpsnu0 zHh`1c>f3kt6Lg{>j1t4a;Dx64_c5;yNmHeG$rxdVOgI@fyGALPe`wo^oo&iQJVgbV zZDDP+nNL$@>gwbFvL=#@gtc9myUQkXE?yzQxD+i4RT_E+uiJ+ks%b6}8jymv(nASe z8NBYej0qP}D90?7$R>*n-bzLDxbz!I%xpDTnO))`)7ko07wF7TzM%o54djCm*1$E(eBCLjqx<2d_Wf+q8&~vmnrK^lZ)xUlhjE7T#p{=AxBg57;rD-pe zq=nv-4l)SO;>er&8MqALZpGX^c*Qj&dnX+7=5SAQdP(@6kNTA07UcEjEloBNMw;vLm47JPqUg1Q$nn)?)$}E;i zybXi5b14R((5q3lvgQ_3Qmy=|P_h5P)m5$i&(jat&;6+VUV3u!U;tx=N?agM3mT}f z3EkR9Jv7q115+`0X8|&Zbafka?yqm9vj^XccV0Bi0X7C&`rmTzAyNBCqjE_(m0*Us z48+2Kl}?&yE>u zq_cK(#8|@M(lGk1&_33V57Q|$Ipvb6hNYjj zdA4{crI3`BiOtcCU}ke%AZT)#w4+#A?@u#JGI^Ollk~;LFd%N-;OJV=q?B)`52M!u z4i`h2E5s>f`;vO{1ZLX}+Qm9$?>OKRa+(oU>k_>&$AVhmDjhF~G!5VdeuaF^6lCrm zaL?-F)qClXJ?(Aw$zxvE#G|6=Iq)?=EVZ3bO}mle+aFRk@$wy;Ksc3e!)oF?Tk8*K zoDFa7@mbm9Lx;*e!d8Awd-#_)1~2w1UJb{TaEn*<&L6dN{f`B=70f zKJR+B3%?#6uy^sgDOUH9WBM~UGyjdr~m2bk5cF9K5Cj@rPd=Pcpq~QZ$nM< zbs;Ceu>E2GI)hA4t%eylQ)=u&FCdsPKdN{2!>1zH-}dHgBupX z)KqGf`*-_FGLlBlTMcP`3n0oo+`N7jCUWJ^g!J@sfx8NG*O9MdeHby8gZW>9!P|z} zotdg5fyyV*T`zG~EAHVvQ-XKe=4pvH&l`lqXSt)wXmATA?>qp$>0u!vjlfObP_b?y z&1#6_A>aga$hOri&DaoVIt0wBJZ-xpMuwuQn&V)`h~Jy|DT8+v$>r{Gm$kkNeETCA z-JMX?tbLl1wA0#kv%d)mUKsH*aQ9yxrX!?yLyN$<@^M;>^oMsW!)T8Cc^ym^=4+*Z zZ7V;vQHBQkI8Mr-UX_P~ElSF&8o9%>>O()cN}F7*7`eKyRQ_R?am%+1-^{!%4B`Ba zw5*V(TjgB0+04uVX9G7e)K`_xLNr|+Oz zw#2v`1|`-|YlVrpwD&TkM)RyeY)EI?fK~uq>zi2$<)PO7X!6Xz6ApZ&0q;ys0H zHo|zlAcYJU3EuuK4)e}XSC^sLYDn-hc^_jul(fRVz)JPX=+#IMxi7)%CFAOCPA{ni%QTxtmdPP>^8VgW znYVojr*?L)h<=#s{!W?_gi$u{61WiZqwf zXOz|x-m(T^AK^QPArYCp7fJHA030ftoj%XFl^S?ZKMJF_Al9MnUN@uHw5%I1s3R|_ zGdGz_OFQewXx$p6jx=MJC?5IP*1frCI1143Apl}9sI%d%KXucC7S_bQ<<0c3xsUbB zwfpJr@k{U?ZLbZ05mzV;)7;3hZ_h~*AY1H?bk3i};^)BLfR?R#4P^v}+AS>EKLG2e zTl4K_!)?fpUjVE8{Vd-)1)SpMTO;gj3%D|C=||$AjFPn4?N5W>pr4i1$9TRg7!`>5 zUX8R-4IhkMi7G)$8uI`Q+^KE*k5M`B6h`kKr}UHm8Oh%FQo0SJ_pM(|NyhJ;AF+vp zYGFvyh>XTD9q#&FdcjF=c8l{80ynPt2r(fR)#4ueNrcs2 zj9n|Mi_GA41A!+PxbhytvxLlVonlX;TBP?lMeQ}f{S!P`R44M~TvnKhCbiTp>59A( zfeIY>tPS=d1}_PShG{5y+d|?k&}hanvU%oF%2ei~>V(4>w|d;zky)&|=Qj7a^+_}vqbS!hV#r&zhMC-SXB^(cGc&Fh`LTy)$goy zuiK?`lhZr)rA`Wl zO5!flr}?ZoC4#$=n=HNnNFHL*iCAly$)7UD6WqrhSl+ zDHUT7XklAWU_pTyC}7tqqjwWV?_1lO=_Pld(`?y&Ky7oyOpAR6U`5Nb4~Vgm`5SXX z)ilfSZH|{SB-;og)BuNg7NDaZni*X9Kug$D*z1D;8r{1=k)=o_3FfvAwMs2->VGW~~fi>sx5PG66 zvnTs&1IZ^PtiCQ|-HCiv1wRfC$uI6Ocw0X1d(C60GyN_0zT!S!B2GyvBy}l&nYdGe zFXVU}ylVfT~+RX;)H`lkqhsNz}Xux2==e%!lz!rH#e_P^t@J7D(>3P3>%e&jC~o#nqe~=q!H>CDy7m?|aGixNI>Ty4_ytj?dW)AV zcNx4tg5mc|Kz*AuVC|Dirhp9h4{>{!=g(mDe!}wtw<6U$HGzhw_wlMdcAB9&q-D-l z1n)7Q1(+DzW>Cr~-t?_qsa>7xh2x{ZS*@lan#)%nZxC^^rzcDNPlqaSJMXvU!=RI98ri! zRUnC~3Ab#ue=l(Aw_Z^I=lwFfTL6_Q2sWIGSAJI>@hbM_yRwT^w9V>W+l4af)`(O4 zRpH{h*qiUlUPr~E1_U)BFeYSG$&LqATG6G}fsK64#&iG~`MfG{#9qW-P$0(r1sSfD0(4@Epq$C%<;FJ}}|8n-P((fPsSz6}~-WAm}KZe1}UA(VXO|y%M zGGiV?JST)2g2;SPsx_^#>2edic30W7pnp2z_Pr7=hraZ$aQeqcy*`)GYkGW>t`fcd zxV#TH`rvwwY8cTIHx|b-L*))?&wCd7o;M+7YdF1>+9l1_D>lk@IN!X>!*^UbBU6|B zrcKVw!rV?9*gGEf!My@4j*%X#G8uegK08A^k0%Pi1yn!#1)TieuPsX(d3R9!c>nRB`(if*Oj$9F4 z5D-&|S=BVx4Bh~4h=w5}j?9dHw&inJ-{czv6#5^o*? zR%M{N*k;|HM1r6v6^~eZ9x@La9V{<} zWoiFlQd=2^fu%N?z6@TNk*(DYrpCxig4d6_pQRt9FHtS~gF4ErNtYz*@J$EDEbo0i zU>(Fp^7+21j`f-?6;lxA?%6vZA(@2K?Yy*>33&iJMh35pYx8DaVVL&!T}wb=%CNug znn!9+FrM&&K@cJQ5yo{H(`7!OY0Z2C}rNRQ2xHB z8fXyoB#uD!*n}hv9pUPXON!yT<+y9@eO;CG43%xN?pp3yAg+N za~si5X59|u{V~klPhj%Cvc2M=-#DYY{_uCx5qUj{z%W~7T=t<8c=nE3q_+ekG$EM` z1CTUiphi6y2XqFv64x6vw}Gb`XiMcfR5lA+cuMg8A}rGPcq_rnQZtPHUc;lCDx+^y z?>~pp`;<@|hX@8{6@22$gVrI*d(jptRj9oODOtKttxXn2AxxEOP?>fyVD#pa?ASNW zd&ps8PICQFZSw);e+1kvn;z_{jEx}%KB{R}8u}rR(!4TxGj?O6O?I3V>0I(URDtUk z64;DcU#!2A{=xm{>#I18 zD7cK65l_?B#Cyc8GjE%O9D+%b3mJof*8%{%t7e&_{{= z4S$2P>eBWfrS$3V(NU@d9`pUb#r_#;oN3<+v!K9&0+*+NWAwsYGX-Sq%HZ`r-T~{D zuA71QonpeP0#Fu6=_A#rOa6 zUrU=e?#1G&2EVW@D6pWw8%cpLdpqgBIQgB_ezBK2pS?;;U+$$Ycky1Qni$s-9h z%`j5hvuw;0F%GXd`G)D)NBpP1$>Ek;Y%uM^=ta$PUX@-?(Wnl#e+=W`IU7p+_1t_| z+9ypJz4XT=BjQDp!QdrK;8-zPSsQ0#hg!l{PG%$GusCWdvAYLT_X#J=zeEw%GnT!3 z45g@_kNV$C@nyT+@&EAf+vnHx8@Xo~mqK zQwrZ|Fc!7z*pN`4k@&W$V3v;%()*`pXKsG0$u@+%`S#$SQp_6beDpIzp~im%{U^0I z+=IzW`JBNJR8m+5uM)kp6qU^3Qy9-DM_m}tndv+$UgNQS^IZ$G!j0v)3zvSrFmq+( zwxRtB{glkxRmO%jq;U%~*Y9{>@~-fNDrK3ul%I@TVb<^^WnJ#I<;^GXB8LkKd|N5N zyuoSR8V7pb*}j?H-bTWcdtiIan@WEi2Xbi6Js5O z;LgbS`Z^8w=Jwu#Wp(>L>yJ6N+3b_u<3a7PQd@B+dg++SR!d1J^SI0ULzTlY(iz;x z<~HJbNo$EeHq>PtNzXK6F*82xNRmCTP}O|G+D~b;c?@9tNTRB$+4n_8>D*wXm5M(p zf^aK(sr}~`Ox}%3g11C5!s5@A002M$Nkly;Lotq#1KcL@e) z3r6n}Dweso6?WxysBMM6Kj>G(?q0-SXH61V4?__a~DQ$iEjN=qW8Lt zJIN=MKhwX+d-U}nR?;&aaq%e(-j6wKBa>H&UgHO@yvLaW$0{}ilu!3mvcJCrD9xY) zSHh_Fg-Fgh>EXDScO(7y)-R^tJ^PQ+{oZN%#TWlC*Mh*v6jlJq&~a$EWot<}0+!@0 zkb9Y#_Hay* z;4KVZlda9rNA3FUvY1cy%AWqK6jHsne!!&W7LD){2c*7T8DC(#pulUTzy(9yYfbx& z1m4fPlT5l)lQ(?E%@egs@%k<%hMJMt!ZHgs)isB+12!sRylJqD8k!?i5jjM9_oT+* zyv4-x&VwJMcfS8CY`i=5T9^d|78H1sDR9j4;eR~)XX&SVpQSC;H1qTx!{B}H-B-DP zx$4xfOoQ!*R^alk!I)HCv)eKwT~;Qw36@CMUH>al8>h1oLwb?AVX4BpImA<-&5>9yRE z0XT-f=7nNaJ@Y9H-jH&vF!mMe1jF!vYLt(g5+^*W)>b9iwHe?`FQtV&7TtxBpoE^~ zZ2DDpa&kCaHs!+ncEj!}Fr>8-ywX0tyLR3VYf;N?_&vlP5V3LVce?{ROVCbI1bhp`>jw~|6LBW+!a`aW}vM!+fU z*1L5*u;>AglY>))r|8#b+*G$Y$q-h;ctLoM!Mf&t6j9DaAUs7#4U{6ERCC) zxa)_7nVT8AGII4_Q4*KKKgJ0d5Inm63ikQ-G)n{f4j0NI>kA5e!zqwkFm0dCV~NAz zt&I&1`He9C2;?lv`OI5)@22isFoPd`3bXJPxy$Q?*|Is@Sq~l1u_KR3EPEFn_950b zQ@68$<}oDAc6ZX@;Sq=2kKkJ(&Aa|5X?^`~a)+pLc{7+90)_PM5v&WOp5~FXoFVo3 zfeYS-=;1(Po82d?>71LuHB1_ z>!O}`15zfh%v@G==b}kb{S4#%(IuXFR?uQPM#JE2Vcxm>g1OHD%-#*wWJ=PjlG(d= zzhDmKoxKd*mo(5C_-){UX|i@MWpYdkaX=*4yODMq{g%E(He zzn~s`LaBKRt|Ca2dVcd|8Q2D-r`t45xIsJI=Qb6bzzbZSuiZ(1bmuqH2iUh)w$lgC z{(!@Xj7iWbjBk-C9Oe2OH{Ja?=VtiIzXD^(+625Y9<>veuvZQR7ag@Xzl)o|!@c1@ z@jC(!r;!t^QLH?9Q9>N_iTigWtwxY@ahiVLLc8>m(fj;Qd48PIy*PL4h4G%$3Fson0R_kZ-8=_V&fTQ0H|WRT+xLNaOy~pWqAN^kH zaQ|-SQ|_SpvQpEGgw(mY;1wyMAy1wC^3YTgRz? z7YSRKyh`)NJHi<5>PCs)bi}asEHirTew`<`NY@K=TP(JUR2yAtFhN3vso}u6bh%AT zA}hdc1>E&?_A@r7KH+)EN>K)`_&4)l1k!Y66ijR-dtvS_ZIS*aC-afA4W<;qiitGn z^Fz8bxU|KGx3~dM#$y*Ltx*PVgsjFHRYI!LJA}gS5%)(e7;pGA)|qnI+L+P)SXnp^gA%Tw zuh9fP)VXD(c$F-E2k_1=J=I+48AhIkl5{Wz_E)oA=9XI^ztAbGDgHfAjS+Yz7Uu9`aetW96wCE zYd^SrrbjRirsx5TPo;UkHj^2jO7Nb&{XPc=@Zby$)c54@g$SO)~ z*TzUZxh6nzFqi~Gz-C5bazL|G>O$0kF+rWYt14P4UKm>g=E#_^pfnc&l1h zwaiNE-h$Ie3qs9qKRtnA|CC4ns~GVWC(kpl?vk$~q+8Ec(k|=Dhv58x1-WXDmFB&w zfqFp~dV@>V?q>SZ-i>IFd-w>um}a>&?dCu}?OT+e>Ye@eDU9A}wII|rSNG)-WujT8 zYh0!)v8lPOFlsC=t7RlS#^3PP8TUcDNcI~f&(*vdqf)_cpeq=euQImxNW?3IO+{Kd z9>|=fBI_^BMvZt{uBzqME-lA}!+FRU#_-u#8zc98W_!je zLyES9|1LQF7)I~^`qpo8VC7c&o0|{P2Veg0sdMld^J6fSzyX+_c>9f|BsA*g_axJd zGbv274c2ym7JIz?7C_}b$*=aW!p3*8kGun(Zkp=Dmyc_tIxg1Yuk}qcjv1$j&>uYJ zO#@u3Xz`}ybCI6~1->E*I36s_wNW4sKyeSRQoQVNJFe7yH50ruRI=0qMoE`}tUeKo zJxez@%xdssLDgfHaeTPPoH-vYD_x)Q*0*k__qdOD4b@0BoE&-ayP&{=0&f@v4*RF+ zzdQZ?^mOM@+U6c!)ij?W#e25P0g^d4+$WKy%!fT|vI?WjC(fNriqLR3ZjN8|exo4N51?WnBZ%Wv!&wI%a5-(d!C@l~ABSx=BVeU$IVyF%*n8 zJoPVm9!gdZ7UZoH)iWcx`_t`^;7$9$_deQjCgSLUzxVW_R;~3471j4V!Asii?l*Sh zg(Bm5Nhw|!v_pshOQy&fcPV-YujMQFAycL2OEs-6n20Xm%)1QU>$!VvD8&j#@pXIx zrw$K^*6ST`?s3nf_eN7)V{v;9?-7vY(=p8Q2?M}ckTZviKG-HniV>3{( zlYkqKXB?yNq4HEUv}5U9!e8QD@R7m0yvh@F6Q@f6`^H77Xgeh@6zPmvB_QPyj6<91 z6qtn!!nPfcO7eQ$MOM{ZDpQHEcwdDA(N<_9r^nr3)(#z7oCPp#`ixCYuPu>byyO8I z3-JvzrHfah)-HdUcah4KQCpa~8waS1JnW`*-#lydLEe*Vm}M9vZrXmg8M)RCM}h09 zBa@&^9%-nb*3GY_j!wc>goaHXCoc$J2IzC6>a=*%{DyJ3&aa%GQHagHe1O;au-R|a z-Oc6krgAUdly$Lci7z%Fok@m7Vok>}&_XQ?DM#WB3`V~rYQujFsF|H)xGBAB+STOA ze!9n=g9pn`xhCoqreGI|!Jbl}Y@oM!R{2|@a|#u}jl?4Fd0=G{$vl09`6~|-Dh|#u z_burVMpB%SRyWe>av1#-{^KEc0C(xzxh`VVtz)SsLvf#*CS`1%tKZY%U8^s2I(zW_)Vqlqp{NU&fG)$F1y`rGk$E-vl$x?t$38=~c|qaRBr{3%_9)+>s*Y)=!!4lW-Ut zv2t|Iz6}F=6ONp9v6wOV29tLN#+gxN@RqxE?M;@;KwaQB-i=h_5U>)!J<3!#O}|Ez ziB^~9d(dQuHt`k*eU~`=>m9w1QK!8Z2OuU!9q%CmJ`H*VPNdP)nW!y#{E{IjqGyL1IAz2;Q%*ZFOD5u`hOQH9u zQZjC*6n$Ev8$8g_s~%Gr?Kx4Q>&FL}$@ea_=OywXPL-k~zADzvznRi6^Zy@W}oiiWo_ z$5UYtri930&AO`3cfk8!wr`|^o4=f1t=&ui{?_-?FMRnA)5eSchrVOCf?L54VA!Y8 z&7his&gggc9rIg7h!;QQ9U&XvC2ilu9)XPzk@9=gFT5)MA-^Un#lN_Ld}wKyITIz~ zxAPs1>N}FxZ)XWDu>O`&U}RSKEyMmBhi+cX$lUF#u9;o$(&alC!~!SoM`Cz5QXj_wLWb9G>BLS{-p=Sx{g>fo~fH z&RC@Vf4zt4zd!h=Y4y=wY9qzld$^C9<|CMCdD`CS9j=r;`z6&g%ivX-S7u?euNneg z616Wgknd(cWnfnhtg8AONPpeth8P&JOEP$O)-to#FxO?oNBF32R=U>{uYFI3FL5WB zs-qeCg27wTD>#>L-@s_~*l0oOxc_J?^?$-S=r1@iuX^U86;d-&!|p256_SkJ12)P| zT;zF3XCyLo@vc~J~+G$8X)CbGpWz&BW<1v^l#F3HdU9YM(BZskh2L%9B00z|S z`w=WpFlDun%|O~;2!3W+QwO?iI>-QaL0hVcAxBMMNf{}XsTnJ=JQ``zcQDOmsG_Es z`Ww=M8SHQj5dtsi+(Uw{%X6i4hoKL?#0Lg^;1g=2@fwHEAjY@G7TMs(w^hC_IR@im)hZL%je}29xdQzUWWaKzUm1_<=XrXrxEw?$F2C4@VxyC_huN!B&Ez? zMvNnGNG`IjYH`1)>#%_-X$)M3ZGk{IxuM(4?eIr4RwESF{8hQtUcd@_^%nnd82u)G z4yc8L6lc^g4;>dk89z6mWm@#;K+iGTO8h2@*avXM5qK3oL%~WimE*`~;ITxbft3}H z*jOwDll`)%{lo+fm%kf&c}tne-0CnF-eePbm4kY!rOi#lIT(8o)cK|L&3IaC8=1jN z*gligNC#LlkdINpe0;#e`xL2NwLCaR!~^5kYo@y3HT5XO`{wm_lrl zU#8TVH0C`Q%_{Ip?kdfD&~uNkpPplXb{Q$&D1-4hhu0Bp`;aR!cpu|%0PF7&>#Aqu zdYfoUY0hg39b8+=0Q8LWJk{o+^d|SL<71jnagx!i>Sm6R#By6WGBqbLdP7}v5mP1X zB;$R&aW5~GVB8(P=6%+sMf3~c)a4+K(zUjSsJE2A@5`8gNnPBd?>}Ng;~Dort$~pA z5TZK`(!jfT4;cHp)?M6e@jlXz>X|KHDa_ zkA{oy3cq+2d-X2q#=Gfm^g-VS^F_Tv^#?N{Pe zZ~O8_|IZ*jIjl*PXd_^*=TpLKN-Ftl>aXSN#@y=7ls4Wb-wRdEQ|YzvTu@*J3N%-( zGX!4*nMQ$F{MxaqqteHLoCtPv`nlMNQ?#Q%qI1iRA<@iJA!GH$dMs*UxnU+cCw#jU1ec0n=TO#NDdT;Zvk$jZ|EDl`A2R8bVLK0z z0}jx+ABm&3z!Wo#?tGfA%x0xKgXye;2LB$CrDv3DFdlR9X20ey;UbFjdoN`JmRq^5 z3$T7Qrlb>Ze#9y8VFQH~wOREp;b8Q}sxqUcdx>i0GEP>z%i<5FM_o8`=0c`(+1tJ-i{otF*Q|0~a=?IWzrr1~1u(JXxZatfuNSbec84gtblfVh4#j za6!BP4Lw7W*N@5=&AWKNtM~C1I$Ziah3;;yQ0)(k8#i8+@ z=GO@Jm0BAOZY15>XS5zw1FmE7a2UP@4%r@YadbnzY+%Kk!OhJq2Dz3DBK>7H=qB^Q zw{hdi_DHS3D}G3R^fws)MjBO^W_l$ZN8h#933p36 zE3iM!X`L}HAG33P07LSWD<=l!Q6VNiIcP-}5y}n~h{|`KS7s!xac#yb_{dy|*#Q8B z8Q>$C7OG2^(u>|2Z_0CwsZbf?lbve+uuR6d4mSeH7|Sqp*LXThr!Ylel7rzmNW$o| zi7w8&h=?5plh-_D=*H3RyD+w8u)50#K9qC&Ga0oqnv}F17iK5|A5ob}!+56GrhP`gIug+IfvFU4 zz7sf?|469GpTgv-js9H^7m$Xy3Bt$X_0f*IZL3WlW?}Nmq&rvZ|eB{?qD9Gs1>lz)fVD_6TwQ zXAs4}ew{Z1SHd{PP}Lj`hVAFk7`Qa!glmCWf{3H`#ydWBY`E27!jkbRG!VCDoZ23i3VvnxrLh2v z#~8|hI)JADm+tiG_Sa!A>DcEx)^HDeTHB)1(l>j!<^Z~Ry<;_g7@hw}q9h~j+>dbX zk+sYP7FYW*5jUWg#2H+B9=g)eXM!;g9-{0}OK<-urCUE>jG^xzs*DrjE}Rz>SWsXh z1+Fj)oe1+g>)}R1EVS)ZW%4#UH5WiGhRR~6CK8>i<4yTpqH|QuV1ea^MNBM>j|wEm z#~j*NEEG|nbnm?%(Z6%Q&cZAxu%N&jO98g_((iYFn*Q$YAEedKcT)Q^Hgq0w7w>CQ z)7(J<(r3~-J_t>JWS5ltFfG;QZS7DMhu<+l_s!z8LvC)M#)}Qc7EIn2Or8EAi=T3Y zw2F4+7s!PK?F%N1E-aW#w%Sa5k?8HO&_^S|5ZurvzGespZwocc=?f%ye|j_ZAH(3~ z-q}W%elcnd!UXuBK^09@u)4n$_wahKhyO6l?PWZA|E~AL#$3Ph8vBw-%oCe%(AWvP z1AA7}Y${)|sgew)H6$d5fzug`RP*J8-#LHeUvKgqhnqN1U=`^R&b5K$o7V(PXyHA) z?OE>ORf3ml(1Xt2!|OPGoyPpgxDGYVb~8?u z$*NA4nd{^IxH4}yVdicjnY+1%bgrtF>9b|#W>w31BQIb`rn+6!mdg?EwZ$4=21BlO zW5QLBXx!TE#Phqpx3e%{&H5?hE$f$HdIll#=CB}g`CGC4Xqb{#84KduGgTGo9_-t?~*NLYHzG ziCIF8zD*%;VYhs9sS7i)VwjF50BEs1hOzsKUHHSEtcb7Hh>`~YS2>BX*+LQye7(1` z&T^n5RvCGVM~UMDaNXlk^0=^q2ieQHh;OXEmEx1hBwaetW0j}Fw)`Ni94C?+`;*Jf z@;iZBamYO8koI+oMxR3%urgnJFpx}4+-2~_z5;bS?=iT~z?hAvXAjj%nuk!waWNzp zFp8Jt?i}t(O&Z_XNg8Fn(e5hI?dXG(Ttv z>K(!4wPD31G2mSKhc?zag`vnn_}C!7G@#2yl*rJbvzE^8e}sx*_G5-C&3u4~+edmU zRAbA*pVShpPcmo^xc+8?KFiH@`(nzXbwsJErC>tbkjP$NCqC>()INvg?PxJIv9?-> z7m~33HEwqGE@0CeXDAQ*)fWAJNLG&vGwLRMOuU#gr%n3s8)$i=59M@0?t@QoH%mOa z=f33>iFEEKcA&k$sI}k>hKMnt5{EaGy&rE3b4=Uv5QQdE!x}1^ZBN1C93OX*t6ACS zXNU3P5E4D1jh@(v%xgqx65@EZx-xmmBWs$@GKVcFw|$;Rtg-I%-XOkr^O|zb-E0Wh z+LaDf?XMD|Q)=dH00|`y^i)V2d#`L}%1)?NQ(>B)2b3qrq63~f7(BkE+Tz?xRnY-{ zrX=qa`Wce0IW5cNHIoyJw3~;1HKUh95}DCU?*~6_nLT5_XEnl+u`9#)l=^()T*!70 zHU%G{#lw%vtgOZd*bjNb|4&R~vwt(u61nL%rya0?!|1!X+Kx;)CuIwEe&bj~SKcQ-vcdd!};3|ugjP3;%#yoza2|`Wa6rgBKQbZK=E{*OF4(TVS;%}nRn1Gcjo~IV&13E zyhUYV_s2QyE^_-1f676|XQ46a6xwiuLOQ14kLgdl^h53uDa4_&gf&#i!(yk^cyvRW z^PEEzr;Ci`TrrA9nnY%-3nx{}Tx}&PUa=td!gnz?_`-u8$^pm&g(|RmW&gl1^ zFkwAnNU|HfP6ND_YN3(njg=h>_r8*Xx0rOUGoh8yTktk*7|-6Ln?B=IqzvAt6@&LO zI0=`$vZDo2d9;_bNTx9VVtpojg4oxeqM}*#!Lh!XkZynhMo7OR#p@|`dF16DUWb)3 zv`hf;`kVtfHW?s$3sUyj3~H@V<}5JW0B2Q~)26b;W+U}YT+MSFgsK-rv!iH|Zcv8A zEcfsZNk)%?F?rIc)ilfCW#Mz3rpCv6fh)Dqp^7?abDb%Djj+gz*$JKtv@d5gf|B~# znM6gL5yz^+M)6}8_EaPIIN&fGHs(gGTxIeu%zP9mH1|EOMFgWui9+VImuRLnGJWII z4_pOC4eS~$?hU!orrP8-eSs>JW!45m7Y44(+^t=nJ*9QK+?`uV=Mt{myDJ*aJ*M## zyar@v22o1$e1zI3EY(-ERqPH(+G*HDS~fa!zuiQN22bZs2cMa`xY@_s;k)r4VR%!% zy}cLQXa9L)?Ng-%O5^HRjp=B`XnwmZ+%T~LPj8`AU>B8dCk#3#ND}xR+xR6RV6@o1 z-8?%;o6M)&&}tf)j3-E9?xA7i_|YzLVH#HwOr!ZCBw9DaTRva?d+Ub%v=092PX%wF-t&(I(z3P`UF2Fk< zY!pxg329hx*n-i###_c_4XVTd9MojfnN5DwnC_jiaUIN3UB4-o=<6Or_|FmxCt_R^F}LR zDma7m2M$i3tk=g}CvwEYmEP$HmE(u|N2q7!`W95cM%|>I+Q-JB1NI*JZVnS~Wp#zT z1lZeom7ad~kVA7T%wvdW+iw{6G`dRea)|u|mCa`` zB_}g?tB9m0V`C{ck{iG-Yqed&)NFC3mF@8BFu^q4zLk1!zt4darD_M|H8(!S4QW{> z&&RA&re(?eD$RR%5R6yT4XI|ngK;}4aqkF~F^s>M_79<7)Q>8$;!)xQHxAXTp+cE> zA<0|Di4w-QWg*i_75GZ>j@$EUh9~hs9mIn=*Mb?@yV;>0Qr8%J=@3#M25(>SLr*2p zH7EtXLLaxFA_LPjrg^x);6)nqwwj4K$uB_DLXS(2CO z$y7rGlpkU~CpFcntAvoL5+s_XRxy~<$-CDAWp^cpr8#njAs|0!b@lFoHdEP*s{C)yTfnQ)f`3Qoo;ro<`Vo8h)DzA(}^4%si_7K^N4@`h^;W#{fj1)Xe{Npofz zGvTE#H~cCm&9`p9&BAL@lnt^jtP2XfQ55JhA^JbMKS}?1=U=1_YMPfmeU;9ha9aO} zrA##sylRG{4+4ny?{<(ZUEvw4ra2~^!>L7&Wmlzh{51Uij#+xsjVb;LTdHiP_4}xs zhOxSg^lbkbC(GGjt-H=flq*@mIT*dqSq94BMJl(Yn!>wGHaDSREEEVNgZCAa&QDPr z1A{j`XSS>a?`4enhJoCI!Q0wq(!RkWj?Ah-B^YzaX83O*AjQOWBc+HBuHkon#4r7<=g<=9vLy>nja?V(dURH|N zOnWDB8`alS@8PY|uGKWlOm`Eh;B*ad^CSJmC#z}B`9Ie-t|6_j9Yj@z!BkfQBX+GQ zcipRJCL9Uuny=IkqRwETv73S;f#W`2Hmbk&HZVgDzG*=&YzG8T3U_oaJ5N5`yO8k^ z%!hg-V;%@s3u|{@7`plX+yO(^`*LOEZU;jbh7Zi$H6(YH&|Ri~3Wl!nMS=Ig41Elo zUz=^D(l^qneM-Y94bcXsT}F)?LKU-C=4_S%tK4ML#%2x7D;c-(7>CXG0xKwBN<3A9 zv2h0(f_LN2;>mtme*QRb_&4y&*6X8}8}*i{OrthpUMtKgRv72^8P5+Hzk{hsJ+phd zy^0hzV{+zIWgNuYGd_DT5MEH$M{G7)Er(3?9k1FiTXNXiaVXkX`C-wla**uidLIUF zo(qT@(~7ji-r-AhHJ+kA?_Az0B#mDeCLiU~wPu*&)+qDrG5kxHj5KU7-Qa4DP2L_n z%di?WVuRK%>3%>ty*gb+BGqzmg3z2K48y**FAy?^;;KaLW}8iBn7pg#V0R9c=Y*rF zfiw6j6|)PoJTs)-VE1@H05oFxuOb)s0W4gsu`zG!d*~3mOn4c-9Ud9XO7&(R;~67& zH>PBHqBWVi-Af15*JGqu581dqs3drmE_cr%tMtx{-T+VmIYFE&{-QjEo#Fe6c?*rB z#a_fxTpg9i*d@MKx7O48jjgn@hAMNy2;Y5;<9*aN!$=w&+G&(?o$$b7&SamBu+Rnp z=ClP<5h>o5+Rh^G^z`Qhe?jnyb~0P;y$5shUhXe1h&9!la*?50R4}(-{zqdO7m2I} zb5?2GO_;W}RhYi}voQ|Q?OPmb;;^1`W;^M14j61v$Ee#qg&R1e+vCa`4+AR$ zzeJzXSvyH9kfm3ax`+&(y0QytQQkB4c%Hsg~egRYECht`qE+NW& z9Wkfjp%+9l6Vpr3c%q7Mr<>IUzt8cR=j-We?OnA#QPGY{NSO59GJ-luQjcJRQ@ zqeU{NS%GI<3D{?e?;h$!1_5!})^I4(3DU<}o4pdgspX_NyUBHtJLj!|;zM8Bkek9DViLep9!zT7*`&q;dCsjZG|RD3{2BLa2?q6 zZz44C3EQZ5`Oa@~E7)awAQA`&lsZTqy>O{Q}%}N!#?t)pXO=@Rk>`iUjXleDjWNHg-&a83_6;%zF$1cBQ4;cc9q3aW}1P+@!O1 z+OaST3M?q_rcuDn^yg>0>A%|h2i(E?GPOV1;eJ?7>!YUG9kRMVxI)Iu6wPj=mg2?k zT=bkNZYAOPw*NX8GCSZtd0@zDA%iMhl<5p%a zX{ahX-D6{8lfD_Jw95qglkLLWxp_ZC4861y%C={V?h<}pz)7b6+LYzhGKuCY+PC(sK_q)VE?%q_urs}aTfcxM1{K?>hJ??T2&Ik%;R z6z)};4DBr#0!sO4=Z{jHl;oA&y>H5W;KI=DaHvD3ttytcP_3VnlPJ*HrCO1@w0qbhLkG}PJUyyY-Mzat(c zeg;&34MiFKD4_yfJj=U;8~q-2*Iy%?V)xrUzI7zu?%i63VW~P%ii|*q)bl5=&Y%Hv z3mitWU{nBQNb%d~G|O7lgra>m-sj>8hKH^WBtdcChaX4yQ{3VUn4m9}Ui;%*-DPb0;u(5NQq0GwZ<3Uv=gO|S3v zKEY!k$}pv6O{=E6t^$vrDvk;9AM~INpW!E?SElm{4bHoJn`{7qORBU4)^v+pTI=1AD_*bVs5Lmg})$_OvOVsp=Bxt4ib7+TrPk;i??Nn zR<%&oyk0ikXNfo^jQuq=ay70s3>>YIaUFfNXyA&jt9Z7;L71>-iP zbX5@zoId3m9l!Aj8w_F9GsE0Xs%lo64E#!69!jP#EMU%NRm~I10kCnPfce{!b4U9u z-mY8H1`KGl-}F!wF4NgLr5c}lo){%u8x2e$!3#5Di9;E)7_m^rZD!CiK2SfVNsM+` ztBhk}8eeJN%Nk{P_ZUxQ_68s4GJv8Cr$=mgkb`2>c%V&2?-`8V=XA(F>#U>>`FkHY zlzd3^3Ubs)GpQ>bWbi&@RQZDE1y7N3o>01@pr(GChVWz_zu*mv2;1e1`A|OnLzuko zxSqyw8P0A4QF2(FQM@oy0^D|h%4@=6glnBq`g=VN;h1ykEq~rm?C$J5v~a)U%({+r zb+#{~Ipzc{GF$*aA0Bt4k^-yK@b@0+qN2I0nr0p)(>=7H--X6}&x7D7z?|Jt*ZO6f@dV!FkS9{0l=k`8M|KS(EoBqa=f07;?J%!e#U03kjJ8&N9JK#6o;a;PX z3u_z-M$t48ITy|}ah4tSi)T7P99{=IzFnAK}N1jUX8fek3?U>+dh6sg13Sl zfvfaP-%FLH&c@p`UYNYATQN>Yu#q2+O6)Vq`t;$G^cR2eNqY9|DQAC<@_fEz5{B>o z{%+dYd71VO4%5l%?ex))ely+v;J4EX%-Pn25lEK2Xzq z)m+#850+r?Dh=tvo6fBGO-zFT5vHujMkDy$oCq2|=CxHoq)uAyzQYJj%iP(A>bYR_ zB60iL7`-rfTS)8nD@JcRrq8|01A++zvL#zaW= zlAMglC7F?s!Fjuk#+t#)xBdJiBmH7?gbk565ljh4em4Yz+(u;4H^lgw1njGFuZlZY z7Bk&Q7y`Jyk+~g=pN7{g*2pvUwH<1aS#rn1c}h&vV|OKJE`#^dJ1yhWuuL<9cRAm; z9Qf!sKKz^D8f}_{p|J?Z-~b=L*JoahBx00+2CL-S2TzGpk&dncEN5%Igh=?l#Q44erzR z4&4>{fHoU1amSx=g?TP(=N!fb8iUO=r|}&^xYj>dY(s7Y*`QE~;PovZ8) zKy1>>*u`JT5Y@-pwViQd|CGn|M;GQ$mwOt!s7q6=s#gP?vEf`x{8i;@*<>pK@Yn8- zfAJp0d znlf%|w$nQ|R?|kzEApLduaH9j;@NT9L!Yk<-eCiUD*D&OQ1#dG-RQeVzlAf}x2jQL zlS5XwVbI(G7ZfQBmvxo6Xh`Rmw8y8={QySgdEACE&FK}l8r$M9@omV_TpQRruudht zwYHpYZ*nIcG;gYHjL&Ih-v#h;oEkuI_7v+ZPs?24ew$dxKv&P z9AemweBfnx_A+d`b~*O>_7lBR)R@zEY}`T}r27)VSUm?m!=CUP-GT6fh!XJfVE*+_HZmQRJk#i}YG)b3hO6RK6+VZle_4ZA7HFMo$>eon zKh9XMsoXMk%at`XgV#zggO~Z+5{F(qWq3;yK^w)#c1lSGgZDAMpP>EY5pNm3 zx<@-E%vFtP2~P&E@ZSNlHz#YvXI4{iHy_)?{|GoJst)F^d3BX9?WkVdMG8;JZ=O=l zIYk^Q1F4{+v?Dx+#_qs1zel~>Acob{vP9`EK-%dkhY;px^k&9wpE=4I?W~Jbz07!3 zH?LDaIy|z%yi?hO1u}WPQ#zQt4En*~wV(K^j0Bn~Ia`Jl&-BeLrTUJ_n<*V*8+qLB z?x$bg`EmNSoj*?Zj$ec-_M9ak;Gg>%-qF?z5*bE>3u~2Hyh_SVe5?2wa7HXjABP60 z`Xk&b4{<1_wvYPp9ZtoaN@E|Yb_5uyFadIf8Hz8S#gur}yEr%B#-&f~JJu_Tjzn(= zi8aF%JG451A^iBsv-HU)KTD4vKVsfMWd_L_g(|FTf&HB)>60J--@s(WV%|7$dw4ZOsY zmZn#gIo^u7JmdY=jYO*WrGJv9qy7-6BN89F#roK*~7H{3@j z-=k^9qKJ4)EDGHuad8R=)cfTHdI>L$oj2#jQE~kSy$g9QZ!(|+uj-m()jThn*1tki z>h9D$n*{5w9%*%D@JjP})0-0BY{{&w8P4GIjbgS>!Tr)+k!kWtee>W#8$EK;*!ht4 zbrOAz7KT81voE{E@056TG%PW9B3;udMz@u?kGJ7iJip=Z!KOTUvgiC-vOvlgq|tYXs&5(ie;z*VX)?#6@(6cTqZgiew03uZ2xO~J_J0EO$3AUQvoxr-aSmErEL zCGJHEFo)Hzau;R&#dq-IS8Zgf-oCkvFcx_s%;6DIv~1R|;=aK_9M7@F0kQ^(q8#F< z1{0PsPQw8vdgxjuS%nx3PcyBiXWjYxGqOMa)n%lc2+6^2;t zCamf)?Fv%hQQJ+r=~qy}tr4TRMp%E^jD2t4-bfE_ucZx`thybaoTZ1)4${Y8zDoPt z#WrA~3amj@tfij`*Q(*$hiamK&6XT1+;jg>g@|gq!jAc!?bUSu=6brlg`_lNUd~I}-g0YYv|$OyRFw_i*kABXAK+c-(MALR_^B~$;#_=ms}Jpv zj^710b7{IQ4qu9shi8-$K0+;Y7lvvZreF(tiswbf^qkxKK2y35SW7V(1K$$Aye|UQ z^aoB0#z^Z>>7a23>6?MC+g{~csk*m6NPQT+v7vn($w&*}%2UcL%AYa8ME6s$kCW70~x$6)Q);^>YOo2 z*C({QQiIcks&4eMVoT6t54rbs}|Z8=hRl@S58QZ?8(@ zL*B^6*GyQ+J*zRSv^5{xke$BITQc}~+i z4BhDah#4D0jr0ve8WqU=u0CrV%Xju2`5p0$&!!vp`m@-JL-__|-8WZ$e%tqX07?e0 zZ~N5RG{S{j^;r_UG?#xrpn~~VQhM*NrG&sqdI8hdJ9fQa z*Tw((9rn3?fCTSv!r=XN@Irc5=58s7QdbS@voH$^EGY2WDX?JjUL%R^!`u|fljCY5 z1^8~DxY6Q!tRbS4_+an~#BmFg2gv+gZxG;aSc5IG0JzCXn-$aqEzE)f3ktk>6gWOR zNq_(NkJBGN`f*zO8ER6#+(U&G%aLkBazc+XGa;(3CJtx23G2f;IOdFl$?XWZl4x{I zxqli7kv|1)N2M_saD%~HIfb(uM?5h}hB4Z|$>g=apZh-2=_675+8Dj&11a9tQ%BYu~(u-CB_dh(1E(vSn_~6Fnw`3mexTsXE8M=T3bry@oYzI?yRyED0MLK6n56R@6 zH^Gwdn0LV?Bon}=mP}}t&6s#^gcEs;Lj`P`#HO_y;nr#B?Z)ufg0-F!FQlHW)AT(( zq%JLzSi8?a82gl9qL)b%ajXw3t1G#$nE}Q(AxNGhB5}zbbX`;hOP4mHaH~kg#Rl(J zj-&-MK2ggj_7kq!cBmK8{-VGIdOp3{i7?cb2x8i5Xq2g2q;xlt%H3vMyt#uaQ5d_M z=v3_>rQ22t$ayyj1uWA#XLQtetmnDV=N)P+D=*>90xQQWAvZ&mcmM!E07*naRNeN9 zjUhJ?b!@WUs2dq`h%Jh)vyjn%O3v5nw7#@gJJs4?XC3T z{q?lH(P1tb@^y7Ivmza2JU@PUm_C8={BjTZDjB>bR8^p($=39%!i9e`Y!$&QR?d_J zj`3f;D~~pKZLY1PTX#0n{X1>!Y^H;M1)^YLL4^_KDLB4_vHN)E1XYF{qKI~+cNObg z&10UAar_o%wagkhX@$pPC3kRMqi+NFC=`b3`BB< zD=@{1k1)AE%po14arc9#)a#Olacl>{e6DC|-*Iwq9L(j;26J=|r4-Or3e8u~gI}Z} z1H``U1PP>Gi+J=~tv>33Ik+-iLbM5Oj9n)0kxX9MG_TW`$pL*MC1}!L+eB6Khw-i} z;#JWQu801WprxaXE5JsQ9!>&JC4Qv^8^slUw zUXCwHQ!B;mdkhlRE9wh{cW!!qk3>MYk66@NotXx zL!#IyP698+O-aaJFc>10I2b!^iR8W89-dh9bEKZO}{gMg|zUa64ddiuB@cZWH>61G0O*kM`CEwM_J z3yo+B`w3~tOuhp?N*GhRa~tz%Hr(JA&JTFA$`59#qazw3aLEil4m@}^f0Q-2f9 zbKK7xhh&H$v_5s{7~zFy&t9Y_Nb(+X_$TJ77bInv!`)};%b)!7^uaIu)pYCrM;w^m zq+YTXS)%2rR(b2)eBbWDV;byJ8WQ8Keef!4m5uu}1|IE7Z%nErlXJH4Sx{g>for6| zg2{W0#2kQfk#DD7^{8~5-jg#Jga#qQ=GYShd^K6Eykn6?Cpl2ZFzBI)!s*AAv~lw- z4tvr8FU*1h3ktkZ6mYZUv)+sJx1asJ)c%d!f`h*)@k|Hd!iA4rFXe|cj^BEFO zaUbmzdYh&+jExTBdN|UJTknjLd>(>t8pFoMU_@&Ad;{$)WZ9GAam>7c2;yO9NqY4}_siEnHa^J)HV=j1)^^+Z}a zRB+2bar)ChKB^`^GI*txlF#-LGTw&*HsYMKTHJ2Z+krLctjg%Pk5~6^fl>16XdfoR zi-VBVl8L7=U-!R%H?41d#q&GKc>(Dz)m9s2VO_Af7dR#-qanYur{8G$rCMa^aMdrb zatL6ZK65Libi3)s&M{2gle8vN7Y6wfwDVBG#DfJ59EK}evv!t1(}_^~7GmiTc`EV8 z!PKvgSpvp8cYl<<+6C+sIi=s*d7irMjdZxQ7WbE`rZqEjvwGIh@Z;ea$4ddwr}>Vj zY1glE&p3*k;VKm3T|S1;n)#!{*!0dV7`#YF3TYQ<>W42*Lt55!+_XGl)49clXtaOA z$0a@utKYV70$Ew0PyqX#$B_ujpk);ZK7 ze!EC<{{)RMUq0PK;*@z}A)V#(Mhb{ziHWspnPI`Im}TqEv4&^PXyP z{^IF=dc>UjfOaR!0kw)ZNMQs3pA&Nz9@%$dmhF_y~HhNvd)8C4deP{F^)jQw_KTdx}Xu$x8`74JvJYYifXrLjT z3tr3O#)MUOw(em_sbX{u6})K5;m}GO$)J_Bx6{%ADwdB4t6q2Sd{v6Hr~{5fX88eY zC7X_65rOmTHRs{WaOokz+q?4st*vfsU!#GJeecPYo-^>TTT1c9^x-_71*?#Lg((n> z+$gx>Q@x8@d5?Hc{Dk&dQk42&SvZD`8tQ}Vn2_SF)&Aq|iL;t3IHa}o@@4A5 z#8~E3*D@S8pQxqMg1Mpx`ufiMohV#@uMA$x3M{RWS>bLZQj?;`%s7o++o`+DpJUjxgy_(mfi*24B`58MR8pKBt;_ z4{%f^-p&S;^nDffjEhp^x0owz!c@z%n(>HOI$O+ZRIjX*^JR_o&VTV#!Pp}JN&7RI zzj|E7yp95!fRagNFDPTbP~$D7@^|@FGI^i7Sf8xkNxLgsspoyXAM;T2^Y2mk^z=8s=n*z4R zg}E*YM5j+r%0@wqD-~S()>t%+Nyl(`*~Bj$=up4d=#^6}U?1Zm~S&?%hz&{0?V=w<#y2ck||hdB6%2U51us- zAF^R7BW1qiriM1@7HudP&N6tTzJJpTU}~1;@-(Nh!5;txt5Di+BG}>X6dqX!rR4XYb9LF(*#kVB(1l=#3W8I2!+Ur#T3ph*ujK8PlnI74xU%~?3?>0xiR zq6(-23R?oX?-Ba_j$exUmg!^psu?FZnhPJclpKnBFhq=KVU>s?HY51{++T)$gX4>*_5bu#bfBcvK=Vv4z z?(K~5H?NmxJRElI;$*ror-lmdTSc<^(es0}Yd>3M?bCY*kDDk#hjZ|~&HVZpR~$(v z{>umR@Jas;-w()B6}Al|zuvtv$K9)J^AfH2KSi4KFRb!lUk*MQj>sKJG7}c z!3gl)zPXg%zqJ&ArBbmgYuoA5d(YBJRjyu~KCiMV6}x<4CVlYMa=LMOp7|pO<+}O| z^FM&DXKOp@&Nt6cAH9i0H;4FMB4I~KXPe{j91^>?t}Y^Jd?8)rz)ZKKah)fElu8^w zezu7u^jh$8UkTZxgpaz7dc?EZ>*;o_;%Y4DA|aSKyAO3%Mk>~I1U`>H36Rl<@%XO9?$+E z2C%qaqA%bc_p!p8F}^b;9yKl2o&CzIzxVMrc3?`6LYT%leeof89PiR*w@G`Ir}uyt zFw~^`6$0I0C&{3OCOs_GmKG9KN

(G9!EQOv3U->f^bscalY{?>? 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

TcjK|`4vy)Q1m0|eJQWFM1^MdO`HARH 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

N5re=YKgZU87-!K&XHyrL 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

?y` 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�H27U*gT6&KxiL}&nY9|`K6mV7cn^86 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ÐbU6EDT4`)39`i# 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

TGEzQ~q^k!eoT)tFwdMEYRHR4k?k`!`d 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 UqV!p51Mp*b*7T23ednA12TeY@AOHXW literal 0 HcmV?d00001 diff --git a/2-Regression/2-Data/images/unruly_data.jpg b/2-Regression/2-Data/images/unruly_data.jpg new file mode 100644 index 0000000000000000000000000000000000000000..54943ca9f0128bec4ced3865bd9081f71f99ecd6 GIT binary patch literal 128312 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

r4GFcE2j7vt9ECZ&?Nl|h0G^k{QtaFYT7fFX1H zKP>3~XH|h-$?4x2sF*@ literal 0 HcmV?d00001 diff --git a/2-Regression/2-Data/solution/lesson_2-R.ipynb b/2-Regression/2-Data/solution/lesson_2-R.ipynb new file mode 100644 index 00000000..632de0d4 --- /dev/null +++ b/2-Regression/2-Data/solution/lesson_2-R.ipynb @@ -0,0 +1,644 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "lesson_2-R.ipynb", + "provenance": [], + "collapsed_sections": [], + "toc_visible": true + }, + "kernelspec": { + "name": "ir", + "display_name": "R" + }, + "language_info": { + "name": "R" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "Pg5aexcOPqAZ" + }, + "source": [ + "# Build a regression model: prepare and visualize data\n", + "\n", + "## **Linear Regression for Pumpkins - Lesson 2**\n", + "#### Introduction\n", + "\n", + "Now that you are set up with the tools you need to start tackling machine learning model building with Tidymodels and the Tidyverse, you are ready to start asking questions of your data. As you work with data and apply ML solutions, it's very important to understand how to ask the right question to properly unlock the potentials of your dataset.\n", + "\n", + "In this lesson, you will learn:\n", + "\n", + "- How to prepare your data for model-building.\n", + "\n", + "- How to use `ggplot2` for data visualization.\n", + "\n", + "The question you need answered will determine what type of ML algorithms you will leverage. And the quality of the answer you get back will be heavily dependent on the nature of your data.\n", + "\n", + "Let's see this by working through a practical exercise.\n", + "\n", + "![Artwork by \\@allison_horst](../images/unruly_data.jpg){width=\"700\"}
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "dc5WhyVdXAjR" + }, + "source": [ + "## 1. Importing pumpkins data and summoning the Tidyverse\n", + "\n", + "We'll require the following packages to slice and dice this lesson:\n", + "\n", + "- `tidyverse`: The [tidyverse](https://www.tidyverse.org/) is a [collection of R packages](https://www.tidyverse.org/packages) designed to makes data science faster, easier and more fun!\n", + "\n", + "You can have them installed as:\n", + "\n", + "`install.packages(c(\"tidyverse\"))`\n", + "\n", + "The script below checks whether you have the packages required to complete this module and installs them for you in case some are missing." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "GqPYUZgfXOBt" + }, + "source": [ + "if (!require(\"pacman\")) install.packages(\"pacman\")\n", + "pacman::p_load(tidyverse)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "kvjDTPDSXRr2" + }, + "source": [ + "Now, let's fire up some packages and load the [data](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) provided for this lesson!" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VMri-t2zXqgD" + }, + "source": [ + "# Load the core Tidyverse packages\n", + "library(tidyverse)\n", + "\n", + "# Import the pumpkins data\n", + "pumpkins <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/2-Regression/data/US-pumpkins.csv\")\n", + "\n", + "\n", + "# Get a glimpse and dimensions of the data\n", + "glimpse(pumpkins)\n", + "\n", + "\n", + "# Print the first 50 rows of the data set\n", + "pumpkins %>% \n", + " slice_head(n =50)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "REWcIv9yX29v" + }, + "source": [ + "A quick `glimpse()` immediately shows that there are blanks and a mix of strings (`chr`) and numeric data (`dbl`). The `Date` is of type character and there's also a strange column called `Package` where the data is a mix between `sacks`, `bins` and other values. The data, in fact, is a bit of a mess 😤.\n", + "\n", + "In fact, it is not very common to be gifted a dataset that is completely ready to use to create a ML model out of the box. But worry not, in this lesson, you will learn how to prepare a raw dataset using standard R libraries 🧑‍🔧. You will also learn various techniques to visualize the data.📈📊\n", + "
\n", + "\n", + "> A refresher: The pipe operator (`%>%`) performs operations in logical sequence by passing an object forward into a function or call expression. You can think of the pipe operator as saying \"and then\" in your code.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Zxfb3AM5YbUe" + }, + "source": [ + "## 2. Check for missing data\n", + "\n", + "One of the most common issues data scientists need to deal with is incomplete or missing data. R represents missing, or unknown values, with special sentinel value: `NA` (Not Available).\n", + "\n", + "So how would we know that the data frame contains missing values?\n", + "
\n", + "- One straight forward way would be to use the base R function `anyNA` which returns the logical objects `TRUE` or `FALSE`" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "G--DQutAYltj" + }, + "source": [ + "pumpkins %>% \n", + " anyNA()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mU-7-SB6YokF" + }, + "source": [ + "Great, there seems to be some missing data! That's a good place to start.\n", + "\n", + "- Another way would be to use the function `is.na()` that indicates which individual column elements are missing with a logical `TRUE`." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "W-DxDOR4YxSW" + }, + "source": [ + "pumpkins %>% \n", + " is.na() %>% \n", + " head(n = 7)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "xUWxipKYY0o7" + }, + "source": [ + "Okay, got the job done but with a large data frame such as this, it would be inefficient and practically impossible to review all of the rows and columns individually😴.\n", + "\n", + "- A more intuitive way would be to calculate the sum of the missing values for each column:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ZRBWV6P9ZArL" + }, + "source": [ + "pumpkins %>% \n", + " is.na() %>% \n", + " colSums()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "9gv-crB6ZD1Y" + }, + "source": [ + "Much better! There is missing data, but maybe it won't matter for the task at hand. Let's see what further analysis brings forth.\n", + "\n", + "> Along with the awesome sets of packages and functions, R has a very good documentation. For instance, use `help(colSums)` or `?colSums` to find out more about the function." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "o4jLY5-VZO2C" + }, + "source": [ + "## 3. Dplyr: A Grammar of Data Manipulation\n", + "\n", + "![Artwork by \\@allison_horst](../images/dplyr_wrangling.png){width=\"569\"}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "i5o33MQBZWWw" + }, + "source": [ + "[`dplyr`](https://dplyr.tidyverse.org/), a package in the Tidyverse, is a grammar of data manipulation that provides a consistent set of verbs that help you solve the most common data manipulation challenges. In this section, we'll explore some of dplyr's verbs!\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "x3VGMAGBZiUr" + }, + "source": [ + "#### dplyr::select()\n", + "\n", + "`select()` is a function in the package `dplyr` which helps you pick columns to keep or exclude.\n", + "\n", + "To make your data frame easier to work with, drop several of its columns, using `select()`, keeping only the columns you need.\n", + "\n", + "For instance, in this exercise, our analysis will involve the columns `Package`, `Low Price`, `High Price` and `Date`. Let's select these columns." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "F_FgxQnVZnM0" + }, + "source": [ + "# Select desired columns\n", + "pumpkins <- pumpkins %>% \n", + " select(Package, `Low Price`, `High Price`, Date)\n", + "\n", + "\n", + "# Print data set\n", + "pumpkins %>% \n", + " slice_head(n = 5)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "2KKo0Ed9Z1VB" + }, + "source": [ + "#### dplyr::mutate()\n", + "\n", + "`mutate()` is a function in the package `dplyr` which helps you create or modify columns, while keeping the existing columns.\n", + "\n", + "The general structure of mutate is:\n", + "\n", + "`data %>% mutate(new_column_name = what_it_contains)`\n", + "\n", + "Let's take `mutate` out for a spin using the `Date` column by doing the following operations:\n", + "\n", + "1. Convert the dates (currently of type character) to a month format (these are US dates, so the format is `MM/DD/YYYY`).\n", + "\n", + "2. Extract the month from the dates to a new column.\n", + "\n", + "In R, the package [lubridate](https://lubridate.tidyverse.org/) makes it easier to work with Date-time data. So, let's use `dplyr::mutate()`, `lubridate::mdy()`, `lubridate::month()` and see how to achieve the above objectives. We can drop the Date column since we won't be needing it again in subsequent operations." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "5joszIVSZ6xe" + }, + "source": [ + "# Load lubridate\n", + "library(lubridate)\n", + "\n", + "pumpkins <- pumpkins %>% \n", + " # Convert the Date column to a date object\n", + " mutate(Date = mdy(Date)) %>% \n", + " # Extract month from Date\n", + " mutate(Month = month(Date)) %>% \n", + " # Drop Date column\n", + " select(-Date)\n", + "\n", + "# View the first few rows\n", + "pumpkins %>% \n", + " slice_head(n = 7)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "nIgLjNMCZ-6Y" + }, + "source": [ + "Woohoo! 🤩\n", + "\n", + "Next, let's create a new column `Price`, which represents the average price of a pumpkin. Now, let's take the average of the `Low Price` and `High Price` columns to populate the new Price column.\n", + "
" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Zo0BsqqtaJw2" + }, + "source": [ + "# Create a new column Price\n", + "pumpkins <- pumpkins %>% \n", + " mutate(Price = (`Low Price` + `High Price`)/2)\n", + "\n", + "# View the first few rows of the data\n", + "pumpkins %>% \n", + " slice_head(n = 5)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "p77WZr-9aQAR" + }, + "source": [ + "Yeees!💪\n", + "\n", + "\"But wait!\", you'll say after skimming through the whole data set with `View(pumpkins)`, \"There's something odd here!\"🤔\n", + "\n", + "If you look at the `Package` column, pumpkins are sold in many different configurations. Some are sold in `1 1/9 bushel` measures, and some in `1/2 bushel` measures, some per pumpkin, some per pound, and some in big boxes with varying widths.\n", + "\n", + "Let's verify this:" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "XISGfh0IaUy6" + }, + "source": [ + "# Verify the distinct observations in Package column\n", + "pumpkins %>% \n", + " distinct(Package)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7sMjiVujaZxY" + }, + "source": [ + "Amazing!👏\n", + "\n", + "Pumpkins seem to be very hard to weigh consistently, so let's filter them by selecting only pumpkins with the string *bushel* in the `Package` column and put this in a new data frame `new_pumpkins`.\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "L8Qfcs92ageF" + }, + "source": [ + "#### dplyr::filter() and stringr::str_detect()\n", + "\n", + "[`dplyr::filter()`](https://dplyr.tidyverse.org/reference/filter.html): creates a subset of the data only containing **rows** that satisfy your conditions, in this case, pumpkins with the string *bushel* in the `Package` column.\n", + "\n", + "[stringr::str_detect()](https://stringr.tidyverse.org/reference/str_detect.html): detects the presence or absence of a pattern in a string.\n", + "\n", + "The [`stringr`](https://github.com/tidyverse/stringr) package provides simple functions for common string operations." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hy_SGYREampd" + }, + "source": [ + "# Retain only pumpkins with \"bushel\"\n", + "new_pumpkins <- pumpkins %>% \n", + " filter(str_detect(Package, \"bushel\"))\n", + "\n", + "# Get the dimensions of the new data\n", + "dim(new_pumpkins)\n", + "\n", + "# View a few rows of the new data\n", + "new_pumpkins %>% \n", + " slice_head(n = 5)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "VrDwF031avlR" + }, + "source": [ + "You can see that we have narrowed down to 415 or so rows of data containing pumpkins by the bushel.🤩\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mLpw2jH4a0tx" + }, + "source": [ + "#### dplyr::case_when()\n", + "\n", + "**But wait! There's one more thing to do**\n", + "\n", + "Did you notice that the bushel amount varies per row? You need to normalize the pricing so that you show the pricing per bushel, not per 1 1/9 or 1/2 bushel. Time to do some math to standardize it.\n", + "\n", + "We'll use the function [`case_when()`](https://dplyr.tidyverse.org/reference/case_when.html) to *mutate* the Price column depending on some conditions. `case_when` allows you to vectorise multiple `if_else()`statements.\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "P68kLVQmbM6I" + }, + "source": [ + "# Convert the price if the Package contains fractional bushel values\n", + "new_pumpkins <- new_pumpkins %>% \n", + " mutate(Price = case_when(\n", + " str_detect(Package, \"1 1/9\") ~ Price/(1 + 1/9),\n", + " str_detect(Package, \"1/2\") ~ Price/(1/2),\n", + " TRUE ~ Price))\n", + "\n", + "# View the first few rows of the data\n", + "new_pumpkins %>% \n", + " slice_head(n = 30)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pS2GNPagbSdb" + }, + "source": [ + "Now, we can analyze the pricing per unit based on their bushel measurement. All this study of bushels of pumpkins, however, goes to show how very `important` it is to `understand the nature of your data`!\n", + "\n", + "> ✅ According to [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), a bushel's weight depends on the type of produce, as it's a volume measurement. \"A bushel of tomatoes, for example, is supposed to weigh 56 pounds... Leaves and greens take up more space with less weight, so a bushel of spinach is only 20 pounds.\" It's all pretty complicated! Let's not bother with making a bushel-to-pound conversion, and instead price by the bushel. All this study of bushels of pumpkins, however, goes to show how very important it is to understand the nature of your data!\n", + ">\n", + "> ✅ Did you notice that pumpkins sold by the half-bushel are very expensive? Can you figure out why? Hint: little pumpkins are way pricier than big ones, probably because there are so many more of them per bushel, given the unused space taken by one big hollow pie pumpkin.\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "qql1SowfbdnP" + }, + "source": [ + "Now lastly, for the sheer sake of adventure 💁‍♀️, let's also move the Month column to the first position i.e `before` column `Package`.\n", + "\n", + "`dplyr::relocate()` is used to change column positions." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "JJ1x6kw8bixF" + }, + "source": [ + "# Create a new data frame new_pumpkins\n", + "new_pumpkins <- new_pumpkins %>% \n", + " relocate(Month, .before = Package)\n", + "\n", + "new_pumpkins %>% \n", + " slice_head(n = 7)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "y8TJ0Za_bn5Y" + }, + "source": [ + "Good job!👌 You now have a clean, tidy dataset on which you can build your new regression model!\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "mYSH6-EtbvNa" + }, + "source": [ + "## 4. Data visualization with ggplot2\n", + "\n", + "![Infographic by Dasani Madipalli](../images/data-visualization.png){width=\"600\"}\n", + "\n", + "There is a *wise* saying that goes like this:\n", + "\n", + "> \"The simple graph has brought more information to the data analyst's mind than any other device.\" --- John Tukey\n", + "\n", + "Part of the data scientist's role is to demonstrate the quality and nature of the data they are working with. To do this, they often create interesting visualizations, or plots, graphs, and charts, showing different aspects of data. In this way, they are able to visually show relationships and gaps that are otherwise hard to uncover.\n", + "\n", + "Visualizations can also help determine the machine learning technique most appropriate for the data. A scatterplot that seems to follow a line, for example, indicates that the data is a good candidate for a linear regression exercise.\n", + "\n", + "R offers a number of several systems for making graphs, but [`ggplot2`](https://ggplot2.tidyverse.org/index.html) is one of the most elegant and most versatile. `ggplot2` allows you to compose graphs by **combining independent components**.\n", + "\n", + "Let's start with a simple scatter plot for the Price and Month columns.\n", + "\n", + "So in this case, we'll start with [`ggplot()`](https://ggplot2.tidyverse.org/reference/ggplot.html), supply a dataset and aesthetic mapping (with [`aes()`](https://ggplot2.tidyverse.org/reference/aes.html)) then add a layers (like [`geom_point()`](https://ggplot2.tidyverse.org/reference/geom_point.html)) for scatter plots.\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "g2YjnGeOcLo4" + }, + "source": [ + "# Set a theme for the plots\n", + "theme_set(theme_light())\n", + "\n", + "# Create a scatter plot\n", + "p <- ggplot(data = new_pumpkins, aes(x = Price, y = Month))\n", + "p + geom_point()" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Ml7SDCLQcPvE" + }, + "source": [ + "Is this a useful plot 🤷? Does anything about it surprise you?\n", + "\n", + "It's not particularly useful as all it does is display in your data as a spread of points in a given month.\n", + "
" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "jMakvJZIcVkh" + }, + "source": [ + "### **How do we make it useful?**\n", + "\n", + "To get charts to display useful data, you usually need to group the data somehow. For instance in our case, finding the average price of pumpkins for each month would provide more insights to the underlying patterns in our data. This leads us to one more **dplyr** flyby:\n", + "\n", + "#### `dplyr::group_by() %>% summarize()`\n", + "\n", + "Grouped aggregation in R can be easily computed using\n", + "\n", + "`dplyr::group_by() %>% summarize()`\n", + "\n", + "- `dplyr::group_by()` changes the unit of analysis from the complete dataset to individual groups such as per month.\n", + "\n", + "- `dplyr::summarize()` creates a new data frame with one column for each grouping variable and one column for each of the summary statistics that you have specified.\n", + "\n", + "For example, we can use the `dplyr::group_by() %>% summarize()` to group the pumpkins into groups based on the **Month** columns and then find the **mean price** for each month." + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6kVSUa2Bcilf" + }, + "source": [ + "# Find the average price of pumpkins per month\n", + "new_pumpkins %>%\n", + " group_by(Month) %>% \n", + " summarise(mean_price = mean(Price))" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Kds48GUBcj3W" + }, + "source": [ + "Succinct!✨\n", + "\n", + "Categorical features such as months are better represented using a bar plot 📊. The layers responsible for bar charts are `geom_bar()` and `geom_col()`. Consult `?geom_bar` to find out more.\n", + "\n", + "Let's whip up one!" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VNbU1S3BcrxO" + }, + "source": [ + "# Find the average price of pumpkins per month then plot a bar chart\n", + "new_pumpkins %>%\n", + " group_by(Month) %>% \n", + " summarise(mean_price = mean(Price)) %>% \n", + " ggplot(aes(x = Month, y = mean_price)) +\n", + " geom_col(fill = \"midnightblue\", alpha = 0.7) +\n", + " ylab(\"Pumpkin Price\")" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zDm0VOzzcuzR" + }, + "source": [ + "🤩🤩This is a more useful data visualization! It seems to indicate that the highest price for pumpkins occurs in September and October. Does that meet your expectation? Why or why not?\n", + "\n", + "Congratulations on finishing the second lesson 👏! You did prepared your data for model building, then uncovered more insights using visualizations!" + ] + } + ] +} \ No newline at end of file diff --git a/2-Regression/2-Data/solution/lesson_2.Rmd b/2-Regression/2-Data/solution/lesson_2.Rmd new file mode 100644 index 00000000..7f72b1a8 --- /dev/null +++ b/2-Regression/2-Data/solution/lesson_2.Rmd @@ -0,0 +1,345 @@ +--- +title: 'Build a regression model: prepare and visualize data' +output: + html_document: + df_print: paged + theme: flatly + highlight: breezedark + toc: yes + toc_float: yes + code_download: yes +--- + +## **Linear Regression for Pumpkins - Lesson 2** + +#### Introduction + +Now that you are set up with the tools you need to start tackling machine learning model building with Tidymodels and the Tidyverse, you are ready to start asking questions of your data. As you work with data and apply ML solutions, it's very important to understand how to ask the right question to properly unlock the potentials of your dataset. + +In this lesson, you will learn: + +- How to prepare your data for model-building. + +- How to use `ggplot2` for data visualization. + +The question you need answered will determine what type of ML algorithms you will leverage. And the quality of the answer you get back will be heavily dependent on the nature of your data. + +Let's see this by working through a practical exercise. + +![Artwork by \@allison_horst](../images/unruly_data.jpg){width="700"} + +## 1. Importing pumpkins data and summoning the Tidyverse + +We'll require the following packages to slice and dice this lesson: + +- `tidyverse`: The [tidyverse](https://www.tidyverse.org/) is a [collection of R packages](https://www.tidyverse.org/packages) designed to makes data science faster, easier and more fun! + +You can have them installed as: + +`install.packages(c("tidyverse"))` + +The script below checks whether you have the packages required to complete this module and installs them for you in case they are missing. + +```{r, message=F, warning=F} +if (!require("pacman")) install.packages("pacman") +pacman::p_load(tidyverse) +``` + +Now, let's fire up some packages and load the [data](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) provided for this lesson! + +```{r load_tidy_verse_models, message=F, warning=F} +# Load the core Tidyverse packages +library(tidyverse) + +# Import the pumpkins data +pumpkins <- read_csv(file = "https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/2-Regression/data/US-pumpkins.csv") + + +# Get a glimpse and dimensions of the data +glimpse(pumpkins) + + +# Print the first 50 rows of the data set +pumpkins %>% + slice_head(n =50) + +``` + +A quick `glimpse()` immediately shows that there are blanks and a mix of strings (`chr`) and numeric data (`dbl`). The `Date` is of type character and there's also a strange column called `Package` where the data is a mix between `sacks`, `bins` and other values. The data, in fact, is a bit of a mess 😤. + +In fact, it is not very common to be gifted a dataset that is completely ready to use to create a ML model out of the box. But worry not, in this lesson, you will learn how to prepare a raw dataset using standard R libraries 🧑‍🔧. You will also learn various techniques to visualize the data.📈📊 + + + +> A refresher: The pipe operator (`%>%`) performs operations in logical sequence by passing an object forward into a function or call expression. You can think of the pipe operator as saying "and then" in your code. + + +## 2. Check for missing data + +One of the most common issues data scientists need to deal with is incomplete or missing data. R represents missing, or unknown values, with special sentinel value: `NA` (Not Available). + +So how would we know that the data frame contains missing values? + +- One straight forward way would be to use the base R function `anyNA` which returns the logical objects `TRUE` or `FALSE` + +```{r anyNA, message=F, warning=F} +pumpkins %>% + anyNA() +``` + +Great, there seems to be some missing data! That's a good place to start. + +- Another way would be to use the function `is.na()` that indicates which individual column elements are missing with a logical `TRUE`. + +```{r is_na, message=F, warning=F} +pumpkins %>% + is.na() %>% + head(n = 7) +``` + +Okay, got the job done but with a large data frame such as this, it would be inefficient and practically impossible to review all of the rows and columns individually😴. + +- A more intuitive way would be to calculate the sum of the missing values for each column: + +```{r colSum_NA, message=F, warning=F} +pumpkins %>% + is.na() %>% + colSums() +``` + +Much better! There is missing data, but maybe it won't matter for the task at hand. Let's see what further analysis brings forth. + +> Along with the awesome sets of packages and functions, R has a very good documentation. For instance, use `help(colSums)` or `?colSums` to find out more about the function. + +## 3. Dplyr: A Grammar of Data Manipulation + +![Artwork by \@allison_horst](../images/dplyr_wrangling.png){width="569"} + +[`dplyr`](https://dplyr.tidyverse.org/), a package in the Tidyverse, is a grammar of data manipulation that provides a consistent set of verbs that help you solve the most common data manipulation challenges. In this section, we'll explore some of dplyr's verbs! + +#### dplyr::select() + +`select()` is a function in the package `dplyr` which helps you pick columns to keep or exclude. + +To make your data frame easier to work with, drop several of its columns, using `select()`, keeping only the columns you need. + +For instance, in this exercise, our analysis will involve the columns `Package`, `Low Price`, `High Price` and `Date`. Let's select these columns. + +```{r select, message=F, warning=F} +# Select desired columns +pumpkins <- pumpkins %>% + select(Package, `Low Price`, `High Price`, Date) + + +# Print data set +pumpkins %>% + slice_head(n = 5) +``` + +#### dplyr::mutate() + +`mutate()` is a function in the package `dplyr` which helps you create or modify columns, while keeping the existing columns. + +The general structure of mutate is: + +`data %>% mutate(new_column_name = what_it_contains)` + +Let's take `mutate` out for a spin using the `Date` column by doing the following operations: + +1. Convert the dates (currently of type character) to a month format (these are US dates, so the format is `MM/DD/YYYY`). + +2. Extract the month from the dates to a new column. + +In R, the package [lubridate](https://lubridate.tidyverse.org/) makes it easier to work with Date-time data. So, let's use `dplyr::mutate()`, `lubridate::mdy()`, `lubridate::month()` and see how to achieve the above objectives. We can drop the Date column since we won't be needing it again in subsequent operations. + +```{r mut_date, message=F, warning=F} +# Load lubridate +library(lubridate) + +pumpkins <- pumpkins %>% + # Convert the Date column to a date object + mutate(Date = mdy(Date)) %>% + # Extract month from Date + mutate(Month = month(Date)) %>% + # Drop Date column + select(-Date) + +# View the first few rows +pumpkins %>% + slice_head(n = 7) +``` + +Woohoo! 🤩 + +Next, let's create a new column `Price`, which represents the average price of a pumpkin. Now, let's take the average of the `Low Price` and `High Price` columns to populate the new Price column. + +```{r price, message=F, warning=F} +# Create a new column Price +pumpkins <- pumpkins %>% + mutate(Price = (`Low Price` + `High Price`)/2) + +# View the first few rows of the data +pumpkins %>% + slice_head(n = 5) +``` + +Yeees!💪 + +"But wait!", you'll say after skimming through the whole data set with `View(pumpkins)`, "There's something odd here!"🤔 + +If you look at the `Package` column, pumpkins are sold in many different configurations. Some are sold in `1 1/9 bushel` measures, and some in `1/2 bushel` measures, some per pumpkin, some per pound, and some in big boxes with varying widths. + +Let's verify this: + +```{r Package, message=F, warning=F} +# Verify the distinct observations in Package column +pumpkins %>% + distinct(Package) + +``` + +Amazing!👏 + +Pumpkins seem to be very hard to weigh consistently, so let's filter them by selecting only pumpkins with the string *bushel* in the `Package` column and put this in a new data frame `new_pumpkins`. + +#### dplyr::filter() and stringr::str_detect() + +[`dplyr::filter()`](https://dplyr.tidyverse.org/reference/filter.html): creates a subset of the data only containing **rows** that satisfy your conditions, in this case, pumpkins with the string *bushel* in the `Package` column. + +[stringr::str_detect()](https://stringr.tidyverse.org/reference/str_detect.html): detects the presence or absence of a pattern in a string. + +The [`stringr`](https://github.com/tidyverse/stringr) package provides simple functions for common string operations. + +```{r filter, message=F, warning=F} +# Retain only pumpkins with "bushel" +new_pumpkins <- pumpkins %>% + filter(str_detect(Package, "bushel")) + +# Get the dimensions of the new data +dim(new_pumpkins) + +# View a few rows of the new data +new_pumpkins %>% + slice_head(n = 5) +``` + +You can see that we have narrowed down to 415 or so rows of data containing pumpkins by the bushel.🤩 + +#### dplyr::case_when() + +**But wait! There's one more thing to do** + +Did you notice that the bushel amount varies per row? You need to normalize the pricing so that you show the pricing per bushel, not per 1 1/9 or 1/2 bushel. Time to do some math to standardize it. + +We'll use the function [`case_when()`](https://dplyr.tidyverse.org/reference/case_when.html) to *mutate* the Price column depending on some conditions. `case_when` allows you to vectorise multiple `if_else()`statements. + +```{r normalize_price, message=F, warning=F} +# Convert the price if the Package contains fractional bushel values +new_pumpkins <- new_pumpkins %>% + mutate(Price = case_when( + str_detect(Package, "1 1/9") ~ Price/(1 + 1/9), + str_detect(Package, "1/2") ~ Price/(1/2), + TRUE ~ Price)) + +# View the first few rows of the data +new_pumpkins %>% + slice_head(n = 30) +``` + +Now, we can analyze the pricing per unit based on their bushel measurement. All this study of bushels of pumpkins, however, goes to show how very `important` it is to `understand the nature of your data`! + +> ✅ According to [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), a bushel's weight depends on the type of produce, as it's a volume measurement. "A bushel of tomatoes, for example, is supposed to weigh 56 pounds... Leaves and greens take up more space with less weight, so a bushel of spinach is only 20 pounds." It's all pretty complicated! Let's not bother with making a bushel-to-pound conversion, and instead price by the bushel. All this study of bushels of pumpkins, however, goes to show how very important it is to understand the nature of your data! +> +> ✅ Did you notice that pumpkins sold by the half-bushel are very expensive? Can you figure out why? Hint: little pumpkins are way pricier than big ones, probably because there are so many more of them per bushel, given the unused space taken by one big hollow pie pumpkin. + +Now lastly, for the sheer sake of adventure 💁‍♀️, let's also move the Month column to the first position i.e `before` column `Package`. + +`dplyr::relocate()` is used to change column positions. + +```{r new_pumpkins, message=F, warning=F} +# Create a new data frame new_pumpkins +new_pumpkins <- new_pumpkins %>% + relocate(Month, .before = Package) + +new_pumpkins %>% + slice_head(n = 7) + +``` + +Good job!👌 You now have a clean, tidy dataset on which you can build your new regression model! + +## 4. Data visualization with ggplot2 + +![Infographic by Dasani Madipalli](../images/data-visualization.png){width="600"} + +There is a *wise* saying that goes like this: + +> "The simple graph has brought more information to the data analyst's mind than any other device." --- John Tukey + +Part of the data scientist's role is to demonstrate the quality and nature of the data they are working with. To do this, they often create interesting visualizations, or plots, graphs, and charts, showing different aspects of data. In this way, they are able to visually show relationships and gaps that are otherwise hard to uncover. + +Visualizations can also help determine the machine learning technique most appropriate for the data. A scatterplot that seems to follow a line, for example, indicates that the data is a good candidate for a linear regression exercise. + +R offers a number of several systems for making graphs, but [`ggplot2`](https://ggplot2.tidyverse.org/index.html) is one of the most elegant and most versatile. `ggplot2` allows you to compose graphs by **combining independent components**. + +Let's start with a simple scatter plot for the Price and Month columns. + +So in this case, we'll start with [`ggplot()`](https://ggplot2.tidyverse.org/reference/ggplot.html), supply a dataset and aesthetic mapping (with [`aes()`](https://ggplot2.tidyverse.org/reference/aes.html)) then add a layers (like [`geom_point()`](https://ggplot2.tidyverse.org/reference/geom_point.html)) for scatter plots. + +```{r scatter_plt, message=F, warning=F} +# Set a theme for the plots +theme_set(theme_light()) + +# Create a scatter plot +p <- ggplot(data = new_pumpkins, aes(x = Price, y = Month)) +p + geom_point() +``` + +Is this a useful plot 🤷? Does anything about it surprise you? + +It's not particularly useful as all it does is display in your data as a spread of points in a given month. + +### **How do we make it useful?** + +To get charts to display useful data, you usually need to group the data somehow. For instance in our case, finding the average price of pumpkins for each month would provide more insights to the underlying patterns in our data. This leads us to one more **dplyr** flyby: + +#### `dplyr::group_by() %>% summarize()` + +Grouped aggregation in R can be easily computed using + +`dplyr::group_by() %>% summarize()` + +- `dplyr::group_by()` changes the unit of analysis from the complete dataset to individual groups such as per month. + +- `dplyr::summarize()` creates a new data frame with one column for each grouping variable and one column for each of the summary statistics that you have specified. + +For example, we can use the `dplyr::group_by() %>% summarize()` to group the pumpkins into groups based on the **Month** columns and then find the **mean price** for each month. + +```{r grp_sumry, message=F, warning=F} +# Find the average price of pumpkins per month +new_pumpkins %>% + group_by(Month) %>% + summarise(mean_price = mean(Price)) +``` + +Succinct!✨ + +Categorical features such as months are better represented using a bar plot 📊. The layers responsible for bar charts are `geom_bar()` and `geom_col()`. Consult + +`?geom_bar` to find out more. + +Let's whip up one! + +```{r bar_plt, message=F, warning=F} +# Find the average price of pumpkins per month then plot a bar chart +new_pumpkins %>% + group_by(Month) %>% + summarise(mean_price = mean(Price)) %>% + ggplot(aes(x = Month, y = mean_price)) + + geom_col(fill = "midnightblue", alpha = 0.7) + + ylab("Pumpkin Price") +``` + +🤩🤩This is a more useful data visualization! It seems to indicate that the highest price for pumpkins occurs in September and October. Does that meet your expectation? Why or why not? + +Congratulations on finishing the second lesson 👏! You did prepared your data for model building, then uncovered more insights using visualizations!\ From d3be7249cfec05fad7bacf23add1df43634d9c3c Mon Sep 17 00:00:00 2001 From: AidarSource <34319725+AidarSource@users.noreply.github.com> Date: Fri, 23 Jul 2021 15:44:51 +0600 Subject: [PATCH 149/228] fix broken site link --- 3-Web-App/1-Web-App/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3-Web-App/1-Web-App/README.md b/3-Web-App/1-Web-App/README.md index 7c91acb5..f8db7afc 100644 --- a/3-Web-App/1-Web-App/README.md +++ b/3-Web-App/1-Web-App/README.md @@ -1,6 +1,6 @@ # Build a Web App to use a ML Model -In this lesson, you will train an ML model on a data set that's out of this world: _UFO sightings over the past century_, sourced from [NUFORC's database](https://www.nuforc.org). +In this lesson, you will train an ML model on a data set that's out of this world: _UFO sightings over the past century_, sourced from NUFORC's database. You will learn: From f73b84f84a0844d6c02d48250c495da325284af8 Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Fri, 23 Jul 2021 16:29:48 +0200 Subject: [PATCH 150/228] Italian Translation - Chapter 4 complete --- .../1-Introduction/translations/README.it.md | 297 ++++++++++++++++ .../translations/assignment.it.md | 11 + .../2-Classifiers-1/translations/README.it.md | 241 +++++++++++++ .../translations/assignment.it.md | 10 + .../3-Classifiers-2/translations/README.it.md | 235 ++++++++++++ .../translations/assignment.it.md | 11 + .../4-Applied/translations/README.it.md | 336 ++++++++++++++++++ .../4-Applied/translations/assignment.it.md | 11 + 4-Classification/translations/README.it.md | 26 ++ 9 files changed, 1178 insertions(+) create mode 100644 4-Classification/1-Introduction/translations/README.it.md create mode 100644 4-Classification/1-Introduction/translations/assignment.it.md create mode 100644 4-Classification/2-Classifiers-1/translations/README.it.md create mode 100644 4-Classification/2-Classifiers-1/translations/assignment.it.md create mode 100644 4-Classification/3-Classifiers-2/translations/README.it.md create mode 100644 4-Classification/3-Classifiers-2/translations/assignment.it.md create mode 100644 4-Classification/4-Applied/translations/README.it.md create mode 100644 4-Classification/4-Applied/translations/assignment.it.md create mode 100644 4-Classification/translations/README.it.md diff --git a/4-Classification/1-Introduction/translations/README.it.md b/4-Classification/1-Introduction/translations/README.it.md new file mode 100644 index 00000000..fabfec5e --- /dev/null +++ b/4-Classification/1-Introduction/translations/README.it.md @@ -0,0 +1,297 @@ +# Introduzione alla classificazione + +In queste quattro lezioni si esplorerà un focus fondamentale del machine learning classico: _la classificazione_. Verrà analizzato l'utilizzo di vari algoritmi di classificazione con un insieme di dati su tutte le brillanti cucine dell'Asia e dell'India. Si spera siate affamati! + +![solo un pizzico!](../images/pinch.png) + +> In queste lezioni di celebrano le cucine panasiatiche! Immagine di [Jen Looper](https://twitter.com/jenlooper) + +La classificazione è una forma di [apprendimento supervisionato](https://it.wikipedia.org/wiki/Apprendimento_supervisionato) che ha molto in comune con le tecniche di regressione. Se machine learning riguarda la previsione di valori o nomi di cose utilizzando insiemi di dati, la classificazione generalmente rientra in due gruppi: _classificazione binaria_ e _classificazione multiclasse_. + +[![Introduzione allaclassificazione](https://img.youtube.com/vi/eg8DJYwdMyg/0.jpg)](https://youtu.be/eg8DJYwdMyg "Introduzione alla classificazione") + +> 🎥 Fare clic sull'immagine sopra per un video: John Guttag del MIT introduce la classificazione + +Ricordare: + +- La **regressione lineare** ha aiutato a prevedere le relazioni tra le variabili e a fare previsioni accurate su dove un nuovo punto dati si sarebbe posizionato in relazione a quella linea. Quindi, si potrebbe prevedere _quale prezzo avrebbe una zucca a settembre rispetto a dicembre_, ad esempio. +- La **regressione logistica** ha aiutato a scoprire le "categorie binarie": a questo prezzo, _questa zucca è arancione o non arancione_? + +La classificazione utilizza vari algoritmi per determinare altri modi per definire l'etichetta o la classe di un punto dati. Si lavorerà con questi dati di cucina per vedere se, osservando un gruppo di ingredienti, è possibile determinarne la cucina di origine. + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/19/) + +### Introduzione + +La classificazione è una delle attività fondamentali del ricercatore di machine learning e data scientist. Dalla classificazione basica di un valore binario ("questa email è spam o no?"), alla complessa classificazione e segmentazione di immagini utilizzando la visione artificiale, è sempre utile essere in grado di ordinare i dati in classi e porre domande su di essi. + +Per definire il processo in modo più scientifico, il metodo di classificazione crea un modello predittivo che consente di mappare la relazione tra le variabili di input e le variabili di output. + +![classificazione binaria vs. multiclasse](../images/binary-multiclass.png) + +> Problemi binari e multiclasse per la gestione di algoritmi di classificazione. Infografica di [Jen Looper](https://twitter.com/jenlooper) + +Prima di iniziare il processo di pulizia dei dati, visualizzazione e preparazione per le attività di machine learning, si apprenderà qualcosa circa i vari modi in cui machine learning può essere sfruttato per classificare i dati. + +Derivata dalla [statistica](https://it.wikipedia.org/wiki/Classificazione_statistica), la classificazione che utilizza machine learning classico utilizza caratteristiche come l'`essere fumatore`, il `peso` e l'`età` per determinare _la probabilità di sviluppare la malattia X._ Essendo una tecnica di apprendimento supervisionata simile agli esercizi di regressione eseguiti in precedenza, i dati vengono etichettati e gli algoritmi ML utilizzano tali etichette per classificare e prevedere le classi (o "caratteristiche") di un insieme di dati e assegnarle a un gruppo o risultato. + +✅ Si prenda un momento per immaginare un insieme di dati sulle cucine. A cosa potrebbe rispondere un modello multiclasse? A cosa potrebbe rispondere un modello binario? Se si volesse determinare se una determinata cucina potrebbe utilizzare il fieno greco? Se si volesse vedere se, regalando una busta della spesa piena di anice stellato, carciofi, cavolfiori e rafano, si possa creare un piatto tipico indiano? + +[![Cesti misteriosi pazzeschi](https://img.youtube.com/vi/GuTeDbaNoEU/0.jpg)](https://youtu.be/GuTeDbaNoEU " Cestini misteriosi pazzeschi") + +> 🎥 Fare clic sull'immagine sopra per un video. L'intera premessa dello spettacolo 'Chopped' è il 'cesto misterioso' dove gli chef devono preparare un piatto con una scelta casuale di ingredienti. Sicuramente un modello ML avrebbe aiutato! + +## Ciao 'classificatore' + +La domanda che si vuole porre a questo insieme di dati sulla cucina è in realtà una **domanda multiclasse**, poiché ci sono diverse potenziali cucine nazionali con cui lavorare. Dato un lotto di ingredienti, in quale di queste molte classi si identificheranno i dati? + +Scikit-learn offre diversi algoritmi da utilizzare per classificare i dati, a seconda del tipo di problema che si desidera risolvere. Nelle prossime due lezioni si impareranno a conoscere molti di questi algoritmi. + +## Esercizio: pulire e bilanciare i dati + +Il primo compito, prima di iniziare questo progetto, sarà pulire e **bilanciare** i dati per ottenere risultati migliori. Si inizia con il file vuoto _notebook.ipynb_ nella radice di questa cartella. + +La prima cosa da installare è [imblearn](https://imbalanced-learn.org/stable/). Questo è un pacchetto di apprendimento di Scikit che consentirà di bilanciare meglio i dati (si imparerà di più su questa attività tra un minuto). + +1. Per installare `imblearn`, eseguire `pip install`, in questo modo: + + ```python + pip install imblearn + ``` + +1. Importare i pacchetti necessari per caricare i dati e visualizzarli, importare anche `SMOTE` da `imblearn`. + + ```python + import pandas as pd + import matplotlib.pyplot as plt + import matplotlib as mpl + import numpy as np + from imblearn.over_sampling import SMOTE + ``` + + Ora si è pronti per la successiva importazione dei dati. + +1. Il prossimo compito sarà quello di importare i dati: + + ```python + df = pd.read_csv('../data/cuisines.csv') + ``` + + Usando `read_csv()` si leggerà il contenuto del file csv _cusines.csv_ e lo posizionerà nella variabile `df`. + +1. Controllare la forma dei dati: + + ```python + df.head() + ``` + + Le prime cinque righe hanno questo aspetto: + + ```output + | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | + | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | + | 0 | 65 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 1 | 66 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 2 | 67 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 3 | 68 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 4 | 69 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + ``` + +1. Si possono ottienere informazioni su questi dati chiamando `info()`: + + ```python + df.info() + ``` + + Il risultato assomiglia a: + + ```output + + RangeIndex: 2448 entries, 0 to 2447 + Columns: 385 entries, Unnamed: 0 to zucchini + dtypes: int64(384), object(1) + memory usage: 7.2+ MB + ``` + +## Esercizio - conoscere le cucine + +Ora il lavoro inizia a diventare più interessante. Si scoprirà la distribuzione dei dati, per cucina + +1. Tracciare i dati come barre chiamando `barh()`: + + ```python + df.cuisine.value_counts().plot.barh() + ``` + + ![distribuzione dati cuisine](../images/cuisine-dist.png) + + Esiste un numero finito di cucine, ma la distribuzione dei dati non è uniforme. Si può sistemare! Prima di farlo, occorre esplorare un po' di più. + +1. Si deve scoprire quanti dati sono disponibili per cucina e stamparli: + + ```python + thai_df = df[(df.cuisine == "thai")] + japanese_df = df[(df.cuisine == "japanese")] + chinese_df = df[(df.cuisine == "chinese")] + indian_df = df[(df.cuisine == "indian")] + korean_df = df[(df.cuisine == "korean")] + + print(f'thai df: {thai_df.shape}') + print(f'japanese df: {japanese_df.shape}') + print(f'chinese df: {chinese_df.shape}') + print(f'indian df: {indian_df.shape}') + print(f'korean df: {korean_df.shape}') + ``` + + il risultato si presenta così: + + ```output + thai df: (289, 385) + japanese df: (320, 385) + chinese df: (442, 385) + indian df: (598, 385) + korean df: (799, 385) + ``` + +## Alla scoperta degli ingredienti + +Ora si possono approfondire i dati e scoprire quali sono gli ingredienti tipici per cucina. Si dovrebbero ripulire i dati ricorrenti che creano confusione tra le cucine, quindi si affronterà questo problema. + +1. Creare una funzione `create_ingredient()` in Python per creare un dataframe ingredient Questa funzione inizierà eliminando una colonna non utile e ordinando gli ingredienti in base al loro conteggio: + + ```python + def create_ingredient_df(df): + ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value') + ingredient_df = ingredient_df[(ingredient_df.T != 0).any()] + ingredient_df = ingredient_df.sort_values(by='value', ascending=False + inplace=False) + return ingredient_df + ``` + + Ora si può usare questa funzione per farsi un'idea dei primi dieci ingredienti più popolari per cucina. + +1. Chiamare `create_ingredient_df()` e tracciare il grafico chiamando `barh()`: + + ```python + thai_ingredient_df = create_ingredient_df(thai_df) + thai_ingredient_df.head(10).plot.barh() + ``` + + ![thai](../images/thai.png) + +1. Fare lo stesso per i dati giapponesi: + + ```python + japanese_ingredient_df = create_ingredient_df(japanese_df) + japanese_ingredient_df.head(10).plot.barh() + ``` + + ![Giapponese](../images/japanese.png) + +1. Ora per gli ingredienti cinesi: + + ```python + chinese_ingredient_df = create_ingredient_df(chinese_df) + chinese_ingredient_df.head(10).plot.barh() + ``` + + ![cinese](../images/chinese.png) + +1. Tracciare gli ingredienti indiani: + + ```python + indian_ingredient_df = create_ingredient_df(indian_df) + indian_ingredient_df.head(10).plot.barh() + ``` + + ![indiano](../images/indian.png) + +1. Infine, tracciare gli ingredienti coreani: + + ```python + korean_ingredient_df = create_ingredient_df(korean_df) + korean_ingredient_df.head(10).plot.barh() + ``` + + ![Coreano](../images/korean.png) + +1. Ora, eliminare gli ingredienti più comuni che creano confusione tra le diverse cucine, chiamando `drop()`: + + Tutti amano il riso, l'aglio e lo zenzero! + + ```python + feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1) + labels_df = df.cuisine #.unique() + feature_df.head() + ``` + +## Bilanciare l'insieme di dati + +Ora che i dati sono puliti, si usa [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "Tecnica di sovracampionamento della minoranza sintetica" - per bilanciarlo. + +1. Chiamare `fit_resample()`, questa strategia genera nuovi campioni per interpolazione. + + ```python + oversample = SMOTE() + transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df) + ``` + + Bilanciando i dati, si otterranno risultati migliori quando si classificano. Si pensi a una classificazione binaria. Se la maggior parte dei dati è una classe, un modello ML prevederà quella classe più frequentemente, solo perché ci sono più dati per essa. Il bilanciamento dei dati prende tutti i dati distorti e aiuta a rimuovere questo squilibrio. + +1. Ora si può controllare il numero di etichette per ingrediente: + + ```python + print(f'new label count: {transformed_label_df.value_counts()}') + print(f'old label count: {df.cuisine.value_counts()}') + ``` + + il risultato si presenta così: + + ```output + new label count: korean 799 + chinese 799 + indian 799 + japanese 799 + thai 799 + Name: cuisine, dtype: int64 + old label count: korean 799 + indian 598 + chinese 442 + japanese 320 + thai 289 + Name: cuisine, dtype: int64 + ``` + + I dati sono belli e puliti, equilibrati e molto deliziosi! + +1. L'ultimo passaggio consiste nel salvare i dati bilanciati, incluse etichette e caratteristiche, in un nuovo dataframe che può essere esportato in un file: + + ```python + transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer') + ``` + +1. Si può dare un'altra occhiata ai dati usando `transform_df.head()` e `transform_df.info()`. Salvare una copia di questi dati per utilizzarli nelle lezioni future: + + ```python + transformed_df.head() + transformed_df.info() + transformed_df.to_csv("../data/cleaned_cuisine.csv") + ``` + + Questo nuovo CSV può ora essere trovato nella cartella data in radice. + +--- + +## 🚀 Sfida + +Questo programma di studi contiene diversi insiemi di dati interessanti. Esaminare le cartelle `data` e vedere se contiene insiemi di dati che sarebbero appropriati per la classificazione binaria o multiclasse. Quali domande si farebbero a questo insieme di dati? + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/20/) + +## Revisione e Auto Apprendimento + +Esplorare l'API di SMOTE. Per quali casi d'uso è meglio usarla? Quali problemi risolve? + +## Compito + +[Esplorare i metodi di classificazione](assignment.it.md) diff --git a/4-Classification/1-Introduction/translations/assignment.it.md b/4-Classification/1-Introduction/translations/assignment.it.md new file mode 100644 index 00000000..12834017 --- /dev/null +++ b/4-Classification/1-Introduction/translations/assignment.it.md @@ -0,0 +1,11 @@ +# Esplorare i metodi di classificazione + +## Istruzioni + +Nella [documentazione](https://scikit-learn.org/stable/supervised_learning.html) di Scikit-learn si troverà un ampio elenco di modi per classificare i dati. Fare una piccola caccia al tesoro in questi documenti: l'obiettivo è cercare metodi di classificazione e abbinare un insieme di dati in questo programma di studi, una domanda che si può porre e una tecnica di classificazione. Creare un foglio di calcolo o una tabella in un file .doc e spiegare come funzionerebbe l'insieme di dati con l'algoritmo di classificazione. + +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| | viene presentato un documento che riporta una panoramica di 5 algoritmi insieme a una tecnica di classificazione. La panoramica è ben spiegata e dettagliata. | viene presentato un documento che riporta una panoramica di 3 algoritmi insieme a una tecnica di classificazione. La panoramica è ben spiegata e dettagliata. | viene presentato un documento che riporta una panoramica di meno di tre algoritmi insieme a una tecnica di classificazione e la panoramica non è né ben spiegata né dettagliata. | diff --git a/4-Classification/2-Classifiers-1/translations/README.it.md b/4-Classification/2-Classifiers-1/translations/README.it.md new file mode 100644 index 00000000..674a59c2 --- /dev/null +++ b/4-Classification/2-Classifiers-1/translations/README.it.md @@ -0,0 +1,241 @@ +# Classificatori di cucina 1 + +In questa lezione, si utilizzerà l'insieme di dati salvati dall'ultima lezione, pieno di dati equilibrati e puliti relativi alle cucine. + +Si utilizzerà questo insieme di dati con una varietà di classificatori per _prevedere una determinata cucina nazionale in base a un gruppo di ingredienti_. Mentre si fa questo, si imparerà di più su alcuni dei modi in cui gli algoritmi possono essere sfruttati per le attività di classificazione. + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/21/) +# Preparazione + +Supponendo che la [Lezione 1](../1-Introduction/README.md) sia stata completata, assicurarsi che _esista_ un file clean_cuisines.csv nella cartella in radice `/data` per queste quattro lezioni. + +## Esercizio - prevedere una cucina nazionale + +1. Lavorando con il _notebook.ipynb_ di questa lezione nella cartella radice, importare quel file insieme alla libreria Pandas: + + ```python + import pandas as pd + cuisines_df = pd.read_csv("../../data/cleaned_cuisine.csv") + cuisines_df.head() + ``` + + I dati si presentano così: + + ```output + | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | + | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | + | 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + ``` + +1. Ora importare molte altre librerie: + + ```python + from sklearn.linear_model import LogisticRegression + from sklearn.model_selection import train_test_split, cross_val_score + from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve + from sklearn.svm import SVC + import numpy as np + ``` + +1. Dividere le coordinate X e y in due dataframe per l'addestramento. `cuisine` può essere il dataframe delle etichette: + + ```python + cuisines_label_df = cuisines_df['cuisine'] + cuisines_label_df.head() + ``` + + Apparirà così + + ```output + 0 indian + 1 indian + 2 indian + 3 indian + 4 indian + Name: cuisine, dtype: object + ``` + +1. Scartare la colonna `Unnamed: 0` e la colonna `cuisine` , chiamando `drop()`. Salvare il resto dei dati come caratteristiche addestrabili: + + ```python + cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) + cuisines_feature_df.head() + ``` + + Le caratteristiche sono così: + + | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | + | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | --- | + | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + +Ora si è pronti per addestrare il modello! + +## Scegliere il classificatore + +Ora che i dati sono puliti e pronti per l'addestramento, si deve decidere quale algoritmo utilizzare per il lavoro. + +Scikit-learn raggruppa la classificazione in Supervised Learning, e in quella categoria si troveranno molti modi per classificare. [La varietà](https://scikit-learn.org/stable/supervised_learning.html) è piuttosto sconcertante a prima vista. I seguenti metodi includono tutti tecniche di classificazione: + +- Modelli Lineari +- Macchine a Vettori di Supporto +- Discesa stocastica del gradiente +- Nearest Neighbors +- Processi Gaussiani +- Alberi di Decisione +- Apprendimento ensemble (classificatore di voto) +- Algoritmi multiclasse e multioutput (classificazione multiclasse e multietichetta, classificazione multiclasse-multioutput) + +> Si possono anche usare [le reti neurali per classificare i dati](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), ma questo esula dall'ambito di questa lezione. + +### Con quale classificatore andare? + +Quale classificatore si dovrebbe scegliere? Spesso, scorrerne diversi e cercare un buon risultato è un modo per testare. Scikit-learn offre un [confronto fianco](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) a fianco su un insieme di dati creato, confrontando KNeighbors, SVC in due modi, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB e QuadraticDiscrinationAnalysis, mostrando i risultati visualizzati: + +![confronto di classificatori](../images/comparison.png) +> Grafici generati sulla documentazione di Scikit-learn + +> AutoML risolve questo problema in modo ordinato eseguendo questi confronti nel cloud, consentendo di scegliere l'algoritmo migliore per i propri dati. Si può provare [qui](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-15963-cxa) + +### Un approccio migliore + +Un modo migliore che indovinare a caso, tuttavia, è seguire le idee su questo [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-15963-cxa) scaricabile. Qui si scopre che, per questo problema multiclasse, si dispone di alcune scelte: + +![cheatsheet per problemi multiclasse](../images/cheatsheet.png) +> Una sezione dell'Algorithm Cheat Sheet di Microsoft, che descrive in dettaglio le opzioni di classificazione multiclasse + +✅ Scaricare questo cheat sheet, stamparlo e appenderlo alla parete! + +### Motivazione + +Si prova a ragionare attraverso diversi approcci dati i vincoli presenti: + +- **Le reti neurali sono troppo pesanti**. Dato l'insieme di dati pulito, ma minimo, e il fatto che si sta eseguendo l'addestramento localmente tramite notebook, le reti neurali sono troppo pesanti per questo compito. +- **Nessun classificatore a due classi**. Non si usa un classificatore a due classi, quindi questo esclude uno contro tutti. +- L'**albero decisionale o la regressione logistica potrebbero funzionare**. Potrebbe funzionare un albero decisionale o una regressione logistica per dati multiclasse. +- **Gli alberi decisionali potenziati multiclasse risolvono un problema diverso**. L'albero decisionale potenziato multiclasse è più adatto per attività non parametriche, ad esempio attività progettate per costruire classifiche, quindi non è utile in questo caso. + +### Utilizzo di Scikit-learn + +Si userà Scikit-learn per analizzare i dati. Tuttavia, ci sono molti modi per utilizzare la regressione logistica in Scikit-learn. Dare un'occhiata ai [parametri da passare](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). + +Essenzialmente ci sono due importanti parametri `multi_class` e `solver`, che occorre specificare, quando si chiede a Scikit-learn di eseguire una regressione logistica. Il valore `multi_class` si applica un certo comportamento. Il valore del risolutore è quale algoritmo utilizzare. Non tutti i risolutori possono essere associati a tutti i valori `multi_class` . + +Secondo la documentazione, nel caso multiclasse, l'algoritmo di addestramento: + +- **Utilizza lo schema one-vs-rest (OvR)** - uno contro tutti, se l'opzione `multi_class` è impostata su `ovr` +- **Utilizza la perdita di entropia incrociata**, se l 'opzione `multi_class` è impostata su `multinomial`. (Attualmente l'opzione multinomiale è supportata solo dai solutori 'lbfgs', 'sag', 'saga' e 'newton-cg')." + +> 🎓 Lo 'schema' qui può essere 'ovr' (one-vs-rest) - uno contro tutti - o 'multinomiale'. Poiché la regressione logistica è realmente progettata per supportare la classificazione binaria, questi schemi consentono di gestire meglio le attività di classificazione multiclasse. [fonte](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) + +> 🎓 Il 'solver' è definito come "l'algoritmo da utilizzare nel problema di ottimizzazione". [fonte](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). + +Scikit-learn offre questa tabella per spiegare come i risolutori gestiscono le diverse sfide presentate da diversi tipi di strutture dati: + +![risolutori](../images/solvers.png) + +## Esercizio: dividere i dati + +Ci si può concentrare sulla regressione logistica per la prima prova di addestramento poiché di recente si è appreso di quest'ultima in una lezione precedente. +Dividere i dati in gruppi di addestramento e test chiamando `train_test_split()`: + +```python +X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) +``` + +## Esercizio: applicare la regressione logistica + +Poiché si sta utilizzando il caso multiclasse, si deve scegliere quale _schema_ utilizzare e quale _solutore_ impostare. Usare LogisticRegression con un'impostazione multiclasse e il solutore **liblinear** da addestrare. + +1. Creare una regressione logistica con multi_class impostato su `ovr` e il risolutore impostato su `liblinear`: + + ```python + lr = LogisticRegression(multi_class='ovr',solver='liblinear') + model = lr.fit(X_train, np.ravel(y_train)) + + accuracy = model.score(X_test, y_test) + print ("Accuracy is {}".format(accuracy)) + ``` + + ✅ Provare un risolutore diverso come `lbfgs`, che è spesso impostato come predefinito + + > Nota, usare la funzione [`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) di Pandas per appiattire i dati quando necessario. + + La precisione è buona oltre l'**80%**! + +1. Si può vedere questo modello in azione testando una riga di dati (#50): + + ```python + print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}') + print(f'cuisine: {y_test.iloc[50]}') + ``` + + Il risultato viene stampato: + + ```output + ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object') + cuisine: indian + ``` + + ✅ Provare un numero di riga diverso e controllare i risultati + +1. Scavando più a fondo, si può verificare l'accuratezza di questa previsione: + + ```python + test= X_test.iloc[50].values.reshape(-1, 1).T + proba = model.predict_proba(test) + classes = model.classes_ + resultdf = pd.DataFrame(data=proba, columns=classes) + + topPrediction = resultdf.T.sort_values(by=[0], ascending = [False]) + topPrediction.head() + ``` + + Il risultato è stampato: la cucina indiana è la sua ipotesi migliore, con buone probabilità: + + | | 0 | | | | | | | | | | | | | | | | | | | | | + | -------: | -------: | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | + | indiano | 0,715851 | | | | | | | | | | | | | | | | | | | | | + | cinese | 0.229475 | | | | | | | | | | | | | | | | | | | | | + | Giapponese | 0,029763 | | | | | | | | | | | | | | | | | | | | | + | Coreano | 0.017277 | | | | | | | | | | | | | | | | | | | | | + | thai | 0.007634 | | | | | | | | | | | | | | | | | | | | | + + ✅ Si è in grado di spiegare perché il modello è abbastanza sicuro che questa sia una cucina indiana? + +1. Ottenere maggiori dettagli stampando un rapporto di classificazione, come fatto nelle lezioni di regressione: + + ```python + y_pred = model.predict(X_test) + print(classification_report(y_test,y_pred)) + ``` + + | precisione | recall | punteggio f1 | supporto | | | | | | | | | | | | | | | | | | | + | ------------ | ------ | -------- | ------- | ---- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | + | cinese | 0,73 | 0,71 | 0,72 | 229 | | | | | | | | | | | | | | | | | | + | indiano | 0,91 | 0,93 | 0,92 | 254 | | | | | | | | | | | | | | | | | | + | Giapponese | 0.70 | 0,75 | 0,72 | 220 | | | | | | | | | | | | | | | | | | + | Coreano | 0,86 | 0,76 | 0,81 | 242 | | | | | | | | | | | | | | | | | | + | thai | 0,79 | 0,85 | 0.82 | 254 | | | | | | | | | | | | | | | | | | + | accuratezza | 0,80 | 1199 | | | | | | | | | | | | | | | | | | | | + | macro media | 0,80 | 0,80 | 0,80 | 1199 | | | | | | | | | | | | | | | | | | + | Media ponderata | 0,80 | 0,80 | 0,80 | 1199 | | | | | | | | | | | | | | | | | | + +## 🚀 Sfida + +In questa lezione, sono stati utilizzati dati puliti per creare un modello di apprendimento automatico in grado di prevedere una cucina nazionale basata su una serie di ingredienti. Si prenda del tempo per leggere le numerose opzioni fornite da Scikit-learn per classificare i dati. Approfondire il concetto di "risolutore" per capire cosa succede dietro le quinte. + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/22/) +## Revisione e Auto Apprendimento + +Approfondire un po' la matematica alla base della regressione logistica in [questa lezione](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) +## Compito + +[Studiare i risolutori](assignment.it.md) diff --git a/4-Classification/2-Classifiers-1/translations/assignment.it.md b/4-Classification/2-Classifiers-1/translations/assignment.it.md new file mode 100644 index 00000000..80d1c5e1 --- /dev/null +++ b/4-Classification/2-Classifiers-1/translations/assignment.it.md @@ -0,0 +1,10 @@ +# Studiare i risolutori +## Istruzioni + +In questa lezione si è imparato a conoscere i vari risolutori che associano algoritmi a un processo di machine learning per creare un modello accurato. Esaminare i risolutori elencati nella lezione e sceglierne due. Con parole proprie, confrontare questi due risolutori. Che tipo di problema affrontano? Come funzionano con varie strutture di dati? Perché se ne dovrebbe sceglierne uno piuttosto che un altro? + +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- | +| | Viene presentato un file .doc con due paragrafi, uno su ciascun risolutore, confrontandoli attentamente. | Un file .doc viene presentato con un solo paragrafo | Il compito è incompleto | diff --git a/4-Classification/3-Classifiers-2/translations/README.it.md b/4-Classification/3-Classifiers-2/translations/README.it.md new file mode 100644 index 00000000..4a3a431f --- /dev/null +++ b/4-Classification/3-Classifiers-2/translations/README.it.md @@ -0,0 +1,235 @@ +# Classificatori di cucina 2 + +In questa seconda lezione sulla classificazione, si esploreranno più modi per classificare i dati numerici. Si Impareranno anche le ramificazioni per la scelta di un classificatore rispetto all'altro. + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/23/) + +### Prerequisito + +Si parte dal presupposto che siano state completate le lezioni precedenti e si disponga di un insieme di dati pulito nella cartella `data` chiamato _clean_cuisine.csv_ nella radice di questa cartella di 4 lezioni. + +### Preparazione + +Il file _notebook.ipynb_ è stato caricato con l'insieme di dati pulito ed è stato diviso in dataframe di dati X e y, pronti per il processo di creazione del modello. + +## Una mappa di classificazione + +In precedenza, si sono apprese le varie opzioni a disposizione durante la classificazione dei dati utilizzando il cheat sheet di Microsoft. Scikit-learn offre un cheat sheet simile, ma più granulare che può aiutare ulteriormente a restringere i propri stimatori (un altro termine per i classificatori): + +![Mappa ML da Scikit-learn](../images/map.png) +> Suggerimento: [visitare questa mappa online](https://scikit-learn.org/stable/tutorial/machine_learning_map/) e fare clic lungo il percorso per leggere la documentazione. + +### Il piano + +Questa mappa è molto utile una volta che si ha una chiara comprensione dei propri dati, poiché si può "camminare" lungo i suoi percorsi verso una decisione: + +- Ci sono >50 campioni +- Si vuole pronosticare una categoria +- I dati sono etichettati +- Ci sono meno di 100K campioni +- ✨ Si può scegliere un SVC lineare +- Se non funziona, visto che ci sono dati numerici + - Si può provare un ✨ KNeighbors Classifier + - Se non funziona, si prova ✨ SVC e ✨ Classificatori di ensemble + +Questo è un percorso molto utile da seguire. + +## Esercizio: dividere i dati + +Seguendo questo percorso, si dovrebbe iniziare importando alcune librerie da utilizzare. + +1. Importare le librerie necessarie: + + ```python + from sklearn.neighbors import KNeighborsClassifier + from sklearn.linear_model import LogisticRegression + from sklearn.svm import SVC + from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier + from sklearn.model_selection import train_test_split, cross_val_score + from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve + import numpy as np + ``` + +1. Dividere i dati per allenamento e test: + + ```python + X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) + ``` + +## Classificatore lineare SVC + +Il clustering Support-Vector (SVC) è figlio della famiglia di tecniche ML Support-Vector (ulteriori informazioni su queste di seguito). In questo metodo, si può scegliere un "kernel" per decidere come raggruppare le etichette. Il parametro 'C' si riferisce alla 'regolarizzazione' che regola l'influenza dei parametri. Il kernel può essere uno dei [tanti](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); qui si imposta su 'lineare' per assicurarsi di sfruttare l'SVC lineare. Il valore predefinito di probabilità è 'false'; qui si imposta su 'true' per raccogliere stime di probabilità. Si imposta lo stato casuale su "0" per mescolare i dati per ottenere le probabilità. + +### Esercizio: applicare una SVC lineare + +Iniziare creando un array di classificatori. Si aggiungerà progressivamente a questo array durante il test. + +1. Iniziare con un SVC lineare: + + ```python + C = 10 + # Create different classifiers. + classifiers = { + 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0) + } + ``` + +2. Addestrare il modello utilizzando Linear SVC e stampare un rapporto: + + ```python + n_classifiers = len(classifiers) + + for index, (name, classifier) in enumerate(classifiers.items()): + classifier.fit(X_train, np.ravel(y_train)) + + y_pred = classifier.predict(X_test) + accuracy = accuracy_score(y_test, y_pred) + print("Accuracy (train) for %s: %0.1f%% " % (name, accuracy * 100)) + print(classification_report(y_test,y_pred)) + ``` + + Il risultato è abbastanza buono: + + ```output + Accuracy (train) for Linear SVC: 78.6% + precision recall f1-score support + + chinese 0.71 0.67 0.69 242 + indian 0.88 0.86 0.87 234 + japanese 0.79 0.74 0.76 254 + korean 0.85 0.81 0.83 242 + thai 0.71 0.86 0.78 227 + + accuracy 0.79 1199 + macro avg 0.79 0.79 0.79 1199 + weighted avg 0.79 0.79 0.79 1199 + ``` + +## Classificatore K-Neighbors + +K-Neighbors fa parte della famiglia dei metodi ML "neighbors" (vicini), che possono essere utilizzati sia per l'apprendimento supervisionato che non supervisionato. In questo metodo, viene creato un numero predefinito di punti e i dati vengono raccolti attorno a questi punti in modo tale da poter prevedere etichette generalizzate per i dati. + +### Esercizio: applicare il classificatore K-Neighbors + +Il classificatore precedente era buono e funzionava bene con i dati, ma forse si può ottenere una maggiore precisione. Provare un classificatore K-Neighbors. + +1. Aggiungere una riga all'array classificatore (aggiungere una virgola dopo l'elemento Linear SVC): + + ```python + 'KNN classifier': KNeighborsClassifier(C), + ``` + + Il risultato è un po' peggio: + + ```output + Accuracy (train) for KNN classifier: 73.8% + precision recall f1-score support + + chinese 0.64 0.67 0.66 242 + indian 0.86 0.78 0.82 234 + japanese 0.66 0.83 0.74 254 + korean 0.94 0.58 0.72 242 + thai 0.71 0.82 0.76 227 + + accuracy 0.74 1199 + macro avg 0.76 0.74 0.74 1199 + weighted avg 0.76 0.74 0.74 1199 + ``` + + ✅ Scoprire [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) + +## Classificatore Support Vector + +I classificatori Support-Vector fanno parte della famiglia di metodi ML [Support-Vector Machine](https://it.wikipedia.org/wiki/Macchine_a_vettori_di_supporto) utilizzati per le attività di classificazione e regressione. Le SVM "mappano esempi di addestramento in punti nello spazio" per massimizzare la distanza tra due categorie. I dati successivi vengono mappati in questo spazio in modo da poter prevedere la loro categoria. + +### Esercizio: applicare un classificatore di vettori di supporto + +Si prova a ottenere una precisione leggermente migliore con un classificatore di vettori di supporto. + +1. Aggiungere una virgola dopo l'elemento K-Neighbors, quindi aggiungere questa riga: + + ```python + 'SVC': SVC(), + ``` + + Il risultato è abbastanza buono! + + ```output + Accuracy (train) for SVC: 83.2% + precision recall f1-score support + + chinese 0.79 0.74 0.76 242 + indian 0.88 0.90 0.89 234 + japanese 0.87 0.81 0.84 254 + korean 0.91 0.82 0.86 242 + thai 0.74 0.90 0.81 227 + + accuracy 0.83 1199 + macro avg 0.84 0.83 0.83 1199 + weighted avg 0.84 0.83 0.83 1199 + ``` + + ✅ Scoprire i vettori di [supporto](https://scikit-learn.org/stable/modules/svm.html#svm) + +## Classificatori ensamble + +Si segue il percorso fino alla fine, anche se il test precedente è stato abbastanza buono. Si provano un po' di classificatori di ensemble, nello specifico Random Forest e AdaBoost: + +```python +'RFST': RandomForestClassifier(n_estimators=100), + 'ADA': AdaBoostClassifier(n_estimators=100) +``` + +Il risultato è molto buono, soprattutto per Random Forest: + +```output +Accuracy (train) for RFST: 84.5% + precision recall f1-score support + + chinese 0.80 0.77 0.78 242 + indian 0.89 0.92 0.90 234 + japanese 0.86 0.84 0.85 254 + korean 0.88 0.83 0.85 242 + thai 0.80 0.87 0.83 227 + + accuracy 0.84 1199 + macro avg 0.85 0.85 0.84 1199 +weighted avg 0.85 0.84 0.84 1199 + +Accuracy (train) for ADA: 72.4% + precision recall f1-score support + + chinese 0.64 0.49 0.56 242 + indian 0.91 0.83 0.87 234 + japanese 0.68 0.69 0.69 254 + korean 0.73 0.79 0.76 242 + thai 0.67 0.83 0.74 227 + + accuracy 0.72 1199 + macro avg 0.73 0.73 0.72 1199 +weighted avg 0.73 0.72 0.72 1199 +``` + +✅ Ulteriori informazioni sui [classificatori di ensemble](https://scikit-learn.org/stable/modules/ensemble.html) + +Questo metodo di Machine Learning "combina le previsioni di diversi stimatori di base" per migliorare la qualità del modello. In questo esempio, si è utilizzato Random Trees e AdaBoost. + +- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), un metodo di calcolo della media, costruisce una "foresta" di "alberi decisionali" infusi di casualità per evitare il sovradattamento. Il parametro n_estimators è impostato sul numero di alberi. + +- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) adatta un classificatore a un insieme di dati e quindi adatta le copie di quel classificatore allo stesso insieme di dati. Si concentra sui pesi degli elementi classificati in modo errato e regola l'adattamento per il successivo classificatore da correggere. + +--- + +## 🚀 Sfida + +Ognuna di queste tecniche ha un gran numero di parametri che si possono modificare. Ricercare i parametri predefiniti di ciascuno e pensare a cosa significherebbe modificare questi parametri per la qualità del modello. + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/24/) + +## Revisione e Auto Apprendimento + +C'è molto gergo in queste lezioni, quindi si prenda un minuto per rivedere [questo elenco](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-15963-cxa) di terminologia utile! + +## Compito + +[Giocore coi parametri](assignment.it.md) diff --git a/4-Classification/3-Classifiers-2/translations/assignment.it.md b/4-Classification/3-Classifiers-2/translations/assignment.it.md new file mode 100644 index 00000000..472cdb11 --- /dev/null +++ b/4-Classification/3-Classifiers-2/translations/assignment.it.md @@ -0,0 +1,11 @@ +# Giocore coi parametri + +## Istruzioni + +Ci sono molti parametri impostati in modalità predefinita quando si lavora con questi classificatori. Intellisense in VS Code può aiutare a scavare in loro. Adottare una delle tecniche di classificazione ML in questa lezione e riaddestrare i modelli modificando i vari valori dei parametri. Costruire un notebook spiegando perché alcune modifiche aiutano la qualità del modello mentre altre la degradano. La risposta sia dettagliata. + +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ----------------------------- | +| | Un notebook viene presentato con un classificatore completamente costruito e i suoi parametri ottimizzati e le modifiche spiegate nelle caselle di testo | Un quaderno è presentato parzialmente o spiegato male | Un notebook contiene errori o è difettoso | diff --git a/4-Classification/4-Applied/translations/README.it.md b/4-Classification/4-Applied/translations/README.it.md new file mode 100644 index 00000000..4512aaba --- /dev/null +++ b/4-Classification/4-Applied/translations/README.it.md @@ -0,0 +1,336 @@ +# Costruire un'App Web per Consigliare una Cucina + +In questa lezione si creerà un modello di classificazione utilizzando alcune delle tecniche apprese nelle lezioni precedenti e con il delizioso insieme di dati sulla cucina utilizzato in questa serie. Inoltre, si creerà una piccola app web per utilizzare un modello salvato, sfruttando il runtime web di Onnx. + +Uno degli usi pratici più utili dell'apprendimento automatico è la creazione di sistemi di raccomandazione e oggi si può fare il primo passo in quella direzione! + +[![Introduzione ai Sistemi di Raccomandazione](https://img.youtube.com/vi/giIXNoiqO_U/0.jpg)](https://youtu.be/giIXNoiqO_U "Introduzione ai Sistemi di Raccomandazione") + +> 🎥 Fare clic sull'immagine sopra per un video: Andrew Ng introduce la progettazione di un sistema di raccomandazione + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/25/) + +In questa lezione, si imparerà: + +- Come costruire un modello e salvarlo come modello Onnx +- Come usare Netron per ispezionare il modello +- Come utilizzare il modello in un'app web per l'inferenza + +## Costruire il modello + +La creazione di sistemi ML applicati è una parte importante dell'utilizzo di queste tecnologie per i sistemi aziendali. Si possono utilizzare i modelli all'interno delle proprie applicazioni web (e quindi utilizzarli in un contesto offline se necessario) utilizzando Onnx. + +In una [lezione precedente](../../../3-Web-App/1-Web-App/translations/README.it.md) si è costruito un modello di regressione sugli avvistamenti di UFO, è stato serializzato e lo si è utilizzato in un'app Flask. Sebbene questa architettura sia molto utile da conoscere, è un'app Python completa e i requisiti potrebbero includere l'uso di un'applicazione JavaScript. + +In questa lezione si può creare un sistema di inferenza di base utilizzando JavaScript. Prima, tuttavia, è necessario addestrare un modello e convertirlo per l'utilizzo con Onnx. + +## Esercizio - modello di classificazione di addestramento + +Innanzitutto, addestrare un modello di classificazione utilizzando l'insieme di dati pulito delle cucine precedentemente usato. + +1. Iniziare importando librerie utili: + + ```python + !pip install skl2onnx + import pandas as pd + ``` + + Serve '[skl2onnx](https://onnx.ai/sklearn-onnx/)' per poter convertire il modello di Scikit-learn in formato Onnx. + +1. Quindi si lavora con i dati nello stesso modo delle lezioni precedenti, leggendo un file CSV usando `read_csv()`: + + ```python + data = pd.read_csv('../data/cleaned_cuisine.csv') + data.head() + ``` + +1. Rimuovere le prime due colonne non necessarie e salvare i dati rimanenti come "X": + + ```python + X = data.iloc[:,2:] + X.head() + ``` + +1. Salvare le etichette come "y": + + ```python + y = data[['cuisine']] + y.head() + + ``` + +### Iniziare la routine di addestramento + +Verrà usata la libreria 'SVC' che ha una buona precisione. + +1. Importare le librerie appropriate da Scikit-learn: + + ```python + from sklearn.model_selection import train_test_split + from sklearn.svm import SVC + from sklearn.model_selection import cross_val_score + from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report + ``` + +1. Separare gli insiemi di allenamento e test: + + ```python + X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3) + ``` + +1. Costruire un modello di classificazione SVC come fatto nella lezione precedente: + + ```python + model = SVC(kernel='linear', C=10, probability=True,random_state=0) + model.fit(X_train,y_train.values.ravel()) + ``` + +1. Ora provare il modello, chiamando `predict()`: + + ```python + y_pred = model.predict(X_test) + ``` + +1. Stampare un rapporto di classificazione per verificare la qualità del modello: + + ```python + print(classification_report(y_test,y_pred)) + ``` + + Come visto prima, la precisione è buona: + + ```output + precision recall f1-score support + + chinese 0.72 0.69 0.70 257 + indian 0.91 0.87 0.89 243 + japanese 0.79 0.77 0.78 239 + korean 0.83 0.79 0.81 236 + thai 0.72 0.84 0.78 224 + + accuracy 0.79 1199 + macro avg 0.79 0.79 0.79 1199 + weighted avg 0.79 0.79 0.79 1199 + ``` + +### Convertire il modello in Onnx + +Assicurarsi di eseguire la conversione con il numero tensore corretto. Questo insieme di dati ha 380 ingredienti elencati, quindi è necessario annotare quel numero in `FloatTensorType`: + +1. Convertire usando un numero tensore di 380. + + ```python + from skl2onnx import convert_sklearn + from skl2onnx.common.data_types import FloatTensorType + + initial_type = [('float_input', FloatTensorType([None, 380]))] + options = {id(model): {'nocl': True, 'zipmap': False}} + ``` + +1. Creare l'onx e salvarlo come file **model.onnx**: + + ```python + onx = convert_sklearn(model, initial_types=initial_type, options=options) + with open("./model.onnx", "wb") as f: + f.write(onx.SerializeToString()) + ``` + + > Nota, si possono passare le[opzioni](https://onnx.ai/sklearn-onnx/parameterized.html) nello script di conversione. In questo caso, si è passato 'nocl' come True e 'zipmap' come False. Poiché questo è un modello di classificazione, si ha la possibilità di rimuovere ZipMap che produce un elenco di dizionari (non necessario). `nocl` si riferisce alle informazioni sulla classe incluse nel modello. Ridurre le dimensioni del modello impostando `nocl` su 'True'. + +L'esecuzione dell'intero notebook ora creerà un modello Onnx e lo salverà in questa cartella. + +## Visualizzare il modello + +I modelli Onnx non sono molto visualizzabili in Visual Studio code, ma c'è un ottimo software gratuito che molti ricercatori usano per visualizzare il modello per assicurarsi che sia costruito correttamente. Scaricare [Netron](https://github.com/lutzroeder/Netron) e aprire il file model.onnx. Si può vedere il modello semplice visualizzato, con i suoi 380 input e classificatore elencati: + +![Vista Netron ](../images/netron.png) + +Netron è uno strumento utile per visualizzare i modelli. + +Ora si è pronti per utilizzare questo modello accurato in un'app web. Si costruisce un'app che tornerà utile quando si guarda nel frigorifero e si prova a capire quale combinazione di ingredienti avanzati si può usare per cucinare una determinata tipologia di cucina, come determinato dal modello. + +## Creare un'applicazione web di raccomandazione + +Si può utilizzare il modello direttamente in un'app web. Questa architettura consente anche di eseguirlo localmente e anche offline se necessario. Iniziare creando un file `index.html` nella stessa cartella in cui si è salvato il file `model.onnx`. + +1. In questo file _index.html_, aggiungere il seguente codice markup: + + ```html + + +
+ Cuisine Matcher +
+ + ... + + + ``` + +1. Ora, lavorando all'interno del tag `body` , aggiungere un piccolo markup per mostrare un elenco di caselle di controllo che riflettono alcuni ingredienti: + + ```html +

Check your refrigerator. What can you create?

+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ +
+ ``` + + Notare che a ogni casella di controllo viene assegnato un valore. Questo riflette l'indice in cui si trova l'ingrediente in base all'insieme di dati. Apple, ad esempio, in questo elenco alfabetico, occupa la quinta colonna, quindi il suo valore è "4" poiché si inizia a contare da 0. Si può consultare il [foglio di calcolo degli ingredienti](../../data/ingredient_indexes.csv) per scoprire l'indice di un determinato ingrediente. + + Continuando il lavoro nel file index.html, aggiungere un blocco di script in cui viene chiamato il modello dopo la chiusura del tag `` finale. + +1. Innanzitutto, importare il [runtime Onnx](https://www.onnxruntime.ai/): + + ```html + + ``` + + > Onnx Runtime viene utilizzato per consentire l'esecuzione dei modelli Onnx su un'ampia gamma di piattaforme hardware, comprese le ottimizzazioni e un'API da utilizzare. + +1. Una volta che il Runtime è a posto, lo si può chiamare: + + ```javascript + + ``` + +In questo codice, accadono diverse cose: + +1. Si è creato un array di 380 possibili valori (1 o 0) da impostare e inviare al modello per l'inferenza, a seconda che una casella di controllo dell'ingrediente sia selezionata. +2. Si è creata una serie di caselle di controllo e un modo per determinare se sono state selezionate in una funzione `init` chiamata all'avvio dell'applicazione. Quando una casella di controllo è selezionata, l 'array `ingredients` viene modificato per riflettere l'ingrediente scelto. +3. Si è creata una funzione `testCheckboxes` che controlla se una casella di controllo è stata selezionata. +4. Si utilizza quella funzione quando si preme il pulsante e, se una casella di controllo è selezionata, si avvia l'inferenza. +5. La routine di inferenza include: + 1. Impostazione di un caricamento asincrono del modello + 2. Creazione di una struttura tensoriale da inviare al modello + 3. Creazione di "feed" che riflettano l'input `float_input` creato durante l'addestramento del modello (si può usare Netron per verificare quel nome) + 4. Invio di questi "feed" al modello e attesa di una risposta + +## Verificare l'applicazione + +Aprire una sessione terminale in Visual Studio Code nella cartella in cui risiede il file index.html. Assicurarsi di avere [http-server](https://www.npmjs.com/package/http-server) installato globalmente e digitare `http-server` al prompt. Dovrebbe aprirsi nel browser un localhost e si può visualizzare l'app web. Controllare quale cucina è consigliata in base ai vari ingredienti: + +![app web degli ingredienti](../images/web-app.png) + +Congratulazioni, si è creato un'app web di "raccomandazione" con pochi campi. Si prenda del tempo per costruire questo sistema! +## 🚀 Sfida + +L'app web è molto minimale, quindi continuare a costruirla usando gli ingredienti e i loro indici dai dati [ingredient_indexes](../../data/ingredient_indexes.csv) . Quali combinazioni di sapori funzionano per creare un determinato piatto nazionale? + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/26/) + +## Revisione e Auto Apprendimento + +Sebbene questa lezione abbia appena toccato l'utilità di creare un sistema di raccomandazione per gli ingredienti alimentari, quest'area delle applicazioni ML è molto ricca di esempi. Leggere di più su come sono costruiti questi sistemi: + +- https://www.sciencedirect.com/topics/computer-science/recommendation-engine +- https://www.technologyreview.com/2014/08/25/171547/the-ultimate-challenge-for-recommendation-engines/ +- https://www.technologyreview.com/2015/03/23/168831/everything-is-a-recommendation/ + +## Compito + +[Creare un nuovo sistema di raccomandazione](assignment.it.md) diff --git a/4-Classification/4-Applied/translations/assignment.it.md b/4-Classification/4-Applied/translations/assignment.it.md new file mode 100644 index 00000000..cc926c72 --- /dev/null +++ b/4-Classification/4-Applied/translations/assignment.it.md @@ -0,0 +1,11 @@ +# Creare un sistema di raccomandazione + +## Istruzioni + +Dati gli esercizi di questa lezione, ora si conosce come creare un'app Web basata su JavaScript utilizzando Onnx Runtime e un modello Onnx convertito. Sperimentare con la creazione di un nuovo sistema di raccomandazione utilizzando i dati di queste lezioni o provenienti da altre parti (citare le fonti, per favore). Si potrebbe creare un sistema di raccomandazione di animali domestici in base a vari attributi della personalità o un sistema di raccomandazione di genere musicale basato sull'umore di una persona. Dare sfogo alla creatività! + +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | ---------------------------------------------------------------------- | ------------------------------------- | --------------------------------- | +| | Vengono presentati un'app Web e un notebook, entrambi ben documentati e funzionanti | Uno di quei due è mancante o difettoso | Entrambi sono mancanti o difettosi | diff --git a/4-Classification/translations/README.it.md b/4-Classification/translations/README.it.md new file mode 100644 index 00000000..fbaa4720 --- /dev/null +++ b/4-Classification/translations/README.it.md @@ -0,0 +1,26 @@ +# Iniziare con la classificazione + +## Argomento regionale: Deliziose Cucine Asiatiche e Indiane 🍜 + +In Asia e in India, le tradizioni alimentari sono estremamente diverse e molto deliziose! Si darà un'occhiata ai dati sulle cucine regionali per cercare di capirne gli ingredienti. + +![Venditore di cibo tailandese](../images/thai-food.jpg) +> Foto di
Lisheng Chang su Unsplash + +## Cosa si imparerà + +In questa sezione si approfondiranno le abilità sulla regressione apprese nella prima parte di questo programma di studi per conoscere altri classificatori da poter utilizzare e che aiuteranno a conoscere i propri dati. + +> Esistono utili strumenti a basso codice che possono aiutare a imparare a lavorare con i modelli di regressione. Si provi [Azure ML per questa attività](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) + +## Lezioni + +1. [Introduzione alla classificazione](../1-Introduction/translations/README.it.md) +2. [Più classificatori](../2-Classifiers-1/translations/README.it.md) +3. [Ancora altri classificatori](../3-Classifiers-2/translations/README.it.md) +4. [Machine Learning applicato: sviluppare un'app web](../4-Applied/translations/README.it.md) +## Crediti + +"Iniziare con la classificazione" è stato scritto con ♥️ da [Cassie Breviu](https://www.twitter.com/cassieview) e [Jen Looper](https://www.twitter.com/jenlooper) + +L'insieme di dati sulle deliziose cucine proviene da [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines) From 8b4173543b307d35139f16ae7edf9c970c2b3caf Mon Sep 17 00:00:00 2001 From: Foo-x Date: Thu, 22 Jul 2021 01:41:55 +0900 Subject: [PATCH 151/228] feat: add ja translations for quizzes Refs #149 --- quiz-app/src/assets/translations/ja.json | 2815 ++++++++++++++++++++++ 1 file changed, 2815 insertions(+) create mode 100644 quiz-app/src/assets/translations/ja.json diff --git a/quiz-app/src/assets/translations/ja.json b/quiz-app/src/assets/translations/ja.json new file mode 100644 index 00000000..4696347f --- /dev/null +++ b/quiz-app/src/assets/translations/ja.json @@ -0,0 +1,2815 @@ +[ + { + "title": "初心者のための機械学習: 小テスト", + "complete": "おめでとうございます、小テストを完了しました!", + "error": "すみません、もう一度試してみてください。", + "quizzes": [ + { + "id": 1, + "title": "機械学習への導入: 講義前の小テスト", + "quiz": [ + { + "questionText": "機械学習の応用は身近にある", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + }, + { + "questionText": "古典的機械学習と深層学習の技術的な違いは何でしょうか?", + "answerOptions": [ + { + "answerText": "古典的機械学習のほうが先に発明された", + "isCorrect": "false" + }, + { + "answerText": "ニューラルネットワークを使用するかどうか", + "isCorrect": "true" + }, + { + "answerText": "深層学習はロボットに使用されている", + "isCorrect": "false" + } + ] + }, + { + "questionText": "なぜ企業は機械学習の戦略を使いたいと思うのでしょうか?", + "answerOptions": [ + { + "answerText": "多元的な問題の解決を自動化するため", + "isCorrect": "false" + }, + { + "answerText": "顧客の種類に応じてショッピング体験をカスタマイズするため", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 2, + "title": "機械学習への導入: 講義後の小テスト", + "quiz": [ + { + "questionText": "機械学習のアルゴリズムがシミュレートするのは", + "answerOptions": [ + { + "answerText": "賢いマシン", + "isCorrect": "false" + }, + { + "answerText": "人間の脳", + "isCorrect": "true" + }, + { + "answerText": "オランウータン", + "isCorrect": "false" + } + ] + }, + { + "questionText": "古典的機械学習の手法の例は何でしょうか?", + "answerOptions": [ + { + "answerText": "自然言語処理", + "isCorrect": "true" + }, + { + "answerText": "深層学習", + "isCorrect": "false" + }, + { + "answerText": "ニューラルネットワーク", + "isCorrect": "false" + } + ] + }, + { + "questionText": "なぜ全員が機械学習の基礎を学ぶべきなのでしょうか?", + "answerOptions": [ + { + "answerText": "機械学習を学ぶのは誰でも始めやすくて楽しいから", + "isCorrect": "false" + }, + { + "answerText": "機械学習の戦略は多くの産業や領域で使用されているから", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 3, + "title": "機械学習の歴史: 講義前の小テスト", + "quiz": [ + { + "questionText": "「人工知能」という言葉が生まれたのはいつ頃でしょうか?", + "answerOptions": [ + { + "answerText": "1980年代", + "isCorrect": "false" + }, + { + "answerText": "1950年代", + "isCorrect": "true" + }, + { + "answerText": "1930年代", + "isCorrect": "false" + } + ] + }, + { + "questionText": "機械学習における先駆者のうちのひとりは誰でしょうか?", + "answerOptions": [ + { + "answerText": "アラン・チューリング", + "isCorrect": "true" + }, + { + "answerText": "ビル・ゲイツ", + "isCorrect": "false" + }, + { + "answerText": "シェーキー", + "isCorrect": "false" + } + ] + }, + { + "questionText": "1970年代にAIの進歩が鈍化した理由のひとつは何でしょうか?", + "answerOptions": [ + { + "answerText": "計算能力の限界", + "isCorrect": "true" + }, + { + "answerText": "熟練したエンジニアの不足", + "isCorrect": "false" + }, + { + "answerText": "国家間の紛争", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 4, + "title": "機械学習の歴史: 講義後の小テスト", + "quiz": [ + { + "questionText": "「みすぼらしい」AIシステムの例は何でしょうか?", + "answerOptions": [ + { + "answerText": "ELIZA", + "isCorrect": "true" + }, + { + "answerText": "HACKML", + "isCorrect": "false" + }, + { + "answerText": "SSYSTEM", + "isCorrect": "false" + } + ] + }, + { + "questionText": "「黄金期」に開発された技術の例は何でしょうか?", + "answerOptions": [ + { + "answerText": "Blocks world", + "isCorrect": "true" + }, + { + "answerText": "Jibo", + "isCorrect": "false" + }, + { + "answerText": "ロボット犬", + "isCorrect": "false" + } + ] + }, + { + "questionText": "人工知能の分野において誕生と発展の礎になった出来事はどれでしょうか?", + "answerOptions": [ + { + "answerText": "チューリングテスト", + "isCorrect": "false" + }, + { + "answerText": "ダートマス夏期研究会", + "isCorrect": "true" + }, + { + "answerText": "AIの冬", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 5, + "title": "公平性と機械学習: 講義前の小テスト", + "quiz": [ + { + "questionText": "機械学習において不公平性が起こりうるのは", + "answerOptions": [ + { + "answerText": "故意で", + "isCorrect": "false" + }, + { + "answerText": "過失で", + "isCorrect": "false" + }, + { + "answerText": "上の両方で", + "isCorrect": "true" + } + ] + }, + { + "questionText": "機械学習において「不公平性」が意味するのは", + "answerOptions": [ + { + "answerText": "あるグループの人々に対する弊害", + "isCorrect": "true" + }, + { + "answerText": "ひとりの人に対する弊害", + "isCorrect": "false" + }, + { + "answerText": "大多数の人々に対する弊害", + "isCorrect": "false" + } + ] + }, + { + "questionText": "5つの主な弊害は", + "answerOptions": [ + { + "answerText": "割り当て・サービスの質・偏見・誹謗中傷・表現の過不足", + "isCorrect": "true" + }, + { + "answerText": "移住・サービスの質・偏見・誹謗中傷・表現の過不足", + "isCorrect": "false" + }, + { + "answerText": "割り当て・サービスの質・ステレオ・誹謗中傷・表現の過不足", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 6, + "title": "公平性と機械学習: 講義後の小テスト", + "quiz": [ + { + "questionText": "モデルに不公平性が発生する原因のひとつは", + "answerOptions": [ + { + "answerText": "過去のデータに対する依存度が高すぎること", + "isCorrect": "true" + }, + { + "answerText": "過去のデータに対する依存度が低すぎること", + "isCorrect": "false" + }, + { + "answerText": "過去のデータとの整合性が高すぎること", + "isCorrect": "false" + } + ] + }, + { + "questionText": "不公平性を緩和するためにできることは", + "answerOptions": [ + { + "answerText": "弊害とそれを受けるグループの特定", + "isCorrect": "false" + }, + { + "answerText": "公平性に関する指標の定義", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Fairlearnパッケージができることは", + "answerOptions": [ + { + "answerText": "複数のモデル間で公平性とパフォーマンスの指標を比較", + "isCorrect": "true" + }, + { + "answerText": "ニーズに応じた最適なモデルの選択", + "isCorrect": "false" + }, + { + "answerText": "何が公平で、何がそうでないかの判断を助けること", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 7, + "title": "ツールと手法: 講義前の小テスト", + "quiz": [ + { + "questionText": "モデルを構築する際にすべきなのは", + "answerOptions": [ + { + "answerText": "データを準備してから学習すること", + "isCorrect": "true" + }, + { + "answerText": "学習方法を選んでからデータを準備すること", + "isCorrect": "false" + }, + { + "answerText": "パラメータを調整してから学習すること", + "isCorrect": "false" + } + ] + }, + { + "questionText": "データの〇〇が機械学習モデルの質に影響を与える", + "answerOptions": [ + { + "answerText": "量", + "isCorrect": "false" + }, + { + "answerText": "形", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "特徴量とは", + "answerOptions": [ + { + "answerText": "データの質", + "isCorrect": "false" + }, + { + "answerText": "データの測定可能な特性", + "isCorrect": "true" + }, + { + "answerText": "データの列", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 8, + "title": "ツールと手法: 講義後の小テスト", + "quiz": [ + { + "questionText": "データを可視化すべき理由は", + "answerOptions": [ + { + "answerText": "外れ値を発見できるから", + "isCorrect": "false" + }, + { + "answerText": "バイアスの原因を発見できるから", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "分割するデータの種類は", + "answerOptions": [ + { + "answerText": "訓練データとチューリングデータ", + "isCorrect": "false" + }, + { + "answerText": "訓練データとテストデータ", + "isCorrect": "true" + }, + { + "answerText": "検証データと評価データ", + "isCorrect": "false" + } + ] + }, + { + "questionText": "様々な機械学習ライブラリで学習プロセスを開始する一般的なコマンドは", + "answerOptions": [ + { + "answerText": "model.travel", + "isCorrect": "false" + }, + { + "answerText": "model.train", + "isCorrect": "false" + }, + { + "answerText": "model.fit", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 9, + "title": "回帰への導入: 講義前の小テスト", + "quiz": [ + { + "questionText": "次の変数のうち、数値の変数はどれでしょうか?", + "answerOptions": [ + { + "answerText": "身長", + "isCorrect": "true" + }, + { + "answerText": "性別", + "isCorrect": "false" + }, + { + "answerText": "髪の色", + "isCorrect": "false" + } + ] + }, + { + "questionText": "次の変数のうち、カテゴリーの変数はどれでしょうか?", + "answerOptions": [ + { + "answerText": "心拍数", + "isCorrect": "false" + }, + { + "answerText": "血液型", + "isCorrect": "true" + }, + { + "answerText": "体重", + "isCorrect": "false" + } + ] + }, + { + "questionText": "次の問題のうち、回帰分析に基づく問題はどれでしょうか?", + "answerOptions": [ + { + "answerText": "学生の期末試験の点数を予測する", + "isCorrect": "true" + }, + { + "answerText": "ある人物の血液型を予測する", + "isCorrect": "false" + }, + { + "answerText": "メールがスパムかどうかを判定する", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 10, + "title": "回帰への導入: 講義後の小テスト", + "quiz": [ + { + "questionText": "機械学習モデルの学習精度が95%でテスト精度が30%の場合、どんな状態であると呼ばれるでしょうか?", + "answerOptions": [ + { + "answerText": "過学習", + "isCorrect": "true" + }, + { + "answerText": "未学習", + "isCorrect": "false" + }, + { + "answerText": "二重学習", + "isCorrect": "false" + } + ] + }, + { + "questionText": "特徴量の中から重要なものを特定するプロセスの名前は", + "answerOptions": [ + { + "answerText": "特徴量抽出", + "isCorrect": "false" + }, + { + "answerText": "特徴量の次元削減", + "isCorrect": "false" + }, + { + "answerText": "特徴量選択", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Scikit Learn の 'train_test_split()' メソッド/関数を使用して、データセットを一定の割合で訓練データセットとテストデータセットに分割する処理の名前は", + "answerOptions": [ + { + "answerText": "交差検証", + "isCorrect": "false" + }, + { + "answerText": "ホールドアウト検証", + "isCorrect": "true" + }, + { + "answerText": "ひとつ抜き検証", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 11, + "title": "回帰のためにデータを準備して可視化する: 講義前の小テスト", + "quiz": [ + { + "questionText": "次のPythonモジュールのうち、データを可視化するために使用されるものはどれでしょうか?", + "answerOptions": [ + { + "answerText": "Numpy", + "isCorrect": "false" + }, + { + "answerText": "Scikit-learn", + "isCorrect": "false" + }, + { + "answerText": "Matplotlib", + "isCorrect": "true" + } + ] + }, + { + "questionText": "データセットの広がり方やその他の特性を理解するために実行するのは", + "answerOptions": [ + { + "answerText": "データの可視化", + "isCorrect": "true" + }, + { + "answerText": "データの前処理", + "isCorrect": "false" + }, + { + "answerText": "訓練データとテストデータの分割", + "isCorrect": "false" + } + ] + }, + { + "questionText": "次のうち、機械学習プロジェクトにおいてデータ可視化ステップの一部であるものはどれでしょうか?", + "answerOptions": [ + { + "answerText": "特定の機械学習アルゴリズムを取り入れる", + "isCorrect": "false" + }, + { + "answerText": "様々なプロット方法を使ってデータの図解表現を作成する", + "isCorrect": "true" + }, + { + "answerText": "データセットの値を正規化する", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 12, + "title": "回帰のためにデータを準備して可視化する: 講義後の小テスト", + "quiz": [ + { + "questionText": "次のコードスニペットのうち、データセットに欠損値が含まれているかどうかを確認するものとして、このレッスンにおいて正しいのはどれでしょうか?なお、データセットはPandasのDataFrameオブジェクトである 'dataset' という変数に格納されているものとします。", + "answerOptions": [ + { + "answerText": "dataset.isnull().sum()", + "isCorrect": "true" + }, + { + "answerText": "findMissing(dataset)", + "isCorrect": "false" + }, + { + "answerText": "sum(null(dataset))", + "isCorrect": "false" + } + ] + }, + { + "questionText": "次のプロット方法のうち、データセットの異なるデータグループの広がり方を理解するために有効なものはどれでしょうか?", + "answerOptions": [ + { + "answerText": "散布図", + "isCorrect": "false" + }, + { + "answerText": "折れ線グラフ", + "isCorrect": "false" + }, + { + "answerText": "棒グラフ", + "isCorrect": "true" + } + ] + }, + { + "questionText": "データ可視化が教えてくれないことは何でしょうか?", + "answerOptions": [ + { + "answerText": "データポイント間の関係", + "isCorrect": "false" + }, + { + "answerText": "データセットの収集源", + "isCorrect": "true" + }, + { + "answerText": "データセットに外れ値が含まれているかどうか", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 13, + "title": "線形および多項式回帰: 講義前の小テスト", + "quiz": [ + { + "questionText": "Matplotlibは", + "answerOptions": [ + { + "answerText": "描画ライブラリ", + "isCorrect": "false" + }, + { + "answerText": "データ可視化ライブラリ", + "isCorrect": "true" + }, + { + "answerText": "図書館", + "isCorrect": "false" + } + ] + }, + { + "questionText": "線形回帰が変数間の関係をプロットする方法は", + "answerOptions": [ + { + "answerText": "直線", + "isCorrect": "true" + }, + { + "answerText": "円J", + "isCorrect": "false" + }, + { + "answerText": "曲線", + "isCorrect": "false" + } + ] + }, + { + "questionText": "優れた線形回帰モデルは〇〇相関係数を持つ", + "answerOptions": [ + { + "answerText": "低い", + "isCorrect": "false" + }, + { + "answerText": "高い", + "isCorrect": "true" + }, + { + "answerText": "平坦な", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 14, + "title": "線形および多項式回帰: 講義後の小テスト", + "quiz": [ + { + "questionText": "データが線形でない場合、〇〇回帰を試すと良い", + "answerOptions": [ + { + "answerText": "線形", + "isCorrect": "false" + }, + { + "answerText": "球面", + "isCorrect": "false" + }, + { + "answerText": "多項式", + "isCorrect": "true" + } + ] + }, + { + "questionText": "すべて回帰法の種類なのは", + "answerOptions": [ + { + "answerText": "フォルスステップ・リッジ・ラッソ・エラスティックネット", + "isCorrect": "false" + }, + { + "answerText": "ステップワイズ・リッジ・ラッソ・エラスティックネット", + "isCorrect": "true" + }, + { + "answerText": "ステップワイズ・リッジ・ラリアット・エラスティックネット", + "isCorrect": "false" + } + ] + }, + { + "questionText": "最小二乗回帰は回帰直線のまわりのすべてのデータポイントが", + "answerOptions": [ + { + "answerText": "二乗してから減算されている", + "isCorrect": "false" + }, + { + "answerText": "乗算されている", + "isCorrect": "false" + }, + { + "answerText": "二乗してから加算されている", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 15, + "title": "ロジスティック回帰: 講義前の小テスト", + "quiz": [ + { + "questionText": "ロジスティック回帰が予測するのは", + "answerOptions": [ + { + "answerText": "りんごが熟しているかどうか", + "isCorrect": "true" + }, + { + "answerText": "チケットが月にいくつ売れるか", + "isCorrect": "false" + }, + { + "answerText": "明日の午後6時に空が何色になるか", + "isCorrect": "false" + } + ] + }, + { + "questionText": "ロジスティック回帰の種類に含まれるのは", + "answerOptions": [ + { + "answerText": "多項と基本", + "isCorrect": "false" + }, + { + "answerText": "多項と順序", + "isCorrect": "true" + }, + { + "answerText": "主要と順序", + "isCorrect": "false" + } + ] + }, + { + "questionText": "あなたのデータには弱い相関があります。最適な回帰の種類は", + "answerOptions": [ + { + "answerText": "ロジスティック", + "isCorrect": "true" + }, + { + "answerText": "線形", + "isCorrect": "false" + }, + { + "answerText": "基本", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 16, + "title": "ロジスティック回帰: 講義後の小テスト", + "quiz": [ + { + "questionText": "Seabornは", + "answerOptions": [ + { + "answerText": "データ可視化ライブラリ", + "isCorrect": "true" + }, + { + "answerText": "地図ライブラリ", + "isCorrect": "false" + }, + { + "answerText": "数学ライブラリ", + "isCorrect": "false" + } + ] + }, + { + "questionText": "混同行列の別名は", + "answerOptions": [ + { + "answerText": "誤差行列", + "isCorrect": "true" + }, + { + "answerText": "真理行列", + "isCorrect": "false" + }, + { + "answerText": "精度行列", + "isCorrect": "false" + } + ] + }, + { + "questionText": "良いモデルは", + "answerOptions": [ + { + "answerText": "混同行列に多くの偽陽性と真陰性を含む", + "isCorrect": "false" + }, + { + "answerText": "混同行列に多くの真陽性と真陰性を含む", + "isCorrect": "true" + }, + { + "answerText": "混同行列に多くの真陽性と偽陰性を含む", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 17, + "title": "Webアプリを構築する: 講義前の小テスト", + "quiz": [ + { + "questionText": "ONNXは何の略でしょうか?", + "answerOptions": [ + { + "answerText": "Over Neural Network Exchange", + "isCorrect": "false" + }, + { + "answerText": "Open Neural Network Exchange", + "isCorrect": "true" + }, + { + "answerText": "Output Neural Network Exchange", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Flaskは作成者にどのように定義されているでしょうか?", + "answerOptions": [ + { + "answerText": "ミニフレームワーク", + "isCorrect": "false" + }, + { + "answerText": "ラージフレームワーク", + "isCorrect": "false" + }, + { + "answerText": "マイクロフレームワーク", + "isCorrect": "true" + } + ] + }, + { + "questionText": "PythonのPickleモジュールが行うのは", + "answerOptions": [ + { + "answerText": "パイソンオブジェクトのシリアライズ", + "isCorrect": "false" + }, + { + "answerText": "Pythonオブジェクトのデシリアライズ", + "isCorrect": "false" + }, + { + "answerText": "Pythonオブジェクトのシリアライズとデシリアライズ", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 18, + "title": "Webアプリを構築する: 講義後の小テスト", + "quiz": [ + { + "questionText": "事前学習済みモデルをWeb上にホスティングするために使えるPythonのツールは何でしょうか?", + "answerOptions": [ + { + "answerText": "Flask", + "isCorrect": "true" + }, + { + "answerText": "TensorFlow.js", + "isCorrect": "false" + }, + { + "answerText": "onnx.js", + "isCorrect": "false" + } + ] + }, + { + "questionText": "SaaSは何の略でしょうか?", + "answerOptions": [ + { + "answerText": "System as a Service", + "isCorrect": "false" + }, + { + "answerText": "Software as a Service", + "isCorrect": "true" + }, + { + "answerText": "Security as a Service", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Scikit-learn の LabelEncoder ライブラリが行うことは何でしょうか?", + "answerOptions": [ + { + "answerText": "データをアルファベットにエンコードすること", + "isCorrect": "true" + }, + { + "answerText": "データを数値にエンコードすること", + "isCorrect": "false" + }, + { + "answerText": "データをシリアルにエンコードすること", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 19, + "title": "分類 1: 講義前の小テスト", + "quiz": [ + { + "questionText": "分類は教師あり学習の一種であり、多くの共通点を持つのは", + "answerOptions": [ + { + "answerText": "時系列", + "isCorrect": "false" + }, + { + "answerText": "回帰手法", + "isCorrect": "true" + }, + { + "answerText": "自然言語処理", + "isCorrect": "false" + } + ] + }, + { + "questionText": "分類はどのような疑問に答えられるでしょうか?", + "answerOptions": [ + { + "answerText": "このメールはスパムでしょうか?", + "isCorrect": "true" + }, + { + "answerText": "豚は飛べるでしょうか?", + "isCorrect": "false" + }, + { + "answerText": "人生の意味とは何でしょうか?", + "isCorrect": "false" + } + ] + }, + { + "questionText": "分類手法を使うための最初のステップは何でしょうか?", + "answerOptions": [ + { + "answerText": "データのクラスを作成すること", + "isCorrect": "false" + }, + { + "answerText": "データのクリーニングとバランシング", + "isCorrect": "true" + }, + { + "answerText": "データポイントをグループまたは結果に割り当てること", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 20, + "title": "分類 1: 講義後の小テスト", + "quiz": [ + { + "questionText": "多クラス問題とは何でしょうか?", + "answerOptions": [ + { + "answerText": "データポイントを複数のクラスに分類するタスク", + "isCorrect": "false" + }, + { + "answerText": "データポイントを複数のクラスのどれかに分類するタスク", + "isCorrect": "true" + }, + { + "answerText": "データポイントを複数の方法でクリーニングするタスク", + "isCorrect": "false" + } + ] + }, + { + "questionText": "分類器が問題を解決するためには、何度も現れるデータや役に立たないデータを除くことが重要である", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + }, + { + "questionText": "データをバランシングする一番の理由は何でしょうか?", + "answerOptions": [ + { + "answerText": "不均衡データは可視化すると見栄えが悪いから", + "isCorrect": "false" + }, + { + "answerText": "データをバランシングすると機械学習モデルがひとつのクラスに偏らず、良い結果が得られるから", + "isCorrect": "true" + }, + { + "answerText": "データをバランシングするとより多くのデータポイントが得られるから", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 21, + "title": "分類 2: 講義前の小テスト", + "quiz": [ + { + "questionText": "バランシングおよびクリーニングされたデータが最も良い分類結果につながる", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + }, + { + "questionText": "正しい分類器はどのように選ぶでしょうか?", + "answerOptions": [ + { + "answerText": "どの分類器がどの場面に最適かを理解する", + "isCorrect": "false" + }, + { + "answerText": "経験に基づく推測と確認", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "分類は一種の", + "answerOptions": [ + { + "answerText": "自然言語処理", + "isCorrect": "false" + }, + { + "answerText": "教師あり学習", + "isCorrect": "true" + }, + { + "answerText": "プログラミング言語", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 22, + "title": "分類 2: 講義後の小テスト", + "quiz": [ + { + "questionText": "「ソルバ」とは何でしょうか?", + "answerOptions": [ + { + "answerText": "自分の仕事をダブルチェックしてくれる人", + "isCorrect": "false" + }, + { + "answerText": "最適化問題で使用するアルゴリズム", + "isCorrect": "true" + }, + { + "answerText": "機械学習の手法", + "isCorrect": "false" + } + ] + }, + { + "questionText": "レッスンで使用した分類器はどれでしょうか?", + "answerOptions": [ + { + "answerText": "ロジスティック回帰", + "isCorrect": "true" + }, + { + "answerText": "決定木", + "isCorrect": "false" + }, + { + "answerText": "一対他の多クラス", + "isCorrect": "false" + } + ] + }, + { + "questionText": "分類アルゴリズムが期待通りに動作しているかどうかは、どのようにして知ることができるでしょうか?", + "answerOptions": [ + { + "answerText": "予測の精度を確認する", + "isCorrect": "true" + }, + { + "answerText": "他のアルゴリズムと比較する", + "isCorrect": "false" + }, + { + "answerText": "似た問題を解決した際にどれだけ優れていたかを過去のデータから確認する", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 23, + "title": "分類 3: 講義前の小テスト", + "quiz": [ + { + "questionText": "最初に試すのに適した分類器は", + "answerOptions": [ + { + "answerText": "線形サポートベクター分類器", + "isCorrect": "true" + }, + { + "answerText": "K-Means", + "isCorrect": "false" + }, + { + "answerText": "論理サポートベクター分類器", + "isCorrect": "false" + } + ] + }, + { + "questionText": "正則化がコントロールするのは", + "answerOptions": [ + { + "answerText": "パラメータの影響", + "isCorrect": "true" + }, + { + "answerText": "学習スピードの影響", + "isCorrect": "false" + }, + { + "answerText": "外れ値の影響", + "isCorrect": "false" + } + ] + }, + { + "questionText": "k近傍分類器が使えるのは", + "answerOptions": [ + { + "answerText": "教師あり学習", + "isCorrect": "false" + }, + { + "answerText": "教師なし学習", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 24, + "title": "分類 3: 講義後の小テスト", + "quiz": [ + { + "questionText": "サポートベクター分類器が使えるのは", + "answerOptions": [ + { + "answerText": "分類", + "isCorrect": "false" + }, + { + "answerText": "回帰", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "ランダムフォレストは〇〇な分類器の一種である", + "answerOptions": [ + { + "answerText": "アンサンブル", + "isCorrect": "true" + }, + { + "answerText": "ディセンブル", + "isCorrect": "false" + }, + { + "answerText": "アセンブル", + "isCorrect": "false" + } + ] + }, + { + "questionText": "アダブーストは次のように知られている", + "answerOptions": [ + { + "answerText": "誤って分類された要素の重みに着目する", + "isCorrect": "true" + }, + { + "answerText": "外れ値に着目する", + "isCorrect": "false" + }, + { + "answerText": "誤ったデータに着目する", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 25, + "title": "分類 4: 講義前の小テスト", + "quiz": [ + { + "questionText": "推薦システムが使えるのは", + "answerOptions": [ + { + "answerText": "良いレストランの推薦", + "isCorrect": "false" + }, + { + "answerText": "試すべきファッションの推薦", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Webアプリにモデルを埋め込むことでオフライン対応が可能になる", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Onnx Runtime が使えるのは", + "answerOptions": [ + { + "answerText": "Webアプリの中でモデルを実行する", + "isCorrect": "true" + }, + { + "answerText": "モデルを学習する", + "isCorrect": "false" + }, + { + "answerText": "ハイパーパラメータのチューニング", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 26, + "title": "分類 4: 講義後の小テスト", + "quiz": [ + { + "questionText": "Netronアプリが役立つのは", + "answerOptions": [ + { + "answerText": "データの可視化", + "isCorrect": "false" + }, + { + "answerText": "モデル構造の可視化", + "isCorrect": "true" + }, + { + "answerText": "Webアプリのテスト", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Scikit-learn モデルをOnnxで扱えるようにするために使うのは", + "answerOptions": [ + { + "answerText": "sklearn-app", + "isCorrect": "false" + }, + { + "answerText": "sklearn-web", + "isCorrect": "false" + }, + { + "answerText": "sklearn-onnx", + "isCorrect": "true" + } + ] + }, + { + "questionText": "Webアプリでモデルを使うことは、通称", + "answerOptions": [ + { + "answerText": "推論", + "isCorrect": "true" + }, + { + "answerText": "干渉", + "isCorrect": "false" + }, + { + "answerText": "保険", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 27, + "title": "クラスタリングへの導入: 講義前の小テスト", + "quiz": [ + { + "questionText": "クラスタリングの実例は", + "answerOptions": [ + { + "answerText": "食卓の準備", + "isCorrect": "false" + }, + { + "answerText": "洗濯物の分類", + "isCorrect": "true" + }, + { + "answerText": "食料品の買い物", + "isCorrect": "false" + } + ] + }, + { + "questionText": "クラスタリングの手法が使える産業は", + "answerOptions": [ + { + "answerText": "銀行", + "isCorrect": "false" + }, + { + "answerText": "電子商取引", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "クラスタリングは一種の", + "answerOptions": [ + { + "answerText": "教師あり学習", + "isCorrect": "false" + }, + { + "answerText": "教師なし学習", + "isCorrect": "true" + }, + { + "answerText": "強化学習", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 28, + "title": "クラスタリングへの導入: 講義後の小テスト", + "quiz": [ + { + "questionText": "ユークリッド幾何学が配置されるのは", + "answerOptions": [ + { + "answerText": "平面", + "isCorrect": "true" + }, + { + "answerText": "曲面", + "isCorrect": "false" + }, + { + "answerText": "球面", + "isCorrect": "false" + } + ] + }, + { + "questionText": "クラスタリングデータの密度が関係するのは", + "answerOptions": [ + { + "answerText": "ノイズ", + "isCorrect": "true" + }, + { + "answerText": "深さ", + "isCorrect": "false" + }, + { + "answerText": "妥当性", + "isCorrect": "false" + } + ] + }, + { + "questionText": "最も有名なクラスタリングアルゴリズムは", + "answerOptions": [ + { + "answerText": "k-means", + "isCorrect": "true" + }, + { + "answerText": "k-middle", + "isCorrect": "false" + }, + { + "answerText": "k-mart", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 29, + "title": "K-Means法: 講義前の小テスト", + "quiz": [ + { + "questionText": "K-Means の派生元は", + "answerOptions": [ + { + "answerText": "電気工学", + "isCorrect": "false" + }, + { + "answerText": "信号処理", + "isCorrect": "true" + }, + { + "answerText": "計算言語学", + "isCorrect": "false" + } + ] + }, + { + "questionText": "良いシルエットスコアとは", + "answerOptions": [ + { + "answerText": "クラスタがよく分離されていて、よく定義されている", + "isCorrect": "true" + }, + { + "answerText": "クラスタの数が少ない", + "isCorrect": "false" + }, + { + "answerText": "クラスタの数が多い", + "isCorrect": "false" + } + ] + }, + { + "questionText": "分散とは", + "answerOptions": [ + { + "answerText": "平均との差を二乗した値の平均", + "isCorrect": "false" + }, + { + "answerText": "クラスタリングにおいて高くなりすぎると問題になるもの", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 30, + "title": "K-Means法: 講義後の小テスト", + "quiz": [ + { + "questionText": "ボロノイ図が表すのは", + "answerOptions": [ + { + "answerText": "クラスタの分散", + "isCorrect": "false" + }, + { + "answerText": "クラスタのシードとその領域", + "isCorrect": "true" + }, + { + "answerText": "クラスタの慣性", + "isCorrect": "false" + } + ] + }, + { + "questionText": "慣性とは", + "answerOptions": [ + { + "answerText": "どれだけ内部にまとまっているクラスタかを表す指標", + "isCorrect": "true" + }, + { + "answerText": "クラスタがどれだけ動くかを表す指標", + "isCorrect": "false" + }, + { + "answerText": "クラスタの質を表す指標", + "isCorrect": "false" + } + ] + }, + { + "questionText": "K-Means を使う際は、最初に 'k' の値を決める必要がある", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 31, + "title": "自然言語処理への導入: 講義前の小テスト", + "quiz": [ + { + "questionText": "レッスンにおいてNLPは何の略でしょうか?", + "answerOptions": [ + { + "answerText": "Neural Language Processing", + "isCorrect": "false" + }, + { + "answerText": "natural language processing", + "isCorrect": "true" + }, + { + "answerText": "Natural Linguistic Processing", + "isCorrect": "false" + } + ] + }, + { + "questionText": "初期のボットであるElizaが演じていたのは", + "answerOptions": [ + { + "answerText": "療法士", + "isCorrect": "true" + }, + { + "answerText": "医者", + "isCorrect": "false" + }, + { + "answerText": "看護師", + "isCorrect": "false" + } + ] + }, + { + "questionText": "アラン・チューリングの「チューリングテスト」が判定しようとしていたのは、コンピュータが", + "answerOptions": [ + { + "answerText": "人間と見分けがつかないかどうか", + "isCorrect": "false" + }, + { + "answerText": "思考しているかどうか", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 32, + "title": "自然言語処理への導入: 講義後の小テスト", + "quiz": [ + { + "questionText": "ジョセフ・ワイゼンバウムが発明したボットは", + "answerOptions": [ + { + "answerText": "Elisha", + "isCorrect": "false" + }, + { + "answerText": "Eliza", + "isCorrect": "true" + }, + { + "answerText": "Eloise", + "isCorrect": "false" + } + ] + }, + { + "questionText": "会話型のボットが出力する方法は", + "answerOptions": [ + { + "answerText": "あらかじめ決められた選択肢からランダムに選ぶ", + "isCorrect": "false" + }, + { + "answerText": "入力を分析して機械知能を使う", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "ボットをより効果的にするにはどうすれば良いでしょうか?", + "answerOptions": [ + { + "answerText": "ボットに対してより多くの質問をする", + "isCorrect": "false" + }, + { + "answerText": "ボットにより多くのデータを与えて、それに応じた学習をさせる", + "isCorrect": "true" + }, + { + "answerText": "ボットは頭が悪いので学習できない :(", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 33, + "title": "自然言語処理のタスク: 講義前の小テスト", + "quiz": [ + { + "questionText": "トークン化は", + "answerOptions": [ + { + "answerText": "文章を句読点で分割する", + "isCorrect": "false" + }, + { + "answerText": "文章をトークン(単語)に分割する", + "isCorrect": "true" + }, + { + "answerText": "文章をフレーズに分割する", + "isCorrect": "false" + } + ] + }, + { + "questionText": "埋め込みは", + "answerOptions": [ + { + "answerText": "単語をクラスタ化するために文章を数値に変換する", + "isCorrect": "true" + }, + { + "answerText": "単語をフレーズに埋め込む", + "isCorrect": "false" + }, + { + "answerText": "文を段落に埋め込む", + "isCorrect": "false" + } + ] + }, + { + "questionText": "品詞タグ付けは", + "answerOptions": [ + { + "answerText": "文を品詞で分ける", + "isCorrect": "false" + }, + { + "answerText": "トークン化された単語を品詞でタグ付けする", + "isCorrect": "true" + }, + { + "answerText": "文を図で表す", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 34, + "title": "自然言語処理のタスク: 講義後の小テスト", + "quiz": [ + { + "questionText": "単語の出現頻度に関する辞書を作る際に使うのは", + "answerOptions": [ + { + "answerText": "単語とフレーズの辞書", + "isCorrect": "false" + }, + { + "answerText": "単語とフレーズの出現頻度", + "isCorrect": "true" + }, + { + "answerText": "単語とフレーズのライブラリ", + "isCorrect": "false" + } + ] + }, + { + "questionText": "N-grams とは", + "answerOptions": [ + { + "answerText": "一定の長さの単語列に分割できる文章", + "isCorrect": "true" + }, + { + "answerText": "一定の長さの文字列に分割できる単語", + "isCorrect": "false" + }, + { + "answerText": "一定の長さの段落に分割できる文章", + "isCorrect": "false" + } + ] + }, + { + "questionText": "感情分析は", + "answerOptions": [ + { + "answerText": "フレーズがポジティブかネガティブかを分析する", + "isCorrect": "true" + }, + { + "answerText": "フレーズが感傷的かどうかを分析する", + "isCorrect": "false" + }, + { + "answerText": "フレーズの悲しさを分析する", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 35, + "title": "自然言語処理と翻訳: 講義前の小テスト", + "quiz": [ + { + "questionText": "単純な翻訳は", + "answerOptions": [ + { + "answerText": "単語のみを翻訳する", + "isCorrect": "true" + }, + { + "answerText": "文章構造を翻訳する", + "isCorrect": "false" + }, + { + "answerText": "感情を翻訳する", + "isCorrect": "false" + } + ] + }, + { + "questionText": "文章の「コーパス」とは", + "answerOptions": [ + { + "answerText": "少量の文章", + "isCorrect": "false" + }, + { + "answerText": "大量の文章", + "isCorrect": "true" + }, + { + "answerText": "ひとつの標準的な文章", + "isCorrect": "false" + } + ] + }, + { + "questionText": "もしモデルを構築するのに十分な人間の翻訳があれば、機械学習モデルは", + "answerOptions": [ + { + "answerText": "翻訳を省略できる", + "isCorrect": "false" + }, + { + "answerText": "翻訳を標準化できる", + "isCorrect": "false" + }, + { + "answerText": "翻訳の精度を高められる", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 36, + "title": "自然言語処理と翻訳: 講義後の小テスト", + "quiz": [ + { + "questionText": "TextBlob の翻訳ライブラリの基盤は", + "answerOptions": [ + { + "answerText": "Google翻訳", + "isCorrect": "true" + }, + { + "answerText": "Bing", + "isCorrect": "false" + }, + { + "answerText": "独自の機械学習モデル", + "isCorrect": "false" + } + ] + }, + { + "questionText": "`blob.translate` を使用するために必要なのは", + "answerOptions": [ + { + "answerText": "インターネット接続", + "isCorrect": "true" + }, + { + "answerText": "辞書", + "isCorrect": "false" + }, + { + "answerText": "JavaScript", + "isCorrect": "false" + } + ] + }, + { + "questionText": "感情を判定するために機械学習のアプローチで行うのは", + "answerOptions": [ + { + "answerText": "手で作成した意見やスコアに回帰の手法を適用して、パターンを探す", + "isCorrect": "false" + }, + { + "answerText": "手で作成した意見やスコアに自然言語処理の手法を適用して、パターンを探す", + "isCorrect": "true" + }, + { + "answerText": "手で作成した意見やスコアにクラスタリングの手法を適用して、パターンを探す", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 37, + "title": "自然言語処理 4: 講義前の小テスト", + "quiz": [ + { + "questionText": "人間が書いたり話した文章から得られる情報は何でしょうか?", + "answerOptions": [ + { + "answerText": "パターンと頻度", + "isCorrect": "false" + }, + { + "answerText": "感情と意味", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "感情分析とは何でしょうか?", + "answerOptions": [ + { + "answerText": "家宝に感傷的な価値があるかどうかの研究", + "isCorrect": "false" + }, + { + "answerText": "感情の状態や主観的な情報を体系的に識別・抽出・定量化・研究する方法", + "isCorrect": "true" + }, + { + "answerText": "ある人物が悲しいのか楽しいのかを見分ける能力", + "isCorrect": "false" + } + ] + }, + { + "questionText": "ホテルのレビューのデータセット・Python・感情分析を使うことで答えられる質問は何でしょうか?", + "answerOptions": [ + { + "answerText": "レビューで最もよく使われる単語やフレーズは何でしょうか?", + "isCorrect": "true" + }, + { + "answerText": "どのリゾートに最も良いプールがあるでしょうか?", + "isCorrect": "false" + }, + { + "answerText": "このホテルにはバレーパーキングがあるでしょうか?", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 38, + "title": "自然言語処理 4: 講義後の小テスト", + "quiz": [ + { + "questionText": "自然言語処理の本質とは何でしょうか?", + "answerOptions": [ + { + "answerText": "人間の言葉を楽しいものと悲しいものに分類すること", + "isCorrect": "false" + }, + { + "answerText": "人の手を借りずに意味や感情を読み取ること", + "isCorrect": "true" + }, + { + "answerText": "感情の異常を見つけて調べること", + "isCorrect": "false" + } + ] + }, + { + "questionText": "データをクリーニングする際に気を付けたほうが良いことは何でしょうか?", + "answerOptions": [ + { + "answerText": "他の言語の文字", + "isCorrect": "false" + }, + { + "answerText": "空の行や列", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "データを操作する前にデータとその弱点を理解するのが重要である", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 39, + "title": "自然言語処理 5: 講義前の小テスト", + "quiz": [ + { + "questionText": "分析する前にデータをクリーニングすることが重要なのはなぜでしょうか?", + "answerOptions": [ + { + "answerText": "データが欠損していたり不正だったりする列があるかもしれないから", + "isCorrect": "false" + }, + { + "answerText": "汚いデータはデータセットに関する誤った結論につながる可能性があるから", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "データクリーニング戦略の例は何でしょうか?", + "answerOptions": [ + { + "answerText": "特定の質問に答えるために有用でない列や行の削除", + "isCorrect": "true" + }, + { + "answerText": "仮説に合わない検証値の排除", + "isCorrect": "false" + }, + { + "answerText": "外れ値を別の表に移し、その表で計算を行って、一致するかどうかを確認", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Tag列を使ってデータを分類すると便利なことがある", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 40, + "title": "自然言語処理 5: 講義後の小テスト", + "quiz": [ + { + "questionText": "データセットの目的は何でしょうか?", + "answerOptions": [ + { + "answerText": "世界中のホテルに対する否定的および肯定的なレビューがいくつあるかを確認すること", + "isCorrect": "false" + }, + { + "answerText": "最も良いホテルを選ぶために役立つ意見と列を追加すること", + "isCorrect": "true" + }, + { + "answerText": "人々がなぜ特定のレビューを残すのかを分析すること", + "isCorrect": "false" + } + ] + }, + { + "questionText": "ストップワードとは何でしょうか?", + "answerOptions": [ + { + "answerText": "文章の印象を変えない一般的な単語", + "isCorrect": "false" + }, + { + "answerText": "感情分析を高速化するために除去できる単語", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "感情分析をテストするには、同じレビューに対するレビュアーのスコアが一致していることを確認する", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 41, + "title": "時系列への導入: 講義前の小テスト", + "quiz": [ + { + "questionText": "時系列予測が役立つのは", + "answerOptions": [ + { + "answerText": "将来のコストを決めるとき", + "isCorrect": "false" + }, + { + "answerText": "将来の価格を予測するとき", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "時系列とは、次のような列である", + "answerOptions": [ + { + "answerText": "空間的に連続した等間隔の点", + "isCorrect": "false" + }, + { + "answerText": "時間的に連続した等間隔の点", + "isCorrect": "true" + }, + { + "answerText": "時間的および空間的に連続した等間隔の点", + "isCorrect": "false" + } + ] + }, + { + "questionText": "時系列が使用できるのは", + "answerOptions": [ + { + "answerText": "地震予測", + "isCorrect": "true" + }, + { + "answerText": "コンピュータビジョン", + "isCorrect": "false" + }, + { + "answerText": "色解析", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 42, + "title": "時系列への導入: 講義後の小テスト", + "quiz": [ + { + "questionText": "時系列のトレンドとは", + "answerOptions": [ + { + "answerText": "時間の経過に伴う測定可能な増加と減少", + "isCorrect": "true" + }, + { + "answerText": "時間の経過に伴う減少の定量化", + "isCorrect": "false" + }, + { + "answerText": "時間の経過に伴う増加と減少の差", + "isCorrect": "false" + } + ] + }, + { + "questionText": "外れ値とは", + "answerOptions": [ + { + "answerText": "標準的なデータの分散に近い点", + "isCorrect": "false" + }, + { + "answerText": "標準的なデータの分散から離れた点", + "isCorrect": "true" + }, + { + "answerText": "標準的なデータの分散の中にある点", + "isCorrect": "false" + } + ] + }, + { + "questionText": "時系列予測が最も有効なのは", + "answerOptions": [ + { + "answerText": "計量経済学", + "isCorrect": "true" + }, + { + "answerText": "歴史", + "isCorrect": "false" + }, + { + "answerText": "図書館", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 43, + "title": "時系列ARIMA: 講義前の小テスト", + "quiz": [ + { + "questionText": "ARIMAは次の略である", + "answerOptions": [ + { + "answerText": "AutoRegressive Integral Moving Average", + "isCorrect": "false" + }, + { + "answerText": "AutoRegressive Integrated Moving Action", + "isCorrect": "false" + }, + { + "answerText": "AutoRegressive Integrated Moving Average", + "isCorrect": "true" + } + ] + }, + { + "questionText": "定常性とは", + "answerOptions": [ + { + "answerText": "時間をずらしても属性が変わらないデータ", + "isCorrect": "false" + }, + { + "answerText": "時間をずらしても分布が変わらないデータ", + "isCorrect": "true" + }, + { + "answerText": "時間をずらすと分布が変わるデータ", + "isCorrect": "false" + } + ] + }, + { + "questionText": "差分変換は", + "answerOptions": [ + { + "answerText": "トレンドや季節性を安定させる", + "isCorrect": "false" + }, + { + "answerText": "トレンドや季節性を悪化させる", + "isCorrect": "false" + }, + { + "answerText": "トレンドや季節性を排除する", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 44, + "title": "時系列ARIMA: 講義後の小テスト", + "quiz": [ + { + "questionText": "ARIMAは、時系列データの特殊な形に対してモデルを次のように適合させるために使われる", + "answerOptions": [ + { + "answerText": "できるだけ平坦に", + "isCorrect": "false" + }, + { + "answerText": "できるだけ近く", + "isCorrect": "true" + }, + { + "answerText": "散布図によって", + "isCorrect": "false" + } + ] + }, + { + "questionText": "SARIMAXを使うのは", + "answerOptions": [ + { + "answerText": "季節性ARIMAモデルを管理するため", + "isCorrect": "true" + }, + { + "answerText": "特別なARIMAモデルを管理するため", + "isCorrect": "false" + }, + { + "answerText": "統計的なARIMAモデルを管理するため", + "isCorrect": "false" + } + ] + }, + { + "questionText": "「ウォークフォワード」検証では", + "answerOptions": [ + { + "answerText": "モデルを検証しながら段階的に再評価する", + "isCorrect": "false" + }, + { + "answerText": "モデルを検証しながら段階的に再学習する", + "isCorrect": "true" + }, + { + "answerText": "モデルを検証しながら段階的に再構成する", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 45, + "title": "強化 1: 講義前の小テスト", + "quiz": [ + { + "questionText": "強化学習とは何でしょうか?", + "answerOptions": [ + { + "answerText": "理解するまで何度も教えること", + "isCorrect": "false" + }, + { + "answerText": "何回も試行することで、ある環境におけるエージェントの最適な行動を解読する学習手法", + "isCorrect": "true" + }, + { + "answerText": "複数の試行を一度に行う方法を理解すること", + "isCorrect": "false" + } + ] + }, + { + "questionText": "方策とは何でしょうか?", + "answerOptions": [ + { + "answerText": "任意の状態で行動を返す関数", + "isCorrect": "true" + }, + { + "answerText": "返品できるかどうかを示す書類", + "isCorrect": "false" + }, + { + "answerText": "ランダムな目的で使用される関数", + "isCorrect": "false" + } + ] + }, + { + "questionText": "報酬関数はある環境における各状態に対するスコアを返す", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "true" + }, + { + "answerText": "正しくない", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 46, + "title": "強化 1: 講義後の小テスト", + "quiz": [ + { + "questionText": "Q学習とは何でしょうか?", + "answerOptions": [ + { + "answerText": "各状態の「良さ」を記録する仕組み", + "isCorrect": "false" + }, + { + "answerText": "Qテーブルによって方策が定義されているアルゴリズム", + "isCorrect": "false" + }, + { + "answerText": "上の両方", + "isCorrect": "true" + } + ] + }, + { + "questionText": "ランダムウォークに対応するQテーブルの値は何でしょうか?", + "answerOptions": [ + { + "answerText": "すべて同じ値", + "isCorrect": "true" + }, + { + "answerText": "-0.25", + "isCorrect": "false" + }, + { + "answerText": "すべて違う値", + "isCorrect": "false" + } + ] + }, + { + "questionText": "レッスンの学習プロセスでは搾取よりも探索を行ったほうが良かった", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "false" + }, + { + "answerText": "正しくない", + "isCorrect": "true" + } + ] + } + ] + }, + { + "id": 47, + "title": "強化 2: 講義前の小テスト", + "quiz": [ + { + "questionText": "チェスや囲碁は連続した状態を持つゲームである", + "answerOptions": [ + { + "answerText": "正しい", + "isCorrect": "false" + }, + { + "answerText": "正しくない", + "isCorrect": "true" + } + ] + }, + { + "questionText": "カートポール問題とは何でしょうか?", + "answerOptions": [ + { + "answerText": "外れ値を排除するプロセス", + "isCorrect": "false" + }, + { + "answerText": "買い物かごを最適化する方法", + "isCorrect": "false" + }, + { + "answerText": "バランシングの簡易版", + "isCorrect": "true" + } + ] + }, + { + "questionText": "ゲームの中で起こりうる状態における様々なシナリオを行うために使えるツールは何でしょうか?", + "answerOptions": [ + { + "answerText": "推測と確認", + "isCorrect": "false" + }, + { + "answerText": "シミュレーション環境", + "isCorrect": "true" + }, + { + "answerText": "状態遷移テスト", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 48, + "title": "強化 2: 講義後の小テスト", + "quiz": [ + { + "questionText": "ある環境で起こりうるすべての状態を定義する場所はどこでしょうか?", + "answerOptions": [ + { + "answerText": "メソッド", + "isCorrect": "false" + }, + { + "answerText": "アクションスペース", + "isCorrect": "true" + }, + { + "answerText": "アクションリスト", + "isCorrect": "false" + } + ] + }, + { + "questionText": "辞書のキーバリューとして使ったペアは何でしょうか?", + "answerOptions": [ + { + "answerText": "キーに(state, action)、バリューにQテーブルのエントリ", + "isCorrect": "true" + }, + { + "answerText": "キーにstate、バリューにaction", + "isCorrect": "false" + }, + { + "answerText": "キーにqvalues関数の値、バリューにaction", + "isCorrect": "false" + } + ] + }, + { + "questionText": "Q学習で使用したハイパーパラメータは何でしょうか?", + "answerOptions": [ + { + "answerText": "Qテーブルの値・現在の報酬・ランダムなアクション", + "isCorrect": "false" + }, + { + "answerText": "学習率・割引率・探索/搾取率", + "isCorrect": "true" + }, + { + "answerText": "累積報酬・学習率・探索率", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 49, + "title": "実世界への応用: 講義前の小テスト", + "quiz": [ + { + "questionText": "金融業界における機械学習の応用例は何でしょうか?", + "answerOptions": [ + { + "answerText": "自然言語処理を使ったカスタマージャーニーのパーソナライズ", + "isCorrect": "false" + }, + { + "answerText": "線形回帰を使った健康管理", + "isCorrect": "true" + }, + { + "answerText": "時系列を使ったエネルギー管理", + "isCorrect": "false" + } + ] + }, + { + "questionText": "再入院を管理するために病院で使える機械学習の手法は何でしょうか?", + "answerOptions": [ + { + "answerText": "クラスタリング", + "isCorrect": "true" + }, + { + "answerText": "時系列", + "isCorrect": "false" + }, + { + "answerText": "自然言語処理", + "isCorrect": "false" + } + ] + }, + { + "questionText": "エネルギー管理に時系列を使用する例は何でしょうか?", + "answerOptions": [ + { + "answerText": "動物のモーションセンシング", + "isCorrect": "false" + }, + { + "answerText": "スマートパーキングメーター", + "isCorrect": "true" + }, + { + "answerText": "森林火災の追跡", + "isCorrect": "false" + } + ] + } + ] + }, + { + "id": 50, + "title": "実世界への応用: 講義後の小テスト", + "quiz": [ + { + "questionText": "クレジットカードの不正利用を検出するために使用できる機械学習の手法はどれでしょうか?", + "answerOptions": [ + { + "answerText": "回帰", + "isCorrect": "false" + }, + { + "answerText": "クラスタリング", + "isCorrect": "true" + }, + { + "answerText": "自然言語処理", + "isCorrect": "false" + } + ] + }, + { + "questionText": "森林管理で例示されている機械学習の手法はどれでしょうか?", + "answerOptions": [ + { + "answerText": "強化学習", + "isCorrect": "true" + }, + { + "answerText": "時系列", + "isCorrect": "false" + }, + { + "answerText": "自然言語処理", + "isCorrect": "false" + } + ] + }, + { + "questionText": "ヘルスケア業界における機械学習の応用例は何でしょうか?", + "answerOptions": [ + { + "answerText": "回帰を使った学生の行動予測", + "isCorrect": "false" + }, + { + "answerText": "分類器を使った臨床試験の管理", + "isCorrect": "true" + }, + { + "answerText": "分類器を使った動物のモーションセンシング", + "isCorrect": "false" + } + ] + } + ] + } + ] + } +] From 369877160d966854544116ef8187ebc934aca39a Mon Sep 17 00:00:00 2001 From: Foo-x Date: Thu, 22 Jul 2021 01:40:16 +0900 Subject: [PATCH 152/228] feat: update links to quizzes Refs #149 --- 1-Introduction/1-intro-to-ML/translations/README.ja.md | 4 ++-- 1-Introduction/2-history-of-ML/translations/README.ja.md | 4 ++-- 1-Introduction/3-fairness/translations/README.ja.md | 4 ++-- 2-Regression/1-Tools/translations/README.ja.md | 4 ++-- 2-Regression/2-Data/translations/README.ja.md | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.ja.md b/1-Introduction/1-intro-to-ML/translations/README.ja.md index ada00550..fd3c11d1 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.ja.md +++ b/1-Introduction/1-intro-to-ML/translations/README.ja.md @@ -4,7 +4,7 @@ > 🎥 上の画像をクリックすると、機械学習、AI、深層学習の違いについて説明した動画が表示されます。 -## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1/) +## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/1?loc=ja) ### イントロダクション @@ -94,7 +94,7 @@ ## 🚀 Challenge AI、ML、深層学習、データサイエンスの違いについて理解していることを、紙や[Excalidraw](https://excalidraw.com/)などのオンラインアプリを使ってスケッチしてください。また、それぞれの技術が得意とする問題のアイデアを加えてみてください。 -## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2/) +## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/2?loc=ja) ## 振り返りと自習 diff --git a/1-Introduction/2-history-of-ML/translations/README.ja.md b/1-Introduction/2-history-of-ML/translations/README.ja.md index f9b4c045..9d791209 100644 --- a/1-Introduction/2-history-of-ML/translations/README.ja.md +++ b/1-Introduction/2-history-of-ML/translations/README.ja.md @@ -3,7 +3,7 @@ ![機械学習の歴史をまとめたスケッチ](../../../sketchnotes/ml-history.png) > [Tomomi Imura](https://www.twitter.com/girlie_mac)によるスケッチ -## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/3/) +## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/3?loc=ja) この授業では、機械学習と人工知能の歴史における主要な出来事を紹介します。 @@ -99,7 +99,7 @@ これらの歴史的瞬間の1つを掘り下げて、その背後にいる人々について学びましょう。魅力的な人々がいますし、文化的に空白の状態で科学的発見がなされたことはありません。どういったことが見つかるでしょうか? -## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/4/) +## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/4?loc=ja) ## 振り返りと自習 diff --git a/1-Introduction/3-fairness/translations/README.ja.md b/1-Introduction/3-fairness/translations/README.ja.md index e8448359..afa92f2b 100644 --- a/1-Introduction/3-fairness/translations/README.ja.md +++ b/1-Introduction/3-fairness/translations/README.ja.md @@ -3,7 +3,7 @@ ![機械学習における公平性をまとめたスケッチ](../../../sketchnotes/ml-fairness.png) > [Tomomi Imura](https://www.twitter.com/girlie_mac)によるスケッチ -## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/5/) +## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/5?loc=ja) ## イントロダクション @@ -178,7 +178,7 @@ AIや機械学習における公平性の保証は、依然として複雑な社 モデルの構築や使用において、不公平が明らかになるような現実のシナリオを考えてみてください。他にどのようなことを考えるべきでしょうか? -## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/6/) +## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/6?loc=ja) ## Review & Self Study このレッスンでは、機械学習における公平、不公平の概念の基礎を学びました。 diff --git a/2-Regression/1-Tools/translations/README.ja.md b/2-Regression/1-Tools/translations/README.ja.md index 0bebf16d..e91a4681 100644 --- a/2-Regression/1-Tools/translations/README.ja.md +++ b/2-Regression/1-Tools/translations/README.ja.md @@ -4,7 +4,7 @@ > [Tomomi Imura](https://www.twitter.com/girlie_mac) によって制作されたスケッチノート -## [講義前クイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/9/) +## [講義前クイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/9?loc=ja) ## イントロダクション @@ -205,7 +205,7 @@ s1 tc: T細胞(白血球の一種) ## 🚀チャレンジ このデータセットから別の変数を選択してプロットしてください。ヒント: `X = X[:, np.newaxis, 2]` の行を編集する。今回のデータセットのターゲットである、糖尿病という病気の進行について、どのような発見があるのでしょうか? -## [講義後クイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/10/) +## [講義後クイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/10?loc=ja) ## レビュー & 自主学習 diff --git a/2-Regression/2-Data/translations/README.ja.md b/2-Regression/2-Data/translations/README.ja.md index 1570be3c..05017477 100644 --- a/2-Regression/2-Data/translations/README.ja.md +++ b/2-Regression/2-Data/translations/README.ja.md @@ -4,7 +4,7 @@ > > [Dasani Madipalli](https://twitter.com/dasani_decoded) によるインフォグラフィック -## [講義前のクイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) +## [講義前のクイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11?loc=ja) ## イントロダクション @@ -195,7 +195,7 @@ Jupyter notebookでうまく利用できるテータ可視化ライブラリの Matplotlibが提供する様々なタイプのビジュアライゼーションを探ってみましょう。回帰の問題にはどのタイプが最も適しているでしょうか? -## [講義後クイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12/) +## [講義後クイズ](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/12?loc=ja) ## レビュー & 自主学習 From 281f30e2672418175244c47fe0188590ccdf76e7 Mon Sep 17 00:00:00 2001 From: Foo-x Date: Thu, 22 Jul 2021 01:41:20 +0900 Subject: [PATCH 153/228] feat: add option of ja Refs #149 --- quiz-app/src/App.vue | 1 + quiz-app/src/assets/translations/index.js | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/quiz-app/src/App.vue b/quiz-app/src/App.vue index 6baabd0c..ef95dbed 100644 --- a/quiz-app/src/App.vue +++ b/quiz-app/src/App.vue @@ -7,6 +7,7 @@ +
diff --git a/quiz-app/src/assets/translations/index.js b/quiz-app/src/assets/translations/index.js index 85931b8b..f93b84e1 100644 --- a/quiz-app/src/assets/translations/index.js +++ b/quiz-app/src/assets/translations/index.js @@ -2,13 +2,15 @@ import en from './en.json'; import tr from './tr.json'; import fr from './fr.json'; +import ja from './ja.json'; //export const defaultLocale = 'en'; const messages = { en: en[0], tr: tr[0], - fr: fr[0] + fr: fr[0], + ja: ja[0] }; export default messages; From 146d557945cb6a61ee02cada529b96f259767237 Mon Sep 17 00:00:00 2001 From: AidarSource <34319725+AidarSource@users.noreply.github.com> Date: Sat, 24 Jul 2021 15:38:43 +0600 Subject: [PATCH 154/228] Typo in text reuirements.txt to requirements.txt --- 3-Web-App/1-Web-App/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3-Web-App/1-Web-App/README.md b/3-Web-App/1-Web-App/README.md index f8db7afc..c4b406fa 100644 --- a/3-Web-App/1-Web-App/README.md +++ b/3-Web-App/1-Web-App/README.md @@ -187,7 +187,7 @@ Now you can build a Flask app to call your model and return similar results, but cd web-app ``` -1. In your terminal type `pip install`, to install the libraries listed in _reuirements.txt_: +1. In your terminal type `pip install`, to install the libraries listed in _requirements.txt_: ```bash pip install -r requirements.txt From ffb22b3fb60b28215179ea3a357b6f554cd227d1 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Sat, 24 Jul 2021 21:35:51 -0400 Subject: [PATCH 155/228] Update README.zh-cn.md small edit to show correct file structure --- 3-Web-App/1-Web-App/translations/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3-Web-App/1-Web-App/translations/README.zh-cn.md b/3-Web-App/1-Web-App/translations/README.zh-cn.md index cb8a051c..9110f2b8 100644 --- a/3-Web-App/1-Web-App/translations/README.zh-cn.md +++ b/3-Web-App/1-Web-App/translations/README.zh-cn.md @@ -165,7 +165,7 @@ print(model.predict([[50,44,-12]])) web-app/ static/ css/ - templates/ + templates/ notebook.ipynb ufo-model.pkl ``` From 3a93d131125d3f79fad6964c8000a763113d6273 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Sat, 24 Jul 2021 21:38:49 -0400 Subject: [PATCH 156/228] Update README.md typo fix for NLP --- 6-NLP/1-Introduction-to-NLP/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-NLP/1-Introduction-to-NLP/README.md b/6-NLP/1-Introduction-to-NLP/README.md index eeae6bec..924ce73c 100644 --- a/6-NLP/1-Introduction-to-NLP/README.md +++ b/6-NLP/1-Introduction-to-NLP/README.md @@ -17,7 +17,7 @@ You will learn about: ## Computational linguistics -Computational linguistics is an area of research and development over many decades that studies how computers can work with, and even understand, translate, and communicate with languages. natural language processing (NLP) is a related field focused on how computers can process 'natural', or human, languages. +Computational linguistics is an area of research and development over many decades that studies how computers can work with, and even understand, translate, and communicate with languages. Natural language processing (NLP) is a related field focused on how computers can process 'natural', or human, languages. ### Example - phone dictation From 2dabc96f1feb9a0f109b831ec38ee807dde84044 Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Sun, 25 Jul 2021 08:50:24 +0700 Subject: [PATCH 157/228] Update the links --- 1-Introduction/1-intro-to-ML/translations/README.id.md | 2 +- .../2-history-of-ML/translations/README.id.md | 2 +- 1-Introduction/3-fairness/translations/README.id.md | 2 +- .../4-techniques-of-ML/translations/README.id.md | 10 +++++----- 1-Introduction/translations/README.id.md | 8 ++++---- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.id.md b/1-Introduction/1-intro-to-ML/translations/README.id.md index 4cef05dc..0a2366a4 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.id.md +++ b/1-Introduction/1-intro-to-ML/translations/README.id.md @@ -104,4 +104,4 @@ Untuk mempelajari lebih lanjut tentang bagaimana kamu dapat menggunakan algoritm ## Tugas -[Persiapan](assignment.md) +[Persiapan](assignment.id.md) diff --git a/1-Introduction/2-history-of-ML/translations/README.id.md b/1-Introduction/2-history-of-ML/translations/README.id.md index a0a4ce05..2b4bdb6a 100644 --- a/1-Introduction/2-history-of-ML/translations/README.id.md +++ b/1-Introduction/2-history-of-ML/translations/README.id.md @@ -113,4 +113,4 @@ Berikut adalah item untuk ditonton dan didengarkan: ## Tugas -[Membuat sebuah *timeline*](assignment.md) +[Membuat sebuah *timeline*](assignment.id.md) diff --git a/1-Introduction/3-fairness/translations/README.id.md b/1-Introduction/3-fairness/translations/README.id.md index 44056ab8..99abc7d2 100644 --- a/1-Introduction/3-fairness/translations/README.id.md +++ b/1-Introduction/3-fairness/translations/README.id.md @@ -212,4 +212,4 @@ Baca mengenai *tools* Azure Machine Learning untuk memastikan keadilan ## Tugas -[Jelajahi Fairlearn](assignment.md) +[Jelajahi Fairlearn](assignment.id.md) diff --git a/1-Introduction/4-techniques-of-ML/translations/README.id.md b/1-Introduction/4-techniques-of-ML/translations/README.id.md index 77f5880f..259a90d1 100644 --- a/1-Introduction/4-techniques-of-ML/translations/README.id.md +++ b/1-Introduction/4-techniques-of-ML/translations/README.id.md @@ -35,9 +35,9 @@ Sebelum mulai membangun model kamu, ada beberapa tugas yang harus kamu selesaika Untuk dapat menjawab pertanyaan kamu dengan kepastian, Kamu memerlukan sejumlah besar data dengan jenis yang tepat. Ada dua hal yang perlu kamu lakukan pada saat ini: - **Mengumpulkan data**. Ingat pelajaran sebelumnya tentang keadilan dalam analisis data, kumpulkan data kamu dengan hati-hati. Waspadai sumber datanya, bias bawaan apa pun yang mungkin dimiliki, dan dokumentasikan asalnya. -- **Menyiapkan data**. Ada beberapa langkah dalam proses persiapan data. Kamu mungkin perlu menyusun data dan melakukan normalisasi jika berasal dari berbagai sumber. Kamu dapat meningkatkan kualitas dan kuantitas data melalui berbagai metode seperti mengonversi string menjadi angka (seperti yang kita lakukan di [Clustering](../../5-Clustering/1-Visualize/README.md)). Kamu mungkin juga bisa membuat data baru berdasarkan data yang asli (seperti yang kita lakukan di [Classification](../../4-Classification/1-Introduction/README.md)). Kamu bisa membersihkan dan mengubah data (seperti yang kita lakukan sebelum pelajaran [Web App](../3-Web-App/README.md)). Terakhir, Kamu mungkin juga perlu mengacaknya dan mengubah urutannya, tergantung pada teknik *training* kamu. +- **Menyiapkan data**. Ada beberapa langkah dalam proses persiapan data. Kamu mungkin perlu menyusun data dan melakukan normalisasi jika berasal dari berbagai sumber. Kamu dapat meningkatkan kualitas dan kuantitas data melalui berbagai metode seperti mengonversi string menjadi angka (seperti yang kita lakukan di [Clustering](../../5-Clustering/1-Visualize/translations/README.id.md)). Kamu mungkin juga bisa membuat data baru berdasarkan data yang asli (seperti yang kita lakukan di [Classification](../../4-Classification/1-Introduction/translations/README.id.md)). Kamu bisa membersihkan dan mengubah data (seperti yang kita lakukan sebelum pelajaran [Web App](../3-Web-App/translations/README.id.md)). Terakhir, Kamu mungkin juga perlu mengacaknya dan mengubah urutannya, tergantung pada teknik *training* kamu. -✅ Setelah mengumpulkan dan memproses data kamu, luangkan waktu sejenak untuk melihat apakah bentuknya memungkinkan kamu untuk menjawab pertanyaan yang kamu maksudkan. Mungkin data tidak akan berkinerja baik dalam tugas yang kamu berikan, seperti yang kita temukan dalam pelajaran [Clustering](../../5-Clustering/1-Visualize/README.md). +✅ Setelah mengumpulkan dan memproses data kamu, luangkan waktu sejenak untuk melihat apakah bentuknya memungkinkan kamu untuk menjawab pertanyaan yang kamu maksudkan. Mungkin data tidak akan berkinerja baik dalam tugas yang kamu berikan, seperti yang kita temukan dalam pelajaran [Clustering](../../5-Clustering/1-Visualize/translations/README.id.md). ### Memilih variabel fiturmu @@ -46,14 +46,14 @@ Sebuah [fitur](https://www.datasciencecentral.com/profiles/blogs/an-introduction 🎓 **Feature Selection dan Feature Extraction** Bagaimana kamu tahu variabel mana yang harus dipilih saat membangun model? Kamu mungkin akan melalui proses pemilihan fitur (*Feature Selection*) atau ekstraksi fitur (*Feature Extraction*) untuk memilih variabel yang tepat untuk model yang paling berkinerja. Namun, keduanya tidak sama: "Ekstraksi fitur membuat fitur baru dari fungsi fitur asli, sedangkan pemilihan fitur mengembalikan subset fitur." ([sumber](https://wikipedia.org/wiki/Feature_selection)) ### Visualisasikan datamu -Aspek penting dari toolkit data scientist adalah kemampuan untuk memvisualisasikan data menggunakan beberapa *library* seperti Seaborn atau MatPlotLib. Merepresentasikan data kamu secara visual memungkinkan kamu mengungkap korelasi tersembunyi yang dapat kamu manfaatkan. Visualisasimu mungkin juga membantu kamu mengungkap data yang bias atau tidak seimbang (seperti yang kita temukan dalam [Classification](../../4-Classification/2-Classifiers-1/README.md)). +Aspek penting dari toolkit data scientist adalah kemampuan untuk memvisualisasikan data menggunakan beberapa *library* seperti Seaborn atau MatPlotLib. Merepresentasikan data kamu secara visual memungkinkan kamu mengungkap korelasi tersembunyi yang dapat kamu manfaatkan. Visualisasimu mungkin juga membantu kamu mengungkap data yang bias atau tidak seimbang (seperti yang kita temukan dalam [Classification](../../4-Classification/2-Classifiers-1/translations/README.id.md)). ### Membagi dataset Sebelum memulai *training*, Kamu perlu membagi dataset menjadi dua atau lebih bagian dengan ukuran yang tidak sama tapi masih mewakili data dengan baik. - **Training**. Bagian dataset ini digunakan untuk men-training model kamu. Bagian dataset ini merupakan mayoritas dari dataset asli. - **Testing**. Sebuah dataset tes adalah kelompok data independen, seringkali dikumpulkan dari data yang asli yang akan digunakan untuk mengkonfirmasi kinerja dari model yang dibuat. -- **Validating**. Dataset validasi adalah kumpulan contoh mandiri yang lebih kecil yang kamu gunakan untuk menyetel hyperparameter atau arsitektur model untuk meningkatkan model. Tergantung dari ukuran data dan pertanyaan yang kamu ajukan, Kamu mungkin tidak perlu membuat dataset ketiga ini (seperti yang kita catat dalam [Time Series Forecasting](../7-TimeSeries/1-Introduction/README.md)). +- **Validating**. Dataset validasi adalah kumpulan contoh mandiri yang lebih kecil yang kamu gunakan untuk menyetel hyperparameter atau arsitektur model untuk meningkatkan model. Tergantung dari ukuran data dan pertanyaan yang kamu ajukan, Kamu mungkin tidak perlu membuat dataset ketiga ini (seperti yang kita catat dalam [Time Series Forecasting](../7-TimeSeries/1-Introduction/translations/README.id.md)). ## Membuat sebuah model @@ -102,4 +102,4 @@ Cari di Internet mengenai wawancara dengan data scientist yang mendiskusikan pek ## Tugas -[Wawancara dengan data scientist](assignment.md) +[Wawancara dengan data scientist](assignment.id.md) diff --git a/1-Introduction/translations/README.id.md b/1-Introduction/translations/README.id.md index d2b0ae53..4ae59fb1 100644 --- a/1-Introduction/translations/README.id.md +++ b/1-Introduction/translations/README.id.md @@ -8,10 +8,10 @@ sejarah serta teknik-teknik yang digunakan oleh para peneliti. Ayo jelajahi duni ### Pelajaran -1. [Pengantar Machine Learning](1-intro-to-ML/README.md) -1. [Sejarah dari Machine Learning dan AI](2-history-of-ML/README.md) -1. [Keadilan dan Machine Learning](3-fairness/README.md) -1. [Teknik-Teknik Machine Learning](4-techniques-of-ML/README.md) +1. [Pengantar Machine Learning](../1-intro-to-ML/translations/README.id.md) +1. [Sejarah dari Machine Learning dan AI](../2-history-of-ML/translations/README.id.md) +1. [Keadilan dan Machine Learning](../3-fairness/translations/README.id.md) +1. [Teknik-Teknik Machine Learning](../4-techniques-of-ML/translations/README.id.md) ### Penghargaan "Pengantar Machine Learning" ditulis dengan ♥️ oleh sebuah tim yang terdiri dari [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan), [Ornella Altunyan](https://twitter.com/ornelladotcom) dan [Jen Looper](https://twitter.com/jenlooper) From 8c5f5f02c606c5c42c44d96e7280355b23615195 Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Sun, 25 Jul 2021 10:43:26 +0700 Subject: [PATCH 158/228] Update some translation --- .../1-intro-to-ML/translations/README.id.md | 4 +-- .../2-history-of-ML/translations/README.id.md | 18 ++++++------- .../3-fairness/translations/README.id.md | 26 +++++++++---------- .../translations/README.id.md | 10 +++---- 4 files changed, 28 insertions(+), 30 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.id.md b/1-Introduction/1-intro-to-ML/translations/README.id.md index 0a2366a4..2f30f213 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.id.md +++ b/1-Introduction/1-intro-to-ML/translations/README.id.md @@ -17,10 +17,10 @@ Selamat datang di pelajaran Machine Learning klasik untuk pemula! Baik kamu yang Sebelum memulai kurikulum ini, kamu perlu memastikan komputer kamu sudah dipersiapkan untuk menjalankan *notebook* secara lokal. -- **Konfigurasi komputer kamu dengan video-video ini**. Pelajari bagaimana menyiapkan komputer kamu dalam [video-video](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6) ini. +- **Konfigurasi komputer kamu dengan video ini**. Pelajari bagaimana menyiapkan komputer kamu dalam [video-video](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6) ini. - **Belajar Python**. Disarankan juga untuk memiliki pemahaman dasar dari [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa), sebuah bahasa pemrograman yang digunakan oleh data scientist yang juga akan kita gunakan dalam pelajaran ini. - **Belajar Node.js dan JavaScript**. Kita juga menggunakan JavaScript beberapa kali dalam pelajaran ini ketika membangun aplikasi web, jadi kamu perlu menginstal [node](https://nodejs.org) dan [npm](https://www.npmjs.com/), serta [Visual Studio Code](https://code.visualstudio.com/) yang tersedia untuk pengembangan Python dan JavaScript. -- **Buat akun GitHub**. Karena kamu menemukan kami di [GitHub](https://github.com), kamu mungkin sudah punya akun, tapi jika belum, silahkan buat akun baru kemudian *fork* kurikulum ini untuk kamu pergunakan sendiri. (Jangan ragu untuk memberikan kami bintang juga 😊) +- **Buat akun GitHub**. Karena kamu menemukan kami di [GitHub](https://github.com), kamu mungkin sudah punya akun, tapi jika belum, silakan buat akun baru kemudian *fork* kurikulum ini untuk kamu pergunakan sendiri. (Jangan ragu untuk memberikan kami bintang juga 😊) - **Jelajahi Scikit-learn**. Buat diri kamu familiar dengan [Scikit-learn]([https://scikit-learn.org/stable/user_guide.html), seperangkat *library* ML yang kita acu dalam pelajaran-pelajaran ini. ### Apa itu Machine Learning? diff --git a/1-Introduction/2-history-of-ML/translations/README.id.md b/1-Introduction/2-history-of-ML/translations/README.id.md index 2b4bdb6a..ff66b014 100644 --- a/1-Introduction/2-history-of-ML/translations/README.id.md +++ b/1-Introduction/2-history-of-ML/translations/README.id.md @@ -13,10 +13,10 @@ Sejarah Artifical Intelligence, AI, sebagai bidang terkait dengan sejarah Machin - 1763, 1812 [Bayes Theorem](https://wikipedia.org/wiki/Bayes%27_theorem) dan para pendahulu. Teorema ini dan penerapannya mendasari inferensi, mendeskripsikan kemungkinan suatu peristiwa terjadi berdasarkan pengetahuan sebelumnya. - 1805 [Least Square Theory](https://wikipedia.org/wiki/Least_squares) oleh matematikawan Perancis Adrien-Marie Legendre. Teori ini yang akan kamu pelajari di unit Regresi, ini membantu dalam *data fitting*. -- 1913 [Markov Chains](https://wikipedia.org/wiki/Markov_chain) dinamai setelah matematikawan Rusia, Andrey Markov, digunakan untuk mendeskripsikan sebuah urutan dari kejadian-kejadian yang mungkin terjadi berdasarkan kondisi sebelumnya. +- 1913 [Markov Chains](https://wikipedia.org/wiki/Markov_chain) dinamai dengan nama matematikawan Rusia, Andrey Markov, digunakan untuk mendeskripsikan sebuah urutan dari kejadian-kejadian yang mungkin terjadi berdasarkan kondisi sebelumnya. - 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron) adalah sebuah tipe dari *linear classifier* yang ditemukan oleh psikolog Amerika, Frank Rosenblatt, yang mendasari kemajuan dalam *Deep Learning*. - 1967 [Nearest Neighbor](https://wikipedia.org/wiki/Nearest_neighbor) adalah sebuah algoritma yang pada awalnya didesain untuk memetakan rute. Dalam konteks ML, ini digunakan untuk mendeteksi berbagai pola. -- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) digunakan untuk men-*train* [feedforward neural networks](https://wikipedia.org/wiki/Feedforward_neural_network). +- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) digunakan untuk melatih [feedforward neural networks](https://wikipedia.org/wiki/Feedforward_neural_network). - 1982 [Recurrent Neural Networks](https://wikipedia.org/wiki/Recurrent_neural_network) adalah *artificial neural networks* yang berasal dari *feedforward neural networks* yang membuat grafik sementara. ✅ Lakukan sebuah riset kecil. Tanggal berapa lagi yang merupakan tanggal penting dalam sejarah ML dan AI? @@ -36,9 +36,9 @@ Workshop ini dipuji karena telah memprakarsai dan mendorong beberapa diskusi ter ## 1956 - 1974: "Tahun-tahun Emas" -Dari tahun 1950-an hingga pertengahan 70-an, optimisme memuncak dengan harapan bahwa AI dapat memecahkan banyak masalah. Pada tahun 1967, Marvin Minsky dengan yakin menyatakan bahwa "Dalam satu generasi ... masalah menciptakan '*artificial intelligence*' secara substansial akan terpecahkan." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall) +Dari tahun 1950-an hingga pertengahan 70-an, optimisme memuncak dengan harapan bahwa AI dapat memecahkan banyak masalah. Pada tahun 1967, Marvin Minsky dengan yakin menyatakan bahwa "Dalam satu generasi ... masalah menciptakan '*artificial intelligence*' akan terpecahkan secara substansial." (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall) -penelitian *natural language processing* berkembang, pencarian disempurnakan dan dibuat lebih kuat, dan konsep '*micro-worlds*' diciptakan, di mana tugas-tugas sederhana diselesaikan menggunakan instruksi bahasa sederhana. +Penelitian *natural language processing* berkembang, pencarian disempurnakan dan dibuat lebih *powerful*, dan konsep '*micro-worlds*' diciptakan, di mana tugas-tugas sederhana diselesaikan menggunakan instruksi bahasa sederhana. Penelitian didanai dengan baik oleh lembaga pemerintah, banyak kemajuan dibuat dalam komputasi dan algoritma, dan prototipe mesin cerdas dibangun. Beberapa mesin tersebut antara lain: @@ -63,19 +63,19 @@ Penelitian didanai dengan baik oleh lembaga pemerintah, banyak kemajuan dibuat d Pada pertengahan 1970-an, semakin jelas bahwa kompleksitas pembuatan 'mesin cerdas' telah diremehkan dan janjinya, mengingat kekuatan komputasi yang tersedia, telah dilebih-lebihkan. Pendanaan telah habis dan kepercayaan dalam bidang ini menurun. Beberapa masalah yang memengaruhi kepercayaan diri termasuk: - **Keterbatasan**. Kekuatan komputasi terlalu terbatas. -- **Ledakan kombinatorial**. Jumlah parameter yang perlu di-*train* bertambah secara eksponensial karena lebih banyak hal yang diminta dari komputer, tanpa evolusi paralel dari kekuatan dan kemampuan komputasi. +- **Ledakan kombinatorial**. Jumlah parameter yang perlu dilatih bertambah secara eksponensial karena lebih banyak hal yang diminta dari komputer, tanpa evolusi paralel dari kekuatan dan kemampuan komputasi. - **Kekurangan data**. Adanya kekurangan data yang menghalangi proses pengujian, pengembangan, dan penyempurnaan algoritma. - **Apakah kita menanyakan pertanyaan yang tepat?**. Pertanyaan-pertanyaan yang diajukan pun mulai dipertanyakan kembali. Para peneliti mulai melontarkan kritik tentang pendekatan mereka - Tes Turing mulai dipertanyakan, di antara ide-ide lain, dari 'teori ruang Cina' yang mengemukakan bahwa, "memprogram komputer digital mungkin membuatnya tampak memahami bahasa tetapi tidak dapat menghasilkan pemahaman yang sebenarnya." ([sumber](https://plato.stanford.edu/entries/chinese-room/)) - - Etika memperkenalkan kecerdasan buatan seperti "terapis" ELIZA ke dalam masyarakat telah ditantang. + - Tantangan etika ketika memperkenalkan kecerdasan buatan seperti si "terapis" ELIZA ke dalam masyarakat. -Pada saat yang sama, berbagai aliran pemikiran AI mulai terbentuk. Sebuah dikotomi didirikan antara praktek ["scruffy" vs. "neat AI"](https://wikipedia.org/wiki/Neats_and_scruffies). Lab _Scruffy_ mengubah program selama berjam-jam sampai mendapat hasil yang diinginkan. Lab _Neat_ "berfokus pada logika dan penyelesaian masalah formal". ELIZA dan SHRDLU adalah sistem _scruffy_ yang terkenal. Pada tahun 1980-an, karena perkembangan permintaan untuk membuat sistem ML yang dapat direproduksi, pendekatan _neat_ secara bertahap menjadi yang terdepan karena hasilnya lebih dapat dijelaskan. +Pada saat yang sama, berbagai aliran pemikiran AI mulai terbentuk. Sebuah dikotomi didirikan antara praktik ["scruffy" vs. "neat AI"](https://wikipedia.org/wiki/Neats_and_scruffies). Lab _Scruffy_ mengubah program selama berjam-jam sampai mendapat hasil yang diinginkan. Lab _Neat_ "berfokus pada logika dan penyelesaian masalah formal". ELIZA dan SHRDLU adalah sistem _scruffy_ yang terkenal. Pada tahun 1980-an, karena perkembangan permintaan untuk membuat sistem ML yang dapat direproduksi, pendekatan _neat_ secara bertahap menjadi yang terdepan karena hasilnya lebih dapat dijelaskan. ## 1980s Sistem Pakar Seiring berkembangnya bidang ini, manfaatnya bagi bisnis menjadi lebih jelas, dan begitu pula dengan menjamurnya 'sistem pakar' pada tahun 1980-an. "Sistem pakar adalah salah satu bentuk perangkat lunak artificial intelligence (AI) pertama yang benar-benar sukses." ([sumber](https://wikipedia.org/wiki/Expert_system)). -Tipe sistem ini sebenarnya adalah _hybrid_, sebagian terdiri dari mesin aturan yang mendefinisikan *business requirement*, dan mesin inferensi yang memanfaatkan sistem aturan untuk menyimpulkan fakta baru. +Tipe sistem ini sebenarnya adalah _hybrid_, sebagian terdiri dari mesin aturan yang mendefinisikan kebutuhan bisnis, dan mesin inferensi yang memanfaatkan sistem aturan untuk menyimpulkan fakta baru. Pada era ini juga terlihat adanya peningkatan perhatian pada jaringan saraf. @@ -89,7 +89,7 @@ Pada zaman ini memperlihatkan era baru bagi ML dan AI untuk dapat menyelesaikan ## Sekarang -Saat ini, *machine learning* dan AI hampir ada di setiap bagian dari kehidupan kita. Era ini menuntut pemahaman yang cermat tentang risiko dan efek potensi dari algoritma ini pada kehidupan manusia. Seperti yang telah dinyatakan oleh Brad Smith dari Microsoft, "Teknologi informasi mengangkat isu-isu yang menjadi inti dari perlindungan hak asasi manusia yang mendasar seperti privasi dan kebebasan berekspresi. Masalah-masalah ini meningkatkan tanggung jawab bagi perusahaan teknologi yang menciptakan produk-produk ini. Dalam pandangan kami, mereka juga menyerukan peraturan pemerintah yang bijaksana dan untuk pengembangan norma-norma seputar penggunaan yang wajar" ([sumber](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)). +Saat ini, *machine learning* dan AI hampir ada di setiap bagian dari kehidupan kita. Era ini menuntut pemahaman yang cermat tentang risiko dan efek potensi dari berbagai algoritma yang ada pada kehidupan manusia. Seperti yang telah dinyatakan oleh Brad Smith dari Microsoft, "Teknologi informasi mengangkat isu-isu yang menjadi inti dari perlindungan hak asasi manusia yang mendasar seperti privasi dan kebebasan berekspresi. Masalah-masalah ini meningkatkan tanggung jawab bagi perusahaan teknologi yang menciptakan produk-produk ini. Dalam pandangan kami, mereka juga menyerukan peraturan pemerintah yang bijaksana dan untuk pengembangan norma-norma seputar penggunaan yang wajar" ([sumber](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)). Kita masih belum tahu apa yang akan terjadi di masa depan, tetapi penting untuk memahami sistem komputer dan perangkat lunak serta algoritma yang dijalankannya. Kami berharap kurikulum ini akan membantu kamu untuk mendapatkan pemahaman yang lebih baik sehingga kamu dapat memutuskan sendiri. diff --git a/1-Introduction/3-fairness/translations/README.id.md b/1-Introduction/3-fairness/translations/README.id.md index 99abc7d2..03bf7963 100644 --- a/1-Introduction/3-fairness/translations/README.id.md +++ b/1-Introduction/3-fairness/translations/README.id.md @@ -38,23 +38,23 @@ Menjamin keadilan dalam AI dan machine learning tetap menjadi tantangan sosiotek ### Kerugian Terkait Keadilan -Apa yang kamu maksud dengan ketidakadilan? "Ketidakadilan" mencakup dampak negatif, atau "bahaya", bagi sekelompok orang, seperti yang didefinisikan dalam hal ras, jenis kelamin, usia, atau status disabilitas. +Apa yang dimaksud dengan ketidakadilan? "Ketidakadilan" mencakup dampak negatif atau "bahaya" bagi sekelompok orang, seperti yang didefinisikan dalam hal ras, jenis kelamin, usia, atau status disabilitas. Kerugian utama yang terkait dengan keadilan dapat diklasifikasikan sebagai: - **Alokasi**, jika suatu jenis kelamin atau etnisitas misalkan lebih disukai daripada yang lain. -- **Kualitas layanan**. Jika kamu melatih data untuk satu skenario tertentu tetapi kenyataannya jauh lebih kompleks, itu mengarah ke layanan yang berkinerja buruk. +- **Kualitas layanan**. Jika kamu melatih data untuk satu skenario tertentu tetapi kenyataannya jauh lebih kompleks, hasilnya adalah layanan yang berkinerja buruk. - **Stereotip**. Mengaitkan grup tertentu dengan atribut yang ditentukan sebelumnya. - **Fitnah**. Untuk mengkritik dan melabeli sesuatu atau seseorang secara tidak adil. -- **Representasi yang kurang atau berlebihan**. Idenya adalah bahwa kelompok tertentu tidak terlihat dalam profesi tertentu, dan layanan atau fungsi apa pun yang terus dipromosikan yang berkontribusi pada kerugian. +- **Representasi yang kurang atau berlebihan**. Idenya adalah bahwa kelompok tertentu tidak terlihat dalam profesi tertentu, dan layanan atau fungsi apa pun yang terus dipromosikan yang menambah kerugian. Mari kita lihat contoh-contohnya. ### Alokasi -Pertimbangkan sistem hipotetis untuk menyaring aplikasi pinjaman. Sistem cenderung memilih pria kulit putih sebagai kandidat yang lebih baik daripada kelompok lain. Akibatnya, pinjaman ditahan dari pemohon tertentu. +Bayangkan sebuah sistem untuk menyaring pengajuan pinjaman. Sistem cenderung memilih pria kulit putih sebagai kandidat yang lebih baik daripada kelompok lain. Akibatnya, pinjaman ditahan dari pemohon tertentu. -Contoh lain adalah alat perekrutan eksperimental yang dikembangkan oleh perusahaan besar untuk menyaring kandidat. Alat tersebut secara sistematis mendiskriminasi satu gender dengan menggunakan model yang dilatih untuk lebih memilih kata-kata yang terkait dengan yang lain. Hal ini mengakibatkan kandidat yang resumenya berisi kata-kata seperti "tim rugby wanita". +Contoh lain adalah alat perekrutan eksperimental yang dikembangkan oleh perusahaan besar untuk menyaring kandidat. Alat tersebut secara sistematis mendiskriminasi satu gender dengan menggunakan model yang dilatih untuk lebih memilih kata-kata yang terkait dengan gender lain. Hal ini mengakibatkan kandidat yang resumenya berisi kata-kata seperti "tim rugby wanita" tidak masuk kualifikasi. ✅ Lakukan sedikit riset untuk menemukan contoh dunia nyata dari sesuatu seperti ini @@ -62,12 +62,10 @@ Contoh lain adalah alat perekrutan eksperimental yang dikembangkan oleh perusaha Para peneliti menemukan bahwa beberapa pengklasifikasi gender komersial memiliki tingkat kesalahan yang lebih tinggi di sekitar gambar wanita dengan warna kulit lebih gelap dibandingkan dengan gambar pria dengan warna kulit lebih terang. [Referensi](https://www.media.mit.edu/publications/gender-shades-intersectional-accuracy-disparities-in-commercial-gender-classification/) -Contoh terkenal lainnya adalah dispenser sabun tangan yang sepertinya tidak bisa merasakan orang dengan kulit gelap. [Referensi](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773) +Contoh terkenal lainnya adalah dispenser sabun tangan yang sepertinya tidak bisa mendeteksi orang dengan kulit gelap. [Referensi](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773) ### Stereotip -Stereotypical gender view was found in machine translation. When translating “he is a nurse and she is a doctor” into Turkish, problems were encountered. Turkish is a genderless language which has one pronoun, “o” to convey a singular third person, but translating the sentence back from Turkish to English yields the stereotypical and incorrect as “she is a nurse and he is a doctor”. - Pandangan gender stereotip ditemukan dalam terjemahan mesin. Ketika menerjemahkan "dia (laki-laki) adalah seorang perawat dan dia (perempuan) adalah seorang dokter" ke dalam bahasa Turki, masalah muncul. Turki adalah bahasa tanpa gender yang memiliki satu kata ganti, "o" untuk menyampaikan orang ketiga tunggal, tetapi menerjemahkan kalimat kembali dari Turki ke Inggris menghasilkan stereotip dan salah sebagai "dia (perempuan) adalah seorang perawat dan dia (laki-laki) adalah seorang dokter". ![terjemahan ke bahasa Turki](images/gender-bias-translate-en-tr.png) @@ -101,7 +99,7 @@ Lima jenis bahaya utama ini tidak saling eksklusif, dan satu sistem dapat menunj ## Mendeteksi Ketidakadilan -Ada banyak alasan mengapa sistem tertentu berperilaku tidak adil. Bias sosial, misalnya, mungkin tercermin dalam kumpulan data yang digunakan untuk melatih mereka. Misalnya, ketidakadilan perekrutan mungkin telah diperburuk oleh ketergantungan yang berlebihan pada data historis. Dengan menggunakan pola dalam resume yang dikirimkan ke perusahaan selama periode 10 tahun, model tersebut menentukan bahwa pria lebih berkualitas karena mayoritas resume berasal dari pria, yang mencerminkan dominasi pria di masa lalu di industri teknologi. +Ada banyak alasan mengapa sistem tertentu berperilaku tidak adil. Bias sosial, misalnya, mungkin tercermin dalam kumpulan data yang digunakan untuk melatih. Misalnya, ketidakadilan perekrutan mungkin telah diperburuk oleh ketergantungan yang berlebihan pada data historis. Dengan menggunakan pola dalam resume yang dikirimkan ke perusahaan selama periode 10 tahun, model tersebut menentukan bahwa pria lebih berkualitas karena mayoritas resume berasal dari pria, yang mencerminkan dominasi pria di masa lalu di industri teknologi. Data yang tidak memadai tentang sekelompok orang tertentu dapat menjadi alasan ketidakadilan. Misalnya, pengklasifikasi gambar memiliki tingkat kesalahan yang lebih tinggi untuk gambar orang berkulit gelap karena warna kulit yang lebih gelap kurang terwakili dalam data. @@ -133,13 +131,13 @@ Apa bahaya dan manfaat yang terkait dengan pinjaman? Pikirkan tentang skenario n ### Identifikasi kelompok yang terkena dampak -Langkah selanjutnya adalah menentukan kelompok mana yang kemungkinan akan terpengaruh. Misalnya, dalam kasus permohonan kartu kredit, seorang model mungkin menentukan bahwa perempuan harus menerima batas kredit yang jauh lebih rendah dibandingkan dengan pasangan mereka yang berbagi aset rumah tangga. Dengan demikian, seluruh demografi, yang ditentukan berdasarkan jenis kelamin, terpengaruh. +Langkah selanjutnya adalah menentukan kelompok mana yang kemungkinan akan terpengaruh. Misalnya, dalam kasus permohonan kartu kredit, sebuah model mungkin menentukan bahwa perempuan harus menerima batas kredit yang jauh lebih rendah dibandingkan dengan pasangan mereka yang berbagi aset rumah tangga. Dengan demikian, seluruh demografi yang ditentukan berdasarkan jenis kelamin menjadi terpengaruh. ### Tentukan metrik keadilan -Kamu telah mengidentifikasi bahaya dan kelompok yang terpengaruh, dalam hal ini, digambarkan berdasarkan jenis kelamin. Sekarang, gunakan faktor terukur untuk memisahkan metriknya. Misalnya, dengan menggunakan data di bawah ini, Kamu dapat melihat bahwa wanita memiliki tingkat *false positive* terbesar dan pria memiliki yang terkecil, dan kebalikannya berlaku untuk *false negative*. +Kamu telah mengidentifikasi bahaya dan kelompok yang terpengaruh, dalam hal ini digambarkan berdasarkan jenis kelamin. Sekarang, gunakan faktor terukur (*quantified factors*) untuk memisahkan metriknya. Misalnya, dengan menggunakan data di bawah ini, Kamu dapat melihat bahwa wanita memiliki tingkat *false positive* terbesar dan pria memiliki yang terkecil, dan kebalikannya berlaku untuk *false negative*. -✅ Dalam pelajaran selanjutnya tentang Pengelompokan, Kamu akan melihat bagaimana membangun 'matriks kebingungan' ini dalam kode +✅ Dalam pelajaran selanjutnya tentang *Clustering*, Kamu akan melihat bagaimana membangun 'confusion matrix' ini dalam kode | | False positive rate | False negative rate | count | | ---------- | ------------------- | ------------------- | ----- | @@ -148,7 +146,7 @@ Kamu telah mengidentifikasi bahaya dan kelompok yang terpengaruh, dalam hal ini, | Non-binary | 0.33 | 0.31 | 1266 | -Tabel ini memberitahu kita beberapa hal. Pertama, kami mencatat bahwa ada sedikit orang non-biner dalam data. Datanya condong, jadi Kamu harus berhati-hati dalam menafsirkan angka-angka ini. +Tabel ini memberitahu kita beberapa hal. Pertama, kami mencatat bahwa ada sedikit orang non-biner dalam data. Datanya condong (*skewed*), jadi Kamu harus berhati-hati dalam menafsirkan angka-angka ini. Dalam hal ini, kita memiliki 3 grup dan 2 metrik. Ketika kita memikirkan tentang bagaimana sistem kita memengaruhi kelompok pelanggan dengan permohonan pinjaman mereka, ini mungkin cukup, tetapi ketika Kamu ingin menentukan jumlah grup yang lebih besar, Kamu mungkin ingin menyaringnya menjadi kumpulan ringkasan yang lebih kecil. Untuk melakukannya, Kamu dapat menambahkan lebih banyak metrik, seperti perbedaan terbesar atau rasio terkecil dari setiap *false negative* dan *false positive*. @@ -198,7 +196,7 @@ Tonton workshop ini untuk menyelami lebih dalam kedalam topik: Kamu juga dapat membaca: -- Pusat sumber daya RAI Microsoft: [Sumber daya Responsible AI – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4) +- Pusat sumber daya RAI Microsoft: [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4) - Grup riset FATE Microsoft: [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/) diff --git a/1-Introduction/4-techniques-of-ML/translations/README.id.md b/1-Introduction/4-techniques-of-ML/translations/README.id.md index 259a90d1..7c273024 100644 --- a/1-Introduction/4-techniques-of-ML/translations/README.id.md +++ b/1-Introduction/4-techniques-of-ML/translations/README.id.md @@ -1,9 +1,9 @@ # Teknik-teknik Machine Learning -Proses membangun, menggunakan, dan memelihara model machine learning dan data yang digunakan adalah proses yang sangat berbeda dari banyak alur kerja pengembangan lainnya. Dalam pelajaran ini, kita akan mengungkap prosesnya, dan menguraikan teknik utama yang perlu Kamu ketahui. Kamu akan: +Proses membangun, menggunakan, dan memelihara model machine learning dan data yang digunakan adalah proses yang sangat berbeda dari banyak alur kerja pengembangan lainnya. Dalam pelajaran ini, kita akan mengungkap prosesnya dan menguraikan teknik utama yang perlu Kamu ketahui. Kamu akan: - Memahami gambaran dari proses yang mendasari machine learning. -- Menjelajahi konsep dasar seperti '*models*', '*predictions*', dan '**training data*'. +- Menjelajahi konsep dasar seperti '*models*', '*predictions*', dan '*training data*'. ## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/7/) ## Pengantar @@ -43,7 +43,7 @@ Untuk dapat menjawab pertanyaan kamu dengan kepastian, Kamu memerlukan sejumlah Sebuah [fitur](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) adalah sebuah properti yang dapat diukur dalam data kamu. Dalam banyak dataset, properti dinyatakan sebagai sebuah heading kolom seperti 'date' 'size' atau 'color'. Variabel fitur kamu yang biasanya direpresentasikan sebagai `y` dalam kode, mewakili jawaban atas pertanyaan yang kamu coba tanyakan tentang data kamu: pada bulan Desember, labu dengan **warna** apa yang akan paling murah? di San Francisco, lingkungan mana yang menawarkan **harga** real estate terbaik? -🎓 **Feature Selection dan Feature Extraction** Bagaimana kamu tahu variabel mana yang harus dipilih saat membangun model? Kamu mungkin akan melalui proses pemilihan fitur (*Feature Selection*) atau ekstraksi fitur (*Feature Extraction*) untuk memilih variabel yang tepat untuk model yang paling berkinerja. Namun, keduanya tidak sama: "Ekstraksi fitur membuat fitur baru dari fungsi fitur asli, sedangkan pemilihan fitur mengembalikan subset fitur." ([sumber](https://wikipedia.org/wiki/Feature_selection)) +🎓 **Feature Selection dan Feature Extraction** Bagaimana kamu tahu variabel mana yang harus dipilih saat membangun model? Kamu mungkin akan melalui proses pemilihan fitur (*Feature Selection*) atau ekstraksi fitur (*Feature Extraction*) untuk memilih variabel yang tepat untuk membuat model yang berkinerja paling baik. Namun, keduanya tidak sama: "Ekstraksi fitur membuat fitur baru dari fungsi fitur asli, sedangkan pemilihan fitur mengembalikan subset fitur." ([sumber](https://wikipedia.org/wiki/Feature_selection)) ### Visualisasikan datamu Aspek penting dari toolkit data scientist adalah kemampuan untuk memvisualisasikan data menggunakan beberapa *library* seperti Seaborn atau MatPlotLib. Merepresentasikan data kamu secara visual memungkinkan kamu mengungkap korelasi tersembunyi yang dapat kamu manfaatkan. Visualisasimu mungkin juga membantu kamu mengungkap data yang bias atau tidak seimbang (seperti yang kita temukan dalam [Classification](../../4-Classification/2-Classifiers-1/translations/README.id.md)). @@ -57,7 +57,7 @@ Sebelum memulai *training*, Kamu perlu membagi dataset menjadi dua atau lebih ba ## Membuat sebuah model -Dengan menggunakan data *training*, tujuan kamu adalah membuat model atau representasi statistik data kamu, menggunakan berbagai algoritma untuk **melatihnya**. Melatih model berarti mengeksposnya dengan data dan mengizinkannya membuat asumsi tentang pola yang ditemukan, divalidasi, dan diterima atau ditolak. +Dengan menggunakan data *training*, tujuan kamu adalah membuat model atau representasi statistik data kamu menggunakan berbagai algoritma untuk **melatihnya**. Melatih model berarti mengeksposnya dengan data dan mengizinkannya membuat asumsi tentang pola yang ditemukan, divalidasi, dan diterima atau ditolak. ### Tentukan metode training @@ -73,7 +73,7 @@ Setelah proses *training* selesai (ini mungkin membutuhkan banyak iterasi, atau Dalam konteks machine learning, *model fitting* mengacu pada keakuratan dari fungsi yang mendasari model saat mencoba menganalisis data yang tidak familiar. -🎓 **Underfitting** dan **overfitting** adalah masalah umum yang menurunkan kualitas model, karena model tidak cukup akurat atau terlalu akurat. Hal ini menyebabkan model membuat prediksi yang terlalu selaras atau tidak cukup selaras dengan data pelatihannya. Model overfit memprediksi data *training* terlalu baik karena telah mempelajari detail dan noise data dengan terlalu baik. Model underfit tidak akurat karena tidak dapat menganalisis data *training* atau data yang belum pernah dilihat sebelumnya secara akurat. +🎓 **Underfitting** dan **overfitting** adalah masalah umum yang menurunkan kualitas model, karena model tidak cukup akurat atau terlalu akurat. Hal ini menyebabkan model membuat prediksi yang terlalu selaras atau tidak cukup selaras dengan data trainingnya. Model overfit memprediksi data *training* terlalu baik karena telah mempelajari detail dan noise data dengan terlalu baik. Model underfit tidak akurat karena tidak dapat menganalisis data *training* atau data yang belum pernah dilihat sebelumnya secara akurat. ![overfitting model](images/overfitting.png) > Infografis oleh [Jen Looper](https://twitter.com/jenlooper) From 384b4a589dc76506f050c40206178ec48690ba60 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Sun, 25 Jul 2021 11:29:51 -0400 Subject: [PATCH 159/228] Update README.md editing to show http server --- 4-Classification/4-Applied/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/4-Classification/4-Applied/README.md b/4-Classification/4-Applied/README.md index 1f3573c2..66597fbf 100644 --- a/4-Classification/4-Applied/README.md +++ b/4-Classification/4-Applied/README.md @@ -312,7 +312,7 @@ In this code, there are several things happening: ## Test your application -Open a terminal session in Visual Studio Code in the folder where your index.html file resides. Ensure that you have `[http-server](https://www.npmjs.com/package/http-server)` installed globally, and type `http-server` at the prompt. A localhost should open and you can view your web app. Check what cuisine is recommended based on various ingredients: +Open a terminal session in Visual Studio Code in the folder where your index.html file resides. Ensure that you have [http-server](https://www.npmjs.com/package/http-server) installed globally, and type `http-server` at the prompt. A localhost should open and you can view your web app. Check what cuisine is recommended based on various ingredients: ![ingredient web app](images/web-app.png) From 19b5631f294f615c0e5c1fd0ae73d07cdd2662f6 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Sun, 25 Jul 2021 11:31:27 -0400 Subject: [PATCH 160/228] Update README.tr.md editing mistake in function name for Turkish translation --- 4-Classification/1-Introduction/translations/README.tr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/4-Classification/1-Introduction/translations/README.tr.md b/4-Classification/1-Introduction/translations/README.tr.md index cba29546..a2b1d92f 100644 --- a/4-Classification/1-Introduction/translations/README.tr.md +++ b/4-Classification/1-Introduction/translations/README.tr.md @@ -157,7 +157,7 @@ Kurmanız gereken ilk şey [imblearn](https://imbalanced-learn.org/stable/). Bu, Şimdi veriyi daha derinlemesine inceleyebilirsiniz ve her mutfak için tipik malzemelerin neler olduğunu öğrenebilirsiniz. Mutfaklar arasında karışıklık yaratan tekrar eden veriyi temizlemelisiniz, dolayısıyla şimdi bu problemle ilgili bilgi edinelim. -1. Python'da, malzeme veri iskeleti yaratmak için `create_ingredient()` diye bir fonksiyon oluşturun. Bu fonksiyon, yardımcı olmayan bir sütunu temizleyerek ve sayılarına göre malzemeleri sıralayarak başlar: +1. Python'da, malzeme veri iskeleti yaratmak için `create_ingredient_df()` diye bir fonksiyon oluşturun. Bu fonksiyon, yardımcı olmayan bir sütunu temizleyerek ve sayılarına göre malzemeleri sıralayarak başlar: ```python def create_ingredient_df(df): @@ -170,7 +170,7 @@ Kurmanız gereken ilk şey [imblearn](https://imbalanced-learn.org/stable/). Bu, Şimdi bu fonksiyonu, her mutfağın en yaygın ilk on malzemesi hakkında hakkında fikir edinmek için kullanabilirsiniz. -1. `create_ingredient()` fonksiyonunu çağırın ve `barh()` fonksiyonunu çağırarak çizdirin: +1. `create_ingredient_df()` fonksiyonunu çağırın ve `barh()` fonksiyonunu çağırarak çizdirin: ```python thai_ingredient_df = create_ingredient_df(thai_df) From 25891843ba83d65a21991f08cd34713a76d5af0c Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Sun, 25 Jul 2021 11:32:40 -0400 Subject: [PATCH 161/228] Update README.zh-cn.md editing mistake in function name in Chinese translation --- 4-Classification/1-Introduction/translations/README.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/4-Classification/1-Introduction/translations/README.zh-cn.md b/4-Classification/1-Introduction/translations/README.zh-cn.md index adef7c8a..ae8d123b 100644 --- a/4-Classification/1-Introduction/translations/README.zh-cn.md +++ b/4-Classification/1-Introduction/translations/README.zh-cn.md @@ -152,7 +152,7 @@ Scikit-learn项目提供多种对数据进行分类的算法,你需要根据 现在你可以在数据中探索的更深一点并了解每道菜肴的代表性食材。你需要将反复出现的、容易造成混淆的数据清理出去,那么让我们来学习解决这个问题。 -1. 在Python中创建一个函数 `create_ingredient()` 来创建一个食材的数据帧。这个函数会去掉数据中无用的列并按食材的数量进行分类。 +1. 在Python中创建一个函数 `create_ingredient_df()` 来创建一个食材的数据帧。这个函数会去掉数据中无用的列并按食材的数量进行分类。 ```python def create_ingredient_df(df): @@ -164,7 +164,7 @@ Scikit-learn项目提供多种对数据进行分类的算法,你需要根据 ``` 现在你可以使用这个函数来得到理想的每道菜肴最重要的10种食材。 -1. 调用函数 `create_ingredient()` 然后通过函数`barh()`来绘制图像: +1. 调用函数 `create_ingredient_df()` 然后通过函数`barh()`来绘制图像: ```python thai_ingredient_df = create_ingredient_df(thai_df) From d6bac5cb87830d1ab6a44098c9c42360f51fe1b3 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Sun, 25 Jul 2021 11:33:27 -0400 Subject: [PATCH 162/228] Update README.tr.md removing back ticks around link in Turkish translation --- 4-Classification/4-Applied/translations/README.tr.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/4-Classification/4-Applied/translations/README.tr.md b/4-Classification/4-Applied/translations/README.tr.md index 12423ee0..651fc85b 100644 --- a/4-Classification/4-Applied/translations/README.tr.md +++ b/4-Classification/4-Applied/translations/README.tr.md @@ -312,7 +312,7 @@ Bu kodda birçok şey gerçekleşiyor: ## Uygulamanızı test edin -index.html dosyanızın olduğu klasördeyken Visual Studio Code'da bir terminal açın. Global kapsamda `[http-server](https://www.npmjs.com/package/http-server)` indirilmiş olduğundan emin olun ve istemde `http-server` yazın. Bir yerel ana makine açılmalı ve web uygulamanızı görebilirsiniz. Çeşitli malzemeleri baz alarak hangi mutfağın önerildiğine bakın: +index.html dosyanızın olduğu klasördeyken Visual Studio Code'da bir terminal açın. Global kapsamda [http-server](https://www.npmjs.com/package/http-server) indirilmiş olduğundan emin olun ve istemde `http-server` yazın. Bir yerel ana makine açılmalı ve web uygulamanızı görebilirsiniz. Çeşitli malzemeleri baz alarak hangi mutfağın önerildiğine bakın: ![malzeme web uygulaması](../images/web-app.png) @@ -333,4 +333,4 @@ Bu dersin sadece yemek malzemeleri için bir öneri sistemi oluşturmanın olana ## Ödev -[Yeni bir önerici oluşturun](assignment.tr.md) \ No newline at end of file +[Yeni bir önerici oluşturun](assignment.tr.md) From 844349882fc2d6ddc199892b15c057a3ba6dfb1e Mon Sep 17 00:00:00 2001 From: Fajar Ru Date: Mon, 26 Jul 2021 09:21:55 +0700 Subject: [PATCH 163/228] Update the image links --- 1-Introduction/1-intro-to-ML/translations/README.id.md | 4 ++-- 1-Introduction/2-history-of-ML/translations/README.id.md | 6 +++--- 1-Introduction/3-fairness/translations/README.id.md | 8 ++++---- .../4-techniques-of-ML/translations/README.id.md | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/1-Introduction/1-intro-to-ML/translations/README.id.md b/1-Introduction/1-intro-to-ML/translations/README.id.md index 2f30f213..d0daadd8 100644 --- a/1-Introduction/1-intro-to-ML/translations/README.id.md +++ b/1-Introduction/1-intro-to-ML/translations/README.id.md @@ -27,7 +27,7 @@ Sebelum memulai kurikulum ini, kamu perlu memastikan komputer kamu sudah dipersi Istilah 'Machine Learning' merupakan salah satu istilah yang paling populer dan paling sering digunakan saat ini. Ada kemungkinan kamu pernah mendengar istilah ini paling tidak sekali jika kamu familiar dengan teknologi. Tetapi untuk mekanisme Machine Learning sendiri, merupakan sebuah misteri bagi sebagian besar orang. Karena itu, penting untuk memahami sebenarnya apa itu Machine Learning, dan mempelajarinya langkah demi langkah melalui contoh praktis. -![kurva tren ml](images/hype.png) +![kurva tren ml](../images/hype.png) > Google Trends memperlihatkan 'kurva tren' dari istilah 'Machine Learning' belakangan ini. @@ -39,7 +39,7 @@ Otak dan indera seorang anak memahami fakta-fakta di sekitarnya dan secara berta Meskipun istilah-stilahnya bisa membingungkan, Machine Learning (ML) adalah bagian penting dari Artificial Intelligence. **ML berkaitan dengan menggunakan algoritma-algoritma terspesialisasi untuk mengungkap informasi yang berarti dan mencari pola-pola tersembunyi dari data yang diterima untuk mendukung proses pembuatan keputusan rasional**. -![AI, ML, deep learning, data science](images/ai-ml-ds.png) +![AI, ML, deep learning, data science](../images/ai-ml-ds.png) > Sebuah diagram yang memperlihatkan hubungan antara AI, ML, Deep Learning, dan Data Science. Infografis oleh [Jen Looper](https://twitter.com/jenlooper) terinspirasi dari [infografis ini](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) diff --git a/1-Introduction/2-history-of-ML/translations/README.id.md b/1-Introduction/2-history-of-ML/translations/README.id.md index ff66b014..5e6a6f0f 100644 --- a/1-Introduction/2-history-of-ML/translations/README.id.md +++ b/1-Introduction/2-history-of-ML/translations/README.id.md @@ -1,6 +1,6 @@ # Sejarah Machine Learning -![Ringkasan dari Sejarah Machine Learning dalam sebuah catatan sketsa](../../sketchnotes/ml-history.png) +![Ringkasan dari Sejarah Machine Learning dalam sebuah catatan sketsa](../../../sketchnotes/ml-history.png) > Catatan sketsa oleh [Tomomi Imura](https://www.twitter.com/girlie_mac) ## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/3/) @@ -44,12 +44,12 @@ Penelitian didanai dengan baik oleh lembaga pemerintah, banyak kemajuan dibuat d * [Shakey the robot](https://wikipedia.org/wiki/Shakey_the_robot), yang bisa bermanuver dan memutuskan bagaimana melakukan tugas-tugas secara 'cerdas'. - ![Shakey, an intelligent robot](images/shakey.jpg) + ![Shakey, an intelligent robot](../images/shakey.jpg) > Shakey pada 1972 * Eliza, sebuah 'chatterbot' awal, dapat mengobrol dengan orang-orang dan bertindak sebagai 'terapis' primitif. Kamu akan belajar lebih banyak tentang Eliza dalam pelajaran NLP. - ![Eliza, a bot](images/eliza.png) + ![Eliza, a bot](../images/eliza.png) > Sebuah versi dari Eliza, sebuah *chatbot* * "Blocks world" adalah contoh sebuah *micro-world* dimana balok dapat ditumpuk dan diurutkan, dan pengujian eksperimen mesin pengajaran untuk membuat keputusan dapat dilakukan. Kemajuan yang dibuat dengan *library-library* seperti [SHRDLU](https://wikipedia.org/wiki/SHRDLU) membantu mendorong kemajuan pemrosesan bahasa. diff --git a/1-Introduction/3-fairness/translations/README.id.md b/1-Introduction/3-fairness/translations/README.id.md index 03bf7963..6f09a148 100644 --- a/1-Introduction/3-fairness/translations/README.id.md +++ b/1-Introduction/3-fairness/translations/README.id.md @@ -1,6 +1,6 @@ # Keadilan dalam Machine Learning -![Ringkasan dari Keadilan dalam Machine Learning dalam sebuah catatan sketsa](../../sketchnotes/ml-fairness.png) +![Ringkasan dari Keadilan dalam Machine Learning dalam sebuah catatan sketsa](../../../sketchnotes/ml-fairness.png) > Catatan sketsa oleh [Tomomi Imura](https://www.twitter.com/girlie_mac) ## [Quiz Pra-Pelajaran](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/5/) @@ -68,9 +68,9 @@ Contoh terkenal lainnya adalah dispenser sabun tangan yang sepertinya tidak bisa Pandangan gender stereotip ditemukan dalam terjemahan mesin. Ketika menerjemahkan "dia (laki-laki) adalah seorang perawat dan dia (perempuan) adalah seorang dokter" ke dalam bahasa Turki, masalah muncul. Turki adalah bahasa tanpa gender yang memiliki satu kata ganti, "o" untuk menyampaikan orang ketiga tunggal, tetapi menerjemahkan kalimat kembali dari Turki ke Inggris menghasilkan stereotip dan salah sebagai "dia (perempuan) adalah seorang perawat dan dia (laki-laki) adalah seorang dokter". -![terjemahan ke bahasa Turki](images/gender-bias-translate-en-tr.png) +![terjemahan ke bahasa Turki](../images/gender-bias-translate-en-tr.png) -![terjemahan kembali ke bahasa Inggris](images/gender-bias-translate-tr-en.png) +![terjemahan kembali ke bahasa Inggris](../images/gender-bias-translate-tr-en.png) ### Fitnah @@ -83,7 +83,7 @@ Sebuah teknologi pelabelan gambar yang terkenal salah memberi label gambar orang Hasil pencarian gambar yang condong ke hal tertentu (skewed) dapat menjadi contoh yang bagus dari bahaya ini. Saat menelusuri gambar profesi dengan persentase pria yang sama atau lebih tinggi daripada wanita, seperti teknik, atau CEO, perhatikan hasil yang lebih condong ke jenis kelamin tertentu. -![Pencarian CEO di Bing](images/ceos.png) +![Pencarian CEO di Bing](../images/ceos.png) > Pencarian di Bing untuk 'CEO' ini menghasilkan hasil yang cukup inklusif Lima jenis bahaya utama ini tidak saling eksklusif, dan satu sistem dapat menunjukkan lebih dari satu jenis bahaya. Selain itu, setiap kasus bervariasi dalam tingkat keparahannya. Misalnya, memberi label yang tidak adil kepada seseorang sebagai penjahat adalah bahaya yang jauh lebih parah daripada memberi label yang salah pada gambar. Namun, penting untuk diingat bahwa bahkan kerugian yang relatif tidak parah dapat membuat orang merasa terasing atau diasingkan dan dampak kumulatifnya bisa sangat menekan. diff --git a/1-Introduction/4-techniques-of-ML/translations/README.id.md b/1-Introduction/4-techniques-of-ML/translations/README.id.md index 7c273024..6fee4f14 100644 --- a/1-Introduction/4-techniques-of-ML/translations/README.id.md +++ b/1-Introduction/4-techniques-of-ML/translations/README.id.md @@ -75,7 +75,7 @@ Dalam konteks machine learning, *model fitting* mengacu pada keakuratan dari fun 🎓 **Underfitting** dan **overfitting** adalah masalah umum yang menurunkan kualitas model, karena model tidak cukup akurat atau terlalu akurat. Hal ini menyebabkan model membuat prediksi yang terlalu selaras atau tidak cukup selaras dengan data trainingnya. Model overfit memprediksi data *training* terlalu baik karena telah mempelajari detail dan noise data dengan terlalu baik. Model underfit tidak akurat karena tidak dapat menganalisis data *training* atau data yang belum pernah dilihat sebelumnya secara akurat. -![overfitting model](images/overfitting.png) +![overfitting model](../images/overfitting.png) > Infografis oleh [Jen Looper](https://twitter.com/jenlooper) ## Parameter tuning From 72325d073ac4df84bdc73ddb96492279e173585f Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Sun, 25 Jul 2021 23:28:47 -0400 Subject: [PATCH 164/228] Update README.id.md --- 1-Introduction/translations/README.id.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/1-Introduction/translations/README.id.md b/1-Introduction/translations/README.id.md index 4ae59fb1..0e6cc557 100644 --- a/1-Introduction/translations/README.id.md +++ b/1-Introduction/translations/README.id.md @@ -3,7 +3,7 @@ Di bagian kurikulum ini, Kamu akan berkenalan dengan konsep yang mendasari bidang Machine Learning, apa itu Machine Learning, dan belajar mengenai sejarah serta teknik-teknik yang digunakan oleh para peneliti. Ayo jelajahi dunia baru Machine Learning bersama! -![bola dunia](images/globe.jpg) +![bola dunia](../images/globe.jpg) > Foto oleh Bill Oxford di Unsplash ### Pelajaran @@ -20,4 +20,4 @@ sejarah serta teknik-teknik yang digunakan oleh para peneliti. Ayo jelajahi duni "Keadilan dan Machine Learning" ditulis dengan ♥️ oleh [Tomomi Imura](https://twitter.com/girliemac) -"Teknik-Teknik Machine Learning" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper) dan [Chris Noring](https://twitter.com/softchris) \ No newline at end of file +"Teknik-Teknik Machine Learning" ditulis dengan ♥️ oleh [Jen Looper](https://twitter.com/jenlooper) dan [Chris Noring](https://twitter.com/softchris) From c13f28c97104fdf3c0ca39ecd7a8f93d73ae66d5 Mon Sep 17 00:00:00 2001 From: RyanXin Date: Mon, 26 Jul 2021 13:12:18 +0800 Subject: [PATCH 165/228] Correct the definitions of precision and recall. --- 2-Regression/4-Logistic/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-Regression/4-Logistic/README.md b/2-Regression/4-Logistic/README.md index a4488c11..8d89ce9d 100644 --- a/2-Regression/4-Logistic/README.md +++ b/2-Regression/4-Logistic/README.md @@ -237,9 +237,9 @@ As you might have guessed it's preferable to have a larger number of true positi Let's revisit the terms we saw earlier with the help of the confusion matrix's mapping of TP/TN and FP/FN: -🎓 Precision: TP/(TP + FN) The fraction of relevant instances among the retrieved instances (e.g. which labels were well-labeled) +🎓 Precision: TP/(TP + FP) The fraction of relevant instances among the retrieved instances (e.g. which labels were well-labeled) -🎓 Recall: TP/(TP + FP) The fraction of relevant instances that were retrieved, whether well-labeled or not +🎓 Recall: TP/(TP + FN) The fraction of relevant instances that were retrieved, whether well-labeled or not 🎓 f1-score: (2 * precision * recall)/(precision + recall) A weighted average of the precision and recall, with best being 1 and worst being 0 From bd8f9617a0032e34b16cad261ac682add13a1e1b Mon Sep 17 00:00:00 2001 From: Foo-x Date: Mon, 26 Jul 2021 18:56:47 +0900 Subject: [PATCH 166/228] feat: add ja 1.2 assignment Refs #149 --- .../2-history-of-ML/translations/README.ja.md | 2 +- .../2-history-of-ML/translations/assignment.ja.md | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 1-Introduction/2-history-of-ML/translations/assignment.ja.md diff --git a/1-Introduction/2-history-of-ML/translations/README.ja.md b/1-Introduction/2-history-of-ML/translations/README.ja.md index 9d791209..5c17650c 100644 --- a/1-Introduction/2-history-of-ML/translations/README.ja.md +++ b/1-Introduction/2-history-of-ML/translations/README.ja.md @@ -111,4 +111,4 @@ ## 課題 -[時系列を制作してください](../assignment.md) +[年表を作成する](./assignment.ja.md) diff --git a/1-Introduction/2-history-of-ML/translations/assignment.ja.md b/1-Introduction/2-history-of-ML/translations/assignment.ja.md new file mode 100644 index 00000000..f5f78799 --- /dev/null +++ b/1-Introduction/2-history-of-ML/translations/assignment.ja.md @@ -0,0 +1,11 @@ +# 年表を作成する + +## 指示 + +[このリポジトリ](https://github.com/Digital-Humanities-Toolkit/timeline-builder) を使って、アルゴリズム・数学・統計学・人工知能・機械学習、またはこれらの組み合わせに対して、歴史のひとつの側面に関する年表を作成してください。焦点を当てるのは、ひとりの人物・ひとつのアイディア・長期間にわたる思想のいずれのものでも構いません。マルチメディアの要素を必ず加えるようにしてください。 + +## 評価基準 + +| 基準 | 模範的 | 十分 | 要改善 | +| ---- | -------------------------------------- | ------------------------------------ | ------------------------------------------------------------ | +| | GitHub page に年表がデプロイされている | コードが未完成でデプロイされていない | 年表が未完成で、十分に調査されておらず、デプロイされていない | From 01109e7d0cabdbc2bb160a3a529b9137d60bfae7 Mon Sep 17 00:00:00 2001 From: RyanXin Date: Mon, 26 Jul 2021 20:38:31 +0800 Subject: [PATCH 167/228] Update all translations on formula --- 2-Regression/4-Logistic/translations/README.id.md | 4 ++-- 2-Regression/4-Logistic/translations/README.it.md | 4 ++-- 2-Regression/4-Logistic/translations/README.zh-cn.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/2-Regression/4-Logistic/translations/README.id.md b/2-Regression/4-Logistic/translations/README.id.md index ac5a3a98..fa47aea3 100644 --- a/2-Regression/4-Logistic/translations/README.id.md +++ b/2-Regression/4-Logistic/translations/README.id.md @@ -245,9 +245,9 @@ Mari kita lihat kembali istilah-istilah yang kita lihat tadi dengan bantuan matr > NB: Negatif benar > NP: Negatif palsu -🎓 Presisi: PB/(PB + NP) Rasio titik data relevan antara semua titik data (seperti data mana yang benar dilabelkannya) +🎓 Presisi: PB/(PB + PP) Rasio titik data relevan antara semua titik data (seperti data mana yang benar dilabelkannya) -🎓 *Recall*: PB/(PB + PP) Rasio titk data relevan yang digunakan, maupun labelnya benar atau tidak. +🎓 *Recall*: PB/(PB + NP) Rasio titk data relevan yang digunakan, maupun labelnya benar atau tidak. 🎓 *f1-score*: (2 * Presisi * *Recall*)/(Presisi + *Recall*) Sebuah rata-rata tertimbang antara presisi dan *recall*. 1 itu baik dan 0 itu buruk. diff --git a/2-Regression/4-Logistic/translations/README.it.md b/2-Regression/4-Logistic/translations/README.it.md index 6a31f5fb..3b30cf68 100644 --- a/2-Regression/4-Logistic/translations/README.it.md +++ b/2-Regression/4-Logistic/translations/README.it.md @@ -238,9 +238,9 @@ Come si sarà intuito, è preferibile avere un numero maggiore di veri positivi I termini visti in precedenza vengono rivisitati con l'aiuto della mappatura della matrice di confusione di TP/TN e FP/FN: -🎓 Precisione: TP/(TP + FN) La frazione di istanze rilevanti tra le istanze recuperate (ad es. quali etichette erano ben etichettate) +🎓 Precisione: TP/(TP + FP) La frazione di istanze rilevanti tra le istanze recuperate (ad es. quali etichette erano ben etichettate) -🎓 Richiamo: TP/(TP + FP) La frazione di istanze rilevanti che sono state recuperate, ben etichettate o meno +🎓 Richiamo: TP/(TP + FN) La frazione di istanze rilevanti che sono state recuperate, ben etichettate o meno 🎓 f1-score: (2 * precisione * richiamo)/(precisione + richiamo) Una media ponderata della precisione e del richiamo, dove il migliore è 1 e il peggiore è 0 diff --git a/2-Regression/4-Logistic/translations/README.zh-cn.md b/2-Regression/4-Logistic/translations/README.zh-cn.md index b4397856..3a5ff926 100644 --- a/2-Regression/4-Logistic/translations/README.zh-cn.md +++ b/2-Regression/4-Logistic/translations/README.zh-cn.md @@ -238,9 +238,9 @@ Seaborn提供了一些巧妙的方法来可视化你的数据。例如,你可 让我们借助混淆矩阵对TP/TN和FP/FN的映射,重新审视一下我们之前看到的术语: -🎓 准确率:TP/(TP+FN)检索实例中相关实例的分数(例如,哪些标签标记得很好) +🎓 准确率:TP/(TP + FP) 检索实例中相关实例的分数(例如,哪些标签标记得很好) -🎓 召回率: TP/(TP + FP) 检索到的相关实例的比例,无论是否标记良好 +🎓 召回率: TP/(TP + FN) 检索到的相关实例的比例,无论是否标记良好 🎓 F1分数: (2 * 准确率 * 召回率)/(准确率 + 召回率) 准确率和召回率的加权平均值,最好为1,最差为0 From 125f5c747065654e009586a633ccc251383e1532 Mon Sep 17 00:00:00 2001 From: "Michael.Wang" Date: Mon, 26 Jul 2021 23:25:45 +0800 Subject: [PATCH 168/228] Translated 3-Web-App assignment.md into Simplified Chinese. --- 3-Web-App/1-Web-App/translations/assignment.zh-cn.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 3-Web-App/1-Web-App/translations/assignment.zh-cn.md diff --git a/3-Web-App/1-Web-App/translations/assignment.zh-cn.md b/3-Web-App/1-Web-App/translations/assignment.zh-cn.md new file mode 100644 index 00000000..016dfa52 --- /dev/null +++ b/3-Web-App/1-Web-App/translations/assignment.zh-cn.md @@ -0,0 +1,12 @@ +# Բͬģ + +## ˵ + +ڣѾܹʹһѵĻعģwebӦóôǰĻعγѡһģһwebӦóʹԭķͬķƣչʾpumpkinݡעԷӳģ͵ѵ + + +## б׼ + +| ׼ | | йо | Ŭ | +| -------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------- | +| | webӦóԤУƶ | webӦóȱݻʾ벻Ľ | webӦó޷ | From 7bdbcad6449b8beeec68a3de78cf3633bf66acf0 Mon Sep 17 00:00:00 2001 From: davidit33 Date: Mon, 26 Jul 2021 23:21:02 -0300 Subject: [PATCH 169/228] 1-Introduction/1-intro-to-ML/assignment.es.md --- 1-Introduction/1-intro-to-ML/assignment.es.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 1-Introduction/1-intro-to-ML/assignment.es.md diff --git a/1-Introduction/1-intro-to-ML/assignment.es.md b/1-Introduction/1-intro-to-ML/assignment.es.md new file mode 100644 index 00000000..5241ca96 --- /dev/null +++ b/1-Introduction/1-intro-to-ML/assignment.es.md @@ -0,0 +1,9 @@ +# Lévantate y corre + +## Instrucciones + +En esta tarea no calificada, debe repasar Python y hacer que su entorno esté en funcionamiento y sea capaz de ejecutar cuadernos. + +Tome esta [Ruta de aprendizaje de Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa), y luego configure sus sistemas con estos videos introductorios: + +https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 From 675c8f79380a322081865b91e40c132321bd681b Mon Sep 17 00:00:00 2001 From: Daniel Qian Date: Tue, 27 Jul 2021 14:03:21 +0800 Subject: [PATCH 170/228] Update README.zh-cn.md add a right parentheses to avoid right text being a part of the link. --- 2-Regression/1-Tools/translations/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/1-Tools/translations/README.zh-cn.md b/2-Regression/1-Tools/translations/README.zh-cn.md index 41b167e3..bb7f37c1 100644 --- a/2-Regression/1-Tools/translations/README.zh-cn.md +++ b/2-Regression/1-Tools/translations/README.zh-cn.md @@ -30,7 +30,7 @@ > 通过学习这一系列的 [学习模块](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-15963-cxa)熟悉Python -3. **按照[这些说明]安装Scikit learn**(https://scikit-learn.org/stable/install.html)。由于你需要确保使用Python3,因此建议你使用虚拟环境。注意,如果你是在M1 Mac上安装这个库,在上面链接的页面上有特别的说明。 +3. **按照[这些说明]安装Scikit learn**(https://scikit-learn.org/stable/install.html )。由于你需要确保使用Python3,因此建议你使用虚拟环境。注意,如果你是在M1 Mac上安装这个库,在上面链接的页面上有特别的说明。 4. **安装Jupyter Notebook**。你需要[安装Jupyter包](https://pypi.org/project/jupyter/)。 From eb37fcbc3e48936e8db915350e0f6827f5297b18 Mon Sep 17 00:00:00 2001 From: Foo-x Date: Tue, 27 Jul 2021 18:31:49 +0900 Subject: [PATCH 171/228] feat: add ja 1.3 assignment Refs #149 --- 1-Introduction/3-fairness/translations/README.ja.md | 2 +- .../3-fairness/translations/assignment.ja.md | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 1-Introduction/3-fairness/translations/assignment.ja.md diff --git a/1-Introduction/3-fairness/translations/README.ja.md b/1-Introduction/3-fairness/translations/README.ja.md index afa92f2b..9bb32639 100644 --- a/1-Introduction/3-fairness/translations/README.ja.md +++ b/1-Introduction/3-fairness/translations/README.ja.md @@ -201,4 +201,4 @@ Azure Machine Learningによる、公平性を確保するためのツールに ## 課題 -[Fairlearnを調査する](../assignment.md) +[Fairlearnを調査する](./assignment.ja.md) diff --git a/1-Introduction/3-fairness/translations/assignment.ja.md b/1-Introduction/3-fairness/translations/assignment.ja.md new file mode 100644 index 00000000..dbf7b2b4 --- /dev/null +++ b/1-Introduction/3-fairness/translations/assignment.ja.md @@ -0,0 +1,11 @@ +# Fairlearnを調査する + +## 指示 + +このレッスンでは、「データサイエンティストがAIシステムの公平性を向上させるための、オープンソースでコミュニティ主導のプロジェクト」であるFairlearnについて学習しました。この課題では、Fairlearnの [ノートブック](https://fairlearn.org/v0.6.2/auto_examples/index.html) のうちのひとつを調査し、わかったことをレポートやプレゼンテーションの形で報告してください。 + +## 評価基準 + +| 基準 | 模範的 | 十分 | 要改善 | +| ---- | --------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- | -------------------------- | +| | Fairlearnのシステム・実行したノートブック・実行によって得られた結果が、レポートやパワーポイントのプレゼンテーションとして提示されている | 結論のないレポートが提示されている | レポートが提示されていない | From 6f61468fef1248ac34748396fae457e10ee2559e Mon Sep 17 00:00:00 2001 From: Foo-x Date: Wed, 28 Jul 2021 18:51:19 +0900 Subject: [PATCH 172/228] feat: add ja 1.4 assignment Refs #149 --- .../4-techniques-of-ML/translations/assignment.ja.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/4-techniques-of-ML/translations/assignment.ja.md diff --git a/1-Introduction/4-techniques-of-ML/translations/assignment.ja.md b/1-Introduction/4-techniques-of-ML/translations/assignment.ja.md new file mode 100644 index 00000000..b3690e77 --- /dev/null +++ b/1-Introduction/4-techniques-of-ML/translations/assignment.ja.md @@ -0,0 +1,11 @@ +# データサイエンティストにインタビューする + +## 指示 + +会社・ユーザグループ・友人・学生仲間の中で、データサイエンティストとして専門的に働いている人に話を聞いてみましょう。その人の日々の仕事について短いレポート(500語)を書いてください。その人は専門家でしょうか?それとも「フルスタック」として働いているでしょうか? + +## 評価基準 + +| 基準 | 模範的 | 十分 | 要改善 | +| ---- | ---------------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------- | +| | 出典が明記された適切な長さのレポートが.docファイルとして提示されている | レポートに出典が明記されていない、もしくは必要な長さよりも短い | レポートが提示されていない | From dc7d81b5a42f1178ce284e71755ab65406b10dc5 Mon Sep 17 00:00:00 2001 From: Abhinav Sharma <63901956+abhi-bhatra@users.noreply.github.com> Date: Wed, 28 Jul 2021 19:12:54 +0530 Subject: [PATCH 173/228] Update README.md --- 2-Regression/4-Logistic/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/4-Logistic/README.md b/2-Regression/4-Logistic/README.md index a4488c11..f694a554 100644 --- a/2-Regression/4-Logistic/README.md +++ b/2-Regression/4-Logistic/README.md @@ -284,7 +284,7 @@ In future lessons on classifications, you will learn how to iterate to improve y --- ## 🚀Challenge -There's a lot more to unpack regarding logistic regression! But the best way to learn is to experiment. Find a dataset that lends itself to this type of analysis and build a model with it. What do you learn? tip: try [Kaggle](https://kaggle.com) for interesting datasets. +There's a lot more to unpack regarding logistic regression! But the best way to learn is to experiment. Find a dataset that lends itself to this type of analysis and build a model with it. What do you learn? tip: try [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) for interesting datasets. ## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/16/) ## Review & Self Study From 03015f91c4073aa8ab281e84eb46f23c0210e60b Mon Sep 17 00:00:00 2001 From: Abhinav Sharma <63901956+abhi-bhatra@users.noreply.github.com> Date: Wed, 28 Jul 2021 19:18:39 +0530 Subject: [PATCH 174/228] Update README.md --- 2-Regression/1-Tools/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/1-Tools/README.md b/2-Regression/1-Tools/README.md index e36c34fe..6225f7cd 100644 --- a/2-Regression/1-Tools/README.md +++ b/2-Regression/1-Tools/README.md @@ -95,7 +95,7 @@ For this task we will import some libraries: - **matplotlib**. It's a useful [graphing tool](https://matplotlib.org/) and we will use it to create a line plot. - **numpy**. [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) is a useful library for handling numeric data in Python. -- **sklearn**. This is the Scikit-learn library. +- **sklearn**. This is the [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) library. Import some libraries to help with your tasks. From 31826eec95ac7821b4ab8b74d369a1da6473f385 Mon Sep 17 00:00:00 2001 From: Abhinav Sharma <63901956+abhi-bhatra@users.noreply.github.com> Date: Wed, 28 Jul 2021 20:13:21 +0530 Subject: [PATCH 175/228] Update README.md Stanford's K-Means Simulator had been removed from the parent directory. Added new K-Means Simulator --- 5-Clustering/2-K-Means/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/5-Clustering/2-K-Means/README.md b/5-Clustering/2-K-Means/README.md index 153932e6..bd59e080 100644 --- a/5-Clustering/2-K-Means/README.md +++ b/5-Clustering/2-K-Means/README.md @@ -242,7 +242,7 @@ Hint: Try to scale your data. There's commented code in the notebook that adds s ## Review & Self Study -Take a look at Stanford's K-Means Simulator [here](https://stanford.edu/class/engr108/visualizations/kmeans/kmeans.html). You can use this tool to visualize sample data points and determine its centroids. With fresh data, click 'update' to see how long it takes to find convergence. You can edit the data's randomness, numbers of clusters and numbers of centroids. Does this help you get an idea of how the data can be grouped? +Take a look at K-Means Simulator [here](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). You can use this tool to visualize sample data points and determine its centroids. You can edit the data's randomness, numbers of clusters and numbers of centroids. Does this help you get an idea of how the data can be grouped? Also, take a look at [this handout on k-means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) from Stanford. From 779d95a4afc2a88205f384a3f0ac9648e134b0d9 Mon Sep 17 00:00:00 2001 From: davidit33 Date: Wed, 28 Jul 2021 21:15:40 -0300 Subject: [PATCH 176/228] 1-Introduction/3-fairness/assignment.es.md --- 1-Introduction/3-fairness/assignment.es.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/3-fairness/assignment.es.md diff --git a/1-Introduction/3-fairness/assignment.es.md b/1-Introduction/3-fairness/assignment.es.md new file mode 100644 index 00000000..2f6d1035 --- /dev/null +++ b/1-Introduction/3-fairness/assignment.es.md @@ -0,0 +1,11 @@ +# Explore Fairlearn + +## Instrucciones + +En esta lección, aprendió sobre Fairlearn, un "proyecto open-source impulsado por la comunidad para ayudar a los científicos de datos a mejorar la equidad de los sistemas de AI." Para esta tarea, explore uno de los [cuadernos](https://fairlearn.org/v0.6.2/auto_examples/index.html) de Fairlearn e informe sus hallazgos en un documento o presentación. + +## Rúbrica + +| Criterios | Ejemplar | Adecuado | Necesita mejorar | +| -------- | --------- | -------- | ----------------- | +| | Un documento o presentación powerpoint es presentado discutiendo los sistemas de Fairlearn, el cuadernos que fue ejecutado, y las concluiosnes extraídas al ejecutarlo | Un documento es presentado sin conclusiones | No se presenta ningún documento | From aaea81476239446d3b843988ec11938ea695c9ff Mon Sep 17 00:00:00 2001 From: davidit33 Date: Wed, 28 Jul 2021 21:24:40 -0300 Subject: [PATCH 177/228] 1-Introduction/1-intro-to-ML/translations/assignment.es.md --- .../1-intro-to-ML/translations/assignment.es.md | 9 +++++++++ 1-Introduction/3-fairness/assignment.es.md | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 1-Introduction/1-intro-to-ML/translations/assignment.es.md diff --git a/1-Introduction/1-intro-to-ML/translations/assignment.es.md b/1-Introduction/1-intro-to-ML/translations/assignment.es.md new file mode 100644 index 00000000..5241ca96 --- /dev/null +++ b/1-Introduction/1-intro-to-ML/translations/assignment.es.md @@ -0,0 +1,9 @@ +# Lévantate y corre + +## Instrucciones + +En esta tarea no calificada, debe repasar Python y hacer que su entorno esté en funcionamiento y sea capaz de ejecutar cuadernos. + +Tome esta [Ruta de aprendizaje de Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa), y luego configure sus sistemas con estos videos introductorios: + +https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 diff --git a/1-Introduction/3-fairness/assignment.es.md b/1-Introduction/3-fairness/assignment.es.md index 2f6d1035..cf83256e 100644 --- a/1-Introduction/3-fairness/assignment.es.md +++ b/1-Introduction/3-fairness/assignment.es.md @@ -8,4 +8,4 @@ En esta lección, aprendió sobre Fairlearn, un "proyecto open-source impulsado | Criterios | Ejemplar | Adecuado | Necesita mejorar | | -------- | --------- | -------- | ----------------- | -| | Un documento o presentación powerpoint es presentado discutiendo los sistemas de Fairlearn, el cuadernos que fue ejecutado, y las concluiosnes extraídas al ejecutarlo | Un documento es presentado sin conclusiones | No se presenta ningún documento | +| | Un documento o presentación powerpoint es presentado discutiendo los sistemas de Fairlearn, el cuadernos que fue ejecutado, y las conclusiones extraídas al ejecutarlo | Un documento es presentado sin conclusiones | No se presenta ningún documento | From 8f372da2a9e3a1906bf27037dc9743e5bf1dc287 Mon Sep 17 00:00:00 2001 From: davidit33 Date: Wed, 28 Jul 2021 21:25:17 -0300 Subject: [PATCH 178/228] 1-Introduction/3-fairness/translations/assignment.es.md --- .../3-fairness/translations/assignment.es.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 1-Introduction/3-fairness/translations/assignment.es.md diff --git a/1-Introduction/3-fairness/translations/assignment.es.md b/1-Introduction/3-fairness/translations/assignment.es.md new file mode 100644 index 00000000..cf83256e --- /dev/null +++ b/1-Introduction/3-fairness/translations/assignment.es.md @@ -0,0 +1,11 @@ +# Explore Fairlearn + +## Instrucciones + +En esta lección, aprendió sobre Fairlearn, un "proyecto open-source impulsado por la comunidad para ayudar a los científicos de datos a mejorar la equidad de los sistemas de AI." Para esta tarea, explore uno de los [cuadernos](https://fairlearn.org/v0.6.2/auto_examples/index.html) de Fairlearn e informe sus hallazgos en un documento o presentación. + +## Rúbrica + +| Criterios | Ejemplar | Adecuado | Necesita mejorar | +| -------- | --------- | -------- | ----------------- | +| | Un documento o presentación powerpoint es presentado discutiendo los sistemas de Fairlearn, el cuadernos que fue ejecutado, y las conclusiones extraídas al ejecutarlo | Un documento es presentado sin conclusiones | No se presenta ningún documento | From 620eb25358d2e3d3c0b644cd93ecf2d9ca9e0752 Mon Sep 17 00:00:00 2001 From: davidit33 Date: Wed, 28 Jul 2021 22:03:33 -0300 Subject: [PATCH 179/228] 1-Introduction/3-fairness/assignment.es.md --- 1-Introduction/3-fairness/assignment.es.md | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 1-Introduction/3-fairness/assignment.es.md diff --git a/1-Introduction/3-fairness/assignment.es.md b/1-Introduction/3-fairness/assignment.es.md deleted file mode 100644 index cf83256e..00000000 --- a/1-Introduction/3-fairness/assignment.es.md +++ /dev/null @@ -1,11 +0,0 @@ -# Explore Fairlearn - -## Instrucciones - -En esta lección, aprendió sobre Fairlearn, un "proyecto open-source impulsado por la comunidad para ayudar a los científicos de datos a mejorar la equidad de los sistemas de AI." Para esta tarea, explore uno de los [cuadernos](https://fairlearn.org/v0.6.2/auto_examples/index.html) de Fairlearn e informe sus hallazgos en un documento o presentación. - -## Rúbrica - -| Criterios | Ejemplar | Adecuado | Necesita mejorar | -| -------- | --------- | -------- | ----------------- | -| | Un documento o presentación powerpoint es presentado discutiendo los sistemas de Fairlearn, el cuadernos que fue ejecutado, y las conclusiones extraídas al ejecutarlo | Un documento es presentado sin conclusiones | No se presenta ningún documento | From 4a1c1471996d374f31312952c56007ade23273f1 Mon Sep 17 00:00:00 2001 From: davidit33 Date: Wed, 28 Jul 2021 22:08:32 -0300 Subject: [PATCH 180/228] rm 1-Introduction/1-intro-to-ML/assignment.es.md --- 1-Introduction/1-intro-to-ML/assignment.es.md | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 1-Introduction/1-intro-to-ML/assignment.es.md diff --git a/1-Introduction/1-intro-to-ML/assignment.es.md b/1-Introduction/1-intro-to-ML/assignment.es.md deleted file mode 100644 index 5241ca96..00000000 --- a/1-Introduction/1-intro-to-ML/assignment.es.md +++ /dev/null @@ -1,9 +0,0 @@ -# Lévantate y corre - -## Instrucciones - -En esta tarea no calificada, debe repasar Python y hacer que su entorno esté en funcionamiento y sea capaz de ejecutar cuadernos. - -Tome esta [Ruta de aprendizaje de Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-15963-cxa), y luego configure sus sistemas con estos videos introductorios: - -https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 From c1945983ef5c0c21c4a8d03abb49b69bc47a57b1 Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Thu, 29 Jul 2021 09:15:48 +0800 Subject: [PATCH 181/228] Simplified Chinese Translation v1 --- .../translations/README.zh-cn.md | 245 ++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 4-Classification/2-Classifiers-1/translations/README.zh-cn.md diff --git a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md new file mode 100644 index 00000000..00327c92 --- /dev/null +++ b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md @@ -0,0 +1,245 @@ +# 菜品分类器1 + +在本节中,将使用你在上一个课程中所保存的全部经过均衡和清洗的菜品数据。 + +You will use this dataset with a variety of classifiers to _predict a given national cuisine based on a group of ingredients_. While doing so, you'll learn more about some of the ways that algorithms can be leveraged for classification tasks. +你将使用这份数据集,并通过多种分类器 _在给出了各种配料后预测这是那一个国家的菜品_。在此过程中,你将学到更多能够用来调节分类任务算法的方法。 + +## [课前测试](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/21/) +# 准备工作 + +假设你已经完成了[课程1](../1-Introduction/README.md), 确保在根目录的`/data`文件夹中有 _cleaned_cuisines.csv_ 文件来进行接下来的四节课程。 + +## 练习 - 预测某国的菜品 + +1. 在本节课的 _notebook.ipynb_ 文件中,导入Pandas的同时载入相应的数据文件: + + ```python + import pandas as pd + cuisines_df = pd.read_csv("../../data/cleaned_cuisine.csv") + cuisines_df.head() + ``` + + 数据如下所示: + + ```output + | | Unnamed: 0 | cuisine | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | + | --- | ---------- | ------- | ------ | -------- | ----- | ---------- | ----- | ------------ | ------- | -------- | --- | ------- | ----------- | ---------- | ----------------------- | ---- | ---- | --- | ----- | ------ | -------- | + | 0 | 0 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 1 | 1 | indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 2 | 2 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 3 | 3 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 4 | 4 | indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + ``` + +1. 现在,再多导入一些库: + + ```python + from sklearn.linear_model import LogisticRegression + from sklearn.model_selection import train_test_split, cross_val_score + from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve + from sklearn.svm import SVC + import numpy as np + ``` + +1. 接下来需要将数据分训练模型所需的X和y两个dataframe。首先可将`cuisine`列的数据单独保存为标签(label)的dataframe。 + + ```python + cuisines_label_df = cuisines_df['cuisine'] + cuisines_label_df.head() + ``` + + 输出看上去会是这样: + + ```output + 0 indian + 1 indian + 2 indian + 3 indian + 4 indian + Name: cuisine, dtype: object + ``` + +1. 调用`drop()`函数将 `Unnamed: 0`和 `cuisine`列删除,并将余下的数据作为可以用于训练的特证(feature): + + ```python + cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) + cuisines_feature_df.head() + ``` + + 你的特证(feature)数据看上去将会是这样: + + | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | + | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | --- | + | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | + | 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | + +现在,你已经准备好可以开始训练你的模型了! + +## 选则你的分类器 + +你的数据已经清洗干净并已经准备好可以进行训练了,现在需要决定你想使用的算法来完成这项任务。 + +Scikit_learn将分类任务归在了监督学习目录中,在这个目录中你将会找到很多方法来进行分类。乍一看上去,有点[琳琅满目](https://scikit-learn.org/stable/supervised_learning.html)。下面这些方法都包含了分类技术: + +- 线性模型(Linear Models) +- 支持向量机(Support Vector Machines) +- 随机梯度下降(Stochastic Gradient Descent) +- 最近邻(Nearest Neighbors) +- 高斯过程(Gaussian Processes) +- 决策树(Decision Trees) +- 集成方法(投票分类器)(Ensemble methods(voting classifier)) +- 多类别多输出算法(多类别多标签分类,多类别多输出分类)(Multiclass and multioutput algorithms (multiclass and multilabel classification, multiclass-multioutput classification)) + +> 你也可以使用[神经网络来分类数据](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification), 但这对于本课程来说有点超纲了。 + +### 如何选择分类器? + +那么,你应该选择哪一个分类器呢?一般来说,可以选择多个方法并对比他们运行后的结果。Scikit-learn提供了各种算法(包括KNeighbors、 SVC two ways、 GaussianProcessClassifier、 DecisionTreeClassifier、 RandomForestClassifier、 MLPClassifier、 AdaBoostClassifier、 GaussianNB以及QuadraticDiscrinationAnalysis)的[比较](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html),并且对比较的结果进行了可视化的展示: + +![各分类器比较](../images/comparison.png) +> 图表来源于Scikit-learn的官方文档 + +> AutoML通过在云端运行这些比较非常完美地解决的这个问题,使得你能够根据你的数据选择最佳的算法。试试[这里](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-15963-cxa)。 + +### 一种更好的方法 + +不过,比起无脑地猜测,根据这份可以下载的[机器学习作弊表]中的方法是一个更好的选择。在表中我们可以发现对于这个多类型的分类任务,可以有一些选择: + +A better way than wildly guessing, however, is to follow the ideas on this downloadable [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-15963-cxa). Here, we discover that, for our multiclass problem, we have some choices: + +![多类型问题作弊表](../images/cheatsheet.png) +> 微软算法作弊表中关于多类型分类任务可选算法的部分 + +✅ 下载这份作弊表,打印出来,挂在你的墙上吧! + +### 推导过程 + +Let's see if we can reason our way through different approaches given the constraints we have:让我们看看根据我们所有的限制条件推导下各中方法的可行性: + +- **神经网络(Neural Network)太过复杂了**。我们的数据很清晰但数据量比较小,此外我们是通过notebook在本地进行训练,神经网络对于这个任务来说过于复杂了。 +- **二分类法(two-class classifier)不可行**。我们不能使用二分类法,所以这就排除了一对多(one-vs-all)算法。 +- **决策树以及逻辑回归可行**. 决策树也许有用,或者也可以使用逻辑回归来处理多类型数据。 +- **多类型增强决策数可以解决不同的问题**. 多类型增强决策树最适合非参数化的任务,即任务目标是建立一个排序,这对我们的任务并没有作用。 + +### 使用Scikit-learn + +我们将使用Scikit-learn来分析我们的数据。然而,在Scikit-learn中有很多种方法来使用逻辑回归。可以看一看逻辑回归算法可以[传递的参数](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)。 + +当我们需要Scikit-learn进行逻辑回归运算时,`multi_class` 以及 `solver`是最重要的两个参数,我们需要特别说明一下哎。 `multi_class` 的值决定了特定的行为。`solver`的值是我们需要使用的算法。并不是所有的solvers都可以匹配`multi_class`的值的。 + +According to the docs, in the multiclass case, the training algorithm根据文档,在多类型问题种,训练的算法: + +- **使用“一对其余”(OvR)策略(scheme)**, 如果`multi_class`被设置为`ovr` +- **使用交叉熵损失(cross entropy loss)**, 如果`multi_class`被设置为`multinomial` (目前,`multinomial`只支持‘lbfgs’, ‘sag’, ‘saga’以及‘newton-cg’等 solver)。 + +> 🎓 其中“scheme”可以是“ovr(one-vs-rest)”也可以是“multinomial”。 因为逻辑回归事实上是设计用于支持二分类任务的,这些scheme将使其可以更好的支持多类型分类任务。[来源](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) + +> 🎓 “solver”被定义为是"用于解决优化问题的算法"。[来源](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). + +Scikit-learn提供了以下这个表格来解释solver是如何应对的不同的数据结构所带来的不同的挑战的: + +![solvers](../images/solvers.png) + +## 练习 - 分割数据 + +因为你刚刚在上一节课中学习了逻辑回归,因此我们可以聚焦于此,来演练一下如何进行第一个模型的训练。通过调用`train_test_split()`可以把你的数据分割成训练集和测试集: + + +```python +X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) +``` + +## 练习 - 应用逻辑回归 + +因为我们正在进行多类型分类的案例,你需要决定选用什么 _scheme_ 以及使用什么 _solver_ 。使用带有multiclass设置的LogisticRegression,并将solver设置为**liblinear**来进行模型训练。 + +1. 创建逻辑回归,并将multi_class设置为`ovr`,同时将solver设置为 `liblinear`: + + ```python + lr = LogisticRegression(multi_class='ovr',solver='liblinear') + model = lr.fit(X_train, np.ravel(y_train)) + + accuracy = model.score(X_test, y_test) + print ("Accuracy is {}".format(accuracy)) + ``` + + ✅ 也可以试试其他solver比如`lbfgs`, 它通常可以作为默认的设置 + + > 注意, 使用Pandas的[`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) 函数可以在需要的时候将你的数据进行降维 + + 准确率高达了**80%**! + +1. 你也可以通过查看一行数据(比如第50行)来观察到模型运行的情况: + + ```python + print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}') + print(f'cuisine: {y_test.iloc[50]}') + ``` + + 运行后的输出如下: + + ```output + ingredients: Index(['cilantro', 'onion', 'pea', 'potato', 'tomato', 'vegetable_oil'], dtype='object') + cuisine: indian + ``` + + ✅ 试试不同的行号来检查一下结果吧 + +1. 让我们再深入研究一下,你可以检查一下这回预测的准确率: + + ```python + test= X_test.iloc[50].values.reshape(-1, 1).T + proba = model.predict_proba(test) + classes = model.classes_ + resultdf = pd.DataFrame(data=proba, columns=classes) + + topPrediction = resultdf.T.sort_values(by=[0], ascending = [False]) + topPrediction.head() + ``` + + 运行后的输出如下———这是一道印度菜的可能性最大,是最合理的猜测: + + | | 0 | | | | | | | | | | | | | | | | | | | | | + | -------: | -------: | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | + | indian | 0.715851 | | | | | | | | | | | | | | | | | | | | | + | chinese | 0.229475 | | | | | | | | | | | | | | | | | | | | | + | japanese | 0.029763 | | | | | | | | | | | | | | | | | | | | | + | korean | 0.017277 | | | | | | | | | | | | | | | | | | | | | + | thai | 0.007634 | | | | | | | | | | | | | | | | | | | | | + + ✅ 你能解释下为什么模型会如此确定这是一道印度菜么? + +1. 就和你在回归的课程中所做的一样,通过输出分类的报告,我们可以得到更多的细节: + + ```python + y_pred = model.predict(X_test) + print(classification_report(y_test,y_pred)) + ``` + + | precision | recall | f1-score | support | | | | | | | | | | | | | | | | | | | + | ------------ | ------ | -------- | ------- | ---- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | + | chinese | 0.73 | 0.71 | 0.72 | 229 | | | | | | | | | | | | | | | | | | + | indian | 0.91 | 0.93 | 0.92 | 254 | | | | | | | | | | | | | | | | | | + | japanese | 0.70 | 0.75 | 0.72 | 220 | | | | | | | | | | | | | | | | | | + | korean | 0.86 | 0.76 | 0.81 | 242 | | | | | | | | | | | | | | | | | | + | thai | 0.79 | 0.85 | 0.82 | 254 | | | | | | | | | | | | | | | | | | + | accuracy | 0.80 | 1199 | | | | | | | | | | | | | | | | | | | | + | macro avg | 0.80 | 0.80 | 0.80 | 1199 | | | | | | | | | | | | | | | | | | + | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | | | | | | | | | | | | | | | | | | + +## 挑战 + +在本课程中,你使用了清洗后的数据建立了一个机器学习的模型,能够根据一系列的配料来预测菜品来自于哪个国家。请再花点时间阅读一下Scikit-learn所提供的可以用来分类数据的其他选择。同时也可以深入研究一下“solver”的概念并尝试一下理解其背后的原理。 + +## [课后小测](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/22/) +## 回顾与自学 + +[这个课程](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)将对逻辑回归背后的数学原理进行更加深入的讲解 + +## 作业 + +[学习solver](assignment.md) From ab83692b57b7d9dfec46088388755f697577b165 Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Thu, 29 Jul 2021 09:21:57 +0800 Subject: [PATCH 182/228] Update README.zh-cn.md --- 4-Classification/2-Classifiers-1/translations/README.zh-cn.md | 1 - 1 file changed, 1 deletion(-) diff --git a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md index 00327c92..3386412b 100644 --- a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md +++ b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md @@ -2,7 +2,6 @@ 在本节中,将使用你在上一个课程中所保存的全部经过均衡和清洗的菜品数据。 -You will use this dataset with a variety of classifiers to _predict a given national cuisine based on a group of ingredients_. While doing so, you'll learn more about some of the ways that algorithms can be leveraged for classification tasks. 你将使用这份数据集,并通过多种分类器 _在给出了各种配料后预测这是那一个国家的菜品_。在此过程中,你将学到更多能够用来调节分类任务算法的方法。 ## [课前测试](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/21/) From dc0eda9f923f18444e269c53f197538b98f9aaa8 Mon Sep 17 00:00:00 2001 From: Abhinav Sharma <63901956+abhi-bhatra@users.noreply.github.com> Date: Thu, 29 Jul 2021 07:19:32 +0530 Subject: [PATCH 183/228] Update README.md address link broken --- 6-NLP/1-Introduction-to-NLP/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-NLP/1-Introduction-to-NLP/README.md b/6-NLP/1-Introduction-to-NLP/README.md index 924ce73c..4a7a88d6 100644 --- a/6-NLP/1-Introduction-to-NLP/README.md +++ b/6-NLP/1-Introduction-to-NLP/README.md @@ -69,7 +69,7 @@ The idea for this came from a party game called *The Imitation Game* where an in ### Developing Eliza -In the 1960's an MIT scientist called *Joseph Weizenbaum* developed [*Eliza*](https:/wikipedia.org/wiki/ELIZA), a computer 'therapist' that would ask the human questions and give the appearance of understanding their answers. However, while Eliza could parse a sentence and identify certain grammatical constructs and keywords so as to give a reasonable answer, it could not be said to *understand* the sentence. If Eliza was presented with a sentence following the format "**I am** sad" it might rearrange and substitute words in the sentence to form the response "How long have **you been** sad". +In the 1960's an MIT scientist called *Joseph Weizenbaum* developed [*Eliza*](https://wikipedia.org/wiki/ELIZA), a computer 'therapist' that would ask the human questions and give the appearance of understanding their answers. However, while Eliza could parse a sentence and identify certain grammatical constructs and keywords so as to give a reasonable answer, it could not be said to *understand* the sentence. If Eliza was presented with a sentence following the format "**I am** sad" it might rearrange and substitute words in the sentence to form the response "How long have **you been** sad". This gave the impression that Eliza understood the statement and was asking a follow-on question, whereas in reality, it was changing the tense and adding some words. If Eliza could not identify a keyword that it had a response for, it would instead give a random response that could be applicable to many different statements. Eliza could be easily tricked, for instance if a user wrote "**You are** a bicycle" it might respond with "How long have **I been** a bicycle?", instead of a more reasoned response. From 12c49120a22e386446a57e9f3d80f0224c0e2079 Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Thu, 29 Jul 2021 09:54:53 +0800 Subject: [PATCH 184/228] Correct Typo --- .../translations/README.zh-cn.md | 64 +++++++++---------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md index 3386412b..2174423a 100644 --- a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md +++ b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md @@ -1,17 +1,17 @@ # 菜品分类器1 -在本节中,将使用你在上一个课程中所保存的全部经过均衡和清洗的菜品数据。 +本节课程将使用你在上一个课程中所保存的全部经过均衡和清洗的菜品数据。 -你将使用这份数据集,并通过多种分类器 _在给出了各种配料后预测这是那一个国家的菜品_。在此过程中,你将学到更多能够用来调节分类任务算法的方法。 +你将使用这份数据集,并通过多种分类器 _在给出了各种配料后预测这是那一个国家的菜品_。在此过程中,你将学到更多能够用来调试分类任务算法的方法。 ## [课前测试](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/21/) # 准备工作 -假设你已经完成了[课程1](../1-Introduction/README.md), 确保在根目录的`/data`文件夹中有 _cleaned_cuisines.csv_ 文件来进行接下来的四节课程。 +假设你已经完成了[课程1](../1-Introduction/README.md), 确保在根目录的`/data`文件夹中有 _cleaned_cuisines.csv_ 这份文件来进行接下来的四节课程。 ## 练习 - 预测某国的菜品 -1. 在本节课的 _notebook.ipynb_ 文件中,导入Pandas的同时载入相应的数据文件: +1. 在本节课的 _notebook.ipynb_ 文件中,导入Pandas,并读取相应的数据文件: ```python import pandas as pd @@ -41,14 +41,14 @@ import numpy as np ``` -1. 接下来需要将数据分训练模型所需的X和y两个dataframe。首先可将`cuisine`列的数据单独保存为标签(label)的dataframe。 +1. 接下来需要将数据分为训练模型所需的X(译者注:代表特征数据)和y(译者注:代表标签数据)两个dataframe。首先可将`cuisine`列的数据单独保存为的一个dataframe作为标签(label)。 ```python cuisines_label_df = cuisines_df['cuisine'] cuisines_label_df.head() ``` - 输出看上去会是这样: + 输出如下: ```output 0 indian @@ -59,7 +59,7 @@ Name: cuisine, dtype: object ``` -1. 调用`drop()`函数将 `Unnamed: 0`和 `cuisine`列删除,并将余下的数据作为可以用于训练的特证(feature): +1. 调用`drop()`函数将 `Unnamed: 0`和 `cuisine`列删除,并将余下的数据作为可以用于训练的特证(feature)数据: ```python cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) @@ -80,9 +80,9 @@ ## 选则你的分类器 -你的数据已经清洗干净并已经准备好可以进行训练了,现在需要决定你想使用的算法来完成这项任务。 +你的数据已经清洗干净并已经准备好可以进行训练了,现在需要决定你想要使用的算法来完成这项任务。 -Scikit_learn将分类任务归在了监督学习目录中,在这个目录中你将会找到很多方法来进行分类。乍一看上去,有点[琳琅满目](https://scikit-learn.org/stable/supervised_learning.html)。下面这些方法都包含了分类技术: +Scikit_learn将分类任务归在了监督学习类别中,在这个类别中你将可以找到很多可以用来分类的方法。乍一看上去,有点[琳琅满目](https://scikit-learn.org/stable/supervised_learning.html)。以下这些方法都包含了分类技术: - 线性模型(Linear Models) - 支持向量机(Support Vector Machines) @@ -97,45 +97,43 @@ Scikit_learn将分类任务归在了监督学习目录中,在这个目录中 ### 如何选择分类器? -那么,你应该选择哪一个分类器呢?一般来说,可以选择多个方法并对比他们运行后的结果。Scikit-learn提供了各种算法(包括KNeighbors、 SVC two ways、 GaussianProcessClassifier、 DecisionTreeClassifier、 RandomForestClassifier、 MLPClassifier、 AdaBoostClassifier、 GaussianNB以及QuadraticDiscrinationAnalysis)的[比较](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html),并且对比较的结果进行了可视化的展示: +那么,你应该选择哪一个分类器呢?一般来说,可以多选择几个并对比他们运行后的结果。Scikit-learn提供了各种算法(包括KNeighbors、 SVC two ways、 GaussianProcessClassifier、 DecisionTreeClassifier、 RandomForestClassifier、 MLPClassifier、 AdaBoostClassifier、 GaussianNB以及QuadraticDiscrinationAnalysis)的效果[对比](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html),并且将比较的结果进行了可视化的展示: ![各分类器比较](../images/comparison.png) > 图表来源于Scikit-learn的官方文档 -> AutoML通过在云端运行这些比较非常完美地解决的这个问题,使得你能够根据你的数据选择最佳的算法。试试[这里](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-15963-cxa)。 +> AutoML通过在云端运行这些对比非常完美地解决的选择算法的这个问题,使得你能够根据你的数据特性选择最佳的算法。试试点击[这里](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-15963-cxa)了解更多。 -### 一种更好的方法 +### 一种更好的方法来选择分类器 -不过,比起无脑地猜测,根据这份可以下载的[机器学习作弊表]中的方法是一个更好的选择。在表中我们可以发现对于这个多类型的分类任务,可以有一些选择: - -A better way than wildly guessing, however, is to follow the ideas on this downloadable [ML Cheat sheet](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-15963-cxa). Here, we discover that, for our multiclass problem, we have some choices: +不过,比起无脑地猜测,你可以下载这份[机器学习作弊表(cheatsheet)](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-15963-cxa),对各算法进行对比,这是一个选择算法更有效的办法。在表中我们可以发现对于本课程中涉及的多类型的分类任务,可以有以下这些选择: ![多类型问题作弊表](../images/cheatsheet.png) > 微软算法作弊表中关于多类型分类任务可选算法的部分 ✅ 下载这份作弊表,打印出来,挂在你的墙上吧! -### 推导过程 +### 选择的过程 -Let's see if we can reason our way through different approaches given the constraints we have:让我们看看根据我们所有的限制条件推导下各中方法的可行性: +让我们看看根据我们所有的限制条件依次判断下各种方法的可行性: - **神经网络(Neural Network)太过复杂了**。我们的数据很清晰但数据量比较小,此外我们是通过notebook在本地进行训练,神经网络对于这个任务来说过于复杂了。 - **二分类法(two-class classifier)不可行**。我们不能使用二分类法,所以这就排除了一对多(one-vs-all)算法。 -- **决策树以及逻辑回归可行**. 决策树也许有用,或者也可以使用逻辑回归来处理多类型数据。 -- **多类型增强决策数可以解决不同的问题**. 多类型增强决策树最适合非参数化的任务,即任务目标是建立一个排序,这对我们的任务并没有作用。 +- **决策树以及逻辑回归可行**。决策树应该是有用的,此外也可以使用逻辑回归来处理多类型数据。 +- **多类型增强决策树是用于解决其他问题的**. 多类型增强决策树最适合非参数化的任务,即任务目标是建立一个排序,这对我们当前的任务并没有作用。 ### 使用Scikit-learn -我们将使用Scikit-learn来分析我们的数据。然而,在Scikit-learn中有很多种方法来使用逻辑回归。可以看一看逻辑回归算法可以[传递的参数](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)。 +我们将会使用Scikit-learn来对我们的数据进行分析。然而,在Scikit-learn中使用逻辑回归也有很很多方法。可以看一看逻辑回归算法需要[传递的参数](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)。 -当我们需要Scikit-learn进行逻辑回归运算时,`multi_class` 以及 `solver`是最重要的两个参数,我们需要特别说明一下哎。 `multi_class` 的值决定了特定的行为。`solver`的值是我们需要使用的算法。并不是所有的solvers都可以匹配`multi_class`的值的。 +当我们需要Scikit-learn进行逻辑回归运算时,`multi_class` 以及 `solver`是最重要的两个参数,因此我们需要特别说明一下。 `multi_class` 的值是分类任务要求的某一种特定的行为。`solver`的值是我们需要使用的算法。并不是所有的solvers都可以匹配`multi_class`的值的。 -According to the docs, in the multiclass case, the training algorithm根据文档,在多类型问题种,训练的算法: +根据文档,在多类型问题中,训练的算法应: -- **使用“一对其余”(OvR)策略(scheme)**, 如果`multi_class`被设置为`ovr` -- **使用交叉熵损失(cross entropy loss)**, 如果`multi_class`被设置为`multinomial` (目前,`multinomial`只支持‘lbfgs’, ‘sag’, ‘saga’以及‘newton-cg’等 solver)。 +- **使用“一对其余”(OvR)策略(scheme)**, 当`multi_class`被设置为`ovr`时 +- **使用交叉熵损失(cross entropy loss)**, 当`multi_class`被设置为`multinomial` (目前,`multinomial`只支持‘lbfgs’, ‘sag’, ‘saga’以及‘newton-cg’等 solver)时。 -> 🎓 其中“scheme”可以是“ovr(one-vs-rest)”也可以是“multinomial”。 因为逻辑回归事实上是设计用于支持二分类任务的,这些scheme将使其可以更好的支持多类型分类任务。[来源](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) +> 🎓 其中“scheme”可以是“ovr(one-vs-rest)”也可以是“multinomial”。 因为逻辑回归本来是设计来用于进行二分类任务的,这两个scheme都可以使得逻辑回归能更好的支持多类型分类任务。[来源](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) > 🎓 “solver”被定义为是"用于解决优化问题的算法"。[来源](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). @@ -145,7 +143,7 @@ Scikit-learn提供了以下这个表格来解释solver是如何应对的不同 ## 练习 - 分割数据 -因为你刚刚在上一节课中学习了逻辑回归,因此我们可以聚焦于此,来演练一下如何进行第一个模型的训练。通过调用`train_test_split()`可以把你的数据分割成训练集和测试集: +你刚刚在上一节课中学习了逻辑回归,因此我们可以聚焦于此,来演练一下如何进行第一个模型的训练。首先,需要通过调用`train_test_split()`可以把你的数据分割成训练集和测试集: ```python @@ -154,7 +152,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine ## 练习 - 应用逻辑回归 -因为我们正在进行多类型分类的案例,你需要决定选用什么 _scheme_ 以及使用什么 _solver_ 。使用带有multiclass设置的LogisticRegression,并将solver设置为**liblinear**来进行模型训练。 +接着,你需要决定选用什么 _scheme_ 以及 _solver_ 来进行我们这个多类型分类的案例。这里我们使用LogisticRegression方法,并设置相应的multi_class参数,同时将solver设置为**liblinear**来进行模型训练。 1. 创建逻辑回归,并将multi_class设置为`ovr`,同时将solver设置为 `liblinear`: @@ -166,13 +164,13 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine print ("Accuracy is {}".format(accuracy)) ``` - ✅ 也可以试试其他solver比如`lbfgs`, 它通常可以作为默认的设置 + ✅ 也可以试试其他solver比如`lbfgs`, 这通常是默认的设置 > 注意, 使用Pandas的[`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) 函数可以在需要的时候将你的数据进行降维 - 准确率高达了**80%**! + 计算结果准确率高达了**80%**! -1. 你也可以通过查看一行数据(比如第50行)来观察到模型运行的情况: +1. 你也可以通过查看某一行数据(比如第50行)来观察到模型运行的情况: ```python print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}') @@ -186,9 +184,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine cuisine: indian ``` - ✅ 试试不同的行号来检查一下结果吧 + ✅ 试试不同的行索引来检查一下结果吧 -1. 让我们再深入研究一下,你可以检查一下这回预测的准确率: +1. 让我们再深入研究一下,你可以检查一下本次预测的准确率: ```python test= X_test.iloc[50].values.reshape(-1, 1).T @@ -200,7 +198,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine topPrediction.head() ``` - 运行后的输出如下———这是一道印度菜的可能性最大,是最合理的猜测: + 运行后的输出如下———可以发现这是一道印度菜的可能性最大,是最合理的猜测: | | 0 | | | | | | | | | | | | | | | | | | | | | | -------: | -------: | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | From d9e007b72916a46a34173fd59be83c89f22f9ce1 Mon Sep 17 00:00:00 2001 From: Abhinav Sharma <63901956+abhi-bhatra@users.noreply.github.com> Date: Thu, 29 Jul 2021 07:26:26 +0530 Subject: [PATCH 185/228] Update README.md Fix bot.py address --- 6-NLP/1-Introduction-to-NLP/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-NLP/1-Introduction-to-NLP/README.md b/6-NLP/1-Introduction-to-NLP/README.md index 4a7a88d6..51235856 100644 --- a/6-NLP/1-Introduction-to-NLP/README.md +++ b/6-NLP/1-Introduction-to-NLP/README.md @@ -133,7 +133,7 @@ Let's create the bot next. We'll start by defining some phrases. It was nice talking to you, goodbye! ``` - One possible solution to the task is [here](../solution/bot.py) + One possible solution to the task is [here](solution/bot.py) ✅ Stop and consider From f29dc516b89d5da7de6f72a2259881e7644ab177 Mon Sep 17 00:00:00 2001 From: Abhinav Sharma <63901956+abhi-bhatra@users.noreply.github.com> Date: Thu, 29 Jul 2021 07:34:20 +0530 Subject: [PATCH 186/228] Update README.md Address Link fix --- 6-NLP/3-Translation-Sentiment/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/6-NLP/3-Translation-Sentiment/README.md b/6-NLP/3-Translation-Sentiment/README.md index bcd6cdd1..0c6b568b 100644 --- a/6-NLP/3-Translation-Sentiment/README.md +++ b/6-NLP/3-Translation-Sentiment/README.md @@ -143,7 +143,7 @@ Your task is to determine, using sentiment polarity, if *Pride and Prejudice* ha 1. If the polarity is 1 or -1 store the sentence in an array or list of positive or negative messages 5. At the end, print out all the positive sentences and negative sentences (separately) and the number of each. -Here is a sample [solution](solutions/notebook.ipynb). +Here is a sample [solution](solution/notebook.ipynb). ✅ Knowledge Check From f17f05ace97acfa46b0b6a9a4c7f28fa066908b1 Mon Sep 17 00:00:00 2001 From: Abhinav Sharma <63901956+abhi-bhatra@users.noreply.github.com> Date: Thu, 29 Jul 2021 07:48:06 +0530 Subject: [PATCH 187/228] Update README.md Fix link to Jupyter-notebook --- 6-NLP/5-Hotel-Reviews-2/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/6-NLP/5-Hotel-Reviews-2/README.md b/6-NLP/5-Hotel-Reviews-2/README.md index 7d8a4d03..12b9a15a 100644 --- a/6-NLP/5-Hotel-Reviews-2/README.md +++ b/6-NLP/5-Hotel-Reviews-2/README.md @@ -347,13 +347,13 @@ print("Saving results to Hotel_Reviews_NLP.csv") df.to_csv(r"../data/Hotel_Reviews_NLP.csv", index = False) ``` -You should run the entire code for [the analysis notebook](solution/notebook-sentiment-analysis.ipynb) (after you've run [your filtering notebook](solution/notebook-filtering.ipynb) to generate the Hotel_Reviews_Filtered.csv file). +You should run the entire code for [the analysis notebook](solution/3-notebook.ipynb) (after you've run [your filtering notebook](solution/1-notebook.ipynb) to generate the Hotel_Reviews_Filtered.csv file). To review, the steps are: -1. Original dataset file **Hotel_Reviews.csv** is explored in the previous lesson with [the explorer notebook](../4-Hotel-Reviews-1/solution/notebook-explorer.ipynb) -2. Hotel_Reviews.csv is filtered by [the filtering notebook](solution/notebook-filtering.ipynb) resulting in **Hotel_Reviews_Filtered.csv** -3. Hotel_Reviews_Filtered.csv is processed by [the sentiment analysis notebook](solution/notebook-sentiment-analysis.ipynb) resulting in **Hotel_Reviews_NLP.csv** +1. Original dataset file **Hotel_Reviews.csv** is explored in the previous lesson with [the explorer notebook](../4-Hotel-Reviews-1/solution/notebook.ipynb) +2. Hotel_Reviews.csv is filtered by [the filtering notebook](solution/1-notebook.ipynb) resulting in **Hotel_Reviews_Filtered.csv** +3. Hotel_Reviews_Filtered.csv is processed by [the sentiment analysis notebook](solution/3-notebook.ipynb) resulting in **Hotel_Reviews_NLP.csv** 4. Use Hotel_Reviews_NLP.csv in the NLP Challenge below ### Conclusion From 7539844e90c7c1921fafacc4aa923799c510f132 Mon Sep 17 00:00:00 2001 From: Abhinav Sharma <63901956+abhi-bhatra@users.noreply.github.com> Date: Thu, 29 Jul 2021 08:30:58 +0530 Subject: [PATCH 188/228] Update README.md Link to K-Means Clustering Simulator --- 5-Clustering/2-K-Means/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/5-Clustering/2-K-Means/README.md b/5-Clustering/2-K-Means/README.md index bd59e080..6e0724b5 100644 --- a/5-Clustering/2-K-Means/README.md +++ b/5-Clustering/2-K-Means/README.md @@ -242,7 +242,7 @@ Hint: Try to scale your data. There's commented code in the notebook that adds s ## Review & Self Study -Take a look at K-Means Simulator [here](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). You can use this tool to visualize sample data points and determine its centroids. You can edit the data's randomness, numbers of clusters and numbers of centroids. Does this help you get an idea of how the data can be grouped? +Take a look at K-Means Simulator [such as this one](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). You can use this tool to visualize sample data points and determine its centroids. You can edit the data's randomness, numbers of clusters and numbers of centroids. Does this help you get an idea of how the data can be grouped? Also, take a look at [this handout on k-means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) from Stanford. From d6e61a30afdbcbcbc711cc929951be94416f6a93 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:03:23 -0400 Subject: [PATCH 189/228] Update README.md --- 5-Clustering/2-K-Means/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/5-Clustering/2-K-Means/README.md b/5-Clustering/2-K-Means/README.md index 6e0724b5..d85654ae 100644 --- a/5-Clustering/2-K-Means/README.md +++ b/5-Clustering/2-K-Means/README.md @@ -224,7 +224,7 @@ Previously, you surmised that, because you have targeted 3 song genres, you shou ## Variance -Variance is defined as "the average of the squared differences from the Mean."[source](https://www.mathsisfun.com/data/standard-deviation.html) In the context of this clustering problem, it refers to data that the numbers of our dataset tend to diverge a bit too much from the mean. +Variance is defined as "the average of the squared differences from the Mean" [source](https://www.mathsisfun.com/data/standard-deviation.html). In the context of this clustering problem, it refers to data that the numbers of our dataset tend to diverge a bit too much from the mean. ✅ This is a great moment to think about all the ways you could correct this issue. Tweak the data a bit more? Use different columns? Use a different algorithm? Hint: Try [scaling your data](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) to normalize it and test other columns. @@ -242,7 +242,7 @@ Hint: Try to scale your data. There's commented code in the notebook that adds s ## Review & Self Study -Take a look at K-Means Simulator [such as this one](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). You can use this tool to visualize sample data points and determine its centroids. You can edit the data's randomness, numbers of clusters and numbers of centroids. Does this help you get an idea of how the data can be grouped? +Take a look at a K-Means Simulator [such as this one](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). You can use this tool to visualize sample data points and determine its centroids. You can edit the data's randomness, numbers of clusters and numbers of centroids. Does this help you get an idea of how the data can be grouped? Also, take a look at [this handout on k-means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) from Stanford. From 23d4e4c216758c09aadb93f8b8b639b6b98d7c9f Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:08:47 -0400 Subject: [PATCH 190/228] Update README.md --- 2-Regression/4-Logistic/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/2-Regression/4-Logistic/README.md b/2-Regression/4-Logistic/README.md index 2f31b6ed..0708b365 100644 --- a/2-Regression/4-Logistic/README.md +++ b/2-Regression/4-Logistic/README.md @@ -227,9 +227,6 @@ What's going on here? Let's say our model is asked to classify items between two - If your model predicts something as a pumpkin and it belongs to category 'not-a-pumpkin' in reality we call it a false negative, shown by the bottom left number. - If your model predicts something as not a pumpkin and it belongs to category 'not-a-pumpkin' in reality we call it a true negative, shown by the bottom right number. -![Confusion Matrix](images/confusion-matrix.png) - -> Infographic by [Jen Looper](https://twitter.com/jenlooper) As you might have guessed it's preferable to have a larger number of true positives and true negatives and a lower number of false positives and false negatives, which implies that the model performs better. @@ -285,6 +282,7 @@ In future lessons on classifications, you will learn how to iterate to improve y ## 🚀Challenge There's a lot more to unpack regarding logistic regression! But the best way to learn is to experiment. Find a dataset that lends itself to this type of analysis and build a model with it. What do you learn? tip: try [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) for interesting datasets. + ## [Post-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/16/) ## Review & Self Study From 929103d8aca803324f4ca91f25882717965dc360 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:09:34 -0400 Subject: [PATCH 191/228] removing confusion matrix image --- 2-Regression/4-Logistic/translations/README.id.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/2-Regression/4-Logistic/translations/README.id.md b/2-Regression/4-Logistic/translations/README.id.md index fa47aea3..213ef4aa 100644 --- a/2-Regression/4-Logistic/translations/README.id.md +++ b/2-Regression/4-Logistic/translations/README.id.md @@ -230,10 +230,6 @@ Apa yang sedang terjadi di sini? Mari kita asumsi dulu bahwa model kita ditanyak - Kalau modelmu memprediksi sesuati sebagai sebuah labu tetapi sebenarnya bukan sebuah labu, itu disebut negatif palsu yang diindikasi angka di pojok kiri bawah. - Kalau modelmu memprediksi sesuati sebagai bukan sebuah labu dan memang benar sesuatu itu bukan sebuah labu, itu disebut negatif benar yang diindikasi angka di pojok kanan bawah. -![Matriks Kebingungan](../images/confusion-matrix.png) - -> Infografik oleh [Jen Looper](https://twitter.com/jenlooper) - Sebagaimana kamu mungkin sudah pikirkan, lebih baik dapat banyak positif benar dan negatif benar dan sedikit positif palsu dan negatif palsu. Implikasinya adalah performa modelnya bagus. ✅ Pertanyaan: Berdasarkan matriks kebingungan, modelnya baik tidak? Jawaban: Tidak buruk; ada banyak positif benar dan sedikit negatif palsu. From 46d3bd3986f021a017a41cb86141c91954cc52fb Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:10:05 -0400 Subject: [PATCH 192/228] Update README.it.md --- 2-Regression/4-Logistic/translations/README.it.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/2-Regression/4-Logistic/translations/README.it.md b/2-Regression/4-Logistic/translations/README.it.md index 3b30cf68..e9940203 100644 --- a/2-Regression/4-Logistic/translations/README.it.md +++ b/2-Regression/4-Logistic/translations/README.it.md @@ -228,10 +228,6 @@ Cosa sta succedendo qui? Si supponga che al modello venga chiesto di classificar - Se il modello prevede qualcosa come una zucca e appartiene alla categoria 'non-una-zucca' in realtà si chiama falso negativo, mostrato dal numero in basso a sinistra. - Se il modello prevede qualcosa come non una zucca e appartiene alla categoria 'non-una-zucca' in realtà lo si chiama un vero negativo, mostrato dal numero in basso a destra. -![Matrice di Confusione](../images/confusion-matrix.png) - -> Infografica di [Jen Looper](https://twitter.com/jenlooper) - Come si sarà intuito, è preferibile avere un numero maggiore di veri positivi e veri negativi e un numero inferiore di falsi positivi e falsi negativi, il che implica che il modello funziona meglio. ✅ Domanda: Secondo la matrice di confusione, come si è comportato il modello? Risposta: Non male; ci sono un buon numero di veri positivi ma anche diversi falsi negativi. From c9e2bdf2635c2422d2407c089ed54360973e3ca3 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:10:55 -0400 Subject: [PATCH 193/228] removing confusion matrix image --- 2-Regression/4-Logistic/translations/README.zh-cn.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/2-Regression/4-Logistic/translations/README.zh-cn.md b/2-Regression/4-Logistic/translations/README.zh-cn.md index 3a5ff926..5de169fb 100644 --- a/2-Regression/4-Logistic/translations/README.zh-cn.md +++ b/2-Regression/4-Logistic/translations/README.zh-cn.md @@ -228,10 +228,6 @@ Seaborn提供了一些巧妙的方法来可视化你的数据。例如,你可 - 如果你的模型将某物预测为南瓜并且它实际上属于“非南瓜”类别,我们将其称为假阴性,由左下角的数字显示。 - 如果你的模型预测某物不是南瓜,并且它实际上属于“非南瓜”类别,我们将其称为真阴性,如右下角的数字所示。 -![混淆矩阵](../images/confusion-matrix.png) - -> 作者[Jen Looper](https://twitter.com/jenlooper) - 正如你可能已经猜到的那样,最好有更多的真阳性和真阴性以及较少的假阳性和假阴性,这意味着模型性能更好。 ✅ Q:根据混淆矩阵,模型怎么样? A:还不错;有很多真阳性,但也有一些假阴性。 From 4e7e75c8c22855bd243f41019c50fe9c4a8e5cb1 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:15:13 -0400 Subject: [PATCH 194/228] Update lesson_2-R.ipynb --- 2-Regression/2-Data/solution/lesson_2-R.ipynb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/2-Regression/2-Data/solution/lesson_2-R.ipynb b/2-Regression/2-Data/solution/lesson_2-R.ipynb index 632de0d4..9090e183 100644 --- a/2-Regression/2-Data/solution/lesson_2-R.ipynb +++ b/2-Regression/2-Data/solution/lesson_2-R.ipynb @@ -216,7 +216,7 @@ "source": [ "## 3. Dplyr: A Grammar of Data Manipulation\n", "\n", - "![Artwork by \\@allison_horst](../images/dplyr_wrangling.png){width=\"569\"}" + "![Artwork by \\@allison_horst](../images/dplyr_wrangling.png)" ] }, { @@ -637,8 +637,8 @@ "source": [ "🤩🤩This is a more useful data visualization! It seems to indicate that the highest price for pumpkins occurs in September and October. Does that meet your expectation? Why or why not?\n", "\n", - "Congratulations on finishing the second lesson 👏! You did prepared your data for model building, then uncovered more insights using visualizations!" + "Congratulations on finishing the second lesson 👏! You prepared your data for model building, then uncovered more insights using visualizations!" ] } ] -} \ No newline at end of file +} From 4d24d0cc7e43141feb8f2157faafc714f7764744 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:17:38 -0400 Subject: [PATCH 195/228] art links --- 2-Regression/2-Data/solution/lesson_2-R.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-Regression/2-Data/solution/lesson_2-R.ipynb b/2-Regression/2-Data/solution/lesson_2-R.ipynb index 9090e183..adb3a503 100644 --- a/2-Regression/2-Data/solution/lesson_2-R.ipynb +++ b/2-Regression/2-Data/solution/lesson_2-R.ipynb @@ -40,7 +40,7 @@ "\n", "Let's see this by working through a practical exercise.\n", "\n", - "![Artwork by \\@allison_horst](../images/unruly_data.jpg){width=\"700\"}
" + "![Artwork by \\@allison_horst](../images/unruly_data.jpg)
Artwork by \\@allison_horst" ] }, { @@ -216,7 +216,7 @@ "source": [ "## 3. Dplyr: A Grammar of Data Manipulation\n", "\n", - "![Artwork by \\@allison_horst](../images/dplyr_wrangling.png)" + "![Artwork by \\@allison_horst](../images/dplyr_wrangling.png)
Artwork by \\@allison_horst" ] }, { From bb375dd2567d1700333dd28edde3b4bee344af59 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:23:07 -0400 Subject: [PATCH 196/228] Update README.md --- 2-Regression/2-Data/README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/2-Regression/2-Data/README.md b/2-Regression/2-Data/README.md index 2c7f23ad..03d17fe7 100644 --- a/2-Regression/2-Data/README.md +++ b/2-Regression/2-Data/README.md @@ -1,10 +1,13 @@ # Build a regression model using Scikit-learn: prepare and visualize data -> ![Data visualization infographic](./images/data-visualization.png) -> Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded) +![Data visualization infographic](./images/data-visualization.png) + +Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded) ## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) +> ### [This lesson is available in R!](../solution/lesson_2-R.ipynb) + ## Introduction Now that you are set up with the tools you need to start tackling machine learning model building with Scikit-learn, you are ready to start asking questions of your data. As you work with data and apply ML solutions, it's very important to understand how to ask the right question to properly unlock the potentials of your dataset. From eb5ae91609cb8c150ae0d9c41c20ecf3f4bb3433 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:24:20 -0400 Subject: [PATCH 197/228] editing art link --- 2-Regression/1-Tools/solution/lesson_1-R.ipynb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/2-Regression/1-Tools/solution/lesson_1-R.ipynb b/2-Regression/1-Tools/solution/lesson_1-R.ipynb index 6b6a0c42..2af5f3e1 100644 --- a/2-Regression/1-Tools/solution/lesson_1-R.ipynb +++ b/2-Regression/1-Tools/solution/lesson_1-R.ipynb @@ -42,7 +42,7 @@ "\n", "That said, let's get started on this task!\n", "\n", - "![Artwork by \\@allison_horst](../images/encouRage.jpg){width=\"630\"}" + "![Artwork by \\@allison_horst](../images/encouRage.jpg){width=\"630\"}
Artwork by @allison_horst" ] }, { @@ -433,4 +433,4 @@ ] } ] -} \ No newline at end of file +} From 1048989ed6218f9ac2680becb90501250e0f9d1a Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:24:51 -0400 Subject: [PATCH 198/228] edit for art link --- 2-Regression/1-Tools/solution/lesson_1-R.ipynb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/1-Tools/solution/lesson_1-R.ipynb b/2-Regression/1-Tools/solution/lesson_1-R.ipynb index 2af5f3e1..cba24081 100644 --- a/2-Regression/1-Tools/solution/lesson_1-R.ipynb +++ b/2-Regression/1-Tools/solution/lesson_1-R.ipynb @@ -42,7 +42,7 @@ "\n", "That said, let's get started on this task!\n", "\n", - "![Artwork by \\@allison_horst](../images/encouRage.jpg){width=\"630\"}
Artwork by @allison_horst" + "![Artwork by \\@allison_horst](../images/encouRage.jpg)
Artwork by @allison_horst" ] }, { From 132068cd4d2042f088df47753a9c1e59bec4398c Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:25:46 -0400 Subject: [PATCH 199/228] Update README.md --- 2-Regression/1-Tools/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/2-Regression/1-Tools/README.md b/2-Regression/1-Tools/README.md index 6225f7cd..fc222cb6 100644 --- a/2-Regression/1-Tools/README.md +++ b/2-Regression/1-Tools/README.md @@ -5,6 +5,9 @@ > Sketchnote by [Tomomi Imura](https://www.twitter.com/girlie_mac) ## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/9/) + +> ### [This lesson is available in R!](../solution/lesson_1-R.ipynb) + ## Introduction In these four lessons, you will discover how to build regression models. We will discuss what these are for shortly. But before you do anything, make sure you have the right tools in place to start the process! From 6fff369c0e475a85636778030d0c610eb0b6c19e Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:27:38 -0400 Subject: [PATCH 200/228] R lesson! --- 2-Regression/1-Tools/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/1-Tools/README.md b/2-Regression/1-Tools/README.md index fc222cb6..2bd3f7f2 100644 --- a/2-Regression/1-Tools/README.md +++ b/2-Regression/1-Tools/README.md @@ -6,7 +6,7 @@ ## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/9/) -> ### [This lesson is available in R!](../solution/lesson_1-R.ipynb) +> ### [This lesson is available in R!](./solution/lesson_1-R.ipynb) ## Introduction From e468f6cbecfd89f85d6e4b5672e0e704a99bc5a7 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:28:03 -0400 Subject: [PATCH 201/228] Update README.md --- 2-Regression/2-Data/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/2-Regression/2-Data/README.md b/2-Regression/2-Data/README.md index 03d17fe7..56493188 100644 --- a/2-Regression/2-Data/README.md +++ b/2-Regression/2-Data/README.md @@ -6,7 +6,7 @@ Infographic by [Dasani Madipalli](https://twitter.com/dasani_decoded) ## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/11/) -> ### [This lesson is available in R!](../solution/lesson_2-R.ipynb) +> ### [This lesson is available in R!](./solution/lesson_2-R.ipynb) ## Introduction From 32aa697fa4a605e0827fd6de543b2ce86a87c81d Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:32:16 -0400 Subject: [PATCH 202/228] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8e7dca00..64ab0a82 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,8 @@ Travel with us around the world as we apply these classic techniques to data fro **🙏 Special thanks 🙏 to our Microsoft Student Ambassador authors, reviewers and content contributors**, notably Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, and Snigdha Agarwal +**🤩 Extra gratitude to Microsoft Student Ambassador Eric Wanjau for our R lessons!** + --- # Getting Started From f5049f8e9fd910cc9563480124a06ed7eb33184a Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Wed, 28 Jul 2021 23:56:04 -0400 Subject: [PATCH 203/228] confusion matrices are confusing --- 2-Regression/4-Logistic/README.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/2-Regression/4-Logistic/README.md b/2-Regression/4-Logistic/README.md index 0708b365..62697103 100644 --- a/2-Regression/4-Logistic/README.md +++ b/2-Regression/4-Logistic/README.md @@ -206,7 +206,7 @@ While you can get a scoreboard report [terms](https://scikit-learn.org/stable/mo > 🎓 A '[confusion matrix](https://wikipedia.org/wiki/Confusion_matrix)' (or 'error matrix') is a table that expresses your model's true vs. false positives and negatives, thus gauging the accuracy of predictions. -1. To use a confusion metrics, call `confusin_matrix()`: +1. To use a confusion metrics, call `confusion_matrix()`: ```python from sklearn.metrics import confusion_matrix @@ -220,17 +220,29 @@ While you can get a scoreboard report [terms](https://scikit-learn.org/stable/mo [ 33, 0]]) ``` -What's going on here? Let's say our model is asked to classify items between two binary categories, category 'pumpkin' and category 'not-a-pumpkin'. +In Scikit-learn, confusion matrices Rows (axis 0) are actual labels and columns (axis 1) are predicted labels. -- If your model predicts something as a pumpkin and it belongs to category 'pumpkin' in reality we call it a true positive, shown by the top left number. -- If your model predicts something as not a pumpkin and it belongs to category 'pumpkin' in reality we call it a false positive, shown by the top right number. -- If your model predicts something as a pumpkin and it belongs to category 'not-a-pumpkin' in reality we call it a false negative, shown by the bottom left number. -- If your model predicts something as not a pumpkin and it belongs to category 'not-a-pumpkin' in reality we call it a true negative, shown by the bottom right number. +| |0|1| +|:-:|:-:|:-:| +|0|TN|FP| +|1|FN|TP| +What's going on here? Let's say our model is asked to classify pumpkins between two binary categories, category 'orange' and category 'not-orange'. + +- If your model predicts a pumpkin as not orange and it belongs to category 'not-orange' in reality we call it a true negative, shown by the top left number. +- If your model predicts a pumpkin as orange and it belongs to category 'not-orange' in reality we call it a false negative, shown by the bottom left number. +- If your model predicts a pumpkin as not orange and it belongs to category 'orange' in reality we call it a false positive, shown by the top right number. +- If your model predicts a pumpkin as orange and it belongs to category 'orange' in reality we call it a true positive, shown by the bottom right number. As you might have guessed it's preferable to have a larger number of true positives and true negatives and a lower number of false positives and false negatives, which implies that the model performs better. -✅ Q: According to the confusion matrix, how did the model do? A: Not too bad; there are a good number of true positives but also several false negatives. +How does the confusion matrix relate to precision and recall? Remember, the classification report printed above showed precision (0.83) and recall (0.98). + +Precision = tp / (tp + fp) = 162 / (162 + 33) = 0.8307692307692308 + +Recall = tp / (tp + fn) = 162 / (162 + 4) = 0.9759036144578314 + +✅ Q: According to the confusion matrix, how did the model do? A: Not too bad; there are a good number of true negatives but also several false negatives. Let's revisit the terms we saw earlier with the help of the confusion matrix's mapping of TP/TN and FP/FN: @@ -249,6 +261,7 @@ Let's revisit the terms we saw earlier with the help of the confusion matrix's m 🎓 Weighted Avg: The calculation of the mean metrics for each label, taking label imbalance into account by weighting them by their support (the number of true instances for each label). ✅ Can you think which metric you should watch if you want your model to reduce the number of false negatives? + ## Visualize the ROC curve of this model This is not a bad model; its accuracy is in the 80% range so ideally you could use it to predict the color of a pumpkin given a set of variables. From 83f8a7980b5edfe05c15333e21c7273ccd650b54 Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Fri, 30 Jul 2021 10:46:50 +0800 Subject: [PATCH 204/228] Standardize some terms as other translation file --- .../2-Classifiers-1/translations/README.zh-cn.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md index 2174423a..ac5d80ba 100644 --- a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md +++ b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md @@ -4,10 +4,10 @@ 你将使用这份数据集,并通过多种分类器 _在给出了各种配料后预测这是那一个国家的菜品_。在此过程中,你将学到更多能够用来调试分类任务算法的方法。 -## [课前测试](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/21/) +## [课前测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/21/) # 准备工作 -假设你已经完成了[课程1](../1-Introduction/README.md), 确保在根目录的`/data`文件夹中有 _cleaned_cuisines.csv_ 这份文件来进行接下来的四节课程。 +假如你已经完成了[课程1](../1-Introduction/README.md), 确保在根目录的`/data`文件夹中有 _cleaned_cuisines.csv_ 这份文件来进行接下来的四节课程。 ## 练习 - 预测某国的菜品 @@ -59,14 +59,14 @@ Name: cuisine, dtype: object ``` -1. 调用`drop()`函数将 `Unnamed: 0`和 `cuisine`列删除,并将余下的数据作为可以用于训练的特证(feature)数据: +1. 调用`drop()`方法将 `Unnamed: 0`和 `cuisine`列删除,并将余下的数据作为可以用于训练的特证(feature)数据: ```python cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) cuisines_feature_df.head() ``` - 你的特证(feature)数据看上去将会是这样: + 你的特征集看上去将会是这样: | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | --- | @@ -78,7 +78,7 @@ 现在,你已经准备好可以开始训练你的模型了! -## 选则你的分类器 +## 选择你的分类器 你的数据已经清洗干净并已经准备好可以进行训练了,现在需要决定你想要使用的算法来完成这项任务。 @@ -232,7 +232,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine 在本课程中,你使用了清洗后的数据建立了一个机器学习的模型,能够根据一系列的配料来预测菜品来自于哪个国家。请再花点时间阅读一下Scikit-learn所提供的可以用来分类数据的其他选择。同时也可以深入研究一下“solver”的概念并尝试一下理解其背后的原理。 -## [课后小测](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/22/) +## [课后测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/22/) ## 回顾与自学 [这个课程](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf)将对逻辑回归背后的数学原理进行更加深入的讲解 From 70bc7e558193177622bdb46f4c511411f35377f8 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Thu, 29 Jul 2021 23:07:09 -0400 Subject: [PATCH 205/228] typo fix for quiz --- quiz-app/src/assets/translations/en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quiz-app/src/assets/translations/en.json b/quiz-app/src/assets/translations/en.json index b9ef44e2..337b0867 100644 --- a/quiz-app/src/assets/translations/en.json +++ b/quiz-app/src/assets/translations/en.json @@ -293,11 +293,11 @@ "questionText": "Unfairness in a model can be caused by", "answerOptions": [ { - "answerText": "overrreliance on historical data", + "answerText": "over reliance on historical data", "isCorrect": "true" }, { - "answerText": "underreliance on historical data", + "answerText": "under reliance on historical data", "isCorrect": "false" }, { From 41f429311328e339710f8e09a43b3f66338d4506 Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Fri, 30 Jul 2021 11:32:43 +0800 Subject: [PATCH 206/228] optimize translation, more fluent --- .../translations/README.zh-cn.md | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md index ac5d80ba..36273b91 100644 --- a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md +++ b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md @@ -82,7 +82,7 @@ 你的数据已经清洗干净并已经准备好可以进行训练了,现在需要决定你想要使用的算法来完成这项任务。 -Scikit_learn将分类任务归在了监督学习类别中,在这个类别中你将可以找到很多可以用来分类的方法。乍一看上去,有点[琳琅满目](https://scikit-learn.org/stable/supervised_learning.html)。以下这些方法都包含了分类技术: +Scikit_learn将分类任务归在了监督学习类别中,在这个类别中你可以找到很多可以用来分类的方法。乍一看上去,有点[琳琅满目](https://scikit-learn.org/stable/supervised_learning.html)。以下这些算法都可以用于分类: - 线性模型(Linear Models) - 支持向量机(Support Vector Machines) @@ -97,64 +97,64 @@ Scikit_learn将分类任务归在了监督学习类别中,在这个类别中 ### 如何选择分类器? -那么,你应该选择哪一个分类器呢?一般来说,可以多选择几个并对比他们运行后的结果。Scikit-learn提供了各种算法(包括KNeighbors、 SVC two ways、 GaussianProcessClassifier、 DecisionTreeClassifier、 RandomForestClassifier、 MLPClassifier、 AdaBoostClassifier、 GaussianNB以及QuadraticDiscrinationAnalysis)的效果[对比](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html),并且将比较的结果进行了可视化的展示: +那么,你应该如何从中选择分类器呢?一般来说,可以选择多个分类器并对比他们的运行结果。Scikit-learn提供了各种算法(包括KNeighbors、 SVC two ways、 GaussianProcessClassifier、 DecisionTreeClassifier、 RandomForestClassifier、 MLPClassifier、 AdaBoostClassifier、 GaussianNB以及QuadraticDiscrinationAnalysis)的[对比](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html),并且将结果进行了可视化的展示: ![各分类器比较](../images/comparison.png) > 图表来源于Scikit-learn的官方文档 -> AutoML通过在云端运行这些对比非常完美地解决的选择算法的这个问题,使得你能够根据你的数据特性选择最佳的算法。试试点击[这里](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-15963-cxa)了解更多。 +> AutoML通过在云端运行这些算法并进行了对比,非常巧妙地解决的算法选择的问题,能帮助你根据数据集的特点来选择最佳的算法。试试点击[这里](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-15963-cxa)了解更多。 -### 一种更好的方法来选择分类器 +### 另外一种效果更佳的分类器选择方法 -不过,比起无脑地猜测,你可以下载这份[机器学习作弊表(cheatsheet)](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-15963-cxa),对各算法进行对比,这是一个选择算法更有效的办法。在表中我们可以发现对于本课程中涉及的多类型的分类任务,可以有以下这些选择: +比起无脑地猜测,你可以下载这份[机器学习小抄(cheatsheet)](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-15963-cxa)。这里面将各算法进行了比较,能更有效地帮助我们选择算法。根据这份小抄,我们可以找到要完成本课程中涉及的多类型的分类任务,可以有以下这些选择: ![多类型问题作弊表](../images/cheatsheet.png) -> 微软算法作弊表中关于多类型分类任务可选算法的部分 +> 微软算法小抄中部分关于多类型分类任务可选算法 -✅ 下载这份作弊表,打印出来,挂在你的墙上吧! +✅ 下载这份小抄,并打印出来,挂在你的墙上吧! -### 选择的过程 +### 选择的流程 -让我们看看根据我们所有的限制条件依次判断下各种方法的可行性: +让我们根据所有限制条件依次对各种算法的可行性进行判断: -- **神经网络(Neural Network)太过复杂了**。我们的数据很清晰但数据量比较小,此外我们是通过notebook在本地进行训练,神经网络对于这个任务来说过于复杂了。 -- **二分类法(two-class classifier)不可行**。我们不能使用二分类法,所以这就排除了一对多(one-vs-all)算法。 -- **决策树以及逻辑回归可行**。决策树应该是有用的,此外也可以使用逻辑回归来处理多类型数据。 -- **多类型增强决策树是用于解决其他问题的**. 多类型增强决策树最适合非参数化的任务,即任务目标是建立一个排序,这对我们当前的任务并没有作用。 +- **神经网络(Neural Network)太过复杂了**。我们的数据很清晰但数据量比较小,此外我们是通过notebook在本地进行训练的,神经网络对于这个任务来说过于复杂了。 +- **二分类法(two-class classifier)是不可行的**。我们不能使用二分类法,所以这就排除了一对多(one-vs-all)算法。 +- **可以选择决策树以及逻辑回归算法**。决策树应该是可行的,此外也可以使用逻辑回归来处理多类型数据。 +- **多类型增强决策树是用于解决其他问题的**. 多类型增强决策树最适合的是非参数化的任务,即任务目标是建立一个排序,这对我们当前的任务并没有作用。 ### 使用Scikit-learn -我们将会使用Scikit-learn来对我们的数据进行分析。然而,在Scikit-learn中使用逻辑回归也有很很多方法。可以看一看逻辑回归算法需要[传递的参数](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)。 +我们将会使用Scikit-learn来对我们的数据进行分析。然而在Scikit-learn中使用逻辑回归也有很多方法。可以先了解一下逻辑回归算法需要[传递的参数](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression)。 -当我们需要Scikit-learn进行逻辑回归运算时,`multi_class` 以及 `solver`是最重要的两个参数,因此我们需要特别说明一下。 `multi_class` 的值是分类任务要求的某一种特定的行为。`solver`的值是我们需要使用的算法。并不是所有的solvers都可以匹配`multi_class`的值的。 +当我们需要Scikit-learn进行逻辑回归运算时,`multi_class` 以及 `solver`是最重要的两个参数,因此我们需要特别说明一下。 `multi_class` 是分类方式选择参数,而`solver`优化算法选择参数。值得注意的是,并不是所有的solvers都可以与`multi_class`参数进行匹配的。 -根据文档,在多类型问题中,训练的算法应: +根据官方文档,在多类型分类问题中: -- **使用“一对其余”(OvR)策略(scheme)**, 当`multi_class`被设置为`ovr`时 -- **使用交叉熵损失(cross entropy loss)**, 当`multi_class`被设置为`multinomial` (目前,`multinomial`只支持‘lbfgs’, ‘sag’, ‘saga’以及‘newton-cg’等 solver)时。 +- 当`multi_class`被设置为`ovr`时,将使用 **“一对其余”(OvR)策略(scheme)**。 +- 当`multi_class`被设置为`multinomial`时,则使用的是**交叉熵损失(cross entropy loss)** 作为损失函数。(注意,目前`multinomial`只支持‘lbfgs’, ‘sag’, ‘saga’以及‘newton-cg’等solver作为损失函数的优化方法) -> 🎓 其中“scheme”可以是“ovr(one-vs-rest)”也可以是“multinomial”。 因为逻辑回归本来是设计来用于进行二分类任务的,这两个scheme都可以使得逻辑回归能更好的支持多类型分类任务。[来源](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) +> 🎓 在本课程的任务中“scheme”可以是“ovr(one-vs-rest)”也可以是“multinomial”。因为逻辑回归本来是设计来用于进行二分类任务的,这两个scheme参数的选择都可以使得逻辑回归很好的完成多类型分类任务。[来源](https://machinelearningmastery.com/one-vs-rest-and-one-vs-one-for-multi-class-classification/) > 🎓 “solver”被定义为是"用于解决优化问题的算法"。[来源](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html?highlight=logistic%20regressio#sklearn.linear_model.LogisticRegression). -Scikit-learn提供了以下这个表格来解释solver是如何应对的不同的数据结构所带来的不同的挑战的: +Scikit-learn提供了以下这个表格来解释各种solver是如何应对的不同的数据结构所带来的不同的挑战的: ![solvers](../images/solvers.png) ## 练习 - 分割数据 -你刚刚在上一节课中学习了逻辑回归,因此我们可以聚焦于此,来演练一下如何进行第一个模型的训练。首先,需要通过调用`train_test_split()`可以把你的数据分割成训练集和测试集: +因为你刚刚在上一节课中学习了逻辑回归,我们这里就通过逻辑回归算法,来演练一下如何进行你的第一个机器学习模型的训练。首先,需要通过调用`train_test_split()`方法可以把你的数据分割成训练集和测试集: ```python X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3) ``` -## 练习 - 应用逻辑回归 +## 练习 - 调用逻辑回归算法 -接着,你需要决定选用什么 _scheme_ 以及 _solver_ 来进行我们这个多类型分类的案例。这里我们使用LogisticRegression方法,并设置相应的multi_class参数,同时将solver设置为**liblinear**来进行模型训练。 +接下来,你需要决定选用什么 _scheme_ 以及 _solver_ 来进行我们这个多类型分类的案例。在这里我们使用LogisticRegression方法,并设置相应的multi_class参数,同时将solver设置为**liblinear**来进行模型训练。 -1. 创建逻辑回归,并将multi_class设置为`ovr`,同时将solver设置为 `liblinear`: +1. 创建一个逻辑回归模型,并将multi_class设置为`ovr`,同时将solver设置为 `liblinear`: ```python lr = LogisticRegression(multi_class='ovr',solver='liblinear') @@ -164,13 +164,13 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine print ("Accuracy is {}".format(accuracy)) ``` - ✅ 也可以试试其他solver比如`lbfgs`, 这通常是默认的设置 + ✅ 也可以试试其他solver比如`lbfgs`, 这也是默认参数 - > 注意, 使用Pandas的[`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) 函数可以在需要的时候将你的数据进行降维 + > 注意, 使用Pandas的[`ravel`](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.ravel.html) 方法可以在需要的时候将你的数据进行降维 - 计算结果准确率高达了**80%**! + 运算之后,可以看到准确率高达了**80%**! -1. 你也可以通过查看某一行数据(比如第50行)来观察到模型运行的情况: +1. 你也可以通过查看某一行数据(比如第50行)来观测到模型运行的情况: ```python print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}') @@ -184,9 +184,9 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine cuisine: indian ``` - ✅ 试试不同的行索引来检查一下结果吧 + ✅ 试试不同的行索引来检查一下计算的结果吧 -1. 让我们再深入研究一下,你可以检查一下本次预测的准确率: +1. 我们可以再进行一部深入的研究,检查一下本轮预测结果的准确率: ```python test= X_test.iloc[50].values.reshape(-1, 1).T @@ -210,7 +210,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine ✅ 你能解释下为什么模型会如此确定这是一道印度菜么? -1. 就和你在回归的课程中所做的一样,通过输出分类的报告,我们可以得到更多的细节: +1. 和你在之前的回归的课程中所做的一样,我们也可以通过输出分类的报告得到关于模型的更多的细节: ```python y_pred = model.predict(X_test) @@ -230,7 +230,7 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine ## 挑战 -在本课程中,你使用了清洗后的数据建立了一个机器学习的模型,能够根据一系列的配料来预测菜品来自于哪个国家。请再花点时间阅读一下Scikit-learn所提供的可以用来分类数据的其他选择。同时也可以深入研究一下“solver”的概念并尝试一下理解其背后的原理。 +在本课程中,你使用了清洗后的数据建立了一个机器学习的模型,这个模型能够根据输入的一系列的配料来预测菜品来自于哪个国家。请再花点时间阅读一下Scikit-learn所提供的关于可以用来分类数据的其他方法的资料。此外,你也可以深入研究一下“solver”的概念并尝试一下理解其背后的原理。 ## [课后测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/22/) ## 回顾与自学 From 369554be38fcdfccbdf20b060f370e89fd987210 Mon Sep 17 00:00:00 2001 From: Roberto Pauletto Date: Fri, 30 Jul 2021 17:06:41 +0200 Subject: [PATCH 207/228] Italian translation - Chapter 5 complete --- .../1-Visualize/translations/README.it.md | 332 ++++++++++++++++++ .../1-Visualize/translations/assignment.it.md | 11 + .../2-K-Means/translations/README.it.md | 251 +++++++++++++ .../2-K-Means/translations/assignment.it.md | 10 + 5-Clustering/translations/README.it.md | 29 ++ 5 files changed, 633 insertions(+) create mode 100644 5-Clustering/1-Visualize/translations/README.it.md create mode 100644 5-Clustering/1-Visualize/translations/assignment.it.md create mode 100644 5-Clustering/2-K-Means/translations/README.it.md create mode 100644 5-Clustering/2-K-Means/translations/assignment.it.md create mode 100644 5-Clustering/translations/README.it.md diff --git a/5-Clustering/1-Visualize/translations/README.it.md b/5-Clustering/1-Visualize/translations/README.it.md new file mode 100644 index 00000000..104507c9 --- /dev/null +++ b/5-Clustering/1-Visualize/translations/README.it.md @@ -0,0 +1,332 @@ +# Introduzione al clustering + +Il clustering è un tipo di [apprendimento non supervisionato](https://wikipedia.org/wiki/Unsupervised_learning) che presuppone che un insieme di dati non sia etichettato o che i suoi input non siano abbinati a output predefiniti. Utilizza vari algoritmi per ordinare i dati non etichettati e fornire raggruppamenti in base ai modelli che individua nei dati. + +[![No One Like You di PSquare](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "No One Like You di PSquare") + +> 🎥 Fare clic sull'immagine sopra per un video. Mentre si studia machine learning con il clustering, si potranno gradire brani della Nigerian Dance Hall: questa è una canzone molto apprezzata del 2014 di PSquare. +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/27/) + +### Introduzione + +[Il clustering](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) è molto utile per l'esplorazione dei dati. Si vedrà se può aiutare a scoprire tendenze e modelli nel modo in cui il pubblico nigeriano consuma la musica. + +✅ Ci si prenda un minuto per pensare agli usi del clustering. Nella vita reale, il clustering si verifica ogni volta che si ha una pila di biancheria e si devono sistemare i vestiti dei propri familiari 🧦👕👖🩲. Nella scienza dei dati, il clustering si verifica quando si tenta di analizzare le preferenze di un utente o di determinare le caratteristiche di qualsiasi insieme di dati senza etichetta. Il clustering, in un certo senso, aiuta a dare un senso al caos, come un cassetto dei calzini. + +[![Introduzione a ML](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "Introduzione al Clustering") + +> 🎥 Fare clic sull'immagine sopra per un video: John Guttag del MIT introduce il clustering + +In un ambiente professionale, il clustering può essere utilizzato per determinare cose come la segmentazione del mercato, determinare quali fasce d'età acquistano quali articoli, ad esempio. Un altro uso sarebbe il rilevamento di anomalie, forse per rilevare le frodi da un insieme di dati delle transazioni con carta di credito. Oppure si potrebbe usare il clustering per determinare i tumori in una serie di scansioni mediche. + +✅ Si pensi un minuto a come si potrebbe aver incontrato il clustering 'nel mondo reale', in un ambiente bancario, e-commerce o aziendale. + +> 🎓 È interessante notare che l'analisi dei cluster ha avuto origine nei campi dell'antropologia e della psicologia negli anni '30. Si riusce a immaginare come potrebbe essere stato utilizzato? + +In alternativa, lo si può utilizzare per raggruppare i risultati di ricerca, ad esempio tramite link per acquisti, immagini o recensioni. Il clustering è utile quando si dispone di un insieme di dati di grandi dimensioni che si desidera ridurre e sul quale si desidera eseguire un'analisi più granulare, quindi la tecnica può essere utilizzata per conoscere i dati prima che vengano costruiti altri modelli. + +✅ Una volta che i dati sono organizzati in cluster, viene assegnato un ID cluster e questa tecnica può essere utile quando si preserva la privacy di un insieme di dati; si può invece fare riferimento a un punto dati tramite il suo ID cluster, piuttosto che dati identificabili più rivelatori. Si riesce a pensare ad altri motivi per cui fare riferimento a un ID cluster piuttosto che ad altri elementi del cluster per identificarlo? + +In questo [modulo di apprendimento](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-15963-cxa) si approfondirà la propria comprensione delle tecniche di clustering + +## Iniziare con il clustering + +[Scikit-learn offre una vasta gamma](https://scikit-learn.org/stable/modules/clustering.html) di metodi per eseguire il clustering. Il tipo scelto dipenderà dal caso d'uso. Secondo la documentazione, ogni metodo ha diversi vantaggi. Ecco una tabella semplificata dei metodi supportati da Scikit-learn e dei loro casi d'uso appropriati: + +| Nome del metodo | Caso d'uso | +| :--------------------------- | :--------------------------------------------------------------------- | +| K-MEANS | uso generale, induttivo | +| Affinity propagation (Propagazione dell'affinità) | molti, cluster irregolari, induttivo | +| Mean-shift (Spostamento medio) | molti, cluster irregolari, induttivo | +| Spectral clustering (Raggruppamento spettrale) | pochi, anche grappoli, trasduttivi | +| Ward hierarchical clustering (Cluster gerarchico) | molti, cluster vincolati, trasduttivi | +| Agglomerative clustering (Raggruppamento agglomerativo) | molte, vincolate, distanze non euclidee, trasduttive | +| DBSCAN | geometria non piatta, cluster irregolari, trasduttivo | +| OPTICS | geometria non piatta, cluster irregolari con densità variabile, trasduttivo | +| Gaussian mixtures (miscele gaussiane) | geometria piana, induttiva | +| BIRCH | insiemi di dati di grandi dimensioni con valori anomali, induttivo | + +> 🎓 Il modo in cui si creno i cluster ha molto a che fare con il modo in cui si raccolgono punti dati in gruppi. Si esamina un po' di vocabolario: +> +> 🎓 ['trasduttivo' vs. 'induttivo'](https://wikipedia.org/wiki/Transduction_(machine_learning)) +> +> L'inferenza trasduttiva è derivata da casi di addestramento osservati che mappano casi di test specifici. L'inferenza induttiva è derivata da casi di addestramento che mappano regole generali che vengono poi applicate ai casi di test. +> +> Un esempio: si immagini di avere un insieme di dati che è solo parzialmente etichettato. Alcune cose sono "dischi", alcune "cd" e altre sono vuote. Il compito è fornire etichette per gli spazi vuoti. Se si scegliesse un approccio induttivo, si addestrerebbe un modello alla ricerca di "dischi" e "cd" e si applicherebbero quelle etichette ai dati non etichettati. Questo approccio avrà problemi a classificare cose che sono in realtà "cassette". Un approccio trasduttivo, d'altra parte, gestisce questi dati sconosciuti in modo più efficace poiché funziona raggruppando elementi simili e quindi applica un'etichetta a un gruppo. In questo caso, i cluster potrebbero riflettere "cose musicali rotonde" e "cose musicali quadrate". +> +> 🎓 [Geometria 'non piatta' (non-flat) vs. 'piatta' (flat)](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) +> +> Derivato dalla terminologia matematica, la geometria non piatta rispetto a quella piatta si riferisce alla misura delle distanze tra i punti mediante metodi geometrici "piatti" ([euclidei](https://wikipedia.org/wiki/Euclidean_geometry)) o "non piatti" (non euclidei). +> +> "Piatto" in questo contesto si riferisce alla geometria euclidea (parti della quale vengono insegnate come geometria "piana") e non piatto si riferisce alla geometria non euclidea. Cosa ha a che fare la geometria con machine learning? Bene, come due campi che sono radicati nella matematica, ci deve essere un modo comune per misurare le distanze tra i punti nei cluster, e questo può essere fatto in modo "piatto" o "non piatto", a seconda della natura dei dati . [Le distanze euclidee](https://wikipedia.org/wiki/Euclidean_distance) sono misurate come la lunghezza di un segmento di linea tra due punti. [Le distanze non euclidee](https://wikipedia.org/wiki/Non-Euclidean_geometry) sono misurate lungo una curva. Se i dati, visualizzati, sembrano non esistere su un piano, si potrebbe dover utilizzare un algoritmo specializzato per gestirli. +> +![Infografica con geometria piatta e non piatta](../images/flat-nonflat.png) +> Infografica di [Dasani Madipalli](https://twitter.com/dasani_decoded) +> +> [' Distanze'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) +> +> I cluster sono definiti dalla loro matrice di distanza, ad esempio le distanze tra i punti. Questa distanza può essere misurata in alcuni modi. I cluster euclidei sono definiti dalla media dei valori dei punti e contengono un 'centroide' o baricentro. Le distanze sono quindi misurate dalla distanza da quel baricentro. Le distanze non euclidee si riferiscono a "clustroidi", il punto più vicino ad altri punti. I clustroidi a loro volta possono essere definiti in vari modi. +> +> 🎓 ['Vincolato'](https://wikipedia.org/wiki/Constrained_clustering) +> +> [Constrained Clustering](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) introduce l'apprendimento 'semi-supervisionato' in questo metodo non supervisionato. Le relazioni tra i punti sono contrassegnate come "non è possibile collegare" o "è necessario collegare", quindi alcune regole sono imposte sull'insieme di dati. +> +> Un esempio: se un algoritmo viene applicato su un batch di dati non etichettati o semi-etichettati, i cluster che produce potrebbero essere di scarsa qualità. Nell'esempio sopra, i cluster potrebbero raggruppare "cose musicali rotonde" e "cose musicali quadrate" e "cose triangolari" e "biscotti". Se vengono dati dei vincoli, o delle regole da seguire ("l'oggetto deve essere di plastica", "l'oggetto deve essere in grado di produrre musica"), questo può aiutare a "vincolare" l'algoritmo a fare scelte migliori. +> +> 'Densità' +> +> I dati "rumorosi" sono considerati "densi". Le distanze tra i punti in ciascuno dei suoi cluster possono rivelarsi, all'esame, più o meno dense, o "affollate" e quindi questi dati devono essere analizzati con il metodo di clustering appropriato. [Questo articolo](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) dimostra la differenza tra l'utilizzo del clustering K-Means rispetto agli algoritmi HDBSCAN per esplorare un insieme di dati rumoroso con densità di cluster non uniforme. + +## Algoritmi di clustering + +Esistono oltre 100 algoritmi di clustering e il loro utilizzo dipende dalla natura dei dati a portata di mano. Si discutono alcuni dei principali: + +- **Raggruppamento gerarchico**. Se un oggetto viene classificato in base alla sua vicinanza a un oggetto vicino, piuttosto che a uno più lontano, i cluster vengono formati in base alla distanza dei loro membri da e verso altri oggetti. Il clustering agglomerativo di Scikit-learn è gerarchico. + + ![Infografica sul clustering gerarchico](../images/hierarchical.png) + > Infografica di [Dasani Madipalli](https://twitter.com/dasani_decoded) + +- **Raggruppamento centroide**. Questo popolare algoritmo richiede la scelta di 'k', o il numero di cluster da formare, dopodiché l'algoritmo determina il punto centrale di un cluster e raccoglie i dati attorno a quel punto. [Il clustering K-means](https://wikipedia.org/wiki/K-means_clustering) è una versione popolare del clustering centroide. Il centro è determinato dalla media più vicina, da qui il nome. La distanza al quadrato dal cluster è ridotta al minimo. + + ![Infografica sul clustering del centroide](../images/centroid.png) + > Infografica di [Dasani Madipalli](https://twitter.com/dasani_decoded) + +- **Clustering basato sulla distribuzione**. Basato sulla modellazione statistica, il clustering basato sulla distribuzione è incentrato sulla determinazione della probabilità che un punto dati appartenga a un cluster e sull'assegnazione di conseguenza. I metodi di miscelazione gaussiana appartengono a questo tipo. + +- **Clustering basato sulla densità**. I punti dati vengono assegnati ai cluster in base alla loro densità o al loro raggruppamento l'uno intorno all'altro. I punti dati lontani dal gruppo sono considerati valori anomali o rumore. DBSCAN, Mean-shift e OPTICS appartengono a questo tipo di clustering. + +- **Clustering basato su griglia**. Per gli insiemi di dati multidimensionali, viene creata una griglia e i dati vengono divisi tra le celle della griglia, creando così dei cluster. + +## Esercizio: raggruppare i dati + +Il clustering come tecnica è notevolmente aiutato da una corretta visualizzazione, quindi si inizia visualizzando i dati musicali. Questo esercizio aiuterà a decidere quale dei metodi di clustering si dovranno utilizzare in modo più efficace per la natura di questi dati. + +1. Aprire il file _notebook.ipynb_ in questa cartella. + +1. Importare il pacchetto `Seaborn` per una buona visualizzazione dei dati. + + ```python + !pip install seaborn + ``` + +1. Aggiungere i dati dei brani da _nigerian-songs.csv_. Caricare un dataframe con alcuni dati sulle canzoni. Prepararsi a esplorare questi dati importando le librerie e scaricando i dati: + + ```python + import matplotlib.pyplot as plt + import pandas as pd + + df = pd.read_csv("../data/nigerian-songs.csv") + df.head() + ``` + + Controllare le prime righe di dati: + + | | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature | + | --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- | + | 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 | + | 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 | + | 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 | + | 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 | + | 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 | + +1. Ottenere alcune informazioni sul dataframe, chiamando `info()`: + + ```python + df.info() + ``` + + Il risultato appare così: + + ```output + + RangeIndex: 530 entries, 0 to 529 + Data columns (total 16 columns): + # Column Non-Null Count Dtype + --- ------ -------------- ----- + 0 name 530 non-null object + 1 album 530 non-null object + 2 artist 530 non-null object + 3 artist_top_genre 530 non-null object + 4 release_date 530 non-null int64 + 5 length 530 non-null int64 + 6 popularity 530 non-null int64 + 7 danceability 530 non-null float64 + 8 acousticness 530 non-null float64 + 9 energy 530 non-null float64 + 10 instrumentalness 530 non-null float64 + 11 liveness 530 non-null float64 + 12 loudness 530 non-null float64 + 13 speechiness 530 non-null float64 + 14 tempo 530 non-null float64 + 15 time_signature 530 non-null int64 + dtypes: float64(8), int64(4), object(4) + memory usage: 66.4+ KB + ``` + +1. Ricontrollare i valori null, chiamando `isnull()` e verificando che la somma sia 0: + + ```python + df.isnull().sum() + ``` + + Si presenta bene! + + ```output + name 0 + album 0 + artist 0 + artist_top_genre 0 + release_date 0 + length 0 + popularity 0 + danceability 0 + acousticness 0 + energy 0 + instrumentalness 0 + liveness 0 + loudness 0 + speechiness 0 + tempo 0 + time_signature 0 + dtype: int64 + ``` + +1. Descrivere i dati: + + ```python + df.describe() + ``` + + | | release_date | lenght | popularity | danceability | acousticness | Energia | strumentale | vitalità | livello di percezione sonora | parlato | tempo | #ora_firma | + | ----- | ------------ | ----------- | ---------- | ------------ | ------------ | -------- | ---------------- | -------- | --------- | ----------- | ---------- | -------------- | + | estero) | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | + | mezzo | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0,016305 | 0,147308 | -4.953011 | 0,130748 | 116.487864 | 3.986792 | + | std | 3.131688 | 39696.82226 | 18.992212 | 0,117522 | 0.208342 | 0.148533 | 0.090321 | 0,123588 | 2.464186 | 0,092939 | 23.518601 | 0.333701 | + | min | 1998 | 89488 | 0 | 0,255 | 0,000665 | 0,111 | 0 | 0,0283 | -19,362 | 0,0278 | 61.695 | 3 | + | 25% | 2014 | 199305 | 0 | 0,681 | 0,089525 | 0,669 | 0 | 0,07565 | -6.29875 | 0,0591 | 102.96125 | 4 | + | 50% | 2016 | 218509 | 13 | 0,761 | 0.2205 | 0.7845 | 0.000004 | 0,1035 | -4.5585 | 0,09795 | 112.7145 | 4 | + | 75% | 2017 | 242098.5 | 31 | 0,8295 | 0.403 | 0.87575 | 0.000234 | 0,164 | -3.331 | 0,177 | 125.03925 | 4 | + | max | 2020 | 511738 | 73 | 0.966 | 0,954 | 0,995 | 0,91 | 0,811 | 0,582 | 0.514 | 206.007 | 5 | + +> 🤔 Se si sta lavorando con il clustering, un metodo non supervisionato che non richiede dati etichettati, perché si stanno mostrando questi dati con etichette? Nella fase di esplorazione dei dati, sono utili, ma non sono necessari per il funzionamento degli algoritmi di clustering. Si potrebbero anche rimuovere le intestazioni delle colonne e fare riferimento ai dati per numero di colonna. + +Dare un'occhiata ai valori generali dei dati. Si nota che la popolarità può essere "0", che mostra i brani che non hanno una classifica. Quelli verranno rimossi a breve. + +1. Usare un grafico a barre per scoprire i generi più popolari: + + ```python + import seaborn as sns + + top = df['artist_top_genre'].value_counts() + plt.figure(figsize=(10,7)) + sns.barplot(x=top[:5].index,y=top[:5].values) + plt.xticks(rotation=45) + plt.title('Top genres',color = 'blue') + ``` + + ![I più popolari](../images/popular.png) + +✅ Se si desidera vedere più valori superiori, modificare il valore di top `[:5]` con un valore più grande o rimuoverlo per vederli tutti. + +Nota, quando un valore di top è descritto come "Missing", ciò significa che Spotify non lo ha classificato, quindi va rimosso. + +1. Eliminare i dati mancanti escludendoli via filtro + + ```python + df = df[df['artist_top_genre'] != 'Missing'] + top = df['artist_top_genre'].value_counts() + plt.figure(figsize=(10,7)) + sns.barplot(x=top.index,y=top.values) + plt.xticks(rotation=45) + plt.title('Top genres',color = 'blue') + ``` + + Ora ricontrollare i generi: + + ![I più popolari](../images/all-genres.png) + +1. Di gran lunga, i primi tre generi dominano questo insieme di dati. Si pone l'attenzione su `afrodancehall,` `afropop` e `nigerian pop`, filtrando inoltre l'insieme di dati per rimuovere qualsiasi cosa con un valore di popolarità 0 (il che significa che non è stato classificato con una popolarità nell'insieme di dati e può essere considerato rumore per gli scopi attuali): + + ```python + df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')] + df = df[(df['popularity'] > 0)] + top = df['artist_top_genre'].value_counts() + plt.figure(figsize=(10,7)) + sns.barplot(x=top.index,y=top.values) + plt.xticks(rotation=45) + plt.title('Top genres',color = 'blue') + ``` + +1. Fare un test rapido per vedere se i dati sono correlati in modo particolarmente forte: + + ```python + corrmat = df.corr() + f, ax = plt.subplots(figsize=(12, 9)) + sns.heatmap(corrmat, vmax=.8, square=True) + ``` + + ![correlazioni](../images/correlation.png) + + L'unica forte correlazione è tra `energy` e `loudness` (volume), il che non è troppo sorprendente, dato che la musica ad alto volume di solito è piuttosto energica. Altrimenti, le correlazioni sono relativamente deboli. Sarà interessante vedere cosa può fare un algoritmo di clustering di questi dati. + + > 🎓 Notare che la correlazione non implica la causalità! Ci sono prove di correlazione ma nessuna prova di causalità. Un [sito web divertente](https://tylervigen.com/spurious-correlations) ha alcune immagini che enfatizzano questo punto. + +C'è qualche convergenza in questo insieme di dati intorno alla popolarità e alla ballabilità percepite di una canzone? Una FacetGrid mostra che ci sono cerchi concentrici che si allineano, indipendentemente dal genere. Potrebbe essere che i gusti nigeriani convergano ad un certo livello di ballabilità per questo genere? + +✅ Provare diversi punti dati (energy, loudness, speachiness) e più o diversi generi musicali. Cosa si può scoprire? Dare un'occhiata alla tabella con `df.describe()` per vedere la diffusione generale dei punti dati. + +### Esercizio - distribuzione dei dati + +Questi tre generi sono significativamente differenti nella percezione della loro ballabilità, in base alla loro popolarità? + +1. Esaminare la distribuzione dei dati sui tre principali generi per la popolarità e la ballabilità lungo un dato asse x e y. + + ```python + sns.set_theme(style="ticks") + + g = sns.jointplot( + data=df, + x="popularity", y="danceability", hue="artist_top_genre", + kind="kde", + ) + ``` + + Si possono scoprire cerchi concentrici attorno a un punto di convergenza generale, che mostra la distribuzione dei punti. + + > 🎓 Si noti che questo esempio utilizza un grafico KDE (Kernel Density Estimate) che rappresenta i dati utilizzando una curva di densità di probabilità continua. Questo consente di interpretare i dati quando si lavora con più distribuzioni. + + In generale, i tre generi si allineano liberamente in termini di popolarità e ballabilità. Determinare i cluster in questi dati vagamente allineati sarà una sfida: + + ![distribuzione](../images/distribution.png) + +1. Crea un grafico a dispersione: + + ```python + sns.FacetGrid(df, hue="artist_top_genre", size=5) \ + .map(plt.scatter, "popularity", "danceability") \ + .add_legend() + ``` + + Un grafico a dispersione degli stessi assi mostra un modello di convergenza simile + + ![Facetgrid](../images/facetgrid.png) + +In generale, per il clustering è possibile utilizzare i grafici a dispersione per mostrare i cluster di dati, quindi è molto utile padroneggiare questo tipo di visualizzazione. Nella prossima lezione, si prenderanno questi dati filtrati e si utilizzerà il clustering k-means per scoprire gruppi in questi dati che si sovrappongono in modi interessanti. + +--- + +## 🚀 Sfida + +In preparazione per la lezione successiva, creare un grafico sui vari algoritmi di clustering che si potrebbero scoprire e utilizzare in un ambiente di produzione. Che tipo di problemi sta cercando di affrontare il clustering? + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/28/) + +## Revisione e Auto Apprendimento + +Prima di applicare gli algoritmi di clustering, come si è appreso, è una buona idea comprendere la natura del proprio insieme di dati. Leggere di più su questo argomento [qui](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) + +[Questo utile articolo](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) illustra i diversi modi in cui si comportano i vari algoritmi di clustering, date diverse forme di dati. + +## Compito + +[Ricercare altre visualizzazioni per il clustering](assignment.it.md) diff --git a/5-Clustering/1-Visualize/translations/assignment.it.md b/5-Clustering/1-Visualize/translations/assignment.it.md new file mode 100644 index 00000000..dad3d708 --- /dev/null +++ b/5-Clustering/1-Visualize/translations/assignment.it.md @@ -0,0 +1,11 @@ +# Ricercare altre visualizzazioni per il clustering + +## Istruzioni + +In questa lezione, si è lavorato con alcune tecniche di visualizzazione per capire come tracciare i propri dati in preparazione per il clustering. I grafici a dispersione, in particolare, sono utili per trovare gruppi di oggetti. Ricercare modi diversi e librerie diverse per creare grafici a dispersione e documentare il proprio lavoro in un notebook. Si possono utilizzare i dati di questa lezione, di altre lezioni o dei dati che si sono procurati in autonomia (per favore citare la fonte, comunque, nel proprio notebook). Tracciare alcuni dati usando i grafici a dispersione e spiegare cosa si scopre. + +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------- | +| | Viene presentato un notebook con cinque grafici a dispersione ben documentati | Un notebook viene presentato con meno di cinque grafici a dispersione ed è meno ben documentato | Viene presentato un notebook incompleto | diff --git a/5-Clustering/2-K-Means/translations/README.it.md b/5-Clustering/2-K-Means/translations/README.it.md new file mode 100644 index 00000000..ce1dc9d2 --- /dev/null +++ b/5-Clustering/2-K-Means/translations/README.it.md @@ -0,0 +1,251 @@ +# Clustering K-Means + +[![Andrew Ng spiega Clustering](https://img.youtube.com/vi/hDmNF9JG3lo/0.jpg)](https://youtu.be/hDmNF9JG3lo " Andrew Ng spiega Clustering") + +> 🎥 Fare clic sull'immagine sopra per un video: Andrew Ng spiega il clustering + +## [Quiz Pre-Lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/29/) + +In questa lezione si imparerà come creare cluster utilizzando Scikit-learn e l'insieme di dati di musica nigeriana importato in precedenza. Si tratteranno le basi di K-Means per Clustering. Si tenga presente che, come appreso nella lezione precedente, ci sono molti modi per lavorare con i cluster e il metodo usato dipende dai propri dati. Si proverà K-Means poiché è la tecnica di clustering più comune. Si inizia! + +Temini che si imparerà a conoscere: + +- Silhouette scoring (punteggio silhouette) +- Elbow method (metodo del gomito) +- Inerzia +- Varianza + +## Introduzione + +[K-Means Clustering](https://wikipedia.org/wiki/K-means_clustering) è un metodo derivato dal campo dell'elaborazione del segnale. Viene utilizzato per dividere e partizionare gruppi di dati in cluster "k" utilizzando una serie di osservazioni. Ogni osservazione lavora per raggruppare un dato punto dati più vicino alla sua "media" più vicina, o punto centrale di un cluster. + +I cluster possono essere visualizzati come [diagrammi di Voronoi](https://wikipedia.org/wiki/Voronoi_diagram), che includono un punto (o 'seme') e la sua regione corrispondente. + +![diagramma di voronoi](../images/voronoi.png) + +> Infografica di [Jen Looper](https://twitter.com/jenlooper) + +Il processo di clustering K-Means [viene eseguito in tre fasi](https://scikit-learn.org/stable/modules/clustering.html#k-means): + +1. L'algoritmo seleziona il numero k di punti centrali campionando dall'insieme di dati. Dopo questo, esegue un ciclo: + 1. Assegna ogni campione al centroide più vicino. + 2. Crea nuovi centroidi prendendo il valore medio di tutti i campioni assegnati ai centroidi precedenti. + 3. Quindi, calcola la differenza tra il nuovo e il vecchio centroide e ripete finché i centroidi non sono stabilizzati. + +Uno svantaggio dell'utilizzo di K-Means include il fatto che sarà necessario stabilire 'k', ovvero il numero di centroidi. Fortunatamente il "metodo del gomito" aiuta a stimare un buon valore iniziale per "k". Si proverà in un minuto. + +## Prerequisito + +Si lavorerà nel file _notebook.ipynb_ di questa lezione che include l'importazione dei dati e la pulizia preliminare fatta nell'ultima lezione. + +## Esercizio - preparazione + +Iniziare dando un'altra occhiata ai dati delle canzoni. + +1. Creare un diagramma a scatola e baffi (boxplot), chiamando `boxplot()` per ogni colonna: + + ```python + plt.figure(figsize=(20,20), dpi=200) + + plt.subplot(4,3,1) + sns.boxplot(x = 'popularity', data = df) + + plt.subplot(4,3,2) + sns.boxplot(x = 'acousticness', data = df) + + plt.subplot(4,3,3) + sns.boxplot(x = 'energy', data = df) + + plt.subplot(4,3,4) + sns.boxplot(x = 'instrumentalness', data = df) + + plt.subplot(4,3,5) + sns.boxplot(x = 'liveness', data = df) + + plt.subplot(4,3,6) + sns.boxplot(x = 'loudness', data = df) + + plt.subplot(4,3,7) + sns.boxplot(x = 'speechiness', data = df) + + plt.subplot(4,3,8) + sns.boxplot(x = 'tempo', data = df) + + plt.subplot(4,3,9) + sns.boxplot(x = 'time_signature', data = df) + + plt.subplot(4,3,10) + sns.boxplot(x = 'danceability', data = df) + + plt.subplot(4,3,11) + sns.boxplot(x = 'length', data = df) + + plt.subplot(4,3,12) + sns.boxplot(x = 'release_date', data = df) + ``` + + Questi dati sono un po' rumorosi: osservando ogni colonna come un boxplot, si possono vedere i valori anomali. + + ![situazioni anomale](../images/boxplots.png) + +Si potrebbe esaminare l'insieme di dati e rimuovere questi valori anomali, ma ciò renderebbe i dati piuttosto minimi. + +1. Per ora, si scelgono quali colonne utilizzare per questo esercizio di clustering. Scegliere quelle con intervalli simili e codifica la colonna `artist_top_genre` come dati numerici: + + ```python + from sklearn.preprocessing import LabelEncoder + le = LabelEncoder() + + X = df.loc[:, ('artist_top_genre','popularity','danceability','acousticness','loudness','energy')] + + y = df['artist_top_genre'] + + X['artist_top_genre'] = le.fit_transform(X['artist_top_genre']) + + y = le.transform(y) + ``` + +1. Ora si deve scegliere quanti cluster scegliere come obiettivo. E' noto che ci sono 3 generi di canzoni ricavati dall'insieme di dati, quindi si prova 3: + + ```python + from sklearn.cluster import KMeans + + nclusters = 3 + seed = 0 + + km = KMeans(n_clusters=nclusters, random_state=seed) + km.fit(X) + + # Predict the cluster for each data point + + y_cluster_kmeans = km.predict(X) + y_cluster_kmeans + ``` + +Viene visualizzato un array con i cluster previsti (0, 1 o 2) per ogni riga del dataframe di dati. + +1. Usare questo array per calcolare un "punteggio silhouette": + + ```python + from sklearn import metrics + score = metrics.silhouette_score(X, y_cluster_kmeans) + score + ``` + +## Punteggio Silhouette + +Si vuole ottenere un punteggio silhouette più vicino a 1. Questo punteggio varia da -1 a 1 e, se il punteggio è 1, il cluster è denso e ben separato dagli altri cluster. Un valore vicino a 0 rappresenta cluster sovrapposti con campioni molto vicini al limite di decisione dei clusters vicini [fonte](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam). + +Il punteggio è **.53**, quindi proprio nel mezzo. Ciò indica che i dati non sono particolarmente adatti a questo tipo di clustering, ma si prosegue. + +### Esercizio: costruire il proprio modello + +1. Importare `KMeans` e avviare il processo di clustering. + + ```python + from sklearn.cluster import KMeans + wcss = [] + + for i in range(1, 11): + kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42) + kmeans.fit(X) + wcss.append(kmeans.inertia_) + + ``` + + Ci sono alcune parti qui che meritano una spiegazione. + + > 🎓 range: queste sono le iterazioni del processo di clustering + + > 🎓 random_state: "Determina la generazione di numeri casuali per l'inizializzazione del centroide."[fonte](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans) + + > 🎓 WCSS: "somma dei quadrati all'interno del cluster" misura la distanza media al quadrato di tutti i punti all'interno di un cluster rispetto al cluster centroid [fonte](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce). + + > 🎓 Inerzia: gli algoritmi K-Means tentano di scegliere i centroidi per ridurre al minimo l’’inerzia’, "una misura di quanto siano coerenti i cluster".[fonte](https://scikit-learn.org/stable/modules/clustering.html). Il valore viene aggiunto alla variabile wcss ad ogni iterazione. + + > 🎓 k-means++: in [Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means) puoi utilizzare l'ottimizzazione 'k-means++', che "inizializza i centroidi in modo che siano (generalmente) distanti l'uno dall'altro, portando probabilmente a risultati migliori rispetto all'inizializzazione casuale. + +### Metodo del gomito + +In precedenza, si era supposto che, poiché sono stati presi di mira 3 generi di canzoni, si dovrebbero scegliere 3 cluster. E' questo il caso? + +1. Usare il "metodo del gomito" per assicurarsene. + + ```python + plt.figure(figsize=(10,5)) + sns.lineplot(range(1, 11), wcss,marker='o',color='red') + plt.title('Elbow') + plt.xlabel('Number of clusters') + plt.ylabel('WCSS') + plt.show() + ``` + + Usare la variabile `wcss` creata nel passaggio precedente per creare un grafico che mostra dove si trova la "piegatura" nel gomito, che indica il numero ottimale di cluster. Forse **sono** 3! + + ![Metodo del gomito](../images/elbow.png) + +## Esercizio - visualizzare i cluster + +1. Riprovare il processo, questa volta impostando tre cluster e visualizzare i cluster come grafico a dispersione: + + ```python + from sklearn.cluster import KMeans + kmeans = KMeans(n_clusters = 3) + kmeans.fit(X) + labels = kmeans.predict(X) + plt.scatter(df['popularity'],df['danceability'],c = labels) + plt.xlabel('popularity') + plt.ylabel('danceability') + plt.show() + ``` + +1. Verificare la precisione del modello: + + ```python + labels = kmeans.labels_ + + correct_labels = sum(y == labels) + + print("Result: %d out of %d samples were correctly labeled." % (correct_labels, y.size)) + + print('Accuracy score: {0:0.2f}'. format(correct_labels/float(y.size))) + ``` + + La precisione di questo modello non è molto buona e la forma dei grappoli fornisce un indizio sul perché. + + ![cluster](../images/clusters.png) + + Questi dati sono troppo sbilanciati, troppo poco correlati e c'è troppa varianza tra i valori della colonna per raggruppare bene. In effetti, i cluster che si formano sono probabilmente fortemente influenzati o distorti dalle tre categorie di genere definite sopra. È stato un processo di apprendimento! + + Nella documentazione di Scikit-learn, si può vedere che un modello come questo, con cluster non molto ben delimitati, ha un problema di "varianza": + + ![modelli problematici](../images/problems.png) + > Infografica da Scikit-learn + +## Varianza + +La varianza è definita come "la media delle differenze al quadrato dalla media" [fonte](https://www.mathsisfun.com/data/standard-deviation.html). Nel contesto di questo problema di clustering, si fa riferimento ai dati che i numeri dell'insieme di dati tendono a divergere un po' troppo dalla media. + +✅ Questo è un ottimo momento per pensare a tutti i modi in cui si potrebbe correggere questo problema. Modificare un po' di più i dati? Utilizzare colonne diverse? Utilizzare un algoritmo diverso? Suggerimento: provare a [ridimensionare i dati](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) per normalizzarli e testare altre colonne. + +> Provare questo "[calcolatore della varianza](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)" per capire un po’ di più il concetto. + +--- + +## 🚀 Sfida + +Trascorrere un po' di tempo con questo notebook, modificando i parametri. E possibile migliorare l'accuratezza del modello pulendo maggiormente i dati (rimuovendo gli outlier, ad esempio)? È possibile utilizzare i pesi per dare più peso a determinati campioni di dati. Cos'altro si può fare per creare cluster migliori? + +Suggerimento: provare a ridimensionare i dati. C'è un codice commentato nel notebook che aggiunge il ridimensionamento standard per rendere le colonne di dati più simili tra loro in termini di intervallo. Si scoprirà che mentre il punteggio della silhouette diminuisce, il "kink" nel grafico del gomito si attenua. Questo perché lasciare i dati non scalati consente ai dati con meno varianza di avere più peso. Leggere un po' di più su questo problema [qui](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226). + +## [Quiz post-lezione](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/30/) + +## Revisione e Auto Apprendimento + +Dare un'occhiata a un simulatore di K-Means [tipo questo](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). È possibile utilizzare questo strumento per visualizzare i punti dati di esempio e determinarne i centroidi. Questo aiuta a farsi un'idea di come i dati possono essere raggruppati? + +Inoltre, dare un'occhiata a [questa dispensa sui k-means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) di Stanford. + +## Compito + +[Provare diversi metodi di clustering](assignment.it.md) diff --git a/5-Clustering/2-K-Means/translations/assignment.it.md b/5-Clustering/2-K-Means/translations/assignment.it.md new file mode 100644 index 00000000..59fc79de --- /dev/null +++ b/5-Clustering/2-K-Means/translations/assignment.it.md @@ -0,0 +1,10 @@ +# Provare diversi metodi di clustering + +## Istruzioni + +In questa lezione si è imparato a conoscere il clustering K-Means. A volte K-Means non è appropriato per i propri dati. Creare un notebook usando i dati da queste lezioni o da qualche altra parte (accreditare la fonte) e mostrare un metodo di clustering diverso NON usando K-Means. Che cosa si è imparato? +## Rubrica + +| Criteri | Ottimo | Adeguato | Necessita miglioramento | +| -------- | --------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------- | +| | Viene presentato un notebook con un modello di clustering ben documentato | Un notebook è presentato senza una buona documentazione e/o incompleto | E' stato inviato un lavoro incompleto | diff --git a/5-Clustering/translations/README.it.md b/5-Clustering/translations/README.it.md new file mode 100644 index 00000000..4a056e72 --- /dev/null +++ b/5-Clustering/translations/README.it.md @@ -0,0 +1,29 @@ +# Modelli di clustering per machine learning + +Il clustering è un'attività di machine learning che cerca di trovare oggetti che si assomigliano per raggrupparli in gruppi chiamati cluster. Ciò che differenzia il clustering da altri approcci in machine learning è che le cose accadono automaticamente, infatti, è giusto dire che è l'opposto dell'apprendimento supervisionato. + +## Tema regionale: modelli di clustering per il gusto musicale di un pubblico nigeriano 🎧 + +Il pubblico eterogeneo della Nigeria ha gusti musicali diversi. Usando i dati recuperati da Spotify (ispirato da [questo articolo](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421), si dà un'occhiata a un po' di musica popolare in Nigeria. Questo insieme di dati include dati sul punteggio di "danzabilità", acustica, volume, "speechness" (un numero compreso tra zero e uno che indica la probabilità che un particolare file audio sia parlato - n.d.t.) popolarità ed energia di varie canzoni. Sarà interessante scoprire modelli in questi dati! + +![Un giradischi](../images/turntable.jpg) + +Foto di Marcela Laskoski su Unsplash + +In questa serie di lezioni si scopriranno nuovi modi per analizzare i dati utilizzando tecniche di clustering. Il clustering è particolarmente utile quando l'insieme di dati non ha etichette. Se ha etichette, le tecniche di classificazione come quelle apprese nelle lezioni precedenti potrebbero essere più utili. Ma nei casi in cui si sta cercando di raggruppare dati senza etichetta, il clustering è un ottimo modo per scoprire i modelli. + +> Esistono utili strumenti a basso codice che possono aiutare a imparare a lavorare con i modelli di clustering. Si provi [Azure ML per questa attività](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) + +## Lezioni + + +1. [Introduzione al clustering](../1-Visualize/translations/README.it.md) +2. [K-Means clustering](../2-K-Means/translations/README.it.md) + +## Crediti + +Queste lezioni sono state scritte con 🎶 da [Jen Looper](https://www.twitter.com/jenlooper) con utili recensioni di [Rishit Dagli](https://rishit_dagli) e [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan). + +L'insieme di dati [Nigerian Songs](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) è stato prelevato da Kaggle, a sua volta recuperato da Spotify. + +Esempi utili di K-Means che hanno aiutato nella creazione di questa lezione includono questa [esplorazione dell'iride](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), questo [notebook introduttivo](https://www.kaggle.com/prashant111/k-means-clustering-with-python) e questo [ipotetico esempio di ONG](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering). \ No newline at end of file From 4948fb80e74c84732f19745e1e21c48f7fd3e144 Mon Sep 17 00:00:00 2001 From: Foo-x Date: Sat, 31 Jul 2021 20:09:39 +0900 Subject: [PATCH 208/228] feat: add ja 1.4 README Refs #149 --- .../translations/README.ja.md | 110 ++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 1-Introduction/4-techniques-of-ML/translations/README.ja.md diff --git a/1-Introduction/4-techniques-of-ML/translations/README.ja.md b/1-Introduction/4-techniques-of-ML/translations/README.ja.md new file mode 100644 index 00000000..0e0a1bca --- /dev/null +++ b/1-Introduction/4-techniques-of-ML/translations/README.ja.md @@ -0,0 +1,110 @@ +# 機械学習の手法 + +機械学習モデルやそのモデルが使用するデータを構築・使用・管理するプロセスは、他の多くの開発ワークフローとは全く異なるものです。このレッスンでは、このプロセスを明快にして、知っておくべき主な手法の概要をまとめます。あなたは、 + +- 機械学習を支えるプロセスを高い水準で理解します。 +- 「モデル」「予測」「訓練データ」などの基本的な概念を調べます。 + +## [講義前の小テスト](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/7?loc=ja) + +## 導入 + +大まかに言うと、機械学習 (Machine Learning: ML) プロセスを作成する技術はいくつかのステップで構成されています。 + +1. **質問を決める**。ほとんどの機械学習プロセスは、単純な条件のプログラムやルールベースのエンジンでは答えられないような質問をすることから始まります。このような質問は、データの集合を使った予測を中心にされることが多いです。 +2. **データを集めて準備する**。質問に答えるためにはデータが必要です。データの質と、ときには量が、最初の質問にどれだけうまく答えられるかを決めます。データの可視化がこのフェーズの重要な側面です。モデルを構築するためにデータを訓練グループとテストグループに分けることもこのフェーズに含みます。 +3. **学習方法を選ぶ**。質問の内容やデータの性質に応じて、データを最も良く反映して正確に予測できるモデルを、どのように学習するかを選ぶ必要があります。これは機械学習プロセスの中でも、特定の専門知識と、多くの場合はかなりの試行回数が必要になる部分です。 +4. **モデルを学習する**。データのパターンを認識するモデルを学習するために、訓練データと様々なアルゴリズムを使います。モデルはより良いモデルを構築するために、データの特定の部分を優先するように調整できる内部の重みを活用するかもしれません。 +5. **モデルを評価する**。モデルがどのように動作しているかを確認するために、集めたデータの中からまだ見たことのないもの(テストデータ)を使います。 +6. **パラメータチューニング**。モデルの性能によっては、モデルを学習するために使われる、各アルゴリズムの挙動を制御するパラメータや変数を変更してプロセスをやり直すこともできます。 +7. **予測する**。モデルの精度をテストするために新しい入力を使います。 + +## どのような質問をすれば良いか + +コンピュータはデータの中に隠れているパターンを見つけることがとても得意です。この有用性は、条件ベースのルールエンジンを作っても簡単には答えられないような、特定の領域に関する質問を持っている研究者にとって非常に役立ちます。たとえば、ある保険数理の問題があったとして、データサイエンティストは喫煙者と非喫煙者の死亡率に関する法則を自分の手だけでも作れるかもしれません。 + +しかし、他にも多くの変数が方程式に含まれる場合、過去の健康状態から将来の死亡率を予測する機械学習モデルの方が効率的かもしれません。もっと明るいテーマの例としては、緯度、経度、気候変動、海への近さ、ジェット気流のパターンなどのデータに基づいて、特定の場所における4月の天気を予測することができます。 + +✅ 気象モデルに関するこの [スライド](https://www2.cisl.ucar.edu/sites/default/files/0900%20June%2024%20Haupt_0.pdf) は、気象解析に機械学習を使う際の歴史的な考え方を示しています。 + +## 構築前のタスク + +モデルの構築を始める前に、いくつかのタスクを完了させる必要があります。質問をテストしたりモデルの予測に基づいた仮説を立てたりするためには、いくつかの要素を特定して設定する必要があります。 + +### データ + +質問に確実に答えるためには、適切な種類のデータが大量に必要になります。ここではやるべきことが2つあります。 + +- **データを集める**。データ解析における公平性に関する前回の講義を思い出しながら、慎重にデータを集めてください。特定のバイアスを持っているかもしれないデータのソースに注意し、それを記録しておいてください。 +- **データを準備する**。データを準備するプロセスにはいくつかのステップがあります。異なるソースからデータを集めた場合、照合と正規化が必要になるかもしれません。([クラスタリング](../../../5-Clustering/1-Visualize/README.md) で行っているように、)文字列を数値に変換するなどの様々な方法でデータの質と量を向上させることができます。([分類](../../../4-Classification/1-Introduction/README.md) で行っているように、)元のデータから新しいデータを生成することもできます。([Webアプリ](../../../3-Web-App/README.md) の講義の前に行うように、)データをクリーニングしたり編集したりすることができます。最後に、学習の手法によっては、ランダムにしたりシャッフルしたりする必要もあるかもしれません。 + +✅ データを集めて処理した後は、その形で意図した質問に対応できるかどうかを確認してみましょう。[クラスタリング](../../../5-Clustering/1-Visualize/README.md) の講義でわかるように、データは与えられたタスクに対して上手く機能しないかもしれません! + +### 特徴量の選択 + +[特徴](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) とは、測定可能なデータの特性のことです。多くのデータセットでは、「日付」「大きさ」「色」などの列の見出しとして表されています。コード上では `y` で表されることが多い特徴量は、データに関する次のような質問への回答を意味します。「12月はどんな **色** のカボチャが一番安いか?」「サンフランシスコでは、どの地域が最も不動産の **価格** が高いか?」 + +🎓 **特徴選択と特徴抽出** モデルを構築する際にどの変数を選ぶべきかは、どうすればわかるでしょうか?最も性能の高いモデルのためには、適した変数を選択する特徴選択や特徴抽出のプロセスをたどることになるでしょう。しかし、これらは同じものではありません。「特徴抽出は元の特徴の機能から新しい特徴を作成するのに対し、特徴選択は特徴の一部を返すものです。」 ([出典](https://wikipedia.org/wiki/Feature_selection)) + +### データを可視化する + +データサイエンティストの道具に関する重要な側面は、Seaborn や MatPlotLib などの優れたライブラリを使ってデータを可視化する力です。データを視覚的に表現することで、隠れた相関関係を見つけて活用できるかもしれません。また、([分類](../../../4-Classification/2-Classifiers-1/README.md) でわかるように、)視覚化することで、バイアスやバランシングされていないデータを見つけられるかもしれません。 + +### データセットを分割する + +学習の前にデータセットを2つ以上に分割して、それぞれがデータを表すのに十分かつ不均等な大きさにする必要があります。 + +- **学習**。データセットのこの部分は、モデルを学習するために適合させます。これは元のデータセットの大部分を占めます。 +- **テスト**。テストデータセットとは、構築したモデルの性能を確認するために使用する独立したデータグループのことで、多くの場合は元のデータから集められます。 +- **検証**。検証セットとは、さらに小さくて独立したサンプルの集合のことで、モデルを改善するためにハイパーパラメータや構造を調整する際に使用されます。([時系列予測](../../../7-TimeSeries/1-Introduction/README.md) に記載しているように、)データの大きさや質問の内容によっては、この3つ目のセットを作る必要はありません。 + +## モデルの構築 + +訓練データと様々なアルゴリズムを使った **学習** によって、モデルもしくはデータの統計的な表現を構築することが目標です。モデルを学習することで、データを扱えるようになったり、発見、検証、肯定または否定したパターンに関する仮説を立てることができたりします。 + +### 学習方法を決める + +質問の内容やデータの性質に応じて、モデルを学習する方法を選択します。このコースで使用する [Scikit-learn のドキュメント](https://scikit-learn.org/stable/user_guide.html) を見ると、モデルを学習する様々な方法を調べられます。経験次第では、最適なモデルを構築するためにいくつかの異なる方法を試す必要があるかもしれません。また、モデルが見たことのないデータを与えたり、質を下げている問題、精度、バイアスについて調べたり、タスクに対して最適な学習方法を選んだりすることで、データサイエンティストが行っている、モデルの性能を評価するプロセスを踏むことになるでしょう。 + +### モデルを学習する + +訓練データを用意したので、モデルを作成するためにそれを「適合」させる準備が整いました。多くの機械学習ライブラリには 'model.fit' というコードがあることに気づくでしょう。データを(通常は 'X' で表す)値の配列と(通常は 'y' で表す)特徴量として渡すときです。 + +### モデルを評価する + +(大きなモデルを学習するには多くの反復(エポック)が必要になりますが、)学習プロセスが完了したら、テストデータを使ってモデルの質を評価することができます。このデータは元のデータのうち、モデルがそれまでに分析していないものです。モデルの質を表す指標の表を出力することができます。 + +🎓 **モデルフィッティング** + +機械学習におけるモデルフィッティングは、モデルがまだ知らないデータを分析する際の根本的な機能の精度を参照します。 + +🎓 **未学習** と **過学習** はモデルの質を下げる一般的な問題で、モデルが十分に適合していないか、または適合しすぎています。これによってモデルは訓練データに近すぎたり遠すぎたりする予測を行います。過学習モデルは、データの詳細やノイズもよく学習しているため、訓練データを上手く予測しすぎてしまいます。未学習モデルは、訓練データやまだ「見たことのない」データを正確に分析することができないため、精度が高くないです。 + +![過学習モデル](../images/overfitting.png) +> [Jen Looper](https://twitter.com/jenlooper) さんによる解説画像 + +## パラメータチューニング + +最初のトレーニングが完了したら、モデルの質を観察して、「ハイパーパラメータ」の調整によるモデルの改善を検討しましょう。このプロセスについては [ドキュメント](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-15963-cxa) を読んでください。 + +## 予測 + +全く新しいデータを使ってモデルの精度をテストする瞬間です。本番環境でモデルを使用するためにWebアセットを構築するよう「適用された」機械学習の設定においては、推論や評価のためにモデルに渡したり、変数を設定したりするためにユーザの入力(ボタンの押下など)を収集することがこのプロセスに含まれるかもしれません。 + +この講義では、「フルスタック」の機械学習エンジニアになるための旅をしながら、準備・構築・テスト・評価・予測などのデータサイエンティストが行うすべてのステップの使い方を学びます。 + +--- + +## 🚀チャレンジ + +機械学習の学習者のステップを反映したフローチャートを描いてください。今の自分はこのプロセスのどこにいると思いますか?どこに困難があると予想しますか?あなたにとって簡単そうなことは何ですか? + +## [講義後の小テスト](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/8?loc=ja) + +## 振り返りと自主学習 + +データサイエンティストが日々の仕事について話しているインタビューをネットで検索してみましょう。ひとつは [これ](https://www.youtube.com/watch?v=Z3IjgbbCEfs) です。 + +## 課題 + +[データサイエンティストにインタビューする](assignment.ja.md) From 0ec65f5633e14c2b6aa9a75ebae58706a007945a Mon Sep 17 00:00:00 2001 From: Foo-x Date: Sat, 31 Jul 2021 20:11:04 +0900 Subject: [PATCH 209/228] style: clean 1.4 README --- 1-Introduction/4-techniques-of-ML/README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/1-Introduction/4-techniques-of-ML/README.md b/1-Introduction/4-techniques-of-ML/README.md index ae9d2c44..b29c7b18 100644 --- a/1-Introduction/4-techniques-of-ML/README.md +++ b/1-Introduction/4-techniques-of-ML/README.md @@ -4,8 +4,9 @@ The process of building, using, and maintaining machine learning models and the - Understand the processes underpinning machine learning at a high level. - Explore base concepts such as 'models', 'predictions', and 'training data'. - + ## [Pre-lecture quiz](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/7/) + ## Introduction On a high level, the craft of creating machine learning (ML) processes is comprised of a number of steps: @@ -44,9 +45,11 @@ To be able to answer your question with any kind of certainty, you need a good a A [feature](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) is a measurable property of your data. In many datasets it is expressed as a column heading like 'date' 'size' or 'color'. Your feature variable, usually represented as `y` in code, represents the answer to the question you are trying to ask of your data: in December, what **color** pumpkins will be cheapest? in San Francisco, what neighborhoods will have the best real estate **price**? 🎓 **Feature Selection and Feature Extraction** How do you know which variable to choose when building a model? You'll probably go through a process of feature selection or feature extraction to choose the right variables for the most performant model. They're not the same thing, however: "Feature extraction creates new features from functions of the original features, whereas feature selection returns a subset of the features." ([source](https://wikipedia.org/wiki/Feature_selection)) + ### Visualize your data -An important aspect of the data scientist's toolkit is the power to visualize data using several excellent libraries such as Seaborn or MatPlotLib. Representing your data visually might allow you to uncover hidden correlations that you can leverage. Your visualizations might also help you to uncover bias or unbalanced data (as we discover in [Classification](../../4-Classification/2-Classifiers-1/README.md)). +An important aspect of the data scientist's toolkit is the power to visualize data using several excellent libraries such as Seaborn or MatPlotLib. Representing your data visually might allow you to uncover hidden correlations that you can leverage. Your visualizations might also help you to uncover bias or unbalanced data (as we discover in [Classification](../../4-Classification/2-Classifiers-1/README.md)). + ### Split your dataset Prior to training, you need to split your dataset into two or more parts of unequal size that still represent the data well. @@ -61,10 +64,12 @@ Using your training data, your goal is to build a model, or a statistical repres ### Decide on a training method -Depending on your question and the nature of your data, your will choose a method to train it. Stepping through [Scikit-learn's documentation](https://scikit-learn.org/stable/user_guide.html) - which we use in this course - you can explore many ways to train a model. Depending on your experience, you might have to try several different methods to build the best model. You are likely to go through a process whereby data scientists evaluate the performance of a model by feeding it unseen data, checking for accuracy, bias, and other quality-degrading issues, and selecting the most appropriate training method for the task at hand. +Depending on your question and the nature of your data, you will choose a method to train it. Stepping through [Scikit-learn's documentation](https://scikit-learn.org/stable/user_guide.html) - which we use in this course - you can explore many ways to train a model. Depending on your experience, you might have to try several different methods to build the best model. You are likely to go through a process whereby data scientists evaluate the performance of a model by feeding it unseen data, checking for accuracy, bias, and other quality-degrading issues, and selecting the most appropriate training method for the task at hand. + ### Train a model Armed with your training data, you are ready to 'fit' it to create a model. You will notice that in many ML libraries you will find the code 'model.fit' - it is at this time that you send in your data as an array of values (usually 'X') and a feature variable (usually 'y'). + ### Evaluate the model Once the training process is complete (it can take many iterations, or 'epochs', to train a large model), you will be able to evaluate the model's quality by using test data to gauge its performance. This data is a subset of the original data that the model has not previously analyzed. You can print out a table of metrics about your model's quality. From 80099c7ca4723d641392772c69cbcd08b04e715d Mon Sep 17 00:00:00 2001 From: KAN Date: Sun, 1 Aug 2021 17:16:40 +0800 Subject: [PATCH 210/228] Chinese Translation for Charpter 5 --- .../1-Visualize/translations/README.zh-cn.md | 337 ++++++++++++++++++ .../translations/assignment.zh-cn.md | 13 + .../2-K-Means/translations/README.zh-cn.md | 253 +++++++++++++ .../translations/assignment.zh-cn.md | 12 + 5-Clustering/translations/README.zh-cn.md | 27 ++ 5 files changed, 642 insertions(+) create mode 100644 5-Clustering/1-Visualize/translations/README.zh-cn.md create mode 100644 5-Clustering/1-Visualize/translations/assignment.zh-cn.md create mode 100644 5-Clustering/2-K-Means/translations/README.zh-cn.md create mode 100644 5-Clustering/2-K-Means/translations/assignment.zh-cn.md create mode 100644 5-Clustering/translations/README.zh-cn.md diff --git a/5-Clustering/1-Visualize/translations/README.zh-cn.md b/5-Clustering/1-Visualize/translations/README.zh-cn.md new file mode 100644 index 00000000..1697e9c4 --- /dev/null +++ b/5-Clustering/1-Visualize/translations/README.zh-cn.md @@ -0,0 +1,337 @@ +# 介绍聚类 + +聚类是一种无监督学习,它假定数据集未标记或其输入与预定义的输出不匹配。它使用各种算法对未标记的数据进行排序,并根据它在数据中识别的模式提供分组。 +[![No One Like You by PSquare](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "No One Like You by PSquare") + +> 🎥 点击上面的图片观看视频。当您通过聚类学习机器学习时,请欣赏一些尼日利亚舞厅曲目 - 这是2014 年PSquare上高度评价的歌曲。 +## [课前测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/27/) +### 介绍 + +[聚类](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124)对于数据探索非常有用。让我们看看它是否有助于发现尼日利亚观众消费音乐的趋势和模式。 + +✅花一点时间思考聚类的用途。在现实生活中,每当你有一堆衣服需要整理家人的衣服时,就会发生聚类🧦👕👖🩲. 在数据科学中,聚类用于在尝试分析用户的偏好或确定任何未标记数据集的特征。在某种程度上,聚类有助于理解杂乱的状态,就像一个袜子抽屉。 + +[![Introduction to ML](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "Introduction to Clustering") + +> 🎥单击上图观看视频:麻省理工学院的 John Guttag 介绍聚类 + +在专业环境中,聚类可用于确定诸如市场细分之类的事情,例如确定哪些年龄组购买哪些商品。另一个用途是异常检测,可能是从信用卡交易数据集中检测欺诈。或者您可以使用聚类来确定一批医学扫描中的肿瘤。 + +✅ 想一想您是如何在银行、电子商务或商业环境中“意外”遇到聚类的。 + +> 🎓有趣的是,聚类分析起源于 1930 年代的人类学和心理学领域。你能想象它是如何被使用的吗? + +或者,您可以使用它对搜索结果进行分组 - 例如,通过购物链接、图片或评论。当您有一个大型数据集想要减少并且想要对其执行更细粒度的分析时,聚类非常有用,因此该技术可用于在构建其他模型之前了解数据。 + +✅一旦你的数据被组织成聚类,你就为它分配一个聚类 ID,这个技术在保护数据集的隐私时很有用;您可以改为通过其聚类 ID 来引用数据点,而不是通过更多的可明显区分的数据。您能想到为什么要引用聚类 ID 而不是聚类的其他元素来识别它的其他原因吗? + +在此[学习模块中](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-15963-cxa)加深您对聚类技术的理解 + +## 聚类入门 + +[Scikit-learn 提供了大量](https://scikit-learn.org/stable/modules/clustering.html)的方法来执行聚类。您选择的类型将取决于您的用例。根据文档,每种方法都有不同的好处。以下是 Scikit-learn 支持的方法及其适当用例的简化表: + +| 方法名称 | 用例 | +| ---------------------------- | -------------------------------------------------- | +| K-Means | 通用目的,归纳的 | +| Affinity propagation | 许多,不均匀的聚类,归纳的 | +| Mean-shift | 许多,不均匀的聚类,归纳的 | +| Spectral clustering | 少数,甚至聚类,转导的 | +| Ward hierarchical clustering | 许多,受约束的聚类,转导的 | +| Agglomerative clustering | 许多,受约束的,非欧几里得距离,转导的 | +| DBSCAN | 非平面几何,不均匀聚类,转导的 | +| OPTICS | 不平坦的几何形状,具有可变密度的不均匀聚类,转导的 | +| Gaussian mixtures | 平面几何,感应的 | +| BIRCH | 具有异常值的大型数据集,归纳的 | + +> 🎓我们如何创建聚类与我们如何将数据点收集到组中有很大关系。让我们分析一些词汇: +> +> 🎓 [“转导”与“归纳”](https://wikipedia.org/wiki/Transduction_(machine_learning)) +> +> 转导推理源自观察到的映射到特定测试用例的训练用例。归纳推理源自映射到一般规则的训练案例,然后才应用于测试案例。 +> +> 示例:假设您有一个仅部分标记的数据集。有些东西是“记录”,有些是“CD”,有些是空白的。您的工作是为空白提供标签。如果您选择归纳方法,您将训练一个寻找“记录”和“CD”的模型,并将这些标签应用于未标记的数据。这种方法将难以对实际上是“盒式磁带”的东西进行分类。另一方面,转导方法可以更有效地处理这些未知数据,因为它可以将相似的项目组合在一起,然后将标签应用于一个组。在这种情况下,聚类可能反映“圆形音乐事物”和“方形音乐事物”。 +> +> 🎓 [“非平面”与“平面”几何](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) +> +> 源自数学术语,非平面与平面几何是指通过“平面”([欧几里德](https://wikipedia.org/wiki/Euclidean_geometry))或“非平面”(非欧几里得)几何方法测量点之间的距离。 +> +> 在此上下文中,“平面”是指欧几里得几何(其中一部分被教导为“平面”几何),而非平面是指非欧几里得几何。几何与机器学习有什么关系?好吧,作为植根于数学的两个领域,必须有一种通用的方法来测量聚类中点之间的距离,并且可以以“平坦”(flat)或“非平坦”(non-flat)的方式完成,具体取决于数据的性质. [欧几里得距离](https://wikipedia.org/wiki/Euclidean_distance)测量为两点之间线段的长度。[非欧距离](https://wikipedia.org/wiki/Non-Euclidean_geometry)是沿曲线测量的。如果您的可视化数据似乎不存在于平面上,您可能需要使用专门的算法来处理它。 +> +> ![Flat vs Nonflat Geometry Infographic](../images/flat-nonflat.png) +> [Dasani Madipalli ](https://twitter.com/dasani_decoded)作图 +> +> 🎓 ['距离'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) +> +> 聚类由它们的距离矩阵定义,例如点之间的距离。这个距离可以通过几种方式来测量。欧几里得聚类由点值的平均值定义,并包含“质心”或中心点。因此,距离是通过到该质心的距离来测量的。非欧式距离指的是“聚类心”,即离其他点最近的点。聚类心又可以用各种方式定义。 +> +> 🎓 ['约束'](https://wikipedia.org/wiki/Constrained_clustering) +> +> [约束聚类](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf)将“半监督”学习引入到这种无监督方法中。点之间的关系被标记为“无法链接”或“必须链接”,因此对数据集强加了一些规则。 +> +> 一个例子:如果一个算法在一批未标记或半标记的数据上不受约束,它产生的聚类质量可能很差。在上面的示例中,聚类可能将“圆形音乐事物”和“方形音乐事物”以及“三角形事物”和“饼干”分组。如果给出一些约束或要遵循的规则(“物品必须由塑料制成”、“物品需要能够产生音乐”),这可以帮助“约束”算法做出更好的选择。 +> +> 🎓 '密度' +> +> “嘈杂”的数据被认为是“密集的”。在检查时,每个聚类中的点之间的距离可能或多或少地密集或“拥挤”,因此需要使用适当的聚类方法分析这些数据。[本文](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html)演示了使用 K-Means 聚类与 HDBSCAN 算法探索具有不均匀聚类密度的嘈杂数据集之间的区别。 + +## 聚类算法 + +有超过 100 种聚类算法,它们的使用取决于手头数据的性质。让我们讨论一些主要的: + +- **层次聚类**。如果一个对象是根据其与附近对象的接近程度而不是较远对象来分类的,则聚类是根据其成员与其他对象之间的距离来形成的。Scikit-learn 的凝聚聚类是分层的。 + + ![Hierarchical clustering Infographic](../images/hierarchical.png) + + > [Dasani Madipalli ](https://twitter.com/dasani_decoded)作图 + +- **质心聚类**。这种流行的算法需要选择“k”或要形成的聚类数量,然后算法确定聚类的中心点并围绕该点收集数据。[K-means 聚类](https://wikipedia.org/wiki/K-means_clustering)是质心聚类的流行版本。中心由最近的平均值确定,因此叫做质心。与聚类的平方距离被最小化。 + + ![Centroid clustering Infographic](../images/centroid.png) + + > [Dasani Madipalli](https://twitter.com/dasani_decoded)作图 + +- **基于分布的聚类**。基于统计建模,基于分布的聚类中心确定一个数据点属于一个聚类的概率,并相应地分配它。高斯混合方法属于这种类型。 + +- **基于密度的聚类**。数据点根据它们的密度或它们彼此的分组分配给聚类。远离该组的数据点被视为异常值或噪声。DBSCAN、Mean-shift 和 OPTICS 属于此类聚类。 + +- **基于网格的聚类**。对于多维数据集,创建一个网格并将数据划分到网格的单元格中,从而创建聚类。 + + + +## 练习 - 对你的数据进行聚类 + +适当的可视化对聚类作为一种技术有很大帮助,所以让我们从可视化我们的音乐数据开始。这个练习将帮助我们决定我们应该最有效地使用哪种聚类方法来处理这些数据的性质。 + +1. 打开此文件夹中的*notebook.ipynb*文件。 + +1. 导入`Seaborn`包以获得良好的数据可视化。 + + ```python + !pip install seaborn + ``` + +1. 附加来自*nigerian-songs.csv*的歌曲数据。加载包含有关歌曲的一些数据的数据帧。准备好通过导入库和转储数据来探索这些数据: + + ```python + import matplotlib.pyplot as plt + import pandas as pd + + df = pd.read_csv("../data/nigerian-songs.csv") + df.head() + ``` + + 检查前几行数据: + + | | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature | + | --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- | + | 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 | + | 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 | + | 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 | + | 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 | + | 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 | + +1. 获取有关数据帧的一些信息,调用`info()`: + + ```python + df.info() + ``` + + 输出看起来像这样: + + ```output + + RangeIndex: 530 entries, 0 to 529 + Data columns (total 16 columns): + # Column Non-Null Count Dtype + --- ------ -------------- ----- + 0 name 530 non-null object + 1 album 530 non-null object + 2 artist 530 non-null object + 3 artist_top_genre 530 non-null object + 4 release_date 530 non-null int64 + 5 length 530 non-null int64 + 6 popularity 530 non-null int64 + 7 danceability 530 non-null float64 + 8 acousticness 530 non-null float64 + 9 energy 530 non-null float64 + 10 instrumentalness 530 non-null float64 + 11 liveness 530 non-null float64 + 12 loudness 530 non-null float64 + 13 speechiness 530 non-null float64 + 14 tempo 530 non-null float64 + 15 time_signature 530 non-null int64 + dtypes: float64(8), int64(4), object(4) + memory usage: 66.4+ KB + ``` + +1. 通过调用`isnull()`和验证总和为 0 来仔细检查空值: + + ```python + df.isnull().sum() + ``` + + 看起来不错: + + ```output + name 0 + album 0 + artist 0 + artist_top_genre 0 + release_date 0 + length 0 + popularity 0 + danceability 0 + acousticness 0 + energy 0 + instrumentalness 0 + liveness 0 + loudness 0 + speechiness 0 + tempo 0 + time_signature 0 + dtype: int64 + ``` + +1. 描述数据: + + ```python + df.describe() + ``` + + | | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature | + | ----- | ------------ | ----------- | ---------- | ------------ | ------------ | -------- | ---------------- | -------- | --------- | ----------- | ---------- | -------------- | + | count | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | + | mean | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0.016305 | 0.147308 | -4.953011 | 0.130748 | 116.487864 | 3.986792 | + | std | 3.131688 | 39696.82226 | 18.992212 | 0.117522 | 0.208342 | 0.148533 | 0.090321 | 0.123588 | 2.464186 | 0.092939 | 23.518601 | 0.333701 | + | min | 1998 | 89488 | 0 | 0.255 | 0.000665 | 0.111 | 0 | 0.0283 | -19.362 | 0.0278 | 61.695 | 3 | + | 25% | 2014 | 199305 | 0 | 0.681 | 0.089525 | 0.669 | 0 | 0.07565 | -6.29875 | 0.0591 | 102.96125 | 4 | + | 50% | 2016 | 218509 | 13 | 0.761 | 0.2205 | 0.7845 | 0.000004 | 0.1035 | -4.5585 | 0.09795 | 112.7145 | 4 | + | 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 | + | max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 | + +> 🤔如果我们正在使用聚类,一种不需要标记数据的无监督方法,为什么我们用标签显示这些数据?在数据探索阶段,它们派上用场,但它们不是聚类算法工作所必需的。您也可以删除列标题并按列号引用数据。 + +查看数据的普遍值。请注意,流行度可以是“0”,表示没有排名的歌曲。让我们尽快删除它们。 + +1. 使用条形图找出最受欢迎的类型: + + ```python + import seaborn as sns + + top = df['artist_top_genre'].value_counts() + plt.figure(figsize=(10,7)) + sns.barplot(x=top[:5].index,y=top[:5].values) + plt.xticks(rotation=45) + plt.title('Top genres',color = 'blue') + ``` + + ![most popular](../images/popular.png) + +✅如果您想查看更多顶部值,请将顶部更改`[:5]`为更大的值,或将其删除以查看全部。 + +请注意,当顶级流派被描述为“缺失”时,这意味着 Spotify 没有对其进行分类,所以让我们避免它。 + +1. 通过过滤掉丢失的数据避免 + + ```python + df = df[df['artist_top_genre'] != 'Missing'] + top = df['artist_top_genre'].value_counts() + plt.figure(figsize=(10,7)) + sns.barplot(x=top.index,y=top.values) + plt.xticks(rotation=45) + plt.title('Top genres',color = 'blue') + ``` + + 现在重新检查genres: + + ![most popular](../images/all-genres.png) + +1. 到目前为止,前三大流派主导了这个数据集。让我们专注于`afro dancehall`, `afropop`, 和`nigerian pop`,另外过滤数据集以删除任何具有 0 流行度值的内容(这意味着它在数据集中没有被归类为流行度并且可以被视为我们的目的的噪音): + + ```python + df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')] + df = df[(df['popularity'] > 0)] + top = df['artist_top_genre'].value_counts() + plt.figure(figsize=(10,7)) + sns.barplot(x=top.index,y=top.values) + plt.xticks(rotation=45) + plt.title('Top genres',color = 'blue') + ``` + +1. 做一个快速测试,看看数据是否以任何特别强的方式相关: + + ```python + corrmat = df.corr() + f, ax = plt.subplots(figsize=(12, 9)) + sns.heatmap(corrmat, vmax=.8, square=True) + ``` + + ![correlations](../images/correlation.png) + + > 唯一强相关性是`energy`和之间`loudness`,这并不奇怪,因为嘈杂的音乐通常非常有活力。否则,相关性相对较弱。看看聚类算法可以如何处理这些数据会很有趣。 + > + > > 🎓请注意,相关性并不意味着因果关系!我们有相关性的证据,但没有因果关系的证据。一个[有趣的网站](https://tylervigen.com/spurious-correlations)有一些强调这一点的视觉效果。 + +这个数据集是否围绕歌曲的流行度和可舞性有任何收敛?FacetGrid 显示无论流派如何,都有同心圆排列。对于这种类型,尼日利亚人的口味是否会在某种程度的可舞性上趋于一致? + +✅尝试不同的数据点(能量、响度、语音)和更多或不同的音乐类型。你能发现什么?查看`df.describe()`表格以了解数据点的一般分布。 + +### 练习 - 数据分布 + +这三种流派是否因其受欢迎程度而对其可舞性的看法有显着差异? + +1. 检查我们沿给定 x 和 y 轴的流行度和可舞性的前三种类型数据分布。 + + ```python + sns.set_theme(style="ticks") + + g = sns.jointplot( + data=df, + x="popularity", y="danceability", hue="artist_top_genre", + kind="kde", + ) + ``` + + 您可以发现围绕一般收敛点的同心圆,显示点的分布。 + + > 🎓请注意,此示例使用 KDE(核密度估计)图,该图使用连续概率密度曲线表示数据。这允许我们在处理多个分布时解释数据。 + + 总的来说,这三种流派在流行度和可舞性方面松散地对齐。在这种松散对齐的数据中确定聚类将是一个挑战: + + ![distribution](../images/distribution.png) + +1. 创建散点图: + + ```python + sns.FacetGrid(df, hue="artist_top_genre", size=5) \ + .map(plt.scatter, "popularity", "danceability") \ + .add_legend() + ``` + + 相同轴的散点图显示了类似的收敛模式 + + ![Facetgrid](../images/facetgrid.png) + +一般来说,对于聚类,你可以使用散点图来展示数据的聚类,所以掌握这种类型的可视化是非常有用的。在下一课中,我们将使用过滤后的数据并使用 k-means 聚类来发现这些数据中以有趣方式重叠的组。 + +--- + +## 🚀挑战 + +为下一课做准备,制作一张图表,说明您可能会在生产环境中发现和使用的各种聚类算法。 + +聚类试图解决什么样的问题? + +## [课后测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/28/) + +## 复习与自学 + +在应用聚类算法之前,正如我们所了解的,了解数据集的性质是一个好主意。[在此处](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)阅读有关此主题的更多[信息](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) + +[这篇有用的文章将](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/)引导您了解各种聚类算法在给定不同数据形状的情况下的不同行为方式。 + +## 作业 + +[研究用于聚类的其他可视化](./assignment.zh-cn.md) + diff --git a/5-Clustering/1-Visualize/translations/assignment.zh-cn.md b/5-Clustering/1-Visualize/translations/assignment.zh-cn.md new file mode 100644 index 00000000..48f5ea24 --- /dev/null +++ b/5-Clustering/1-Visualize/translations/assignment.zh-cn.md @@ -0,0 +1,13 @@ +# 研究用于聚类的其他可视化 + +## 说明 + +在本节课中,您使用了一些可视化技术来掌握绘制数据图,为聚类数据做准备。散点图在寻找一组对象时尤其有用。研究不同的方法和不同的库来创建散点图,并在notebook上记录你的工作。你可以使用这节课的数据,其他课的数据,或者你自己的数据(但是,请把它的来源记在你的notebook上)。用散点图绘制一些数据,并解释你的发现。 + +## 评判规则 + + +| 评判标准 | 优秀 | 中规中矩 | 仍需努力 | +| -------- | -------------------------------- | ----------------------------------------------- | -------------------- | +| | notebook上有五个详细文档的散点图 | notebook上的散点图少于5个,而且文档写得不太详细 | 一个不完整的notebook | + diff --git a/5-Clustering/2-K-Means/translations/README.zh-cn.md b/5-Clustering/2-K-Means/translations/README.zh-cn.md new file mode 100644 index 00000000..32a33015 --- /dev/null +++ b/5-Clustering/2-K-Means/translations/README.zh-cn.md @@ -0,0 +1,253 @@ +# K-Means 聚类 + +[![Andrew Ng explains Clustering](https://img.youtube.com/vi/hDmNF9JG3lo/0.jpg)](https://youtu.be/hDmNF9JG3lo "Andrew Ng explains Clustering") + +> 🎥 单击上图观看视频:Andrew Ng 解释聚类 + +## [课前测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/29/) + +在本课中,您将学习如何使用 Scikit-learn 和您之前导入的尼日利亚音乐数据集创建聚类。我们将介绍 K-Means 聚类 的基础知识。请记住,正如您在上一课中学到的,使用聚类的方法有很多种,您使用的方法取决于您的数据。我们将尝试 K-Means,因为它是最常见的聚类技术。让我们开始吧! + +您将了解的术语: + +- 轮廓打分 +- 手肘方法 +- 惯性 +- 方差 + +## 介绍 + +[K-Means Clustering](https://wikipedia.org/wiki/K-means_clustering)是一种源自信号处理领域的方法。它用于使用一系列观察将数据组划分和划分为“k”个聚类。每个观察都用于对最接近其最近“平均值”或聚类中心点的给定数据点进行分组。 + +聚类可以可视化为[Voronoi 图](https://wikipedia.org/wiki/Voronoi_diagram),其中包括一个点(或“种子”)及其相应的区域。 + +![voronoi diagram](../images/voronoi.png) + +> [Jen Looper](https://twitter.com/jenlooper)作图 + +K-Means 聚类过程[分三步执行](https://scikit-learn.org/stable/modules/clustering.html#k-means): + +1. 该算法通过从数据集中采样来选择 k 个中心点。在此之后,它循环: + 1. 它将每个样本分配到最近的质心。 + 2. 它通过取分配给先前质心的所有样本的平均值来创建新质心。 + 3. 然后,它计算新旧质心之间的差异并重复直到质心稳定。 + +使用 K-Means 的一个缺点包括您需要建立“k”,即质心的数量。幸运的是,“肘部法则”有助于估计“k”的良好起始值。试一下吧。 + +## 前置条件 + +您将使用本课的*notebook.ipynb*文件,其中包含您在上一课中所做的数据导入和初步清理。 + +## 练习 - 准备 + +首先再看看歌曲数据。 + +1. 创建一个箱线图,`boxplot()`为每一列调用: + + ```python + plt.figure(figsize=(20,20), dpi=200) + + plt.subplot(4,3,1) + sns.boxplot(x = 'popularity', data = df) + + plt.subplot(4,3,2) + sns.boxplot(x = 'acousticness', data = df) + + plt.subplot(4,3,3) + sns.boxplot(x = 'energy', data = df) + + plt.subplot(4,3,4) + sns.boxplot(x = 'instrumentalness', data = df) + + plt.subplot(4,3,5) + sns.boxplot(x = 'liveness', data = df) + + plt.subplot(4,3,6) + sns.boxplot(x = 'loudness', data = df) + + plt.subplot(4,3,7) + sns.boxplot(x = 'speechiness', data = df) + + plt.subplot(4,3,8) + sns.boxplot(x = 'tempo', data = df) + + plt.subplot(4,3,9) + sns.boxplot(x = 'time_signature', data = df) + + plt.subplot(4,3,10) + sns.boxplot(x = 'danceability', data = df) + + plt.subplot(4,3,11) + sns.boxplot(x = 'length', data = df) + + plt.subplot(4,3,12) + sns.boxplot(x = 'release_date', data = df) + ``` + + 这个数据有点嘈杂:通过观察每一列作为箱线图,你可以看到异常值。 + + ![outliers](../images/boxplots.png) + +您可以浏览数据集并删除这些异常值,但这会使数据非常少。 + +1. 现在,选择您将用于聚类练习的列。选择具有相似范围的那些并将`artist_top_genre`列编码为数字类型的数据: + + ```python + from sklearn.preprocessing import LabelEncoder + le = LabelEncoder() + + X = df.loc[:, ('artist_top_genre','popularity','danceability','acousticness','loudness','energy')] + + y = df['artist_top_genre'] + + X['artist_top_genre'] = le.fit_transform(X['artist_top_genre']) + + y = le.transform(y) + ``` + +1. 现在您需要选择要定位的聚类数量。您知道我们从数据集中挖掘出 3 种歌曲流派,所以让我们尝试 3 种: + + ```python + from sklearn.cluster import KMeans + + nclusters = 3 + seed = 0 + + km = KMeans(n_clusters=nclusters, random_state=seed) + km.fit(X) + + # Predict the cluster for each data point + + y_cluster_kmeans = km.predict(X) + y_cluster_kmeans + ``` + +您会看到打印出的数组,其中包含数据帧每一行的预测聚类(0、1 或 2)。 + +1. 使用此数组计算“轮廓分数”: + + ```python + from sklearn import metrics + score = metrics.silhouette_score(X, y_cluster_kmeans) + score + ``` + +## 轮廓分数 + +寻找接近 1 的轮廓分数。该分数从 -1 到 1 不等,如果分数为 1,则该聚类密集且与其他聚类分离良好。接近 0 的值表示重叠聚类,样本非常接近相邻聚类的决策边界。[来源](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)。 + +我们的分数是**0.53**,所以正好在中间。这表明我们的数据不是特别适合这种类型的聚类,但让我们继续。 + +### 练习 - 建立模型 + +1. 导入`KMeans`并启动聚类过程。 + + ```python + from sklearn.cluster import KMeans + wcss = [] + + for i in range(1, 11): + kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42) + kmeans.fit(X) + wcss.append(kmeans.inertia_) + + ``` + + 这里有几个部分需要解释。 + + > 🎓 range:这些是聚类过程的迭代 + + > 🎓random_state:“确定质心初始化的随机数生成。” [来源](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans) + + > 🎓WCSS:“聚类内平方和”测量聚类内所有点到聚类质心的平方平均距离。[来源](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce)。 + + > 🎓Inertia:K-Means 算法尝试选择质心以最小化“惯性”,“惯性是衡量内部相干程度的一种方法”。[来源](https://scikit-learn.org/stable/modules/clustering.html)。该值在每次迭代时附加到 wcss 变量。 + + > 🎓k-means++:在[Scikit-learn 中,](https://scikit-learn.org/stable/modules/clustering.html#k-means)您可以使用“k-means++”优化,它“将质心初始化为(通常)彼此远离,导致可能比随机初始化更好的结果。 + +### 手肘方法 + +之前,您推测,因为您已经定位了 3 个歌曲genre,所以您应该选择 3 个聚类。但真的是这样吗? + +1. 使用手肘方法来确认。 + + ```python + plt.figure(figsize=(10,5)) + sns.lineplot(range(1, 11), wcss,marker='o',color='red') + plt.title('Elbow') + plt.xlabel('Number of clusters') + plt.ylabel('WCSS') + plt.show() + ``` + + 使用`wcss`您在上一步中构建的变量创建一个图表,显示肘部“弯曲”的位置,这表示最佳聚类数。也许**是**3! + + ![elbow method](../images/elbow.png) + +## 练习 - 显示聚类 + +1. 再次尝试该过程,这次设置三个聚类,并将聚类显示为散点图: + + ```python + from sklearn.cluster import KMeans + kmeans = KMeans(n_clusters = 3) + kmeans.fit(X) + labels = kmeans.predict(X) + plt.scatter(df['popularity'],df['danceability'],c = labels) + plt.xlabel('popularity') + plt.ylabel('danceability') + plt.show() + ``` + +1. 检查模型的准确性: + + ```python + labels = kmeans.labels_ + + correct_labels = sum(y == labels) + + print("Result: %d out of %d samples were correctly labeled." % (correct_labels, y.size)) + + print('Accuracy score: {0:0.2f}'. format(correct_labels/float(y.size))) + ``` + + 这个模型的准确性不是很好,聚类的形状给了你一个提示。 + + ![clusters](../images/clusters.png) + + 这些数据太不平衡,相关性太低,列值之间的差异太大,无法很好地聚类。事实上,形成的聚类可能受到我们上面定义的三个类型类别的严重影响或扭曲。那是一个学习的过程! + + 在 Scikit-learn 的文档中,你可以看到像这样的模型,聚类划分不是很好,有一个“方差”问题: + + ![problem models](../images/problems.png) + + > 图来自 Scikit-learn + +## 方差 + +> 方差被定义为“来自均值的平方差的平均值”[源](https://www.mathsisfun.com/data/standard-deviation.html)。在这个聚类问题的上下文中,它指的是我们数据集的数量往往与平均值相差太多的数据。 +> +> ✅这是考虑可以纠正此问题的所有方法的好时机。稍微调整一下数据?使用不同的列?使用不同的算法?提示:尝试[缩放数据](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/)以对其进行标准化并测试其他列。 +> +> > 试试这个“[方差计算器](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)”来更多地理解这个概念。 + +--- + +## 🚀挑战 + +花一些时间在这个笔记本上,调整参数。您能否通过更多地清理数据(例如,去除异常值)来提高模型的准确性?您可以使用权重为给定的数据样本赋予更多权重。你还能做些什么来创建更好的聚类? + +提示:尝试缩放您的数据。笔记本中的注释代码添加了标准缩放,使数据列在范围方面更加相似。您会发现,当轮廓分数下降时,肘部图中的“扭结”变得平滑。这是因为不缩放数据可以让方差较小的数据承载更多的权重。在[这里](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226)阅读更多关于这个问题的[信息](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226)。 + +## [课后测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/30/) + +## 复习与自学 + +看看[像这样](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/)的 K-Means 模拟器。您可以使用此工具来可视化样本数据点并确定其质心。您可以编辑数据的随机性、聚类数和质心数。这是否有助于您了解如何对数据进行分组? + +另外,看看斯坦福大学的[k-means 讲义](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html)。 + +## 作业 + +[尝试不同的聚类方法](./assignment.zh-cn.md) + diff --git a/5-Clustering/2-K-Means/translations/assignment.zh-cn.md b/5-Clustering/2-K-Means/translations/assignment.zh-cn.md new file mode 100644 index 00000000..c21058d3 --- /dev/null +++ b/5-Clustering/2-K-Means/translations/assignment.zh-cn.md @@ -0,0 +1,12 @@ +# 尝试不同的聚类方法 + + +## 说明 + +在本课中,您学习了 K-Means 聚类。有时 K-Means 不适合您的数据。使用来自这些课程或其他地方的数据(归功于您的来源)创建notebook,并展示不使用 K-Means 的不同聚类方法。你学到了什么? +## 评判规则 + +| 评判标准 | 优秀 | 中规中矩 | 仍需努力 | +| -------- | --------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------- | +| | 一个具有良好文档记录的聚类模型的notebook | 一个没有详细文档或不完整的notebook| 提交了一个不完整的工作 | + diff --git a/5-Clustering/translations/README.zh-cn.md b/5-Clustering/translations/README.zh-cn.md new file mode 100644 index 00000000..88d29623 --- /dev/null +++ b/5-Clustering/translations/README.zh-cn.md @@ -0,0 +1,27 @@ +# 机器学习中的聚类模型 + +聚类(clustering)是一项机器学习任务,用于寻找类似对象并将他们分成不同的组(这些组称做“聚类”(cluster))。聚类与其它机器学习方法的不同之处在于聚类是自动进行的。事实上,我们可以说它是监督学习的对立面。 + +## 区域性话题: 尼日利亚观众音乐品味的聚类模型🎧 + +尼日利亚多样化的观众有着多样化的音乐品味。使用从Spotify上抓取的数据(受到[本文](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)的启发),让我们看看尼日利亚流行的一些音乐。这个数据集包括关于各种歌曲的舞蹈性、声学、响度、言语、流行度和活力的分数。从这些数据中发现一些模式(pattern)会是很有趣的事情! + +![A turntable](../images/turntable.jpg) + +Marcela LaskoskiUnsplash上的照片 + +在本系列课程中,您将发现使用聚类技术分析数据的新方法。当数据集缺少标签的时候,聚类特别有用。如果它有标签,那么分类技术(比如您在前面的课程中所学的那些)可能会更有用。但是如果要对未标记的数据进行分组,聚类是发现模式的好方法。 + +> 这里有一些有用的低代码工具可以帮助您了解如何使用聚类模型。尝试 [Azure ML for this task](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) +## 课程安排 + +1. [介绍聚类](../1-Visualize/translations/README.zh-cn.md) +2. [K-Means聚类](../2-K-Means/translations/README.zh-cn.md) +## 致谢 + +这些课程由Jen Looper在🎶上撰写,并由 [Rishit Dagli](https://rishit_dagli) 和[Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan)进行了有帮助的评审。 + +[尼日利亚歌曲数据集](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) 来自Kaggle抓取的Spotify数据。 + +一些帮助创造了这节课程的K-Means例子包括:[虹膜探索(iris exploration)](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering),[介绍性的笔记(introductory notebook)](https://www.kaggle.com/prashant111/k-means-clustering-with-python),和 [假设非政府组织的例子(hypothetical NGO example)](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering)。 + From 2e4cafe31604d04beaeae59aa2d73f6985a0cc40 Mon Sep 17 00:00:00 2001 From: davidit33 Date: Sun, 1 Aug 2021 19:48:37 -0300 Subject: [PATCH 211/228] 1-Introduction/4-techniques-of-ML/translations/README.es.md --- .../translations/README.es.md | 107 ++++++++++++++++++ 1 file changed, 107 insertions(+) mode change 100644 => 100755 1-Introduction/4-techniques-of-ML/translations/README.es.md diff --git a/1-Introduction/4-techniques-of-ML/translations/README.es.md b/1-Introduction/4-techniques-of-ML/translations/README.es.md old mode 100644 new mode 100755 index e69de29b..81052021 --- a/1-Introduction/4-techniques-of-ML/translations/README.es.md +++ b/1-Introduction/4-techniques-of-ML/translations/README.es.md @@ -0,0 +1,107 @@ +# Técnicas de Machine Learning + +El proceso de creación, uso y mantenimiento de modelos de machine learning, y los datos que se utilizan, es un proceso muy diferente de muchos otros flujos de trabajo de desarrollo. En esta lección, demistificaremos el proceso, y describiremos las principales técnicas que necesita saber. Vas a: + +- Comprender los procesos que sustentan el machine learning a un alto nivel. +- Explorar conceptos básicos como 'modelos', 'predicciones', y 'datos de entrenamiento' + + +## [Cuestionario previo a la conferencia](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/7/) +## Introducción + +A un alto nivel, el arte de crear procesos de machine learning (ML) se compone de una serie de pasos: + +1. **Decidir sobre la pregunta**. La mayoría de los procesos de ML, comienzan por hacer una pregunta que no puede ser respondida por un simple programa condicional o un motor basado en reglas. Esas preguntas a menudo giran en torno a predicciones basadas en una recopilación de datos. +2. **Recopile y prepare datos**. Para poder responder a su pregunta, necesita datos. La calidad y, a veces, cantidad de sus datos determinarán que tan bien puede responder a su pregunta inicial. La visualización de datos es un aspecto importante de esta fase. Esta fase también incluye dividir los datos en un grupo de entrenamiento y pruebas para construir un modelo. +3. **Elige un método de entrenamiento**. Dependiendo de su pregunta y la naturaleza de sus datos, debe elegir cómo desea entrenar un modelo para reflejar mejor sus datos y hacer predicciones precisas contra ellos. Esta es la parte de su proceso de ML que requiere experiencia específica y, a menudo, una cantidad considerable de experimetación. +4. **Entrena el model**. Usando sus datos de entrenamiento, usará varios algoritmos para entrenar un modelo para reconocer patrones en los datos. El modelo puede aprovechar las ponderaciones internas que se pueden ajustar para privilegiar ciertas partes de los datos sobre otras para construir un modelo mejor. +5. **Evaluar el modelo**. Utiliza datos nunca antes vistos (sus datos de prueba) de su conjunto recopilado para ver cómo se está desempeñando el modelo. +6. **Ajuste de parámetros**. Según el rendimiento de su modelo, puede rehacer el proceso utilizando diferentes parámetros, o variables, que controlan el comportamiento de los algoritmos utlizados para entrenarl el modelo. +7. **Predecir**. Utilice nuevas entradas para probar la precisión de su modelo. + +## Que pregunta hacer + +Las computadoras son particularmente hábiles para descubrir patrones ocultos en los datos. Esta utlidad es muy útil para los investigadores que tienen preguntas sobre un dominio determinado que no pueden responderse fácilmente mediante la creación de un motor de reglas basado en condicionales. Dada una tarea actuarial, por ejemplo, un científico de datos podría construir reglas artesanales sobre la mortalidad de los fumadores frente a los no fumadores. + +Sin embargo, cuandos se incorporan muchas otras variables a la ecuación, un modelo de ML podría resultar más eficiente para predecir las tasas de mortalidad futuras en funciòn de los antecedentes de salud. Un ejemplo más alegre podría hacer predicciones meteorólogicas para el mes de abril en una ubicación determinada que incluya latitud, longitud, cambio climático, proximidad al océano, patrones de la corriente en chorro, y más. + +✅ Esta [presentación de diapositivas](https://www2.cisl.ucar.edu/sites/default/files/0900%20June%2024%20Haupt_0.pdf) sobre modelos meteorológicos ofrece una perspectiva histórica del uso de ML en el análisis meteorológico. + +## Tarea previas a la construcción + +Antes de comenzar a construir su modelo, hay varias tareas que debe comletar. Para probar su pregunta y formar una hipótesis basada en las predicciones de su modelo, debe identificar y configurar varios elementos. + +### Datos + +Para poder responder su pregunta con cualquier tipo de certeza, necesita una buena cantidad de datos del tipo correcto. +Hay dos cosas que debe hacer en este punto: + +- **Recolectar datos**. Teniendo en cuenta la lección anterior sobre la equidad en el análisis de datos, recopile sus datos con cuidado. Tenga en cuenta la fuente de estos datos, cualquier sesgo inherente que pueda tener y documente su origen. +- **Preparar datos**. Hay varios pasos en el proceso de preparación de datos. Podría necesitar recopilar datos y normalizarlos si provienen de diversas fuentes. Puede mejorar la calidad y cantidad de los datos mediante varios métodos, como convertir strings en números (como hacemos en [Clustering](../../5-Clustering/1-Visualize/README.md)). También puede generar nuevos datos, basados en los originales (como hacemos en [Clasificación](../../4-Classification/1-Introduction/README.md)). Puede limpiar y editar los datos (como lo haremos antes de la lección [Web App](../../3-Web-App/README.md)). Por último, es posible que también deba aleotizarlo y mezclarlo, según sus técnicas de entrenamiento. + +✅ Despúes de recopilar y procesar sus datos, tómese un momento para ver si su forma le permitirá responder a su pregunta. ¡Puede ser que los datos no funcionen bien en su tarea dada, como descubriremos en nuestras lecciones de[Clustering](../../5-Clustering/1-Visualize/README.md)! + +### Seleccionando su variable característica + +Una [característica](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) es una propiedad medible de sus datos. En muchos conjuntos de datos, se expresa como un encabezado de columna como 'fecha', 'tamaño' o 'color'. Su variable característica, generalmente representada como `y` en el código, representa la respuesta a la pregunta que está tratando de hacer a sus datos: en diciembre, ¿qué calabazas de **color** serán las más baratas?, en San Francisco, ¿que vecinadarios tendrán el mejor **precio** de bienes raíces? + +🎓 **Selección y extracción de características** ¿ Cómo sabe que variable elegir al construir un modelo? Probablemente pasará por un proceso de selección o extracción de características para elegir las variables correctas para mayor un mayor rendimiento del modelo. Sin embargo, no son lo mismo: "La extracción de características crea nuevas características a partir de funciones de las características originales, mientras que la selección de características devuelve un subconjunto de las características." ([fuente](https://wikipedia.org/wiki/Feature_selection)) + +### Visualiza tus datos + +Un aspecto importante del conjunto de herramientas del científico de datos es el poder de visualizar datos utilizando varias bibliotecas excelentes como Seaborn o MatPlotLib. Representar sus datos visualmente puede permitirle descubrir correlaciones ocultas que puede aprovechar. Sus visualizaciones también pueden ayudarlo a descubrir sesgos o datos desequilibrados. (como descubrimos en [Clasificación](../../4-Classification/2-Classifiers-1/README.md)). + +### Divide tu conjunto de datos + +Antes del entrenamiento, debe dividir su conjunto de datos en dos o más partes de tamaño desigual que aún represente bien los datos. + +- **Entrenamiento**. Esta parte del conjunto de datos se ajusta a su modelo para entrenarlo. Este conjunto constituye la mayor parte del conjunto de datos original. +- **Pruebas**. Un conjunto de datos de pruebas es un grupo independiente de datos, a menudo recopilado a partir de los datos originales, que se utiliza para confirmar el rendimiento del modelo construido. +- **Validación**. Un conjunto de validación es un pequeño grupo independiente de ejemplos que se usa para ajustar los hiperparámetros o la arquitectura del modelo para mejorar el modelo. Dependiendo del tamaño de de su conjunto de datos y de la pregunta que se está haciendo, es posible que no necesite crear este tercer conjunto (como notamos en [Pronóstico se series de tiempo](../../7-TimeSeries/1-Introduction/README.md)). + +## Contruye un modelo + +Usando sus datos de entrenamiento, su objetivo es construir un modelo, o una representación estadística de sus datos, usando varios algoritmos para **entrenarlo**. El entrenamiento de un modelo lo expone a los datos y le permite hacer suposiciones sobre los patrones percibidos que descubre, valida y rechaza. + +### Decide un método de entrenamiento + +Dependiendo de su pregunta y la naturaleza de sus datos, elegirá un método para entrenarlos. Pasando por la [documentación de Scikit-learn ](https://scikit-learn.org/stable/user_guide.html) - que usamos en este curso - puede explorar muchas formas de entrenar un modelo. Dependiendo de su experiencia, es posible que deba probar varios métodos diferentes para construir el mejor modelo. Es probable que pase por un proceso en el que los científicos de datos evalúan el rendimiento de un modelo alimentándolo con datos no vistos anteriormente por el modelo, verificando la precisión, el sesgo, y otros problemas que degradan la calidad, y seleccionando el método de entrenamieto más apropiado para la tarea en custión. +### Entrena un modelo + +Armado con sus datos de entrenamiento, está listo para 'fit'(ajustarlos/entrenarlos) para crear un modelo. Notará que en muchas bibliotecas de ML, encontrará el código 'model.fit' - es en este momento cuando envías sus datos como una matriz de valores (generalmente 'X') y una variable característica (generalmente 'Y'). +### Evaluar el modelo + +Una vez que se completa el proceso de entrenamiento (puede tomar muchas iteraciones, o 'épocas', entrenar un modelo de gran tamaño), podrá evaluar la calidad del modelo utilizando datos de prueba para medir su rendimiento. Estos datos son un subconjunto de los datos originales que el modelo no ha analizado previamente. Puede imprimir una tabla de métricas sobre la calidad de su modelo. + +🎓 **Ajuste del modelo (Model fitting)** + +En el contexto del machine learning, el ajuste del modelo se refiere a la precisión de la función subyacente del modelo cuando intenta analizar datos con los que no está familiarizado. + +🎓 **Ajuste insuficiente (Underfitting)** y **sobreajuste (overfitting)** son problemas comunes que degradan la calidad del modelo, ya que el modelo no encaja suficientemente bien, o encaja demasiado bien. Esto hace que el modelo haga predicciones demasiado estrechamente alineadas o demasiado poco alineadas con sus datos de entrenamiento. Un modelo sobreajustadoo (overfitting) predice demasiado bien los datos de entrenamiento porque ha aprendido demasiado bien los detalles de los datos y el ruido. Un modelo insuficentemente ajustado (Underfitting) es es preciso, ya que ni puede analizar con precisión sus datos de entrenamiento ni los datos que aún no ha 'visto'. + +![overfitting model](images/overfitting.png) +> Infografía de [Jen Looper](https://twitter.com/jenlooper) + +## Ajuste de parámetros + +Una vez que haya completado su entrenamiento inicial, observe la calidad del modelo y considere mejorarlo ajustando sus 'hiperparámetros'. Lea más sobre el proceso [en la documentación](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-15963-cxa). + +## Predicción + +Este es el momento en el que puede usar datos completamente nuevos para probar la precisión de su modelo. En una configuración de ML aplicada, donde está creando activos web para usar el modelo en producción, este proceo puede implicar la recopilación de la entrada del usuario (presionar un botón, por ejemplo) para establecer una variable y enviarla al modelo para la inferencia, o evaluación. +En estas lecciones, descubrirá cómo utilizar estos pasos para preparar, construir, probar, evaluar, y predecir - todos los gestos de un científico de datos y más, a medida que avanza en su viaje para convertirse en un ingeniero de machine learning 'full stack'. +--- + +## 🚀Desafío + +Dibuje un diagrama de flujos que refleje los pasos de practicante de ML. ¿Dónde te ves ahora mismo en el proceso? ¿Dónde predice que encontrará dificultades? ¿Qué te parece fácil? + +## [Cuestionario previo a la conferencia](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/8/) + +## Revisión & Autoestudio + +Busque en línea entrevistas con científicos de datos que analicen su trabajo diario. Aquí está [uno](https://www.youtube.com/watch?v=Z3IjgbbCEfs). + +## Asignación + +[Entrevistar a un científico de datos](assignment.md) \ No newline at end of file From 102bf8a09151923a8d38a2dc631f9958ffc5c9db Mon Sep 17 00:00:00 2001 From: XiaojianTang <85986768+XiaojianTang@users.noreply.github.com> Date: Mon, 2 Aug 2021 11:39:28 +0800 Subject: [PATCH 212/228] Update README.zh-cn.md Update Introdcution Translation Link and Tabels Format Correction --- .../translations/README.zh-cn.md | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md index 36273b91..83aa4fc4 100644 --- a/4-Classification/2-Classifiers-1/translations/README.zh-cn.md +++ b/4-Classification/2-Classifiers-1/translations/README.zh-cn.md @@ -2,12 +2,12 @@ 本节课程将使用你在上一个课程中所保存的全部经过均衡和清洗的菜品数据。 -你将使用这份数据集,并通过多种分类器 _在给出了各种配料后预测这是那一个国家的菜品_。在此过程中,你将学到更多能够用来调试分类任务算法的方法。 +你将使用此数据集和各种分类器,_根据一组配料预测这是哪一国家的美食_。在此过程中,你将学到更多用来权衡分类任务算法的方法 ## [课前测验](https://jolly-sea-0a877260f.azurestaticapps.net/quiz/21/) # 准备工作 -假如你已经完成了[课程1](../1-Introduction/README.md), 确保在根目录的`/data`文件夹中有 _cleaned_cuisines.csv_ 这份文件来进行接下来的四节课程。 +假如你已经完成了[课程1](../../1-Introduction/translations/README.zh-cn.md), 确保在根目录的`/data`文件夹中有 _cleaned_cuisines.csv_ 这份文件来进行接下来的四节课程。 ## 练习 - 预测某国的菜品 @@ -68,7 +68,7 @@ 你的特征集看上去将会是这样: - | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | + | | almond | angelica | anise | anise_seed | apple | apple_brandy | apricot | armagnac | artemisia | artichoke | ... | whiskey | white_bread | white_wine | whole_grain_wheat_flour | wine | wood | yam | yeast | yogurt | zucchini | | -----: | -------: | ----: | ---------: | ----: | -----------: | ------: | -------: | --------: | --------: | ---: | ------: | ----------: | ---------: | ----------------------: | ---: | ---: | ---: | ----: | -----: | -------: | --- | | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | @@ -200,13 +200,13 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine 运行后的输出如下———可以发现这是一道印度菜的可能性最大,是最合理的猜测: - | | 0 | | | | | | | | | | | | | | | | | | | | | - | -------: | -------: | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | indian | 0.715851 | | | | | | | | | | | | | | | | | | | | | - | chinese | 0.229475 | | | | | | | | | | | | | | | | | | | | | - | japanese | 0.029763 | | | | | | | | | | | | | | | | | | | | | - | korean | 0.017277 | | | | | | | | | | | | | | | | | | | | | - | thai | 0.007634 | | | | | | | | | | | | | | | | | | | | | + | | 0 | + | -------: | -------: | + | indian | 0.715851 | + | chinese | 0.229475 | + | japanese | 0.029763 | + | korean | 0.017277 | + | thai | 0.007634 | ✅ 你能解释下为什么模型会如此确定这是一道印度菜么? @@ -217,16 +217,16 @@ X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisine print(classification_report(y_test,y_pred)) ``` - | precision | recall | f1-score | support | | | | | | | | | | | | | | | | | | | - | ------------ | ------ | -------- | ------- | ---- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | - | chinese | 0.73 | 0.71 | 0.72 | 229 | | | | | | | | | | | | | | | | | | - | indian | 0.91 | 0.93 | 0.92 | 254 | | | | | | | | | | | | | | | | | | - | japanese | 0.70 | 0.75 | 0.72 | 220 | | | | | | | | | | | | | | | | | | - | korean | 0.86 | 0.76 | 0.81 | 242 | | | | | | | | | | | | | | | | | | - | thai | 0.79 | 0.85 | 0.82 | 254 | | | | | | | | | | | | | | | | | | - | accuracy | 0.80 | 1199 | | | | | | | | | | | | | | | | | | | | - | macro avg | 0.80 | 0.80 | 0.80 | 1199 | | | | | | | | | | | | | | | | | | - | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | | | | | | | | | | | | | | | | | | + | precision | recall | f1-score | support | | + | ------------ | ------ | -------- | ------- | ---- | + | chinese | 0.73 | 0.71 | 0.72 | 229 | + | indian | 0.91 | 0.93 | 0.92 | 254 | + | japanese | 0.70 | 0.75 | 0.72 | 220 | + | korean | 0.86 | 0.76 | 0.81 | 242 | + | thai | 0.79 | 0.85 | 0.82 | 254 | + | accuracy | 0.80 | 1199 | | | + | macro avg | 0.80 | 0.80 | 0.80 | 1199 | + | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | ## 挑战 From d2750d3979fcaae1cb7b2eac580fc28c7f244b36 Mon Sep 17 00:00:00 2001 From: Ravindranath Sawane <65583665+ravindranath-sawane@users.noreply.github.com> Date: Mon, 2 Aug 2021 21:21:02 +0530 Subject: [PATCH 213/228] notebook.ipynb Cell Deleted --- 2-Regression/1-Tools/solution/notebook.ipynb | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/2-Regression/1-Tools/solution/notebook.ipynb b/2-Regression/1-Tools/solution/notebook.ipynb index e7d80492..b7017624 100644 --- a/2-Regression/1-Tools/solution/notebook.ipynb +++ b/2-Regression/1-Tools/solution/notebook.ipynb @@ -182,13 +182,6 @@ "plt.plot(X_test, y_pred, color='blue', linewidth=3)\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ] -} \ No newline at end of file +} From cc50d72f6a5d8661270f3620955c9914f4ee2fe2 Mon Sep 17 00:00:00 2001 From: KAN Date: Tue, 3 Aug 2021 02:10:40 +0800 Subject: [PATCH 214/228] Refine the translation --- 5-Clustering/1-Visualize/translations/README.zh-cn.md | 11 ++++++----- 5-Clustering/translations/README.zh-cn.md | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/5-Clustering/1-Visualize/translations/README.zh-cn.md b/5-Clustering/1-Visualize/translations/README.zh-cn.md index 1697e9c4..ef6c25fe 100644 --- a/5-Clustering/1-Visualize/translations/README.zh-cn.md +++ b/5-Clustering/1-Visualize/translations/README.zh-cn.md @@ -9,7 +9,7 @@ [聚类](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124)对于数据探索非常有用。让我们看看它是否有助于发现尼日利亚观众消费音乐的趋势和模式。 -✅花一点时间思考聚类的用途。在现实生活中,每当你有一堆衣服需要整理家人的衣服时,就会发生聚类🧦👕👖🩲. 在数据科学中,聚类用于在尝试分析用户的偏好或确定任何未标记数据集的特征。在某种程度上,聚类有助于理解杂乱的状态,就像一个袜子抽屉。 +✅花一点时间思考聚类的用途。在现实生活中,每当你有一堆衣服需要整理家人的衣服时,就会发生聚类🧦👕👖🩲. 在数据科学中,聚类用于在尝试分析用户的偏好或确定任何未标记数据集的特征。在某种程度上,聚类有助于理解杂乱的状态,就像是一个袜子抽屉。 [![Introduction to ML](https://img.youtube.com/vi/esmzYhuFnds/0.jpg)](https://youtu.be/esmzYhuFnds "Introduction to Clustering") @@ -29,7 +29,7 @@ ## 聚类入门 -[Scikit-learn 提供了大量](https://scikit-learn.org/stable/modules/clustering.html)的方法来执行聚类。您选择的类型将取决于您的用例。根据文档,每种方法都有不同的好处。以下是 Scikit-learn 支持的方法及其适当用例的简化表: +[Scikit-learn ](https://scikit-learn.org/stable/modules/clustering.html)提供了大量的方法来执行聚类。您选择的类型将取决于您的用例。根据文档,每种方法都有不同的好处。以下是 Scikit-learn 支持的方法及其适当用例的简化表: | 方法名称 | 用例 | | ---------------------------- | -------------------------------------------------- | @@ -41,7 +41,7 @@ | Agglomerative clustering | 许多,受约束的,非欧几里得距离,转导的 | | DBSCAN | 非平面几何,不均匀聚类,转导的 | | OPTICS | 不平坦的几何形状,具有可变密度的不均匀聚类,转导的 | -| Gaussian mixtures | 平面几何,感应的 | +| Gaussian mixtures | 平面几何,归纳的 | | BIRCH | 具有异常值的大型数据集,归纳的 | > 🎓我们如何创建聚类与我们如何将数据点收集到组中有很大关系。让我们分析一些词汇: @@ -63,7 +63,7 @@ > > 🎓 ['距离'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) > -> 聚类由它们的距离矩阵定义,例如点之间的距离。这个距离可以通过几种方式来测量。欧几里得聚类由点值的平均值定义,并包含“质心”或中心点。因此,距离是通过到该质心的距离来测量的。非欧式距离指的是“聚类心”,即离其他点最近的点。聚类心又可以用各种方式定义。 +> 聚类由它们的距离矩阵定义,例如点之间的距离。这个距离可以通过几种方式来测量。欧几里得聚类由点值的平均值定义,并包含“质心”或中心点。因此,距离是通过到该质心的距离来测量的。非欧式距离指的是“聚类中心”,即离其他点最近的点。聚类中心又可以用各种方式定义。 > > 🎓 ['约束'](https://wikipedia.org/wiki/Constrained_clustering) > @@ -232,7 +232,7 @@ 请注意,当顶级流派被描述为“缺失”时,这意味着 Spotify 没有对其进行分类,所以让我们避免它。 -1. 通过过滤掉丢失的数据避免 +1. 通过过滤掉丢失的数据来避免 ```python df = df[df['artist_top_genre'] != 'Missing'] @@ -335,3 +335,4 @@ [研究用于聚类的其他可视化](./assignment.zh-cn.md) +转导 diff --git a/5-Clustering/translations/README.zh-cn.md b/5-Clustering/translations/README.zh-cn.md index 88d29623..7f05082b 100644 --- a/5-Clustering/translations/README.zh-cn.md +++ b/5-Clustering/translations/README.zh-cn.md @@ -2,7 +2,7 @@ 聚类(clustering)是一项机器学习任务,用于寻找类似对象并将他们分成不同的组(这些组称做“聚类”(cluster))。聚类与其它机器学习方法的不同之处在于聚类是自动进行的。事实上,我们可以说它是监督学习的对立面。 -## 区域性话题: 尼日利亚观众音乐品味的聚类模型🎧 +## 本节主题: 尼日利亚观众音乐品味的聚类模型🎧 尼日利亚多样化的观众有着多样化的音乐品味。使用从Spotify上抓取的数据(受到[本文](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)的启发),让我们看看尼日利亚流行的一些音乐。这个数据集包括关于各种歌曲的舞蹈性、声学、响度、言语、流行度和活力的分数。从这些数据中发现一些模式(pattern)会是很有趣的事情! From 0c4db64fc84becc69073f40c72f8065817ac788a Mon Sep 17 00:00:00 2001 From: Ravindranath Sawane <65583665+ravindranath-sawane@users.noreply.github.com> Date: Tue, 3 Aug 2021 09:32:29 +0530 Subject: [PATCH 215/228] New Scatterplot adding according to new code Changes made in the code for new Scatterplot please check --- 2-Regression/1-Tools/images/scatterplot.png | Bin 289640 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 2-Regression/1-Tools/images/scatterplot.png diff --git a/2-Regression/1-Tools/images/scatterplot.png b/2-Regression/1-Tools/images/scatterplot.png deleted file mode 100644 index ba9f1610c7d17168ecdd058c04fd2b97f3a29caa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 289640 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 Date: Tue, 3 Aug 2021 09:32:54 +0530 Subject: [PATCH 216/228] Add files via upload --- 2-Regression/1-Tools/images/scatterplot.png | Bin 0 -> 16143 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 2-Regression/1-Tools/images/scatterplot.png diff --git a/2-Regression/1-Tools/images/scatterplot.png b/2-Regression/1-Tools/images/scatterplot.png new file mode 100644 index 0000000000000000000000000000000000000000..446529a587bcc2d9f5d2bb19aeed57cc75263404 GIT binary patch literal 16143 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%0DLpsg0vrv^vdN!>^Y6r_m_Gy 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 OfsUpDv|iou`TqjHRY6Vw literal 0 HcmV?d00001 From 9d26c547f8e58f027b1d85b43be8057e9d53d021 Mon Sep 17 00:00:00 2001 From: Ravindranath Sawane <65583665+ravindranath-sawane@users.noreply.github.com> Date: Tue, 3 Aug 2021 09:33:15 +0530 Subject: [PATCH 217/228] Update README.md --- 2-Regression/1-Tools/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/2-Regression/1-Tools/README.md b/2-Regression/1-Tools/README.md index 2bd3f7f2..69986fba 100644 --- a/2-Regression/1-Tools/README.md +++ b/2-Regression/1-Tools/README.md @@ -183,6 +183,9 @@ In a new code cell, load the diabetes dataset by calling `load_diabetes()`. The ```python plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) + plt.xlabel('Scaled BMIs') + plt.ylabel('Disease Progression') + plt.title('A Graph Plot Showing Diabetes Progression Against BMI') plt.show() ``` From d5a71438efdb1895bc13c15ae5267b7b5e12ab3e Mon Sep 17 00:00:00 2001 From: RyanXin Date: Tue, 3 Aug 2021 16:02:52 +0800 Subject: [PATCH 218/228] Fix minor typos. --- 2-Regression/4-Logistic/README.md | 2 +- 3-Web-App/1-Web-App/README.md | 2 +- 4-Classification/README.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/2-Regression/4-Logistic/README.md b/2-Regression/4-Logistic/README.md index 62697103..a2a938a7 100644 --- a/2-Regression/4-Logistic/README.md +++ b/2-Regression/4-Logistic/README.md @@ -140,7 +140,7 @@ Now that we have an idea of the relationship between the binary categories of co > **🧮 Show Me The Math** > -> Remember how linear regression often used ordinary least squares to arrive at a value? Logistic regression relies on the concept of 'maximum likelihood' using [sigmoid functions](https://wikipedia.org/wiki/Sigmoid_function). A 'Sigmoid Function' on a plot looks like an 'S' shape. It takes a value and maps it to somewhere between 0 and 1. Its curve is also called a 'logistic curve'. Its formula looks like thus: +> Remember how linear regression often used ordinary least squares to arrive at a value? Logistic regression relies on the concept of 'maximum likelihood' using [sigmoid functions](https://wikipedia.org/wiki/Sigmoid_function). A 'Sigmoid Function' on a plot looks like an 'S' shape. It takes a value and maps it to somewhere between 0 and 1. Its curve is also called a 'logistic curve'. Its formula looks like this: > > ![logistic function](images/sigmoid.png) > diff --git a/3-Web-App/1-Web-App/README.md b/3-Web-App/1-Web-App/README.md index c4b406fa..2e409e78 100644 --- a/3-Web-App/1-Web-App/README.md +++ b/3-Web-App/1-Web-App/README.md @@ -199,7 +199,7 @@ Now you can build a Flask app to call your model and return similar results, but 2. Create **index.html** in _templates_ directory. 3. Create **styles.css** in _static/css_ directory. -1. Build out the _styles.css__ file with a few styles: +1. Build out the _styles.css_ file with a few styles: ```css body { diff --git a/4-Classification/README.md b/4-Classification/README.md index f6133aa1..73d83beb 100644 --- a/4-Classification/README.md +++ b/4-Classification/README.md @@ -8,7 +8,7 @@ In Asia and India, food traditions are extremely diverse, and very delicious! Le ## What you will learn -In this section, you will build on the skills you learned in the first part of this curriculum all about regressionn to learn about other classifiers you can use that will help you learn about your data. +In this section, you will build on the skills you learned in the first part of this curriculum all about regression to learn about other classifiers you can use that will help you learn about your data. > There are useful low-code tools that can help you learn about working with classification models. Try [Azure ML for this task](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-15963-cxa) From 0ca90cc26988282b72c60043d9aacab2ec53393c Mon Sep 17 00:00:00 2001 From: Jay Patel <59785863+jaypatel31@users.noreply.github.com> Date: Tue, 3 Aug 2021 19:10:11 +0530 Subject: [PATCH 219/228] Feature Explanation Rectified --- 1-Introduction/4-techniques-of-ML/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/1-Introduction/4-techniques-of-ML/README.md b/1-Introduction/4-techniques-of-ML/README.md index b29c7b18..70b96000 100644 --- a/1-Introduction/4-techniques-of-ML/README.md +++ b/1-Introduction/4-techniques-of-ML/README.md @@ -40,9 +40,13 @@ To be able to answer your question with any kind of certainty, you need a good a ✅ After collecting and processing your data, take a moment to see if its shape will allow you to address your intended question. It may be that the data will not perform well in your given task, as we discover in our [Clustering](../../5-Clustering/1-Visualize/README.md) lessons! -### Selecting your feature variable +### Features and Target + +A [feature](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) is a measurable property of your data. In many datasets it is expressed as a column heading like 'date' 'size' or 'color'. Your feature variable, usually represented as `X` in code, represent the input variable which will be used to train model. -A [feature](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) is a measurable property of your data. In many datasets it is expressed as a column heading like 'date' 'size' or 'color'. Your feature variable, usually represented as `y` in code, represents the answer to the question you are trying to ask of your data: in December, what **color** pumpkins will be cheapest? in San Francisco, what neighborhoods will have the best real estate **price**? +A target is a thing you are trying to predict. Target usually represented as `y` in code, represents the answer to the question you are trying to ask of your data: in December, what **color** pumpkins will be cheapest? in San Francisco, what neighborhoods will have the best real estate **price**? Sometimes target is also referred as label attribute. + +### Selecting your feature variable 🎓 **Feature Selection and Feature Extraction** How do you know which variable to choose when building a model? You'll probably go through a process of feature selection or feature extraction to choose the right variables for the most performant model. They're not the same thing, however: "Feature extraction creates new features from functions of the original features, whereas feature selection returns a subset of the features." ([source](https://wikipedia.org/wiki/Feature_selection)) @@ -68,7 +72,7 @@ Depending on your question and the nature of your data, you will choose a method ### Train a model -Armed with your training data, you are ready to 'fit' it to create a model. You will notice that in many ML libraries you will find the code 'model.fit' - it is at this time that you send in your data as an array of values (usually 'X') and a feature variable (usually 'y'). +Armed with your training data, you are ready to 'fit' it to create a model. You will notice that in many ML libraries you will find the code 'model.fit' - it is at this time that you send in your feature variable as an array of values (usually 'X') and a target variable (usually 'y'). ### Evaluate the model From 2cb01b28428f4bf1c1e76ce18323662dbb1f47a7 Mon Sep 17 00:00:00 2001 From: LAKSHAY AGGARWAL <48948478+LakshayAggarwal25@users.noreply.github.com> Date: Tue, 3 Aug 2021 19:36:40 +0530 Subject: [PATCH 220/228] Updated table visualization Updated table visualization for output table on line number 298 --- 7-TimeSeries/2-ARIMA/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/7-TimeSeries/2-ARIMA/README.md b/7-TimeSeries/2-ARIMA/README.md index d54a781b..97d0c49a 100644 --- a/7-TimeSeries/2-ARIMA/README.md +++ b/7-TimeSeries/2-ARIMA/README.md @@ -295,7 +295,7 @@ Walk-forward validation is the gold standard of time series model evaluation and eval_df.head() ``` - ```output + Output | | | timestamp | h | prediction | actual | | --- | ---------- | --------- | --- | ---------- | -------- | | 0 | 2014-12-30 | 00:00:00 | t+1 | 3,008.74 | 3,023.00 | @@ -303,7 +303,7 @@ Walk-forward validation is the gold standard of time series model evaluation and | 2 | 2014-12-30 | 02:00:00 | t+1 | 2,900.17 | 2,899.00 | | 3 | 2014-12-30 | 03:00:00 | t+1 | 2,917.69 | 2,886.00 | | 4 | 2014-12-30 | 04:00:00 | t+1 | 2,946.99 | 2,963.00 | - ``` + Observe the hourly data's prediction, compared to the actual load. How accurate is this? From b3e586ca809c6dcdeb8ad4ee9e69ba772527c4a0 Mon Sep 17 00:00:00 2001 From: Jen Looper Date: Tue, 3 Aug 2021 10:55:02 -0400 Subject: [PATCH 221/228] adding Learn path for intro mod --- 1-Introduction/1-intro-to-ML/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/1-Introduction/1-intro-to-ML/README.md b/1-Introduction/1-intro-to-ML/README.md index e18a0036..db1c72b1 100644 --- a/1-Introduction/1-intro-to-ML/README.md +++ b/1-Introduction/1-intro-to-ML/README.md @@ -102,6 +102,8 @@ Sketch, on paper or using an online app like [Excalidraw](https://excalidraw.com To learn more about how you can work with ML algorithms in the cloud, follow this [Learning Path](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-15963-cxa). +Take a [Learning Path](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-15963-cxa) about the basics of ML. + ## Assignment [Get up and running](assignment.md) From 986d4df906ee7c272d3999b6674f05588172b71d Mon Sep 17 00:00:00 2001 From: KAN Date: Tue, 3 Aug 2021 23:19:03 +0800 Subject: [PATCH 222/228] Remove unnecessary word --- 5-Clustering/1-Visualize/translations/README.zh-cn.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/5-Clustering/1-Visualize/translations/README.zh-cn.md b/5-Clustering/1-Visualize/translations/README.zh-cn.md index ef6c25fe..5f41ffa7 100644 --- a/5-Clustering/1-Visualize/translations/README.zh-cn.md +++ b/5-Clustering/1-Visualize/translations/README.zh-cn.md @@ -334,5 +334,3 @@ ## 作业 [研究用于聚类的其他可视化](./assignment.zh-cn.md) - -转导 From 84a5ff41586b690de3aa6d85a096745d90aa3e58 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 4 Aug 2021 12:02:37 +0300 Subject: [PATCH 223/228] Add artwork for lesson 07 --- 2-Regression/3-Linear/images/janitor.jpg | Bin 0 -> 894138 bytes 2-Regression/3-Linear/images/recipes.png | Bin 0 -> 6600506 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 2-Regression/3-Linear/images/janitor.jpg create mode 100644 2-Regression/3-Linear/images/recipes.png diff --git a/2-Regression/3-Linear/images/janitor.jpg b/2-Regression/3-Linear/images/janitor.jpg new file mode 100644 index 0000000000000000000000000000000000000000..93e6f011c5fa0c0303dfc059cd2d87f3508c5b75 GIT binary patch literal 894138 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£Sbl@^hMJm6r03&kh`N_+`>f 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 yW`a)mXZL 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 z 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

q~*NT+`ekWHGBB8-9 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 z´4_zY9Y_3Uij2M9vyt!DL^mPw1s^>|~ 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 z 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%0D&c`L}RINxj=|yUy)}HC!TSw zRBt+8h*DM@o;BngJH(GBU>sqCt6<{;6QO z{f*0{(K^z5uAdO2fA;pT7^~_c{;PBQ&+KLaH;aboz6bR^li6@V}6n;QCeMS{iYin<_JP#pt$&P~?dq4OgjRX4VG}1MHs8b&GQX}A>|6^k&Edp>jRP&=7%}@RYP|tTfB6r5; znJK<_=p7ulDzEi7|JT1_?j9j8t_475q?)Y%RBjd~d?o{RB=~-jTOEQsf2F@GW@0+d zwpD%oGv}YKNdZ>6x_!$_3!7spwyx9(#L{}|F8%=OoAR>jlC4;f8wx5N(k7rR{RDh( z=bcPJwR>CQ8u6qs<{zE7yX4L!vB34C;j3fNQ{lA70HVTYimpxqv4$qu?8;t>uxRk< z9xS5_DC1r`G~Cl{Heti~{4suCHw68t5ZL8J*JvLzJi;$Z$Db(p<;oAX^8zj(kke{f zxW`UH4_oH+J0Ipm`Pcj!3g;OK%8l30HbnCax^850gh?#pCwF@Fqf)kf(wy>{uf*go_fz=+4UX0xS?x4;aYw@{{o+4P9{~?IU*e%vX7l1dE_QBsZk$eZ z$;A^(_p9K4-!3Bu@!#a6(e5vBt1%zAl$8h1a&YUaQM;>j$)2k*0AT^@rz-GZ#AP|1X38JtYKDczrSQ z4Orwzkdas=@xZGxv~XaYdmN!aFt2%s7{Q*$Un9-`^n3W8R|xohYnNVUwmxC)aY8qf zn8fZti7UyeqTB}gP?5W`zYo*@i4-jR3qa6xdW=)zx~V?Qy}a3u7)`id+4*?PAm&+@ z3b@}Sbpm2usNp!qAmeKW@m};#Rn=XsnW(W!->|vm`77}n?17xp`k5$N6gt6n83~Yh&f*{4ze(6c#E>%l1OB=&-mmk}a zu#`j@+wl2g)zJlQkVx|stulc#*r7+t+GpgJWO#f}U~{h3Z(c$^OJyY;N&Ac99#?@I z=c-i3ocd_$?F#T);+D}$jDo5ZLk~%PsAImUP=>P2h2u}*W`xXDXVC996wAt!NrWho zbpjupEP?JgJa;fOA_c-~#9_UB1ZGcb%Sy_c(mJzAcgXQr%;@fD^ykzBu`m0paV#p4LTx=~ktGdFIjk@4+8mBu`gNRMYH^N!RPC0_t{)afbP!3g0 z6>9myD_FA22BPRJ){m&=6YOpE5`o1tyP3T!^U@|N4kxsJB)x{+m$~&YIFY4_1arC6 zCG$=^P6M;XWYAKYm@BNe>K2QWdc6_y@a@TD-7Xkd0`c^S1n1~seF{XZw0V_CoHO$A)La` zWDu5yd>^KQ5U_K4)AYWW=gobxv79+gQH#arTaTy?&?EAduCKlvG(vq%{fqZ6*58K1 zH&v_d(k4-fgFGTKeH)x|;(`5lQK*wE0FzQl4l~eaq%D3pRCsvBH@4VWC+d~tCQ?E{ za)2Cl4C5T03a1=0Ut>9?v#i}>gqFaqqsaD1dX`R-ia&8~YFJuH!%&2!Fvrpj=c#Kj@ zsMy*T?C!t=y}toB7{{Su&ilx#tV(p@*nyf!L8@(sAlXmkStDf@<4VFin$2E!R*?wM z+o5ado#C&Y7Q7q&Iq1mZhpHZ?S1P?p|C3Z__G@V3O^Z7bX>R(_*9?g%l08qza6GsA zqw+P4PtF~epkP^Ng+Z7-uSSC9?2^9R@UzC9qnpTXtASPe>o4-Wf6v@@bErz6e)DeJ zHKYhpj%}9y{DQ)~a$|<4jI)~4HixsLAS%udZWm*@@=Z##Q9&YUMpr4aFJzvm`Mp4e zznK2UNVgJ3MVF2~+;Jrp*Gx=jJGzrKHX|p0`LE6Q)Pn4!2w4|Vy~f?c2hZNb{e7D= z6XnhtdU6FCYLnFe+t}J@Z)_Zp!@3`S>CUL~hN@Rc=Lts`=(kDeuRpxsGb*%^<)Vv; z`7h~lt}==$rT+nx+`Kcyo0;uCk$x4W@ypA^hH^UF%R+M&__CZsUX{p^hf+gD&(lSX zOW{Ziwfz1RzL5EXm!CgdFRM8{zem+;SlYLt z>@6so*KuqC3jn<_SfM1muOVLhsGY6m_};osA9j3^MnLeQw3u~EPmM9X@e zlZ*`yZ#aE2Px`tYg`w5;NZd~%^@>u;3Wi9Rd6_I?GkGM%J(4J9X+d!`5nbzrN#Nd` z@ZI>guMKq3)_L0g12!$s}vu#+uF>|%8s)|q$UQfi)H1lS*IDSXC#bt4CA z-WVy~Ka{d6H3f@zkFk~q1|@VA_*28_>A7S%OX><+K{g?~0R+O%4eI^*BH!9N0C(dF zQ(`QfyZ%r#$>l!)J`F7u%&h?mru$?Yvfa>k+k-@5%Fy}|%zgFgiHr{8!a#~ocEAUS z2uALn1PdejMvSTZt9~;bAJ%1$N^XjhVJK$9~5ppm3EHf7> z>B&-$wjQyn=wE`1n;WfmVKPnCZC5c_0GSriw4Ni;yx5BPsHS#3656dE!%e9Ci)?eV zHH*=IEA-*#5%`RW@~BXLC9|}V?2A;mK!65V1I{v$Ukv7K-Hi8#8W#3dWP4n`ejgrO zwdYvAn>~``MuVU}0yo2D(ys^eD?1h0E`0t!icxbnx* z#@|e|c$D4+Kg)oJbZfSfek3N;g4cP_t98b1QWZA8Y}Im08sSasgXN;TZmeHc4u!+6 zsxmWJsa4*?Ju#`0{!G-5y_tLQWEl_nmP)Q{=uwuPs^NLVgJXh18F z4CYDY-0D@ZH})-_Zs-@vUDnm_O|nsL{bm!*f*k)6`xbS+jDN7gd`hb?<|_25L??&a z7eY`29x!`=H_jb~tmVY(tlRxEmy(cCvI1afgt7VXA12$G=)^K{YCGyjPWajxHf@RF z*671D8z~j$L>>5!1$6cPy}#9}jj=wTf9lR4HdTG!9Rn2^xq?alt^ZKW(97_2ku|~n zt`o8=s4z&YfL$V_KR#R!vVbDDC|aa`6XJ{0!HQX2ciT*tB1>k+?PlsS^7v9l;$CYO zrOf_Qk6w`eFnO}b*xbNbYMm2_ej29n7M31j>DZpRL1Nj84r^Iv^kM&aUtp2tFn!L) zqGowlv5X*^^5;n96+Ix0^{KBo%297#mR_?6O&oixAae}PiJmF_+Qx#)2590_qINJq zd(}%ag}oo_5WyPxG?V>f|>)?@&+iyd%GG ziE}e`_7JZpHicol^CS3Zo7h~c2y4$fmYog5Ed6iN*A`{ZG8BfvOFj%mBF{yQnC(W5 zO{H=8DZg7RUE`Zw&)Ru(BAazK2(5zUU!bc2^+v}Y=y9xBGXgkwUtjsd5QDXE#vo(K z*`Q9JC+`Y`A57e8NGZGbFVnHzFI|e}!=Fh)R&wZnzVQ&Gg+y*G3Xn3a!Y^?SC6k4F zwc})_s-IRx1&Sg>1{#5QkbczH~=60Zyg!> zRFq9ZhJvk$YIj;BZWoGqggcNjNDNGF&s3+9Ag+(Ia$~v&_qE18OgzNjDh4JjoZ%mZ zh0O>&nuBHke*Sx~lJ2+3HlzK=m&1znxET#67$k`S7Odv78pLbzi7PFsWz6H4D4sTH z6aVq|um24R|w+iC5r2PgL+HTz%9wRr`g9mTa_N( z5gumv^9a5~b7_Y)jk^}ail%L-!kTo;B{S_p>(vcXbaZ+HxBjJoQ{6|XjDjUfAH>7T zj53X)DS>T-MJ&G5Tubv~wdLolPywd=6_*B%D@i+k=8OkAj%)!nfD8w%xp9XoW?MbPel+4DS- zS;l=s1l<}!9d6ePBlPg*vbHl#B&eED8#CUnvcxsXJIy;dyD>!I*txyvNc&jG3ytvq z0L7(eDpo_fk^CBL&BoYY2;U$|I(y-rzoJqT^yoK#Jp~HeCil+VWZAI7PSTQvYfO>l zSrAxb$L{3a5?cEwpgo{xuzbLPZAzd#ZPaQ^o-F~85vq7?$#&%rU z6N1}~2B$}o#c-m}Mewi3Ao8!W3PHq#vm&lAf$Xu@<^CeQ&jo#*8Cz`2?}}60Wn4R< z`-;je=7*MeRh0s_h^9bg@?DmNDP~5Pz)DF`WcjL+x^SI{EBu+`lQHyY*bNelD-{a# z>KZ0+?A9~R9&=?_HMnqovW-hKQ1R1ja|;&)HZH-14J>rVkGh$4ACRHkaTuH`SHGsp z&IgK}5qwB+=sJ1s&)fYz$8E3}%cijhf-SAnw81*@L39#pqvu@yWl@D^_y#1-B36d(8=S3oV1*ARt)0Qo4=#NcNp~ENBJjXWAn~>guKH zRWnUmOJJe3UO1c!dqXS%gsAI4VFgDXY6_Gr!@PAbQt4Xp1@FB;Llw5q(-ke0Xy2G1 zuHUg6sH8Alx2lbU-1j<&w8!Ep5n)UWeo}`hcgw`8po#Y-zacLk&Yh-G9hoh?hYX`SL9h8 znNwgej($;o7cq0|d< zUb9YRLIp~7?HmQG-wa8p1ECTMoQ>SQ3mC3?LO8sX=3m9Cx_On=2uz;vtZ*Xq?p(Kx zmxII@qw3RP)F~<;n!D+gVv{LOvy4S@=q*FeAYg*QgVDqHF|4l+WwfxYBFoDIh$K0K zk0(-)R05>S7p%grTNe+r3?9}+I_US0g`)zOmD?7}a@!o1U=qSnz}_D*EntVfB1yec zh-xGeamvsaWN&2NIj;jy&N~+DY=2SXkYZl}Z4AL>U9=B3%i?3B=h$a_drHeq2C(Iy zf-f=$Z(NtmN?}S@DRZeRz^E`{>WAIbu#F4B+5vR254=7{k!a3o@ht79C~PSB4aG|F zKX?>5&F=h0?`RBTtA^vGH4UIr7%760Xigop7iw`0y79ZKDSt2t7Us=vF6}dcUL!M6 z6)-WfGiw^J?r;d-5g3JFRu`fi1Yy~y;#%Yy&dze5L6mU$i0PLl-^>7ei?doXk31`YoJB(EDt3_Rf@#tL5(XJ{^1u(}gpiCbH3da8sFDhxr+56u?Pl0bs|JWbI69OP z&}y$0m|^|FLjpBt^SV`jB1|(Wg>Vy-!gzuyatBQ__l1=>Ck}`6F+ZVAzoTvi7JdD280~5hC|f;hDS!4ctQ1WOpzK z-JN~m6eX&~=2fQGV5c3$0m`tivgH~JuEORoWoTixf{<$CP-g(tQDaSjed6^r0`0cC zm)$IV$yEjw1K^fJ%1XY`H8iXgO48>m2~LN!xj?UP5y2C%gDv|d=rl7smAt|RbIH_I zYl%XOGP6k;MvcM(_(X81-EkadUSKyVEZZnBscCPClO@bD!^Es$ec|A819+CtN};=q zFez@_M!3O-_Y6umaO;(v_P#D9$v*=s2*!@(!?NiH2NR4 z(s#IPK%p3O(G-JGfV3?F5b1PasZ30b!u3i`@Pp-Q7nn?V4}v%V#=9Y|T^WQ-G*oSE z=~E6-<1)s~)efPr{{SGlaq^8Dl$!utyy#r}g5uc<;w^O)vlxKs4PhQ88Q9)Cm*HV+ zgyIfY0>+cLymbVjtbU+W7%n;HUg%K0j%6$^wfsydCRVp*pq@;Q4L0vS4r8l=*vrqfA$XQ`M2uH3O~Ds*4;drY7F)?4g>rIA6xu499wnCz7SUrd0?3zn zR*s2A1RGp%ttR&&FLD<#SeQbQ4c2}p_6_K`BM1CUN(M=F66GNQY;lWyMP`S(my+^E zttr*l5~wT6+(w|L0IKQc(gqQmjK)E+O(fQK$Ey5^l@nAJg5Rl8Gd_l^bN$$6%rChm|kEBEm7{1`^-R8 zM*$;PXUWMbE_^rxpM;9h0O4;;OO-1NdwT@7B@J?{41pB#ui_==$PLBXLk1wRaqm!e zA`M@Y`GyS%^5Om_lGu5b9t+}K>1d}d@WU?&Oi}(S7F3FGgyfxDP~8njU7P*ODoBG| zwf7?@oS^|C+%Q;lYKE#Oft6Lh7sMJw!|TL#=ZQlIscG>vg9yZ@ljC$)ZUm@^mB{Ka zVk3TFk8tYmznN}O3YtHV63(;|wpxEMkQZ!6^I>=M0-Lp4D8xDRYA;Dz90TY7}! zD74~S)fI*TuI|+b_#DMciHaNG;$@1Nw8E8Swhw7XVoh;eM7358^3)Y8szY{0Xkma` z4UuAlxG7)&3WJ)kQM5ULMReBD=t7r6s5rPb%a7c}0>G@IhY4h&+flhtEE>d6aLeHq zh0)wiK`K0li1?PY)b6`Dmbrk?bTCO`Z01<#YL>SwuG8#^nc%ySs0>BQ;yfi%_#ec2 z-B0kk{7ac9 z>0vZsus2a?&=Gd?1p!CHla7Np2bi)u(6#3j! zq!w*Xu3@5uC`u4VyBm)HYei?wpmVoX2H{T55?}T?ziE`XFnhz6IZZN~Sp{Vt{0gk1{y1>)#DJE<*!O2KtaKe=2xUmIso}M6@qMQz$P036s zY#_MIu(G&`RnaUQF;>Qxm2&Y6T*9s55e-`Z0P-xVpJcAVLWXeyW?Xk2LYuT2;Nm!5 zskQ(zB_7h(L0}>@@A8E~fyovo>p+=>EugmQ{i76tO5p#!N55!W+Vir7eGD0k<1Av)I0?<-2mv+NgMTlDo<443VQfmSb z#adF`Vjxvs0TdPXiQ@*j@=c1vPndPnGvI#63EGqHzv>Sk26>cvfp`v~!G;6DFM9L5 z8&rNG1k@L^WJ-vg$lq~tf*Q50;N*kgDh5oYQrR| zpsOGRS>167LP=D;UgRZZ8zzzjZobIGT%aGcIIeFC=8tJYU4z0mCWfLZyp!1*25ul_(PL#0Kaw zc)Ehpk*hRHhG_%1gr>pcnUM_xrI{&ZRLTLfP(%PrT5%ANt8TjSGzCgu0S%*n2<4xj zFo~_AiU+l3P!a(7N2v@eitf zf&i`{1>*ULE>gIy#!wZuS*9yHMO;Wz14{J`VPW@%BdeYzC>GLgQfi#Q9ESwlVzP%( z1G#h^z!Fh-fwM^AA~hq>=#;Ed;>-gph?7htu&JYDLS5I0LmM-<^#HU-CZbtX7#MY# z3XDT^;MIAAYYssy%_|=9<5h9dnmUG%w~GG&@r#!jNz6f6+#10#xE-ue*<3h?2wO}T zHHC+A`p0>cB?Y(!&5%0csY@gsB52_jrR*+Bu4Cao**X6J-)W<>Mlf^#08s+)QX3$I z-CL#;g1Cy=TWHDi9TK9Fy>D|ePgdrK4f6yd*x$XurlZi~xFvz6!tUZ8(dc zOF`U3+4uC@bt#K0e5xl7iuTK&Xh|$f5-Sy9j2?`0Wd|kk6e2_$uIt5Ix{;us0qBhgIAZ3tETK@o5D=<{FAoD6I%ohoLLYjc66O780 z2&qz~O7+Y;hunXnWnxxp+8%HDgl1?4{Js4tWkAC)DYR+$ue`J>#f5)pg5vu#ej#cS zytqe-m&A5>e0YhjrUwF#%sLUk4ZdS|DO}%h6-f=^hd(eH2|>yVeq#zLg%@mf6nug# zAz8YXT=9cXnAWTSPMp`nF~vgYT3PubgAiT0nrjOh!7S(+nqmujHdDWk)OTw9VV(vf zHUjfhTxd#@-MG1dZWR<-HZIri5s)hkejvc#X&g{N-WbR)gz*c87(xV`SILGM7BpT9 za7t#IwKZ$_K4D3Ni0Y1N8UtLT8_!^{tw$dgYHru?MlLnZYFl9G=4Zu=P|!8+0}>bR zjEk!5V&GHV2qM$88d0Hdy8KIGP*bMAa^@VYH33RIMsYtMNy)dklO3Is#p(-z%?Gqpc@jfFHn+hqj@=A(S3k4oMrhK$mKg48Z z$eL1y2K_kb=DWnID?)&7BXw>QGP`yeWi4`|27Ua%*cJ{<$I-_fOtN%P;OPxoy*fNZ zXijK^hld2MWVuYNH^|joY4QS(FL7aLv4Da&>^!)bg|i*Os?}FgygQ?e#PF9V5!#M( zzcZEyQ<5}-3^I_VHkI;{&2R0KiC}j$z|&RSvo&AzL3*=o-g%77hc0RX==3IU-V3=U zx0+aqZ^f;^D04@CAsbE9HT}y5qV*`T1A-5nz`t zO|f$qxrHmEaT%e=_uO5{7P{kA3KdMzjCTNz3BFn2;HH3ztt1rUb5c!I^%AW`XIYs8 zaMT4@GvgBU*-~`>3l|Gu$o5rXo|gbbY?C>4m+2H7v_O@k=rl4Z+X{T z#1SpOhGdI~HdkZ|Ehcp;ATf)tG2SfbGCk$C1BAADh(Z9Q?3g5w0^f;RQnYjL7{RA0 zXl4HZ(15zc6x;$E*{F+F8sjpN8-Q8zbqXsfw)1!KFXkL27jbim45yY*gr!Vb{Nh$v z4nX$e3BZmc=i*hII5KOv7l;CAh1fY?_bGKMUjqLCm;f^@UjtBejzD(BM`{tyP9v(U z+GehXRH%h;;uhpdqBl~CH%z^oF8)6bn6==Br$_dP%#nCSm1)s|He4zxqMF=&qUc*V zfL>gKE6wv15U)3)FUNCq@g2Y*(4C)qmkt1&DT@z?Q!jjOBY>wrGnPZzy`@JK*)P%q zgK!LZ7-cmDdl{%e^M}p#D>_5>h+LgrT)aC}JTNj6rn!Y(!?1X=&c!U3qU{=3!5CLH zd4_lzmi5a-RD@H3e~8ZxHu2dhB?Sjgkd+m~ZEncTu|l{Koz3W7W+LcQ1w@=={{Y%B zN&f(nLWTu7ifwr#T$7x05iUlGKQh4vhYvBE3EiE_-Wj?CdX|Nr?5V;t*p7>)u%e+` z3)AHga0O!S^9b=7I03^dkwZq{iC8X;&EMgTpD?*WLp(MyY^PDR=41h#%Izyp5df9( zEUm0WV$u6Tha(c;5m^Y}G8TKqS)po;O#C6M<|d#>yB2xopxJ;;jYb#>FaR(xXGehG zf#kitPZ(@><-fAtUmjk#zE7REFx!?SxAKk&wu_Sa^?Cd+!DbqCq#YX zSZM`erPGZ?2xty&D}gUvAg&GoCOpn#r5nXS7s97h!PT7jPk;3fp+-$xTZz#HZFJ(i zz*QS>@haFB`GGDu9&;9*0m*Q0+|mt@hTsk#5TR9!IDj`(H{vL_h#7p!RZ!BgD0qq}#7Zb8 z#=23Q1oq0Q)g@8(_X%F4!D{2mXf zl*tc{m3);d4;<=%sf>b{ZyxnAz~VM5h=U?%VO5qy^vp#1p}x# zAO1|0a$3p>7`&auVujOJ4l3G#tEpTHRr!aF`+AiPj1i2F_KTkh9G1;ZX^^9LV%^z8b!T9v24L|nIg`m^WstXqfS|C z&Lfo==`I9s6grFmO-gYpn)iPGBLge;jsOc7isoP+?qO6)Ym=ztq&aF1xRkVvvLb}# z9NDp5d_~YHe$Wa;pqVNTp)eW);~Yf`Dak7=54jA5{{T|F`4>dUL2W{Sh`_Fwei$A_ zWC{rSP!*y<1!lFUQ7yEq9wE@Gam)e;v}+7imhIDujfhm0s2yR>mko4VLoLHg0d$K{ zrm9=*K?9jX<{|!4A4&=XA1q?fT!E>c=s5^nlskJs+(j+B_KtuAv4_N@tSPlqxwXr5 z=Hblikw~niS9Q2lNUorZ%v(vK*+HRu_Y~j;g;+#9^@kM;ZgOzH5SH4q+q2$OSz5|3 za24K{*#r+n-k&p=5Ljwj0?WQ0A`VuNZ^zm&0jd5`jb0VUnm zgH|&fTSi zX_tzk>bqsJ$!eY=1&8@@GGj(m{Z&>M%-d;!vYF3e+))iCOH0OxAT# z4r8PXIR+DOHoCr|1CZe*c29mFno227<0ML;@)+5u?Era3fmmkc6Ek84GXk)G_)W`~ z5!^wx3s^S*DBpr|pA#?2w7ppun!gZ9N~p45QyGjpa6{Ef*3Z9j>fCi_G3;!NLM>8X68x&xRI(|8 zjI;Iz*fyH^s8QQ3N?#Cc@Zw#RjkH&DbZ-lKlq~`nQd0Gz`L?n-PQ6zI*y;rz}|R` zjN3#SSlM+kx>A7EZ@>MhGUh@ws~UXygT^pS(8telt+1x`eE$HTT~tKbzOGwA?o_E! zB|w(jl5(klney_l-ONbji&ZFw$k(`j{{Ya{X_#uRFT%%CVsTu4ZTx?Ns(O8cL*Gx# zJkbacRXdi3gd;S;t8aoXylZUfQ)?)!1~Rng_J#)TpD5)U9kmYfb9)RwnLt-pJp*uN zE5aN_I`@Xmj)(^jr%{1cHkh(axir6fj5Bv$=z&TwjMNo?aeI|&cpD8Tk`DWe9H8*R zo^_KZNA(dE!l3iS@HYVpFaTKZsJ%gW=?;?|=ZThWqmmG2Cc2huX>yjYFFx>3a|cYQ z1tr+rwerbPgkeY!PA^O_%IulMyMoQ+fdGav<1;J?i*VmBbEF*-_3eh*z+m>2i;e<8 zsMiJXjEy{++$M8mx^1iurKa!rhR+SKTh#+~+cLm|$yKRt3v*BnKJub+aSTHzut!Wv zo2WLRrChisVD3&lLC~rQIy2@7Xd-Tk&FXLq+6Zgy9Kb2u1_5V?hzhP^E$?y4gxJ+E zu<0=+ULm7?W{Tgm1eR%<+yv$(?zxm&8{8eXg-#P8ml=T3hym1G(qXnb^9WjHjtR;D z2!0}W4T3)s;Ji#m3U^QvrQEZiX4*hRuYynkL5W&hV%oKEOw!}gPh_nbLts+o zF4bHWsCe+%d_>xz!c;jmPwryh%BZU-7TW!g1lklXDs0kPsYfVmigY294t?e-QKu$Ib(GK?%slW=j!9lf(B1hYCSpF(ngZ}`Xmb8>)5kt^L z-7f>1i%DifQk(*kgZYD%TdLSM3JY}^r+)IWN@H9LJV(T(Ah;QKvH65EN>cUucE^ zhA{3hm5ynN#|03XYN67=4M4{x{{V>Co{wVM-@!Ge^%AbO_lRpKq{J$;O14NCEYLi` zv~XBgn)}LwL!w*>TBC^4wN~mHMqZ<>DC@as_<)y7%4M#Y6xc!Sp%D`DIVG(CsaB%y zIjUCfhFRh#LEJ@ftYnhXv0eMaZYlwh=2o&g3_P%^ipbmM2AWq1%rw_D*)vgaRb0$4 z5wkd{W|w29iBhw2jVNLvQl)VlEF$Jra~e=p0N|G{Tt{-JFkI#hOc)`Kbr=JP;AX9% z)l7iePitU??i8n2X5epO1qm`Z3m#a+8u7BnHQpi^6;!~t4SPiK3lwSqm?c)YtM`}e zycY7pVz5A0R}Nj{a+*Obl>}YJ*REg$s~Di61vW*YDrPS*@MXp37AzKBvg_1yAH3&4 z;-P}cVU)G4`nZ%5?#3fw;?WjNmY7POwK*Au^VALD#5MIA=!SvbrxLS%x=lSAIkBD~ z{{X4M0j9y!ahTf1n;BuHemxMwd23;H#mDKfMy-|q0K1iJU<9_4R~?DGTA1zz_~(%F zWQG?a2>h?wS{r8mIAV~uf_9Mq05!0+AGYP$F2<90_8_}j+IgBRgX&nGctFSIBxY@{ zWl7Y2Sb(WwwzPkt&0qoIqY<(37XJW&MOFRSAJiN(^%UvYeW2v=6xzHV@Y*tp@NX-5 z!OXwnxd3mo%PO-`7jSD=K7Bl}PnZO=jf!L9RaNPNplrC3g+%486&>tyM7lTpMzElB z7H#HQ9gdhQ+4htRk>HJ>4k#TxlAvw%PH5sZ1+#W>3>POeL!*WOil+R*GSw7R-%|dj zP!8;dfxG5dvX$)%1>CZzZ@9IQ2UyH1L@$6h1~ly}i`3JLfGL8?m3I-km^j1+vO+zC zuMnn*lqtk=x{aG-6~w7Ws0mVtgDdD2DG$1232j z6{4?*Bms=>pwt1i=Ax8rDg4R|BPE}BKw6#CxInV3Twg?K2@33w&^6C0g9t;t;_|=R&fbp&v**e-W7`VH07>kJu{6M7olp#6{Q_oztlpM6Ni~Y zoS8}?o8mfJ>NQ%`uHcos6|rMv#B$taN)A>UIZbkw+_JEIM|6Q!MdF~oUj(W|a_}6N z4Rs7a`R$GjFeZG(p+)%v$pf&Cl)fSY4hXzdVBI;mH6>Q1s)(brK9v$ws2+hTrDj+l z1+cd-V6bBl#Ffw$s$b$@2u@Z#*xAjX8K&yB1qyg~?93+{Yca4&=6Szv{DS?%u&V@TwU&|u;= z>rgwA0JIP(o_K=teqmZu5Xqde#^*_9bT=?5prx-e^@t}25|uf&47oe%P*#zmpbN|Z zjhJA9feaPswE;kFa=H#*5LiKYj_%t30PH#(5yCW;l39!Zp=Tds(K~>W6mi3ZIf-^b zR=ugoGLmI8nuR?nTuxV-mt+tW-=+OEKIvg_9J-3*d`m3ps0gl357f+No?K6L%X0(RT6v+W#q z3BY}t;#?E7uQq28rbex4cUQf?xoSKV>{`uy`iLAB^1rCqrb3rxM^yG*Epbr2e!(h> zmH8#3L~2-FSBO95Lg`{U6?GY4CD@V6a3#^--%y205M9tp8omf}0AE2lpST&8Q%|vd-g~rlSyk&epyi5 zqu@Toc_T%aPqcqM410au^#)W^1Ey)9qIKpde|8cUg;UOB)&p#u#x}NjU``OTjB-vg zVejn)J^|FDQyV*k$}yKw$_gG*u@(c%%n-ZUg|~uO6%Yz4{q8uV`)#eyWPXwc>1CQw zCiOAz6<;veSaaM!6vDuUe!7(^R87_7E&dy2sEt)u^gzHM3IbFc1=3LYiC}~_4*bmX zJRkMQ#j5=EK(>b{O8)?n++RSJp$eF03`2Fgn@L~++UhYHC3l{gWx#^;cLV_&#?yi% zRVGT3HH#yqth)J%et_Fm8i2P}-poXgfDQ)UWpCUa|}1G=1QgYE_3RHjJGqKej!TnZo4V` zdNdZ$9LnlrETakbnRca1@YgHUqeU8YE$_quNdRXsgoc9H;Rk46@N?TDa^!nY~}M*u=AMpAzIO6}47h zV^Ik$@QbyWw|GhjA|BC}bP99Ud5__CH1mg|Q|SY>mcbx;#r(_pu{tZSy}_k8t-);* zP% zt2>3Hd+(4%27mDF}{;eaP8O!{34^R8;};Z1}p2;{$@oQQcR^_!tt_^#RurSVu7_ zl2)v7SU?I1!?~Zlr*VQRRHx>u{3^zDxN)MoLv0muwt@@g4xy#Nzs?RZ3oy zd_jd)gB2fjDpvSD&>RakX=+?$!@=Q)`Cvy+w8cmk2J&|^QM7QfRFJ%aR6uCYMT+~& zjJ0mcY8E0bcH$qPITLB(Wd%KkC+Fd4OLy<8CD1@2k?&Z0 zOKI#MmL&y~Cgc900F@L>-lcKX8W^t-5CE>c&73cpmy|1J%9jB3{uERz9HC(q%dh;= z#1lg{fWUneK(A4kE;b?xDGgF=%nsSgv;9JX0c$ZfC!aypy~Eo?Zx@&Re&Wh^Hw+rg zLg+IcWc5P*{h;naL|}W5>>J}peqvL51{`@uA(Vm`4E^&TA&^^KO&?`ni3}=hC36+5 zxik2J*n%n?!En})1RCgE`IS&*TaUaC0u@Vd!2ybNl#ol?6LFDaRD*Tm5w5gaR;5EZ zg$l)=n7gqHD!SAFFJwpYQ4$96vqPVsN1KIjC6+zr9XhLJ z<>ugsV+a)%tiv`_kVewJ#7XT7(%=t_{CXQE5P%p^9O-Jc4J#40g;UnEaRF9?EOd(^ z6djNBhy$Qe&+Q4H%dT17LElhY7A*Ic-F@*yU&JDsN`}R(=eMI5D~ zxq^|@x~jrV$cv#>{o)8!5kY=)sjdjE5BDq=Eus9zAW>*;5DwRho$UycZLc5c8%bXx z>~=6rT-c+kZ|x|uQ;=xX9um1){v`)A%LCnK@f$j>h_2U{{52U^i2_uqQl)?R)e?@S zF6%K8m8nRJV{^orP!%*OY|9!KFpBQ`%+}{wV%h`pMKB@-O`*yvJi-iy(}9Qt+GS;q zrib1SP$-tCMb%2_hBF2GL|hj1I#;|DQk2bvTDIgM(otj#u-G!T{B;804qhO$ve4!8 z6SM^ZsPq$MY|H^G&NCeYTTU(`Ws7SaWmE;~X$wOf+`W}%#s+FdNaTstG*zT14W}4O z*uZ_g1NSQ~ikm}M4%a3ISPbzu-mMxR67m4B zrT+le7z#cQmvYk9BY$!U6@c(}n0fNz&^xFjyDQ%-1}16;A9;{1VDkaaWnoS^g1Nu( zUOHggZKv2{mOxiu^q1Dx2(1INFKoOa4`LE@{eW8QYmwXO(O1Q$iZz zAi{f07k~Xd6Yri;YM`&1h$beCsMXoTu)s%SBnDBn5Wxbju-hb=Ka>i`EWVsppx+)U97a@{-hZU1l?*GgJ{x}$n`drYEBf>)+r@J?8+@EVp{laj zmR8$0xS<8c5K{jD*0eU>{L6B#?JZB{1I!y5HIRXaNaSrLeU`aj@tb#~EJ@R5%JW@9 zbGE~M_C*;o%PXd(@FMZj1&epZN|3Ka%^OyQ_L`Kl5q9$i5GW20{{T>_L`x9h%rKd7 zZ*sx>M3$YPAT`Cu0@G?S8Bn$r00~nXh0}mYpv@jCC=82YfvVuG#SMx@Xs4DqfC{I5 zz%sXdTHH`w@}lIIEm1G;Qr?Cqpi0At;_8Mz%tYHA zN-2v*CIPW9aNI7uLrNi95QtP{I^qOHQRXyfs;{_m=8ID&3aGyq<~}Z^2(l;ANM+>q zj)!c?>hTV_>lVk2Xp{=S0vzIy@b-XEGh?}vXVrB;H+Rb{z1qPfiKbv@|W7(y!_j!&H z3;=30xFbse(W6rNtoY1g8nu59P9d)SFm4;=aTS03i+F&jT@tX8P+G6-j!MyjHTK*& znkz!u{fTp40-nf!mC$ON124WTsWn$*L3+ZCeaN9v9MO^&F=z%MWGXN8B4ir_E${yT z)~JX|o+4L*EZlnQF}i>~%Wm>YFAJ{ zWbJy)*u112*DP)4Mk-y%9w2D|;mLBGg5bep4jbJO*%Yo@JM3mCL57Gk3cSN`WJ)Y< z3@XJsbFySrb+#{xHU>x=p+p6XBd>ZxSzamy*Eui6{{T~lS$Bc)jV0Er@1hDM17;(F z!mP6nh}qbrG*6g7?*VUmi)!Fn0nphV4lIzTS|(cHcsj{i1kPjDnU%U90 za4EK%fP2e-A3;O49JY@uK48e!>K(ph0MECpk-+I`Xy=oyqhg?-`x1F@LMGvq8e zh=vy5mz)0pD>MLFyhRaCe6stjJj9LV$FZ;Ynfo%^R*>jEB~Y-#cM~xYXz?xqwsDr? z?}=s#4KPTc<#Z+eR#lgGsaet&J6^O4x2y!9Y=0k3oDZooN0U zawH0D%wVX8u|9=P(eCRH;#`!XQvfd>jDf@5a36Tou7}HUXab?EEkA}3A20LjRjfJ# zZ!i|!g0v4Wv*;SxyRJj;uanZT!QgGbikVkrot$Ul{RNa=#nL-G%b28TrpDuaV{c`e zeyXo6DZB8`ac~0mc*V>wO5Ck|n?Bx#h`PNA`=|o}T&kND^PV7+LdBn{y08^7op41F zXk>FQ1Sx>AHirELfV+-Xi#??UWhW|9&pwDHAdd_NlHV5l_w~L3T`SuN+Y$0Ohys+U z)+14^CT!DR3{mTpEYf9l$uL03ZV0VbAOX}&;#dx}O3kymeZb@uq%=ZQ-$=De7gc$N zNmpfJ6h8n%dItOtY>x4 za=0k}01xJ1xCMXbTun%b!{GV?An|QqaQ#O_RAF}vU%afwv-*POH8Kvx0`rnID61!o zxcKw{X#&;@{M@;vETpzxha?)+kybv7GRiY8YPgq=Mif=T_XI~5GFM^mRUC0y4Qc9Z zh&RfGr`Up1D^}^Jt3U_&T*A(mnwRHM8g&fzJFnmTO@W|Q=$SIuqM^4j07&qU4Qir8 z6AeJq(hbd4^l`uLV73+&viAi58)>^Pzo>^;2x7;QZfRWto7A{RG-Y}!SwU%b_b%ma z&@)b=RaB3&{YDJ}j9+rIhzx#pw9rRedJ>1?RsByBc=&_7t6+5*IUK8N7}0LWgRrv4o9q>8VfV%U<0>ZH}BsG@iIw}}z03JK4T>YZ>4UX>b?e!D7B9hO*1&AW%Rw#$5L0ZEkLK~nSk%V69)S3}-O=K-9|6V?#a5MpQ@JBNXG8>xsB+dnY^E1+X&Rb(t1t`9Q+Cdo=A zB2Nmg1)vRf_{D15(X^!3Biw@p0^^nDjQy9_6O*5m6RZ+%C-j z0H9{|u(5&%IR2DC=W-tqA%zYf2cm)-kICePC{<+-PcMioJzQ_MFfHgF8aCG~2AgF< z@Pn0>7Hw-g;`eQcQjI#5kiO-yYCB$({yk8urEFleUTzIvgv3$%zi*^z407n`;PS=0 zCLynsZ`z=(Hc+`V(0=%o-%`gX894Gk5WB&91IhJgO3!aW+RK+9WgA7E0RZhfg?2wL z{6^x!q!3|rZBDrPn4qXFV@e!VKG2m2e%K;IS5#r>NUJn`plp}Hhc^zW#I)h}lpV#j zSB&lk8#Vb0gAQ!c`f=|n1P^2?^B<8@3cB}=Koo{Zj34K4b16}4Oc0+7QlojZa4F#| zTdl(IT;9z;xIhM$$FSi0L+2O(po>@teIjTzx|``vE+PI2#n|)jEiZ|CcYN{onP#eQ zFHdZSJn1ta&E;t?n0ssX8$E$II(V9Oeh~2oWTKD9OGOE^oAc0}Yw>u57`5ehs zHote#1Vpjixa2$Xy0{qP%BuIoPBt#fT^t^$B_N(+fD5!4fCT^^Kg`!NJbpd$1C!bl zXiOJW`Ivtu9l^I&-fPqCDq1;)&@fwC%v~dJbOnGkUVSJ4qV}il6(e{|Q~;{LO=qvf zvx(MiFY^|+E#3j0`@e`b5DQwTyueMcveXJc{sK#sL`Tj8h07L;PNG;$*<`eVZX!n- z1H=Udr;g>BDqmOTcF-WWe!_z7EkSC|h5#}v3_sKUcC8kYP1r8sf{#W>sy0}+i?|-{ zU;wJ0cdBR`bZj^BESM7l=qr$Vf1jWo8A1p^3!+Y9h zF*cgHmAKHx?c&U};IG%!Nr6^QL3lrN8;l~^#ryvN#8h&q7Z?SEi%OK?9OH<7BAV

>OUHiDMyX#VAgWoryW(V)A| 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�v3r7@#T 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 V|OLBXqvQ5BvgWLhIYXy5e%aNnH3ARokPZHZ#8 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�@beu0t0oO>mUvA9gR* zq0tRpVEp1zja)+mFF3X+Cz$jK^gEAPS>MDV9%tQ*jbJ^8By8SGpJ)bPF>AINbec~^ zYB!Ixw}K`F2G*ciX=au|J)$dq)O+(23UWLNWfLbOQ1_@0c^m)>N)~#aZLw4J1nXb! z7pQ<2cbR4-VK#_G;sQ$-DmN7XfE;KdBXtiEj@85>60;n~vl*Ge)W|?8kc##EA4(}^ zU9Fj0E(*NM;X}M;2PG#tswy9kJ&}~@e-goDrX#4VV%UopE>W2idBndZAwyb-ckiD@ z$7O}o1B9{;T;EWzM1Xkxv>RNt#mvSSrEe6xHN?5LxJ@_Q1H`;{0FWvk-N3^RH`G88 z&t1#163VxXOvSk91BAZ(Ze2*;u=CU2U+7}q1fVcc{^GK$3?#EkU^TX8@lVDT1iV-98pWdj>noZk@}K=GNdfI+B`(PA2fmg*RDc&3Vh z;Gincc!sdw1#{vcx^^6LA)ob)NPyZCk?$A&3b!yCzDMIy@4-n?e0i>7y^;k(-sL{r zf**F_%tgEMKS)z8wpwlddKf8M6SaSzSM5#3(}nz8Ls>lJ953EeJ_Ht%4{f36{o|3C z7Hglx14s&+b#-_6gqIClRK1h2q8`$tv`-gB#!X;LtD=i&dR)JOdic;tX}QJ4Wuv?_f9DCn_!zih|m(*O<^k zuiexfNJPeb%!H`WR#F*NF$~9ScvoqlZn}BIJvffjn!Nl&F&szaIPRmh*=@bTAk}>> z99m&38LNR$lZb*uN_R-yfWn>YGgR(6=^C< z6!F9yAp@@Y^DCnKJwjo7G95-`a|Po&LRCEiUN7@ICzt@%c=nZoPchft4Gmq&@$CyM zX{BE|H!2>{s~4}BPXNM;Xm*@?K&@bbfxG_zzcUUhbW9=gr$;<4N9~}ij_d!7^AC{*ta^I zKdPG32_Fr>*%H~U(EAX;;Yc}_9a1V$N^YHdMu?EENaw3GTIv~S8C)+%QklUI0d)d! zRppo43#0o?0V$Vg0{&V)9%9E$S&|CYYJ=dFkpwSXzlbGW)-gcZ^%9zK2r0rrn+qA# z8={j?O&O+>s1s!qJxhkd9>!EvgLyp1hY={IVO&fW5#q53%}Ws!!ecI01HL9HAs_Rq zw*3|9h*iW;(b29FE>oW~l*74gHA2;OFllX56PE!EKVd8du!aW=$Q{`gPg%3U8Pts5@#ZHz@Ll z$k-{=TSXpafL(-569$q2LwkVhJSX;y0D$8#CM-1caE_-_n_)!pytIhuHaX`JE{~Wf z+s*Ho@mSr}`W9LmVInh!%gnUa?5ib_w8ko>HH&59I8;%x4qpn5BcKFZ1p>)jMHj_O znz4f_3=KYGsj+KMi0I*1quN}c_x#C`ajenr0ptLMNoh^a9NTjltu6TUpeqf3FjH2{ zR6-rRDmDaHS%q-nGa%MaJ;tH6eJw+l&c_osBBo46m|pJ-nU{)S{X`3ji>5Ey3@{SL zKl3tyFHD`rJMvicHW@t4!dx7jnBTNSkU0iT8DA|?<_Y}z3K@k4s}5eqckk93+eb{kWU?3nv1muDRR0IUK{D@{Dd33aL<zAUZQFAVTyEu*Ivl0~UQXD{OW|)50+)Umvbtr?z9X<#RWoIDJAq&wI)qlN zaLSzHLivCys+D}p14B?0J%@1DXHoPD+1v%16TCn$Mm31t0@enY1HCME#Ek%)#1UF= z3_&_@GJ!-eBwE)2lgx3Y;^sSSE(H!kC47CL7ggMp#WOP)d&Y5eGYjqL%7J#~(M!{2)s2Y$i;pdOy z39M#d>;C{Q9oVuVtT(E=^HV`P1v9r|3#6C5k*|i#^Blh}wtn6<5EiHra(*mc&v9q~GKLmX4J-}Rsv^p9 z3j8jj;<+tc77-TWD786ag+SwM5suX7G1v{MTz6L*WlD1>ArAQ^^PCEm?k zvlC<>Ee))1ihPlxIB_W0c#Cbjn2(uvxpQZBUf?C5$ApUrS|u;$BDceh#Dgis3aoZZ z5HO+{cH#S&V@2*7#hWh)h}1xjTNu_#PG+&_Za?HJnC~Cp&r*|wxGf=R+1wg$n5ni@ zm!-tTpyS(zF$rZfl!<8X(8WS&7!(ycf2m0{$H^SkkQFj%h#ZFC4WpPymf0!|3sakj z3t?;;%k3FWvcWJ{zpSAYv#1I=K_XQnxTtnHpD&~8x4{zC!G4>9jgt$jiCgL_wzm3; zHbpj{pGC?^OnSAI0laEiM9}_yA5yO@97fXH_w;_Mg6=!^Ih4i{X@36HOCE1@4`a-8 zzf&nsBc>foUSP;>ioq=%8V|a@I$Z4eIJM))WNS2 z{Q4Vy4B#+ygGkLv0!#~@&LM^`i2F5idIG~BSLR%a1W8Mgn*3(5A3#@6 ziCb2$(#FsQ)k_KFP#iDw<)LgIClPjdv33 zxV>x0X{W{`4x1g@I6)s(X?()u4FUe*0W4@>US-lJ9)xyg8FEHtiqPSjAUmh#HHlwE z!RkCOHU5|aok7wW5Z}Bi-@)@3i8D_NikSph|3#}ULV&3I!2 zco*EZR@(j8)3#Uj20*g##s5 zdw75sb1xLY$>wG#jQqtw4VTOfHI2#vYuPH1rRF;o@Xs(54pKdum5(qY5OGmlFHw`x zxE*yL+~vVw)UbkRVV8k><&L5~pn}zYd4}oCG|-1948{mOp70eiO4sIG42aqR-p4gP@3oBK*tv#Cb*kDj7)TXRz$tg0dHrJ0vqft;9v zG}Hw$I^q#D#KsJWZjPZa3NFZ4a&plVOJYQ%a4TY3Wj)P9fxydI%)V<$lW>($ zypIh<+B`?XJ_xUSl`9M&Y&gGo95qhE!Z{JrC5*V*a+1F>$dKK?q5u(v0|`d7Ruj1H z-Y_wBjHY5J9uDqN0Ce&(l=gCJ22>U`xo*Y4T=I#YbJvQrO^(p^}8#UXL(PHmrLQScye6oJ#TB z6;9XU0vqvjZdtsG1|&_UFM#SMW(^nd0)mz}R2)n`EhU$MkmA=}aszbax3`7TdN7Yjwzbgs5zd#z522o6o7eLNjWDztdEJlRHW~ zI**hp%#pAS@e-F1BeGR&XIu6eCmnGXJ2wQBf?MG_k`0aD-mmheJ^2nGw= z2$sRc!XeN4rD)iQlvkK85iWqonWNkN8DVQh0UF>{_waf6gl#%&{pc8*MOp_h#7e7K zD5$W0Tb0X zTTu2u+(@BpQy>bsb~P5N5)u>vR`(CfpetxST+|vMjSqB6P)`uHY5Y!rY6!fZB^9RA znO&S3m7GM*ev&iJiZy;=6QHl~Z|4whGoh+eC$++8`$jhf<4C8K{qA1p3b}}?DZ_E0 z7e!<{gsm#=w$7pw*|zIaiGr(TY9Uym;wxhrE@uI@qiRkXV6I|o%2%6K=ayPLd6vSb zi(i;EjWXsD;1k)h@4dWGbIH{6ayr(eu8BxMK{AONnSQM1MsIDss=rb>FlQqeVdtt!+&*F7u=zi3xLdO@c6?sciI)obxl%@l4A4|o=tvS5EPK~aw-JVjE-Q-^w-yG`?$ zE(}Xznr8Ee0%)RM8E^Z9U}EspYg=v03>4{@Y@muLXv^V*fDCb05@ePgM0S+;H@rhL zR-Qeguh3RoLz#z+Sy`Dw;1ih1RRtB(r#|-=8X6aj{{ZqDFTjjBB^-qx=Hd0$Cm%q< z%2z$lZGSK>Itr#!Wf2#0jd}ZeV!64>57Xn*pF#rc&k~$~146zcPOfb+6%T%n+IIzD z&h;Mk&Z6JcN)nLPZUwYVd$DN>hfS%$1GL9+En2?*m8pDQBjcNeFGmnc3VQhTL`xFo zsV@&6v?y5>7X$(3JUx8?Fp&nwn#3q^HTn1YZdHf8=(s&ClsG$;ju?w?y9XCrTH!md z9z6#Y-_VuGDn^#gZeGJ)fo3=&{{Wl{396%UF>mBE5F)Ns<{`W>PXtm3U_NR6>u$?N}Sk=3Ko!P{%Y2Y8oexK>(87Tw1uS zH=d$|G^40yu5n(J0Sus5_*6E>Xb)EbSa{4Axr@|5Z?^8B0@%(qa`tGn!>RrNs0j<` zRKl(e-#E9rm*aC1VDRxBpxNAK5U@_-%v{SMMx0z_8g~V3(611x8(>AzbK%k0lI>Vj4fuy)%ra zrcae2Wi^VX3QP^nG(Plyy%=#7QIX1dgt8-TCG6MDOAj!?EZFeT2Fv;qS1{4V#Oy%v z6k8BenClK5)GmryPGeqjV>0TdmqX9AR8U%HxWd%F&`YtX2~l6BX8ch|-7ICJ&zMr#krYu3FiyVzIWf;#NE* zZ|Dn#2JV#%;7PaD66E(5dDIk-A@N@)dDqa|zFDFqg$pMQ7&4Os9D zB+Z({?j|DA2L!=6+;e0@Lh-n)(_=(g!oj(dbqf%ftu)v1DMAe*Ve!YE@!YNeEZ<$qolh&9D*;B<6JmwV z-H z>W#UJ1i(Yd#wKSHg00lI1Td5)*O(I08e2Gh;w5QApuOKR(q|QMY$PGguPinsy3We( z;K3qMxSy#{=VI4!CF3m(%5kRhl zKp@*R%qE)#)qrfrI2a_jP?|>67Nllf#h8>LVkCKGz5Gd0zg>1ZK!5&cHO6lq} zC^kdak6i2`>bD5e#DUy*%`B8%pqJwdz@#xlRCB0ZCb6rYPf*{{!4Qi}FfPyy!p<1j zSDGLd6)G&Iwv{S9%Q)I@0!IQkfN0=thSwdTmJG8@c6 z!tE}?R&8ou5O_5ok$dszkzq5Ju~$`f+aAynT@RZ1hN?~L4aQxHxRyoYBe5Bs%%_NJ z6n06)pdW z-=*Ll&bfZZ@vvaEom9@515K^{E7 zD6R(hhjfE~$NH6|j;0Ncyx@lVkF*x={UbRJ`_h&lXlJsoTV=O!hZIA;UzYy>-csY+ z!*(&s4Nk3E16zs?z|<>P4RNnA8q(|reBO60RIA)omdK>05y53H<17r<6)e_qC|OII zhbeJe5v(`F*=SS(SY9CoseF=xs_}4>Qna@Kg4Ax~CEA)MW%0$pBCx4yuorg_lC9^M zd56kc5}=EJ03$NeU|Uv+z&=QKlV;(g(acJ<%rD@jnW#FH1#JmlCUrU>hip0Et;0dc zm?5lcUZ^c05|!O<0j1}%RHQ_iH3@P|LMg-oXQ&&4_*y&6)BGo!2~bkf{yB$mWIP=q znSd-JmG+0(OKHr&9rPz^-?<7V_CH|)E8n+Nr znuy^zi05*LEe;Qu3|1n-ub9VzuFJ{9N9Zb}r~V!wYny83pk<(|7+8h1I5BPML;*3GQ8q{UtJP9kZl!AxK zKp}#)q&=m#jM;mFi&s-P0IV>bR4(|gDU%Wc=~{=5&h;rIiqxSQd8ipoIqq>L+(V)~ zN0!Rj;D=LH-noF#VnKtrH32!OlUJQIj&n{-eb>E(%fIkU) z%Z{N~wz~Vup4|TcrAjtismG@kaPtGKDX(5*eD&!;$UZ$08yRhbEvoJ{cyG|*I(4~* zTMK}?a)_%b%&7Kt3_erLLhy5n%tgNblX`%%@Q`qembUdN%XCn~HuBZtAe74qIgAX^ z2+kcC*Jr3J&CTAT{zG~fxl#&bFqq-cB`N@{ihYj}Y9f)?`e+O6Mr|&iKmeia^p6u{pd4H;w)f6l@dzO)#h!}n>(ItYdAO#9!LJaiZtstxvJ(r9 zRxj3yQPU9LKi~?1mBA=zfI*wAz}P?**uJRH+ZbdDvYEaccd;jdFXO>fao;wHhx&QNmP z5D9dU4OW!87`vVVTD$wkOby!3A$A`)mc!X|M$aUuS)f53N)>?Q+z5(*9|-Oq0dW*7 z5(w$Ptyz=Ivb$;*SJZSuuFxQmm{V~Asky{fMZO+CE|?9dNr29@k7Qsj-z)MTsMZT! z<5!4oH&u9>5z%eh>TrUga3SKEfF+6V3}yh>Tm&j8^6F$@R5nG>C4$NykM!$8$6Zpw zse?{6DME~VpV0pRr2x<$?`~kD8s(rDP%_h10m+P{JP8C*L)A*nhd7q2PGtljP9mxX zUSU|pt1-+=((@Ju5GYmDEEe$tLXBmKRJ`0$)1EtohU)xBaAV67c3-q9 zk~~6WUL_zo>u^g}W(^d(i#!}>h!)I9u9?Jj1KTpR8C}Ju4>2uF#H&VJN)oKW-JtOU zH{gUiRG~)hP%8#S1$&8h^8`|fMIUGhFz4C`B^+)X?8g-a7?qlgHmR142^0Yl2HN2! zQW{}=Lto*_EDi3ts27$i1@pCLxrh|Vx;a+v2&`9dji97UqLn`ISZb#$+)1u2rZDO@ zDNLC?;07K;sA1-bYaPngdy?=$HnrSHG6#@-;Yk6dwCMhz4-$`j?jDGi0)u2Z+*%h7FJ!} zYu;IK=QxIBxEs~X9C1{onPevmpo+V2w~qWmq(rxmiNFJJ>3x%ld_{|J)JRH{j^B8Q zRk*iPINm*6uS5z517fbGdIZHSl}y;JN)By6DZ`^Ou5Ex7S5kyAFF=sOjX)YAjnvI_ zN;;MPpc||lvHgf$XrqpMi9!eokiKP?(MGX@u6Nv^$ctIry=va_=eU>~-xCGiey1;` zVp~ACFntuiS-6E-uWv<2C|guSrkP(rTSnqjHGR*BW;KeO%nB&eSxvU{0gwRIc+2Rn zoQ|$06b1_Sh%^gLXYoEjFt+ayyOemlq!VxrD|hsOgFvP>bBI7XyvmVnHroVs^kNR7 zW}30_=vC)Zh6zbCbnNXs8!T`@j+{L&oK~u5`Cpfknn3w=EI$Z{jmrL=%GXJTib#W&*TjfxI&G zSHJZDJHC+pd_rqtEhAjwJ7b2k=$JhHA|T=11!xu`G?gg(H2_2@=49txN58BKS_|xF z_?o|DJ7R@stMxTq`*AMvO1|YS85QCpgHGAh%ZW^M*2AjwHis@CP$_9uuMzOKYRtxk z?)r&|a$v4GVgCS;hXrOH>cHCR1L#PmVdDWYLYc2`y>DjM>aqePO1Q#-Leb-Pg2wi-7VPl%7$| zvek8mn0Z2WJRZqZtyt9Tc^HxIMNz-yJqdKCiL;r4JjDt)GYQ3P8DjDj);AM2YfHJ( zQ*b5KDVgRZr;PhVs0CA&hJ`#b*ti6y~C4NK_Y z8!XS+GZbXPC|QRLSFmO9L;)EZAXS{=SsTPzPI-yWo+0s-h<@u~Rd(VkyS1ppve?+!pOMcO~v+V@k7=Y2l0p1~? zyuiEIW~BpcHj4?1dWd(Q6E%C|sfj6w8n$PC8I4;mvv3@bb-)`cqH0`Kpe@D57;pzH zf61U575kKbIjC#=K5>IrOgtLf7YiP>sF*XNiSzr6%9TYB-g||cGZS`3EOW7_Y^T~Bac53SivZ8Sj*!v9?UL~ zyZ$`Da|#1IR~d*Z*#dyTj2mk0(y`9rhp7WED9|^}(l{v8QF;cBG0nG`dlIpjZ+>Dr zROn$1jZ6A03CrS9u%tItsdIQxUZV;aY||(19U+p!S>(TBaF9%YrzGxKnPc+--upmO`@-pl4Z*LYVUw z(3kH3sMVD+3{VfuGzB?1`G6=Z4@W7TLj!WU!7NI=LI5}4($HdtLXGiqp=4!t!(azY zVF482O9VIIifY3(}$QO zHe2%XFZ5XXVuq<|%tQfe;yX6cudGFB?e$uj%Jl-`lpJ}BwF=z&3lbzN3+8KMM=t_C zVZg$p1Fs=y#Uqu)!tGiD*znBQTzF&5V`a$o4|i6vP*R#lB)9&8EjfK@Q6p@$_i!GD z(NFy#Tsdf$QL^pev8wDj`^DPNx2<}EYgrVkoDjcqG;PDu_O=1(U;2i&EI{w;;)zLP zT31oDvb3yb5;QE!qal$QH+fX3{Oz^ z=w3ab7C-?({^GSeLls)iVz;lM)y8Et7105O9K5U;0&M+6Y_8qB%!frIsHH4vJsEYm zK}59`wxBfOV7qUslxjHSg>NH5q9+5pl+^&q-=9YS>(Fe9zlmxzeO^9+rUc>4FfV$^4!n zi${bA;U+olR|jXmewYDP?}_sWvZ%FYU4rOq<{MIquc*0$)TFF#VuHOnjwu>t3_M4P zria}L)fEPoZf)wVDnF@_XH$yU{Qxo0Emx((RnZ(bqpLbzCJ?lcO7 zGnK&cFFATXfna$W!504jt{`fQAi+3O@evHsU~}9`nYa_07lTk-8N%VeX|rAu&}jLa z0t5`-x6Dda9v2S;B`dYb5IC$44~QmXP<5n>26Es)!dPEr0K{cZgE2 zlI6=KlE^Kg60)Cpo~aU17H%?%>!?hyT==nB!cE1B#}H~#=r zf8hJO^fNSbm=+LwLyW7Iw|_Qc)KdVcW1LM3)FmSRm++o+%_ z7h}w&z|F!MjpiJ&m(+w>CE4aGw)*G8{CTe6bHqHX0j4&VA}2^9?_uuc^X)H9y$1+5 z7+AqP!U7K?{tVs>PBL}&upKnsgLqu_;kWq1)@#s2`s0zc$VQZqn{Hu>IKs*TVsCljw}m++C0GJ%m}jYTHIk>OWQ5?n6kR=0&uRP zFw2v9;yat(SWK9fS`pASEL!|bgGLGgXd&cOw#`Kp1bdVj7I6y!bWEySqB#y1CSrgi z$niD>hc^>0GZU42M2kY|S+yrI*qgld5V)Jea2QDFl**0WY&!D*#Db`+{{Xm*+VfD? z_><}*VAy4`*;4~qP^|bS(T2vFH$yQDS~jQk1u46Ef-eV6{{Rx?(x6778joRGyNHr^ z7X{g8iCoJTzr-4Q8Sxz;hKe;E4GW|%Fb2Bu3xc4-USJLzIC-um)EMofZ9ZUOr)Ng+aF_anpw_wR zr#;4qo8m*taqTxwmvZX4FIB|H{Z>J(9`cN#P@=9o&^1fs9@7IC1q|X{Fr#^hL2{AJ zlJf~i2QiANEgf7&p?M)TCy`MTSx9F5J!WC`FUcEhip>7yKs2ktFGnRoe((*GC0UM4 zg%Y21Zo4;iTl>aD6Npc1yI=Me2#dQ28-Oj;&|SHXgVA?`5b?6=-@lRifZet%tL+4Z z?+}p{Ma(V%-l1g+X)%&p1rvf@D_FelaVk7Ufj)SdiE}q8hp}A6rp(noVz;*M1WMIR zTpJo<3U0!yxm^kkqcFw>x1w2vLwAU(QYszB*J&)bnM+nz3jqg>P6*URC{e8Dz2M=C zEMkGqb6mk2AorPww76z14~u|?R~Ade!6cMfYTK~mbL zss%>roWT(k(xBWM)@6NChJ`QXA`uOaSn$A947h1`1rg>Ja5+1O0Jy&sHmGhhb)8Oq zO~pVWZwI3rgB+_(=edQ2a-+-j2J&mtkcVt?Y)iErH!q;jn-desTlZh<>$O3e#d7li z8ikg)FR-I`++zS#Y|Z(EA=wusN2H03*Rcq}VW*Abe^m0_G)+{-75iGT38JmY_?hy#U1Bs7nwdNZp z4t&Fm1r*8i9P|<{FU%;moZDn71#Xzs8x0iVp{0VB%7)ykAjAcr;5>}oiay1zi7;Gk)yy+W2{lOV5 z41enWW%L1;^AHKo`YSX>-g$elu80d&XdwIHMfmtJ{{R$BFoRhGJTQy}VyY0p4lnI6 z1mm9Ot3z;Viw?MreNeF4%SZ~M%hU-CX?@dI4Z`AF8BcP7cLQoNJVLQ<<;9~KxKJxj zQkpQu0eS9JMSFRGDlF)hZ@2Sfzsy^8&EU z3Rz%Hhg;--_FCK(wO`D+!jw^%Yy3wjRvaMwFD}yPy`zR9=V z?NaoCEf2IDv?-Wc#2C!5or3Y=Dv3yf=-$1^;_X<{Kh!q?4ekJY8ET=L_#2E?TC(vF z!;U6ofv3!=0C9CwJX~tv8pjPB^C~Q$T82r2isjgXC<3CatBg6g@A(XJSg|+GslOws98(Fw%GzUHiasq39N2!h0 zBO2YRcM}3|BOAPq6{zF9*1XL@e2i>WiE3~lDnz4sf*9Fz)Z+a&8OYCw;|2>?LXX-O zMKER*4KC_j8Cq^LC97|(&kVf)0WXSyKyMCU6|S<-F>_8P&H3tFL4ASI=}j*Le1}!Q z!JNya&P$@DxS*gqcxNA$AeA{djTZY&R~g87xx%Ai;^qdsKe!-Ryb}nJJ>YZ4t7AtC zf@bAQ2~AB%S6Q0Z;wNN>1AZmW%SmiTl(OjY@7%Dw2ZhA6DM~X|ZZs)gOMroqetU;R z62x{v67*a4BQi5r^AuK^3->}>g%fmWt<*9$O1;s9uuwHY%OzPglpMY~|Kjk(6oVE}XchmrZ6LKY{Ov%T21Y@u-SZli&W-3Ml^oa9V;M;x1+@(W=4eNdmgD z#74+rV)D~eNKq4`5RTew1xx1{d>jaKz&~>*i;7x0HBN_*xX?;-*0Gu ziBB_eVAVmlEGF$k4UJYw#aF78V#sCQ2-dsuo4$z_Cs3U5T~R3|gXxh`g1s5A7OQ~n zU;~^hgZ}_77hMVf2i?ayfCdc*-P|T>uJC=c8w6^=vts9t`HnB)%SZG>R??{~=*PF_ z41?%xJ%=#XW*&VJP*oHH{{Sd$x*v+}WvJS}c#*4e>6W$PI$+s<;y^SSP#DL*>M*?+ zwrc5vVEqEUR9~?kMYWsH_z14~&w>7aKjNm@6paqo&zX$ekMp>JBW!q)T%5qDaT)1V0LZe@KT!m_vH5(bV?l{je3doBF+te1A z8aJwpkYEKAC4EJgGB}w~wU%aeX?T_-R}sV*jMIU*tb=lPl#jZx0m>pR0CYW zf^T&RfgvohdShCUR*+s6H#jL#UkTrsO@PZz1H>i;eenRVN^z=$AT7(7fH@puBiF($ zQ7}#oUva1atlHMkiXg~qZP9mF)0@P|OUPsWhaC=M3@W@CjsV)-ZwbwRQ#VM3u>Sx? zzR`A8l+AJXm01q(BIV=*#3;ZvWqm?zHRBpL1%xuki{to#QH>20XM2KgkSme?VjD+P zC*~E-8f&8x;B8+ktrh*n#b(fAm_W|X+xdz-Z6#(mYRYp>ltRMMu@<|6{16R0`RXEp zK`Awe;y_>4(Q1i>#Hq;5(d-~ ziCCR#?uUbkO!2+U#0JB-oeUvaOm;LD=rQSOUbd7E#L9?L7{9c-_sag{Awgsh%mVo;7$U$`P&0D< zrK7tkV*78IZQMrKI^r>?9TPMaf!PD(dBOSa1OV1p+30C(J=pH>#jFRkx?@d`xddQ% zn#Sk4e&klycxF(8b}V}nfCN3|j2jpCAx7IVk25;uG1dsl6hj~83Rrm@$6-dx`DOl^ z8h#iQptF8)2by5{sKL3xGjjON21Bukfl26QH-(fAgYos1JaZhJ@*0_pI^sH&Y+@{c zuB(VCn+96pP9Rwc`~)ESzyxto?q z5TMo*ZAXwLtHcPkZWv~HWM}ooNwl|1AdWPEptMbRFkSKRJ54?8X z0CJ0q@P3I-h^5WHgGaZo5NRMp40KA6T7r%4E`2U@mnl@X3XPV#B9b=eI*cKttV+}> z%kvn9o)O?C8(@a3iq(EVX7NRa0FCxq+g}WAixQw-kIkEw+9lb?a6PVUSa^oOVXc*})Ry2sv76%O3oF-@5GnwxP9Sr8JX;DA6x1qj*i z1#L2f#SY4cnp!Sh{_|*-8sZC0^X$;T+BVLmvYO~nS?;Gx~Z=S zl*Gw6bQ!p&8dM_s!$!3j!-`{cz2VDlh|DWtcO>Oc%2bot*8Fn zUvy5E6|^QWn{#)one1g}ZoK)8(q8oO8p*Kzf>felm6WTd!oL#$;sp!pXjDRu<1B-h zS1KtUoD5E_*$sG`w=ydcjE!RUkxYX82||OrFv20Vc4SISfaBg6l2&CQfwyoMpf&!$ zu^ly?S05~5sCpT${w1MqkZ9c^UP)jU%hq58&stgz>t6A&YiPlIN2IZ>i{|1|v0>w^ z$|p)_rJpdA2Fv(D0f@<1y%oeusc2sl0SI=}{Pide08z!?K4BOLE~5EWfpQS@LuhL; zjUWz_H~#>-lq#iIGTb;@33>{wd4L!0SV4EUPP2(!yDA$l_=#x{@5uSzaH)M*wVq{2 z#cOdFaDYv+)$xIu{(7R1dG3)S)vOkmlSTh+rTfT?u#FI>_Z-_q1}Y9ppxu@LZPxY_E6WKMlA5%KDj!c?tR zJXGY}I92>XO%44Dn|7-ElJ_9x7tBw+SYB7#?c8Gn3ir|OB`LpMe+d(llhqxUSGkU` z^>0HhdJWZH@r;7;PCA2_DO7bRf;x5_#4EVk*A-)M7|d^oQkL-Pj4|PM%(_- zU?@5XSqm?jM}b*|V+l$$b>cH4Q0CWCv-HRrgML^9s0@F&h*wc`8s=bysJMridJe0i zBNf#;V*=PWP7+uwni9>q$ag%|HO$b)pipQkDwMzAG_4l}S_htfAZp31?T;^Vw6G$9 zadz94DPD0H9#)BV?aMQo!CJm z`UZV((1p@fOc7Iz#2n|uS85MvlSP|ot9@xI_{ZJ%_5T1-qpdpH9$ja+n1W$|6ktD@ zOJ@2b`MG1DK-J&|8-pYxorBXdWv6V!;YDMZEDK4KxEHd>_x(#3V9M~Y!H{xG5TFZ{ z+bel=6@u)r~o1jBWTbqK)?u8r&oO%Eh36k{Co9u|hCxM8_)6nTqixGf?6H_03Z=<@aLGoW0GUNiQKfTd%Y7mHsdo&kj%MJUk4m6$?>uA>z& z?;n`(oDK+01P&UX66QFni+PI55#SpoD-&K2WN5=sfHlvSBGOoGR=B7MS7R)4fzhCd zm`EA2;0)dK88Cp(x>xfrc*CMUs3WDE)ddxWE+5~-8qj&mx*T!%xJMS*kQy0)AtZ8* zIIeVkpt97BH(iF9;iN${4^b7>6V!L~_M8OESP3N9;6pLt`DspkxXbk94%*=e=`mTgz*}K40K&+*HHrEwaVU{d6(hGpc{yQm^oX= zaiL{^9uzDB$5ny`!`^P2(q(rJrcqQ|f$uC|nBbTKayP>Pr53kEclR+8)(%ysDl;fs zqmbj~ag>B3&)vs;OQP-xgn0I;L)!XPNGs=RqByU#2>=Fxvo5i`&O%WosxVu|SQ&{G zRSdVlWw~{0xW#o+{$5e;9|oYhZ@~WmxLHT+Uw33E0Ch`8+o%c60K2n5ilow z!3Ftl2-XKgrj8}zy?fEU{Uwx+X7ag&04&xX z$lD%(wS3{cl8yx*Mk%QW%PR}n6jUT~weE#x{wEFH`rF^GhT8GzQ$9^g{w-LXo`3+# zk21GVhKlQmSS{h)Ww)7%-euxFR~mr3urZl&u~ zmKWb~FwHRS(FRKkaC}D)b8T=_W6o}(O)a(98#uheW9{I(?)I_mczSHlg6<6w4@VD% zTk~&G+YhBC09TTWE2io(0NSf7OS*f7ro+$@hDo0astq@~?&f1M1E-Q3AZwUgY1-!y z6;Z6eZciivJwV%l$tZR70=OY%QX90oI)*C0PAUx;Y4s5n3CVtj{Rr49UL{WUW+i4} z_15x%%I(mNS{(;o0wy7{Yw^qR9Lw1yyjs7hV`|k8?MLokTdgo@?-oo&V~&fCTDBKh zW4MHbn>b?)1L8Upjlne#myXt=%AMkNF%kefb$mbt&1CxC3JXaTSKbJ%NpkO>hy`EA zsAFscp>+{ri^#F|DhB{4XzAsIY2{!K__|BDh+Ru-w3kureWrT_cvKtZ;0ceNLT1Y6 z5m8n>MK2k+%fu^ks+$PEm=L#XDeGmZJB3)MJ(Cb4_XL$ws>uMP)J5ecNP^~E+)Lk1 zr3gig;v+IWKovkY+*BPrKr+?t0ttGoM!QRgse8SsADFQ;^_JNy=2UBu?~lY&pgF+c zzr1Qd4&(%Lj-VXABds*E;gwDDZ^lePxfz(86ydzY1H@=>o+a8XME(eYV%+UTGT)o7Ys`L0HYcHq0kpCgm(Z6!2bXu*fJwpjvT{km030z_JkLOhT#B(!-*6^;J@ z>wr~qI5~u4ip0Gu?G&)QD06;((BCzJkt-JVtx96B)IzJqFvF^c38qlU8aZ7;8;5G5 zh(Lf~#W4bnF=qQ=>$n3nr4WmgPWpmUlx1j#2we=t_7=XFh2kn|H=(g(j7z8kxK4Oe znKxqN9Q#4ME{;ZC;3>zMMp|X&7K&jQEZu*x*%^auEkFwsFPT6AC~2%&{{V3jl0+w&T=#fNju%$n#NEY6YqN=t1;vrW1G z0Pitba21O9mx#%wJ}t?=>I@n;72rB*{ia_!hybB0lPqQx!2~sWYT&sSJ%K{FbANc+ zwj?%h1$TdGm|~EKGhKL(9h55;$kiKpfX8-h5~)V`bquzRI4QjE?+=A;dGU*mu&oh* zU9#-?m%!^0S9DcYaS97-7TV2I9ppeM(Vg#@+@+yhxE`goGL40N`%9-BmK2ou%u1w) ztE};uP${Br-|8BzDznQUFrJJY6rOvFds9KY4i$TfXd!4rJe>ak@?KDfh3qtA5%!2T z4TAO!{onU+ zT_L)Iq(yc>IXFi!Mr(QtyU~fQz<&CBLLz}g4#K)1+s~atg4RwYZ@Y1!L2#Z>hS{{Tm0G35zvkuBgwF!e2am11 z0aqqhk20OUN~*tph{!^b%Xe8MCEpdc5Rm8R=PA*-hAFyA#%$D^q@ z%w4Ibg7|+BY(AT0tw(6W7U_$EkWU{~*1{h%^ZJUdt+4A=7YBcOAHSo)j8R$o2=j{z z?1vQuHKB__voz!8Z=QkVCqMCqP_(>2Cig9r^2cju0O4auXaaRTgWMn%r*SNx_d_IA zfYHR%%<8&`+s=}N0%U@oZs6XVyCtfHU1uyRpe{Lz0U$DO%oh%zIh_&gC2W~D12IWY zBNS2S)JBVLB)wg3qs*X+;B)o`?g|T%h+%Okatv3 z@`w&xKE!giE3RT}yFmvEZ>LeX(!Vh(CzP%pm<^F=q;FA$G#_FMv$%?6-xmtvKO@1+ z%BhSW`l5<4RYljHreM9cjH+r0u+h{C#2O^pa}*>|cH8sEiDi@#OgV!WcCgd`0Da?@ z6`v=Fo|Hh+xvrwuaB*|IzdrG#oU@5TM#XkquM*ID-i%f@~1Ez#TAT^C|SSE zsTA%jV~Q~?p=V6hh;n_Ainq}1iI#gnC@SSEs-^I?C39CX(?e-p@;KCK$W~tm`x*&M zDW$&>^cg7=hzYZ7Gc3S&L{${o;$<4ytVPO2drc91N_7lDV*sFq-lDh{?H1V=DG=}- zn%t!KqbkH6CcI!mRlUtwD^^UyOF5{egEeaWN_0weN?p{Wuk@NqMHs7$@5E*Cz#S5* zrU|D;w^3QjYHk;qmFKBJQlz_uYjdc$0QD-O7fbYTD%EjdnRVR6L#vj}M+n=`eapjI zQAg#BsMo2NzQw8~&>SgZWV{Z4!ot9`HxQ-y-vT~JHti0tm{sJM+fmh5_}1M~*Py1F zimksulA>AaB5(Z?HYRmkz>Tp{NWC!e0Lm)pNGQUFIjD(6)AQ(TA!smL5i;KZf=#8#j1-MY7v6uG)%~thc|Wr;a@&<>pf+82 z1+e;bt4-}>wZ@1^TV%}j$LbWB7u1wZAnPPXel?LRHxBilSnPV3SJ=LM@pP>+F zvB)RkeW1!YmxBZBk-xxT8WPVZ+01i+CD>ZMsQdcT!h###zjE$Z(`E+wWmP7^$6(0} zt>OX=i-hw6kf1dfz&7BBg7w^CGnr_ppar)50RFz(ShB{4w(90Jo*yFk-!$fH$pZY73Y5JbyXbGqu~Ae z0kl2hvzrRE!3>Uf zHUYwQ1Yq#0^VC@k_>=)j5vxUhrLA9xOdV-a!;U<-#d)KMnBvf98TVsU#XeVb4f&Yj zhLy5oQoBqsv%X~&LvZvqJC_)9IZ~ksMn(bvR8xqNYiQF^v1~of0_e7&}>Kdnq0TY#bzVYc4uxHSAFS1tabVQOHY9Q^Ji5gs08i>}22 z$c>7N6_p+Xioc#Bu>BTe@2P^6(RsKSAz2auAQkh$#O2-%vzYQC<)+(tyO@HK7Oc3` zb}d{%O|Ts2adBRcD%`@ApE8qj`G~$4AWjtq)8bIt=rn!hBJ&aq%E3v@5xDh@)HksG z*&TbqI@0L3I6p8k^cZUEkNA_QU6tAzdj4fV2Tv%PKq%@n<#>0&2o-^YnwKLK!rFfl z?!An}O`eD@Of~Q77SRtr0ls2h;Hbcr0}o@&rr2@)qH6JofWeTKt~U973)OM1QYi#b zMPwWnsbDXOP1JURK4qfv48Fv9;ngYhY-3#&?!}>Ig@@(a9?)cP|2 z03^Y6PvGaoxj(U9>kJ-QO3Z{Vv4zljDjtVa{Lt9ERyb`B7l@=Qrd8GIa^VcY6b72^ z1p(ABz--g@GKT`deU_`U9?ptNE_1fdFb5#Zal^O%Nb0F@KQSPtAtt+)wyD!@QeNZho2?DPWU`pqxmGj?l z1a%lma;O__h$%0-#8Y8n1xwmi?yESCtbQZAR?NV#__+Fw4N7WQ{Yzm{^DhD?h&Miz z03@eU9>%o@un|)cGd?H8z9V+Oqz)ImpJG#LCx(~Ux9#X$tcDV%Tf1%TU?GZ0?4p_8Hdx8V+{J63C6;;P+YUvc`$2I z;P^Tf+g!e4APTJk%n1|FKPHbX62qaD+Vc7T0F51jlZaJgTNnz#6`t|M%cyBIcs#@n z3!=-Mh`iL%jKuK`VI|rZ6gCN3EjCL5Dq12S#dA`pFyd4KnF+E5GNHbw03c>q3=S=p zs_PJmqCBGEqK7E85jZ6?TO3S9!NUqGTkjoHnAVho1#o!1TMF26%p>$p%Xbd~)h$&az zI})^}W=NR2m$+b~ma1G{me=K%y0W_u5iM?zwz+soW{X40HBZ3;(F*~OnX<@_cZl@}v%pd4{u@(3eo5+nXh_w@u7Fd&&+2jx6Qww+^y6 z!&V&E{?u;9+Ex81A#55TEj0Z+!eA7^TbQ<7wFFI|KIEvao7HjaQM1D}!4wExfl)1q zcCk|6!diqG_V5tF0hga_MK05O%wr2yf*J@gKO)N!n*tf|66h`|m0pi91=`>OQ>E3T zLH)zcTjl?7O}0*Iu- zeG3bNL@?^*1!F?_Zfn5qrzDyLWmQOHbtu5$vf;uiE}?n3a&<<<<_Nc2l(t6rWg~#- zulC((0w{`8C`t8fUN^L|N$S6Ju%3;V_$txdO(2mb&N$*cla zb{B`q9{_2=9V)1JAWM9}~%9Lt!t zCa)|9Qk67GfhcqmlUX~Ih2k5dqc10Ni#~8i4|3u*sYAXX(j-2|5Dm(}yMT>cplS0q z-OTD{P^}~Y8WaBG;N5hk_P>u2>5)nSwUw9hw=khE^izj|{K8bI+&Www>NCU_eE20d zRhY9{N<+fqRY2EJX&#}S(R6L`D5~OuoAcbIO(}Dg+&DHVv(;e|lm)zBRB9@=wy+>J z%d>=m9Gd+_9t>b|83)WYwWtMN8cEA=w;#AomEphm$Pjv+?oiYJ0L)x{bV+8O^Cvf; zJs*fWj0-%%0veX@US>tbt*%iOE#XJ)mb!L5<%;)iV@oTH;fRH?n(7qDdAOq4bHqqT z0hy5+9tdoTs1;wCfFmw}+VK{{3m{4h>NH2GY-E4$5|I_6-Wg{>o3RMhUq2DtSdl!@ zpKQV7a`ab~b&fp7j}{_<*z!l<0f~{lm{(A|%nDp;fln|P%g!ffOrvqVMB6w36<{>)^WrMz_=>w5i|hUID>AbiZBqZO={uaWF)rGsPA1% zfwlx%9Xq(>^oBKttM3-7^9{9i5JHBPcMxK{l?R_O$$-Hvunu{JYi7cufF2mt%*?mS zmr;c#AgYa1Ws7#ej_JQ?a0V7_;o_wnnS50NamB$qZ;Ayj3-%$T=>GtTI*2Q^&M_^| zrBoa*h*Zc9PyVUhwhM^Y-D#<>r^ZZV3acxRrPg6pu*T(&U{Ed(FcDBT@jH0r{d#!F zCXbpt1O?Zjq1s2+(ZhRMiA37AzJRh8!RDZ7R^C#kxb}P#M0tIUXJD8I9()t zbU8a_P_T*ij0vGYFB5@EuDr023p|>4^D0$l&K(g!*Hb6F*U1zr+2r^1sZKlByxrwM z=gb07H;kwNZP@w>u6qORGyk2h@R$WcM6MUBOyWayu!D6cqUw9W_KEF3bo8( z+Xr2b2bl3X_D?l=lpZ#;zYmzwh&~NM34;x#eg&Us@&I|Qf3+xWh!|^#kQEq4>QT~1 zC-W{c-Q~Q;sPcxF$N0tS413}G!&Y=Irseqj!)#Q!1xDP5O*QQfi3FAu)ATx)rMA{(o9OPWW^?3R=iEfkF?Z$b%Hc2+6mc57xs<(Y>p>|j zV9x-I`(M=4;$Pn)Sk9C7Fi-jb5x(2qaS;IuM6rn$5UQ7(>*AmlZLY_?XY&d8)lh$L zpH3hGqkD{-I}O61Jw)eFEhjK%1$0h1y~_zlx;E;Kc#ew)KOedQi%JFoGS6s=*4V2=#qk+J z>@md3S(Ms^H_Stqa@xZ(Er-#vEIWeMrZLR89*ELpW3yO0j*(~}@6bFb5k%G)+SJHH zsuovv?xws|<~JOH9tyGZQSVW*>ORt!h7B+ah09~!C+UkVBHmtZa@_=e;+QWug4yEP zJ>ioA#MA!(7082LOQ`R%ShN^7B5QYL#>%w1=#MZ|L5>}DTgTxA&p_qySEDX52OPCr5QFsHnLuP7(IfB_W3Y6Q?W=_ ztfx|pQf}{4B5*l^k<4U0pyxA?!mT$^hgGOGZ|X2&-XrYxexrs!84>|N6vA@_t*0A> zET@@|@s3!~b1@lQbqK9u>3kK$Fy>4@6m=qK`-QuVZZ+XP?~_FsKS7=GtSQ^6^5 z2D_K82}FpdMK-(@%xU0hqGmOWSViwym&MIPFC?YW1F3ccz9xX6x5Qy$EtsEZi@`*2 z)#sUJDNWQtno+Acj}qs}@$YeLEnB8sbhAwi1H8lw5lKnm^H4Dna@9cK4PN7j0_Z_C zV)q%Ax`1eLm$bnE>RD}NirDdFs_$s)I%fV@Kj3PB|Br z0paKG3sHe~-qWP^{{V@xQ+6)kVqBRsO+bWrfoj_(O0Q@}jTaloF_0ycb<9dwaS)0D zHuoQIq0;$;$y*A+0^{fv6s-|h@7sLYTwj}!j@Teww}iyvq-C)?4}bU$&6 z)4}Ze;W>ftQNrLzf}++9t85d1cw_IVtm6293!JWq;03fCua*$rZ-x-w2ku{3i_ zwc9brd;LVr^FDr&L`{;O6|K_wBgA)@%y82+D{cKUyfk9}05e?-9*E^NOMfwHyCdGE zF@ALFHH;#e$AS?ueSw&s$VO^yjYaL8dCaoI5NqeTPzt!>Q^Qzs3-JmSTo2|UZN0z@ zhsJDU<}ao1Yn39D6^rgXM1^jqA2ok4haS5B0BAbZLP0iH6D7fcLyFLgaqUj4nRQZk zUV(q*0LtoU9|ht2#%002Y`@d*^o-4H4D)YANJFzo09XB1Df9 z4d3x1`@DGZ#WxT(RIL2sTXLDQzH$hS#_hM^BLmjb4fdI)^1_>K>Re5#wu681S5Y`Z z)-5PvLH+y04Pw`lp|M$DQUGQRjI}B&Ooi5BO@^I}3b@O77?(_5z$bE-7S-ldqTziK z`K3Kve29UojCU?VqX(vf*|<9M9)dSCj(%7R_>cuR_S^@kOxs}`UJS-0R-MX0O5S(k z6#)B30}xy%5m+3T$tqOsQHy6zBIXLl?KIom3cdmb3P8}zukAJjS_LDMj_IEXA} zBqHm%OaX0pgdPej9D^tXhnsio!t@Uyc!%`1E%09XiGw4lVy6bqqDH8W?;GvZ25J;>&c>G5aHu+!!lHk0? z#Ii7kp*oft;+ z@itsFR*p=Y4?kS)g}F)j1W*E}j5h_)@%o5q0aUQ5Bc2rU*gIJ^7X$x#qTt{|k&#T{|vU!2s1USS6 z9Etds0HuEL=<8zPTbQJH%|av{z3~Odun_lx9Y%2l06*RsTg};v`}USoL<$1#F7%^HA!vOL92 zwQ0n*?%z~8E9nC4`&2xkq-=k}U#ky=a(PblC@s=#d@_u-#RZ}e7#1#I3JRYw zYG-1uM^WOdar9`!MaI?GkE1>R0L5!66jWN`1quf&4AkeTP(c)Th#SZ*ra`mOpR~i3 z%V%8NSevajE(dii$E$)q^>6{xjMLcSGFUB^KHtmj4z6a5uGf|VRcF59x=L`XW=hkj z8_qA&DXc_5(R{F=rsh_`3?#NFU68U1qJ|-^^Rtt3n)n z6^J_VH6grAs>p^IzD+|!viX5pjR3pU)&~!~s)BQ)%(=qVK{6MeF}N(+ zzW)FnL>SndwW=I=Vw+9Jm0njewty7?s?LuR%&o3b<~oq-Q93w;OyCg(6bi>M zElX;nVgCTf5Kx5{I{UKeI%>`$qO{b&DTf097k?8h1o50DI9^F;5~~j}zJiLwm@Okt zqO+o$>RKHpI!ePJcdCoE*<}}RpAg^jLQ{RpQtr>cD=4~#%4g7a4M@! z`~AGi%ww)zSxTob68szCFxL=E2m>)Xs0M~vn(L20h$$!+(99$lKzRehxYeX!3WC*d zxYN61DE@ec05P>??#QVXr7frdoLfc2+ToxEXM?)JEdmRy*9Hs)3%jUE03608>v(RW z*3Z0ewr1J`k#$m~0{LCxqN6W^fLI%9!4Z@a0Iuc8!I zdM3+dZ#Rh4OT`#J#*`yTl5rd*Ov572wn(Zv5fMpThf_94j zM#znEa?r*90Q7*epx&+|rlnJ;$eh38A@_5ZKZ4(hL6;auDlG$CM{QZ094?1VWKR%V zlpLbZp+Hpt+QA~KEyoma`_$LMy$bRe54!=ts8R`jl-yn&%ipFeGNMmj6~xOfuP|17m3PD*X2FsG5wZUOkR0L}vRq~q1E0E8`&^@~lo-~o(=Y|HE!!3Z za?DjhDm2R#UvV;IyMUOP7++|@gDqd?6e=#QY=B&2f>PJi4FvL|nN~)J4>GLU8l@=f zZ~e!J%Vv~y`-q(%yfo#lOHxdS86}~!fXgmGayOP1Dyks!+@lXNb8_Hn>e4tmA+!qk zme3Wam}vS@d3brp6C0AydqfQlcSK;q7S)}n60z#GAMRmSH3p0w>f!c-{OUFYwk_Bg zyUzxpkW3Wpi2&4gv7nVomsbNy5lCCD`|f6FuMt91eM&lVQOL`Ak_Gl2(42{Z(A30T z`fUz2*+n2`@&h2vms!zwnDorpsgaMW>%(NfEvZu%ltE{rm_ z7b@lfK+wQT<)yrL1T2^pxP^-p)&U}6ZF#I;U%2WZUfGM%Uk%Mc6r-ncs!YW&lR#r8 zj6?&fw7!YSKMR~Opqp~%m>}4Sh685YC(O3#1x;JR{{ZdEB1{6FB=Ua}?Oe&G0LwMQ z%+U;0RG?{M@!y$+GQ=SnTx86u3Poo10aOgqVm+1zb;Ll09eIPMc{0o$klv*bXkqAp z(KtXYNNGe$D%+5L7zp&kSN{MMW~Q;}YE%t34yMnT0cAJh8gpP;;ALc5c(YP~Eu7+S z^xz>Qp5u3KKkE3@C`=@%oErZCGPEM2);@qxrt1OPRDOX(OeZl*SIYez1BT$tR?2Pq z6(cPw4I?N3qF14q&7zooBai}xtP--Rgk3$nGfn6KXM$mLY17&^kfCLbxbYo(+1hh- zeWJ@LbQx;9`@w*!KiCrHDJcuf47&{3L^W}#TtzmlFtYyu$WtLTYl#8XW>>BaYbSTm z2sp(G2)`}!#YeqbZM=Ye1Q^I0ylpIL>G{X<7}&7u>8XYYCD)jZ&-geoQJ^$-CHkL0p+^BQ z!UW0)IzO^lfk?GpXz$ELzmh_qc}!hi0=-VFoe>-kp3KId0FVjK47_t+{iu1|8%nq% zNcyTZahw^Iy#a(88}sy1rs+70y%2ya5vv!s5JDG>r*jFLs1Yo0>&1Ecg1NWciio6T zH>fICJx`BZXUK0*9$(@-e1`Zf)5m`CFg9xt@GBCiy^IO^Vy*S-DW@(ufsj@vn5qtq zdOFm2Bf(~4vXj#4VW5P7=Of^#zJDCe~Kxr@6x%d|0gsL_mb?J%Ys0Cb#?ibPGigy3GGOK>X@#tNAokCFzmy+Bl<%5G8_ zRMZDo)JWphfHjY76F59cD5D37u*EyP$5aY8e8oA`Q#g&qz+1?!>;Hm?esL|0;DkGz`%0U+wC|rYxb%nYGI*OoL zuV{qDihGd;hYo9rdrG14Pz#ZRd4!OM1wbMdyxc2clXB<0M|v$6f5jL!Q-*N>ROUKSa70Bf z8I^4w1{eV5xY@h|5CR6z9;I?zZFqxCXpf)v4nN0MvYi^&(c?0CNUd#`&-s&8c#fIN z2t-v7G>iqCTO@P|dBJ3&95}VFyd{RNUMN2YYdx5G%rDhx_F$lR{{UPKkphOCSsb`< zEyULd$+jgb+W!EF_%;GGaSM<-DX!JQ@O;5e%6mN08TpSbF~Gd9Bye11b_D|sD+Z|h zV5IgGiq=?`pFFkbz6=UQFpy>J!IJ2^SgyAvN2;bgD+Zh3Wczy9GDCtkl%laLxHT5) z)GoDVxE^7OKBzUX_>%#ZnLVB%l%ru!hxIays1HE3UhvHe122{O5Uy{ig}u9BXCtwV zV3iiVkT|T|+Il?s4&F5WVX&LnT!zHy^mQ07TuOqo-0ge%5K2oXPRFw=aMPwd=ADrZ zgXHw0enL5bmB9EPp%8Ad9mGkjo-TjpMJm^?T(>C!hR+e8G8vDyCZ{VFh4BMhH;tf$ zJSv>Lr{?DUDLC?@fn8-xqJ#=u9pTrvt-e`mSn+@OM-rnQa9=r?EVq1mZM{L*EBs1E zr!-x8i_{Dwzxex9XpSb)She8loLmhMW6;(_JGZDY(bs960=0$Z#M^SmfTEB^HP$rQq zjCmRit`pi`)nc_p6@B4C7=Mz%i!Sg3+BGukV~L2~#^niERV@`>JB%%T+|jlJcc}I* z#q1P#m8UgLzn3v+%%N+Fs#r>(I6TTIAnK+jg=y^$)RU^3rNvNyEe!5kic`5z(a#Gk z9(g6_HvYgv9VVKoVL=QjgA*>f zGYzOTmpf|nEr(^yY>x|!0;xNxkWvO~sO?&{Paa^7TW0x;fet;j3X1!0nViMQ%s>@( zO9V>QV^ZYLkpnEDqqv*3Q2D^nCKLOBGcbhDltj8V)()-=fiPSSa(Kj{S;QQVULZoq ziA!L+OhglEu68$j8L2y*4za{Y$;yM*wa(ql1>1TW0 za{|qPi4JU*qbMnn?KaSZQ($YBq6J*Cv>fJHkrLKp z7`=7(iBT%g^`SO~E);XIyeKM;cD==GH~uyASz55hJ@@S$qzF>I4m^M312r+O+BAOR zW-tX#tT?*9VzWpy3+~Qk#gh4jzpm_Qou!{J2DUPzq5CAJns}?ATYcc*>K1P4e$G7- z?bXW7=gAz%zZF6 z8I@3=bbWy-5(}EZvEAP;*U2cESI`1>S#U%XPoS3@iL#<2^xhv+DA@Z0#}KWQk=hi> zh``(Q2?mX_iwJ)6AwYRkm7jtO45EsTH{vE8o`-J0?iRvBk3mzhMV znyB$Mz&ogL8L&Pf(YT;A2=V67yxgOTAl0W4$d%$6Cgu#a*L25WL8z);7+rb4%qp$A zH<@aRRrdYJmT6DKe}^ctJNI)BG*lgk8UcbgC?A<&8Zh~ol#g_*J9}7KFXWWK00SlF zSJ$bE82N@7E!@+G^9bw^uzi3(GJ(@(ukU~^?76O0TLHbR$8yymag9oXiF}jbIh0^8 zSK?6uvzs+Cf}(Q{V2T(K)zxO<5DdJrd@<2LT0fqScZj&Fh~D*$e8)Z5Lv&~#+_3w# zs-^1+@beX#MA@=c-%{wS!UMZIB6L@EvK2vAm+mwURTm5c0@x1XHMDEANT{?j;M^2m zJWU(>C{zWg9of{ZQD#YVVuWHa0m{yxJ9?N(K%=+-sUS5@2GTBU18gRgN`WsxQ*;$qxWf8#-ISZY}9^#b+?8nNe$Bj=fqGg16M-5Yf;6R z4HudR#3d<4WqsffN?uRtl(H<y*^ETL&Jf3a7Z(G%Bkp zZ4G+SbE=G~+;l6$3CaecUaoO>$>W(`R~4e`q=2odq^S7r5;ZR`KD(H|lY{wzm_upX z{;Sa5f6H*)L=wgl`=*(ca2CQbVpHSN;cXngBE_1>(?my>wGlCwO0t{ln)sUk0M;Q* z1V{^XvB5C5Ouk}`hgYBQSm$YyuRu)Cy#V`S3jGThb&Z~me1$Y+3W5uCR=6(o*N4%d zZmXM?OG=C{iQvCd<4dL|XjS;Xr@?+{uAgQa%=Bl^jkHhKmp$quTz@2Wlx5_gb0n%W#R5V(y@Mq zfYIvs_Hhb?aIthFr_RXA%d=-^tKwqR18WgSG^%yi?Fi*wvgqjZHQo*@)I8!;12LH@ zRZ#N~9D-t9Qs2y|Vu4oTvi|_%x=y6JhFb|!IoJ3f5t>_-xtMOTM&ikJRFI=XzG4Jh zVV2G{2G>=@Y3*Fb6m4^zl7xH~_S7(Hn>iH4#-!OP58@uppjg7y@dhBP7tZ^Tnq-QW zm4k~T?EC2QJ-|#;gltdL)&m9cG9Xtjoj;h?H7bJf9ey`9BDP;*3gE(O*BN|HJ%xvX z{6)PW(vBFdX>O7L0}jYyn=}b%J)#r4^IKmx0@$p@kwrx>8R_O1VY40Si@tFnZW$6H7!u(#8yZE5VYy;9Wnx8n6B`0LBmxF#sDHp zx4`ie@q8yFYJ%5ih?p$h@eqij+hgW91}fC`2f5@ybOmt3-}E((BoA$5U@v`BKf>R!@{ z8ePYBAw*a)s347Fo#z|5ek6?mwU_258JJ;el9;Sr%;ULRLPai_L?<}&Draa)730he z70PeoEocBx*K*2b%5oJ7Q)x@C7zv8P}-YbW= zhDMgQ3SM~|!~mo4SV=|TMyid7cCjHGi@WZcpNv1s5i-;oxA_Fe)HVXIObm-My*xuiqjxU-rFr0?p*W930a|3ZjF=Ip&}*iFYYDJ> zTyIVN82z^JWA}5Y89lEb=XqN~=Mjsx4x!c7$Wqnfv)na-M*8$~ITk5+rJPfZg4tI8 z05QUtmvlAuO&{w4YTvNH>+!w_CY$#nO!pK`RbJ4skPoQRv3s5+09CXs-E&AO0E;zR zKQ#v#Fi8eV#ZlQ1rRX)(@a`Z1MI+49=?z}kI-y|Ty`B;rPg1@R(R#+B5E-^Vpk4W| zLoE>iGsQ4VC%+2z#LNPz^DXzGYg&So23PY580!e|c!8&*30h}Rh90lb0+%d%$~*r6 zB0cCz#?Oh7Bl~ZnQ|N34;Itp#p%N*lI}aIzJ%p8RtUkxuS&#!40te(^?qy4hHu>$( zTJPyW;x%q%<%^;55mgd{&-k2)4v`J}{SJf6HaUG#fXmSp!7Q_345%2~36DoXCTc;z z(*XK94@+HHU;8sKQrK66^%2aL4jiusj$krS0)XOzCzbht2vxS$qW+}|zN3P~=fp81 zu;y1)tGHQXm_8ZUzOJEkf#gX7f z8<)s21xF>e#1mH+2CpdY>)DNEmKsKqQw~8)4}HQaJxa#3aguYI z605i=gd&zW?zafbrzJxbl|kGc$8v*hV^8!=kEp4R#tg}W5EQv_6KpY4Dy4R zcJ;*PMN6q-(e{DhE~6-yioHvVvML}G?YM53h9<@Vc z&97Yi%M$v70yX$(HMVM1EgP`uVTfRc2m6m!2i(io7SkNNg390j0A?L6wsD!7AT;B> z=bMZ=xZT8a0KGs$zXFT3Y5fr342_c8D^boPy>*+nHxp1chn{0=bZ(ffxXMOSJfKZ>uZDNN=yC>4i^BLs1KzK#3UO0LO}gCCZ$}rw8s~ zzxe!4P~y2xt~qV>H%8Cp570t30fX#B7DE%3HjzJM(lFn1{-vL@7S}NBkg1hmSY)N1 z*D7uT_e=@^+;}AxRiVK%B30r>`)lU+4G=AFeqd7ZD!7$VS)s%zKo$1j#3WgTK17ak z%Br7;wbJMYIf(IGu8!px9o)UE6OTD#7uj>z>KV$Br_~3hs-sUY&-wN|GjK6t9Fw-(9E=EJgS{;>uq3y9Jsa5+Ov>o~Rnr0wr9pv|~+{R|N-$?1Gblwk2Jih)+t1K@oPImcNnpy@@K1FxkV+Z|@0q$An$b+Z;zG_1K{H;qRC?gk1ss`G7Soc0|>{d5oyb4R;N^#QIPYuJ0YCr7HOU02=8gyxI0KFDlE;7S-s8QnNcj zSM(H7?Qr=%2-PB9Y^V&N#n$3Me9)cQP0Xom$wSW{5i2xlLL$1hA+=UkdzlDRS5cq= zSG;M0URsz+(W;0lb9D?`3NkyErIPUzQUmV+j30P~0wf3dJ+538@_G{*2!?adqFGSw zC+1rmrpZGBv6+uika!IB4p=lmb{gN5Z-6Q-+8c(V?&Xeic!_~AeD_jRUqv-2^g3T= z0t;wc>Hq<2NjQ`s3us=WbZF<$Gd4(eTujBcN?&o|af>=(lK%kXjZ$!?Wr>8rgd$*|T+djTjd1r~;~ZsYMN? zz_>06<|)GvOOE2>mjo6UTk{5`qCkZ_q6(|e9K(jIiITKgEKnDEwg9XeI+o?2$`Zz9 z6Mr(gHti5zRj3zTr&oe|76qaZfo~VIwkohf|qx@&6%0hD0;ujK(FjK$!h_FWhwB)YC-l8mnw$2oEc$Ps{u=NmH9@q-a zM|tdlr9I}eoG02{B-;+fY+Tn-rWISv_e(#;Q}Fk?l20u z{e&a%27aTp6%B06w|agfZ|Y*gp0O%&CAwLubqi?p)qgU^w3V*k`^Tb#gD1>j45c-~ zf7D<{DLH{x8$YRVX?PxD=?5oMe_hFi;D#Z)#=1ZEa8+YWB92tQV2tX1Hbd1E9#cUo zK*KhVy#6Bp0JJyDCCvO0i6zcYLuBoRve;K&=BW0-F)NwWw97Rt+{Y+#aonMKT)V^q zf}m@uMKwe@HxWAM_7BVYja;HvUSY5GjRnWvQXMRWN@2%vxe}Rb3J75|yj3x;AlqYD zd(3L)u4b|o;!wgfrKJ9x!k+7I1D><@{k3d}q($Qp|MLsSF{uGAg6S}4I7L~0^ z0ve3k$zd2%Pm1$3wQ)kN$kn?HyWxs*NSghu4y1`6-6sF8Kb&f}SLgK&z8 zw0{$J_O2j!mj$E;1!)+o{v^7N*yO^1)eTHSNMQXEW3>qo(61f@< zm$=nY(Egwv8LH+L4Zn#{*z!qJ$p-%bz*VFbh!=_vPk3TnKK1H}M`%}d8@%t-Ev-h? z$H#12d8~5ie=})>2~NVT`&6MSq(S*@e-k?AC}K_RlzTifiP9n#YAX5gMpjc`bMFIQ#L0Po zHyG_qgUPMj)Hw%aPe_`yt)SIS-=I4gLt(A^O94)|_K;PT2L2^215r|3Q56!Zk-XXe z0K{P;r)s>yK2qXT8gN{~%v!)hxHkggsis!2)Tr5p1}xoVmaPDrg;rP^Dva1yxM{A^ zsGF2I5mbW<)G3~&LCO)|S{u|9s>s|>v4?WWlOo_OWt$ybX-(jJ_lS(oXGb%EK0_7M zOT6Jo#D%Z6LOd5g~8?}=Qn^A$)t9A6N-ORZ{JnP^(-XB1TAUf==%czKpa9;uhA zkOhP91uj9-Kr3NGg~m~f*3Wdbq*r~T0Ti)s0RI49VtM%}S&Mb3%+NT>yqrvYtyYDk z=JOB@5K>x+%auGz{KqXyZO-9fy(fkFguuO5xPfU{Y*-HEYN)4zR7ILojl}>k$7mUK zQcm6u*e;>Hjp6D96H+GLD<{0lq6krnulT85U6dJ?wQe-1((??vMJw?!h^^)X;?k>F zmQ)K}iH8huf`p@psgGVI32d7s0i69Rh7sQH=yKw-p4a?JQ*QUS=u1}x@6g%P&N>|{ z`D^%sDPnFueKCTo3*sua+4nw+VG^m1fkhQr*FJ@-2u+Eh1>xk-_=Hk!77y+nBmKn7 zP9a}-w%Zb~we}^*q5B?$bI4|RTjNl`DaCoXGP{lQn7&`Sl`LA^-^&$G3MxHg9*=@7 zAM%I|<#7cY8e&Sh7i@C7MH-^aeWlUIw=o1)+{8D!uSC6xg&<_N;f^IT#zpCm;HKOC ze*Xa0x|WGHMho%`HAJa@IbD}}Z;oN0(OeX0t>V)BOJo)|MHKy*#&ji#F=9vq8()ha zGZ+G>YXn1eJ`7!xHganNiWW%GiqjW5)U%%Zycf{{R_7I&Pxgl&ka_JBaA0 zoff?6SyCL=P%W7jX?WC8LIS|-VhrE(KtK!y2Oh8a0Apm|N5oQ@2(Y!b^03hm4FQ0k z5m1R^2SY|S#Q`fvrn3dLfb5J>Wqln(-qZg88y8nm6Ow|08-8kR&Jm546{UkrYjaUn zKN6T5LhObGUUvtsZ=A(Hh$vuzpUW^xuak&p_gU-?V(CJZ4+?WpIIO)3vRKfn{EPa4 zTMivY>3{ zh!9=mmY@h95VHk~f^M(?;e`xpDku~%TCQ#d2}8L+&NR4yhz7hSAON*)Bl>7+q2UY# zcM}4tY?vCbFZ0}Mi&c(bT&PM}foNC;V+qVRRAVebFSZm|pM`-Sc;_u70edd$$iM}3 zHcB8o1|YB$d3Ws+7E*gbv`}>7Qt{{uEuN!XioRks4Kp%QkocGa>A65MYPAv(NkuWM zFNt_LG}9`1fv)8gE=#VV6e~Jd27`rVtA`6sJWYH9p3V0#^#H@mcJe_@YtU!SF@!3I z&q)wL-tHo%&tpUPnV%sjunu*d=#E=Xr^j_0#pDTJWMtG*7|gWl%elnHKvrqGtv)4& zKQ86ZHjT9|Kw4sA%5G5((P_;QQD`h2`8|l1>>5%4E~mIm30vTfSCmT)x5u;YLEu_QDYfKMZK-lHO z?nD;U0UEZoIUT}q*beU>&(MTGbvwm+XaWf-1*);L0MYqY&vhF(<$fb9au8|b<|_`F z7djwqKz-jzqh?P=IR%G9r}6rUv7A9^+C?$jhu;c1fUX`7OeR-Z{{SDm&O7P0n zm%|c(7O=|XfuZ7AlS45i?M|U~azVwA3v1dQ<4O!^Fm3DFI)EzO*PlP@kdTQ<0Fbrt z5s@Z3n1?1^QxD!D@CS9C6X76Uz6uBj=g`p?67%IbuMn%QTlqa*;s};DKBzEz7R8#M zI~etxWwxQ(R7~W*a32>I57H$b0|}qC!&vo4YVyL601O0Ak}7N(jb|f4e8t)+zEZRc zbREZuYKt2oCnkqy{{SHrnW4g^Go@DZGxnH_HLHec!4D@y0nN?_{lrfsvoAH=%CK@R zMGqq~m{C!_{T)N=6;mq~YcIk3mpr=HlP~_5oNxneri}P z8rQ347$B&Oor&TD7JIOdjWUfL$J6302FKZ%3y4tJRSY`y^NPe=#L}ZXE2shM%&7}f z(Ayc&Dy)kUBd2`Ff8chm3yofNoAdyrvKTn3t7KqM9V{}Y7?AX^I}jb!9oy{= zWN9$ns`9#wNH1;NUtSzRq`gW3pB{#BFlAYx($ud2bH&PR4XwZyHh;#cS%^v&s(@=Q zB9$--DeVpJjAJot0eAuSB>-L*+i*i(zy zxmT1KcN$f$h|e6x*8WYF9)0FR#?Fr7gDaHk^Qe>={{Xm;sw+3peYup~4HJ`l>ZW!Q zyCiYcsRRM5{km}xW{a7T68Izuc#4-ciD5&!saR1JpEHRAOiS&*c}!ZksDLjOrYiv( zF@>dfd_gU6XNCO7xp79}0cdkUo0KdCSQw502D6oTg23(jMU7~21VC6RHp1=ltQwl- zIUf*tuv(+I6ezCPIK_c2u(aLkT_6V++;KJwm{kq068KR>ZWRD%R__iYTPluAZG~a( zW%Mcbob3qARHLX9D=vLdc2BxOE@!Y#NL3F@8<}@X$G+t@US++$s~abXw%aXhN}#6V zX)G=j%`bV=C;|rz9GnP@#G>4U(K8X6-f;r*?zIqXfxN*63aKkG*GxmC4k z17cO^m>cvhbQxI0N@@BMHaUjoEfVU;06TwDg+zoEI^W)0 zU2H2a<`0xx7XD@)gKe_MvVbjE#5|?_Y3h1DgnbB(O2g(ZLhS*h>)UZGVClHJ1LAFj z(>Jx*rfZLxc9WJ^3uwUEj}VOk%^&N)2ozi*)uxs2nR5qJ2AxfJr{-25A2xb+w!{YM<(O$UzW7%KO9Qgtdd;o@phFn-4-!K}aMG0ZP zl>6K?P+p({tIgEBado-Y)jG$B+O>I3ZnfC0T+p{>nMc9}tqYm31!nP3P$k6Db~;v>MOeEk}3 zTDH0G{08D-ZCTAQB=J~avZ;$}M^U2HwH&|TqxljlCAJsnCLT#xbTuj{a)dOQ^t}!_ z%^ru(mpCbZV_I4%fU~6=y3BVA3xqk$x)}mGz6Z*Ww2?M(u@r zl@EN%H8v}2!wE>k2`?{5*;gL=_?^x`nwITd<1o?*ybLi7s=_uZRzzSf#2wUd!V$(% z^Au{fx@O`4Rz^J?=jZ`zM7TD(0J~vUqUes9Lt_AFXWlM-dCaLx&ZU{6?p~I|7*KJ; zFhHfcxT;|XHJPPF30seb6&)Y-9iffp2uc~m4{$gxB^Ot8O#2e81>hxU3ZkM|G3G~x zkG#)$h{1qt;wV5&{h{TQaB$0#`L8(`S8Y+`sO%kfRX7L+HCTf#0n}RDrOIk;0dnDKa`7qL zvZc&HHp)PE5_1Dvl)cNB7F@Y<<^KS?>P*&Ra>4_IW^HedB5E891F-}7rDivBy(&J0z2}+5N`kXB#gi3xE;wo|5tk~ErwJ;BnedQ z9Kh&a{KHYe!vVu`l)YTEP|yuVtFL{+Nw6F|8tJF)HnYwD0Izy{K2rkiQte<`RmS)4 zWSRCS@feod0#DKVArsLsHy)ibsVq2mZ!iFcp++cySO=C34tX?712U}C0Mi3slc{4L zNT4bb8WykGP&gE2A3xM=6s;U)b^C{R8eOIun8mEE7^6wQzcDFV3@%2YI`|*Ipw}gH zyL*kQ6+-m^lIhoRLc6_1VFxs;^fs1~UdcajD8XKirSQdf3#`k<%!Q0BEmXXF>Kcg> zuy#K|nq*KXNODJ%)DBU)J&(w49pa2I2ll8bC%{nr*SfT$5r*w%7%o_SmqTBn?eri z(nO{Kn^uQq^uj#Ye|7Ei^qlkRMWw7pt`C^O&EKUAGSquG06MN%LQ-9y@vU@P+y)UX z8@O?zu{h+iQgA_sprfa$h_Mb~DRjhcn5>LSt9`AWIvqle;A;q&zBdyKAb4g%ux1B# z*R-u$km@PoELOxDg&ja`WDI-}qHp3i4ChrX%WWI8Qk!ga!Nbi!w;q7JSB+dx%e8HJ zVjv%hTDP$;#8s5s#v>E0qP#$>$lRc`0c3GE+f{=p0M>D~GZ$uS80YP{?NBWZYN}uL z?RCsY*dscMb4hqJ3d4fx{oqRll!p+h64m7m8N^x=tt)$fQ(tgL4Nc*%d1~h{X&Fxt zmIbSYkF?3UtBG6!(}={$pc){RMG&Cvmo_~>wHq62@g0f{vOPm7YXGYyC0rIJE@zoK zYto=FP5LMn!gFw_I?U2JVR=ff$c4dBtInnpX)yW=LKat;kS|=o9L`4Y*P^6=p|I%U zU>D3tO*>{SduT2)wpf-t%gYO(iBNH#vZqgoeVPZC@hz2#ZLX#zQlA1<5xhR}DphNg zV$utmmfz82!?rnzg#uP^O}TL&8iWy0+{ok2MWhnPLFjpoEh*A0WM#Qndj`pn92gQ} zzDTd3Zd2Nll=oPSgXlE3eE{4H^)ds?&RKy)STd$17XS=Hn5wr1QIW(-S1nz_S77Rx zmd0ACxpGek$CA;g2W;08#i>xj8#s&tA$o~0CTcBhT{8g|8epdKn3;-VG!>-b?p_Hg z!cB)k6HB7yWU}-zT27F{1?Ma*t<`ZeEYvEhqSVK0IhID*rc}3xYYZUgR{*kC2}`S& zE)V;CJdo>4m+`7%Q| zV6npQ?|9as3W_WJXa?rG8*UJl)J}f-iivAZa6}Cs5D%jDDFk(^gLPM~*dns|Z*f~d zcX2Y}-Lw(PNxNWzLUn72MQo^2hVShk1X`9|J;eha*26@*D$F@i&oPDZwx;|;k|?0} z%ia1|Qc;l=@$czS(2Ou$_+qKUC7K`R5Y4`0DZ7T}u-vXlrM_krY{A^32Hs!@3~$o) zcSKf1B`2og#rm+>FmefNxL!ONb=DfcY1_u22Wj;A4knEnm^r#8yMguIgbpFn|ZCb0mkcsP{Y7g;Trp12gun8mHh^l_X- z(4~~rc(AL?KvLC)*+X}?YKQ`abi}RwO5v)Et=wf=bf^=sDKYU0%u-Mil^dvuMqr!q z1!L)TYqoI0Kq}!xFCrj{<@Ng5RnMNgNw?Q6RP~PV%z{m)go9PP3 z+SPFc8CV>Q5LOnIEGnfg>QtzmBhDa0OMd1)W08#i05MINnIWS)mj#R@Fg0~oSc^AX zq&O^Eb#T=)U}FKqMO=Ks<_rt1u&mg=c!X`9F&A(MY}|@r1w+hRLY`OgKMqwt>Lq>v zAJiPLnrraJD`=#Dq~@Qo`+;0_Ym2>{5!9~XV2q8L$z{|8!L?9lwet?Z=H7fjG&?EW z3GJ|laL%@NVfTbFYJ?NREkbRlG)_qsaRSzew8cz4M=q;uz{~PWO4aQ2D&=dMlJjs^ zZa(s^q(r>jCi#=tx*cjKM`03L-!ll=2XDOIrL%?tWz@eGgQ)bP9Yw>Tyh9Yg`^IK@ z1hHvj70X4taqSsQDn1@yj>0y)K#!JKMB4Hza)pBOB}FMw9&DCsYD4p1)V&Y`7OQ43 z9C?DKmJu2i(=%3+4O`~*D5gYmY=i(pUI!B+;4JNB4#QT567^D_5u0ajpi-q~$x+>) z!s-72xqWL%cjMvAD#!}$qoW)4nP*~Lz8m-=gh-sgV%*nViQzX|&ks8MZV*oRgd88Ihj@ z-W&k^_u@EKqQc~Y+$lr+N*b#T#495(PDo|iSg|<8VksOvM&h=!2u^{Cdh!smUcq&d zd+JjXhE+8&(AA}>5xR3Kf(>#<4xy-|GV7>rMhN9cGP)CO=4b$b*OFc8Tp#wk)NRwL zR7C9x;?{09$<2}orn10b1(b6YYHXYfjSmXc4^XEbuHy2TqWZBphbO5;LfbfjSmVqT z-GKe#w$*Slu~n-e-FC{IZitu`VidTJRDnyu~GORkn8k+WQ)t zMD|!D1xvcj3X4RnW^0e3-a^a_ zd?9XZwxa(4Vdf_YB&!xn27FcJiYq@Y}IpKR_dJ7m*Hl(^bn6xi*&!HGsaqLWESAa2f%P9Z}QOR)& zs7P(JxPw)iFJtxJq5`@c!q{Y2A~nnx?+LIY%SL0DmNMKTu^zs)tq+nI!RUEFkxCza z;w3TZVRp@KT4M%TAI2!rZ9Gr0bK-H2PCkLG{UleRxu%A0xV}1u=<1tyFHRI%(+HJk z{9xP)HP(vDU#V_pDy)qk5iaDfh=!@eyxc`8m9bF;rw%;Djcwq05~f9P3bM}$Do|<{ zLke|KPAfn#oH5dZpWJY%ZG1q&uSh0?eRmWyJ0*<<>m5weg)l%UQ7ab+-w+N1mx+*- zXSNBvG)q4btdMwlfPsGT`D0UMaz8D+C0vLvXk z;;!FCp<_^OS5rhT>I7GybVo^Xns0h5^${ihSp3STtdl#Vust zxe`wb%9`gUBg?flOhSx#GZ?@I(hgl`mY@)=!AJzxD$%Q35qa?vfGx#Uk85M`7HwCU zC1FIPip#3*E^|24d7uRJZimUeF?oB&FFgETiRcP}!z&6)Xcxuq(VpdtJna#cH^MRX{MjF-gI4_(rV|%6rV6 zFApR_xGk1#+24qQwvGaK=yDSGA1mU$DP|%<;CY0vlYEiFD-PVmQ0OQ*+!dOO9|4w` zY2Y0|0YQ85D7#DkkyKj>*<8cX91I3`=JOULb`Ap1%sd8`rLCIYSWP%RFP5Y55x#wG z_La^$4V3Ct1w6Vrj=Gevge!C{GR8pdYY}OeA;>^F4x6hy$EXFR<+*7N2VXI=wgGVp zqgDfmg^HvlarL4*p;J3t7%~=}#m47W;Wm1s_L!#tUi?bH4n=;)@Y72PCayT69zmv@j+T7U8*uV^y|FXZjJqwC&fq5soVYn}=v( zj(#AMC#*vRinFo{8y zp->b>6k20S)Kql~s6|H^s3;&)a|w!SU|^J}H7wo^rL9~X#8*0$Cj3;gpuqj*oJ)dr zE&y3g#V-q+s)dJ9)_I$eT{4CP62Ys?C>5r?qOC6@?HCn|&K$dfw(x0{qh?sG@d>Gl z%q1ezBm;D}s)0zu1wp=2gy4cUbsXb}%LK9lD8Q}8s8;4-Zknjs^JSORd`u|Lp=;F6 za}R(Hm$=JzVAFn`t(GrQ&=m{~?F|r^2q++9$?j_Z09dI2Ic997G+tEHSFtyH`hZkR zK%L4kJUblMP-qEJwOn|P8v%VHs;b+$iiiWBG19eoPfP`05t(e1<#E&$+^VlIfL>ba zSQ6;-7S;7AR>-Q`IQ3B5QpWMj6r>i*of-X1U|sqM#JxKDfPf-WJi!Upz}9eSJ^Vxg z0dlHya5teDM8)|2WtoV-ho{82P`lzZ4IdHMz+&cLU!{QM&~iG6YPh|hRwa~Iio`!C zLFg@lZG|$3TjPK6h)1Yd>8cR?%mab-8rW1I2K4R`Is^U+F;8|9jlcs(#3qM8a(m4W zRklUUWr1zHV^Wt$`2PR{nQ&oT!m4b!ST+tim1#H3Z%fxB#6%RN%DtY**~p`p!1+x- z9-Ml!iOBKwPAxP#Wz}-@tVk zO5J6eg6o=w(;oqWn zvslc;P2+x=o?_nXm4y!FF32o455&KgwQNS)v6C?l9qI)j(57p-m|tju7F`mq4X9xQ z90d!Ph%AL0wgu(-Qy$rNjp|uv8iAW%L8)!rpeb?828*XW+{^*0>HzsA+r&z0!O`d5 zBX*!cD+hHuK)5M-a~V{mKmb^%!ArW51%QJY-l6<3sD<4hw5YgkTlHm2zNdlhgyc@o zGJ!!`8!QMVlbaJgRMg@XTX^uoP+MEA=HUvIZ!QL9K-c*q?puv@Pg|7-N~TiZ2;X7Z z5MAQ4PogqQ#7i91T7=15+{7(KRtv2&5*03`i+gT0L1}{J1ZW%Lo+B!S8cCmcBpcfS zKn6#f>)IeC0e;bQ-v@H+AimI31&-rJ7OrHWnf$(IEw1$twF@*96?*0~;ljO3&H03v zXhi(XD6XFJgKMrt>Rjr1cNc=*WqDL$(hFMNU?`32sDj)W zj@Sb@-u|xF{n0I z8J7VtvBjN678&AQPJLOM^}*7`#1(zQYEgX4z9kpt7u0YmxRw+c6iI1bVqx%-w@r?v z!WOXR1(^7P>$Hv67gYxh1;o3#1r>{l1PjCnthUPl(PtZ{n6*KfPjL(d+&T>+NgVUy zR8X#5#H_5~AT>@rMur)&5{mnnXe_tlUz7}7srQTGWTKqQ z;IWh^CE^uOX;(0yzA6xzlMF!!2BlarxB%M78efcOafd}?xri4`Luv)o8Z!LN4R#2V zXGF9B@G*k9ew!~~8c3-wEyPjmlHnG}4q2d*B3xd5LOilA1;7yJq zDwJm>IAgms9=c$FjV74yFsgg>KxvBGs)7-?+!~!d2=CQdwHFObe2z!eC>*XL&aMpH zW-<#^(@KE~2WCl3Z-P+DTQF_|N=|0X`UO8h>g_|OQMG(9DGMFu*m&0XmtyKAFCnLs zGLv#zfw3|3xQ#Ui0(a;48XN$;!?{y~uc=e;WA7-iY%B8mruj*4i-vxLDnS>S$o8+> z(9|lT@yOECPD0%U_QMYw+f!d|*XA0k&i* zHSG0x|;e41|T!EpzcQuu4r*lDY?E&F6tg-)YMpy z=|6G2Ij&1<+4?q*br1#erTSE1uT@*uQNWO4l!2x%@f$$1W&Z%h!79i*f-rSh1>f%k zWONI@%XlMTX!LC|Xjc|WQk>Qxv3U21;T9zCgQu|jMo@@xd`r`Iq`Y+&?6XfX%xK~z zvoAuM=#NMz5ttl9Ql%5NqojBQs34@la`j}E*5$}T^cf-=u^%$A2s3m{5UUJ+lS@F> zk)p9FPgQdXu`Iaya_}#&sF4`2yh;Eu1cNs*pFW1?QAeXOjOE;E;FrLUpraUx&1UEV z@^OYRAZpw(zNTUfx5T!V;cJL;yCVMI#3WS^oV9Mwp1a+wGKt2WHF&0{mO2~kHlTDg4!W26om+%@eKrGZV(9LoZw z1b1^Um^W*wh9NlH_ks=2x?~0xTXMqbin6{cWJNl}$rba6o1jF*7t1K7dOC_Ctm2!O zHgQvJw}48TtA`0rSYq~IaL1!zdT@8=#JKs6_pYOwD6xNOnYGRNgj8qa;yEpqz`0eZ zlH7+i+T|nAZG5WC@I%Pr)Pf=k+*Rno1&^yz^vTQiBJuP zlm7q^(!6L3AKgci5K>UCp^DuNlH0hhFu3JY5jOa!p?M6EYfkYl5}zk~ml|-KOhr-> z7IlK=0UV9X(q2_ca>TcYSocM&CZS#oLAKD(mIViG+(L1{3^ipRA_{b-!sw{+Wr^&@ zuK;AjFt|%D1F!a52{?|}Q29HJXi+_gEV^3aAlYa^4G5ui%vTt5Dt6SoQ-Uq=b%?Yh za0WdtoRMY3v5D>N8VkhM#E$H!7U1H3A%R-CWVxX#x`=h7gb`vSEe0ya4y9Dp)Yk~6 z;)_|)9IVu;Wk8zBLOh363*F`}+Z{~Mf(o}gT}`1?k_8?k(0e$X7l)aETN|jrx>~4# zCbOx3NnOP$zD0s4-w{TTTyo2mf(+x#-D}8(tsYN63>*uUGKS)S(WVItBg{<`eMBL3u;_gK*u!QLD}eT$mRMKKq|E7K8&p=v3$e`8!lH+K*2zIAc%rIF|vk7 zrNh<1&zS7BUMHWWndZQ=)0&5&juCjWe+S+kD0tOq{KpxFQ7_Uzn9sa?6HUTs8zRcp zQuqU-&i&y5EsKZIfV!6IFp3L)&Im=;2eIm4pay)9a10`@xjXb;EbY(Q7=5CH;x|fm z4+H=JP+}~3sh4_VWUdw&jApE{GiV7HcL%mz4Fz;Rzd-?q2q8j@-3x{JeAa#OqO|+r z76np{{{Z-#G~^7djpUGe5>wfOU_mG*BGHy1E9pbBCy+_e9X(BraSN#CA`Z`>s7oO? z!Ep-OHbfG;x}pllKd6m)l0AE}`1X{HtKK0006+EWBCnS#pylxd7>0sxH@_T8`r1Ty z$$Oq*u@A?k%Jf_H6l`gS1{1cv&?*4Va|fW?PI5v-O#cAILsCLg1UlHF#`w@&AOfQ} zSOwYKD2f1-4bk$zNmS!AOJ8W$oRY|B@hnDYoV-QcTOE5P-Yq1gJf zEl()j0TsCCJ@lZu+#+!ZYtyv|z8f+M045E9aqW(;k2OLyiuOO6hsGe{wY zaVc``S!5S%4FJzq8M+@a%@y#LLVPiflPhAQL(Bq%F76nWn~L3W4aaQ5ptd3cmX^1r zMrpVNaNv(n@)2RhE76nf0xTt z1THRGYFh-T0fsShgvFn^t03x7na<(>H+Kl{o1}$#YW%!IL}`NU3&klzb1?{N-eB7; zTvzG{HXR$6qKpBTQBdOAvianSjoLQ^LGY;B0R|u}aiRb(_ZEw(Q2-RJM9~3qMyf1( z$9Nk2$_^P^k*_--kN|NXMq9ar8LbB60wQEcq^Y-lWmR|s6%A?`2?QRnSFMPfg0g+5}J1_1#8sV7m9)si+P#U5YADJ zf>!WeJ)jG**N);=B^ansyJ&zMbX$mf31Z?Z?i0kaB`F^fD@B?A0A&_bU~-1gA^k(| z<{=ORm=tYVYY-q!fq?EIT)ad@@u*P6YrDAYn3#{|TzG&S!q5kp06$_B+R{>Q;^K;J zZta*TbJR|KA;9IjA{0P(a@trnJ@pVVJ`GAX5Z9TwZPZF^TX9g5Qkqyc3Cl1<68%Mp$QFz=2Y3Uf%se59b!6yN>UX8IU0%gp~ ztg~{aG~O`?r~uY>#I0o1Zv{JX%)PES1xf})HkHOAjjM%XAV_=6-V-orj~5ln;Hvd3 z%^qgcB{7*DW+BR8T*Rf2rn!OxdX0693YF0d+-ioRxmvxz!IBkQclEw5nu`Nh8mz@HlHm`PEb{#di#$aP7kGk( zoJIq$RX)NEuTYEeHeLbTX=AWmSNRYlZQBgBW+8G^1GS7Gv@=)t>+DMiOa@Bt?*53{ z_>CQISuE*F;U^4xp1G@lAGlA7P~=X1m|Z{~-;>9tA(slMjbfM_zx4u^QrAHRstP?` zjhho|vRDAy9lp>DQPr~^LR>@Tw1GqtW}rBg>rxjK)ULb(2x2w7e?+f)Vg4g<1yEU= zqj`)92Lsv>2XdWH6h{(?YV`q3Clo@_v6urZ81Wbv8spHRHdJC%aKTpA+x$Si(h7+R zM8Zd;I}8twy}ccoW!b-j%tQfV==u-lE*dsa+ZBsoc9UoyoW~`BVk_HTWdj?{rf|fj zuA2H7T&e_PJ0%(ttbq|8e8R=q4Qc+NHX+0j*Zfap0MO93tVrREk!uU9tG&V@5F)jV zP_bzCh+8$4?hFWsR5B9@sge!-*B*B^Wr$b`>H}A3W&~O;*w7clnaIGnG`Bv6#0!QI z_kbQ+0MsyZY4a-lhh8F%R4$Ly6$XZw?)U0l)5N&djR$azmNxpIUU@SSQ<ZD- z+*5gB>R(VZr(rBkRj1PBdWwh|nSy=S5nuiip$&Ty^9|s$IT-`mzfqS3TX7wB27X{+ zDiq392D?i_jZ$-Aq<&>(yTwJ}GD5y~*^X)yqpOu+pt9Gcztn2L&>Qdmyu+@|jTqt~ zMH{M!ussXrTok1ISYqH}w!|Z*-CXiw0a~{U5Zcyt zC=jay{^e1xe8F@E9GTZ&2fEy+(v&MhnPa<`x+5oGC9dn($0j9)W(BilSs< zG8s%oX|1b?2r3~Jh?E&N#0Iw%<*}xkxrE$+?zJ;H&H{1F1v<7=Ggnoqi91?kV*daT z5I7gtmt1_s2W6FG387FMN+@~Lsc3=~jV}KHq{R4|0xpbIM`p2oqus$w^A|T&INz_d zyo@D0{TP5;WL|v%Z<_Q9L%0+c>N2q@xMkYKS7`E89i|czcK z+&|eE7%LU`hyW?AE?^WEa|_z;2!hzP<#}-tBm-F^@I;K^39+$wASYqRa4KCj%s>qc zyGBZ9JM#)cVx_-0(1>2npix7_LZ#=akT5BB0GKK#Da+1uQ%7!Yn2=@Y^TZkehdI5S3d&erqva3esMDqN47^Nbt zXt1g^<|ayWm^7VS3e}4z)PYprqbrKk`FQqaZlpF5l*hCw0+Fu=`o|TC* zzXSFeB~Y(KLbBNQiY75o8?}e#RAw<@^M;~A_CV|Bjd_qxHF`v2^c0O0Pa5t2jUYz<0 zP_|ZU*J$ostF-i6ZYwGdb8?!u{3x(XM>760wV6b&8x6zjs4k~Oy-IqCd_*+d0_`Qu z-WVXJ9$>2W^navpATdy-Iw1&X%wlbZ7`dmq#jZ8L1S8Z|JP87hC;%SEqmUDKV6VxP z;wryT-^^SOyw}n^E+7yIjf@JpmDB}8RVb{kt`@Jj1v>lL=%$hzqzB!O&21s*F~XK~q(0 z(=n-VJW&*v;u#F$IULk$Gw}wSgH6gqS%ExShU%A4IA*WfHq66|j0IHP%*M>Tz~xenW~R?hJjB|j zIPn>Qwc&p;`3l?w?@mGiG%=R;!5DVVVSlM+#YPE13}7;y%ODWKm6BbXa>`IwvL*#V zM`Qm0t^{@6l}}S!7GrR2p-ROu$#mzWB_d2%0pQuhHBy`S0yJDMp$n~b8V3GWyOg|8 zKqDMj7V0?%h-Jwru7}wjW~*xI;VG0l3tH$c`@s28i-2q;%ZH`?2ucd5ja_1He9Fvy z7`4o-VpghAW@C43P}ue&n0$$GqXOCqP+@H@)>~rfY(OgOZF3yMk333aJD2{(sF~u! zW-h`EAnR~mO$V3@s-lN;t!Svj1yFF2*fYX&00x$&0A9BAL0(qg$#I2s7`{<{A(9x{ zHyf6!uN+GTi{)hu85oXSjUmj$Y;kl#stkp$F{Xn6f(vw-PT&{ps7(v5_?NV;_bLU3 z(qPtUiB!EWGSx~tY7?Tsjsk?siAe#_N}8#)@hEd!mE5QnBbcIC4R3QlHt^~ZT%4Uk zP)|rgrpi)#&I;#W3JZ{(bp>evZl3niJ1RwFS1cHpNiMOkg+^$TKGp}4}i z^u-5pQ4JT^?11M#;V&%a{@>g?BPn%oIy@;2r+=FeoSc6tsM#tLu$d|g{-}{`3`IEE z_lkr8wS!QjtAR!!Z#Mq`gT&J<_e`>!dtj7aizCu>C_R*@aKKOo36W^(28$f)F3#es zZ>9BEoY`V~2j&U^wP==o<-+CUDV9gvN~DR(Tlt1CdY)xz9FdmZ_?T9WMj+e7N^8_D zs3zFGTnK|vfGf(tKe)Ftw9Cam9+uIL{Q**_P_fU@R(G152BE(-m?sgT%)M3&ALK!Z zd_;O0R3#cAD$vCUh-rafzJ#K-9wOqnl`uW0NY4q?`Y{p!EnNgFzn~H5hWPr3G}jCK z5JA=Y22(0D1f?-%SGUo32u72cl~HnaDp_{hn8p=Rr9*F0?G`O}Y}|MNH2(m^OIG}s z3|LbZ7j1P?gavj`;fn$JmHaT6xZ1=P@e%^>s5rZwF$x8)F)Y?uQM)BK;x;la234fW zuMj|Aw6$+_63Aj&E?fYzb@+#ni<{+?>W0q;+9o(_Rk@%--d~_m&@2_yxI2Y%eW!B+ z>Pc-|6&$iGR(Ayh#6c-6iO3#`mDaj*3L*tk<@>>{NZUg(Dh2N`#|9DC;sw|zLFX}0 zuMnlwz(6eJu43ZF(-pGi+v|0#Oj6!@^g=Y#r_4<1awQ%rYZHY^<+m<1+H~+c2o-@? zAkms-CnQ3&i|C3FppGp=I~bm`IW!gAsiyc-mGKr}=3L$8KU0$O5t|dO>30x;%EJNT z{$Q4Ux2Z&`?<*3ZZ6eui4{;Pv32p!p)vWUFAgtEHIXVLDm77>WxEa;OZK?-S>t!0R z=38yI%mQ9c8CD4ttzha17^>r$l-o7Fp-@URMoJvOYz^BnZbrs5hC<@QlC%)Wtkgxn znP6Kfa?!=jhA#?~%CzN_(ga~h>spnmp(ym?-}+kJ$$Z*7BbWVqr9|BhqKyaz*)|(AHxX%g6NiL-`Z4= zA*NEE?SC+}Sy<(j6ui2Ez^}Y6q+(g_g0PEgPqbV5LeSJoVhGsBZxAb19`O|wL^00V zi;^ix(OZQIi)0QPg@il0l$Ql%ZMbgjKM|8o^mQ!{_AJ{W1lX3fE3_4Zhy*~>Wty4P zIWtUS`=@Lsa6|+xO$lqf-j*{~IVoeSytfSSKso4&dSy#^9%2J<3acV=E`hvzK`I7^ z5G6Q8%%C9gpLkJJEm7Rxs5Vy8?PsvKF+gMtW+82DQ1NgrN-70zmQ({xUEEUCuAnqPZJWsDq1=aSPB(&99@xZhV?C^rn6eVRt`(VeOPXD0Tz;&GX*1UBt%8X z$=qFI!C$)q8xCbeLZ)^@_Np9#$KC;nfc8BQL>4<4@iQY9?#jjk>|gm}@jgbwUrQC0 z-b38P>_vnn(m=a@C#rD1%n>YXeE=B51xhKuOUy#HxPb2H#93vh(bTR}#Q+@q;#G7c z(d2$w`+8GesYjnoR=9#`#0pHuf@ez>K=c!#Vuq0-0Efh_tN>0NlR9Z0Pn1Hwn(YSIIb1VUvmH@FThmlz+LD8D}dK9>kIB&B4$@CE@i`agAh&8D=vBUyH-A^c&FwP?i}KN$8Z1z28ql9^9Ttg zJe3O~iUyLX7o2)Bq+Fd!t%9B*YeaCS$!08W4W6l1D8*`5?m$4O%EJ($ANWh@a^lOH zQc8N62qLlMa- zpNN&6*QLzd!8Q?(GJ%3D3*U*C;MFqz(O$zs=iw3A!JGAC3?SnXK)G$+yg?ju0)h0p zWyMFs-eV3Imc3m|RX(`!3UK3y2Q4kv^AgK8f$*m>FjA>SrB2`afT|5=tn(4!?lvs3 zcyZ~ei{3kyh-LO5Eda`_JjAV+6qFW0Z)6v2INdOWG~ID>-~(iDxD~dC+8|mMHb^U2sJlGH(FIU< z5Gf2H0|xuzHHNPQs>e^_B^Miw3zhIe?^8IIs^U&{-w?A*XTayVonoECdV>ecWTjgcQs zsT>bBOy~z@k~>_BhGS%c4Eqld1gQgKU6EDQc+GVhIC&wPK+`%Qs2Jsqu|u|82dIn5 z)2O5v5(v%x7F8k_9+yQL>T7eDvbAHlja5rbuwG>j?#srnzU9rrb%G`VqPZ#r>u&<4vrt`xqglpbcsmfg>iD^a`64cYtu>P79uwyA5!l+R z)-eX$xe24(T3Ol6j9xgP8Uxy3C*zBl2*k|WL5fM5fUB6zl}gJlBI>IBEYgTNEp9h? zWhu2^4>8mnC?E*jD3{`2uUwH`qP@Y4fAiE)9%c$bfKV0G0HFt02?l8vBYo$hjBHDb zw=k1gU9{zu!pqIT{6iQoWipozZIXdfR&+HH!_`4maU03@O!v{QO8Au4g`)HRCRBj8 z{{W1!R2jNY)KK<|82 z8(;l#GiesZ^?k-vkOd%mVHPH7pu+|t*G(9hKa7>(C~+++7e<+5p@UJsX@&^RSl5`X z0;>fBv55o&4y&yG;sQAmxG4SRDbWl9*~#KQJe5#SoRMb(Kqwv$^{hMRJY9K=n${&g zhyvv5QM4)m{E+P8+h-8uCiV^2agGGExL#kN1)w`+@Ydrv@pa0{5S5I|d2Y$7FOQ+CAn zhBAXF&U_E<7kJ#O8~*?#W8zeTXPf4cBGW{`Dffnq)Jo+YKK{48ZlZNicIVzV-3M&Y zT!{mOnKb|nhQ^`VT47KjUCDTOhFB+eG?Nh(lx1j!gOUv(hV}}G5UWL&$HXe)*vf!9 zj&LiuE~239$CxY-8e#TaP|KUB)gS|(Z^R%PnkoCjDK_f}PGC_8MaMeSCxB!-f>T{f zGcUuK)sZC_SPT#t($r=1G0+(MOV9`$BYC2>jP`s^AR%l>bYNb0yBS{_P&g{c#_rTUs{LKL2j)z2*`IRNLT4xybYHmT!Dcz zxIGZ_0i5!OvP8E2T>wqXHw3tEF%b`Ntd$48+vFMWK;xTy(v`~TXswKp% z=Qk6_R9gQ4Vpnb@Tl}BQcqXNB_kaZm@_JAL*Ikhi!+>?>P#mM`_M!r@71ePH-X53q zuG~MO2H3XWhAug(7ct_pq;~mX0gww9aWqk+2u+U02Php2Dnofa4ZC1FffQP**Sw!z*t8KvV0C$e0)}tQmIxyxKiWOgwNz4!jjOqAm6~3FYOiRR2};YDPx@)2rZoV=mD=$HDX>=(>A0_{TyV8o7*e&@ zQ!=&8ub$%ZWH!7HiFHDX%Blq@GJ`h}k1k8ZLv3;8%r@+DgeAs!sEzRoKK}sVediY( z#xGv*78j{^5S(E-n->5|G8sc}WJhb$5msATm}pqj0c6MeHJ2`2xPk%A!7AO#OO4cJ zfn!wj6fBesy4xvl9`P14+dD*|bb5}d00%x{Of4e*7)&g;D+T8e`(AKHtDnqYl!Dvm z9}IhRbFh7{aJW@%>b%7H5L*7Ax6(_?crISCg;(4m$(*NII3q6#rPBMDPD8o;M;j`v zq5&CjH&AXJa=Vq%<-GmnJcwO}ukQjE_#6Geu&*qj29CLBagS4U2)i(fUOVVZa8Jb% zh_JH5a^nEw5jps!3X(@n@m^*YcS9vBdV^`p#A7fmw?AkY5`bZQ)JuT&KJ@~i@CC{( zGw%$-`_Jry0IO6nG&(hjj{$xqo&pH<>xqepj;1=4v=ea?l?B_>RQ==Uk*z<7hKd7XxEGQFgk#m( zfvk^ugD?!MtQzYq>=y?J_>P!E%5fb}^Og!r?{ul^=*51K@?n&{S^o{sKf$0Uw`2lMpRj z`Xws0jb&6)*+#~doIYXe4FMKWL@nVwj9$&Li>Cv^QhUU*memTDjAqAN#XKH`!bd*y zkXASmkbSRb0e+myiZ;!W?t!ULqIQTWg4e`3N>X?r;Ti~Lr5$9GGSO@ z088EHKS*Ta#O5Ff*z4DDO6(5aU?8ETHb-+c^XR5SpuMxy08=q2@H~2f0s+4o{{W9Z z((u@(@~{`SVMYmx#5I3NrPnZBL?CUkfDb=H0!KB-H|+yAMv>gGVy(2EVXQri)T$H1 z{`qp{`dqjp8D83i+XUFxv~7w63u|5&fk+I>7QW{Mpfs%92IEu~zF|iSwt>Usjb#?7 zWzQ1eS;bzWrjBX@L!53lEtV9ogP`{ z2w)khl%d(rUbL26l9_#yswNzs^DX96ts5Soava7`Sm~F;1mYWl8{#m6jhl>zY?lX> zJ;lJDdymGW^9#i;BFvWMK?aR)4!lgfn?!}!S7?AP0`B6u0|%JUMQy4WFTyo5RCnA< zEh=OhDl|ZOBZiFQJ<8in_?E$Xj=-3XoRd6OvvBUF_J2@T1&1WC=|xp6!6+gS6?i#| z!BehccRe#9N7XDurI*ZNgIBqi8sG&2>0R4Lh%A^iOR6fk!~=2fh+qYBbV~)~Hyy1N zmMs9F!N5cS$WSuGD=AoRUtNi?lrH*>t)ft6d5S<5iouI*!YXHT0bAyEm(&4N+sxYH zDRy#9E!7sX#!;dM008DR5d*|vHis(aFR%jv4x$C87_Trbi+RKX)tCMoCCi98of0%_HX&$W`hJfL3EyrO&uXuoSfM3ezk(VjyHIxL{gW1OrGJ?lPhZ z|0$m(Sg;heHdz^V8VTu_pDT0)s-lO+G8+4E=dpzg3_0w7%`)4+;OA8HR73{c& zi&HAlH@HN>m=(kYpp}Ed5(=*zJIoFVG>6(TB}nxbZ&1ttb&Q1`Tjp?qi8%BmY%~^E z0-H;?0YTJ7@-50sidV}oAQtfbCTPB>r76x{eWf(XU7)hT(Cz@sv?3K{fE|*_IZeFE z&>yEF)ZbhJj`1 zE?_wccrgHO9wXx=u`mrAl!|5af@X^YEZa|&7TB20huR1r6k?WKaaGg-O{c-)J6RVD zRm#U>Iaz9A>0!9{I*QiHik{@<@he)dgX!$RGd?I^=BTo>(JcO)}El;KWO<*u9i@8<$(ssZ_ztb z3#|HHT7X_N0DQhOT5Hq^Mp5sN%8cujyp9it?2aWXn0Fmzf^FoMy!|3dwP^5+3&o?i zIrS|`m%$wsNDA5tdNM`b9#;YPkGfHC20!=2y`ub`6@R$dRlvhs&HV<|^UX_PRSc|C zF$gA{#2)Yp^Zx)*oM>*w3zmRcF1hgn5yM`Ea}gSaYNf^*ig3jXE^B^)ezbE=C%cGF zg4cZ7{R=}N6#HBdMJdw}>b@;V?ZZ&-(Zn)qJ` zqq_?aPyzuuWgu^WV7QgZMhA$Uy8z}6B3?>vih-(3AlLy<#=FVX`P1OLE9H`HqaWr+h{P$mksA4ld0^g0}H4C=8P*TA6no z8QSxxwN0~_i8Hm|2`ZAhix)M8*h?@86{qbR2%!AOQAP8}hgn~kGQCN+ab(UnLIKCJ<6|;fNu+I(Qn1oPh_lWi{fRtetx12$v zIo|DpZc};Orpjn#YSGqUf)ygYlAVkO+74lo-MhH1?&<~7z2b6X-cj3?hziKzConGv z!R=~-0H`GjM$g==>uIEbDn`l}dYS`GIk~6s76xSP?gr6M%(7H_?UMD5Ziqm((kW&C96VWW44#ZfnFDewe9s7Tbkb(&iy)tHetN za0yoR>I+e(ZY5M!GQ?52ai=g1=TiL%5N|S^BR(^> z1{(XUGfkCn0#?q@bZL&6nvAml07$AE9qF5xc)UVjYS3=_g61tJ5d#5w)KWph%TCpk zsIv>ndwP#t$O|R@rK15$GPa_?=2k|RIJBWDEvGg5hPe5on2wJCbt+l1>F4hU1uQwJ zpcZ4DzGZ~9Re~(RyHJg$_Bi-}Dg_imMTjT$EL6smVJrh|fy?G%F4Ms{#r@v%iWi|Z z^P$J|fmQ~gFU-o0#J2c@wIr;ImL|9qL^wn5_L*I@h65?xEYP9cTY}xzVB})r2t%ixUfG4Yt8qklc5up*5Z&lq$0*cWDuTWuuJJ&{ zMZzX*+bpe*qp3+{uOV1U#4%S0a-Pr_du9$ayp`=9jpr8y(|<7`jCT&#Q7su^@)#WRA%||+*u~h753(*Lh*<{6#xCn(y2}osv>6a-kT)BVgG>#P$ zLetE=LfGE!b1Gyh?+*Qg8BP|$3Jsh`%f|j9nnPQAmz0r(-BfxQfnTY$o`wJxb6ffX z;44r&TI`8Zs|w3Sbt-a?iE7(esDT5Rk0LvUs27Y*ItN@|dK%1ctNI<^wV(pg?K7eo z>e}Ly(Yu~q=hOjfS!-Hjc6tOum=K~=zGaXr;;{iTXp{m@nO4^3fyHE ztv~=^f~-HeNNQ8K8H{rRYu`||Hm@*>*@V496DMgwx#aiaBFPOUg-w^ZO(>i| z$+$!Ugpi9*i->9{$=MWH8cA^l70gb94%q6KSBTg~U+xjhbzvx=VMq=Px2V_;Az6UL zvW6n$t{e1pS%v_gXjSv@P0?Gmsu0&Dwbixs(V)fKs3~>ngve7$@s2jiW zJdwa3oJT-H=u|)}Mbbbl6T>JX#eUGiVsJMAK%Gt3Yc)cMWS# zF#=b%6phH#HzLqp^VFgR1yhOELP@S8YyC~)vzsvj!9C)dYGx=`8T2yLpqvhBbD}c_ zQGgd|%o`9a$C=fdf>FTaf+Cq;{YOxsmfulafMVf=94mV!6-yvhCIDtIB)Sxl#C3Cl z+RW7a$NkP?>#T@o)On#4I`)GrdmZ_L9hn<|DGJdEgxXvRX~Qm?wD zkX@RF!F8CR{!*Z{F2YUgOkxjhOPh)UR-$!8$z_wOWw>8z* zBwK}ZOY!d!YJ_m)gKiX{D>9(4Hf{KpBL_T@S_U4(v}KlN<1aa#uf)87_)EP7W1XL< z?h|Pqi1Zmn@y)}a4)2gL4cjf^;96NuSgv4JaY&wtNZ`r`ZAycAW7A5@RSRxtYvjL(?eVfI zMbt8^Sgwr6P?@f30h}XBAT9Wp4ZeWAdW~P1MwYsWDyhg^vaBqMgp(hlXJYBEOH#LZ zghNmuU@wcsTikT>R68lba(b8S}@+N&!Eh~pI&FAmQTWsn$a5~k|- zjuEiEd5xj~+WBI_ZIr31HHc*{D;y0@W=%1&OU>R77{&LE z4W_VHRZzqz0*VVubBjFbTSs2)e3Xm%S#tM-|50vDdw@#q&a>$_Qs!3x)$ z!$258w&hyX5{cdYTib3n)?zxC1HyUdezbKqWI99QW^`y-GoEgRMRSOh`X#usJdbd( zrmaaa-U*9esVEAIojdTmjZ}syM7-A8w?~M~!9@1o@e#TOUlRPeK;`bn0{2qX7h-M% zg6s|+qbpF*jvM;ukt$*v382?Zc#JV9W$%-zdtT#5zWvvRRk<<_bUF6$8$#TT^#l)mZQML7DdrMV$ z!0{2S;W?IxU4+CzR_0J87YuIY3siGZ1>w7=P*S6A6VVCURbW0np~k^SwZvATVeVR0 zm#q*uIl~8I*&b7ntEiUg+VL57%|@tia~neS0t>d_{$-F=VNmvtGc(4ZTXrfut%{CF z!mBEV0-gz{r;CM`Q#P!10R#Z8HR{L#*pXC*s>MZCF6^bjVZ;pF%?PS7)Y zV!T~5ET}P?b>Qjo>rj8*b1KthI0aiQ5Q*~vTxS2o$PNNIB06g&+CTy2un)ZgTLAo_tC8KO82zve8 z2rVjBUlQ+N8SR#)-*aVJ+GiCOBaonR1#P?v+$b9fT==N2lnX2wKyK~>;u3tqrZQK* z$CyPQD)e(3x{cmLaGR<7okO+^&}YIF%7`B<4gxx-QPn7C5KX+Mocdv<_>{G7nuz33 z($*L(K}?kegyERyaLFF33>?96lB6=MSB?GVWPo{ef`EbmxTeWAa{|DCOF>z4b8O{4 z5W+-+4sx$tMxx;|#}%lnV72XQhAKw4Rl^HdWf9_(VMeA^<^i}e0=SqJytAl9u*(i5 z0CccjsbN(Jd15G8qQuZ##fmm*<{*I#gQ%NoalsXBaMk=qyuhTr!vRZ&8kGz*Sx#b* zowKP>f^t=S#3wKWOlYR}Eoq@##jdSycRpPVO`Yy;1wtW&x?2{{7Yej1tBm!rZ##ml zRmGvbXtMRdi6(|ids zcAU!$PcINUg*FLXU_$7Wbx?u|Y9iFYXhPs*zlmAMR^S`5v%@R^TW!SXc5dYXiptcW ziI*!3!VX_pQl*O5MP|}dO8GK1AFgSV#Roq3DUgd`CO+aB_ zmXh@x@OpM4S%woa1{Uo&l!J#(PT_J}UN-^cp|~gnwj)3sF>yhMzT=3hnZL|cY6f!5 z9@r4DuDy^-s4qD2Dgb;!Wwl=0-Fc3QRkqL{tn z&zRQ6#$;eEL$CsbDnP4KS&l;$bZdh>hPjtd>-{ zS7mb^a4@W|>J2^$gC6KF8yQT23%|-xrUkUiG?8mDB&BfNK+bW~0&SsJ08S2+%=V?{ zh@cLsgs@z%L<004Aj-n^0d-8uc`$w8wc0GsD~KFk*pazoi=OFn{+oy<;h7c|OF9Rc zTccS(*HY%VqcWJ5TCSLZ0Ui*XRb^4cyDc7TGPfDA*h0+;FQ0gA7Tb6+5~QqTg<{-c zdzf8Un(7zWHG`=@h-x)eH*sJDAv6M~4# zU&$L=A|EgPdU2V2X@%r4L$R@xBH>?yk?1M*m<4w|o|Y`!!sBKdhNo&0rOOht4@EMu z9TgWYd&5Fjyy^fH6i3lkRbq=AU%vh2;Mgh+3^Ii&=2bq7CEJ2oZyi*vFODJB^`pO_ zw~1n46dW@l{_yiGh(y15fVys?7X>nkyro=4*~w6?kTx)g^dkv&72m{7C&T);$OQm2?|RSWQjmXi%& zmkI-4`I>rOu(hR6b#7{|Sg|4mAVWd)aT427tA{~dJl2T=?sJsv8`*< zbsS~@VZQuAW-Vt-vlir=qjG?v!A?g}34O6lkBMm{To(h2^EYngaYkFSnUE!Q5Lyp0 zMZ9?2Av$#cx0B)+gyS-@=Paqrin`Mj#t<&N%LN=ckACJ(iM-omd=P-sPqao>9TLVM zE?Ko!qk)G$h6mBoCD|RI>LKg{DHO@gZeea2xma9MtyFUh?iWq%iK|zO4{*&Z8oC*J zJaL)`AX`h*%q~^zvC^S-kOfqrSl?DZa;X|1Dvy~!ImK=E@eKkrz00Lfre@S0n8>u%%G9>t!b(DG z5xRRqrVpW|WgNg6g)x*$tE~Dp!=6Y+#nr?XOFEho6e|#_CtgV5#5IArd4Xxruav|rF=$pEV|C7X z#1XDd^)o@9Dh1HsWU?Z!sX2fM0h4u7yn!=J%Hs;c;!|B=ZY-Sk@p26$GZnWUlyIyhuEojOGp>tR zxJLoUygKRz8i>k&A}U{rbp|PT$M*@LK<2R?Q0-0B44SFnzT)4b7+SOv?3!XOLb!5s zxKlz`K(ukWb!!G&niP#S5ViTt#|pV_R=7Q))x@64ngC*r!Rn>VLJ`SXPn$t?9RO{9 z@XIg^;8C1tz09;0Ml!VOY~N>6q$V9_Qp*-)tfn!2$_{qXd(H8o{JJEu>A^3 z0#{5wq8ZJu_f~&DN`Y%pvTKjv8JGB?jYhZ6qMHcy)kQ7JQ;C{mx`@&;msbYNdJ{lA zki;fhaXxsNpvxW+D(KQ#VG=Txg*ph!-o<*eU!OqM1w&gWYQjMfM#m(e2QWVgQaH-K z24uBd#@>Rj16qiCQ`sO3Acp zWlx}U1tN?SG2^CiI)#W8kmltEG}XEyWbcRpE!G!?1WdOFh*br%n1H%NvWtkYw*FwR z4MAn*Arb64T9#MXsWiQj@GjicP&AujC~le5E}%M9(GhGt^Dg%i@H&72D{`d@v?0LT z5tg+2UQj8|nLu%?@fe_5$#s~o%d-CfQ3jz*Hq^*HEI86Z6_cXdE&dd`FvDJpQpgn- zY^M4?VtR&-;9FT~PA9~4rHw?#Jf7pPW?$`DUgpdObp(LVA`n+wLS*K#n#^FA6GNNC z1&VA-OYhe83SohuwAtNu!y%^5B9JMMGR3z;iE5&qvDM4RnO2ljQh)_9s30kAU^|#W zU8w41MWl|i&f^ga0utRtUqG(+K1?Mk1oiu2ns84dI?pAYFPIVw6e> zmsSl&BSWazHH>>e@kj8LuGAID7}c?zN-gwqXbGVb`?Gbc8xiGLema8>OIiY>JB6#_C=KotF{CwKWsy=| zNw?5mMOBe7TZp#YHJe@~&6dC;bj(1(!B}C1B-y-k2QoA-iFS(=%gc!OG9n~!Y>h~u z&Fx7@w?X%Wv|jG&7fx3^$`u>NwHzcMh9v_zl($=eDyNIw9tRA6&lC1xI(4Mz(7%NnR5Lwb8_aIK5iNaTnCUSir5tmpzfmb_OO) zvCIQf)CS^%S5aaV8n3sa>376h!?BkT&*Clb8ha(KrkCO^P9los#!9(s_S*s2`Q{%X zEg-CY<=w+Mf}N40J{K)JAhl*bYY$Nf6zE!^e8MG(W%h|tu<8Jb+c4C_uH&07?IT6F zR~Uxi1fatf%HL$)|?<=US;^1F8!(7DdehmuW-%vVD>+?+>AtA;w=3LMN zGSC-Y&J%TJVixY;rQ!X-50>MFNvUFld`nv_4QH5y96N$Rx;cpLmRyf1jBQF%TUL!8 zWdIkbtO6$y!FtvrLdm21jX;C(#;?ODsm2;0RLyh{A`+507Y&b4E~&YW-~5}LIvS%p z?6zKM9xuEJA|%FcEDnQAj}#KslHePRHYA4dIepcKcBow1x3C3 zB?jZ}Le?~LTLfX|iER6K41-gJ*NIoV-H75 zsQse6unroXk+J~ZA~xP~bu1Rr8C9=5#VmsSz2k)g3_6G=<$;8Pa7O*0-A^UJk@p*v z+4fN@#<34DE;aM2fNwS4O2C6{;F?rl+FDabcEPIypqBKTJBdZx^^6yKjCg}!ocifR zyl6XwCX)XE&vhs#c#i(0?RY}Q5+DgdwH$bJ2qgJdc{#XTkGQ}i&krzhp$ik$AS>cJ zm9cS)H#69kt~ZuETXy0I7S=kM8pHOMlv3~4RoYp@uv|3<0@s<1i0>S~IJPgNRK}Ii`Y(+OQK&Qmg7BpwqMLlkX z5c0eJWs}oFs5_XBKowT{h`nvqK~}1Ns7RG}IPMcv6ca`w9(OIOjJX9TBs!VouuX>i zz@Wkc1~$Wi_I2;?HRyo%hs*H?5Edh2=(A{jPogSe-QJXqSk^f-GX11fY9R{1mcuXi+cnW^y3Dati-9t7w}=P@ zQ*Usr-eVM{G0a*hz5{W=G2S(GbpI8V5FdG*-+RTzGGQ9Qa~ibVJZUIt{{BT zKM^$aq>Zc@@d>V%aRaWm{{X35Q;A*6JuHI{FmFs0$u!3~X@m{ZCjwiM-r_kB4h1VU2;Dv4rL3l&I5fCf{T10z0m0|v`? z95G{H6$V49jhpKQv)-ce3j!m(G&z+;m8I!rB8`Hm+<7e}ZyiHI(Upv|42rk2+5<_0 zET@RLysWg}Y+lheo;<;KG~kXB_IX55fUrUKhy)e^vD8A6u(-AgnuQIj14k`~QrtX~ zN!%`qP>(*)CDkv=qS3Or7xxJ(tSw9*K%sLfDiBz4?E{vuTrgtrF5+3$47mppRZD{~ z+KvtcJEqn0;HbM3F~XH)%a}r>I+kFlk03vY_}ePG9_AP~fy>;e^vuTKM#`&z2lpDW zk$jK<65iYAs0%}qJSA-O6x3U&6`~RJ@|cg6~+iU`t@fMu?LDE{Y z14Djgbgjze!MLX(5f!7KGcwlWP|zn($3ewZ6bKcngap%|@=P_J)Rgo3<|$Gfv2W@Y z+dbw18?^vRAs4H@APv;jv*!bO1F-Y$1SN@Lb18t$b1j0a35$sUDXhL>hJ^%L*SV^J zRV}}7X|iaRi-w|smcv;5!$%U{as5JZwc8bYJVAeLu=0)H;yu6tF@pqiu!BU&R?!eg z8^bsVbTWmNX5QsdnmMSR@s_Geb=WrV6FY6_yiKEg@Hk4jaU0ddnV( zq`}cFT`{VT1Xc9R0DO$Rs=;&jnpI;$w#R0rJdwdx7+5F|bnY2&W;2ReX08#21TKyr zpVYkq%LjEBp}3XT64D0ljl%fQ6s@-Nm_#O<P;K^sc8!Z7{Ng2N4^oEWHk7tT0SD3BjpV9J z9Lr!WizQ2YV5Xw0s2d0!*D+n(U9~}hPt1E5*48{Rc2)5b`SdO@^?g^UMiXKi(AI5= zgOPt8q%s1B4<7K-T2F6V`j4rm5nDR{01iq31p|`&-TmXUA0lUg#qZ)Z2Rer30__fU zIBR^JV}6V=3bYb}B}UkEHwM!ASDK-rh-VNT0!Ld3SoexVP&2twQ#2T7%)-m})TB@y z#0;SWlGmaDr#Gk_DwyKtC=0Zeq(f765ojOV+&>DP^$>LSpkTBNAkML6sY=L9lM) zkEAdHk%>hdId{dIACa`O7`?iDqCAQ5g^gjeF_<=Mj3v0moj4@#w?Lr zEgv4IPVyfe8u^5u2Tl8xiUEMlS6AXZ1$uMn#0KC(u-{OqwDWhU0NwpXYj`ws6~mX9 zq5&4sYReMUyMj9Z0B=~bn2UTuN(IplsdorZ%NSu}Ut&Vx!_W+$6zP$&s*(&`O}vssIFaHy~JyNy6c#ldR^5Uqj+9NGDWfGY4Y z3|J`UAe}piod}KlA#MgciCjfkCCP}44{%azW(eRk&iakI*r~dCf`AC-=J|pD038l% zi9!)%I_ExO-30llYOOH5!*d!PL2X@1d5EBtzTj3$ucfA?YR#@l)N26EQ{VOKk`0ZW1@y73g8lKzOn8wxheqBa2z{i7qN792h$HPJ5r0C%x5YK*tI z0)lED8tyciy@x(72+*r<8(D}n7)@6!RzTAEj(`Txv6Zgy2YR@z0K0L0K_hdsYws4I zHZ>L=^te{w&1eR^PQa2Gi^+PXx%ZBInH&dkg{9zdcvwMLrr2G8ue@WLaYU&tE%Q)x z%gwm*BgqX~+{$VT3$g-?+gfElR1t2v@eVXa!Q4d-hP|beptaEAB^(>WHs)=$2PPp> z)}AoS@dtubr8YdolS6qri>Uj{8lh107Ug7H0>B6xB^M}Tm_mi1=@4#Z*r8{cipE}N zFc-|Kc@E{+z|C%B=rNr_qO5R8Y`}5UPz<~O0JJFuy{mUBtgb7Ig<0%2a*@{R*#katGLP;+Rn5NakAlFitD{i62LBBD#GN`nS z#cEz^4MQrJ;4a?cEK}|0UN!`RgiaZC8~&I+M$3s32tG4 zY)zdv3%Bt$F9#5*@hrBM*nWC}pDl4JIWTJ15hhw{;K^~*D5(3(O(`LeyZ3@{BgDWK zpomK`4P_~$o>Jymmd_Eq34$tOBRCc1_=@*SXqXVjD45btt5fg}PZm1Zdi#u{LGa@lAy}53Si(m z<~%lCLCn@JJOf9W&c!to;9et8kj!8Jd5XohqS_KE3N67-!n~2AE!Y~rWA}&dD&bu9 zpS)%kWJ+Oohziv0Am~--0UI{hma+GDDFA3W>LCPe{17f6Ay=0lF`w!)s>5@>@dM1?i=nG?l+`OS{_8~<;5*_W}{6R9b4ieK| z#Ku-*u_!!a(yR=vJU?WWx&|86PqPzRIuJt4`|06v!LYIQxd|eaZ4Im628$ zDM0BrM!u!!uSP6jp=uz-RCO7tX)LL2LCr=MhSp{!7-$G!qtOSAwQ~zW^M61nVlv$L z^keiNaA(Q@_vSR$DUDj?W)RR^f^gX~qSviiy@%#n0|PEGUOOd-qLRveYydSE5rbB} z5VT`&Q`;yh+sDM;+aH~RpwcJ?Ya8O%psmgBJ z`^)grpjMfO6F_wf(ZbzIOFi1m7zX9A#lAgkkA~w{cNM(NrOBGsp^(incn~`=0u)6U zs8#E^by0IpLeYj&saijbMU`XM65|CFi~>c)Uo!ZE+0?*lc_Jc|Fp&te%ofunwU*_> zpAZ)d5d;{31>cfp*seVu%?EOk9o`Hx86wrT7`Ai)UnrXTa90s(wWjIScNcBbh0y`( z886_46`Qvb^@^srUClI%r&~Z?kGHi{jtItqqQE)M|RWN#j0YR>=7GbyzIQNQZ z8Ahr(jsy;tSBMWx6Dh2+!wfeN1Q$}pVgXKT$rx9HwH$zj#+`@6A8Jv&uS7moHY?&8 zR2uHSWv1<};B;>b)aB8OlrG-&DmqbAxW46r)1wqeSPmu;U5t=hCRv4oSobDPXSr~@ z&(leYk*?yS&@lmHw6tJ7^A*yeM{M7t4!AD&y>SD6aJd6ly0 z{8wL%BQ^8`jPaGqg+4_4w!Y&Fz0 zvx>SrF!aWH7}$984LFPYOZX4GI+^tId4OAxdbrU=bE~;|3bR{SG}U0N)CMqF1&P2I!u)772vcnUFR-q|%i3`0BI}pOMR7}Uo&WOeg z@;3LIdRLQi@Pvl8iiI(Jt{J*mw&ggo;*%}QJhKef)yN^tN2qNBmz^kt=;(+8! z;^A0tm@dV%AS7I6(+i;3g&fK&!V_`&bd2Hee$`-5jEP)jyDsA}M` ztHGuy2~@#*j0)Ooh;+;SJj~|~PZ0oTK$yQI*|P6&Q5S8;DuoZ6H7h+yvs-Bs8E=?<{!}o)gqC8U%@9pVP+S8s!U!6{{ zd1aHR2MyrjTow@Y>ReMXtGH+#-+jUkoB9+s{Vq~fZPIV>FiOb^ECSx#o`_J?7K{gn z<|2u>puC=-(8-{~z#?#HMc&}6PX;jac-wN{W@5q``t24Fl0Q*|uoh-fPv z!_9iuGaPy|2&672L{{h4T0Q*3yqXyu=PaaFRf}`~0FA%`DguMh+E6vSQ41CTt(XsN z;s!cs+Bxwss;xJNJrI)KL~MNo#d@)3?cOZ&E6ufFJ{^0I0f%WES8NU_=edJ9;=FC2bz`RJWDZT+;)o9M(E2a^zQDt^gvgM zqflo&%kyh4p>H)P;T=F_sOlMDJG4g{PCP?LnePywkEv9tLz*t9YeE!UzQOu~#ZnfU zuYZ^zYvX~^vEhTCy?ONM7OFWxrnBZ_)(v@p0N>G2yNinS zKuSoW+!bhhs@Ofl_5~K;{$gHjS%2B?Elw3Nc>Bd1j8wF8u$I_w1a27t-JjqDBKk;G1(5jWG=wUIJZ&qy}DQ4Y7zOrSzSRr_krB0K$dd4ZNL5S3 zTNdu%5<9#^8iJ*T(7Z%+sZbJk4W-smVuN)7dmOKcYc%F)ORK02D^QJcA84bL@3<4E z72KtxTxuA|(sc)v9YeO5E%7maT~<|uc*U>bok7@#cLx3AIWu-(?Svo#Ks1O0Egr`a z&4V^v`$R8d#a>{;kff-J2ii0li>l`4c>RdT7Ar5&Q8O!o=52DsU_9<{0M>bkYXsB) zXMyNt5Y6$)1AH5~YZB@TIi^@kZD*Q@+^$BN$Fy7{9sZ&`Ujck^DM(6&T_@4l^(rxu z!p0IwKs5VA3o8pD^A@?1oEPE{+AOdV=pBsISUFxtaFvFDOOy{h(WDKLD7<-<(vNwA zwu-RE?lv{AB)WhT68y!%V0AAKnEmn zr4xS9eH<;Tm=&18+L*VS4azmAL3@c!7YKI>lxDMcDDV^yGUycD5UjbQyqr)cPhJB$sjTkg8|%C zs;AmryY(k z;q56Y?kFAiIar!d3_1C>UPJY$_c!~>W5bY&lBAB7hqWgyi5dAR1q9$ksG2Zhp(i@B7 zG#ZV!zY2=*2+`RbeP!P)Z_5yH8m2s|5JLqDz5V0e6QxQ(oQ519ym7TbM|?(Z$O7a3 zkjNh=(Hg8QjR<{G;lhGkJBSA(m|ZfIRuDfED}`af?!lr^fsq%WQ4usptrbpoX+H75 zU9svSi&a_9<;HV#?g#;!5!8QF23A}h-G8n-;KQuDu7CIadQ+7^LuM-Cftko&`K z(N}-DTaxO$!)PxZkuvCZw^3TbR~YIVZ90J01)}F6Wx>tG2VnM;VM5;ExXR@>aOVKh zE0Ivca!-cG52dT!70*#6I6e^Kz+dUO8pKxbJMd{{VsY)C#!C$@q+f zP)-~QN)V7UT{&tpL{w3YF!ERBfPf7FP#U#~@f{3gD*4yMa;^-*6JAp|BFy*be{o7> zYuY}1#`2pTj$d!oN9a|2Om!|5)xq%s;HV)06`Uxe>_%3rcBZqhO5rW>%x76^J?rrf zAu{s0Uod7_4yTc$-OI<(SXN2NdWva9Mho&V%7qFTBAU+Nj=e356s3W!?|Oy&TLopm zV^A8tJvp>ki`)XjtW0PK-HQB=!F=jnc%cN<{^&1W*TcCF5H16V&Z z+=d{)^-rHlcfGN#adK1%(z&SZ44Cl;*d4cf zd`GRTQ+z`vDyVQlANDJkE>p}4%v(`p-nKiJ$K*^(1a9C+J1NAiFrtc@4AGGq5H)8q z)Fn4@DwY?_L9F?k()v6lF1ePoh|_3taTVS*%zFdg03k_`RjF|U0;^-)L1B1_XB|!l zF@;l7@ff{JDs2g3N*lrn?qXW>{p z-u%O&;;z{0jxeSfVSJuuzy~>anjj`znR;tt{{Xn;;z7ir4k376<%z*oR26fUD{;oN z?1MlQp}#8v?xfg|p*%-48yph6g+n2@H8m6s9l+ow5LL=t6019zHMjs)*+Y0u!K#=c zvJ;Dn4Owk`N^RLR6ziEv&=ysLKw_^j^C?FAfnv{0w|Z@L6sk7X;{*<6t_mG&G-2}v zoJ6d(E{L_9dqKkVVhr%4py*avW&wbu0fm?Y3DE(C7^jY-2ojp8 zpt}fSlCm36<*XGs@%Vv8aX}hp&O!veF2!=`KAS*udvy5YF?Ik7SWmP@mXe^qGB4Sg5y;bHneq*bYmaIjv@fsW%J48#r zxwxQxd&?sd>0*?}D0!8Oa>2#QFgKcUC`$2obsAX52bd*WbL|BoY4I!`#|+G;Fjb-w zfNA=dDU@-0lxb@AJ0duDxnj64sdVE|+-b}jbv9zza^4I@mhp2UZ4h21cD$y_Hr+}u z7SP>sFtk-J9FZ6t1htFo=4BU6dm-+wt#Jgh3s!LwkU`aR6y0Vxl+vyO%PuZFwaP)t zUn_#p7OZs#Asv+s*I`ZeL;-2vh(g7UC{g!MpAgA!0o8lJ7_8BmP>yE5>OnC_JkZ%7n1VM<=w)e zd#uncdG1#j#WY731T+|cst7=&T^uCbAsMRla1}0ET)TF{fLt~`zF-U~_rRlkiz~n+ zF}%3>i`)Xu6!Ga|OP8_*t2XK&0=qi;1C--2-31hL=3m@PBbv9AHp)*yV{WE_YP_70 zx)-#TyiplJOtB9{aM`Xuz4H?1UAEwYe zCfQQOBY{=2_=%c`jU_&*h7Q&MVLinT&cT| zTNA_qHzbeBUK+EOU3wH8#iY9@Fk)Y=o>Tv__eh^-(D@yTnz;96iA@ zD@+?EOhJSKm>{b)ZVkom2@mmtUcKA%E2wuU;TRmB%ts3#I7IbJDkGY;J8~BjB?G2| zua*`8P&5#z7acjv^>7w(OWl9lFUIU1N`l2)8VX!3&PLdLwNOMhcn5EO2+$~^M`Q^8 zfIxD*K!R|tOMY=S4A=t5j{cRVO^GlgU29Kwm;lJ9oES%p##FauPK>a)lqo5#LI~Ym z$3C15^_8$zAi&$)2%tQrl~^1>VzyeMFF9<1)Tw7sctYmbJ(mdLY{_s=2Ls>4Daogp zndN(#FlK%pl`hyP*p$NfCU7>sN{l7=%FC}uYsBNxEZsti_X52T`hc+=lBb2Z46iR4 zBg#3>3@6{z2mVYBl5eEax7cWatZM`IU3`Cuf@B`^!-!oF?ws264BD9{hQey89Gb8N_8d=gc z&9KTCd6k%Xqykxzq4Y>Ps%Ut{!6JeK;ah-2K^=^|&b6k`w-@4E*iPHUsA5zBKu{iz zHS`!u)T)zG-pf&}u+_sDX8!g!eDuBE4(pWVxSNpbrf4->Fzx?r;S4hq~(>O=1ZsmW9T_s%Y+`sF)w<-q~@UH zE2o$SaJlUB4y#iFkPxxm)=v`!<~Mf;(F~)n6L}pOmBO3@XAr0$u7n`sifU?A6 zfaK8--?BDOCL)U;Xqd{JIFx3>xgt*MnQa9SM!0Q=LL3}NfKcnWO4Lka5T*)=w#KjT;s(N7J3dS%Rj*ko)60YUb0bIu@u}bv{_5)<- zl*z_#vEt%NR47&nUZKo!e4z)N$z5hDSOU3(E(&}{MFUk#%>ZZd^fNJJwFjt*glu{A zdq(2BDgn`I}S~KB+(G(bf7%KEjR>k1B7vkG|!lNLyOF0#uh{4vC zVS?wu3jl6fufz>Cc|u87f(npD11s|!=q!vZ=IFXl#LFF8=VKDhW^395I?$%aoJ^|_ zBUtWfvJCE`bfHq24%uPQoiM?bnw=#Cn%Fn}M~>vhtGuuk65SUZLBK#xnu%)^(bLK1 z1JbdkB@h&0{KrkfZcEYgG1ho;%9#}nEO0P}oj0(5a?`XJDS0gJDsLrlOpm`2@f47S z82rIukRd_m+GI^ZHm=3)$xCj|XQ4ZaQnn_dg4+AaXlrm#&AbXpfCNg6)Myw&`7sqc z#Z{bZn3NdNMkcN1RnQh)0yiB2*n`8~2t#VxS%8!>UD)aFM_dLzZ;qog8zZ0UJxeqS zULXc0OIdtIE9k3N0IfpRfP@vUlw}Qo{70BClrxCGLai>{RKr%F4CD0{8!JigG=M8h z+6b@?>-%FmY~p!6qDAfjT*KZQg0=SI5HZ2EVzV19Nov#7QzB|%S!G4iP}%IuxNJ5J zW)wt55pP-M3JwZcJlh(M&=%|74TwjcAE`pz28J#I7eiN*vFa8As+)9j`HC~m0)o2q zVz*HjL)=#5VW`10{X4`UID){|H^J`*_Lu?l@dQ8vsEvz(20NiC8m-L6#h8j=2%ver z5l9PLYvwVPbhcNBX=3tjk`jishchIZ2QjCnc2Jz+R}?rnBH$6x3PwXMY7&`VFHBG? zHDeP6tdQZ3*4z+PrzI00YaO&M6;LDCgAt*NOubaV5HNC)PU>A^DNtSmS(Si;k{HO7 zHJrlKnY3axzm;M=n16wr@0}m0G8Xw0pG7%%-zt_9S7CJwdeD>r9^}xO>5;&G-=9Hz zRELp{UHS8`)K1kmxW<^oG!gf40n&C4j9`KcwdMC>H>Y|Ox8^uD0zM#x+5o#Ue=$ii zorFGN@NQ z!!e(jMP6%JBN(FGBL)cr{8+!tsa~g|8X88MPa8hc;r-$beUbQ2sgd6VO3T>V4)R+b z`~Lu-dI<)w_8!a|_ZkYd+x|7Eg^69wyjzSC;SrbtKy#hGj~6T*357%f z5GUqu?df&2D;^u+tVU2aVONKrk5R2|74@-!^D%Qc`46aq&T`I110)tQoWQT}5zwze z87X0faxA5=yMz9{iWdl?+01MgT)SfgfNiE%?6-JGip*-|RwnXw8N;VF0cBvy7V6`q z9Oo(KEwEB#c1y}j8uU64)15JGjKOY-7?nk|iNJ}(p}6R-(IDvVXCSd|*Y=L1uHq(b zV&TeA#_s8YWqCZY!yK1!VyeOgtes{kO&pq=lSsn~?qgbuxC{dj2}=ry)#G30x47mA zu&@KmIhLT@xmzy~1{e{57!ay}9DPinoM*&l zkSocT-ZQomgOmVv1rEH-bkMxn)DcA{Lvn~y7lfhW0H$oVxQ;j+s{w~2Y(|{@q69nC z#KwzaZkI;L9?PJDCFL@@vjA00=l3uSd85Up>W4!z9L}qadO8cLJ(-Qmz}js+oZ7*ASs*SNOckD(;tTs;JX- zGehRI`cb0hyHR*r@_8mhYq+m+g*-!Z3;|%PY8C{MD{rkZn`boyZp1n8l#z3MOB61V zg~e7b<*g901!5SA6yp6jnf7{YRIIm)y+blNZlX%Fs^(+3rSIG%(8%uX*pjWu(3lPoiS(+ER^Q9(K$Vl|Xf$3y2!M}8^=WTD9jP1B3L zKv&Xr152!-%=ZyY(vt9)(B&4lnL?y%)zN)RIAR{~7N>!6&}jSOQHFRC3{AP!69##a z!p5DXqn_Upqm}tp%|K-G@n~dtu%N0`PJk#8@ zE|CL8p}4{Bt+!`0mr;_XxF*8L<_QhxY!{dd;PVTAfPw{GRbt%A36Vgd9wn^O3K!y0 zBX?n+<^ssHRcHef8YxY|4Ix8#O;c-kXm-R?TW(eBa)cCO>3PIkiU);;@XP~s?616R zCUHT@`-&}-o7+rhiYpz9mvDdwHPproR~?)AA`~h?MXHx6+(H};zZuO!fUeC?vR<`x zz8x5WObrDC6@18YF3{o~PG4mo`iiM!AnH|!=J}OEkI7KOWrpr2x(gq)6l_=pDj2}& zc@E%7b5zmXHkXR4n&Mz56=i`4mjc#Mrb^|llA#1_eC9MkXcJ?#Wp<@yuQG%#Y|!=X z6K6q^tWs`)YjK15hdavFQ<5@qi*O$>ZCb0sjX|im4e`fOyC|*D@Gn;lBKMUz_PAGS z6qvQfViA<5Z>? zDllPtaW(;pnTCpkz5K&!(uV7ZZ@BXp8_vB#fxOyDVv9grs*5@}??_46)?lQ~m5Aid zT}q{mHHbJFmO6G#kO5AgnHBjEG9W^7R}L7SXQ|V!7Fc+{kL71!!gruWjlWNJRsv8nC%hx6B%Whd7;v zSUb3J3%g!!R|&9m?i1ZG_>A3JN`z4QY+g7A?F;rMK={2&6n8W~!V!S<)>n>inMmRg zKMMUvRmMw)b-Vb7lmJ?y9)wEAUnIR%9pkNg`d^@sjCZ`T7i=Sb@2ze*O_XB~utFhF z%JW4^a^hLQxTv{Wfd=h`S@BSZM(|~#t{|C?ZK_M#7XJW%P4sRH#)CK1ae25z0*Dz& zqK!EW8X0lhDvT>(b6cFjB39`yUTgmVkbtII4cYey6jAD9amksD^MGx2FOhpzF;gm2 z5a`q;Oceqy2R%NaFRTkk@DaA3tot~>5v?>*sPUe>MXSNi)6V|@Q;qSMKgI$xYi2m9 zFL{p9eY{H}Xff2O&kAY75$NtEwGXRE9_(;aW63BXS1S`MEnt{nlgwQl>y{`{J??KW zM|mbapjy-(!{!Rm-!nKiH;6SA^0WIYhnWwE z)G1AU8kw0c{{VQ+neTq5_@bMKT0zZ2m}A626+#UwJNiRpfSjwVcs#*n={6i5b*fGpH1^E@S9xS5vX0jp}}HV>Ev%nPVs87mjdI+hAE!5$Gchzz%WB2&e9 zltToeSrN4N3|Werkb{4S+}Mjiv&}>-YEUtY)ThNlLCaWyU7`3O&9KI^K^eC7qEN9> zZZ#k9Rz9FzM^G!vsDh)6OJ1jsU0l~B8hk?40lFp&qv9AW4&{noi;4vu4r0?m#Y+m1 z-?MWYCHmsBD@=@0^PxQxEmY!v{JDn zzr+Qt>8H#`3xKexdDWKj7_M&V7<dYQC=Zt0tlWC+Z6zsX#5J@G z2JSn^3U*GSz;Ugua!P2UW2uf-bEuF3dpKf*RLSKUWqOCMo&Nx$P^np}VygWA*h=ZT>7Ri4Eh^LF#F8P%HZF;$9J3#^#xcqD~Wr$8@^Gn z6qlSI_YuH2^DNszmYv4{u~e__IL3lGd5T!Hz07SjH7JiG8fX-%7>Q4`LWgr8ZxEv- z1qF$4MzJ`6JA-(IaT>kBjBJkc7HSG?#}FW;UGW;-s>3Kurtg@k$~W&Sim^)^p^iZV zMyY4CuFx2>nt(kclH=Y{2Jg1{i6GKChb3WP%=oY}<|SBiDM1JbZOwH7o-BJr^IiuDfuTbDl&TQk_E7?~%vro)@t)%Ee zN{g^uGfatZ8yQ!CV<*gWLFk9tqoVMpth0y%idAmAgT`^^(yL_V^4j+ zx%^CD>lcphbd+c{wK8r-CH&_zP800*9B#8qxSa~Ef6t+6=~tF+28fMyK^=5e~kI|c)U=Qth* zxCyC2fcXxgl_!Igdhs+bZ!DJnU>ho{K`6hG)M-$p*iL*#6*|>g;}L1WqVw$tA-EW# zKW<}iuXW;JkToj%e8iH?pl-N`2cXs5z%{&ss0LK9Wdz8Utjp_3PS>#@veGfq)`&n! z!);#}gB4f|zZ5#0{RvS~O z0$gXLV??k_vXUWY;86lO?hB&A!bG%&Y04fWSPGln{{T^_^kt>MF+v#zB2xxM#x+G3 zOl3JuaL$H5Boxw{Jk7dp)#g$s1s>`YE553j4Ct#I%IkpS*#!gDVW3Bd^hGflx&YnO zCdjNM_}sriPFk-l?}Qx>f){Jp8-8FQhe1SjEUfx1LiyBQDz>+gC8kvkd_b>FY*ca6 z;u>P0P!U3AtEM1Dbp&-V82NxK$Ok!$RTYZWv?7KYi_OJpl<_Uk)r#}zCO2lgmsjdm zxKs_WFC9yvCNtDkBB7E2&|}ijVi^$AXHdl50qCsMW#RD)Q$=$W*;Q4VSAEJXR9CeB z0A7G-CHe#VV4I7fna3WNHcKlIsEb?GbP~d`VlX|{t^gEzA64e2n)fgfax_W>i7LQM z1TY^ZyO_+e<~e4g5)e>*WeXeXWvFYJOKkWcb%R~NCPC_6|vS8nBmu}zSMR`-p?!o{yMMBe#>Yc=;?XLaW8K8W3|87K2D^g9FayCHLsY;x_NJKjdry4{!y0S^ zze<4?simv)7pa7AahzW=v@P>94ZPG^0e&V6IV-GBcpE701+@wST_tRINss$VMB^p z32H^$G$xo=@F2ytoACu;xXi(IvMkD}oIxRLnwF-j{6}rGyY4T(&|PNX6oXHf#LOCT zXS3P{f~|{D#8##@#lI2d6uYZErg>#CmLMUg4^v=7bL|1scq3I8wo>i})>nu$xTY(( zL!d61lrLot(ZL1B5$biY{h^T#MqA<^@_P(7hg6QEJbl}f4758-gOef22>=y%!4a+_ z-kCv*LhAADIU)-z$Tt8w z_{*4%LzVo)Z?R`2soZ!QWv^A@JUX67!3Y_KZsr?{RjAf=Y)8xkHbeP7z0b& z5kthvb#B)9Y#t{VaOR8?1rT#vZ_0e@Ue2YxvLfc#lhIGPNHEFwRV-Z+a6LC zj5a>XA|0!(%*WacSybG;7d{U@&@G|Rq&?-u6?AEIM1g`K8L5>EE`whaK~6KV;#`AW zG{=(-p&_m#NL6iC<48w|)U8>op{K;IB&QTWj@{{s@fPcBiOj6b0~M}V$bU29W6E9A z{{VLZc?mGHre%L=J+bA{$0 z%K>l@hJdgUL;+A+P9-)Uh_4$VX1pU2vpeUfA=#Z ze$Zi+6atGtd4_Y^FUnp)VjFN@Bnw0jIO;bExsZVjkFYSVf6cvwYK-P8mZ3@9tGCIN z2DE7F9${Lc!B9W_jl8ttSvfRCoDWy#R9b;ISgJaMW=txMv-1L2;Ix))87Z(`!^J~n zmhJeLM?sN@%L{zSfO9x564$s+y18@6LBZS{FAbUoTY^K<+yXhIT_B`NHXzh5HxX+J zbbX?~SjPvoASi9eKC|RB67SX?q1AwjKx&2Dt2cWe`0kt>QmK9}^ptFy=WW>pH>6!vT9Y zfqcM$u^r>Oo<1iPm zOx&r&-YU%9XsE7H01bg=WqFP`F7ovPG+K5ryfW44ikBood6(dYpP6d~b7(;Y$VYHW zZXnz35{MNoekN0K$N&**YSnOJRpG=NFX|F0#BItEsKlMqGHjsg8g7qyej}ZmF1^|HH;uf&U7+GV9T?)V|WW(ZS91OjZ)F0X8n4aN@NXy|ATTAGUXl%Cm-5j;fVSOc-#8Aa?c!k51gg={&4MNMSAOH4ZpECXmX z^D4ksL4qZ;4p$LS0+=3U;6)2n=fnd407`9##0HTuD~ZIbxMg1m`#>*;%peYL{jf>! zqc<_u+mVS*N?$D2t?Qx=i`LrJOcVg5;UFoEKw{ycWTC|8!B^i%b40-8mqcBBqY(p4 zOjj-5u`qU7M^H*t{E$U)k=h)~BxJ4$ZL})cswqq}GD@o1e~5>O6ZIPDQNCkUSFd<1 zcC(y>&k8d5<`SZ@w=E>zhNGo>!Nyoix4Fd#j1?H*Zx;BK0SuO;QKy4Zt4-|9Si*tB z&r_;-fCFnU%r``8(3G|u)f^#PNmO8ISj=R$YOY=yTqFh{=u3Xl>OthM;#fdM+ss9z zrt5O#4x;8_g1Kz*8r*okV<4)_!*DemG_pRTG8!) zxFK5zZel}UvKu$V3~@63WX{isv;Z2zaD1fQoU9C!3@tGXD6Bi_7&sg|uAvKS{0I#f zBcHsWAeI|EcPNJ{T|OX#Zd5pxmkv81=QUFn;)p<~NcQ90l+4e8m=LCCQsivv2`48G z+P2`L<>nZL zU8Y#?a+8J-qg}wMbE6nK5jO(#sFx9ZF?n$SP1<9`R9y$Tyw{wzN-^sMyLTdPG1gP< z9;#@l(REQw1n}S;N(e?awi=H04f%`9J|UE>TKr1lIKcrR)F-sOz}BI$0wM=e%7YLG zE(pR_IhmVgp5?(xCKGavz-r~Gsurx`QZVs-FjQvl4K^0v#L5f+r31AFTa{F(z|=C+G03mggIXF-0}uts@w(~%cj;Y$il(0bHVW~ z`gA%tmLo5;arc(c1F}{hXfCZqc5HlYhziASk=`Om{zH{}`I#!gp~ZXV=3Kzcs;Kt7 zRJXuO-U5KHD-&Q5ZXDONC2~(|uVMip@2d~LF-AemdH}amEK=nZZ#NmFWTohs2q>e6 zm?A8!d~p(Z3ZcwE4Oes~p(MPL%G*iDyc1`5NJQ0mi4q7MnS@|C2nvDBvBLbzfHbaP zqh!wrg2L;F=QW6R7N$H!mL#Va%wo+m0Mu8Fo9$;eLd+4B3cT>~a4aK&_<%a0Nm1y5 zdptuH_gx~h11`Q{FUws*P@)jf4s$YFU6!S01EYmEap=QsUj61sh2je)4Ju3`>xpW# zbA@NzVF4-*bEvh-iVaH?r8nXOwjOHWWI)3)f}HRCD{-V!04Flr@fs!q5f`X?L8^J4 z*ue7;(k4NOg-cPjLK`211yxJB9-i@m>b;6w*LK*gyhO2SsMF?CphU(o{7X~P(ZGUg zC`HZrilC-WyhlofOfmle*<=m~!JCRVekJ$VBhq&e((&pv-_e1gR;yHZA9{&akmkLt z{iE|>Oqnm`e!=Ka8)hh7(XwI!+%%(#akyZwOgZ$U@j-b}3D_Ksn6EG!!mnibh(xiB zlYV|>de$sZ(*7EK2R&dcOJ{{YayrcvB|g_sWMu@buOXz7mOkm~^7g6;J;#i@AOG3GqkVBT{{5q~9Fb9@*C_vXd!Q*0!+@=sS ze9VrV%BIwMh$!8`OTR$>0H)Q{LTozdCAK?aJ^)F61|ai23S_BC95MFl~$ zA@u`03XNMb5UB-s2~B)NDKJO4?-6>7dAX5pSflvQi8>gSKu;2|y>P{O`$lWmJ|kf` z!4OoowJHo4!_=U=KzmF?s`6eSf->K{Ji~gIDQfGeQn;BwBs?~UXHkXHlT#AVyfT%& z-OEF2gi0suM!W=!Qv}%n6y9p4Z35~lFT3`ck>|N!o$gSm3yGIVq% z;Cx2gVeHWuU6oUCHWNC`MQtUWlA)-#QQuPNH9J;A^uaQNVzmIitFxal7+kiZ3zf)L zj-tV)a+@F$foU7>R0N;-bw85qjq_g$+SBL?tI;;g#iq!CXhvwyRR?2V(Q> zE<=X+vTa<%w+z7m1+daCFe_uJV9_++;sRx(H8P+A$8cI51Rfv*ieo--hjB6rfw9{L zikO9w?h7<@bm~wtCheejl#5A{{{RugL|qz`ORzT(1$i!DT!1@3L%|1$Ncsm5hzj7- z0St}cQT_RW&t+y@&S+baK$Hb_$@A$^2Vxh^?08}Rl3(o}%o+Tc~$&b=}h3+6&a^9dJ$zJ43vx#-d-Equ4 z0WQin4qaP0Wg9X(MFC&IC>D&;Tn1kALR>1f(rQ(d$B0pY?QUGhaq zNPH$F)q?%QO+$hxIqc>T(s*O!_vQr(hnOYgmKcVDW@$o*8{NvH%M}`7cM{GnI`r0e z7OfFw{osmJ$O~Zw_XyG`wM=24?8fDktV$_qT_6Ea%*1>w?EwM_kcOB8hfPY*R?jRE z5EVnq;s66ddC?RaNy-pFIWb)!G6UdczQcAm7xR-?_K9G_Nac)18V7JkW7i*O4#+I4 z%xaWWc<&Jr0$J}oT&famyRQ){z>p|bO}=I5S+?;6+^8HSV-1qVR{>CG?3Wq-X$5@3jB&|MJ){0c z{G1a6e${`(RM55o;38=Kk=px#5V(1~V38_Vt?8Gl@UQA~Ba0OD5~w6B6q(&hmWm?+ z_W-XzcW(Cp%4HgFUS)4DX!k^+eKgrKWI)WQtiHM#G2i1kckt@|d}q&AiLuH^pn_;R|#eF(?a~9Ov5{c;1@@a|W)K zA@3VzNllKIxI=U3ay#)Ds$7>0uL&IpfuhSEArh{jZTDfnt}fG}0^>JDI*$j-tHI*q zkurur+_)5`fG%9+3g(Itlc0k@#L|>EuAwMv{MxZ*Oywn_&5%VamOkf^E7XEo- z9>@b1W<3qXcBxt>PKL{Ba6yr62HT8uuAufr#}TttgnsKm2Qy-sb^b9zXW4d{SD5I%``K*xS&{&aiuD}`LSZ&fym z1yzh}mV_T1{LGP)Zw}vR3w3!KL25(qMxd@NHhTKuYZCODA;H|pmwSP{7=j$x1g*xX z@eDT;dWod^TlAy3CwMI+<5TO04q6we8DtVq#T^hK*Kb4ZU9kNnUaCO5UR5n)cR zZ@-vu*({AEw+y!r3_yItXP7-ct-e`tz}+xv>=@4BK?3fLHE^;j!#L(tvc%(YJ^aHC zV5(@d8GtJY`J5);^Ax4xE~-#lBQX&4Mj1UJeq)3Nhfr)OaOapU86``b{U8>P^h@b( z49bq)BHe*q#>B94As5S+FlZ=pH3bV*Vw~bQE|A-HC`tY=E!cYJwc7b zP+H5VtjxSF0@EX@U`{s@HFeC{VP+UXs}U_@E@f3wMtn^MLIzW6#|fbhD*JLI4HPNdEvb#RW29Sl)psx|fhoF75(?+B_y(BE+U-U`_Gn0c|kdgt#luUB*^Z zg}@aE-Z)}prj+6oW43s83ZZP>OcFQCm@%U7%|I~?=C_FMR0N<7A2Q_HwTW?goa&|s zFkcK9kZi7AC9_%0+@#h<#IH+z&8T(S4;X19cpz!4TgCUuQW95vMB3YMxP zoA(xoxWfiB9iwB2;pPi)Y60CO2-CT7O0IJh4q=;?R)aP?OrWE$d0oBr4zVeQ;Uucp z{7ab!CHBBD!gJie3*r6Bj<(z|sGwo)7`6_V%nYD#cMU^y%mGT+zD}lQVd17P1kFb< zDMD3m5s=$hFjtX5A&elR{>~*bM{OE|s}j!cB5Rb>1;9$N36U^jUvPH}+Bn^w(z{a2 zcl|@3x)-48C|Tkg2gDaOLC59?tQZSdv)ljx(pzK=gywi6!3qls`Hc?J+_{cgMU>U^ z?K1N$8!KOUc84_RK}$>Mbx>G3^RqA$SpZ(0+`150R#Dye5tJ$p{1xaeO51^V5b`_!z=pt7}#S;C$fuM01KbTm0w zPJBSc^)K#}(W;F|s?#F*g&nSW@etG?9M^0^TL285`6CnlAIG=Z+|wL$Cr6Xp<|g%V z4H?=n*AR2$&V5A1TyusTbJWLe?wdI($J|pCB1fz&DI}erj_U0tT60dh@Dx}(t=dK^ zbg$evnDC7sU#)bbIE_7`f$hx5IG*oYE_#h3X6Sl!u^dkSKo<;9*S?vv`?rO3)HD9l z`$7Q!Rkn;WH0OVB$#ae=)GX}Fqv5YL65f33D7?2RuZ4!t8$az_Eh~T{Bzuxx?DjF= z94Jz04s@@e))q?^1c{d@;00dk43g_FBN#%_;8Mk}pCfXM?Y~p$#m!ThX-G&)Z1ceD;uEQ?#{>LQ|7{7vcc#AGI!b ziUd2@xjkTYlQvT+oK#wZh3Wp98X* zCF8Z(rl;i{?8l-xl`G0gDjW;Qty2q}fXVA>MH;->{F~>m&FEa0!64b+oZsP*7~>nFwI~=U3FXbH4H4#vq9%uDaOX1d3%7} zu-l8KGUc)#$1T25hJHG*`vy?2a+|4f(Z1>f+exNG9)b~5Msp)$z-0ni zxSmB+;8Sx1*7X&kZcQ{OV1(t&tM-K-$$B6nM$-#g$MRj=0)_0s9c&4iCPP;WsyK{} zz!6Nu-QGuim!o32*?^6aa&qRZYHBBsgYm3bVeKK0Qj1=tam-tV6Sh(1zTT5Vk?UC* zq9j(8{u?rNd$*(NLlFWc_WTy^_x!u`@H)KhXHdw)mvg7w&y?~W|Kv_%OC~(_hXMh; zcV!JBX#B*piSg}#2+2-md0+Klcx)KBEx%iyQ{ZzTj|*8=U{3DLU&geJIujrWSchyX z5-LhjdMV*pOVFj9(ARnllu4*_yRFxsw9;YGH9uTU@saMc#yFDs(wyVo1Te`4^F~ix z?jav~*^=n)bqe}yc%o3GocBa}ANVrs%ZtN)&#UWw?yy->H)FWNvB(w)xug(6 zYasU{LaM#YGQf%<%zLE@5g#EOv%-mwI(0vRGft?u}lFaFLW7|3T}nwAF*m;o|=1bZlvL?Y3BH zh~rK#-e?{2z%;nAJmJCjm}p5mQKj#BcEnjOQNFc2OPA{+?7e)-nGvDf`eof7=M<{i zZy2H@VuTK`>({@2PlaP4ML9erq3ho1Vy#D)p>ObJ4OsZ5@W5Uc%lj?&$}#G>T4lbK z0*`@Mv}tmTnLQv6%@nBcxx>j7RlYU`;(tv>8t8mBUXQVVrGikAw=Ct=XKe;8@fAnM(Q;wJ>scpCBM-9DDa0M;MXtObS%n$)DI8Z(tBa?H zJh5RGj_phik!`1}_vvazwRy5drW;_If>*Tohil7%3XWRlS-7dzq*aZ}@&aK{zaz~- z^ZZ>BF2ozLYAciBGcGQj2G%_?o&uFoGWm8=g|@zCJ(t&{8%wVZK!!+O&n2HjTcbJm zQ~%ykrK8K}TQUwB`p)($uBc99B=1~A<=i7r2lwTrSoN~bBhR5ms@JvNM|utdaI=c) z{{&KBh@Y~>;y}aQ@2Nh%uMN!yHnr7zHAXolyO%?F_*!><%|B@WF6UQreBQ*nIf9YP zNjN$yGysQqC0%3i0m43{T236QT1gJc<7NI8_~>|j_Aj%OEBsmPYm(%t5V#4hU$uP2 z79h05K66nRXkVKXd8~%9c_G55%9b=mtObw0DZ+mw?9VLZJ{i${3InUO~4tJ z>I;4SaMJq2K+!RRscUxUF4|k*Z|2@|#OgjbEK6mH=1LoEj4})7yCLw%G?|lzG0jS{ zhIYW&?i*k6P!PVmtagDb$Ht5Db6VD=PB#7nqD)YkWQGH z9&vPUF{Wd^N?b^_g-PJQyJD5las7cW3bFuge5I-E&Ks#9x^+7JABy(m7UUd5M&|`4 zF~K6Ye}*s^&XAkpRh!wzInA{khnc^4l{~#pV6toJAC<^x@s&{~Ni$Tp>1GI{(2gz%e7xScxn7XEq5fO9WOk^)ar8 zk)UP{*zB6(Q#v3dRB{pnQuv29(I*im3pesS*i8w)O7%zyR-8EDUJ*F@I9US(MbU~p{6ykSZqRZkPgIt_M*`-H!{17u^xxtrRFMHwvMZg;P zCIqQcz0}?!P_XBJ0?Mj1n9$IIn;Hge0@@#=ei;>FhZ|sflhLaFEZYbyQJ|>yhnkKF&zklgzcpARXGG0>*obeJ(ny&F#(M2oaKRfrYkIOS(4|;gN9dIQrdJYt_CHW*kt7&Pqfs)dJoRZupHh5=Lx=Ur0)yRSn}j#uvvd4#)z)QW zaZyR9k!pu>jk!TIn~;0RLjAJsYnpkGj@oqTOZiMj`->l5-#T>|pRCzGQD~zX>(>QQCV}9M^>5 ztu=m3J|3kc{z1T@jo~ln>z^~A#aLQKsO(rY(6x9`ICR?&NIJ3CO^(Yn#r_Xq#L&-b zV;C{K(JJ!{_()+dq)#x8{I{2Xq$YRQn&np#jvbNQDbc6(^ZIA)yh2W%3JGJPMVfk{ zn~fq=K;PFg;maRUxyw9N*(w5#wXscMil-b?^sD;vo_0FQ73&b=a|NP^%kB#`l4W_h z5VA#LEDQ`3XFdkMsEplmq>$1EI$UuScyN!O33qJasUaB zw(IZKdibW1UuOoW@;Fh-<~|(#Lg%5pj$|I=8KME+H&7y~95m3lvc9*lZYjA`y!)UY zEKAJ2yr{|VIhBw*8a(1)Qsi-R0M~l1i|Xuq0n`v+%vA_shtr-xw~%*GA}KU8x9Hcf z#i}Z;C7$u5PkBDN>)M=ousU%aQ&1;p}f{2TD5{3(*llc6!o{baYwa%NeaHq=Es z930_lA207SL>o|ae-=q|c{l!HW)T(+%5xsNY~t0`<8PdAL(hZeX33T_!2{s}%b(Gr z;rg&2uJ76;=YN~$L~Lz3$EPJ6C8Vi^@dAqm<*8^=fz+_0aZ& zEZneoKaY>(L!+}MAFK+nZ|M(1e};O&95U=doeFd5o&N*CI3@d{)jZ6lW+}^C^T7en z5Z^pA+5e4@PFg;%M5s9*?Jt*x-JHkjeD_Y8E(cK4%)+o?WED_(<#U&b0^9@HIlhw>bQSx$ za^iMNRC(#MVw;cVSl2n&i>w{N#%M;roZ2yR=GIdfUcyA*fD~n~t@{0fcLv=DXPqYt zaeOHk(WuL~=^rLh3I%*vMq9Obll4s~ozxFWQf~Rf@~Sm5!~$oE{MOe$vd^B#+pmOL6(Ku!7y<_N``2W(Aj8NI!b`38cAq&>M6(->x#eB-B# zR{e86sz(PU*+OYzup+Iv@JLtEBmP9}SSKOLy*@k9wEBW>p{kycbD+zEO>a4^UT+pO?F-@(egC-Yx#0gX=p0*K@b`w9Jb!;EMEO76fZhUFW0lIX~_818c0qOE*}D zh?t7mm>DngB6s%JZ=_PlBUGI0ewwqhE<^i1x1VLdoa$n#G%`?zy|tS!-GthjFm7$y zYvcHf{9Y?AkjdL?cjT<}jVIh1U)?*id9ifE_*0%{PJfw-+rW+c!M&2A3vtb71-4tWknZ7_3=72*bC%7ns_3+vKWHVZ<)O< ztDtrn>%ojE5z#SPKN<_|?u4FmCPYd3Dzj*%WtHLWF+xsA95Z=$J~Ehtwar zpt*u5=G~uEaT`;Jesg4=m^n)k&G#c?er z$TsJ9^<*c5r)=j$#U|wxOhp9;Z$3&_M=l3ZtSF$pc^M~dAx?4sjn%l#hJc=Jxz|)7 z6EhW1*RpGs1X!WfNq{`VvqO~33e)&$w5#Wz46q8=M2f6i>}e_tDTeVlh(wHF_3atRQ=GJjw@(n7L7>oE#F`3slrPOgs@x=+8Xhn9@Ca3Z*rZDLoQn0| z%d20q>YqAq_eF#Y@{M{;=Pb;*ylpreUP{UTYr|7npUw%tqcQa|!Q z>Vifv;itUv00Lq8_#((&s6u|VZC)}UFIgGRd4QXYZUZD3|;21W>4bTKzysUH` zC!!!+Ldm|V2{^vPshs8~dHK&`vMHNu#XAvHFJ})GI4PqEW_LOJ6RnwP+-e=s&v$?r z;E>ufdcfm)2;ec%`L84iyNxJEYTuOIGJj7l1Pa%Hireqqj_(k7@T}S#VmE8IVc~0t zp@_3v#+BYMbWFrJ+#J({$MJ#7RD`kn0EwOy#&AZGuUrc|yHf0Rr3pUJm_vRxK^r5t z1qSCdMqW^;fh5uhb+E(7s?W6y*cNRA8qGIn9$714>$It z@{2QWnA|1ij=!I_qo}&j02J&+&$6bQ{VwcX<_ckVvw@6CHCF~R6L z>Pdo1&m7hN;ZXKwd4%m-@X~&0P;-%~XzK9Ha-fbLoSfzFbf^Qo8E!7;VE<4}tj4Di z=@_-*TeLcR<4A$r?ouJl&PL|VJx-u3fUGPO3|esVyQkj zCGGgqrh65+4|tDi0sNxZ*tHA&_QplN7P)Bics|-=6hw>_Ig)rpyp9F&$&XQ26n+{* zNxiWsL@~pfc^TXHSm17R?|rlfs4uhfN(RGsaxqZJqfN{!L#ocME1e{+6LYI}Jfnn2Ezu;SZ|XCm%iZsfX4|B_k+yrc8t>H+@~zA- zWlwM9@D%*uXI!#&81X{|S8%QgG!_O;7GRfE>SWpxY`_YR{O2-_-|}+~(b^pCA@6e3 zXQK~AG2#|y=RNzLmxvM^r;%Y3Z!;}hg!^ioBn*@b1sa4jkZzQh7oax97LSxyKc8M@%U0 ze}L3MWB59alb`uMV*4(agQD<-%kpix#pT5MkS+a^3bTR!>&e=OJo&He&#$E<%Gtrj zwN-Q>gsfsnH(x5crp35CIXbOaoo=A>Q!CF|VgNkIxjR5d#0KBkjBs{M^R7s>EgIsT z{9CH9>`ZcfMkWk6bwzw7z~0iAGBgZ!9?6n$h26Jm=UV&4FQ$%n$z3-6Wh&T=z+*IA zGay|MJ6QP39cf80)i1cs)YE?9j|Sj>}8@(SiXBCo1xsc)g-waxwN`TRuuCG!%sN{ic=es z1#ji=jwx$Ybf8-QMp@LEkXdhriGqK$VBovPh#KK+zFkk77iFVHhIJiB%}-SxAtF$Y zh^XWYSz-DqIKAYToD&-wrR9!?HZqLNJZ!6nR4uXAZITx+KY!I}IEnUbH44T}oi&bm1mIZvJER;RR^OvY~VvFG6fxLS_pKE8jc-@|vIK%(-NvdIR+EPCndt*7s| z&%fY5pj}hn@dN;bIHc;t51mvy);#MTFY(daWou_156-aW z%3dAyGnoT-`3MIZ<s9_(PVsSmcVdiT8u)NIMg-lej5|J=aOOsNRavRcf8{iKA7 zi2p8~oNaK1Bm6KI(YYt;1FeYa$!v^Yc!tm zpK-l-yVl~GR7dT#A9?q6Z)&U*KF=bHzM*?{UgPhwxsFpz38ZUYi3xmgk(9H#G{HY7 z?yZ%Ra_&ny&}@dqv%kf9o zJ3pn@9)xo1#-|HSh~)yQt@bx_ArQ~@`F|{BqG1N@uOTZR(vUM@{A&Pr-d0VOIzQ3> z0ZeG=p{R3e2CQltFAB(DSI*2AbL|H?3$rfrzJBOHs4s|gGX_WJOf z+F4;?;=W1TeKb!{#FO8udHZikz9!$L`-L`R=2uK(qQ(7$H|Q3^dXK7!qRlrJ<}XQb zOJjjfVPDP{<4?gnMsG8-v(LQaD=>JM?3-7-d|TWvyog|4uS(@gcvKiA}BeO3i%oCH1c8Lw=K)!Qk=2MlR!2Dk*=RaH96Lb3{;&U6jt-p34(a zWOb@<7s-;W>~-`<7`Y1>GQc9#c(4?)H7l;D2({eH0bM52o6`e=o`zKgco3a;qKuGB zjEme-oKu*ix#ASf6`TqktsTvimW)%ht>P@Ke#hXNRRF*Vr|Rch0f&kAq+z%&PLRy3 z7~lI#oX=8vBd(EiHyYq}5abs@MEQYd@0*G*8eS?r(*ixjyeeHw)E6t7h1l1WxF~lM zoUs$RF;r97U$;TNCTzq^)R41og8fUX{-tR z@>CU5O%-{(HbL6!T8^t-9PJ?J9RYYeZdQgQL<3zA?JQe(e4UU`I`BYBn$Rc+P|;xF zePWg38aAI;8GeChbC1ry!h|h1MX>?qppB82pH&;Zi1-m$@vUf#N7*XR@e`^?mdPZn zuzsYe7Hn20+pO-X0IZf*ezGxQICwl7W%Ib_6e$b1;spaDFFOH`Az3 zgK9Br|B9o@uXktO8g`v^zYf=wvB{ls5DH74Zy2BCR+aLNLrdr$ql)zDs9PYNW>2 zKskd`HP&4c6*oU4wPm`y{SJm_F7dMNo4Z?tUnVWhHiIi)KWm>0Qr z!mZFL9$H=J5)H>za7ewA|`uTHaE)-8?|YYV^^j ziif-oCiIt?wioKkt1xegy?0KfE_WOMZL*#e3-zX?-1kiA*~<9Udrlmogou|zd=A>b zp*nT8NRc_4;BD$#_3Gg*7cfUzr;iJ#{~3R@*IfHg>0fEQ{|xkwm^`Q(UN(DSWy@IprMv84{eV2uB46pA*Qt+FIq!*e_92;m%1B$fwO}HhfAD9XdM); zj+l(SwYo=Mk$7zCh1Y(&Pq?wfK5vj6F@oDyjgCoKtv{P0f8|g`{c6hOX#JF8?5QBW zI|B#~FhY)%nJT+D7YVFK&N-RQt_8uK?}ukvOjGd`H%aHT5LXtb9zRUn$63 z@D7RwNx24=ZBS5|U4A{0m84YcyD1Pe3_a$TuY}2%Ydm(*DgXvYp2Yz5_#vv!K7WPQ zpFKyz&1-)`ULJUjcRPhaf1@MCX_46_0Q@$hy7-UbBq5Ta7!u33`p|LjE;<9dHl3<5 z9`Vq2n7FpNaeU_1{8gld#{U3wQ^1Uu2IAA_gQPh1Wrl9dy+`NXgLvLYRq3Zdzh<+CGe)KxD zHBH<&wLgS5(mAq_gLZZFUA@083sTh@uVyJ089&sEOHxrXwNyDQ9#Lkjl1`VKxyQT2 z5C4t_4xe%(v)h{k%f^Ol z!?220#n5N-3TKicypm^~#>ziOh&j8V<4c>JGC2dB!5@yq3jpo)rM?w5sQJM_2)pk~ zP&5fBtLI9FvU8^NuYD_4kv^O)R07=D*C!3myW1!0U;RGMrPvL!LZPL{2cHHGk1uxQ$4^yY0sY z<^(~lhK{a_ldVjyDSu5`l?OK~lO-PQY;~Hm^5Hm`Kvt2pgEapo<>k**>btz>RsHrs zqRqB=)N0Mg5fdIs8Fc+A1F1a(HC{lXoZm%R{38s_bY+0inI12s3^DQTD4 zvgOs8ANbMfO1lGs?r z3#|J(0F;4>o|V(Cwy7h=lMwxBoWC-Yt^Q=(4XQZCkn7ujXaX+is=={uzKs+dQa)A2 z5Q^!##*g4wjTL;UMAEyfs3I4=w+v(Voe{Hx0n3Q(Ke7)@3(7uur+fWX*K7t~<^5V| z68Z%$`z*1hsP($GNK0{2lOGK07b>ZQtSimg>vkOAX?XC*Q*SyFsT>fN9YlCrx!N|i zErY+n8<3qZy(LELs|oWZZv}pXdp{7(ZjZD3i1fxwR`X+B1-W-Tmu1#FsR2yr!toQlh~iw4B%8Bhe$n$aaGS<;>7#F}U>p2!vL zf`>LXy>H^>3c|1ksagL-2uCQDp0MqAznTB>UNRpEDaaj@9|r1*o^NsQpyXB5#dPrlNYy^q)3633je`$a#xB+lKCzxi zl&px4wh~}ji{lQmH;NzfYi_)t!cSUvUf9%RI)*i3wpV!nG1<|C98t;=op%nC>rZhB zDQ)RvubCPR*J<;sgb~rbs%6uEc2~SgUa@_ zDyL%ZgB%@;ll;lpxeoI64QcCYN6dy5KhrPQ#OnAO!IPrRLjh~tTt=XrL`;C!b9imO zNLX`~s;=Gi8(Z0wn>PxfoC` z%?E(|LG^b>EE=#CG_=w?$pVw<>bUkj1NLUth?JozAXJ+ATNhsQNX~4kyS;Dp+BTr~ zeBj^KT4+L7c+O3Vhr4v>dk4Gjn=d(Tl^%+QF=hcx6HeTbeILBOTr<^lB}zOM9hrJl zD*ezg>%AUJRdz1scTVD1*4HCKXg{L_VLzn$D+f4kPUhO$J{5!Z#Uc3icW81GygF<;nYp{m{H zQEOkIRMfyv_Fpefqy>8FWni0Tmp$jy|3$aX=K;eq+u=`Q z!Z-*}NX*BGef*JbRbK+T+$~|1N0^Yf;3U!eT7c|V4a+FV zM4yYAvOB{~^PGGdzVt~bRB2(U-$T3uHx_p@>*ILI-#@A*AdK;t^dET)Qli&#!dc}K zzB$_~(N5$QP9Yi05q3G>>qt~iDJ9dI;m=P+H;1;YqI#P<_7tdR)HP~~4w=3qOkMoo z^$dQ63E1{7U%m)eT2_*f8&8sJ2Bnvp`-F)Gg2rT9E|w0f(_2FVU-65z#;O+6dBTf5 zJ+(AWgw;2x{8x!GLl-eS>Q+fz$FRDX;gtB)k=}y)S!vIimvHv?$RFjN9P!P7*!~A_ zpv#x!@$Ip?(!a|GHXZpb3=JR;81I^MfN81^KE7<|oEQ*`79_gVWyDl+CBeITqd#|F zbGItr+1uiGs}f(zb1zeCw_D@Tr3H30VtWaDx>`NX>4#!Ps!IlfSH>Mj7=;f7R~xk= zo{daz8EE8p_*$Jr_C%~>M*|W^i^{RzEz|-hbbs51e$LQ{ZeFN-bxt!BKf_c|hBAiI zi>WC^|HOpsMHkir93xDVML{Tm72~Z=72u@gL={H+MeRBax*3auj03$3U+d(##U686 z!3TV5GOH@ho?l7cJwl96OGsfO`Lv3!L)uv*sa)&M*O+`TXPJpI*8)apjQ|gE$_`ZE z(a4eBj#bSI6!O#$*T@dKJ?lM`pX2vQ_yE!>k&<>Rf3cs#?g0PH?9#tf69?QahbNPh z>dO2quC9iVE2Q(tBl%qmtR$tuAfp>k#D&W#K__P~v5)*~if4pP{SH54L;t%mO8y+K zNObH`EEX}jFM%k073T9k%T93z3%CZG0l zo6?ET@rMzMyx`W?37JNkU2^KRN1W_sq4x}w4yycD7W4KuC=l$Zn(I@IrSaJ1#LhM| z+Wb$e0586=52qUT_|+-`H-5ypeOsz38EmNM3w)kI=6lJOUiE0^)l7xg*A*OdXM?5C z8kxnkSJNFS;H>XBZ_}oHlO-+_?_DK(2}7=swD7HHogUJrx_x{k7Y~aKm)eXBCyB&% zN6VE3VXmZ&h8}_C55Fk7rmKg&GxF`*Y(prZIAk}iTlnM)b0m#;`n^f#Gt*me5b4+S zg>0>OvL`S!YFvpXnx2l~41;i^jqAUaq}RM;LH*f}XBO+K`9f8__HJ)#GBTF ztn(hVHSBilYj0tQBKQqd1>Rt4ug}||fhjB@eL+mnY(d}52=|;{n(gwE8Hf~Dq$%cf z`{Vnnn@d0=Y6v4S#*9&Q(J(*XJ)HU_)Cxyax|~dpn2YrDG0-@=)@QEtX>t_r8inbD z=&!|Fob`_r@;LBQ@m15I zo1hzSp*e$JzNZIm+ErFtEB5i`H>C9Lm1eM`@zv$c{WoA#{5^4J_9q_tft=mS-aza` zv928}a+Mhe$uTk?G948pzB$Fx(L(bVUfM;AGsC>6Lf%Qz8A*{kITAJ&*HL3S=(-n_ zvi||zT=C>rWXcx@%ZQW=dR8g@`xhfn8sJU3uEvByX~7pWZBmGDD$0N5tIWU5A3h`B z2eCS+{<6Mupsi$B+9031T1ty3O2LSmgi7sPG#Yt<6nHnwXpK`6r zP)ifTc01oF_ut)rN6$)tw&$G5zQHxueXW#!T?BLg>> zvRntGZYxV>L5t4y{{e^`W_a7Hy%t7s8XcWs{jYE41_-)7Vt?dYvU-Ra_jB}fY|3-C zP;qoO&A@TZEDLw-cYdXY09%hdrHJBP;)aY9;Wen2mn7c)SW39J{8k|Mdl9$a?CnnI z|7zGK4!D=T813(e z`}k^Ya-ma9X|pYYCp%7?zb?xDE2R{NHHa`USn z*sd2=WwYhf>bo6qOPrGVvsDw~f(qiVt*Pqa)-NNhqlV4p2bXximp6MQm}{g^K8Q+7 zTCr;h5h3oqOh_8L9v9PLGUXC7*+}FV)Z(A1pv^vT<`n6XGxZeDt~3Ct?>eSMff$7| zu#a-5q3@_K@Q!pB>lvd8Bx(mTDkSvJFR#jvx5!ntPz6@!+|xczlOc{d(0eK3M&6aakgg{3Ks z$Y2vh>-dE8I-^;3HAlEboDCeYprIxm{AK`L_uX5M(v@zz&E>{lxNVTv+?#w00}x4 z6$XO3H4yFbKk^o;)SOu-Cjk#Inf&4jnLZnUMzvB#i!HvG{?ok31wZ+uE7g;IeMO#G zCIm!rbGdv?cMuaXM3Z)osj%etFuL-Rx=YWLOigoH@P^0*q~XL0gSJ`2U7OxOm^{Kt zSGOd4f0bLJD}m~P*%rLDMo)a9PS8kDNp@PfesS8fawb%5y&sLxm-TkjGeHzg@w|xZ$8$@Bfe8v z{UXdAIlF8p#r)&LVLW+SUn$k6_|gOJvmecfbT%aZQi!!l26I3$As)ri3M)8*-^&oRXEfPvqH@89;n~ zEyF$Vq+KTOy^}6%-~B8L^8V~)lXr4 zgm6*E_mo`xF}x2!zxX1Igm@b!Q#&sFQ-lFLXJ`Wljv6C)#4X>Z9Xx|?^PWX3x*y8v zE4w`MPM-+}NLMq!PV%o2cH*r`bjPA~OCZN&An>O6&-v6VxklZ((-dd-wb+PiXb;LS z_SXEjG^%)EilGR7#!>u4@o!)?-X-P^E--8=Tx86o7URE{rNYxTNcDD0yX~1~{F>xw zQ7s{p=*Sx$Zn#6}2rw7a$iHjia%(R4SPEy?@-Gs>y&5O8&J_?1@$Y|^23A-YmaD46 zrg%_yOQZcjgGW021)R=0(1JzKo|bV%36kOln&>v%@>9oxMP@}M22i*+JSIGqnfHwz zu2(;OXbv$yoe&Kq4uE>Ot!5=kb(4rRnw|%OWiP_=Grl!h4iiwQCH`b3YXZ^ zu2&hj9)r}s;NlYfRy4bQY*v89951Zlcp`HmH1d0g+jC^UGyolQQ&u{xeXTU9y=Eis z`{x=}@5>1LT78OR)0?d4vG?Z#+o)sCV>COs7SFtLi!~41Ma`lws+r9LB)}kQPs96J zYU{{>8aR@YV*c@kRO_mRl#JA2d--Q0bZ$Q7Wx2tZ*GtBpH^vlg+J{I-pJDQ8%k94X zlzlHBEYh1(T&bn`e}DtOOh;AXo-_g3hFEDOK5LkLT$auk0v_P9-0-LVr0Uath-<87 z1~@eQF(?tQb~r)akZ>1RijIkYpvt`!m(dds3g7`ZJcwokbT8${SV=v;WRR+koWl`( z@!LXyHG0nFUVxB2={fBhSk|D*z`x-X9q=3Fx?%w+_c@|2ULk@|$0S4`8b5{$U5K1` z$yPV*j`HNbVx&EYk(iap`JANu6v^#Zv-%uKx9};lK3j(4$Ps9=tyvz4Re|t!|88%g zbhgDZI2Bf9z}(@?(C%+8(n^<-Wy1ps8HLYObQet8DO8)dn=t&r@ql)I*l#J?opx^sjONJeu;Z8~p1IaiIV6Bwv$q zg-T-~y)jzBnfcZK`g6;FT-GEBkxgpG;xjnm0kBC!{fsYHiS~URjv(MFi=pmXgy$aw#Yb`h}j9nFB+#6KEE1w z5;KD`Gd8|rgg0-%wR2$??S_0Gh;&96cjP#0v|6?VYRtu-fs2dIo5*N*g>Ki(1D=T{ zP=%b5=5KY9&u-DalkBnvr1mQpX1!P%7dMv3?@-N={pW-xOT>$x6_8&j{H@^=n2{Kn zG~b?0s*!n$bZvF&t>4M37xvzkRUYu0(INLBRbEeL2DKCK7t^7_uLXJ=lq6D--(;^t zr$VS}6ETxX2IRKP%0Pv!T84$^w)6o+C0aD-+HKG4>xvf<%omekzNFC}H%Cgg*Q0u2 zgpDcu|JQEZ%&Os}B{Gz)r9f-aD^k?b8`QUp+^`)iT9%tMrW!m2 zpI6a{Hgvzv52WMK8cKgo0Bo$b&j77N}isenk* z#ICpcnm^Q3jRp^y&20wBr>_scr79BJ_w4REhHw}p51Dr$MTu?XK|`x}(Zo556J5*Y z9bYe{Xf-j@sA`^vKR5#x|CaY-f|6UZHR@-@foC22JkkUp$wH)xHDH}u3#fx3CQhC5mpp=$wnx_S(UEfKHY!8@nrxA{FK#PP#FyebMA#ovU4UlpV8@?|%r z2e5Pov&#PRA91boqmG}4kFfI>2IzfM?$d~pFEb)%o2)EgwYDFfq=>vJK^`?IQGZb9)`oj=Qe?{{W)DcA2h6GV6e)2eNQ#KB(R- zvsa}o@ve9=<)uAdC`P%3;jLoapzDj!B=2hS26Ef;DhxVk2hiQT$klY9CAeMw1OEra zL#yXPD0d^MJwxjS-KONiC8NLnq;=I($~BZ<;sjh0 z##!pTEMH=Z%lupLg5ehJMF+{hPI76raC6}&ug~8sfy9Yj%(M3@D_Qmcmu#X(m9dAh zsv3|lJkcEbdzszhiLxBT^1Mxx-8K{WH!(goZ^ke=KM=5@pM&hVPOf)>rtikg@W@3j zUR9WF-AD0Ny?KK8%zg9)+XNgPH4X3pdDY%u#wsR-O)2wha#|@yTEJ3zf)e9O<-Xob z&-UutJ7KpQvO0hZ$OGRpAamUx8th3@&alRXe6t$&dP@3^ z-|W(~-Gn90z02P}*7$J!68V<%9VDvH8Rb7ZqqTtvTFhqabKby{!iND14D<@nEsQmCBz~|7$$#q za!~dxOK2@tFFB0d=`TgB8FkgZdlXprM&-$kR_m*i(5nxKD&HG3+az+_VI^)66Pnz5 z$bWy4lgG-JYl869fp_66&3kDJ=BjmTb`D5+N`A6+1n zCGVc{Af7zMLYNLws@45Cd=LK!%R0>U73298R={H`mz(K}vgJ?|fbM>Ga|x+~`ff_Eb3p25Z83 zy$8>%NBJy#B*7KCG=WL-TvlIVqeV*CzeTK%ekcMEyPXFLL>qq10ksPyyl&&mEl6Vy zM{ZbNu6t)gh+Bx++o5GO558_X?*4oJia^dQ6$f!4Q(qqkA-iwWu!jL9J1W(&fQiRU z7yn2K#LKP=XVS$&l|ar$gJ2$$PUO6pTBk#m#T3a?W%h!~P`1u97nn*tYD}i|Y|hkI zi(6(?tovLq3me@3Fw>UM6!xs_NxkiK16fh&U@d*+M()BP%OzN`lt$m=7Ap@XPHM?*0{=tT$yAruKknk7_2RgsPb0*RqYClr+udQg!fU5LUc z3L}Gcbexyx{dU(`_rqOhox9uF`~Ragy9+r#(-6|HDLar+wA>|{Ag+t7-XOlzag4qL zOH#_5)$%*%Y&*pum<)q{ocx}@Dzr$iI(E7Ab{fvf>S31yU=$-lf1uhHG)+@&+0s5c zq~&L2E4~#V9ph}@Zjd>TpV!v)pF^ux8c*| zHj)1T2jXwNyM9fVZ^kTcCC#-X&b&~ei0VAe>EbTdNJ-GK(jhv-j%LzN!``yqb>UIX zd)qBa9*xsN$jrzdbD4WjjiwSrVBL!$j@30gMnU<36QRS?%$u~vw60!ng_Hzi+FZc6 zPjf!(U}rM*rmsMeA?TN}-k-*EzGbMZruuh~&2|O0Z-iiie53Xl;MmjHzR+6d;fe8W zlNrBm*ZSyRqjgIQyyFv}zQEJk7kC66{Q3yFxp-h|CaZm5XnOFj;~dc5_f-uTh8H|` zlCxC&z0}{m{Cm{bIev?aC>pA*v`2(AclUO_^gNH zeiNVfM`UZuwJc?M8(0#&e^}eIA0@8HEEx1<=e}p39NleHFOP3mJOa}j7D>AoG61@p zYXU^-%_U<-`s2Drv*NlFhr&92ME?s6PDI)q2bB@BqH|ohzHX$vK|dX)TL@u_Bk1?o zxxd8crnBM6wftq5VubVF5iue!q~&HMpA~)BaJSA{o(4ORxNKHbYOa2AI(LLS0A(3h zKX)rfHayHmj*Xp%z10oIx~HIxu)p z>6?|ZT-p<+yxZrpg_|j~=4&X_qXCw;hvO@suT)p|o2;LR+`H={Bg?m0^zy=P^VcZKWt zJhr@=hvEy5lNj@bBOQ~)`NP;?d|x*Cl&>7&mt#GN1cQb7oh>Qop^3h{SsqR`?Q?zJ zq-INf9%}@+g0%53<3xe78CEzITt`a&u6W-O54ohUyp%+U%F;V#swGc>%$vdV$LQTXFIo@7Qc3iY%lmMLcVg#`zNRR5X9;RbL9YHE--N$ z#o~3dg2v1Id-5f39?KMpuR6V=wYP=al%j7GD%D`SXdw{|C_x>wTy$*5=x~kDN?19w zF$8I46-h}UNj~`#tBkArc!0Rm?GzepXBs&`v1a829ovZjV55IceI6g?JDLSgRpA?= zzt1CiB)#DvDhBg~K*-u>c=~cvg;$nD=3V1C5Z4Wo4k)an(WiY$N8{#>kP&qrSQLezg9fDXP1?a zeckC{fnLxLciGHB?z;z?hSul1(bJ3zl_iy)k+=O=moeMeSz_PU{AZMNEAleC?LVD< z%waQD5T&2|%qI8#15jvHPKwij>ZpKf<9ecGf5XDVP9aTv?^;4+VlvCB{wXd|(2$b7 zsom#NW6hoOa#FprntRe2%8ldqL;CCRkEBA+w_gJE!}HQo_fZWZM;MFw_;nXvolcc} zy?3wMBd!pmtC$D2f4IXZIZms;R(f}gqFpMZg#XEgL(cqN!rI(PKl5&%Fxicf#a-6w zEzU~X@o5jO%{{e#OOEaX$D1{Th#Z!ixE}kgEwd;y@nYAf+aF7{VN#62*U4F;L^F5S z_E!`0FGp{MNPleOeSt;l4dqFO=kK0&;Wy%Zj(*QP5{9IJR+Cu&j_dm!r{lAvJIpgW z**f#FNo8#L)|roGDXT*JvouZX+$VGh!r(+kR_^=q5{V+n();u-ZOdQhF2sQ*91!{Y z+rm~nub^XfQs!D*$NNO7e>HhNp%2sS=~`n^iXkYeIKK2`&+X>YjSwr#M2@AeX`i~- z8?sgv_aTgrL8varJf*eD#sRl(oDM#dpyeMdbp1`h&tJOo78$`m|g!OFEeH+A_WbKh{K|zxj!0lf6A0v}nrEG55GvVJoVQHQD6d z2DWOvgOg5+P3@u7R1f(8CKhNcHQnr#nvw79E&U31d8K>Bx>+%u-?wK?#ZtaH^OMph zs>pFFzn@-spedDE!jB^F_?+cIs%&gHb)I6zMtfX>f+z7s`3*Zu`JdCDc6eLkX1O(9 zQx(MyNTM6&4R;JBD4tDoe7F-E>JcSyq`95rRHooq$yeQl#2=U*2n1aC|F(?f;fOosg0}dTo~PvGa>Wg+b+d z)F!4(8fdjnmaThionF<|g4Rjjig3N+sO49dt|GK12EDJREl&MIcSn}4BiB+ZHF$x2 z2=j4rfgzD&&38udAVi!GDcJ>gFJ0r?73&Z)$x9o$vzKnYEg;^(U3B(fRV{@qAH!~- z_2eUyd#4J=nc9XS(9y4!osB2TCbADW_QIb=vuXyjb-f|Tkvojw-V*AfSPeP%`|nU+ zy-Wo|Z&9=!MY!=~o%IaiNZ^G_v0Hvf8JLVP1_zhAUicxDAcQlJhJrGywT#Ag-x)aq zg5xi3m~iA~D$yO98zv0NMc zv*GTH+}Vny57;fd&O;Fmk}>hXzTU8A=J)ZIZ&O z>7|KYv8}21c%0)8%+PJ#cgOja+%i4lA`9vMWmKKaX+=xEM^SZnbbQ+Gn?=Br>i0J| z42aK~8TBY=R2cgwh(pYcCjif%XKT?yq$M$)dTZTkpTG}bK*&r$0zZ=ZU_B>u&Np7ZWgZx+#TB6Ag{}E7te;I4`pWLl83wtXUgpWqBeW&bIK|B$;=JGY5l#S%8UTl7ZX5MbR+kKfjm-TWz#j+DwKK2@I*Cp^-TF)uY zbeY7fYag3rPb*Bv*u9uGamKgSvr%iOmHT3ByU@RQN-&AH<&)0!<`;`%1KN$LiRS|-E%(b5NzL;e3L~bjML~HmG<1Ad z4Rb$u2`d$xZbCbFQ6O3UhkB=5*l{cb5@&dc7S*opLU(&5_#k=oOd3c0?;SqG?ZGFu z1L{f^LFqmb+!TE5I9&N-_@V5!mDKP&V#n*#@!M;ZsF&rrqfvuWUgT;0nyB?dput>t zZ=&<7lSl`4ZR*MgC;l+4gqU>$ne%T;{~7fBNTXT5VB`o&scapF5~0mwFP0C^S~X{L${Vw4wrR^!TEvgGrgWIx+>`J_WYJ3JE2lB z6mYtX)J1r!(6zs}b7iz>@6g>S{KCzF8Q=4#94&#VIX8vU?A>Jb{)NhD7h0Y_Ws`pE z1ofmz9IcsOi&Ky7#@P`^y<%BxYfc9g@48|L^+)|bpWWtn)LHWLEkQ)r&#gXgW8|NX zR7N*SqAb|&TUNQ?F|IG^1 zY{&%l`*8;a1@VNr zVP^Zfo2@~KdKY#|c3~EYrXYkv^mTX|U=V%V^O$Y2$<6f8(WsBq@+a~^{DNv?kW^?z zorK62NW(9s7;v}PoGxj*dWJw+tki=48KL0cIL+y`x6^jA8AihSq=ZAkO9QslBbUMvKEl(E)4V;y%F zH^#sv0Oudt)}Ob-m3(>ikD73P2SckMZLe z;$MUa5t_ZsImq~DSEd|ud~k>|F2|@}kq))oGSv|gaGLgP@^H|9pYkqXs@0yl3@=L) zJf_{nu80!(I_lBeTm1487n|QDS*>-aH$=L#uH^0ww~Ua;1B23M2cnXik?yuJJ36o8 zKNm7eMG}<_7a&JGi+I9Lw>+3eR%nSqYWZI_r+h7&z7Ur(%HwRcutI51mfRS!Z zxhr$qsU}N{Qu-n<9#EH@raUxYh4}eJtjU%B4IAZG8|GIn7=UoPh;9jHEWPoFuvUnV93Oqg5W-cF+2I zTBLrKyhSmXde<(mBX7IFG&+TbsT^{tz8ywl<=L!0O6n)bKM87f)XwVP^_mu^?h>u~ z*xE)r+dv&3NT15>U4*yA<5MomNX1|dzuSC$w-h+$kIoy4#Fds39zLV9x+P>*aw$|} z9B6mDzCf$DpvwJ%TUr9Q)Axo5ml|6b8l98HYI8Kk-(S1C#ubU94G%qv8s_Mx*B(Ck z026*UIL3=t_b%DXkk7P}7B*7i@Hs@jhRq`w-Hw&v5v~F{T(62q=saE;26^;%Hb{8a zkL7kCr@Qg@Lr##MA6e~+(~IuN1Mr+0Z);v;D9_CQG8;m$!-V5=SzAUeXbivoYR=K< zfxB&wyEwb=N7^d^GQZ@AFGenGzV(ZtxLrqXPV~y#jKZJA{PsM5{gxVP&DQgq@CeM8 zWpSXB$)R`#^eYv}*Pj&}V3zF!iJHHpp#>9d-Vr8h=qSAfZEQcNQ|7{9HUI%s^hIuueMl{ee!J$CdLsZ0f}e+YuT4GM8LoH77?< zf_mf3pd-9{LG%}57t5(g599Le@Kwx&%x$v zH6GAz6}=5y_Fg|pd+s4M8&k3-EGxku(*YfIE+Lgo%x3>c-+gEe1dp&w*H6l)d0&`e zqSgwIIopC7hX49$9lDI-p6DUwdF3_TE;bjlu8wTJ@Vqlg!7!Ke{HxOWc0ZVj=A(h? zw0Qq+;Q1VTP;rE|3}^@BBVJ|Hmg$l1-VS2a2y7ybPs{eb>>LqY?M4vdVQ5p}EgPx8 zR?CG~#hp2VC(d#D6rrM+t^P7af`qZ;MoSoZz&7!P6lMcOc<4e%D%TeT=giF106=R; z`p$CbNO_v@%sS85*te!i?>YAEsmNhFBS+L!)}_MgphFqC$iiC=ZElTeLE_`-vui92 z-Z&?l3X8RqFDplRT|3xI1hx$~f6v^V4jA;|GpQ_2OqYpfe%YGp6z{DVZ0%6(L>|hC zXXVW!jje%r`H z6*z?>0)w&)E}G>dJUF8vruAp=k8J)`uw_>q$V-1G{4$qdC%`Mg{E&_B+4cj2 zVl~@3BP?`M3CQcGVnUjpTkJ{8RxJs-88BeT8+uil{PC{t%`mPBSK~wq_mL5i0l6>E z!^>f`h9=W;wdj{PU6owt;W;bKl))bHFSfCB_bewm7sz-}EoZJbDNI^FQm`J-WacXV zmG3ceouW&7Q+eZd0>j=TJYGFK86|bR4$tyr-?JJc{yeR6K|5y00PiI&jQTh%uC>A+ zAI>ua2EJ_Y8A;7VMQx?ksREfTvA@w6hVEg2^XB;&7c|kU$#Q-Ekplt&)Ql}+;7YV! zGOqXToMsjbI+Hbt%c<}3I}cgvdBrd{u4c+hkLXZBR|ib8hwZ24OU2nz+^7}(gXr%5`lUymYA=cz?u+JAr;6=&=h zKd7UDw{C|>(LHpThzJ7<&Qy>8Wi$AS_FIvt5zbHb$854hWQ#GpnDlQNu}_nIs|)&+ zkr}LyXi8*oBj>`^N$a5)mmqajmxYT0CoY^C1NxPZ!Ao#Ag(N=|1S-um4ISNm@h77V zAeRJGTU4$wl?99{U_6z~2?oFeIC$Zi~pd_aoF)^}4{jzpQ^Lg>Do^3w4 zXA?@t9&_YFMpn$nd3y&D+WO*i= z>z%1H-v;dxAXx@im)r`E@4#~g%nMH#_?N^RV}(2&9)zg|e5CLL1I5%3ECfc#clzZ8 zx=gsVP}?g6=2P?QxQJ<{7v@r^?bWRjn@6rO{9mqpN{1P(4XOipW-nSTvNTCkv&X}e zHM%XYN};hI=6XDrz5YdxoT{mhp#8;cyr?f1NkNd z?3&q`b22;?6a%V1V zgt|vu3Fw_a)gA|#8r&FRUfPwIZn@6NmFu_Q(y1LsI*wwS=DU$=1ND>unJtfRRgy*$ z$+@m}tk$(KKAj}5XPc!394xC<%##J^6k@`cD7|pd`OJXgxZ*a_BN@*ykc{Ydyc9mF$Az(+AKD}{yvdl zzdsySaMX5$+1c)ay@7>o2qh7&vP-5u4gDHpv~>;Xvb2896d_pIG6nN>RTG|@a-!$j zU8(UPn4P*Ak060`)d;*RQ4x9(%?UDqBVC=6sWE^t^Q?Oxwc;QeGMp4p;vRH@*#l`< zBw<>gD2V`Um->&zX8&zrVn5kj_QS@dzLT00=I+WWrJD2?=KU$+KQrV>ebp(<@+i8i z%5SPwx_s68E10(I-dE12m|%Rxjr;n7$9%R=fk1Py?}X8wqcEneNbALcnLs=YlwEb> zSxmUF+!nL3T#V-GD0?}LiAM;Xa^EU^((h2yTZJ(`}u zJm36jo4PAw{JmJH`Djvq_k^T+>$vONU-_iU6z7X>+|Q}&^9;oFdD@9rSHS;{eiHl- zker=Wt@Gv($SSB#_*RfLiTZP-ym_hm1H1H5S)4?^vLNKz5t9$*J09_u+bZXEaKgWK zz~koO-?F-QQt~IYID(*1U163*c7{%3plJJ-zw@r|nf?bjRjLkm;*K83&abaP2z{G7 zu?L`h>+OP=D5QjSte>``wN60BsoO)rG1qwhdG!+&*B1!&ZvQig|JF}pBd03{6K?#> zyWLLVv_&^g`s2c=^jp%CuIIVc3SDEQyKVMkn;NiH$fUm|rhZMr%4Sl7mK~{H#FTF! zy3!-qHkIWvw_dj}FOv4ZQ-%FP)~Y4Dhss^gacihzBvNoQyEl5VFRSCaL6=8`?8vxV zzT$+ip7st)Eyo_5bH^44*PO5W-{<@X$WnTD%MXl*VJ;o{W>cPqt$w1;3QI&`6dFIk z(KshrM|cNO^1#2lNnmW$Sf6C1fC_M5Km^vUI)lCvjOQuQ-c03&)LMY@QLBWfA*dF1 zV8j9u>RnN~+qlnOGR2?K%X~bncol0kwvg@(j!{VvpGq_IskFQe7kT9N*t)Vr6GI^O z)CX9?Ok<7`F1HTNL@on|v^{;pf?Ds$)*EO5;l2pN5%?O6H<=;JUWt7Q4}B^81$1J> zH0#zVe^Pd={M|pXS=!y(rll$1ua3(2a!g^}d`98*Y z>t{KNQRp2Ju{kO2_>J>iwDvxuTOcOzyg{!M^85$}N|<0 zR|Pd$%U~LUUz|yB0qfh?taFcWIliv!#&C%S!kHc&LVUHt$x(09vYm+7ONTOW0a9Kq zN4ahlFC1n?D*cyn+wf5`zU|q5Ffh>lKwR~x{ZW!APnhN@xy=YbJS78s?^zai=P4db z2QQUT0^t|Ue1_h@TVv;vno2Z2OI3c)IO%|{g+kgVo&5dJ8z8RDsaOqnAB+7qNPb=7 ztjfB{RU5vHe7esU9o094Sn!s(b_f{551j!x3DRIML|lb}IwAphch~n8SqTK(J%1a3 z7Yxy4o1it%|3xD@PMm2UEIC_5;HlSdX5W-48Nkg;-LS>n-%)KxxB7Kf$a2pFRVY0- zqh^iMEP*?7i+B5*sjNW)RF8BaLQVsDPMTcWE}5mZBjsO$<*Rw^0|}e==M1?B;`1$QooApeF~H z5-3A*5_Dql>pgIdyZ;}6d-mzA@0BlmpR3lCtRjv^HWyrjJ>@K}aBH4!>nOSGBADno zJq-}`-*ITZ^_It-?D%nD`I2I^mpu54D-R+U+9yB1U@kojOXwf+ zd$fNuCsy;T-Z!i(txd!JWWDkIo?%7vG%+qhh5MEQ=0}|b z_LVNRoH1Dtb}#ZoNmt%IV#5=L=e14_k6>qP<&vw-lXLfFT>WIMkt}ndnB=S>t&|!% zJS3U5)s>z&DweT zWlEqr?M7@fg5t)PnxPCBL&^INI9Aa+CZ^GF-&Ih%Xniad^oJ^3L{{E<%KwdQ1;v9I z;FU6QLLCB=dWqkpgIaOv%xyg@jmNgt_NmUV6!Tdu?uOF9sMIj+JY4pOAD~l}zoVu9 zHEr}CZ$E^bh~O?)u>rkzV=p;KrOQRr5vBvB!aV4!Eng77DQ&1=oV z(dCKXOQCP-gM;!{v`dBiX7NQ-Hid%~0rF4)ms*-u-A(+d5PS!@bH27U8UDsN!rvir z)5KmtLs<-!Q*Jts^_YfOX=?MjWTvYl59hC6fahmAZ=Cf9Z4mRthPZ^Gc-d=_sW{&G zeNxfg$~+^mi>cV(iZQKvk#Vvg>`A$$SdQI0Q*ewS^Te0x6b{6lm^g1nlC_h{#z%9` zaKeuvhon6suDv~`$&!YbBtHIQxmYawhU@3T==+eWay|<2k9P73z~B%xibR z)%J9TqV3g~-#m>oE9YVBZzr^&f1<~K5GtIwyT$#F7n zKmVB_uT__m^+4QpJJj9D;PKQJgRCMvsw^T$>f#vGU7 zKP`Lb1hwHfe6R`kjt5&Uhe)8OzF;UvhxmsMu0;0#UHQwWe|8<6W!KJ!Ze^_d4040% zy5$S(zMEx+h6hdW_NFl!-YK_OQ>)KP_$_3bwi|RFH3mUPi1)Z!s8{I zbddr?DP9V6cqEY=v~iUT=%rD^J{C6CBmit7#c-*~+s)&Nu7h#o%tdR~!gQvfZGVlHy{{EY>QWLG# zmsi0H_R>`o0`ssj^+iRB1|^#F#2VY^FUU_*>+{k=7sTIzyrl=k8RGsgf~$o4al&W|3#Ff+a>-&SaiN7 zBw7MrEj1?y<9zBSLIyL07uSpSygRamEeVn~zg7Nsg#H5@K{x&bXn{v|@U>CrT}88% zZ-(Crmg6>)D(S26riKk(4X|-H=&+Dv;bdQNj>a#XYKQsqY}>x_uh~V5Tvm@9^Vu7= zIXj40*^XH`v3WE0HOE*mH!p5)m!X^@o%Bye6$g3IJz1s+9&jqrOiTLM9r0N}vf4{? zdpbpAi?&@^Q5r}FGm(A>_pAD<4I4|#jd3~}8vEMYT(UT0y>DMe0=aVMZr%GB%b^>n z-&+H-nxdBuv;w=!BJgCeEyw<14OrtV)3siw} zyZ$Xvspe%MDe{A1=D?ag&4kOY86MYNbFYsk=}ha}D(H48Hi#N?3>WNnF%vbD74dZs zu_5>mT#R?exvNonF$CPQB&e!5g}}-*k|{3cd0_=|{O0W&LRWLVMB*Z(^@#q>n@^M7 zb2*)05raFtL#eqb`q^wHW5ku@ya|S@&e^kcU~^L1qnebAqEK}eAK8q4fU~{%tb>QP zMS{n1MXi}}c)3t`-DO@@Ly)?=#M}Lc{3@D0hnNe-`4v^?@cMyWn55DlZ;2ny7y}hF z@2usOji>`&_AJbCdt!}bts?d^(mnSK&7j_;xq^mvF4YzM16Ydo6^EsPXrZz_z`!5B zLw8gY#AqbS1yuVCZE<$sdwKJpOSe)QjQ)&m_9~X^Sc!34yR}k@F8VmVCjJm1kl~Y1 zQ83jT?R(9qN+0^3woh{J(stL-Fb3bIwA~v%K^)*n6-Pb_>q?;IrhA5=hN}-@qvy-l z5Pf7m^ybN9aCyJAr?wug>01+cN}od9I%N_h8)Qn2L;|;~ye~VnhY1!B%xjvOJ#M~bzp9koO``h}-q=~v(H8}j z+@^h$Iw5ueWDNo%m@RPf6A?Bry=u7E>uW=4fbQr@b|l}6Hs*?qdl!U7brSa+TH3Vu zMf13JE4p;M;1PSD1bj#-&&`;l(T+&yzcSb>2CmG5iA55?t zx2<=3`a8UphV!*T;0DxHO-uZriln43z-M3Vsx2PFN6Ph_MRJ&DqA$@tlCHU0y zVroVQ-JppSh2h{z9=`AVlyYoktMAv+dqYXPVnGAqe|zI10ew_{L&F-a^x@4G)cy3W z!Ws>zItRu8;ueO7tqJ4tmEnC{h4g!14p+nZ{^X^hxf4|Ch|}Ys_C&<89jTxyfh%C? z^hU5#Yo{miKxh$JU>k#JT!(E#p;!FhxSML%SDDc-$p+6!=5%kI;yoC8{L^}*tLEK4 zkZha?Pk_DXW$##Al|j-=10Upg7ccz$WefBOV*Z7`Yv1oKE3+;tBA&0p+!l(_(S=?@ z237=bm@Bkp*0ioYmjJW)kZQYhapW)fZJfm}+VsT^R;1Q@2k%iBL0dq+x~kylTSW*x zMjay2_d}3OUGuyV4UM3q9d#qHvfa=n4J-*O@ev|?rqxR#AO01NBRceI3{X+=cS-`phP#S;lT zgeq#rA!0h%ntvoFjB%av)~<3{65BXT_A7kkI1QMH64>%+yR@N^=*g!att|aQ_6fZP zVrCq(XFI5^-RrK}KLqgo1=+7tG8JP`5KCAh8jBAHfN9X8GQ#Y7s~Lp z&|2$^L*rsbf9Z#*+_^+k9Vs@KYhV(uHY~;kqAM>*J7A^d^b=Uy>e)G3GCa#Dvh~VWUGzj zuOVuPp><3cx=a0bD=Y(A_;o;8u}VAJ?{9s?z<1ZV2l}_;!3Sv zyI9hb>g&IL{d1b?^_-@{Ts(w>YNH(OaXG@eCr=K=o))TW zOmy1{Ggu6k3Ol%Glc$X1v@{j#lKDMKE%F=0pGFj}HB2)1%@We8X6%s)(tVleew?kD za6nKn@lMCM0joB4rQX?xv|N`cx(T=xi28-%d;6{QCfH}xQhP(;CiYw?_C-o@p0`r56(q3ZF2dnE}gUZdtc2(KlYE}DB z&|GHm!Jc*{LHa;|-(YQ?+#0A8DW)!(bN^hJXNV(UM0Bwp;baY-7^k|17tBd5`37#~ z>jk%)Ae;-r_hFU`q1znH+GEb5G)=x&QRqIGn2^r>- zUf26CEEzlYO@P6VKJUr^OWa}~g)afF*t=uX^h#2BjMvR@2N@yyYzODjmoV=mHC&zb z6ZuR07q>ZlYN|(wuJE#|tli^j#H!xw5d|S4lb{Nb*w-<<1Se~6h{EGH#C)q3zEWsk z!xj}l=6m!Xpt^xz+te;O?r$3wt%4D=C_BwBNt7kg8L^yrM4xm{G~9sDJwH}%X`nl5 z8{aHlpUi*Z8f_T585)W(l2^t?fw>~HFOq{VyAE-BS4gP^ObL6&xMwyzr>2nS9yYLD z>SFzSwowsAL5@ZP@HSFEOE{2)wr3Hnnx)(iO!t@n0lwRfMV+}&H0;;pV2TkSDW(+4 z{eEYrJ1cjfrv&Uj6dGM@2qJgtd4TD;^0Ru)H|~=#h@DmTX9e+~+#lxbdC(e;Ej6AX zQ=j?Lnjg`XOogHBVWwT=ZE_7G`m)O-8cH%>#H+JW1bqpLf{7rlR=uCd2>cb}MR8z% zE=hH~X@~0#EcrcSd(Q1KPPbrGeo<@1RVb~8>&dxVZN$Kl>8t3J;{U~xpPg|f;yXym zpa^VaQc1(Ys18XklPJyU8{mdPPufx5&cSgtCOFLC0Y|QoLHW&=m8QEAV22bJI%Sjnd>+6-S409JUpE2oPG8=Yp-{`?^=6vqOKcg)6txvp`f6k z)78d@Xry@O>GT|qCW1W!w=MMI>sOhic>5<{vM%tp2cx^ zLesRR#ZXhSK5j zkIfQ-{Qo$`(@|B>NdG#&rmKe?zpVI0aY;cn8h(C$6%Si`rJGt;{?+~Pld9kYPfs@` z2?-w`A8{WUaaRuq2`NQIMF~l132EsIhi6;>`MG#n`Cf1V3H|dTKV3)54rJr;(9QFq zs|){+*R`^C_3~5|6#Q|ZpMU;&pPmoxe;LUI^smP{d_ajGzmbpK}F)n zhy2w;|I?!XXgxHk8jXs?&(m}GfybMPf`9ej4hIur0gShaUksy z0sCG+ zC?uosTk``l7m~T~Ta!t$A|)%*Z!JNPQE{&1p3|Y>Q<;+)U z5IHaW${^n=UVh)5EN94ahAd~kVsEmX`N|+fb;)J!uMF~y;^p@a zMXr&4V_g1yr2e{v%!Onw{6<`oQAkE1c?TOgkpA70_v4u~@Mue>cPb(F~V_B!w~lUS|F8wXjK+F;f1<#{awX*+_YXP2-O&@ON9A48p(L z+GG&^-4G#z@b3ype@jnfIr?|kY{+tyEJweQp2#31gYa8HLoUpa3p3wXNFi58 z$<@(s1PytK;gaEC)^CN}?;VZ|!r$BEFSUFt6Jm{aGJbj&z+aYidOsLkH)VgA2Vj}guZdWkzno){scB-xLN>js8(w9_csLxpN^{AQ%0_@w+Mz%#iXt> zCx%b~_>WLO4G9x7J^9lo9d*k8v%|BN0;kv?{o|(oFK>f6QJvbTqdDx*HvhM`aX3HM zDcQ>01pd!&gX|_hBIWC8AiK%GLddTSLyjh7H~BqM{>e0CH~F1!{K_!oXhM!A|AF*U zrylRT^gq>TFe*wzL&NS~%zF&CyLWGsgHzs&C|V6P<$%PeFYb_RDt&-xpfFZyqVn3` zB?O_YM@|_BiY9+a`jxZ)=ZC=1MpmhGN;;F?Ti0ZbKEH7Cri*!2qQi9RyPK~#+Lq;| zc2E-6FZD*Vl`M|E4#uh`Ou{Y75?gb|WV6S#3=&?v`3~MMb7Cu47ij(#x5Xv&@oYmN zLF)2-XsMg0_W#t5zn&-jF_!8+cC-O1gm_Fl7xU|{e(%t~3W2{m+=DYs4fDfNwMfd; z`+L^&^}+94_ni&GXJ7c=bPO%6OKf6QNf%^~ypcW~QR$(0+7s#DXY>6BI*ah>y{lht z$8w-Z6_7Cqw)jI%hI6)ILX`i8-`%&A^mY}pEBl;`M@QZ)wq4o~lcr3=Q64Or+M6re zT&TX0BH_tb$};0oAs81^6=MPkDBtd_ZvF6dFc0zq2im`Wz;beV7nRa3xX7()5kY*u zcxIQXBKlXi{TB}LQdDBL8#Zqhulx_DAe0YKl2VxP5v#QvFm)|s0*YIBbi8h*9<@7( za3l=>!2rVakc-|Ap)zDdJ$UJ+EAQW zZ}5im;tr-2#I==r4RyVw>VbmtzTWhrZy~accYpN2+5u=fx zYVchp&gdnn2fTt$!+XQ`y|!W8_3ha`0(H9ynw%f@{0CLfbYqBthTmJLax32m!S1bO z<%&D+sd^SqSM!aed89VzqD}$5xd(C0k6Ywc!sICtXp6_WRquvHZ6w0P-M*AH*ke8s zSGZRaFO9D#An7dqc)3(befTd1!;PDTt8;Ok(`(VwuM;9ypw~PhL0g6Hcuz#?)BhY= z|9@8vqCd<#@QUXgHNSm&*6EmhGaB~-s6Pd3EeDUL8~!7P6aTf`=pyyHwN*{GE zJtCwIb?LiaCbDt1GFWgxm-WV&3m;>u1zC_E(j_K9PjgwE;+PC#P76znWyL{~^!M^= zTrNOZj$Y>XeI0o$Ol(KR9F;3CUX|E(8AFlnK37u<6&dy&;FRwomgH0pR@KBs$M~?T zA%vcXF2=$Wy2Fk_z)~F&pTZ5PYO`6I4NrBh_*kU8D7IZ4 zBYjyldBqs_QIUK0of>!|Pwa%UJCUW?QQbzXDEL$0xif8f`IP4r+h3NY9)0I{e5Ewg zB&EioM^TCxf8>t77-CGcGyv@SGPIw%<@0lO71#5ed))IpoLj>w+yiBP$%(+)4^nJ0 zw-zn$hqram=Usg*)3siB^yWB!7A;#*Djxn`4d9%8 zfx4L=k~%!QSKXUA9=lWU*-uuk+Oa7=9Ic02(9WL}+M`2!G4Yt|RY(VZ)9sWZjA z-~-3@#uSzfhOH~XaeECl`g#|Fq!t!o@wdhfgci;ToIIEx+%{_KMtD2W(mtb|aKbnC zlr0R(k5?O-L>qr>^{;{UI%YW-f!o*E>Wz*kL7~&9-z0%;xr+%;rs-8D!%uff_R%{! zcE5OdEF-5`SgvQz&J@JK1Nt}@>>`Wb)AE+g-R%si|5V96Ex+4IY3JmsaS?9DP$=~#jW z@I<%ItW|}J{KCABYE{@WgYy_Et?#Tel~ z^wn@`(}nI!#QafINoMUIp8D@896!gh=(@}UtMu8G_6Ozit(>36zb2jxOaMkz7E?D9 zy?0X^LCLtnsiY^n=iLdjVhKs9{CpXOkf-wt&Rh9&B}qX~(vaMro@Fif2gl~T(S2b+ zz}jWbE~atlsPW#ZQYh2Q3RIjm03)X>%%--O*RI-|kENj_xlQZ_EY8+zH>u4Hf5(s+ zS#A@R!`ug15%8W|&o5oRLLK3RWmu_kPP02>rt+M_JujC!J$3|I<(3(1EEg1A6T0@Ju0XeSp9TB;)7~0Z1mKhsL zy=j!bvRfYu`JD3LQs}vr;*lAa7V8rv@eMJaOeWJ|74%0u1gX}VcJ8%8Td&!kId;e@ zBUXgQs}NIRPyDm!{b%@K_v#_#x=bg`S#n8c&O6dTJmS`$@i7#7G;Nmm$lQnRH z$XywT8?V2h+5tjVO~8Yq=GKv;?PK3BRa-$b7hl$RKSPep71f+e-`8Ee_@eYMGGf`$ z-3uA_#0+ml%Ag79MVn0t@jo~S!B)H&Ts^0TJEU#p&Xiqt3GB2QqQOADoZI*2ct0wl zY_9CgTpMqs2y?jq(LOsN%uX2G%3|~22ZBRYQfA zYXeXty=%wsJ(H=Hq-T2CS2?z`3mZisolh+FE7rwKE*XQbJ=FA@EcYMR{gvFF0;V?Z za*jsKkv`wC9RD{gz1Ks9Cw)R|OTn8E%TMP2U2W=T6#%)?sKEwl*A@Mv-1FzNe?1sJ zj7cGQEg*kxY`5G81y8=u7gctzhvKiCoh!w`YRVmjsxGz&ErVX}31`!X28 zC1jIVb+oj>)@ScSLeF>hAlBX{cN&{MW#{}TI&+lKK4x+il*l56NF;|fyRkuhXcfI>O z!Dsox{SZ=jgm75`<1u=dn-4+->Eh(~V+-TwEMioj2-p<6rr?2PG9={L^wPHUcMKA< z3L_xcHl1eHs^k@OPXUA?kUFZjD-<=P}}_E7c}PL*n2dgJKR zb`RyfT$*ukq1L8w=AsL4Tw2Ax)y(RP^qQz*hKB*xy|4H#*BN!{(^O6QEQBE!?c*E_ za21j}%qPTKTvr@n92xmh*bOTh>+&NgLFJN>l~SJ8$ajtQ42n|{S)iVVS^vVq(QyhT zivY&WZdc*dT$+w;=PkK&TSe>>pnBW$Y$iNuFH5W$cG&+JC`M_U|*8mjp4twQhi z854MZ;r)l#SezqL3tbtO@mcF>a^{Y-MEE)6ijk(p3je((-rMu(%KqQ`YRTEOI;@V! zsLiLNOpDWY&wyzig5YTnF(E|}VhKe{^t*J$6C(GfAo^?wsaX z5aa?)@ZZLO$08zmO`HclWSuLYs5|Qrzw~Z@LN(980pyE}vKgy#_&%V_3q2Fdu``x7 z;u;{-Fhj~|<8yh-z~ndI!oW~^@7IbI#e0O;iJ0CKl=CuwdJJ?Y;YX|)@H zCt@TdC{>^R#`&Rwq5GhW-RU0b@?bUWCvj4>CDDkqMG*f(KDqy6HdE2@?l*(~8cYA4 zMh;sKE>Oj{4hE(XjVqTf7T6A_JPBkrf;~6v9UZZ8C6?LUH>I%99fCYL0PFh44fhH~FUEWXuQE$_tfunI88olxeh&f9eL>7n=Pc(v|k7<%VHuBO*~$39#CVCc)v>FKF|H};a^ zTN&rKwD}9pD9vya|Bp3AorD&Db1Zb&dq3uaZ4|W}yuIGT&=hxsfNA*<>7cc5w%33C z!1&x^@#eCBk0{s9I$i3zh70Z(1#LVXoAyHT0(ZvtcLO#Q-$_8@8S?w)fHqg?Wj_d? z5yEmcG~~DJ&(h8#uOrgi8!mq`?uS}Iu$=uT4g5!UyT;nqt}Ter)}0Ih{0yp~RI2%r zcM0xl-20Rc>AL}n5yVacJ4d|ukLd(n_+)*3aS)5a(v#naz;%5lBa#aenAS;h?yJNp zW|Fo7r?-C~T~5gVBkYA1U*@;y1*QB3_kYNtKV5B)cyd{5(6=PzDv852o@!th>XYzc z?OwGXhP@v2adu>64gsiXUo;v+S1F*_QP7G)YfSg7eqSV8pgB6=na!Eum{(&dZ&md5 zHFBT;DiMSB2EET>nFPnIiE z_r*Kh1~pD_vc429HPqOD&uWY8Y{Vf)txPLdMh)60XEA^U*Vum68ewE`@ZbzX!u!Tc zrxdl0MeVHxVLiQY>3Yiv?)>PSyHb=iSF*NOHQ3gDW3lqOUm(&)HUvk;Tk^cmJxy}g zw}n&^Qe2V=K(R?QzFgm%kRAj?PmfBmvgq6h#q2$slP%2!9;3M*DcDA{DtaZ9C%vC< z!iQBr=Tbc8PNb!XgGd3KfkD)A!*lyU0(WnXM38KwUsnmb?4@|qc6zl6`>1<$ENZOu z$l4WJ3nLzEcDxfF5g1B^ih3EfI&e29DpV241vXq`mH`blpP<`*+8E?%Q2MwaV-90C z<5-UMuCo@YQ2||QiYErEJY|9oCAedy1AB)x@xTH>MpiJ=u@G|(T7kS0%hCc?NVeo- z!}nm`w26LVB;6OYJni}5$O$88LzJPrjM|M3Yvw5jv4h#d+94&*zU~{%nEMG0t&+z# zc`YnUSEhlblO&tdicyQm_?xZF4#OUM)`)6CcE!ydCX9a&7TGMGP+}^@gNttMRGQf{ z<;ZK3o}tC0P)em1o4>I$6NqhSd(aZ6U7);rq@}DhHvdD>s*zA@=0?(`g-P#F>UoYK zs>cirH7-n=?A;!iRs+S$48s~WuJsBZ2plN^bdEXBf!zl^j&V!13CYvVjkF4TT;K-w zl6ZSjrYj3*ZteQDkNJ})H|&Zd%HaupxFv!h)c904?;E+tw8d*lkN`xFCY_!-Q;wfa zHjeksuna@bk=Rn*JukbVHrDnLXB&B;kH|P#jY|=+J>W>9-Sd_@g->c@9W7;0tMiT- z#1{SeU4lE6vT#-jN;HQ1jZv{qNlp#Q(@7~u4lCOaSCJSA+SyXbJ0Gx7S2m~w-3c7; zh&-FKFH~xa+73|;P_;F$qc3}7bp=T4=6iSbJ}Nd;V!ygcwkJk`5nH9quWk($PM-_8=LJJ7rNXIH7m4!jrQS=H=!>KIDj$ zZU<^Bt19vb`^bKZ;?CZk+3EPKr@d+Ba`ECzIcmiDmXN&(-A3Kd5Gt%bUQIA5fj+r% zO@o%BJLc5{NARme&E!@28pSIg8>%`OgI7M?$xM2kZM*XDJn!|{-J_F1|aLo zyu)2=yS&^PZJ;8r2(5wGetGCbxh2E|+^p9ThB6ngQ7u)m()p(Bw1(?@8eDpuTF+Cb zTWQYg9yDj~L?mv-{Oej5!P>j)SZ!9nJaB zW{T{E)=-yNX3bMav`F_qJ-Hj)-k#My*yocGhH;MeQhAf!wNkf8TV-T{hKmdhiSw47 zMr=PlShU7?DQjYg=2-Y>$KK7wS792KsWbGfH0geN%B6D^cK+Fg8f+co&}_vQ>75rO zqK%)7A?JN}8Rc+`UH)g++gSoyTxN3JPM}TRS|Zq^rwmkL5Z~X&rhGsydOg#8wmqQf z)EZVaSmD4^9&!pNTlCr~fmN$U+){qcZQ7#&sY#(P~<>pd6KJaSOZ6^NVhgF+|0Iy3JzC4 z>>6rj-6$M*A|_FNF}y#9`?7w~(DTP4Js*2bd-&%giJ&t}9S!^Q!tVCS$@Unjaa?^V zZ#9Zp(`)|VqXwVQvpKeG{O78bdyn{CSO?PRfYvUjXLJxAHaLO0eY1DC>sn_d-dS74 zI~JS4#|k)Y`^K_*179qBGGU7}e{OF{>qRHQl`p_DZ`=U?NfPKxnFxH0c&&o0-^|)7 ztbWUvNx|@<=d^M>t_4I-4C#CP0mOO6g&8l;G*vs!#r|$gB3ykf+qawBepLyK!LzeG ziNE?w>c3|~y-Z>y+yGiAl1v_*+xf8Q2g?keLY*0lfY8inx2@lb3yRuUS1J{Q@=a|& z7Pk0e+`P|V9B;8z6)@s&UuK}CLWFcxVC$B19T7Og!8#4l9~F9GYCo3ww|jqJ`gQr? zm)rUOFYw^cg=Xs!MsV4X?4FO=wtgZ;!Vj^2dEnr*4DVzaL+gbLRjEa<#ul0|zQOX( z_n!q_F3{h0_(6>*ZBx}7IiILCKXLu4$F|cpgVn+2yB@sWO-xJZV44}1{E3}3n^qs` z4Zu?bUO3;SDXJrhB5Q9%w;GIUC5rm1&w!y@y{Hbu83JI|K-wi4B2OKdji?4-COh{y zKdwcyv~Si#!8nIst)kf{3`;FW05@E%j_$oce@tKu(%0A)Np66%L3uVKQ$m1k=X8>T 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

x12S^r(I{=Cy0xpx!KMS5{h|zG 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°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ðd7SrY7<7LEi-$VZgRPg6Q@wJA$;*L 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

YqIvw1v>3Fs*6EtLz(Yh9rdij>qn|Yb5k+YY?>V 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