diff --git a/1-Introduction/README.md b/1-Introduction/README.md index dd99a9595..138560358 100644 --- a/1-Introduction/README.md +++ b/1-Introduction/README.md @@ -1,6 +1,6 @@ # Introduction to machine learning -In this section of the curriculum, you will be introduced to the base concepts underlying the field of machine learning, what it is, and learn about its history and the techniques researchers use to work with it. Let's explore this new world of ML together! +In this section of the curriculum, you will be introduced to the fundamental concepts of machine learning, including what it is, its history, and the techniques researchers use to apply it in real-world scenarios. Let's explore this exciting world of ML together! ![globe](images/globe.jpg) > Photo by Bill Oxford on Unsplash @@ -19,4 +19,4 @@ In this section of the curriculum, you will be introduced to the base concepts u "Fairness and Machine Learning" was written with ♥️ by [Tomomi Imura](https://twitter.com/girliemac) -"Techniques of Machine Learning" was written with ♥️ by [Jen Looper](https://twitter.com/jenlooper) and [Chris Noring](https://twitter.com/softchris) \ No newline at end of file +"Techniques of Machine Learning" was written with ♥️ by [Jen Looper](https://twitter.com/jenlooper) and [Chris Noring](https://twitter.com/softchris) diff --git a/2-Regression/3-Linear/README.md b/2-Regression/3-Linear/README.md index 8d6e0d14f..8978b79ee 100644 --- a/2-Regression/3-Linear/README.md +++ b/2-Regression/3-Linear/README.md @@ -207,13 +207,13 @@ lin_reg.fit(X_train,y_train) The `LinearRegression` object after `fit`-ting contains all the coefficients of the regression, which can be accessed using `.coef_` property. In our case, there is just one coefficient, which should be around `-0.017`. It means that prices seem to drop a bit with time, but not too much, around 2 cents per day. We can also access the intersection point of the regression with Y-axis using `lin_reg.intercept_` - it will be around `21` in our case, indicating the price at the beginning of the year. -To see how accurate our model is, we can predict prices on a test dataset, and then measure how close our predictions are to the expected values. This can be done using mean square error (MSE) metrics, which is the mean of all squared differences between expected and predicted value. +To see how accurate our model is, we can predict prices on a test dataset, and then measure how close our predictions are to the expected values. This can be done using root mean square error (RMSE) metrics, which is the root of the mean of all squared differences between expected and predicted value. ```python pred = lin_reg.predict(X_test) -mse = np.sqrt(mean_squared_error(y_test,pred)) -print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') +rmse = np.sqrt(mean_squared_error(y_test,pred)) +print(f'RMSE: {rmse:3.3} ({rmse/np.mean(pred)*100:3.3}%)') ``` Our error seems to be around 2 points, which is ~17%. Not too good. Another indicator of model quality is the **coefficient of determination**, which can be obtained like this: diff --git a/4-Classification/2-Classifiers-1/README.md b/4-Classification/2-Classifiers-1/README.md index 62cef08d4..82961d43a 100644 --- a/4-Classification/2-Classifiers-1/README.md +++ b/4-Classification/2-Classifiers-1/README.md @@ -223,7 +223,7 @@ Since you are using the multiclass case, you need to choose what _scheme_ to use | 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 | | | + | accuracy | | | 0.80 | 1199 | | macro avg | 0.80 | 0.80 | 0.80 | 1199 | | weighted avg | 0.80 | 0.80 | 0.80 | 1199 | diff --git a/README.md b/README.md index 1ffa87f03..d3f2348c5 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ #### Supported via GitHub Action (Automated & Always Up-to-Date) -[Arabic](./translations/ar/README.md) | [Bengali](./translations/bn/README.md) | [Bulgarian](./translations/bg/README.md) | [Burmese (Myanmar)](./translations/my/README.md) | [Chinese (Simplified)](./translations/zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](./translations/zh-HK/README.md) | [Chinese (Traditional, Macau)](./translations/zh-MO/README.md) | [Chinese (Traditional, Taiwan)](./translations/zh-TW/README.md) | [Croatian](./translations/hr/README.md) | [Czech](./translations/cs/README.md) | [Danish](./translations/da/README.md) | [Dutch](./translations/nl/README.md) | [Estonian](./translations/et/README.md) | [Finnish](./translations/fi/README.md) | [French](./translations/fr/README.md) | [German](./translations/de/README.md) | [Greek](./translations/el/README.md) | [Hebrew](./translations/he/README.md) | [Hindi](./translations/hi/README.md) | [Hungarian](./translations/hu/README.md) | [Indonesian](./translations/id/README.md) | [Italian](./translations/it/README.md) | [Japanese](./translations/ja/README.md) | [Kannada](./translations/kn/README.md) | [Korean](./translations/ko/README.md) | [Lithuanian](./translations/lt/README.md) | [Malay](./translations/ms/README.md) | [Malayalam](./translations/ml/README.md) | [Marathi](./translations/mr/README.md) | [Nepali](./translations/ne/README.md) | [Nigerian Pidgin](./translations/pcm/README.md) | [Norwegian](./translations/no/README.md) | [Persian (Farsi)](./translations/fa/README.md) | [Polish](./translations/pl/README.md) | [Portuguese (Brazil)](./translations/pt-BR/README.md) | [Portuguese (Portugal)](./translations/pt-PT/README.md) | [Punjabi (Gurmukhi)](./translations/pa/README.md) | [Romanian](./translations/ro/README.md) | [Russian](./translations/ru/README.md) | [Serbian (Cyrillic)](./translations/sr/README.md) | [Slovak](./translations/sk/README.md) | [Slovenian](./translations/sl/README.md) | [Spanish](./translations/es/README.md) | [Swahili](./translations/sw/README.md) | [Swedish](./translations/sv/README.md) | [Tagalog (Filipino)](./translations/tl/README.md) | [Tamil](./translations/ta/README.md) | [Telugu](./translations/te/README.md) | [Thai](./translations/th/README.md) | [Turkish](./translations/tr/README.md) | [Ukrainian](./translations/uk/README.md) | [Urdu](./translations/ur/README.md) | [Vietnamese](./translations/vi/README.md) +[Arabic](./translations/ar/README.md) | [Bengali](./translations/bn/README.md) | [Bulgarian](./translations/bg/README.md) | [Burmese (Myanmar)](./translations/my/README.md) | [Chinese (Simplified)](./translations/zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](./translations/zh-HK/README.md) | [Chinese (Traditional, Macau)](./translations/zh-MO/README.md) | [Chinese (Traditional, Taiwan)](./translations/zh-TW/README.md) | [Croatian](./translations/hr/README.md) | [Czech](./translations/cs/README.md) | [Danish](./translations/da/README.md) | [Dutch](./translations/nl/README.md) | [Estonian](./translations/et/README.md) | [Finnish](./translations/fi/README.md) | [French](./translations/fr/README.md) | [German](./translations/de/README.md) | [Greek](./translations/el/README.md) | [Hebrew](./translations/he/README.md) | [Hindi](./translations/hi/README.md) | [Hungarian](./translations/hu/README.md) | [Indonesian](./translations/id/README.md) | [Italian](./translations/it/README.md) | [Japanese](./translations/ja/README.md) | [Kannada](./translations/kn/README.md) | [Khmer](./translations/km/README.md) | [Korean](./translations/ko/README.md) | [Lithuanian](./translations/lt/README.md) | [Malay](./translations/ms/README.md) | [Malayalam](./translations/ml/README.md) | [Marathi](./translations/mr/README.md) | [Nepali](./translations/ne/README.md) | [Nigerian Pidgin](./translations/pcm/README.md) | [Norwegian](./translations/no/README.md) | [Persian (Farsi)](./translations/fa/README.md) | [Polish](./translations/pl/README.md) | [Portuguese (Brazil)](./translations/pt-BR/README.md) | [Portuguese (Portugal)](./translations/pt-PT/README.md) | [Punjabi (Gurmukhi)](./translations/pa/README.md) | [Romanian](./translations/ro/README.md) | [Russian](./translations/ru/README.md) | [Serbian (Cyrillic)](./translations/sr/README.md) | [Slovak](./translations/sk/README.md) | [Slovenian](./translations/sl/README.md) | [Spanish](./translations/es/README.md) | [Swahili](./translations/sw/README.md) | [Swedish](./translations/sv/README.md) | [Tagalog (Filipino)](./translations/tl/README.md) | [Tamil](./translations/ta/README.md) | [Telugu](./translations/te/README.md) | [Thai](./translations/th/README.md) | [Turkish](./translations/tr/README.md) | [Ukrainian](./translations/uk/README.md) | [Urdu](./translations/ur/README.md) | [Vietnamese](./translations/vi/README.md) > **Prefer to Clone Locally?** > @@ -218,13 +218,24 @@ Our team produces other courses! Check out: ## Getting Help -If you get stuck or have any questions about building AI apps. Join fellow learners and experienced developers in discussions about MCP. It's a supportive community where questions are welcome and knowledge is shared freely. +If you get stuck or have questions while learning Machine Learning or building AI applications, don't worry — help is available. -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +You can join discussions with other learners and developers, ask questions, and share your ideas with the community. + +- Join the community to ask questions and learn with others +- Discuss Machine Learning concepts and project ideas +- Get guidance from experienced developers + +A supportive community is a great way to grow your skills and solve problems faster. -If you have product feedback or errors while building visit: +[Microsoft Foundry Discord Community](https://discord.gg/nTYy5BXMWG) + +If you encounter bugs, errors, or have suggestions for improvements, you can also open an **Issue** in this repository to report the problem. + +For product feedback or to search existing community posts, visit the Developer Forum: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) + ## Additional Learning Tips - Review notebooks after each lesson for better understanding. diff --git a/quiz-app/package-lock.json b/quiz-app/package-lock.json index 0ff683d3d..90dc55fe2 100644 --- a/quiz-app/package-lock.json +++ b/quiz-app/package-lock.json @@ -6526,9 +6526,9 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true }, "node_modules/follow-redirects": { @@ -7690,9 +7690,9 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "dev": true }, "node_modules/lodash.debounce": { @@ -8390,9 +8390,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", - "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", "dev": true, "engines": { "node": ">= 6.13.0" @@ -8936,9 +8936,9 @@ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "engines": { "node": ">=8.6" @@ -16923,9 +16923,9 @@ } }, "flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true }, "follow-redirects": { @@ -17757,9 +17757,9 @@ } }, "lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "dev": true }, "lodash.debounce": { @@ -18301,9 +18301,9 @@ } }, "node-forge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", - "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", "dev": true }, "node-releases": { @@ -18720,9 +18720,9 @@ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" }, "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true }, "pkg-dir": { diff --git a/translated_images/km/.co-op-translator.json b/translated_images/km/.co-op-translator.json new file mode 100644 index 000000000..949b7eeb1 --- /dev/null +++ b/translated_images/km/.co-op-translator.json @@ -0,0 +1,920 @@ +{ + "3.9b58fd8d6c373c20.webp": { + "original_hash": "2de21431c87bb9ebc9bf4ddcb3ba2bdd", + "translation_date": "2026-04-06T19:37:50+00:00", + "source_file": "images/3.png", + "language_code": "km" + }, + "9-feature-importance.cd3193b4bba3fd4b.webp": { + "original_hash": "479e68fc76c6b6fc8cbc2b90eb2981e1", + "translation_date": "2026-04-06T19:43:26+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/9-feature-importance.png", + "language_code": "km" + }, + "9-features-influence.3ead3d3f68a84029.webp": { + "original_hash": "7a522f0212ca4c9d15c9d3d9f01f86f5", + "translation_date": "2026-04-06T19:44:28+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/9-features-influence.png", + "language_code": "km" + }, + "ROC.167a70519c5bf898.webp": { + "original_hash": "63e5567374ae1de1cd1e775dda7c81e9", + "translation_date": "2026-04-06T19:40:39+00:00", + "source_file": "2-Regression/4-Logistic/images/ROC.png", + "language_code": "km" + }, + "ROC_2.777f20cdfc4988ca.webp": { + "original_hash": "7e020247ea2b610881d260a38315aeae", + "translation_date": "2026-04-06T19:40:54+00:00", + "source_file": "2-Regression/4-Logistic/images/ROC_2.png", + "language_code": "km" + }, + "accessibility.c1be5ce816eaea65.webp": { + "original_hash": "ff169fe805ae6b4b0067443121c4c7ce", + "translation_date": "2026-04-06T19:39:11+00:00", + "source_file": "1-Introduction/3-fairness/images/accessibility.png", + "language_code": "km" + }, + "accountability.41d8c0f4b85b6231.webp": { + "original_hash": "65e19795f4a18a0878133c71c8862c42", + "translation_date": "2026-04-06T19:39:05+00:00", + "source_file": "1-Introduction/3-fairness/images/accountability.png", + "language_code": "km" + }, + "accuracy.2c47fe1bf15f44b3.webp": { + "original_hash": "f8fcd7ea58a80666ad22914c3c992c55", + "translation_date": "2026-04-06T19:46:39+00:00", + "source_file": "7-TimeSeries/2-ARIMA/images/accuracy.png", + "language_code": "km" + }, + "ai-ml-ds.537ea441b124ebf6.webp": { + "original_hash": "22725868b26ca27e64c946ee025d45a3", + "translation_date": "2026-04-06T19:38:44+00:00", + "source_file": "1-Introduction/1-intro-to-ML/images/ai-ml-ds.png", + "language_code": "km" + }, + "all-genres.1d56ef06cefbfcd6.webp": { + "original_hash": "b65f4a4412b6559b03529f10eb450c17", + "translation_date": "2026-04-06T19:42:37+00:00", + "source_file": "5-Clustering/1-Visualize/images/all-genres.png", + "language_code": "km" + }, + "apple.c81c8d5965e5e5da.webp": { + "original_hash": "ed62bd6204e6efabc031ea19173bafb7", + "translation_date": "2026-04-06T19:46:21+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/apple.png", + "language_code": "km" + }, + "barchart.a833ea9194346d76.webp": { + "original_hash": "49c21ba1929ad7ee26b6cd2fcf243929", + "translation_date": "2026-04-06T19:40:22+00:00", + "source_file": "2-Regression/2-Data/images/barchart.png", + "language_code": "km" + }, + "bellman-equation.7c0c4c722e5a6b7c.webp": { + "original_hash": "7adc065a5ea494b45531f754c9b76469", + "translation_date": "2026-04-06T19:46:20+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/bellman-equation.png", + "language_code": "km" + }, + "binary-multiclass.b56d0c86c81105a6.webp": { + "original_hash": "e1a17ceb5d6b5a8bb91bae9ca474cfb5", + "translation_date": "2026-04-06T19:45:10+00:00", + "source_file": "4-Classification/1-Introduction/images/binary-multiclass.png", + "language_code": "km" + }, + "boxplots.8228c29dabd0f292.webp": { + "original_hash": "841ff52a90f91c88278604315d9cd6e5", + "translation_date": "2026-04-06T19:42:04+00:00", + "source_file": "5-Clustering/2-K-Means/images/boxplots.png", + "language_code": "km" + }, + "calculation.a209813050a1ddb1.webp": { + "original_hash": "b2131ec1d3e6db2e2abd7bc8c699dbcf", + "translation_date": "2026-04-06T19:39:25+00:00", + "source_file": "2-Regression/3-Linear/images/calculation.png", + "language_code": "km" + }, + "cartpole.b5609cc0494a14f7.webp": { + "original_hash": "5399242e127ea1c18aa6ee405daecf51", + "translation_date": "2026-04-06T19:46:14+00:00", + "source_file": "8-Reinforcement/2-Gym/images/cartpole.png", + "language_code": "km" + }, + "centroid.097fde836cf6c918.webp": { + "original_hash": "c8f866ed446563d8e59087f1bca1f97d", + "translation_date": "2026-04-06T19:42:33+00:00", + "source_file": "5-Clustering/1-Visualize/images/centroid.png", + "language_code": "km" + }, + "ceos.3de5d092ce8d2753.webp": { + "original_hash": "f403a92005c5f0c581fd27587dd69eb8", + "translation_date": "2026-04-06T19:43:28+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/ceos.png", + "language_code": "km" + }, + "ceos.7a9a67871424a6c0.webp": { + "original_hash": "f403a92005c5f0c581fd27587dd69eb8", + "translation_date": "2026-04-06T19:39:06+00:00", + "source_file": "1-Introduction/3-fairness/images/ceos.png", + "language_code": "km" + }, + "cf-what-if-features.5a92a6924da3e9b5.webp": { + "original_hash": "0cbbda81885b2341ee63ff33aaa4fff0", + "translation_date": "2026-04-06T19:44:43+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/cf-what-if-features.png", + "language_code": "km" + }, + "cheatsheet.07a475ea444d2223.webp": { + "original_hash": "d4728a3bd3332576e35f206ee6ad3fbb", + "translation_date": "2026-04-06T19:46:14+00:00", + "source_file": "4-Classification/2-Classifiers-1/images/cheatsheet.png", + "language_code": "km" + }, + "chess.e704a268781bdad8.webp": { + "original_hash": "5b6c7fdfb0b6262a3938b18cce2f4a2b", + "translation_date": "2026-04-06T19:42:41+00:00", + "source_file": "9-Real-World/images/chess.jpg", + "language_code": "km" + }, + "chinese.e62cafa5309f111a.webp": { + "original_hash": "e7afddb049bc5e60e1594d3b0dd7e7c6", + "translation_date": "2026-04-06T19:45:11+00:00", + "source_file": "4-Classification/1-Introduction/images/chinese.png", + "language_code": "km" + }, + "clusters.b635354640d8e4fd.webp": { + "original_hash": "1bf916ab2a323ca1ff9524b957d191d9", + "translation_date": "2026-04-06T19:41:47+00:00", + "source_file": "5-Clustering/2-K-Means/images/clusters.png", + "language_code": "km" + }, + "comparison.edfab56193a85e7f.webp": { + "original_hash": "7f24bd09d9d7f8a13007c1028041fbf5", + "translation_date": "2026-04-06T19:46:09+00:00", + "source_file": "4-Classification/2-Classifiers-1/images/comparison.png", + "language_code": "km" + }, + "comprehension.619708fc5959b0f6.webp": { + "original_hash": "199ba9874415c9ac69ab90ca0c7a5798", + "translation_date": "2026-04-06T19:41:37+00:00", + "source_file": "6-NLP/1-Introduction-to-NLP/images/comprehension.png", + "language_code": "km" + }, + "confusion-matrix.3cc5496a1a37c3e4.webp": { + "original_hash": "4150f5e65462636d31a355fb8bacd710", + "translation_date": "2026-04-06T19:40:51+00:00", + "source_file": "2-Regression/4-Logistic/images/confusion-matrix.png", + "language_code": "km" + }, + "correlation.a9356bb798f5eea5.webp": { + "original_hash": "2defd6b5fe95facd4a781f9622902c78", + "translation_date": "2026-04-06T19:42:20+00:00", + "source_file": "5-Clustering/1-Visualize/images/correlation.png", + "language_code": "km" + }, + "counterfactuals-examples.b38a50a504ee0a9f.webp": { + "original_hash": "65fb9b98701cc42014f18aa998228333", + "translation_date": "2026-04-06T19:43:51+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/counterfactuals-examples.png", + "language_code": "km" + }, + "cuisine-dist.d0cc2d551abe5c25.webp": { + "original_hash": "c513d1f6832ac06836e0c8c665c8354a", + "translation_date": "2026-04-06T19:45:08+00:00", + "source_file": "4-Classification/1-Introduction/images/cuisine-dist.png", + "language_code": "km" + }, + "currency.e7429812bfc8c608.webp": { + "original_hash": "b5ebb401a6bea7c0ad8fa2d3f0fa1e18", + "translation_date": "2026-04-06T19:46:35+00:00", + "source_file": "7-TimeSeries/1-Introduction/images/currency.png", + "language_code": "km" + }, + "data-visualization.54e56dded7c1a804.webp": { + "original_hash": "0978cd448f88701c82bc30537b17c1c5", + "translation_date": "2026-04-06T19:40:14+00:00", + "source_file": "2-Regression/2-Data/images/data-visualization.png", + "language_code": "km" + }, + "dataanalysis-cover.8d6d0683a70a5c1e.webp": { + "original_hash": "6d92c827e7138869509118dccd983ccd", + "translation_date": "2026-04-06T19:44:50+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/dataanalysis-cover.png", + "language_code": "km" + }, + "datapoints.aaf6815cd5d87354.webp": { + "original_hash": "5a9527dee26b9b255cc5b624dbb51919", + "translation_date": "2026-04-06T19:43:09+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/datapoints.png", + "language_code": "km" + }, + "distribution.9be11df42356ca95.webp": { + "original_hash": "70424f77d27ac2c69e595ea8fdd3e28e", + "translation_date": "2026-04-06T19:42:29+00:00", + "source_file": "5-Clustering/1-Visualize/images/distribution.png", + "language_code": "km" + }, + "dplyr_filter.b480b264b03439ff.webp": { + "original_hash": "e71fffc34b1e453f16d5b8e266f46aa2", + "translation_date": "2026-04-06T19:45:24+00:00", + "source_file": "4-Classification/1-Introduction/images/dplyr_filter.jpg", + "language_code": "km" + }, + "dplyr_wrangling.f5f99c64fd4580f1.webp": { + "original_hash": "c9623f92bdbfdc2b68fcc8b8c28ec6d1", + "translation_date": "2026-04-06T19:40:20+00:00", + "source_file": "2-Regression/2-Data/images/dplyr_wrangling.png", + "language_code": "km" + }, + "ea-error-cohort.6886209ea5d438c4.webp": { + "original_hash": "95030d8832d8931fb4e1ec6ecda699e6", + "translation_date": "2026-04-06T19:44:38+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/ea-error-cohort.png", + "language_code": "km" + }, + "ea-error-distribution.117452e1177c1dd8.webp": { + "original_hash": "15823a9cd18a5ee815e7d6262bc6818f", + "translation_date": "2026-04-06T19:43:11+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/ea-error-distribution.png", + "language_code": "km" + }, + "ea-heatmap.8d27185e28cee383.webp": { + "original_hash": "861a9ea52a5aa2841f4dbf9ba45c7900", + "translation_date": "2026-04-06T19:44:36+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/ea-heatmap.png", + "language_code": "km" + }, + "elbow.72676169eed744ff.webp": { + "original_hash": "bb938c301c0b3fd5deec9f8b277b0506", + "translation_date": "2026-04-06T19:41:48+00:00", + "source_file": "5-Clustering/2-K-Means/images/elbow.png", + "language_code": "km" + }, + "electric-grid.0c21d5214db09ffa.webp": { + "original_hash": "d3adac5039330761223c6e9299402b3a", + "translation_date": "2026-04-06T19:46:22+00:00", + "source_file": "7-TimeSeries/images/electric-grid.jpg", + "language_code": "km" + }, + "eliza.84397454cda9559b.webp": { + "original_hash": "cf4cf518f649213e8970b1d08fbe6c77", + "translation_date": "2026-04-06T19:38:59+00:00", + "source_file": "1-Introduction/2-history-of-ML/images/eliza.png", + "language_code": "km" + }, + "embedding.2cf8953c4b3101d1.webp": { + "original_hash": "1007c6219e1ce7d2a51becd0596a822a", + "translation_date": "2026-04-06T19:41:40+00:00", + "source_file": "6-NLP/2-Tasks/images/embedding.png", + "language_code": "km" + }, + "encouRage.e75d5fe0367fb913.webp": { + "original_hash": "7dd96b2ba0df871e1553f743be58a0e5", + "translation_date": "2026-04-06T19:40:10+00:00", + "source_file": "2-Regression/1-Tools/images/encouRage.jpg", + "language_code": "km" + }, + "energy-plot.5fdac3f397a910bc.webp": { + "original_hash": "ea7eb60322ee54196efdcac12d2313d5", + "translation_date": "2026-04-06T19:46:34+00:00", + "source_file": "7-TimeSeries/1-Introduction/images/energy-plot.png", + "language_code": "km" + }, + "env_init.04e8f26d2d60089e.webp": { + "original_hash": "c98e0e9c3bd656f4518dcb94c1743f5d", + "translation_date": "2026-04-06T19:46:20+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/env_init.png", + "language_code": "km" + }, + "environment.40ba3cb66256c93f.webp": { + "original_hash": "3b7f633735a7af2335c024eeb9ed1160", + "translation_date": "2026-04-06T19:46:20+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/environment.png", + "language_code": "km" + }, + "escape.18862db9930337e3.webp": { + "original_hash": "992ff5365e7fb990b22e1cd8e421374f", + "translation_date": "2026-04-06T19:46:15+00:00", + "source_file": "8-Reinforcement/2-Gym/images/escape.png", + "language_code": "km" + }, + "facetgrid.9b2e65ce707eba1f.webp": { + "original_hash": "8497ce8826ba4d381db1f9ed514dede2", + "translation_date": "2026-04-06T19:42:40+00:00", + "source_file": "5-Clustering/1-Visualize/images/facetgrid.png", + "language_code": "km" + }, + "fairness.25d7c8ce9817272d.webp": { + "original_hash": "89c57b68363652950bfa4b8a3cae82c1", + "translation_date": "2026-04-06T19:43:54+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/fairness.png", + "language_code": "km" + }, + "fairness.b9f9893a4e3dc28b.webp": { + "original_hash": "89c57b68363652950bfa4b8a3cae82c1", + "translation_date": "2026-04-06T19:39:10+00:00", + "source_file": "1-Introduction/3-fairness/images/fairness.png", + "language_code": "km" + }, + "favicon.37b561214b36d454.webp": { + "original_hash": "228faa6584f8ba1f7e9a75e3200112e9", + "translation_date": "2026-04-06T19:37:43+00:00", + "source_file": "images/favicon.png", + "language_code": "km" + }, + "flat-nonflat.d1c8c6e2a96110c1.webp": { + "original_hash": "73d6fedd799f48057e154a4e8ce42f93", + "translation_date": "2026-04-06T19:42:09+00:00", + "source_file": "5-Clustering/1-Visualize/images/flat-nonflat.png", + "language_code": "km" + }, + "full-data-predict.4f0fed16a131c8f3.webp": { + "original_hash": "b9ad88a56a196b6b70ffbda06538bca4", + "translation_date": "2026-04-06T19:46:32+00:00", + "source_file": "7-TimeSeries/3-SVR/images/full-data-predict.png", + "language_code": "km" + }, + "full-data.a82ec9957e580e97.webp": { + "original_hash": "e428351ccdd1d7019ab5c486385a0cb1", + "translation_date": "2026-04-06T19:46:28+00:00", + "source_file": "7-TimeSeries/3-SVR/images/full-data.png", + "language_code": "km" + }, + "gender-bias-translate-en-tr.bfd87c45da23c085.webp": { + "original_hash": "3abc35f319aef1169941603df4db6fd0", + "translation_date": "2026-04-06T19:43:52+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/gender-bias-translate-en-tr.png", + "language_code": "km" + }, + "gender-bias-translate-en-tr.f185fd8822c2d437.webp": { + "original_hash": "3abc35f319aef1169941603df4db6fd0", + "translation_date": "2026-04-06T19:39:08+00:00", + "source_file": "1-Introduction/3-fairness/images/gender-bias-translate-en-tr.png", + "language_code": "km" + }, + "gender-bias-translate-tr-en.1f97568ba9e40e20.webp": { + "original_hash": "0e8aac544ac1089cd727075b6083639f", + "translation_date": "2026-04-06T19:43:01+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/gender-bias-translate-tr-en.png", + "language_code": "km" + }, + "gender-bias-translate-tr-en.4eee7e3cecb8c70e.webp": { + "original_hash": "0e8aac544ac1089cd727075b6083639f", + "translation_date": "2026-04-06T19:39:03+00:00", + "source_file": "1-Introduction/3-fairness/images/gender-bias-translate-tr-en.png", + "language_code": "km" + }, + "globe.59f26379ceb40428.webp": { + "original_hash": "843aa34b1b65eb8ab23f8a7476b7dcd0", + "translation_date": "2026-04-06T19:38:42+00:00", + "source_file": "1-Introduction/images/globe.jpg", + "language_code": "km" + }, + "grid.464370ad00f3696c.webp": { + "original_hash": "79d757e96813e70fbf7844b23dae96bc", + "translation_date": "2026-04-06T19:40:48+00:00", + "source_file": "2-Regression/4-Logistic/images/grid.png", + "language_code": "km" + }, + "heatmap.39952045da50b4eb.webp": { + "original_hash": "a62eb0069cc21d495828469ea2d0b506", + "translation_date": "2026-04-06T19:39:46+00:00", + "source_file": "2-Regression/3-Linear/images/heatmap.png", + "language_code": "km" + }, + "hierarchical.bf59403aa43c8c47.webp": { + "original_hash": "50b9bc3298659c463ae76564ca645b12", + "translation_date": "2026-04-06T19:42:26+00:00", + "source_file": "5-Clustering/1-Visualize/images/hierarchical.png", + "language_code": "km" + }, + "human.e3840390a2ab7690.webp": { + "original_hash": "2779edce282e49929804dec71636094e", + "translation_date": "2026-04-06T19:46:18+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/human.png", + "language_code": "km" + }, + "hype.07183d711a17aafe.webp": { + "original_hash": "fdd8cab17e681e45c4fe2647eb58bdb9", + "translation_date": "2026-04-06T19:38:48+00:00", + "source_file": "1-Introduction/1-intro-to-ML/images/hype.png", + "language_code": "km" + }, + "indian.2c4292002af1a1f9.webp": { + "original_hash": "9d396f43a0af642a695b6651bff475af", + "translation_date": "2026-04-06T19:45:09+00:00", + "source_file": "4-Classification/1-Introduction/images/indian.png", + "language_code": "km" + }, + "individual-causal-what-if.00e7b86b52a083ce.webp": { + "original_hash": "535a0ad1507648542f43293e101eecb6", + "translation_date": "2026-04-06T19:44:21+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/individual-causal-what-if.png", + "language_code": "km" + }, + "jack-o-lanterns.181c661a9212457d.webp": { + "original_hash": "3f6f70bd9fcfd9f85c229fdbbeef8a4a", + "translation_date": "2026-04-06T19:39:11+00:00", + "source_file": "2-Regression/images/jack-o-lanterns.jpg", + "language_code": "km" + }, + "janitor.e4a77dd3d3e6a32e.webp": { + "original_hash": "8e34c6515b5a664c4485bed85ace536e", + "translation_date": "2026-04-06T19:39:22+00:00", + "source_file": "2-Regression/3-Linear/images/janitor.jpg", + "language_code": "km" + }, + "japanese.30260486f2a05c46.webp": { + "original_hash": "2341f1b464ca87b44d9a1a8581a60068", + "translation_date": "2026-04-06T19:45:25+00:00", + "source_file": "4-Classification/1-Introduction/images/japanese.png", + "language_code": "km" + }, + "july-2014.9e1f7c318ec6d5b3.webp": { + "original_hash": "7bee9739087aee3ce5b7157cb92cc043", + "translation_date": "2026-04-06T19:46:36+00:00", + "source_file": "7-TimeSeries/1-Introduction/images/july-2014.png", + "language_code": "km" + }, + "korean.4a4f0274f3d9805a.webp": { + "original_hash": "9863922b50bccb4f12b2036825a49a5b", + "translation_date": "2026-04-06T19:44:53+00:00", + "source_file": "4-Classification/1-Introduction/images/korean.png", + "language_code": "km" + }, + "learned.ed28bcd8484b5287.webp": { + "original_hash": "084d4af7881e5b990b53dd562a0aca6e", + "translation_date": "2026-04-06T19:46:22+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/learned.png", + "language_code": "km" + }, + "linear-polynomial.5523c7cb6576ccab.webp": { + "original_hash": "1b810c7c5447242163be60624c06bf97", + "translation_date": "2026-04-06T19:39:59+00:00", + "source_file": "2-Regression/3-Linear/images/linear-polynomial.png", + "language_code": "km" + }, + "linear-results.f7c3552c85b0ed1c.webp": { + "original_hash": "3f6827091179dabc363a4327e4f824fe", + "translation_date": "2026-04-06T19:39:26+00:00", + "source_file": "2-Regression/3-Linear/images/linear-results.png", + "language_code": "km" + }, + "linear-vs-logistic.ba180bf95e7ee667.webp": { + "original_hash": "96759faebbd1f2a900347a266e140c4d", + "translation_date": "2026-04-06T19:40:34+00:00", + "source_file": "2-Regression/4-Logistic/images/linear-vs-logistic.png", + "language_code": "km" + }, + "linear.a1b0760a56132551.webp": { + "original_hash": "0bc5432c73d2c073cab1b85d8279ff44", + "translation_date": "2026-04-06T19:40:02+00:00", + "source_file": "2-Regression/3-Linear/images/linear.png", + "language_code": "km" + }, + "lobe.2fa0806408ef9923.webp": { + "original_hash": "e6ec71dbe350aef39135dbf88bc89163", + "translation_date": "2026-04-06T19:41:31+00:00", + "source_file": "3-Web-App/1-Web-App/images/lobe.png", + "language_code": "km" + }, + "logistic-linear.0f2f6bb73b3134c1.webp": { + "original_hash": "7069c082c288ac778688382b8f817d12", + "translation_date": "2026-04-06T19:41:18+00:00", + "source_file": "2-Regression/4-Logistic/images/logistic-linear.png", + "language_code": "km" + }, + "logistic.b0cba6b7db4d5789.webp": { + "original_hash": "9794c53dc6a7c7c197cf4e308d45cfe8", + "translation_date": "2026-04-06T19:40:38+00:00", + "source_file": "2-Regression/4-Logistic/images/logistic.png", + "language_code": "km" + }, + "lpathlen.94f211521ed60940.webp": { + "original_hash": "ac846488f72765b30a11fb5044342021", + "translation_date": "2026-04-06T19:46:18+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/lpathlen.png", + "language_code": "km" + }, + "lpathlen1.0534784add58d4eb.webp": { + "original_hash": "2c699a343a0253fcf0024de108d45266", + "translation_date": "2026-04-06T19:46:21+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/lpathlen1.png", + "language_code": "km" + }, + "map.e963a6a51349425a.webp": { + "original_hash": "d8d479d57d050e32c1d77bb859d61ce2", + "translation_date": "2026-04-06T19:45:42+00:00", + "source_file": "4-Classification/3-Classifiers-2/images/map.png", + "language_code": "km" + }, + "mape.fd87bbaf4d346846.webp": { + "original_hash": "cdc81fd2d2ffdbc2f8c10d75c954cb74", + "translation_date": "2026-04-06T19:46:39+00:00", + "source_file": "7-TimeSeries/2-ARIMA/images/mape.png", + "language_code": "km" + }, + "ml-fairness.ef296ebec6afc98a.webp": { + "original_hash": "bceb2f96ebd4940cfddce42307d5e4a9", + "translation_date": "2026-04-06T19:38:00+00:00", + "source_file": "sketchnotes/ml-fairness.png", + "language_code": "km" + }, + "ml-for-beginners-video-banner.63f694a100034bc6.webp": { + "original_hash": "2ee5851fdd14fb777163c9dfef721412", + "translation_date": "2026-04-06T19:37:47+00:00", + "source_file": "images/ml-for-beginners-video-banner.png", + "language_code": "km" + }, + "ml-for-beginners.9eecb963dbfbfb32.webp": { + "original_hash": "168efdbeb98bec4da0e91cf8acf77dfe", + "translation_date": "2026-04-06T19:37:45+00:00", + "source_file": "images/ml-for-beginners.png", + "language_code": "km" + }, + "ml-history.a1bdfd4ce1f464d9.webp": { + "original_hash": "2fe022d2dd04763788b2a5a8ad71fb1f", + "translation_date": "2026-04-06T19:38:41+00:00", + "source_file": "sketchnotes/ml-history.png", + "language_code": "km" + }, + "ml-realworld.26ee274671615577.webp": { + "original_hash": "3f43444e6254753eb5f23de7f52b2745", + "translation_date": "2026-04-06T19:38:16+00:00", + "source_file": "sketchnotes/ml-realworld.png", + "language_code": "km" + }, + "ml-regression.4e4f70e3b3ed446e.webp": { + "original_hash": "c9bf1c0fe00e48262b884a679c612372", + "translation_date": "2026-04-06T19:38:06+00:00", + "source_file": "sketchnotes/ml-regression.png", + "language_code": "km" + }, + "ml-reinforcement.94024374d63348db.webp": { + "original_hash": "c3b55d97bb8edd97fbff43767fb4c563", + "translation_date": "2026-04-06T19:38:27+00:00", + "source_file": "sketchnotes/ml-reinforcement.png", + "language_code": "km" + }, + "ml-timeseries.fb98d25f1013fc0c.webp": { + "original_hash": "03443e1e03edffd1a9c8c605903c4e84", + "translation_date": "2026-04-06T19:38:35+00:00", + "source_file": "sketchnotes/ml-timeseries.png", + "language_code": "km" + }, + "model-overview-dataset-cohorts.dfa463fb527a35a0.webp": { + "original_hash": "5ba7caa265cee1ff9a7072a4f94e890d", + "translation_date": "2026-04-06T19:44:03+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/model-overview-dataset-cohorts.png", + "language_code": "km" + }, + "model-overview-feature-cohorts.c5104d575ffd0c80.webp": { + "original_hash": "d2b187b7d1ec4bdcd8c985283d54f8e4", + "translation_date": "2026-04-06T19:42:59+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/images/model-overview-feature-cohorts.png", + "language_code": "km" + }, + "monnaie.606c5fa8369d5c3b.webp": { + "original_hash": "8eb6b1ab4f94ed2f98059f68ebafc014", + "translation_date": "2026-04-06T19:41:36+00:00", + "source_file": "6-NLP/3-Translation-Sentiment/images/monnaie.png", + "language_code": "km" + }, + "mountaincar.43d56e588ce581c2.webp": { + "original_hash": "61c868cc389dc92bd2b402ea490cd162", + "translation_date": "2026-04-06T19:46:17+00:00", + "source_file": "8-Reinforcement/2-Gym/images/mountaincar.png", + "language_code": "km" + }, + "multinomial-ordinal.944fe02295fd6cdf.webp": { + "original_hash": "c7ccca072d30b5d4b75255a67ddae654", + "translation_date": "2026-04-06T19:40:30+00:00", + "source_file": "2-Regression/4-Logistic/images/multinomial-ordinal.png", + "language_code": "km" + }, + "multinomial-vs-ordinal.36701b4850e37d86.webp": { + "original_hash": "f073e94529a3648f2231cdce2cbab8b4", + "translation_date": "2026-04-06T19:40:25+00:00", + "source_file": "2-Regression/4-Logistic/images/multinomial-vs-ordinal.png", + "language_code": "km" + }, + "netron.a05f39410211915e.webp": { + "original_hash": "c2b192971dd35d1f9297037e3d9cf2c1", + "translation_date": "2026-04-06T19:45:45+00:00", + "source_file": "4-Classification/4-Applied/images/netron.png", + "language_code": "km" + }, + "notebook.4a3ee31f396b8832.webp": { + "original_hash": "53ed9e8157acd2742be1840e5d9c69ab", + "translation_date": "2026-04-06T19:40:04+00:00", + "source_file": "2-Regression/1-Tools/images/notebook.jpg", + "language_code": "km" + }, + "original.b2b15efe0ce92b87.webp": { + "original_hash": "6dc5968069b296588e723b0f62f7cb39", + "translation_date": "2026-04-06T19:46:41+00:00", + "source_file": "7-TimeSeries/2-ARIMA/images/original.png", + "language_code": "km" + }, + "overfitting.1c132d92bfd93cb6.webp": { + "original_hash": "e9d1a3d88cf81abd87b93ba3cae6f3b1", + "translation_date": "2026-04-06T19:39:01+00:00", + "source_file": "1-Introduction/4-techniques-of-ML/images/overfitting.png", + "language_code": "km" + }, + "p&p.279f1c49ecd88941.webp": { + "original_hash": "9896259959fc22aeeb0c5e0d6e0154a7", + "translation_date": "2026-04-06T19:41:34+00:00", + "source_file": "6-NLP/images/p&p.jpg", + "language_code": "km" + }, + "parse.d0c5bbe1106eae8f.webp": { + "original_hash": "322098f5a3769e96c7a60b16ad9d02b3", + "translation_date": "2026-04-06T19:41:42+00:00", + "source_file": "6-NLP/2-Tasks/images/parse.png", + "language_code": "km" + }, + "parsnip.cd2ce92622976502.webp": { + "original_hash": "898a910cf3763544400593dac6a92389", + "translation_date": "2026-04-06T19:45:53+00:00", + "source_file": "4-Classification/2-Classifiers-1/images/parsnip.jpg", + "language_code": "km" + }, + "peter.779730f9ba3a8a8d.webp": { + "original_hash": "dd4a8cb8e3eb15c467a08d45fade443a", + "translation_date": "2026-04-06T19:46:14+00:00", + "source_file": "8-Reinforcement/images/peter.png", + "language_code": "km" + }, + "pie-pumpkins-scatter.d14f9804a53f927e.webp": { + "original_hash": "2475f9d321d752ada7e5f431fe59f9e9", + "translation_date": "2026-04-06T19:39:50+00:00", + "source_file": "2-Regression/3-Linear/images/pie-pumpkins-scatter.png", + "language_code": "km" + }, + "pinch.1b035ec9ba7e0d40.webp": { + "original_hash": "18f413d7670738c758fee477886c7759", + "translation_date": "2026-04-06T19:45:16+00:00", + "source_file": "4-Classification/1-Introduction/images/pinch.png", + "language_code": "km" + }, + "poly-results.ee587348f0f1f60b.webp": { + "original_hash": "e69be7266860f3cae8c750a35e160493", + "translation_date": "2026-04-06T19:39:50+00:00", + "source_file": "2-Regression/3-Linear/images/poly-results.png", + "language_code": "km" + }, + "polynomial.8fce4663e7283dfb.webp": { + "original_hash": "7df902a6d0b81a28de48a330b3b4aa76", + "translation_date": "2026-04-06T19:39:14+00:00", + "source_file": "2-Regression/3-Linear/images/polynomial.png", + "language_code": "km" + }, + "popular.9c48d84b3386705f.webp": { + "original_hash": "178fa011a311e1411a3750428b0525a7", + "translation_date": "2026-04-06T19:42:36+00:00", + "source_file": "5-Clustering/1-Visualize/images/popular.png", + "language_code": "km" + }, + "price-by-variety.744a2f9925d9bcb4.webp": { + "original_hash": "80b85163de4d24d4d0bf67ff0d9b2309", + "translation_date": "2026-04-06T19:39:52+00:00", + "source_file": "2-Regression/3-Linear/images/price-by-variety.png", + "language_code": "km" + }, + "problems.f7fb539ccd80608e.webp": { + "original_hash": "d3605f6f944d3a7a5390490be3a94186", + "translation_date": "2026-04-06T19:41:47+00:00", + "source_file": "5-Clustering/2-K-Means/images/problems.png", + "language_code": "km" + }, + "pumpkin-classifier.562771f104ad5436.webp": { + "original_hash": "9b4b4ac420310c1c6f70835f8f039666", + "translation_date": "2026-04-06T19:40:37+00:00", + "source_file": "2-Regression/4-Logistic/images/pumpkin-classifier.png", + "language_code": "km" + }, + "pumpkins_catplot_1.c55c409b71fea2ec.webp": { + "original_hash": "21156df8979d98c866269dca8da8f884", + "translation_date": "2026-04-06T19:41:05+00:00", + "source_file": "2-Regression/4-Logistic/images/pumpkins_catplot_1.png", + "language_code": "km" + }, + "pumpkins_catplot_2.87a354447880b388.webp": { + "original_hash": "64c425c52a46eef297def367d169d32a", + "translation_date": "2026-04-06T19:41:01+00:00", + "source_file": "2-Regression/4-Logistic/images/pumpkins_catplot_2.png", + "language_code": "km" + }, + "r_learners_sm.cd14eb3581a9f28d.webp": { + "original_hash": "837c804617ba17f341a8ed2db93105d5", + "translation_date": "2026-04-06T19:45:13+00:00", + "source_file": "4-Classification/1-Introduction/images/r_learners_sm.jpeg", + "language_code": "km" + }, + "r_learners_sm.e25fa9c205b3a3f9.webp": { + "original_hash": "837c804617ba17f341a8ed2db93105d5", + "translation_date": "2026-04-06T19:41:08+00:00", + "source_file": "2-Regression/4-Logistic/images/r_learners_sm.jpeg", + "language_code": "km" + }, + "r_learners_sm.e4a71b113ffbedfe.webp": { + "original_hash": "837c804617ba17f341a8ed2db93105d5", + "translation_date": "2026-04-06T19:41:49+00:00", + "source_file": "5-Clustering/2-K-Means/images/r_learners_sm.jpeg", + "language_code": "km" + }, + "r_learners_sm.f9199f76f1e2e493.webp": { + "original_hash": "837c804617ba17f341a8ed2db93105d5", + "translation_date": "2026-04-06T19:45:44+00:00", + "source_file": "4-Classification/3-Classifiers-2/images/r_learners_sm.jpeg", + "language_code": "km" + }, + "recipes.186acfa8ed2e8f00.webp": { + "original_hash": "925552a21bb3687dfd83bb25010273f9", + "translation_date": "2026-04-06T19:45:08+00:00", + "source_file": "4-Classification/1-Introduction/images/recipes.png", + "language_code": "km" + }, + "recipes.9ad10d8a4056bf89.webp": { + "original_hash": "925552a21bb3687dfd83bb25010273f9", + "translation_date": "2026-04-06T19:39:41+00:00", + "source_file": "2-Regression/3-Linear/images/recipes.png", + "language_code": "km" + }, + "scaled.91897dfbaa26ca4a.webp": { + "original_hash": "789c70fafe6f6dd6e377a90b66e7d740", + "translation_date": "2026-04-06T19:46:35+00:00", + "source_file": "7-TimeSeries/1-Introduction/images/scaled.png", + "language_code": "km" + }, + "scaled.e35258ca5cd3d43f.webp": { + "original_hash": "789c70fafe6f6dd6e377a90b66e7d740", + "translation_date": "2026-04-06T19:46:38+00:00", + "source_file": "7-TimeSeries/2-ARIMA/images/scaled.png", + "language_code": "km" + }, + "scatter-dayofyear-color.65790faefbb9d54f.webp": { + "original_hash": "57a573b7b038fddf7793cc520baa2ecd", + "translation_date": "2026-04-06T19:39:52+00:00", + "source_file": "2-Regression/3-Linear/images/scatter-dayofyear-color.png", + "language_code": "km" + }, + "scatter-dayofyear.bc171c189c9fd553.webp": { + "original_hash": "0dfbd93772844f3b564fefa1750f1f1a", + "translation_date": "2026-04-06T19:40:00+00:00", + "source_file": "2-Regression/3-Linear/images/scatter-dayofyear.png", + "language_code": "km" + }, + "scatterplot.ad8b356bcbb33be6.webp": { + "original_hash": "3957c7a107594dadc4758bb3ce04857d", + "translation_date": "2026-04-06T19:40:06+00:00", + "source_file": "2-Regression/1-Tools/images/scatterplot.png", + "language_code": "km" + }, + "scatterplot.b6868f44cbd2051c.webp": { + "original_hash": "be95a93bbe7e5ef894f0cc2a9165b524", + "translation_date": "2026-04-06T19:40:18+00:00", + "source_file": "2-Regression/2-Data/images/scatterplot.png", + "language_code": "km" + }, + "shakey.4dc17819c447c05b.webp": { + "original_hash": "c1d741be4627f3e75ea5ee912f5896e6", + "translation_date": "2026-04-06T19:38:51+00:00", + "source_file": "1-Introduction/2-history-of-ML/images/shakey.jpg", + "language_code": "km" + }, + "sigmoid.8b7ba9d095c789cf.webp": { + "original_hash": "93e362a78005d1964a4a108887df6f65", + "translation_date": "2026-04-06T19:40:27+00:00", + "source_file": "2-Regression/4-Logistic/images/sigmoid.png", + "language_code": "km" + }, + "slope.f3c9d5910ddbfcf9.webp": { + "original_hash": "d81920219716f4765a0208ea6d035ec7", + "translation_date": "2026-04-06T19:39:49+00:00", + "source_file": "2-Regression/3-Linear/images/slope.png", + "language_code": "km" + }, + "solvers.5fc648618529e627.webp": { + "original_hash": "f792b31c558c35d791f54218c114f11a", + "translation_date": "2026-04-06T19:45:59+00:00", + "source_file": "4-Classification/2-Classifiers-1/images/solvers.png", + "language_code": "km" + }, + "svm.621ae7b516d678e0.webp": { + "original_hash": "ce775a75b8ab37b61869cbb31dc76289", + "translation_date": "2026-04-06T19:45:28+00:00", + "source_file": "4-Classification/3-Classifiers-2/images/svm.png", + "language_code": "km" + }, + "swarm.56d253ae80a2c0f5.webp": { + "original_hash": "fe1af9f5ac979ea7316753ac7559aaaf", + "translation_date": "2026-04-06T19:40:49+00:00", + "source_file": "2-Regression/4-Logistic/images/swarm.png", + "language_code": "km" + }, + "swarm_2.efeacfca536c2b57.webp": { + "original_hash": "734f5d0884220257ff5c7f7e1f6faed2", + "translation_date": "2026-04-06T19:41:09+00:00", + "source_file": "2-Regression/4-Logistic/images/swarm_2.png", + "language_code": "km" + }, + "test-data-predict.8afc47ee7e52874f.webp": { + "original_hash": "d9de9b2f4cc312cf745b00a1c3344579", + "translation_date": "2026-04-06T19:46:26+00:00", + "source_file": "7-TimeSeries/3-SVR/images/test-data-predict.png", + "language_code": "km" + }, + "thai-food.c47a7a7f9f05c218.webp": { + "original_hash": "d3881195db88ba1cc9fd217f30415da6", + "translation_date": "2026-04-06T19:44:51+00:00", + "source_file": "4-Classification/images/thai-food.jpg", + "language_code": "km" + }, + "thai.0269dbab2e78bd38.webp": { + "original_hash": "e2b3c8115e57ff80b2c950d3c783e2cf", + "translation_date": "2026-04-06T19:44:53+00:00", + "source_file": "4-Classification/1-Introduction/images/thai.png", + "language_code": "km" + }, + "tokenization.1641a160c66cd2d9.webp": { + "original_hash": "568ebd0acfd2a2712e97c2efb889b5b9", + "translation_date": "2026-04-06T19:41:39+00:00", + "source_file": "6-NLP/2-Tasks/images/tokenization.png", + "language_code": "km" + }, + "train-data-predict.3c4ef4e78553104f.webp": { + "original_hash": "8f901e721ed63b25087154a88980eb8c", + "translation_date": "2026-04-06T19:46:25+00:00", + "source_file": "7-TimeSeries/3-SVR/images/train-data-predict.png", + "language_code": "km" + }, + "train-test.8928d14e5b91fc94.webp": { + "original_hash": "86bac92c99563659e1acb31bb50bb4e4", + "translation_date": "2026-04-06T19:46:42+00:00", + "source_file": "7-TimeSeries/2-ARIMA/images/train-test.png", + "language_code": "km" + }, + "train-test.ead0cecbfc341921.webp": { + "original_hash": "56b4e7e0f3e4bcabfc70dd34c86778ad", + "translation_date": "2026-04-06T19:46:30+00:00", + "source_file": "7-TimeSeries/3-SVR/images/train-test.png", + "language_code": "km" + }, + "train_progress_raw.2adfdf2daea09c59.webp": { + "original_hash": "6b053943a2e7d2b4d7d65460517e854a", + "translation_date": "2026-04-06T19:46:17+00:00", + "source_file": "8-Reinforcement/2-Gym/images/train_progress_raw.png", + "language_code": "km" + }, + "train_progress_runav.c71694a8fa9ab359.webp": { + "original_hash": "4e4c78e37e5b80687dd1d8452fd8ce78", + "translation_date": "2026-04-06T19:46:15+00:00", + "source_file": "8-Reinforcement/2-Gym/images/train_progress_runav.png", + "language_code": "km" + }, + "turntable.f2b86b13c53302dc.webp": { + "original_hash": "02aa654944ce0872a2a6b41ad6f8bae2", + "translation_date": "2026-04-06T19:41:42+00:00", + "source_file": "5-Clustering/images/turntable.jpg", + "language_code": "km" + }, + "ufo.9e787f5161da9d4d.webp": { + "original_hash": "99f743b68eb93ed8c683c0f78ac1a180", + "translation_date": "2026-04-06T19:41:21+00:00", + "source_file": "3-Web-App/images/ufo.jpg", + "language_code": "km" + }, + "unruly_data.0eedc7ced92d2d91.webp": { + "original_hash": "a4a8c088eb459adbbae497322c640811", + "translation_date": "2026-04-06T19:40:15+00:00", + "source_file": "2-Regression/2-Data/images/unruly_data.jpg", + "language_code": "km" + }, + "violin.ffceb68923177011.webp": { + "original_hash": "6552159e8ea391bd6d60d1ee0ee0a40b", + "translation_date": "2026-04-06T19:41:07+00:00", + "source_file": "2-Regression/4-Logistic/images/violin.png", + "language_code": "km" + }, + "voronoi.1dc1613fb0439b95.webp": { + "original_hash": "561aedc2bbfa5e0af9f4e1b1d5df00a1", + "translation_date": "2026-04-06T19:41:47+00:00", + "source_file": "5-Clustering/2-K-Means/images/voronoi.png", + "language_code": "km" + }, + "web-app.4c76450cabe20036.webp": { + "original_hash": "cbede42b607bbb5910e9a4faf778225c", + "translation_date": "2026-04-06T19:45:49+00:00", + "source_file": "4-Classification/4-Applied/images/web-app.png", + "language_code": "km" + }, + "wolf.a56d3d4070ca0c79.webp": { + "original_hash": "36a8284655906f6a4e5c4aaa06671da4", + "translation_date": "2026-04-06T19:46:18+00:00", + "source_file": "8-Reinforcement/1-QLearning/images/wolf.png", + "language_code": "km" + } +} \ No newline at end of file diff --git a/translated_images/km/3.9b58fd8d6c373c20.webp b/translated_images/km/3.9b58fd8d6c373c20.webp new file mode 100644 index 000000000..8728f1f30 Binary files /dev/null and b/translated_images/km/3.9b58fd8d6c373c20.webp differ diff --git a/translated_images/km/9-feature-importance.cd3193b4bba3fd4b.webp b/translated_images/km/9-feature-importance.cd3193b4bba3fd4b.webp new file mode 100644 index 000000000..3d6cc7cf2 Binary files /dev/null and b/translated_images/km/9-feature-importance.cd3193b4bba3fd4b.webp differ diff --git a/translated_images/km/9-features-influence.3ead3d3f68a84029.webp b/translated_images/km/9-features-influence.3ead3d3f68a84029.webp new file mode 100644 index 000000000..4a78c14d1 Binary files /dev/null and b/translated_images/km/9-features-influence.3ead3d3f68a84029.webp differ diff --git a/translated_images/km/ROC.167a70519c5bf898.webp b/translated_images/km/ROC.167a70519c5bf898.webp new file mode 100644 index 000000000..5151eafbd Binary files /dev/null and b/translated_images/km/ROC.167a70519c5bf898.webp differ diff --git a/translated_images/km/ROC_2.777f20cdfc4988ca.webp b/translated_images/km/ROC_2.777f20cdfc4988ca.webp new file mode 100644 index 000000000..e5eb1398d Binary files /dev/null and b/translated_images/km/ROC_2.777f20cdfc4988ca.webp differ diff --git a/translated_images/km/accessibility.c1be5ce816eaea65.webp b/translated_images/km/accessibility.c1be5ce816eaea65.webp new file mode 100644 index 000000000..19c748f83 Binary files /dev/null and b/translated_images/km/accessibility.c1be5ce816eaea65.webp differ diff --git a/translated_images/km/accountability.41d8c0f4b85b6231.webp b/translated_images/km/accountability.41d8c0f4b85b6231.webp new file mode 100644 index 000000000..2dab87a2c Binary files /dev/null and b/translated_images/km/accountability.41d8c0f4b85b6231.webp differ diff --git a/translated_images/km/accuracy.2c47fe1bf15f44b3.webp b/translated_images/km/accuracy.2c47fe1bf15f44b3.webp new file mode 100644 index 000000000..39b918898 Binary files /dev/null and b/translated_images/km/accuracy.2c47fe1bf15f44b3.webp differ diff --git a/translated_images/km/ai-ml-ds.537ea441b124ebf6.webp b/translated_images/km/ai-ml-ds.537ea441b124ebf6.webp new file mode 100644 index 000000000..f3a24aa3e Binary files /dev/null and b/translated_images/km/ai-ml-ds.537ea441b124ebf6.webp differ diff --git a/translated_images/km/all-genres.1d56ef06cefbfcd6.webp b/translated_images/km/all-genres.1d56ef06cefbfcd6.webp new file mode 100644 index 000000000..bdbe49cd0 Binary files /dev/null and b/translated_images/km/all-genres.1d56ef06cefbfcd6.webp differ diff --git a/translated_images/km/apple.c81c8d5965e5e5da.webp b/translated_images/km/apple.c81c8d5965e5e5da.webp new file mode 100644 index 000000000..b2217e923 Binary files /dev/null and b/translated_images/km/apple.c81c8d5965e5e5da.webp differ diff --git a/translated_images/km/barchart.a833ea9194346d76.webp b/translated_images/km/barchart.a833ea9194346d76.webp new file mode 100644 index 000000000..e36565625 Binary files /dev/null and b/translated_images/km/barchart.a833ea9194346d76.webp differ diff --git a/translated_images/km/bellman-equation.7c0c4c722e5a6b7c.webp b/translated_images/km/bellman-equation.7c0c4c722e5a6b7c.webp new file mode 100644 index 000000000..f3c61b632 Binary files /dev/null and b/translated_images/km/bellman-equation.7c0c4c722e5a6b7c.webp differ diff --git a/translated_images/km/binary-multiclass.b56d0c86c81105a6.webp b/translated_images/km/binary-multiclass.b56d0c86c81105a6.webp new file mode 100644 index 000000000..72681f84b Binary files /dev/null and b/translated_images/km/binary-multiclass.b56d0c86c81105a6.webp differ diff --git a/translated_images/km/boxplots.8228c29dabd0f292.webp b/translated_images/km/boxplots.8228c29dabd0f292.webp new file mode 100644 index 000000000..1fcc73fc9 Binary files /dev/null and b/translated_images/km/boxplots.8228c29dabd0f292.webp differ diff --git a/translated_images/km/calculation.a209813050a1ddb1.webp b/translated_images/km/calculation.a209813050a1ddb1.webp new file mode 100644 index 000000000..c9824c43a Binary files /dev/null and b/translated_images/km/calculation.a209813050a1ddb1.webp differ diff --git a/translated_images/km/cartpole.b5609cc0494a14f7.webp b/translated_images/km/cartpole.b5609cc0494a14f7.webp new file mode 100644 index 000000000..848d3ee7b Binary files /dev/null and b/translated_images/km/cartpole.b5609cc0494a14f7.webp differ diff --git a/translated_images/km/centroid.097fde836cf6c918.webp b/translated_images/km/centroid.097fde836cf6c918.webp new file mode 100644 index 000000000..151eb5d61 Binary files /dev/null and b/translated_images/km/centroid.097fde836cf6c918.webp differ diff --git a/translated_images/km/ceos.3de5d092ce8d2753.webp b/translated_images/km/ceos.3de5d092ce8d2753.webp new file mode 100644 index 000000000..d212b0f27 Binary files /dev/null and b/translated_images/km/ceos.3de5d092ce8d2753.webp differ diff --git a/translated_images/km/ceos.7a9a67871424a6c0.webp b/translated_images/km/ceos.7a9a67871424a6c0.webp new file mode 100644 index 000000000..d212b0f27 Binary files /dev/null and b/translated_images/km/ceos.7a9a67871424a6c0.webp differ diff --git a/translated_images/km/cf-what-if-features.5a92a6924da3e9b5.webp b/translated_images/km/cf-what-if-features.5a92a6924da3e9b5.webp new file mode 100644 index 000000000..08878ad29 Binary files /dev/null and b/translated_images/km/cf-what-if-features.5a92a6924da3e9b5.webp differ diff --git a/translated_images/km/cheatsheet.07a475ea444d2223.webp b/translated_images/km/cheatsheet.07a475ea444d2223.webp new file mode 100644 index 000000000..4b327926d Binary files /dev/null and b/translated_images/km/cheatsheet.07a475ea444d2223.webp differ diff --git a/translated_images/km/chess.e704a268781bdad8.webp b/translated_images/km/chess.e704a268781bdad8.webp new file mode 100644 index 000000000..03d0850d8 Binary files /dev/null and b/translated_images/km/chess.e704a268781bdad8.webp differ diff --git a/translated_images/km/chinese.e62cafa5309f111a.webp b/translated_images/km/chinese.e62cafa5309f111a.webp new file mode 100644 index 000000000..fad8700ba Binary files /dev/null and b/translated_images/km/chinese.e62cafa5309f111a.webp differ diff --git a/translated_images/km/clusters.b635354640d8e4fd.webp b/translated_images/km/clusters.b635354640d8e4fd.webp new file mode 100644 index 000000000..874b4928b Binary files /dev/null and b/translated_images/km/clusters.b635354640d8e4fd.webp differ diff --git a/translated_images/km/comparison.edfab56193a85e7f.webp b/translated_images/km/comparison.edfab56193a85e7f.webp new file mode 100644 index 000000000..d7f5012a1 Binary files /dev/null and b/translated_images/km/comparison.edfab56193a85e7f.webp differ diff --git a/translated_images/km/comprehension.619708fc5959b0f6.webp b/translated_images/km/comprehension.619708fc5959b0f6.webp new file mode 100644 index 000000000..ae67f66c8 Binary files /dev/null and b/translated_images/km/comprehension.619708fc5959b0f6.webp differ diff --git a/translated_images/km/confusion-matrix.3cc5496a1a37c3e4.webp b/translated_images/km/confusion-matrix.3cc5496a1a37c3e4.webp new file mode 100644 index 000000000..7a9997e75 Binary files /dev/null and b/translated_images/km/confusion-matrix.3cc5496a1a37c3e4.webp differ diff --git a/translated_images/km/correlation.a9356bb798f5eea5.webp b/translated_images/km/correlation.a9356bb798f5eea5.webp new file mode 100644 index 000000000..1217f9113 Binary files /dev/null and b/translated_images/km/correlation.a9356bb798f5eea5.webp differ diff --git a/translated_images/km/counterfactuals-examples.b38a50a504ee0a9f.webp b/translated_images/km/counterfactuals-examples.b38a50a504ee0a9f.webp new file mode 100644 index 000000000..f72178c0b Binary files /dev/null and b/translated_images/km/counterfactuals-examples.b38a50a504ee0a9f.webp differ diff --git a/translated_images/km/cuisine-dist.d0cc2d551abe5c25.webp b/translated_images/km/cuisine-dist.d0cc2d551abe5c25.webp new file mode 100644 index 000000000..fe9e34467 Binary files /dev/null and b/translated_images/km/cuisine-dist.d0cc2d551abe5c25.webp differ diff --git a/translated_images/km/currency.e7429812bfc8c608.webp b/translated_images/km/currency.e7429812bfc8c608.webp new file mode 100644 index 000000000..43245ac20 Binary files /dev/null and b/translated_images/km/currency.e7429812bfc8c608.webp differ diff --git a/translated_images/km/data-visualization.54e56dded7c1a804.webp b/translated_images/km/data-visualization.54e56dded7c1a804.webp new file mode 100644 index 000000000..c5981c998 Binary files /dev/null and b/translated_images/km/data-visualization.54e56dded7c1a804.webp differ diff --git a/translated_images/km/dataanalysis-cover.8d6d0683a70a5c1e.webp b/translated_images/km/dataanalysis-cover.8d6d0683a70a5c1e.webp new file mode 100644 index 000000000..2ce890092 Binary files /dev/null and b/translated_images/km/dataanalysis-cover.8d6d0683a70a5c1e.webp differ diff --git a/translated_images/km/datapoints.aaf6815cd5d87354.webp b/translated_images/km/datapoints.aaf6815cd5d87354.webp new file mode 100644 index 000000000..5df7f2cc9 Binary files /dev/null and b/translated_images/km/datapoints.aaf6815cd5d87354.webp differ diff --git a/translated_images/km/distribution.9be11df42356ca95.webp b/translated_images/km/distribution.9be11df42356ca95.webp new file mode 100644 index 000000000..63e12b05f Binary files /dev/null and b/translated_images/km/distribution.9be11df42356ca95.webp differ diff --git a/translated_images/km/dplyr_filter.b480b264b03439ff.webp b/translated_images/km/dplyr_filter.b480b264b03439ff.webp new file mode 100644 index 000000000..63ead0425 Binary files /dev/null and b/translated_images/km/dplyr_filter.b480b264b03439ff.webp differ diff --git a/translated_images/km/dplyr_wrangling.f5f99c64fd4580f1.webp b/translated_images/km/dplyr_wrangling.f5f99c64fd4580f1.webp new file mode 100644 index 000000000..942ae1d1b Binary files /dev/null and b/translated_images/km/dplyr_wrangling.f5f99c64fd4580f1.webp differ diff --git a/translated_images/km/ea-error-cohort.6886209ea5d438c4.webp b/translated_images/km/ea-error-cohort.6886209ea5d438c4.webp new file mode 100644 index 000000000..598aa5550 Binary files /dev/null and b/translated_images/km/ea-error-cohort.6886209ea5d438c4.webp differ diff --git a/translated_images/km/ea-error-distribution.117452e1177c1dd8.webp b/translated_images/km/ea-error-distribution.117452e1177c1dd8.webp new file mode 100644 index 000000000..7e5ebcaf1 Binary files /dev/null and b/translated_images/km/ea-error-distribution.117452e1177c1dd8.webp differ diff --git a/translated_images/km/ea-heatmap.8d27185e28cee383.webp b/translated_images/km/ea-heatmap.8d27185e28cee383.webp new file mode 100644 index 000000000..b80b8af70 Binary files /dev/null and b/translated_images/km/ea-heatmap.8d27185e28cee383.webp differ diff --git a/translated_images/km/elbow.72676169eed744ff.webp b/translated_images/km/elbow.72676169eed744ff.webp new file mode 100644 index 000000000..485041cba Binary files /dev/null and b/translated_images/km/elbow.72676169eed744ff.webp differ diff --git a/translated_images/km/electric-grid.0c21d5214db09ffa.webp b/translated_images/km/electric-grid.0c21d5214db09ffa.webp new file mode 100644 index 000000000..e4badeb83 Binary files /dev/null and b/translated_images/km/electric-grid.0c21d5214db09ffa.webp differ diff --git a/translated_images/km/eliza.84397454cda9559b.webp b/translated_images/km/eliza.84397454cda9559b.webp new file mode 100644 index 000000000..82b932b95 Binary files /dev/null and b/translated_images/km/eliza.84397454cda9559b.webp differ diff --git a/translated_images/km/embedding.2cf8953c4b3101d1.webp b/translated_images/km/embedding.2cf8953c4b3101d1.webp new file mode 100644 index 000000000..773ef4fce Binary files /dev/null and b/translated_images/km/embedding.2cf8953c4b3101d1.webp differ diff --git a/translated_images/km/encouRage.e75d5fe0367fb913.webp b/translated_images/km/encouRage.e75d5fe0367fb913.webp new file mode 100644 index 000000000..5fc490976 Binary files /dev/null and b/translated_images/km/encouRage.e75d5fe0367fb913.webp differ diff --git a/translated_images/km/energy-plot.5fdac3f397a910bc.webp b/translated_images/km/energy-plot.5fdac3f397a910bc.webp new file mode 100644 index 000000000..19fcf10c6 Binary files /dev/null and b/translated_images/km/energy-plot.5fdac3f397a910bc.webp differ diff --git a/translated_images/km/env_init.04e8f26d2d60089e.webp b/translated_images/km/env_init.04e8f26d2d60089e.webp new file mode 100644 index 000000000..a527dfdbc Binary files /dev/null and b/translated_images/km/env_init.04e8f26d2d60089e.webp differ diff --git a/translated_images/km/environment.40ba3cb66256c93f.webp b/translated_images/km/environment.40ba3cb66256c93f.webp new file mode 100644 index 000000000..ac2fff7d1 Binary files /dev/null and b/translated_images/km/environment.40ba3cb66256c93f.webp differ diff --git a/translated_images/km/escape.18862db9930337e3.webp b/translated_images/km/escape.18862db9930337e3.webp new file mode 100644 index 000000000..b5960137f Binary files /dev/null and b/translated_images/km/escape.18862db9930337e3.webp differ diff --git a/translated_images/km/facetgrid.9b2e65ce707eba1f.webp b/translated_images/km/facetgrid.9b2e65ce707eba1f.webp new file mode 100644 index 000000000..d2b66ab2d Binary files /dev/null and b/translated_images/km/facetgrid.9b2e65ce707eba1f.webp differ diff --git a/translated_images/km/fairness.25d7c8ce9817272d.webp b/translated_images/km/fairness.25d7c8ce9817272d.webp new file mode 100644 index 000000000..1aaff382d Binary files /dev/null and b/translated_images/km/fairness.25d7c8ce9817272d.webp differ diff --git a/translated_images/km/fairness.b9f9893a4e3dc28b.webp b/translated_images/km/fairness.b9f9893a4e3dc28b.webp new file mode 100644 index 000000000..35ab742e8 Binary files /dev/null and b/translated_images/km/fairness.b9f9893a4e3dc28b.webp differ diff --git a/translated_images/km/favicon.37b561214b36d454.webp b/translated_images/km/favicon.37b561214b36d454.webp new file mode 100644 index 000000000..48a53960d Binary files /dev/null and b/translated_images/km/favicon.37b561214b36d454.webp differ diff --git a/translated_images/km/flat-nonflat.d1c8c6e2a96110c1.webp b/translated_images/km/flat-nonflat.d1c8c6e2a96110c1.webp new file mode 100644 index 000000000..e04d302c6 Binary files /dev/null and b/translated_images/km/flat-nonflat.d1c8c6e2a96110c1.webp differ diff --git a/translated_images/km/full-data-predict.4f0fed16a131c8f3.webp b/translated_images/km/full-data-predict.4f0fed16a131c8f3.webp new file mode 100644 index 000000000..41c27d252 Binary files /dev/null and b/translated_images/km/full-data-predict.4f0fed16a131c8f3.webp differ diff --git a/translated_images/km/full-data.a82ec9957e580e97.webp b/translated_images/km/full-data.a82ec9957e580e97.webp new file mode 100644 index 000000000..ce9d25319 Binary files /dev/null and b/translated_images/km/full-data.a82ec9957e580e97.webp differ diff --git a/translated_images/km/gender-bias-translate-en-tr.bfd87c45da23c085.webp b/translated_images/km/gender-bias-translate-en-tr.bfd87c45da23c085.webp new file mode 100644 index 000000000..a405e4b10 Binary files /dev/null and b/translated_images/km/gender-bias-translate-en-tr.bfd87c45da23c085.webp differ diff --git a/translated_images/km/gender-bias-translate-en-tr.f185fd8822c2d437.webp b/translated_images/km/gender-bias-translate-en-tr.f185fd8822c2d437.webp new file mode 100644 index 000000000..ad29d3436 Binary files /dev/null and b/translated_images/km/gender-bias-translate-en-tr.f185fd8822c2d437.webp differ diff --git a/translated_images/km/gender-bias-translate-tr-en.1f97568ba9e40e20.webp b/translated_images/km/gender-bias-translate-tr-en.1f97568ba9e40e20.webp new file mode 100644 index 000000000..20c2ccfd1 Binary files /dev/null and b/translated_images/km/gender-bias-translate-tr-en.1f97568ba9e40e20.webp differ diff --git a/translated_images/km/gender-bias-translate-tr-en.4eee7e3cecb8c70e.webp b/translated_images/km/gender-bias-translate-tr-en.4eee7e3cecb8c70e.webp new file mode 100644 index 000000000..a19ea4eb0 Binary files /dev/null and b/translated_images/km/gender-bias-translate-tr-en.4eee7e3cecb8c70e.webp differ diff --git a/translated_images/km/globe.59f26379ceb40428.webp b/translated_images/km/globe.59f26379ceb40428.webp new file mode 100644 index 000000000..c14c59c3e Binary files /dev/null and b/translated_images/km/globe.59f26379ceb40428.webp differ diff --git a/translated_images/km/grid.464370ad00f3696c.webp b/translated_images/km/grid.464370ad00f3696c.webp new file mode 100644 index 000000000..7cb0b6f21 Binary files /dev/null and b/translated_images/km/grid.464370ad00f3696c.webp differ diff --git a/translated_images/km/heatmap.39952045da50b4eb.webp b/translated_images/km/heatmap.39952045da50b4eb.webp new file mode 100644 index 000000000..7eb86d808 Binary files /dev/null and b/translated_images/km/heatmap.39952045da50b4eb.webp differ diff --git a/translated_images/km/hierarchical.bf59403aa43c8c47.webp b/translated_images/km/hierarchical.bf59403aa43c8c47.webp new file mode 100644 index 000000000..fa02dcc9b Binary files /dev/null and b/translated_images/km/hierarchical.bf59403aa43c8c47.webp differ diff --git a/translated_images/km/human.e3840390a2ab7690.webp b/translated_images/km/human.e3840390a2ab7690.webp new file mode 100644 index 000000000..35faa2269 Binary files /dev/null and b/translated_images/km/human.e3840390a2ab7690.webp differ diff --git a/translated_images/km/hype.07183d711a17aafe.webp b/translated_images/km/hype.07183d711a17aafe.webp new file mode 100644 index 000000000..0920690f0 Binary files /dev/null and b/translated_images/km/hype.07183d711a17aafe.webp differ diff --git a/translated_images/km/indian.2c4292002af1a1f9.webp b/translated_images/km/indian.2c4292002af1a1f9.webp new file mode 100644 index 000000000..109f34a1c Binary files /dev/null and b/translated_images/km/indian.2c4292002af1a1f9.webp differ diff --git a/translated_images/km/individual-causal-what-if.00e7b86b52a083ce.webp b/translated_images/km/individual-causal-what-if.00e7b86b52a083ce.webp new file mode 100644 index 000000000..d5a0e3d1d Binary files /dev/null and b/translated_images/km/individual-causal-what-if.00e7b86b52a083ce.webp differ diff --git a/translated_images/km/jack-o-lanterns.181c661a9212457d.webp b/translated_images/km/jack-o-lanterns.181c661a9212457d.webp new file mode 100644 index 000000000..425e879b1 Binary files /dev/null and b/translated_images/km/jack-o-lanterns.181c661a9212457d.webp differ diff --git a/translated_images/km/janitor.e4a77dd3d3e6a32e.webp b/translated_images/km/janitor.e4a77dd3d3e6a32e.webp new file mode 100644 index 000000000..6268b76af Binary files /dev/null and b/translated_images/km/janitor.e4a77dd3d3e6a32e.webp differ diff --git a/translated_images/km/japanese.30260486f2a05c46.webp b/translated_images/km/japanese.30260486f2a05c46.webp new file mode 100644 index 000000000..742f49997 Binary files /dev/null and b/translated_images/km/japanese.30260486f2a05c46.webp differ diff --git a/translated_images/km/july-2014.9e1f7c318ec6d5b3.webp b/translated_images/km/july-2014.9e1f7c318ec6d5b3.webp new file mode 100644 index 000000000..53b5abcd7 Binary files /dev/null and b/translated_images/km/july-2014.9e1f7c318ec6d5b3.webp differ diff --git a/translated_images/km/korean.4a4f0274f3d9805a.webp b/translated_images/km/korean.4a4f0274f3d9805a.webp new file mode 100644 index 000000000..fca8fd182 Binary files /dev/null and b/translated_images/km/korean.4a4f0274f3d9805a.webp differ diff --git a/translated_images/km/learned.ed28bcd8484b5287.webp b/translated_images/km/learned.ed28bcd8484b5287.webp new file mode 100644 index 000000000..04b91e802 Binary files /dev/null and b/translated_images/km/learned.ed28bcd8484b5287.webp differ diff --git a/translated_images/km/linear-polynomial.5523c7cb6576ccab.webp b/translated_images/km/linear-polynomial.5523c7cb6576ccab.webp new file mode 100644 index 000000000..cbe417878 Binary files /dev/null and b/translated_images/km/linear-polynomial.5523c7cb6576ccab.webp differ diff --git a/translated_images/km/linear-results.f7c3552c85b0ed1c.webp b/translated_images/km/linear-results.f7c3552c85b0ed1c.webp new file mode 100644 index 000000000..0cb94631a Binary files /dev/null and b/translated_images/km/linear-results.f7c3552c85b0ed1c.webp differ diff --git a/translated_images/km/linear-vs-logistic.ba180bf95e7ee667.webp b/translated_images/km/linear-vs-logistic.ba180bf95e7ee667.webp new file mode 100644 index 000000000..c8878d40f Binary files /dev/null and b/translated_images/km/linear-vs-logistic.ba180bf95e7ee667.webp differ diff --git a/translated_images/km/linear.a1b0760a56132551.webp b/translated_images/km/linear.a1b0760a56132551.webp new file mode 100644 index 000000000..5ebaedd31 Binary files /dev/null and b/translated_images/km/linear.a1b0760a56132551.webp differ diff --git a/translated_images/km/lobe.2fa0806408ef9923.webp b/translated_images/km/lobe.2fa0806408ef9923.webp new file mode 100644 index 000000000..035f7c944 Binary files /dev/null and b/translated_images/km/lobe.2fa0806408ef9923.webp differ diff --git a/translated_images/km/logistic-linear.0f2f6bb73b3134c1.webp b/translated_images/km/logistic-linear.0f2f6bb73b3134c1.webp new file mode 100644 index 000000000..ffc67f70c Binary files /dev/null and b/translated_images/km/logistic-linear.0f2f6bb73b3134c1.webp differ diff --git a/translated_images/km/logistic.b0cba6b7db4d5789.webp b/translated_images/km/logistic.b0cba6b7db4d5789.webp new file mode 100644 index 000000000..082998eb6 Binary files /dev/null and b/translated_images/km/logistic.b0cba6b7db4d5789.webp differ diff --git a/translated_images/km/lpathlen.94f211521ed60940.webp b/translated_images/km/lpathlen.94f211521ed60940.webp new file mode 100644 index 000000000..44d57cf19 Binary files /dev/null and b/translated_images/km/lpathlen.94f211521ed60940.webp differ diff --git a/translated_images/km/lpathlen1.0534784add58d4eb.webp b/translated_images/km/lpathlen1.0534784add58d4eb.webp new file mode 100644 index 000000000..3725aebf3 Binary files /dev/null and b/translated_images/km/lpathlen1.0534784add58d4eb.webp differ diff --git a/translated_images/km/map.e963a6a51349425a.webp b/translated_images/km/map.e963a6a51349425a.webp new file mode 100644 index 000000000..819df3526 Binary files /dev/null and b/translated_images/km/map.e963a6a51349425a.webp differ diff --git a/translated_images/km/mape.fd87bbaf4d346846.webp b/translated_images/km/mape.fd87bbaf4d346846.webp new file mode 100644 index 000000000..40d3f94ef Binary files /dev/null and b/translated_images/km/mape.fd87bbaf4d346846.webp differ diff --git a/translated_images/km/ml-fairness.ef296ebec6afc98a.webp b/translated_images/km/ml-fairness.ef296ebec6afc98a.webp new file mode 100644 index 000000000..98fa20bac Binary files /dev/null and b/translated_images/km/ml-fairness.ef296ebec6afc98a.webp differ diff --git a/translated_images/km/ml-for-beginners-video-banner.63f694a100034bc6.webp b/translated_images/km/ml-for-beginners-video-banner.63f694a100034bc6.webp new file mode 100644 index 000000000..b24150a96 Binary files /dev/null and b/translated_images/km/ml-for-beginners-video-banner.63f694a100034bc6.webp differ diff --git a/translated_images/km/ml-for-beginners.9eecb963dbfbfb32.webp b/translated_images/km/ml-for-beginners.9eecb963dbfbfb32.webp new file mode 100644 index 000000000..ab582b562 Binary files /dev/null and b/translated_images/km/ml-for-beginners.9eecb963dbfbfb32.webp differ diff --git a/translated_images/km/ml-history.a1bdfd4ce1f464d9.webp b/translated_images/km/ml-history.a1bdfd4ce1f464d9.webp new file mode 100644 index 000000000..c63e643c2 Binary files /dev/null and b/translated_images/km/ml-history.a1bdfd4ce1f464d9.webp differ diff --git a/translated_images/km/ml-realworld.26ee274671615577.webp b/translated_images/km/ml-realworld.26ee274671615577.webp new file mode 100644 index 000000000..75ca15a56 Binary files /dev/null and b/translated_images/km/ml-realworld.26ee274671615577.webp differ diff --git a/translated_images/km/ml-regression.4e4f70e3b3ed446e.webp b/translated_images/km/ml-regression.4e4f70e3b3ed446e.webp new file mode 100644 index 000000000..d747c6f46 Binary files /dev/null and b/translated_images/km/ml-regression.4e4f70e3b3ed446e.webp differ diff --git a/translated_images/km/ml-reinforcement.94024374d63348db.webp b/translated_images/km/ml-reinforcement.94024374d63348db.webp new file mode 100644 index 000000000..08ed28b03 Binary files /dev/null and b/translated_images/km/ml-reinforcement.94024374d63348db.webp differ diff --git a/translated_images/km/ml-timeseries.fb98d25f1013fc0c.webp b/translated_images/km/ml-timeseries.fb98d25f1013fc0c.webp new file mode 100644 index 000000000..39d7d9c72 Binary files /dev/null and b/translated_images/km/ml-timeseries.fb98d25f1013fc0c.webp differ diff --git a/translated_images/km/model-overview-dataset-cohorts.dfa463fb527a35a0.webp b/translated_images/km/model-overview-dataset-cohorts.dfa463fb527a35a0.webp new file mode 100644 index 000000000..5f73f7aee Binary files /dev/null and b/translated_images/km/model-overview-dataset-cohorts.dfa463fb527a35a0.webp differ diff --git a/translated_images/km/model-overview-feature-cohorts.c5104d575ffd0c80.webp b/translated_images/km/model-overview-feature-cohorts.c5104d575ffd0c80.webp new file mode 100644 index 000000000..89f1fe0fe Binary files /dev/null and b/translated_images/km/model-overview-feature-cohorts.c5104d575ffd0c80.webp differ diff --git a/translated_images/km/monnaie.606c5fa8369d5c3b.webp b/translated_images/km/monnaie.606c5fa8369d5c3b.webp new file mode 100644 index 000000000..4d1c3a467 Binary files /dev/null and b/translated_images/km/monnaie.606c5fa8369d5c3b.webp differ diff --git a/translated_images/km/mountaincar.43d56e588ce581c2.webp b/translated_images/km/mountaincar.43d56e588ce581c2.webp new file mode 100644 index 000000000..81247af4b Binary files /dev/null and b/translated_images/km/mountaincar.43d56e588ce581c2.webp differ diff --git a/translated_images/km/multinomial-ordinal.944fe02295fd6cdf.webp b/translated_images/km/multinomial-ordinal.944fe02295fd6cdf.webp new file mode 100644 index 000000000..168910242 Binary files /dev/null and b/translated_images/km/multinomial-ordinal.944fe02295fd6cdf.webp differ diff --git a/translated_images/km/multinomial-vs-ordinal.36701b4850e37d86.webp b/translated_images/km/multinomial-vs-ordinal.36701b4850e37d86.webp new file mode 100644 index 000000000..faab78ac0 Binary files /dev/null and b/translated_images/km/multinomial-vs-ordinal.36701b4850e37d86.webp differ diff --git a/translated_images/km/netron.a05f39410211915e.webp b/translated_images/km/netron.a05f39410211915e.webp new file mode 100644 index 000000000..d90791c62 Binary files /dev/null and b/translated_images/km/netron.a05f39410211915e.webp differ diff --git a/translated_images/km/notebook.4a3ee31f396b8832.webp b/translated_images/km/notebook.4a3ee31f396b8832.webp new file mode 100644 index 000000000..f0c922a36 Binary files /dev/null and b/translated_images/km/notebook.4a3ee31f396b8832.webp differ diff --git a/translated_images/km/original.b2b15efe0ce92b87.webp b/translated_images/km/original.b2b15efe0ce92b87.webp new file mode 100644 index 000000000..dd41a38da Binary files /dev/null and b/translated_images/km/original.b2b15efe0ce92b87.webp differ diff --git a/translated_images/km/overfitting.1c132d92bfd93cb6.webp b/translated_images/km/overfitting.1c132d92bfd93cb6.webp new file mode 100644 index 000000000..3efe45b2a Binary files /dev/null and b/translated_images/km/overfitting.1c132d92bfd93cb6.webp differ diff --git a/translated_images/km/p&p.279f1c49ecd88941.webp b/translated_images/km/p&p.279f1c49ecd88941.webp new file mode 100644 index 000000000..76a1c986b Binary files /dev/null and b/translated_images/km/p&p.279f1c49ecd88941.webp differ diff --git a/translated_images/km/parse.d0c5bbe1106eae8f.webp b/translated_images/km/parse.d0c5bbe1106eae8f.webp new file mode 100644 index 000000000..f0492fd0e Binary files /dev/null and b/translated_images/km/parse.d0c5bbe1106eae8f.webp differ diff --git a/translated_images/km/parsnip.cd2ce92622976502.webp b/translated_images/km/parsnip.cd2ce92622976502.webp new file mode 100644 index 000000000..d3e8e66c6 Binary files /dev/null and b/translated_images/km/parsnip.cd2ce92622976502.webp differ diff --git a/translated_images/km/peter.779730f9ba3a8a8d.webp b/translated_images/km/peter.779730f9ba3a8a8d.webp new file mode 100644 index 000000000..a6a517271 Binary files /dev/null and b/translated_images/km/peter.779730f9ba3a8a8d.webp differ diff --git a/translated_images/km/pie-pumpkins-scatter.d14f9804a53f927e.webp b/translated_images/km/pie-pumpkins-scatter.d14f9804a53f927e.webp new file mode 100644 index 000000000..c606bc6ee Binary files /dev/null and b/translated_images/km/pie-pumpkins-scatter.d14f9804a53f927e.webp differ diff --git a/translated_images/km/pinch.1b035ec9ba7e0d40.webp b/translated_images/km/pinch.1b035ec9ba7e0d40.webp new file mode 100644 index 000000000..c8a832e02 Binary files /dev/null and b/translated_images/km/pinch.1b035ec9ba7e0d40.webp differ diff --git a/translated_images/km/poly-results.ee587348f0f1f60b.webp b/translated_images/km/poly-results.ee587348f0f1f60b.webp new file mode 100644 index 000000000..6743c245c Binary files /dev/null and b/translated_images/km/poly-results.ee587348f0f1f60b.webp differ diff --git a/translated_images/km/polynomial.8fce4663e7283dfb.webp b/translated_images/km/polynomial.8fce4663e7283dfb.webp new file mode 100644 index 000000000..897ec41af Binary files /dev/null and b/translated_images/km/polynomial.8fce4663e7283dfb.webp differ diff --git a/translated_images/km/popular.9c48d84b3386705f.webp b/translated_images/km/popular.9c48d84b3386705f.webp new file mode 100644 index 000000000..250e15de5 Binary files /dev/null and b/translated_images/km/popular.9c48d84b3386705f.webp differ diff --git a/translated_images/km/price-by-variety.744a2f9925d9bcb4.webp b/translated_images/km/price-by-variety.744a2f9925d9bcb4.webp new file mode 100644 index 000000000..d001a164a Binary files /dev/null and b/translated_images/km/price-by-variety.744a2f9925d9bcb4.webp differ diff --git a/translated_images/km/problems.f7fb539ccd80608e.webp b/translated_images/km/problems.f7fb539ccd80608e.webp new file mode 100644 index 000000000..a7cb1793e Binary files /dev/null and b/translated_images/km/problems.f7fb539ccd80608e.webp differ diff --git a/translated_images/km/pumpkin-classifier.562771f104ad5436.webp b/translated_images/km/pumpkin-classifier.562771f104ad5436.webp new file mode 100644 index 000000000..19271f7e4 Binary files /dev/null and b/translated_images/km/pumpkin-classifier.562771f104ad5436.webp differ diff --git a/translated_images/km/pumpkins_catplot_1.c55c409b71fea2ec.webp b/translated_images/km/pumpkins_catplot_1.c55c409b71fea2ec.webp new file mode 100644 index 000000000..ca0ccfbd2 Binary files /dev/null and b/translated_images/km/pumpkins_catplot_1.c55c409b71fea2ec.webp differ diff --git a/translated_images/km/pumpkins_catplot_2.87a354447880b388.webp b/translated_images/km/pumpkins_catplot_2.87a354447880b388.webp new file mode 100644 index 000000000..f970078a1 Binary files /dev/null and b/translated_images/km/pumpkins_catplot_2.87a354447880b388.webp differ diff --git a/translated_images/km/r_learners_sm.cd14eb3581a9f28d.webp b/translated_images/km/r_learners_sm.cd14eb3581a9f28d.webp new file mode 100644 index 000000000..5c9dd2a3a Binary files /dev/null and b/translated_images/km/r_learners_sm.cd14eb3581a9f28d.webp differ diff --git a/translated_images/km/r_learners_sm.e25fa9c205b3a3f9.webp b/translated_images/km/r_learners_sm.e25fa9c205b3a3f9.webp new file mode 100644 index 000000000..f134e5b2f Binary files /dev/null and b/translated_images/km/r_learners_sm.e25fa9c205b3a3f9.webp differ diff --git a/translated_images/km/r_learners_sm.e4a71b113ffbedfe.webp b/translated_images/km/r_learners_sm.e4a71b113ffbedfe.webp new file mode 100644 index 000000000..638a4e2ce Binary files /dev/null and b/translated_images/km/r_learners_sm.e4a71b113ffbedfe.webp differ diff --git a/translated_images/km/r_learners_sm.f9199f76f1e2e493.webp b/translated_images/km/r_learners_sm.f9199f76f1e2e493.webp new file mode 100644 index 000000000..c6d828190 Binary files /dev/null and b/translated_images/km/r_learners_sm.f9199f76f1e2e493.webp differ diff --git a/translated_images/km/recipes.186acfa8ed2e8f00.webp b/translated_images/km/recipes.186acfa8ed2e8f00.webp new file mode 100644 index 000000000..40faab103 Binary files /dev/null and b/translated_images/km/recipes.186acfa8ed2e8f00.webp differ diff --git a/translated_images/km/recipes.9ad10d8a4056bf89.webp b/translated_images/km/recipes.9ad10d8a4056bf89.webp new file mode 100644 index 000000000..e33996d58 Binary files /dev/null and b/translated_images/km/recipes.9ad10d8a4056bf89.webp differ diff --git a/translated_images/km/scaled.91897dfbaa26ca4a.webp b/translated_images/km/scaled.91897dfbaa26ca4a.webp new file mode 100644 index 000000000..3d143dec0 Binary files /dev/null and b/translated_images/km/scaled.91897dfbaa26ca4a.webp differ diff --git a/translated_images/km/scaled.e35258ca5cd3d43f.webp b/translated_images/km/scaled.e35258ca5cd3d43f.webp new file mode 100644 index 000000000..db2dffb68 Binary files /dev/null and b/translated_images/km/scaled.e35258ca5cd3d43f.webp differ diff --git a/translated_images/km/scatter-dayofyear-color.65790faefbb9d54f.webp b/translated_images/km/scatter-dayofyear-color.65790faefbb9d54f.webp new file mode 100644 index 000000000..6976b9ac6 Binary files /dev/null and b/translated_images/km/scatter-dayofyear-color.65790faefbb9d54f.webp differ diff --git a/translated_images/km/scatter-dayofyear.bc171c189c9fd553.webp b/translated_images/km/scatter-dayofyear.bc171c189c9fd553.webp new file mode 100644 index 000000000..aec045037 Binary files /dev/null and b/translated_images/km/scatter-dayofyear.bc171c189c9fd553.webp differ diff --git a/translated_images/km/scatterplot.ad8b356bcbb33be6.webp b/translated_images/km/scatterplot.ad8b356bcbb33be6.webp new file mode 100644 index 000000000..43762dc08 Binary files /dev/null and b/translated_images/km/scatterplot.ad8b356bcbb33be6.webp differ diff --git a/translated_images/km/scatterplot.b6868f44cbd2051c.webp b/translated_images/km/scatterplot.b6868f44cbd2051c.webp new file mode 100644 index 000000000..bf0ce25bc Binary files /dev/null and b/translated_images/km/scatterplot.b6868f44cbd2051c.webp differ diff --git a/translated_images/km/shakey.4dc17819c447c05b.webp b/translated_images/km/shakey.4dc17819c447c05b.webp new file mode 100644 index 000000000..664ce4db2 Binary files /dev/null and b/translated_images/km/shakey.4dc17819c447c05b.webp differ diff --git a/translated_images/km/sigmoid.8b7ba9d095c789cf.webp b/translated_images/km/sigmoid.8b7ba9d095c789cf.webp new file mode 100644 index 000000000..f513a38cc Binary files /dev/null and b/translated_images/km/sigmoid.8b7ba9d095c789cf.webp differ diff --git a/translated_images/km/slope.f3c9d5910ddbfcf9.webp b/translated_images/km/slope.f3c9d5910ddbfcf9.webp new file mode 100644 index 000000000..64284ed74 Binary files /dev/null and b/translated_images/km/slope.f3c9d5910ddbfcf9.webp differ diff --git a/translated_images/km/solvers.5fc648618529e627.webp b/translated_images/km/solvers.5fc648618529e627.webp new file mode 100644 index 000000000..95c2d322c Binary files /dev/null and b/translated_images/km/solvers.5fc648618529e627.webp differ diff --git a/translated_images/km/svm.621ae7b516d678e0.webp b/translated_images/km/svm.621ae7b516d678e0.webp new file mode 100644 index 000000000..e526c150d Binary files /dev/null and b/translated_images/km/svm.621ae7b516d678e0.webp differ diff --git a/translated_images/km/swarm.56d253ae80a2c0f5.webp b/translated_images/km/swarm.56d253ae80a2c0f5.webp new file mode 100644 index 000000000..3d1bd6586 Binary files /dev/null and b/translated_images/km/swarm.56d253ae80a2c0f5.webp differ diff --git a/translated_images/km/swarm_2.efeacfca536c2b57.webp b/translated_images/km/swarm_2.efeacfca536c2b57.webp new file mode 100644 index 000000000..f671258cd Binary files /dev/null and b/translated_images/km/swarm_2.efeacfca536c2b57.webp differ diff --git a/translated_images/km/test-data-predict.8afc47ee7e52874f.webp b/translated_images/km/test-data-predict.8afc47ee7e52874f.webp new file mode 100644 index 000000000..e9ea513a1 Binary files /dev/null and b/translated_images/km/test-data-predict.8afc47ee7e52874f.webp differ diff --git a/translated_images/km/thai-food.c47a7a7f9f05c218.webp b/translated_images/km/thai-food.c47a7a7f9f05c218.webp new file mode 100644 index 000000000..1eda3cea3 Binary files /dev/null and b/translated_images/km/thai-food.c47a7a7f9f05c218.webp differ diff --git a/translated_images/km/thai.0269dbab2e78bd38.webp b/translated_images/km/thai.0269dbab2e78bd38.webp new file mode 100644 index 000000000..37a2894d5 Binary files /dev/null and b/translated_images/km/thai.0269dbab2e78bd38.webp differ diff --git a/translated_images/km/tokenization.1641a160c66cd2d9.webp b/translated_images/km/tokenization.1641a160c66cd2d9.webp new file mode 100644 index 000000000..9c3d9bbd8 Binary files /dev/null and b/translated_images/km/tokenization.1641a160c66cd2d9.webp differ diff --git a/translated_images/km/train-data-predict.3c4ef4e78553104f.webp b/translated_images/km/train-data-predict.3c4ef4e78553104f.webp new file mode 100644 index 000000000..7cc169581 Binary files /dev/null and b/translated_images/km/train-data-predict.3c4ef4e78553104f.webp differ diff --git a/translated_images/km/train-test.8928d14e5b91fc94.webp b/translated_images/km/train-test.8928d14e5b91fc94.webp new file mode 100644 index 000000000..3b9cfd70c Binary files /dev/null and b/translated_images/km/train-test.8928d14e5b91fc94.webp differ diff --git a/translated_images/km/train-test.ead0cecbfc341921.webp b/translated_images/km/train-test.ead0cecbfc341921.webp new file mode 100644 index 000000000..3b9cfd70c Binary files /dev/null and b/translated_images/km/train-test.ead0cecbfc341921.webp differ diff --git a/translated_images/km/train_progress_raw.2adfdf2daea09c59.webp b/translated_images/km/train_progress_raw.2adfdf2daea09c59.webp new file mode 100644 index 000000000..9cb93e6e5 Binary files /dev/null and b/translated_images/km/train_progress_raw.2adfdf2daea09c59.webp differ diff --git a/translated_images/km/train_progress_runav.c71694a8fa9ab359.webp b/translated_images/km/train_progress_runav.c71694a8fa9ab359.webp new file mode 100644 index 000000000..46fb46ea5 Binary files /dev/null and b/translated_images/km/train_progress_runav.c71694a8fa9ab359.webp differ diff --git a/translated_images/km/turntable.f2b86b13c53302dc.webp b/translated_images/km/turntable.f2b86b13c53302dc.webp new file mode 100644 index 000000000..27c674f5b Binary files /dev/null and b/translated_images/km/turntable.f2b86b13c53302dc.webp differ diff --git a/translated_images/km/ufo.9e787f5161da9d4d.webp b/translated_images/km/ufo.9e787f5161da9d4d.webp new file mode 100644 index 000000000..cd8c7d85e Binary files /dev/null and b/translated_images/km/ufo.9e787f5161da9d4d.webp differ diff --git a/translated_images/km/unruly_data.0eedc7ced92d2d91.webp b/translated_images/km/unruly_data.0eedc7ced92d2d91.webp new file mode 100644 index 000000000..3e1a461d2 Binary files /dev/null and b/translated_images/km/unruly_data.0eedc7ced92d2d91.webp differ diff --git a/translated_images/km/violin.ffceb68923177011.webp b/translated_images/km/violin.ffceb68923177011.webp new file mode 100644 index 000000000..104c0a29d Binary files /dev/null and b/translated_images/km/violin.ffceb68923177011.webp differ diff --git a/translated_images/km/voronoi.1dc1613fb0439b95.webp b/translated_images/km/voronoi.1dc1613fb0439b95.webp new file mode 100644 index 000000000..4a7d11723 Binary files /dev/null and b/translated_images/km/voronoi.1dc1613fb0439b95.webp differ diff --git a/translated_images/km/web-app.4c76450cabe20036.webp b/translated_images/km/web-app.4c76450cabe20036.webp new file mode 100644 index 000000000..81d190f19 Binary files /dev/null and b/translated_images/km/web-app.4c76450cabe20036.webp differ diff --git a/translated_images/km/wolf.a56d3d4070ca0c79.webp b/translated_images/km/wolf.a56d3d4070ca0c79.webp new file mode 100644 index 000000000..a9f12f4bd Binary files /dev/null and b/translated_images/km/wolf.a56d3d4070ca0c79.webp differ diff --git a/translations/ar/.co-op-translator.json b/translations/ar/.co-op-translator.json index 39a4447bf..e70fd2cd6 100644 --- a/translations/ar/.co-op-translator.json +++ b/translations/ar/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ar" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:30:49+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:53:25+00:00", "source_file": "README.md", "language_code": "ar" }, diff --git a/translations/ar/README.md b/translations/ar/README.md index f2f0336d0..6b50868ab 100644 --- a/translations/ar/README.md +++ b/translations/ar/README.md @@ -1,178 +1,178 @@ -[![رخصة GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![مساهمو GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) -[![قضايا GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) -[![طلبات السحب على GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![مرحبا بطلبات السحب](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![ترخيص GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) +[![المساهمون في GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![مشكلات GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![طلبات السحب في GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) +[![طلبات السحب مرحب بها](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) -[![المراقبون على GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![الشُعَل على GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) -[![النجوم على GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) +[![مشاهدو GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![استنساخات GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![نجوم GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) ### 🌐 دعم متعدد اللغات -#### مدعوم عبر إجراء GitHub (آلي ودائم التحديث) +#### مدعوم عبر GitHub Action (أتمتة ومحدث دائمًا) -[العربية](./README.md) | [البنغالية](../bn/README.md) | [البلغارية](../bg/README.md) | [البورمية (ميانمار)](../my/README.md) | [الصينية (المبسطة)](../zh-CN/README.md) | [الصينية (التقليدية، هونغ كونغ)](../zh-HK/README.md) | [الصينية (التقليدية، ماكاو)](../zh-MO/README.md) | [الصينية (التقليدية، تايوان)](../zh-TW/README.md) | [الكرواتية](../hr/README.md) | [التشيكية](../cs/README.md) | [الدنماركية](../da/README.md) | [الهولندية](../nl/README.md) | [الإستونية](../et/README.md) | [الفنلندية](../fi/README.md) | [الفرنسية](../fr/README.md) | [الألمانية](../de/README.md) | [اليونانية](../el/README.md) | [العبرية](../he/README.md) | [الهندية](../hi/README.md) | [الهنغارية](../hu/README.md) | [الإندونيسية](../id/README.md) | [الإيطالية](../it/README.md) | [اليابانية](../ja/README.md) | [الكانادا](../kn/README.md) | [الكورية](../ko/README.md) | [الليتوانية](../lt/README.md) | [الماليزية](../ms/README.md) | [المالايالامية](../ml/README.md) | [الماراثية](../mr/README.md) | [النيبالية](../ne/README.md) | [البيجين النيجرية](../pcm/README.md) | [النرويجية](../no/README.md) | [الفارسية (الفُرسية)](../fa/README.md) | [البولندية](../pl/README.md) | [البرتغالية (البرازيل)](../pt-BR/README.md) | [البرتغالية (البرتغال)](../pt-PT/README.md) | [البانجابي (غورموخي)](../pa/README.md) | [الرومانية](../ro/README.md) | [الروسية](../ru/README.md) | [الصربية (السيريلية)](../sr/README.md) | [السلوفاكية](../sk/README.md) | [السلوفينية](../sl/README.md) | [الإسبانية](../es/README.md) | [السواحلية](../sw/README.md) | [السويدية](../sv/README.md) | [التاغالوغية (الفلبينية)](../tl/README.md) | [التاميلية](../ta/README.md) | [التيلجو](../te/README.md) | [التايلاندية](../th/README.md) | [التركية](../tr/README.md) | [الأوكرانية](../uk/README.md) | [الأردية](../ur/README.md) | [الفيتنامية](../vi/README.md) +[العربية](./README.md) | [البنغالية](../bn/README.md) | [البلغارية](../bg/README.md) | [البورمية (ميانمار)](../my/README.md) | [الصينية (المبسطة)](../zh-CN/README.md) | [الصينية (التقليدية، هونغ كونغ)](../zh-HK/README.md) | [الصينية (التقليدية، ماكاو)](../zh-MO/README.md) | [الصينية (التقليدية، تايوان)](../zh-TW/README.md) | [الكرواتية](../hr/README.md) | [التشيكية](../cs/README.md) | [الدانماركية](../da/README.md) | [الهولندية](../nl/README.md) | [الإستونية](../et/README.md) | [الفنلندية](../fi/README.md) | [الفرنسية](../fr/README.md) | [الألمانية](../de/README.md) | [اليونانية](../el/README.md) | [العبرية](../he/README.md) | [الهندية](../hi/README.md) | [الهنغارية](../hu/README.md) | [الإندونيسية](../id/README.md) | [الإيطالية](../it/README.md) | [اليابانية](../ja/README.md) | [الكنادية](../kn/README.md) | [الخميرية](../km/README.md) | [الكورية](../ko/README.md) | [الليتوانية](../lt/README.md) | [الماليزية](../ms/README.md) | [المالايالامية](../ml/README.md) | [الماراثية](../mr/README.md) | [النيبالية](../ne/README.md) | [البيدجين النيجيري](../pcm/README.md) | [النرويجية](../no/README.md) | [الفارسية (الفارسية)](../fa/README.md) | [البولندية](../pl/README.md) | [البرتغالية (البرازيل)](../pt-BR/README.md) | [البرتغالية (البرتغال)](../pt-PT/README.md) | [البنجابية (الغورموخي)](../pa/README.md) | [الرومانية](../ro/README.md) | [الروسية](../ru/README.md) | [الصربية (السيريلية)](../sr/README.md) | [السلوفاكية](../sk/README.md) | [السلوفينية](../sl/README.md) | [الإسبانية](../es/README.md) | [السواحيلية](../sw/README.md) | [السويدية](../sv/README.md) | [التاغالوغ (الفلبينية)](../tl/README.md) | [التاميل](../ta/README.md) | [التيلجو](../te/README.md) | [التايلاندية](../th/README.md) | [التركية](../tr/README.md) | [الأوكرانية](../uk/README.md) | [الأردية](../ur/README.md) | [الفيتنامية](../vi/README.md) > **تفضل الاستنساخ محليًا؟** > -> هذا المستودع يتضمن أكثر من 50 ترجمة للغات مما يزيد بشكل كبير من حجم التنزيل. للاستنساخ بدون الترجمات، استخدم السحب الجزئي: +> يتضمن هذا المستودع ترجمات لأكثر من 50 لغة مما يزيد بشكل كبير من حجم التنزيل. للاستنساخ بدون الترجمات، استخدم السحب الانتقائي: > -> **Bash / macOS / Linux:** +> **باش / macOS / لينكس:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` > -> **CMD (Windows):** +> **CMD (ويندوز):** > ```cmd > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> هذا يمنحك كل ما تحتاجه لإكمال الدورة بتنزيل أسرع بكثير. +> هذا يمنحك كل ما تحتاجه لإكمال الدورة مع تنزيل أسرع بكثير. #### انضم إلى مجتمعنا -[![مؤسس Microsoft Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -لدينا سلسلة تعلم على Discord مع AI مستمرة، تعرف على المزيد وانضم إلينا في [سلسلة التعلم مع AI](https://aka.ms/learnwithai/discord) من 18 إلى 30 سبتمبر 2025. ستحصل على نصائح وحيل لاستخدام GitHub Copilot في علم البيانات. +نحن نجري سلسلة تعلم على Discord مع الذكاء الاصطناعي، تعرف أكثر وانضم إلينا في [سلسلة التعلم مع الذكاء الاصطناعي](https://aka.ms/learnwithai/discord) من 18 إلى 30 سبتمبر 2025. ستحصل على نصائح وحيل لاستخدام GitHub Copilot في علوم البيانات. -![سلسلة تعلم مع AI](../../translated_images/ar/3.9b58fd8d6c373c20.webp) +![سلسلة التعلم مع الذكاء الاصطناعي](../../translated_images/ar/3.9b58fd8d6c373c20.webp) # تعلم الآلة للمبتدئين - منهج دراسي -> 🌍 سافر حول العالم ونحن نستكشف تعلم الآلة عبر ثقافات العالم 🌍 +> 🌍 سافر حول العالم بينما نستكشف تعلم الآلة عبر ثقافات العالم 🌍 -يسعد دعاة الحوسبة السحابية في Microsoft أن يقدموا منهجاً دراسياً يمتد 12 أسبوعًا و26 درسًا حول **تعلم الآلة**. في هذا المنهج، ستتعلم ما يُعرف أحيانًا بـ **تعلم الآلة الكلاسيكي**، باستخدام مكتبة Scikit-learn بشكل أساسي وتجنب التعلم العميق الذي يُغطيه منهجنا الخاص بـ [الذكاء الاصطناعي للمبتدئين](https://aka.ms/ai4beginners). كما يمكنك دمج هذه الدروس مع منهجنا ['علم البيانات للمبتدئين'](https://aka.ms/ds4beginners). +يسر داعمي السحابة في مايكروسوفت أن يقدموا منهجًا دراسيًا لمدة 12 أسبوعًا، يتضمن 26 درسًا كلها عن **تعلم الآلة**. في هذا المنهج، ستتعلم ما يسمى أحيانًا **تعلم الآلة الكلاسيكي**، باستخدام مكتبة Scikit-learn بشكل رئيسي وتجنب التعلم العميق الذي يتم تغطيته في منهجنا [الذكاء الاصطناعي للمبتدئين](https://aka.ms/ai4beginners). اقرن هذه الدروس بمنهجنا ['علوم البيانات للمبتدئين'](https://aka.ms/ds4beginners) أيضًا! -سافر معنا حول العالم بينما نطبق هذه التقنيات الكلاسيكية على بيانات من مناطق مختلفة. يتضمن كل درس اختبارات قبل وبعد الدرس، تعليمات مكتوبة لإكمال الدرس، الحلول، واجبات، والمزيد. تسمح طريقتنا القائمة على المشاريع بالتعلم أثناء البناء، وهي طريقة مثبتة لترسيخ المهارات الجديدة. +سافر معنا حول العالم بينما نطبق هذه التقنيات الكلاسيكية على بيانات من مناطق متعددة حول العالم. يتضمن كل درس اختبارات قبل وبعد الدرس، تعليمات مكتوبة لإكمال الدرس، حل، مهمة، وأكثر. تسمح منهجيتنا القائمة على المشاريع لك بالتعلم أثناء البناء، وهي طريقة مثبتة لترسيخ المهارات الجديدة. -**✍️ شكر خاص لمؤلفينا** جن لوبر، ستيفن هاول، فرانشيسكا لازيري، تومومي إيمورا، كاسي بريفي، دميتري سوشنيكوف، كريس نورينغ، أنيربان موخرجي، أورنيلا التونيان، روث ياكوبو وآمي بويد +**✍️ شكر حار لمؤلفينا** جين لوبر، ستيفن هاول، فرانسيسكا لازيري، تومومي إيمورا، كاسي بريفييو، ديمتري سوشنيكوف، كريس نورينج، أنيربان موخيرجي، أورنيلا ألتونيان، روث ياكوبو وآمي بويد -**🎨 شكر خاص أيضًا لرسامينا** تومومي إيمورا، داساني ماديبالي، وجن لوبر +**🎨 شكر أيضًا لرسامينا** تومومي إيمورا، داساني ماديبالي، وجين لوبر -**🙏 شكر خاص 🙏 لسفراء طلاب Microsoft من المؤلفين والمراجعين والمساهمين في المحتوى**، خصوصًا ريشت داجلي، محمد ساكيب خان إينان، روهان راج، ألكسندرو بيتريسكو، أبهيشيك جايسوال، ناورين تعاسوم، إيوان ساميولا، وسنيغدا أغاروال +**🙏 شكر خاص 🙏 لمؤلفي، مراجعين، ومساهمي المحتوى من سفراء طلاب مايكروسوفت**، خاصة ريشيت داغلي، محمد ساكيب خان إينان، روهان راج، ألكساندرو بيتريسكو، أبهيشيك جايسوال، ناورين تبسم، إيوان سامويلا، وسنيغدا أجروال -**🤩 امتنان إضافي لسفراء طلاب Microsoft إريك وانجاو، جاسلين سوندي، وفيدوشي جوبتا لدروس R!** +**🤩 امتنان إضافي لسفراء طلاب مايكروسوفت إريك وانجاو، جاسلين سوندي، وفيدوشي غوبتا على دروس R!** -# البداية +# البدء اتبع هذه الخطوات: -1. **انسخ المستودع**: اضغط على زر "Fork" أعلى يمين هذه الصفحة. -2. **استنسخ المستودع**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **افتح فرع للمستودع (Fork)**: اضغط على زر "Fork" في الزاوية العلوية اليمنى من هذه الصفحة. +2. **انسخ المستودع (Clone)**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [جد كل الموارد الإضافية لهذه الدورة في مجموعة Microsoft Learn الخاصة بنا](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [ابحث عن جميع الموارد الإضافية لهذه الدورة في مجموعة Microsoft Learn الخاصة بنا](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **تحتاج إلى مساعدة؟** اطلع على [دليل الحلول](TROUBLESHOOTING.md) للمشاكل الشائعة في التثبيت والإعداد وتشغيل الدروس. +> 🔧 **هل تحتاج مساعدة؟** اطلع على [دليل استكشاف المشاكل](TROUBLESHOOTING.md) للحصول على حلول للمشكلات الشائعة في التثبيت والإعداد وتشغيل الدروس. -**[الطلاب](https://aka.ms/student-page)**، لاستخدام هذا المنهج، انسخ المستودع بأكمله إلى حساب GitHub الخاص بك وأكمل التمارين بنفسك أو مع فريق: +**[الطلاب](https://aka.ms/student-page)**، لاستخدام هذا المنهج، افصل كامل المستودع إلى حساب GitHub الخاص بك وأكمل التمارين بنفسك أو مع مجموعة: - ابدأ باختبار تمهيدي قبل المحاضرة. -- اقرأ المحاضرة وأكمل الأنشطة، توقف وتأمل في كل اختبار معرفة. -- حاول إنشاء المشاريع بفهم الدروس بدلاً من تشغيل كود الحل؛ مع ذلك، يتوفر الكود في مجلدات `/solution` بكل درس يركز على المشاريع. -- أجرِ اختبار بعد المحاضرة. +- اقرأ المحاضرة وأكمل الأنشطة، توقف وفكر عند كل اختبار معرفة. +- حاول إنشاء المشاريع من خلال فهم الدروس بدلاً من تشغيل كود الحل، لكن الكود متاح في مجلدات `/solution` في كل درس موجه نحو المشاريع. +- خذ اختبار ما بعد المحاضرة. - أكمل التحدي. -- أنجز الواجب. -- بعد إتمام مجموعة الدروس، زر [لوحة النقاش](https://github.com/microsoft/ML-For-Beginners/discussions) و"تعلّم بصوت مرتفع" عبر ملء استبيان PAT المناسب. 'PAT' هي أداة تقييم تقدم تعبئها لتعزيز تعلمك. يمكنك أيضًا التفاعل مع استبيانات PAT الأخرى لكي نتعلم معًا. +- أكمل المهمة. +- بعد إكمال مجموعة دروس، زر [لوحة النقاش](https://github.com/microsoft/ML-For-Beginners/discussions) و"تعلّم بصوت عالٍ" بملء استمارة PAT المناسبة. الPAT هو أداة تقييم تقدم تملأها لتعزيز تعلمك. يمكنك أيضًا التفاعل مع PATs أخرى لنتعلم معًا. -> للمزيد من الدراسة، نوصي باتباع هذه الوحدات ومسارات التعلم على [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> للدراسة المتقدمة، نوصي بمتابعة هذه الوحدات والمسارات التعليمية على [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**المعلمون**، لقد قمنا [بتضمين بعض الاقتراحات](for-teachers.md) حول كيفية استخدام هذا المنهج. +**المعلمون**، لقد أرفقنا [بعض الاقتراحات](for-teachers.md) حول كيفية استخدام هذا المنهج. --- -## فيديوهات الشرح +## فيديوهات إرشادية -بعض الدروس متاحة على شكل فيديوهات قصيرة. يمكنك العثور عليها داخل الدروس أو على [قائمة تشغيل ML للمبتدئين على قناة Microsoft Developer على YouTube](https://aka.ms/ml-beginners-videos) بالنقر على الصورة أدناه. +بعض الدروس متاحة على شكل فيديوهات قصيرة. يمكنك العثور على جميعها ضمن الدروس، أو على [قائمة تشغيل التعلم الآلي للمبتدئين على قناة Microsoft Developer على يوتيوب](https://aka.ms/ml-beginners-videos) بالنقر على الصورة أدناه. -[![بانر ML للمبتدئين](../../translated_images/ar/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![لافتة تعلم الآلة للمبتدئين](../../translated_images/ar/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## تعرّف على الفريق +## تعرف على الفريق [![فيديو ترويجي](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**جيف بواسطة** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**جيف بواسطة** [موهيت جايسال](https://linkedin.com/in/mohitjaisal) > 🎥 انقر على الصورة أعلاه لمشاهدة فيديو عن المشروع والأشخاص الذين أنشأوه! --- -## منهجية التعليم +## المنهجية التعليمية -اخترنا ركيزتين تربويتين لبناء هذا المنهج: التأكد من أنه يعتمد على **مشاريع عملية**، وكذلك أن يشمل **اختبارات متكررة**. بالإضافة إلى ذلك، يحتوي هذا المنهج على **موضوع موحد** يمنحه الترابط. +اخترنا مبدأين تربويين أثناء بناء هذا المنهج: ضمان أن يكون قائمًا على **مشاريع تطبيقية** واحتوائه على **اختبارات متكررة**. بالإضافة إلى ذلك، يحتوي هذا المنهج على **موضوع مشترك** ليمنحه تماسكًا. -بالتأكد من توافق المحتوى مع المشاريع، تصبح العملية أكثر تشويقًا للطلاب ويزداد تثبيت المفاهيم. كما أن اختبارًا منخفض المخاطر قبل المحاضرة يوجه نية الطالب نحو تعلم موضوع ما، بينما اختبار آخر بعد المحاضرة يعزز التثبيت. تم تصميم هذا المنهج ليكون مرنًا وممتعًا ويمكن أخذه كاملاً أو جزئيًا. تبدأ المشاريع بسيطة وتزداد تعقيدًا تدريجيًا خلال دورة الـ12 أسبوعًا. يشمل هذا المنهج أيضًا ملحقًا حول تطبيقات تعلم الآلة في العالم الحقيقي، يمكن استخدامه كنقاط إضافية أو كقاعدة للنقاش. +بضمان توافق المحتوى مع المشاريع، تصبح العملية أكثر جذبًا للطلاب وسيزداد تثبيت المفاهيم. بالإضافة لذلك، يحدد اختبار منخفض الأهمية قبل الفصل نية الطالب لتعلم الموضوع، بينما يضمن اختبار ثانٍ بعد الفصل مزيدًا من التثبيت. صُمم هذا المنهج ليكون مرنًا وممتعًا ويمكن أخذه ككل أو جزئيًا. تبدأ المشاريع صغيرة وتزداد تعقيدًا بنهاية دورة الـ12 أسبوعًا. يحتوي هذا المنهج أيضًا على خاتمة حول تطبيقات تعلم الآلة في العالم الحقيقي، والتي يمكن استخدامها كائتمان إضافي أو كأساس للنقاش. -> اطلع على [مدونة السلوك الخاصة بنا](CODE_OF_CONDUCT.md)، و[المساهمة](CONTRIBUTING.md)، و[الترجمات](..)، ودليل [حل المشكلات](TROUBLESHOOTING.md). نحن نرحب بتعليقاتكم البناءة! +> تجد لدينا [مدونة السلوك](CODE_OF_CONDUCT.md)، [المساهمة](CONTRIBUTING.md)، [الترجمات](..)، و[استكشاف المشاكل](TROUBLESHOOTING.md). نرحب بملاحظاتكم البناءة! -## كل درس يتضمن +## يشمل كل درس -- ملخص تخطيطي اختياري -- فيديو تكميلي اختياري -- فيديو شرح (لبعض الدروس فقط) -- [اختبار تمهيدي قبل المحاضرة](https://ff-quizzes.netlify.app/en/ml/) +- ملاحظات رسمية اختيارية +- فيديو دعم اختياري +- فيديو إرشادي (بعض الدروس فقط) +- [اختبار إحماء قبل المحاضرة](https://ff-quizzes.netlify.app/en/ml/) - درس مكتوب -- في الدروس القائمة على المشاريع، دليل خطوة بخطوة لبناء المشروع +- لدروس المشاريع، أدلة خطوة بخطوة لبناء المشروع - اختبارات معرفة - تحدي -- قراءة تكميليه -- واجب +- قراءة داعمة +- مهمة - [اختبار بعد المحاضرة](https://ff-quizzes.netlify.app/en/ml/) - -> **ملاحظة حول اللغات**: هذه الدروس مكتوبة أساسًا بلغة بايثون، لكنها متاحة أيضًا بلغات R. لإكمال درس R، انتقل إلى مجلد `/solution` وابحث عن دروس R التي تتضمن امتداد .rmd الذي يرمز إلى **R Markdown**، وهو ملف يمكن تعريفه ببساطة على أنه تضمين لـ`كتل تعليمات` (R أو لغات أخرى) و`رأس YAML` (يوجه كيفية تنسيق المخرجات مثل PDF) داخل `وثيقة Markdown`. ولذلك، فهو إطار تأليف نموذجي لعلم البيانات حيث يسمح لك بدمج شفرتك، ناتجها، وأفكارك عبر كتابتها في Markdown. علاوة على ذلك، يمكن تحويل مستندات R Markdown إلى صيغ إخراج مثل PDF، HTML، أو Word. -> **ملاحظة حول الاختبارات**: جميع الاختبارات موجودة في [مجلد Quiz App](../../quiz-app)، ويبلغ مجموعها 52 اختبارًا، كل اختبار يحتوي على ثلاثة أسئلة. وهي مرتبطة من داخل الدروس لكن يمكن تشغيل تطبيق الاختبارات محليًا؛ اتبع التعليمات في مجلد `quiz-app` لاستضافة التطبيق محليًا أو نشره على Azure. - -| رقم الدرس | الموضوع | تجميع الدروس | الأهداف التعليمية | الدرس المرتبط | المؤلف | -| :-------: | :------------------------------------------------------------: | :----------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| 01 | مقدمة في تعلم الآلة | [مقدمة](1-Introduction/README.md) | تعلّم المفاهيم الأساسية وراء تعلم الآلة | [درس](1-Introduction/1-intro-to-ML/README.md) | محمد | -| 02 | تاريخ تعلم الآلة | [مقدمة](1-Introduction/README.md) | تعلّم تاريخ هذا المجال | [درس](1-Introduction/2-history-of-ML/README.md) | جين وآمي | -| 03 | العدالة وتعلم الآلة | [مقدمة](1-Introduction/README.md) | ما هي القضايا الفلسفية الهامة حول العدالة التي يجب أن يأخذها الطلاب في الاعتبار عند بناء وتطبيق نماذج التعلم الآلي؟ | [درس](1-Introduction/3-fairness/README.md) | تومومي | -| 04 | تقنيات تعلم الآلة | [مقدمة](1-Introduction/README.md) | أي تقنيات يستخدمها باحثو تعلم الآلة لبناء نماذج التعلم؟ | [درس](1-Introduction/4-techniques-of-ML/README.md) | كريس وجين | -| 05 | مقدمة في الانحدار | [انحدار](2-Regression/README.md) | ابدأ مع Python وScikit-learn لنماذج الانحدار | [بايثون](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جين • إريك وانجاو | -| 06 | أسعار اليقطين في أمريكا الشمالية 🎃 | [انحدار](2-Regression/README.md) | تصور وتنظيف البيانات تحضيرًا لتعلم الآلة | [بايثون](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جين • إريك وانجاو | -| 07 | أسعار اليقطين في أمريكا الشمالية 🎃 | [انحدار](2-Regression/README.md) | بناء نماذج الانحدار الخطي والمتعدد الحدود | [بايثون](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جين ودميتري • إريك وانجاو | -| 08 | أسعار اليقطين في أمريكا الشمالية 🎃 | [انحدار](2-Regression/README.md) | بناء نموذج انحدار لوجستي | [بايثون](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جين • إريك وانجاو | -| 09 | تطبيق ويب 🔌 | [تطبيق ويب](3-Web-App/README.md) | بناء تطبيق ويب لاستخدام النموذج الذي تم تدريبه | [بايثون](3-Web-App/1-Web-App/README.md) | جين | -| 10 | مقدمة في التصنيف | [تصنيف](4-Classification/README.md) | تنظيف، تحضير، وتصوير بياناتك؛ مقدمة في التصنيف | [بايثون](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جين وكاسي • إريك وانجاو | -| 11 | الأطباق الآسيوية والهندية اللذيذة 🍜 | [تصنيف](4-Classification/README.md) | مقدمة إلى المصنفات | [بايثون](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جين وكاسي • إريك وانجاو | -| 12 | الأطباق الآسيوية والهندية اللذيذة 🍜 | [تصنيف](4-Classification/README.md) | المزيد من المصنفات | [بايثون](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جين وكاسي • إريك وانجاو | -| 13 | الأطباق الآسيوية والهندية اللذيذة 🍜 | [تصنيف](4-Classification/README.md) | بناء تطبيق ويب توصية باستخدام النموذج الخاص بك | [بايثون](4-Classification/4-Applied/README.md) | جين | -| 14 | مقدمة إلى التجميع | [تجميع](5-Clustering/README.md) | تنظيف، تحضير، وتصوير بياناتك؛ مقدمة إلى التجميع | [بايثون](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جين • إريك وانجاو | -| 15 | استكشاف الأذواق الموسيقية النيجيرية 🎧 | [تجميع](5-Clustering/README.md) | استكشاف طريقة تجميع K-Means | [بايثون](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جين • إريك وانجاو | -| 16 | مقدمة لمعالجة اللغة الطبيعية ☕️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | تعلّم أساسيات معالجة اللغة الطبيعية ببناء روبوت بسيط | [بايثون](6-NLP/1-Introduction-to-NLP/README.md) | ستيفن | -| 17 | مهام شائعة في معالجة اللغة الطبيعية ☕️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | تعميق معرفتك بمعالجة اللغة الطبيعية من خلال فهم المهام الشائعة المطلوبة عند التعامل مع تراكيب اللغة | [بايثون](6-NLP/2-Tasks/README.md) | ستيفن | -| 18 | الترجمة وتحليل المشاعر ♥️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | الترجمة وتحليل المشاعر مع جين أوستن | [بايثون](6-NLP/3-Translation-Sentiment/README.md) | ستيفن | -| 19 | الفنادق الرومانسية في أوروبا ♥️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | تحليل المشاعر مع تقييمات الفنادق 1 | [بايثون](6-NLP/4-Hotel-Reviews-1/README.md) | ستيفن | -| 20 | الفنادق الرومانسية في أوروبا ♥️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | تحليل المشاعر مع تقييمات الفنادق 2 | [بايثون](6-NLP/5-Hotel-Reviews-2/README.md) | ستيفن | -| 21 | مقدمة في التنبؤ بالسلاسل الزمنية | [سلاسل زمنية](7-TimeSeries/README.md) | مقدمة في التنبؤ بالسلاسل الزمنية | [بايثون](7-TimeSeries/1-Introduction/README.md) | فرانسيسكا | -| 22 | ⚡️ استخدام الطاقة العالمية ⚡️ - التنبؤ بالسلاسل الزمنية باستخدام ARIMA | [سلاسل زمنية](7-TimeSeries/README.md) | التنبؤ بالسلاسل الزمنية باستخدام ARIMA | [بايثون](7-TimeSeries/2-ARIMA/README.md) | فرانسيسكا | -| 23 | ⚡️ استخدام الطاقة العالمية ⚡️ - التنبؤ بالسلاسل الزمنية باستخدام SVR | [سلاسل زمنية](7-TimeSeries/README.md) | التنبؤ بالسلاسل الزمنية باستخدام آلة الدعم الناقص (Support Vector Regressor) | [بايثون](7-TimeSeries/3-SVR/README.md) | أنيربان | -| 24 | مقدمة إلى التعلم التعزيزي | [التعلم التعزيزي](8-Reinforcement/README.md) | مقدمة إلى التعلم التعزيزي باستخدام Q-Learning | [بايثون](8-Reinforcement/1-QLearning/README.md) | دميتري | -| 25 | ساعد بيتر في تجنب الذئب! 🐺 | [التعلم التعزيزي](8-Reinforcement/README.md) | رواق التعلم التعزيزي | [بايثون](8-Reinforcement/2-Gym/README.md) | دميتري | -| خاتمة | سيناريوهات وتطبيقات تعلم الآلة في العالم الحقيقي | [تعلم الآلة في البرية](9-Real-World/README.md) | تطبيقات حقيقية مثيرة ومكشوفة لتعلم الآلة الكلاسيكي | [درس](9-Real-World/1-Applications/README.md) | الفريق | -| خاتمة | تصحيح نماذج تعلم الآلة باستخدام لوحة RAI | [تعلم الآلة في البرية](9-Real-World/README.md) | تصحيح نماذج تعلم الآلة باستخدام مكونات لوحة Responsible AI | [درس](9-Real-World/2-Debugging-ML-Models/README.md) | روث ياكوبو | - -> [اعثر على جميع الموارد الإضافية لهذه الدورة في مجموعة Microsoft Learn الخاصة بنا](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## الوصول بدون اتصال - -يمكنك تشغيل هذا التوثيق بدون اتصال باستخدام [Docsify](https://docsify.js.org/#/). قم بتفرع هذا المستودع، [ثبّت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في المجلد الجذري لهذا المستودع، اكتب `docsify serve`. سيتم تقديم الموقع على المنفذ 3000 على جهازك المحلي: `localhost:3000`. +> **ملاحظة حول اللغات**: هذه الدروس مكتوبة أساسًا بلغة بايثون، ولكن العديد منها متاح أيضًا بلغة R. لإكمال درس بلغة R، توجه إلى مجلد `/solution` وابحث عن دروس R. تتضمن هذه الدروس امتداد .rmd الذي يمثل ملف **R Markdown** والذي يمكن تعريفه ببساطة على أنه تضمين لـ `code chunks` (للـ R أو لغات أخرى) و `YAML header` (الذي يوجه كيفية تنسيق المخرجات مثل PDF) في `مستند Markdown`. وبذلك، فهو يعمل كإطار تأليف نموذجي لعلوم البيانات لأنه يتيح لك دمج التعليمات البرمجية الخاصة بك، ومخرجاتها، وأفكارك من خلال السماح لك بكتابتها في Markdown. علاوة على ذلك، يمكن تحويل مستندات R Markdown إلى تنسيقات مخرجات مثل PDF أو HTML أو Word. + +> **ملاحظة حول الاختبارات القصيرة**: جميع الاختبارات القصيرة موجودة في [مجلد تطبيق الاختبارات](../../quiz-app)، بمجموع 52 اختبارًا تتكون كل منها من ثلاثة أسئلة. يتم الربط بها من داخل الدروس ولكن يمكن تشغيل تطبيق الاختبارات محليًا؛ اتبع التعليمات في مجلد `quiz-app` لاستضافة التطبيق محليًا أو نشره على Azure. + +| رقم الدرس | الموضوع | تصنيف الدرس | الأهداف التعليمية | الدرس المرتبط | المؤلف | +| :-------: | :----------------------------------------------------------: | :----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------: | +| 01 | مقدمة في تعلم الآلة | [مقدمة](1-Introduction/README.md) | تعلّم المفاهيم الأساسية وراء تعلم الآلة | [درس](1-Introduction/1-intro-to-ML/README.md) | محمد | +| 02 | تاريخ تعلم الآلة | [مقدمة](1-Introduction/README.md) | تعلّم التاريخ الكامن وراء هذا المجال | [درس](1-Introduction/2-history-of-ML/README.md) | جن وآمي | +| 03 | الإنصاف وتعلم الآلة | [مقدمة](1-Introduction/README.md) | ما هي القضايا الفلسفية المهمة حول الإنصاف التي يجب أن يأخذها الطلاب بعين الاعتبار عند بناء وتطبيق نماذج تعلم الآلة؟ | [درس](1-Introduction/3-fairness/README.md) | تومومي | +| 04 | تقنيات تعلم الآلة | [مقدمة](1-Introduction/README.md) | ما هي التقنيات التي يستخدمها باحثو تعلم الآلة لبناء نماذج تعلم الآلة؟ | [درس](1-Introduction/4-techniques-of-ML/README.md) | كريس وجن | +| 05 | مقدمة في الانحدار | [انحدار](2-Regression/README.md) | ابدأ باستخدام بايثون وScikit-learn لنماذج الانحدار | [بايثون](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جن • إريك وانجاو | +| 06 | أسعار القرع الأمريكية الشمالية 🎃 | [انحدار](2-Regression/README.md) | تصور وتنظيف البيانات استعدادًا لتعلم الآلة | [بايثون](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جن • إريك وانجاو | +| 07 | أسعار القرع الأمريكية الشمالية 🎃 | [انحدار](2-Regression/README.md) | بناء نماذج الانحدار الخطي والحدودي | [بايثون](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جن ودميتري • إريك وانجاو | +| 08 | أسعار القرع الأمريكية الشمالية 🎃 | [انحدار](2-Regression/README.md) | بناء نموذج انحدار لوغستي | [بايثون](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جن • إريك وانجاو | +| 09 | تطبيق ويب 🔌 | [تطبيق ويب](3-Web-App/README.md) | بناء تطبيق ويب لاستخدام النموذج المدرب | [بايثون](3-Web-App/1-Web-App/README.md) | جن | +| 10 | مقدمة في التصنيف | [تصنيف](4-Classification/README.md) | تنظيف وتحضير وتصوير البيانات؛ مقدمة في التصنيف | [بايثون](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جن وكاسي • إريك وانجاو | +| 11 | المأكولات الشهية الآسيوية والهندية 🍜 | [تصنيف](4-Classification/README.md) | مقدمة إلى المصنفات | [بايثون](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جن وكاسي • إريك وانجا | +| 12 | المأكولات الشهية الآسيوية والهندية 🍜 | [تصنيف](4-Classification/README.md) | المزيد من المصنفات | [بايثون](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جن وكاسي • إريك وانجا | +| 13 | المأكولات الشهية الآسيوية والهندية 🍜 | [تصنيف](4-Classification/README.md) | بناء تطبيق ويب للتوصية باستخدام نموذجك | [بايثون](4-Classification/4-Applied/README.md) | جن | +| 14 | مقدمة في التجميع | [تجميع](5-Clustering/README.md) | تنظيف وتحضير وتصوير البيانات؛ مقدمة في التجميع | [بايثون](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جن • إريك وانجاو | +| 15 | استكشاف الأذواق الموسيقية النيجيرية 🎧 | [تجميع](5-Clustering/README.md) | استكشاف طريقة التجميع K-Means | [بايثون](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جن • إريك وانجاو | +| 16 | مقدمة في معالجة اللغة الطبيعية ☕️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | تعلّم أساسيات معالجة اللغة الطبيعية من خلال بناء بوت بسيط | [بايثون](6-NLP/1-Introduction-to-NLP/README.md) | ستيفن | +| 17 | مهام شائعة في معالجة اللغة ☕️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | تعميق معرفتك في المعالجة من خلال فهم المهام الشائعة المطلوبة عند التعامل مع هياكل اللغة | [بايثون](6-NLP/2-Tasks/README.md) | ستيفن | +| 18 | الترجمة وتحليل المشاعر ♥️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | الترجمة وتحليل المشاعر مع جين أوستن | [بايثون](6-NLP/3-Translation-Sentiment/README.md) | ستيفن | +| 19 | فنادق رومانسية في أوروبا ♥️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | تحليل المشاعر باستخدام مراجعات الفنادق 1 | [بايثون](6-NLP/4-Hotel-Reviews-1/README.md) | ستيفن | +| 20 | فنادق رومانسية في أوروبا ♥️ | [معالجة اللغة الطبيعية](6-NLP/README.md) | تحليل المشاعر باستخدام مراجعات الفنادق 2 | [بايثون](6-NLP/5-Hotel-Reviews-2/README.md) | ستيفن | +| 21 | مقدمة في التنبؤ بالسلاسل الزمنية | [السلاسل الزمنية](7-TimeSeries/README.md) | مقدمة في التنبؤ بالسلاسل الزمنية | [بايثون](7-TimeSeries/1-Introduction/README.md) | فرانسيسكا | +| 22 | ⚡️ استهلاك الطاقة العالمي ⚡️ - التنبؤ بالسلاسل الزمنية مع ARIMA | [السلاسل الزمنية](7-TimeSeries/README.md) | التنبؤ بالسلاسل الزمنية باستخدام ARIMA | [بايثون](7-TimeSeries/2-ARIMA/README.md) | فرانسيسكا | +| 23 | ⚡️ استهلاك الطاقة العالمي ⚡️ - التنبؤ بالسلاسل الزمنية مع SVR | [السلاسل الزمنية](7-TimeSeries/README.md) | التنبؤ بالسلاسل الزمنية باستخدام Support Vector Regressor | [بايثون](7-TimeSeries/3-SVR/README.md) | أنيربان | +| 24 | مقدمة في التعلم التعزيزي | [التعلم التعزيزي](8-Reinforcement/README.md) | مقدمة في التعلم التعزيزي باستخدام Q-Learning | [بايثون](8-Reinforcement/1-QLearning/README.md) | دميتري | +| 25 | ساعد بيتر على تجنب الذئب! 🐺 | [التعلم التعزيزي](8-Reinforcement/README.md) | التعلم التعزيزي باستخدام Gym | [بايثون](8-Reinforcement/2-Gym/README.md) | دميتري | +| ملحق | سيناريوهات وتطبيقات تعلم الآلة الواقعية | [تعلم الآلة في البرية](9-Real-World/README.md) | تطبيقات حقيقية ومثيرة للاهتمام لتعلم الآلة الكلاسيكي | [درس](9-Real-World/1-Applications/README.md) | الفريق | +| ملحق | تصحيح نماذج تعلم الآلة باستخدام لوحة RAI | [تعلم الآلة في البرية](9-Real-World/README.md) | تصحيح نماذج تعلم الآلة باستخدام مكونات لوحة Responsible AI | [درس](9-Real-World/2-Debugging-ML-Models/README.md) | روث ياكوبو | + +> [اعثر على جميع الموارد الإضافية لهذا المساق في مجموعة Microsoft Learn الخاصة بنا](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## الوصول دون اتصال + +يمكنك تشغيل هذا التوثيق دون اتصال باستخدام [Docsify](https://docsify.js.org/#/). قم بعمل نسخة من هذا الريبو، [قم بتثبيت Docsify](https://docsify.js.org/#/quickstart) على جهازك المحلي، ثم في المجلد الجذر لهذا الريبو، اكتب `docsify serve`. سيتم تقديم الموقع على المنفذ 3000 على جهازك المحلي: `localhost:3000`. ## ملفات PDF -اعثر على ملف PDF للمنهاج مع روابط [هنا](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +اعثر على ملف PDF للمناهج مع الروابط [هنا](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 دورات أخرى -ينتج فريقنا دورات أخرى! تحقق من: +يقوم فريقنا بإنتاج دورات أخرى! تحقق من: ### LangChain @@ -183,7 +183,7 @@ ### Azure / Edge / MCP / Agents [![AZD للمبتدئين](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![الذكاء الاصطناعي على الحافة للمبتدئين](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI للمبتدئين](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP للمبتدئين](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![وكلاء الذكاء الاصطناعي للمبتدئين](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -198,7 +198,7 @@ --- ### التعلم الأساسي -[![تعلم الآلة للمبتدئين](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![تعلّم الآلة للمبتدئين](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![علوم البيانات للمبتدئين](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![الذكاء الاصطناعي للمبتدئين](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![الأمن السيبراني للمبتدئين](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) @@ -208,30 +208,30 @@ --- -### سلسلة مساعد البرمجة -[![مساعد البرمجة للذكاء الاصطناعي المزدوج](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![مساعد البرمجة لـ C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![مغامرة مساعد البرمجة](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### سلسلة كوبايلوت +[![كوبايلوت للبرمجة المزدوجة بالذكاء الاصطناعي](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![كوبايلوت لـ C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![مغامرة كوبايلوت](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## الحصول على الدعم +## الحصول على المساعدة -إذا واجهت صعوبة أو كانت لديك أسئلة حول بناء تطبيقات الذكاء الاصطناعي. انضم إلى المتعلمين والمطورين ذوي الخبرة في مناقشات حول MCP. إنها مجتمع داعم حيث الأسئلة مرحب بها والمعرفة تتم مشاركتها بحرية. +إذا واجهت صعوبة أو كان لديك أي أسئلة حول بناء تطبيقات الذكاء الاصطناعي، انضم إلى المتعلمين الآخرين والمطورين ذوي الخبرة في مناقشات حول MCP. إنها مجتمع داعم حيث الأسئلة مرحب بها ويتم تبادل المعرفة بحرية. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -إذا كان لديك ملاحظات حول المنتج أو أخطاء أثناء البناء، زر: +إذا كان لديك ملاحظات على المنتج أو أخطاء أثناء البناء، قم بزيارتنا: -[![منتدى مطوري Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## نصائح إضافية للتعلم +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +## نصائح تعلم إضافية - راجع دفاتر الملاحظات بعد كل درس لفهم أفضل. -- مارس تطبيق الخوارزميات بنفسك. -- استكشف مجموعات بيانات العالم الحقيقي باستخدام المفاهيم التي تعلمتها. +- تمرن على تنفيذ الخوارزميات بنفسك. +- استكشف مجموعات بيانات حقيقية باستخدام المفاهيم التي تعلمتها. --- -**إخلاء المسؤولية**: -تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للحفاظ على الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق به. للمعلومات الحساسة أو الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة. +**إخلاء مسؤولية**: +تمت ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى للدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي والموثوق. للمعلومات الهامة، يُنصح بالاستعانة بترجمة بشرية محترفة. نحن غير مسؤولين عن أي سوء فهم أو تفسير خاطئ ناتج عن استخدام هذه الترجمة. \ No newline at end of file diff --git a/translations/bg/.co-op-translator.json b/translations/bg/.co-op-translator.json index a0a2c3cdf..92976aa02 100644 --- a/translations/bg/.co-op-translator.json +++ b/translations/bg/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "bg" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:27:41+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:22:15+00:00", "source_file": "README.md", "language_code": "bg" }, diff --git a/translations/bg/README.md b/translations/bg/README.md index cd3b6ad7a..a477ac587 100644 --- a/translations/bg/README.md +++ b/translations/bg/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Многоезична Поддръжка +### 🌐 Многоезична поддръжка -#### Поддържана чрез GitHub Action (Автоматизирана и винаги актуална) +#### Поддържа се чрез GitHub Action (автоматично и винаги актуално) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](./README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](./README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Предпочитате да клонирате локално?** > -> Това хранилище включва над 50 превода на езици, което значително увеличава размера за изтегляне. За да клонирате без преводите, използвайте sparse checkout: +> Това хранилище включва 50+ езикови превода, което значително увеличава размера на изтеглянето. За да клонирате без преводи, използвайте sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Това ви дава всичко необходимо, за да завършите курса с много по-бързо изтегляне. +> Това ви осигурява всичко необходимо за завършване на курса с много по-бързо изтегляне. #### Присъединете се към нашата общност [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Имаме текуща серия в Discord „Научи с AI“, научете повече и се включете на [Learn with AI Series](https://aka.ms/learnwithai/discord) от 18 до 30 септември 2025 г. Ще получите полезни съвети и трикове за използване на GitHub Copilot за Наука за Данни. +Имаме серия в Discord за учене с AI, научете повече и се присъединете към нас на [Learn with AI Series](https://aka.ms/learnwithai/discord) от 18 до 30 септември 2025 г. Ще получите съвети и трикове за използване на GitHub Copilot за Data Science. ![Learn with AI series](../../translated_images/bg/3.9b58fd8d6c373c20.webp) -# Машинно обучение за начинаещи - Учебна програма +# Машинно обучение за начинаещи – учебна програма -> 🌍 Пътувайте по света, докато изследваме машинното обучение чрез световните култури 🌍 +> 🌍 Пътувайте по света, докато изследваме Машинното обучение чрез световните култури 🌍 -Облак специалистите в Microsoft с удоволствие предлагат 12-седмична учебна програма с 26 урока, посветени на **машинното обучение**. В тази учебна програма ще научите за това, което понякога се нарича **класическо машинно обучение**, използвайки основно библиотеката Scikit-learn и без задълбочено обучение, което е покрито в нашата учебна програма [AI за начинаещи](https://aka.ms/ai4beginners). Съчетавайте тези уроци с нашата учебна програма ['Наука за данни за начинаещи'](https://aka.ms/ds4beginners)! +Cloud Advocates в Microsoft с радост предлагат 12-седмична, 26-урочна учебна програма изцяло посветена на **Машинното обучение**. В тази учебна програма ще научите за това, което понякога се нарича **класическо машинно обучение**, използвайки основно библиотеката Scikit-learn и избягвайки дълбокото обучение, което е разгледано в нашата учебна програма [AI за начинаещи](https://aka.ms/ai4beginners). Съчетавайте тези уроци с нашата учебна програма ['Data Science за начинаещи'](https://aka.ms/ds4beginners), също! -Пътувайте с нас из целия свят, докато прилагаме тези класически техники върху данни от различни области на света. Всеки урок включва предварителни и последващи тестове, писмени инструкции за завършване на урока, решение, задание и още. Нашата проектно-базирана педагогика ви позволява да учите, докато създавате, доказан начин за по-добро усвояване на нови умения. +Пътувайте с нас по света, докато прилагаме тези класически техники върху данни от различни региони на света. Всеки урок включва тестове преди и след урока, писмени инструкции за завършване на урока, решение, задача и други. Нашата проектно базирана педагогика ви позволява да учите чрез изграждане, което е доказан начин за усвояване на нови умения. -**✍️ Големи благодарности на нашите автори** Джен Лупър, Стивън Хауъл, Франческа Лазери, Томоми Имура, Каси Бревю, Дмитрий Сошников, Крис Норинг, Анирбан Мукерджи, Орнела Алтунян, Рут Якобу и Ейми Бойд +**✍️ Сърдечни благодарности на нашите автори** Джен Лупър, Стивън Хауъл, Франческа Лазери, Томоми Имура, Каси Бревиу, Дмитрий Сошников, Крис Норинг, Анирбан Мукерджи, Орнела Алтунян, Рут Якубу и Ейми Бойд **🎨 Благодарности и на нашите илюстратори** Томоми Имура, Дасани Мадипали и Джен Лупър -**🙏 Специални благодарности 🙏 на нашите автори, рецензенти и съдържателни сътрудници от Microsoft Student Ambassador,** по-специално Ришит Дагли, Мухаммад Сакиб Кан Инан, Рохан Радж, Александру Петреску, Абхишек Джайсвал, Наурин Табасум, Йоан Самуила и Снигдха Агарвал +**🙏 Специални благодарности 🙏 на нашите автори, рецензенти и съдържателни сътрудници от Microsoft Student Ambassador**, особено Ришит Дагли, Мухаммад Сакиб Кан Инан, Рохан Радж, Александру Петреску, Абхишек Джайсвал, Науирин Табасум, Йоан Самуила и Снигдха Агарвал -**🤩 Допълнителна благодарност на Microsoft Student Ambassadors Ерик Уанджау, Джаслийн Сонди и Ведуши Гупта за нашите уроци по R!** +**🤩 Допълнителна благодарност на Microsoft Student Ambassadors Ерик Уанджау, Жаслийн Сонди и Видуши Гупта за нашите R уроци!** # Започване Следвайте тези стъпки: -1. **Форкнете репозитория**: Кликнете върху бутона „Fork“ в горния десен ъгъл на тази страница. -2. **Клонирайте репозитория**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Форкнете хранилището**: Кликнете бутона "Fork" в горния десен ъгъл на тази страница. +2. **Клонирайте хранилището**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [намерете всички допълнителни ресурси за този курс в нашата Microsoft Learn колекция](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [намерете всички допълнителни ресурси за този курс в нашата колекция в Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Нуждаете се от помощ?** Проверете нашето [Ръководство за отстраняване на проблеми](TROUBLESHOOTING.md) за решения на често срещани проблеми с инсталацията, настройката и работата с уроците. +> 🔧 **Нуждаете се от помощ?** Разгледайте нашето [Ръководство за отстраняване на проблеми](TROUBLESHOOTING.md) за решения на често срещани проблеми с инсталирането, настройката и стартирането на уроци. -**[Студенти](https://aka.ms/student-page)**, за да използвате тази учебна програма, форкнете целия репо в своя собствен GitHub акаунт и изпълнете упражненията сами или в група: +**[Студенти](https://aka.ms/student-page)**, за да използвате тази учебна програма, форкнете цялото хранилище в собствения си GitHub акаунт и изпълнете упражненията сами или в група: -- Започнете с предварителен тест преди лекцията. -- Прочетете лекцията и завършете дейностите, правейки пауза и размисъл при всяка проверка на знанията. -- Опитайте да създадете проектите като разберете уроците, вместо просто да изпълнявате кода с решение; този код е наличен в папките `/solution` във всеки урок, ориентиран към проект. -- Вземете теста след лекцията. +- Започнете с тест преди урока. +- Прочетете урока и изпълнете дейностите, спирайки се и разсъждавайки при всяка проверка на знанията. +- Опитайте се да създадете проектите чрез разбиране на уроците, а не просто чрез стартиране на кода за решения; този код обаче е наличен в папките `/solution` във всеки урок, ориентиран към проект. +- Направете тест след урока. - Изпълнете предизвикателството. -- Изпълнете заданието. -- След завършване на група уроци, посетете [Форум за обсъждания](https://github.com/microsoft/ML-For-Beginners/discussions) и „учете на глас“, като попълвате съответния PAT рубрика. PAT е Инструмент за оценка на прогреса, който е рубрика, която попълвате, за да напреднете в ученето. Можете също да реагирате на други PAT-ове, за да учим заедно. +- Извършете задачата. +- След като завършите група уроци, посетете [Дискусионния борд](https://github.com/microsoft/ML-For-Beginners/discussions) и "учете на глас", като попълните подходящата рубрика PAT. PAT е инструмент за оценка на напредъка, който попълвате, за да задълбочите ученето си. Можете също да реагирате на други PAT-ове, за да се учим заедно. -> За по-нататъшно обучение препоръчваме да следвате тези [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) модули и учебни пътеки. +> За допълнително обучение, препоръчваме да следвате тези [модули и учебни пътеки на Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Учители**, ние сме [включили някои предложения](for-teachers.md) как да използвате тази учебна програма. +**Учители**, включили сме [някои предложения](for-teachers.md) как да използвате тази учебна програма. --- ## Видео уроци -Някои от уроците са налични като кратки видеоклипове. Можете да ги намерите интегрирани в уроците или в [плейлиста „ML for Beginners“ в Microsoft Developer YouTube канала](https://aka.ms/ml-beginners-videos) като кликнете върху изображението по-долу. +Някои от уроците са налични като кратки видеа. Можете да ги намерите в текста на уроците или в [плейлиста ML за начинаещи в канала на Microsoft Developer в YouTube](https://aka.ms/ml-beginners-videos) чрез клик върху изображението по-долу. [![ML for beginners banner](../../translated_images/bg/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -101,79 +101,79 @@ **Gif от** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Кликнете на изображението по-горе за видео за проекта и хората, които го създадоха! +> 🎥 Кликнете върху изображението по-горе за видео за проекта и хората, които го създадоха! --- ## Педагогика -Избрахме две педагогически принципа при изграждането на тази учебна програма: да бъде практическа и **базирана на проекти** и да включва **чести тестове**. Освен това тази учебна програма има обща **тема**, която ѝ придава по-голяма свързаност. +Избрахме две педагогически принципа при създаването на тази учебна програма: гарантираме, че тя е практически ориентирана **проектно базирана**, и че включва **чести тестове**. Освен това тази програма има обща **тема**, която й придава свързаност. -Като гарантираме, че съдържанието е свързано с проекти, процесът става по-ангажиращ за студентите и запомнянето на концепциите се увеличава. Освен това, ниско рисков тест преди урок задава нагласата на студента към усвояване на темата, а втори тест след урока осигурява допълнително затвърждаване. Тази учебна програма е проектирана да бъде гъвкава и забавна и може да бъде премината изцяло или частично. Проектите започват малки и стават все по-сложни към края на 12-седмичния цикъл. Тази програма включва и допълнителна част за приложенията на ML в реалния свят, която може да се използва като допълнителен кредит или основа за дискусия. +Като осигуряваме, че съдържанието е свързано с проекти, процесът става по-ангажиращ за учениците и задържането на концепциите се увеличава. Освен това, ниско рисков тест преди урок задава цел на ученика към изучаването на темата, а втори тест след урок гарантира допълнително задържане. Тази учебна програма е проектирана да бъде гъвкава и забавна и може да се следва изцяло или частично. Проектите започват малки и стават все по-сложни към края на 12-седмичния цикъл. Тази програма включва и постскриптум за реални приложения на машинното обучение, който може да се използва като допълнителна точка или основа за дискусия. -> Намерете нашите [Правила за поведение](CODE_OF_CONDUCT.md), [Как да допринасяте](CONTRIBUTING.md), [Преводи](..), и [Ръководство за отстраняване на проблеми](TROUBLESHOOTING.md). Очакваме вашите конструктивни отзиви! +> Намерете нашите насоки [Правила за поведение](CODE_OF_CONDUCT.md), [Принос](CONTRIBUTING.md), [Преводи](..), и [Отстраняване на проблеми](TROUBLESHOOTING.md). Очакваме вашите конструктивни отзиви! ## Всеки урок включва -- по желание скичаноте +- по желание скичнот - по желание допълнително видео -- видео урок (само при някои уроци) -- [предварителен тест преди лекцията](https://ff-quizzes.netlify.app/en/ml/) +- видео увод (само при някои уроци) +- [тест преди лекцията](https://ff-quizzes.netlify.app/en/ml/) - писмен урок -- за уроци, базирани на проекти, стъпка по стъпка ръководство за изграждане на проекта +- за проектно-базирани уроци, стъпка по стъпка инструкции за създаване на проекта - проверки на знанията - предизвикателство - допълнително четиво -- задание +- задача - [тест след лекцията](https://ff-quizzes.netlify.app/en/ml/) - -> **Забележка за езиците**: Тези уроци са основно написани на Python, но много от тях са достъпни и на R. За да завършите урок на R, отидете в папката `/solution` и потърсете уроците по R. Те имат разширение .rmd, което представлява **R Markdown** файл, който може просто да се определи като вплитане на „кодови късове“ (на R или други езици) и „YAML заглавие“ (което указва как да се форматира изхода, например PDF) в „Markdown документ“. Така той служи като примерна рамка за създаване на съдържание при наука за данни, тъй като ви позволява да комбинирате кода си, неговия изход и своите мисли, като ги записвате в Markdown. Освен това, R Markdown документите могат да се преобразуват в изходни формати като PDF, HTML или Word. -> **Забележка за викторините**: Всички викторини са в [папката Quiz App](../../quiz-app), общо 52 викторини с по три въпроса всяка. Те са свързани от уроците, но приложението за викторини може да се пуска локално; следвайте инструкциите в папката `quiz-app`, за да хоствате локално или да публикувате в Azure. - -| Номер на урок | Тема | Групиране на уроци | Учебни цели | Свързан урок | Автор | -| :-----------: | :------------------------------------------------------------: | :-----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 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 and Amy | -| 03 | Справедливост и машинно обучение | [Въведение](1-Introduction/README.md) | Какви са важните философски въпроси за справедливост, които студентите трябва да разглеждат при изграждане и прилагане на модели? | [Урок](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Техники за машинно обучение | [Въведение](1-Introduction/README.md) | Какви техники използват изследователите за изграждане на ML модели? | [Урок](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Въведение в регресията | [Регресия](2-Regression/README.md) | Започнете с Python и Scikit-learn за модели за регресия | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Цени на тикви в Северна Америка 🎃 | [Регресия](2-Regression/README.md) | Визуализирайте и почистете данни в подготовка за ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Цени на тикви в Северна Америка 🎃 | [Регресия](2-Regression/README.md) | Създайте линейни и полиномни регресионни модели | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | Цени на тикви в Северна Америка 🎃 | [Регресия](2-Regression/README.md) | Създайте логистичен регресионен модел | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Уеб приложение 🔌 | [Уеб приложение](3-Web-App/README.md) | Създайте уеб приложение, за да използвате обучен модел | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Въведение в класификация | [Класификация](4-Classification/README.md) | Почистете, подгответе и визуализирайте данните си; въведение в класификация | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | Вкусни азиатски и индийски кухни 🍜 | [Класификация](4-Classification/README.md) | Въведение в класификаторите | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | Вкусни азиатски и индийски кухни 🍜 | [Класификация](4-Classification/README.md) | Още класификатори | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | Вкусни азиатски и индийски кухни 🍜 | [Класификация](4-Classification/README.md) | Създайте препоръчително уеб приложение с използване на вашия модел | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Въведение в клъстеризация | [Клъстеризация](5-Clustering/README.md) | Почистете, подгответе и визуализирайте данните си; Въведение в клъстеризация | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Изследване на музикалните вкусове в Нигерия 🎧 | [Клъстеризация](5-Clustering/README.md) | Изследвайте метода за клъстеризация K-средни | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Въведение в обработката на естествен език ☕️ | [Обработка на естествен език](6-NLP/README.md) | Научете основите на NLP, като създадете прост бот | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Чести задачи в NLP ☕️ | [Обработка на естествен език](6-NLP/README.md) | Удължете познанията си за NLP чрез разбиране на чести задачи при работа с езикови структури | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Превод и анализ на настроения ♥️ | [Обработка на естествен език](6-NLP/README.md) | Превод и анализ на настроения с Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Романтични хотели в Европа ♥️ | [Обработка на естествен език](6-NLP/README.md) | Анализ на настроения с ревюта на хотели 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Романтични хотели в Европа ♥️ | [Обработка на естествен език](6-NLP/README.md) | Анализ на настроения с ревюта на хотели 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Въведение във времевите редове | [Времеви редове](7-TimeSeries/README.md) | Въведение във времеви редове за прогнозиране | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Световна консумация на електроенергия ⚡️ - прогнозиране с ARIMA | [Времеви редове](7-TimeSeries/README.md) | Прогнозиране на времеви редове с ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Световна консумация на електроенергия ⚡️ - прогнозиране със SVR | [Времеви редове](7-TimeSeries/README.md) | Прогнозиране на времеви редове със Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Въведение в обучението с подсилване | [Обучение с подкрепление](8-Reinforcement/README.md) | Въведение в обучение с подсилване чрез Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Помогнете на Питър да избегне вълка! 🐺 | [Обучение с подкрепление](8-Reinforcement/README.md) | Обучение с подкрепление Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Постскрипт | Реални сценарии и приложения на ML | [ML в дивата природа](9-Real-World/README.md) | Интересни и поучителни реални приложения на класическо ML | [Урок](9-Real-World/1-Applications/README.md) | Екип | -| Постскрипт | Отстраняване на грешки в ML чрез RAI табло | [ML в дивата природа](9-Real-World/README.md) | Отстраняване на грешки в модели на машинното обучение чрез компоненти за таблото Responsible AI | [Урок](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +> **Бележка относно езиците**: Тези уроци са основно написани на Python, но много от тях са налични и на R. За да завършите урок на R, отидете в папката `/solution` и потърсете уроци на R. Те включват разширение .rmd, което представлява **R Markdown** файл, който може просто да се дефинира като вграждане на `кодови сегменти` (на R или други езици) и `YAML заглавка` (която указва как да се форматират изходните данни като PDF) в `Markdown документ`. По този начин той служи като отлична рамка за създаване на материали за наука за данни, тъй като позволява да комбинирате кода си, неговия изход и вашите размисли, като ги записвате в Markdown. Освен това R Markdown документите могат да се рендерират в изходни формати като PDF, HTML или Word. + +> **Бележка относно тестовете**: Всички тестове са в [Папката на Quiz App](../../quiz-app), всичко 52 теста с по три въпроса всеки. Те са свързани от уроците, но quiz приложението може да се стартира локално; следвайте инструкциите в папката `quiz-app`, за да го хоствате локално или да го разположите в Azure. + +| Номер на урок | Тема | Групиране на урока | Цели на обучението | Свързан урок | Автор | +| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | Въведение в машинното обучение | [Въведение](1-Introduction/README.md) | Научете основните понятия зад машинното обучение | [Урок](1-Introduction/1-intro-to-ML/README.md) | Мухамад | +| 02 | История на машинното обучение | [Въведение](1-Introduction/README.md) | Научете историята зад тази област | [Урок](1-Introduction/2-history-of-ML/README.md) | Джен и Ейми | +| 03 | Справедливост и машинно обучение | [Въведение](1-Introduction/README.md) | Какви са важните философски въпроси около справедливостта, които студентите трябва да имат предвид при създаване и прилагане на ML модели? | [Урок](1-Introduction/3-fairness/README.md) | Томоми | +| 04 | Техники за машинно обучение | [Въведение](1-Introduction/README.md) | Какви техники използват изследователите на ML за създаване на ML модели? | [Урок](1-Introduction/4-techniques-of-ML/README.md) | Крис и Джен | +| 05 | Въведение в регресията | [Регресия](2-Regression/README.md) | Започнете с Python и Scikit-learn за регресионни модели | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Джен • Ерик Уанджау | +| 06 | Цени на тиквите в Северна Америка 🎃 | [Регресия](2-Regression/README.md) | Визуализирайте и почистете данни в подготовка за ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Джен • Ерик Уанджау | +| 07 | Цени на тиквите в Северна Америка 🎃 | [Регресия](2-Regression/README.md) | Създайте линейни и полиномиални регресионни модели | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Джен и Дмитрий • Ерик Уанджау | +| 08 | Цени на тиквите в Северна Америка 🎃 | [Регресия](2-Regression/README.md) | Създайте логистичен регресионен модел | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Джен • Ерик Уанджау | +| 09 | Уеб приложение 🔌 | [Уеб приложение](3-Web-App/README.md) | Създайте уеб приложение, за да използвате обучената си модел | [Python](3-Web-App/1-Web-App/README.md) | Джен | +| 10 | Въведение в класификацията | [Класификация](4-Classification/README.md) | Почистете, подгответе и визуализирайте данните си; въведение в класификация | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Джен и Каси • Ерик Уанджау | +| 11 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](4-Classification/README.md) | Въведение в класификатори | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Джен и Каси • Ерик Уанджау | +| 12 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](4-Classification/README.md) | Още класификатори | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Джен и Каси • Ерик Уанджау | +| 13 | Вкусна азиатска и индийска кухня 🍜 | [Класификация](4-Classification/README.md) | Създайте препоръчващо уеб приложение, използвайки вашия модел | [Python](4-Classification/4-Applied/README.md) | Джен | +| 14 | Въведение в клъстерирането | [Клъстериране](5-Clustering/README.md) | Почистете, подгответе и визуализирайте данните си; въведение в клъстериране | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Джен • Ерик Уанджау | +| 15 | Изследване на музикалните вкусове в Нигерия 🎧 | [Клъстериране](5-Clustering/README.md) | Изследвайте метода на K-средни | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Джен • Ерик Уанджау | +| 16 | Въведение в обработката на естествен език ☕️ | [Обработка на естествен език](6-NLP/README.md) | Научете основите на NLP чрез създаване на прост бот | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Стивън | +| 17 | Често срещани задачи в NLP ☕️ | [Обработка на естествен език](6-NLP/README.md) | Задълбочете знанията си за NLP, като разберете често срещаните задачи при работа с езикови структури | [Python](6-NLP/2-Tasks/README.md) | Стивън | +| 18 | Превод и анализ на настроения ♥️ | [Обработка на естествен език](6-NLP/README.md) | Превод и анализ на настроения с Джейн Остин | [Python](6-NLP/3-Translation-Sentiment/README.md) | Стивън | +| 19 | Романтични хотели в Европа ♥️ | [Обработка на естествен език](6-NLP/README.md) | Анализ на настроения с рецензии за хотели 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Стивън | +| 20 | Романтични хотели в Европа ♥️ | [Обработка на естествен език](6-NLP/README.md) | Анализ на настроения с рецензии за хотели 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Стивън | +| 21 | Въведение в прогнозирането на времеви редове | [Времеви редове](7-TimeSeries/README.md) | Въведение в прогнозиране на времеви редове | [Python](7-TimeSeries/1-Introduction/README.md) | Франческа | +| 22 | ⚡️ Световна консумация на електроенергия ⚡️ - прогнозиране с ARIMA | [Времеви редове](7-TimeSeries/README.md) | Прогнозиране на времеви редове с ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Франческа | +| 23 | ⚡️ Световна консумация на електроенергия ⚡️ - прогнозиране с SVR | [Времеви редове](7-TimeSeries/README.md) | Прогнозиране на времеви редове с регресор с опорни вектори | [Python](7-TimeSeries/3-SVR/README.md) | Анирбан | +| 24 | Въведение в подсилващото обучение | [Подсилващо обучение](8-Reinforcement/README.md) | Въведение в подсилващото обучение с Q-обучение | [Python](8-Reinforcement/1-QLearning/README.md) | Дмитрий | +| 25 | Помогнете на Питър да избегне вълка! 🐺 | [Подсилващо обучение](8-Reinforcement/README.md) | Подсилващо обучение Gym | [Python](8-Reinforcement/2-Gym/README.md) | Дмитрий | +| Поука | Приложения и сценарии на ML в реалния свят | [ML в дивата природа](9-Real-World/README.md) | Интересни и разкриващи приложения на класическо ML в реални ситуации | [Урок](9-Real-World/1-Applications/README.md) | Екип | +| Поука | Отстраняване на грешки в ML с помощта на RAI таблото | [ML в дивата природа](9-Real-World/README.md) | Отстраняване на грешки в машинното обучение с компоненти на таблото за Отговорен AI | [Урок](9-Real-World/2-Debugging-ML-Models/README.md) | Рут Якубу | > [намерете всички допълнителни ресурси за този курс в нашата колекция Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Офлайн достъп -Можете да използвате тази документация офлайн с помощта на [Docsify](https://docsify.js.org/#/). Форкнете това хранилище, [инсталирайте Docsify](https://docsify.js.org/#/quickstart) на вашия локален компютър, след което в коренната папка на това хранилище напишете `docsify serve`. Уебсайтът ще се стартира на порт 3000 на localhost: `localhost:3000`. +Можете да стартирате тази документация офлайн, като използвате [Docsify](https://docsify.js.org/#/). Форкнете това хранилище, [инсталирайте Docsify](https://docsify.js.org/#/quickstart) на локалната си машина и след това в главната папка на това хранилище напишете `docsify serve`. Уебсайтът ще бъде обслужван на порт 3000 на localhost: `localhost:3000`. ## PDF файлове -Намерете pdf версия на учебната програма с връзки [тук](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Намерете PDF на учебната програма с линкове [тук](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Други курсове -Нашият екип създава и други курсове! Разгледайте: +Нашият екип създава и други курсове! Вижте: ### LangChain @@ -186,53 +186,53 @@ [![AZD за начинаещи](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI за начинаещи](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP за начинаещи](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI агенти за начинаещи](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Агенти за начинаещи](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Серия Генеративен AI -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Серия за генеративен ИИ +[![Генеративен ИИ за начинаещи](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Генеративен ИИ (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Генеративен ИИ (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Генеративен ИИ (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Основно обучение -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Машинно обучение за начинаещи](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Наука за данни за начинаещи](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![ИИ за начинаещи](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Киберсигурност за начинаещи](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Уеб разработка за начинаещи](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![Интернет на нещата за начинаещи](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR разработка за начинаещи](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Серия Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot за двойно програмиране с ИИ](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot за C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Приключение](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Получаване на помощ -Ако се затрудните или имате въпроси относно създаването на AI приложения. Присъединете се към други учащи се и опитни разработчици в дискусиите за MCP. Това е подкрепяща общност, където въпросите са добре дошли и знанията се споделят свободно. +Ако заседнете или имате въпроси относно създаването на приложения с ИИ. Присъединете се към други учащи се и опитни разработчици в дискусии за MCP. Това е подкрепяща общност, където въпросите са добре дошли и знанието се споделя свободно. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ако имате обратна връзка за продукта или грешки по време на разработка, посетете: +Ако имате обратна връзка за продукт или грешки при създаването посетете: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Допълнителни съвети за учене +## Допълнителни съвети за обучение -- Преглеждайте тетрадките след всеки урок за по-добро разбиране. -- Практикувайте самостоятелно прилагане на алгоритми. -- Изследвайте реални набори от данни с използване на научените концепции. +- Преглеждайте тетрадки след всеки урок за по-добро разбиране. +- Практикувайте прилагането на алгоритми самостоятелно. +- Изследвайте реални набори от данни, използвайки научените концепции. --- **Отказ от отговорност**: -Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за недоразумения или неправилни тълкувания, произтичащи от използването на този превод. +Този документ е преведен с помощта на AI преводаческа услуга [Co-op Translator](https://github.com/Azure/co-op-translator). Въпреки че се стремим към точност, имайте предвид, че автоматизираните преводи могат да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Ние не носим отговорност за каквито и да било недоразумения или погрешни тълкувания, произтичащи от използването на този превод. \ No newline at end of file diff --git a/translations/bn/.co-op-translator.json b/translations/bn/.co-op-translator.json index 6f046df3b..446c9ce23 100644 --- a/translations/bn/.co-op-translator.json +++ b/translations/bn/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "bn" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:06:37+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:12:37+00:00", "source_file": "README.md", "language_code": "bn" }, diff --git a/translations/bn/README.md b/translations/bn/README.md index 3c70d87b8..d3830a87a 100644 --- a/translations/bn/README.md +++ b/translations/bn/README.md @@ -10,14 +10,14 @@ ### 🌐 বহু-ভাষা সমর্থন -#### GitHub Action এর মাধ্যমে সমর্থিত (স্বয়ংক্রিয় ও সর্বদা হালনাগাদ) +#### GitHub Action এর মাধ্যমে সমর্থিত (স্বয়ংক্রিয় এবং সর্বদা আপ-টু-ডেট) -[Arabic](../ar/README.md) | [Bengali](./README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](./README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **লোকালিতে ক্লোন করতে চান?** +> **স্থানীয়ভাবে ক্লোন করতে পছন্দ করেন?** > -> এই রিপোজিটরিতে ৫০+ ভাষার অনুবাদ রয়েছে যা ডাউনলোড আকার অনেক বাড়িয়ে দেয়। অনুবাদ ছাড়া ক্লোন করতে স্পারস চেকআউট ব্যবহার করুন: +> এই রেপোজিটরিতে ৫০+ ভাষার অনুবাদ রয়েছে যা ডাউনলোড সাইজ উল্লেখযোগ্যভাবে বৃদ্ধি করে। অনুবাদ ছাড়া ক্লোন করতে, স্পার্স চেকআউট ব্যবহার করুন: > > **Bash / macOS / Linux:** > ```bash @@ -33,146 +33,145 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> এটি আপনাকে দ্রুত ডাউনলোড সহ কোর্স সম্পন্ন করার জন্য প্রয়োজনীয় সবকিছু প্রদান করবে। +> এটি আপনাকে একটি অনেক দ্রুত ডাউনলোড সহ পুরো কোর্স সম্পন্ন করার জন্য প্রয়োজনীয় সমস্ত কিছু দেয়। #### আমাদের কমিউনিটিতে যোগদান করুন [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -আমাদের কাছে Discord এ একটি AI এর সাথে শেখার সিরিজ চলছে, বিস্তারিত জানুন এবং আমাদের সাথে যোগ দিন [Learn with AI Series](https://aka.ms/learnwithai/discord) ১৮ থেকে ৩০ সেপ্টেম্বর, ২০২৫। সেখানে আপনি Data Science এর জন্য GitHub Copilot ব্যবহার করার টিপস এবং ট্রিক্স পেয়ে যাবেন। +আমাদের একটি Discord এ আই-এর সঙ্গে শেখার সিরিজ চলছে, আরও জানুন এবং আমাদের সাথে যোগ দিন [Learn with AI Series](https://aka.ms/learnwithai/discord) ১৮ থেকে ৩০ সেপ্টেম্বর, ২০২৫। এখানে আপনি GitHub Copilot ডেটা সায়েন্সে ব্যবহারের টিপস ও ট্রিক্স পাবেন। ![Learn with AI series](../../translated_images/bn/3.9b58fd8d6c373c20.webp) -# শিক্ষানবিশদের জন্য মেশিন লার্নিং - একটি পাঠ্যক্রম +# শুরু করার জন্য মেশিন লার্নিং - একটি পাঠ্যক্রম -> 🌍 বিশ্ব সংস্কৃতির মাধ্যমে মেশিন লার্নিং অন্বেষণ করতে বিশ্ব ভ্রমণ করুন 🌍 +> 🌍 বিশ্ব সংস্কৃতির মাধ্যমে মেশিন লার্নিং অন্বেষণ করার সময় পৃথিবী ভ্রমণ করুন 🌍 -Microsoft এর Cloud Advocates একটি ১২-সপ্তাহের, ২৬-টি পাঠের একটি পূর্ণাঙ্গ পাঠ্যক্রম অফার করতে পেরে আনন্দিত যা **মেশিন লার্নিং** সম্পর্কে। এই পাঠ্যক্রমে, আপনি যাকে কখনও কখনও **ক্লাসিক মেশিন লার্নিং** বলা হয় তা শিখবেন, প্রধানত Scikit-learn লাইব্রেরি ব্যবহার করে এবং ডিপ লার্নিং এড়িয়ে চলবেন, যা আমাদের [AI for Beginners পাঠ্যক্রমে](https://aka.ms/ai4beginners) অন্তর্ভুক্ত। এই পাঠগুলি আমাদের ['Data Science for Beginners' পাঠ্যক্রম](https://aka.ms/ds4beginners) এর সাথে মিলিয়ে নিতে পারেন। +Microsoft এর ক্লাউড অ্যাডভোকেটরা একটি ১২-সপ্তাহ, ২৬-লেসনের সম্পূর্ণ **মেশিন লার্নিং** বিষয়ক পাঠ্যক্রম প্রদান করতে পেরে আনন্দিত। এই পাঠ্যক্রমে আপনি যা কখনো কখনো **ক্লাসিক মেশিন লার্নিং** নামে অভিহিত হয় তা শেখাবেন, যেখানে প্রধানত Scikit-learn লাইব্রেরি ব্যবহৃত হবে এবং ডিপ লার্নিং এড়ানো হবে, যা আমাদের [AI for Beginners' curriculum](https://aka.ms/ai4beginners) এ আচ্ছাদিত। এই পাঠ্যক্রমকে আমাদের ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) এর সঙ্গে মিলিয়ে নিতে পারেন। -আমাদের সাথে বিশ্বজুড়ে যাত্রা করুন কারণ আমরা ক্লাসিক কৌশলগুলি বিশ্বের বিভিন্ন এলাকার ডাটায় প্রয়োগ করি। প্রতিটি পাঠে আছে পূর্ব ও পরবর্তী কুইজ, পাঠ সম্পন্ন করার জন্য লিখিত নির্দেশনা, একটি সমাধান, একটি নিয়োগ এবং আরও অনেক কিছু। আমাদের প্রকল্পভিত্তিক পদ্ধতি আপনাকে শেখার সময় তৈরি করার সুযোগ দেয়, যা নতুন দক্ষতা শেখানোর প্রমাণিত পথ। +বিশ্বের বিভিন্ন স্থান থেকে সংগৃহীত ডেটার উপর এই ক্লাসিক পদ্ধতিগুলো প্রয়োগ করার জন্য আমাদের সাথে বিশ্ব ভ্রমণ করুন। প্রতিটি পাঠে থাকবে পূর্ব এবং পরবর্তী কুইজ, পাঠ সম্পাদনের জন্য লিখিত নির্দেশনা, সমাধান, অ্যাসাইনমেন্ট এবং আরও অনেক কিছু। আমাদের প্রকল্প-ভিত্তিক পাঠদান পদ্ধতি আপনাকে শেখার সময় তৈরি করার মাধ্যমে শেখায়, যা নতুন দক্ষতা ধারণ করার একটি প্রমাণিত উপায়। -**✍️ আমাদের লেখকদের আন্তরিক ধন্যবাদ**: Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ও Amy Boyd +**✍️ আমাদের লেখকদের প্রতি আন্তরিক ধন্যবাদ** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu এবং Amy Boyd -**🎨 আমাদের চিত্রকরদের ধন্যবাদ**: Tomomi Imura, Dasani Madipalli, এবং Jen Looper +**🎨 আমাদের চিত্রশিল্পীদের প্রতি ধন্যবাদ** 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 +**🙏 বিশেষ ধন্যবাদ 🙏 Microsoft Student Ambassador লেখক, পর্যালোচক, এবং বিষয়বস্তু প্রদানকারীদের**, বিশেষত Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, এবং Snigdha Agarwal **🤩 অতিরিক্ত কৃতজ্ঞতা Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, এবং Vidushi Gupta কে আমাদের R পাঠের জন্য!** -# শুরু করাঃ +# শুরু করা -এই ধাপগুলি অনুসরণ করুন: -1. **রিপোজিটরি ফর্ক করুন**: পৃষ্ঠার উপরের ডানদিকে "Fork" বোতামে ক্লিক করুন। -2. **রিপোজিটরি ক্লোন করুন**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +এই ধাপগুলো অনুসরণ করুন: +1. **রেপোজিটরি ফর্ক করুন**: এই পাতার উপরের-ডানদিকে "Fork" বোতামে ক্লিক করুন। +2. **রেপোজিটরি ক্লোন করুন**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [আমাদের Microsoft Learn সংগ্রহে এই কোর্সের সমস্ত অতিরিক্ত সম্পদগুলি খুঁজুন](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [এই কোর্সের জন্য সমস্ত অতিরিক্ত সম্পদ আমাদের Microsoft Learn সংগ্রহে পাওয়া যাবে](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **সহায়তা দরকার?** সাধারণ ইনস্টলেশন, সেটআপ এবং পাঠ চালানোর সমস্যার জন্য আমাদের [Troubleshooting Guide](TROUBLESHOOTING.md) দেখুন। +> 🔧 **সাহায্য দরকার?** আমাদের [Troubleshooting Guide](TROUBLESHOOTING.md) দেখুন ইনস্টলেশন, সেটআপ এবং লেসন চালানোর সাধারণ সমস্যা সমাধানের জন্য। -**[শিক্ষার্থীবৃন্দ](https://aka.ms/student-page)**, এই পাঠ্যক্রম ব্যবহার করতে আপনার নিজস্ব GitHub একাউন্টে সম্পূর্ণ রিপোজিটরি ফর্ক করুন এবং একক অথবা গ্রুপে অনুশীলনগুলি সম্পন্ন করুন: +**[শিক্ষার্থীরা](https://aka.ms/student-page)**, এই পাঠ্যক্রম ব্যবহারের জন্য, সম্পূর্ণ রেপো আপনার নিজের GitHub একাউন্টে ফর্ক করুন এবং ব্যক্তিগতভাবে বা গ্রুপের সাথে অনুশীলন সম্পন্ন করুন: -- পূর্ব-লেকচার কুইজ দিয়ে শুরু করুন। -- লেকচার পড়ুন এবং কার্যক্রমগুলো সম্পন্ন করুন, প্রতিটি নলেজ চেক-এ থামুন এবং চিন্তা করুন। -- কোড চালানোর পরিবর্তে পাঠগুলো বুঝে প্রকল্প তৈরি করার চেষ্টা করুন; অবশ্যই কোডটি প্রতিটি প্রকল্পভিত্তিক পাঠের `/solution` ফোল্ডারে পাওয়া যাবে। -- পরবর্তী লেকচার কুইজ নিন। +- একটি পূর্ব লেকচার কুইজ দিয়ে শুরু করুন। +- লেকচার পড়ুন এবং কার্যক্রম সম্পন্ন করুন, প্রতিটি জ্ঞানের পরীক্ষা থামুন এবং মাফ বুঝুন। +- প্রকল্প তৈরি করার চেষ্টা করুন পাঠ্যগুলি বুঝে, সমাধান কোড রান না করেও; তবে সেই কোড প্রতিটি প্রকল্প ভিত্তিক লেসনের `/solution` ফোল্ডারে উপলব্ধ। +- পরবর্তীতে লেকচার কুইজ দিন। - চ্যালেঞ্জ সম্পন্ন করুন। -- নিয়োগ সম্পন্ন করুন। -- একটি লেসন গ্রুপ সম্পন্ন করার পর, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) এ যান এবং উপযুক্ত PAT রুব্রিক পূরণ করে "জোরে শেখার" অংশ নিন। 'PAT' হলো একটি প্রগ্রেস অ্যাসেসমেন্ট টুল যা নিজের শেখাকে আরও বাড়াতে ব্যবহৃত হয়। আপনি অন্যদের PAT-এ প্রতিক্রিয়া জানাতেও পারেন যাতে আমরা একসাথে শিখতে পারি। +- অ্যাসাইনমেন্ট সম্পন্ন করুন। +- একটি লেকশন গ্রুপ শেষ করার পর, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) এ যান এবং প্রাসঙ্গিক PAT রুব্রিক পূরণ করে "জোরে শেখা" করুন। 'PAT' মানে হলো প্রগ্রেস অ্যাসেসমেন্ট টুল যা আপনি পূরণ করবেন যাতে আপনার শেখা আরও বৃদ্ধি পায়। আপনি অন্য PAT গুলোকেও প্রতিক্রিয়া জানাতে পারেন যাতে আমরা একসাথে শিখতে পারি। -> আরও অধ্যয়নের জন্য, আমরা এই [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) মডিউল ও শেখার পথ অনুসরণ করার পরামর্শ দেই। +> আরও পড়াশোনার জন্য, আমরা এই [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) মডিউল এবং শেখার পথ অনুসরণ করার পরামর্শ দিই। -**শিক্ষকগণ**, আমরা [এই পাঠ্যক্রম ব্যবহারের জন্য কিছু পরামর্শ](for-teachers.md) অন্তর্ভুক্ত করেছি। +**শিক্ষকগণ**, এই পাঠ্যক্রম ব্যবহারের জন্য আমরা কিছু [সুজোগ দিয়েছি](for-teachers.md)। --- -## ভিডিও ওয়াকথ্রু +## ভিডিও ওয়াকথ্রুগুলো -কিছু পাঠ ছোট ফর্ম ভিডিও হিসেবে উপলব্ধ। আপনি এগুলো পাঠের ভিতরই দেখতে পারেন বা [Microsoft Developer এর YouTube চ্যানেলের ML for Beginners প্লেলিস্টে](https://aka.ms/ml-beginners-videos) নিচের ছবিতে ক্লিক করে দেখতে পারেন। +কিছু পাঠ সংক্ষিপ্ত ভিডিও আকারে উপলব্ধ। আপনি এগুলো সব লেসনে ইন-লাইন দেখতে পারবেন, অথবা [Microsoft Developer YouTube চ্যানেলের ML for Beginners প্লেলিস্ট](https://aka.ms/ml-beginners-videos) থেকে নিচের ছবিতে ক্লিক করে দেখতে পারেন। [![ML for beginners banner](../../translated_images/bn/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## দলকে চিনুন +## দলের সদস্যদের সাথে পরিচিত হন [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif এর নির্মাতা** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**গিফ করেছেন** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 প্রকল্প এবং তার নির্মাতাদের সম্পর্কে ভিডিও দেখতে উপরের ছবিতে ক্লিক করুন! +> 🎥 প্রকল্প এবং এটি তৈরি করা ব্যক্তিদের সম্পর্কে একটি ভিডিও দেখার জন্য উপরের ছবিতে ক্লিক করুন! --- ## শিক্ষাদান পদ্ধতি -এই পাঠ্যক্রম তৈরির সময় আমরা দুটি শিক্ষাদান নীতি বেছে নিয়েছি: এটা হবে হাতেকলমে **প্রকল্পভিত্তিক** এবং এতে থাকবে **ঘন ঘন কুইজ**। এছাড়া, এই পাঠ্যক্রমের একটি সাধারণ **থিম** রয়েছে যেটি এটি একত্রিকরণ করে। +আমরা এই পাঠ্যক্রম তৈরির সময় দুটো শিক্ষামূলক নীতিমালা বেছে নিয়েছি: এটি একদিকে **প্রকল্প-ভিত্তিক** হওয়া এবং অন্যদিকে **ঘন ঘন কুইজ** অন্তর্ভুক্ত করা। এছাড়া এই পাঠ্যক্রমে একটি সাধারণ **বিষয়বস্তু** রয়েছে যা এটি সমন্বিত করে ধরে রাখে। -কন্টেন্টকে প্রকল্পের সঙ্গে মিলিয়ে দেওয়ার ফলে ছাত্রদের জন্য শেখার প্রক্রিয়া আকর্ষণীয় হয় এবং ধারণাসমূহ আরও ভালোভাবে মনে থাকে। সঙ্গে, ক্লাস শুরুর আগে একটি কম-পূঁজি (low-stakes) কুইজ ছাত্রের লক্ষ্য শেখার দিকে মনোযোগ দেয়, আর ক্লাস শেষের পরে দ্বিতীয় কুইজ বুঝে নেওয়া আরও প্রগাঢ় করে। এই পাঠ্যক্রম নমনীয় ও মজার হিসেবে ডিজাইন করা হয়েছে এবং পুরোপুরি বা আংশিক পাঠ নেওয়া যেতে পারে। প্রকল্পগুলো ছোট থেকে শুরু করে ১২-সপ্তাহের শেষে ক্রমশ জটিল হয়ে ওঠে। এই পাঠ্যক্রমে একটি পরিশিষ্ট অংশ রয়েছে যা ML এর বাস্তব বিশ্বে প্রয়োগের উপর, যেটা অতিরিক্ত ক্রেডিট হিসেবে বা আলোচনা সূত্র হিসেবে ব্যবহার করা যেতে পারে। +কনটেন্ট প্রকল্পের সাথে মিল রেখে শিক্ষার্থীদের জন্য মাধ্যমটি আরও আকর্ষণীয় হয় এবং ধারণাগুলোর ধারণ ক্ষমতা বৃদ্ধি পায়। এছাড়া ক্লাস শুরু করার আগে একটি কম ঝুঁকিপূর্ণ কুইজ শিক্ষার্থীর মনোযোগ শেখার দিকে সামঞ্জস্য করে এবং ক্লাস শেষে আরেকটি কুইজ ধরে রাখাকে নিশ্চিত করে। এই পাঠ্যক্রমটি নমনীয় এবং মজার জন্য ডিজাইন করা হয়েছে এবং সম্পূর্ণ বা আংশিকভাবে নেওয়া যেতে পারে। প্রকল্পগুলো ছোট থেকে শুরু করে ১২-সপ্তাহের শেষে ক্রমান্বয়ে জটিল হয়ে যায়। এই পাঠ্যক্রমে মেশিন লার্নিং এর বাস্তব জীবনের অ্যাপ্লিকেশনগুলি সম্পর্কে একটি পরিশিষ্টও রয়েছে, যা অতিরিক্ত ক্রেডিট হিসেবে বা আলোচনা ভিত্তি হিসেবে ব্যবহার করা যেতে পারে। -> আমাদের [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), এবং [Troubleshooting](TROUBLESHOOTING.md) নির্দেশিকা দেখুন। আমরা আপনার গঠনমূলক প্রতিক্রিয়াকে স্বাগত জানাই! +> আমাদের [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), এবং [Troubleshooting](TROUBLESHOOTING.md) নির্দেশিকা অনুসন্ধান করুন। আমরা আপনার গঠনমূলক মতামতকে স্বাগত জানাই! ## প্রতিটি পাঠে অন্তর্ভুক্ত - ঐচ্ছিক স্কেচনোট - ঐচ্ছিক অতিরিক্ত ভিডিও -- ভিডিও ওয়াকথ্রু (কয়েকটি পাঠের জন্য) +- ভিডিও ওয়াকথ্রু (কিছু পাঠেই) - [পূর্ব-লেকচার ওয়ার্মআপ কুইজ](https://ff-quizzes.netlify.app/en/ml/) - লিখিত পাঠ -- প্রকল্পভিত্তিক পাঠের জন্য ধাপে ধাপে প্রকল্প নির্মাণের নির্দেশিকা -- জ্ঞান পরীক্ষা +- প্রকল্প-ভিত্তিক পাঠের জন্য, প্রকল্প তৈরির ধাপে ধাপে গাইড +- জ্ঞান যাচাই - একটি চ্যালেঞ্জ -- অতিরিক্ত পাঠ -- নিয়োগ +- অতিরিক্ত পঠন +- অ্যাসাইনমেন্ট - [পরবর্তী লেকচার কুইজ](https://ff-quizzes.netlify.app/en/ml/) - -> **ভাষা সম্পর্কে একটি টীকা**: এই পাঠগুলি প্রধানত Python এ লেখা হয়েছে, তবে অনেকগুলি R তেও উপলব্ধ। একটি R পাঠ সম্পন্ন করার জন্য `/solution` ফোল্ডারে যান এবং R পাঠ খুঁজুন। এগুলোতে .rmd এক্সটেনশন থাকে যা একটি **R Markdown** ফাইল নির্দেশ করে যা `কোড চাঙ্ক` (R বা অন্যান্য ভাষার) এবং একটি `YAML হেডার` (যা আউটপুট কিভাবে ফরম্যাট করতে হয় নির্দেশ দেয় যেমন PDF) একটি Markdown ডকুমেন্টে এম্বেড করার ফ্রেমওয়ার্ক। তাই এটি ডেটা সায়েন্সের জন্য একটি আদর্শ লেখনী কাঠামো হিসেবে কাজ করে যেখানে আপনি আপনার কোড, তার আউটপুট এবং চিন্তা সবকিছু Markdown এ লিখে সংযোজন করতে পারেন। আরো কিছুর জন্য, R Markdown ডকুমেন্টগুলি PDF, HTML বা Word মত আউটপুট ফরম্যাটে রেন্ডার করা যায়। -> **কুইজ সম্পর্কে একটি নোট**: সকল কুইজ রয়েছে [Quiz App folder](../../quiz-app)-এ, যেখানে মোট ৫২টি কুইজ রয়েছে যার প্রতিটিতে তিনটি প্রশ্ন আছে। এগুলো পাঠের মধ্যে লিঙ্ক করা রয়েছে কিন্তু কুইজ অ্যাপটি স্থানীয়ভাবে চালানো যেতে পারে; লোকালি হোস্ট বা Azure-এ ডিপ্লয় করার জন্য `quiz-app` ফোল্ডারের নির্দেশাবলী অনুসরণ করুন। - -| পাঠের নম্বর | বিষয় | পাঠের গ্রুপিং | শেখার উদ্দেশ্য | লিঙ্ককৃত পাঠ | প্রণেতা | -| :---------: | :----------------------------------------------------------: | :------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| ০১ | মেশিন লার্নিংয়ের পরিচিতি | [পরিচিতি](1-Introduction/README.md) | মেশিন লার্নিংয়ের মৌলিক ধারণাগুলো শিখুন | [পাঠ](1-Introduction/1-intro-to-ML/README.md) | মুহাম্মদ | -| ০২ | মেশিন লার্নিংয়ের ইতিহাস | [পরিচিতি](1-Introduction/README.md) | এই ক্ষেত্রের পেছনের ইতিহাস শিখুন | [পাঠ](1-Introduction/2-history-of-ML/README.md) | জেন এবং অ্যামি | -| ০৩ | ন্যায়পরায়ণতা এবং মেশিন লার্নিং | [পরিচিতি](1-Introduction/README.md) | মেশিন লার্নিং মডেল তৈরি ও প্রয়োগের সময় ন্যায়পরায়ণতা সম্পর্কিত গুরুত্বপূর্ণ দার্শনিক বিষয়গুলি ছাত্রদের ভাবার জন্য কী কী? | [পাঠ](1-Introduction/3-fairness/README.md) | তোমোমি | -| ০৪ | মেশিন লার্নিংয়ের পদ্ধতিগুলো | [পরিচিতি](1-Introduction/README.md) | মেশিন লার্নিং গবেষকরা কি পদ্ধতি ব্যবহার করে মডেল গঠন করে? | [পাঠ](1-Introduction/4-techniques-of-ML/README.md) | ক্রিস এবং জেন | -| ০৫ | রিগ্রেশন পরিচিতি | [রিগ্রেশন](2-Regression/README.md) | রিগ্রেশন মডেলের জন্য পাইথন ও সাইকিট-লার্নের সাথে শুরু করুন | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | জেন • এরিক ওয়াঞ্জাউ | -| ০৬ | উত্তর আমেরিকার কুমড়োর দাম 🎃 | [রিগ্রেশন](2-Regression/README.md) | মেশিন লার্নিংয়ের প্রস্তুতির জন্য ডেটা ভিজ্যুয়ালাইজ ও পরিষ্কার করুন | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | জেন • এরিক ওয়াঞ্জাউ | -| ০৭ | উত্তর আমেরিকার কুমড়োর দাম 🎃 | [রিগ্রেশন](2-Regression/README.md) | লিনিয়ার এবং পলিনোমিয়াল রিগ্রেশন মডেল তৈরি করুন | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | জেন এবং দিমিত্রি • এরিক ওয়াঞ্জাউ | -| ০৮ | উত্তর আমেরিকার কুমড়োর দাম 🎃 | [রিগ্রেশন](2-Regression/README.md) | লজিস্টিক রিগ্রেশন মডেল তৈরি করুন | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | জেন • এরিক ওয়াঞ্জাউ | -| ০৯ | একটি ওয়েব অ্যাপ 🔌 | [ওয়েব অ্যাপ](3-Web-App/README.md) | আপনার প্রশিক্ষিত মডেল ব্যবহারের জন্য একটি ওয়েব অ্যাপ তৈরি করুন | [Python](3-Web-App/1-Web-App/README.md) | জেন | -| ১০ | শ্রেণিবিন্যাস পরিচিতি | [শ্রেণিবিন্যাস](4-Classification/README.md) | আপনার ডেটা পরিষ্কার, প্রস্তুত ও ভিজ্যুয়ালাইজ করুন; শ্রেণিবিন্যাসের পরিচিতি | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | জেন এবং কেসি • এরিক ওয়াঞ্জাউ | -| ১১ | সুস্বাদু এশীয় ও ভারতীয় রান্না 🍜 | [শ্রেণিবিন্যাস](4-Classification/README.md) | শ্রেণীবিন্যাসক সম্পর্কে পরিচিতি | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | জেন এবং কেসি • এরিক ওয়াঞ্জাউ | -| ১২ | সুস্বাদু এশীয় ও ভারতীয় রান্না 🍜 | [শ্রেণিবিন্যাস](4-Classification/README.md) | আরও শ্রেণীবিন্যাসক | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | জেন এবং কেসি • এরিক ওয়াঞ্জাউ | -| ১৩ | সুস্বাদু এশীয় ও ভারতীয় রান্না 🍜 | [শ্রেণিবিন্যাস](4-Classification/README.md) | আপনার মডেল ব্যবহার করে একটি রিকমেন্ডার ওয়েব অ্যাপ তৈরি করুন | [Python](4-Classification/4-Applied/README.md) | জেন | -| ১৪ | ক্লাস্টারিংয়ের পরিচিতি | [ক্লাস্টারিং](5-Clustering/README.md) | আপনার ডেটা পরিষ্কার, প্রস্তুত ও ভিজ্যুয়ালাইজ করুন; ক্লাস্টারিংয়ের পরিচিতি | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | জেন • এরিক ওয়াঞ্জাউ | -| ১৫ | নাইজেরীয় সঙ্গীত রুচি অন্বেষণ 🎧 | [ক্লাস্টারিং](5-Clustering/README.md) | কে-মিন্স ক্লাস্টারিং পদ্ধতি এক্সপ্লোর করুন | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | জেন • এরিক ওয়াঞ্জাউ | -| ১৬ | প্রাকৃতিক ভাষা প্রক্রিয়াকরণ পরিচিতি ☕️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | সহজ একটি বট তৈরি করে প্রাকৃতিক ভাষা প্রক্রিয়াকরণের মৌলিক তথ্য শিখুন | [Python](6-NLP/1-Introduction-to-NLP/README.md) | স্টিফেন | -| ১৭ | সাধারণ NLP কাজসমূহ ☕️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | ভাষার কাঠামোর সঙ্গে কাজ করার সময় প্রয়োজনীয় সাধারণ কাজসমূহ বোঝার মাধ্যমে NLP জ্ঞান গভীর করুন | [Python](6-NLP/2-Tasks/README.md) | স্টিফেন | -| ১৮ | অনুবাদ ও অনুভূতি বিশ্লেষণ ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | জেন অস্টেনের মাধ্যমে অনুবাদ ও অনুভূতি বিশ্লেষণ | [Python](6-NLP/3-Translation-Sentiment/README.md) | স্টিফেন | -| ১৯ | ইউরোপের রোমান্টিক হোটেল ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | হোটেল রিভিউ নিয়ে অনুভূতি বিশ্লেষণ ১ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | স্টিফেন | -| ২০ | ইউরোপের রোমান্টিক হোটেল ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | হোটেল রিভিউ নিয়ে অনুভূতি বিশ্লেষণ ২ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | স্টিফেন | -| ২১ | টাইম সিরিজ পূর্বাভাসের পরিচিতি | [টাইম সিরিজ](7-TimeSeries/README.md) | টাইম সিরিজ পূর্বাভাসের পরিচিতি | [Python](7-TimeSeries/1-Introduction/README.md) | ফ্রান্সেসকা | -| ২২ | ⚡️ বিশ্ব শক্তি ব্যবহার ⚡️ - ARIMA ব্যবহার করে টাইম সিরিজ পূর্বাভাস | [টাইম সিরিজ](7-TimeSeries/README.md) | ARIMA ব্যবহার করে টাইম সিরিজ পূর্বাভাস | [Python](7-TimeSeries/2-ARIMA/README.md) | ফ্রান্সেসকা | -| ২৩ | ⚡️ বিশ্ব শক্তি ব্যবহার ⚡️ - SVR ব্যবহার করে টাইম সিরিজ পূর্বাভাস | [টাইম সিরিজ](7-TimeSeries/README.md) | সাপোর্ট ভেক্টর রিগ্রেসর দিয়ে টাইম সিরিজ পূর্বাভাস | [Python](7-TimeSeries/3-SVR/README.md) | অনির্বাণ | -| ২৪ | রিইনফোর্সমেন্ট লার্নিংয়ের পরিচিতি | [রিইনফোর্সমেন্ট লার্নিং](8-Reinforcement/README.md) | কিউ-লার্নিং দিয়ে রিইনফোর্সমেন্ট লার্নিংয়ের পরিচিতি | [Python](8-Reinforcement/1-QLearning/README.md) | দিমিত্রি | -| ২৫ | পিটারকে বাঘির হাত থেকে বাঁচান! 🐺 | [রিইনফোর্সমেন্ট লার্নিং](8-Reinforcement/README.md) | রিইনফোর্সমেন্ট লার্নিং জিম | [Python](8-Reinforcement/2-Gym/README.md) | দিমিত্রি | -| পরিশিষ্ট | বাস্তব জগতের মেশিন লার্নিং পরিস্থিতি ও প্রয়োগ | [ML in the Wild](9-Real-World/README.md) | ক্লাসিক্যাল মেশিন লার্নিংয়ের আকর্ষণীয় ও প্রকাশক বাস্তব প্রয়োগ | [পাঠ](9-Real-World/1-Applications/README.md) | দল | -| পরিশিষ্ট | RAI ড্যাশবোর্ড ব্যবহার করে মডেল ডিবাগিং | [ML in the Wild](9-Real-World/README.md) | রেসপন্সিবল AI ড্যাশবোর্ড কম্পোনেন্ট ব্যবহার করে মেশিন লার্নিং মডেল ডিবাগিং | [পাঠ](9-Real-World/2-Debugging-ML-Models/README.md) | রুথ ইয়াকুবু | - -> [এই কোর্সের জন্য সমস্ত অতিরিক্ত সম্পদ আমাদের Microsoft Learn সংগ্রহে খুঁজুন](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## অফলাইন অ্যাক্সেস - -[Docsify](https://docsify.js.org/#/) ব্যবহার করে আপনি এই ডকুমেন্টেশন অফলাইনে চালাতে পারেন। এই রিপো ফর্ক করুন, আপনার লোকাল মেশিনে [Docsify ইনস্টল করুন](https://docsify.js.org/#/quickstart), এবং তারপর এই রিপোর মূল ফোল্ডারে `docsify serve` কমান্ড টাইপ করুন। ওয়েবসাইটটি আপনার লোকালহোস্টে পোর্ট ৩০০০-এ চালু হবে: `localhost:3000`। - -## PDFs - -[এখানে](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) লিঙ্ক সহ কারিকুলামের একটি পিডিএফ খুঁজে পান। - +> **ভাষা সম্পর্কিত একটি নোট**: এই পাঠগুলি মূলত পাইথনে লেখা হয়েছে, তবে অনেকগুলি R-এও উপলব্ধ। একটি R পাঠ সম্পন্ন করতে, `/solution` ফোল্ডারে যান এবং R পাঠগুলি খুঁজুন। তাতে একটি .rmd এক্সটেনশন রয়েছে যা একটি **R Markdown** ফাইলকে উপস্থাপন করে, যা সহজে সংজ্ঞায়িত করা যায় `কোড চাঙ্ক` (R বা অন্যান্য ভাষার) এবং একটি `YAML হেডার` (যা আউটপুট যেমন PDF কিভাবে ফরম্যাট করতে হয় তা নির্দেশ করে) সহ একটি `Markdown ডকুমেন্ট` হিসেবে। এভাবে, এটি ডেটা সায়েন্সের জন্য একটি আদর্শ লেখন কাঠামো হিসেবে কাজ করে, কারণ এটি আপনাকে আপনার কোড, এর আউটপুট, এবং আপনার চিন্তাধারাকে একসঙ্গে মিলিত করার সুযোগ দেয়, এবং সেগুলো Markdown-এ লেখার অনুমতি দেয়। আরও, R Markdown ডকুমেন্টগুলি PDF, HTML, অথবা Word এর মত আউটপুট ফরম্যাটে রেন্ডার করা যায়। + +> **কুইজ সম্পর্কে একটি নোট**: সব কুইজ [Quiz App folder](../../quiz-app) এ রয়েছে, মোট ৫২টি কুইজ যার প্রত্যেকটিতে তিনটি প্রশ্ন রয়েছে। এগুলো পাঠগুলির মধ্যে লিঙ্ক করা হয়েছে, কিন্তু কুইজ অ্যাপটি লোকালি চালানো যেতে পারে; লোকালি হোস্ট বা Azure তে ডেপ্লয় করার জন্য `quiz-app` ফোল্ডারে নির্দেশনা অনুসরণ করুন। + +| পাঠের সংখ্যা | বিষয় | পাঠ গুছানো | শেখার উদ্দেশ্য | লিঙ্ককৃত পাঠ | লেখক | +| :-----------: | :------------------------------------------------------------: | :----------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | +| ০১ | মেশিন লার্নিং এর পরিচয় | [পরিচয়](1-Introduction/README.md) | মেশিন লার্নিং এর মৌলিক ধারণাগুলো শিখুন | [পাঠ](1-Introduction/1-intro-to-ML/README.md) | মুহাম্মদ | +| ০২ | মেশিন লার্নিং এর ইতিহাস | [পরিচয়](1-Introduction/README.md) | এই ক্ষেত্রে প্রাচীন ইতিহাস জানুন | [পাঠ](1-Introduction/2-history-of-ML/README.md) | জেন এবং অ্যামি | +| ০৩ | ন্যায্যতা এবং মেশিন লার্নিং | [পরিচয়](1-Introduction/README.md) | মেশিন লার্নিং মডেল তৈরি ও প্রয়োগের সময় ন্যায্যতা সম্পর্কিত গুরুত্বপূর্ণ দার্শনিক বিষয়গুলি শিক্ষার্থীদের বিবেচনা করা উচিত কিভাবে? | [পাঠ](1-Introduction/3-fairness/README.md) | তোমোমি | +| ০৪ | মেশিন লার্নিং এর কৌশল | [পরিচয়](1-Introduction/README.md) | মেশিন লার্নিং গবেষকরা কী কৌশল ব্যবহার করে মডেল গঠন করেন? | [পাঠ](1-Introduction/4-techniques-of-ML/README.md) | ক্রিস এবং জেন | +| ০৫ | রিগ্রেশন এর পরিচিতি | [রিগ্রেশন](2-Regression/README.md) | রিগ্রেশন মডেলের জন্য পাইথন এবং স্কিকিট-লার্ন শুরু করুন | [পাইথন](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | জেন • এরিক ওয়ানজাউ | +| ০৬ | উত্তর আমেরিকার কুমড়ো মূল্য 🎃 | [রিগ্রেশন](2-Regression/README.md) | মেশিন লার্নিং জন্য ডেটা ভিজ্যুয়ালাইজ এবং পরিষ্কার করুন | [পাইথন](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | জেন • এরিক ওয়ানজাউ | +| ০৭ | উত্তর আমেরিকার কুমড়ো মূল্য 🎃 | [রিগ্রেশন](2-Regression/README.md) | লিনিয়ার এবং পলিনোমিয়াল রিগ্রেশন মডেল তৈরি করুন | [পাইথন](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | জেন এবং দিমিত্রি • এরিক ওয়ানজাউ | +| ০৮ | উত্তর আমেরিকার কুমড়ো মূল্য 🎃 | [রিগ্রেশন](2-Regression/README.md) | একটি লজিস্টিক রিগ্রেশন মডেল তৈরি করুন | [পাইথন](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | জেন • এরিক ওয়ানজাউ | +| ০৯ | একটি ওয়েব অ্যাপ 🔌 | [ওয়েব অ্যাপ](3-Web-App/README.md) | আপনার প্রশিক্ষিত মডেল ব্যবহার করার জন্য একটি ওয়েব অ্যাপ তৈরি করুন | [পাইথন](3-Web-App/1-Web-App/README.md) | জেন | +| ১০ | শ্রেণীবিন্যাস এর পরিচিতি | [শ্রেণীবিন্যাস](4-Classification/README.md) | ডেটা পরিষ্কার, প্রস্তুত করুন এবং ভিজুয়ালাইজ করুন; শ্রেণীবিন্যাস এর পরিচিতি | [পাইথন](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | জেন এবং ক্যাসি • এরিক ওয়ানজাউ | +| ১১ | সুস্বাদু এশিয়ান এবং ভারতীয় রন্ধনপ্রণালী 🍜 | [শ্রেণীবিন্যাস](4-Classification/README.md) | শ্রেণীবিন্যাসকারীদের পরিচিতি | [পাইথন](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | জেন এবং ক্যাসি • এরিক ওয়ানজাউ | +| ১২ | সুস্বাদু এশিয়ান এবং ভারতীয় রন্ধনপ্রণালী 🍜 | [শ্রেণীবিন্যাস](4-Classification/README.md) | আরও শ্রেণীবিন্যাসকারী | [পাইথন](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | জেন এবং ক্যাসি • এরিক ওয়ানজাউ | +| ১৩ | সুস্বাদু এশিয়ান এবং ভারতীয় রন্ধনপ্রণালী 🍜 | [শ্রেণীবিন্যাস](4-Classification/README.md) | আপনার মডেল ব্যবহার করে একটি রিকমেন্ডার ওয়েব অ্যাপ তৈরি করুন | [পাইথন](4-Classification/4-Applied/README.md) | জেন | +| ১৪ | ক্লাস্টারিং এর পরিচিতি | [ক্লাস্টারিং](5-Clustering/README.md) | ডেটা পরিষ্কার, প্রস্তুত করুন এবং ভিজুয়ালাইজ করুন; ক্লাস্টারিং এর পরিচিতি | [পাইথন](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | জেন • এরিক ওয়ানজাউ | +| ১৫ | নাইজেরিয়ান সঙ্গীত স্বাদ অন্বেষণ 🎧 | [ক্লাস্টারিং](5-Clustering/README.md) | কে-মিনস ক্লাস্টারিং পদ্ধতি অন্বেষণ করুন | [পাইথন](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | জেন • এরিক ওয়ানজাউ | +| ১৬ | প্রাকৃতিক ভাষা প্রক্রিয়াকরণ এর পরিচিতি ☕️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | একটি সহজ বট তৈরি করে NLP-এর ভিত্তি শিখুন | [পাইথন](6-NLP/1-Introduction-to-NLP/README.md) | স্টিফেন | +| ১৭ | সাধারণ NLP কাজগুলি ☕️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | ভাষা কাঠামোগুলোর সঙ্গে কাজ করার সময় প্রয়োজনীয় সাধারণ কাজগুলি বুঝে NLP জ্ঞান উন্নত করুন | [পাইথন](6-NLP/2-Tasks/README.md) | স্টিফেন | +| ১৮ | অনুবাদ এবং অনুভূতি বিশ্লেষণ ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | জেন অস্টেনের সাথে অনুবাদ এবং অনুভূতি বিশ্লেষণ | [পাইথন](6-NLP/3-Translation-Sentiment/README.md) | স্টিফেন | +| ১৯ | ইউরোপের রোমান্টিক হোটেল ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | হোটেল পর্যালোচনার সাথে অনুভূতি বিশ্লেষণ ১ | [পাইথন](6-NLP/4-Hotel-Reviews-1/README.md) | স্টিফেন | +| ২০ | ইউরোপের রোমান্টিক হোটেল ♥️ | [প্রাকৃতিক ভাষা প্রক্রিয়াকরণ](6-NLP/README.md) | হোটেল পর্যালোচনার সাথে অনুভূতি বিশ্লেষণ ২ | [পাইথন](6-NLP/5-Hotel-Reviews-2/README.md) | স্টিফেন | +| ২১ | টাইম সিরিজ পূর্বাভাসে পরিচিতি | [টাইম সিরিজ](7-TimeSeries/README.md) | টাইম সিরিজ পূর্বাভাসে পরিচিতি | [পাইথন](7-TimeSeries/1-Introduction/README.md) | ফ্রান্সেস্কা | +| ২২ | ⚡️ বিশ্ব শক্তি ব্যবহার ⚡️ - ARIMA দিয়ে টাইম সিরিজ পূর্বাভাস | [টাইম সিরিজ](7-TimeSeries/README.md) | ARIMA দিয়ে টাইম সিরিজ পূর্বাভাস | [পাইথন](7-TimeSeries/2-ARIMA/README.md) | ফ্রান্সেস্কা | +| ২৩ | ⚡️ বিশ্ব শক্তি ব্যবহার ⚡️ - SVR দিয়ে টাইম সিরিজ পূর্বাভাস | [টাইম সিরিজ](7-TimeSeries/README.md) | সাপোর্ট ভেক্টর রিগ্রেসর দিয়ে টাইম সিরিজ পূর্বাভাস | [পাইথন](7-TimeSeries/3-SVR/README.md) | অনির্বাণ | +| ২৪ | রিইনফোর্সমেন্ট লার্নিং এর পরিচিতি | [রিইনফোর্সমেন্ট লার্নিং](8-Reinforcement/README.md) | Q-লার্নিং দিয়ে রিইনফোর্সমেন্ট লার্নিং এর পরিচিতি | [পাইথন](8-Reinforcement/1-QLearning/README.md) | দিমিত্রি | +| ২৫ | পিটার কে বাঘ থেকে রক্ষা করো! 🐺 | [রিইনফোর্সমেন্ট লার্নিং](8-Reinforcement/README.md) | রিইনফোর্সমেন্ট লার্নিং জিম | [পাইথন](8-Reinforcement/2-Gym/README.md) | দিমিত্রি | +| পোস্টস্ক্রিপ্ট | বাস্তব বিশ্ব ML পরিস্থিতি ও প্রয়োগ | [ML in the Wild](9-Real-World/README.md) | ক্লাসিক্যাল ML এর মজার এবং প্রকাশক বাস্তব বিশ্ব প্রয়োগগুলি | [পাঠ](9-Real-World/1-Applications/README.md) | টিম | +| পোস্টস্ক্রিপ্ট | ML তে মডেল ডিবাগিং RAI ড্যাশবোর্ড ব্যবহার করে | [ML in the Wild](9-Real-World/README.md) | রেসপন্সিবল AI ড্যাশবোর্ড উপাদানগুলি ব্যবহার করে মেশিন লার্নিংয়ে মডেল ডিবাগিং | [পাঠ](9-Real-World/2-Debugging-ML-Models/README.md) | রুথ ইয়াকুবু | + +> [এই কোর্সের সমস্ত অতিরিক্ত রিসোর্স আমাদের Microsoft Learn সংগ্রহে খুঁজুন](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## অফলাইন এক্সেস + +আপনি [Docsify](https://docsify.js.org/#/) ব্যবহার করে এই ডকুমেন্টেশন অফলাইনে চালাতে পারেন। এই রিপোটি ফর্ক করুন, [Docsify ইনস্টল করুন](https://docsify.js.org/#/quickstart) আপনার স্থানীয় মেশিনে, এবং তারপর এই রিপোর মূল ফোল্ডারে `docsify serve` টাইপ করুন। ওয়েবসাইটটি আপনার লোকালহোস্টে পোর্ট 3000-এ সার্ভ হবে: `localhost:3000`। + +## PDF + +পাঠ্যক্রমের একটি পিডিএফ লিঙ্ক সহ খুঁজুন [এখানে](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)। ## 🎒 অন্যান্য কোর্স -আমাদের দল অন্যান্য কোর্সও তৈরি করে! দেখুন: +আমাদের দল আরো কোর্স তৈরি করে! দেখুন: ### LangChain @@ -189,49 +188,49 @@ Microsoft এর Cloud Advocates একটি ১২-সপ্তাহের, --- -### Generative AI Series -[![শুরুকারীদের জন্য জেনারেটিভ AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![জেনারেটিভ AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![জেনারেটিভ AI (জাভা)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![জেনারেটিভ AI (জাভাস্ক্রিপ্ট)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### জেনারেটিভ AI সিরিজ +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### মূল শেখা -[![শুরুকারীদের জন্য এমএল](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরুকারীদের জন্য ডেটা বিজ্ঞান](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরুকারীদের জন্য AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরুকারীদের জন্য সাইবারসিকিউরিটি](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![শুরুকারীদের জন্য ওয়েব ডেভ](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরুকারীদের জন্য আইওটি](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![শুরুকারীদের জন্য XR ডেভেলপমেন্ট](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### মূর্ত শিক্ষা +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### কপাইলট সিরিজ -[![AI জোড়া প্রোগ্রামিংয়ের জন্য কপাইলট](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET এর জন্য কপাইলট](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![কপাইলট অ্যাডভেঞ্চার](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## সাহায্য পাওয়া +## সাহায্য নেওয়া -যদি আপনি আটকে যান বা AI অ্যাপ তৈরি সম্পর্কে কোন প্রশ্ন থাকে। সহকর্মী শিক্ষার্থী এবং অভিজ্ঞ ডেভেলপারদের সাথে MCP এর আলোচনা যোগ দিন। এটি একটি সহায়ক সম্প্রদায় যেখানে প্রশ্ন স্বাগত এবং জ্ঞান স্বাধীনভাবে ভাগ করা হয়। +আপনি যদি আটকে যান অথবা AI অ্যাপ তৈরি সম্পর্কে কোনো প্রশ্ন থাকে, তাহলে MCP নিয়ে আলোচনা করতে সহপাঠী এবং অভিজ্ঞ ডেভেলপারদের সাথে যোগ দিন। এটি একটি সহায়ক সম্প্রদায় যেখানে প্রশ্নগুলি স্বাগত এবং জ্ঞান মুক্তভাবে ভাগ করা হয়। -[![মাইক্রোসফট ফাউন্ড্রি ডিসকর্ড](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -যদি আপনার পণ্য সংক্রান্ত প্রতিক্রিয়া বা ত্রুটি থাকে তবে: +আপনার যদি পণ্য প্রতিক্রিয়া বা ত্রুটি থাকে, তাহলে এখানে যান: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## অতিরিক্ত শেখার টিপস +## অতিরিক্ত শেখার পরামর্শ -- প্রতিটি পাঠের পরে নোটবুক পর্যালোচনা করুন আরও ভাল বোঝার জন্য। -- নিজে নিজে অ্যালগোরিদম বাস্তবায়নের অনুশীলন করুন। -- শেখা ধারণাগুলো ব্যবহার করে বাস্তব বিশ্বের ডেটাসেট অন্বেষণ করুন। +- প্রতিটি পাঠের পরে নোটবুকগুলি পর্যালোচনা করুন ভাল বোঝার জন্য। +- নিজেরাই আলগোরিদম বাস্তবায়ন অনুশীলন করুন। +- শেখা ধারণাগুলো ব্যবহার করে বাস্তব বিশ্বের ডেটাসেট এক্সপ্লোর করুন। --- -**অস্বীকৃতি**: -এই নথিটি AI অনুবাদ সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার চেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ভুল বা অমিল থাকার সম্ভাবনা রয়েছে। মূল নথি তার নিজস্ব ভাষায় কর্তৃত্বপ্রাপ্ত উৎস হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানুষের অনুবাদ গ্রহণ করার পরামর্শ দেওয়া হচ্ছে। এই অনুবাদের ব্যবহারের কারণে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ব্যাখ্যার জন্য আমরা দায়ী নই। +**বহির্গমন**: +এই ডকুমেন্টটি AI অনুশীলন সেবা [Co-op Translator](https://github.com/Azure/co-op-translator) ব্যবহার করে অনূদিত হয়েছে। আমরা যথাসাধ্য সঠিকতার প্রচেষ্টা করি, তবে স্বয়ংক্রিয় অনুবাদে ভুল বা ত্রুটি থাকতে পারে। মূল ডকুমেন্টটি তার স্বাভাবিক ভাষায় সংশ্লিষ্ট সূত্র হিসেবে বিবেচিত হওয়া উচিত। গুরুত্বপূর্ণ তথ্যের জন্য পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদের ব্যবহার থেকে সৃষ্ট কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী নই। \ No newline at end of file diff --git a/translations/cs/.co-op-translator.json b/translations/cs/.co-op-translator.json index 0370a3c9d..f1a479234 100644 --- a/translations/cs/.co-op-translator.json +++ b/translations/cs/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "cs" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:18:07+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:00:33+00:00", "source_file": "README.md", "language_code": "cs" }, diff --git a/translations/cs/README.md b/translations/cs/README.md index c96b93836..a08af87cd 100644 --- a/translations/cs/README.md +++ b/translations/cs/README.md @@ -10,14 +10,14 @@ ### 🌐 Podpora více jazyků -#### Podporováno prostřednictvím GitHub Action (automatizováno a vždy aktuální) +#### Podporováno prostřednictvím GitHub Action (automatické a vždy aktuální) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](./README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](./README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Raději klonovat lokálně?** +> **Raději chcete klonovat lokálně?** > -> Tento repozitář obsahuje překlady do více než 50 jazyků, což výrazně zvětšuje velikost ke stažení. Chcete-li klonovat bez překladů, použijte sparse checkout: +> Tento repozitář zahrnuje více než 50 jazykových překladů, což výrazně zvětšuje velikost stahování. Pro klonování bez překladů použijte sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,62 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Tím získáte vše potřebné k dokončení kurzu s mnohem rychlejším stažením. +> To vám poskytne vše potřebné k dokončení kurzu a mnohem rychlejší stažení. -#### Přidejte se k naší komunitě +#### Připojte se k naší komunitě [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Máme probíhající Discord sérii Learn with AI, dozvíte se více a můžete se připojit na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. září 2025. Získáte tipy a triky, jak používat GitHub Copilot pro Data Science. +Máme probíhající sérii Learn with AI na Discordu, dozvíte se více a připojte se k nám na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. září 2025. Získáte tipy a triky pro používání GitHub Copilot pro Data Science. ![Learn with AI series](../../translated_images/cs/3.9b58fd8d6c373c20.webp) -# Strojové učení pro začátečníky - Osnova +# Strojové učení pro začátečníky - učební plán -> 🌍 Cestujte po světě, zatímco zkoumáme strojové učení prostřednictvím světových kultur 🌍 +> 🌍 Cestujte po celém světě, zatímco zkoumáme strojové učení prostřednictvím kultur světa 🌍 -Cloud Advocates ve společnosti Microsoft s potěšením nabízejí 12týdenní osnovu se 26 lekcemi zaměřenými na **strojové učení**. V této osnově se naučíte něco, co se někdy nazývá **klasické strojové učení**, používající především knihovnu Scikit-learn a vyhýbající se hlubokému učení, které je pokryto v našem [kurzu AI pro začátečníky](https://aka.ms/ai4beginners). Tyto lekce můžete také skvěle kombinovat s naší osnovou ['Data Science pro začátečníky'](https://aka.ms/ds4beginners)! +Cloud Advocates ve společnosti Microsoft vám s potěšením představují 12týdenní učební plán se 26 lekcemi, které se věnují **strojovému učení**. V tomto učebním plánu se naučíte, co se někdy nazývá **klasické strojové učení**, přičemž používáme především knihovnu Scikit-learn a vyhýbáme se hlubokému učení, které je pokryto v našem [učebním plánu AI pro začátečníky](https://aka.ms/ai4beginners). Tyto lekce zkombinujte také s naším [učebním plánem Data Science pro začátečníky](https://aka.ms/ds4beginners). -Cestujte s námi po světě, zatímco aplikujeme tyto klasické techniky na data z různých oblastí světa. Každá lekce zahrnuje před a po lekci testy, psané instrukce k dokončení lekce, řešení, úkol a další. Naše projektově orientovaná pedagogika umožňuje učit se při vytváření projektu, což je osvědčený způsob, jak nové dovednosti opravdu "zůstanou". +Cestujte s námi po celém světě, když aplikujeme tyto klasické techniky na data z mnoha oblastí světa. Každá lekce obsahuje před a po lekci kvízy, písemné pokyny k dokončení lekce, řešení, úkol a další. Naše projektově orientovaná pedagogika vám umožňuje učit se při budování, což je osvědčený způsob, jak nové znalosti "ulpí". -**✍️ Srdečné poděkování autorům** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu a Amy Boyd +**✍️ Srdečné díky našim autorům** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu a Amy Boyd -**🎨 Poděkování také našim ilustrátorům** Tomomi Imura, Dasani Madipalli a Jen Looper +**🎨 Také díky našim ilustrátorům** Tomomi Imura, Dasani Madipalli a Jen Looper -**🙏 Zvláštní poděkování 🙏 našim autorům, recenzentům a přispěvatelům obsahu ze studentského ambasádorského programu Microsoftu**, zejména Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal +**🙏 Zvláštní díky 🙏 našim autorům, recenzentům a přispěvatelům obsahu ze studentské ambasady Microsoftu**, zejména Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal -**🤩 Extra poděkování Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi a Vidushi Gupta za naše lekce v R!** +**🤩 Extra poděkování patří také ambasadorům Microsoft Student Ericu Wanjauovi, Jasleen Sondhi a Vidushi Guptě za naše lekce v jazyce R!** # Začínáme -Postupujte podle těchto kroků: +Postupujte takto: 1. **Vytvořte Fork repozitáře**: Klikněte na tlačítko „Fork“ v pravém horním rohu této stránky. -2. **Klonujte repozitář**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +2. **Klonujte repozitář**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [najdete zde všechny další zdroje pro tento kurz v naší kolekci Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [najděte všechny doplňkové zdroje pro tento kurz v naší kolekci Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Potřebujete pomoc?** Podívejte se na náš [Průvodce řešením problémů](TROUBLESHOOTING.md) pro běžné problémy při instalaci, nastavení a spuštění lekcí. +> 🔧 **Potřebujete pomoc?** Podívejte se do našeho [Průvodce řešením problémů](TROUBLESHOOTING.md) pro řešení běžných problémů s instalací, nastavením a spouštěním lekcí. -**[Studenti](https://aka.ms/student-page)**, pro použití této osnovy, vytvořte fork celého repozitáře do svého GitHub účtu a vypracujte cvičení sami nebo ve skupině: -- Začněte testem před lekcí. -- Přečtěte si lekci a dokončete aktivity, při každé znalostní kontrole se zastavte a zamyslete. -- Snažte se vytvářet projekty pochopením lekcí místo pouhého spuštění řešení; kód je však dostupný ve složce `/solution` v každé projektově orientované lekci. -- Udělejte test po lekci. +**[Studenti](https://aka.ms/student-page)**, pro použití tohoto učebního plánu si vytvořte fork celého repozitáře na svůj vlastní GitHub účet a cvičení dokončujte sami nebo ve skupině: + +- Začněte před-lecturním kvízem. +- Přečtěte si lekci a dokončete aktivity, zastavujte se a přemýšlejte u každé kontroly znalostí. +- Pokuste se vytvářet projekty tak, že pochopíte lekce místo pouhého spuštění řešení; zda řešení najdete v adresáři `/solution` v každé lekci orientované na projekt. +- Udělejte post-lecturní kvíz. - Dokončete výzvu. -- Dokončete zadání. -- Po dokončení skupiny lekcí navštivte [Diskusní fórum](https://github.com/microsoft/ML-For-Beginners/discussions) a "učte se nahlas" vyplněním příslušné PAT rubricy. 'PAT' je nástroj hodnocení pokroku, který vyplníte, abyste prohloubili své učení. Můžete také reagovat na jiné PAT a učit se společně. +- Dokončete úkol. +- Po dokončení skupiny lekcí navštivte [Diskusní fórum](https://github.com/microsoft/ML-For-Beginners/discussions) a „učte se nahlas“ vyplněním příslušného hodnotícího formuláře PAT. 'PAT' je nástroj hodnocení pokroku, který vyplníte pro zvýšení svého učení. Můžete také reagovat na další PATy, abychom se mohli učit společně. -> Pro další studium doporučujeme sledovat tyto moduly a učební cesty na [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Pro další studium doporučujeme sledovat tyto [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduly a vzdělávací cesty. -**Učitelé**, přiložili jsme [několik doporučení](for-teachers.md), jak tuto osnovu využít. +**Učitelé**, máme [několik doporučení](for-teachers.md) o tom, jak používat tento učební plán. --- ## Video průvodci -Některé lekce jsou dostupné jako krátká videa. Všechny najdete v lekcích přímo nebo na playlistu [ML for Beginners na YouTube kanálu Microsoft Developer](https://aka.ms/ml-beginners-videos) kliknutím na obrázek níže. +Některé lekce jsou k dispozici jako krátká videa. Najdete je přímo v lekcích nebo na [playlistu ML for Beginners na kanálu Microsoft Developer na YouTube](https://aka.ms/ml-beginners-videos) kliknutím na obrázek níže. [![ML for beginners banner](../../translated_images/cs/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -100,79 +101,79 @@ Některé lekce jsou dostupné jako krátká videa. Všechny najdete v lekcích **Gif od** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klikněte na obrázek výše pro video o projektu a lidech, kteří ho vytvořili! +> 🎥 Klikněte na obrázek výše pro zhlédnutí videa o projektu a lidech, kteří jej vytvořili! --- ## Pedagogika -Při vytváření této osnovy jsme zvolili dva pedagogické principy: zajistit, aby byla praktická a projektově orientovaná, a zároveň obsahovala časté kvízy. Navíc má tato osnova společné **téma**, které jí dodává soudržnost. +Při budování tohoto učebního plánu jsme zvolili dva pedagogické principy: zajistit, aby byl **praktický a projektově orientovaný** a aby obsahoval **četné kvízy**. Navíc má tento učební plán společné **téma** pro soudržnost. -Díky tomu, že obsah je sladěn s projekty, je proces pro studenty poutavější a zvyšuje se zapamatování konceptů. Nízkorizikový kvíz před lekcí nastavuje záměr studenta na učení tématu, zatímco druhý kvíz po lekci posiluje další zapamatování. Osnova byla navržena tak, aby byla flexibilní a zábavná, a lze ji absolvovat celou nebo po částech. Projekty začínají malé a koncem 12týdenního cyklu se stávají složitějšími. V osnově je také poscriptum o reálných aplikacích strojového učení, které může sloužit jako extra kredit nebo jako základ pro diskusi. +Zajištěním souladu obsahu s projekty je proces pro studenty poutavější a zvyšuje se uchování konceptů. Kromě toho nízkorizikový kvíz před lekcí nastavuje studentovi úmysl učit se dané téma, zatímco druhý kvíz po lekci zajišťuje další uchování znalostí. Tento učební plán je navržen tak, aby byl flexibilní a zábavný a může být absolvován celý nebo částečně. Projekty začínají malé a ke konci 12týdenního cyklu se postupně stávají složitějšími. Tento učební plán také obsahuje poscriptum o reálných aplikacích ML, které může být použito jako extra kredit nebo jako základ pro diskusi. -> Najděte naše [Kodex chování](CODE_OF_CONDUCT.md), [příspěvky](CONTRIBUTING.md), [překlady](..) a [Průvodce řešením problémů](TROUBLESHOOTING.md). Vítáme vaši konstruktivní zpětnou vazbu! +> Najděte naše [Pravidla chování](CODE_OF_CONDUCT.md), [Příspěvky](CONTRIBUTING.md), [Překlady](..) a [Řešení problémů](TROUBLESHOOTING.md). Vítáme vaši konstruktivní zpětnou vazbu! ## Každá lekce obsahuje -- volitelnou skicu (sketchnote) +- volitelnou sketchnotu - volitelné doplňkové video - video průvodce (jen některé lekce) -- [kvíz před lekcí](https://ff-quizzes.netlify.app/en/ml/) -- psanou lekci -- u projektově orientovaných lekcí podrobný návod, jak projekt vytvořit -- znalostní kontroly +- [před-lecturní rozcvičovací kvíz](https://ff-quizzes.netlify.app/en/ml/) +- písemnou lekci +- u lekcí orientovaných na projekty krok za krokem průvodce, jak projekt vytvořit +- kontroly znalostí - výzvu -- doplňující čtení +- doplňkové čtení - úkol -- [kvíz po lekci](https://ff-quizzes.netlify.app/en/ml/) - -> **Poznámka k jazykům**: Tyto lekce jsou primárně psány v Pythonu, ale mnoho z nich je dostupných i v R. Pro dokončení lekce v R přejděte do složky `/solution` a vyhledejte lekce v R. Obsahují příponu .rmd, která představuje **R Markdown** soubor, což lze jednoduše definovat jako kombinaci `kódových bloků` (v R nebo jiných jazycích) a `YAML hlavičky` (která určuje, jak formátovat výstupy jako PDF) v `Markdown dokumentu`. Díky tomu slouží jako vzorový autorský rámec pro datovou vědu, protože umožňuje kombinovat kód, jeho výstupy a vaše poznámky psané v Markdownu. R Markdown dokumenty lze navíc převádět do výstupních formátů jako PDF, HTML nebo Word. -> **Poznámka k kvízům**: Všechny kvízy jsou obsaženy ve složce [Quiz App](../../quiz-app), celkem 52 kvízů po třech otázkách. Jsou propojeny v lekcích, ale aplikaci kvízů lze spustit i lokálně; postupujte podle instrukcí ve složce `quiz-app`, abyste aplikaci spustili lokálně nebo nasadili na Azure. - -| Číslo lekce | Téma | Skupina lekcí | Vzdělávací cíle | Propojená lekce | Autor | -| :---------: | :-----------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| 01 | Úvod do strojového učení | [Úvod](1-Introduction/README.md) | Seznámení se základními koncepty strojového učení | [Lekce](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Historie strojového učení | [Úvod](1-Introduction/README.md) | Naučit se historii, na které toto pole stojí | [Lekce](1-Introduction/2-history-of-ML/README.md) | Jen a Amy | -| 03 | Spravedlnost a strojové učení | [Úvod](1-Introduction/README.md) | Jaké jsou důležité filozofické otázky o spravedlnosti, které by studenti měli zvážit při vytváření a aplikaci modelů ML? | [Lekce](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniky pro strojové učení | [Úvod](1-Introduction/README.md) | Jaké techniky používají vědci ML pro tvorbu modelů? | [Lekce](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen | -| 05 | Úvod do regresních modelů | [Regrese](2-Regression/README.md) | Začít s Pythonem a Scikit-learn pro regresní modely | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Vizualizovat a vyčistit data před ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Vybudovat lineární a polynomické regresní modely | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen a Dmitry • Eric Wanjau | -| 08 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Vybudovat logistický regresní model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Webová aplikace 🔌 | [Web App](3-Web-App/README.md) | Vybudovat webovou aplikaci pro použití vašeho natrénovaného modelu | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Úvod do klasifikace | [Klasifikace](4-Classification/README.md) | Vyčistit, připravit a vizualizovat data; úvod do klasifikace | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen a Cassie • Eric Wanjau | -| 11 | Lahodné asijské a indické kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Úvod do klasifikátorů | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen a Cassie • Eric Wanjau | -| 12 | Lahodné asijské a indické kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Další klasifikátory | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen a Cassie • Eric Wanjau | -| 13 | Lahodné asijské a indické kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Vybudovat doporučující webovou aplikaci pomocí vašeho modelu | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Úvod ke shlukování | [Shlukování](5-Clustering/README.md) | Vyčistit, připravit a vizualizovat data; úvod ke shlukování | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Průzkum nigerijských hudebních chutí 🎧 | [Shlukování](5-Clustering/README.md) | Prozkoumat metodu shlukování K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Úvod do zpracování přirozeného jazyka ☕️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Naučit se základy NLP vytvořením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Běžné úkoly NLP ☕️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Prohloubit znalosti NLP porozuměním běžným úkolům požadovaným při práci s jazykovými strukturami | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Překlad a sentimentální analýza ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Překlad a sentimentální analýza s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantické hotely Evropy ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Sentimentální analýza hotelových recenzí 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantické hotely Evropy ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Sentimentální analýza hotelových recenzí 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Úvod do predikce časových řad | [Časové řady](7-TimeSeries/README.md) | Úvod do predikce časových řad | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Světová spotřeba energie ⚡️ - predikce časových řad ARIMA | [Časové řady](7-TimeSeries/README.md) | Predikce časových řad pomocí ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Světová spotřeba energie ⚡️ - predikce časových řad SVR | [Časové řady](7-TimeSeries/README.md) | Predikce časových řad pomocí Support Vector Regressoru | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Úvod do posilovaného učení | [Posilované učení](8-Reinforcement/README.md) | Úvod do posilovaného učení pomocí Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Pomozte Petrovi vyhnout se vlkovi! 🐺 | [Posilované učení](8-Reinforcement/README.md) | Posilované učení s Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Posloupnost | Skutečné scénáře a aplikace ML | [ML ve světě](9-Real-World/README.md) | Zajímavé a poučné reálné aplikace klasického ML | [Lekce](9-Real-World/1-Applications/README.md) | Tým | -| Posloupnost | Ladění modelů v ML pomocí RAI dashboardu | [ML ve světě](9-Real-World/README.md) | Ladění modelů v ML pomocí komponent Responsible AI dashboardu | [Lekce](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [post-lecturní kvíz](https://ff-quizzes.netlify.app/en/ml/) +> **Poznámka o jazycích**: Tyto lekce jsou primárně napsané v Pythonu, ale mnoho z nich je také dostupných v R. Pro dokončení lekce v R přejděte do složky `/solution` a hledejte lekce v R. Ty mají příponu .rmd, která představuje **R Markdown** soubor, což lze jednoduše definovat jako vložení `kódových bloků` (v R nebo jiných jazycích) a `YAML záhlaví` (které určuje, jak formátovat výstupy jako PDF) v rámci `Markdown dokumentu`. Takto slouží jako příkladný autorský rámec pro datovou vědu, protože umožňuje kombinovat váš kód, jeho výstup a vaše myšlenky tím, že vám dovolí je psát v Markdownu. Navíc R Markdown dokumenty lze vyrenderovat do výstupních formátů, jako je PDF, HTML nebo Word. + +> **Poznámka o kvízech**: Všechny kvízy jsou obsaženy ve [složce Quiz App](../../quiz-app), dohromady 52 kvízů po třech otázkách. Jsou propojeny z lekcí, ale kvízovou aplikaci lze spustit lokálně; postupujte podle instrukcí ve složce `quiz-app` pro lokální hostování nebo nasazení na Azure. + +| Číslo lekce | Téma | Skupina lekcí | Výukové cíle | Propojená lekce | Autor | +| :---------: | :----------------------------------------------------------: | :------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | +| 01 | Úvod do strojového učení | [Úvod](1-Introduction/README.md) | Naučte se základní pojmy strojového učení | [Lekce](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Historie strojového učení | [Úvod](1-Introduction/README.md) | Seznamte se s historií tohoto oboru | [Lekce](1-Introduction/2-history-of-ML/README.md) | Jen a Amy | +| 03 | Spravedlnost a strojové učení | [Úvod](1-Introduction/README.md) | Jaké jsou důležité filozofické otázky kolem spravedlnosti, které by studenti měli zvážit při vytváření a aplikaci ML modelů? | [Lekce](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniky strojového učení | [Úvod](1-Introduction/README.md) | Jaké techniky používají výzkumníci strojového učení pro stavbu ML modelů? | [Lekce](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen | +| 05 | Úvod do regrese | [Regrese](2-Regression/README.md) | Začněte s Pythonem a Scikit-learn pro regresní modely | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Vizualizace a čištění dat pro ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Stavba lineárních a polynomiálních regresních modelů | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen a Dmitry • Eric Wanjau | +| 08 | Ceny dýní v Severní Americe 🎃 | [Regrese](2-Regression/README.md) | Stavba logistického regresního modelu | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Webová aplikace 🔌 | [Web App](3-Web-App/README.md) | Vytvořte webovou aplikaci, která využívá váš vytrénovaný model | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Úvod do klasifikace | [Klasifikace](4-Classification/README.md) | Čištění, příprava a vizualizace dat; úvod do klasifikace | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen a Cassie • Eric Wanjau | +| 11 | Lahodná asijská a indická kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Úvod do klasifikátorů | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen a Cassie • Eric Wanjau | +| 12 | Lahodná asijská a indická kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Další klasifikátory | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen a Cassie • Eric Wanjau | +| 13 | Lahodná asijská a indická kuchyně 🍜 | [Klasifikace](4-Classification/README.md) | Vytvoření doporučovací webové aplikace s vaším modelem | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Úvod do shlukování | [Shlukování](5-Clustering/README.md) | Čištění, příprava a vizualizace dat; úvod do shlukování | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Průzkum nigerijských hudebních chutí 🎧 | [Shlukování](5-Clustering/README.md) | Prozkoumejte metodu shlukování K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Úvod do zpracování přirozeného jazyka ☕️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Naučte se základy NLP vytvořením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Běžné úlohy NLP ☕️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Prohlubte své znalosti NLP pochopením běžných úloh nezbytných pro práci s jazykovými strukturami | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Překlad a analýza sentimentu ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Překlad a analýza sentimentu s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantické hotely Evropy ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Analýza sentimentu na recenzích hotelů 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantické hotely Evropy ♥️ | [Zpracování přirozeného jazyka](6-NLP/README.md) | Analýza sentimentu na recenzích hotelů 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Úvod do predikce časových řad | [Časové řady](7-TimeSeries/README.md) | Úvod do předpovídání časových řad | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Světová spotřeba energie ⚡️ - předpovídání časových řad s ARIMA | [Časové řady](7-TimeSeries/README.md) | Předpovídání časových řad s ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Světová spotřeba energie ⚡️ - předpovídání časových řad s SVR | [Časové řady](7-TimeSeries/README.md) | Předpovídání časových řad pomocí Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Úvod do posilovaného učení | [Posilované učení](8-Reinforcement/README.md) | Úvod do posilovaného učení s Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Pomozte Peterovi vyhnout se vlkovi! 🐺 | [Posilované učení](8-Reinforcement/README.md) | Posilované učení Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Posloupnost | Reálné scénáře a aplikace ML v praxi | [ML v praxi](9-Real-World/README.md) | Zajímavé a poučné reálné aplikace klasického ML | [Lekce](9-Real-World/1-Applications/README.md) | Tým | +| Posloupnost | Ladění modelů ML pomocí RAI dashboardu | [ML v praxi](9-Real-World/README.md) | Ladění modelů ve strojovém učení pomocí komponent dashboardu Responsible AI | [Lekce](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [najděte všechny další zdroje k tomuto kurzu v naší kolekci Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offline přístup -Tuto dokumentaci můžete spustit offline pomocí [Docsify](https://docsify.js.org/#/). Zforkujte si tento repozitář, [nainstalujte Docsify](https://docsify.js.org/#/quickstart) na svůj počítač a potom v kořenové složce tohoto repozitáře zadejte příkaz `docsify serve`. Webová stránka poběží na portu 3000 na vašem localhostu: `localhost:3000`. +Tuto dokumentaci můžete spouštět offline pomocí [Docsify](https://docsify.js.org/#/). Naklonujte si tento repozitář, [nainstalujte Docsify](https://docsify.js.org/#/quickstart) na místní počítač a pak v kořenové složce repozitáře zadejte `docsify serve`. Webová stránka bude dostupná na portu 3000 na vaší lokální adrese: `localhost:3000`. ## PDF -Najdete zde PDF osnovy s odkazy [zde](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Najděte pdf osnovy s odkazy [zde](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Další kurzy +## 🎒 Další kurzy -Náš tým vytváří i další kurzy! Podívejte se na: +Náš tým vytváří i další kurzy! Podívejte se: ### LangChain @@ -181,25 +182,25 @@ Náš tým vytváří i další kurzy! Podívejte se na: [![LangChain pro začátečníky](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agenti +### Azure / Edge / MCP / Agents [![AZD pro začátečníky](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI pro začátečníky](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP pro začátečníky](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agenti pro začátečníky](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agent pro začátečníky](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Série generativní AI -[![Generative AI pro začátečníky](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Série Generativní AI +[![Generativní AI pro začátečníky](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generativní AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generativní AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generativní AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Základní učení [![ML pro začátečníky](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Datová věda pro začátečníky](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science pro začátečníky](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI pro začátečníky](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![Kybernetická bezpečnost pro začátečníky](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![Webový vývoj pro začátečníky](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) @@ -216,22 +217,22 @@ Náš tým vytváří i další kurzy! Podívejte se na: ## Získání pomoci -Pokud uvíznete nebo máte jakékoli otázky ohledně vytváření AI aplikací. Připojte se k ostatním studentům a zkušeným vývojářům k diskuzím o MCP. Je to podpůrná komunita, kde jsou otázky vítány a znalosti jsou sdíleny volně. +Pokud se zaseknete nebo máte otázky ohledně vývoje AI aplikací. Připojte se k ostatním studentům a zkušeným vývojářům v diskuzích o MCP. Je to podpůrná komunita, kde jsou otázky vítány a znalosti se sdílejí volně. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Pokud máte zpětnou vazbu k produktu nebo narazíte na chyby během vývoje, navštivte: +Pokud máte zpětnou vazbu k produktu nebo zaznamenáte chyby při vývoji, navštivte: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Další tipy pro učení -- Po každé lekci si projděte zápisky pro lepší porozumění. -- Procvičujte si implementaci algoritmů samostatně. -- Prozkoumávejte reálné datasety pomocí naučených konceptů. +- Projděte si bloky poznámek po každé lekci pro lepší pochopení. +- Procvičujte implementaci algoritmů sami. +- Prozkoumejte reálné datové sady pomocí naučených konceptů. --- **Prohlášení o vyloučení odpovědnosti**: -Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). I když usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Originální dokument v jeho mateřském jazyce by měl být považován za autoritativní zdroj. Pro zásadní informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za žádná nedorozumění nebo nesprávné výklady vyplývající z použití tohoto překladu. +Tento dokument byl přeložen pomocí AI překladatelské služby [Co-op Translator](https://github.com/Azure/co-op-translator). Ačkoli usilujeme o přesnost, mějte prosím na paměti, že automatizované překlady mohou obsahovat chyby nebo nepřesnosti. Originální dokument v jeho původním jazyce by měl být považován za autoritativní zdroj. Pro kritické informace se doporučuje profesionální lidský překlad. Nejsme odpovědní za jakékoli nedorozumění nebo nesprávné interpretace vyplývající z použití tohoto překladu. \ No newline at end of file diff --git a/translations/da/.co-op-translator.json b/translations/da/.co-op-translator.json index 739bfb414..4194b66da 100644 --- a/translations/da/.co-op-translator.json +++ b/translations/da/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "da" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:57:11+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:34:41+00:00", "source_file": "README.md", "language_code": "da" }, diff --git a/translations/da/README.md b/translations/da/README.md index 805ff4fa8..2525f6d99 100644 --- a/translations/da/README.md +++ b/translations/da/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Fleresproget support +### 🌐 Understøttelse af flere sprog #### Understøttet via GitHub Action (Automatiseret & Altid Opdateret) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](./README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](./README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Foretrækker du at klone lokalt?** > -> Dette repository indeholder over 50 sprogoversættelser, hvilket øger downloadstørrelsen markant. For at klone uden oversættelser, brug sparse checkout: +> Dette repository indeholder 50+ sprogoversættelser, hvilket betydeligt øger downloadstørrelsen. For at klone uden oversættelser, brug sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Dette giver dig alt, hvad du behøver for at gennemføre kurset med en meget hurtigere download. +> Dette giver dig alt, hvad du behøver for at gennemføre kurset med en langt hurtigere download. #### Deltag i vores fællesskab [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Vi har en Discord learn with AI-serie i gang, lær mere og deltag hos [Learn with AI Series](https://aka.ms/learnwithai/discord) fra 18. - 30. september 2025. Du vil få tips og tricks til at bruge GitHub Copilot til Data Science. +Vi har en Discord-serie med læring om AI i gang, lær mere og deltag hos [Learn with AI Series](https://aka.ms/learnwithai/discord) fra 18. - 30. september 2025. Du vil få tips og tricks til brug af GitHub Copilot til Data Science. ![Learn with AI series](../../translated_images/da/3.9b58fd8d6c373c20.webp) -# Maskinlæring for begyndere - Et kursusforløb +# Maskinlæring for begyndere - Et pensum > 🌍 Rejs rundt i verden, mens vi udforsker maskinlæring gennem verdens kulturer 🌍 -Cloud Advocates hos Microsoft er glade for at tilbyde et 12-ugers, 26-lektioners kursusforløb om **Maskinlæring**. I dette kursusforløb lærer du om det, der nogle gange kaldes **klassisk maskinlæring**, hvor vi primært bruger Scikit-learn som bibliotek og undgår deep learning, som dækkes i vores [AI for Beginners' kursusforløb](https://aka.ms/ai4beginners). Kombinér gerne disse lektioner med vores ['Data Science for Beginners'-kursusforløb](https://aka.ms/ds4beginners), også! +Cloud Advocates hos Microsoft er glade for at kunne tilbyde et 12-ugers, 26-lektioners pensum udelukkende om **Maskinlæring**. I dette pensum lærer du om det, der undertiden kaldes **klassisk maskinlæring**, primært ved brug af Scikit-learn som bibliotek og uden dyb læring, som dækkes i vores [AI for Beginners' pensum](https://aka.ms/ai4beginners). Kombiner disse lektioner med vores ['Data Science for Beginners' pensum](https://aka.ms/ds4beginners) også! -Rejs med os rundt i verden, mens vi anvender disse klassiske teknikker på data fra mange forskellige områder af verden. Hver lektion inkluderer pre- og post-quizzer, skriftlige instruktioner til at gennemføre lektionen, en løsning, en opgave og mere. Vores projektbaserede undervisningsmetode lader dig lære mens du bygger, en bevist måde at få nye færdigheder til at "sidde fast". +Rejs med os rundt i verden, mens vi anvender disse klassiske teknikker på data fra mange områder i verden. Hver lektion indeholder quiz før og efter lektionen, skriftlige instruktioner til at gennemføre lektionen, en løsning, en opgave og mere. Vores projektbaserede pædagogik gør det muligt for dig at lære ved at bygge, en bevist metode til at fastholde nye færdigheder. -**✍️ Stort tak til vores forfattere** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu og Amy Boyd +**✍️ Store tak til vores forfattere** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu og Amy Boyd **🎨 Tak også til vores illustratorer** Tomomi Imura, Dasani Madipalli og Jen Looper -**🙏 Særlige tak 🙏 til vores Microsoft Student Ambassador forfattere, anmeldere og indholdsleverandører**, især Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila og Snigdha Agarwal +**🙏 Særlige tak 🙏 til vores Microsoft Student Ambassador-forfattere, anmeldere og indholdsbidragsydere**, navnlig Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila og Snigdha Agarwal **🤩 Ekstra tak til Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi og Vidushi Gupta for vores R-lektioner!** # Kom godt i gang Følg disse trin: -1. **Fork repositoryet**: Klik på "Fork" knappen i øverste højre hjørne af siden. -2. **Klon repositoryet**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Foretag en fork af repository:** Klik på "Fork" knappen øverst til højre på denne side. +2. **Klon repository:** `git clone https://github.com/microsoft/ML-For-Beginners.git` > [find alle yderligere ressourcer til dette kursus i vores Microsoft Learn-samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Brug for hjælp?** Tjek vores [Fejlfinding guide](TROUBLESHOOTING.md) for løsninger på almindelige problemer med installation, opsætning og kørsel af lektioner. +> 🔧 **Brug for hjælp?** Se vores [Fejlfinding Guide](TROUBLESHOOTING.md) for løsninger på almindelige problemer med installation, opsætning og kørsel af lektioner. -**[Studerende](https://aka.ms/student-page)**, for at bruge dette kursusforløb, fork hele repoet til din egen GitHub-konto og gennemfør øvelserne selv eller i gruppe: +**[Studerende](https://aka.ms/student-page)**, for at bruge dette pensum, fork hele repoet til din egen GitHub-konto og gennemfør øvelserne på egen hånd eller i grupper: -- Start med en pre-lecture quiz. -- Læs lektionen og gennemfør aktiviteterne, stop op og reflekter ved hver knowledge check. -- Prøv at skabe projekterne ved at forstå lektionerne fremfor bare at køre løsningskoden; dog er denne kode tilgængelig i `/solution` mapperne i hver projektorienteret lektion. -- Tag post-lecture quizzen. +- Start med en quiz før forelæsningen. +- Læs forelæsningen og gennemfør aktiviteterne, stop op og reflekter ved hver videnskontrol. +- Prøv at skabe projekterne ved at forstå lektionerne i stedet for blot at køre løsningskoden; dog er denne kode tilgængelig i `/solution` mapperne i hver projektorienteret lektion. +- Tag quizzen efter forelæsningen. - Gennemfør udfordringen. - Gennemfør opgaven. -- Efter at have gennemført en lektion gruppe, besøg [Diskussionsforumet](https://github.com/microsoft/ML-For-Beginners/discussions) og "lær højt" ved at udfylde den relevante PAT-skala. En 'PAT' er et progresseringsvurderingsværktøj, som er en rubric du udfylder for at fremme din læring. Du kan også reagere på andres PAT’er, så vi kan lære sammen. +- Efter gennemførelse af en lektion-gruppe, besøg [Diskussionsforumet](https://github.com/microsoft/ML-For-Beginners/discussions) og "lær højt" ved at udfylde den relevante PAT-vurdering. En 'PAT' er et Progress Assessment Tool, som er en vurdering du udfylder for at fremme din læring. Du kan også reagere på andre PAT’er, så vi kan lære sammen. -> Til videre studier anbefaler vi at følge disse [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduler og læringsstier. +> Til yderligere studier anbefaler vi at følge disse [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduler og læringsveje. -**Lærere**, vi har [inkluderet nogle forslag](for-teachers.md) til hvordan I kan bruge dette kursusforløb. +**Undervisere**, vi har [inkluderet nogle forslag](for-teachers.md) til hvordan man kan bruge dette pensum. --- ## Video-gennemgange -Nogle af lektionerne findes som korte videoer. Du kan finde alle disse i linje i lektionerne, eller på [ML for Beginners playlisten på Microsoft Developer YouTube-kanalen](https://aka.ms/ml-beginners-videos) ved at klikke på billedet nedenfor. +Nogle af lektionerne er tilgængelige som korte videoer. Du kan finde alle disse integreret i lektionerne eller på [ML for Beginners playlisterne på Microsoft Developer YouTube kanalen](https://aka.ms/ml-beginners-videos) ved at klikke på billedet nedenfor. [![ML for beginners banner](../../translated_images/da/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -101,79 +101,79 @@ Nogle af lektionerne findes som korte videoer. Du kan finde alle disse i linje i **Gif af** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klik på billedet ovenfor for en video om projektet og de personer, der skabte det! +> 🎥 Klik på billedet ovenfor for en video om projektet og de folk, der skabte det! --- -## Undervisningsmetode +## Pædagogik -Vi har valgt to pædagogiske principper under opbygningen af dette kursusforløb: at sikre at det er praktisk **projektbaseret** og at det inkluderer **hyppige quizzer**. Derudover har dette kursusforløb et fælles **tema** for at skabe sammenhæng. +Vi har valgt to pædagogiske principper, mens vi byggede dette pensum: at sikre at det er praktisk og **projektbaseret**, samt at inkludere **hyppige quizzer**. Desuden har dette pensum et fælles **tema** for at skabe sammenhæng. -Ved at sikre, at indholdet matcher projekter, bliver processen mere engagerende for studerende, og fastholdelse af koncepter øges. Desuden sætter en lavrisiko quiz før en lektion den studerendes intention mod at lære et emne, mens en anden quiz efter lektionen sikrer yderligere fastholdelse. Dette kursusforløb er designet til at være fleksibelt og sjovt og kan tages i sin helhed eller delvist. Projekterne starter småt og bliver gradvist mere komplekse ved afslutningen af 12-ugers perioden. Dette forløb inkluderer også en efterskrift om virkelige anvendelser af ML, som kan bruges som ekstra kredit eller som grundlag for diskussion. +Ved at sikre, at indholdet passer til projekter, bliver processen mere engagerende for studerende og fastholdelse af begreber forbedres. Derudover sætter en lavt indsats quiz før en klasse den studerendes intention om at lære et emne, mens en anden quiz efter klassen sikrer yderligere fastholdelse. Dette pensum er designet til at være fleksibelt og sjovt, og kan tages helt eller delvist. Projekterne starter småt og bliver mere komplekse hen mod slutningen af den 12-ugers cyklus. Dette pensum indeholder også et efterskrift om virkelige anvendelser af ML, som kan benyttes som ekstra point eller som diskussionsgrundlag. -> Find vores [Adfærdskodeks](CODE_OF_CONDUCT.md), [Bidrag](CONTRIBUTING.md), [Oversættelser](..) og [Fejlfinding](TROUBLESHOOTING.md) retningslinjer. Vi byder konstruktiv feedback velkommen! +> Find vores [Adfærdskodeks](CODE_OF_CONDUCT.md), [Bidragsretningslinjer](CONTRIBUTING.md), [Oversættelser](..) og [Fejlfinding](TROUBLESHOOTING.md). Vi byder velkommen til din konstruktive feedback! -## Hver lektion inkluderer +## Hver lektion indeholder -- valgfri skitsenote +- valgfri skitse-notat - valgfri supplerende video - video-gennemgang (kun nogle lektioner) -- [pre-lecture opvarmningsquiz](https://ff-quizzes.netlify.app/en/ml/) -- skreven lektion +- [quiz før forelæsning](https://ff-quizzes.netlify.app/en/ml/) +- skriftlig lektion - for projektbaserede lektioner, trin-for-trin vejledninger til at bygge projektet -- knowledge checks +- videnskontroller - en udfordring -- supplerende læsestof +- supplerende læsning - opgave -- [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) - -> **En note om sprog**: Disse lektioner er primært skrevet i Python, men mange findes også i R. For at gennemføre en R-lektion, gå til `/solution` mappen og find R-lektioner. De har en .rmd-udvidelse, som repræsenterer en **R Markdown** fil, der enkelt kan defineres som en indlejring af `kodeblokke` (af R eller andre sprog) og et `YAML-hoved` (der guider, hvordan output formateres såsom PDF) i et `Markdown dokument`. Dermed tjener det som en fremragende forfatterplatform for data science, fordi det tillader dig at kombinere din kode, dens output og dine tanker ved at skrive dem ned i Markdown. Desuden kan R Markdown dokumenter gengives til outputformater som PDF, HTML eller Word. -> **En note om quizzer**: Alle quizzer findes i [Quiz App folder](../../quiz-app), i alt 52 quizzer med tre spørgsmål i hver. De er linket fra lektionerne, men quiz-appen kan køres lokalt; følg vejledningen i `quiz-app` mappen for lokal hosting eller deployment til Azure. - -| Lesson Number | Emne | Lektion Gruppe | Læringsmål | Linket Lektion | Forfatter | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | -| 01 | Introduktion til maskinlæring | [Introduktion](1-Introduction/README.md) | Lær de grundlæggende begreber bag maskinlæring | [Lektion](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Maskinlæringens historie | [Introduktion](1-Introduction/README.md) | Lær historien bag dette område | [Lektion](1-Introduction/2-history-of-ML/README.md) | Jen og Amy | -| 03 | Retfærdighed og maskinlæring | [Introduktion](1-Introduction/README.md) | Hvad er de vigtige filosofiske spørgsmål omkring retfærdighed, som studerende bør overveje ved udvikling og anvendelse af ML-modeller? | [Lektion](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Teknikker til maskinlæring | [Introduktion](1-Introduction/README.md) | Hvilke teknikker bruger ML-forskere til at bygge ML-modeller? | [Lektion](1-Introduction/4-techniques-of-ML/README.md) | Chris og Jen | -| 05 | Introduktion til regression | [Regression](2-Regression/README.md) | Kom i gang med Python og Scikit-learn for regressionsmodeller | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Nordamerikanske græskarpriser 🎃 | [Regression](2-Regression/README.md) | Visualiser og rens data som forberedelse til ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Nordamerikanske græskarpriser 🎃 | [Regression](2-Regression/README.md) | Byg lineære og polynomielle regressionsmodeller | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen og Dmitry • Eric Wanjau | -| 08 | Nordamerikanske græskarpriser 🎃 | [Regression](2-Regression/README.md) | Byg en logistisk regressionsmodel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | En webapp 🔌 | [Web App](3-Web-App/README.md) | Byg en webapp til at bruge din trænede model | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introduktion til klassifikation | [Classification](4-Classification/README.md) | Rens, forbered og visualiser dine data; introduktion til klassifikation | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen og Cassie • Eric Wanjau | -| 11 | Lækre asiatiske og indiske køkkener 🍜 | [Classification](4-Classification/README.md) | Introduktion til klassifikatorer | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen og Cassie • Eric Wanjau | -| 12 | Lækre asiatiske og indiske køkkener 🍜 | [Classification](4-Classification/README.md) | Flere klassifikatorer | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen og Cassie • Eric Wanjau | -| 13 | Lækre asiatiske og indiske køkkener 🍜 | [Classification](4-Classification/README.md) | Byg en anbefalings-webapp ved brug af din model | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introduktion til klyngedannelse | [Clustering](5-Clustering/README.md) | Rens, forbered og visualiser dine data; introduktion til klyngedannelse | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Udforskning af nigerianske musiksmag 🎧 | [Clustering](5-Clustering/README.md) | Undersøg K-Means klyngemetoden | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introduktion til sprogteknologi ☕️ | [Natural language processing](6-NLP/README.md) | Lær det grundlæggende om NLP ved at bygge en simpel bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Almindelige NLP-opgaver ☕️ | [Natural language processing](6-NLP/README.md) | Fordyb din NLP-viden ved at forstå almindelige opgaver, der kræves ved behandling af sproglige strukturer | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Oversættelse og sentimentanalyse ♥️ | [Natural language processing](6-NLP/README.md) | Oversættelse og sentimentanalyse med Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantiske hoteller i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentanalyse med hotelanmeldelser 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantiske hoteller i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentanalyse med hotelanmeldelser 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introduktion til prognose med tidsserier | [Time series](7-TimeSeries/README.md) | Introduktion til prognose med tidsserier | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Verdens strømforbrug ⚡️ - tidsserieprognose med ARIMA | [Time series](7-TimeSeries/README.md) | Tidsserieprognose med ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Verdens strømforbrug ⚡️ - tidsserieprognose med SVR | [Time series](7-TimeSeries/README.md) | Tidsserieprognose med Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introduktion til forstærkningslæring | [Reinforcement learning](8-Reinforcement/README.md) | Introduktion til forstærkningslæring med Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Hjælp Peter med at undgå ulven! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Forstærkningslæring Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Efterskrift | Virkelige ML-scenarier og -anvendelser | [ML in the Wild](9-Real-World/README.md) | Interessante og afslørende virkelige anvendelser af klassisk ML | [Lektion](9-Real-World/1-Applications/README.md) | Team | -| Efterskrift | Fejlfinding af modeller i ML med RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Fejlfinding af maskinlæringsmodeller vha. Responsible AI-dashboard komponenter | [Lektion](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [find alle yderligere ressourcer til dette kursus i vores Microsoft Learn samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- [quiz efter forelæsning](https://ff-quizzes.netlify.app/en/ml/) +> **En note om sprog**: Disse lektioner er primært skrevet i Python, men mange findes også på R. For at gennemføre en R-lektion skal du gå til `/solution`-mappen og kigge efter R-lektioner. De inkluderer en .rmd-udvidelse, som repræsenterer en **R Markdown**-fil, der kan defineres som en indlejring af `kodeblokke` (af R eller andre sprog) og en `YAML-header` (der styrer, hvordan output såsom PDF formateres) i et `Markdown-dokument`. Som sådan fungerer det som en eksemplarisk forfatterramme til datalogi, da det giver dig mulighed for at kombinere din kode, dens output og dine tanker ved at lade dig skrive dem ned i Markdown. Desuden kan R Markdown-dokumenter gengives til outputformater såsom PDF, HTML eller Word. + +> **En note om quizzer**: Alle quizzer findes i [Quiz App-mappen](../../quiz-app), i alt 52 quizzer med tre spørgsmål hver. De er linket fra lektionerne, men quizappen kan køre lokalt; følg instruktionerne i `quiz-app`-mappen for at hoste lokalt eller implementere til Azure. + +| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | +| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | Introduktion til maskinlæring | [Introduction](1-Introduction/README.md) | Lær de grundlæggende begreber bag maskinlæring | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Maskinlæringens historie | [Introduction](1-Introduction/README.md) | Lær historien bag dette felt | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Retfærdighed og maskinlæring | [Introduction](1-Introduction/README.md) | Hvad er de vigtige filosofiske spørgsmål om retfærdighed, som elever bør overveje, når de bygger og anvender ML-modeller? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Teknikker til maskinlæring | [Introduction](1-Introduction/README.md) | Hvilke teknikker bruger ML-forskere til at bygge ML-modeller? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Introduktion til regression | [Regression](2-Regression/README.md) | Kom i gang med Python og Scikit-learn til regressionsmodeller | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Nordamerikanske græskarpriser 🎃 | [Regression](2-Regression/README.md) | Visualiser og rengør data som forberedelse til ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Nordamerikanske græskarpriser 🎃 | [Regression](2-Regression/README.md) | Byg lineære og polynomiske regressionsmodeller | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | Nordamerikanske græskarpriser 🎃 | [Regression](2-Regression/README.md) | Byg en logistisk regressionsmodel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | En Web App 🔌 | [Web App](3-Web-App/README.md) | Byg en webapp til at bruge din trænede model | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introduktion til klassificering | [Classification](4-Classification/README.md) | Rengør, forbered og visualiser dine data; introduktion til klassificering | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | Lækre asiatiske og indiske køkkener 🍜 | [Classification](4-Classification/README.md) | Introduktion til klassifikatorer | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | Lækre asiatiske og indiske køkkener 🍜 | [Classification](4-Classification/README.md) | Flere klassifikatorer | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | Lækre asiatiske og indiske køkkener 🍜 | [Classification](4-Classification/README.md) | Byg en anbefalings-webapp ved hjælp af din model | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introduktion til clustering | [Clustering](5-Clustering/README.md) | Rengør, forbered og visualiser dine data; introduktion til clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Udforskning af nigerianske musiksmag 🎧 | [Clustering](5-Clustering/README.md) | Udforsk K-Means clustering metoden | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introduktion til naturlig sprogbehandling ☕️ | [Natural language processing](6-NLP/README.md) | Lær det grundlæggende om NLP ved at bygge en simpel bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Almindelige NLP-opgaver ☕️ | [Natural language processing](6-NLP/README.md) | Udvid din NLP-viden ved at forstå almindelige opgaver, der kræves, når man arbejder med sproglige strukturer | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Oversættelse og sentimentanalyse ♥️ | [Natural language processing](6-NLP/README.md) | Oversættelse og sentimentanalyse med Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantiske hoteller i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentanalyse med hotelanmeldelser 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantiske hoteller i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentanalyse med hotelanmeldelser 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introduktion til tidsseriefremskrivning | [Time series](7-TimeSeries/README.md) | Introduktion til tidsseriefremskrivning | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Verdens strømforbrug ⚡️ - tidsseriefremskrivning med ARIMA | [Time series](7-TimeSeries/README.md) | Tidsseriefremskrivning med ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Verdens strømforbrug ⚡️ - tidsseriefremskrivning med SVR | [Time series](7-TimeSeries/README.md) | Tidsseriefremskrivning med Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introduktion til reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduktion til reinforcement learning med Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Hjælp Peter med at undgå ulven! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Virkelige ML-scenarier og applikationer | [ML in the Wild](9-Real-World/README.md) | Interessante og oplysende virkelige applikationer af klassisk ML | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| Postscript | Modelafhjælpning i ML ved hjælp af RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Modelafhjælpning i maskinlæring ved brug af Responsible AI dashboard-komponenter | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [find alle yderligere ressourcer til dette kursus i vores Microsoft Learn-samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offline adgang -Du kan køre denne dokumentation offline ved at bruge [Docsify](https://docsify.js.org/#/). Fork dette repo, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskine, og skriv derefter i roden af dette repo `docsify serve`. Websitet vil blive serveret på port 3000 på din localhost: `localhost:3000`. +Du kan køre denne dokumentation offline ved at bruge [Docsify](https://docsify.js.org/#/). Fork dette repo, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskine, og i rodmappen til dette repo, skriv `docsify serve`. Websitet vil blive serveret på port 3000 på din localhost: `localhost:3000`. ## PDF'er -Find en pdf af pensum med links [her](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Find en pdf af læseplanen med links [her](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Andre kurser +## 🎒 Andre kurser -Vores team producerer andre kurser! Se nærmere på: +Vores team producerer også andre kurser! Se: ### LangChain @@ -182,7 +182,7 @@ Vores team producerer andre kurser! Se nærmere på: [![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents +### Azure / Edge / MCP / Agenter [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -190,49 +190,49 @@ Vores team producerer andre kurser! Se nærmere på: --- -### Generativ AI Serie -[![Generativ AI for Begyndere](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generativ AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generativ AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generativ AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Generativ AI-serie +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Kerne Læring -[![ML for Begyndere](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Begyndere](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Begyndere](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersikkerhed for Begyndere](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Webudvikling for Begyndere](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Begyndere](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Udvikling for Begyndere](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Grundlæggende læring +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Copilot Serie -[![Copilot for AI Parprogrammering](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +### Copilot-serie +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Eventyr](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) + -## Få Hjælp +## Få hjælp -Hvis du sidder fast eller har spørgsmål om at bygge AI-apps. Deltag sammen med andre lærende og erfarne udviklere i diskussioner om MCP. Det er et støttende fællesskab, hvor spørgsmål er velkomne og viden deles frit. +Hvis du sidder fast eller har spørgsmål om at bygge AI-apps. Deltag sammen med andre elever og erfarne udviklere i diskussioner om MCP. Det er et støttende fællesskab, hvor spørgsmål er velkomne, og viden deles frit. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Hvis du har produktfeedback eller fejl under udvikling, besøg: +Hvis du har produktfeedback eller oplever fejl under udvikling, besøg: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Supplerende Læringstips +## Yderligere læringstips -- Gennemgå noter efter hver lektion for bedre forståelse. -- Øv dig i at implementere algoritmer selv. -- Udforsk virkelige datasæt med de lærte koncepter. +- Gennemgå notebooks efter hver lektion for bedre forståelse. +- Øv dig i at implementere algoritmer på egen hånd. +- Udforsk virkelige datasæt ved brug af lærte koncepter. --- **Ansvarsfraskrivelse**: -Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi tilstræber nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. +Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi stræber efter nøjagtighed, bedes du være opmærksom på, at automatiske oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets modersmål bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi er ikke ansvarlige for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse. \ No newline at end of file diff --git a/translations/de/.co-op-translator.json b/translations/de/.co-op-translator.json index 8a11e293e..31bb0df29 100644 --- a/translations/de/.co-op-translator.json +++ b/translations/de/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "de" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:26:23+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:49:20+00:00", "source_file": "README.md", "language_code": "de" }, diff --git a/translations/de/README.md b/translations/de/README.md index 631416558..d24e60841 100644 --- a/translations/de/README.md +++ b/translations/de/README.md @@ -10,14 +10,14 @@ ### 🌐 Mehrsprachige Unterstützung -#### Unterstützt über GitHub Action (Automatisiert & Immer auf dem neuesten Stand) +#### Unterstützt über GitHub Action (Automatisiert & stets aktuell) -[Arabisch](../ar/README.md) | [Bengalisch](../bn/README.md) | [Bulgarisch](../bg/README.md) | [Birma (Myanmar)](../my/README.md) | [Chinesisch (vereinfacht)](../zh-CN/README.md) | [Chinesisch (traditionell, Hongkong)](../zh-HK/README.md) | [Chinesisch (traditionell, Macau)](../zh-MO/README.md) | [Chinesisch (traditionell, Taiwan)](../zh-TW/README.md) | [Kroatisch](../hr/README.md) | [Tschechisch](../cs/README.md) | [Dänisch](../da/README.md) | [Niederländisch](../nl/README.md) | [Estnisch](../et/README.md) | [Finnisch](../fi/README.md) | [Französisch](../fr/README.md) | [Deutsch](./README.md) | [Griechisch](../el/README.md) | [Hebräisch](../he/README.md) | [Hindi](../hi/README.md) | [Ungarisch](../hu/README.md) | [Indonesisch](../id/README.md) | [Italienisch](../it/README.md) | [Japanisch](../ja/README.md) | [Kannada](../kn/README.md) | [Koreanisch](../ko/README.md) | [Litauisch](../lt/README.md) | [Malaiisch](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalesisch](../ne/README.md) | [Nigerianisches Pidgin](../pcm/README.md) | [Norwegisch](../no/README.md) | [Persisch (Farsi)](../fa/README.md) | [Polnisch](../pl/README.md) | [Portugiesisch (Brasilien)](../pt-BR/README.md) | [Portugiesisch (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumänisch](../ro/README.md) | [Russisch](../ru/README.md) | [Serbisch (kyrillisch)](../sr/README.md) | [Slowakisch](../sk/README.md) | [Slowenisch](../sl/README.md) | [Spanisch](../es/README.md) | [Swahili](../sw/README.md) | [Schwedisch](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thailändisch](../th/README.md) | [Türkisch](../tr/README.md) | [Ukrainisch](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamesisch](../vi/README.md) +[Arabisch](../ar/README.md) | [Bengalisch](../bn/README.md) | [Bulgarisch](../bg/README.md) | [Birmanisch (Myanmar)](../my/README.md) | [Chinesisch (vereinfacht)](../zh-CN/README.md) | [Chinesisch (traditionell, Hongkong)](../zh-HK/README.md) | [Chinesisch (traditionell, Macau)](../zh-MO/README.md) | [Chinesisch (traditionell, Taiwan)](../zh-TW/README.md) | [Kroatisch](../hr/README.md) | [Tschechisch](../cs/README.md) | [Dänisch](../da/README.md) | [Niederländisch](../nl/README.md) | [Estnisch](../et/README.md) | [Finnisch](../fi/README.md) | [Französisch](../fr/README.md) | [Deutsch](./README.md) | [Griechisch](../el/README.md) | [Hebräisch](../he/README.md) | [Hindi](../hi/README.md) | [Ungarisch](../hu/README.md) | [Indonesisch](../id/README.md) | [Italienisch](../it/README.md) | [Japanisch](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Koreanisch](../ko/README.md) | [Litauisch](../lt/README.md) | [Malaiisch](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalesisch](../ne/README.md) | [Nigerianisches Pidgin](../pcm/README.md) | [Norwegisch](../no/README.md) | [Persisch (Farsi)](../fa/README.md) | [Polnisch](../pl/README.md) | [Portugiesisch (Brasilien)](../pt-BR/README.md) | [Portugiesisch (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumänisch](../ro/README.md) | [Russisch](../ru/README.md) | [Serbisch (Kyrillisch)](../sr/README.md) | [Slowakisch](../sk/README.md) | [Slowenisch](../sl/README.md) | [Spanisch](../es/README.md) | [Suaheli](../sw/README.md) | [Schwedisch](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thailändisch](../th/README.md) | [Türkisch](../tr/README.md) | [Ukrainisch](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamesisch](../vi/README.md) -> **Lieber lokal klonen?** +> **Bevorzugen Sie das lokale Klonen?** > -> Dieses Repository enthält über 50 Sprachübersetzungen, die die Download-Größe deutlich erhöhen. Um ohne Übersetzungen zu klonen, verwenden Sie Sparse Checkout: +> Dieses Repository enthält über 50 Übersetzungen, was die Downloadgröße erheblich erhöht. Um ohne Übersetzungen zu klonen, verwenden Sie Sparse Checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,147 +33,147 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Das gibt Ihnen alles, was Sie brauchen, um den Kurs viel schneller herunterzuladen. +> So erhalten Sie alles, was Sie brauchen, um den Kurs mit einem viel schnelleren Download abzuschließen. #### Treten Sie unserer Community bei [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Wir veranstalten eine Discord Learn with AI Serie, erfahren Sie mehr und machen Sie mit auf [Learn with AI Series](https://aka.ms/learnwithai/discord) vom 18. bis 30. September 2025. Sie erhalten Tipps und Tricks zur Verwendung von GitHub Copilot für Data Science. +Wir veranstalten eine Discord-Lernserie mit KI, erfahren Sie mehr und nehmen Sie zwischen dem 18. und 30. September 2025 teil unter [Learn with AI Series](https://aka.ms/learnwithai/discord). Sie erhalten Tipps und Tricks zur Nutzung von GitHub Copilot für Data Science. ![Learn with AI series](../../translated_images/de/3.9b58fd8d6c373c20.webp) -# Machine Learning für Anfänger – Ein Curriculum +# Maschinelles Lernen für Anfänger – Ein Lehrplan -> 🌍 Reisen Sie um die Welt, während wir maschinelles Lernen anhand weltweiter Kulturen erkunden 🌍 +> 🌍 Reisen Sie um die Welt, während wir Maschinelles Lernen anhand von Weltkulturen erkunden 🌍 -Cloud Advocates bei Microsoft freuen sich, ein 12-wöchiges Curriculum mit 26 Lektionen rund um **Machine Learning** anzubieten. In diesem Curriculum lernen Sie, was manchmal als **klassisches maschinelles Lernen** bezeichnet wird, hauptsächlich mit der Bibliothek Scikit-learn, und umgehen Deep Learning, das in unserem [AI for Beginners Curriculum](https://aka.ms/ai4beginners) behandelt wird. Kombinieren Sie diese Lektionen auch mit unserem ['Data Science for Beginners Curriculum'](https://aka.ms/ds4beginners)! +Die Cloud Advocates bei Microsoft freuen sich, einen 12-wöchigen Lehrplan mit 26 Lektionen rund um **Maschinelles Lernen** anzubieten. In diesem Lehrplan lernen Sie, was manchmal als **klassisches maschinelles Lernen** bezeichnet wird, wobei hauptsächlich Scikit-learn als Bibliothek verwendet wird und Deep Learning vermieden wird, das im Rahmen unseres [AI for Beginners-Kurrikulums](https://aka.ms/ai4beginners) behandelt wird. Kombinieren Sie diese Lektionen auch mit unserem ['Data Science for Beginners' Lehrplan](https://aka.ms/ds4beginners)! -Reisen Sie mit uns um die Welt, während wir diese klassischen Techniken auf Daten aus vielen Regionen anwenden. Jede Lektion umfasst Vor- und Nachtests, schriftliche Anweisungen zur Durchführung der Lektion, eine Lösung, eine Aufgabe und mehr. Unsere projektbasierte Didaktik ermöglicht es Ihnen, beim Aufbau zu lernen, eine bewährte Methode, damit neue Fähigkeiten „haften bleiben“. +Reisen Sie mit uns um die Welt, während wir diese klassischen Techniken auf Daten aus vielen Regionen der Welt anwenden. Jede Lektion enthält Tests vor und nach der Lektion, schriftliche Anweisungen zur Durchführung der Lektion, eine Lösung, eine Aufgabe und mehr. Unsere projektbasierte Pädagogik ermöglicht Ihnen das Lernen durch Bauen, eine bewährte Methode, um neue Fähigkeiten zu verankern. **✍️ Herzlichen Dank an unsere Autoren** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu und Amy Boyd -**🎨 Dank auch an unsere Illustratoren** Tomomi Imura, Dasani Madipalli und Jen Looper +**🎨 Vielen Dank auch an unsere Illustratoren** Tomomi Imura, Dasani Madipalli und Jen Looper **🙏 Besonderer Dank 🙏 an unsere Microsoft Student Ambassador Autoren, Reviewer und Inhaltsbeitragenden**, insbesondere Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila und Snigdha Agarwal -**🤩 Extra-Dank an Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi und Vidushi Gupta für unsere R-Lektionen!** +**🤩 Extra Dank an die Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi und Vidushi Gupta für unsere R-Lektionen!** # Erste Schritte Folgen Sie diesen Schritten: -1. **Forken Sie das Repository**: Klicken Sie auf den „Fork“-Button oben rechts auf dieser Seite. -2. **Klonen Sie das Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Forken Sie das Repository**: Klicken Sie auf die Schaltfläche „Fork“ oben rechts auf dieser Seite. +2. **Clonen Sie das Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [Finden Sie alle zusätzlichen Ressourcen für diesen Kurs in unserer Microsoft Learn Sammlung](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [finden Sie alle zusätzlichen Ressourcen für diesen Kurs in unserer Microsoft Learn Collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Brauchen Sie Hilfe?** Schauen Sie in unserem [Troubleshooting Guide](TROUBLESHOOTING.md) nach Lösungen für häufige Probleme bei Installation, Einrichtung und Ausführen der Lektionen. +> 🔧 **Brauchen Sie Hilfe?** Schauen Sie in unseren [Troubleshooting Guide](TROUBLESHOOTING.md) für Lösungen zu häufigen Problemen bei Installation, Einrichtung und Ausführung der Lektionen. -**[Schüler](https://aka.ms/student-page)**, um dieses Curriculum zu nutzen, forken Sie das gesamte Repo in Ihr eigenes GitHub-Konto und bearbeiten Sie die Übungen selbst oder in einer Gruppe: +**[Studierende](https://aka.ms/student-page)**, verwenden Sie für diesen Lehrplan das gesamte Repo und bearbeiten Sie die Übungen eigenständig oder in einer Gruppe: -- Beginnen Sie mit einem Pre-Lecture Quiz. -- Lesen Sie die Vorlesung und absolvieren Sie die Aktivitäten, pausieren und reflektieren Sie bei jedem Wissenscheck. -- Versuchen Sie, die Projekte zu erstellen, indem Sie die Lektionen verstehen, anstatt nur den Lösungscode auszuführen; dieser Code ist jedoch in den `/solution`-Ordnern jeder projektbezogenen Lektion verfügbar. -- Machen Sie das Nach-Lecture Quiz. -- Absolvieren Sie die Challenge. -- Bearbeiten Sie die Aufgabe. -- Nach Abschluss einer Lektion besuchen Sie das [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) und „lernen laut“, indem Sie die entsprechende PAT-Bewertung ausfüllen. Ein 'PAT' ist ein Progress Assessment Tool, ein Bewertungsraster, das Sie ausfüllen, um Ihr Lernen zu fördern. Sie können auch auf andere PATs reagieren, sodass wir gemeinsam lernen können. +- Beginnen Sie mit einem Quiz vor der Vorlesung. +- Lesen Sie die Vorlesung und absolvieren Sie die Aktivitäten, pausieren und reflektieren Sie jeweils bei den Wissensüberprüfungen. +- Versuchen Sie, die Projekte durch Verständnis der Lektionen anzulegen, anstatt die Lösungscode einfach auszuführen; dieser Code ist jedoch in den `/solution`-Ordnern jeder projektorientierten Lektion verfügbar. +- Machen Sie das Quiz nach der Vorlesung. +- Bearbeiten Sie die Herausforderung. +- Erledigen Sie die Aufgabe. +- Nach Abschluss einer Lektionengruppe besuchen Sie das [Diskussionsforum](https://github.com/microsoft/ML-For-Beginners/discussions) und „lernen laut“ durch Ausfüllen der passenden PAT-Rubrik. Ein 'PAT' ist ein Fortschrittsbewertungstool, das eine Rubrik ist, die Sie ausfüllen, um Ihr Lernen zu vertiefen. Sie können auch auf andere PATs reagieren, damit wir gemeinsam lernen können. -> Für weiterführende Studien empfehlen wir diese [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) Module und Lernpfade. +> Zum weiteren Lernen empfehlen wir diese [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) Module und Lernpfade. -**Lehrkräfte**, wir haben [einige Vorschläge](for-teachers.md) zur Nutzung dieses Curriculums integriert. +**Lehrkräfte**, wir haben [einige Vorschläge](for-teachers.md) zur Verwendung dieses Lehrplans bereitgestellt. --- -## Video-Anleitungen +## Video-Durchgänge -Einige Lektionen sind als kurze Videos verfügbar. Sie finden diese Inline in den Lektionen oder auf der [ML for Beginners Wiedergabeliste auf dem Microsoft Developer YouTube-Kanal](https://aka.ms/ml-beginners-videos), indem Sie auf das Bild unten klicken. +Einige der Lektionen sind als Kurzvideos verfügbar. Sie finden alle diese Videos direkt in den Lektionen oder in der [ML for Beginners-Playlist auf dem Microsoft Developer YouTube-Kanal](https://aka.ms/ml-beginners-videos), indem Sie auf das Bild unten klicken. [![ML for beginners banner](../../translated_images/de/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Lernen Sie das Team kennen +## Treffen Sie das Team [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif von** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klicken Sie auf das obige Bild, um ein Video über das Projekt und die Personen, die es erstellt haben, zu sehen! +> 🎥 Klicken Sie auf das Bild oben, um ein Video über das Projekt und die Personen, die es erstellt haben, zu sehen! --- -## Didaktik +## Pädagogik -Wir haben bei der Erstellung dieses Curriculums zwei pädagogische Grundsätze gewählt: Es soll praxisnah **projektbasiert** sein und **häufige Quizze** enthalten. Darüber hinaus hat dieses Curriculum ein gemeinsames **Thema**, um ihm Kohärenz zu verleihen. +Beim Erstellen dieses Lehrplans haben wir uns für zwei pädagogische Grundsätze entschieden: Er soll praxisnah **projektbasiert** sein und **häufige Quizfragen** enthalten. Darüber hinaus verfügt der Lehrplan über ein gemeinsames **Thema** für mehr Zusammenhalt. -Indem sichergestellt wird, dass die Inhalte auf Projekte abgestimmt sind, wird der Prozess für die Lernenden ansprechender und das Konzeptverständnis wird verbessert. Zudem setzt ein niedrigschwelliges Quiz vor einer Lektion die Lernabsicht, während ein zweites Quiz nach der Klasse die weitere Behaltensleistung sichert. Dieses Curriculum wurde flexibel und unterhaltsam gestaltet und kann ganz oder teilweise absolviert werden. Die Projekte beginnen klein und werden bis zum Ende des 12-Wochen-Zyklus zunehmend komplexer. Dieses Curriculum enthält auch ein Postskript zu realen Anwendungen von ML, das als Zusatzleistung oder Diskussionsgrundlage genutzt werden kann. +Indem der Inhalt an Projekte gekoppelt wird, wird der Prozess für die Lernenden ansprechender und das Verständnis der Konzepte wird verbessert. Zudem setzt ein Quiz vor einer Lektion die Lernmotivation, während ein zweites Quiz nach der Lektion die weitere Behaltensleistung unterstützt. Dieser Lehrplan wurde so gestaltet, dass er flexibel und unterhaltsam ist und komplett oder teilweise durchgearbeitet werden kann. Die Projekte beginnen klein und werden bis zum Ende des 12-wöchigen Zyklus zunehmend komplexer. Im Lehrplan ist zudem ein Nachwort zu Real-World-Anwendungen von ML enthalten, das als Bonus oder Diskussionsgrundlage genutzt werden kann. -> Finden Sie unseren [Verhaltenskodex](CODE_OF_CONDUCT.md), [Mitwirkende](CONTRIBUTING.md), [Übersetzungen](..) und [Fehlerbehebung](TROUBLESHOOTING.md) Leitfäden. Wir freuen uns über Ihr konstruktives Feedback! +> Finden Sie unseren [Verhaltenskodex](CODE_OF_CONDUCT.md), [Beitragsleitfaden](CONTRIBUTING.md), [Übersetzungen](..) und [Troubleshooting](TROUBLESHOOTING.md). Wir freuen uns über Ihr konstruktives Feedback! ## Jede Lektion enthält -- optionale Sketchnote +- optionales Sketchnote - optionales ergänzendes Video -- Video-Anleitung (nur einige Lektionen) -- [Pre-Lecture Warmup Quiz](https://ff-quizzes.netlify.app/en/ml/) +- Video-Durchgang (nur einige Lektionen) +- [Quiz vor der Vorlesung](https://ff-quizzes.netlify.app/en/ml/) - schriftliche Lektion -- für projektbasierte Lektionen Schritt-für-Schritt-Anleitungen zum Projektaufbau +- bei projektbasierten Lektionen Schritt-für-Schritt-Anleitungen zum Erstellen des Projekts - Wissensüberprüfungen - eine Herausforderung - ergänzende Lektüre - Aufgabe -- [Post-Lecture Quiz](https://ff-quizzes.netlify.app/en/ml/) - -> **Ein Hinweis zu Sprachen**: Diese Lektionen sind hauptsächlich in Python geschrieben, aber viele sind auch in R verfügbar. Um eine R-Lektion abzuschließen, gehen Sie zum `/solution`-Ordner und suchen Sie nach R-Lektionen. Sie haben eine .rmd-Erweiterung, die eine **R Markdown**-Datei darstellt, welche als Einbettung von `Code-Chunks` (von R oder anderen Sprachen) und einem `YAML-Header` (der steuert, wie Ausgaben wie PDF formatiert werden) in einem `Markdown-Dokument` definiert werden kann. Somit dient es als beispielhaftes Autoren-Framework für Data Science, da Sie damit Ihren Code, die Ausgabe und Ihre Gedanken kombinieren können, indem Sie diese im Markdown-Format notieren. Zudem können R Markdown-Dokumente in Ausgabeformate wie PDF, HTML oder Word gerendert werden. -> **Ein Hinweis zu den Quizzen**: Alle Quizze sind im Ordner [Quiz App](../../quiz-app) enthalten, insgesamt 52 Quizze mit jeweils drei Fragen. Sie sind aus den Lektionen verlinkt, aber die Quiz-App kann lokal ausgeführt werden; folgen Sie den Anweisungen im Ordner `quiz-app`, um sie lokal zu hosten oder in Azure bereitzustellen. - -| Lesson Number | Thema | Lektion Gruppe | Lernziele | Verlinkte Lektion | Autor | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Einführung in maschinelles Lernen | [Einführung](1-Introduction/README.md) | Lernen Sie die Grundkonzepte hinter dem maschinellen Lernen | [Lektion](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Die Geschichte des maschinellen Lernens | [Einführung](1-Introduction/README.md) | Lernen Sie die Geschichte dieses Fachgebiets | [Lektion](1-Introduction/2-history-of-ML/README.md) | Jen und Amy | -| 03 | Fairness und maschinelles Lernen | [Einführung](1-Introduction/README.md) | Welche wichtigen philosophischen Fragen zur Fairness sollten Studierende bei der Entwicklung und Anwendung von ML-Modellen bedenken? | [Lektion](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniken des maschinellen Lernens | [Einführung](1-Introduction/README.md) | Welche Techniken verwenden ML-Forscher, um ML-Modelle zu erstellen? | [Lektion](1-Introduction/4-techniques-of-ML/README.md) | Chris und Jen | -| 05 | Einführung in Regression | [Regression](2-Regression/README.md) | Einstieg in Python und Scikit-learn für Regressionsmodelle | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Nordamerikanische Kürbisspreise 🎃 | [Regression](2-Regression/README.md) | Daten visualisieren und bereinigen zur Vorbereitung auf ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Nordamerikanische Kürbisspreise 🎃 | [Regression](2-Regression/README.md) | Lineare und polynomiale Regressionsmodelle erstellen | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen und Dmitry • Eric Wanjau | -| 08 | Nordamerikanische Kürbisspreise 🎃 | [Regression](2-Regression/README.md) | Ein logistisches Regressionsmodell erstellen | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Eine Web-App 🔌 | [Web App](3-Web-App/README.md) | Erstellen Sie eine Web-App zur Nutzung Ihres trainierten Modells | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Einführung in Klassifikation | [Classification](4-Classification/README.md) | Ihre Daten bereinigen, vorbereiten und visualisieren; Einführung in die Klassifikation | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | Köstliche asiatische und indische Küchen 🍜 | [Classification](4-Classification/README.md) | Einführung in Klassifikatoren | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | Köstliche asiatische und indische Küchen 🍜 | [Classification](4-Classification/README.md) | Weitere Klassifikatoren | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | Köstliche asiatische und indische Küchen 🍜 | [Classification](4-Classification/README.md) | Erstellen Sie eine Empfehlungs-Web-App mit Ihrem Modell | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Einführung in Clustering | [Clustering](5-Clustering/README.md) | Ihre Daten bereinigen, vorbereiten und visualisieren; Einführung in Clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Erkundung des nigerianischen Musikgeschmacks 🎧 | [Clustering](5-Clustering/README.md) | Erforschen Sie die K-Means Clustering-Methode | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Einführung in die Verarbeitung natürlicher Sprache ☕️ | [Natural language processing](6-NLP/README.md) | Lernen Sie die Grundlagen der NLP, indem Sie einen einfachen Bot erstellen | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Häufige NLP-Aufgaben ☕️ | [Natural language processing](6-NLP/README.md) | Vertiefen Sie Ihr NLP-Wissen durch das Verständnis häufiger Aufgaben beim Umgang mit Sprachstrukturen | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Übersetzung und Sentiment-Analyse ♥️ | [Natural language processing](6-NLP/README.md) | Übersetzung und Sentiment-Analyse mit Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantische Hotels in Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment-Analyse mit Hotelbewertungen 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantische Hotels in Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment-Analyse mit Hotelbewertungen 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Einführung in Zeitreihen-Prognosen | [Time series](7-TimeSeries/README.md) | Einführung in die Zeitreihen-Prognose | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Weltstromverbrauch ⚡️ - Zeitreihen-Prognose mit ARIMA | [Time series](7-TimeSeries/README.md) | Zeitreihen-Prognose mit ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Weltstromverbrauch ⚡️ - Zeitreihen-Prognose mit SVR | [Time series](7-TimeSeries/README.md) | Zeitreihen-Prognose mit Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Einführung in Verstärkendes Lernen | [Reinforcement learning](8-Reinforcement/README.md) | Einführung in Verstärkendes Lernen mit Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Hilf Peter, den Wolf zu vermeiden! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Verstärkendes Lernen Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | ML-Szenarien und Anwendungen aus der Praxis | [ML in the Wild](9-Real-World/README.md) | Interessante und aufschlussreiche Anwendungen von klassischem ML in der Praxis | [Lektion](9-Real-World/1-Applications/README.md) | Team | -| Postscript | Modell-Debugging in ML mit RAI Dashboard | [ML in the Wild](9-Real-World/README.md) | Modell-Debugging im maschinellen Lernen mit Komponenten des Responsible AI Dashboards | [Lektion](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [finden Sie alle zusätzlichen Ressourcen für diesen Kurs in unserer Microsoft Learn Sammlung](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- [Quiz nach der Vorlesung](https://ff-quizzes.netlify.app/en/ml/) +> **Eine Anmerkung zu den Sprachen**: Diese Lektionen sind hauptsächlich in Python verfasst, aber viele sind auch in R verfügbar. Um eine R-Lektion abzuschließen, gehen Sie in den Ordner `/solution` und suchen Sie nach R-Lektionen. Diese haben die Endung .rmd, was eine **R Markdown**-Datei darstellt, die einfach als Einbettung von `Codeblöcken` (in R oder anderen Sprachen) und einem `YAML-Kopf` (der angibt, wie Ausgaben wie PDF formatiert werden) in einem `Markdown-Dokument` definiert werden kann. Somit dient sie als beispielhaftes Autorensystem für Data Science, da sie es Ihnen ermöglicht, Ihren Code, dessen Ausgabe und Ihre Gedanken zu kombinieren, indem Sie diese in Markdown niederschreiben. Darüber hinaus können R Markdown-Dokumente in Ausgabeformate wie PDF, HTML oder Word gerendert werden. + +> **Eine Anmerkung zu Quizzen**: Alle Quizze sind im Ordner [Quiz App folder](../../quiz-app) enthalten, insgesamt 52 Quizze mit jeweils drei Fragen. Sie sind in den Lektionen verlinkt, aber die Quiz-App kann auch lokal ausgeführt werden; folgen Sie der Anleitung im Ordner `quiz-app`, um sie lokal zu hosten oder auf Azure bereitzustellen. + +| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | +| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | Einführung in maschinelles Lernen | [Introduction](1-Introduction/README.md) | Lernen Sie die grundlegenden Konzepte des maschinellen Lernens | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Die Geschichte des maschinellen Lernens | [Introduction](1-Introduction/README.md) | Lernen Sie die zugrundeliegende Geschichte dieses Feldes | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen und Amy | +| 03 | Fairness und maschinelles Lernen | [Introduction](1-Introduction/README.md) | Welche wichtigen philosophischen Fragen zur Fairness sollten Studierende beim Erstellen und Anwenden von ML-Modellen bedenken? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniken für maschinelles Lernen | [Introduction](1-Introduction/README.md) | Welche Techniken verwenden ML-Forscher, um ML-Modelle zu erstellen? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris und Jen | +| 05 | Einführung in die Regression | [Regression](2-Regression/README.md) | Einstieg in Python und Scikit-learn für Regressionsmodelle | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Nordamerikanische Kürbisspreise 🎃 | [Regression](2-Regression/README.md) | Daten visualisieren und bereinigen zur Vorbereitung für ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Nordamerikanische Kürbisspreise 🎃 | [Regression](2-Regression/README.md) | Lineare und polynomiale Regressionsmodelle erstellen | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen und Dmitry • Eric Wanjau | +| 08 | Nordamerikanische Kürbisspreise 🎃 | [Regression](2-Regression/README.md) | Ein logistisches Regressionsmodell aufbauen | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Eine Web-App 🔌 | [Web App](3-Web-App/README.md) | Eine Web-App erstellen, um Ihr trainiertes Modell zu verwenden | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Einführung in die Klassifikation | [Classification](4-Classification/README.md) | Daten bereinigen, vorbereiten und visualisieren; Einführung in Klassifikation | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen und Cassie • Eric Wanjau | +| 11 | Köstliche asiatische und indische Küchen 🍜 | [Classification](4-Classification/README.md) | Einführung in Klassifizierer | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen und Cassie • Eric Wanjau | +| 12 | Köstliche asiatische und indische Küchen 🍜 | [Classification](4-Classification/README.md) | Weitere Klassifizierer | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen und Cassie • Eric Wanjau | +| 13 | Köstliche asiatische und indische Küchen 🍜 | [Classification](4-Classification/README.md) | Eine Empfehlungs-Web-App mit Ihrem Modell bauen | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Einführung in das Clustering | [Clustering](5-Clustering/README.md) | Daten bereinigen, vorbereiten und visualisieren; Einführung in Clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Erkundung nigerianischer Musikgeschmäcker 🎧 | [Clustering](5-Clustering/README.md) | Die K-Means-Clustering-Methode erkunden | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Einführung in die natürliche Sprachverarbeitung ☕️ | [Natural language processing](6-NLP/README.md) | Grundlagen der NLP lernen, indem Sie einen einfachen Bot erstellen | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Übliche NLP-Aufgaben ☕️ | [Natural language processing](6-NLP/README.md) | Vertiefen Sie Ihr NLP-Wissen, indem Sie häufige Aufgaben verstehen, die beim Umgang mit Sprachstrukturen notwendig sind | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Übersetzung und Sentiment-Analyse ♥️ | [Natural language processing](6-NLP/README.md) | Übersetzung und Sentiment-Analyse mit Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantische Hotels in Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment-Analyse mit Hotelbewertungen 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantische Hotels in Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentiment-Analyse mit Hotelbewertungen 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Einführung in die Zeitreihenprognose | [Time series](7-TimeSeries/README.md) | Einführung in Zeitreihenprognosen | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Weltweiter Stromverbrauch ⚡️ - Zeitreihenprognose mit ARIMA | [Time series](7-TimeSeries/README.md) | Zeitreihenprognose mit ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Weltweiter Stromverbrauch ⚡️ - Zeitreihenprognose mit SVR | [Time series](7-TimeSeries/README.md) | Zeitreihenprognose mit Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Einführung in das Reinforcement Learning | [Reinforcement learning](8-Reinforcement/README.md) | Einführung in Reinforcement Learning mit Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Helfen Sie Peter, dem Wolf zu entkommen! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement Learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Real-World ML-Szenarien und Anwendungen | [ML in the Wild](9-Real-World/README.md) | Interessante und aufschlussreiche Anwendungsfälle klassischer ML | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| Postscript | Modell-Debugging in ML mit dem RAI-Dashboard | [ML in the Wild](9-Real-World/README.md) | Modell-Debugging im maschinellen Lernen mit Komponenten des Responsible AI Dashboards | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [Finden Sie alle zusätzlichen Ressourcen für diesen Kurs in unserer Microsoft Learn Sammlung](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offline-Zugriff -Sie können diese Dokumentation offline mit [Docsify](https://docsify.js.org/#/) ausführen. Forken Sie dieses Repository, [installieren Sie Docsify](https://docsify.js.org/#/quickstart) auf Ihrem lokalen Rechner, und geben Sie dann im Stammverzeichnis dieses Repos den Befehl `docsify serve` ein. Die Website wird auf Port 3000 auf Ihrem lokalen Host bereitgestellt: `localhost:3000`. +Sie können diese Dokumentation offline mit [Docsify](https://docsify.js.org/#/) ausführen. Forken Sie dieses Repository, [installieren Sie Docsify](https://docsify.js.org/#/quickstart) auf Ihrem lokalen Rechner, und geben Sie dann im Hauptverzeichnis dieses Repositorys `docsify serve` ein. Die Webseite wird lokal auf Port 3000 verfügbar sein: `localhost:3000`. ## PDFs -Finden Sie hier eine PDF des Lehrplans mit Links [hier](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Ein PDF des Lehrplans mit Links finden Sie [hier](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Weitere Kurse +## 🎒 Andere Kurse -Unser Team erstellt weitere Kurse! Schauen Sie mal rein: +Unser Team produziert weitere Kurse! Sehen Sie sich an: ### LangChain @@ -185,12 +185,12 @@ Unser Team erstellt weitere Kurse! Schauen Sie mal rein: ### Azure / Edge / MCP / Agents [![AZD für Anfänger](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI für Anfänger](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP für Anfänger](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![KI-Agenten für Anfänger](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP für Einsteiger](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![KI-Agenten für Einsteiger](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative KI-Reihe +### Generative KI-Serie [![Generative KI für Einsteiger](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative KI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative KI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) @@ -198,7 +198,7 @@ Unser Team erstellt weitere Kurse! Schauen Sie mal rein: --- -### Kernlernangebote +### Kernlernen [![ML für Einsteiger](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Datenwissenschaft für Einsteiger](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![KI für Einsteiger](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -209,30 +209,30 @@ Unser Team erstellt weitere Kurse! Schauen Sie mal rein: --- -### Copilot-Reihe -[![Copilot für KI-Paarprogrammierung](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +### Copilot-Serie +[![Copilot für KI-Paarkedank Programmierung](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot für C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot-Abenteuer](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Hilfe erhalten -Wenn du nicht weiterkommst oder Fragen zum Erstellen von KI-Anwendungen hast. Tritt anderen Lernenden und erfahrenen Entwicklern bei, um über MCP zu diskutieren. Es ist eine unterstützende Gemeinschaft, in der Fragen willkommen sind und Wissen frei geteilt wird. +Wenn Sie stecken bleiben oder Fragen zum Erstellen von KI-Anwendungen haben, nehmen Sie an Diskussionen über MCP mit anderen Lernenden und erfahrenen Entwicklern teil. Es ist eine unterstützende Gemeinschaft, in der Fragen willkommen sind und Wissen frei geteilt wird. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Wenn du Produktfeedback hast oder Fehler beim Entwickeln auftreten, besuche: +Wenn Sie Produktfeedback oder Fehler beim Erstellen haben, besuchen Sie: -[![Microsoft Foundry Entwicklerforum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Zusätzliche Lerntipps -- Überprüfe nach jeder Lektion die Notebooks für ein besseres Verständnis. -- Übe das Implementieren von Algorithmen selbstständig. -- Erkunde reale Datensätze mithilfe der gelernten Konzepte. +- Überprüfen Sie Notizbücher nach jeder Lektion für ein besseres Verständnis. +- Üben Sie die Implementierung von Algorithmen selbst. +- Erkunden Sie reale Datensätze unter Verwendung der gelernten Konzepte. --- **Haftungsausschluss**: -Dieses Dokument wurde mithilfe des KI-Übersetzungsdienstes [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, kann es bei automatischen Übersetzungen zu Fehlern oder Ungenauigkeiten kommen. Das Originaldokument in seiner Ursprungssprache ist als maßgebliche Quelle zu betrachten. Für wichtige Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die durch die Nutzung dieser Übersetzung entstehen. +Dieses Dokument wurde mit dem KI-Übersetzungsdienst [Co-op Translator](https://github.com/Azure/co-op-translator) übersetzt. Obwohl wir uns um Genauigkeit bemühen, beachten Sie bitte, dass automatisierte Übersetzungen Fehler oder Ungenauigkeiten enthalten können. Das Originaldokument in seiner Ursprungssprache ist als maßgebliche Quelle zu betrachten. Für kritische Informationen wird eine professionelle menschliche Übersetzung empfohlen. Wir übernehmen keine Haftung für Missverständnisse oder Fehlinterpretationen, die aus der Verwendung dieser Übersetzung entstehen. \ No newline at end of file diff --git a/translations/el/.co-op-translator.json b/translations/el/.co-op-translator.json index 2788175cd..989c7daa3 100644 --- a/translations/el/.co-op-translator.json +++ b/translations/el/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "el" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:43:37+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:27:29+00:00", "source_file": "README.md", "language_code": "el" }, diff --git a/translations/el/README.md b/translations/el/README.md index 4834c3062..a342fb3d5 100644 --- a/translations/el/README.md +++ b/translations/el/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Υποστήριξη Πολύγλωσσης +### 🌐 Υποστήριξη Πολλών Γλωσσών #### Υποστηρίζεται μέσω GitHub Action (Αυτοματοποιημένο & Πάντα Ενημερωμένο) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](./README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Αραβικά](../ar/README.md) | [Μπενγκάλι](../bn/README.md) | [Βουλγαρικά](../bg/README.md) | [Βιρμανικά (Μιανμάρ)](../my/README.md) | [Κινέζικα (Απλοποιημένα)](../zh-CN/README.md) | [Κινέζικα (Παραδοσιακά, Χονγκ Κονγκ)](../zh-HK/README.md) | [Κινέζικα (Παραδοσιακά, Μακάου)](../zh-MO/README.md) | [Κινέζικα (Παραδοσιακά, Ταϊβάν)](../zh-TW/README.md) | [Κροατικά](../hr/README.md) | [Τσέχικα](../cs/README.md) | [Δανέζικα](../da/README.md) | [Ολλανδικά](../nl/README.md) | [Εσθονικά](../et/README.md) | [Φινλανδικά](../fi/README.md) | [Γαλλικά](../fr/README.md) | [Γερμανικά](../de/README.md) | [Ελληνικά](./README.md) | [Εβραϊκά](../he/README.md) | [Χίντι](../hi/README.md) | [Ουγγρικά](../hu/README.md) | [Ινδονησιακά](../id/README.md) | [Ιταλικά](../it/README.md) | [Γιαπωνέζικα](../ja/README.md) | [Κανάντα](../kn/README.md) | [Κχαμερ](../km/README.md) | [Κορεατικά](../ko/README.md) | [Λιθουανικά](../lt/README.md) | [Μαλέι](../ms/README.md) | [Μαλαγιαλάμ](../ml/README.md) | [Μαράθι](../mr/README.md) | [Νεπάλι](../ne/README.md) | [Νιγηριανή Πίνγκιν](../pcm/README.md) | [Νορβηγικά](../no/README.md) | [Περσικά (Φαρσί)](../fa/README.md) | [Πολωνικά](../pl/README.md) | [Πορτογαλικά (Βραζιλία)](../pt-BR/README.md) | [Πορτογαλικά (Πορτογαλία)](../pt-PT/README.md) | [Πουντζάμπι (Γκουρμούκι)](../pa/README.md) | [Ρουμανικά](../ro/README.md) | [Ρωσικά](../ru/README.md) | [Σερβικά (Κυριλλικά)](../sr/README.md) | [Σλοβακικά](../sk/README.md) | [Σλοβενικά](../sl/README.md) | [Ισπανικά](../es/README.md) | [Σουαχίλι](../sw/README.md) | [Σουηδικά](../sv/README.md) | [Ταγκάλογκ (Φιλιππινέζικα)](../tl/README.md) | [Ταμίλ](../ta/README.md) | [Τελούγκου](../te/README.md) | [Ταϊλανδικά](../th/README.md) | [Τουρκικά](../tr/README.md) | [Ουκρανικά](../uk/README.md) | [Ουρντού](../ur/README.md) | [Βιετναμέζικα](../vi/README.md) > **Προτιμάτε να κάνετε τοπικό κλώνο;** > -> Αυτό το αποθετήριο περιλαμβάνει πάνω από 50 μεταφράσεις, που αυξάνουν σημαντικά το μέγεθος λήψης. Για να κλωνοποιήσετε χωρίς τις μεταφράσεις, χρησιμοποιήστε το sparse checkout: +> Αυτό το αποθετήριο περιλαμβάνει πάνω από 50 μεταφράσεις γλωσσών, που αυξάνουν σημαντικά το μέγεθος λήψης. Για να κάνετε κλώνο χωρίς μεταφράσεις, χρησιμοποιήστε το sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,62 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Αυτό σας παρέχει όλα όσα χρειάζεστε για να ολοκληρώσετε το μάθημα με πολύ γρηγορότερη λήψη. +> Αυτό σας δίνει όλα όσα χρειάζεστε για να ολοκληρώσετε το μάθημα με πολύ πιο γρήγορη λήψη. -#### Ενταχθείτε στην Κοινότητά μας +#### Συμμετάσχετε στην Κοινότητά μας [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Διαθέτουμε μια σειρά Discord μάθησης με AI που εκτυλίσσεται, μάθετε περισσότερα και ενταχθείτε μαζί μας στο [Learn with AI Series](https://aka.ms/learnwithai/discord) από 18 έως 30 Σεπτεμβρίου 2025. Θα πάρετε συμβουλές και κόλπα χρήσης του GitHub Copilot για Data Science. +Διαρκεί μια σειρά Discord "Μάθετε με AI" που τρέχει, μάθετε περισσότερα και συμμετάσχετε στο [Learn with AI Series](https://aka.ms/learnwithai/discord) από 18 - 30 Σεπτεμβρίου 2025. Θα λάβετε συμβουλές και κόλπα για τη χρήση του GitHub Copilot για Data Science. ![Learn with AI series](../../translated_images/el/3.9b58fd8d6c373c20.webp) # Μηχανική Μάθηση για Αρχάριους - Ένα Πρόγραμμα Σπουδών -> 🌍 Ταξιδέψτε σε όλο τον κόσμο ενώ εξερευνούμε τη Μηχανική Μάθηση μέσω των πολιτισμών του κόσμου 🌍 +> 🌍 Ταξιδέψτε γύρω από τον κόσμο εξερευνώντας τη Μηχανική Μάθηση μέσα από τους πολιτισμούς του κόσμου 🌍 -Οι Cloud Advocates της Microsoft είναι στην ευχάριστη θέση να προσφέρουν ένα πρόγραμμα σπουδών 12 εβδομάδων, με 26 μαθήματα, που αφορά αποκλειστικά τη **Μηχανική Μάθηση**. Σε αυτό το πρόγραμμα θα μάθετε για την λεγόμενη **κλασική μηχανική μάθηση**, χρησιμοποιώντας κυρίως τη βιβλιοθήκη Scikit-learn και αποφεύγοντας τη βαθιά μάθηση, η οποία καλύπτεται στο [πρόγραμμα AI για Αρχάριους](https://aka.ms/ai4beginners). Συνδυάστε αυτά τα μαθήματα με το πρόγραμμα ['Data Science για Αρχάριους'](https://aka.ms/ds4beginners)! +Οι Cloud Advocates της Microsoft χαίρονται να προσφέρουν ένα πρόγραμμα 12 εβδομάδων, 26 μαθημάτων, που αφορά τη **Μηχανική Μάθηση**. Σε αυτό το πρόγραμμα, θα μάθετε για εκείνο που μερικές φορές αποκαλείται **κλασική μηχανική μάθηση**, χρησιμοποιώντας κυρίως τη βιβλιοθήκη Scikit-learn και αποφεύγοντας το deep learning, που καλύπτεται στο [Πρόγραμμα Σπουδών Τεχνητής Νοημοσύνης για Αρχάριους](https://aka.ms/ai4beginners). Συνδυάστε αυτά τα μαθήματα με το [Πρόγραμμα Σπουδών «Επιστήμη Δεδομένων για Αρχάριους»](https://aka.ms/ds4beginners), επίσης! -Ταξιδέψτε μαζί μας σε όλο τον κόσμο καθώς εφαρμόζουμε αυτές τις κλασικές τεχνικές σε δεδομένα από πολλές περιοχές του κόσμου. Κάθε μάθημα περιλαμβάνει προ- και μετα- τεστ, γραπτές οδηγίες για την ολοκλήρωση του μαθήματος, λύση, εργασία και άλλα. Η μαθησιακή μας μέθοδος βασισμένη σε έργα σάς επιτρέπει να μαθαίνετε παράλληλα με τη δημιουργία, ένας αποδεδειγμένος τρόπος να στεριώσουν οι νέες δεξιότητες. +Ταξιδέψτε μαζί μας γύρω από τον κόσμο καθώς εφαρμόζουμε αυτές τις κλασικές τεχνικές σε δεδομένα από πολλές περιοχές του κόσμου. Κάθε μάθημα περιλαμβάνει κουίζ πριν και μετά το μάθημα, γραπτές οδηγίες για την ολοκλήρωση του μαθήματος, λύση, ανάθεση εργασίας και άλλα. Η παιδαγωγική μας με βάση έργα σας επιτρέπει να μαθαίνετε ενώ κατασκευάζετε, ένας αποδεδειγμένος τρόπος ώστε οι νέες δεξιότητες να μένουν. -**✍️ Θερμές ευχαριστίες στους συγγραφείς μας** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu και Amy Boyd +**✍️ Θερμές ευχαριστίες στους δημιουργούς μας** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu και Amy Boyd -**🎨 Ευχαριστούμε επίσης τους εικονογράφους μας** Tomomi Imura, Dasani Madipalli και Jen Looper +**🎨 Ευχαριστίες επίσης στους εικονογράφους μας** Tomomi Imura, Dasani Madipalli, και Jen Looper -**🙏 Ιδιαίτερες ευχαριστίες 🙏 στους πρέσβεις φοιτητές της Microsoft που συνέγραψαν, αξιολόγησαν και συνέβαλαν στο περιεχόμενο**, κυρίως Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila και Snigdha Agarwal +**🙏 Ειδικές ευχαριστίες 🙏 στους Microsoft Student Ambassador δημιουργούς, αξιολογητές, και συντελεστές περιεχομένου**, ιδιαίτερα στους Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, και Snigdha Agarwal -**🤩 Επιπλέον ευγνωμοσύνη στους πρέσβεις φοιτητές της Microsoft Eric Wanjau, Jasleen Sondhi και Vidushi Gupta για τα μαθήματα R!** +**🤩 Επιπλέον ευγνωμοσύνη στους Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, και Vidushi Gupta για τα μαθήματα R!** # Ξεκινώντας -Ακολουθήστε αυτά τα βήματα: -1. **Κάντε Fork το Αποθετήριο**: Κάντε κλικ στο κουμπί "Fork" στην πάνω δεξιά γωνία αυτής της σελίδας. -2. **Κλωνοποιήστε το Αποθετήριο**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +Ακολουθήστε τα βήματα: +1. **Κλωνοποιήστε το Αποθετήριο**: Κάντε κλικ στο κουμπί "Fork" στην πάνω δεξιά γωνία αυτής της σελίδας. +2. **Κλωνοποιήστε το Αποθετήριο**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [βρείτε όλους τους επιπλέον πόρους για αυτό το μάθημα στη συλλογή του Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [Βρείτε όλα τα πρόσθετα υλικά για αυτό το μάθημα στη συλλογή Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Χρειάζεστε βοήθεια;** Ελέγξτε τον [Οδηγό Αντιμετώπισης Προβλημάτων](TROUBLESHOOTING.md) για λύσεις σε συχνά ζητήματα με την εγκατάσταση, ρύθμιση και εκτέλεση μαθημάτων. +> 🔧 **Χρειάζεστε βοήθεια;** Ελέγξτε τον [Οδηγό Αντιμετώπισης Προβλημάτων](TROUBLESHOOTING.md) για λύσεις σε κοινά ζητήματα εγκατάστασης, ρύθμισης και εκτέλεσης μαθημάτων. +**[Φοιτητές](https://aka.ms/student-page)**, για να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών, κάντε fork ολόκληρο το repo στον δικό σας λογαριασμό GitHub και ολοκληρώστε τις ασκήσεις μόνοι σας ή με ομάδα: -**[Φοιτητές](https://aka.ms/student-page)**, για να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών, κάντε fork το πλήρες αποθετήριο στον δικό σας λογαριασμό GitHub και ολοκληρώστε τις ασκήσεις μόνοι ή σε ομάδα: - -- Ξεκινήστε με ένα quiz πριν το μάθημα. -- Διαβάστε το μάθημα και ολοκληρώστε τις δραστηριότητες, κάνοντας παύσεις και σκεφτόμενοι σε κάθε εξέταση γνώσης. -- Προσπαθήστε να δημιουργήσετε τα έργα κατανοώντας τα μαθήματα αντί να τρέχετε απλώς τον κώδικα λύσης. Ωστόσο, ο κώδικας αυτός είναι διαθέσιμος στους φακέλους `/solution` σε κάθε μάθημα που βασίζεται σε έργο. -- Κάντε το quiz μετά το μάθημα. +- Ξεκινήστε με ένα κουίζ προ-διάλεξης. +- Διαβάστε τη διάλεξη και ολοκληρώστε τις δραστηριότητες, σταματώντας και αναλογιζόμενοι σε κάθε έλεγχο γνώσης. +- Προσπαθήστε να δημιουργήσετε τα έργα κατανοώντας τα μαθήματα παρά να τρέχετε τον κώδικα λύσης· όμως αυτός ο κώδικας είναι διαθέσιμος στους φακέλους `/solution` σε κάθε μάθημα προσανατολισμένο σε έργο. +- Κάντε το κουίζ μετά τη διάλεξη. - Ολοκληρώστε την πρόκληση. -- Ολοκληρώστε την εργασία. -- Μετά την ολοκλήρωση μιας ομάδας μαθημάτων, επισκεφθείτε το [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) και "μάθετε δυνατά" συμπληρώνοντας τη σχετική φόρμα PAT. Το 'PAT' είναι ένα Εργαλείο Αξιολόγησης Προόδου που συμπληρώνετε για να προωθήσετε τη μάθησή σας. Μπορείτε επίσης να αντιδράσετε σε άλλα PAT ώστε να μαθαίνουμε όλοι μαζί. +- Ολοκληρώστε την ανάθεση εργασίας. +- Μετά την ολοκλήρωση ενός συνόλου μαθημάτων, επισκεφθείτε το [Πίνακα Συζητήσεων](https://github.com/microsoft/ML-For-Beginners/discussions) και "μάθετε φωναχτά" συμπληρώνοντας τον κατάλληλο πίνακα αξιολόγησης PAT. Ένα 'PAT' είναι εργαλείο αξιολόγησης προόδου που συμπληρώνετε για να προάγετε τη μάθησή σας. Μπορείτε επίσης να αντιδράσετε σε άλλα PAT ώστε να μάθουμε μαζί. -> Για περαιτέρω μελέτη, συνιστούμε να ακολουθήσετε αυτά τα [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) μαθήματα και εκπαιδευτικές διαδρομές. +> Για περαιτέρω μελέτη, προτείνουμε να ακολουθήσετε αυτά τα [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) μαθήματα και διαδρομές μάθησης. -**Καθηγητές**, έχουμε [συμπεριλάβει κάποιες προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών. +**Καθηγητές**, έχουμε [περιλάβει ορισμένες προτάσεις](for-teachers.md) για το πώς να χρησιμοποιήσετε αυτό το πρόγραμμα σπουδών. --- -## Βίντεο περιήγησης +## Βίντεο επίδειξης -Μερικά από τα μαθήματα είναι διαθέσιμα σε σύντομα βίντεο. Μπορείτε να τα βρείτε ενσωματωμένα στα μαθήματα ή στη [λίστα αναπαραγωγής ML για Αρχάριους στο κανάλι Microsoft Developer στο YouTube](https://aka.ms/ml-beginners-videos) κάνοντας κλικ στην παρακάτω εικόνα. +Μερικά από τα μαθήματα διατίθενται ως σύντομα βίντεο. Μπορείτε να τα βρείτε όλα μέσα στα μαθήματα ή στη [λίστα αναπαραγωγής ML for Beginners στο κανάλι Microsoft Developer στο YouTube](https://aka.ms/ml-beginners-videos), κάνοντας κλικ στην εικόνα παρακάτω. [![ML for beginners banner](../../translated_images/el/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -101,138 +100,138 @@ **Gif από** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Κάντε κλικ στην εικόνα παραπάνω για ένα βίντεο σχετικά με το έργο και τα άτομα που το δημιούργησαν! +> 🎥 Κάντε κλικ στην εικόνα παραπάνω για βίντεο σχετικά με το έργο και όσους το δημιούργησαν! --- ## Παιδαγωγική -Έχουμε επιλέξει δύο παιδαγωγικές αρχές κατά την κατασκευή αυτού του προγράμματος: να είναι πρακτικό **βασισμένο σε έργα** και να περιλαμβάνει **συχνά κουίζ**. Επιπλέον, το πρόγραμμα έχει ένα κοινό **θέμα** για να του παρέχει συνοχή. +Έχουμε επιλέξει δύο παιδαγωγικές αρχές κατά την κατασκευή αυτού του προγράμματος σπουδών: να είναι πρακτικό και **βασισμένο σε έργα** και να περιλαμβάνει **συχνά κουίζ**. Επιπλέον, αυτό το πρόγραμμα έχει ένα κοινό **θέμα** για να δώσει συνοχή. -Διασφαλίζοντας ότι το περιεχόμενο ευθυγραμμίζεται με έργα, η διαδικασία γίνεται πιο ελκυστική για τους μαθητές και η διατήρηση εννοιών ενισχύεται. Επιπλέον, ένα κουίζ χαμηλού κινδύνου πριν το μάθημα θέτει την πρόθεση του μαθητή να μάθει ένα θέμα, ενώ ένα δεύτερο κουίζ μετά το μάθημα διασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σχεδιάστηκε να είναι ευέλικτο και διασκεδαστικό και μπορεί να γίνει ολόκληρο ή μέρος του. Τα έργα ξεκινούν μικρά και γίνονται ολοένα και πιο σύνθετα στο τέλος του 12-εβδομαδιαίου κύκλου. Το πρόγραμμα περιλαμβάνει επίσης ένα επίμετρο για πρακτικές εφαρμογές της ΜΜ, το οποίο μπορεί να χρησιμοποιηθεί ως επιπλέον βαθμολογία ή ως βάση για συζήτηση. +Με την εξασφάλιση ότι το περιεχόμενο ευθυγραμμίζεται με έργα, η διαδικασία γίνεται πιο ελκυστική για τους μαθητές και η διατήρηση των εννοιών ενισχύεται. Επιπλέον, ένα κουίζ χαμηλού ρίσκου πριν το μάθημα θέτει την πρόθεση του μαθητή στο να μάθει ένα θέμα, ενώ ένα δεύτερο κουίζ μετά το μάθημα εξασφαλίζει περαιτέρω διατήρηση. Αυτό το πρόγραμμα σχεδιάστηκε για να είναι ευέλικτο και διασκεδαστικό και μπορεί να ολοκληρωθεί ολόκληρο ή μερικώς. Τα έργα ξεκινούν μικρά και γίνονται ολοένα πιο πολύπλοκα μέχρι το τέλος του κύκλου των 12 εβδομάδων. Το πρόγραμμα περιλαμβάνει επίσης επίμετρο για πραγματικές εφαρμογές της Μηχανικής Μάθησης, που μπορούν να χρησιμοποιηθούν ως επιπλέον βαθμολογία ή ως βάση για συζήτηση. -> Βρείτε τους [Κανόνες Συμπεριφοράς](CODE_OF_CONDUCT.md), [Οδηγίες Συνεισφοράς](CONTRIBUTING.md), [Μεταφράσεις](..) και [Οδηγό Αντιμετώπισης Προβλημάτων](TROUBLESHOOTING.md). Ευπρόσδεκτη η εποικοδομητική σας ανατροφοδότηση! +> Βρείτε τους [Κανόνες Συμπεριφοράς](CODE_OF_CONDUCT.md), [Οδηγίες Συμμετοχής](CONTRIBUTING.md), [Μεταφράσεις](..), και [Οδηγό Αντιμετώπισης Προβλημάτων](TROUBLESHOOTING.md). Καλωσορίζουμε τα εποικοδομητικά σχόλιά σας! ## Κάθε μάθημα περιλαμβάνει -- προαιρετική σημείωση σχεδίασης +- προαιρετικό σκίτσο - προαιρετικό συμπληρωματικό βίντεο -- βίντεο περιήγησης (μόνο σε μερικά μαθήματα) -- [προ-μάθημα κουίζ προθέρμανσης](https://ff-quizzes.netlify.app/en/ml/) +- βίντεο επίδειξης (μόνο σε μερικά μαθήματα) +- [προ-διάλεξης quiz προθέρμανσης](https://ff-quizzes.netlify.app/en/ml/) - γραπτό μάθημα -- για μαθήματα βασισμένα σε έργα, οδηγοί βήμα-βήμα για την κατασκευή του έργου -- έλεγχοι γνώσης -- μια πρόκληση +- για μαθήματα βασισμένα σε έργα, βήμα-βήμα οδηγίες για την κατασκευή του έργου +- ελέγχους γνώσης +- πρόκληση - συμπληρωματική ανάγνωση -- εργασία -- [μετα-μάθημα κουίζ](https://ff-quizzes.netlify.app/en/ml/) - -> **Σημείωση σχετικά με τις γλώσσες**: Τα μαθήματα αυτά είναι κυρίως γραμμένα σε Python, αλλά πολλά είναι διαθέσιμα και σε R. Για να ολοκληρώσετε ένα μάθημα R, πηγαίνετε στο φάκελο `/solution` και αναζητήστε μαθήματα R. Περιλαμβάνουν επέκταση .rmd που αντιπροσωπεύει ένα αρχείο **R Markdown**, το οποίο μπορεί απλά να οριστεί ως ενσωμάτωση `κομματιών κώδικα` (σε R ή άλλες γλώσσες) και `κεφαλίδας YAML` (που καθοδηγεί το πώς να μορφοποιούνται οι εξαγωγές όπως PDF) σε ένα `έγγραφο Markdown`. Ως εκ τούτου, χρησιμεύει ως εξαιρετικό πλαίσιο δημιουργίας περιεχομένου για επιστήμη δεδομένων, καθώς σας επιτρέπει να συνδυάζετε τον κώδικά σας, την έξοδό του και τις σκέψεις σας γράφοντας τα σε Markdown. Επιπλέον, τα έγγραφα R Markdown μπορούν να αποδοθούν σε μορφές εξόδου όπως PDF, HTML ή Word. -> **Μια σημείωση σχετικά με τα κουίζ**: Όλα τα κουίζ περιλαμβάνονται στον [φάκελο Quiz App](../../quiz-app), συνολικά 52 κουίζ με τρεις ερωτήσεις το καθένα. Συνδέονται μέσα από τα μαθήματα, αλλά η εφαρμογή κουίζ μπορεί να τρέξει τοπικά· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app` για να το φιλοξενήσετε ή να το αναπτύξετε στο Azure. - -| Αριθμός Μαθήματος | Θέμα | Ομαδοποίηση Μαθήματος | Στόχοι Μάθησης | Συνδεδεμένο Μάθημα | Συγγραφέας | -| :---------------: | :------------------------------------------------------------: | :--------------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------: | -| 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) | Ποια είναι τα σημαντικά φιλοσοφικά ζητήματα γύρω από τη δικαιοσύνη που πρέπει να λάβουν υπόψη οι μαθητές όταν δημιουργούν και εφαρμόζουν μοντέλα ML; | [Μάθημα](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Τεχνικές για μηχανική μάθηση | [Εισαγωγή](1-Introduction/README.md) | Ποιες τεχνικές χρησιμοποιούν οι ερευνητές μηχανικής μάθησης για να δημιουργήσουν μοντέλα ML; | [Μάθημα](1-Introduction/4-techniques-of-ML/README.md) | Chris και Jen | -| 05 | Εισαγωγή στην παλινδρόμηση | [Παλινδρόμηση](2-Regression/README.md) | Ξεκινήστε με Python και Scikit-learn για μοντέλα παλινδρόμησης | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Οπτικοποιήστε και καθαρίστε δεδομένα προετοιμασίας για ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Δημιουργήστε γραμμικά και πολυωνυμικά μοντέλα παλινδρόμησης | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen και Dmitry • Eric Wanjau | -| 08 | Τιμές κολοκύθας στη Βόρεια Αμερική 🎃 | [Παλινδρόμηση](2-Regression/README.md) | Δημιουργήστε μοντέλο λογιστικής παλινδρόμησης | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Μια εφαρμογή Web 🔌 | [Web App](3-Web-App/README.md) | Δημιουργήστε μια εφαρμογή web για να χρησιμοποιήσετε το εκπαιδευμένο σας μοντέλο | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Εισαγωγή στην ταξινόμηση | [Ταξινόμηση](4-Classification/README.md) | Καθαρίστε, προετοιμάστε και οπτικοποιήστε τα δεδομένα σας· εισαγωγή στην ταξινόμηση | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen και Cassie • Eric Wanjau | -| 11 | Νόστιμες Ασιατικές και Ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Εισαγωγή στους ταξινομητές | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen και Cassie • Eric Wanjau | -| 12 | Νόστιμες Ασιατικές και Ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Περισσότεροι ταξινομητές | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen και Cassie • Eric Wanjau | -| 13 | Νόστιμες Ασιατικές και Ινδικές κουζίνες 🍜 | [Ταξινόμηση](4-Classification/README.md) | Δημιουργήστε μια εφαρμογή προτάσεων χρησιμοποιώντας το μοντέλο σας | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Εισαγωγή στον συσταδοποίηση | [Συσταδοποίηση](5-Clustering/README.md) | Καθαρίστε, προετοιμάστε και οπτικοποιήστε τα δεδομένα σας· Εισαγωγή στη συσταδοποίηση | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Εξερεύνηση των μουσικών προτιμήσεων της Νιγηρίας 🎧 | [Συσταδοποίηση](5-Clustering/README.md) | Εξερευνήστε τη μέθοδο συσταδοποίησης K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Εισαγωγή στην επεξεργασία φυσικής γλώσσας ☕️ | [Επεξεργασία φυσικής γλώσσας](6-NLP/README.md) | Μάθετε τα βασικά της NLP δημιουργώντας έναν απλό bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Κοινές εργασίες NLP ☕️ | [Επεξεργασία φυσικής γλώσσας](6-NLP/README.md) | Εμβαθύνετε τις γνώσεις σας στην NLP κατανοώντας κοινές εργασίες που απαιτούνται κατά τη διαχείριση δομών γλώσσας | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Μετάφραση και ανάλυση συναισθήματος ♥️ | [Επεξεργασία φυσικής γλώσσας](6-NLP/README.md) | Μετάφραση και ανάλυση συναισθήματος με τη Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Ρομαντικά ξενοδοχεία της Ευρώπης ♥️ | [Επεξεργασία φυσικής γλώσσας](6-NLP/README.md) | Ανάλυση συναισθήματος με κριτικές ξενοδοχείων 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Ρομαντικά ξενοδοχεία της Ευρώπης ♥️ | [Επεξεργασία φυσικής γλώσσας](6-NLP/README.md) | Ανάλυση συναισθήματος με κριτικές ξενοδοχείων 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Εισαγωγή στην πρόβλεψη χρονοσειρών | [Χρονοσειρές](7-TimeSeries/README.md) | Εισαγωγή στην πρόβλεψη χρονοσειρών | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Παγκόσμια χρήση ενέργειας ⚡️ - πρόβλεψη χρονοσειρών με ARIMA | [Χρονοσειρές](7-TimeSeries/README.md) | Πρόβλεψη χρονοσειρών με ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Παγκόσμια χρήση ενέργειας ⚡️ - πρόβλεψη χρονοσειρών με SVR | [Χρονοσειρές](7-TimeSeries/README.md) | Πρόβλεψη χρονοσειρών με την Υποστηρικτική Μέθοδο Διανυσματικών Παλινδρομήσεων (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Εισαγωγή στην ενισχυτική μάθηση | [Ενισχυτική μάθηση](8-Reinforcement/README.md) | Εισαγωγή στην ενισχυτική μάθηση με Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Βοηθήστε τον Peter να αποφύγει τον λύκο! 🐺 | [Ενισχυτική μάθηση](8-Reinforcement/README.md) | Ενισχυτική μάθηση με Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Μετασχόλιο | Πραγματικά σενάρια και εφαρμογές ML | [ML στην πρακτική](9-Real-World/README.md) | Ενδιαφέρουσες και αποκαλυπτικές εφαρμογές κλασικής μηχανικής μάθησης | [Μάθημα](9-Real-World/1-Applications/README.md) | Ομάδα | -| Μετασχόλιο | Εντοπισμός σφαλμάτων μοντέλων ML με τα εργαλεία RAI | [ML στην πρακτική](9-Real-World/README.md) | Εντοπισμός σφαλμάτων σε μοντέλα μηχανικής μάθησης χρησιμοποιώντας συστατικά του Responsible AI dashboard | [Μάθημα](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [βρείτε όλους τους επιπλέον πόρους για αυτό το μάθημα στη συλλογή Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- ανάθεση εργασίας +- [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) +> **Μια σημείωση σχετικά με τις γλώσσες**: Αυτά τα μαθήματα γράφονται κυρίως σε Python, αλλά πολλά είναι επίσης διαθέσιμα σε R. Για να ολοκληρώσετε ένα μάθημα R, πηγαίνετε στον φάκελο `/solution` και αναζητήστε μαθήματα R. Περιλαμβάνουν την επέκταση .rmd που αντιπροσωπεύει ένα αρχείο **R Markdown**, το οποίο μπορεί να οριστεί απλά ως ενσωμάτωση `κομματιών κώδικα` (μίας R ή άλλων γλωσσών) και μιας `επικεφαλίδας YAML` (που καθοδηγεί το πώς να μορφοποιηθούν τα αποτελέσματα όπως PDF) σε ένα `έγγραφο Markdown`. Ως εκ τούτου, χρησιμεύει ως προτύπο πλαισίου συγγραφής για την επιστήμη δεδομένων, αφού σας επιτρέπει να συνδυάσετε τον κώδικά σας, το αποτέλεσμα του, και τις σκέψεις σας, επιτρέποντάς σας να τα καταγράψετε σε Markdown. Επιπλέον, τα έγγραφα R Markdown μπορούν να απεικονιστούν σε μορφές όπως PDF, HTML ή Word. + +> **Μια σημείωση σχετικά με τα κουίζ**: Όλα τα κουίζ περιέχονται στον [φάκελο Quiz App](../../quiz-app), για συνολικά 52 κουίζ με τρεις ερωτήσεις το καθένα. Σύνδεσμοι προς αυτά υπάρχουν μέσα στα μαθήματα, αλλά η εφαρμογή κουίζ μπορεί να τρέξει τοπικά· ακολουθήστε τις οδηγίες στον φάκελο `quiz-app` για τοπική φιλοξενία ή ανάπτυξη στο Azure. + +| Αριθμός Μαθήματος | Θέμα | Ομαδοποίηση Μαθήματος | Στόχοι Μάθησης | Συνδεδεμένο Μάθημα | Συγγραφέας | +| :----------------: | :------------------------------------------------------------: | :---------------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------: | +| 01 | Εισαγωγή στη μηχανική μάθηση | [Introduction](1-Introduction/README.md) | Μάθετε τις βασικές έννοιες πίσω από τη μηχανική μάθηση | [Μάθημα](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Η ιστορία της μηχανικής μάθησης | [Introduction](1-Introduction/README.md) | Μάθετε την ιστορία που στηρίζει αυτόν τον τομέα | [Μάθημα](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Δικαιοσύνη και μηχανική μάθηση | [Introduction](1-Introduction/README.md) | Ποια είναι τα σημαντικά φιλοσοφικά ζητήματα σχετικά με τη δικαιοσύνη που θα πρέπει να λάβουν υπόψη οι μαθητές κατά την κατασκευή και εφαρμογή μοντέλων ΜΜ; | [Μάθημα](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Τεχνικές για μηχανική μάθηση | [Introduction](1-Introduction/README.md) | Ποιες τεχνικές χρησιμοποιούν οι ερευνητές ΜΜ για την κατασκευή μοντέλων ΜΜ; | [Μάθημα](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Εισαγωγή στην παλινδρόμηση | [Regression](2-Regression/README.md) | Ξεκινήστε με Python και Scikit-learn για μοντέλα παλινδρόμησης | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Τιμές κολοκύθας Βόρειας Αμερικής 🎃 | [Regression](2-Regression/README.md) | Οπτικοποιήστε και καθαρίστε δεδομένα προετοιμασίας για ΜΜ | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Τιμές κολοκύθας Βόρειας Αμερικής 🎃 | [Regression](2-Regression/README.md) | Δημιουργήστε γραμμικά και πολυωνυμικά μοντέλα παλινδρόμησης | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | Τιμές κολοκύθας Βόρειας Αμερικής 🎃 | [Regression](2-Regression/README.md) | Δημιουργήστε μοντέλο λογιστικής παλινδρόμησης | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Μια Web Εφαρμογή 🔌 | [Web App](3-Web-App/README.md) | Δημιουργήστε μια ιστοσελίδα για χρήση του εκπαιδευμένου μοντέλου σας | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Εισαγωγή στην ταξινόμηση | [Classification](4-Classification/README.md) | Καθαρίστε, προετοιμάστε και οπτικοποιήστε τα δεδομένα σας· εισαγωγή στην ταξινόμηση | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | Νόστιμες Ασιατικές και Ινδικές κουζίνες 🍜 | [Classification](4-Classification/README.md) | Εισαγωγή στους ταξινομητές | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | Νόστιμες Ασιατικές και Ινδικές κουζίνες 🍜 | [Classification](4-Classification/README.md) | Περισσότεροι ταξινομητές | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | Νόστιμες Ασιατικές και Ινδικές κουζίνες 🍜 | [Classification](4-Classification/README.md) | Δημιουργήστε μια προτείνουσα web εφαρμογή με το μοντέλο σας | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Εισαγωγή στην ομαδοποίηση | [Clustering](5-Clustering/README.md) | Καθαρίστε, προετοιμάστε και οπτικοποιήστε τα δεδομένα σας· Εισαγωγή στην ομαδοποίηση | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Εξερεύνηση των μουσικών γούστων της Νιγηρίας 🎧 | [Clustering](5-Clustering/README.md) | Εξερευνήστε τη μέθοδο ομαδοποίησης K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Εισαγωγή στην επεξεργασία φυσικής γλώσσας ☕️ | [Natural language processing](6-NLP/README.md) | Μάθετε τα βασικά για την Επεξεργασία φυσικής γλώσσας δημιουργώντας ένα απλό bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Συνήθεις εργασίες NLP ☕️ | [Natural language processing](6-NLP/README.md) | Εμβαθύνετε τις γνώσεις σας πάνω σε NLP κατανοώντας τις συνηθισμένες εργασίες που απαιτούνται κατά τη διαχείριση γλωσσικών δομών | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Μετάφραση και ανάλυση συναισθήματος ♥️ | [Natural language processing](6-NLP/README.md) | Μετάφραση και ανάλυση συναισθήματος με τη Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Ρομαντικά ξενοδοχεία της Ευρώπης ♥️ | [Natural language processing](6-NLP/README.md) | Ανάλυση συναισθήματος με κριτικές ξενοδοχείων 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Ρομαντικά ξενοδοχεία της Ευρώπης ♥️ | [Natural language processing](6-NLP/README.md) | Ανάλυση συναισθήματος με κριτικές ξενοδοχείων 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Εισαγωγή στην πρόβλεψη χρονοσειρών | [Time series](7-TimeSeries/README.md) | Εισαγωγή στην πρόβλεψη χρονοσειρών | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Παγκόσμια Κατανάλωση Ενέργειας ⚡️ - πρόβλεψη χρονοσειρών με ARIMA | [Time series](7-TimeSeries/README.md) | Πρόβλεψη χρονοσειρών με ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Παγκόσμια Κατανάλωση Ενέργειας ⚡️ - πρόβλεψη χρονοσειρών με SVR | [Time series](7-TimeSeries/README.md) | Πρόβλεψη χρονοσειρών με Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Εισαγωγή στην ενισχυτική μάθηση | [Reinforcement learning](8-Reinforcement/README.md) | Εισαγωγή στην ενισχυτική μάθηση με Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Βοηθήστε τον Πέτρο να αποφύγει τον λύκο! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Ενισχυτική μάθηση Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Επίμετρο | Πραγματικά σενάρια και εφαρμογές ΜΜ | [ML in the Wild](9-Real-World/README.md) | Ενδιαφέρουσες και αποκαλυπτικές πραγματικές εφαρμογές της κλασικής μηχανικής μάθησης | [Μάθημα](9-Real-World/1-Applications/README.md) | Ομάδα | +| Επίμετρο | Εντοπισμός σφαλμάτων μοντέλων ΜΜ με τον πίνακα ελέγχου RAI | [ML in the Wild](9-Real-World/README.md) | Εντοπισμός σφαλμάτων μοντέλων μηχανικής μάθησης χρησιμοποιώντας τα στοιχεία του πίνακα ελέγχου Responsible AI | [Μάθημα](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [βρείτε όλους τους επιπλέον πόρους για αυτό το μάθημα στη συλλογή μας Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Πρόσβαση εκτός σύνδεσης -Μπορείτε να τρέξετε αυτήν την τεκμηρίωση εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork αυτό το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στην τοπική σας συσκευή και μετά στον ριζικό φάκελο αυτού του αποθετηρίου, πληκτρολογήστε `docsify serve`. Η ιστοσελίδα θα σερβίρεται στη θύρα 3000 στο localhost σας: `localhost:3000`. +Μπορείτε να τρέξετε αυτή την τεκμηρίωση εκτός σύνδεσης χρησιμοποιώντας το [Docsify](https://docsify.js.org/#/). Κάντε fork αυτό το αποθετήριο, [εγκαταστήστε το Docsify](https://docsify.js.org/#/quickstart) στον τοπικό σας υπολογιστή και στη συνέχεια στον ριζικό φάκελο αυτού του αποθετηρίου πληκτρολογήστε `docsify serve`. Ο ιστότοπος θα φιλοξενηθεί στη θύρα 3000 στο localhost σας: `localhost:3000`. -## PDF +## PDFs -Βρείτε το pdf του προγράμματος σπουδών με συνδέσμους [εδώ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Βρείτε ένα pdf του αναλυτικού προγράμματος με συνδέσμους [εδώ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Άλλα Μαθήματα +## 🎒 Άλλα μαθήματα -Η ομάδα μας παράγει και άλλα μαθήματα! Δείτε: +Η ομάδα μας παράγει και άλλα μαθήματα! Ρίξτε μια ματιά: ### LangChain -[![LangChain4j για Αρχάριους](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js για Αρχάριους](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain για Αρχάριους](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD για Αρχάριους](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI για Αρχάριους](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP για Αρχάριους](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents για Αρχάριους](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Πράκτορες Τεχνητής Νοημοσύνης για Αρχάριους](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Σειρά Generative AI +### Σειρά για Γενετική Τεχνητή Νοημοσύνη [![Γενετική Τεχνητή Νοημοσύνη για Αρχάριους](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Γενετική Τεχνητή Νοημοσύνη (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Γενετική Τεχνητή Νοημοσύνη (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Γενετική Τεχνητή Νοημοσύνη (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- - -### Βασική Εκμάθηση -[![Μηχανική Μάθηση για Αρχάριους](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) + +### Βασική Μάθηση +[![Μάθηση Μηχανής για Αρχάριους](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Επιστήμη Δεδομένων για Αρχάριους](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![Τεχνητή Νοημοσύνη για Αρχάριους](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Ασφάλεια στον Κυβερνοχώρο για Αρχάριους](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Ανάπτυξη Ιστοσελίδων για Αρχάριους](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![Internet of Things (IoT) για Αρχάριους](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Κυβερνοασφάλεια για Αρχάριους](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Ανάπτυξη Ιστού για Αρχάριους](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT για Αρχάριους](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) [![Ανάπτυξη XR για Αρχάριους](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- - + ### Σειρά Copilot -[![Copilot για Προγραμματισμό με Τεχνητή Νοημοσύνη](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot για Προγραμματισμό AI σε Ζευγάρι](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot για C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Περιπέτεια Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Λήψη Βοήθειας -Εάν κολλήσετε ή έχετε ερωτήσεις σχετικά με την ανάπτυξη εφαρμογών Τεχνητής Νοημοσύνης. Συμμετέχετε σε συζητήσεις με άλλους μαθητευόμενους και έμπειρους προγραμματιστές για το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα. +Αν κολλήσετε ή έχετε ερωτήσεις σχετικά με την κατασκευή εφαρμογών Τεχνητής Νοημοσύνης. Ενταχθείτε με άλλους μαθητές και έμπειρους προγραμματιστές σε συζητήσεις για το MCP. Είναι μια υποστηρικτική κοινότητα όπου οι ερωτήσεις είναι ευπρόσδεκτες και η γνώση μοιράζεται ελεύθερα. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Εάν έχετε σχόλια προϊόντος ή σφάλματα κατά την ανάπτυξη επισκεφθείτε: +Αν έχετε σχόλια για το προϊόν ή σφάλματα κατά την κατασκευή επισκεφθείτε: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Επιπλέον Συμβουλές Μάθησης +## Πρόσθετες Συμβουλές Μάθησης -- Ανασκοπήστε τα σημειωματάρια μετά από κάθε μάθημα για καλύτερη κατανόηση. +- Επανεξετάστε τα σημειωματάρια μετά από κάθε μάθημα για καλύτερη κατανόηση. - Εξασκηθείτε στην υλοποίηση αλγορίθμων μόνοι σας. - Εξερευνήστε πραγματικά σύνολα δεδομένων χρησιμοποιώντας τις έννοιες που μάθατε. --- -**Αποποίηση ευθυνών**: -Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ενώ προσπαθούμε για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται η επαγγελματική μετάφραση από άνθρωπο. Δεν φέρουμε ευθύνη για οποιεσδήποτε παρεξηγήσεις ή λανθασμένες ερμηνείες προκύψουν από τη χρήση αυτής της μετάφρασης. +**Αποποίηση ευθυνών**: +Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας υπηρεσία μετάφρασης με τεχνητή νοημοσύνη [Co-op Translator](https://github.com/Azure/co-op-translator). Ενώ καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να γνωρίζετε ότι οι αυτόματες μεταφράσεις ενδέχεται να περιέχουν σφάλματα ή ανακρίβειες. Το πρωτότυπο έγγραφο στη γλώσσα του πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική μετάφραση από ανθρώπους. Δεν είμαστε υπεύθυνοι για τυχόν παρεξηγήσεις ή λανθασμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης. \ No newline at end of file diff --git a/translations/en/.co-op-translator.json b/translations/en/.co-op-translator.json index a93d68020..c6b2ca529 100644 --- a/translations/en/.co-op-translator.json +++ b/translations/en/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "en" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-19T06:51:56+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T15:42:29+00:00", "source_file": "README.md", "language_code": "en" }, diff --git a/translations/en/README.md b/translations/en/README.md index ec233c2a8..ed9008d87 100644 --- a/translations/en/README.md +++ b/translations/en/README.md @@ -13,7 +13,7 @@ #### Supported via GitHub Action (Automated & Always Up-to-Date) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Prefer to Clone Locally?** > @@ -126,8 +126,8 @@ By ensuring that the content aligns with projects, the process is made more enga - supplemental reading - assignment - [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) - > **A note about languages**: These lessons are primarily written in Python, but many are also available in R. To complete an R lesson, go to the `/solution` folder and look for R lessons. They include an .rmd extension that represents an **R Markdown** file which can be simply defined as an embedding of `code chunks` (of R or other languages) and a `YAML header` (that guides how to format outputs such as PDF) in a `Markdown document`. As such, it serves as an exemplary authoring framework for data science since it allows you to combine your code, its output, and your thoughts by allowing you to write them down in Markdown. Moreover, R Markdown documents can be rendered to output formats such as PDF, HTML, or Word. + > **A note about quizzes**: All quizzes are contained in [Quiz App folder](../../quiz-app), for 52 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 to locally host or deploy to Azure. | Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | @@ -191,7 +191,6 @@ Our team produces other courses! Check out: --- ### Generative AI Series - [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) diff --git a/translations/es/.co-op-translator.json b/translations/es/.co-op-translator.json index 03ba802c2..7f05201b0 100644 --- a/translations/es/.co-op-translator.json +++ b/translations/es/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "es" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-19T06:56:48+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T15:45:44+00:00", "source_file": "README.md", "language_code": "es" }, diff --git a/translations/es/README.md b/translations/es/README.md index 42a9551a9..b67fc4bec 100644 --- a/translations/es/README.md +++ b/translations/es/README.md @@ -1,23 +1,23 @@ -[![Licencia de GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![Colaboradores de GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) -[![Problemas en GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) -[![Solicitudes de extracción en GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![PRs Bienvenidos](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![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) -[![Observadores de GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![Bifurcaciones de GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) -[![Estrellas de GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) +[![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/) -### 🌐 Soporte Multilingüe +### 🌐 Soporte multilingüe -#### Soportado vía GitHub Action (Automatizado y Siempre Actualizado) +#### Soportado via GitHub Action (Automatizado y siempre actualizado) -[Árabe](../ar/README.md) | [Bengalí](../bn/README.md) | [Búlgaro](../bg/README.md) | [Birmano (Myanmar)](../my/README.md) | [Chino (Simplificado)](../zh-CN/README.md) | [Chino (Tradicional, Hong Kong)](../zh-HK/README.md) | [Chino (Tradicional, Macao)](../zh-MO/README.md) | [Chino (Tradicional, Taiwán)](../zh-TW/README.md) | [Croata](../hr/README.md) | [Checo](../cs/README.md) | [Danés](../da/README.md) | [Neerlandés](../nl/README.md) | [Estonio](../et/README.md) | [Finlandés](../fi/README.md) | [Francés](../fr/README.md) | [Alemán](../de/README.md) | [Griego](../el/README.md) | [Hebreo](../he/README.md) | [Hindú](../hi/README.md) | [Húngaro](../hu/README.md) | [Indonesio](../id/README.md) | [Italiano](../it/README.md) | [Japonés](../ja/README.md) | [Kannada](../kn/README.md) | [Coreano](../ko/README.md) | [Lituano](../lt/README.md) | [Malayo](../ms/README.md) | [Malayalam](../ml/README.md) | [Maratí](../mr/README.md) | [Nepalí](../ne/README.md) | [Pidgin Nigeriano](../pcm/README.md) | [Noruego](../no/README.md) | [Persa (Farsi)](../fa/README.md) | [Polaco](../pl/README.md) | [Portugués (Brasil)](../pt-BR/README.md) | [Portugués (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumano](../ro/README.md) | [Ruso](../ru/README.md) | [Serbio (Cirílico)](../sr/README.md) | [Eslovaco](../sk/README.md) | [Esloveno](../sl/README.md) | [Español](./README.md) | [Swahili](../sw/README.md) | [Sueco](../sv/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Tailandés](../th/README.md) | [Turco](../tr/README.md) | [Ucraniano](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamita](../vi/README.md) +[Árabe](../ar/README.md) | [Bengalí](../bn/README.md) | [Búlgaro](../bg/README.md) | [Birmano (Myanmar)](../my/README.md) | [Chino (Simplificado)](../zh-CN/README.md) | [Chino (Tradicional, Hong Kong)](../zh-HK/README.md) | [Chino (Tradicional, Macao)](../zh-MO/README.md) | [Chino (Tradicional, Taiwán)](../zh-TW/README.md) | [Croata](../hr/README.md) | [Checo](../cs/README.md) | [Danés](../da/README.md) | [Holandés](../nl/README.md) | [Estonio](../et/README.md) | [Finlandés](../fi/README.md) | [Francés](../fr/README.md) | [Alemán](../de/README.md) | [Griego](../el/README.md) | [Hebreo](../he/README.md) | [Hindi](../hi/README.md) | [Húngaro](../hu/README.md) | [Indonesio](../id/README.md) | [Italiano](../it/README.md) | [Japonés](../ja/README.md) | [Kannada](../kn/README.md) | [Jemer](../km/README.md) | [Coreano](../ko/README.md) | [Lituano](../lt/README.md) | [Malayo](../ms/README.md) | [Malayalam](../ml/README.md) | [Maratí](../mr/README.md) | [Nepalí](../ne/README.md) | [Pidgin Nigeriano](../pcm/README.md) | [Noruego](../no/README.md) | [Persa (Farsi)](../fa/README.md) | [Polaco](../pl/README.md) | [Portugués (Brasil)](../pt-BR/README.md) | [Portugués (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumano](../ro/README.md) | [Ruso](../ru/README.md) | [Serbio (Cirílico)](../sr/README.md) | [Eslovaco](../sk/README.md) | [Esloveno](../sl/README.md) | [Español](./README.md) | [Swahili](../sw/README.md) | [Sueco](../sv/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugú](../te/README.md) | [Tailandés](../th/README.md) | [Turco](../tr/README.md) | [Ucraniano](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamita](../vi/README.md) -> **¿Prefieres Clonar Localmente?** +> **¿Prefieres clonar localmente?** > -> Este repositorio incluye traducciones en más de 50 idiomas que aumentan significativamente el tamaño de descarga. Para clonar sin traducciones, usa checkout esparcido: +> Este repositorio incluye más de 50 traducciones de idiomas lo que aumenta significativamente el tamaño de la descarga. Para clonar sin las traducciones, use sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,53 +33,52 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Esto te proporciona todo lo necesario para completar el curso con una descarga mucho más rápida. +> Esto te da todo lo que necesitas para completar el curso con una descarga mucho más rápida. -#### Únete a Nuestra Comunidad +#### Únete a nuestra comunidad [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Tenemos una serie en Discord de aprender con IA en curso, aprende más y únete en [Serie Aprende con IA](https://aka.ms/learnwithai/discord) del 18 al 30 de septiembre de 2025. Obtendrás consejos y trucos para usar GitHub Copilot para ciencia de datos. +Tenemos una serie en Discord para aprender con IA en curso, aprende más y únete en [Serie Aprende con IA](https://aka.ms/learnwithai/discord) del 18 al 30 de septiembre de 2025. Obtendrás consejos y trucos para usar GitHub Copilot para Ciencia de Datos. ![Serie Aprende con IA](../../translated_images/es/3.9b58fd8d6c373c20.webp) # Aprendizaje Automático para Principiantes - Un Currículo -> 🌍 Viaja alrededor del mundo mientras exploramos el Aprendizaje Automático a través de culturas mundiales 🌍 +> 🌍 Viaja alrededor del mundo mientras exploramos el Aprendizaje Automático mediante culturas del mundo 🌍 -Los Cloud Advocates de Microsoft se complacen en ofrecer un currículo de 12 semanas, 26 lecciones, todo sobre **Aprendizaje Automático**. En este currículo, aprenderás sobre lo que a veces se llama **aprendizaje automático clásico**, usando principalmente Scikit-learn como biblioteca y evitando el aprendizaje profundo, que se cubre en nuestro [currículo AI para principiantes](https://aka.ms/ai4beginners). ¡Combina estas lecciones con nuestro [currículo Ciencia de Datos para Principiantes](https://aka.ms/ds4beginners) también! +Los Cloud Advocates en Microsoft se complacen en ofrecer un currículo de 12 semanas, con 26 lecciones, todo sobre **Aprendizaje Automático**. En este currículo, aprenderás sobre lo que a veces se llama **aprendizaje automático clásico**, utilizando principalmente Scikit-learn como biblioteca y evitando el aprendizaje profundo, que se cubre en nuestro [currículo de IA para Principiantes](https://aka.ms/ai4beginners). También combina estas lecciones con nuestro ['Currículo de Ciencia de Datos para Principiantes'](https://aka.ms/ds4beginners). -Viaja con nosotros alrededor del mundo mientras aplicamos estas técnicas clásicas a datos de muchas áreas del mundo. Cada lección incluye pruebas previas y posteriores, instrucciones escritas para completar la lección, una solución, una tarea y más. Nuestra pedagogía basada en proyectos permite aprender construyendo, una manera probada de que las nuevas habilidades 'se fijen'. +Viaja con nosotros alrededor del mundo mientras aplicamos estas técnicas clásicas a datos de muchas áreas del mundo. Cada lección incluye pruebas antes y después de la lección, instrucciones escritas para completar la lección, una solución, una tarea y más. Nuestra pedagogía basada en proyectos te permite aprender mientras construyes, una manera comprobada para que nuevas habilidades se fijen. **✍️ Muchas gracias a nuestros autores** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu y Amy Boyd -**🎨 También gracias a nuestros ilustradores** Tomomi Imura, Dasani Madipalli y Jen Looper +**🎨 Gracias también a nuestros ilustradores** Tomomi Imura, Dasani Madipalli y Jen Looper -**🙏 Agradecimiento especial 🙏 a nuestros autores, revisores y colaboradores Microsoft Student Ambassador**, especialmente Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila y Snigdha Agarwal +**🙏 Agradecimientos especiales 🙏 a nuestros autores, revisores y contribuidores de contenido Embajadores Estudiantiles de Microsoft**, en especial a Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila y Snigdha Agarwal -**🤩 Gratitud extra a los Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi y Vidushi Gupta por nuestras lecciones en R!** +**🤩 Agradecimiento extra a los Embajadores Estudiantiles de Microsoft Eric Wanjau, Jasleen Sondhi y Vidushi Gupta por nuestras lecciones de R!** # Comenzando Sigue estos pasos: -1. **Haz un Fork del Repositorio**: Haz clic en el botón "Fork" en la esquina superior derecha de esta página. +1. **Haz un fork del Repositorio**: Haz clic en el botón "Fork" en la esquina superior derecha de esta página. 2. **Clona el Repositorio**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [encuentra todos los recursos adicionales para este curso en nuestra colección de Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -> 🔧 **¿Necesitas ayuda?** Revisa nuestra [Guía de solución de problemas](TROUBLESHOOTING.md) para encontrar soluciones a problemas comunes con la instalación, configuración y ejecución de lecciones. +> [Encuentra todos los recursos adicionales para este curso en nuestra colección de Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> 🔧 **¿Necesitas ayuda?** Consulta nuestra [Guía de Solución de Problemas](TROUBLESHOOTING.md) para soluciones a problemas comunes con la instalación, configuración y ejecución de lecciones. **[Estudiantes](https://aka.ms/student-page)**, para usar este currículo, haz un fork de todo el repositorio a tu propia cuenta de GitHub y completa los ejercicios por tu cuenta o en grupo: -- Comienza con un cuestionario previo a la lección. -- Lee la lección y realiza las actividades, pausando y reflexionando en cada verificación de conocimiento. -- Intenta crear los proyectos comprendiendo las lecciones en lugar de ejecutar el código solución; sin embargo, ese código está disponible en las carpetas `/solution` de cada lección orientada a proyectos. -- Realiza el cuestionario posterior a la lección. +- Comienza con un quiz previo a la lección. +- Lee la lección y completa las actividades, deteniéndote y reflexionando en cada chequeo de conocimiento. +- Intenta crear los proyectos comprendiendo las lecciones más que ejecutando el código de la solución; sin embargo, ese código está disponible en las carpetas `/solution` en cada lección orientada a proyectos. +- Realiza el quiz después de la lección. - Completa el desafío. - Completa la tarea. -- Después de completar un grupo de lecciones, visita el [Foro de Discusión](https://github.com/microsoft/ML-For-Beginners/discussions) y "aprende en voz alta" llenando la rúbrica PAT correspondiente. Un 'PAT' es una herramienta de evaluación de progreso que completas para avanzar en tu aprendizaje. También puedes reaccionar a otros PATs para aprender juntos. +- Después de completar un grupo de lecciones, visita el [Foro de Discusión](https://github.com/microsoft/ML-For-Beginners/discussions) y "aprende en voz alta" llenando la rúbrica PAT correspondiente. Un 'PAT' es una Herramienta de Evaluación de Progreso que es una rúbrica que llenas para avanzar en tu aprendizaje. También puedes reaccionar a otras PAT para que aprendamos juntos. > Para estudios adicionales, recomendamos seguir estos módulos y rutas de aprendizaje de [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). @@ -89,9 +88,9 @@ Sigue estos pasos: ## Videos explicativos -Algunas de las lecciones están disponibles en formato video corto. Puedes encontrar todos estos videos incrustados en las lecciones o en la [lista de reproducción ML para Principiantes en el canal de YouTube de Microsoft Developer](https://aka.ms/ml-beginners-videos) haciendo clic en la imagen abajo. +Algunas lecciones están disponibles como videos de formato corto. Puedes encontrarlos en línea dentro de las lecciones, o en la [lista de reproducción ML para principiantes en el canal de Microsoft Developer en YouTube](https://aka.ms/ml-beginners-videos) haciendo clic en la imagen a continuación. -[![Banner ML para principiantes](../../translated_images/es/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![ML para principiantes banner](../../translated_images/es/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- @@ -101,77 +100,77 @@ Algunas de las lecciones están disponibles en formato video corto. Puedes encon **Gif por** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 ¡Haz clic en la imagen arriba para un video sobre el proyecto y las personas que lo crearon! +> 🎥 ¡Haz clic en la imagen de arriba para ver un video sobre el proyecto y las personas que lo crearon! --- ## Pedagogía -Hemos elegido dos principios pedagógicos al construir este currículo: asegurar que sea **práctico y basado en proyectos** y que incluya **cuestionarios frecuentes**. Además, este currículo tiene un **tema común** para darle cohesión. +Hemos elegido dos principios pedagógicos al construir este currículo: asegurar que sea **basado en proyectos** y que incluya **quizzes frecuentes**. Además, este currículo tiene un **tema** común para darle cohesión. -Al garantizar que el contenido esté alineado con proyectos, el proceso se vuelve más atractivo para los estudiantes y se aumenta la retención de conceptos. Además, un cuestionario de bajo impacto antes de la clase establece la intención del estudiante hacia el aprendizaje de un tema, mientras que un segundo cuestionario después de la clase asegura una retención adicional. Este currículo fue diseñado para ser flexible y divertido, y puede tomarse en su totalidad o por partes. Los proyectos comienzan pequeños y se vuelven cada vez más complejos al finalizar el ciclo de 12 semanas. Este currículo también incluye un posfacio sobre aplicaciones reales del ML, que puede usarse como crédito extra o como base para discusión. +Al asegurar que el contenido esté alineado con proyectos, el proceso se vuelve más atractivo para los estudiantes y la retención de conceptos se incrementa. Además, un quiz de bajo riesgo antes de una clase fija la intención del estudiante hacia el aprendizaje de un tema, mientras que un segundo quiz posterior asegura mayor retención. Este currículo fue diseñado para ser flexible y divertido y puede ser tomado en su totalidad o en parte. Los proyectos comienzan pequeños y se vuelven cada vez más complejos al final del ciclo de 12 semanas. Este currículo también incluye un postscriptum sobre aplicaciones reales del aprendizaje automático, que puede usarse como crédito extra o como base para discusión. -> Encuentra nuestro [Código de Conducta](CODE_OF_CONDUCT.md), [Contribuciones](CONTRIBUTING.md), [Traducciones](..), y guías de [Solución de Problemas](TROUBLESHOOTING.md). ¡Agradecemos tus comentarios constructivos! +> Encuentra nuestro [Código de Conducta](CODE_OF_CONDUCT.md), [Contribuir](CONTRIBUTING.md), [Traducciones](..), y [Solución de Problemas](TROUBLESHOOTING.md). ¡Agradecemos tus comentarios constructivos! ## Cada lección incluye -- sketchnote opcional -- video suplementario opcional +- esquemático opcional +- video complementario opcional - video explicativo (solo algunas lecciones) -- [cuestionario de calentamiento previo a la lección](https://ff-quizzes.netlify.app/en/ml/) +- [quiz de calentamiento previo a la lección](https://ff-quizzes.netlify.app/en/ml/) - lección escrita - para lecciones basadas en proyectos, guías paso a paso para construir el proyecto -- verificaciones de conocimiento -- un desafío -- lecturas complementarias +- chequeos de conocimiento +- un reto +- lectura suplementaria - tarea -- [cuestionario posterior a la lección](https://ff-quizzes.netlify.app/en/ml/) - -> **Una nota sobre los idiomas**: Estas lecciones están escritas principalmente en Python, pero muchas también están disponibles en R. Para completar una lección en R, visita la carpeta `/solution` y busca las lecciones en R. Incluyen una extensión .rmd que representa un archivo **R Markdown**, que puede definirse simplemente como una integración de `fragmentos de código` (de R u otros lenguajes) y un `encabezado YAML` (que guía cómo formatear salidas como PDF) en un `documento Markdown`. Como tal, sirve como un marco ejemplar para autoría en ciencia de datos ya que te permite combinar tu código, su salida y tus pensamientos escribiéndolos en Markdown. Además, los documentos R Markdown pueden exportarse a formatos como PDF, HTML o Word. -> **Una nota sobre los cuestionarios**: Todos los cuestionarios están contenidos en la [carpeta Quiz App](../../quiz-app), con un total de 52 cuestionarios de tres preguntas cada uno. Se enlazan desde dentro de las lecciones, pero la aplicación de cuestionarios puede ejecutarse localmente; siga las instrucciones en la carpeta `quiz-app` para alojarla localmente o desplegarla en Azure. - -| Número de lección | Tema | Agrupación de lecciones | Objetivos de aprendizaje | Lección enlazada | Autor | -| :----------------: | :------------------------------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Introducción al aprendizaje automático | [Introducción](1-Introduction/README.md) | Aprender los conceptos básicos detrás del aprendizaje automático | [Lección](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | La historia del aprendizaje automático | [Introducción](1-Introduction/README.md) | Aprender la historia subyacente en este campo | [Lección](1-Introduction/2-history-of-ML/README.md) | Jen y Amy | -| 03 | Justicia y aprendizaje automático | [Introducción](1-Introduction/README.md) | ¿Cuáles son los importantes temas filosóficos sobre la justicia que los estudiantes deben considerar al construir y aplicar modelos de ML? | [Lección](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Técnicas para aprendizaje automático | [Introducción](1-Introduction/README.md) | ¿Qué técnicas usan los investigadores de ML para construir modelos de ML? | [Lección](1-Introduction/4-techniques-of-ML/README.md) | Chris y Jen | -| 05 | Introducción a la regresión | [Regresión](2-Regression/README.md) | Comenzar con Python y Scikit-learn para modelos de regresión | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Precios de calabazas en Norteamérica 🎃 | [Regresión](2-Regression/README.md) | Visualizar y limpiar datos en preparación para ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Precios de calabazas en Norteamérica 🎃 | [Regresión](2-Regression/README.md) | Construir modelos de regresión lineal y polinómica | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen y Dmitry • Eric Wanjau | -| 08 | Precios de calabazas en Norteamérica 🎃 | [Regresión](2-Regression/README.md) | Construir un modelo de regresión logística | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Una aplicación web 🔌 | [Aplicación Web](3-Web-App/README.md) | Construir una aplicación web para usar tu modelo entrenado | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introducción a la clasificación | [Clasificación](4-Classification/README.md) | Limpiar, preparar y visualizar tus datos; introducción a la clasificación | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen y Cassie • Eric Wanjau | -| 11 | Deliciosas cocinas asiáticas e indias 🍜 | [Clasificación](4-Classification/README.md) | Introducción a los clasificadores | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen y Cassie • Eric Wanjau | -| 12 | Deliciosas cocinas asiáticas e indias 🍜 | [Clasificación](4-Classification/README.md) | Más clasificadores | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen y Cassie • Eric Wanjau | -| 13 | Deliciosas cocinas asiáticas e indias 🍜 | [Clasificación](4-Classification/README.md) | Construir una aplicación web recomendadora usando tu modelo | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introducción a la agrupación | [Agrupación](5-Clustering/README.md) | Limpiar, preparar y visualizar tus datos; introducción a la agrupación | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Explorando gustos musicales nigerianos 🎧 | [Agrupación](5-Clustering/README.md) | Explorar el método de agrupación K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introducción al procesamiento del lenguaje natural ☕️ | [Procesamiento del lenguaje natural](6-NLP/README.md) | Aprende lo básico sobre PLN construyendo un bot simple | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Tareas comunes en PLN ☕️ | [Procesamiento del lenguaje natural](6-NLP/README.md) | Profundiza tus conocimientos en PLN entendiendo las tareas comunes que se requieren al trabajar con estructuras de lenguaje | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Traducción y análisis de sentimiento ♥️ | [Procesamiento del lenguaje natural](6-NLP/README.md) | Traducción y análisis de sentimiento con Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hoteles románticos de Europa ♥️ | [Procesamiento del lenguaje natural](6-NLP/README.md) | Análisis de sentimiento con reseñas de hoteles 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hoteles románticos de Europa ♥️ | [Procesamiento del lenguaje natural](6-NLP/README.md) | Análisis de sentimiento con reseñas de hoteles 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introducción a la predicción de series temporales | [Series temporales](7-TimeSeries/README.md) | Introducción a la predicción de series temporales | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Uso mundial de energía ⚡️ - predicción de series temporales con ARIMA | [Series temporales](7-TimeSeries/README.md) | Predicción de series temporales con ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Uso mundial de energía ⚡️ - predicción de series temporales con SVR | [Series temporales](7-TimeSeries/README.md) | Predicción de series temporales con regresor de vectores de soporte | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introducción al aprendizaje por refuerzo | [Aprendizaje por refuerzo](8-Reinforcement/README.md) | Introducción al aprendizaje por refuerzo con Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | ¡Ayuda a Peter a evitar al lobo! 🐺 | [Aprendizaje por refuerzo](8-Reinforcement/README.md) | Aprendizaje por refuerzo con Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Post script | Escenarios y aplicaciones de ML en el mundo real | [ML en el mundo real](9-Real-World/README.md) | Aplicaciones reales interesantes y reveladoras del aprendizaje automático clásico | [Lección](9-Real-World/1-Applications/README.md) | Equipo | -| Post script | Depuración de modelos de ML usando el tablero RAI | [ML en el mundo real](9-Real-World/README.md) | Depuración de modelos de aprendizaje automático usando componentes del tablero Responsible AI | [Lección](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [quiz posterior a la lección](https://ff-quizzes.netlify.app/en/ml/) +> **Una nota sobre los idiomas**: Estas lecciones están escritas principalmente en Python, pero muchas también están disponibles en R. Para completar una lección en R, ve a la carpeta `/solution` y busca las lecciones en R. Incluyen una extensión .rmd que representa un archivo de **R Markdown**, que puede definirse simplemente como una incorporación de `fragmentos de código` (de R u otros lenguajes) y un `encabezado YAML` (que guía cómo formatear la salida como PDF) en un `documento Markdown`. Como tal, sirve como un marco ejemplar para la creación de contenidos en ciencia de datos, ya que permite combinar tu código, su salida y tus pensamientos permitiéndote escribirlos en Markdown. Además, los documentos R Markdown pueden ser renderizados a formatos de salida como PDF, HTML o Word. + +> **Una nota sobre los cuestionarios**: Todos los cuestionarios se encuentran en la [carpeta Quiz App](../../quiz-app), con un total de 52 cuestionarios de tres preguntas cada uno. Están vinculados dentro de las lecciones, pero la aplicación de cuestionarios se puede ejecutar localmente; sigue las instrucciones en la carpeta `quiz-app` para alojarla localmente o desplegarla en Azure. + +| Número de Lección | Tema | Agrupación de la Lección | Objetivos de Aprendizaje | Lección vinculada | Autor | +| :---------------: | :-------------------------------------------------: | :----------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------: | +| 01 | Introducción al aprendizaje automático | [Introducción](1-Introduction/README.md) | Aprende los conceptos básicos detrás del aprendizaje automático | [Lección](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | La historia del aprendizaje automático | [Introducción](1-Introduction/README.md) | Aprende la historia que sustenta este campo | [Lección](1-Introduction/2-history-of-ML/README.md) | Jen y Amy | +| 03 | Equidad y aprendizaje automático | [Introducción](1-Introduction/README.md) | ¿Cuáles son los importantes temas filosóficos sobre la equidad que los estudiantes deben considerar al crear y aplicar modelos de ML? | [Lección](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Técnicas para el aprendizaje automático | [Introducción](1-Introduction/README.md) | ¿Qué técnicas usan los investigadores de ML para construir modelos de ML? | [Lección](1-Introduction/4-techniques-of-ML/README.md) | Chris y Jen | +| 05 | Introducción a la regresión | [Regresión](2-Regression/README.md) | Comienza con Python y Scikit-learn para modelos de regresión | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Precios de calabazas en Norteamérica 🎃 | [Regresión](2-Regression/README.md) | Visualiza y limpia datos en preparación para ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Precios de calabazas en Norteamérica 🎃 | [Regresión](2-Regression/README.md) | Construye modelos de regresión lineal y polinómica | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen y Dmitry • Eric Wanjau | +| 08 | Precios de calabazas en Norteamérica 🎃 | [Regresión](2-Regression/README.md) | Construye un modelo de regresión logística | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Una aplicación web 🔌 | [Aplicación Web](3-Web-App/README.md) | Construye una aplicación web para usar tu modelo entrenado | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introducción a la clasificación | [Clasificación](4-Classification/README.md) | Limpia, prepara y visualiza tus datos; introducción a la clasificación | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen y Cassie • Eric Wanjau | +| 11 | Cocina deliciosa asiática e india 🍜 | [Clasificación](4-Classification/README.md) | Introducción a los clasificadores | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen y Cassie • Eric Wanjau | +| 12 | Cocina deliciosa asiática e india 🍜 | [Clasificación](4-Classification/README.md) | Más clasificadores | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen y Cassie • Eric Wanjau | +| 13 | Cocina deliciosa asiática e india 🍜 | [Clasificación](4-Classification/README.md) | Construye una aplicación web recomendadora usando tu modelo | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introducción al clustering | [Clustering](5-Clustering/README.md) | Limpia, prepara y visualiza tus datos; introducción al clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Explorando gustos musicales nigerianos 🎧 | [Clustering](5-Clustering/README.md) | Explora el método K-Means para clustering | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introducción al procesamiento de lenguaje natural ☕️ | [Procesamiento de lenguaje natural](6-NLP/README.md) | Aprende lo básico sobre PLN construyendo un bot simple | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Tareas comunes de PLN ☕️ | [Procesamiento de lenguaje natural](6-NLP/README.md) | Profundiza tus conocimientos de PLN entendiendo tareas comunes requeridas al tratar con estructuras de lenguaje | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Traducción y análisis de sentimiento ♥️ | [Procesamiento de lenguaje natural](6-NLP/README.md) | Traducción y análisis de sentimiento con Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hoteles románticos de Europa ♥️ | [Procesamiento de lenguaje natural](6-NLP/README.md) | Análisis de sentimiento con reseñas de hoteles 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hoteles románticos de Europa ♥️ | [Procesamiento de lenguaje natural](6-NLP/README.md) | Análisis de sentimiento con reseñas de hoteles 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introducción a la predicción de series temporales | [Series temporales](7-TimeSeries/README.md) | Introducción a la predicción de series temporales | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Uso mundial de energía ⚡️ - predicción de series temporales con ARIMA | [Series temporales](7-TimeSeries/README.md) | Predicción de series temporales con ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Uso mundial de energía ⚡️ - predicción de series temporales con SVR | [Series temporales](7-TimeSeries/README.md) | Predicción de series temporales con regresor de vectores de soporte | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introducción al aprendizaje por refuerzo | [Aprendizaje por refuerzo](8-Reinforcement/README.md) | Introducción al aprendizaje por refuerzo con Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Ayuda a Peter a evitar al lobo! 🐺 | [Aprendizaje por refuerzo](8-Reinforcement/README.md) | Aprendizaje por refuerzo con Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Epílogo | Escenarios y aplicaciones de ML en el mundo real | [ML en el mundo real](9-Real-World/README.md) | Aplicaciones interesantes y reveladoras del ML clásico | [Lección](9-Real-World/1-Applications/README.md) | Equipo | +| Epílogo | Depuración de modelos en ML con el panel de RAI | [ML en el mundo real](9-Real-World/README.md) | Depuración de modelos en machine learning usando componentes del panel Responsible AI | [Lección](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [encuentra todos los recursos adicionales para este curso en nuestra colección Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Acceso sin conexión -Puedes ejecutar esta documentación sin conexión usando [Docsify](https://docsify.js.org/#/). Haz un fork de este repositorio, [instala Docsify](https://docsify.js.org/#/quickstart) en tu máquina local y luego en la carpeta raíz de este repositorio, escribe `docsify serve`. El sitio web se servirá en el puerto 3000 en tu localhost: `localhost:3000`. +Puedes ejecutar esta documentación sin conexión usando [Docsify](https://docsify.js.org/#/). Haz un fork de este repositorio, [instala Docsify](https://docsify.js.org/#/quickstart) en tu máquina local y luego, en la carpeta raíz de este repo, escribe `docsify serve`. El sitio web se servirá en el puerto 3000 de tu localhost: `localhost:3000`. ## PDFs -Encuentra un pdf del currículo con enlaces [aquí](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Encuentra un pdf del plan de estudios con enlaces [aquí](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Otros cursos +## 🎒 Otros Cursos ¡Nuestro equipo produce otros cursos! Echa un vistazo: @@ -185,8 +184,8 @@ Encuentra un pdf del currículo con enlaces [aquí](https://microsoft.github.io/ ### Azure / Edge / MCP / Agentes [![AZD para principiantes](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI para principiantes](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP para principiantes](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Agentes IA para principiantes](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP para Principiantes](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Agentes de IA para Principiantes](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- @@ -198,7 +197,7 @@ Encuentra un pdf del currículo con enlaces [aquí](https://microsoft.github.io/ --- -### Aprendizaje Fundamental +### Aprendizaje Básico [![ML para Principiantes](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Ciencia de Datos para Principiantes](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![IA para Principiantes](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -210,29 +209,29 @@ Encuentra un pdf del currículo con enlaces [aquí](https://microsoft.github.io/ --- ### Serie Copilot -[![Copilot para Programación Asistida por IA](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot para Programación en Pareja con IA](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot para C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Aventura Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Obtener Ayuda +## Obtener ayuda -Si te quedas atascado o tienes alguna pregunta sobre cómo crear aplicaciones de IA. Únete a otros aprendices y desarrolladores experimentados en discusiones sobre MCP. Es una comunidad de apoyo donde las preguntas son bienvenidas y el conocimiento se comparte libremente. +Si te quedas atascado o tienes alguna pregunta sobre cómo crear aplicaciones de IA, únete a otros aprendices y desarrolladores experimentados en discusiones sobre MCP. Es una comunidad de apoyo donde las preguntas son bienvenidas y el conocimiento se comparte libremente. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Si tienes comentarios sobre el producto o errores mientras construyes, visita: +Si tienes sugerencias sobre el producto o errores mientras creas, visita: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Consejos Adicionales de Aprendizaje +## Consejos adicionales de aprendizaje - Revisa los notebooks después de cada lección para una mejor comprensión. - Practica implementando algoritmos por tu cuenta. -- Explora conjuntos de datos del mundo real usando los conceptos aprendidos. +- Explora conjuntos de datos del mundo real utilizando los conceptos aprendidos. --- -**Descargo de responsabilidad**: -Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción profesional realizada por humanos. No somos responsables de malentendidos o interpretaciones erróneas derivadas del uso de esta traducción. +**Aviso Legal**: +Este documento ha sido traducido utilizando el servicio de traducción AI [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional humana. No nos responsabilizamos por malentendidos o interpretaciones erróneas derivadas del uso de esta traducción. \ No newline at end of file diff --git a/translations/et/.co-op-translator.json b/translations/et/.co-op-translator.json index 3cb5c5ae1..befa8e9fd 100644 --- a/translations/et/.co-op-translator.json +++ b/translations/et/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "et" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:41:42+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:42:10+00:00", "source_file": "README.md", "language_code": "et" }, diff --git a/translations/et/README.md b/translations/et/README.md index 93f7e79ca..6290fbbe0 100644 --- a/translations/et/README.md +++ b/translations/et/README.md @@ -10,14 +10,14 @@ ### 🌐 Mitmekeelne tugi -#### Toetatud GitHub Actioni kaudu (Automaatne ja alati ajakohane) +#### Toetatuna GitHub Actioni kaudu (automatiseeritud ja alati ajakohane) -[araabia](../ar/README.md) | [bengali](../bn/README.md) | [bulgaaria](../bg/README.md) | [burma (Myanmar)](../my/README.md) | [hiina (lihtsustatud)](../zh-CN/README.md) | [hiina (traditsiooniline, Hongkong)](../zh-HK/README.md) | [hiina (traditsiooniline, Macau)](../zh-MO/README.md) | [hiina (traditsiooniline, Taiwan)](../zh-TW/README.md) | [horvaadi](../hr/README.md) | [tšehhi](../cs/README.md) | [taani](../da/README.md) | [hollandi](../nl/README.md) | [eesti](./README.md) | [soome](../fi/README.md) | [prantsuse](../fr/README.md) | [saksa](../de/README.md) | [kreeka](../el/README.md) | [heebrea](../he/README.md) | [hindi](../hi/README.md) | [ungari](../hu/README.md) | [indoneesia](../id/README.md) | [itaalia](../it/README.md) | [jaapani](../ja/README.md) | [kannada](../kn/README.md) | [korea](../ko/README.md) | [leedu](../lt/README.md) | [malai](../ms/README.md) | [malajalami](../ml/README.md) | [marathi](../mr/README.md) | [nepali](../ne/README.md) | [Nigeeria pidgin](../pcm/README.md) | [norra](../no/README.md) | [pärsia (farsi)](../fa/README.md) | [poola](../pl/README.md) | [portugali (Brasiilia)](../pt-BR/README.md) | [portugali (Portugali)](../pt-PT/README.md) | [penjabi (Gurmukhi)](../pa/README.md) | [rumeenia](../ro/README.md) | [vene](../ru/README.md) | [serbia (kirilitsa)](../sr/README.md) | [slovaki](../sk/README.md) | [sloveeni](../sl/README.md) | [hispaania](../es/README.md) | [suahiili](../sw/README.md) | [rootsi](../sv/README.md) | [tagalogi (filipino)](../tl/README.md) | [tamiili](../ta/README.md) | [telegu](../te/README.md) | [tai](../th/README.md) | [türgi](../tr/README.md) | [ukraina](../uk/README.md) | [urdu](../ur/README.md) | [vietnami](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](./README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Eelistad kloonimist lokaalselt?** +> **Eelistate kloonida lokaalselt?** > -> See hoidla sisaldab üle 50 keele tõlkeid, mis suurendavad oluliselt allalaadimismahtu. Tõlgete ilma kloonimiseks kasuta harvendatud kontrolli (sparse checkout): +> Käesolevas hoidlas on üle 50 keele tõlked, mis suurendavad oluliselt allalaadimise mahtu. Tõlketeta kloonimiseks kasutage altvalikut (sparse checkout): > > **Bash / macOS / Linux:** > ```bash @@ -33,65 +33,65 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> See annab sulle kõik vajaliku kursuse läbimiseks palju kiirema allalaadimisega. +> See annab teile kõik vajaliku kursuse läbimiseks palju kiirema allalaadimisega. #### Liitu meie kogukonnaga [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Meil on käimas Discordis õppesari AI-ga, saa rohkem teada ja liitu meiega aadressil [Learn with AI Series](https://aka.ms/learnwithai/discord) 18.-30. septembril 2025. Saad nippe ja trikke GitHub Copiloti kasutamiseks andmeteaduses. +Meil on käimas Discordi õppesari tehisintellekti teemadel, lisateabe ja liitumise leiad aadressilt [Learn with AI Series](https://aka.ms/learnwithai/discord) perioodil 18.–30. september 2025. Saad nõuandeid ja nippe GitHub Copiloti kasutamiseks andmeteaduses. -![Õpi AI-ga sari](../../translated_images/et/3.9b58fd8d6c373c20.webp) +![Learn with AI series](../../translated_images/et/3.9b58fd8d6c373c20.webp) # Masinõpe algajatele – õppekava -> 🌍 Rändame ümber maailma, uurides masinõpet läbi maailma kultuuride 🌍 +> 🌍 Rändame ümber maailma, uurides masinõpet maailma kultuuride kaudu 🌍 -Microsofti Cloud Advocates pakuvad 12-nädalast, 26-õpetunniga õppekava, mis käsitleb **masinõpet**. Selles õppekavas õpid seda, mida mõnikord nimetatakse **klassikaliseks masinõppeks**, kasutades peamiselt Scikit-learn'i raamatukogu ja vältides süvaõpet (mida käsitletakse meie [AI algajatele õppekavas](https://aka.ms/ai4beginners)). Ühenda need õppetunnid meie ['Andmeteadus algajatele' õppekavaga](https://aka.ms/ds4beginners)! +Microsofti Cloud Advocates on meeldiv pakkuda 12-nädalast, 26-õppetunnist koosnevat õppekava, mis käsitleb põhjalikult **masinõpet**. Selles õppekavas õpid nn **klassikalist masinõpet**, kasutades peamiselt Scikit-learn raamatukogu ja vältides süvaõpet, mida käsitletakse meie [AI algajatele õppekava](https://aka.ms/ai4beginners) raames. Ühenda need õppetunnid koos meie ['Andmeteaduse algajatele' õppekavaga](https://aka.ms/ds4beginners)! -Rändame koos ümber maailma ja rakendame neid klassikalisi meetodeid mitmesugustest piirkondadest pärit andmetele. Igas õppetükis on ette- ja järelülesanded, kirjalikud juhised ülesande täitmiseks, lahendus, kodutöö ja palju muud. Meie projektipõhine õpetus võimaldab sul õppida ehitades – see on tõestatud meetod uute oskuste kinnistamiseks. +Rända meiega ümber maailma, rakendades neid klassikalisi tehnikaid andmetele paljudelt maailma aladelt. Iga õppetunni juurde kuuluvad eel- ja järeltestid, kirjalikud juhised ülesande täitmiseks, lahendus, kodutöö ja muud. Meie projektipõhine pedagoogika võimaldab õppida praktiliselt, mis on tõestatud viis uute oskuste kinnistumiseks. -**✍️ Südamlikud tänud meie autoritele** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ja Amy Boyd +**✍️ Südamlik tänu autoritele** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ja Amy Boyd -**🎨 Tänud ka meie illustraatoritele** Tomomi Imura, Dasani Madipalli ja Jen Looper +**🎨 Tänu ka illustratsioonide tegijatele** Tomomi Imura, Dasani Madipalli ja Jen Looper -**🙏 Suur tänu meie Microsoft Student Ambassador autoritele, ülevaatajatele ja sisuloojatele**, eriti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ja Snigdha Agarwal +**🙏 Eritänu meie Microsofti tudengisaadikute autoritele, arvustajatele ja sisuloojatele**, eriti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ja Snigdha Agarwal -**🤩 Täiendav tänu Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi ja Vidushi Gupta R-õppetundide eest!** +**🤩 Täiendav tänu Microsofti tudengisaadikutele Eric Wanjau, Jasleen Sondhi ja Vidushi Gupta meie R-õppetundide eest!** # Alustamine Järgne neid samme: -1. **Hargne hoidla**: Vali selle lehe paremas ülanurgas nupp "Fork". -2. **Klooni hoidla**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Harusta hoidla:** Klõpsa selle lehe paremas ülanurgas nuppu "Fork". +2. **Klooni hoidla:** `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [Leia kõik lisamaterjalid selle kursuse jaoks meie Microsoft Learn kogumikust](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [leiad kõik selle kursuse lisamaterjalid meie Microsoft Learn kogust](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Vaja abi?** Tutvu meie [Veaotsingu juhendiga](TROUBLESHOOTING.md), kust leiad lahendusi sagedastele probleemidele paigalduse, seadistuse ja õppetundide käivitamisega. +> 🔧 **Vajate abi?** Vaadake meie [Probleemide lahendamise juhendit](TROUBLESHOOTING.md), mis aitab paigaldamise, seadistamise ja õppetundide läbiviimisega seotud tavaküsimustes. -**[Õpilased](https://aka.ms/student-page)**, et seda õppekava kasutada, tee terve hoidla hargnemine oma GitHub kontole ja tee harjutused ise või grupiga: +**[Õpilased](https://aka.ms/student-page)**, selle õppekava kasutamiseks palume kopeerida kogu hoidla oma GitHubi kontole ja lahendada harjutused individuaalselt või grupiga: -- Alusta eelloenguks mõeldud viktoriiniga. -- Loe loengut ja soorita tegevused, peatudes ja mõeldes iga teadmistekontrolli juures. -- Proovi projekte ise luua õppetundide mõistmise alusel, mitte ainult lahenduskoodi käivitades; siiski on see kood saadaval iga projektiõpetuse `/solution` kaustas. -- Tee järelviktoriin. -- Täida väljakutse. +- Alustage eel-loengu testiga. +- Loe loeng läbi ja täida harjutused, tehke paus ning mõtisklege iga teadmistekontrolli juures. +- Püüa projektid luua, mõistes õppetunde, mitte lihtsalt lahenduskoodi jooksutades; lahenduskood on siiski saadaval mõlemas vastavas `/solution` kaustas projektipõhistes õppetundides. +- Tee järel-loengu test. +- Tee väljakutse. - Täida kodutöö. -- Pärast õppetundidegrupi lõpetamist külasta [Arutelufoorumit](https://github.com/microsoft/ML-For-Beginners/discussions) ja „õpi valjult“, täites sobiva PAT hindamisskaala. 'PAT' on edenemise hindamise tööriist, mille abil saad oma õppimist süvendada. Samuti saad reageerida teiste PAT-idele, et koos õppida. +- Pärast õppegrupi lõpetamist külasta [Arutelufoorumit](https://github.com/microsoft/ML-For-Beginners/discussions) ja "õpi valjult" vastava PAT hindamislehekülje täitmisega. PAT (Progress Assessment Tool) on hinnangutabel, mida täites edendad oma õppimist. Samuti saad teiste PAT-e kommenteerida, et üheskoos õppida. -> Edasiseks õppimiseks soovitame järgida neid [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) mooduleid ja õpiteid. +> Täiendavaks õppimiseks soovitame neid [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) mooduleid ja õpperadasid. -**Õpetajad**, oleme lisanud mõningaid [soovitusi](for-teachers.md), kuidas seda õppekava kasutada. +**Õpetajad**, oleme lisanud [soovitusi](for-teachers.md) selle õppekava kasutamiseks. --- -## Video juhendid +## Videojuhendid -Mõned õppetunnid on saadaval lühikeste videotena. Kõik need leiad õppetundide sisse ehitatuna või [ML for Beginners esitusloendist Microsoft Developeri YouTube kanalil](https://aka.ms/ml-beginners-videos) pildi klõpsates. +Mõned õppetunnid on saadaval lühivideotena. Need leiad kõik õppetundide seest või Microsofti arendajate YouTube’i kanali [ML for Beginners playlistist](https://aka.ms/ml-beginners-videos) pildi pealt klõpsates. -[![ML algajate videobänner](../../translated_images/et/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![ML for beginners banner](../../translated_images/et/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- @@ -99,81 +99,81 @@ Mõned õppetunnid on saadaval lühikeste videotena. Kõik need leiad õppetundi [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif autor** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif autor:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klõpsa ülaloleval pildil, et vaadata videot projektist ja inimestest, kes selle lõid! +> 🎥 Klõpsa ülalolevat pilti, et vaadata videot projektist ja selle loojatest! --- ## Pedagoogika -Selle õppekava loomisel valisime kaks pedagoogilist põhimõtet: tagada, et see on praktiline, **projektipõhine**, ning sisaldab **sagedasi viktoriine**. Lisaks on õppekaval ühine **teema** sidususe saavutamiseks. - -Projektidega sobiva sisu tagamine muudab protsessi õpilaste jaoks kaasahaaravamaks ja aitab kontseptsioonidel paremini meelde jääda. Madala panusega viktoriin enne tundi seab õppurile eesmärgi teemaga tutvumiseks, ning teine viktoriin pärast tundi kindlustab mõistete püsivama kinnistamise. See õppekava on paindlik ja lõbus ning seda saab läbida tervikuna või osadena. Projektid algavad väikestest ja muutuvad 12 nädala jooksul järjest keerukamaks. Õppekavas on ka järelsõna masinõppe reaalse maailma rakenduste kohta, mida saab kasutada lisapunktide või arutelualusena. - -> Leia meie [käitumiskoodeks](CODE_OF_CONDUCT.md), [panustamise juhendid](CONTRIBUTING.md), [tõlked](..) ja [veaotsingu juhendid](TROUBLESHOOTING.md). Ootame konstruktiivset tagasisidet! - -## Igas õppetükis on - -- vabatahtlik visand -- vabatahtlik lisa-video -- video juhend (ainult mõnede jaoks) -- [eelloengu soojendusviktoriin](https://ff-quizzes.netlify.app/en/ml/) -- kirjalik õppetund -- projektipõhiste õppetundide jaoks samm-sammult juhised projekti ehitamiseks -- teadmistekontrollid -- väljakutse -- täiendav lugemine -- kodutöö -- [järelviktoriin](https://ff-quizzes.netlify.app/en/ml/) - -> **Märkuse keelte kohta**: Need õppetunnid on kirjutatud peamiselt Pythonis, kuid paljud on saadaval ka R-keeles. R-õppetunni läbimiseks mine projekti `/solution` kausta ja otsi seal R-õppetunnid. Neil on .rmd laiend, mis tähendab **R Markdown** faili – sisuliselt on see `koodiblokkide` (R või muude keelte) ja `YAML päise` (mis juhib väljundite vormindamist, näiteks PDF) manustamine `Markdown dokumendis`. See on suurepärane raamistik andmeteaduse autorlustöödeks, sest võimaldab kombineerida koodi, selle väljundi ja oma mõtteid Markdownis. Lisaks saab R Markdown dokumente renderdada PDF, HTML või Word väljunditeks. -> **Märkus viktoriinide kohta**: Kõik viktoriinid asuvad kaustas [Quiz App folder](../../quiz-app), kokku 52 viktoriini, millest igaüks sisaldab kolme küsimust. Nendeni on viidatud õppetükkide sees, kuid viktoriinirakendust saab käivitada ka lokaalselt; juhised kohaliku hostimise või Azure’i pilve juurutamiseks leiad `quiz-app` kaustast. - -| Loengu number | Teema | Loengute grupp | Õpieesmärgid | Seotud loeng | Autor | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Masinõppe tutvustus | [Introduction](1-Introduction/README.md) | Õppida masinõppe põhikontseptsioone | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Masinõppe ajalugu | [Introduction](1-Introduction/README.md) | Tutvuda selle valdkonna ajaloolise taustaga | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Õiglus ja masinõpe | [Introduction](1-Introduction/README.md) | Millised on õiglusfilosoofia olulised küsimused, mida õpilased peaksid masinõppemudelite loomisel ja rakendamisel arvesse võtma? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Masinõppe tehnikad | [Introduction](1-Introduction/README.md) | Milliseid tehnikaid kasutavad masinõppe uurijad masinõppemudelite ehitamiseks? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Regresseerimise tutvustus | [Regression](2-Regression/README.md) | Alustada Pythoniga ja Scikit-learniga regresseerimismudelite jaoks | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Põhja-Ameerika kõrvitsa hinnad 🎃 | [Regression](2-Regression/README.md) | Andmete visualiseerimine ja puhastamine masinõppeks ettevalmistamisel | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Põhja-Ameerika kõrvitsa hinnad 🎃 | [Regression](2-Regression/README.md) | Lineaarsete ja polünoomsete regressioonimudelite loomine | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | Põhja-Ameerika kõrvitsa hinnad 🎃 | [Regression](2-Regression/README.md) | Logistilise regressioonimudeli loomine | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Veebirakendus 🔌 | [Web App](3-Web-App/README.md) | Veebirakenduse loomine oma väljaõpetatud mudeli kasutamiseks | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Klassifitseerimise tutvustus | [Classification](4-Classification/README.md) | Andmete puhastamine, ettevalmistamine ja visualiseerimine; klassifitseerimise tutvustus | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | Maitsvad Aasia ja India köögid 🍜 | [Classification](4-Classification/README.md) | Klassifikaatorite tutvustus | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | Maitsvad Aasia ja India köögid 🍜 | [Classification](4-Classification/README.md) | Rohkem klassifikaatoreid | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | Maitsvad Aasia ja India köögid 🍜 | [Classification](4-Classification/README.md) | Soovitusrakenduse loomine veebis oma mudelit kasutades | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Klasterdamise tutvustus | [Clustering](5-Clustering/README.md) | Andmete puhastamine, ettevalmistamine ja visualiseerimine; klasterdamise tutvustus | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Nigeeria muusikamaitsmete avastamine 🎧 | [Clustering](5-Clustering/README.md) | Uurida K-keskmiste klasterdamismeetodit | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Loodusliku keele töötlemise tutvustus ☕️ | [Natural language processing](6-NLP/README.md) | Õpi NLP põhialuseid lihtsa roboti loomise kaudu | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Üldised NLP ülesanded ☕️ | [Natural language processing](6-NLP/README.md) | Sügavama NLP teadmise omandamine, mõistes keelestruktuuridega seotud tavapäraseid ülesandeid | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Tõlkimine ja sentimentide analüüs ♥️ | [Natural language processing](6-NLP/README.md) | Tõlkimine ja sentimentide analüüs Jane Austeni tekstidega | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Euroopas romantilised hotellid ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentide analüüs hotellide arvustustega 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Euroopas romantilised hotellid ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentide analüüs hotellide arvustustega 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Ajaandmete ennustamise tutvustus | [Time series](7-TimeSeries/README.md) | Ajaandmete ennustamise tutvustus | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Maailma elektritarbimine ⚡️ - ajaandmete ennustamine ARIMAga | [Time series](7-TimeSeries/README.md) | Ajaandmete ennustamine ARIMA meetodiga | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Maailma elektritarbimine ⚡️ - ajaandmete ennustamine SVRiga | [Time series](7-TimeSeries/README.md) | Ajaandmete ennustamine tugi-vektor regressori abil | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Tugevdusõppe tutvustus | [Reinforcement learning](8-Reinforcement/README.md) | Tugevdusõppe tutvustus Q-õppe abil | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Aita Peteril hundist pääseda! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Tugevdusõpe Gym keskkonnas | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Järelsõna | Klassikaliste masinõppelahenduste rakendused | [ML in the Wild](9-Real-World/README.md) | Huvitavad ja valgustavad reaalsed kasutusjuhtumid klassikalise masinõppe jaoks | [Lesson](9-Real-World/1-Applications/README.md) | Team | -| Järelsõna | Mudelite silumine ML-is RAI juhtpaneeli abil | [ML in the Wild](9-Real-World/README.md) | Masinõppemudelite silumine kasutades Responsible AI juhtpaneeli komponente | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [Leia kõik selle kursuse lisamaterjalid meie Microsoft Learni kogumikust](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +Selle õppekava loomisel oleme valinud kaks pedagoogilist põhimõtet: tagada praktiline, **projektipõhine** õppimine ja kaasata **sagedased testid**. Lisaks on õppekaval ühine **teema**, mis annab terviklikkuse. + +Tagades sisule vastavuse projektidele, muutub protsess õppijate jaoks kaasahaaravamaks ja kontseptsioonide meeldejätmine paraneb. Madala panusega test enne tundi seab õppija jaoks õppimiseesmärgi, teine test pärast tundi kindlustab materjali parema kinnistumise. See õppekava on paindlik ja lõbus ning seda saab võtta nii tervikuna kui ka osadena. Projektid algavad lihtsatest ja muutuvad 12-nädalase tsükli lõpuks üha keerukamaks. Õppekava lõpus on ka lisateave masinõppe reaalse maailma rakenduste kohta, mida saab kasutada lisatööna või arutelude alustamiseks. + +> Leia meie [käitumisjuhend](CODE_OF_CONDUCT.md), [panustamise juhised](CONTRIBUTING.md), [tõlketöö juhendid](..) ja [probleemide lahendamise materjalid](TROUBLESHOOTING.md). Ootame konstruktiivset tagasisidet! + +## Iga õppetund sisaldab + +- vabatahtlikku visandit +- vabatahtlikku lisavideot +- videojuhendit (ainult osa õppetundidest) +- [eel-loengu soojendustesti](https://ff-quizzes.netlify.app/en/ml/) +- kirjalikku õppetundi +- projektipõhistes õppetundides samm-sammult juhiseid projekti koostamiseks +- teadmistekontrolle +- väljakutset +- lisalugemist +- kodutööd +- [järel-loengu testi](https://ff-quizzes.netlify.app/en/ml/) +> **Märkus keeltest**: Need õppetunnid on peamiselt kirjutatud Pythonis, kuid paljud on saadaval ka R-is. R-õppetunni lõpetamiseks minge `/solution` kausta ja otsige R-õppetunde. Nende failinime laiend on .rmd, mis tähistab **R Markdowni** faili, mida võib lihtsalt määratleda kui `koodiplokkide` (R või teiste keelte) ja `YAML päise` (mis juhendab, kuidas vormindada väljundit nagu PDF) manustamist `Markdown dokumendis`. Sellisena toimib see näidismodellina andmeteaduse jaoks, kuna võimaldab teil kombineerida oma koodi, selle väljundi ja oma mõtted, lubades teil neid Markdownis kirja panna. Veelgi enam, R Markdowni dokumente saab renderdada väljundvormingutes nagu PDF, HTML või Word. + +> **Märkus viktoriinide kohta**: Kõik viktoriinid asuvad [Quiz App kaustas](../../quiz-app), kokku 52 viktoriini, igaühes kolm küsimust. Nendele on viidatud õppetundides, kuid viktoriinirakendust saab käivitada ka lokaalselt; järgige juhiseid `quiz-app` kaustas lokaalseks majutamiseks või Azure’i kasutuselevõtuks. + +| Õppetunni number | Teema | Õppetunni rühm | Õpitulemused | Seotud õppetund | Autor | +| :---------------: | :------------------------------------------------------------: | :-------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | +| 01 | Sissejuhatus masinõppesse | [Sissejuhatus](1-Introduction/README.md) | Õppige masinõppe põhikontseptsioone | [Õppetund](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Masinõppe ajalugu | [Sissejuhatus](1-Introduction/README.md) | Õppige selle valdkonna ajalugu | [Õppetund](1-Introduction/2-history-of-ML/README.md) | Jen ja Amy | +| 03 | Õiglus ja masinõpe | [Sissejuhatus](1-Introduction/README.md) | Millised on õiglust puudutavad olulised filosoofilised küsimused, mida õpilased peaksid arvestama masinõppemudelite loomisel ja rakendamisel? | [Õppetund](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Masinõppe tehnikad | [Sissejuhatus](1-Introduction/README.md) | Milliseid tehnikaid kasutavad masinõppe uurijad masinõppemudelite ehitamiseks? | [Õppetund](1-Introduction/4-techniques-of-ML/README.md) | Chris ja Jen | +| 05 | Sissejuhatus regressiooni | [Regressioon](2-Regression/README.md) | Alustage Pythoni ja Scikit-learniga regressioonimudelite jaoks | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Põhja-Ameerika kõrvitsahinnad 🎃 | [Regressioon](2-Regression/README.md) | Andmete visualiseerimine ja puhastamine masinõppeks valmistumiseks | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Põhja-Ameerika kõrvitsahinnad 🎃 | [Regressioon](2-Regression/README.md) | Looge lineaarsed ja polünoomsed regressioonimudelid | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ja Dmitry • Eric Wanjau | +| 08 | Põhja-Ameerika kõrvitsahinnad 🎃 | [Regressioon](2-Regression/README.md) | Looge logistilise regressiooni mudel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Veebirakendus 🔌 | [Veebirakendus](3-Web-App/README.md) | Looge veebirakendus koolitatud mudeli kasutamiseks | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Sissejuhatus klassifitseerimisse | [Klassifitseerimine](4-Classification/README.md) | Puhastage, valmistage ette ja visualiseerige oma andmeid; sissejuhatus klassifitseerimisse | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ja Cassie • Eric Wanjau | +| 11 | Maitsvad Aasia ja India köögid 🍜 | [Klassifitseerimine](4-Classification/README.md) | Sissejuhatus klassifikaatoritesse | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ja Cassie • Eric Wanjau | +| 12 | Maitsvad Aasia ja India köögid 🍜 | [Klassifitseerimine](4-Classification/README.md) | Rohkem klassifikaatoreid | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ja Cassie • Eric Wanjau | +| 13 | Maitsvad Aasia ja India köögid 🍜 | [Klassifitseerimine](4-Classification/README.md) | Ehitage oma mudelit kasutav soovitusrakendus | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Sissejuhatus klasterdamisse | [Klasterdamine](5-Clustering/README.md) | Puhastage, valmistage ette ja visualiseerige andmeid; sissejuhatus klasterdamisse | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Uuringus Nigeriast pärit muusikamaitse 🎧 | [Klasterdamine](5-Clustering/README.md) | Uurige K-Means klasterdamismeetodit | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Sissejuhatus loomuliku keele töötlemisse ☕️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Õppige NLP aluseid, luues lihtsa boti | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Levinumad NLP ülesanded ☕️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Süvendage NLP teadmisi, mõistes keelestruktuuridega tegelemisel vajalikke tavapäraseid ülesandeid | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Tõlkimine ja sentimentide analüüs ♥️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Tõlkimine ja sentimentide analüüs Jane Austeni tekstide alusel | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Euroopas asuvad romantilised hotellid ♥️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Sentimentide analüüs hotellikriitikatest 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Euroopas asuvad romantilised hotellid ♥️ | [Loomuliku keele töötlemine](6-NLP/README.md) | Sentimentide analüüs hotellikriitikatest 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Sissejuhatus ajasarja prognoosimisse | [Ajasari](7-TimeSeries/README.md) | Sissejuhatus ajasarja prognoosimisse | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Maailma elektritarbimine ⚡️ - ARIMA ajasarja prognoosimine | [Ajasari](7-TimeSeries/README.md) | Ajasarja prognoosimine ARIMA meetodiga | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Maailma elektritarbimine ⚡️ - SVR ajasarja prognoosimine | [Ajasari](7-TimeSeries/README.md) | Ajasarja prognoosimine tugivektorregressori abil | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Sissejuhatus tugevdusõppesse | [Tugevdusõpe](8-Reinforcement/README.md) | Sissejuhatus tugevdusõppesse Q-Learningu abil | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Aita Peteril hundi eest pääseda! 🐺 | [Tugevdusõpe](8-Reinforcement/README.md) | Tugevdusõppe Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Järelkiri | Masinõppe reaalse maailma stsenaariumid ja rakendused | [Masinõpe looduses](9-Real-World/README.md) | Huvitavad ja paljastavad masinõppe klassikalised rakendused reaalses maailmas | [Õppetund](9-Real-World/1-Applications/README.md) | Meeskond | +| Järelkiri | Masinõppemudelite silumine RAI juhtpaneeli abil | [Masinõpe looduses](9-Real-World/README.md) | Masinõppemudelite silumine vastutustundliku tehisintellekti juhtpaneeli komponentide abil | [Õppetund](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [leidke selle kursuse lisamaterjale meie Microsoft Learn kollektsioonist](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Võimalus kasutada võrguühenduseta -Seda dokumentatsiooni saab kasutada võrguühenduseta, kasutades [Docsify](https://docsify.js.org/#/). Tehke selle hoidla fork, [installige Docsify](https://docsify.js.org/#/quickstart) oma kohalikule arvutile ja seejärel selle hoidla juurkaustas tippige `docsify serve`. Veebileht teenindatakse pordil 3000 teie localhostis: `localhost:3000`. +Selle dokumentatsiooni saate võrguühenduseta käivitada, kasutades [Docsify](https://docsify.js.org/#/). Forkige see hoidla, [installige Docsify](https://docsify.js.org/#/quickstart) oma kohalikule arvutile ja siis tippige selle hoidla juurkaustas käsk `docsify serve`. Veebisait serveeritakse pordil 3000 teie lokaalarvutis: `localhost:3000`. ## PDF-id -Õppekava pdf koos linkidega leiad [siit](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Leidke õppekava PDF koos linkidega [siit](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Teised kursused -Meie meeskond toodab ka teisi kursuseid! Vaata: +Meie meeskond toodab ka teisi kursuseid! Vaadake: ### LangChain @@ -182,57 +182,57 @@ Meie meeskond toodab ka teisi kursuseid! Vaata: [![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents +### Azure / Edge / MCP / Agendid [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP algajatele](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI agendid algajatele](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Generatiivse tehisintellekti sari +[![Generatiivne tehisintellekt algajatele](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generatiivne tehisintellekt (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generatiivne tehisintellekt (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generatiivne tehisintellekt (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Põhjalikud õpioskused -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Põhiline õppimine +[![Masinõpe algajatele](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Andmeteadus algajatele](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Tehisintellekt algajatele](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Küberjulgeolek algajatele](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Veebiarendus algajatele](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![Asjade internet (IoT) algajatele](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR arendus algajatele](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Copilot seeria -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### Copiloti sari +[![Copilot tehisintellekti paariarenduseks](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot C#/.NET jaoks](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copiloti seiklus](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Abi saamine -Kui jääd hätta või sul on AI rakenduste loomise kohta küsimusi, liitu teiste õppijate ja kogenud arendajatega MCP aruteludes. See on toetav kogukond, kus küsimusi võetakse lahkesti vastu ja teadmisi jagatakse vabalt. +Kui sa jään kinni või sul on küsimusi tehisintellekti rakenduste loomise kohta, liitu teiste õppurite ja kogenud arendajatega MCP teemalistes aruteludes. See on toetav kogukond, kus küsimused on teretulnud ja teadmisi jagatakse vabalt. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Kui sul on tootepalautust või tekib ehitusprotsessis vigu, külasta: +Kui sul on toodete kohta tagasisidet või ehitamise ajal esineb vigu, külasta: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Lisasoovitused õppimiseks +## Lisanduvad õppimisnipid -- Vaata läbi märkmikud pärast iga õppetükki paremaks arusaamiseks. -- Harjuta algoritmide rakendamist iseseisvalt. -- Uuri reaalseid andmekogumeid, kasutades õpitud kontseptsioone. +- Vaata õppetundide järel märkmeid parema arusaamise nimel. +- Harjuta algoritmide iseseisvat rakendamist. +- Uuri õpitud kontseptsioonide abil reaalseid andmekogumeid. --- **Vastutusest loobumine**: -See dokument on tõlgitud kasutades tehisintellektil põhinevat tõlkeplatvormi [Co-op Translator](https://github.com/Azure/co-op-translator). Kuigi püüame tagada täpsuse, tuleb arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Originaaldokument selle emakeeles tuleks pidada autoriteetseks allikaks. Olulise info puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste ega valesti mõistmiste eest. +See dokument on tõlgitud tehisintellekti tõlketeenuse [Co-op Translator](https://github.com/Azure/co-op-translator) abil. Kuigi püüame täpsust, tuleb arvestada, et automaatsed tõlked võivad sisaldada vigu või ebatäpsusi. Algne dokument selle emakeeles tuleks pidada usaldusväärseks allikaks. Olulise teabe puhul soovitatakse kasutada professionaalset inimtõlget. Me ei vastuta selle tõlke kasutamisest tulenevate arusaamatuste või valesti mõistmiste eest. \ No newline at end of file diff --git a/translations/fa/.co-op-translator.json b/translations/fa/.co-op-translator.json index a5b1f57eb..e52967e60 100644 --- a/translations/fa/.co-op-translator.json +++ b/translations/fa/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "fa" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:21:29+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:20:51+00:00", "source_file": "README.md", "language_code": "fa" }, diff --git a/translations/fa/README.md b/translations/fa/README.md index f56964adb..1877c360b 100644 --- a/translations/fa/README.md +++ b/translations/fa/README.md @@ -1,25 +1,25 @@ -[![مجوز GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![همکاران GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) -[![مسائل GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) -[![درخواست‌های کشش GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![خوش آمدید به PRها](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![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](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![کپی‌های GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) -[![ستاره‌های GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) +[![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/) -### 🌐 پشتیبانی چندزبانه +### 🌐 پشتیبانی چند زبانه #### پشتیبانی شده از طریق GitHub Action (خودکار و همیشه به‌روز) -[عربی](../ar/README.md) | [بنگالی](../bn/README.md) | [بلغاری](../bg/README.md) | [برمه‌ای (میانمار)](../my/README.md) | [چینی (ساده‌شده)](../zh-CN/README.md) | [چینی (سنتی، هنگ‌کنگ)](../zh-HK/README.md) | [چینی (سنتی، ماکائو)](../zh-MO/README.md) | [چینی (سنتی، تایوان)](../zh-TW/README.md) | [کرواتی](../hr/README.md) | [چکی](../cs/README.md) | [دانمارکی](../da/README.md) | [هلندی](../nl/README.md) | [استونیایی](../et/README.md) | [فنلاندی](../fi/README.md) | [فرانسوی](../fr/README.md) | [آلمانی](../de/README.md) | [یونانی](../el/README.md) | [عبری](../he/README.md) | [هندی](../hi/README.md) | [مجارستانی](../hu/README.md) | [اندونزیایی](../id/README.md) | [ایتالیایی](../it/README.md) | [ژاپنی](../ja/README.md) | [کاننادا](../kn/README.md) | [کره‌ای](../ko/README.md) | [لیتوانیایی](../lt/README.md) | [مالزیایی](../ms/README.md) | [مالایالام](../ml/README.md) | [مراتی](../mr/README.md) | [نپالی](../ne/README.md) | [پیدجن نیجریه‌ای](../pcm/README.md) | [نروژی](../no/README.md) | [فارسی (Farsi)](./README.md) | [لهستانی](../pl/README.md) | [پرتغالی (برزیل)](../pt-BR/README.md) | [پرتغالی (پرتغال)](../pt-PT/README.md) | [پنجابی (گورمکی)](../pa/README.md) | [رومانیایی](../ro/README.md) | [روسی](../ru/README.md) | [صربی (سیریلیک)](../sr/README.md) | [اسلواکی](../sk/README.md) | [اسلوونیایی](../sl/README.md) | [اسپانیایی](../es/README.md) | [سواحلی](../sw/README.md) | [سوئدی](../sv/README.md) | [تاگالوگ (فیلیپینی)](../tl/README.md) | [تامیل](../ta/README.md) | [تلوگو](../te/README.md) | [تایلندی](../th/README.md) | [ترکی](../tr/README.md) | [اوکراینی](../uk/README.md) | [اردو](../ur/README.md) | [ویتنامی](../vi/README.md) +[عربی](../ar/README.md) | [بنگالی](../bn/README.md) | [بلغاری](../bg/README.md) | [برمه‌ای (میانمار)](../my/README.md) | [چینی (ساده‌شده)](../zh-CN/README.md) | [چینی (سنتی، هنگ‌کنگ)](../zh-HK/README.md) | [چینی (سنتی، ماکائو)](../zh-MO/README.md) | [چینی (سنتی، تایوان)](../zh-TW/README.md) | [کرواسی](../hr/README.md) | [چکی](../cs/README.md) | [دانمارکی](../da/README.md) | [هلندی](../nl/README.md) | [استونیایی](../et/README.md) | [فنلاندی](../fi/README.md) | [فرانسوی](../fr/README.md) | [آلمانی](../de/README.md) | [یونانی](../el/README.md) | [عبری](../he/README.md) | [هندی](../hi/README.md) | [مجارستانی](../hu/README.md) | [اندونزیایی](../id/README.md) | [ایتالیایی](../it/README.md) | [ژاپنی](../ja/README.md) | [کانادا](../kn/README.md) | [خمری](../km/README.md) | [کره‌ای](../ko/README.md) | [لیتوانیایی](../lt/README.md) | [مالایی](../ms/README.md) | [مالایالام](../ml/README.md) | [مراتی](../mr/README.md) | [نپالی](../ne/README.md) | [پیجین نیجریه‌ای](../pcm/README.md) | [نروژی](../no/README.md) | [فارسی (Farsi)](./README.md) | [لهستانی](../pl/README.md) | [پرتغالی (برزیل)](../pt-BR/README.md) | [پرتغالی (پرتغال)](../pt-PT/README.md) | [پنجابی (گورموخی)](../pa/README.md) | [رومانیایی](../ro/README.md) | [روسی](../ru/README.md) | [صربی (سیریلیک)](../sr/README.md) | [اسلواکی](../sk/README.md) | [اسلوونیایی](../sl/README.md) | [اسپانیایی](../es/README.md) | [سواحیلی](../sw/README.md) | [سوئدی](../sv/README.md) | [تاگالوگ (فیلیپینی)](../tl/README.md) | [تامیل](../ta/README.md) | [تلوگو](../te/README.md) | [تایلندی](../th/README.md) | [ترکی](../tr/README.md) | [اوکراینی](../uk/README.md) | [اردو](../ur/README.md) | [ویتنامی](../vi/README.md) -> **ترجیح می‌دهید به صورت محلی کلون کنید؟** +> **ترجیح می‌دهید محلی کلون کنید؟** > -> این مخزن شامل بیش از ۵۰ ترجمه زبانی است که اندازه دانلود را به طور قابل توجهی افزایش می‌دهد. برای کلون بدون ترجمه‌ها، از sparse checkout استفاده کنید: +> این مخزن شامل بیش از ۵۰ ترجمه زبان است که به طور قابل توجهی اندازه دانلود را افزایش می‌دهد. برای کلون کردن بدون ترجمه‌ها، از sparse checkout استفاده کنید: > -> **باش / macOS / لینوکس:** +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners @@ -33,147 +33,146 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> این به شما همه چیز مورد نیاز برای تکمیل دوره را با دانلود بسیار سریع‌تر می‌دهد. +> این به شما همه چیز لازم برای تکمیل دوره را با سرعت دانلود بسیار بیشتر می‌دهد. #### به جامعه ما بپیوندید [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -ما یک سری آموزش در دیسکورد درباره یادگیری با هوش مصنوعی داریم، بیشتر بدانید و از ۱۸ تا ۳۰ سپتامبر ۲۰۲۵ به ما بپیوندید در [سری یادگیری با هوش مصنوعی](https://aka.ms/learnwithai/discord). در این دوره نکات و ترفندهایی برای استفاده از GitHub Copilot در علم داده دریافت خواهید کرد. +ما یک سری یادگیری در دیسکورد درباره هوش مصنوعی در حال اجرا داریم، بیشتر بیاموزید و به ما بپیوندید در [سری یادگیری با هوش مصنوعی](https://aka.ms/learnwithai/discord) از ۱۸ تا ۳۰ سپتامبر ۲۰۲۵. شما نکات و ترفندهای استفاده از GitHub Copilot برای علم داده را خواهید گرفت. ![سری یادگیری با هوش مصنوعی](../../translated_images/fa/3.9b58fd8d6c373c20.webp) -# یادگیری ماشین برای مبتدیان - یک برنامه درسی +# آموزش ماشین‌ یادگیری برای مبتدیان -> 🌍 سفر در سراسر جهان در حالی که یادگیری ماشین را از منظر فرهنگ‌های مختلف جهان بررسی می‌کنیم 🌍 +> 🌍 سفر در سراسر جهان در حالی که با فرهنگ‌های مختلف جهان ماشین یادگیری را بررسی می‌کنیم 🌍 -حامیان کلاد در مایکروسافت خوشحالند که یک برنامه درسی ۱۲ هفته‌ای، شامل ۲۶ درس در مورد **یادگیری ماشین** ارائه دهند. در این برنامه درسی، شما با آنچه گاهی اوقات به آن **یادگیری ماشین کلاسیک** گفته می‌شود آشنا خواهید شد، که عمدتاً از کتابخانه Scikit-learn استفاده می‌کند و از یادگیری عمیق اجتناب می‌کند، که در برنامه درسی ما برای [مبتدیان هوش مصنوعی](https://aka.ms/ai4beginners) پوشش داده شده است. همچنین این دروس را با برنامه درسی ما در ['علم داده برای مبتدیان'](https://aka.ms/ds4beginners) جفت کنید! +حامیان ابر در مایکروسافت خوشحالند که یک برنامه درسی ۱۲ هفته‌ای با ۲۶ درس در مورد **ماشین یادگیری** ارائه دهند. در این برنامه درسی، درباره چیزی که گاهی اوقات به آن **ماشین یادگیری کلاسیک** گفته می‌شود، با استفاده عمدتاً از کتابخانه Scikit-learn و اجتناب از یادگیری عمیق که در [برنامه درسی AI برای مبتدیان](https://aka.ms/ai4beginners) ما پوشش داده شده، یاد خواهید گرفت. این دروس را با برنامه درسی ['علم داده برای مبتدیان'](https://aka.ms/ds4beginners) ما نیز همراه کنید! -با ما در سفری در سراسر جهان همراه شوید که این تکنیک‌های کلاسیک را روی داده‌هایی از مناطق مختلف دنیا اعمال می‌کنیم. هر درس شامل آزمون‌های پیش و پس از درس، دستورالعمل‌های مکتوب برای کامل‌کردن درس، راه‌حل، تکلیف و بیشتر است. روش آموزشی پروژه‌محور ما به شما امکان می‌دهد هنگام یادگیری، با ساختن مهارت‌ها را بهتر تثبیت کنید. +با ما در سفر به نقاط مختلف جهان همراه شوید در حالی که این تکنیک‌های کلاسیک را روی داده‌های مناطق مختلف جهان اعمال می‌کنیم. هر درس شامل پرسش‌های قبل و بعد از درس، دستورالعمل‌های نوشته شده برای تکمیل درس، یک راه حل، یک تکلیف و موارد بیشتر است. شیوه آموزشی ما مبتنی بر پروژه است که به شما اجازه می‌دهد هنگام ساختن یاد بگیرید، روشی اثبات شده برای تثبیت مهارت‌های جدید. -**✍️ قدردانی صمیمانه از نویسندگان ما** جن لوپر، استفن هاول، فرانسسکا لازری، تومومی ایمورا، کاسی برویو، دیمیتری سوشنیکوف، کریس نورینگ، آنیربان موخرجی، اورنلا آلتونیان، روت یاكوبو و ایمی بوید +**✍️ از نویسندگان ما صمیمانه سپاسگزاریم** جِن لوپر، استفان هاول، فرانچسکا لازری، تومومی ایمورا، کاسی برویو، دیمیتری سوشنیکوف، کریس نورینگ، آنیربان موخرجی، اورنلا آلتونیان، راث یاکوبو و امی بویل -**🎨 همچنین تشکر از تصویرسازان ما** تومومی ایمورا، داسانی مادپالی و جن لوپر +**🎨 همچنین از تصویرسازان ما سپاسگزاریم** تومومی ایمورا، داسانی مادپالی، و جِن لوپر -**🙏 تشکر ویژه 🙏 از سفرای دانشجویی مایکروسافت به‌عنوان نویسنده، بازبینی‌کننده و مشارکت‌کننده محتوایی** به ویژه ریشیت داگلی، محمد ساکیب خان اینان، روهان راج، الکساندرو پتراسکو، آبیشک جایسوال، نوورین طباسم، ایوان سامویلا، و اسنیگدها آگاروال +**🙏 سپاس ویژه 🙏 از سفرای دانشجویی مایکروسافت که نویسنده، بازبین و مشارکت‌کننده محتوایی بوده‌اند**، به ویژه ریشیت داگلی، محمد ساکیب خان اینان، روهان راج، الکساندرو پتروسکو، آبیشک جایسوال، نوورین طبسم، ایوان سامویلا، و اسنیگدا آگاروال -**🤩 سپاسگذاری اضافی از سفرای دانشجویی مایکروسافت اریک ونجاو، جاسلین سوندی و ویدوشی گوپتا برای دروس R ما!** +**🤩 قدردانی ویژه به سفرای دانشجویی مایکروسافت اریک وانجاو، جاسلین سوندی، و ویدوشی گپتا برای دروس R ما!** -# شروع به کار +# شروع کار این مراحل را دنبال کنید: -1. **شاخه چنگال (Fork) کردن مخزن**: روی دکمه «Fork» در گوشه بالا سمت راست این صفحه کلیک کنید. -2. **کلون کردن مخزن**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **فورک کردن مخزن**: روی دکمه «Fork» در گوشه بالا سمت راست این صفحه کلیک کنید. +2. **کلون کردن مخزن**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [برای یافتن تمام منابع اضافی این دوره، به مجموعه یادگیری مایکروسافت ما مراجعه کنید](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [تمام منابع اضافی این دوره را در مجموعه Microsoft Learn ما بیابید](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **به کمک نیاز دارید؟** راهنمای [رفع اشکال](TROUBLESHOOTING.md) ما را برای حل مسائل رایج در نصب، تنظیم، و اجرای دروس بررسی کنید. +> 🔧 **نیاز به کمک دارید؟** برای حل مشکلات رایج مربوط به نصب، راه‌اندازی و اجرای دروس، راهنمای [عیب‌یابی](TROUBLESHOOTING.md) ما را بررسی کنید. +**[دانش‌آموزان](https://aka.ms/student-page)**، برای استفاده از این برنامه درسی، کل مخزن را به حساب GitHub خود فورک کرده و تمرین‌ها را به تنهایی یا با گروه انجام دهید: -**[دانشجویان](https://aka.ms/student-page)**، برای استفاده از این برنامه درسی، کل مخزن را در حساب GitHub خود فورک کرده و تمرین‌ها را به تنهایی یا با گروه انجام دهید: - -- با یک آزمون پیش‌درس شروع کنید. -- درس را بخوانید و فعالیت‌ها را انجام دهید، در هر بررسی دانش توقف کرده و تأمل کنید. -- سعی کنید پروژه‌ها را با درک دروس بسازید تا فقط اجرای کد راه‌حل؛ البته کد راه‌حل در پوشه‌های `/solution` در هر درس پروژه‌محور موجود است. -- آزمون پس از درس را بگیرید. +- با پرسشنامه پیش‌درس شروع کنید. +- درس را بخوانید و فعالیت‌ها را کامل کنید، در هر مرحله از بررسی دانش توقف کرده و تأمل کنید. +- سعی کنید پروژه‌ها را با درک دروس ایجاد کنید تا فقط اجرای کد راه حل؛ البته کد راه حل در پوشه‌های `/solution` در هر درس مبتنی بر پروژه موجود است. +- پرسشنامه پایان درس را انجام دهید. - چالش را کامل کنید. -- تکلیف را انجام دهید. -- پس از تکمیل یک گروه درسی، به [تخته بحث](https://github.com/microsoft/ML-For-Beginners/discussions) مراجعه کنید و با پر کردن ارزیابی PAT مناسب، «بلند یادگیری» کنید. PAT یک ابزار ارزیابی پیشرفت است که با پر کردن آن یادگیری خود را عمیق‌تر می‌کنید. همچنین می‌توانید به PATهای دیگر واکنش نشان دهید تا با هم یاد بگیریم. +- تکلیف را کامل کنید. +- پس از تکمیل یک گروه درسی، به [تابلوی بحث](https://github.com/microsoft/ML-For-Beginners/discussions) مراجعه کنید و با پر کردن فرم PAT مربوطه «بلند یادگیری» کنید. PAT ابزاری برای ارزیابی پیشرفت است که فرم آن را پر می‌کنید تا یادگیری خود را پیش ببرید. همچنین می‌توانید به PATهای دیگر واکنش نشان دهید تا با هم یاد بگیریم. -> برای مطالعه بیشتر، ما توصیه می‌کنیم این [ماژول‌ها و مسیرهای یادگیری مایکروسافت](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) را دنبال کنید. +> برای تحصیل بیشتر، توصیه می‌کنیم این [ماژول‌ها و مسیرهای یادگیری Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) را دنبال کنید. -**اساتید**، ما [برخی پیشنهادات](for-teachers.md) درباره نحوه استفاده از این برنامه درسی ارائه داده‌ایم. +**معلمان**، ما [برخی پیشنهادات](for-teachers.md) را درباره نحوه استفاده از این برنامه درسی ارائه کرده‌ایم. --- -## راهنمای ویدیویی +## ویدیوهای راهنمای مرحله به مرحله -برخی از دروس به صورت ویدیوهای کوتاه موجود هستند. می‌توانید همه آن‌ها را درون دروس پیدا کنید یا در [فهرست پخش ML برای مبتدیان در کانال مایکروسافت توسعه‌دهنده یوتیوب](https://aka.ms/ml-beginners-videos) با کلیک روی تصویر زیر مشاهده کنید. +برخی از دروس به صورت ویدیوهای کوتاه موجود هستند. می‌توانید همه این ویدیوها را داخل درس‌ها بیابید یا در [لیست پخش ML برای مبتدیان در کانال یوتیوب توسعه‌دهندگان مایکروسافت](https://aka.ms/ml-beginners-videos) با کلیک روی تصویر زیر مشاهده کنید. [![بنر ML برای مبتدیان](../../translated_images/fa/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## با تیم آشنا شوید +## تیم ما را ملاقات کنید [![ویدیوی تبلیغاتی](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**گیف ساخته شده توسط** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**گیف توسط** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 برای دیدن ویدیو درباره پروژه و افراد سازنده آن روی تصویر بالا کلیک کنید! +> 🎥 برای دیدن ویدیویی درباره پروژه و افراد سازنده آن روی تصویر بالا کلیک کنید! --- ## روش آموزشی -ما دو اصل آموزشی را در ساخت این برنامه درسی انتخاب کرده‌ایم: اطمینان از اینکه دست‌به‌کار و **پروژه‌محور** است و همچنین شامل **آزمون‌های مکرر** باشد. علاوه بر این، این برنامه درسی یک **موضوع مشترک** دارد تا انسجام ایجاد کند. +ما در ساخت این برنامه درسی دو اصل آموزشی را انتخاب کرده‌ایم: اطمینان از اینکه برنامه آموزشی **مبتنی بر پروژه و عملی** است و اینکه شامل **پرسشنامه‌های مکرر** باشد. علاوه بر این، این برنامه درسی یک **موضوع مشترک** دارد تا انسجام پیدا کند. -با اطمینان از هم‌راستایی محتوا با پروژه‌ها، روند یادگیری برای دانش‌آموزان جذاب‌تر شده و حفظ مفاهیم افزایش می‌یابد. علاوه بر این، یک آزمون پیش از کلاس با سطح استرس پایین، هدف دانش‌آموز را برای یادگیری موضوع تنظیم می‌کند، در حالی که آزمون دوم پس از کلاس باعث تثبیت بیشتر می‌شود. این برنامه درسی به گونه‌ای طراحی شده که انعطاف‌پذیر و سرگرم‌کننده باشد و می‌توان همه یا بخشی از آن را گذراند. پروژه‌ها از ابتدا کوچک هستند و تا پایان چرخه ۱۲ هفته‌ای به تدریج پیچیده‌تر می‌شوند. این برنامه همچنین شامل یک نکته پایانی درباره کاربردهای واقعی یادگیری ماشین است که می‌توان به عنوان اعتبار اضافی یا پایه‌ای برای بحث از آن استفاده کرد. +تضمین تطابق محتوا با پروژه‌ها باعث جذاب‌تر شدن فرایند برای دانش‌آموزان شده و حفظ مفاهیم را افزایش می‌دهد. همچنین، پرسشنامه کم‌اهمیت قبل از کلاس قصد دانش‌آموز برای یادگیری موضوع را می‌سازد، در حالی که پرسشنامه دوم پس از کلاس ماندگاری بیشتری را تضمین می‌کند. این برنامه درسی طوری طراحی شده است که انعطاف‌پذیر و سرگرم‌کننده باشد و می‌توان آن را به طور کامل یا جزئی دنبال کرد. پروژه‌ها از کوچک شروع شده و تا پایان چرخه ۱۲ هفته‌ای به صورت افزایشی پیچیده می‌شوند. این برنامه درسی همچنین شامل پی‌نوشت درباره کاربردهای دنیای واقعی ماشین یادگیری است که می‌تواند به عنوان اعتبار اضافی یا مبنایی برای بحث استفاده شود. -> کد رفتار ما را در [Code of Conduct](CODE_OF_CONDUCT.md)، راهنمای مشارکت در [Contributing](CONTRIBUTING.md)، ترجمه‌ها در [Translations](..) و راهنمای رفع اشکال در [Troubleshooting](TROUBLESHOOTING.md) ببینید. ما از بازخورد سازنده شما استقبال می‌کنیم! +> ما [کد رفتار](CODE_OF_CONDUCT.md)، [راهنمای مشارکت](CONTRIBUTING.md)، [ترجمه‌ها](..)، و [عیب‌یابی](TROUBLESHOOTING.md) را در اختیار داریم. بازخورد سازنده شما را خوش‌آمد می‌گوییم! ## هر درس شامل -- یادداشت اختیاری به صورت طرح کلی (sketchnote) +- خلاصه نکات اختیاری (sketchnote) - ویدیوی مکمل اختیاری -- راهنمای ویدیویی (فقط برخی از دروس) -- [آزمون گرم کردن پیش از درس](https://ff-quizzes.netlify.app/en/ml/) +- راهنمای ویدیویی (فقط برخی دروس) +- [آزمون پیش‌درس](https://ff-quizzes.netlify.app/en/ml/) - درس مکتوب -- برای دروس پروژه‌محور، راهنماهای گام‌به‌گام برای ساخت پروژه +- در دروس مبتنی بر پروژه، راهنمای گام به گام ساخت پروژه - بررسی دانش -- چالش -- مطالعه تکمیلی +- یک چالش +- خواندن مکمل - تکلیف -- [آزمون پایان درس](https://ff-quizzes.netlify.app/en/ml/) - -> **توضیحی درباره زبان‌ها**: این دروس عمدتاً به زبان پایتون هستند، اما بسیاری از آن‌ها همچنین به زبان R موجود است. برای تکمیل یک درس R، به پوشه `/solution` بروید و به دنبال دروس R بگردید. این‌ها یک پسوند .rmd دارند که نشان‌دهنده یک فایل **R Markdown** است که می‌توان آن را به سادگی به عنوان ترکیبی از `قطعات کد` (از R یا زبان‌های دیگر) و یک `هدر YAML` (که نحوه قالب‌بندی خروجی‌ها مانند PDF را راهنمایی می‌کند) در یک `سند Markdown` تعریف کرد. به این ترتیب، یک چارچوب نمونه برای نویسندگی در داده‌کاوی است چون به شما اجازه می‌دهد کد خود، خروجی آن و افکارتان را با نوشتن در Markdown ترکیب کنید. علاوه بر این، اسناد R Markdown را می‌توان به فرمت‌های خروجی مانند PDF، HTML یا Word تبدیل کرد. -> **یک یادداشت درباره آزمون‌ها**: همه آزمون‌ها در [پوشه Quiz App](../../quiz-app) قرار دارند، در مجموع ۵۲ آزمون که هر کدام شامل سه سوال هستند. این آزمون‌ها از داخل درس‌ها لینک شده‌اند اما برنامه آزمون می‌تواند به صورت محلی اجرا شود؛ دستورالعمل‌های داخل پوشه `quiz-app` را دنبال کنید تا به صورت محلی میزبان شوید یا در Azure مستقر کنید. - -| شماره درس | موضوع | گروه‌بندی درس | اهداف یادگیری | درس مرتبط | نویسنده | -| :-------: | :------------------------------------------------------------: | :-----------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| ۰۱ | معرفی یادگیری ماشین | [مقدمه](1-Introduction/README.md) | مفاهیم پایه‌ای یادگیری ماشین را بیاموزید | [درس](1-Introduction/1-intro-to-ML/README.md) | محمد | -| ۰۲ | تاریخچه یادگیری ماشین | [مقدمه](1-Introduction/README.md) | تاریخچه این حوزه را بیاموزید | [درس](1-Introduction/2-history-of-ML/README.md) | جن و ایمی | -| ۰۳ | انصاف و یادگیری ماشین | [مقدمه](1-Introduction/README.md) | مسائل فلسفی مهم‌ در مورد انصاف که دانش‌آموزان باید هنگام ساخت و استفاده از مدل‌های یادگیری ماشین مورد توجه قرار دهند چیست؟ | [درس](1-Introduction/3-fairness/README.md) | تومومی | -| ۰۴ | تکنیک‌های یادگیری ماشین | [مقدمه](1-Introduction/README.md) | پژوهشگران یادگیری ماشین از چه تکنیک‌هایی برای ساخت مدل‌ها استفاده می‌کنند؟ | [درس](1-Introduction/4-techniques-of-ML/README.md) | کریس و جن | -| ۰۵ | معرفی رگرسیون | [رگرسیون](2-Regression/README.md) | با پایتون و Scikit-learn برای مدل‌های رگرسیونی شروع کنید | [پایتون](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جن • اریک وانژاو | -| ۰۶ | قیمت‌های کدو حلوایی آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | داده‌ها را برای یادگیری ماشین پاک و بصری کنید | [پایتون](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جن • اریک وانژاو | -| ۰۷ | قیمت‌های کدو حلوایی آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | مدل‌های رگرسیون خطی و چند جمله‌ای بسازید | [پایتون](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جن و دیمیتری • اریک وانژاو | -| ۰۸ | قیمت‌های کدو حلوایی آمریکای شمالی 🎃 | [رگرسیون](2-Regression/README.md) | مدل رگرسیون لجستیک بسازید | [پایتون](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جن • اریک وانژاو | -| ۰۹ | یک اپ وب 🔌 | [اپ وب](3-Web-App/README.md) | یک اپ وب بسازید تا از مدل آموزش دیده خود استفاده کنید | [پایتون](3-Web-App/1-Web-App/README.md) | جن | -| ۱۰ | معرفی طبقه‌بندی | [طبقه‌بندی](4-Classification/README.md) | داده‌های خود را پاک، آماده و بصری کنید؛ معرفی طبقه‌بندی | [پایتون](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جن و کَسیه • اریک وانژاو | -| ۱۱ | آشپزی خوشمزه آسیایی و هندی 🍜 | [طبقه‌بندی](4-Classification/README.md) | معرفی طبقه‌بندها | [پایتون](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جن و کَسیه • اریک وانژاو | -| ۱۲ | آشپزی خوشمزه آسیایی و هندی 🍜 | [طبقه‌بندی](4-Classification/README.md) | طبقه‌بندهای بیشتر | [پایتون](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جن و کَسیه • اریک وانژاو | -| ۱۳ | آشپزی خوشمزه آسیایی و هندی 🍜 | [طبقه‌بندی](4-Classification/README.md) | ساخت یک اپ پیشنهادی وب با استفاده از مدل خود | [پایتون](4-Classification/4-Applied/README.md) | جن | -| ۱۴ | معرفی خوشه‌بندی | [خوشه‌بندی](5-Clustering/README.md) | داده‌های خود را پاک، آماده و بصری کنید؛ معرفی خوشه‌بندی | [پایتون](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جن • اریک وانژاو | -| ۱۵ | کشف سلیقه‌های موسیقی نیجریه‌ای 🎧 | [خوشه‌بندی](5-Clustering/README.md) | روش خوشه‌بندی K-Means را کشف کنید | [پایتون](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جن • اریک وانژاو | -| ۱۶ | معرفی پردازش زبان طبیعی ☕️ | [پردازش زبان طبیعی](6-NLP/README.md) | اصول اولیه پردازش زبان طبیعی را با ساخت یک ربات ساده بیاموزید | [پایتون](6-NLP/1-Introduction-to-NLP/README.md) | استفان | -| ۱۷ | وظایف رایج NLP ☕️ | [پردازش زبان طبیعی](6-NLP/README.md) | دانش پردازش زبان طبیعی خود را با درک وظایف رایج لازم برای کار با ساختارهای زبان تعمیق ببخشید | [پایتون](6-NLP/2-Tasks/README.md) | استفان | -| ۱۸ | ترجمه و تحلیل احساسات ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | ترجمه و تحلیل احساسات با جین آستین | [پایتون](6-NLP/3-Translation-Sentiment/README.md) | استفان | -| ۱۹ | هتل‌های رمانتیک اروپا ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | تحلیل احساسات با نظرات هتل ۱ | [پایتون](6-NLP/4-Hotel-Reviews-1/README.md) | استفان | -| ۲۰ | هتل‌های رمانتیک اروپا ♥️ | [پردازش زبان طبیعی](6-NLP/README.md) | تحلیل احساسات با نظرات هتل ۲ | [پایتون](6-NLP/5-Hotel-Reviews-2/README.md) | استفان | -| ۲۱ | معرفی پیش‌بینی سری‌های زمانی | [سری‌های زمانی](7-TimeSeries/README.md) | معرفی پیش‌بینی سری‌های زمانی | [پایتون](7-TimeSeries/1-Introduction/README.md) | فرانچسکا | -| ۲۲ | ⚡️ مصرف برق جهان ⚡️ - پیش‌بینی سری زمانی با ARIMA | [سری‌های زمانی](7-TimeSeries/README.md) | پیش‌بینی سری زمانی با ARIMA | [پایتون](7-TimeSeries/2-ARIMA/README.md) | فرانچسکا | -| ۲۳ | ⚡️ مصرف برق جهان ⚡️ - پیش‌بینی سری زمانی با SVR | [سری‌های زمانی](7-TimeSeries/README.md) | پیش‌بینی سری زمانی با بازگشت بردار پشتیبان | [پایتون](7-TimeSeries/3-SVR/README.md) | آنیر بان | -| ۲۴ | معرفی یادگیری تقویتی | [یادگیری تقویتی](8-Reinforcement/README.md) | معرفی یادگیری تقویتی با Q-Learning | [پایتون](8-Reinforcement/1-QLearning/README.md) | دیمیتری | -| ۲۵ | کمک به پیتر برای فرار از گرگ! 🐺 | [یادگیری تقویتی](8-Reinforcement/README.md) | یادگیری تقویتی با Gym | [پایتون](8-Reinforcement/2-Gym/README.md) | دیمیتری | -| پس‌نوشت | سناریوها و کاربردهای واقعی یادگیری ماشین | [ML در دنیای واقعی](9-Real-World/README.md) | کاربردهای جالب و تأمل‌برانگیز یادگیری ماشین کلاسیک در دنیای واقعی | [درس](9-Real-World/1-Applications/README.md) | تیم | -| پس‌نوشت | اشکال‌زدایی مدل‌ها در یادگیری ماشین با داشبورد RAI | [ML در دنیای واقعی](9-Real-World/README.md) | اشکال‌زدایی مدل‌ها در یادگیری ماشین با استفاده از اجزای داشبورد Responsible AI | [درس](9-Real-World/2-Debugging-ML-Models/README.md) | روت یاکوبو | - -> [تمام منابع اضافی این دوره را در مجموعه مایکروسافت لرن ما بیابید](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- [آزمون پس از درس](https://ff-quizzes.netlify.app/en/ml/) +> **یادداشتی درباره زبان‌ها**: این درس‌ها عمدتاً به زبان پایتون نوشته شده‌اند، اما بسیاری از آن‌ها به زبان R نیز در دسترس هستند. برای تکمیل یک درس R، به پوشه `/solution` بروید و به دنبال درس‌های R بگردید. آن‌ها دارای پسوند .rmd هستند که نمایانگر یک فایل **R Markdown** است که می‌توان آن را به سادگی به صورت جاسازی `بخش‌های کد` (از R یا زبان‌های دیگر) و یک `هدر YAML` (که راهنمایی می‌کند چگونه خروجی‌ها مانند PDF قالب‌بندی شوند) در یک سند `Markdown` تعریف کرد. بنابراین، این یک چارچوب نمونه برای نگارش در علوم داده است زیرا به شما اجازه می‌دهد کد خود، خروجی آن و افکارتان را با نوشتن آن‌ها در مارک‌داون، ترکیب کنید. همچنین، اسناد R Markdown می‌توانند به فرمت‌های خروجی مانند PDF، HTML یا Word تبدیل شوند. + +> **یادداشتی درباره آزمون‌ها**: همه آزمون‌ها در [پوشه برنامه آزمون](../../quiz-app) قرار دارند، در مجموع ۵۲ آزمون با سه سوال هر کدام. آن‌ها از داخل درس‌ها لینک شده‌اند اما برنامه آزمون را می‌توان به صورت محلی هم اجرا کرد؛ دستورالعمل را در پوشه `quiz-app` دنبال کنید تا به صورت محلی میزبانی کنید یا در Azure مستقر کنید. + +| شماره درس | موضوع | گروه‌بندی درس | اهداف یادگیری | درس مرتبط | نویسنده | +| :-------: | :------------------------------------------------------------: | :-----------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| ۰۱ | مقدمه‌ای بر یادگیری ماشین | [Introduction](1-Introduction/README.md) | مفاهیم پایه یادگیری ماشین را یاد بگیرید | [درس](1-Introduction/1-intro-to-ML/README.md) | محمد | +| ۰۲ | تاریخچه یادگیری ماشین | [Introduction](1-Introduction/README.md) | تاریخچه زمینه یادگیری ماشین را بیاموزید | [درس](1-Introduction/2-history-of-ML/README.md) | جن و امی | +| ۰۳ | عدالت و یادگیری ماشین | [Introduction](1-Introduction/README.md) | مسائل فلسفی مهم عدالت که دانش‌آموزان باید هنگام ساخت و بکارگیری مدل‌های یادگیری ماشین در نظر بگیرند چیست؟ | [درس](1-Introduction/3-fairness/README.md) | تومومی | +| ۰۴ | تکنیک‌های یادگیری ماشین | [Introduction](1-Introduction/README.md) | پژوهشگران یادگیری ماشین از چه تکنیک‌هایی برای ساخت مدل‌های یادگیری ماشین استفاده می‌کنند؟ | [درس](1-Introduction/4-techniques-of-ML/README.md) | کریس و جن | +| ۰۵ | مقدمه‌ای بر رگرسیون | [Regression](2-Regression/README.md) | شروع به کار با پایتون و Scikit-learn برای مدل‌های رگرسیون | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جن • اریک وانجائو | +| ۰۶ | قیمت‌های کدو شمال آمریکا 🎃 | [Regression](2-Regression/README.md) | داده‌ها را برای یادگیری ماشین، تمیز و مصورسازی کنید | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جن • اریک وانجائو | +| ۰۷ | قیمت‌های کدو شمال آمریکا 🎃 | [Regression](2-Regression/README.md) | مدل‌های رگرسیون خطی و چندجمله‌ای بسازید | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جن و دیمیتری • اریک وانجائو | +| ۰۸ | قیمت‌های کدو شمال آمریکا 🎃 | [Regression](2-Regression/README.md) | مدل رگرسیون لجستیک بسازید | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جن • اریک وانجائو | +| ۰۹ | برنامه وب 🔌 | [Web App](3-Web-App/README.md) | ساخت یک برنامه وب برای استفاده از مدل آموزش دیده شما | [Python](3-Web-App/1-Web-App/README.md) | جن | +| ۱۰ | مقدمه‌ای بر طبقه‌بندی | [Classification](4-Classification/README.md) | داده‌های خود را تمیز، آماده و مصور کنید؛ مقدمه‌ای بر طبقه‌بندی | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جن و کاسی • اریک وانجائو | +| ۱۱ | غذاهای خوشمزه آسیایی و هندی 🍜 | [Classification](4-Classification/README.md) | مقدمه‌ای بر طبقه‌بندها | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جن و کاسی • اریک وانجائو | +| ۱۲ | غذاهای خوشمزه آسیایی و هندی 🍜 | [Classification](4-Classification/README.md) | طبقه‌بندهای بیشتر | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جن و کاسی • اریک وانجائو | +| ۱۳ | غذاهای خوشمزه آسیایی و هندی 🍜 | [Classification](4-Classification/README.md) | ساخت یک برنامه وب توصیه‌گر با استفاده از مدل خود | [Python](4-Classification/4-Applied/README.md) | جن | +| ۱۴ | مقدمه‌ای بر خوشه‌بندی | [Clustering](5-Clustering/README.md) | داده‌ها را تمیز، آماده و مصور کنید؛ مقدمه‌ای بر خوشه‌بندی | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جن • اریک وانجائو | +| ۱۵ | اکتشاف سلیقه‌های موسیقی نیجریه‌ای 🎧 | [Clustering](5-Clustering/README.md) | روش خوشه‌بندی K-Means را کاوش کنید | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جن • اریک وانجائو | +| ۱۶ | مقدمه‌ای بر پردازش زبان طبیعی ☕️ | [Natural language processing](6-NLP/README.md) | مبانی پردازش زبان طبیعی را با ساخت یک ربات ساده یاد بگیرید | [Python](6-NLP/1-Introduction-to-NLP/README.md) | استفان | +| ۱۷ | وظایف متداول NLP ☕️ | [Natural language processing](6-NLP/README.md) | دانش خود را درباره وظایف معمول پردازش زبان طبیعی که هنگام برخورد با ساختارهای زبانی انتظار می‌رود، عمیق‌تر کنید | [Python](6-NLP/2-Tasks/README.md) | استفان | +| ۱۸ | ترجمه و تحلیل احساسات ♥️ | [Natural language processing](6-NLP/README.md) | ترجمه و تحلیل احساسات با جین آستن | [Python](6-NLP/3-Translation-Sentiment/README.md) | استفان | +| ۱۹ | هتل‌های عاشقانه اروپا ♥️ | [Natural language processing](6-NLP/README.md) | تحلیل احساسات با بررسی‌های هتل ۱ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | استفان | +| ۲۰ | هتل‌های عاشقانه اروپا ♥️ | [Natural language processing](6-NLP/README.md) | تحلیل احساسات با بررسی‌های هتل ۲ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | استفان | +| ۲۱ | مقدمه‌ای بر پیش‌بینی داده‌های سری زمانی | [Time series](7-TimeSeries/README.md) | مقدمه‌ای بر پیش‌بینی سری‌های زمانی | [Python](7-TimeSeries/1-Introduction/README.md) | فرانچسکا | +| ۲۲ | ⚡️ مصرف برق جهان ⚡️ - پیش‌بینی سری زمانی با ARIMA | [Time series](7-TimeSeries/README.md) | پیش‌بینی سری زمانی با ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | فرانچسکا | +| ۲۳ | ⚡️ مصرف برق جهان ⚡️ - پیش‌بینی سری زمانی با SVR | [Time series](7-TimeSeries/README.md) | پیش‌بینی سری زمانی با رگرسیون بردار پشتیبان | [Python](7-TimeSeries/3-SVR/README.md) | آنربان | +| ۲۴ | مقدمه‌ای بر یادگیری تقویتی | [Reinforcement learning](8-Reinforcement/README.md) | مقدمه‌ای بر یادگیری تقویتی با Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | دیمیتری | +| ۲۵ | کمک به پیتر برای فرار از گرگ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym یادگیری تقویتی | [Python](8-Reinforcement/2-Gym/README.md) | دیمیتری | +| پایان‌نامه | سناریوها و کاربردهای یادگیری ماشین در دنیای واقعی | [ML in the Wild](9-Real-World/README.md) | کاربردهای جالب و روشنگرانه یادگیری ماشین کلاسیک در دنیای واقعی | [درس](9-Real-World/1-Applications/README.md) | تیم | +| پایان‌نامه | اشکال‌زدایی مدل در یادگیری ماشین با داشبورد RAI | [ML in the Wild](9-Real-World/README.md) | اشکال‌زدایی مدل یادگیری ماشین با استفاده از اجزای داشبورد مسئولانه AI | [درس](9-Real-World/2-Debugging-ML-Models/README.md) | روث یاکوبو | + +> [تمام منابع اضافی این دوره را در مجموعه Microsoft Learn ما بیابید](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## دسترسی آفلاین -می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. این مخزن را فورک کنید، [Docsify را نصب کنید](https://docsify.js.org/#/quickstart) روی دستگاه محلی خود، سپس در شاخه ریشه این مخزن تایپ کنید `docsify serve`. وب‌سایت روی پورت ۳۰۰۰ روی لوکال‌هاست شما اجرا خواهد شد: `localhost:3000`. +شما می‌توانید این مستندات را به صورت آفلاین با استفاده از [Docsify](https://docsify.js.org/#/) اجرا کنید. این مخزن را فورک کنید، [Docsify را نصب کنید](https://docsify.js.org/#/quickstart) روی ماشین محلی خود، و سپس در پوشه ریشه این مخزن، دستور `docsify serve` را تایپ کنید. وب‌سایت روی پورت 3000 روی لوکال‌هاست شما سرو خواهد شد: `localhost:3000`. ## فایل‌های PDF -یک PDF از برنامه درسی با لینک‌ها را [اینجا](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) بیابید. +یک فایل پی‌دی‌اف از برنامه درسی را با لینک [در اینجا](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) بیابید. ## 🎒 دوره‌های دیگر -تیم ما دوره‌های دیگری تولید می‌کند! نگاهی بیندازید به: +تیم ما دوره‌های دیگری هم تولید می‌کند! بررسی کنید: ### LangChain @@ -185,22 +184,22 @@ ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP برای مبتدیان](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents برای مبتدیان](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series +### سری هوش مصنوعی مولد [![هوش مصنوعی مولد برای مبتدیان](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![هوش مصنوعی مولد (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![هوش مصنوعی مولد (جاوا)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![هوش مصنوعی مولد (جاوااسکریپت)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![هوش مصنوعی مولد (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![هوش مصنوعی مولد (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### یادگیری اصلی +### آموزش‌های اصلی [![یادگیری ماشین برای مبتدیان](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![علم داده برای مبتدیان](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![علوم داده برای مبتدیان](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![هوش مصنوعی برای مبتدیان](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![امنیت سایبری برای مبتدیان](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![توسعه وب برای مبتدیان](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) @@ -209,30 +208,30 @@ --- -### سری کپایلوت -[![کپایلوت برای برنامه‌نویسی جفتی هوش مصنوعی](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![کپایلوت برای C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![ماجرای کپایلوت](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### سری همیار هوشمند (کاپیلت) +[![همیار هوش مصنوعی برای برنامه‌نویسی زوج](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![همیار برای C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![ماجراجویی کاپیلت](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## دریافت کمک -اگر گیر کردید یا سوالی درباره ساخت برنامه‌های هوش مصنوعی داشتید، در بحث‌ها با یادگیرندگان و توسعه‌دهندگان باتجربه MCP شرکت کنید. این یک جامعه پشتیبان است که در آن سوال‌ها پذیرفته می‌شوند و دانش آزادانه به اشتراک گذاشته می‌شود. +اگر گیر کردید یا سوالی درباره ساخت برنامه‌های هوش مصنوعی دارید، به همراه دیگر یادگیرندگان و توسعه‌دهندگان باتجربه در بحث‌های MCP بپیوندید. این یک جامعه حمایتی است که سوالات در آن پذیرفته می‌شود و دانش به طور آزاد به اشتراک گذاشته می‌شود. -[![دیسکورد مایکروسافت فاندری](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +[![دیسکورد Microsoft Foundry](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -اگر بازخورد محصول دارید یا هنگام ساخت مشکلی پیش آمد به اینجا مراجعه کنید: +اگر بازخورد محصول یا خطاهایی هنگام ساخت برنامه دارید، از اینجا دیدن کنید: -[![انجمن توسعه‌دهندگان مایکروسافت فاندری](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## نکات تکمیلی یادگیری +[![فروم توسعه‌دهندگان Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +## نکات اضافی برای یادگیری -- پس از هر درس نوت‌بوک‌ها را مرور کنید تا بهتر بفهمید. -- الگوریتم‌ها را خودتان تمرین و پیاده‌سازی کنید. -- داده‌های دنیای واقعی را با استفاده از مفاهیم یادگرفته شده بررسی کنید. +- پس از هر درس، دفترچه‌ها را مرور کنید تا بهتر بفهمید. +- الگوریتم‌ها را خودتان تمرین کنید. +- داده‌های واقعی را با استفاده از مفاهیم آموخته‌شده کاوش کنید. --- **سلب مسئولیت**: -این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. هرچند ما در تلاش برای دقت هستیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است حاوی خطا یا نادقتی باشند. سند اصلی به زبان بومی خود باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، استفاده از ترجمه حرفه‌ای و انسانی توصیه می‌شود. ما مسئول هیچ‌گونه سوءتفاهم یا برداشت نادرست ناشی از استفاده از این ترجمه نیستیم. +این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما در صدد دقت هستیم، لطفاً آگاه باشید که ترجمه‌های خودکار ممکن است دارای اشتباهات یا نواقص باشند. سند اصلی به زبان مادری آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، ترجمه حرفه‌ای انسانی توصیه می‌شود. ما در قبال هرگونه سوءتفاهم یا تفسیر نادرست ناشی از استفاده از این ترجمه مسئولیتی نداریم. \ No newline at end of file diff --git a/translations/fi/.co-op-translator.json b/translations/fi/.co-op-translator.json index e9ea928cb..8ab346405 100644 --- a/translations/fi/.co-op-translator.json +++ b/translations/fi/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "fi" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:02:42+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:38:34+00:00", "source_file": "README.md", "language_code": "fi" }, diff --git a/translations/fi/README.md b/translations/fi/README.md index 3942b592c..290ca373e 100644 --- a/translations/fi/README.md +++ b/translations/fi/README.md @@ -1,23 +1,23 @@ -[![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/) +[![GitHub-lisenssi](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) +[![GitHub-kontribuuttorit](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![GitHub-ongelmat](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![GitHub-pyyntö](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/) +[![GitHub-katsojat](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![GitHub-haarat](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![GitHub-tähdet](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) ### 🌐 Monikielinen tuki #### Tuettu GitHub Actionin kautta (automaattinen ja aina ajan tasalla) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](./README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabia](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgaria](../bg/README.md) | [Burma (Myanmar)](../my/README.md) | [Kiina (yksinkertaistettu)](../zh-CN/README.md) | [Kiina (perinteinen, Hong Kong)](../zh-HK/README.md) | [Kiina (perinteinen, Macao)](../zh-MO/README.md) | [Kiina (perinteinen, Taiwan)](../zh-TW/README.md) | [Kroatia](../hr/README.md) | [Tsekki](../cs/README.md) | [Tanska](../da/README.md) | [Hollanti](../nl/README.md) | [Viro](../et/README.md) | [Suomi](./README.md) | [Ranska](../fr/README.md) | [Saksa](../de/README.md) | [Kreikka](../el/README.md) | [Heprea](../he/README.md) | [Hindi](../hi/README.md) | [Unkari](../hu/README.md) | [Indonesia](../id/README.md) | [Italia](../it/README.md) | [Japani](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korea](../ko/README.md) | [Liettua](../lt/README.md) | [Malaiji](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norja](../no/README.md) | [Persia (Farsi)](../fa/README.md) | [Puola](../pl/README.md) | [Portugali (Brasilia)](../pt-BR/README.md) | [Portugali (Portugali)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romania](../ro/README.md) | [Venäjä](../ru/README.md) | [Serbia (kyrillinen)](../sr/README.md) | [Slovakki](../sk/README.md) | [Slovenia](../sl/README.md) | [Espanja](../es/README.md) | [Swahili](../sw/README.md) | [Ruotsi](../sv/README.md) | [Tagalog (Filippiinit)](../tl/README.md) | [Tamili](../ta/README.md) | [Telugu](../te/README.md) | [Thaimaa](../th/README.md) | [Turkki](../tr/README.md) | [Ukraina](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnam](../vi/README.md) -> **Haluatko mieluummin kloonata paikallisesti?** +> **Haluatko kloonata paikallisesti?** > -> Tämä arkisto sisältää yli 50 käännöstä, mikä lisää merkittävästi lataustiedoston kokoa. Jos haluat kloonata ilman käännöksiä, käytä sparse checkout -toimintoa: +> Tässä repositoriossa on yli 50 kielen käännöksiä, mikä lisää huomattavasti ladattavan tiedoston kokoa. Kloonaa ilman käännöksiä käyttämällä osittaista checkoutia: > > **Bash / macOS / Linux:** > ```bash @@ -33,206 +33,205 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Tämä antaa sinulle kaiken tarvittavan kurssin suorittamiseen paljon nopeammalla latauksella. +> Saat kaiken tarvittavan kurssin suorittamiseen paljon nopeammalla latauksella. #### Liity yhteisöömme [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Meillä on käynnissä Discordin opi tekoälyn kanssa -sarja, lisätietoja ja liittymään pääset osoitteesta [Learn with AI Series](https://aka.ms/learnwithai/discord) ajalla 18. - 30. syyskuuta 2025. Saat vinkkejä ja niksejä GitHub Copilotin käyttämiseen Data Sciencessä. +Meillä on käynnissä Discordin Learn with AI -sarja, opi lisää ja liity mukaan osoitteessa [Learn with AI Series](https://aka.ms/learnwithai/discord) ajalla 18. - 30. syyskuuta 2025. Saat vinkkejä ja niksejä GitHub Copilotin käyttöön Data Scientistin työssä. ![Learn with AI series](../../translated_images/fi/3.9b58fd8d6c373c20.webp) # Koneoppiminen aloittelijoille - Opetussuunnitelma -> 🌍 Matkustetaan ympäri maailmaa tutkien koneoppimista maailman kulttuurien näkökulmasta 🌍 +> 🌍 Matkusta ympäri maailmaa tutkiessamme koneoppimista maailman kulttuurien avulla 🌍 -Microsoftin Cloud Advocates tarjoaa 12 viikon ja 26 oppitunnin opetussuunnitelman, joka keskittyy kokonaan **koneoppimiseen**. Tässä opetussuunnitelmassa opit siitä, mitä joskus kutsutaan **klassikoksi koneoppimiseksi**, pääasiassa Scikit-learn-kirjastoa käyttäen ja välttäen syväoppimista, joka on käsitelty [tekoälyn aloittelijoille -opetussuunnitelmassamme](https://aka.ms/ai4beginners). Yhdistä nämä oppitunnit myös ['Data Science aloittelijoille' -opetussuunnitelmamme](https://aka.ms/ds4beginners) kanssa! +Microsoftin Cloud Advocates tarjoaa 12-viikkoisen, 26-oppitunnin opetussuunnitelman, joka käsittelee **koneoppimista**. Tässä opetussuunnitelmassa opit niin kutsutusta **klassikosta koneoppimisesta**, käyttäen pääasiassa Scikit-learnia kirjastona ja välttäen syväoppimista, jota käsitellään [AI for Beginners -opetussuunnitelmassamme](https://aka.ms/ai4beginners). Yhdistä nämä oppitunnit myös ['Data Science for Beginners' -opetussuunnitelman](https://aka.ms/ds4beginners) kanssa! -Matkusta kanssamme ympäri maailmaa soveltaen näitä klassisia menetelmiä dataan monilta maailman alueilta. Jokainen oppitunti sisältää ennakko- ja jälkikokeet, kirjalliset ohjeet oppitunnin suorittamiseen, ratkaisun, tehtävän ja paljon muuta. Projektipohjainen opetusmenetelmä antaa sinun oppia samalla kun rakennat, mikä on todistettu tapa uusien taitojen omaksumiseen. +Matkustamme ympäri maailmaa soveltaessamme näitä klassisia menetelmiä eri alueiden tietoihin. Jokainen oppitunti sisältää ennen- ja jälkeetenttejä, kirjalliset ohjeet oppitunnin suorittamiseen, ratkaisut, harjoitukset ja muuta. Projektipohjainen pedagogiikkamme sallii oppimisen rakentamisen ohessa, mikä on todistettu tapa saada uudet taidot pysymään. -**✍️ Sydämellinen kiitos tekijöillemme** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ja Amy Boyd +**✍️ Suuret kiitokset kirjoittajille** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ja Amy Boyd -**🎨 Kiitos myös kuvittajillemme** Tomomi Imura, Dasani Madipalli ja Jen Looper +**🎨 Kiitokset myös kuvittajillemme** Tomomi Imura, Dasani Madipalli ja Jen Looper -**🙏 Erityiskiitos 🙏 Microsoft Student Ambassador -tekijöille, tarkistajille ja sisältöjen tekijöille**, erityisesti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ja Snigdha Agarwal +**🙏 Erityiskiitokset 🙏 Microsoft Student Ambassador -kirjoittajillemme, tarkistajillemme ja sisällöntuottajille, erityisesti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ja Snigdha Agarwal** **🤩 Erityiskiitos Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi ja Vidushi Gupta R-oppitunneistamme!** # Aloittaminen -Noudata näitä vaiheita: -1. **Haarauta arkisto**: Napsauta "Fork" -painiketta tämän sivun oikeassa yläkulmassa. -2. **Kloonaa arkisto**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +Noudata näitä ohjeita: +1. **Forkkaa repositorio**: Klikkaa "Fork" -painiketta tämän sivun oikeassa yläkulmassa. +2. **Kloonaa repositorio**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [löydät kaikki lisäresurssit tälle kurssille Microsoft Learn -kokoelmastamme](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [Löydät kaikki kurssin lisäresurssit Microsoft Learn -kokoelmassamme](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Tarvitsetko apua?** Katso [vianmääritysohjeistuksemme](TROUBLESHOOTING.md) yleisimpiä asennukseen, käyttöönottoon ja oppituntien suorittamiseen liittyviä ongelmia varten. +> 🔧 **Tarvitsetko apua?** Katso [Vianetsintäoppaamme](TROUBLESHOOTING.md) yleisimpiin asennukseen, käyttöönottoon ja oppituntien suorittamiseen liittyviin ongelmiin. -**[Opiskelijat](https://aka.ms/student-page)**, käyttääksenne tätä opetussuunnitelmaa, haarauttakaa koko arkisto omaan GitHub-tiliinne ja tehkää harjoitukset itseksenne tai ryhmässä: +**[Opiskelijat](https://aka.ms/student-page)**, käyttäkää tätä opetussuunnitelmaa forkaamalla koko repo omaan GitHub-tiliinne ja suorittakaa harjoitukset itse tai ryhmässä: -- Aloita ennakkotestillä. -- Lue luento ja tee tehtävät, pysähdy tarkistamaan osaaminen aina kun on tietotarkistus. -- Yritä luoda projektit ymmärtämällä oppitunnit sen sijaan, että suoritat ratkaisukoodit; nämä koodit ovat kuitenkin saatavilla `/solution`-kansioissa kussakin projektipainotteisessa oppitunnissa. -- Tee jälkitesti. +- Aloita ennakkokyselyllä. +- Lue oppitunti ja suorita tehtävät, pysähdy ja pohdi jokaisen tietotarkistuksen kohdalla. +- Yritä luoda projektit ymmärtämällä oppitunnit sen sijaan, että suorittaisit ratkaisukoodin; kuitenkin koodi on saatavilla jokaisen projektilähtöisen oppitunnin `/solution` -kansiossa. +- Tee jälkitentti. - Suorita haaste. -- Tee kotitehtävä. -- Kun olet suorittanut oppituntiryhmän, käy [Keskustelualueella](https://github.com/microsoft/ML-For-Beginners/discussions) ja "opiskele ääneen" täyttämällä sopiva PAT-arviointilomake. 'PAT' tarkoittaa Progress Assessment Toolia, jolla arvioit osaamistasi. Voit myös kommentoida muiden PAT:eja, niin opimme yhdessä. +- Tee tehtävä. +- Oppituntiryhmän suorittamisen jälkeen käy [Keskustelutaululla](https://github.com/microsoft/ML-For-Beginners/discussions) ja "opiskele ääneen" täyttämällä sopiva PAT-arviointilomake. 'PAT' on Progress Assessment Tool, arviointityökalu, jonka täytät oppimisesi edistämiseksi. Voit myös reagoida muiden PAT-lomakkeisiin, jotta voimme oppia yhdessä. -> Jatko-opiskeluun suosittelemme seuraamaan näitä [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduuleja ja oppimispolkuja. +> Lisätutkimukseen suosittelemme seuraavia [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduuleja ja oppimispolkuja. -**Opettajat**, olemme sisällyttäneet [joitakin ehdotuksia](for-teachers.md) opetussuunnitelman käyttöön. +**Opettajat**, olemme [sisällyttäneet joitain ehdotuksia](for-teachers.md) opetussuunnitelman käyttöön. --- -## Videokävelyt +## Videoesittelyt -Jotkin oppitunneista ovat saatavilla lyhytmuotoisina videoina. Löydät ne kaikki oppitunnin yhteydessä, tai [ML for Beginners -soittolistalta Microsoft Developer YouTube -kanavalla](https://aka.ms/ml-beginners-videos) klikkaamalla alla olevaa kuvaa. +Jotkut oppitunneista ovat saatavilla lyhytmuotoisina videoina. Löydät ne kaikki oppituntien yhteydessä tai [ML for Beginners -soittolistalta Microsoft Developer YouTube -kanavalta](https://aka.ms/ml-beginners-videos) klikkaamalla alla olevaa kuvaa. [![ML for beginners banner](../../translated_images/fi/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Tutustu tiimiin +## Tapaa tiimi [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klikkaa kuvaa yllä nähdäksesi videon projektista ja sen tekijöistä! +> 🎥 Klikkaa yllä olevaa kuvaa nähdäksesi videon projektista ja sen tekijöistä! --- ## Pedagogiikka -Olemme valinneet kaksi opetuksellista periaatetta rakentaessamme tätä opetussuunnitelmaa: varmistaa, että se on käytännönläheinen ja **projektipohjainen**, ja että siinä on **usein myös tietotestauksia**. Lisäksi tällä opetussuunnitelmalla on yhteinen **teema** sen yhtenäisyyden vuoksi. +Olemme valinneet kaksi pedagogista periaatetta tätä opetussuunnitelmaa rakentaessamme: varmistaa, että se on käytännönläheinen **projektipohjainen**, ja että se sisältää **useita tietokilpailuja**. Lisäksi opetussuunnitelmalla on yhtenäinen **teema**, joka antaa sille eheyttä. -Sisällön liittäminen projekteihin tekee prosessista opiskelijoille kiinnostavamman ja käsitteiden muistaminen tehostuu. Lisäksi matalan panoksen koe ennen luentoa asettaa opiskelijan oppimistavoitteen, ja toinen koe luennon jälkeen varmistaa lisämuistin. Tämä opetussuunnitelma on suunniteltu joustavaksi ja hauskaksi, ja se voidaan suorittaa kokonaan tai osittain. Projektit alkavat yksinkertaisina ja muuttuvat yhä monimutkaisemmiksi 12 viikon aikana. Opetussuunnitelmaan sisältyy myös loppusanat koneoppimisen todellisista sovelluksista, joita voi käyttää lisäpisteisiin tai keskustelun pohjaksi. +Sisällön linkittäminen projekteihin tekee prosessista opiskelijalle mielenkiintoisemman ja käsitteiden omaksuminen vahvistuu. Lisäksi matalan panoksen tietokilpailu ennen oppituntia asettaa opiskelijan opiskelutavotteet, ja jälkitentti varmistaa käsitteiden pysyvyyden. Tämä opetussuunnitelma on suunniteltu joustavaksi ja hauskaksi, ja se voidaan suorittaa kokonaan tai osittain. Projektit alkavat yksinkertaisista ja monimutkaistuvat 12 viikon syklin loppuun mennessä. Oppitunnit sisältävät myös jälkisanat koneoppimisen todellisista sovelluksista, joita voi käyttää lisäpisteisiin tai keskustelun pohjana. -> Löydät [käyttäytymissääntömme](CODE_OF_CONDUCT.md), [osallistumisohjeet](CONTRIBUTING.md), [käännökset](..) ja [vianmääritysohjeet](TROUBLESHOOTING.md). Otamme mielellämme vastaan rakentavaa palautetta! +> Löydät [käytösnormimme](CODE_OF_CONDUCT.md), [osallistumisohjeet](CONTRIBUTING.md), [käännökset](..) ja [vianetsinnän](TROUBLESHOOTING.md) ohjeet. Otamme mielellämme vastaan rakentavaa palautetta! ## Jokainen oppitunti sisältää - valinnaisen muistiinpanokuvan - valinnaisen lisävideon -- videokävelyn (vain osassa oppitunteja) -- [ennakko-oppimisen lämmittelykokeen](https://ff-quizzes.netlify.app/en/ml/) +- videoesittelyn (vain osassa oppitunteja) +- [ennakkotietovisan](https://ff-quizzes.netlify.app/en/ml/) - kirjallisen oppitunnin -- projektilähtöisissä oppitunneissa vaiheittaiset ohjeet projektin rakentamiseen -- tietotarkistuksia +- projektipohjaisissa oppitunneissa vaiheittaiset ohjeet projektin rakentamiseen +- tietokilpailukysymyksiä - haasteen - lisälukemista -- kotitehtävän -- [jälkitestin](https://ff-quizzes.netlify.app/en/ml/) - -> **Huomio kielistä**: Näitä oppitunteja kirjoitetaan pääasiassa Pythonilla, mutta monet ovat myös saatavilla R:llä. R-oppitunnin suorittamiseksi mene `/solution`-kansioon ja etsi R-oppitunnit. Niissä on .rmd-tiedostopääte, joka tarkoittaa **R Markdown** -tiedostoa, joka voidaan yksinkertaisesti määritellä R- tai muiden kielten `koodilohkojen` ja `YAML-otsikon` (ohjeistaa tulosteiden kuten PDF:n muotoilua) upotuksena `Markdown`-dokumenttiin. Täten se toimii esimerkillisenä kirjoitusalustana data tieteessä, koska sen avulla voit yhdistää koodisi, sen tulokset ja ajatuksesi kirjoittamalla ne Markdownilla. Lisäksi R Markdown -dokumentteja voidaan renderöidä tulostusmuodoiksi kuten PDF, HTML tai Word. -> **Muistutus visailuista**: Kaikki visailut löytyvät [Quiz App -kansiosta](../../quiz-app), yhteensä 52 visailua, joissa jokaisessa on kolme kysymystä. Ne linkitetään oppitunneilta, mutta visailusovelluksen voi myös ajaa paikallisesti; noudata `quiz-app`-kansion ohjeita paikalliseen isännöintiin tai Azureen käyttöönottoon. - -| Oppitunnin numero | Aihe | Oppituntiryhmittely | Oppimistavoitteet | Linkitetty oppitunti | Tekijä | -| :---------------: | :----------------------------------------------------------: | :---------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Johdatus koneoppimiseen | [Introduction](1-Introduction/README.md) | Opettele koneoppimisen peruskäsitteet | [Oppitunti](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Koneoppimisen historia | [Introduction](1-Introduction/README.md) | Tutustu koneoppimisen alaan liittyvään historiaan | [Oppitunti](1-Introduction/2-history-of-ML/README.md) | Jen ja Amy | -| 03 | Oikeudenmukaisuus ja koneoppiminen | [Introduction](1-Introduction/README.md) | Mitkä ovat tärkeimmät oikeudenmukaisuuteen liittyvät filosofiset kysymykset, joita opiskelijoiden tulisi pohtia rakentaessaan ja käyttäessään ML-malleja? | [Oppitunti](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Koneoppimisen menetelmät | [Introduction](1-Introduction/README.md) | Mitä menetelmiä ML-tutkijat käyttävät rakentaessaan ML-malleja? | [Oppitunti](1-Introduction/4-techniques-of-ML/README.md) | Chris ja Jen | -| 05 | Johdatus regressioon | [Regression](2-Regression/README.md) | Aloita Pythonin ja Scikit-learnin käytöllä regressiomallien rakentamisessa | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Pohjois-Amerikan kurpitsahinnat 🎃 | [Regression](2-Regression/README.md) | Visualisoi ja puhdista data koneoppimista varten | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Pohjois-Amerikan kurpitsahinnat 🎃 | [Regression](2-Regression/README.md) | Rakenna lineaariset ja polynomiset regressiomallit | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ja Dmitry • Eric Wanjau | -| 08 | Pohjois-Amerikan kurpitsahinnat 🎃 | [Regression](2-Regression/README.md) | Rakenna logistinen regressiomalli | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Web-sovellus 🔌 | [Web App](3-Web-App/README.md) | Rakenna verkkosovellus koulutetun mallisi käyttöön | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Johdatus luokitteluun | [Classification](4-Classification/README.md) | Puhdista, valmistele ja visualisoi data; johdatus luokitteluun | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ja Cassie • Eric Wanjau | -| 11 | Herkulliset aasialaiset ja intialaiset ruuat 🍜 | [Classification](4-Classification/README.md) | Johdatus luokittelijoihin | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ja Cassie • Eric Wanjau | -| 12 | Herkulliset aasialaiset ja intialaiset ruuat 🍜 | [Classification](4-Classification/README.md) | Lisää luokittelijoita | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ja Cassie • Eric Wanjau | -| 13 | Herkulliset aasialaiset ja intialaiset ruuat 🍜 | [Classification](4-Classification/README.md) | Rakenna suositteleva verkkosovellus mallisi avulla | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Johdatus klusterointiin | [Clustering](5-Clustering/README.md) | Puhdista, valmistele ja visualisoi data; johdatus klusterointiin | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Nigerialainen musiikkimaku 🎧 | [Clustering](5-Clustering/README.md) | Tutustu K-Means-klusterointimenetelmään | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Johdatus luonnollisen kielen käsittelyyn ☕️ | [Natural language processing](6-NLP/README.md) | Opi NLP:n perusteet rakentamalla yksinkertainen botti | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Yleiset NLP-tehtävät ☕️ | [Natural language processing](6-NLP/README.md) | Syvennä NLP-tietämystäsi ymmärtämällä yleisiä kielellisten rakenteiden käsittelyssä tarvittavia tehtäviä | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Kääntäminen ja mielipiteiden analyysi ♥️ | [Natural language processing](6-NLP/README.md) | Kääntäminen ja mielipiteiden analyysi Jane Austenin avulla | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Euroopan romanttiset hotellit ♥️ | [Natural language processing](6-NLP/README.md) | Mielipiteiden analyysi hotelliarvosteluilla 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Euroopan romanttiset hotellit ♥️ | [Natural language processing](6-NLP/README.md) | Mielipiteiden analyysi hotelliarvosteluilla 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Johdatus aikasarjaennusteisiin | [Time series](7-TimeSeries/README.md) | Johdatus aikasarjaennusteisiin | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Maailman sähkönkulutus ⚡️ - aikasarjaennuste ARIMA:lla | [Time series](7-TimeSeries/README.md) | Aikasarjaennuste ARIMA-mallilla | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Maailman sähkönkulutus ⚡️ - aikasarjaennuste SVR:llä | [Time series](7-TimeSeries/README.md) | Aikasarjaennuste tukivektoriregressoriin (SVR) avulla | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Johdatus vahvistusoppimiseen | [Reinforcement learning](8-Reinforcement/README.md) | Johdatus vahvistusoppimiseen Q-Learningin avulla | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Auta Peteriä välttämään susi! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Vahvistusoppimisen Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Jälkikirjoitus | Todelliset ML-skenaariot ja sovellukset | [ML in the Wild](9-Real-World/README.md) | Mielenkiintoisia ja valaisevia todellisen maailman sovelluksia klassisesta ML:stä | [Oppitunti](9-Real-World/1-Applications/README.md) | Tiimi | -| Jälkikirjoitus | Mallin virheenkorjaus ML:ssä RAI-dashboardilla | [ML in the Wild](9-Real-World/README.md) | Mallin virheenkorjaus koneoppimisessa Responsible AI -dashboard-komponenttien avulla | [Oppitunti](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [löydä kaikki tämän kurssin lisäresurssit Microsoft Learn -kokoelmassamme](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- tehtävän +- [jälkitietovisan](https://ff-quizzes.netlify.app/en/ml/) +> **Huomio kielistä**: Nämä oppitunnit on ensisijaisesti kirjoitettu Pythonilla, mutta monet ovat saatavilla myös R-kielellä. R-oppitunnin suorittamiseksi siirry `/solution`-kansioon ja etsi R-opetuksia. Niillä on .rmd-pääte, joka edustaa **R Markdown** -tiedostoa, jota voidaan yksinkertaisesti määritellä R:n tai muiden kielten `koodilohkojen` upotukseksi ja `YAML-otsikoksi` (joka ohjaa esimerkiksi PDF-muodon tuottamista) `Markdown-asiakirjassa`. Tällaisenaan se toimii esimerkillisenä kirjoituskehyksenä datatieteessä, sillä se mahdollistaa koodin, sen tulosten ja ajatusten yhdistämisen kirjoittamalla ne ylös Markdownilla. Lisäksi R Markdown -asiakirjat voidaan viedä tulostusmuotoihin kuten PDF, HTML tai Word. + +> **Huomio visailuista**: Kaikki visailut löytyvät [Quiz App -kansiosta](../../quiz-app), yhteensä 52 visailua, joissa on kolme kysymystä kukin. Ne on linkitetty oppituntien sisältä, mutta quiz-sovellusta voidaan ajaa paikallisesti; seuraa ohjeita `quiz-app`-kansiossa paikallisen isännöinnin tai Azuren käyttöönoton osalta. + +| Oppitunnin numero | Aihe | Oppituntiryhmä | Opetustavoitteet | Linkitetty oppitunti | Tekijä | +| :---------------: | :-------------------------------------------------------------: | :-----------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------: | +| 01 | Johdatus koneoppimiseen | [Johdatus](1-Introduction/README.md) | Opit koneoppimisen peruskäsitteet | [Oppitunti](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Koneoppimisen historia | [Johdatus](1-Introduction/README.md) | Opit alan historian | [Oppitunti](1-Introduction/2-history-of-ML/README.md) | Jen ja Amy | +| 03 | Oikeudenmukaisuus ja koneoppiminen | [Johdatus](1-Introduction/README.md) | Mitkä ovat tärkeät filosofiset kysymykset oikeudenmukaisuudesta, jotka tulisi huomioida koneoppimismalleja rakennettaessa? | [Oppitunti](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Tekniikat koneoppimisessa | [Johdatus](1-Introduction/README.md) | Mitä tekniikoita koneoppimisasiantuntijat käyttävät mallien rakentamiseen? | [Oppitunti](1-Introduction/4-techniques-of-ML/README.md) | Chris ja Jen | +| 05 | Johdatus regressioon | [Regressio](2-Regression/README.md) | Aloita Pythonilla ja Scikit-learnillä regressiomallien parissa | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Pohjois-Amerikan kurpitsahinnat 🎃 | [Regressio](2-Regression/README.md) | Visualisoi ja siivoa dataa koneoppimista varten | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Pohjois-Amerikan kurpitsahinnat 🎃 | [Regressio](2-Regression/README.md) | Rakenna lineaariset ja polynomiset regressiomallit | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ja Dmitry • Eric Wanjau | +| 08 | Pohjois-Amerikan kurpitsahinnat 🎃 | [Regressio](2-Regression/README.md) | Rakenna logistinen regressiomalli | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Verkkosovellus 🔌 | [Web App](3-Web-App/README.md) | Rakenna verkkosovellus käyttämällä kouluttamaasi mallia | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Johdatus luokitteluun | [Luokittelu](4-Classification/README.md) | Siivoa, valmistele ja visualisoi datasi; johdatus luokitteluun | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ja Cassie • Eric Wanjau | +| 11 | Herkulliset Aasian ja Intian keittiöt 🍜 | [Luokittelu](4-Classification/README.md) | Johdatus luokittelijoihin | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ja Cassie • Eric Wanjau | +| 12 | Herkulliset Aasian ja Intian keittiöt 🍜 | [Luokittelu](4-Classification/README.md) | Lisää luokittelijoita | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ja Cassie • Eric Wanjau | +| 13 | Herkulliset Aasian ja Intian keittiöt 🍜 | [Luokittelu](4-Classification/README.md) | Rakenna suositteluverkkosovellus mallisi avulla | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Johdatus klusterointiin | [Klusterointi](5-Clustering/README.md) | Siivoa, valmistele ja visualisoi datasi; johdatus klusterointiin | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Tutustu Nigerialaisen musiikin makuun 🎧 | [Klusterointi](5-Clustering/README.md) | Tutustu K-means-klusterointimenetelmään | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Johdatus luonnolliseen kielen käsittelyyn ☕️ | [Luonnollisen kielen käsittely](6-NLP/README.md) | Opettele NLP:n perusteet rakentamalla yksinkertainen botti | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Yleiset NLP-tehtävät ☕️ | [Luonnollisen kielen käsittely](6-NLP/README.md) | Syvennä NLP-tietämystäsi ymmärtämällä yleisiä tehtäviä, joita tarvitaan kielirakenteiden käsittelyssä | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Käännös ja tunneanalyysi ♥️ | [Luonnollisen kielen käsittely](6-NLP/README.md) | Käännös ja tunneanalyysi Jane Austenin teksteillä | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Euroopan romanttiset hotellit ♥️ | [Luonnollisen kielen käsittely](6-NLP/README.md) | Tunneanalyysi hotelliarvioiden perusteella 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Euroopan romanttiset hotellit ♥️ | [Luonnollisen kielen käsittely](6-NLP/README.md) | Tunneanalyysi hotelliarvioiden perusteella 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Johdatus aikasarjaennusteisiin | [Aikasarja](7-TimeSeries/README.md) | Johdatus aikasarjaennustamiseen | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Maailman sähkönkulutus ⚡️ - aikasarjaennuste ARIMAlla | [Aikasarja](7-TimeSeries/README.md) | Aikasarjaennuste ARIMA-mallilla | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Maailman sähkönkulutus ⚡️ - aikasarjaennuste SVR:llä | [Aikasarja](7-TimeSeries/README.md) | Aikasarjaennuste Support Vector Regressorilla | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Johdatus vahvistusoppimiseen | [Vahvistusoppiminen](8-Reinforcement/README.md) | Johdatus vahvistusoppimiseen Q-oppimisen avulla | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Auta Peteriä välttämään susi! 🐺 | [Vahvistusoppiminen](8-Reinforcement/README.md) | Vahvistusoppimisen Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Jälkikirjoitus | Käytännön ML-skenaariot ja sovellukset | [ML luonnossa](9-Real-World/README.md) | Mielenkiintoisia ja paljastavia reaalimaailman sovelluksia klassiselle koneoppimiselle | [Oppitunti](9-Real-World/1-Applications/README.md) | Tiimi | +| Jälkikirjoitus | Mallien virheenkorjaus ML:ssä RAI-hallintapaneelilla | [ML luonnossa](9-Real-World/README.md) | Mallien virheenkorjaus koneoppimisessa Responsible AI -hallintapaneelin avulla | [Oppitunti](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [löydä kaikki lisäresurssit tälle kurssille Microsoft Learn -kokoelmastamme](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offline-käyttö -Voit käyttää tätä dokumentaatiota offline-tilassa käyttämällä [Docsify](https://docsify.js.org/#/). Haarauta tämä repo, [asenna Docsify](https://docsify.js.org/#/quickstart) paikallisesti ja sen jälkeen tämän repokansion juurikansiossa kirjoita `docsify serve`. Sivusto toimii portissa 3000 paikallisessa koneessasi: `localhost:3000`. +Voit käyttää tätä dokumentaatiota offline-tilassa käyttämällä [Docsifya](https://docsify.js.org/#/). Haarauta tämä repositorio, [asenna Docsify](https://docsify.js.org/#/quickstart) paikallisesti koneellesi, ja sitten tämän repositorion juurikansiossa kirjoita `docsify serve`. Verkkosivusto palvellaan portissa 3000 paikallisessa palvelimessasi: `localhost:3000`. -## PDF:t +## PDF-tiedostot -Löydät opetussuunnitelman pdf-muodossa linkkeineen [täältä](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Löydä opetussuunnitelman pdf-linkkeineen [täältä](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +## 🎒 Muita kursseja -## 🎒 Muut kurssit - -Tiimimme tuottaa muita kursseja! Tutustu: +Tiimimme tuottaa muitakin kursseja! Tutustu: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j aloittelijoille](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js aloittelijoille](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain aloittelijoille](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agentit +[![AZD aloittelijoille](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI aloittelijoille](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP aloittelijoille](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI-agentit aloittelijoille](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Generatiivisen tekoälyn sarja +[![Generatiivinen tekoäly aloittelijoille](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generatiivinen tekoäly (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generatiivinen tekoäly (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generatiivinen tekoäly (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Keskeinen oppiminen -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML aloittelijoille](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data science aloittelijoille](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Tekoäly aloittelijoille](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Kyberturvallisuus aloittelijoille](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Verkkokehitys aloittelijoille](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT aloittelijoille](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR-kehitys aloittelijoille](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Copilot-sarja -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot tekoälyn pariohjelmointiin](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot C#/.NET:lle](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot-seikkailu](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Apua saamaan +## Apua -Jos jumitut tai sinulla on kysyttävää tekoälysovellusten rakentamisesta, liity muiden oppijoiden ja kokeneiden kehittäjien keskusteluihin MCP:stä. Se on tukeva yhteisö, jossa kysymykset ovat tervetulleita ja tieto jaetaan vapaasti. +Jos juutut tai sinulla on kysyttävää tekoälysovellusten rakentamisesta, liity muiden oppijoiden ja kokeneiden kehittäjien keskusteluihin MCP:stä. Se on kannustava yhteisö, jossa kysymykset ovat tervetulleita ja tietoa jaetaan vapaasti. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Jos sinulla on palautetta tuotteesta tai virheitä rakentamisen aikana, käy: +Jos sinulla on palautetta tuotteesta tai kohtaat virheitä rakentamisen aikana, käy: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Lisäoppimisvinkkejä -- Käy läpi muistikirjat jokaisen oppitunnin jälkeen paremman ymmärryksen saamiseksi. +- Käy läpi muistikirjat jokaisen oppitunnin jälkeen paremman ymmärtämisen vuoksi. - Harjoittele algoritmien toteuttamista itse. -- Tutustu tosielämän aineistoihin oppimiesi käsitteiden avulla. +- Tutustu oikean maailman aineistoihin opittujen käsitteiden avulla. --- -**Vastuuvapauslauseke**: -Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Pyrimme tarkkuuteen, mutta huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää virallisena lähteenä. Tärkeiden tietojen osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä mahdollisesti aiheutuvista väärinkäsityksistä tai tulkinnoista. +**Vastuuvapauslauseke**: +Tämä asiakirja on käännetty käyttämällä tekoälypohjaista käännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, tulee huomioida, että automaattiset käännökset voivat sisältää virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäisellä kielellä tulee pitää virallisena lähteenä. Tärkeiden tietojen osalta suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinkäsityksistä tai tulkinnoista. \ No newline at end of file diff --git a/translations/fr/.co-op-translator.json b/translations/fr/.co-op-translator.json index 5512a9a01..7fba7d728 100644 --- a/translations/fr/.co-op-translator.json +++ b/translations/fr/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "fr" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-19T06:53:48+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T15:44:09+00:00", "source_file": "README.md", "language_code": "fr" }, diff --git a/translations/fr/README.md b/translations/fr/README.md index d157c52ee..972473a35 100644 --- a/translations/fr/README.md +++ b/translations/fr/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Support multilingue +### 🌐 Support Multilingue -#### Pris en charge via GitHub Action (Automatisé & Toujours à jour) +#### Pris en charge via GitHub Action (Automatisé & Toujours à Jour) -[Arabe](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgare](../bg/README.md) | [Birman (Myanmar)](../my/README.md) | [Chinois (Simplifié)](../zh-CN/README.md) | [Chinois (Traditionnel, Hong Kong)](../zh-HK/README.md) | [Chinois (Traditionnel, Macao)](../zh-MO/README.md) | [Chinois (Traditionnel, Taïwan)](../zh-TW/README.md) | [Croate](../hr/README.md) | [Tchèque](../cs/README.md) | [Danois](../da/README.md) | [Néerlandais](../nl/README.md) | [Estonien](../et/README.md) | [Finnois](../fi/README.md) | [Français](./README.md) | [Allemand](../de/README.md) | [Grec](../el/README.md) | [Hébreu](../he/README.md) | [Hindi](../hi/README.md) | [Hongrois](../hu/README.md) | [Indonésien](../id/README.md) | [Italien](../it/README.md) | [Japonais](../ja/README.md) | [Kannada](../kn/README.md) | [Coréen](../ko/README.md) | [Lituanien](../lt/README.md) | [Malais](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Népalais](../ne/README.md) | [Pidgin Nigérian](../pcm/README.md) | [Norvégien](../no/README.md) | [Persan (Farsi)](../fa/README.md) | [Polonais](../pl/README.md) | [Portugais (Brésil)](../pt-BR/README.md) | [Portugais (Portugal)](../pt-PT/README.md) | [Pendjabi (Gurmukhi)](../pa/README.md) | [Roumain](../ro/README.md) | [Russe](../ru/README.md) | [Serbe (Cyrillique)](../sr/README.md) | [Slovaque](../sk/README.md) | [Slovène](../sl/README.md) | [Espagnol](../es/README.md) | [Swahili](../sw/README.md) | [Suédois](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamoul](../ta/README.md) | [Télougou](../te/README.md) | [Thaï](../th/README.md) | [Turc](../tr/README.md) | [Ukrainien](../uk/README.md) | [Ourdou](../ur/README.md) | [Vietnamien](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](./README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Vous préférez cloner localement ?** > -> Ce dépôt inclut plus de 50 traductions de langues ce qui augmente significativement la taille de téléchargement. Pour cloner sans traductions, utilisez le "sparse checkout": +> Ce dépôt inclut plus de 50 traductions de langues, ce qui augmente considérablement la taille de téléchargement. Pour cloner sans les traductions, utilisez le sparse checkout : > > **Bash / macOS / Linux :** > ```bash @@ -33,71 +33,70 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Cela vous fournit tout ce dont vous avez besoin pour compléter le cours avec un téléchargement bien plus rapide. +> Cela vous donne tout ce dont vous avez besoin pour compléter le cours avec un téléchargement beaucoup plus rapide. #### Rejoignez notre communauté [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Nous avons une série Discord d’apprentissage avec l’IA en cours, apprenez-en plus et rejoignez-nous sur [Learn with AI Series](https://aka.ms/learnwithai/discord) du 18 au 30 septembre 2025. Vous recevrez des astuces et conseils pour utiliser GitHub Copilot pour la Science des Données. +Nous avons une série Discord apprendre avec l’IA en cours, apprenez-en plus et rejoignez-nous à [Learn with AI Series](https://aka.ms/learnwithai/discord) du 18 au 30 septembre 2025. Vous recevrez des astuces et conseils pour utiliser GitHub Copilot pour la Science des Données. -![Serie Apprendre avec l’IA](../../translated_images/fr/3.9b58fd8d6c373c20.webp) +![Learn with AI series](../../translated_images/fr/3.9b58fd8d6c373c20.webp) -# Apprentissage Automatique pour Débutants - Un programme d’études +# Apprentissage Automatique pour Débutants - Un Plan de Cours -> 🌍 Voyagez autour du monde en explorant l'apprentissage automatique à travers les cultures du monde 🌍 +> 🌍 Voyagez autour du monde tout en explorant l’apprentissage automatique à travers les cultures du monde 🌍 -Les Cloud Advocates de Microsoft sont heureux de proposer un programme de 12 semaines, 26 leçons, entièrement consacré à **l’apprentissage automatique**. Dans ce programme, vous apprendrez ce que l’on appelle parfois l’**apprentissage automatique classique**, utilisant principalement Scikit-learn comme bibliothèque et évitant le deep learning, qui est couvert dans notre [programme AI pour Débutants](https://aka.ms/ai4beginners). Associez ces leçons avec notre [programme Science des Données pour Débutants](https://aka.ms/ds4beginners) aussi ! +Les Cloud Advocates de Microsoft ont le plaisir d’offrir un cursus de 12 semaines, 26 leçons, entièrement dédié à **l’apprentissage automatique**. Dans ce programme, vous apprendrez ce que l’on appelle parfois le **machine learning classique**, en utilisant principalement Scikit-learn comme bibliothèque, et en évitant le deep learning, qui est couvert dans notre cours [IA pour débutants](https://aka.ms/ai4beginners). Associez ces leçons avec notre [cours « Science des données pour débutants »](https://aka.ms/ds4beginners) également ! -Voyagez avec nous à travers le monde en appliquant ces techniques classiques à des données issues de nombreuses régions du globe. Chaque leçon comprend des quiz avant et après la leçon, des instructions écrites pour compléter la leçon, une solution, un exercice, et plus encore. Notre pédagogie basée sur des projets vous permet d’apprendre tout en construisant, une méthode éprouvée pour que les nouvelles compétences s’ancrent. +Voyagez avec nous autour du monde en appliquant ces techniques classiques à des données provenant de nombreuses régions. Chaque leçon inclut des quiz pré- et post-leçon, des instructions écrites pour réaliser la leçon, une solution, un devoir, et plus encore. Notre pédagogie basée sur des projets vous permet d’apprendre en construisant, une méthode éprouvée pour que les nouvelles compétences s’ancrent durablement. **✍️ Un grand merci à nos auteurs** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu et Amy Boyd -**🎨 Merci également à nos illustrateurs** Tomomi Imura, Dasani Madipalli et Jen Looper +**🎨 Merci également à nos illustrateurs** Tomomi Imura, Dasani Madipalli, et Jen Looper -**🙏 Remerciements particuliers 🙏 à nos Microsoft Student Ambassador auteurs, relecteurs et contributeurs**, notamment Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila et Snigdha Agarwal +**🙏 Remerciements particuliers 🙏 à nos auteurs, réviseurs et contributeurs du Microsoft Student Ambassador**, notamment Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila et Snigdha Agarwal -**🤩 Gratitude supplémentaire aux Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi et Vidushi Gupta pour nos leçons R !** +**🤩 Une gratitude supplémentaire aux Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi et Vidushi Gupta pour nos leçons R !** -# Démarrer +# Commencer Suivez ces étapes : -1. **Forkez le dépôt** : Cliquez sur le bouton « Fork » en haut à droite de cette page. -2. **Clonez le dépôt** : `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Forkez le dépôt** : Cliquez sur le bouton "Fork" en haut à droite de cette page. +2. **Clonez le dépôt** : `git clone https://github.com/microsoft/ML-For-Beginners.git` > [trouvez toutes les ressources supplémentaires pour ce cours dans notre collection Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Besoin d’aide ?** Consultez notre [Guide de dépannage](TROUBLESHOOTING.md) pour des solutions aux problèmes courants d’installation, configuration et exécution des leçons. +> 🔧 **Besoin d’aide ?** Consultez notre [guide de dépannage](TROUBLESHOOTING.md) pour des solutions aux problèmes courants d’installation, configuration et exécution des leçons. - -**[Étudiants](https://aka.ms/student-page)**, pour utiliser ce programme, forkez l’intégralité du repo sur votre propre compte GitHub et complétez les exercices seul ou en groupe : +**[Étudiants](https://aka.ms/student-page)**, pour utiliser ce cursus, forkez l’intégralité du dépôt sur votre propre compte GitHub et complétez les exercices seul ou en groupe : - Commencez par un quiz avant la leçon. -- Lisez la leçon et complétez les activités, en faisant des pauses et réfléchissant à chaque vérification de connaissances. -- Essayez de créer les projets en comprenant les leçons plutôt qu’en exécutant directement le code solution ; cependant ce code est disponible dans les dossiers `/solution` de chaque leçon orientée projet. -- Passez le quiz après la leçon. +- Lisez la leçon et réalisez les activités, marquez des pauses pour réfléchir à chaque contrôle des connaissances. +- Essayez de créer les projets en comprenant les leçons plutôt qu’en exécutant directement le code solution ; néanmoins ce code est disponible dans les dossiers `/solution` de chaque leçon axée projet. +- Passez le quiz post-lecture. - Réalisez le défi. -- Complétez l’exercice. -- Après avoir fini un groupe de leçons, visitez le [Forum de discussion](https://github.com/microsoft/ML-For-Beginners/discussions) et « apprenez à haute voix » en remplissant la grille PAT correspondante. Un 'PAT' est un outil d’évaluation des progrès que vous complétez pour renforcer votre apprentissage. Vous pouvez également réagir aux PAT des autres afin que nous apprenions ensemble. +- Effectuez le devoir. +- Après avoir terminé un groupe de leçons, visitez le [forum de discussion](https://github.com/microsoft/ML-For-Beginners/discussions) et « apprenez à voix haute » en remplissant la grille PAT appropriée. Un 'PAT' est un outil d’évaluation des progrès que vous remplissez pour approfondir votre apprentissage. Vous pouvez également réagir aux autres PAT afin que nous puissions apprendre ensemble. -> Pour aller plus loin, nous recommandons de suivre ces modules et parcours d’apprentissage sur [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Pour aller plus loin, nous recommandons de suivre ces modules et parcours d’apprentissage [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Enseignants**, nous avons [inclus quelques suggestions](for-teachers.md) pour utiliser ce programme. +**Enseignants**, nous avons [inclus quelques suggestions](for-teachers.md) sur l’utilisation de ce cursus. --- ## Vidéos explicatives -Certaines leçons sont disponibles en vidéo format court. Vous pouvez les trouver intégrées dans les leçons ou sur la [playlist ML for Beginners sur la chaîne YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) en cliquant sur l’image ci-dessous. +Certaines leçons sont disponibles en vidéo courte. Vous pouvez toutes les trouver dans les leçons elles-mêmes, ou sur la [playlist ML for Beginners de la chaîne Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) en cliquant sur l’image ci-dessous. -[![Bannière ML pour débutants](../../translated_images/fr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![ML for beginners banner](../../translated_images/fr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- ## Rencontrez l’équipe -[![Vidéo promo](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif par** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) @@ -107,132 +106,132 @@ Certaines leçons sont disponibles en vidéo format court. Vous pouvez les trouv ## Pédagogie -Nous avons choisi deux principes pédagogiques en construisant ce programme : garantir qu’il soit pratique et **basé sur des projets** et qu’il inclue des **quiz fréquents**. De plus, ce programme a un **thème** commun pour lui donner de la cohésion. +Nous avons choisi deux principes pédagogiques lors de la construction de ce cursus : garantir qu’il soit pratique **basé sur des projets** et qu’il inclue des **quiz fréquents**. De plus, ce cursus possède un **thème commun** pour lui donner de la cohérence. -En assurant que le contenu s’aligne sur des projets, le processus devient plus engageant pour les étudiants et la rétention des concepts est augmentée. De plus, un quiz à enjeux faibles avant la classe fixe l’intention d’apprentissage, tandis qu’un second quiz après la classe assure une rétention supplémentaire. Ce programme a été conçu pour être flexible et amusant et peut être suivi dans son ensemble ou partiellement. Les projets commencent petits et deviennent de plus en plus complexes à la fin du cycle de 12 semaines. Ce programme inclut également un post-scriptum sur les applications réelles de l’apprentissage automatique, qui peut être utilisé comme crédit supplémentaire ou base pour discussion. +En permettant que le contenu soit aligné sur des projets, le processus devient plus engageant pour les étudiants et la rétention des concepts est améliorée. De plus, un quiz à enjeux faibles avant une classe fixe l’intention d’apprentissage de l’étudiant, tandis qu’un second quiz en fin de cours assure une meilleure mémorisation. Ce cursus a été conçu pour être flexible et amusant, et peut être suivi en totalité ou partiellement. Les projets commencent petits et deviennent de plus en plus complexes à la fin de ce cycle de 12 semaines. Ce programme inclut également un post-scriptum sur les applications réelles du ML, que l’on peut utiliser comme points bonus ou base de discussion. -> Retrouvez notre [Code de conduite](CODE_OF_CONDUCT.md), [Guide de contribution](CONTRIBUTING.md), [Traductions](..) et [Dépannage](TROUBLESHOOTING.md). Nous accueillons vos retours constructifs ! +> Retrouvez notre [Code de conduite](CODE_OF_CONDUCT.md), [Contribuer](CONTRIBUTING.md), [Traductions](..), et [Dépannage](TROUBLESHOOTING.md). Nous accueillons vos retours constructifs ! ## Chaque leçon comprend - sketchnote optionnel -- vidéo complémentaire optionnelle -- vidéo explicative (certaines leçons uniquement) -- [quiz d’échauffement avant la leçon](https://ff-quizzes.netlify.app/en/ml/) +- vidéo supplémentaire optionnelle +- vidéo tutorielle (certaines leçons uniquement) +- [quiz d’échauffement pré-lecture](https://ff-quizzes.netlify.app/en/ml/) - leçon écrite -- pour les leçons basées sur un projet, guides étape par étape pour construire le projet -- vérifications de connaissances +- pour les leçons basées sur un projet, guide étape par étape pour construire le projet +- contrôles des connaissances - un défi - lecture complémentaire -- exercice -- [quiz après la leçon](https://ff-quizzes.netlify.app/en/ml/) - -> **Une note sur les langues** : Ces leçons sont principalement écrites en Python, mais beaucoup sont aussi disponibles en R. Pour suivre une leçon en R, allez dans le dossier `/solution` et cherchez les leçons R. Elles incluent une extension .rmd qui représente un fichier **R Markdown**, qui peut se définir simplement comme une intégration de `blocs de code` (en R ou autres langages) et un `en-tête YAML` (qui guide la mise en forme des sorties comme PDF) dans un `document Markdown`. En tant que tel, il sert de cadre exemplaire pour l’écriture en data science car il vous permet de combiner code, sa sortie et vos réflexions en les écrivant en Markdown. De plus, les documents R Markdown peuvent être rendus dans des formats de sortie tels que PDF, HTML ou Word. -> **Une note à propos des quiz** : Tous les quiz sont contenus dans le [dossier Quiz App](../../quiz-app), pour un total de 52 quiz de trois questions chacun. Ils sont liés depuis les leçons mais l’application de quiz peut être exécutée localement ; suivez les instructions dans le dossier `quiz-app` pour héberger localement ou déployer sur Azure. - -| Numéro de la leçon | Sujet | Regroupement de leçons | Objectifs d’apprentissage | Leçon liée | Auteur | -| :-----------------: | :-------------------------------------------------------------: | :----------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------: | -| 01 | Introduction à l’apprentissage automatique | [Introduction](1-Introduction/README.md) | Apprenez les concepts de base de l’apprentissage automatique | [Leçon](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | L’histoire de l’apprentissage automatique | [Introduction](1-Introduction/README.md) | Découvrez l’histoire sous-jacente à ce domaine | [Leçon](1-Introduction/2-history-of-ML/README.md) | Jen et Amy | -| 03 | Équité et apprentissage automatique | [Introduction](1-Introduction/README.md) | Quelles sont les importantes questions philosophiques autour de l’équité que les étudiants devraient considérer lors de la création et de l’application des modèles ML ? | [Leçon](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniques pour l’apprentissage automatique | [Introduction](1-Introduction/README.md) | Quelles techniques les chercheurs en ML utilisent-ils pour construire des modèles ML ? | [Leçon](1-Introduction/4-techniques-of-ML/README.md) | Chris et Jen | -| 05 | Introduction à la régression | [Régression](2-Regression/README.md) | Commencez avec Python et Scikit-learn pour les modèles de régression | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Prix des citrouilles en Amérique du Nord 🎃 | [Régression](2-Regression/README.md) | Visualiser et nettoyer les données en préparation du ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Prix des citrouilles en Amérique du Nord 🎃 | [Régression](2-Regression/README.md) | Construire des modèles de régression linéaire et polynomiale | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen et Dmitry • Eric Wanjau | -| 08 | Prix des citrouilles en Amérique du Nord 🎃 | [Régression](2-Regression/README.md) | Construire un modèle de régression logistique | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Une application web 🔌 | [Web App](3-Web-App/README.md) | Construire une application web pour utiliser votre modèle entraîné | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introduction à la classification | [Classification](4-Classification/README.md) | Nettoyer, préparer et visualiser vos données ; introduction à la classification | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen et Cassie • Eric Wanjau | -| 11 | Délicieuses cuisines asiatiques et indiennes 🍜 | [Classification](4-Classification/README.md) | Introduction aux classificateurs | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen et Cassie • Eric Wanjau | -| 12 | Délicieuses cuisines asiatiques et indiennes 🍜 | [Classification](4-Classification/README.md) | Plus de classificateurs | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen et Cassie • Eric Wanjau | -| 13 | Délicieuses cuisines asiatiques et indiennes 🍜 | [Classification](4-Classification/README.md) | Construire une application web de recommandation utilisant votre modèle | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introduction au clustering | [Clustering](5-Clustering/README.md) | Nettoyer, préparer et visualiser vos données ; introduction au clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Explorer les goûts musicaux nigérians 🎧 | [Clustering](5-Clustering/README.md) | Explorer la méthode de clustering K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introduction au traitement du langage naturel ☕️ | [Traitement du langage naturel](6-NLP/README.md) | Apprenez les bases du NLP en construisant un bot simple | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Tâches courantes du NLP ☕️ | [Traitement du langage naturel](6-NLP/README.md) | Approfondissez vos connaissances en NLP en comprenant les tâches courantes nécessaires lors du traitement des structures linguistiques | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Traduction et analyse de sentiments ♥️ | [Traitement du langage naturel](6-NLP/README.md) | Traduction et analyse de sentiments avec Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hôtels romantiques d’Europe ♥️ | [Traitement du langage naturel](6-NLP/README.md) | Analyse de sentiments avec des avis d’hôtels 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hôtels romantiques d’Europe ♥️ | [Traitement du langage naturel](6-NLP/README.md) | Analyse de sentiments avec des avis d’hôtels 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introduction à la prévision des séries temporelles | [Séries temporelles](7-TimeSeries/README.md) | Introduction à la prévision des séries temporelles | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Utilisation mondiale d’énergie ⚡️ - prévision avec ARIMA | [Séries temporelles](7-TimeSeries/README.md) | Prévision des séries temporelles avec ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Utilisation mondiale d’énergie ⚡️ - prévision avec SVR | [Séries temporelles](7-TimeSeries/README.md) | Prévision des séries temporelles avec Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introduction à l’apprentissage par renforcement | [Apprentissage par renforcement](8-Reinforcement/README.md) | Introduction au reinforcement learning avec Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Aidez Peter à éviter le loup ! 🐺 | [Apprentissage par renforcement](8-Reinforcement/README.md) | Gym d’apprentissage par renforcement | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postface | Scénarios et applications ML dans le monde réel | [ML dans la nature](9-Real-World/README.md) | Applications réelles intéressantes et révélatrices du ML classique | [Leçon](9-Real-World/1-Applications/README.md) | Équipe | -| Postface | Débogage des modèles ML avec le tableau de bord RAI | [ML dans la nature](9-Real-World/README.md) | Débogage des modèles d’apprentissage automatique avec le tableau de bord Responsible AI | [Leçon](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- devoir +- [quiz post-leçon](https://ff-quizzes.netlify.app/en/ml/) +> **Une note sur les langues** : Ces leçons sont principalement écrites en Python, mais beaucoup sont également disponibles en R. Pour compléter une leçon en R, rendez-vous dans le dossier `/solution` et cherchez les leçons en R. Elles incluent une extension .rmd qui représente un fichier **R Markdown**, qui peut être simplement défini comme une intégration de `blocs de code` (en R ou d'autres langages) et un `en-tête YAML` (qui guide la mise en forme des sorties telles que PDF) dans un `document Markdown`. En tant que tel, il sert de cadre exemplaire d’écriture pour la science des données car il vous permet de combiner votre code, ses résultats, et vos réflexions en vous autorisant à les écrire en Markdown. De plus, les documents R Markdown peuvent être rendus dans des formats de sortie tels que PDF, HTML ou Word. + +> **Une note sur les quiz** : Tous les quiz sont contenus dans le [dossier Quiz App](../../quiz-app), pour un total de 52 quiz composés chacun de trois questions. Ils sont liés depuis les leçons, mais l’application de quiz peut être exécutée localement ; suivez les instructions dans le dossier `quiz-app` pour héberger ou déployer localement sur Azure. + +| Numéro de la leçon | Sujet | Groupement de la leçon | Objectifs d'apprentissage | Leçon liée | Auteur | +| :-----------------: | :-------------------------------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------: | +| 01 | Introduction à l'apprentissage machine | [Introduction](1-Introduction/README.md) | Apprenez les concepts de base derrière l'apprentissage machine | [Leçon](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | L’historique de l'apprentissage machine | [Introduction](1-Introduction/README.md) | Découvrez l'histoire sous-jacente de ce domaine | [Leçon](1-Introduction/2-history-of-ML/README.md) | Jen et Amy | +| 03 | L’équité et l'apprentissage machine | [Introduction](1-Introduction/README.md) | Quels sont les enjeux philosophiques importants autour de l’équité à considérer lors de la construction et l’application de modèles ML ? | [Leçon](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniques d'apprentissage machine | [Introduction](1-Introduction/README.md) | Quelles techniques les chercheurs en apprentissage machine utilisent-ils pour construire leurs modèles ML ? | [Leçon](1-Introduction/4-techniques-of-ML/README.md) | Chris et Jen | +| 05 | Introduction à la régression | [Regression](2-Regression/README.md) | Commencez avec Python et Scikit-learn pour les modèles de régression | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Prix des citrouilles en Amérique du Nord 🎃 | [Regression](2-Regression/README.md) | Visualisez et nettoyez les données en préparation pour l’apprentissage machine | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Prix des citrouilles en Amérique du Nord 🎃 | [Regression](2-Regression/README.md) | Construisez des modèles de régression linéaire et polynomiale | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen et Dmitry • Eric Wanjau | +| 08 | Prix des citrouilles en Amérique du Nord 🎃 | [Regression](2-Regression/README.md) | Construisez un modèle de régression logistique | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Une application Web 🔌 | [Web App](3-Web-App/README.md) | Construisez une application web pour utiliser votre modèle entraîné | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introduction à la classification | [Classification](4-Classification/README.md) | Nettoyez, préparez et visualisez vos données ; introduction à la classification | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen et Cassie • Eric Wanjau | +| 11 | Cuisines délicieuses asiatiques et indiennes 🍜 | [Classification](4-Classification/README.md) | Introduction aux classificateurs | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen et Cassie • Eric Wanjau | +| 12 | Cuisines délicieuses asiatiques et indiennes 🍜 | [Classification](4-Classification/README.md) | Plus de classificateurs | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen et Cassie • Eric Wanjau | +| 13 | Cuisines délicieuses asiatiques et indiennes 🍜 | [Classification](4-Classification/README.md) | Construisez une application web de recommandation en utilisant votre modèle | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introduction au clustering | [Clustering](5-Clustering/README.md) | Nettoyez, préparez et visualisez vos données ; introduction au clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Exploration des goûts musicaux nigérians 🎧 | [Clustering](5-Clustering/README.md) | Explorez la méthode de clustering K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introduction au traitement du langage naturel ☕️ | [Natural language processing](6-NLP/README.md) | Apprenez les bases du TAL en construisant un bot simple | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Tâches courantes en TAL ☕️ | [Natural language processing](6-NLP/README.md) | Approfondissez vos connaissances sur le TAL en comprenant les tâches courantes nécessaires à la manipulation des structures linguistiques | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Traduction et analyse de sentiment ♥️ | [Natural language processing](6-NLP/README.md) | Traduction et analyse de sentiment avec Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hôtels romantiques d’Europe ♥️ | [Natural language processing](6-NLP/README.md) | Analyse des sentiments avec les avis d’hôtel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hôtels romantiques d’Europe ♥️ | [Natural language processing](6-NLP/README.md) | Analyse des sentiments avec les avis d’hôtel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introduction à la prévision de séries temporelles | [Time series](7-TimeSeries/README.md) | Introduction à la prévision de séries temporelles | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Utilisation mondiale de l’électricité ⚡️ - prévision temporelle avec ARIMA | [Time series](7-TimeSeries/README.md) | Prévision de séries temporelles avec ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Utilisation mondiale de l’électricité ⚡️ - prévision temporelle avec SVR | [Time series](7-TimeSeries/README.md) | Prévision de séries temporelles avec Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introduction à l’apprentissage par renforcement | [Reinforcement learning](8-Reinforcement/README.md) | Introduction à l’apprentissage par renforcement avec Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Aidez Peter à éviter le loup ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Apprentissage par renforcement Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscriptum | Scénarios et applications ML réels | [ML in the Wild](9-Real-World/README.md) | Applications intéressantes et révélatrices du ML classique | [Leçon](9-Real-World/1-Applications/README.md) | Équipe | +| Postscriptum | Débogage de modèles ML avec le tableau de bord RAI | [ML in the Wild](9-Real-World/README.md) | Débogage de modèles en apprentissage machine avec les composants du tableau de bord Responsible AI | [Leçon](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [trouvez toutes les ressources supplémentaires pour ce cours dans notre collection Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Accès hors ligne -Vous pouvez exécuter cette documentation hors ligne en utilisant [Docsify](https://docsify.js.org/#/). Forkez ce dépôt, [installez Docsify](https://docsify.js.org/#/quickstart) sur votre machine locale, puis dans le dossier racine de ce dépôt, tapez `docsify serve`. Le site web sera servi sur le port 3000 sur votre localhost : `localhost:3000`. +Vous pouvez consulter cette documentation hors ligne en utilisant [Docsify](https://docsify.js.org/#/). Forkez ce dépôt, [installez Docsify](https://docsify.js.org/#/quickstart) sur votre machine locale, puis dans le dossier racine de ce dépôt, tapez `docsify serve`. Le site web sera servi sur le port 3000 de votre localhost : `localhost:3000`. ## PDFs -Trouvez un pdf du programme avec les liens [ici](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Trouvez un PDF du programme avec liens [ici](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Autres Cours +## 🎒 Autres Cours -Notre équipe produit d’autres cours ! Découvrez : +Notre équipe produit d'autres cours ! Découvrez : ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j pour débutants](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js pour débutants](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain pour débutants](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD pour débutants](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI pour débutants](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP pour les débutants](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Agents IA pour les débutants](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Série d’IA générative -[![IA générative pour débutants](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![IA générative (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![IA générative (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![IA générative (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Série IA Générative +[![IA Générative pour les débutants](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![IA Générative (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![IA Générative (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![IA Générative (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Apprentissage Fondamental -[![Apprentissage automatique pour débutants](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Science des données pour débutants](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![IA pour débutants](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersécurité pour débutants](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Développement web pour débutants](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT pour débutants](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![Développement XR pour débutants](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML pour les débutants](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Science des données pour les débutants](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![IA pour les débutants](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersécurité pour les débutants](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Développement Web pour les débutants](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT pour les débutants](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Développement XR pour les débutants](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Série Copilot -[![Copilot pour programmation assistée par IA](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot pour AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot pour C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Aventure Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Obtenir de l'aide +## Obtenir de l’aide -Si vous êtes bloqué ou avez des questions sur la création d'applications IA. Rejoignez d'autres apprenants et développeurs expérimentés dans les discussions sur MCP. C'est une communauté bienveillante où les questions sont les bienvenues et le savoir est partagé librement. +Si vous êtes bloqué ou si vous avez des questions concernant la création d’applications IA. Rejoignez d’autres apprenants et développeurs expérimentés dans des discussions sur MCP. C’est une communauté solidaire où les questions sont les bienvenues et le partage de connaissance est libre. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Si vous avez des retours produit ou des erreurs lors du développement, visitez : +Si vous avez des retours produit ou rencontrez des erreurs lors du développement, visitez : -[![Forum développeurs Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Conseils supplémentaires pour l'apprentissage +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +## Conseils supplémentaires pour l’apprentissage -- Revoyez les notebooks après chaque leçon pour mieux comprendre. -- Pratiquez la mise en œuvre des algorithmes par vous-même. -- Explorez des jeux de données réels en utilisant les concepts appris. +- Revoir les notebooks après chaque leçon pour une meilleure compréhension. +- Pratiquer l’implémentation des algorithmes par vous-même. +- Explorer des ensembles de données réels en utilisant les concepts appris. --- **Avertissement** : -Ce document a été traduit à l’aide du service de traduction IA [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforçons d’assurer la précision, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue native doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle humaine est recommandée. Nous ne pouvons être tenus responsables des malentendus ou erreurs d’interprétation résultant de l’utilisation de cette traduction. +Ce document a été traduit à l’aide du service de traduction automatique [Co-op Translator](https://github.com/Azure/co-op-translator). Bien que nous nous efforçons d’assurer l’exactitude, veuillez noter que les traductions automatisées peuvent contenir des erreurs ou des inexactitudes. Le document original dans sa langue d’origine doit être considéré comme la source faisant foi. Pour les informations critiques, une traduction professionnelle humaine est recommandée. Nous ne sommes pas responsables des malentendus ou des erreurs d’interprétation résultant de l’utilisation de cette traduction. \ No newline at end of file diff --git a/translations/he/.co-op-translator.json b/translations/he/.co-op-translator.json index ef6bb46e1..f2ed92c70 100644 --- a/translations/he/.co-op-translator.json +++ b/translations/he/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "he" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:09:15+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:05:27+00:00", "source_file": "README.md", "language_code": "he" }, diff --git a/translations/he/README.md b/translations/he/README.md index c81a4c5c6..c731f6db7 100644 --- a/translations/he/README.md +++ b/translations/he/README.md @@ -1,23 +1,23 @@ -[![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/) +[![רישיון GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) +[![תורמים ל-GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![בעיות ב-GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![בקשות משיכה ב-GitHub](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/) +[![עוקבים ב-GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![מזלגות ב-GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![כוכבים ב-GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) -### 🌐 תמיכה מרובת שפות +### 🌐 תמיכה רב-לשונית #### נתמך באמצעות GitHub Action (אוטומטי ותמיד מעודכן) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](./README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[ערבית](../ar/README.md) | [בנגלית](../bn/README.md) | [בולגרית](../bg/README.md) | [בורמזית (מיאנמר)](../my/README.md) | [סינית (מפושטת)](../zh-CN/README.md) | [סינית (מסורתית, הונג קונג)](../zh-HK/README.md) | [סינית (מסורתית, מקאו)](../zh-MO/README.md) | [סינית (מסורתית, טאיוואן)](../zh-TW/README.md) | [קרואטית](../hr/README.md) | [צ'כית](../cs/README.md) | [דנית](../da/README.md) | [הולנדית](../nl/README.md) | [אסטונית](../et/README.md) | [פינית](../fi/README.md) | [צרפתית](../fr/README.md) | [גרמנית](../de/README.md) | [יוונית](../el/README.md) | [עברית](./README.md) | [הינדי](../hi/README.md) | [הונגרית](../hu/README.md) | [אינדונזית](../id/README.md) | [איטלקית](../it/README.md) | [יפנית](../ja/README.md) | [קנאדה](../kn/README.md) | [חמרית](../km/README.md) | [קוריאנית](../ko/README.md) | [ליטאית](../lt/README.md) | [מלאית](../ms/README.md) | [מלאיאלאם](../ml/README.md) | [מרטהי](../mr/README.md) | [נפאלית](../ne/README.md) | [פידג'ין ניגרי](../pcm/README.md) | [נורווגית](../no/README.md) | [פרסית (פרסית)](../fa/README.md) | [פולנית](../pl/README.md) | [פורטוגזית (ברזיל)](../pt-BR/README.md) | [פורטוגזית (פורטוגל)](../pt-PT/README.md) | [פונג'אבי (גורמוכי)](../pa/README.md) | [רומנית](../ro/README.md) | [רוסית](../ru/README.md) | [סרבית (קירילית)](../sr/README.md) | [סלובקית](../sk/README.md) | [סלובנית](../sl/README.md) | [ספרדית](../es/README.md) | [סווהילית](../sw/README.md) | [שבדית](../sv/README.md) | [טגלוג (פיליפינית)](../tl/README.md) | [טמילית](../ta/README.md) | [טלוגו](../te/README.md) | [תאית](../th/README.md) | [טורקית](../tr/README.md) | [אוקראינית](../uk/README.md) | [אורדו](../ur/README.md) | [וייטנאמית](../vi/README.md) > **מעדיפים לשכפל מקומית?** > -> מאגר זה כולל יותר מ-50 תרגומים לשפות שונות, מה שמגדיל משמעותית את גודל ההורדה. כדי לשכפל ללא תרגומים, השתמשו ב-sparse checkout: +> מאגר זה כולל מעל 50 תרגומים לשפות השונות מה שמגדיל משמעותית את גודל ההורדה. כדי לשכפל ללא תרגומים, השתמשו בבחירת Checkout דלילה: > > **Bash / macOS / Linux:** > ```bash @@ -33,176 +33,176 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> כך תקבלו את כל מה שצריך כדי להשלים את הקורס במהירות רבה יותר. +> זה נותן לכם הכל כדי להשלים את הקורס עם מהירות הורדה מהירה יותר. #### הצטרפו לקהילה שלנו [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -יש לנו סדרת לימוד ב-Discord על בינה מלאכותית שמתמשכת, למדו עוד והצטרפו אלינו ב-[Learn with AI Series](https://aka.ms/learnwithai/discord) מה-18 עד ה-30 בספטמבר 2025. תקבלו טיפים וטריקים לשימוש ב-GitHub Copilot עבור מדעי הנתונים. +יש לנו סדרת למידה ב-Discord עם AI שמתנהלת כרגע, למדו עוד והצטרפו אלינו ב-[סדרת למידה עם AI](https://aka.ms/learnwithai/discord) מ-18 עד 30 ספטמבר 2025. תקבלו טיפים וטריקים לשימוש ב-GitHub Copilot למדעי הנתונים. -![Learn with AI series](../../translated_images/he/3.9b58fd8d6c373c20.webp) +![סדרת למידה עם AI](../../translated_images/he/3.9b58fd8d6c373c20.webp) # למידת מכונה למתחילים - תוכנית לימודים -> 🌍 טיול ברחבי העולם אנו חוקרים למידת מכונה דרך תרבויות עולם 🌍 +> 🌍 סעו סביב העולם תוך כדי חקר למידת מכונה באמצעות תרבויות העולם 🌍 -ה-cloud advocates של מיקרוסופט שמחים להציע תוכנית לימודים בת 12 שבועות, הכוללת 26 שיעורים על **למידת מכונה**. בתוכנית זו תלמדו על מה שלפעמים נקרא **למידת מכונה קלאסית**, תוך שימוש בעיקר בספריית Scikit-learn והימנעות מלמידה עמוקה, שנלמדת בתוכנית שלנו ל-[AI למתחילים](https://aka.ms/ai4beginners). ניתן לשלב שיעורים אלו עם תוכנית ה-['מדעי נתונים למתחילים'](https://aka.ms/ds4beginners). +הפעילים של הענן במיקרוסופט שמחים להציע תוכנית לימודים בת 12 שבועות ו-26 שיעורים העוסקת כולה ב**למידת מכונה**. בתוכנית זו תלמדו על מה שלעיתים נקרא **למידת מכונה קלאסית**, תוך שימוש בעיקר בספריית Scikit-learn והימנעות מלמידה עמוקה, שמכוסה בתוכנית ה-[AI למתחילים שלנו](https://aka.ms/ai4beginners). שלבו את השיעורים האלו עם תוכנית ה-['מדעי הנתונים למתחילים'](https://aka.ms/ds4beginners) שלנו! -טיילו איתנו ברחבי העולם כאשר אנו מיישמים את הטכניקות הקלאסיות האלה על נתונים מאזורים שונים בעולם. כל שיעור כולל מבחני קדם-ואחר-שיעור, הוראות כתובות להשלמת השיעור, פתרון, משימה ועוד. הפדגוגיה מבוססת הפרויקטים מאפשרת ללמוד תוך כדי בנייה, שיטה מוכחת לספיגה טובה של מיומנויות חדשות. +נסעו איתנו סביב העולם כשאנחנו מיישמים את הטכניקות הקלאסיות האלה על נתונים מאזורים שונים בעולם. כל שיעור כולל חידונים לפני ואחרי השיעור, הוראות כתובות לביצוע השיעור, פתרון, משימה ועוד. הפדגוגיה מבוססת הפרויקטים שלנו מאפשרת ללמוד תוך כדי בנייה, שיטה מוכחת שגורמת לכישורים להישאר. -**✍️ תודה מעומק הלב למחברי השיעורים** ג'ן לופר, סטיבן הוול, פרנצ'סקה לזרי, טומומי אימורה, קשי ברוויו, דמיטרי סושניקוב, כריס נורינג, אנירבן מוקהרג'י, אורנלה אלטוניאן, רות יקובו ואיימי בויד +**✍️ תודה חמה למחברים שלנו** ג'ן לופר, סטיבן הוול, פרנצ'סקה לזרי, טומומי אימורה, קסי ברוויו, דמיטרי סושניקוב, כריס נורינג, אנירבן מוכרג'י, אורנלה אלטוניאן, רות יאקובו ואיימי בויד -**🎨 תודה גם למאיירים** טומומי אימורה, דסאני מדיפאלי וג'ן לופר +**🎨 תודה גם למאיירים שלנו** טומומי אימורה, דאסאני מדיפאלי וג'ן לופר -**🙏 תודה מיוחדת 🙏 למחברי התוכן, הבודקים ויועצי התוכן של שגרירי הסטודנטים של מיקרוסופט**, ובפרט רשיט דגלי, מוחמד סאקיב חאן אינאן, רוהאן ראג', אלכסנדרו פטרסקו, אבישק ג'איסוואל, נוארין טובאסום, יואן סמואילה וסינגדה אגרוואל +**🙏 תודה מיוחדת 🙏 למחברי, בוחני ותורמי התוכן שלנו, שגרירי הסטודנטים של מיקרוסופט**, בייחוד רישיט דגלי, מוחמד סאקיב חאן אינאן, רוהאן ראג', אלכסנדרו פטרסקו, אבישק ג'איסוואל, נאורין טבסום, יואן סמויאלה וסניגדה אגרוואל -**🤩 תודה נוספת מיוחדת לשגרירי הסטודנטים של מיקרוסופט אריק ואנג'או, ג'סלין סונדי ווידושי גופטה על שיעורי ה-R שלנו!** +**🤩 תודה נוספת לשגרירי הסטודנטים של מיקרוסופט אריק ואנג'ו, ג'סלין סונדי ווידושי גופטה עבור שיעורי ה-R שלנו!** -# איך להתחיל +# התחלה -עקבו אחר השלבים האלה: -1. **בצעו Fork למאגר**: לחצו על כפתור ה-"Fork" בפינה הימנית העליונה של הדף. -2. **שכפלו את המאגר**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +עקבו אחרי הצעדים הבאים: +1. **פיצול המאגר (Fork)**: לחצו על כפתור "Fork" בפינה הימנית העליונה של העמוד. +2. **שכפול המאגר (Clone)**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [מצאו את כל המשאבים הנוספים לקורס זה באוסף Microsoft Learn שלנו](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [מצא את כל המשאבים הנוספים לקורס זה באוסף Microsoft Learn שלנו](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **זקוקים לעזרה?** בדקו את [מדריך פתרון הבעיות](TROUBLESHOOTING.md) לפתרונות לבעיות נפוצות בהתקנה, בהגדרה ובהפעלת השיעורים. +> 🔧 **זקוק לעזרה?** בדקו את [מדריך פתרון הבעיות שלנו](TROUBLESHOOTING.md) לפתרונות לבעיות נפוצות בהתקנה, בהגדרה והפעלת שיעורים. -**[סטודנטים](https://aka.ms/student-page)**, לשימוש בתוכנית זו, בצעו fork למאגר כולו לחשבון ה-GitHub האישי שלכם והשלימו את התרגילים לבד או בקבוצה: +**[סטודנטים](https://aka.ms/student-page)**, כדי להשתמש בתוכנית לימודים זו, פיצלו את כל המאגר לחשבון ה-GitHub שלכם ושלמו את התרגילים בעצמכם או עם קבוצה: -- התחילו במבחן קדם-הרצאה. -- קראו את ההרצאה והשלימו את הפעילויות, עצרו והרהרו בכל נקודת בדיקת ידע. -- נסו ליצור את הפרויקטים באמצעות הבנת השיעורים במקום להריץ את קוד הפתרון; עם זאת, הקוד זמין בספריות `/solution` בכל שיעור שעוסק בפרויקטים. -- עברו מבחן אחר-הרצאה. -- השלימו את האתגר. -- השלימו את המשימה. -- לאחר סיום קבוצת שיעורים, בקרו ב-[לוח הדיונים](https://github.com/microsoft/ML-For-Beginners/discussions) ו"למדו בקול רם" על ידי מילוי סרגל PAT המתאים. 'PAT' הוא כלי הערכת התקדמות שיש למלא כדי להעמיק את הלמידה. ניתן גם להגיב ל-PATs אחרים כדי ללמוד יחד. +- התחילו בחידון חימום לפני ההרצאה. +- קראו את ההרצאה ושלמו את הפעילויות, עצרו והרהרו בכל בדיקת ידע. +- נסו ליצור את הפרויקטים על ידי הבנת השיעורים במקום להפעיל את קוד הפתרון; עם זאת, הקוד זמין בתיקיות `/solution` בכל שיעור מבוסס פרויקט. +- עברו את חידון אחר ההרצאה. +- שלמו את האתגר. +- שלמו את המטלה. +- לאחר השלמת קבוצת שיעורים, בקרו ב[לוח הדיונים](https://github.com/microsoft/ML-For-Beginners/discussions) ו"למדו בקול רם" על ידי מילוי טופס PAT המתאים. 'PAT' הוא כלי הערכת התקדמות שהוא טופס שממלאים כדי להעמיק את הלמידה. תוכלו גם להגיב על PATים אחרים כדי שנוכל ללמוד יחד. -> ללימוד נוסף, אנו ממליצים לעקוב אחרי מודולים ונתיבי למידה אלה של [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> ללימוד נוסף, אנו ממליצים לעקוב אחרי מודולים ונתיבי למידה ב-[Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**מורים**, כללנו [הצעות לשימוש בתוכנית זו](for-teachers.md). +**מורים**, כלולנו [הצעות כיצד להשתמש בתוכנית הלימודים](for-teachers.md). --- -## סרטוני הדרכה +## סיורים וידאו -חלק מהשיעורים זמינים כסרטונים קצרים. ניתן למצוא את כל אלה בתוך השיעורים או ברשימת ההשמעה [ML for Beginners בערוץ מיקרוסופט דבלופר ביוטיוב](https://aka.ms/ml-beginners-videos) על ידי לחיצה על התמונה למטה. +חלק מהשיעורים זמינים כסרטוני וידאו קצרים. תוכלו למצוא את כולם בקווים בשיעורים, או ברשימת ההשמעה [ML for Beginners ביוטיוב של מיקרוסופט דבולופר](https://aka.ms/ml-beginners-videos) על ידי לחיצה על התמונה למטה. -[![ML for beginners banner](../../translated_images/he/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![באנר ML למתחילים](../../translated_images/he/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- ## הכירו את הצוות -[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![וידאו פרומו](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif על-ידי** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**GIF מאת** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 לחצו על התמונה למעלה לסרטון על הפרויקט והאנשים שיצרו אותו! +> 🎥 לחצו על התמונה למעלה לסרטון על הפרויקט והאישים שיצרו אותו! --- ## פדגוגיה -בחרנו בשני עקרונות פדגוגיים בעת בניית תוכנית הלימודים הזו: להבטיח שהיא **מבוססת פרויקטים מעשיים** וכוללת **מבחנים תכופים**. בנוסף, לתוכנית זו יש **נושא** משותף שנותן לה אחידות. +בחרנו שני עקרונות פדגוגיים בזמן בניית תוכנית זו: להבטיח שהיא מבוססת **פרויקטים מעשיים** וכוללת **חידונים תכופים**. בנוסף, לתוכנית יש **נושא** משותף שמעניק לה חיבוריות. -על ידי התאמת התוכן לפרויקטים, התהליך נעשה מעניין יותר עבור התלמידים ושימור המושגים משופר. בנוסף, מבחן בעל סיכון נמוך לפני השיעור מציב את הכוונה של התלמיד ללמוד נושא מסוים, בעוד שמבחן שני לאחר השיעור מבטיח שימור נוסף. תוכנית זו עוצבה להיות גמישה ומהנה וניתן לקחת אותה בשלמותה או בחלקים. הפרויקטים מתחילים קטנים והופכים למורכבים יותר עד לסיום מחזור ה-12 שבועות. לתוכנית זו יש גם פוסטסקריפט על יישומים עכשוויים של למידת מכונה בעולם האמיתי, שניתן להשתמש בו כזיכוי נוסף או כבסיס לדיון. +על ידי הבטחת התאמה בין התוכן לפרויקטים, התהליך נעשה יותר מעורב לסטודנטים והחזקת המושגים תוגבר. בנוסף, חידון נמוך סיכון לפני השיעור מכוון את כוונת הלומד ללמידת הנושא, בעוד שבחידון שני לאחר השיעור מבטיח חיזוק נוסף. תוכנית זו עוצבה להיות גמישה ומהנה וניתן לקחת אותה בשלמותה או לחלקים. הפרויקטים מתחילים קטנים והופכים יותר מורכבים לקראת סוף מחזור 12 השבועות. לתוכנית כלולה גם תוספת יישומים בעולם האמיתי של למידת מכונה, שניתן להשתמש בה כקרדיט נוסף או כבסיס לדיון. -> מצאו את [קוד ההתנהגות](CODE_OF_CONDUCT.md), [הנחיות לתרומה](CONTRIBUTING.md), [תרגומים](..) ומדריך [פתרון בעיות](TROUBLESHOOTING.md). נשמח למשוב בונה שלכם! +> מצאו את [קוד ההתנהגות שלנו](CODE_OF_CONDUCT.md), [ההנחיות לתרומה](CONTRIBUTING.md), [התרגומים](..), וההנחיות ל[פתרון בעיות](TROUBLESHOOTING.md). נשמח לקבל את המשוב הבונה שלכם! ## כל שיעור כולל -- שרטוט אופציונלי -- וידאו תומך אופציונלי -- סרטון הדרכה (בחלק מהשיעורים בלבד) -- [מבחן חימום לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/) +- הערת סקיצה אופציונלית +- וידאו משלים אופציונלי +- סיור וידאו (בחלק מהשיעורים בלבד) +- [חידון חימום לפני ההרצאה](https://ff-quizzes.netlify.app/en/ml/) - שיעור כתוב -- להוראות מבוססות פרויקטים, מדריכים שלב-אחר-שלב לבניית הפרויקט +- בשיעורים מבוססי פרויקט, מדריכים שלב-אחר-שלב לבניית הפרויקט - בדיקות ידע - אתגר -- קריאה משלימה -- משימה -- [מבחן לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/) - -> **הערה לגבי שפות**: שיעורים אלה נכתבים בעיקר בפייתון, אך רבים מהם זמינים גם ב-R. כדי להשלים שיעור ב-R, עברו לתיקיית `/solution` וחפשו את השיעורים ב-R. הם כוללים סיומת .rmd, שמייצגת קובץ **R Markdown**, שניתן להגדירו כפשוטו כהטמעת `חתיכות קוד` (של R או שפות אחרות) ו`כותרת YAML` (המדריכה כיצד לעצב פלטים כמו PDF) בתוך `מסמך Markdown`. כך, הוא משמש כמסגרת כתיבה מצוינת למדעי נתונים, ומאפשר לשלב את הקוד, הפלט והמחשבות שלכם באמצעות כתיבה ב-Markdown. בנוסף, ניתן להמיר קובצי R Markdown לפורמטים כמו PDF, HTML או Word. -> **הערה לגבי חידונים**: כל החידונים נמצאים בתיקיית [Quiz App](../../quiz-app), הכוללת 52 חידונים בסך הכל עם שלוש שאלות בכל אחד. הם מקושרים מתוך השיעורים אך ניתן להריץ את אפליקציית החידונים באופן מקומי; עקוב אחרי ההוראות בתיקיית `quiz-app` לארח או לפרוס ב-Azure באופן מקומי. - -| מספר השיעור | נושא | קבוצת השיעור | מטרות הלמידה | שיעור מקושר | המחבר | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | מבוא ללמידת מכונה | [Introduction](1-Introduction/README.md) | ללמוד את המושגים הבסיסיים מאחורי למידת מכונה | [שיעור](1-Introduction/1-intro-to-ML/README.md) | מוחמד | -| 02 | ההיסטוריה של למידת מכונה | [Introduction](1-Introduction/README.md) | ללמוד את ההיסטוריה הבסיסית של התחום | [שיעור](1-Introduction/2-history-of-ML/README.md) | ג'ן ואיימי | -| 03 | צדק ולמידת מכונה | [Introduction](1-Introduction/README.md) | מהם הנושאים הפילוסופיים החשובים סביב צדק שהסטודנטים צריכים לקחת בחשבון בעת בניית והפעלת מודלים של למידת מכונה? | [שיעור](1-Introduction/3-fairness/README.md) | טומומי | -| 04 | טכניקות ללמידת מכונה | [Introduction](1-Introduction/README.md) | אילו טכניקות חוקרי למידת מכונה משתמשים כדי לבנות מודלי למידה? | [שיעור](1-Introduction/4-techniques-of-ML/README.md) | כריס וג'ן | -| 05 | מבוא לרגרסיה | [Regression](2-Regression/README.md) | התחלה עם Python ו-Scikit-learn עבור מודלי רגרסיה | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ג'ן • אריק וואנגיו | -| 06 | מחירי דלעות בצפון אמריקה 🎃 | [Regression](2-Regression/README.md) | להמחיש ולנקות נתונים כהכנה ללמידת מכונה | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ג'ן • אריק וואנגיו | -| 07 | מחירי דלעות בצפון אמריקה 🎃 | [Regression](2-Regression/README.md) | לבנות מודלי רגרסיה ליניאריים ופולינומיים | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ג'ן ודמיטרי • אריק וואנגיו | -| 08 | מחירי דלעות בצפון אמריקה 🎃 | [Regression](2-Regression/README.md) | לבנות מודל רגרסיה לוגיסטית | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ג'ן • אריק וואנגיו | -| 09 | אפליקציית ווב 🔌 | [Web App](3-Web-App/README.md) | לבנות אפליקציית ווב לשימוש במודל שאומן | [Python](3-Web-App/1-Web-App/README.md) | ג'ן | -| 10 | מבוא למיון | [Classification](4-Classification/README.md) | לנקות, להכין ולהמחיש את הנתונים; מבוא למיון | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ג'ן וקסי • אריק וואנגיו | -| 11 | מטבחים אסייתיים והודיים טעימים 🍜 | [Classification](4-Classification/README.md) | מבוא לממיינים | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ג'ן וקסי • אריק וואנגיו | -| 12 | מטבחים אסייתיים והודיים טעימים 🍜 | [Classification](4-Classification/README.md) | עוד ממיינים | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ג'ן וקסי • אריק וואנגיו | -| 13 | מטבחים אסייתיים והודיים טעימים 🍜 | [Classification](4-Classification/README.md) | לבנות אפליקציית ווב להמלצה באמצעות המודל שלך | [Python](4-Classification/4-Applied/README.md) | ג'ן | -| 14 | מבוא לקיבוץ | [Clustering](5-Clustering/README.md) | לנקות, להכין ולהמחיש את הנתונים; מבוא לקיבוץ | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ג'ן • אריק וואנגיו | -| 15 | חקירת טעמים מוזיקליים ניגריים 🎧 | [Clustering](5-Clustering/README.md) | לחקור את שיטת הקיבוץ K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ג'ן • אריק וואנגיו | -| 16 | מבוא לעיבוד שפה טבעית ☕️ | [Natural language processing](6-NLP/README.md) | ללמוד את היסודות של עיבוד שפה טבעית על ידי בניית בוט פשוט | [Python](6-NLP/1-Introduction-to-NLP/README.md) | סטיבן | -| 17 | משימות נפוצות ב-NLP ☕️ | [Natural language processing](6-NLP/README.md) | להעמיק את הידע ב-NLP תוך הבנת משימות נפוצות הנדרשות בעת טיפול במבני שפה | [Python](6-NLP/2-Tasks/README.md) | סטיבן | -| 18 | תרגום וניתוח רגשות ♥️ | [Natural language processing](6-NLP/README.md) | תרגום וניתוח רגשות עם ג'יין אוסטין | [Python](6-NLP/3-Translation-Sentiment/README.md) | סטיבן | -| 19 | בתי מלון רומנטיים באירופה ♥️ | [Natural language processing](6-NLP/README.md) | ניתוח רגשות עם ביקורות על בתי מלון 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | סטיבן | -| 20 | בתי מלון רומנטיים באירופה ♥️ | [Natural language processing](6-NLP/README.md) | ניתוח רגשות עם ביקורות על בתי מלון 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | סטיבן | -| 21 | מבוא לחיזוי סדרות זמן | [Time series](7-TimeSeries/README.md) | מבוא לחיזוי סדרות זמן | [Python](7-TimeSeries/1-Introduction/README.md) | פרנססקה | -| 22 | ⚡️ שימוש חשמל עולמי ⚡️ - חיזוי סדרות זמן עם ARIMA | [Time series](7-TimeSeries/README.md) | חיזוי סדרות זמן עם ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | פרנססקה | -| 23 | ⚡️ שימוש חשמל עולמי ⚡️ - חיזוי סדרות זמן עם SVR | [Time series](7-TimeSeries/README.md) | חיזוי סדרות זמן עם Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | אנירבן | -| 24 | מבוא ללמידת חיזוק | [Reinforcement learning](8-Reinforcement/README.md) | מבוא ללמידת חיזוק עם Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | דמיטרי | -| 25 | עזור לפיטר להימנע מהזאב! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | למידת חיזוק ב-Gym | [Python](8-Reinforcement/2-Gym/README.md) | דמיטרי | -| פרספיקטיבה | תרחישים ויישומים בעולם האמיתי של למידת מכונה | [ML in the Wild](9-Real-World/README.md) | יישומים מעניינים ומרתקים של למידת מכונה קלאסית בעולם האמיתי | [שיעור](9-Real-World/1-Applications/README.md) | צוות | -| פרספיקטיבה | איתור תקלות במודל בלמידת מכונה באמצעות לוח מחוונים RAI | [ML in the Wild](9-Real-World/README.md) | איתור תקלות במודלים של למידת מכונה באמצעות לוח מחוונים של Responsible AI | [שיעור](9-Real-World/2-Debugging-ML-Models/README.md) | רות יקובו | - -> [מצא את כל המשאבים הנוספים לקורס זה באוספת Microsoft Learn שלנו](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- קריאה משלים +- מטלה +- [חידון לאחר ההרצאה](https://ff-quizzes.netlify.app/en/ml/) +> **הערה לגבי שפות**: השיעורים האלה נכתבים בעיקר בפייתון, אך רבים מהם זמינים גם ב-R. כדי להשלים שיעור ב-R, עבור לתיקיית `/solution` וחפש שיעורים ב-R. הם כוללים סיומת .rmd שמייצגת קובץ **R Markdown** שניתן להגדירו כפשוטו כהטמעת `קטעי קוד` (של R או שפות אחרות) ו-`כותרת YAML` (שמאליה כיצד לעצב פלטים כמו PDF) בתוך `מסמך Markdown`. מכיוון שכך, הוא משמש כמסגרת כתיבה לדוגמה במדעי הנתונים שכן הוא מאפשר לך לשלב את הקוד שלך, הפלט שלו, ומחשבותיך באמצעות הכתיבה ב-Markdown. בנוסף, ניתן להמיר קבצי R Markdown לפורמטים כמו PDF, HTML או Word. + +> **הערה לגבי חידונים**: כל החידונים נמצאים בתוך [תיקיית Quiz App](../../quiz-app), הכוללת סך הכל 52 חידונים כשכל אחד כולל שלוש שאלות. הם מקושרים מתוך השיעורים אך ניתן להפעיל את אפליקציית החידונים מקומית; יש לעקוב אחרי ההוראות בתיקיית `quiz-app` לארח מקומית או לפרוס ל-Azure. + +| מספר שיעור | נושא | קבוצת שיעורים | יעדי הלמידה | שיעור מקושר | המחבר | +| :--------: | :------------------------------------------------------------: | :-----------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------: | +| 01 | מבוא ללמידת מכונה | [הקדמה](1-Introduction/README.md) | ללמוד את המושגים הבסיסיים מאחורי למידת מכונה | [שיעור](1-Introduction/1-intro-to-ML/README.md) | מוחמד | +| 02 | היסטוריה של למידת מכונה | [הקדמה](1-Introduction/README.md) | ללמוד את ההיסטוריה שמאחורי תחום זה | [שיעור](1-Introduction/2-history-of-ML/README.md) | ג'ן ואיימי | +| 03 | הוגנות ולמידת מכונה | [הקדמה](1-Introduction/README.md) | מהם הנושאים הפילוסופיים החשובים סביב הוגנות שעל תלמידים לשקול בעת בנייה ויישום מודלים של למידת מכונה? | [שיעור](1-Introduction/3-fairness/README.md) | טומומי | +| 04 | טכניקות ללמידת מכונה | [הקדמה](1-Introduction/README.md) | אילו טכניקות משתמשים חוקריי למידת מכונה לבניית מודלים? | [שיעור](1-Introduction/4-techniques-of-ML/README.md) | כריס וג'ן | +| 05 | מבוא לרגרסיה | [רגרסיה](2-Regression/README.md) | להתחיל עם פייתון ו-Scikit-learn למודלי רגרסיה | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ג'ן • אריק ונג'או | +| 06 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | להמחיש ולנקות נתונים כהכנה ללמידת מכונה | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ג'ן • אריק ונג'או | +| 07 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | לבנות מודלים רגרסיה ליניארית ופולינומית | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ג'ן ודמיטרי • אריק ונג'או | +| 08 | מחירי דלעות בצפון אמריקה 🎃 | [רגרסיה](2-Regression/README.md) | לבנות מודל רגרסיה לוגיסטית | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ג'ן • אריק ונג'או | +| 09 | אפליקציית רשת 🔌 | [אפליקציית רשת](3-Web-App/README.md) | לבנות אפליקציית רשת לשימוש במודל המאומן שלך | [Python](3-Web-App/1-Web-App/README.md) | ג'ן | +| 10 | מבוא לסיווג | [סיווג](4-Classification/README.md) | לנקות, להכין, ולהמחיש את הנתונים שלך; מבוא לסיווג | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ג'ן וקסי • אריק ונג'או | +| 11 | מטעמים אסייתיים והודיים טעימים 🍜 | [סיווג](4-Classification/README.md) | מבוא לממייני סיווג | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ג'ן וקסי • אריק ונג'או | +| 12 | מטעמים אסייתיים והודיים טעימים 🍜 | [סיווג](4-Classification/README.md) | ממיינים נוספים | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ג'ן וקסי • אריק ונג'או | +| 13 | מטעמים אסייתיים והודיים טעימים 🍜 | [סיווג](4-Classification/README.md) | לבנות אפליקציית רשת להמלצות תוך שימוש במודל שלך | [Python](4-Classification/4-Applied/README.md) | ג'ן | +| 14 | מבוא לאשכולות | [אשכולות](5-Clustering/README.md) | לנקות, להכין, ולהמחיש את הנתונים; מבוא לאשכולות | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ג'ן • אריק ונג'או | +| 15 | חקר הטעמים המוזיקליים הניגריים 🎧 | [אשכולות](5-Clustering/README.md) | לחקור את שיטת האשכולות K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ג'ן • אריק ונג'או | +| 16 | מבוא לעיבוד שפה טבעית ☕️ | [עיבוד שפה טבעית](6-NLP/README.md) | ללמוד את היסודות של NLP על ידי בניית בוט פשוט | [Python](6-NLP/1-Introduction-to-NLP/README.md) | סטיבן | +| 17 | משימות NLP נפוצות ☕️ | [עיבוד שפה טבעית](6-NLP/README.md) | להעמיק את הידע ב-NLP על ידי הבנת משימות נפוצות הנדרשות בטיפול במבני שפה | [Python](6-NLP/2-Tasks/README.md) | סטיבן | +| 18 | תרגום וניתוח סנטימנט ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | תרגום וניתוח סנטימנט עם ג'יין אוסטן | [Python](6-NLP/3-Translation-Sentiment/README.md) | סטיבן | +| 19 | בתי מלון רומנטיים באירופה ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | ניתוח סנטימנט עם חוות דעת על בתי מלון 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | סטיבן | +| 20 | בתי מלון רומנטיים באירופה ♥️ | [עיבוד שפה טבעית](6-NLP/README.md) | ניתוח סנטימנט עם חוות דעת על בתי מלון 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | סטיבן | +| 21 | מבוא לחיזוי סדרות זמן | [סדרות זמן](7-TimeSeries/README.md) | מבוא לחיזוי סדרות זמן | [Python](7-TimeSeries/1-Introduction/README.md) | פרנצ'סקה | +| 22 | ⚡️ שימוש בחשמל העולם ⚡️ - חיזוי סדרות זמן עם ARIMA | [סדרות זמן](7-TimeSeries/README.md) | חיזוי סדרות זמן עם ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | פרנצ'סקה | +| 23 | ⚡️ שימוש בחשמל העולם ⚡️ - חיזוי סדרות זמן עם SVR | [סדרות זמן](7-TimeSeries/README.md) | חיזוי סדרות זמן עם רגסור וקטור תמיכה | [Python](7-TimeSeries/3-SVR/README.md) | אנירבן | +| 24 | מבוא ללמידה מחזקת | [למידה מחזקת](8-Reinforcement/README.md) | מבוא ללמידה מחזקת עם Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | דמיטרי | +| 25 | עזור לפיטר להימנע מהזאב! 🐺 | [למידה מחזקת](8-Reinforcement/README.md) | למידת מחזקת עם Gym | [Python](8-Reinforcement/2-Gym/README.md) | דמיטרי | +| פרוספקט | תרחישים ויישומים בעולם האמיתי של למידת מכונה | [ML בעולם האמיתי](9-Real-World/README.md) | יישומים מעניינים ומאירי עיניים של למידת מכונה קלאסית בעולם האמיתי | [שיעור](9-Real-World/1-Applications/README.md) | צוות | +| פרוספקט | איתור באגים במודלים של למידת מכונה עם לוח בקרה RAI | [ML בעולם האמיתי](9-Real-World/README.md) | איתור באגים במודלים של למידת מכונה באמצעות רכיבי לוח בקרה Responsible AI | [שיעור](9-Real-World/2-Debugging-ML-Models/README.md) | רות יקובו | + +> [מצא את כל המשאבים הנוספים לקורס זה באוסף Microsoft Learn שלנו](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## גישה לא מקוונת -ניתן להפעיל את התיעוד הזה באופן לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). עבור למאגר זה, התקן את Docsify [התקנת Docsify](https://docsify.js.org/#/quickstart) במחשב המקומי שלך, ואז בתיקיית השורש של המאגר הקלד `docsify serve`. האתר יופעל על הפורט 3000 ב-localhost שלך: `localhost:3000`. +ניתן להפעיל תיעוד זה באופן לא מקוון באמצעות [Docsify](https://docsify.js.org/#/). צרו עותק של המאגר, [התקינו את Docsify](https://docsify.js.org/#/quickstart) על המכונה המקומית שלכם, ואז בתיקיית השורש של המאגר הזה, הקלידו `docsify serve`. האתר יוגש בפורט 3000 על הכתובת localhost: `localhost:3000`. ## קבצי PDF -מצא PDF של תכנית הלימודים עם קישורים [כאן](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +מצא קובץ PDF של התכנית עם קישורים [כאן](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 קורסים נוספים +## 🎒 קורסים נוספים -הצוות שלנו מייצר קורסים נוספים! בדוק: +הצוות שלנו מייצר קורסים נוספים! בדקו: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j למתחילים](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js למתחילים](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain למתחילים](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / סוכנים +[![AZD למתחילים](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI למתחילים](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP למתחילים](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![סוכני AI למתחילים](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series -[![בינה מלאכותית גנרטיבית למתחילים](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![בינה מלאכותית גנרטיבית (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![בינה מלאכותית גנרטיבית (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![בינה מלאכותית גנרטיבית (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### סדרת AI יוצרת +[![AI יוצרת למתחילים](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI יוצרת (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![AI יוצרת (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![AI יוצרת (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### לימוד ליבה -[![למידת מכונה למתחילים](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![מדע הנתונים למתחילים](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![בינה מלאכותית למתחילים](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![סייבר למתחילים](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +### למידה בסיסית +[![ML למתחילים](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![מדעי נתונים למתחילים](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI למתחילים](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![סייברסקיוריטי למתחילים](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![פיתוח ווב למתחילים](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) [![IoT למתחילים](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) [![פיתוח XR למתחילים](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -210,29 +210,29 @@ --- ### סדרת Copilot -[![Copilot לתכנות משותף מבוסס בינה מלאכותית](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot ל-C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![הרפתקאות Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![קופיילוט לתכנות משותף עם AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![קופיילוט ל-C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![הרפתקת קופיילוט](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## לקבלת עזרה +## קבלת עזרה -אם נתקעת או יש לך שאלות לגבי בניית אפליקציות בינה מלאכותית. הצטרף ללומדים אחרים ומפתחים מנוסים בדיונים על MCP. זוהי קהילה תומכת שבה שאלות מתקבלות בברכה והידע משותף בחופשיות. +אם אתה נתקל בבעיות או יש לך שאלות לגבי בניית אפליקציות AI. הצטרף ללומדים נוספים ומפתחים מנוסים לדיונים על MCP. זו קהילה תומכת שבה שאלות מתקבלות בברכה והידע משותף בחופשיות. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -אם יש לך משוב על מוצר או שגיאות בזמן הבנייה בקר ב: +אם יש לך משוב על המוצר או שגיאות בעת הבנייה, בקר ב: -[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +[![פורום מפתחי Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## טיפים ללמידה נוספת -- לעבור על המחברות לאחר כל שיעור להבנה טובה יותר. -- לתרגל יישום אלגוריתמים בעצמך. -- לחקור מערכי נתונים מהעולם האמיתי באמצעות המושגים שנלמדו. +- עיין במחברות לאחר כל שיעור להבנה טובה יותר. +- תרגל יישום אלגוריתמים בעצמך. +- חקור מערכי נתונים מהעולם האמיתי באמצעות המושגים שלמדת. --- **כתב ויתור**: -מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדייק, יש לקחת בחשבון כי תרגומים אוטומטיים עלולים להכיל שגיאות או אי-דיוקים. המסמך המקורי בשפת המקור שלו נחשב למקור הסמכותי. למידע קריטי מומלץ לבצע תרגום מקצועי על ידי מתרגם אנושי. אנו לא נושאים באחריות לכל אי-הבנה או פרשנות שגויה הנובעים משימוש בתרגום זה. +מסמך זה תורגם באמצעות שירות תרגום מבוסס בינה מלאכותית [Co-op Translator](https://github.com/Azure/co-op-translator). למרות שאנו שואפים לדיוק, יש להיות מודעים לכך שתרגומים אוטומטיים עלולים להכיל שגיאות או אי דיוקים. המסמך המקורי בשפת המקור שלו הוא המקור הסמכותי. עבור מידע קריטי, מומלץ להשתמש בתרגום מקצועי של אדם. איננו נושאים באחריות על כל אי-הבנות או פירושים שגויים הנובעים משימוש בתרגום זה. \ No newline at end of file diff --git a/translations/hi/.co-op-translator.json b/translations/hi/.co-op-translator.json index b24701748..b6d4c0395 100644 --- a/translations/hi/.co-op-translator.json +++ b/translations/hi/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "hi" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:03:33+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:00:33+00:00", "source_file": "README.md", "language_code": "hi" }, diff --git a/translations/hi/README.md b/translations/hi/README.md index db0f05e85..22dee288e 100644 --- a/translations/hi/README.md +++ b/translations/hi/README.md @@ -1,10 +1,23 @@ +[![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/) + ### 🌐 बहुभाषी समर्थन -#### GitHub Action के माध्यम से समर्थित (स्वचालित और हमेशा अद्यतित) +#### GitHub Action के माध्यम से समर्थित (स्वचालित एवं हमेशा अपडेटेड) + + +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](./README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **स्थानीय रूप से क्लोन करना पसंद है?** +> **स्थानीय रूप से क्लोन करना पसंद करते हैं?** > -> इस रिपॉजिटरी में 50+ भाषा अनुवाद शामिल हैं जो डाउनलोड आकार को काफी बढ़ाते हैं। बिना अनुवाद के क्लोन करने के लिए, sparse checkout का उपयोग करें: +> इस रिपोजिटरी में 50+ भाषा अनुवाद शामिल हैं जो डाउनलोड आकार को काफी बढ़ाते हैं। यदि अनुवादों के बिना क्लोन करना है, तो sparse checkout का उपयोग करें: > > **Bash / macOS / Linux:** > ```bash @@ -20,60 +33,62 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> यह आपको उस सब कुछ देता है जिसकी आपको तेज़ डाउनलोड के साथ कोर्स पूरा करने के लिए ज़रूरत है। +> यह आपको कोर्स पूरा करने के लिए आवश्यक सब कुछ देता है, जिससे डाउनलोड बहुत तेजी से होता है। + #### हमारे समुदाय में शामिल हों -हमारे पास डिसॉर्ड में AI के साथ सीखने की श्रृंखला चल रही है, अधिक जानने और इसमें शामिल होने के लिए [Learn with AI Series](https://aka.ms/learnwithai/discord) पर जाएं, जो 18 - 30 सितंबर, 2025 को है। आपको GitHub Copilot का डेटा साइंस के लिए उपयोग करने के टिप्स और ट्रिक्स मिलेंगे। +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) + +हमारे पास Discord पर AI के साथ सीखने की एक शृंखला चल रही है, इसके बारे में अधिक जानें और 18 - 30 सितंबर, 2025 को [Learn with AI Series](https://aka.ms/learnwithai/discord) में जुड़ें। आपको GitHub Copilot का Data Science में उपयोग करने के टिप्स और ट्रिक्स मिलेंगे। ![Learn with AI series](../../translated_images/hi/3.9b58fd8d6c373c20.webp) -# शुरुआती के लिए मशीन लर्निंग - एक पाठ्यक्रम +# शुरुआती लोगों के लिए मशीन लर्निंग - एक पाठ्यक्रम -> 🌍 जब हम दुनिया की संस्कृतियों के माध्यम से मशीन लर्निंग का पता लगाते हैं तो दुनिया की यात्रा करें 🌍 +> 🌍 दुनिया भर में यात्रा करें क्योंकि हम मशीन लर्निंग को विश्व की संस्कृतियों के माध्यम से सीखते हैं 🌍 -Microsoft के Cloud Advocates एक 12-सप्ताह, 26-लक्षण पाठ्यक्रम प्रदान करते हैं जो पूरी तरह से **मशीन लर्निंग** के बारे में है। इस पाठ्यक्रम में, आप सीखेंगे कि कभी-कभी जिसे **क्लासिक मशीन लर्निंग** कहा जाता है, मुख्य रूप से Scikit-learn पुस्तकालय का उपयोग करके और गहरे लर्निंग से बचते हुए, जिसे हमारे [AI for Beginners' पाठ्यक्रम](https://aka.ms/ai4beginners) में कवर किया गया है। साथ ही, इन पाठों को हमारे ['Data Science for Beginners' पाठ्यक्रम](https://aka.ms/ds4beginners) के साथ जोड़ें। +Microsoft के क्लाउड समर्थक 12 सप्ताह, 26-लेसन का पाठ्यक्रम प्रस्तुत करते हैं, जो पूरी तरह से **मशीन लर्निंग** के बारे में है। इस पाठ्यक्रम में, आप उस तकनीक के बारे में सीखेंगे जिसे कभी-कभी **क्लासिक मशीन लर्निंग** कहा जाता है, जिसमें मुख्य रूप से Scikit-learn पुस्तकालय का उपयोग होता है और गहरे शिक्षण (डेप लर्निंग) से बचा जाता है, जो हमारे [AI for Beginners' curriculum](https://aka.ms/ai4beginners) में शामिल है। इन पाठों को हमारे ['डेटा साइंस फॉर बिगिनर्स' पाठ्यक्रम](https://aka.ms/ds4beginners) के साथ जोड़ा जा सकता है। -दुनिया भर के डाटा पर इन क्लासिक तकनीकों को लागू करते हुए हमारे साथ यात्रा करें। प्रत्येक पाठ में पूर्व और पश्चात परीक्षण शामिल हैं, पूरा करने के लिए लिखित निर्देश, समाधान, असाइनमेंट और अधिक। हमारी परियोजना-आधारित शिक्षण विधि आपको निर्माण करते हुए सीखने की अनुमति देती है, जो नई कौशल सीखने का सिद्ध तरीका है। +हमारे साथ दुनिया भर की यात्रा पर चलें जब हम क्लासिक तकनीकों को दुनिया के विभिन्न क्षेत्रों के डेटा पर लागू करते हैं। प्रत्येक पाठ में पूर्व और पश्चात क्विज़, पाठ पूरा करने के लिए लिखित निर्देश, समाधान, असाइनमेंट और बहुत कुछ शामिल है। हमारा परियोजना-आधारित शिक्षण मॉडल आपको निर्माण के दौरान सीखने का अवसर प्रदान करता है, जो नई क्षमताओं को लंबे समय तक याद रखने का एक प्रमाणित तरीका है। -**✍️ हमारे लेखकों का हार्दिक धन्यवाद** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu और 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 +**🙏 हमारे Microsoft Student Ambassador लेखकों, समीक्षकों और सामग्री योगदानकर्ताओं को विशेष धन्यवाद**, विशेषकर ऋषित दागली, मुहम्मद साकिब खान इनान, रोहन राज, एलेक्जेंडर पेट्रेस्कु, अभिषेक जायसवाल, नवरीन तबस्सुम, इवान समुइला, और स्नीघा अग्रवाल -**🤩 हमारे R पाठों के लिए Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, और Vidushi Gupta को अतिरिक्त आभार!** +**🤩 Microsoft Student Ambassadors एरिक वंजाउ, जसलीन सोंधी, और विदुषी गुप्ता को हमारे R पाठों के लिए अतिरिक्त धन्यवाद!** -# आरंभ करना +# शुरुआत करना इन चरणों का पालन करें: -1. **रिपॉजिटरी को फोर्क करें**: इस पृष्ठ के ऊपर-दाएं कोने में "Fork" बटन पर क्लिक करें। -2. **रिपॉजिटरी क्लोन करें**: `git clone https://github.com/microsoft/ML-For-Beginners.git` - -> [इस कोर्स के लिए सभी अतिरिक्त संसाधन हमारे Microsoft Learn संग्रह में खोजें](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +1. **रिपोजिटरी को फोर्क करें**: इस पृष्ठ के दाहिने ऊपर "Fork" बटन पर क्लिक करें। +2. **रिपोजिटरी क्लोन करें**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> 🔧 **मदद चाहिए?** सामान्य इंस्टॉलेशन, सेटअप, और पाठ चलाने में समस्याओं के समाधान के लिए हमारे [Troubleshooting Guide](TROUBLESHOOTING.md) की जांच करें। +> [इस कोर्स के लिए सभी अतिरिक्त संसाधन हमारे Microsoft Learn संग्रह में देखें](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> 🔧 **मदद चाहिए?** आम समस्याओं के समाधान के लिए हमारे [Troubleshooting Guide](TROUBLESHOOTING.md) को देखें। -**[छात्रों](https://aka.ms/student-page)**, इस पाठ्यक्रम का उपयोग करने के लिए, पूरी रिपॉजिटरी को अपनी GitHub अकाउंट पर फोर्क करें और स्वयं या समूह के साथ अभ्यास पूर्ण करें: +**[छात्र](https://aka.ms/student-page)**, इस पाठ्यक्रम का उपयोग करने के लिए, पूरी रिपोजिटरी को अपने GitHub खाते पर फोर्क करें और अभ्यास स्वयं या समूह में पूरा करें: -- पूर्व व्याख्यान क्विज़ से शुरू करें। -- व्याख्यान पढ़ें और गतिविधियों को पूरा करें, प्रत्येक ज्ञान जांच पर रुककर चिंतन करें। -- समाधान कोड चलाने से अधिक, पाठों को समझकर परियोजनाएं बनाने का प्रयास करें; हालांकि यह कोड प्रत्येक परियोजना-केंद्रित पाठ के `/solution` फ़ोल्डरों में उपलब्ध है। -- पश्चात व्याख्यान क्विज़ लें। +- प्री-लेक्चर क्विज़ से शुरू करें। +- व्याख्यान पढ़ें और गतिविधियां पूरी करें, प्रत्येक ज्ञान जांच पर रुककर विचार करें। +- समाधान कोड चलाने के बजाय पाठ्यक्रम को समझकर परियोजनाएँ बनाने का प्रयास करें; हालांकि वह कोड प्रत्येक प्रोजेक्ट आधारित पाठ में `/solution` फ़ोल्डर में उपलब्ध है। +- पोस्ट-लेक्चर क्विज़ लें। - चुनौती पूरी करें। - असाइनमेंट पूरा करें। -- एक पाठ समूह पूरा करने के बाद, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) पर जाएं और उपयुक्त PAT रूपरेखा भरकर "उच्चारण से सीखें"। 'PAT' एक प्रगति मूल्यांकन उपकरण है जिसे आप सीखने को आगे बढ़ाने के लिए भरते हैं। आप अन्य PATs पर प्रतिक्रिया भी कर सकते हैं ताकि हम साथ सीख सकें। +- एक पाठ्य समूह पूरा करने के बाद, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) पर जाएँ और उपयुक्त PAT रूब्रिक भरकर "सरल भाषा में सीखें"। 'PAT' एक प्रोग्रेस असेसमेंट टूल है जिसे आप अपनी सीख बढ़ाने के लिए भरते हैं। आप अन्य PATs पर भी प्रतिक्रिया दे सकते हैं ताकि हम साथ सीख सकें। -> आगे अध्ययन के लिए, हम इन [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मॉड्यूल और लर्निंग पाथ का अनुसरण करने की सलाह देते हैं। +> आगे के अध्ययन के लिए, हम अनुशंसा करते हैं कि आप इन [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मॉड्यूल और लर्निंग पाथ का अनुसरण करें। -**शिक्षकों**, हमने इस पाठ्यक्रम का उपयोग कैसे करें इसके लिए [कुछ सुझाव शामिल किए हैं](for-teachers.md)। +**शिक्षकों के लिए**, हमने [कुछ सुझाव शामिल किए हैं](for-teachers.md) कि इस पाठ्यक्रम का उपयोग कैसे करें। --- ## वीडियो वॉकथ्रू -कुछ पाठ छोटे वीडियो रूप में उपलब्ध हैं। आप इन्हें पाठों के अंदर पा सकते हैं, या [Microsoft Developer YouTube चैनल पर ML for Beginners प्लेलिस्ट](https://aka.ms/ml-beginners-videos) पर नीचे दी गई छवि पर क्लिक करके देख सकते हैं। +कुछ पाठ छोटे वीडियो के रूप में उपलब्ध हैं। आप इन्हें पाठों के बीच में या [Microsoft Developer YouTube चैनल पर ML for Beginners प्लेलिस्ट](https://aka.ms/ml-beginners-videos) में नीचे की छवि पर क्लिक करके देख सकते हैं। [![ML for beginners banner](../../translated_images/hi/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -81,83 +96,83 @@ Microsoft के Cloud Advocates एक 12-सप्ताह, 26-लक्ष ## टीम से मिलें -[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![प्रमो वीडियो](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif द्वारा** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**GIF द्वारा** [मोहित जाएसाल](https://linkedin.com/in/mohitjaisal) > 🎥 परियोजना और इसे बनाने वाले लोगों के बारे में वीडियो के लिए ऊपर की छवि पर क्लिक करें! --- -## शिक्षणशास्त्र +## शिक्षण पद्धति -इस पाठ्यक्रम का निर्माण करते समय हमने दो शिक्षण सिद्धांत चुने हैं: इसे प्रायोगिक **परियोजना-आधारित** बनाना और **बार-बार क्विज़** शामिल करना। इसके अलावा, इस पाठ्यक्रम में एक सामान्य **थीम** शामिल है जो इसे संलग्नता देता है। +हमने इस पाठ्यक्रम को बनाते समय दो शिक्षण सिद्धांत चुने हैं: यह सुनिश्चित करना कि यह हाथों-हाथ सीखने वाला **परियोजना-आधारित** हो और इसमें **बार-बार क्विज़** शामिल हो। इसके अलावा, इस पाठ्यक्रम में एक सामान्य **थीम** है जो इसे सामंजस्यपूर्ण बनाती है। -सामग्री को परियोजनाओं से संरेखित कर यह प्रक्रिया छात्रों के लिए अधिक व्यस्त और अवधारणाओं के प्रतिधारण को बढ़ावा देने वाली बन जाती है। इसके अतिरिक्त, कक्षा से पहले एक कम जोखिम वाली क्विज़ विद्यार्थी की किसी विषय को सीखने की मंशा निर्धारित करती है, जबकि कक्षा के बाद दूसरी क्विज़ आगे की अवधारण सुनिश्चित करती है। यह पाठ्यक्रम लचीला और मजेदार होने के लिए डिज़ाइन किया गया है और इसे पूरी तरह या आंशिक रूप से लिया जा सकता है। परियोजनाएं छोटी शुरू होती हैं और 12-सप्ताह के चक्र के अंत तक अधिक जटिल हो जाती हैं। इस पाठ्यक्रम में मशीन लर्निंग के वास्तविक विश्व उपयोगों पर एक पोस्टस्क्रिप्ट भी शामिल है, जिसे अतिरिक्त क्रेडिट के रूप में या चर्चा के आधार के रूप में उपयोग किया जा सकता है। +सामग्री को परियोजनाओं के अनुरूप बनाकर, प्रक्रिया को छात्रों के लिए अधिक रोचक बनाया जाता है और अवधारणाओं को बनाए रखना बढ़ता है। इसके अलावा, कक्षा से पहले एक आसान क्विज़ छात्र के विषय सीखने के इरादे को सेट करता है, जबकि कक्षा के बाद दूसरा क्विज़ लंबे समय तक याददाश्त सुनिश्चित करता है। यह पाठ्यक्रम लचीला और मजेदार होने के लिए डिज़ाइन किया गया है और इसे पूरे या भाग में लिया जा सकता है। परियोजनाएं छोटी शुरुआत करती हैं और 12-सप्ताह के चक्र के अंत तक धीरे-धीरे जटिल हो जाती हैं। इस पाठ्यक्रम में मशीन लर्निंग के वास्तविक दुनिया में अनुप्रयोगों पर एक पोस्टस्क्रिप्ट भी शामिल है, जिसका उपयोग अतिरिक्त क्रेडिट या चर्चा के लिए आधार के रूप में किया जा सकता है। -> हमारे [आचार संहिता](CODE_OF_CONDUCT.md), [योगदान](CONTRIBUTING.md), [अनुवाद](..) और [समस्या निवारण](TROUBLESHOOTING.md) दिशा-निर्देश खोजें। हम आपकी रचनात्मक प्रतिक्रिया का स्वागत करते हैं! +> हमारा [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), और [Troubleshooting](TROUBLESHOOTING.md) दिशानिर्देश देखें। आपके रचनात्मक सुझावों का स्वागत है! -## प्रत्येक पाठ में शामिल है +## प्रत्येक पाठ में शामिल हैं - वैकल्पिक स्केचनोट -- वैकल्पिक सहायक वीडियो +- वैकल्पिक पूरक वीडियो - वीडियो वॉकथ्रू (कुछ पाठों के लिए) -- [पूर्व व्याख्यान वार्मअप क्विज़](https://ff-quizzes.netlify.app/en/ml/) +- [प्री-लेक्चर वॉर्मअप क्विज़](https://ff-quizzes.netlify.app/en/ml/) - लिखित पाठ -- परियोजना-आधारित पाठों के लिए, परियोजना बनाने के चरण-दर-चरण मार्गदर्शक +- परियोजना-आधारित पाठों के लिए, परियोजना बनाने के चरण-दर-चरण मार्गदर्शिका - ज्ञान जांच - एक चुनौती -- अतिरिक्त पठन सामग्री +- पूरक पठन - असाइनमेंट -- [पश्चात व्याख्यान क्विज़](https://ff-quizzes.netlify.app/en/ml/) - -> **भाषाओं के बारे में एक नोट**: ये पाठ मुख्य रूप से Python में लिखे गए हैं, लेकिन कई R में भी उपलब्ध हैं। R पाठ पूरा करने के लिए, `/solution` फ़ोल्डर में जाएं और R पाठ देखें। इनमें .rmd एक्सटेंशन शामिल है जो एक **R Markdown** फ़ाइल का प्रतिनिधित्व करता है, जिसे सरलता से परिभाषित किया जा सकता है जैसे कि `कोड खंडों` (R या अन्य भाषाओं के) और एक `YAML हेडर` (जो आउटपुट जैसे PDF के स्वरूपण को निर्देशित करता है) के साथ एक `Markdown दस्तावेज़` एमबेडिंग। इस प्रकार, यह डेटा साइंस के लिए एक आदर्श लेखन ढांचा है क्योंकि यह आपको अपने कोड, उसका आउटपुट, और अपने विचार को Markdown में लिखने की अनुमति देता है। इसके अलावा, R Markdown दस्तावेज़ों को PDF, HTML या Word जैसे आउटपुट स्वरूपों में रेंडर किया जा सकता है। -> **क्विज़ के बारे में एक नोट**: सभी क्विज़ [Quiz App folder](../../quiz-app) में शामिल हैं, प्रत्येक में तीन प्रश्नों के 52 कुल क्विज़ हैं। इन्हें पाठ्यक्रम के भीतर लिंक किया गया है लेकिन क्विज़ ऐप को स्थानीय रूप से चलाया जा सकता है; स्थानीय होस्ट करने या Azure पर डिप्लॉय करने के लिए `quiz-app` फ़ोल्डर में निर्देशों का पालन करें। - -| Lesson Number | टॉपिक | पाठ्य समूह | सीखने के उद्देश्य | लिंक किया गया पाठ | लेखक | -| :-----------: | :------------------------------------------------------------: | :---------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | मशीन लर्निंग का परिचय | [परिचय](1-Introduction/README.md) | मशीन लर्निंग के मूलभूत सिद्धांत सीखें | [पाठ](1-Introduction/1-intro-to-ML/README.md) | मुहम्मद | -| 02 | मशीन लर्निंग का इतिहास | [परिचय](1-Introduction/README.md) | इस क्षेत्र के पीछे का इतिहास सीखें | [पाठ](1-Introduction/2-history-of-ML/README.md) | जेन और एमी | -| 03 | निष्पक्षता और मशीन लर्निंग | [परिचय](1-Introduction/README.md) | जब छात्र ML मॉडल बनाते और लागू करते हैं, तो निष्पक्षता के महत्वपूर्ण दार्शनिक मुद्दे क्या हैं? | [पाठ](1-Introduction/3-fairness/README.md) | टोमोमी | -| 04 | मशीन लर्निंग की तकनीकें | [परिचय](1-Introduction/README.md) | ML शोधकर्ता ML मॉडल बनाने के लिए किन तकनीकों का उपयोग करते हैं? | [पाठ](1-Introduction/4-techniques-of-ML/README.md) | क्रिस और जेन | -| 05 | प्रतिगमन का परिचय | [प्रतिगमन](2-Regression/README.md) | प्रतिगमन मॉडल के लिए पाइथन और Scikit-learn के साथ शुरुआत करें | [पाइथन](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | जेन • एरिक वंजीउ | -| 06 | उत्तर अमेरिकी कद्दू के दाम 🎃 | [प्रतिगमन](2-Regression/README.md) | ML की तैयारी में डेटा को स्वरूपित और साफ़ करें | [पाइथन](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | जेन • एरिक वंजीउ | -| 07 | उत्तर अमेरिकी कद्दू के दाम 🎃 | [प्रतिगमन](2-Regression/README.md) | रैखिक और बहुपद प्रतिगमन मॉडल बनाएं | [पाइथन](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | जेन और दिमित्रि • एरिक वंजीउ | -| 08 | उत्तर अमेरिकी कद्दू के दाम 🎃 | [प्रतिगमन](2-Regression/README.md) | एक लॉजिस्टिक प्रतिगमन मॉडल बनाएं | [पाइथन](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | जेन • एरिक वंजीउ | -| 09 | एक वेब ऐप 🔌 | [वेब ऐप](3-Web-App/README.md) | अपने प्रशिक्षित मॉडल का उपयोग करने के लिए एक वेब ऐप बनाएं | [पाइथन](3-Web-App/1-Web-App/README.md) | जेन | -| 10 | वर्गीकरण का परिचय | [वर्गीकरण](4-Classification/README.md) | अपने डेटा को साफ़ करें, तैयार करें और दृष्टिगत करें; वर्गीकरण का परिचय | [पाइथन](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | जेन और कैसी • एरिक वंजीउ | -| 11 | स्वादिष्ट एशियाई और भारतीय व्यंजन 🍜 | [वर्गीकरण](4-Classification/README.md) | वर्गीकारकों का परिचय | [पाइथन](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | जेन और कैसी • एरिक वंजीउ | -| 12 | स्वादिष्ट एशियाई और भारतीय व्यंजन 🍜 | [वर्गीकरण](4-Classification/README.md) | और वर्गीकारक | [पाइथन](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | जेन और कैसी • एरिक वंजीउ | -| 13 | स्वादिष्ट एशियाई और भारतीय व्यंजन 🍜 | [वर्गीकरण](4-Classification/README.md) | अपने मॉडल का उपयोग करके एक अनुशंसा वेब ऐप बनाएं | [पाइथन](4-Classification/4-Applied/README.md) | जेन | -| 14 | क्लस्टरिंग का परिचय | [क्लस्टरिंग](5-Clustering/README.md) | अपने डेटा को साफ़ करें, तैयारी करें और दृष्टिगत करें; क्लस्टरिंग का परिचय | [पाइथन](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | जेन • एरिक वंजीउ | -| 15 | नाइजीरियाई संगीत रुचियों की खोज 🎧 | [क्लस्टरिंग](5-Clustering/README.md) | K-Means क्लस्टरिंग विधि का अन्वेषण करें | [पाइथन](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | जेन • एरिक वंजीउ | -| 16 | प्राकृतिक भाषा प्रसंस्करण का परिचय ☕️ | [प्राकृतिक भाषा प्रसंस्करण](6-NLP/README.md) | एक सरल बोट बनाकर NLP के मूल बातें सीखें | [पाइथन](6-NLP/1-Introduction-to-NLP/README.md) | स्टीफन | -| 17 | सामान्य NLP कार्य ☕️ | [प्राकृतिक भाषा प्रसंस्करण](6-NLP/README.md) | भाषा संरचनाओं से निपटने के लिए आवश्यक सामान्य कार्यों को समझकर अपने NLP ज्ञान को गहरा करें | [पाइथन](6-NLP/2-Tasks/README.md) | स्टीफन | -| 18 | अनुवाद और भावना विश्लेषण ♥️ | [प्राकृतिक भाषा प्रसंस्करण](6-NLP/README.md) | जेन ऑस्टेन के साथ अनुवाद और भावना विश्लेषण | [पाइथन](6-NLP/3-Translation-Sentiment/README.md) | स्टीफन | -| 19 | यूरोप के रोमांटिक होटल ♥️ | [प्राकृतिक भाषा प्रसंस्करण](6-NLP/README.md) | होटल समीक्षाओं के साथ भावना विश्लेषण 1 | [पाइथन](6-NLP/4-Hotel-Reviews-1/README.md) | स्टीफन | -| 20 | यूरोप के रोमांटिक होटल ♥️ | [प्राकृतिक भाषा प्रसंस्करण](6-NLP/README.md) | होटल समीक्षाओं के साथ भावना विश्लेषण 2 | [पाइथन](6-NLP/5-Hotel-Reviews-2/README.md) | स्टीफन | -| 21 | समय श्रृंखला पूर्वानुमान का परिचय | [समय श्रृंखला](7-TimeSeries/README.md) | समय श्रृंखला पूर्वानुमान का परिचय | [पाइथन](7-TimeSeries/1-Introduction/README.md) | फ्रांसेस्का | -| 22 | ⚡️ विश्व विद्युत उपयोग ⚡️ - ARIMA के साथ समय श्रृंखला पूर्वानुमान | [समय श्रृंखला](7-TimeSeries/README.md) | ARIMA के साथ समय श्रृंखला पूर्वानुमान | [पाइथन](7-TimeSeries/2-ARIMA/README.md) | फ्रांसेस्का | -| 23 | ⚡️ विश्व विद्युत उपयोग ⚡️ - SVR के साथ समय श्रृंखला पूर्वानुमान | [समय श्रृंखला](7-TimeSeries/README.md) | Support Vector Regressor के साथ समय श्रृंखला पूर्वानुमान | [पाइथन](7-TimeSeries/3-SVR/README.md) | अनिर्बान | -| 24 | सुदृढीकरण अधिगम का परिचय | [सुदृढीकरण अधिगम](8-Reinforcement/README.md) | Q-लर्निंग के साथ सुदृढीकरण अधिगम का परिचय | [पाइथन](8-Reinforcement/1-QLearning/README.md) | दिमित्रि | -| 25 | पीटर को भेड़िये से बचाने में मदद करें! 🐺 | [सुदृढीकरण अधिगम](8-Reinforcement/README.md) | सुदृढीकरण अधिगम जिम | [पाइथन](8-Reinforcement/2-Gym/README.md) | दिमित्रि | -| उपसंहार | वास्तविक विश्व के ML परिदृश्य और अनुप्रयोग | [ML इन द वाइल्ड](9-Real-World/README.md) | क्लासिकल ML के दिलचस्प और प्रकट करने वाले वास्तविक विश्व अनुप्रयोग | [पाठ](9-Real-World/1-Applications/README.md) | टीम | -| उपसंहार | RAI डैशबोर्ड का उपयोग करके ML में मॉडल डीबगिंग | [ML इन द वाइल्ड](9-Real-World/README.md) | जिम्मेदार AI डैशबोर्ड घटकों का उपयोग करके मशीन लर्निंग में मॉडल डीबगिंग | [पाठ](9-Real-World/2-Debugging-ML-Models/README.md) | रूथ याकुबू | +- [पोस्ट-लेक्चर क्विज़](https://ff-quizzes.netlify.app/en/ml/) +> **भाषाओं के बारे में एक नोट**: ये लेसन मुख्य रूप से Python में लिखे गए हैं, लेकिन कई R में भी उपलब्ध हैं। एक R लेसन पूरा करने के लिए, `/solution` फ़ोल्डर में जाएं और R लेसनों को देखें। इनमें एक .rmd एक्सटेंशन होता है जो एक **R Markdown** फ़ाइल का प्रतिनिधित्व करता है जिसे सरलता से `कोड खंडों` (R या अन्य भाषाओं के) और एक `YAML हेडर` (जो PDF जैसे आउटपुट को फॉर्मैट करने का मार्गदर्शन करता है) के एम्बेडिंग के रूप में परिभाषित किया जा सकता है `Markdown दस्तावेज़` में। इसलिए, यह डेटा साइंस के लिए एक उत्कृष्ट लेखन ढांचा के रूप में कार्य करता है क्योंकि यह आपको अपने कोड, उसका आउटपुट, और अपने विचारों को Markdown में लिखने की अनुमति देकर जोड़ने की अनुमति देता है। इसके अलावा, R Markdown दस्तावेज़ों को PDF, HTML, या Word जैसे आउटपुट प्रारूपों में प्रस्तुत किया जा सकता है। + +> **प्रश्नोत्तरी के बारे में एक नोट**: सभी प्रश्नोत्तरी [Quiz App फ़ोल्डर](../../quiz-app) में निहित हैं, कुल 52 प्रश्नोत्तरी हैं जिनमें प्रत्येक में तीन प्रश्न होते हैं। वे पाठों के भीतर लिंक किए गए हैं लेकिन क्विज़ ऐप को स्थानीय रूप से चलाया जा सकता है; `quiz-app` फ़ोल्डर में दिए गए निर्देशों का पालन करें ताकि इसे स्थानीय रूप से होस्ट या Azure पर तैनात किया जा सके। + +| पाठ संख्या | विषय | पाठ समूह | सीखने के उद्देश्य | लिंक किए गए पाठ | लेखक | +| :---------: | :------------------------------------------------------------: | :--------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | +| 01 | मशीन लर्निंग का परिचय | [परिचय](1-Introduction/README.md) | मशीन लर्निंग के पीछे की मूल अवधारणाएँ सीखें | [पाठ](1-Introduction/1-intro-to-ML/README.md) | मुहम्मद | +| 02 | मशीन लर्निंग का इतिहास | [परिचय](1-Introduction/README.md) | इस क्षेत्र के पीछे का इतिहास जानें | [पाठ](1-Introduction/2-history-of-ML/README.md) | जेन और एमी | +| 03 | निष्पक्षता और मशीन लर्निंग | [परिचय](1-Introduction/README.md) | निष्पक्षता के आस-पास के महत्वपूर्ण दार्शनिक मुद्दे जो छात्र एमएल मॉडल बनाते और लागू करते समय विचार करें | [पाठ](1-Introduction/3-fairness/README.md) | टोमौमी | +| 04 | मशीन लर्निंग की तकनीकें | [परिचय](1-Introduction/README.md) | एमएल शोधकर्ता कौन-कौन सी तकनीकें उपयोग करते हैं एमएल मॉडल बनाने के लिए? | [पाठ](1-Introduction/4-techniques-of-ML/README.md) | क्रिस और जेन | +| 05 | अभिकलन का परिचय | [Regression](2-Regression/README.md) | Python और Scikit-learn के साथ अभिकलन मॉडलों के लिए शुरुआत करें | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | जेन • एरिक वांजाउ | +| 06 | उत्तरी अमेरिका के कद्दू के दाम 🎃 | [Regression](2-Regression/README.md) | मशीन लर्निंग के लिए डेटा को साफ़ और विज़ुअलाइज़ करें | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | जेन • एरिक वांजाउ | +| 07 | उत्तरी अमेरिका के कद्दू के दाम 🎃 | [Regression](2-Regression/README.md) | रैखिक और बहुपद अभिकलन मॉडल बनाएं | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | जेन और दिमित्री • एरिक वांजाउ | +| 08 | उत्तरी अमेरिका के कद्दू के दाम 🎃 | [Regression](2-Regression/README.md) | एक लॉजिस्टिक अभिकलन मॉडल बनाएं | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | जेन • एरिक वांजाउ | +| 09 | एक वेब ऐप 🔌 | [वेब ऐप](3-Web-App/README.md) | अपने प्रशिक्षित मॉडल का उपयोग करने के लिए एक वेब ऐप बनाएं | [Python](3-Web-App/1-Web-App/README.md) | जेन | +| 10 | वर्गीकरण का परिचय | [Classification](4-Classification/README.md) | अपने डेटा को साफ़ करें, तैयार करें, और विज़ुअलाइज़ करें; वर्गीकरण का परिचय | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | जेन और कैसी • एरिक वांजाउ | +| 11 | स्वादिष्ट एशियाई और भारतीय व्यंजन 🍜 | [Classification](4-Classification/README.md) | वर्गीकारकों का परिचय | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | जेन और कैसी • एरिक वांजाउ | +| 12 | स्वादिष्ट एशियाई और भारतीय व्यंजन 🍜 | [Classification](4-Classification/README.md) | और अधिक वर्गीकारक | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | जेन और कैसी • एरिक वांजाउ | +| 13 | स्वादिष्ट एशियाई और भारतीय व्यंजन 🍜 | [Classification](4-Classification/README.md) | अपने मॉडल का उपयोग करके एक सिफारिश देने वाला वेब ऐप बनाएं | [Python](4-Classification/4-Applied/README.md) | जेन | +| 14 | क्लस्टरिंग का परिचय | [Clustering](5-Clustering/README.md) | अपने डेटा को साफ़ करें, तैयार करें, और विज़ुअलाइज़ करें; क्लस्टरिंग का परिचय | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | जेन • एरिक वांजाउ | +| 15 | नाइजीरियाई संगीत स्वाद की खोज 🎧 | [Clustering](5-Clustering/README.md) | K-Means क्लस्टरिंग विधि का अन्वेषण करें | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | जेन • एरिक वांजाउ | +| 16 | प्राकृतिक भाषा संसाधन का परिचय ☕️ | [Natural language processing](6-NLP/README.md) | एक सरल बॉट बनाकर NLP के मूल बातें सीखें | [Python](6-NLP/1-Introduction-to-NLP/README.md) | स्टीफन | +| 17 | सामान्य NLP कार्य ☕️ | [Natural language processing](6-NLP/README.md) | भाषा संरचनाओं से निपटने के लिए आवश्यक सामान्य कार्यों को समझकर अपनी NLP ज्ञान गहराई से समझें | [Python](6-NLP/2-Tasks/README.md) | स्टीफन | +| 18 | अनुवाद और भावना विश्लेषण ♥️ | [Natural language processing](6-NLP/README.md) | जेन ऑस्टेन के साथ अनुवाद और भावना विश्लेषण | [Python](6-NLP/3-Translation-Sentiment/README.md) | स्टीफन | +| 19 | यूरोप के रोमांटिक होटल ♥️ | [Natural language processing](6-NLP/README.md) | होटल समीक्षाओं के साथ भावना विश्लेषण 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | स्टीफन | +| 20 | यूरोप के रोमांटिक होटल ♥️ | [Natural language processing](6-NLP/README.md) | होटल समीक्षाओं के साथ भावना विश्लेषण 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | स्टीफन | +| 21 | समय श्रृंखला पूर्वानुमान का परिचय | [Time series](7-TimeSeries/README.md) | समय श्रृंखला पूर्वानुमान का परिचय | [Python](7-TimeSeries/1-Introduction/README.md) | फ्रांसेस्का | +| 22 | ⚡️ विश्व बिजली उपयोग ⚡️ - ARIMA के साथ समय श्रृंखला पूर्वानुमान | [Time series](7-TimeSeries/README.md) | ARIMA के साथ समय श्रृंखला पूर्वानुमान | [Python](7-TimeSeries/2-ARIMA/README.md) | फ्रांसेस्का | +| 23 | ⚡️ विश्व बिजली उपयोग ⚡️ - SVR के साथ समय श्रृंखला पूर्वानुमान | [Time series](7-TimeSeries/README.md) | सपोर्ट वेक्टर रेग्रेशनर के साथ समय श्रृंखला पूर्वानुमान | [Python](7-TimeSeries/3-SVR/README.md) | अनिर्बन | +| 24 | सुदृढ़ीकरण शिक्षा का परिचय | [Reinforcement learning](8-Reinforcement/README.md) | क्यू-लर्निंग के साथ सुदृढ़ीकरण सीखने का परिचय | [Python](8-Reinforcement/1-QLearning/README.md) | दिमित्री | +| 25 | पीटर को भेड़िये से बचाने में मदद करें! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | सुदृढ़ीकरण सीखने का जिम | [Python](8-Reinforcement/2-Gym/README.md) | दिमित्री | +| उपसंहार | वास्तविक दुनिया के एमएल परिदृश्य और अनुप्रयोग | [ML in the Wild](9-Real-World/README.md) | पारंपरिक एमएल के रोचक और प्रकट करने वाले वास्तविक दुनिया के अनुप्रयोग | [पाठ](9-Real-World/1-Applications/README.md) | टीम | +| उपसंहार | RAI डैशबोर्ड का उपयोग करके ML में मॉडल डिबगिंग | [ML in the Wild](9-Real-World/README.md) | जिम्मेदार AI डैशबोर्ड घटकों का उपयोग करके मशीन लर्निंग में मॉडल डिबगिंग | [पाठ](9-Real-World/2-Debugging-ML-Models/README.md) | रुथ याकुबू | > [इस कोर्स के लिए हमारे Microsoft Learn संग्रह में सभी अतिरिक्त संसाधन खोजें](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -## ऑफ़लाइन पहुँच +## ऑफलाइन एक्सेस -आप यह दस्तावेज़ [Docsify](https://docsify.js.org/#/) का उपयोग करके ऑफ़लाइन चला सकते हैं। इस रिपो को फ़ोर्क करें, अपने स्थानीय मशीन पर [Docsify स्थापित करें](https://docsify.js.org/#/quickstart), और फिर इस रिपो के रूट फोल्डर में `docsify serve` टाइप करें। वेबसाइट आपके स्थानीयहोस्ट पर पोर्ट 3000 पर सेवा करेगी: `localhost:3000`। +आप [Docsify](https://docsify.js.org/#/) का उपयोग करके इस दस्तावेज़ को ऑफलाइन चला सकते हैं। इस रिपोज़िटरी को फोर्क करें, अपनी स्थानीय मशीन पर [Docsify इंस्टॉल करें](https://docsify.js.org/#/quickstart), और फिर इस रिपोज़िटरी के रूट फ़ोल्डर में टाइप करें `docsify serve`। वेबसाइट आपके लोकलहोस्ट पर पोर्ट 3000 पर सेवा प्रदान करेगी: `localhost:3000`। -## पीडीएफ़ +## PDF -लिंक के साथ पाठ्यक्रम की पीडीएफ़ [यहाँ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) देखें। +इस पाठ्यक्रम का पीडीएफ लिंक सहित [यहां](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) देखें। -## 🎒 अन्य कोर्स +## 🎒 अन्य पाठ्यक्रम -हमारी टीम अन्य कोर्स भी बनाती है! देखें: +हमारी टीम अन्य पाठ्यक्रम भी बनाती है! देखें: ### LangChain @@ -166,7 +181,7 @@ Microsoft के Cloud Advocates एक 12-सप्ताह, 26-लक्ष [![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents +### Azure / Edge / MCP / एजेंट्स [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -174,7 +189,7 @@ Microsoft के Cloud Advocates एक 12-सप्ताह, 26-लक्ष --- -### Generative AI Series +### जनरेटिव एआई श्रृंखला [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) @@ -182,7 +197,7 @@ Microsoft के Cloud Advocates एक 12-सप्ताह, 26-लक्ष --- -### मुख्य शिक्षण +### मूल सीखना [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -193,7 +208,7 @@ Microsoft के Cloud Advocates एक 12-सप्ताह, 26-लक्ष --- -### कॉपाइलट श्रृंखला +### कोपिलॉट श्रृंखला [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) @@ -201,22 +216,22 @@ Microsoft के Cloud Advocates एक 12-सप्ताह, 26-लक्ष ## सहायता प्राप्त करना -यदि आप अटक जाते हैं या AI ऐप बनाने के बारे में कोई प्रश्न है। एमसीपी के बारे में चर्चा में साथी शिक्षार्थियों और अनुभवी डेवलपर्स से जुड़ें। यह एक सहायक समुदाय है जहां प्रश्नों का स्वागत है और ज्ञान स्वतंत्र रूप से साझा किया जाता है। +यदि आप फंसे हुए हैं या AI ऐप्स बनाने के बारे में कोई प्रश्न हैं। साथ सीखने वालों और अनुभवी डेवलपर्स के साथ MCP के बारे में चर्चाओं में शामिल हों। यह एक सहायक समुदाय है जहाँ प्रश्न स्वागत योग्य हैं और ज्ञान मुक्त रूप से साझा किया जाता है। [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -यदि आपके पास उत्पाद प्रतिपुष्टि या निर्माण के दौरान त्रुटियां हैं तो देखें: +यदि आपके पास उत्पाद प्रतिक्रिया या निर्माण के दौरान त्रुटियां हैं तो यहां जाएं: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## अतिरिक्त अध्ययन सुझाव +## अतिरिक्त सीखने के सुझाव - बेहतर समझ के लिए प्रत्येक पाठ के बाद नोटबुक की समीक्षा करें। -- अपने आप एल्गोरिदम लागू करने का अभ्यास करें। -- सीखे गए सिद्धांतों का उपयोग करके वास्तविक दुनिया के डेटासेट खोजें। +- स्वयं एल्गोरिदम लागू करने का अभ्यास करें। +- सीखी गई अवधारणाओं का उपयोग करके वास्तविक दुनिया के डेटा सेट का अन्वेषण करें। --- -**अस्वीकरण**: -यह दस्तावेज़ AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके अनुवादित किया गया है। हम सटीकता के लिए प्रयासरत हैं, लेकिन कृपया ध्यान दें कि स्वचालित अनुवादों में त्रुटियाँ या अशुद्धियाँ हो सकती हैं। मूल भाषा में मौलिक दस्तावेज़ ही अधिकारिक स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम जिम्मेदार नहीं हैं। +**अस्वीकरण**: +इस दस्तावेज़ का अनुवाद AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) का उपयोग करके किया गया है। जबकि हम सटीकता के लिए प्रयासरत हैं, कृपया ध्यान रखें कि स्वचालित अनुवादों में त्रुटियाँ या असंगतियाँ हो सकती हैं। मूल दस्तावेज़ अपनी मूल भाषा में प्राधिकृत स्रोत माना जाना चाहिए। महत्वपूर्ण जानकारी के लिए, पेशेवर मानव अनुवाद की सलाह दी जाती है। इस अनुवाद के उपयोग से उत्पन्न किसी भी गलतफहमी या गलत व्याख्या के लिए हम उत्तरदायी नहीं हैं। \ No newline at end of file diff --git a/translations/hr/.co-op-translator.json b/translations/hr/.co-op-translator.json index 4fa3432cd..ef9c750cd 100644 --- a/translations/hr/.co-op-translator.json +++ b/translations/hr/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "hr" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:17:58+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:27:33+00:00", "source_file": "README.md", "language_code": "hr" }, diff --git a/translations/hr/README.md b/translations/hr/README.md index dd6cd53f4..107568592 100644 --- a/translations/hr/README.md +++ b/translations/hr/README.md @@ -1,10 +1,23 @@ -### 🌐 Podrška za više jezika +[![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) -#### Podržano putem GitHub akcije (automatizirano i uvijek ažurno) +[![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/) -> **Želite li radije klonirati lokalno?** +### 🌐 Višejezična podrška + +#### Podržano putem GitHub akcije (automatski i uvijek ažurno) + + +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](./README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) + +> **Radije želite klonirati lokalno?** > -> Ovaj repozitorij uključuje prijevode na više od 50 jezika što značajno povećava veličinu preuzimanja. Za kloniranje bez prijevoda, koristite sparse checkout: +> Ovaj repozitorij uključuje prijevode na više od 50 jezika što značajno povećava veličinu preuzimanja. Da biste klonirali bez prijevoda, koristite sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -20,29 +33,34 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Time dobivate sve što vam je potrebno za završetak tečaja s mnogo bržim preuzimanjem. +> Ovo vam daje sve što vam treba za završetak tečaja uz mnogo brže preuzimanje. + #### Pridružite se našoj zajednici -Imamo Discord serijal učenja s AI-jem, saznajte više i pridružite nam se na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. rujna 2025. Dobit ćete savjete i trikove za korištenje GitHub Copilota za znanost o podacima. +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) + +Ima tekući Discord serijal "učiti s AI", saznajte više i pridružite nam se na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. rujna 2025. Dobit ćete savjete i trikove za korištenje GitHub Copilot za Data Science. -# Strojno učenje za početnike – Nastavni program +![SERIJA UČENJA S AI](../../translated_images/hr/3.9b58fd8d6c373c20.webp) -> 🌍 Putujte svijetom dok istražujemo strojno učenje kroz kulture svijeta 🌍 +# Strojno učenje za početnike - Kurikulum -Cloud Advocates u Microsoftu s veseljem vam predstavljaju 12-tjedni nastavni program od 26 lekcija posvećenih **strojnome učenju**. U ovom ćete nastavnom programu naučiti o onome što se ponekad naziva **klasično strojno učenje**, koristeći uglavnom Scikit-learn kao biblioteku i izbjegavajući duboko učenje, koje je obuhvaćeno u našem [nastavnom programu AI za početnike](https://aka.ms/ai4beginners). Spojite ove lekcije sa našim [nastavnim programom 'Znanost o podacima za početnike'](https://aka.ms/ds4beginners). +> 🌍 Putujte svijetom dok istražujemo Strojno učenje kroz kulture svijeta 🌍 -Putujte s nama širom svijeta dok primjenjujemo ove klasične tehnike na podatke iz različitih dijelova svijeta. Svaka lekcija sadrži kviz prije i poslije lekcije, pisane upute za dovršetak lekcije, rješenje, zadatak i više. Naša poduka temeljena na projektima omogućuje vam učenje kroz izgradnju, što je dokazano učinkovit način da nove vještine ostanu. +Cloud Advocates u Microsoftu sretni su ponuditi 12-tjedni, 26-predmetni kurikulum u cijelosti posvećen **Strojnom učenju**. U ovom kurikulumu naučit ćete o onome što se često naziva **klasičnim strojnim učenjem**, koristeći prvenstveno Scikit-learn kao biblioteku i izbjegavajući dubinsko učenje, koje je obrađeno u našem [kurikulumu AI za početnike](https://aka.ms/ai4beginners). Također spojite ove lekcije s našim [kurikulom 'Data Science for Beginners'](https://aka.ms/ds4beginners)! -**✍️ Srdačna zahvala našim autorima** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu i Amy Boyd +Putujte s nama svijetom dok primjenjujemo ove klasične tehnike na podatke iz mnogih krajeva svijeta. Svaka lekcija uključuje pred i post kvizove, pisane upute za dovršetak lekcije, rješenje, zadatak i još. Naša pedagoška metoda temeljena na projektima omogućuje vam učenje kroz gradnju, dokazani način da nove vještine 'zapnu'. -**🎨 Zahvala i našim ilustratorima** Tomomi Imura, Dasani Madipalli i Jen Looper +**✍️ Iskrene zahvale našim autorima** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu i Amy Boyd -**🙏 Posebna zahvala 🙏 našim Microsoft Student Ambassador autorima, recenzentima i suradnicima na sadržaju**, posebice Rishitu Dagliju, Muhammadu Sakibu Khan Inanu, Rohanu Raju, Alexandru Petrescuu, Abhisheku Jaiswalu, Nawrin Tabassumu, Ioanu Samuili i Snigdhi Agarwalu +**🎨 Zahvale također našim ilustratorima** Tomomi Imura, Dasani Madipalli i Jen Looper -**🤩 Posebna zahvalnost Microsoft Student Ambassadorima Ericu Wanjauu, Jasleen Sondhi i Vidushi Gupti za naše R lekcije!** +**🙏 Posebna hvala 🙏 našim Microsoft Student Ambassador autorima, recenzentima i suradnicima na sadržaju**, posebno Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila i Snigdha Agarwal -# Početak +**🤩 Dodatna zahvala Microsoft Student Ambassadorima Ericu Wanjauu, Jasleen Sondhi i Vidushi Gupti za naše lekcije u R!** + +# Početak rada Slijedite ove korake: 1. **Forkajte repozitorij**: Kliknite na gumb "Fork" u gornjem desnom kutu ove stranice. @@ -50,101 +68,107 @@ Slijedite ove korake: > [pronađite sve dodatne resurse za ovaj tečaj u našoj Microsoft Learn kolekciji](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Trebate pomoć?** Pogledajte naš [Vodič za rješavanje problema](TROUBLESHOOTING.md) za rješenja uobičajenih problema s instalacijom, postavljanjem i izvođenjem lekcija. +> 🔧 **Trebate pomoć?** Pogledajte naš [Vodič za otklanjanje poteškoća](TROUBLESHOOTING.md) za rješenja uobičajenih problema oko instalacije, postavljanja i pokretanja lekcija. -**[Studenti](https://aka.ms/student-page)**, da biste koristili ovaj nastavni program, forkjajte cijeli repozitorij na svoj GitHub račun i rješavajte vježbe samostalno ili u grupi: +**[Studenti](https://aka.ms/student-page)**, za korištenje ovog kurikuluma, forknite cijeli repozitorij u svoj vlastiti GitHub račun i dovršavajte vježbe sami ili u grupi: -- Započnite s kvizom prije predavanja. -- Pročitajte predavanje i dovršite aktivnosti, zastajući i razmišljajući na svakom provjeru znanja. -- Pokušajte kreirati projekte razumijevanjem lekcija umjesto samo pokretanja rješenja; međutim, taj je kod dostupan u /solution mapama svake lekcije orijentirane na projekt. -- Napravite kviz nakon predavanja. -- Dovršite izazov. +- Počnite s pred-izazovnim kvizom. +- Pročitajte lekciju i dovršite aktivnosti, zastajte i razmislite na svakom provjeravanja znanja. +- Pokušajte sami kreirati projekte razumijevanjem lekcija umjesto samo izvođenja rješenja, no kod rješenja dostupan je u mapama `/solution` u svakoj lekciji fokusiranoj na projekt. +- Odgovorite na post-izazovni kviz. +- Izvršite izazov. - Dovršite zadatak. -- Nakon dovršetka skupine lekcija, posjetite [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) i "naučite naglas" popunjavanjem odgovarajućeg PAT obrasca. 'PAT' je alat za procjenu napretka koji popunjavate kako biste dodatno usavršili svoje znanje. Također možete reagirati na druge PAT-ove kako bismo svi zajedno učili. +- Nakon završetka grupe lekcija, posjetite [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) i "učite naglas" popunjavanjem odgovarajuće PAT ocjene. 'PAT' je alat za procjenu napretka koji ispunjavate kako biste unaprijedili svoje učenje. Također možete reagirati na druge PAT-ove da učimo zajedno. -> Za daljnje proučavanje preporučamo praćenje ovih [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modula i putanja učenja. +> Za daljnje učenje preporučujemo da pratite ove [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) module i putanje učenja. -**Nastavnici**, dali smo [neke prijedloge](for-teachers.md) za korištenje ovog nastavnog programa. +**Nastavnici**, imamo [neke prijedloge](for-teachers.md) o tome kako koristiti ovaj kurikulum. --- ## Video vodiči -Neke lekcije dostupne su u obliku kratkih videa. Sve ih možete pronaći u lekcijama ili na [ML for Beginners playlisti na Microsoft Developer YouTube kanalu](https://aka.ms/ml-beginners-videos) klikom na sliku ispod. +Neke lekcije dostupne su u kratkim videozapisima. Sve ih možete pronaći unutar lekcija ili na [ML for Beginners playlisti na Microsoft Developer YouTube kanalu](https://aka.ms/ml-beginners-videos) klikom na sliku ispod. + +[![ML for beginners banner](../../translated_images/hr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- ## Upoznajte tim -> 🎥 Kliknite na gornju sliku za video o projektu i ljudima koji su ga stvorili! +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) + +**Gif by** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) + +> 🎥 Kliknite gore na sliku za video o projektu i ljudima koji su ga stvorili! --- ## Pedagogija -Odabrali smo dva pedagoška načela za izradu ovog nastavnog programa: da bude praktičan i **temeljen na projektima** te da uključuje **učestale kvizove**. Osim toga, ovaj nastavni program ima zajedničku **temu** koja mu daje koheziju. +Odabrali smo dva pedagoška načela dok smo gradili ovaj kurikulum: osigurati da je praktičan i **projektno orijentiran** te da uključuje **česte kvizove**. Osim toga, ovaj kurikulum ima zajedničku **temu** za povezanost. -Osiguravajući usklađenost sadržaja s projektima, proces je zanimljiviji studentima i povećava se zadržavanje pojmova. Također, lagani kviz prije predavanja usmjerava pažnju studenta na učenje teme, dok kviz poslije predavanja dodatno osigurava zadržavanje naučenog. Ovaj nastavni program je dizajniran da bude fleksibilan i zabavan te se može pohađati u cijelosti ili djelomično. Projekti počinju jednostavno i postaju sve složeniji do kraja 12-tjednog ciklusa. Nakon toga slijedi postscript o stvarnim primjenama strojnog učenja koji se može koristiti kao dodatni zadatak ili kao osnova za raspravu. +Osiguravajući da sadržaj prati projekte, proces učenja postaje zanimljiviji za studente i poboljšava zadržavanje koncepata. Osim toga, kviz s niskim ulozima prije predavanja usmjerava studenta na učenje teme, dok drugi kviz nakon predavanja osigurava bolje zadržavanje. Ovaj je kurikulum dizajniran da bude fleksibilan i zabavan, može se pohađati u cijelosti ili djelomično. Projekti započinju mali i postaju složeniji do kraja 12-tjednog ciklusa. Kurikulum također uključuje post skriptu o stvarnim primjenama strojnog učenja, koja se može koristiti kao dodatni bodovi ili kao osnova za raspravu. -> Pronađite naš [Kodeks ponašanja](CODE_OF_CONDUCT.md), [Upute za pridonošenje](CONTRIBUTING.md), [Prijevode](..) i [Vodič za rješavanje problema](TROUBLESHOOTING.md). Pozdravljamo vaše konstruktivne povratne informacije! +> Pronađite naš [Kodeks ponašanja](CODE_OF_CONDUCT.md), [Pravila za doprinos](CONTRIBUTING.md), [Prijevode](..) i [Vodič za otklanjanje poteškoća](TROUBLESHOOTING.md). Veselimo se vašim konstruktivnim povratnim informacijama! ## Svaka lekcija uključuje -- neobavezna skicna bilješka -- neobavezni dodatni video -- video vodič (samo za neke lekcije) -- [pred-predavački zagrijavajući kviz](https://ff-quizzes.netlify.app/en/ml/) -- pisane upute za lekciju -- za lekcije temeljene na projektima, korak-po-korak vodiče za izgradnju projekta +- opcionalnu skicu (sketchnote) +- opcionalni video dodatak +- video vodič (samo neke lekcije) +- [kviz za zagrijavanje prije lekcije](https://ff-quizzes.netlify.app/en/ml/) +- pisanu lekciju +- za lekcije temeljene na projektima, korak-po-korak vodiče kako napraviti projekt - provjere znanja - izazov - dodatno čitanje - zadatak -- [post-predavački kviz](https://ff-quizzes.netlify.app/en/ml/) - -> **Napomena o jezicima**: Lekcije su uglavnom napisane u Pythonu, ali mnoge su dostupne i u R-u. Za dovršetak R lekcije, posjetite mapu `/solution` i potražite R lekcije. One uključuju ekstenziju .rmd što predstavlja **R Markdown** datoteku, koja se može jednostavno definirati kao umetanje `kodnih blokova` (iz R ili drugih jezika) i `YAML zaglavlja` (koje određuje format izlaza poput PDF-a) u `Markdown dokument`. Kao takav, on služi kao izvrsni okvir za pisanje za znanost o podacima jer omogućuje kombiniranje koda, njegovih rezultata i vaših razmišljanja pisanjem u Markdownu. Nadalje, R Markdown dokumenti mogu se prikazivati u izlaznim formatima poput PDF-a, HTML-a ili Worda. -> **Napomena o kvizovima**: Svi kvizovi nalaze se u [Quiz App folderu](../../quiz-app), ukupno 52 kviza s po tri pitanja. Povezani su iz lekcija, ali quiz app se može pokrenuti lokalno; pratite upute u mapi `quiz-app` za lokalno hostanje ili deploy na Azure. - -| Broj lekcije | Tema | Grupiranje lekcija | Ciljevi učenja | Povezana lekcija | Autor | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Uvod u strojno učenje | [Uvod](1-Introduction/README.md) | Naučite osnovne pojmove iza strojnog učenja | [Lekcija](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Povijest strojnog učenja | [Uvod](1-Introduction/README.md) | Naučite povijest tog područja | [Lekcija](1-Introduction/2-history-of-ML/README.md) | Jen i Amy | -| 03 | Pravednost i strojarstvo | [Uvod](1-Introduction/README.md) | Koja su važna filozofska pitanja o pravednosti koja učenici trebaju razmotriti kod izrade i primjene ML modela? | [Lekcija](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Tehnike strojnog učenja | [Uvod](1-Introduction/README.md) | Koje tehnike istraživači strojnog učenja koriste za izgradnju ML modela? | [Lekcija](1-Introduction/4-techniques-of-ML/README.md) | Chris i Jen | -| 05 | Uvod u regresiju | [Regresija](2-Regression/README.md) | Počnite s Python i Scikit-learn za regresijske modele | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Cijene bundeva u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Vizualizirajte i očistite podatke u pripremi za ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Cijene bundeva u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Izgradite linearne i polinomne regresijske modele | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen i Dmitry • Eric Wanjau | -| 08 | Cijene bundeva u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Izgradite logistički regresijski model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Web aplikacija 🔌 | [Web App](3-Web-App/README.md) | Izgradite web aplikaciju za korištenje vašeg treniranog modela | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Uvod u klasifikaciju | [Klasifikacija](4-Classification/README.md) | Očistite, pripremite i vizualizirajte podatke; uvod u klasifikaciju | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen i Cassie • Eric Wanjau | -| 11 | Ukusna azijska i indijska jela 🍜 | [Klasifikacija](4-Classification/README.md) | Uvod u klasifikatore | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen i Cassie • Eric Wanjau | -| 12 | Ukusna azijska i indijska jela 🍜 | [Klasifikacija](4-Classification/README.md) | Više klasifikatora | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen i Cassie • Eric Wanjau | -| 13 | Ukusna azijska i indijska jela 🍜 | [Klasifikacija](4-Classification/README.md) | Izgradite preporučiteljsku web aplikaciju koristeći vaš model | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Uvod u klasteriranje | [Klasteriranje](5-Clustering/README.md) | Očistite, pripremite i vizualizirajte podatke; uvod u klasteriranje | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Istraživanje glazbenih ukusa Nigerije 🎧 | [Klasteriranje](5-Clustering/README.md) | Istražite K-Sredina metodu klasteriranja | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Uvod u obradu prirodnog jezika ☕️ | [Obrada prirodnog jezika](6-NLP/README.md) | Naučite osnove NLP-a izradom jednostavnog bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Uobičajeni NLP zadaci ☕️ | [Obrada prirodnog jezika](6-NLP/README.md) | Produbite znanje NLP-a razumijevanjem uobičajenih zadataka potrebnih pri radu s jezičnim strukturama | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Prevođenje i analiza sentimenta ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Prevođenje i analiza sentimenta s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantični hoteli Europe ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Analiza sentimenta na osnovu recenzija hotela 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantični hoteli Europe ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Analiza sentimenta na osnovu recenzija hotela 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Uvod u vremenske serije i predviđanje | [Vremenske serije](7-TimeSeries/README.md) | Uvod u predviđanje vremenskih serija | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Svjetska potrošnja električne energije ⚡️ - predviđanje vremenskih serija s ARIMA | [Vremenske serije](7-TimeSeries/README.md) | Predviđanje vremenskih serija s ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Svjetska potrošnja električne energije ⚡️ - predviđanje vremenskih serija sa SVR | [Vremenske serije](7-TimeSeries/README.md) | Predviđanje vremenskih serija sa Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Uvod u učenje s potkrepljenjem | [Učenje s potkrepljenjem](8-Reinforcement/README.md) | Uvod u učenje s potkrepljenjem koristeći Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Pomozi Petru da izbjegne vuka! 🐺 | [Učenje s potkrepljenjem](8-Reinforcement/README.md) | Učenje s potkrepljenjem u Gym okruženju | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Scenariji i primjene ML u stvarnom svijetu | [ML u stvarnom svijetu](9-Real-World/README.md) | Zanimljive i otkrivajuće stvarne primjene klasičnog ML-a | [Lekcija](9-Real-World/1-Applications/README.md) | Tim | -| Postscript | Debugiranje modela u ML koristeći RAI nadzornu ploču | [ML u stvarnom svijetu](9-Real-World/README.md) | Debugiranje modela u strojnog učenja koristeći Responsible AI nadzornu ploču | [Lekcija](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [pronađite sve dodatne resurse za ovaj tečaj u našoj Microsoft Learn kolekciji](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## Offline pristup - -Ovu dokumentaciju možete pokrenuti offline koristeći [Docsify](https://docsify.js.org/#/). Forkajte ovaj repozitorij, [installirajte Docsify](https://docsify.js.org/#/quickstart) na vašem lokalnom računalu, te u korijenskoj mapi ovog repozitorija unesite `docsify serve`. Web stranica će biti dostupna na portu 3000 na vašem localhostu: `localhost:3000`. +- [kviz nakon lekcije](https://ff-quizzes.netlify.app/en/ml/) +> **Napomena o jezicima**: Ove lekcije su prvenstveno napisane u Pythonu, ali mnoge su također dostupne u R. Za dovršetak R lekcije, idite u mapu `/solution` i potražite R lekcije. One sadrže ekstenziju .rmd koja predstavlja **R Markdown** datoteku što se može jednostavno definirati kao ugrađivanje `code chunks` (kôd blokova) (iz R ili drugih jezika) i `YAML header` (koji vodi kako formatirati izlaze poput PDF-a) u `Markdown dokumentu`. Kao takav, služi kao uzorni okvir za autorstvo u znanosti o podacima jer vam omogućuje da kombinirate svoj kôd, njegov izlaz i svoje misli dopuštajući vam da ih zapišete u Markdownu. Štoviše, R Markdown dokumenti mogu se prikazati u izlaznim formatima poput PDF-a, HTML-a ili Word-a. + +> **Napomena o kvizovima**: Svi su kvizovi sadržani u [Mapi kviz aplikacije](../../quiz-app), ukupno 52 kviza sa po tri pitanja. Povezani su unutar lekcija, ali se kviz aplikacija može pokrenuti lokalno; slijedite upute u mapi `quiz-app` da lokalno pokrenete ili implementirate na Azure. + +| Broj lekcije | Tema | Grupiranje lekcija | Ciljevi učenja | Povezana lekcija | Autor | +| :-----------: | :------------------------------------------------------------: | :----------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | +| 01 | Uvod u strojarno učenje | [Uvod](1-Introduction/README.md) | Naučite osnovne pojmove iza strojnog učenja | [Lekcija](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Povijest strojnog učenja | [Uvod](1-Introduction/README.md) | Naučite povijest ovog područja | [Lekcija](1-Introduction/2-history-of-ML/README.md) | Jen i Amy | +| 03 | Pravednost i strojno učenje | [Uvod](1-Introduction/README.md) | Koja su važna filozofska pitanja o pravednosti koja bi studenti trebali razmotriti pri izgradnji i primjeni ML modela? | [Lekcija](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Tehnike strojnog učenja | [Uvod](1-Introduction/README.md) | Koje tehnike istraživači strojnog učenja koriste za izgradnju ML modela? | [Lekcija](1-Introduction/4-techniques-of-ML/README.md) | Chris i Jen | +| 05 | Uvod u regresiju | [Regresija](2-Regression/README.md) | Počnite s Pythonom i Scikit-learn za regresijske modele | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Cijene tikvi u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Vizualizirajte i očistite podatke u pripremi za ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Cijene tikvi u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Izgradite linearne i polinomske regresijske modele | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen i Dmitry • Eric Wanjau | +| 08 | Cijene tikvi u Sjevernoj Americi 🎃 | [Regresija](2-Regression/README.md) | Izgradite logistički regresijski model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Web aplikacija 🔌 | [Web App](3-Web-App/README.md) | Izgradite web aplikaciju za korištenje vašeg istreniranog modela | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Uvod u klasifikaciju | [Klasifikacija](4-Classification/README.md) | Očistite, pripremite i vizualizirajte svoje podatke; uvod u klasifikaciju | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen i Cassie • Eric Wanjau | +| 11 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Uvod u klasifikatore | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen i Cassie • Eric Wanjau | +| 12 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Još klasifikatora | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen i Cassie • Eric Wanjau | +| 13 | Ukusne azijske i indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Izgradite preporučiteljsku web aplikaciju koristeći svoj model | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Uvod u klasteriranje | [Klasteriranje](5-Clustering/README.md) | Očistite, pripremite i vizualizirajte svoje podatke; Uvod u klasteriranje | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Istraživanje glazbenih ukusa Nigerije 🎧 | [Klasteriranje](5-Clustering/README.md) | Istražite K-means metodu klasteriranja | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Uvod u obradu prirodnog jezika ☕️ | [Obrada prirodnog jezika](6-NLP/README.md) | Naučite osnove NLP-a gradeći jednostavnog bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Uobičajeni NLP zadaci ☕️ | [Obrada prirodnog jezika](6-NLP/README.md) | Produbite svoje NLP znanje razumijevanjem uobičajenih zadataka potrebnih za rad s jezičnim strukturama | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Prevod i analiza sentimenta ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Prijevod i analiza sentimenta s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantični hoteli Europe ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Analiza sentimenta na recenzijama hotela 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantični hoteli Europe ♥️ | [Obrada prirodnog jezika](6-NLP/README.md) | Analiza sentimenta na recenzijama hotela 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Uvod u predviđanje vremenskih serija | [Vremenske serije](7-TimeSeries/README.md) | Uvod u predviđanje vremenskih serija | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Svjetska potrošnja energije ⚡️ - predviđanje s ARIMA | [Vremenske serije](7-TimeSeries/README.md) | Predviđanje vremenskih serija s ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Svjetska potrošnja energije ⚡️ - predviđanje s SVR | [Vremenske serije](7-TimeSeries/README.md) | Predviđanje vremenskih serija s Support Vector Regressorom | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Uvod u pojačano učenje | [Pojačano učenje](8-Reinforcement/README.md) | Uvod u pojačano učenje s Q-Learningom | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Pomozi Peteru izbjeći vuka! 🐺 | [Pojačano učenje](8-Reinforcement/README.md) | Pojačano učenje u Gym okruženju | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Scenariji i primjene strojnog učenja u stvarnom svijetu | [ML u stvarnom svijetu](9-Real-World/README.md) | Zanimljive i otkrivajuće primjene klasičnog strojnog učenja | [Lekcija](9-Real-World/1-Applications/README.md) | Tim | +| Postscript | Debugiranje modela u strojnog učenja korištenjem RAI nadzorne ploče | [ML u stvarnom svijetu](9-Real-World/README.md) | Debugiranje modela u strojnog učenja koristeći Responsible AI nadzorne ploče komponente | [Lekcija](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [pronađi sve dodatne resurse za ovaj tečaj u našoj Microsoft Learn kolekciji](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## Pristup bez interneta + +Možete koristiti ovu dokumentaciju offline pomoću [Docsify](https://docsify.js.org/#/). Forkajte ovaj repozitorij, [instalirajte Docsify](https://docsify.js.org/#/quickstart) na svojem računalu i zatim u korijenskoj mapi ovog repozitorija unesite `docsify serve`. Web stranica će biti dostupna na portu 3000 na vašem lokalnom računalu: `localhost:3000`. ## PDF-ovi -Pronađite pdf nastavnog plana s poveznicama [ovdje](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Pronađite PDF nastavnog plana s povezanim linkovima [ovdje](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Ostali tečajevi @@ -158,51 +182,51 @@ Naš tim proizvodi i druge tečajeve! Pogledajte: [![LangChain za početnike](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agenti +### Azure / Edge / MCP / Agents [![AZD za početnike](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI za početnike](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP za početnike](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agenti za početnike](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI agenti za početnike](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Serija generativne umjetne inteligencije -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![Generativna AI za početnike](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generativna AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generativna AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generativna AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- - + ### Osnovno učenje -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Strojno učenje za početnike](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Znanost o podacima za početnike](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI za početnike](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Kibernetička sigurnost za početnike](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web razvoj za početnike](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT za početnike](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR razvoj za početnike](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- - + ### Serija Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot za AI programski par](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot za C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot avantura](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Dobivanje pomoći -Ako zapnete ili imate pitanja o izradi AI aplikacija. Pridružite se kolegama polaznicima i iskusnim programerima u raspravama o MCP-u. To je podržavajuća zajednica gdje su pitanja dobrodošla i znanje se slobodno dijeli. +Ako zapnete ili imate pitanja o izradi AI aplikacija. Pridružite se kolegama učenicima i iskusnim programerima u raspravama o MCP-u. To je podržavajuća zajednica gdje su pitanja dobrodošla, a znanje se slobodno dijeli. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ako imate povratne informacije o proizvodu ili greške tijekom izrade posjetite: +Ako imate povratne informacije o proizvodu ili pogreške tijekom izrade posjetite: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Dodatni savjeti za učenje -- Pregledajte bilježnice nakon svake lekcije za bolje razumijevanje. +- Pregledavajte bilježnice nakon svakog sata radi boljeg razumijevanja. - Vježbajte implementaciju algoritama sami. - Istražujte stvarne skupove podataka koristeći naučene koncepte. @@ -210,5 +234,5 @@ Ako imate povratne informacije o proizvodu ili greške tijekom izrade posjetite: **Odricanje od odgovornosti**: -Ovaj je dokument preveden pomoću AI usluge za prijevod [Co-op Translator](https://github.com/Azure/co-op-translator). Iako težimo točnosti, molimo imajte na umu da automatizirani prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na izvornom jeziku smatra se službenim i najpouzdanijim izvorom. Za kritične informacije preporučuje se profesionalni ljudski prijevod. Ne preuzimamo odgovornost za bilo kakve nesporazume ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda. +Ovaj dokument preveden je uz pomoć AI usluge za prijevod [Co-op Translator](https://github.com/Azure/co-op-translator). Iako se trudimo biti točni, imajte na umu da automatski prijevodi mogu sadržavati pogreške ili netočnosti. Izvorni dokument na njegovom izvornom jeziku treba smatrati autoritativnim izvorom. Za važne informacije preporučuje se profesionalni ljudski prijevod. Ne snosimo odgovornost za bilo kakve nesporazume ili pogrešna tumačenja koja proizlaze iz korištenja ovog prijevoda. \ No newline at end of file diff --git a/translations/hu/.co-op-translator.json b/translations/hu/.co-op-translator.json index d4a72a3ac..9618118d7 100644 --- a/translations/hu/.co-op-translator.json +++ b/translations/hu/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "hu" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:16:18+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T15:58:33+00:00", "source_file": "README.md", "language_code": "hu" }, diff --git a/translations/hu/README.md b/translations/hu/README.md index 6d40e5b04..36d75b848 100644 --- a/translations/hu/README.md +++ b/translations/hu/README.md @@ -10,14 +10,14 @@ ### 🌐 Többnyelvű támogatás -#### GitHub Action segítségével támogatott (Automatizált és mindig naprakész) +#### GitHub Action által támogatott (Automatizált és Mindig Naprakész) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](./README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](./README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Szeretnéd inkább helyileg klónozni?** +> **Inkább helyben klónoznád?** > -> Ez a tárház több mint 50 nyelvre készült fordítást tartalmaz, ami jelentősen megnöveli a letöltési méretet. Ha fordítások nélkül szeretnéd klónozni, használj sparse checkout-ot: +> Ez a tároló több mint 50 nyelvi fordítást tartalmaz, ami jelentősen növeli a letöltési méretet. Ha fordítások nélkül szeretnéd klónozni, használd a sparse checkout-ot: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Ez mindent biztosít, amire szükséged van a tanfolyam elvégzéséhez, sokkal gyorsabb letöltéssel. +> Így minden szükséges dolgot megkap, hogy be tudd fejezni a tanfolyamot sokkal gyorsabb letöltéssel. #### Csatlakozz közösségünkhöz [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Folyamatban van egy Discord „Tanulj AI-val” sorozatunk, tudj meg többet és csatlakozz hozzánk a [Learn with AI Series](https://aka.ms/learnwithai/discord) oldalán 2025. szeptember 18. és 30. között. Tippeket és trükköket kapsz a GitHub Copilot adat tudományi használatához. +Folyamatban van egy Discord „tanulj AI-val” sorozatunk, tanulj többet és csatlakozz hozzánk a [Tanulj AI-val sorozaton](https://aka.ms/learnwithai/discord) 2025. szeptember 18-tól 30-ig. Tippeket és trükköket fogsz kapni a GitHub Copilot adat tudományi használatához. ![Learn with AI series](../../translated_images/hu/3.9b58fd8d6c373c20.webp) -# Gépi tanulás kezdőknek – Tananyag +# Gépi tanulás kezdőknek - Tanterv -> 🌍 Utazz velünk a világ körül, miközben a gépi tanulást a világ kultúráinak szemszögén keresztül fedezzük fel 🌍 +> 🌍 Utazz a világ körül, miközben a gépi tanulást a világ kultúrái segítségével fedezzük fel 🌍 -A Microsoft Cloud Advocates örömmel kínál egy 12 hetes, 26 leckéből álló tananyagot a **gépi tanulásról**. Ebben a tananyagban olyan klasszikus gépi tanulásról tanulsz, amely elsősorban a Scikit-learn könyvtárra épül, a mély tanulást pedig kihagyja, amit az [AI for Beginners tananyagunkban](https://aka.ms/ai4beginners) találhatsz meg. Ezt a tananyagot párosítsd a ['Data Science for Beginners' tananyagunkkal](https://aka.ms/ds4beginners) is! +A Microsoft Cloud Advocates örömmel kínál egy 12 hetes, 26 leckéből álló tantervet, amely a **gépi tanulásról** szól. Ebben a tantervben megismerkedsz azzal, amit néha **klasszikus gépi tanulásnak** hívnak, főként a Scikit-learn könyvtár használatával, elkerülve a mély tanulást, amely az [AI kezdőknek tantervünkben](https://aka.ms/ai4beginners) található meg. Ezeket a leckéket párosítsd a ['Data Science kezdőknek' tantervünkkel](https://aka.ms/ds4beginners) is! -Utazz velünk a világ körül, miközben ezeket a klasszikus technikákat a világ számos adatforrására alkalmazzuk. Minden lecke elő- és utótesztet tartalmaz, írásos útmutatót a lecke teljesítéséhez, megoldást, feladatot és egyebeket. Projektalapú oktatásunk lehetővé teszi, hogy építés közben tanulj, ami bizonyítottan segíti az új készségek rögzülését. +Utazz velünk a világ körül, miközben ezeket a klasszikus technikákat a világ számos területéről származó adatokra alkalmazzuk. Minden lecke tartalmaz elő- és utóvizsgákat, írásos utasításokat a lecke elvégzéséhez, megoldást, feladatot és egyebeket. Projekt-alapú oktatásunk lehetővé teszi, hogy tanulj miközben építesz, ez egy bevált mód az új készségek elmélyítésére. **✍️ Szívből köszönjük szerzőinknek:** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu és Amy Boyd -**🎨 Köszönet illusztrátorainknak is:** Tomomi Imura, Dasani Madipalli, és Jen Looper +**🎨 Köszönjük illusztrátorainknak is:** Tomomi Imura, Dasani Madipalli és Jen Looper -**🙏 Külön köszönet 🙏 Microsoft Hallgatói Nagykövet szerzőinknek, lektorainknak és tartalomközreműködőinknek**, kiemelten Rishit Daglinek, Muhammad Sakib Khan Inannak, Rohan Rajnak, Alexandru Petrescunak, Abhishek Jaiswalnak, Nawrin Tabassumnak, Ioan Samuilának és Snigdha Agarwalnak +**🙏 Külön köszönetünk 🙏 a Microsoft Hallgatói Nagykövetei szerzőinknek, lektorainknak és tartalomközreműködőinknek**, különösen Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila és Snigdha Agarwal -**🤩 Extra köszönet Microsoft Hallgatói Nagyköveteknek Eric Wanjau-nak, Jasleen Sondhi-nak és Vidushi Guptának az R leckéinkért!** +**🤩 Külön köszönet a Microsoft Hallgatói Nagyköveteknek, Eric Wanjau-nak, Jasleen Sondhi-nak és Vidushi Gupta-nak a R leckéinkért!** # Kezdés Kövesd ezeket a lépéseket: -1. **Válaszd le a tárházat:** Kattints a jobb felső sarokban a "Fork" gombra. -2. **Klónozd a tárházat:** `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Forkold le a tárolót**: Kattints a "Fork" gombra a jobb felső sarokban ezen az oldalon. +2. **Klónozd a tárolót**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [a tanfolyam további erőforrásait megtalálod Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [Minden további erőforrást megtalálsz ehhez a tanfolyamhoz Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Segítségre van szükséged?** Nézd meg a [Hibaelhárítási útmutatónkat](TROUBLESHOOTING.md) a telepítési, beállítási és lecke lefuttatási problémák megoldásához. +> 🔧 **Segítségre van szükséged?** Nézd meg [Hibaelhárítási útmutatónkat](TROUBLESHOOTING.md) az általános telepítési, beállítási és lecke futtatási problémák megoldásáért. -**[Diákok](https://aka.ms/student-page)**, hogy használjátok ezt a tananyagot, fork-old le a teljes repo-t a saját GitHub fiókodra, és végezd el a feladatokat egyedül vagy csoportban: +**[Tanulók](https://aka.ms/student-page)**, a tanterv használatához forkold le az egész repo-t a saját GitHub fiókodra, és végezd el a gyakorlatokat egyénileg vagy csoportban: -- Kezdj az előadás előtti teszttel. +- Kezdd előadási előkészítő kvízzel. - Olvasd el az előadást és végezd el a feladatokat, megállva és átgondolva minden tudásellenőrzésnél. -- Próbáld megérteni a leckéket és a tanultak alapján megalkotni a projekteket, a megoldó kód futtatása helyett; azonban a kód elérhető a `/solution` mappákban minden projektorientált leckénél. -- Tedd meg az előadás utáni tesztet. +- Próbáld meg a projekteket úgy elkészíteni, hogy érted a leckéket, és ne csak lefuttasd a megoldó kódot; a megoldások kódban is elérhetők a projekt alapú leckék `/solution` mappáiban. +- Tedd meg az utólagos előadási kvízt. - Teljesítsd a kihívást. - Teljesítsd a feladatot. -- Egy leckecsoport befejezése után látogasd meg a [Vita fórumot](https://github.com/microsoft/ML-For-Beginners/discussions) és „tanulj hangosan” egy megfelelő PAT értékelőlap kitöltésével. A 'PAT' egy haladás értékelő eszköz, egy értékelőlap, amit kitöltve tovább mélyíted a tanulásod. Reagálhatsz más PAT-ekre is, így együttesen tanulhatunk. +- Egy leckecsoport befejezése után látogasd meg a [Vita fórumot](https://github.com/microsoft/ML-For-Beginners/discussions), és "tanulj hangosan" a megfelelő PAT értékelőlap kitöltésével. A 'PAT' egy Haladási Értékelő Eszköz, amit kitöltesz a tanulás javítása érdekében. Mások PAT értékeléseire is reagálhatsz, hogy együtt tanulhassunk. -> A további tanuláshoz javasoljuk, hogy kövesd ezeket a [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulokat és tanulási útvonalakat. +> További tanuláshoz ajánljuk ezeket a [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulokat és tanulási utakat. -**Tanárként** itt találsz néhány [javaslatot](for-teachers.md), hogyan használd ezt a tananyagot. +**Tanárként** javaslatokat találsz [a tanterv használatához](for-teachers.md). --- ## Videós bemutatók -Néhány lecke rövid videó formájában is elérhető. Ezeket megtekintheted a leckékben közvetlenül vagy a [ML for Beginners lejátszási listán a Microsoft Developer YouTube csatornáján](https://aka.ms/ml-beginners-videos) a lenti képre kattintva. +Néhány lecke elérhető rövid videó formátumban. Ezeket megtalálhatod a leckék között, vagy a [ML kezdőknek lejátszási listán a Microsoft Developer YouTube csatornáján](https://aka.ms/ml-beginners-videos), ha a képre kattintasz. [![ML for beginners banner](../../translated_images/hu/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -101,79 +101,79 @@ Néhány lecke rövid videó formájában is elérhető. Ezeket megtekintheted a **Gif készítője:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Kattints a fenti képre, hogy videót nézz meg a projektről és annak alkotóiról! +> 🎥 Kattints a fenti képre egy videó megtekintéséhez a projektről és az alkotókról! --- -## Didaktika +## Pedagógia -Két oktatási elvet választottunk a tananyag kialakításakor: projekt alapú, gyakorlati jelleg biztosítása, illetve gyakori kvízek beiktatása. Emellett a tananyagnak közös **téma** ad koherenciát. +Két pedagógiai alapelvet választottunk ehhez a tantervhez: hogy gyakorlatias, **projekt-alapú** legyen, és hogy **gyakori kvízeket** tartalmazzon. Ezen kívül a tantervnek van egy közös **vonalvezető témája** az összefüggőség érdekében. -Az tartalom projektekhez való igazítása élvezetesebbé teszi a tanulók számára a folyamatot, és fokozza a fogalmak megtartását. Egy alacsony tétű kvíz az óra előtt beállítja a tanulók szándékát egy téma tanulására, míg a kicsivel később, az óra után tartott kvíz további megtartást szolgál. Ez a tananyag rugalmas és szórakoztató, egészben vagy részleteiben is elvégezhető. A projektek a kis kezdéstől fokozatosan egyre összetettebbé válik a 12 hetes ciklus végére. A tananyag egy utószót is tartalmaz, ami a gépi tanulás valódi alkalmazásairól szól, amely plusz kreditként vagy vitaalapként is használható. +Azáltal, hogy a tartalom projektekkel összhangban van, a folyamat érdekesebb lesz a tanulók számára és a fogalmak megőrzése javul. Emellett az órák előtti kis kockázatú kvíz irányt ad a tanuló szándékának a téma elsajátítására, míg az óra utáni második kvíz további rögzítést biztosít. Ez a tanterv rugalmas és szórakoztató, egészben vagy részben is végezhető. A projektek kicsiben indulnak, és egyre összetettebbek lesznek a 12 hetes ciklus végére. A tanterv tartalmaz egy utószót is a valós világban alkalmazott ML-ről, amit plusz pontként vagy vitatémaként lehet felhasználni. -> Találd meg a [Magatartási kódexünket](CODE_OF_CONDUCT.md), [Hozzájárulási](CONTRIBUTING.md), [Fordítási](..) és [Hibaelhárítási](TROUBLESHOOTING.md) útmutatóinkat. Várjuk építő jellegű visszajelzéseidet! +> Találd meg [Magatartási kódexünket](CODE_OF_CONDUCT.md), [Közreműködési irányelveinket](CONTRIBUTING.md), a [Fordításokat](..), és a [Hibaelhárítást](TROUBLESHOOTING.md). Szívesen fogadjuk építő visszajelzésed! -## Minden lecke tartalmazza +## Minden lecke tartalmaz -- választható vázlatjegyzet -- választható kiegészítő videó -- videós bemutató (csak néhány leckénél) -- [előadás előtti bemelegítő kvíz](https://ff-quizzes.netlify.app/en/ml/) -- írott lecke -- projekt alapú leckéknél lépésről lépésre útmutatók a projekt felépítéséhez -- tudásellenőrzések +- opcionális vázlatjegyzet +- opcionális kiegészítő videó +- videós bemutató (néhány lecke csak) +- [elő-előadás bemelegítő kvíz](https://ff-quizzes.netlify.app/en/ml/) +- írásos lecke +- projekt-alapú leckéknél lépésről-lépésre útmutató a projekt elkészítéséhez +- tudásfelmérő - kihívás - kiegészítő olvasmány - feladat -- [előadás utáni kvíz](https://ff-quizzes.netlify.app/en/ml/) - -> **Megjegyzés a nyelvekről**: Ezek a leckék elsősorban Python nyelven íródtak, de sokan elérhetők R nyelven is. Egy R lecke elvégzéséhez keresd meg az `/solution` mappában az R leckéket. Ezek .rmd kiterjesztésű fájlok, amelyek egy **R Markdown** dokumentumot jelentenek, ami egyszerűen olyan Markdown dokumentum, amelybe `kódblokkok` (R vagy más nyelvek) és egy `YAML fejléc` (ami meghatározza a kimenet formátumát, pl. PDF) van ágyazva. Ez egy kiváló szerzői keretrendszer az adat tudomány számára, mert lehetővé teszi, hogy a kódodat, annak outputját és gondolataidat egyszerre írd le Markdown formátumban. Ezen felül az R Markdown dokumentumok többféle kimeneti formátumba exportálhatók, például PDF, HTML vagy Word. -> **Megjegyzés a kvízekhez**: Az összes kvíz megtalálható a [Quiz App mappában](../../quiz-app), összesen 52 darab, mindegyik három kérdésből áll. Ezek kapcsolódnak az egyes leckékhez, de a kvíz alkalmazást helyileg is futtathatod; kövesd a `quiz-app` mappában található utasításokat a helyi hosztoláshoz vagy az Azure-ra történő telepítéshez. - -| Lecke száma | Téma | Lecke csoportosítás | Tanulási célok | Kapcsolódó lecke | Szerző | -| :---------: | :----------------------------------------------------------: | :-----------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | -| 01 | Bevezetés a gépi tanulásba | [Bevezetés](1-Introduction/README.md) | Ismerd meg a gépi tanulás alapvető fogalmait | [Lecke](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | A gépi tanulás története | [Bevezetés](1-Introduction/README.md) | Ismerd meg a terület történetét | [Lecke](1-Introduction/2-history-of-ML/README.md) | Jen és Amy | -| 03 | Méltányosság és gépi tanulás | [Bevezetés](1-Introduction/README.md) | Milyen fontos filozófiai kérdéseket érdemes figyelembe venni a méltányosság vonatkozásában az ML modellek építésekor és alkalmazásakor? | [Lecke](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Gépi tanulási technikák | [Bevezetés](1-Introduction/README.md) | Milyen technikákat alkalmaznak a kutatók az ML modellek építéséhez? | [Lecke](1-Introduction/4-techniques-of-ML/README.md) | Chris és Jen | -| 05 | Bevezetés a regresszióba | [Regresszió](2-Regression/README.md) | Kezdj el dolgozni Python és Scikit-learn segítségével regressziós modellekhez | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Adatok megjelenítése és tisztítása az ML-re való felkészüléshez | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Lineáris és polinomiális regressziós modellek építése | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen és Dmitry • Eric Wanjau | -| 08 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Logisztikus regressziós modell építése | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Webalkalmazás 🔌 | [Web App](3-Web-App/README.md) | Építs webalkalmazást a betanított modell használatához | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Bevezetés az osztályozásba | [Osztályozás](4-Classification/README.md) | Tisztítsd, készítsd elő és ábrázold az adataidat; bevezetés az osztályozásba | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen és Cassie • Eric Wanjau | -| 11 | Ízletes ázsiai és indiai konyhák 🍜 | [Osztályozás](4-Classification/README.md) | Bevezetés az osztályozókhoz | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen és Cassie • Eric Wanjau | -| 12 | Ízletes ázsiai és indiai konyhák 🍜 | [Osztályozás](4-Classification/README.md) | Több osztályozó | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen és Cassie • Eric Wanjau | -| 13 | Ízletes ázsiai és indiai konyhák 🍜 | [Osztályozás](4-Classification/README.md) | Építs ajánló webalkalmazást a modell segítségével | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Bevezetés a klaszterezésbe | [Klaszterezés](5-Clustering/README.md) | Tisztítsd, készítsd elő és ábrázold az adataidat; bevezetés a klaszterezésbe | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Fedezd fel a nigériai zenei ízlést 🎧 | [Klaszterezés](5-Clustering/README.md) | Fedezd fel a K-Means klaszterezési módszert | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Bevezetés a természetes nyelvfeldolgozásba ☕️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Tanuld meg az NLP alapjait egy egyszerű bot építésén keresztül | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Gyakori NLP feladatok ☕️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Mélyítsd el NLP tudásodat a nyelvi szerkezetek kezeléséhez szükséges gyakori feladatok megértésével | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Fordítás és érzelemelemzés ♥️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Fordítás és érzelemelemzés Jane Austen műveivel | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantikus európai szállodák ♥️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Érzelemelemzés szállodai értékelésekkel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantikus európai szállodák ♥️ | [Természetes nyelvfeldolgozás](6-NLP/README.md) | Érzelemelemzés szállodai értékelésekkel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Bevezetés az idősoros előrejelzésbe | [Idősorok](7-TimeSeries/README.md) | Bevezetés az idősoros előrejelzésbe | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Világ energiafelhasználás ⚡️ - idősoros előrejelzés ARIMA-val | [Idősorok](7-TimeSeries/README.md) | Idősoros előrejelzés ARIMA-val | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Világ energiafelhasználás ⚡️ - idősoros előrejelzés SVR-rel | [Idősorok](7-TimeSeries/README.md) | Idősoros előrejelzés Támogató vektorgép regresszorral | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Bevezetés a megerősítéses tanulásba | [Megerősítéses tanulás](8-Reinforcement/README.md) | Bevezetés a megerősítéses tanulásba Q-learning segítségével | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Segíts Peternek elkerülni a farkast! 🐺 | [Megerősítéses tanulás](8-Reinforcement/README.md) | Megerősítéses tanulás Gym környezetben | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Utóirat | Valós világ ML forgatókönyvek és alkalmazások | [ML a mindennapokban](9-Real-World/README.md) | Érdekes és feltáró valódi világban alkalmazott klasszikus gépi tanulás | [Lecke](9-Real-World/1-Applications/README.md) | Csapat | -| Utóirat | Modell hibakeresése ML-ben RAI irányítópult segítségével | [ML a mindennapokban](9-Real-World/README.md) | Modellhibakeresés gépi tanulásban a Responsible AI irányítópult komponenseivel | [Lecke](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [minden további anyag megtalálható ebben a Microsoft Learn gyűjteményben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## Offline elérés - -Ezt a dokumentációt offline is futtathatod a [Docsify](https://docsify.js.org/#/) használatával. Forkold a repót, [telepítsd a Docsify-t](https://docsify.js.org/#/quickstart) a helyi gépeden, majd a repó gyökérmappájában írd be, hogy `docsify serve`. Az oldal a localhost 3000-es portján lesz elérhető: `localhost:3000`. +- [utó-előadás kvíz](https://ff-quizzes.netlify.app/en/ml/) +> **Megjegyzés a nyelvekről**: Ezek a leckék elsősorban Python nyelven íródtak, de sok elérhető R-ben is. Egy R leckét a befejezéshez menj a `/solution` mappába, és keresd az R leckéket. Ezek .rmd kiterjesztésű fájlok, amelyek egy **R Markdown** fájlt jelentenek, amely egyszerűen definiálható úgy, hogy `kódblokkokat` (R vagy más nyelvek kódjai) és egy `YAML fejlécet` (amely útmutatást ad a kimenetek, például PDF formázásához) ágyaz be egy `Markdown dokumentumba`. Így példamutató keretrendszert nyújt az adattudományhoz, mivel lehetővé teszi, hogy összekapcsold a kódodat, annak kimenetét és gondolataidat, mindezt Markdown formátumban írva le. Továbbá, az R Markdown dokumentumok PDF, HTML vagy Word kimeneti formátumokká alakíthatók. + +> **Megjegyzés a tesztekről**: Az összes teszt a [Quiz App mappában](../../quiz-app) található, összesen 52 darab, három kérdésből álló teszt. Ezek linkelve vannak a leckékben, de a teszt alkalmazás helyileg is futtatható; a `quiz-app` mappában található utasításokat követve helyben hosztolhatod vagy telepítheted Azure-ra. + +| Lecke száma | Téma | Lecke Csoportosítás | Tanulási célok | Kapcsolódó lecke | Szerző | +| :---------: | :----------------------------------------------------------: | :-----------------------------------------------------: | --------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | +| 01 | Bevezetés a gépi tanulásba | [Bevezetés](1-Introduction/README.md) | Ismerd meg a gépi tanulás alapfogalmait | [Lecke](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | A gépi tanulás története | [Bevezetés](1-Introduction/README.md) | Tanuld meg a terület mögötti történelmet | [Lecke](1-Introduction/2-history-of-ML/README.md) | Jen és Amy | +| 03 | Méltányosság és gépi tanulás | [Bevezetés](1-Introduction/README.md) | Melyek a fontos filozófiai kérdések a méltányosság terén, amiket a tanulóknak meg kell fontolniuk ML modellek létrehozásakor és alkalmazásakor? | [Lecke](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Gépi tanulási technikák | [Bevezetés](1-Introduction/README.md) | Milyen technikákat alkalmaznak az ML kutatók ML modellek építéséhez? | [Lecke](1-Introduction/4-techniques-of-ML/README.md) | Chris és Jen | +| 05 | Bevezetés a regresszióba | [Regresszió](2-Regression/README.md) | Kezdj el dolgozni Pythonnal és a Scikit-learn könyvtárral regressziós modellekhez | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Adatok vizualizálása és tisztítása gépi tanulásra való felkészüléshez | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Lineáris és polinomiális regressziós modellek építése | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen és Dmitry • Eric Wanjau | +| 08 | Észak-amerikai tökárak 🎃 | [Regresszió](2-Regression/README.md) | Logisztikus regressziós modell építése | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Webalkalmazás 🔌 | [Web App](3-Web-App/README.md) | Webalkalmazás építése a betanított modell használatához | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Bevezetés a klasszifikációba | [Klasszifikáció](4-Classification/README.md) | Tisztítsd, készítsd elő és vizualizáld az adataidat; bevezetés a klasszifikációba | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen és Cassie • Eric Wanjau | +| 11 | Finom ázsiai és indiai konyhák 🍜 | [Klasszifikáció](4-Classification/README.md) | Bevezetés a klasszifikátorokhoz | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen és Cassie • Eric Wanjau | +| 12 | Finom ázsiai és indiai konyhák 🍜 | [Klasszifikáció](4-Classification/README.md) | További klasszifikátorok | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen és Cassie • Eric Wanjau | +| 13 | Finom ázsiai és indiai konyhák 🍜 | [Klasszifikáció](4-Classification/README.md) | Ajánló webalkalmazás építése a modelled használatával | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Bevezetés a klaszterezésbe | [Klaszterezés](5-Clustering/README.md) | Tisztítsd, készítsd elő és vizualizáld az adataidat; bevezetés a klaszterezésbe | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Felfedező elemzés a nigériai zenei ízlésekről 🎧 | [Klaszterezés](5-Clustering/README.md) | Fedezd fel a K-means klaszterezési módszert | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Bevezetés a természetesnyelv-feldolgozásba ☕️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Tanuld meg az NLP alapjait egy egyszerű bot elkészítésével | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Gyakoribb NLP feladatok ☕️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Mélyítsd el NLP ismereteidet a nyelvi szerkezetek kezeléséhez szükséges gyakori feladatok megértésével | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Fordítás és hangulatelemzés ♥️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Fordítás és hangulatelemzés Jane Austen példáján keresztül | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantikus hotelek Európában ♥️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Hangulatelemzés hotelértékelésekkel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantikus hotelek Európában ♥️ | [Természetesnyelv-feldolgozás](6-NLP/README.md) | Hangulatelemzés hotelértékelésekkel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Bevezetés az idősor előrejelzésbe | [Idősor](7-TimeSeries/README.md) | Bevezetés az idősor előrejelzésbe | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Világenergia-felhasználás ⚡️ - idősor előrejelzés ARIMA-val | [Idősor](7-TimeSeries/README.md) | Idősor előrejelzés ARIMA segítségével | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Világenergia-felhasználás ⚡️ - idősor előrejelzés SVR-rel | [Idősor](7-TimeSeries/README.md) | Idősor előrejelzés Támogatott Vektor Regresszorral | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Bevezetés a megerősítéses tanulásba | [Megerősítéses tanulás](8-Reinforcement/README.md) | Bevezetés a megerősítéses tanulásba Q-tanulás segítségével | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Segíts Péternek elkerülni a farkast! 🐺 | [Megerősítéses tanulás](8-Reinforcement/README.md) | Megerősítéses tanulás Gym környezetben | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Utószó | Valós világ gépi tanulás esetei és alkalmazásai | [ML a valóságban](9-Real-World/README.md) | Érdekes és feltáró valós világ klasszikus gépi tanulás alkalmazások | [Lecke](9-Real-World/1-Applications/README.md) | Csapat | +| Utószó | Modellhibázás gépi tanulásban RAI dashboarddal | [ML a valóságban](9-Real-World/README.md) | Modellhibázás gépi tanulásban a Responsible AI dashboard komponenseivel | [Lecke](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [találd meg az összes további forrást ehhez a kurzushoz a Microsoft Learn gyűjteményünkben](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## Offline hozzáférés + +Ezt a dokumentációt offline is futtathatod a [Docsify](https://docsify.js.org/#/) segítségével. Forkold ezt a repót, [telepítsd a Docsify-t](https://docsify.js.org/#/quickstart) a helyi gépeden, majd a repó gyökér mappájában írd be, hogy `docsify serve`. A weboldalt a localhost 3000-es portján szolgálja ki: `localhost:3000`. ## PDF-ek -A tananyagról pdf változat, linkekkel [itt található](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +A tananyag pdf változatát linkekkel [itt találod](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Egyéb kurzusok -Csapatunk további kurzusokat is készít! Nézd meg: +Csapatunk más kurzusokat is készít! Nézd meg: ### LangChain @@ -185,11 +185,11 @@ Csapatunk további kurzusokat is készít! Nézd meg: ### Azure / Edge / MCP / Ügynökök [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP kezdőknek](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI ügynökök kezdőknek](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- - + ### Generatív MI sorozat [![Generatív MI kezdőknek](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generatív MI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) @@ -197,9 +197,9 @@ Csapatunk további kurzusokat is készít! Nézd meg: [![Generatív MI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- - + ### Alapvető tanulás -[![Gépitanulás kezdőknek](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Gépi tanulás kezdőknek](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Adattudomány kezdőknek](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![MI kezdőknek](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![Kiberbiztonság kezdőknek](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) @@ -208,31 +208,31 @@ Csapatunk további kurzusokat is készít! Nézd meg: [![XR fejlesztés kezdőknek](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- - + ### Copilot sorozat -[![Copilot AI páros programozáshoz](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot az MI páros programozáshoz](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot C#/.NET-hez](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot kaland](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Segítségkérés +## Segítség kérése -Ha elakadnál vagy kérdésed van MI alkalmazások fejlesztésével kapcsolatban, csatlakozz tanulótársaidhoz és tapasztalt fejlesztőkhöz az MCP közösségi beszélgetéseiben. Ez egy támogató közösség, ahol szívesen fogadják a kérdéseket és a tudás szabadon megosztott. +Ha elakadnál vagy kérdésed lenne AI alkalmazások építésével kapcsolatban, csatlakozz a tanulótársakhoz és tapasztalt fejlesztőkhöz a MCP-vel kapcsolatos beszélgetésekben. Ez egy támogató közösség, ahol a kérdések szívesen fogadottak, és a tudás szabadon megosztott. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ha visszajelzésed vagy hibát tapasztalsz fejlesztés közben, látogass el a következő oldalra: +Ha termék-visszajelzésed vagy hibák jelentkeznek az építés során, látogass el ide: -[![Microsoft Foundry fejlesztői fórum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +[![Microsoft Foundry Fejlesztői Fórum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## További tanulási tippek -- Minden leckét követően nézd át az jegyzetfüzeteket a jobb megértés érdekében. -- Gyakorold az algoritmusok önálló megvalósítását. -- Fedezd fel a valós adatokat a megtanult fogalmak alkalmazásával. +- Nézd át a jegyzetfüzeteket minden lecke után a jobb megértés érdekében. +- Gyakorold a algoritmusok önálló megvalósítását. +- Fedezz fel valós adatokat a tanult fogalmak alkalmazásával. --- -**Felülvizsgálati nyilatkozat**: -Ezt a dokumentumot az AI fordító szolgáltatás, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével fordítottuk. Bár igyekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítások hibákat vagy pontatlanságokat tartalmazhatnak. Az eredeti, anyanyelvi dokumentum tekintendő hiteles forrásnak. Fontos információk esetén szakmai, emberi fordítást javasolunk. Nem vállalunk felelősséget a fordítás használatából eredő félreértésekért vagy téves értelmezésekért. +**Nyilatkozat**: +Ezt a dokumentumot az AI fordító szolgáltatásával, a [Co-op Translator](https://github.com/Azure/co-op-translator) segítségével fordítottuk. Bár törekszünk a pontosságra, kérjük, vegye figyelembe, hogy az automatikus fordítás hibákat vagy pontatlanságokat tartalmazhat. Az eredeti dokumentum anyanyelvű változata tekintendő hiteles forrásnak. Kritikus információk esetén professzionális emberi fordítást javaslunk. Nem vállalunk felelősséget az ezen fordítás használatából eredő félreértésekért vagy hibás értelmezésekért. \ No newline at end of file diff --git a/translations/id/.co-op-translator.json b/translations/id/.co-op-translator.json index 8decf3a0c..1897cd7a8 100644 --- a/translations/id/.co-op-translator.json +++ b/translations/id/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "id" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:28:37+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:10:46+00:00", "source_file": "README.md", "language_code": "id" }, diff --git a/translations/id/README.md b/translations/id/README.md index a52aeeb38..1548dc036 100644 --- a/translations/id/README.md +++ b/translations/id/README.md @@ -1,23 +1,23 @@ -[![Lisensi GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![Kontributor GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) -[![Isu GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) -[![Pull request GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![PRs Dipersilakan](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![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) -[![Pengamat GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![Pecabangan GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) -[![Bintang GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) +[![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/) ### 🌐 Dukungan Multi-Bahasa #### Didukung melalui GitHub Action (Otomatis & Selalu Terbaru) -[Arab](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgaria](../bg/README.md) | [Burma (Myanmar)](../my/README.md) | [Cina (Sederhana)](../zh-CN/README.md) | [Cina (Tradisional, Hong Kong)](../zh-HK/README.md) | [Cina (Tradisional, Makau)](../zh-MO/README.md) | [Cina (Tradisional, Taiwan)](../zh-TW/README.md) | [Kroasia](../hr/README.md) | [Ceska](../cs/README.md) | [Denmark](../da/README.md) | [Belanda](../nl/README.md) | [Estonia](../et/README.md) | [Finlandia](../fi/README.md) | [Perancis](../fr/README.md) | [Jerman](../de/README.md) | [Yunani](../el/README.md) | [Ibrani](../he/README.md) | [Hindi](../hi/README.md) | [Hungaria](../hu/README.md) | [Indonesia](./README.md) | [Italia](../it/README.md) | [Jepang](../ja/README.md) | [Kannada](../kn/README.md) | [Korea](../ko/README.md) | [Lituania](../lt/README.md) | [Melayu](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Pidgin Nigeria](../pcm/README.md) | [Norwegia](../no/README.md) | [Persia (Farsi)](../fa/README.md) | [Polandia](../pl/README.md) | [Portugis (Brasil)](../pt-BR/README.md) | [Portugis (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumania](../ro/README.md) | [Rusia](../ru/README.md) | [Serbia (Sirilik)](../sr/README.md) | [Slowakia](../sk/README.md) | [Slovenia](../sl/README.md) | [Spanyol](../es/README.md) | [Swahili](../sw/README.md) | [Swedia](../sv/README.md) | [Tagalog (Filipina)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turki](../tr/README.md) | [Ukraina](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnam](../vi/README.md) +[Arab](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgaria](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Cina (Sederhana)](../zh-CN/README.md) | [Cina (Tradisional, Hong Kong)](../zh-HK/README.md) | [Cina (Tradisional, Macau)](../zh-MO/README.md) | [Cina (Tradisional, Taiwan)](../zh-TW/README.md) | [Kroasia](../hr/README.md) | [Ceko](../cs/README.md) | [Denmark](../da/README.md) | [Belanda](../nl/README.md) | [Estonia](../et/README.md) | [Finlandia](../fi/README.md) | [Prancis](../fr/README.md) | [Jerman](../de/README.md) | [Yunani](../el/README.md) | [Ibrani](../he/README.md) | [Hindi](../hi/README.md) | [Hungaria](../hu/README.md) | [Indonesia](./README.md) | [Italia](../it/README.md) | [Jepang](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korea](../ko/README.md) | [Lituania](../lt/README.md) | [Melayu](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Pidgin Nigeria](../pcm/README.md) | [Norwegia](../no/README.md) | [Persia (Farsi)](../fa/README.md) | [Polandia](../pl/README.md) | [Portugis (Brasil)](../pt-BR/README.md) | [Portugis (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumania](../ro/README.md) | [Rusia](../ru/README.md) | [Serbia (Sirilik)](../sr/README.md) | [Slovakia](../sk/README.md) | [Slovenia](../sl/README.md) | [Spanyol](../es/README.md) | [Swahili](../sw/README.md) | [Swedia](../sv/README.md) | [Tagalog (Filipina)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thailand](../th/README.md) | [Turki](../tr/README.md) | [Ukraina](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnam](../vi/README.md) -> **Lebih suka Mengkloning Secara Lokal?** +> **Lebih suka Clone Secara Lokal?** > -> Repositori ini mencakup lebih dari 50 terjemahan bahasa yang secara signifikan meningkatkan ukuran unduhan. Untuk mengkloning tanpa terjemahan, gunakan sparse checkout: +> Repositori ini berisi lebih dari 50 terjemahan bahasa yang secara signifikan meningkatkan ukuran unduhan. Untuk clone tanpa terjemahan, gunakan sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Ini memberi Anda semua yang Anda butuhkan untuk menyelesaikan kursus dengan unduhan yang jauh lebih cepat. +> Ini memberikan Anda semua yang diperlukan untuk menyelesaikan kursus dengan unduhan lebih cepat. #### Bergabung dengan Komunitas Kami [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Kami memiliki seri belajar Discord dengan AI yang sedang berjalan, pelajari lebih lanjut dan bergabunglah dengan kami di [Seri Belajar dengan AI](https://aka.ms/learnwithai/discord) dari 18 - 30 September 2025. Anda akan mendapatkan tips dan trik menggunakan GitHub Copilot untuk Ilmu Data. +Kami memiliki seri belajar Discord dengan AI yang sedang berlangsung, pelajari lebih lanjut dan bergabung dengan kami di [Learn with AI Series](https://aka.ms/learnwithai/discord) dari 18 - 30 September 2025. Anda akan mendapatkan tips dan trik menggunakan GitHub Copilot untuk Data Science. ![Seri Belajar dengan AI](../../translated_images/id/3.9b58fd8d6c373c20.webp) # Pembelajaran Mesin untuk Pemula - Kurikulum -> 🌍 Jelajahi seluruh dunia saat kita menjelajahi Pembelajaran Mesin melalui budaya dunia 🌍 +> 🌍 Berkeliling dunia saat kita menjelajahi Pembelajaran Mesin melalui budaya dunia 🌍 -Para Cloud Advocates di Microsoft senang menawarkan kurikulum 12 minggu dengan 26 pelajaran yang membahas **Pembelajaran Mesin**. Dalam kurikulum ini, Anda akan belajar tentang apa yang kadang disebut **pembelajaran mesin klasik**, menggunakan terutama Scikit-learn sebagai pustaka dan menghindari deep learning, yang dibahas dalam [kurikulum AI untuk Pemula](https://aka.ms/ai4beginners). Padukan pelajaran ini dengan ['Data Science untuk Pemula' kurikulum](https://aka.ms/ds4beginners), juga! +Cloud Advocates di Microsoft dengan senang hati menawarkan kurikulum 12 minggu dengan 26 pelajaran yang membahas tentang **Pembelajaran Mesin**. Dalam kurikulum ini, Anda akan belajar tentang apa yang kadang disebut sebagai **pembelajaran mesin klasik**, menggunakan terutama Scikit-learn sebagai perpustakaan dan menghindari pembelajaran mendalam, yang dibahas dalam [kurikulum AI untuk Pemula](https://aka.ms/ai4beginners) kami. Padukan pelajaran ini dengan kurikulum ['Data Science untuk Pemula'](https://aka.ms/ds4beginners) kami juga! -Jelajahi bersama kami ke seluruh dunia saat kami menerapkan teknik klasik ini ke data dari banyak wilayah di dunia. Setiap pelajaran mencakup kuis sebelum dan sesudah pelajaran, instruksi tertulis untuk menyelesaikan pelajaran, solusi, tugas, dan lainnya. Pedagogi berbasis proyek kami memungkinkan Anda belajar sambil membangun, cara yang telah terbukti membuat keterampilan baru 'melekat'. +Berkelilinglah bersama kami ke berbagai belahan dunia saat kami menerapkan teknik klasik ini pada data dari banyak area dunia. Setiap pelajaran mencakup kuis sebelum dan sesudah pelajaran, instruksi tertulis untuk menyelesaikan pelajaran, solusi, tugas, dan lainnya. Metode pembelajaran berbasis proyek kami memungkinkan Anda belajar sambil membangun, cara yang terbukti membuat keterampilan baru lebih melekat. -**✍️ Terima kasih sebesar-besarnya kepada para penulis kami** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu dan Amy Boyd +**✍️ Terima kasih hangat kepada para penulis kami** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu dan Amy Boyd **🎨 Terima kasih juga kepada ilustrator kami** Tomomi Imura, Dasani Madipalli, dan Jen Looper -**🙏 Terima kasih khusus 🙏 kepada para Microsoft Student Ambassador penulis, peninjau, dan kontributor konten**, terutama Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, dan Snigdha Agarwal +**🙏 Terima kasih khusus 🙏 kepada penulis, pemeriksa, dan kontributor konten Microsoft Student Ambassador kami**, terutama Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, dan Snigdha Agarwal -**🤩 Rasa terima kasih ekstra kepada Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, dan Vidushi Gupta untuk pelajaran R kami!** +**🤩 Terima kasih ekstra kepada Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, dan Vidushi Gupta untuk pelajaran R kami!** # Memulai -Ikuti langkah-langkah berikut: -1. **Fork Repositori**: Klik tombol "Fork" di sudut kanan atas halaman ini. -2. **Kloning Repositori**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +Ikuti langkah-langkah ini: +1. **Fork Repositori**: Klik tombol "Fork" di pojok kanan atas halaman ini. +2. **Clone Repositori**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [temukan semua sumber daya tambahan untuk kursus ini di koleksi Microsoft Learn kami](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [temukan semua sumber tambahan untuk kursus ini di koleksi Microsoft Learn kami](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Butuh bantuan?** Periksa [Panduan Pemecahan Masalah](TROUBLESHOOTING.md) kami untuk solusi atas masalah umum terkait instalasi, pengaturan, dan menjalankan pelajaran. +> 🔧 **Butuh bantuan?** Periksa [Panduan Pemecahan Masalah](TROUBLESHOOTING.md) kami untuk solusi masalah umum saat instalasi, penyiapan, dan menjalankan pelajaran. -**[Siswa](https://aka.ms/student-page)**, untuk menggunakan kurikulum ini, fork seluruh repo ke akun GitHub Anda sendiri dan selesaikan latihan sendiri atau dengan kelompok: +**[Pelajar](https://aka.ms/student-page)**, untuk menggunakan kurikulum ini, fork seluruh repo ke akun GitHub Anda sendiri dan selesaikan latihan sendiri atau secara berkelompok: -- Mulai dengan kuis pemanasan sebelum kuliah. -- Baca kuliah dan selesaikan aktivitas, berhenti dan refleksikan setiap cek pengetahuan. -- Cobalah membuat proyek dengan memahami pelajaran daripada menjalankan kode solusi; walau demikian kode tersedia di folder `/solution` pada setiap pelajaran berbasis proyek. -- Ikuti kuis sesudah kuliah. +- Mulailah dengan kuis pemanasan sebelum kuliah. +- Baca kuliah dan selesaikan aktivitas, berhenti dan renungkan setiap pemeriksaan pengetahuan. +- Cobalah buat proyek dengan memahami pelajaran daripada menjalankan kode solusi; namun kode tersebut tersedia dalam folder `/solution` di setiap pelajaran berbasis proyek. +- Ikuti kuis pascakuliah. - Selesaikan tantangan. - Selesaikan tugas. -- Setelah menyelesaikan satu kelompok pelajaran, kunjungi [Papan Diskusi](https://github.com/microsoft/ML-For-Beginners/discussions) dan "belajar secara terbuka" dengan mengisi rubrik PAT yang sesuai. 'PAT' adalah Alat Penilaian Kemajuan, rubric yang Anda isi untuk memperdalam pembelajaran. Anda juga bisa merespon PAT lain agar kita dapat belajar bersama. +- Setelah menyelesaikan satu kelompok pelajaran, kunjungi [Papan Diskusi](https://github.com/microsoft/ML-For-Beginners/discussions) dan "belajar dengan lantang" dengan mengisi rubrik PAT yang sesuai. 'PAT' adalah Alat Penilaian Kemajuan yang merupakan rubrik yang Anda isi untuk memperdalam pembelajaran Anda. Anda juga dapat bereaksi terhadap PAT lain agar kita belajar bersama. -> Untuk studi lebih lanjut, kami sarankan mengikuti modul dan jalur pembelajaran [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Untuk studi lebih lanjut, kami sarankan mengikuti modul dan jalur pembelajaran [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ini. -**Guru**, kami telah [menyediakan beberapa saran](for-teachers.md) tentang bagaimana menggunakan kurikulum ini. +**Para guru**, kami telah [menyediakan beberapa saran](for-teachers.md) tentang cara menggunakan kurikulum ini. --- -## Video panduan +## Video walkthrough -Beberapa pelajaran tersedia dalam bentuk video singkat. Anda dapat menemukan semua ini di dalam pelajaran, atau di [playlist ML untuk Pemula di saluran YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) dengan mengklik gambar di bawah ini. +Beberapa pelajaran tersedia dalam bentuk video singkat. Anda dapat menemukan semuanya di dalam pelajaran, atau di [daftar putar ML untuk Pemula di saluran Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) dengan mengklik gambar di bawah ini. [![Banner ML untuk pemula](../../translated_images/id/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -97,7 +97,7 @@ Beberapa pelajaran tersedia dalam bentuk video singkat. Anda dapat menemukan sem ## Kenali Tim -[![Video promosi](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Video Promo](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif oleh** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) @@ -107,64 +107,64 @@ Beberapa pelajaran tersedia dalam bentuk video singkat. Anda dapat menemukan sem ## Pedagogi -Kami memilih dua prinsip pedagogis saat membangun kurikulum ini: memastikan bahwa kurikulum bersifat praktis **berbasis proyek** dan mencakup **kuis yang sering**. Selain itu, kurikulum ini memiliki **tema** umum untuk memberikan kohesi. +Kami memilih dua prinsip pedagogis saat membangun kurikulum ini: memastikan bahwa kurikulum ini berbasis **proyek langsung** dan mencakup **kuis yang sering**. Selain itu, kurikulum ini memiliki **tema** yang sama untuk memberikan kesatuan. -Dengan memastikan konten selaras dengan proyek, proses pembelajaran menjadi lebih menarik bagi siswa dan penyerapan konsep akan meningkat. Selain itu, kuis berl stakes rendah sebelum kelas mengarahkan niat siswa untuk mempelajari topik, sementara kuis kedua setelah kelas menjamin penyerapan lebih lanjut. Kurikulum ini dirancang agar fleksibel dan menyenangkan serta dapat diambil secara keseluruhan atau sebagian. Proyek dimulai dari yang kecil dan menjadi semakin kompleks pada akhir siklus 12 minggu. Kurikulum ini juga mencakup catatan tambahan mengenai aplikasi nyata ML, yang bisa digunakan sebagai kredit tambahan atau dasar diskusi. +Dengan menjamin isi konten selaras dengan proyek, proses pembelajaran menjadi lebih menarik bagi siswa dan retensi konsep akan meningkat. Selain itu, kuis dengan tingkat kesulitan rendah sebelum kelas menetapkan niat siswa untuk mempelajari topik, sementara kuis kedua setelah kelas memastikan retensi lebih lanjut. Kurikulum ini dirancang agar fleksibel dan menyenangkan serta dapat diambil secara keseluruhan atau sebagian. Proyek dimulai dari yang kecil dan menjadi semakin kompleks di akhir siklus 12 minggu. Kurikulum ini juga mencakup posskrip mengenai aplikasi nyata ML, yang dapat digunakan sebagai kredit tambahan atau sebagai dasar diskusi. -> Temukan [Kode Etik](CODE_OF_CONDUCT.md), [Kontribusi](CONTRIBUTING.md), [Terjemahan](..), dan panduan [Pemecahan Masalah](TROUBLESHOOTING.md) kami. Kami menyambut umpan balik konstruktif Anda! +> Temukan [Kode Etik](CODE_OF_CONDUCT.md), [Kontribusi](CONTRIBUTING.md), [Terjemahan](..), dan panduan [Pemecahan Masalah](TROUBLESHOOTING.md) kami. Kami menyambut umpan balik membangun Anda! ## Setiap pelajaran mencakup - sketchnote opsional - video tambahan opsional -- video panduan (beberapa pelajaran saja) -- [kuis pemanasan pra kuliah](https://ff-quizzes.netlify.app/en/ml/) +- video walkthrough (hanya beberapa pelajaran) +- [kuis pemanasan sebelum kuliah](https://ff-quizzes.netlify.app/en/ml/) - pelajaran tertulis -- untuk pelajaran berbasis proyek, panduan langkah demi langkah cara membangun proyek -- cek pengetahuan -- tantangan +- untuk pelajaran berbasis proyek, panduan langkah-demi-langkah cara membangun proyek +- pemeriksaan pengetahuan +- sebuah tantangan - bacaan tambahan - tugas -- [kuis pasca kuliah](https://ff-quizzes.netlify.app/en/ml/) - -> **Catatan tentang bahasa**: Pelajaran ini terutama ditulis dengan Python, tetapi banyak juga tersedia dalam R. Untuk menyelesaikan pelajaran R, buka folder `/solution` dan cari pelajaran R. Mereka mencakup ekstensi .rmd yang merupakan file **R Markdown** yang dapat secara sederhana didefinisikan sebagai penggabungan `potongan kode` (dari R atau bahasa lain) dan sebuah `header YAML` (yang mengatur format output seperti PDF) dalam sebuah `dokumen Markdown`. Dengan demikian, ini berfungsi sebagai kerangka penulisan yang ideal untuk ilmu data karena memungkinkan Anda menggabungkan kode, keluaran, dan pemikiran Anda dengan menuliskannya dalam Markdown. Selain itu, dokumen R Markdown dapat dirender ke format output seperti PDF, HTML, atau Word. -> **Catatan tentang kuis**: Semua kuis terdapat dalam [folder Quiz App](../../quiz-app), dengan total 52 kuis masing-masing berisi tiga pertanyaan. Kuis-kuis tersebut ditautkan dari dalam pelajaran tetapi aplikasi kuis dapat dijalankan secara lokal; ikuti instruksi di folder `quiz-app` untuk meng-host atau menerapkan secara lokal ke Azure. - -| Nomor Pelajaran | Topik | Pengelompokan Pelajaran | Tujuan Pembelajaran | Pelajaran Tautan | Penulis | -| :-------------: | :------------------------------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Pengantar pembelajaran mesin | [Introduction](1-Introduction/README.md) | Pelajari konsep dasar di balik pembelajaran mesin | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Sejarah pembelajaran mesin | [Introduction](1-Introduction/README.md) | Pelajari sejarah yang mendasari bidang ini | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Keadilan dan pembelajaran mesin | [Introduction](1-Introduction/README.md) | Apa isu filosofis penting tentang keadilan yang harus dipertimbangkan siswa saat membangun dan menerapkan model ML? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Teknik-teknik untuk pembelajaran mesin | [Introduction](1-Introduction/README.md) | Teknik apa yang digunakan peneliti ML untuk membangun model ML? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Pengantar regresi | [Regression](2-Regression/README.md) | Mulai menggunakan Python dan Scikit-learn untuk model regresi | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Harga labu Amerika Utara 🎃 | [Regression](2-Regression/README.md) | Visualisasikan dan bersihkan data sebagai persiapan untuk ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Harga labu Amerika Utara 🎃 | [Regression](2-Regression/README.md) | Bangun model regresi linier dan polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | Harga labu Amerika Utara 🎃 | [Regression](2-Regression/README.md) | Bangun model regresi logistik | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Aplikasi Web 🔌 | [Web App](3-Web-App/README.md) | Bangun aplikasi web untuk menggunakan model yang sudah dilatih | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Pengantar klasifikasi | [Classification](4-Classification/README.md) | Bersihkan, persiapkan, dan visualisasikan data; pengantar klasifikasi | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | Masakan Asia dan India yang lezat 🍜 | [Classification](4-Classification/README.md) | Pengantar pengklasifikasi | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | Masakan Asia dan India yang lezat 🍜 | [Classification](4-Classification/README.md) | Lebih banyak pengklasifikasi | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | Masakan Asia dan India yang lezat 🍜 | [Classification](4-Classification/README.md) | Bangun aplikasi web rekomendasi menggunakan model Anda | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Pengantar pengelompokan | [Clustering](5-Clustering/README.md) | Bersihkan, persiapkan, dan visualisasikan data; pengantar pengelompokan | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Mengeksplorasi Selera Musik Nigeria 🎧 | [Clustering](5-Clustering/README.md) | Eksplorasi metode pengelompokan K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Pengantar pemrosesan bahasa alami ☕️ | [Natural language processing](6-NLP/README.md) | Pelajari dasar-dasar NLP dengan membangun bot sederhana | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Tugas Umum NLP ☕️ | [Natural language processing](6-NLP/README.md) | Mendalami pengetahuan NLP dengan memahami tugas-tugas umum yang diperlukan saat berhadapan dengan struktur bahasa | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Terjemahan dan analisis sentimen ♥️ | [Natural language processing](6-NLP/README.md) | Terjemahan dan analisis sentimen dengan Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hotel romantis di Eropa ♥️ | [Natural language processing](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hotel romantis di Eropa ♥️ | [Natural language processing](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Pengantar peramalan deret waktu | [Time series](7-TimeSeries/README.md) | Pengantar peramalan deret waktu | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Penggunaan Listrik Dunia ⚡️ - peramalan deret waktu dengan ARIMA | [Time series](7-TimeSeries/README.md) | Peramalan deret waktu dengan ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Penggunaan Listrik Dunia ⚡️ - peramalan deret waktu dengan SVR | [Time series](7-TimeSeries/README.md) | Peramalan deret waktu dengan Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Pengantar pembelajaran penguatan | [Reinforcement learning](8-Reinforcement/README.md) | Pengantar pembelajaran penguatan dengan Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Bantu Peter menghindari serigala! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Pembelajaran penguatan Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Catatan Akhir | Skenario dan aplikasi ML dunia nyata | [ML in the Wild](9-Real-World/README.md) | Aplikasi nyata menarik dan mengungkap dari ML klasik | [Lesson](9-Real-World/1-Applications/README.md) | Tim | -| Catatan Akhir | Debugging Model dalam ML menggunakan dashboard RAI | [ML in the Wild](9-Real-World/README.md) | Debugging Model dalam Pembelajaran Mesin menggunakan komponen dashboard Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [kuis pascakuliah](https://ff-quizzes.netlify.app/en/ml/) +> **Catatan tentang bahasa**: Pelajaran ini terutama ditulis dalam Python, tetapi banyak juga tersedia dalam R. Untuk menyelesaikan pelajaran R, buka folder `/solution` dan cari pelajaran R. Mereka menyertakan ekstensi .rmd yang mewakili file **R Markdown** yang dapat didefinisikan sederhana sebagai penyisipan `code chunks` (dari R atau bahasa lain) dan `YAML header` (yang memandu cara memformat output seperti PDF) dalam sebuah `Markdown document`. Dengan demikian, ini berfungsi sebagai kerangka kerja pembuatan contoh untuk data science karena memungkinkan Anda menggabungkan kode Anda, hasilnya, dan pemikiran Anda dengan menuliskannya dalam Markdown. Selain itu, dokumen R Markdown dapat dirender ke format output seperti PDF, HTML, atau Word. + +> **Catatan tentang kuis**: Semua kuis tersedia di [folder Quiz App](../../quiz-app), dengan total 52 kuis yang masing-masing memiliki tiga pertanyaan. Kuis-kuis ini terhubung dari dalam pelajaran tapi aplikasi kuis dapat dijalankan secara lokal; ikuti instruksi di folder `quiz-app` untuk menjalankan secara lokal atau menerbitkan ke Azure. + +| Nomor Pelajaran | Topik | Pengelompokan Pelajaran | Tujuan Pembelajaran | Pelajaran Terkait | Penulis | +| :-------------: | :----------------------------------------------------------: | :-------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | Pengantar machine learning | [Introduction](1-Introduction/README.md) | Pelajari konsep dasar di balik machine learning | [Pelajaran](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Sejarah machine learning | [Introduction](1-Introduction/README.md) | Pelajari sejarah yang mendasari bidang ini | [Pelajaran](1-Introduction/2-history-of-ML/README.md) | Jen dan Amy | +| 03 | Keadilan dan machine learning | [Introduction](1-Introduction/README.md) | Apa isu filosofis penting terkait keadilan yang harus dipertimbangkan siswa saat membangun dan menerapkan model ML? | [Pelajaran](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Teknik untuk machine learning | [Introduction](1-Introduction/README.md) | Teknik apa yang digunakan peneliti ML untuk membangun model ML? | [Pelajaran](1-Introduction/4-techniques-of-ML/README.md) | Chris dan Jen | +| 05 | Pengantar regresi | [Regression](2-Regression/README.md) | Mulai dengan Python dan Scikit-learn untuk model regresi | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Harga labu Amerika Utara 🎃 | [Regression](2-Regression/README.md) | Visualisasi dan pembersihan data sebagai persiapan untuk ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Harga labu Amerika Utara 🎃 | [Regression](2-Regression/README.md) | Bangun model regresi linear dan polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen dan Dmitry • Eric Wanjau | +| 08 | Harga labu Amerika Utara 🎃 | [Regression](2-Regression/README.md) | Bangun model regresi logistik | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Aplikasi Web 🔌 | [Web App](3-Web-App/README.md) | Bangun aplikasi web untuk menggunakan model yang sudah dilatih | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Pengantar klasifikasi | [Classification](4-Classification/README.md) | Bersihkan, persiapkan, dan visualisasikan data Anda; pengantar klasifikasi | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen dan Cassie • Eric Wanjau | +| 11 | Masakan Asia dan India yang Lezat 🍜 | [Classification](4-Classification/README.md) | Pengantar classifier | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen dan Cassie • Eric Wanjau | +| 12 | Masakan Asia dan India yang Lezat 🍜 | [Classification](4-Classification/README.md) | Lebih banyak classifier | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen dan Cassie • Eric Wanjau | +| 13 | Masakan Asia dan India yang Lezat 🍜 | [Classification](4-Classification/README.md) | Bangun aplikasi web rekomendasi menggunakan model Anda | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Pengantar pengelompokan | [Clustering](5-Clustering/README.md) | Bersihkan, persiapkan, dan visualisasikan data Anda; pengantar pengelompokan | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Menjelajahi Selera Musik Nigeria 🎧 | [Clustering](5-Clustering/README.md) | Jelajahi metode pengelompokan K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Pengantar pemrosesan bahasa alami ☕️ | [Natural language processing](6-NLP/README.md) | Pelajari dasar-dasar NLP dengan membangun bot sederhana | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Tugas NLP Umum ☕️ | [Natural language processing](6-NLP/README.md) | Perdalam pengetahuan NLP Anda dengan memahami tugas umum yang dibutuhkan saat berurusan dengan struktur bahasa | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Terjemahan dan analisis sentimen ♥️ | [Natural language processing](6-NLP/README.md) | Terjemahan dan analisis sentimen dengan Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hotel romantis di Eropa ♥️ | [Natural language processing](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hotel romantis di Eropa ♥️ | [Natural language processing](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Pengantar perkiraan deret waktu | [Time series](7-TimeSeries/README.md) | Pengantar perkiraan deret waktu | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Penggunaan Listrik Dunia ⚡️ - perkiraan deret waktu dengan ARIMA | [Time series](7-TimeSeries/README.md) | Perkiraan deret waktu dengan ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Penggunaan Listrik Dunia ⚡️ - perkiraan deret waktu dengan SVR | [Time series](7-TimeSeries/README.md) | Perkiraan deret waktu dengan Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Pengantar pembelajaran penguatan | [Reinforcement learning](8-Reinforcement/README.md) | Pengantar pembelajaran penguatan dengan Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Bantu Peter menghindari serigala! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym pembelajaran penguatan | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Skenario dan aplikasi ML di dunia nyata | [ML in the Wild](9-Real-World/README.md) | Aplikasi dunia nyata yang menarik dan mengungkap penggunaan ML klasik | [Pelajaran](9-Real-World/1-Applications/README.md) | Team | +| Postscript | Debugging Model di ML menggunakan dashboard RAI | [ML in the Wild](9-Real-World/README.md) | Debugging Model di Machine Learning menggunakan komponen dashboard Responsible AI | [Pelajaran](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [temukan semua sumber tambahan untuk kursus ini dalam koleksi Microsoft Learn kami](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Akses offline -Anda dapat menjalankan dokumentasi ini secara offline dengan menggunakan [Docsify](https://docsify.js.org/#/). Fork repositori ini, [pasang Docsify](https://docsify.js.org/#/quickstart) di mesin lokal Anda, lalu di folder root repositori ini, ketik `docsify serve`. Website akan dihidangkan di port 3000 pada localhost Anda: `localhost:3000`. +Anda dapat menjalankan dokumentasi ini secara offline dengan menggunakan [Docsify](https://docsify.js.org/#/). Fork repo ini, [pasang Docsify](https://docsify.js.org/#/quickstart) di mesin lokal Anda, lalu di folder root repo ini, ketik `docsify serve`. Situs web akan disajikan pada port 3000 di localhost Anda: `localhost:3000`. ## PDF @@ -173,34 +173,34 @@ Temukan pdf kurikulum dengan tautan [di sini](https://microsoft.github.io/ML-For ## 🎒 Kursus Lainnya -Tim kami juga memproduksi kursus lainnya! Lihat: +Tim kami memproduksi kursus lain! Cek: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j untuk Pemula](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js untuk Pemula](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain untuk Pemula](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agen -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agents +[![AZD untuk Pemula](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI untuk Pemula](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP untuk Pemula](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Agen AI untuk Pemula](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Seri AI Generatif -[![Generative AI untuk Pemula](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![AI Generatif untuk Pemula](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Generatif (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![AI Generatif (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![AI Generatif (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Pembelajaran Inti -[![Pembelajaran Mesin untuk Pemula](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Ilmu Data untuk Pemula](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![ML untuk Pemula](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science untuk Pemula](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI untuk Pemula](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![Keamanan Siber untuk Pemula](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![Pengembangan Web untuk Pemula](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) @@ -217,22 +217,22 @@ Tim kami juga memproduksi kursus lainnya! Lihat: ## Mendapatkan Bantuan -Jika Anda mengalami kesulitan atau memiliki pertanyaan tentang membangun aplikasi AI. Bergabunglah dengan sesama pelajar dan pengembang berpengalaman dalam diskusi tentang MCP. Ini adalah komunitas yang mendukung di mana pertanyaan disambut dan pengetahuan dibagikan secara bebas. +Jika Anda mengalami kesulitan atau memiliki pertanyaan tentang membangun aplikasi AI. Bergabunglah dengan sesama pelajar dan pengembang berpengalaman dalam diskusi tentang MCP. Ini adalah komunitas yang mendukung di mana pertanyaan diterima dan pengetahuan dibagikan dengan bebas. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Jika Anda memiliki umpan balik produk atau menemukan kesalahan saat membangun kunjungi: +Jika Anda memiliki umpan balik produk atau menemukan kesalahan saat membangun, kunjungi: -[![Forum Pengembang Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Tips Pembelajaran Tambahan -- Tinjau catatan setelah setiap pelajaran untuk pemahaman yang lebih baik. -- Latih penerapan algoritma secara mandiri. -- Jelajahi kumpulan data dunia nyata menggunakan konsep yang dipelajari. +- Tinjau notebook setelah setiap pelajaran untuk pemahaman yang lebih baik. +- Latih menerapkan algoritma sendiri. +- Jelajahi dataset dunia nyata menggunakan konsep yang telah dipelajari. --- -**Penafian**: -Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk akurasi, harap diperhatikan bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi yang penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau salah tafsir yang timbul dari penggunaan terjemahan ini. +**Penafian**: +Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Meskipun kami berusaha untuk akurasi, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang otoritatif. Untuk informasi penting, disarankan menggunakan layanan terjemahan manusia profesional. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang salah yang timbul dari penggunaan terjemahan ini. \ No newline at end of file diff --git a/translations/it/.co-op-translator.json b/translations/it/.co-op-translator.json index 17c55d488..9fdef6f46 100644 --- a/translations/it/.co-op-translator.json +++ b/translations/it/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "it" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:36:16+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:41:46+00:00", "source_file": "README.md", "language_code": "it" }, diff --git a/translations/it/README.md b/translations/it/README.md index 74d0da736..1cad6f33f 100644 --- a/translations/it/README.md +++ b/translations/it/README.md @@ -1,6 +1,6 @@ [![Licenza GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![Contributori GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) -[![Issue GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![Collaboratori GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![Issue di GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![Richieste di pull GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) [![PRs Benvenuti](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) @@ -8,16 +8,16 @@ [![Fork GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) [![Stelle GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) -### 🌐 Supporto Multilingue +### 🌐 Supporto multi-lingua -#### Supportato tramite GitHub Action (Automatizzato & Sempre Aggiornato) +#### Supportato tramite GitHub Action (Automatizzato e sempre aggiornato) -[Arabo](../ar/README.md) | [Bengalese](../bn/README.md) | [Bulgaro](../bg/README.md) | [Birmano (Myanmar)](../my/README.md) | [Cinese (Semplificato)](../zh-CN/README.md) | [Cinese (Tradizionale, Hong Kong)](../zh-HK/README.md) | [Cinese (Tradizionale, Macao)](../zh-MO/README.md) | [Cinese (Tradizionale, Taiwan)](../zh-TW/README.md) | [Croato](../hr/README.md) | [Ceco](../cs/README.md) | [Danese](../da/README.md) | [Olandese](../nl/README.md) | [Estone](../et/README.md) | [Finlandese](../fi/README.md) | [Francese](../fr/README.md) | [Tedesco](../de/README.md) | [Greco](../el/README.md) | [Ebraico](../he/README.md) | [Hindi](../hi/README.md) | [Ungherese](../hu/README.md) | [Indonesiano](../id/README.md) | [Italiano](./README.md) | [Giapponese](../ja/README.md) | [Kannada](../kn/README.md) | [Coreano](../ko/README.md) | [Lituano](../lt/README.md) | [Malese](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalese](../ne/README.md) | [Pidgin Nigeriano](../pcm/README.md) | [Norvegese](../no/README.md) | [Persiano (Farsi)](../fa/README.md) | [Polacco](../pl/README.md) | [Portoghese (Brasile)](../pt-BR/README.md) | [Portoghese (Portogallo)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumeno](../ro/README.md) | [Russo](../ru/README.md) | [Serbo (Cirillico)](../sr/README.md) | [Slovacco](../sk/README.md) | [Sloveno](../sl/README.md) | [Spagnolo](../es/README.md) | [Swahili](../sw/README.md) | [Svedese](../sv/README.md) | [Tagalog (Filippino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Tailandese](../th/README.md) | [Turco](../tr/README.md) | [Ucraino](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamita](../vi/README.md) +[Arabo](../ar/README.md) | [Bengalese](../bn/README.md) | [Bulgaro](../bg/README.md) | [Birmano (Myanmar)](../my/README.md) | [Cinese (Semplificato)](../zh-CN/README.md) | [Cinese (Tradizionale, Hong Kong)](../zh-HK/README.md) | [Cinese (Tradizionale, Macao)](../zh-MO/README.md) | [Cinese (Tradizionale, Taiwan)](../zh-TW/README.md) | [Croato](../hr/README.md) | [Ceco](../cs/README.md) | [Danese](../da/README.md) | [Olandese](../nl/README.md) | [Estone](../et/README.md) | [Finlandese](../fi/README.md) | [Francese](../fr/README.md) | [Tedesco](../de/README.md) | [Greco](../el/README.md) | [Ebraico](../he/README.md) | [Hindi](../hi/README.md) | [Ungherese](../hu/README.md) | [Indonesiano](../id/README.md) | [Italiano](./README.md) | [Giapponese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Coreano](../ko/README.md) | [Lituano](../lt/README.md) | [Malese](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalese](../ne/README.md) | [Pidgin Nigeriano](../pcm/README.md) | [Norvegese](../no/README.md) | [Persiano (Farsi)](../fa/README.md) | [Polacco](../pl/README.md) | [Portoghese (Brasile)](../pt-BR/README.md) | [Portoghese (Portogallo)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumeno](../ro/README.md) | [Russo](../ru/README.md) | [Serbo (Cirillico)](../sr/README.md) | [Slovacco](../sk/README.md) | [Sloveno](../sl/README.md) | [Spagnolo](../es/README.md) | [Swahili](../sw/README.md) | [Svedese](../sv/README.md) | [Tagalog (Filippino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Tailandese](../th/README.md) | [Turco](../tr/README.md) | [Ucraino](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamita](../vi/README.md) -> **Preferisci Clonare Localmente?** +> **Preferisci clonare localmente?** > -> Questo repository include oltre 50 traduzioni che aumentano significativamente la dimensione del download. Per clonare senza traduzioni, usa il sparse checkout: +> Questo repository include più di 50 traduzioni linguistico che aumentano significativamente la dimensione del download. Per clonare senza traduzioni, usa sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,189 +33,188 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Questo ti fornirà tutto il necessario per completare il corso con un download molto più veloce. +> Questo ti fornisce tutto il necessario per completare il corso con un download molto più veloce. -#### Unisciti alla nostra Comunità +#### Unisciti alla nostra comunità [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Abbiamo una serie Discord "learn with AI" in corso, per saperne di più e unirti visita [Learn with AI Series](https://aka.ms/learnwithai/discord) dal 18 al 30 settembre 2025. Riceverai suggerimenti e trucchi per utilizzare GitHub Copilot per Data Science. +Abbiamo una serie Discord “Learn with AI” in corso, scopri di più e unisciti a noi su [Learn with AI Series](https://aka.ms/learnwithai/discord) dal 18 al 30 settembre 2025. Riceverai suggerimenti e trucchi per usare GitHub Copilot per Data Science. ![Serie Learn with AI](../../translated_images/it/3.9b58fd8d6c373c20.webp) # Machine Learning per Principianti - Un Curriculum -> 🌍 Viaggia nel mondo mentre esploriamo il Machine Learning attraverso le culture mondiali 🌍 +> 🌍 Viaggia per il mondo mentre esploriamo il Machine Learning attraverso le culture mondiali 🌍 -Gli Cloud Advocates di Microsoft sono lieti di offrire un curriculum di 12 settimane, 26 lezioni, tutto incentrato sul **Machine Learning**. In questo curriculum, imparerai quello che a volte viene chiamato **machine learning classico**, usando principalmente Scikit-learn come libreria ed evitando il deep learning, che è invece trattato nel nostro [curriculum AI per Principianti](https://aka.ms/ai4beginners). Abbina queste lezioni al nostro ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners), inoltre! +Gli Cloud Advocates di Microsoft sono lieti di offrire un curriculum di 12 settimane con 26 lezioni tutto sul **Machine Learning**. In questo curriculum, imparerai cos'è quello che a volte viene chiamato **machine learning classico**, utilizzando principalmente Scikit-learn come libreria ed evitando il deep learning, che è trattato nel nostro [curriculum AI for Beginners](https://aka.ms/ai4beginners). Abbina queste lezioni al nostro ['Data Science for Beginners curriculum'](https://aka.ms/ds4beginners), inoltre! -Viaggia con noi nel mondo mentre applichiamo queste tecniche classiche a dati di varie parti del mondo. Ogni lezione include quiz prima e dopo, istruzioni scritte per completare la lezione, una soluzione, un compito e altro ancora. La nostra pedagogia basata su progetti ti permette di imparare costruendo, un modo comprovato perché nuove competenze si fissino. +Viaggia con noi in tutto il mondo mentre applichiamo queste tecniche classiche ai dati provenienti da diverse aree del mondo. Ogni lezione include quiz pre e post-lezione, istruzioni scritte per completare la lezione, una soluzione, un compito e altro. La nostra pedagogia basata su progetti ti permette di imparare costruendo, un metodo già collaudato perché le nuove competenze permangano. -**✍️ Grazie di cuore ai nostri autori** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu e Amy Boyd +**✍️ Sentiti ringraziamenti ai nostri autori** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu e Amy Boyd -**🎨 Grazie anche ai nostri illustratori** Tomomi Imura, Dasani Madipalli, e Jen Looper +**🎨 Grazie anche ai nostri illustratori** Tomomi Imura, Dasani Madipalli e Jen Looper -**🙏 Un grazie speciale 🙏 ai nostri Microsoft Student Ambassador autori, revisori e contributori di contenuto**, in particolare Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila e Snigdha Agarwal +**🙏 Un ringraziamento speciale 🙏 ai nostri Microsoft Student Ambassador autori, revisori e collaboratori di contenuti**, in particolare Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila e Snigdha Agarwal -**🤩 Ulteriore gratitudine ai Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi e Vidushi Gupta per le nostre lezioni in R!** +**🤩 Gratitudine extra agli Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi e Vidushi Gupta per le nostre lezioni di R!** # Iniziare Segui questi passaggi: -1. **Fork del Repository**: Clicca sul pulsante "Fork" in alto a destra in questa pagina. -2. **Clona il Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Fork del repository**: Fai clic sul pulsante "Fork" nell’angolo in alto a destra di questa pagina. +2. **Clona il repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [trova tutte le risorse aggiuntive per questo corso nella nostra collezione Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [trova tutte le risorse aggiuntive per questo corso nella nostra raccolta Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Hai bisogno di aiuto?** Dai un’occhiata alla nostra [Guida alla Risoluzione dei Problemi](TROUBLESHOOTING.md) per soluzioni comuni a problemi di installazione, configurazione e esecuzione delle lezioni. +> 🔧 **Hai bisogno di aiuto?** Consulta la nostra [Guida alla risoluzione dei problemi](TROUBLESHOOTING.md) per soluzioni ai problemi comuni con l’installazione, la configurazione e l’esecuzione delle lezioni. -**[Studenti](https://aka.ms/student-page)**, per usare questo curriculum, forkate l’intero repo nel vostro account GitHub e completate gli esercizi da soli o in gruppo: +**[Studenti](https://aka.ms/student-page)**, per usare questo curriculum, fai il fork dell’intero repository sul tuo account GitHub e completa gli esercizi da solo o in gruppo: -- Iniziate con un quiz pre-lezione. -- Leggete la lezione e completate le attività, fermandovi a riflettere a ogni verifica di conoscenza. -- Provate a costruire i progetti comprendendo le lezioni invece di eseguire direttamente il codice soluzione; tuttavia quel codice è disponibile nelle cartelle `/solution` di ogni lezione orientata al progetto. -- Fate il quiz post-lezione. -- Completate la sfida. -- Completate il compito. -- Dopo aver completato un gruppo di lezioni, visitate il [Forum di Discussione](https://github.com/microsoft/ML-For-Beginners/discussions) e "imparate ad alta voce" compilando l’apposita rubrica PAT. Un 'PAT' è uno strumento di valutazione dei progressi, una rubrica che compilate per approfondire l’apprendimento. Potete anche reagire ad altri PAT per imparare insieme. +- Inizia con un quiz pre-lezione. +- Leggi la lezione e completa le attività, facendo pause e riflettendo a ogni verifica di conoscenza. +- Prova a realizzare i progetti comprendendo le lezioni piuttosto che eseguendo direttamente il codice di soluzione; comunque quel codice è disponibile nelle cartelle `/solution` di ogni lezione basata su progetto. +- Fai il quiz post-lezione. +- Completa la sfida. +- Completa il compito. +- Dopo aver completato un gruppo di lezioni, visita il [Forum di discussione](https://github.com/microsoft/ML-For-Beginners/discussions) e “impara ad alta voce” compilando la rubrica PAT appropriata. Un 'PAT' è uno strumento di valutazione dei progressi che consiste in una rubrica da compilare per approfondire l’apprendimento. Puoi anche reagire ad altri PAT così da imparare insieme. -> Per approfondire, consigliamo di seguire questi moduli e percorsi di apprendimento su [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Per uno studio ulteriore, consigliamo di seguire questi moduli e percorsi di apprendimento di [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Insegnanti**, abbiamo [incluso alcuni suggerimenti](for-teachers.md) su come usare questo curriculum. +**Insegnanti**, abbiamo [incluso alcune indicazioni](for-teachers.md) su come usare questo curriculum. --- ## Video esplicativi -Alcune lezioni sono disponibili in video brevi. Puoi trovarli integrati nelle lezioni oppure nella [playlist ML for Beginners sul canale YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) cliccando sull’immagine qui sotto. +Alcune lezioni sono disponibili come video brevi. Puoi trovarli tutti all’interno delle lezioni o sulla [playlist ML for Beginners del canale Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) cliccando l’immagine sottostante. -[![Banner ML for beginners](../../translated_images/it/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![Banner ML per principianti](../../translated_images/it/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Incontra il Team +## Incontra il team [![Video promozionale](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif di** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Clicca l’immagine sopra per un video sul progetto e sulle persone che lo hanno creato! +> 🎥 Clicca sull’immagine sopra per un video sul progetto e sulle persone che lo hanno creato! --- ## Pedagogia -Abbiamo scelto due principi pedagogici durante la realizzazione di questo curriculum: assicurarci che sia pratico e **basato su progetti** e che includa **quiz frequenti**. Inoltre, il curriculum ha un **tema** comune per garantirne la coesione. +Abbiamo scelto due principi pedagogici nella creazione di questo curriculum: garantire che sia pratico e **basato su progetti** e che includa **quiz frequenti**. Inoltre, questo curriculum ha un **tema** comune per conferirgli coesione. -Garantendo che i contenuti si allineino ai progetti, il processo diventa più coinvolgente per gli studenti e la memorizzazione dei concetti sarà migliorata. Inoltre, un quiz a bassa posta prima di una lezione prepara l’intenzione dello studente sull’apprendimento di un argomento, mentre un secondo quiz dopo la lezione assicura una maggiore ritenzione. Questo curriculum è stato progettato per essere flessibile e divertente e può essere seguito interamente o in parte. I progetti iniziano piccoli e diventano progressivamente più complessi alla fine del ciclo di 12 settimane. Include anche un post scriptum sulle applicazioni reali del ML, che può essere usato come credito extra o come base per discussioni. +Garantendo che il contenuto sia allineato con i progetti, il processo diventa più coinvolgente per gli studenti e la ritenzione dei concetti sarà migliorata. Inoltre, un quiz a bassa posta in gioco prima di una lezione indirizza lo studente verso l’apprendimento di un argomento, mentre un secondo quiz dopo la lezione assicura una maggiore ritenzione. Questo curriculum è stato progettato per essere flessibile e divertente e può essere seguito interamente o parzialmente. I progetti iniziano semplici e diventano progressivamente più complessi entro la fine del ciclo di 12 settimane. Questo curriculum include anche un post scriptum sulle applicazioni reali del ML, che può essere usato come credito extra o come base per una discussione. -> Trova il nostro [Codice di Condotta](CODE_OF_CONDUCT.md), [Contributi](CONTRIBUTING.md), [Traduzioni](..) e linee guida su [Come Risolvere i Problemi](TROUBLESHOOTING.md). Accogliamo con favore i tuoi feedback costruttivi! +> Trova il nostro [Codice di Condotta](CODE_OF_CONDUCT.md), le linee guida per [Contribuire](CONTRIBUTING.md), [Traduzioni](..) e [Risoluzione Problemi](TROUBLESHOOTING.md). Accogliamo con piacere i tuoi feedback costruttivi! ## Ogni lezione include - sketchnote opzionale - video supplementare opzionale - video esplicativo (solo alcune lezioni) -- [quiz warmup pre-lezione](https://ff-quizzes.netlify.app/en/ml/) +- [quiz di riscaldamento pre-lezione](https://ff-quizzes.netlify.app/en/ml/) - lezione scritta -- per le lezioni basate su progetti, guide passo-passo su come costruire il progetto +- per lezioni basate su progetti, guide passo passo su come costruire il progetto - verifiche di conoscenza - una sfida -- letture supplementari +- lettura supplementare - compito - [quiz post-lezione](https://ff-quizzes.netlify.app/en/ml/) +> **Una nota sulle lingue**: Queste lezioni sono principalmente scritte in Python, ma molte sono anche disponibili in R. Per completare una lezione in R, vai nella cartella `/solution` e cerca le lezioni in R. Includono un’estensione .rmd che rappresenta un file **R Markdown**, definibile semplicemente come un’inclusione di `code chunks` (di R o altre lingue) e un `YAML header` (che guida il formato degli output come PDF) in un `documento Markdown`. Come tale, serve come un eccellente framework per la scrittura per la data science in quanto ti permette di combinare il tuo codice, il suo output e i tuoi pensieri scrivendoli in Markdown. Inoltre, i documenti R Markdown possono essere resi in formati di output come PDF, HTML o Word. + +> **Una nota sui quiz**: Tutti i quiz sono contenuti nella cartella [Quiz App folder](../../quiz-app), per un totale di 52 quiz composti da tre domande ciascuno. Sono collegati all’interno delle lezioni, ma l’app del quiz può essere eseguita localmente; segui le istruzioni nella cartella `quiz-app` per ospitare localmente o distribuire su Azure. + +| Numero Lezione | Argomento | Raggruppamento Lezione | Obiettivi di Apprendimento | Lezione Collegata | Autore | +| :------------: | :--------------------------------------------------------------: | :--------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------: | +| 01 | Introduzione al machine learning | [Introduzione](1-Introduction/README.md) | Impara i concetti base dietro al machine learning | [Lezione](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | La storia del machine learning | [Introduzione](1-Introduction/README.md) | Impara la storia alla base di questo campo | [Lezione](1-Introduction/2-history-of-ML/README.md) | Jen e Amy | +| 03 | Equità e machine learning | [Introduzione](1-Introduction/README.md) | Quali sono le importanti questioni filosofiche sull’equità che gli studenti dovrebbero considerare quando costruiscono e applicano modelli ML? | [Lezione](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Tecniche per il machine learning | [Introduzione](1-Introduction/README.md) | Quali tecniche usano i ricercatori ML per costruire modelli ML? | [Lezione](1-Introduction/4-techniques-of-ML/README.md) | Chris e Jen | +| 05 | Introduzione alla regressione | [Regressione](2-Regression/README.md) | Inizia con Python e Scikit-learn per modelli di regressione | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Prezzi delle zucche del Nord America 🎃 | [Regressione](2-Regression/README.md) | Visualizza e pulisci dati in preparazione per ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Prezzi delle zucche del Nord America 🎃 | [Regressione](2-Regression/README.md) | Costruisci modelli di regressione lineare e polinomiale | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen e Dmitry • Eric Wanjau | +| 08 | Prezzi delle zucche del Nord America 🎃 | [Regressione](2-Regression/README.md) | Costruisci un modello di regressione logistica | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Un'app Web 🔌 | [Web App](3-Web-App/README.md) | Costruisci un’app web per utilizzare il modello addestrato | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introduzione alla classificazione | [Classificazione](4-Classification/README.md) | Pulisci, prepara e visualizza i dati; introduzione alla classificazione | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen e Cassie • Eric Wanjau | +| 11 | Deliziose cucine asiatiche e indiane 🍜 | [Classificazione](4-Classification/README.md) | Introduzione ai classificatori | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen e Cassie • Eric Wanjau | +| 12 | Deliziose cucine asiatiche e indiane 🍜 | [Classificazione](4-Classification/README.md) | Altri classificatori | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen e Cassie • Eric Wanjau | +| 13 | Deliziose cucine asiatiche e indiane 🍜 | [Classificazione](4-Classification/README.md) | Costruisci un’app web recommender usando il tuo modello | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introduzione al clustering | [Clustering](5-Clustering/README.md) | Pulisci, prepara e visualizza i dati; introduzione al clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Esplorando i gusti musicali nigeriani 🎧 | [Clustering](5-Clustering/README.md) | Esplora il metodo di clustering K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introduzione al natural language processing ☕️ | [Elaborazione del linguaggio naturale](6-NLP/README.md) | Impara le basi del NLP costruendo un semplice bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Compiti comuni di NLP ☕️ | [Elaborazione del linguaggio naturale](6-NLP/README.md) | Approfondisci la conoscenza del NLP comprendendo i compiti comuni richiesti quando si tratta di strutture linguistiche | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Traduzione e analisi del sentiment ♥️ | [Elaborazione del linguaggio naturale](6-NLP/README.md) | Traduzione e analisi del sentiment con Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hotel romantici in Europa ♥️ | [Elaborazione del linguaggio naturale](6-NLP/README.md) | Analisi del sentiment con recensioni di hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hotel romantici in Europa ♥️ | [Elaborazione del linguaggio naturale](6-NLP/README.md) | Analisi del sentiment con recensioni di hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introduzione alle previsioni su serie temporali | [Serie temporali](7-TimeSeries/README.md) | Introduzione alla previsione di serie temporali | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Consumo energetico mondiale ⚡️ - previsione serie temporali con ARIMA | [Serie temporali](7-TimeSeries/README.md) | Previsione su serie temporali con ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Consumo energetico mondiale ⚡️ - previsione serie temporali con SVR | [Serie temporali](7-TimeSeries/README.md) | Previsione su serie temporali con Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introduzione al reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduzione al reinforcement learning con Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Aiuta Peter a evitare il lupo! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postfazione | Scenari e applicazioni reali del ML | [ML in the Wild](9-Real-World/README.md) | Interessanti e rivelatrici applicazioni reali del ML classico | [Lezione](9-Real-World/1-Applications/README.md) | Team | +| Postfazione | Debugging di modelli ML con dashboard RAI | [ML in the Wild](9-Real-World/README.md) | Debugging di modelli ML usando componenti dashboard di Responsible AI | [Lezione](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | -> **Una nota sulle lingue**: Queste lezioni sono principalmente scritte in Python, ma molte sono anche disponibili in R. Per completare una lezione in R, vai nella cartella `/solution` e cerca le lezioni in R. Includono un’estensione .rmd che rappresenta un file **R Markdown**, definibile come un incapsulamento di `code chunks` (di R o altri linguaggi) e un `header YAML` (che guida come formattare output come PDF) in un `documento Markdown`. Pertanto, rappresenta un framework esemplare per l’autore di data science in quanto consente di combinare codice, output e pensieri scrivendoli in Markdown. Inoltre, i documenti R Markdown possono essere renderizzati in formati di output quali PDF, HTML o Word. -> **Una nota sui quiz**: Tutti i quiz sono contenuti nella [cartella Quiz App](../../quiz-app), per un totale di 52 quiz di tre domande ciascuno. Sono collegati all'interno delle lezioni ma l'app per i quiz può essere eseguita localmente; segui le istruzioni nella cartella `quiz-app` per ospitare localmente o distribuire su Azure. - -| Numero Lezione | Argomento | Raggruppamento Lezione | Obiettivi di Apprendimento | Lezione Collegata | Autore | -| :------------: | :--------------------------------------------------------------: | :---------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | -| 01 | Introduzione al machine learning | [Introduzione](1-Introduction/README.md) | Imparare i concetti base dietro il machine learning | [Lezione](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | La Storia del machine learning | [Introduzione](1-Introduction/README.md) | Imparare la storia alla base di questo campo | [Lezione](1-Introduction/2-history-of-ML/README.md) | Jen e Amy | -| 03 | Equità e machine learning | [Introduzione](1-Introduction/README.md) | Quali sono le importanti questioni filosofiche sull'equità che gli studenti dovrebbero considerare costruendo e applicando modelli ML? | [Lezione](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Tecniche per il machine learning | [Introduzione](1-Introduction/README.md) | Quali tecniche usano i ricercatori di ML per costruire modelli di ML? | [Lezione](1-Introduction/4-techniques-of-ML/README.md) | Chris e Jen | -| 05 | Introduzione alla regressione | [Regressione](2-Regression/README.md) | Iniziare con Python e Scikit-learn per modelli di regressione | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Prezzi della zucca in Nord America 🎃 | [Regressione](2-Regression/README.md) | Visualizzare e pulire dati in preparazione al ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Prezzi della zucca in Nord America 🎃 | [Regressione](2-Regression/README.md) | Costruire modelli di regressione lineare e polinomiale | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen e Dmitry • Eric Wanjau | -| 08 | Prezzi della zucca in Nord America 🎃 | [Regressione](2-Regression/README.md) | Costruire un modello di regressione logistica | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Un'app Web 🔌 | [Web App](3-Web-App/README.md) | Costruire un'app web per usare il modello addestrato | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introduzione alla classificazione | [Classificazione](4-Classification/README.md) | Pulire, preparare e visualizzare i dati; introduzione alla classificazione | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen e Cassie • Eric Wanjau | -| 11 | Deliziose cucine asiatiche e indiane 🍜 | [Classificazione](4-Classification/README.md) | Introduzione ai classificatori | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen e Cassie • Eric Wanjau | -| 12 | Deliziose cucine asiatiche e indiane 🍜 | [Classificazione](4-Classification/README.md) | Altri classificatori | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen e Cassie • Eric Wanjau | -| 13 | Deliziose cucine asiatiche e indiane 🍜 | [Classificazione](4-Classification/README.md) | Costruire un'app web di raccomandazione usando il tuo modello | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introduzione al clustering | [Clustering](5-Clustering/README.md) | Pulire, preparare e visualizzare i dati; introduzione al clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Esplorazione dei gusti musicali nigeriani 🎧 | [Clustering](5-Clustering/README.md) | Esplorare il metodo di clustering K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introduzione all'elaborazione del linguaggio naturale ☕️ | [Elaborazione linguaggio naturale](6-NLP/README.md) | Imparare le basi dell'NLP costruendo un semplice bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Compiti comuni di NLP ☕️ | [Elaborazione linguaggio naturale](6-NLP/README.md) | Approfondire la conoscenza NLP comprendendo i compiti comuni richiesti nella gestione delle strutture linguistiche | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Traduzione e analisi del sentimento ♥️ | [Elaborazione linguaggio naturale](6-NLP/README.md) | Traduzione e analisi del sentimento con Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hotel romantici d'Europa ♥️ | [Elaborazione linguaggio naturale](6-NLP/README.md) | Analisi del sentimento con recensioni di hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hotel romantici d'Europa ♥️ | [Elaborazione linguaggio naturale](6-NLP/README.md) | Analisi del sentimento con recensioni di hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introduzione alle previsioni di serie temporali | [Serie temporali](7-TimeSeries/README.md) | Introduzione alle previsioni di serie temporali | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Consumo energetico mondiale ⚡️ - previsioni con ARIMA | [Serie temporali](7-TimeSeries/README.md) | Previsioni di serie temporali con ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Consumo energetico mondiale ⚡️ - previsioni con SVR | [Serie temporali](7-TimeSeries/README.md) | Previsioni di serie temporali con Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introduzione all'apprendimento per rinforzo | [Apprendimento per rinforzo](8-Reinforcement/README.md) | Introduzione all'apprendimento per rinforzo con Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Aiuta Peter a evitare il lupo! 🐺 | [Apprendimento per rinforzo](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Casi d'uso e applicazioni reali dell'ML | [ML nel mondo reale](9-Real-World/README.md) | Applicazioni interessanti e rivelatrici nel mondo reale del ML classico | [Lezione](9-Real-World/1-Applications/README.md) | Team | -| Postscript | Debug del modello in ML usando la dashboard RAI | [ML nel mondo reale](9-Real-World/README.md) | Debug del modello in Machine Learning usando i componenti della dashboard Responsible AI | [Lezione](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [trova tutte le risorse aggiuntive per questo corso nella nostra raccolta Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [trova tutte le risorse aggiuntive per questo corso nella nostra collezione Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Accesso offline -Puoi eseguire questa documentazione offline usando [Docsify](https://docsify.js.org/#/). Fai il fork di questo repository, [installa Docsify](https://docsify.js.org/#/quickstart) sulla tua macchina locale, poi nella cartella radice di questo repo digita `docsify serve`. Il sito sarà servito sulla porta 3000 sul tuo localhost: `localhost:3000`. +Puoi eseguire questa documentazione offline usando [Docsify](https://docsify.js.org/#/). Fai un fork di questo repo, [installa Docsify](https://docsify.js.org/#/quickstart) sulla tua macchina locale, e poi nella cartella radice di questo repo, digita `docsify serve`. Il sito web sarà servito sulla porta 3000 sul tuo localhost: `localhost:3000`. ## PDF Trova un pdf del curriculum con link [qui](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +## 🎒 Altri corsi -## 🎒 Altri Corsi - -Il nostro team produce altri corsi! Dai un'occhiata: +Il nostro team produce altri corsi! Dai un’occhiata: ### LangChain -[![LangChain4j per Principianti](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js per Principianti](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain per Principianti](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD per Principianti](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI per Principianti](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP per Principianti](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Agent AI per Principianti](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Serie sull'IA Generativa -[![Generative AI per Principianti](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +### Serie AI Generativa +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Apprendimento Core -[![ML per Principianti](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science per Principianti](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI per Principianti](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity per Principianti](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Sviluppo Web per Principianti](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT per Principianti](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![Sviluppo XR per Principianti](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Apprendimento di base +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Serie Copilot -[![Copilot per Programmazione Affiancata AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot per C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Avventura Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Ottenere Aiuto +## Ottenere aiuto Se rimani bloccato o hai domande sulla creazione di app AI. Unisciti ad altri studenti e sviluppatori esperti nelle discussioni su MCP. È una comunità di supporto dove le domande sono benvenute e la conoscenza viene condivisa liberamente. @@ -224,15 +223,15 @@ Se rimani bloccato o hai domande sulla creazione di app AI. Unisciti ad altri st Se hai feedback sul prodotto o errori durante la creazione visita: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Suggerimenti Aggiuntivi per l'Apprendimento +## Consigli aggiuntivi per l'apprendimento - Rivedi i notebook dopo ogni lezione per una migliore comprensione. -- Esercitati a implementare algoritmi da solo. -- Esplora set di dati reali usando i concetti appresi. +- Pratica l'implementazione degli algoritmi da solo. +- Esplora set di dati reali utilizzando i concetti appresi. --- -**Avvertenza**: -Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Pur impegnandoci per garantire la massima accuratezza, si prega di notare che le traduzioni automatiche possono contenere errori o imprecisioni. Il documento originale nella sua lingua originale deve essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale effettuata da un esperto umano. Non ci assumiamo alcuna responsabilità per eventuali fraintendimenti o interpretazioni errate derivanti dall’uso di questa traduzione. +**Disclaimer**: +Questo documento è stato tradotto utilizzando il servizio di traduzione automatica [Co-op Translator](https://github.com/Azure/co-op-translator). Sebbene ci impegniamo per l’accuratezza, si prega di essere consapevoli che le traduzioni automatiche possono contenere errori o inesattezze. Il documento originale nella sua lingua nativa dovrebbe essere considerato la fonte autorevole. Per informazioni critiche, si raccomanda una traduzione professionale umana. Non siamo responsabili per eventuali malintesi o interpretazioni errate derivanti dall’uso di questa traduzione. \ No newline at end of file diff --git a/translations/ja/.co-op-translator.json b/translations/ja/.co-op-translator.json index 5e83bb5c2..8169b31ae 100644 --- a/translations/ja/.co-op-translator.json +++ b/translations/ja/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ja" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:59:38+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:57:02+00:00", "source_file": "README.md", "language_code": "ja" }, diff --git a/translations/ja/README.md b/translations/ja/README.md index 9b14c3828..ec2ffe784 100644 --- a/translations/ja/README.md +++ b/translations/ja/README.md @@ -10,14 +10,14 @@ ### 🌐 多言語サポート -#### GitHub Action によるサポート(自動かつ常に最新) +#### GitHub Actionによる対応(自動化&常に最新) -[アラビア語](../ar/README.md) | [ベンガル語](../bn/README.md) | [ブルガリア語](../bg/README.md) | [ビルマ語(ミャンマー)](../my/README.md) | [中国語(簡体字)](../zh-CN/README.md) | [中国語(繁体字、香港)](../zh-HK/README.md) | [中国語(繁体字、マカオ)](../zh-MO/README.md) | [中国語(繁体字、台湾)](../zh-TW/README.md) | [クロアチア語](../hr/README.md) | [チェコ語](../cs/README.md) | [デンマーク語](../da/README.md) | [オランダ語](../nl/README.md) | [エストニア語](../et/README.md) | [フィンランド語](../fi/README.md) | [フランス語](../fr/README.md) | [ドイツ語](../de/README.md) | [ギリシャ語](../el/README.md) | [ヘブライ語](../he/README.md) | [ヒンディー語](../hi/README.md) | [ハンガリー語](../hu/README.md) | [インドネシア語](../id/README.md) | [イタリア語](../it/README.md) | [日本語](./README.md) | [カンナダ語](../kn/README.md) | [韓国語](../ko/README.md) | [リトアニア語](../lt/README.md) | [マレー語](../ms/README.md) | [マラヤーラム語](../ml/README.md) | [マラーティー語](../mr/README.md) | [ネパール語](../ne/README.md) | [ナイジェリア・ピジン語](../pcm/README.md) | [ノルウェー語](../no/README.md) | [ペルシャ語(ファルシ)](../fa/README.md) | [ポーランド語](../pl/README.md) | [ポルトガル語(ブラジル)](../pt-BR/README.md) | [ポルトガル語(ポルトガル)](../pt-PT/README.md) | [パンジャブ語(グルムキー)](../pa/README.md) | [ルーマニア語](../ro/README.md) | [ロシア語](../ru/README.md) | [セルビア語(キリル)](../sr/README.md) | [スロバキア語](../sk/README.md) | [スロベニア語](../sl/README.md) | [スペイン語](../es/README.md) | [スワヒリ語](../sw/README.md) | [スウェーデン語](../sv/README.md) | [タガログ語(フィリピノ)](../tl/README.md) | [タミル語](../ta/README.md) | [テルグ語](../te/README.md) | [タイ語](../th/README.md) | [トルコ語](../tr/README.md) | [ウクライナ語](../uk/README.md) | [ウルドゥー語](../ur/README.md) | [ベトナム語](../vi/README.md) +[アラビア語](../ar/README.md) | [ベンガル語](../bn/README.md) | [ブルガリア語](../bg/README.md) | [ビルマ語(ミャンマー)](../my/README.md) | [中国語(簡体字)](../zh-CN/README.md) | [中国語(繁体字、香港)](../zh-HK/README.md) | [中国語(繁体字、マカオ)](../zh-MO/README.md) | [中国語(繁体字、台湾)](../zh-TW/README.md) | [クロアチア語](../hr/README.md) | [チェコ語](../cs/README.md) | [デンマーク語](../da/README.md) | [オランダ語](../nl/README.md) | [エストニア語](../et/README.md) | [フィンランド語](../fi/README.md) | [フランス語](../fr/README.md) | [ドイツ語](../de/README.md) | [ギリシャ語](../el/README.md) | [ヘブライ語](../he/README.md) | [ヒンディー語](../hi/README.md) | [ハンガリー語](../hu/README.md) | [インドネシア語](../id/README.md) | [イタリア語](../it/README.md) | [日本語](./README.md) | [カンナダ語](../kn/README.md) | [クメール語](../km/README.md) | [韓国語](../ko/README.md) | [リトアニア語](../lt/README.md) | [マレー語](../ms/README.md) | [マラヤーラム語](../ml/README.md) | [マラーティー語](../mr/README.md) | [ネパール語](../ne/README.md) | [ナイジェリア・ピジン語](../pcm/README.md) | [ノルウェー語](../no/README.md) | [ペルシア語(ファルシー)](../fa/README.md) | [ポーランド語](../pl/README.md) | [ポルトガル語(ブラジル)](../pt-BR/README.md) | [ポルトガル語(ポルトガル)](../pt-PT/README.md) | [パンジャブ語(グルムキー)](../pa/README.md) | [ルーマニア語](../ro/README.md) | [ロシア語](../ru/README.md) | [セルビア語(キリル)](../sr/README.md) | [スロバキア語](../sk/README.md) | [スロベニア語](../sl/README.md) | [スペイン語](../es/README.md) | [スワヒリ語](../sw/README.md) | [スウェーデン語](../sv/README.md) | [タガログ語(フィリピン)](../tl/README.md) | [タミル語](../ta/README.md) | [テルグ語](../te/README.md) | [タイ語](../th/README.md) | [トルコ語](../tr/README.md) | [ウクライナ語](../uk/README.md) | [ウルドゥー語](../ur/README.md) | [ベトナム語](../vi/README.md) -> **ローカルでクローンするのが良いですか?** +> **ローカルでクローンしたいですか?** > -> このリポジトリには50以上の言語翻訳が含まれており、ダウンロードサイズが大幅に増加します。翻訳なしでクローンするには、スパースチェックアウトを使用してください: +> このリポジトリには50以上の言語翻訳が含まれており、そのためダウンロードサイズが大幅に増加します。翻訳を除いてクローンするには、スパースチェックアウトを使用してください: > > **Bash / macOS / Linux:** > ```bash @@ -33,67 +33,62 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> これにより、コースを完了するために必要なすべてが、より高速なダウンロードで得られます。 +> これにより、より高速なダウンロードでコースを完了するのに必要なすべてが得られます。 -#### コミュニティに参加しましょう +#### コミュニティに参加しよう [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Discord上で進行中の「Learn with AI」シリーズについての詳細および参加は、[Learn with AI Series](https://aka.ms/learnwithai/discord) でご覧いただけます。2025年9月18日から30日まで開催され、GitHub Copilotを使ったデータサイエンスのヒントやコツを得られます。 +私たちはDiscordで「Learn with AI」シリーズを開催中です。詳細と参加は [Learn with AI Series](https://aka.ms/learnwithai/discord) から、2025年9月18日~30日の期間にぜひご参加ください。GitHub Copilotを使ったデータサイエンスのコツやテクニックが得られます。 ![Learn with AI series](../../translated_images/ja/3.9b58fd8d6c373c20.webp) -# 初心者のための機械学習 - カリキュラム +# 機械学習入門 - カリキュラム -> 🌍 世界の文化を通じて機械学習を探求しながら世界を旅しよう 🌍 +> 🌍 世界の文化を通して機械学習を探求しながら世界を旅しよう 🌍 -Microsoft のクラウドアドボケートが提供する、12週間・26レッスンの機械学習に関するカリキュラムを紹介します。本カリキュラムでは、主に Scikit-learn ライブラリを使用した **「クラシック機械学習」** と呼ばれる分野について学びます。ディープラーニングは弊社の [AI for Beginners カリキュラム](https://aka.ms/ai4beginners) にて扱っています。『初心者向けデータサイエンス』カリキュラムともぜひ合わせてご利用ください。 +MicrosoftのCloud Advocatesが提供する、12週間・26レッスンにわたる機械学習のカリキュラムです。このカリキュラムでは、主にScikit-learnライブラリを用いた「古典的機械学習」(クラシック機械学習)について学び、ディープラーニングは[AI for Beginners のカリキュラム](https://aka.ms/ai4beginners)でカバーしています。さらに、『[データサイエンス入門カリキュラム](https://aka.ms/ds4beginners)』と組み合わせて学習してください。 -世界中のさまざまなデータを用いて、クラシックな手法を適用しながら一緒に世界を旅しましょう。各レッスンには、事前・事後のクイズ、詳細な手順書、解答例、課題などが含まれています。プロジェクトを通じて学べるため、新しいスキルが定着しやすくなっています。 +私たちと一緒に世界中を旅して、これらのクラシックな手法を世界各地のデータに適用してみましょう。各レッスンには、レッスン前後のクイズ、レッスンの説明、解答例、課題、その他が含まれています。プロジェクトベースの教育法により、学びながら実践することで新しいスキルが定着すると証明されています。 -**✍️ 監修者の皆様へ心より感謝** -Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu, Amy Boyd +**✍️ 心から感謝申し上げます。著者の皆様:** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu、Amy Boyd -**🎨 イラスト担当の皆様へも感謝** -Tomomi Imura, Dasani Madipalli, Jen Looper +**🎨 そしてイラストレーターの皆様にも感謝:** 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 +**🙏 特別な感謝 🙏 Microsoft Student Ambassadorの著者、レビュアー、コンテンツ貢献者の皆様** 特にRishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila、Snigdha Agarwal -**🤩 Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, Vidushi Gupta にも特別感謝!Rレッスン関連でのご協力に感謝します。** +**🤩 さらにMicrosoft Student AmbassadorsのEric Wanjau、Jasleen Sondhi、Vidushi GuptaにはR言語のレッスン制作で感謝!** # はじめに -以下の手順に従ってください: -1. **リポジトリをフォークする**:ページ右上の「Fork」ボタンをクリックしてください。 -2. **リポジトリをクローンする**: - `git clone https://github.com/microsoft/ML-For-Beginners.git` +以下の手順に従ってください: +1. リポジトリをフォークする:ページ右上の「Fork」ボタンをクリックします。 +2. リポジトリをクローンする: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [このコースの追加リソースはMicrosoft Learnコレクションにあります](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [このコースの追加リソースはMicrosoft Learnのコレクションで見つけられます](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **お困りですか?** よくある問題の解決には [トラブルシューティングガイド](TROUBLESHOOTING.md) をご覧ください。 +> 🔧 **お困りですか?** インストールやセットアップ、レッスン実行の一般的な問題の解決には[トラブルシューティングガイド](TROUBLESHOOTING.md)を参照してください。 -**[学生の皆さん](https://aka.ms/student-page)** -このカリキュラムを利用するには、リポジトリ全体を自分のGitHubアカウントにフォークし、個人またはグループで練習課題を行います: +**[学生の皆さん](https://aka.ms/student-page)**、このカリキュラムを使用するには、リポジトリ全体を自分のGitHubアカウントにフォークし、個人またはグループで課題を進めてください: -- 講義前のクイズでスタート。 -- 講義を読み、各知識チェックで立ち止まり振り返りながら課題を進めます。 -- 解答コードを見るのではなく、レッスンを理解してからプロジェクトを作成しよう。ただし、解答コードは各プロジェクトレッスンの `/solution` フォルダにあります。 -- 講義後のクイズを受けます。 -- チャレンジをクリアします。 -- 課題を提出します。 -- レッスングループを終えたら、[ディスカッションボード](https://github.com/microsoft/ML-For-Beginners/discussions)で「学んだことを声に出して」 PAT評価を記入してください。PATは進捗評価ツールで、自分の学びを深めるためのルーブリックです。他の人のPATにもリアクションをして、一緒に学び合えます。 +- 講義前のクイズから始める。 +- 講義を読み、各知識確認で一時停止しながら活動を完了する。 +- 解答コードを動かすのではなく、レッスンを理解してプロジェクトを作成しよう。ただし解答コードは各プロジェクト指向のレッスンの `/solution` フォルダーにあります。 +- 講義後のクイズを受ける。 +- チャレンジを完了する。 +- 課題を完了する。 +- レッスングループを終えたら、[ディスカッションボード](https://github.com/microsoft/ML-For-Beginners/discussions)を訪れて、適宜PATルーブリックに記入して「学びを広げる」。PATは進捗評価ツールで、記入することで学習をさらに深められます。他のPATにリアクションもでき、一緒に学べます。 -> さらなる学習には、これらの [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) モジュールや学習パスをお勧めします。 +> さらなる学習には、次の[Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott)のモジュールや学習パスがお勧めです。 -**教員の方へ**、本カリキュラムの活用について [いくつかの提案](for-teachers.md) を掲載しています。 +教師の皆様、このカリキュラムの活用法について[提案](for-teachers.md)を用意しています。 --- -## 動画解説 +## ビデオウォークスルー -いくつかのレッスンは短い動画で視聴可能です。各レッスン内または [Microsoft Developer YouTube チャンネルの ML for Beginners プレイリスト](https://aka.ms/ml-beginners-videos) でご覧いただけます。下の画像をクリックしてください。 +いくつかのレッスンはショートフォームのビデオで視聴可能です。これらはレッスン内に埋め込まれているか、または[Microsoft DeveloperのYouTubeチャンネルにあるML for Beginnersプレイリスト](https://aka.ms/ml-beginners-videos)から視聴できます。下の画像をクリックしてください。 [![ML for beginners banner](../../translated_images/ja/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -103,81 +98,81 @@ Microsoft Student Ambassador の著者・レビューアー・コンテンツ貢 [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**GIF作成者** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif作者:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 上の画像をクリックすると、プロジェクトおよび制作スタッフについての動画が見られます! +> 🎥 上の画像をクリックすると、プロジェクトとそれを作った人々についてのビデオが見られます! --- ## 教育方針 -本カリキュラム作成にあたり、2つの教育的信念を掲げています。すなわち、ハンズオンで **プロジェクトベース** であることと、**頻繁なクイズ** を含むことです。さらに、内容に統一感を持たせる共通の **テーマ** を設けています。 +このカリキュラムでは、実践的なプロジェクトベース頻繁なクイズの2つの教育的信念を採用しています。また、内容に一貫性を持たせるための共通のテーマも設定しています。 -プロジェクトに合わせた内容にすることで、学習がより興味深くなり、概念の定着が促進されます。クラス前の低負荷のクイズは学習への意欲付けをし、クラス後のクイズが更なる定着を促します。本カリキュラムは柔軟で楽しく学べ、全体または部分的に利用できます。プロジェクトは小さなものから始まり、12週間のサイクル終了時にはより複雑になります。また、実世界における機械学習応用に関する追記もあり、追加課題やディスカッションの基礎として使えます。 +コンテンツをプロジェクトに合わせることで、学生の関心が高まり、概念の定着が促進されます。授業前の低難易度クイズは学習の意図を明確にし、授業後のクイズがさらに理解を深めます。このカリキュラムは柔軟で楽しく、全編または一部だけでも学習可能です。プロジェクトは小規模から始まり、12週間のサイクルの終わりにはより複雑になります。さらに実世界のML応用に関するあとがきを含み、追加の学習や議論の素材として使えます。 -> [行動規範](CODE_OF_CONDUCT.md)、[貢献ガイド](CONTRIBUTING.md)、[翻訳](..)、[トラブルシューティング](TROUBLESHOOTING.md)のガイドラインがあります。皆様からの建設的なフィードバックを歓迎します! +> [行動規範](CODE_OF_CONDUCT.md)、[貢献ガイド](CONTRIBUTING.md)、[翻訳](..)、[トラブルシューティング](TROUBLESHOOTING.md)の方針もご覧ください。皆様からの建設的なフィードバックを歓迎します! ## 各レッスンに含まれるもの -- 任意のスケッチノート -- 任意の補助動画 -- 動画解説(一部のレッスンのみ) -- [講義前ウォームアップクイズ](https://ff-quizzes.netlify.app/en/ml/) -- テキスト形式の講義 -- プロジェクトベースのレッスンには、プロジェクト構築のステップバイステップガイド -- 知識チェック -- チャレンジ -- 補足読書資料 -- 課題 +- 任意のスケッチノート +- 任意の補助動画 +- ビデオウォークスルー(一部のレッスンのみ) +- [講義前ウォームアップクイズ](https://ff-quizzes.netlify.app/en/ml/) +- 書面によるレッスン +- プロジェクトベースレッスンにはプロジェクト構築手順のガイド付き +- 知識確認問題 +- チャレンジ +- 補助読書 +- 課題 - [講義後クイズ](https://ff-quizzes.netlify.app/en/ml/) +> 言語に関する注意事項: これらのレッスンは主にPythonで書かれていますが、多くはRでも利用可能です。Rのレッスンを完了するには、 `/solution` フォルダーに移動しRのレッスンを探してください。これらは **R Markdown** ファイルを表す .rmd 拡張子を含んでいます。これは簡単に言うと、`コードチャンク`(Rやその他の言語の)と `YAMLヘッダー`(PDFなどの出力フォーマットのガイド)を `Markdown文書` に埋め込んだものです。このため、コード、出力、考えをMarkdownで書き込み一体化できるため、データサイエンスの優れた作成フレームワークとして機能します。さらに、R Markdown文書はPDF、HTML、Wordなどの出力形式にレンダリングできます。 -> **言語についての注意**: これらのレッスンは主に Python で書かれていますが、多くは R でも利用可能です。R のレッスンを行うには、`/solution` フォルダにある R レッスンを確認してください。ファイルは .rmd 拡張子を持っており、**R Markdown** ファイルです。これは、R または他の言語のコードチャンクと、PDFなどの出力形式を指定する `YAML ヘッダー` を組み合わせた `Markdownドキュメント` です。コードやその出力、考えを書くことが Markdown で可能なため、データサイエンスの著作フレームワークとして最適です。さらに、R Markdown ドキュメントは PDF、HTML、Word などの出力形式にレンダリングできます。 -> **クイズについての注意**: すべてのクイズは[Quiz Appフォルダー](../../quiz-app)に含まれており、全52問の3問ずつのクイズがあります。レッスン内からリンクされていますが、クイズアプリはローカルで実行可能です。ローカルホストやAzureへのデプロイの指示は`quiz-app`フォルダー内を参照してください。 +> クイズに関する注意事項: すべてのクイズは[Quiz Appフォルダー](../../quiz-app)にまとめられており、3問ずつ全52のクイズがあります。レッスン内からリンクされていますが、quiz appはローカルで実行可能です。`quiz-app` フォルダーの指示に従い、ローカルホストまたはAzureへのデプロイを行ってください。 -| レッスン番号 | テーマ | レッスングループ | 学習目標 | リンクされたレッスン | 作者 | +| レッスン番号 | トピック | レッスングループ | 学習目標 | 関連レッスン | 著者 | | :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 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 and 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 and Jen | -| 05 | 回帰入門 | [回帰](2-Regression/README.md) | PythonとScikit-learnで回帰モデルの基礎を学ぶ | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | 北米のカボチャ価格 🎃 | [回帰](2-Regression/README.md) | 機械学習準備のためのデータの可視化とクリーニング | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | 北米のカボチャ価格 🎃 | [回帰](2-Regression/README.md) | 線形および多項式回帰モデルを作成 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | 北米のカボチャ価格 🎃 | [回帰](2-Regression/README.md) | ロジスティック回帰モデルを作成 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | ウェブアプリ 🔌 | [ウェブアプリ](3-Web-App/README.md) | トレーニング済みモデルを使うためのウェブアプリを作る | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 分類入門 | [分類](4-Classification/README.md) | データのクリーニング、準備、可視化と分類の入門 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | 美味しいアジア・インド料理 🍜 | [分類](4-Classification/README.md) | 分類器の紹介 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | 美味しいアジア・インド料理 🍜 | [分類](4-Classification/README.md) | さらなる分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | 美味しいアジア・インド料理 🍜 | [分類](4-Classification/README.md) | モデルを使って推薦ウェブアプリを作成 | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | クラスタリング入門 | [クラスタリング](5-Clustering/README.md) | データのクリーニング、準備、可視化;クラスタリングの入門 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | ナイジェリアの音楽嗜好の探求 🎧 | [クラスタリング](5-Clustering/README.md) | K-Meansクラスタリング手法を探求 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | 自然言語処理入門 ☕️ | [自然言語処理](6-NLP/README.md) | 簡単なボットを作りながらNLPの基本を学ぶ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 一般的なNLPタスク ☕️ | [自然言語処理](6-NLP/README.md) | 言語構造処理に必要な一般的なタスクを理解してNLP知識を深める | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 翻訳と感情分析 ♥️ | [自然言語処理](6-NLP/README.md) | ジェーン・オースティンを使った翻訳と感情分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](6-NLP/README.md) | ホテルレビューでの感情分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | ヨーロッパのロマンチックなホテル ♥️ | [自然言語処理](6-NLP/README.md) | ホテルレビューでの感情分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 時系列予測入門 | [時系列](7-TimeSeries/README.md) | 時系列予測の入門 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 世界の電力使用量 ⚡️ - ARIMAによる時系列予測 | [時系列](7-TimeSeries/README.md) | ARIMAによる時系列予測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ 世界の電力使用量 ⚡️ - SVRによる時系列予測 | [時系列](7-TimeSeries/README.md) | サポートベクター回帰による時系列予測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | 強化学習入門 | [強化学習](8-Reinforcement/README.md) | Q学習を使った強化学習入門 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | ピーターをオオカミから守ろう! 🐺 | [強化学習](8-Reinforcement/README.md) | 強化学習Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| 補遺 | 実世界の機械学習シナリオと応用 | [実世界の機械学習](9-Real-World/README.md) | 古典的な機械学習の興味深くかつ示唆に富んだ実世界の応用例 | [レッスン](9-Real-World/1-Applications/README.md) | チーム | -| 補遺 | RAIダッシュボードを使ったMLのモデルデバッグ | [実世界の機械学習](9-Real-World/README.md) | Responsible AIダッシュボードコンポーネントを用いた機械学習モデルのデバッグ | [レッスン](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [このコースの追加リソースはすべてMicrosoft Learnコレクションで見つけられます](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +| 01 | 機械学習のイントロダクション | [Introduction](1-Introduction/README.md) | 機械学習の基本概念を学ぶ | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | 機械学習の歴史 | [Introduction](1-Introduction/README.md) | この分野の歴史を学ぶ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | 公平性と機械学習 | [Introduction](1-Introduction/README.md) | MLモデル構築と適用時に考慮すべき公平性に関する重要な哲学的問題は何か? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | 機械学習の技術 | [Introduction](1-Introduction/README.md) | ML研究者がMLモデル構築のために使用する技術は何か? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | 回帰分析のイントロダクション | [Regression](2-Regression/README.md) | PythonとScikit-learnを使った回帰モデル入門 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | 北米カボチャ価格 🎃 | [Regression](2-Regression/README.md) | MLの準備としてデータの可視化とクレンジング | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | 北米カボチャ価格 🎃 | [Regression](2-Regression/README.md) | 線形回帰および多項式回帰モデルの構築 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | 北米カボチャ価格 🎃 | [Regression](2-Regression/README.md) | ロジスティック回帰モデルの構築 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | ウェブアプリ 🔌 | [Web App](3-Web-App/README.md) | 学習済みモデルを使うウェブアプリの構築 | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分類のイントロダクション | [Classification](4-Classification/README.md) | データのクレンジング、準備、可視化;分類の入門 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | 美味しいアジアおよびインド料理 🍜 | [Classification](4-Classification/README.md) | 分類器の紹介 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | 美味しいアジアおよびインド料理 🍜 | [Classification](4-Classification/README.md) | より多くの分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | 美味しいアジアおよびインド料理 🍜 | [Classification](4-Classification/README.md) | モデルを使った推薦ウェブアプリの構築 | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | クラスタリングのイントロダクション | [Clustering](5-Clustering/README.md) | データのクレンジング、準備、可視化;クラスタリング入門 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | ナイジェリアの音楽嗜好探索 🎧 | [Clustering](5-Clustering/README.md) | K-Meansクラスタリング法の探索 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | 自然言語処理入門 ☕️ | [Natural language processing](6-NLP/README.md) | 単純なボット構築でNLPの基本を学ぶ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 一般的なNLPタスク ☕️ | [Natural language processing](6-NLP/README.md) | 言語構造処理に必要な一般的タスクを理解しNLP知識を深める | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻訳と感情分析 ♥️ | [Natural language processing](6-NLP/README.md) | ジェーン・オースティンによる翻訳と感情分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | ヨーロッパのロマンチックホテル ♥️ | [Natural language processing](6-NLP/README.md) | ホテルレビューによる感情分析1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | ヨーロッパのロマンチックホテル ♥️ | [Natural language processing](6-NLP/README.md) | ホテルレビューによる感情分析2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 時系列予測のイントロダクション | [Time series](7-TimeSeries/README.md) | 時系列予測の入門 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 世界の電力使用量 ⚡️ - ARIMAを使った時系列予測 | [Time series](7-TimeSeries/README.md) | ARIMAを使った時系列予測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ 世界の電力使用量 ⚡️ - SVRを使った時系列予測 | [Time series](7-TimeSeries/README.md) | サポートベクター回帰を使った時系列予測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | 強化学習のイントロダクション | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learningを使った強化学習入門 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | ピーターをオオカミから守ろう! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化学習Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| 追記 | 実世界のMLシナリオと応用 | [ML in the Wild](9-Real-World/README.md) | 古典的MLの興味深く示唆に富む実世界アプリケーション | [Lesson](9-Real-World/1-Applications/README.md) | チーム | +| 追記 | RAIダッシュボードを使ったMLのモデルデバッグ | [ML in the Wild](9-Real-World/README.md) | Responsible AIダッシュボードコンポーネントを使った機械学習モデルデバッグ | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [このコースの追加リソースはMicrosoft Learnコレクションで全て見つかります](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## オフラインアクセス -このドキュメントをオフラインで実行するには、[Docsify](https://docsify.js.org/#/)を使用してください。このリポジトリをフォークして、[Docsifyをローカルマシンにインストール](https://docsify.js.org/#/quickstart)し、その後このリポジトリのルートフォルダーで `docsify serve` を実行します。ウェブサイトはlocalhostのポート3000で提供されます: `localhost:3000`。 +[Docsify](https://docsify.js.org/#/) を使用してこのドキュメントをオフラインで実行できます。このリポジトリをフォークし、ローカルマシンに[Docsifyをインストール](https://docsify.js.org/#/quickstart)した後、このリポジトリのルートフォルダーで `docsify serve` と入力してください。ウェブサイトはローカルホストのポート3000で提供されます: `localhost:3000`。 ## PDF -カリキュラムのPDF(リンク付き)はこちらでご覧いただけます [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)。 +カリキュラムのPDF(リンク付き)は[こちら](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)でご覧いただけます。 ## 🎒 その他のコース -私たちのチームは他にもコースを制作しています!ぜひご覧ください: +私たちのチームはその他のコースも制作しています!ぜひチェックしてください: ### LangChain @@ -194,49 +189,49 @@ Microsoft Student Ambassador の著者・レビューアー・コンテンツ貢 --- -### Generative AI Series -[![はじめての生成AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![生成AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![生成AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![生成AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### 生成AIシリーズ +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### コアラーニング -[![はじめての機械学習](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![はじめてのデータサイエンス](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![はじめてのAI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![はじめてのサイバーセキュリティ](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![はじめてのWeb開発](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![はじめてのIoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![はじめてのXR開発](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### コア学習 +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### コパイロットシリーズ -[![AIペアプログラミング用コパイロット](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET用コパイロット](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![コパイロットアドベンチャー](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## ヘルプの取得 +## ヘルプを得る方法 -AIアプリの構築中に行き詰まったり質問がある場合は、MCPに関するディスカッションで他の学習者や経験豊富な開発者と交流しましょう。質問が歓迎され、知識が自由に共有されるサポートコミュニティです。 +AIアプリの構築で困ったり質問があれば、MCPに関する議論に参加して、他の学習者や経験豊富な開発者と交流しましょう。質問が歓迎され、知識が自由に共有される支援的なコミュニティです。 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -製品のフィードバックや構築中のエラーがある場合は、次をご覧ください: +製品のフィードバックや構築中のエラーがあれば、以下をご覧ください。 [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## 追加学習のヒント +## 追加の学習のヒント - 各レッスン後にノートブックを復習して理解を深めましょう。 -- 自分でアルゴリズムの実装を練習しましょう。 -- 学んだ概念を使って実際のデータセットを調べてみましょう。 +- 自分でアルゴリズムを実装する練習をしましょう。 +- 学んだ概念を使って実際のデータセットを探索しましょう。 --- **免責事項**: 本書類はAI翻訳サービス「[Co-op Translator](https://github.com/Azure/co-op-translator)」を使用して翻訳されています。正確性の向上に努めていますが、自動翻訳には誤りや不正確な箇所が含まれる場合があります。原文の言語による文書が正式な情報源とみなされるべきです。重要な情報については、専門の翻訳者による翻訳を推奨します。本翻訳の利用によって生じたいかなる誤解や解釈の相違についても、当方は一切の責任を負いかねます。 - + \ No newline at end of file diff --git a/translations/km/.co-op-translator.json b/translations/km/.co-op-translator.json new file mode 100644 index 000000000..b74cad095 --- /dev/null +++ b/translations/km/.co-op-translator.json @@ -0,0 +1,878 @@ +{ + "1-Introduction/1-intro-to-ML/README.md": { + "original_hash": "69389392fa6346e0dfa30f664b7b6fec", + "translation_date": "2026-04-06T18:13:33+00:00", + "source_file": "1-Introduction/1-intro-to-ML/README.md", + "language_code": "km" + }, + "1-Introduction/1-intro-to-ML/assignment.md": { + "original_hash": "4c4698044bb8af52cfb6388a4ee0e53b", + "translation_date": "2026-04-06T18:13:44+00:00", + "source_file": "1-Introduction/1-intro-to-ML/assignment.md", + "language_code": "km" + }, + "1-Introduction/2-history-of-ML/README.md": { + "original_hash": "6a05fec147e734c3e6bfa54505648e2b", + "translation_date": "2026-04-06T18:15:10+00:00", + "source_file": "1-Introduction/2-history-of-ML/README.md", + "language_code": "km" + }, + "1-Introduction/2-history-of-ML/assignment.md": { + "original_hash": "eb6e4d5afd1b21a57d2b9e6d0aac3969", + "translation_date": "2026-04-06T18:15:19+00:00", + "source_file": "1-Introduction/2-history-of-ML/assignment.md", + "language_code": "km" + }, + "1-Introduction/3-fairness/README.md": { + "original_hash": "9a6b702d1437c0467e3c5c28d763dac2", + "translation_date": "2026-04-06T18:18:39+00:00", + "source_file": "1-Introduction/3-fairness/README.md", + "language_code": "km" + }, + "1-Introduction/3-fairness/assignment.md": { + "original_hash": "c81d9affadb89d017d610eadeb6c84f9", + "translation_date": "2026-04-06T18:18:50+00:00", + "source_file": "1-Introduction/3-fairness/assignment.md", + "language_code": "km" + }, + "1-Introduction/4-techniques-of-ML/README.md": { + "original_hash": "9d91f3af3758fdd4569fb410575995ef", + "translation_date": "2026-04-06T18:16:52+00:00", + "source_file": "1-Introduction/4-techniques-of-ML/README.md", + "language_code": "km" + }, + "1-Introduction/4-techniques-of-ML/assignment.md": { + "original_hash": "70d65aeddc06170bc1aed5b27805f930", + "translation_date": "2026-04-06T18:17:05+00:00", + "source_file": "1-Introduction/4-techniques-of-ML/assignment.md", + "language_code": "km" + }, + "1-Introduction/README.md": { + "original_hash": "cf8ecc83f28e5b98051d2179eca08e08", + "translation_date": "2026-04-06T18:03:58+00:00", + "source_file": "1-Introduction/README.md", + "language_code": "km" + }, + "2-Regression/1-Tools/README.md": { + "original_hash": "fa81d226c71d5af7a2cade31c1c92b88", + "translation_date": "2026-04-06T18:23:23+00:00", + "source_file": "2-Regression/1-Tools/README.md", + "language_code": "km" + }, + "2-Regression/1-Tools/assignment.md": { + "original_hash": "74a5cf83e4ebc302afbcbc4f418afd0a", + "translation_date": "2026-04-06T18:23:40+00:00", + "source_file": "2-Regression/1-Tools/assignment.md", + "language_code": "km" + }, + "2-Regression/1-Tools/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:27:06+00:00", + "source_file": "2-Regression/1-Tools/solution/Julia/README.md", + "language_code": "km" + }, + "2-Regression/1-Tools/solution/R/lesson_1-R.ipynb": { + "original_hash": "c18d3bd0bd8ae3878597e89dcd1fa5c1", + "translation_date": "2026-04-06T19:12:00+00:00", + "source_file": "2-Regression/1-Tools/solution/R/lesson_1-R.ipynb", + "language_code": "km" + }, + "2-Regression/1-Tools/solution/notebook.ipynb": { + "original_hash": "16ff1a974f6e4348e869e4a7d366b86a", + "translation_date": "2026-04-06T19:10:27+00:00", + "source_file": "2-Regression/1-Tools/solution/notebook.ipynb", + "language_code": "km" + }, + "2-Regression/2-Data/README.md": { + "original_hash": "7c077988328ebfe33b24d07945f16eca", + "translation_date": "2026-04-06T18:24:53+00:00", + "source_file": "2-Regression/2-Data/README.md", + "language_code": "km" + }, + "2-Regression/2-Data/assignment.md": { + "original_hash": "4485a1ed4dd1b5647365e3d87456515d", + "translation_date": "2026-04-06T18:25:03+00:00", + "source_file": "2-Regression/2-Data/assignment.md", + "language_code": "km" + }, + "2-Regression/2-Data/notebook.ipynb": { + "original_hash": "1b2ab303ac6c604a34c6ca7a49077fc7", + "translation_date": "2026-04-06T19:05:51+00:00", + "source_file": "2-Regression/2-Data/notebook.ipynb", + "language_code": "km" + }, + "2-Regression/2-Data/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:27:14+00:00", + "source_file": "2-Regression/2-Data/solution/Julia/README.md", + "language_code": "km" + }, + "2-Regression/2-Data/solution/R/lesson_2-R.ipynb": { + "original_hash": "f3c335f9940cfd76528b3ef918b9b342", + "translation_date": "2026-04-06T19:14:24+00:00", + "source_file": "2-Regression/2-Data/solution/R/lesson_2-R.ipynb", + "language_code": "km" + }, + "2-Regression/2-Data/solution/notebook.ipynb": { + "original_hash": "95726f0b8283628d5356a4f8eb8b4b76", + "translation_date": "2026-04-06T19:12:07+00:00", + "source_file": "2-Regression/2-Data/solution/notebook.ipynb", + "language_code": "km" + }, + "2-Regression/3-Linear/README.md": { + "original_hash": "9a8359f1945bd3beccccb2b46592580e", + "translation_date": "2026-04-06T18:21:17+00:00", + "source_file": "2-Regression/3-Linear/README.md", + "language_code": "km" + }, + "2-Regression/3-Linear/assignment.md": { + "original_hash": "cc471fa89c293bc735dd3a9a0fb79b1b", + "translation_date": "2026-04-06T18:21:30+00:00", + "source_file": "2-Regression/3-Linear/assignment.md", + "language_code": "km" + }, + "2-Regression/3-Linear/notebook.ipynb": { + "original_hash": "b032d371c75279373507f003439a577e", + "translation_date": "2026-04-06T19:05:46+00:00", + "source_file": "2-Regression/3-Linear/notebook.ipynb", + "language_code": "km" + }, + "2-Regression/3-Linear/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:27:00+00:00", + "source_file": "2-Regression/3-Linear/solution/Julia/README.md", + "language_code": "km" + }, + "2-Regression/3-Linear/solution/R/lesson_3-R.ipynb": { + "original_hash": "5015d65d61ba75a223bfc56c273aa174", + "translation_date": "2026-04-06T19:10:06+00:00", + "source_file": "2-Regression/3-Linear/solution/R/lesson_3-R.ipynb", + "language_code": "km" + }, + "2-Regression/3-Linear/solution/notebook.ipynb": { + "original_hash": "d77bd89ae7e79780c68c58bab91f13f8", + "translation_date": "2026-04-06T19:06:48+00:00", + "source_file": "2-Regression/3-Linear/solution/notebook.ipynb", + "language_code": "km" + }, + "2-Regression/4-Logistic/README.md": { + "original_hash": "abf86d845c84330bce205a46b382ec88", + "translation_date": "2026-04-06T18:26:41+00:00", + "source_file": "2-Regression/4-Logistic/README.md", + "language_code": "km" + }, + "2-Regression/4-Logistic/assignment.md": { + "original_hash": "8af40209a41494068c1f42b14c0b450d", + "translation_date": "2026-04-06T18:26:53+00:00", + "source_file": "2-Regression/4-Logistic/assignment.md", + "language_code": "km" + }, + "2-Regression/4-Logistic/notebook.ipynb": { + "original_hash": "dee08c2b49057b0de8b6752c4dbca368", + "translation_date": "2026-04-06T19:05:59+00:00", + "source_file": "2-Regression/4-Logistic/notebook.ipynb", + "language_code": "km" + }, + "2-Regression/4-Logistic/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:27:21+00:00", + "source_file": "2-Regression/4-Logistic/solution/Julia/README.md", + "language_code": "km" + }, + "2-Regression/4-Logistic/solution/R/lesson_4-R.ipynb": { + "original_hash": "feaf125f481a89c468fa115bf2aed580", + "translation_date": "2026-04-06T19:17:18+00:00", + "source_file": "2-Regression/4-Logistic/solution/R/lesson_4-R.ipynb", + "language_code": "km" + }, + "2-Regression/4-Logistic/solution/notebook.ipynb": { + "original_hash": "ef50cc584e0b79412610cc7da15e1f86", + "translation_date": "2026-04-06T19:14:49+00:00", + "source_file": "2-Regression/4-Logistic/solution/notebook.ipynb", + "language_code": "km" + }, + "2-Regression/README.md": { + "original_hash": "508582278dbb8edd2a8a80ac96ef416c", + "translation_date": "2026-04-06T18:04:20+00:00", + "source_file": "2-Regression/README.md", + "language_code": "km" + }, + "3-Web-App/1-Web-App/README.md": { + "original_hash": "e0b75f73e4a90d45181dc5581fe2ef5c", + "translation_date": "2026-04-06T18:28:42+00:00", + "source_file": "3-Web-App/1-Web-App/README.md", + "language_code": "km" + }, + "3-Web-App/1-Web-App/assignment.md": { + "original_hash": "a8e8ae10be335cbc745b75ee552317ff", + "translation_date": "2026-04-06T18:28:57+00:00", + "source_file": "3-Web-App/1-Web-App/assignment.md", + "language_code": "km" + }, + "3-Web-App/1-Web-App/solution/notebook.ipynb": { + "original_hash": "5fa2e8f4584c78250ca9729b46562ceb", + "translation_date": "2026-04-06T19:17:25+00:00", + "source_file": "3-Web-App/1-Web-App/solution/notebook.ipynb", + "language_code": "km" + }, + "3-Web-App/README.md": { + "original_hash": "9836ff53cfef716ddfd70e06c5f43436", + "translation_date": "2026-04-06T18:04:35+00:00", + "source_file": "3-Web-App/README.md", + "language_code": "km" + }, + "4-Classification/1-Introduction/README.md": { + "original_hash": "aaf391d922bd6de5efba871d514c6d47", + "translation_date": "2026-04-06T18:50:02+00:00", + "source_file": "4-Classification/1-Introduction/README.md", + "language_code": "km" + }, + "4-Classification/1-Introduction/assignment.md": { + "original_hash": "b2a01912beb24cfb0007f83594dba801", + "translation_date": "2026-04-06T18:50:16+00:00", + "source_file": "4-Classification/1-Introduction/assignment.md", + "language_code": "km" + }, + "4-Classification/1-Introduction/notebook.ipynb": { + "original_hash": "d544ef384b7ba73757d830a72372a7f2", + "translation_date": "2026-04-06T19:23:40+00:00", + "source_file": "4-Classification/1-Introduction/notebook.ipynb", + "language_code": "km" + }, + "4-Classification/1-Introduction/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:54:18+00:00", + "source_file": "4-Classification/1-Introduction/solution/Julia/README.md", + "language_code": "km" + }, + "4-Classification/1-Introduction/solution/R/lesson_10-R.ipynb": { + "original_hash": "2621e24705e8100893c9bf84e0fc8aef", + "translation_date": "2026-04-06T19:26:38+00:00", + "source_file": "4-Classification/1-Introduction/solution/R/lesson_10-R.ipynb", + "language_code": "km" + }, + "4-Classification/1-Introduction/solution/notebook.ipynb": { + "original_hash": "1da12ed6d238756959b8de9cac2a35a2", + "translation_date": "2026-04-06T19:24:26+00:00", + "source_file": "4-Classification/1-Introduction/solution/notebook.ipynb", + "language_code": "km" + }, + "4-Classification/2-Classifiers-1/README.md": { + "original_hash": "1a6e9e46b34a2e559fbbfc1f95397c7b", + "translation_date": "2026-04-06T18:53:58+00:00", + "source_file": "4-Classification/2-Classifiers-1/README.md", + "language_code": "km" + }, + "4-Classification/2-Classifiers-1/assignment.md": { + "original_hash": "de6025f96841498b0577e9d1aee18d1f", + "translation_date": "2026-04-06T18:54:11+00:00", + "source_file": "4-Classification/2-Classifiers-1/assignment.md", + "language_code": "km" + }, + "4-Classification/2-Classifiers-1/notebook.ipynb": { + "original_hash": "68829b06b4dcd512d3327849191f4d7f", + "translation_date": "2026-04-06T19:24:01+00:00", + "source_file": "4-Classification/2-Classifiers-1/notebook.ipynb", + "language_code": "km" + }, + "4-Classification/2-Classifiers-1/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:54:32+00:00", + "source_file": "4-Classification/2-Classifiers-1/solution/Julia/README.md", + "language_code": "km" + }, + "4-Classification/2-Classifiers-1/solution/R/lesson_11-R.ipynb": { + "original_hash": "6ea6a5171b1b99b7b5a55f7469c048d2", + "translation_date": "2026-04-06T19:30:34+00:00", + "source_file": "4-Classification/2-Classifiers-1/solution/R/lesson_11-R.ipynb", + "language_code": "km" + }, + "4-Classification/2-Classifiers-1/solution/notebook.ipynb": { + "original_hash": "9408506dd864f2b6e334c62f80c0cfcc", + "translation_date": "2026-04-06T19:28:41+00:00", + "source_file": "4-Classification/2-Classifiers-1/solution/notebook.ipynb", + "language_code": "km" + }, + "4-Classification/3-Classifiers-2/README.md": { + "original_hash": "d94438d71164b0ff68002812aed1a8b4", + "translation_date": "2026-04-06T18:51:06+00:00", + "source_file": "4-Classification/3-Classifiers-2/README.md", + "language_code": "km" + }, + "4-Classification/3-Classifiers-2/assignment.md": { + "original_hash": "58dfdaf79fb73f7d34b22bdbacf57329", + "translation_date": "2026-04-06T18:51:17+00:00", + "source_file": "4-Classification/3-Classifiers-2/assignment.md", + "language_code": "km" + }, + "4-Classification/3-Classifiers-2/notebook.ipynb": { + "original_hash": "624ca6cf73d3548ff1b3059e413fa4cd", + "translation_date": "2026-04-06T19:23:47+00:00", + "source_file": "4-Classification/3-Classifiers-2/notebook.ipynb", + "language_code": "km" + }, + "4-Classification/3-Classifiers-2/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:54:26+00:00", + "source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md", + "language_code": "km" + }, + "4-Classification/3-Classifiers-2/solution/R/lesson_12-R.ipynb": { + "original_hash": "fab50046ca413a38939d579f8432274f", + "translation_date": "2026-04-06T19:28:27+00:00", + "source_file": "4-Classification/3-Classifiers-2/solution/R/lesson_12-R.ipynb", + "language_code": "km" + }, + "4-Classification/3-Classifiers-2/solution/notebook.ipynb": { + "original_hash": "70f41fe4fd4253adb44cd9d291406e4f", + "translation_date": "2026-04-06T19:26:46+00:00", + "source_file": "4-Classification/3-Classifiers-2/solution/notebook.ipynb", + "language_code": "km" + }, + "4-Classification/4-Applied/README.md": { + "original_hash": "61bdec27ed2da8b098cd9065405d9bb0", + "translation_date": "2026-04-06T18:52:07+00:00", + "source_file": "4-Classification/4-Applied/README.md", + "language_code": "km" + }, + "4-Classification/4-Applied/assignment.md": { + "original_hash": "799ed651e2af0a7cad17c6268db11578", + "translation_date": "2026-04-06T18:52:20+00:00", + "source_file": "4-Classification/4-Applied/assignment.md", + "language_code": "km" + }, + "4-Classification/4-Applied/notebook.ipynb": { + "original_hash": "2f3e0d9e9ac5c301558fb8bf733ac0cb", + "translation_date": "2026-04-06T19:23:55+00:00", + "source_file": "4-Classification/4-Applied/notebook.ipynb", + "language_code": "km" + }, + "4-Classification/4-Applied/solution/notebook.ipynb": { + "original_hash": "49325d6dd12a3628fc64fa7ccb1a80ff", + "translation_date": "2026-04-06T19:28:35+00:00", + "source_file": "4-Classification/4-Applied/solution/notebook.ipynb", + "language_code": "km" + }, + "4-Classification/README.md": { + "original_hash": "74e809ffd1e613a1058bbc3e9600859e", + "translation_date": "2026-04-06T18:06:16+00:00", + "source_file": "4-Classification/README.md", + "language_code": "km" + }, + "5-Clustering/1-Visualize/README.md": { + "original_hash": "730225ea274c9174fe688b21d421539d", + "translation_date": "2026-04-06T18:43:38+00:00", + "source_file": "5-Clustering/1-Visualize/README.md", + "language_code": "km" + }, + "5-Clustering/1-Visualize/assignment.md": { + "original_hash": "589fa015a5e7d9e67bd629f7d47b53de", + "translation_date": "2026-04-06T18:43:50+00:00", + "source_file": "5-Clustering/1-Visualize/assignment.md", + "language_code": "km" + }, + "5-Clustering/1-Visualize/notebook.ipynb": { + "original_hash": "40e0707e96b3e1899a912776006264f9", + "translation_date": "2026-04-06T19:18:08+00:00", + "source_file": "5-Clustering/1-Visualize/notebook.ipynb", + "language_code": "km" + }, + "5-Clustering/1-Visualize/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:44:06+00:00", + "source_file": "5-Clustering/1-Visualize/solution/Julia/README.md", + "language_code": "km" + }, + "5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb": { + "original_hash": "99c36449cad3708a435f6798cfa39972", + "translation_date": "2026-04-06T19:23:33+00:00", + "source_file": "5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb", + "language_code": "km" + }, + "5-Clustering/1-Visualize/solution/notebook.ipynb": { + "original_hash": "c61deff2839902ac8cb4ed411eb10fee", + "translation_date": "2026-04-06T19:21:34+00:00", + "source_file": "5-Clustering/1-Visualize/solution/notebook.ipynb", + "language_code": "km" + }, + "5-Clustering/2-K-Means/README.md": { + "original_hash": "7cdd17338d9bbd7e2171c2cd462eb081", + "translation_date": "2026-04-06T18:41:05+00:00", + "source_file": "5-Clustering/2-K-Means/README.md", + "language_code": "km" + }, + "5-Clustering/2-K-Means/assignment.md": { + "original_hash": "b8e17eff34ad1680eba2a5d3cf9ffc41", + "translation_date": "2026-04-06T18:41:19+00:00", + "source_file": "5-Clustering/2-K-Means/assignment.md", + "language_code": "km" + }, + "5-Clustering/2-K-Means/notebook.ipynb": { + "original_hash": "3e5c8ab363e8d88f566d4365efc7e0bd", + "translation_date": "2026-04-06T19:18:01+00:00", + "source_file": "5-Clustering/2-K-Means/notebook.ipynb", + "language_code": "km" + }, + "5-Clustering/2-K-Means/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:43:57+00:00", + "source_file": "5-Clustering/2-K-Means/solution/Julia/README.md", + "language_code": "km" + }, + "5-Clustering/2-K-Means/solution/R/lesson_15-R.ipynb": { + "original_hash": "ad65fb4aad0a156b42216e4929f490fc", + "translation_date": "2026-04-06T19:21:02+00:00", + "source_file": "5-Clustering/2-K-Means/solution/R/lesson_15-R.ipynb", + "language_code": "km" + }, + "5-Clustering/2-K-Means/solution/notebook.ipynb": { + "original_hash": "e867e87e3129c8875423a82945f4ad5e", + "translation_date": "2026-04-06T19:18:41+00:00", + "source_file": "5-Clustering/2-K-Means/solution/notebook.ipynb", + "language_code": "km" + }, + "5-Clustering/2-K-Means/solution/tester.ipynb": { + "original_hash": "6f92868513e59d321245137c1c4c5311", + "translation_date": "2026-04-06T19:18:52+00:00", + "source_file": "5-Clustering/2-K-Means/solution/tester.ipynb", + "language_code": "km" + }, + "5-Clustering/README.md": { + "original_hash": "b28a3a4911584062772c537b653ebbc7", + "translation_date": "2026-04-06T18:05:44+00:00", + "source_file": "5-Clustering/README.md", + "language_code": "km" + }, + "6-NLP/1-Introduction-to-NLP/README.md": { + "original_hash": "1c2ec40cf55c98a028a359c27ef7e45a", + "translation_date": "2026-04-06T18:35:16+00:00", + "source_file": "6-NLP/1-Introduction-to-NLP/README.md", + "language_code": "km" + }, + "6-NLP/1-Introduction-to-NLP/assignment.md": { + "original_hash": "1d7583e8046dacbb0c056d5ba0a71b16", + "translation_date": "2026-04-06T18:35:27+00:00", + "source_file": "6-NLP/1-Introduction-to-NLP/assignment.md", + "language_code": "km" + }, + "6-NLP/2-Tasks/README.md": { + "original_hash": "5f3cb462e3122e1afe7ab0050ccf2bd3", + "translation_date": "2026-04-06T18:36:49+00:00", + "source_file": "6-NLP/2-Tasks/README.md", + "language_code": "km" + }, + "6-NLP/2-Tasks/assignment.md": { + "original_hash": "2efc4c2aba5ed06c780c05539c492ae3", + "translation_date": "2026-04-06T18:37:02+00:00", + "source_file": "6-NLP/2-Tasks/assignment.md", + "language_code": "km" + }, + "6-NLP/3-Translation-Sentiment/README.md": { + "original_hash": "be03c8182982b87ced155e4e9d1438e8", + "translation_date": "2026-04-06T18:30:36+00:00", + "source_file": "6-NLP/3-Translation-Sentiment/README.md", + "language_code": "km" + }, + "6-NLP/3-Translation-Sentiment/assignment.md": { + "original_hash": "9d2a734deb904caff310d1a999c6bd7a", + "translation_date": "2026-04-06T18:30:48+00:00", + "source_file": "6-NLP/3-Translation-Sentiment/assignment.md", + "language_code": "km" + }, + "6-NLP/3-Translation-Sentiment/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:39:30+00:00", + "source_file": "6-NLP/3-Translation-Sentiment/solution/Julia/README.md", + "language_code": "km" + }, + "6-NLP/3-Translation-Sentiment/solution/R/README.md": { + "original_hash": "81db6ff2cf6e62fbe2340b094bb9509e", + "translation_date": "2026-04-06T18:39:36+00:00", + "source_file": "6-NLP/3-Translation-Sentiment/solution/R/README.md", + "language_code": "km" + }, + "6-NLP/3-Translation-Sentiment/solution/notebook.ipynb": { + "original_hash": "27de2abc0235ebd22080fc8f1107454d", + "translation_date": "2026-04-06T19:17:29+00:00", + "source_file": "6-NLP/3-Translation-Sentiment/solution/notebook.ipynb", + "language_code": "km" + }, + "6-NLP/4-Hotel-Reviews-1/README.md": { + "original_hash": "8d32dadeda93c6fb5c43619854882ab1", + "translation_date": "2026-04-06T18:34:00+00:00", + "source_file": "6-NLP/4-Hotel-Reviews-1/README.md", + "language_code": "km" + }, + "6-NLP/4-Hotel-Reviews-1/assignment.md": { + "original_hash": "bf39bceb833cd628f224941dca8041df", + "translation_date": "2026-04-06T18:34:09+00:00", + "source_file": "6-NLP/4-Hotel-Reviews-1/assignment.md", + "language_code": "km" + }, + "6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:39:43+00:00", + "source_file": "6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md", + "language_code": "km" + }, + "6-NLP/4-Hotel-Reviews-1/solution/R/README.md": { + "original_hash": "81db6ff2cf6e62fbe2340b094bb9509e", + "translation_date": "2026-04-06T18:39:52+00:00", + "source_file": "6-NLP/4-Hotel-Reviews-1/solution/R/README.md", + "language_code": "km" + }, + "6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb": { + "original_hash": "2d05e7db439376aa824f4b387f8324ca", + "translation_date": "2026-04-06T19:17:34+00:00", + "source_file": "6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb", + "language_code": "km" + }, + "6-NLP/5-Hotel-Reviews-2/README.md": { + "original_hash": "2c742993fe95d5bcbb2846eda3d442a1", + "translation_date": "2026-04-06T18:39:12+00:00", + "source_file": "6-NLP/5-Hotel-Reviews-2/README.md", + "language_code": "km" + }, + "6-NLP/5-Hotel-Reviews-2/assignment.md": { + "original_hash": "daf144daa552da6a7d442aff6f3e77d8", + "translation_date": "2026-04-06T18:39:23+00:00", + "source_file": "6-NLP/5-Hotel-Reviews-2/assignment.md", + "language_code": "km" + }, + "6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb": { + "original_hash": "033cb89c85500224b3c63fd04f49b4aa", + "translation_date": "2026-04-06T19:17:40+00:00", + "source_file": "6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb", + "language_code": "km" + }, + "6-NLP/5-Hotel-Reviews-2/solution/2-notebook.ipynb": { + "original_hash": "341efc86325ec2a214f682f57a189dfd", + "translation_date": "2026-04-06T19:17:45+00:00", + "source_file": "6-NLP/5-Hotel-Reviews-2/solution/2-notebook.ipynb", + "language_code": "km" + }, + "6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb": { + "original_hash": "705bf02633759f689abc37b19749a16d", + "translation_date": "2026-04-06T19:17:51+00:00", + "source_file": "6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb", + "language_code": "km" + }, + "6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:39:58+00:00", + "source_file": "6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md", + "language_code": "km" + }, + "6-NLP/5-Hotel-Reviews-2/solution/R/README.md": { + "original_hash": "81db6ff2cf6e62fbe2340b094bb9509e", + "translation_date": "2026-04-06T18:40:04+00:00", + "source_file": "6-NLP/5-Hotel-Reviews-2/solution/R/README.md", + "language_code": "km" + }, + "6-NLP/README.md": { + "original_hash": "1eb379dc2d0c9940b320732d16083778", + "translation_date": "2026-04-06T18:05:23+00:00", + "source_file": "6-NLP/README.md", + "language_code": "km" + }, + "6-NLP/data/README.md": { + "original_hash": "ee0670655c89e4719319764afb113624", + "translation_date": "2026-04-06T18:34:16+00:00", + "source_file": "6-NLP/data/README.md", + "language_code": "km" + }, + "7-TimeSeries/1-Introduction/README.md": { + "original_hash": "662b509c39eee205687726636d0a8455", + "translation_date": "2026-04-06T19:02:35+00:00", + "source_file": "7-TimeSeries/1-Introduction/README.md", + "language_code": "km" + }, + "7-TimeSeries/1-Introduction/assignment.md": { + "original_hash": "d1781b0b92568ea1d119d0a198b576b4", + "translation_date": "2026-04-06T19:02:50+00:00", + "source_file": "7-TimeSeries/1-Introduction/assignment.md", + "language_code": "km" + }, + "7-TimeSeries/1-Introduction/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T19:04:50+00:00", + "source_file": "7-TimeSeries/1-Introduction/solution/Julia/README.md", + "language_code": "km" + }, + "7-TimeSeries/1-Introduction/solution/R/README.md": { + "original_hash": "81db6ff2cf6e62fbe2340b094bb9509e", + "translation_date": "2026-04-06T19:04:56+00:00", + "source_file": "7-TimeSeries/1-Introduction/solution/R/README.md", + "language_code": "km" + }, + "7-TimeSeries/1-Introduction/solution/notebook.ipynb": { + "original_hash": "dddca9ad9e34435494e0933c218e1579", + "translation_date": "2026-04-06T19:36:51+00:00", + "source_file": "7-TimeSeries/1-Introduction/solution/notebook.ipynb", + "language_code": "km" + }, + "7-TimeSeries/1-Introduction/working/notebook.ipynb": { + "original_hash": "5e2bbe594906dce3aaaa736d6dac6683", + "translation_date": "2026-04-06T19:36:34+00:00", + "source_file": "7-TimeSeries/1-Introduction/working/notebook.ipynb", + "language_code": "km" + }, + "7-TimeSeries/2-ARIMA/README.md": { + "original_hash": "917dbf890db71a322f306050cb284749", + "translation_date": "2026-04-06T19:04:30+00:00", + "source_file": "7-TimeSeries/2-ARIMA/README.md", + "language_code": "km" + }, + "7-TimeSeries/2-ARIMA/assignment.md": { + "original_hash": "1c814013e10866dfd92cdb32caaae3ac", + "translation_date": "2026-04-06T19:04:43+00:00", + "source_file": "7-TimeSeries/2-ARIMA/assignment.md", + "language_code": "km" + }, + "7-TimeSeries/2-ARIMA/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T19:05:02+00:00", + "source_file": "7-TimeSeries/2-ARIMA/solution/Julia/README.md", + "language_code": "km" + }, + "7-TimeSeries/2-ARIMA/solution/R/README.md": { + "original_hash": "81db6ff2cf6e62fbe2340b094bb9509e", + "translation_date": "2026-04-06T19:05:09+00:00", + "source_file": "7-TimeSeries/2-ARIMA/solution/R/README.md", + "language_code": "km" + }, + "7-TimeSeries/2-ARIMA/solution/notebook.ipynb": { + "original_hash": "c193140200b9684da27e3890211391b6", + "translation_date": "2026-04-06T19:37:42+00:00", + "source_file": "7-TimeSeries/2-ARIMA/solution/notebook.ipynb", + "language_code": "km" + }, + "7-TimeSeries/2-ARIMA/working/notebook.ipynb": { + "original_hash": "523ec472196307b3c4235337353c9ceb", + "translation_date": "2026-04-06T19:37:04+00:00", + "source_file": "7-TimeSeries/2-ARIMA/working/notebook.ipynb", + "language_code": "km" + }, + "7-TimeSeries/3-SVR/README.md": { + "original_hash": "482bccabe1df958496ea71a3667995cd", + "translation_date": "2026-04-06T19:00:48+00:00", + "source_file": "7-TimeSeries/3-SVR/README.md", + "language_code": "km" + }, + "7-TimeSeries/3-SVR/assignment.md": { + "original_hash": "94aa2fc6154252ae30a3f3740299707a", + "translation_date": "2026-04-06T19:01:02+00:00", + "source_file": "7-TimeSeries/3-SVR/assignment.md", + "language_code": "km" + }, + "7-TimeSeries/3-SVR/solution/notebook.ipynb": { + "original_hash": "f8f3967282314d3995245835bdaa8418", + "translation_date": "2026-04-06T19:36:24+00:00", + "source_file": "7-TimeSeries/3-SVR/solution/notebook.ipynb", + "language_code": "km" + }, + "7-TimeSeries/3-SVR/working/notebook.ipynb": { + "original_hash": "e86ce102239a14c44585623b9b924a74", + "translation_date": "2026-04-06T19:35:47+00:00", + "source_file": "7-TimeSeries/3-SVR/working/notebook.ipynb", + "language_code": "km" + }, + "7-TimeSeries/README.md": { + "original_hash": "61342603bad8acadbc6b2e4e3aab3f66", + "translation_date": "2026-04-06T18:07:29+00:00", + "source_file": "7-TimeSeries/README.md", + "language_code": "km" + }, + "8-Reinforcement/1-QLearning/README.md": { + "original_hash": "911efd5e595089000cb3c16fce1beab8", + "translation_date": "2026-04-06T18:58:38+00:00", + "source_file": "8-Reinforcement/1-QLearning/README.md", + "language_code": "km" + }, + "8-Reinforcement/1-QLearning/assignment.md": { + "original_hash": "68394b2102d3503882e5e914bd0ff5c1", + "translation_date": "2026-04-06T18:59:03+00:00", + "source_file": "8-Reinforcement/1-QLearning/assignment.md", + "language_code": "km" + }, + "8-Reinforcement/1-QLearning/notebook.ipynb": { + "original_hash": "17e5a668646eabf5aabd0e9bfcf17876", + "translation_date": "2026-04-06T19:32:19+00:00", + "source_file": "8-Reinforcement/1-QLearning/notebook.ipynb", + "language_code": "km" + }, + "8-Reinforcement/1-QLearning/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:59:25+00:00", + "source_file": "8-Reinforcement/1-QLearning/solution/Julia/README.md", + "language_code": "km" + }, + "8-Reinforcement/1-QLearning/solution/R/README.md": { + "original_hash": "81db6ff2cf6e62fbe2340b094bb9509e", + "translation_date": "2026-04-06T18:59:34+00:00", + "source_file": "8-Reinforcement/1-QLearning/solution/R/README.md", + "language_code": "km" + }, + "8-Reinforcement/1-QLearning/solution/assignment-solution.ipynb": { + "original_hash": "eadbd20d2a075efb602615ad90b1e97a", + "translation_date": "2026-04-06T19:33:34+00:00", + "source_file": "8-Reinforcement/1-QLearning/solution/assignment-solution.ipynb", + "language_code": "km" + }, + "8-Reinforcement/1-QLearning/solution/notebook.ipynb": { + "original_hash": "488431336543f71f14d4aaf0399e3381", + "translation_date": "2026-04-06T19:35:09+00:00", + "source_file": "8-Reinforcement/1-QLearning/solution/notebook.ipynb", + "language_code": "km" + }, + "8-Reinforcement/2-Gym/README.md": { + "original_hash": "107d5bb29da8a562e7ae72262d251a75", + "translation_date": "2026-04-06T18:56:16+00:00", + "source_file": "8-Reinforcement/2-Gym/README.md", + "language_code": "km" + }, + "8-Reinforcement/2-Gym/assignment.md": { + "original_hash": "1f2b7441745eb52e25745423b247016b", + "translation_date": "2026-04-06T18:56:41+00:00", + "source_file": "8-Reinforcement/2-Gym/assignment.md", + "language_code": "km" + }, + "8-Reinforcement/2-Gym/notebook.ipynb": { + "original_hash": "f22f8f3daed4b6d34648d1254763105b", + "translation_date": "2026-04-06T19:31:15+00:00", + "source_file": "8-Reinforcement/2-Gym/notebook.ipynb", + "language_code": "km" + }, + "8-Reinforcement/2-Gym/solution/Julia/README.md": { + "original_hash": "a39c15d63f3b2795ee2284a82b986b93", + "translation_date": "2026-04-06T18:59:10+00:00", + "source_file": "8-Reinforcement/2-Gym/solution/Julia/README.md", + "language_code": "km" + }, + "8-Reinforcement/2-Gym/solution/R/README.md": { + "original_hash": "81db6ff2cf6e62fbe2340b094bb9509e", + "translation_date": "2026-04-06T18:59:17+00:00", + "source_file": "8-Reinforcement/2-Gym/solution/R/README.md", + "language_code": "km" + }, + "8-Reinforcement/2-Gym/solution/notebook.ipynb": { + "original_hash": "5c0e485e58d63c506f1791c4dbf990ce", + "translation_date": "2026-04-06T19:33:05+00:00", + "source_file": "8-Reinforcement/2-Gym/solution/notebook.ipynb", + "language_code": "km" + }, + "8-Reinforcement/README.md": { + "original_hash": "20ca019012b1725de956681d036d8b18", + "translation_date": "2026-04-06T18:06:49+00:00", + "source_file": "8-Reinforcement/README.md", + "language_code": "km" + }, + "9-Real-World/1-Applications/README.md": { + "original_hash": "83320d6b6994909e35d830cebf214039", + "translation_date": "2026-04-06T18:45:48+00:00", + "source_file": "9-Real-World/1-Applications/README.md", + "language_code": "km" + }, + "9-Real-World/1-Applications/assignment.md": { + "original_hash": "fdebfcd0a3f12c9e2b436ded1aa79885", + "translation_date": "2026-04-06T18:46:03+00:00", + "source_file": "9-Real-World/1-Applications/assignment.md", + "language_code": "km" + }, + "9-Real-World/2-Debugging-ML-Models/README.md": { + "original_hash": "df2b538e8fbb3e91cf0419ae2f858675", + "translation_date": "2026-04-06T18:48:38+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/README.md", + "language_code": "km" + }, + "9-Real-World/2-Debugging-ML-Models/assignment.md": { + "original_hash": "91c6a180ef08e20cc15acfd2d6d6e164", + "translation_date": "2026-04-06T18:48:50+00:00", + "source_file": "9-Real-World/2-Debugging-ML-Models/assignment.md", + "language_code": "km" + }, + "9-Real-World/README.md": { + "original_hash": "5e069a0ac02a9606a69946c2b3c574a9", + "translation_date": "2026-04-06T18:06:01+00:00", + "source_file": "9-Real-World/README.md", + "language_code": "km" + }, + "AGENTS.md": { + "original_hash": "93fdaa0fd38836e50c4793e2f2f25e8b", + "translation_date": "2026-04-06T17:58:39+00:00", + "source_file": "AGENTS.md", + "language_code": "km" + }, + "CODE_OF_CONDUCT.md": { + "original_hash": "c06b12caf3c901eb3156e3dd5b0aea56", + "translation_date": "2026-04-06T17:58:48+00:00", + "source_file": "CODE_OF_CONDUCT.md", + "language_code": "km" + }, + "CONTRIBUTING.md": { + "original_hash": "977ec5266dfd78ad1ce2bd8d46fccbda", + "translation_date": "2026-04-06T17:54:58+00:00", + "source_file": "CONTRIBUTING.md", + "language_code": "km" + }, + "PyTorch_Fundamentals.ipynb": { + "original_hash": "0ca21b6ee62904d616f2e36dc1cf0da7", + "translation_date": "2026-04-06T19:05:33+00:00", + "source_file": "PyTorch_Fundamentals.ipynb", + "language_code": "km" + }, + "README.md": { + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T18:03:45+00:00", + "source_file": "README.md", + "language_code": "km" + }, + "SECURITY.md": { + "original_hash": "5e1b8da31aae9cca3d53ad243fa3365a", + "translation_date": "2026-04-06T17:59:12+00:00", + "source_file": "SECURITY.md", + "language_code": "km" + }, + "SUPPORT.md": { + "original_hash": "09623d7343ff1c26ff4f198c1b2d3176", + "translation_date": "2026-04-06T17:54:41+00:00", + "source_file": "SUPPORT.md", + "language_code": "km" + }, + "TROUBLESHOOTING.md": { + "original_hash": "134d8759f0e2ab886e9aa4f62362c201", + "translation_date": "2026-04-06T17:57:24+00:00", + "source_file": "TROUBLESHOOTING.md", + "language_code": "km" + }, + "docs/_sidebar.md": { + "original_hash": "68dd06c685f6ce840e0acfa313352e7c", + "translation_date": "2026-04-06T18:07:09+00:00", + "source_file": "docs/_sidebar.md", + "language_code": "km" + }, + "for-teachers.md": { + "original_hash": "b37de02054fa6c0438ede6fabe1fdfb8", + "translation_date": "2026-04-06T17:54:28+00:00", + "source_file": "for-teachers.md", + "language_code": "km" + }, + "quiz-app/README.md": { + "original_hash": "6d130dffca5db70d7e615f926cb1ad4c", + "translation_date": "2026-04-06T18:05:00+00:00", + "source_file": "quiz-app/README.md", + "language_code": "km" + }, + "sketchnotes/LICENSE.md": { + "original_hash": "fba3b94d88bfb9b81369b869a1e9a20f", + "translation_date": "2026-04-06T18:12:33+00:00", + "source_file": "sketchnotes/LICENSE.md", + "language_code": "km" + }, + "sketchnotes/README.md": { + "original_hash": "a88d5918c1b9da69a40d917a0840c497", + "translation_date": "2026-04-06T18:07:39+00:00", + "source_file": "sketchnotes/README.md", + "language_code": "km" + } +} \ No newline at end of file diff --git a/translations/km/1-Introduction/1-intro-to-ML/README.md b/translations/km/1-Introduction/1-intro-to-ML/README.md new file mode 100644 index 000000000..c593f8df7 --- /dev/null +++ b/translations/km/1-Introduction/1-intro-to-ML/README.md @@ -0,0 +1,152 @@ +# ការណែនាំអំពីការរៀនម៉ាស៊ីន + +## [សំណួរតេស្តមុនថ្នាក់](https://ff-quizzes.netlify.app/en/ml/) + +--- + +[![ML សម្រាប់អ្នកសរសេរใหม่ - ការណែនាំអំពីការរៀនម៉ាស៊ីនសម្រាប់អ្នកសរសេរ](https://img.youtube.com/vi/6mSx_KJxcHI/0.jpg)](https://youtu.be/6mSx_KJxcHI "ML សម្រាប់អ្នកសរសេរใหม่ - ការណែនាំអំពីការរៀនម៉ាស៊ីនសម្រាប់អ្នកសរសេរ") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូខ្លីបង្ហាញពីមេរៀននេះ។ + +សូមស្វាគមន៍មកកាន់វគ្គសិក្សានេះអំពីការរៀនម៉ាស៊ីនបែបសាមញ្ញសម្រាប់អ្នកចាប់ផ្ដើម! មិនថាអ្នកជាអ្នកថ្មីតែម្តងនឹងប្រធានបទនេះ ឬជាអ្នកអនុវត្ត ML ដែលមានបទពិសោធន៍ជាមួយកន្លែងមួយណាមួយដែលចង់បង្កើតវិជ្ជាជីវៈឡើងវិញ យើងមានសេចក្ដីសប្បាយរីករាយដែលអ្នកបានចូលរួមជាមួយយើង! យើងចង់បង្កើតទីតាំងមួយដែលរាប់មិត្តភាព សម្រាប់ការសិក្សា ML របស់អ្នក ហើយយើងនឹងមានមោទនភាពក្នុងការវាយតម្លៃ ឆ្លើយតប និងរួមបញ្ចូលមតិយោបល់របស់អ្នក [feedback](https://github.com/microsoft/ML-For-Beginners/discussions)។ + +[![ការណែនាំអំពី ML](https://img.youtube.com/vi/h0e2HAPTGF4/0.jpg)](https://youtu.be/h0e2HAPTGF4 "ការណែនាំអំពី ML") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូ៖ John Guttag របស់ MIT ដឹកនាំបង្ហាញអំពីការរៀនម៉ាស៊ីន + +--- +## ផ្ដើមសិក្សាអំពីការរៀនម៉ាស៊ីន + +មុននឹងចាប់ផ្ដើមវគ្គសិក្សានេះ អ្នកត្រូវតែមានកុំព្យូទ័ររបស់អ្នកត្រៀមរួចរាល់សម្រាប់បើកចូលប្រើមូលដ្ឋានសៀវភៅកំណត់ត្រាផ្ទាល់ខ្លួន។ + +- **កំណត់រចនាសម្ព័ន្ធម៉ាស៊ីនរបស់អ្នកជាមួយវីដេអូទាំងនេះ**។ ប្រើតំណភ្ជាប់ខាងក្រោមសម្រាប់រៀនពីរបៀប [ដំឡើង Python](https://youtu.be/CXZYvNRIAKM) នៅលើប្រព័ន្ធរបស់អ្នក និង [កំណត់ការ text editor](https://youtu.be/EU8eayHWoZg) សម្រាប់ការអភិវឌ្ឍន៍។ +- **រៀន Python**។ បើកមានការផ្តល់អនុសាសន៍ឲ្យមានការយល់ដឹងមូលដ្ឋានអំពី [Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott) ដែលជាភាសាកូដដែលមានប្រយោជន៍សម្រាប់អ្នកវិទ្យាសាស្ត្រទិន្នន័យដែលយើងប្រើក្នុងវគ្គសិក្សានេះ។ +- **រៀន Node.js និង JavaScript**។ យើងក៏ប្រើ JavaScript ពេលខ្លះនៅក្នុងវគ្គនេះពេលកសាងកម្មវិធីបណ្តាញ ដូច្នេះអ្នកត្រូវតែមាន [node](https://nodejs.org) និង [npm](https://www.npmjs.com/) តម្លើងក្នុងប្រព័ន្ធរបស់អ្នក បូកជាមួយការចូលប្រើ [Visual Studio Code](https://code.visualstudio.com/) សម្រាប់ការអភិវឌ្ឍ Python និង JavaScript ។ +- **បង្កើតគណនី GitHub**។ ពីព្រោះអ្នកបានរកឃើញយើងនៅទីនេះលើ [GitHub](https://github.com) សូមអាចមានគណនីរួចហើយ តែបើមិនមានសូមបង្កើត និង Fork វគ្គសិក្សានេះដើម្បីប្រើប្រាស់ដោយផ្ទាល់ខ្លួន។ (សូមឥតគិតថ្លៃផ្តល់ផ្កាយមួយជាការគាំទ្រ 😊) +- **ស្វែងយល់អំពី Scikit-learn**។ សូមស្គាល់គាត់ [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) ដែលជាសំណុំនៃបណ្ណាល័យ ML ដែលយើងយោងទៅលើក្នុងមេរៀនទាំងនេះ។ + +--- +## តើការរៀនម៉ាស៊ីនគឺជាអ្វី? + +ពាក្យ 'machine learning' គឺជាក្ដីពេញនិយម និងប្រើប្រាស់ញឹកញាប់បំផុតសម្រាប់សព្វថ្ងៃ។ មានភាពអាចម៍កើតឡើងថាអ្នកបានឮពាក្យនេះយ៉ាងហោចណាស់មួយដង ប្រសិនបើអ្នកមានស្គាល់ខ្លះៗអំពីបច្ចេកវិទ្យា មិនថាអ្នកធ្វើការនៅក្នុងវិស័យណា។ បច្ចេកទេសនៃការរៀនម៉ាស៊ីន យ៉ាងណាមិញ ក៏នៅតែជារឿងលេងល្បងសម្រាប់មនុស្សភាគច្រើន។ សម្រាប់អ្នកចាប់ផ្ដើមការរៀនម៉ាស៊ីន ប្រធានបទនេះអាចមានអារម្មណ៍ថាស្មួតស្មើ។ ដូច្នេះ វាសំខាន់ណាស់ក្នុងការយល់ពីអ្វីទៅជា machine learning ពិតប្រាកដ ហើយរៀនវាជាគ្រប់ជំហាន តាមរយៈឧទាហរណ៍អនុវត្តន៍។ + +--- +## របងប្រភេទតំណពន្លឺ + +![ml hype curve](../../../../translated_images/km/hype.07183d711a17aafe.webp) + +> Google Trends បង្ហាញរបងប្រភេទ 'hype curve' នៃពាក្យ 'machine learning' នៅពេលថ្មីៗនេះ + +--- +## ពិភពគម្រប + +យើងរស់នៅក្នុងពិភពមួយដែលពេញលេញដោយសម្ងាត់គួរឱ្យចាប់អារម្មណ៍។ អ្នកវិទ្យាសាស្ត្រល្បីៗដូចជា Stephen Hawking, Albert Einstein និងមនុស្សជាច្រើនទៀត បានសំលាប់ពេលវេលាផ្នែកធ្វើស្រាវជ្រាវដើម្បីស្វែងរកព័ត៌មានមានន័យ ដែលបំភ្លឺសម្ងាត់នៃពិភពជុំវិញយើង។ នេះគឺជាសភាពមនុស្សក្នុងការរៀន៖ កុមារមនុស្សរៀនអ្វីថ្មីៗ និងរកឃើញរចនាសម្ព័ន្ធនៃពិភពរបស់ពួកគេឆ្នាំក្រោមឆ្នាំនៅពេលពួកគេចាស់ដល់វ័យពេញវ័យ។ + +--- +## សម្ថភាពខួរក្បាលកុមារ + +ខួរក្បាល និងអារម្មណ៍របស់កុមារយល់ឃើញពីការពិតជុំវិញពួកគេ ហើយរៀនយ៉ាងតិចតួចពីរចនាសម្ព័ន្ធលាក់សំខាន់នៃជីវិត ដែលជួយឲ្យកុមារបង្កើតច្បាប់មានទិដ្ឋភាពយុត្តិធម៌ ដើម្បីសំគាល់លំនាំដែលបានរៀន។ ដំណើរការរៀននៃខួរក្បាលមនុស្សធ្វើឱ្យមនុស្សមានជីវិតកាន់តែស្មុគស្មាញបំផុតលើពិភពលោកនេះ។ ការរៀនទៅជានិរន្តរភាពដោយបង្កើតរកលំនាំលាក់ ហើយបន្ទាប់មកបង្កើតថ្មីលើលំនាំទាំងនោះ អនុញ្ញាតឱ្យយើងធ្វើឱ្យខ្លួនឯងកាន់តែប្រសើរឡើងក្នុងអាយុកាលកំណត់របស់យើង។ សមត្ថភាពរៀន និងសមត្ថភាពអភិវឌ្ឍឆាប់រហ័សនេះ មានទំនាក់ទំនងជាមួយយោគយល់មួយហៅថា [brain plasticity](https://www.simplypsychology.org/brain-plasticity.html)។ ជាមិនធម្មតាទេ យើងអាចគូររូបភាពស្រដៀងគ្នាជាមួយរបស់ការរៀននៃខួរក្បាលមនុស្ស និងយោគយល់នៃការរៀនម៉ាស៊ីន។ + +--- +## ខួរក្បាលមនុស្ស + +[ខួរក្បាលមនុស្ស](https://www.livescience.com/29365-human-brain.html) យល់ឃើញអំពីរឿងនៅពិតក្នុងពិភពលោក ធ្វើដំណើរការព័ត៌មានដែលបានយល់ឃើញ ធ្វើសេចក្តីសម្រេចយុត្តិធម៌ និងអនុវត្តសកម្មភាពមួយចំនួនដោយផ្អែកលើអត្តសញ្ញាណនៃស្ថានភាព។ នេះគឺជារឿងដែលយើងហៅថា ការប្រព្រឹត្តសមត្ថភាពយុត្តិាសាស្រ្ត។ នៅពេលដែលយើងកូដការប្រព្រឹត្តបែបនេះទៅឲ្យម៉ាស៊ីនវាយហៅថា បញ្ញាសិប្បនិម្មិត (AI)។ + +--- +## ពាក្យបច្ចេកទេសខ្លះៗ + +ទោះពាក្យទាំងនោះអាចបង្កភាពច្របូកច្របល់ តែការរៀនម៉ាស៊ីន (ML) គឺជាផ្នែកសំខាន់មួយរបស់បញ្ញាសិប្បនិម្មិត។ **ML គឺផ្តោតលើការប្រើប្រាស់អាល់ហ្គោរីធម៍ឯកទេស ដើម្បីរកព័ត៌មានមានន័យ និងរកលំនាំលាក់ពីទិន្នន័យដែលបានយល់ឃើញ ដើម្បីពន្លឿនដំណើរការសម្រេចចិត្តយុត្តិធម៌**។ + +--- +## AI, ML, ការរៀនជ្រៅ + +![AI, ML, deep learning, data science](../../../../translated_images/km/ai-ml-ds.537ea441b124ebf6.webp) + +> ក្រាហ្វិកបង្ហាញទំនាក់ទំនងរវាង AI, ML, ការរៀនជ្រៅ និងវិទ្យាសាស្រ្តទិន្នន័យ។ ប្លង់បាប់ដោយ [Jen Looper](https://twitter.com/jenlooper) នាំមកពី [រូបនេះ](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) + +--- +## គន្លឹះដែលត្រូវរៀន + +នៅក្នុងវគ្គនេះ យើងនឹងគ្របដណ្តប់ត្រឹមតែគន្លឹះស្នូលនៃការរៀនម៉ាស៊ីនដែលអ្នកចាប់ផ្ដើមត្រូវបានគេរៀន។ យើងលើកឡើងអ្វីដែលហៅថា 'classical machine learning' ជាចម្បងប្រើ Scikit-learn ដែលជាបណ្ណាល័យល្អសម្រាប់សិស្សជាច្រើនក្នុងការរៀនមូលដ្ឋាន។ ដើម្បីយល់ពីគំនិតធំទូលាយនៃបញ្ញាសិប្បនិម្មិត ឬការរៀនជ្រៅ បានត្រូវកំលាំងចំណេះដឹងមូលដ្ឋានរឹងមាំមួយនៃការរៀនម៉ាស៊ីន ហើយយើងចង់ផ្តល់វា នៅទីនេះ។ + +--- +## ក្នុងវគ្គនេះ អ្នកនឹងរៀនពី៖ + +- គន្លឹះស្នូលនៃការរៀនម៉ាស៊ីន +- ប្រវត្តិការរៀនម៉ាស៊ីន +- ការរៀនម៉ាស៊ីន និងភាពយុត្តិធម៌ +- ជំនាញ ML សម្រាប់បញ្ហាអនុគមន៍វិនិយោគ (regression) +- ជំនាញ ML សម្រាប់ចាត់ថ្នាក់ (classification) +- ជំនាញ ML សម្រាប់ក្រុមគ្នា (clustering) +- ជំនាញ ML សម្រាប់ដំណើរការភាសាត្រឹមត្រូវ (natural language processing) +- ជំនាញ ML សម្រាប់ការព្យាករណ៍ស៊េរីពេលវេលា (time series forecasting) +- ការរៀនតាមមូលដ្ឋានការបង្រៀន (reinforcement learning) +- ករណីប្រើប្រាស់ដែលមាននៅក្នុងពិភពជាក់ស្តែងសម្រាប់ ML + +--- +## អ្វីដែលយើងមិនគ្របដណ្តប់ + +- ការរៀនជ្រៅ (deep learning) +- បណ្តាញប្រព័ន្ធប្រតិបត្តិកម្មប្រសព្វ (neural networks) +- បញ្ញាសិប្បនិម្មិត (AI) + +ដើម្បីធ្វើឱ្យមានបទពិសោធន៍សិក្សាជាងនេះ យើងនឹងបម្លែងការលំបាករបស់បណ្តាញប្រព័ន្ធប្រតិបត្តិកម្ម ប្រភេទ 'deep learning' ដែលជាការសាងសង់គំរូជាច្រើនជាន់ ដោយប្រើបណ្តាញប្រព័ន្ធប្រតិបត្តិកម្ម និង AI ដែលយើងនឹងពិភាក្សាវា នៅក្នុងវគ្គផ្សេងទៀត។ យើងនឹងផ្តល់ថ្នាក់សិក្សាវិទ្យាសាស្ត្រទិន្នន័យមួយមកក្រោយដើម្បីផ្តោតលើផ្នែកនោះ។ + +--- +## ហេតុអ្វីបានជាអាចរៀនការរៀនម៉ាស៊ីន? + +ការរៀនម៉ាស៊ីន តាមទស្សនវិជ្ជាស៊ីស្តុំ កំណត់ថាជាការបង្កើតប្រព័ន្ធស្វ័យប្រវត្តិ ដែលអាចរៀនពីលំនាំលាក់ក្នុងទិន្នន័យ ដើម្បីជួយក្នុងការបង្កើតសេចក្តីសម្រេចយុត្តិធម៌យ៉ាងមានមហិច្ឆតា។ + +ជំនោគនេះគឺបានទទួលការប្រៀបធៀបយ៉ាងមិនតឹងរឹងទេពីរបៀបដែលខួរក្បាលមនុស្សរៀនអ្វីមួយវាលើទិន្នន័យដែលខួរក្បាលទទួលបានពីបរិយាកាសខាងក្រៅ។ + +✅ សូមគិតរយៈពេលជាមួយអ្នកមួយនាទីថា ហេតុអ្វីបានជាអាជីវកម្មចង់ប្រើវិធីសាស្រ្តការរៀនម៉ាស៊ីន ផ្ទុយពីការបង្កើតម៉ោងកូដលក្ខខណ្ឌរឹងមាំ។ + +--- +## ការប្រើប្រាស់ការរៀនម៉ាស៊ីន + +កម្មវិធីនៃការរៀនម៉ាស៊ីនឥឡូវនេះមានគ្រប់ទីកន្លែង ហើយពេញលេញដូចទិន្នន័យដែលហូរៀងជុំវិញសង្គមយើង ដែលបង្កើតដោយទូរស័ព្ទដៃឆ្លាតរបស់យើង ឧបករណ៍ភ្ជាប់ និងប្រព័ន្ធផ្សេងទៀត។ ក្នុងការប្រកួតប្រជែងនៃអាល់ហ្គោរីធម៍ការរៀនម៉ាស៊ីនដ៏ទំនើប បណ្ឌិតស្រាវជ្រាវបានស្វែងយល់ពីសមត្ថភាពរបស់ពួកគេនៅក្នុងដោះស្រាយបញ្ហាជាច្រើនdimensional និង multidisciplinary នៃជីវិតពិតជាមួយលទ្ធផលវិជ្ជមានជាច្រើន។ + +--- +## ឧទាហរណ៍នៃ ML ដែលបានអនុវត្ត + +**អ្នកអាចប្រើប្រាស់ការរៀនម៉ាស៊ីននៅក្នុងវិធីជាច្រើន**៖ + +- ដើម្បីព្យាករណ៍អត្រាឆាប់ជម្ងឺពីប្រវត្តិវេជ្ជសាស្ត្រឬរបាយការណ៍របស់អ្នកជំងឺម្នាក់។ +- ដើម្បីប្រើទិន្នន័យអាកាសធាតុក្នុងការព្យាករណ៍លទ្ធផលអាកាសធាតុ។ +- ដើម្បីយល់ពីអារម្មណ៍នៃអត្ថបទមួយ។ +- ដើម្បីរកឃើញព័ត៌មានមិនពិត ដើម្បីបិទបាំងការផ្សាយពាណិជ្ជកម្មមិនពិត។ + +វិស័យហិរញ្ញវត្ថុ សេដ្ឋកិច្ច វិទ្យាសាស្ត្រផែនដី ការស្វែងរកអាកាស ការវិទ្យាសាស្ត្រពេទ្យ វិទ្យាសាស្ត្រស្មារតី និងសតិវិទ្យា និងជំនាញមួយចំនួននៅវិស័យមនុស្សវិទ្យា ក៏បានអភិវឌ្ឍការរៀនម៉ាស៊ីនដើម្បីដោះស្រាយបញ្ហាដ៏ញឹកញាប់ នៃការប្រមូលទិន្នន័យធុញទ្រាន់នូវដែនជួញដូរ។ + +--- +## សេចក្តីសន្និដ្ឋាន + +ការរៀនម៉ាស៊ីនបន្ទាន់សកម្មភាពស្វែងរកលំនាំដោយរកដំណោះស្រាយមានន័យពីទិន្នន័យពិតប្រាកដ ឬទិន្នន័យដែលបង្កើតឡើង។ វាបានបញ្ជាក់ថាមានតម្លៃខ្ពស់បំផុតក្នុងវិស័យអាជីវកម្ម សុខភាព និងហិរញ្ញវត្ថុ ជាដើម។ + +នៅពេលអនាគតជិតមក ការយល់ដឹងពីមូលដ្ឋាននៃការរៀនម៉ាស៊ីន នឹងក្លាយជាការដែលមនុស្សគ្រប់វិស័យតម្រូវការចង់យល់ ខ្លួនដោយសារតែកំណាត់ទោលបណ្ដាញរបស់វាត្រូវបានទទួលយកយ៉ាងទូលំទូលាយ។ + +--- +# 🚀 ប défi + +គូររូបរាង លើក្រដាស ឬប្រើកម្មវិធីផ្សេងទៀតដូចជា [Excalidraw](https://excalidraw.com/), ពិចារណាអំពីភាពខុសគ្នារវាង AI, ML, ការរៀនជ្រៅ និងវិទ្យាសាស្ត្រទិន្នន័យ។ បន្ថែមគំនិតអំពីបញ្ហាណាមួយដែលបច្ចេកទេសទាំងនេះល្អក្នុងការដោះស្រាយ។ + +# [សំណួរតេស្តបន្ទាប់ថ្នាក់](https://ff-quizzes.netlify.app/en/ml/) + +--- +# ការពិនិត្យឡើងវិញ និងសិក្សាឯករាជ្យ + +ដើម្បីរៀនបន្ថែមអំពីរបៀបដែលអ្នកអាចធ្វើការជាមួយអាល់ហ្គោរីធម៍ ML នៅក្នុងពពក សូមអនុវត្តតាម [Learning Path](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott) នេះ។ + +ចូលរួម [Learning Path](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) អំពីមូលដ្ឋាននៃ ML។ + +--- +# ផ្ដល់ការងារ + +[ចាប់ផ្ដើមដំណើរការ](assignment.md) + +--- + + +**ការបញ្ជាក់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះ​យើង​ព្យាយាម​ធ្វើ​ឲ្យ​មានភាពត្រឹមត្រូវ នោះទេ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសាជាតិនៃឯកសារនោះគួរត្រូវបានទទួលស្គាល់ថាជាភស្តុតាង​ផ្លូវការជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ អនុញ្ញាតឲ្យមានការបកប្រែដោយអ្នកជំនាញមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែច្រឡំណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/1-Introduction/1-intro-to-ML/assignment.md b/translations/km/1-Introduction/1-intro-to-ML/assignment.md new file mode 100644 index 000000000..236a25b82 --- /dev/null +++ b/translations/km/1-Introduction/1-intro-to-ML/assignment.md @@ -0,0 +1,16 @@ +# ចាប់ផ្តើម និងដំណើរការ + +## សេចក្តីណែនាំ + +ក្នុងកិច្ចការនេះដែលមិនប្រគល់ពិន្ទុ អ្នកគួរតែបង្រៀនឡើងវិញអំពីភាសា Python និងធ្វើឲ្យបរិយាកាសរបស់អ្នកដំណើរការបាន និងអាចដំណើរការបំណែកកំណត់កំណត់ត្រាបាន។ + +យក [ផ្លូវការសិក្សា Python](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott) នេះ ហើយបន្ទាប់មកតំឡើងប្រព័ន្ធរបស់អ្នកដោយមើលវីដេអូបណ្ដាញមូលដ្ឋានទាំងនេះ៖ + +https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6 + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសំរាប់ភាពត្រឹមត្រូវ សូមប្រយ័ត្នថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានភាសាដើមគួរត្រូវបានចាត់ទុកថាជាប្រភពផ្លូវការជាក់លាក់។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរតែប្រើការបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសមួយណាដែលបង្កឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/1-Introduction/2-history-of-ML/README.md b/translations/km/1-Introduction/2-history-of-ML/README.md new file mode 100644 index 000000000..c07c7cb3d --- /dev/null +++ b/translations/km/1-Introduction/2-history-of-ML/README.md @@ -0,0 +1,157 @@ +# ប្រវត្តិសាស្ត្រ​នៃការរៀន​មេកានិច + +![សង្ខេបនៃប្រវត្តិការរៀនម៉ាស៊ីនក្នុងសំណុំស្នាជ្រាប](../../../../translated_images/km/ml-history.a1bdfd4ce1f464d9.webp) +> សំណុំស្នាជ្រាបដោយ [Tomomi Imura](https://www.twitter.com/girlie_mac) + +## [ប្រឡងមុខមាត់មុនពេលរៀន](https://ff-quizzes.netlify.app/en/ml/) + +--- + +[![ML សម្រាប់អ្នកចាប់ផ្តើម - ប្រវត្តិការរៀនម៉ាស៊ីន](https://img.youtube.com/vi/N6wxM4wZ7V0/0.jpg)](https://youtu.be/N6wxM4wZ7V0 "ML សម្រាប់អ្នកចាប់ផ្តើម - ប្រវត្តិការរៀនម៉ាស៊ីន") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូខ្លីដែលពិពណ៌នាអំពីមេរៀននេះ។ + +នៅក្នុងមេរៀននេះ យើងនឹងដើរឆ្ពោះទៅតាមកំណត់ហេតុសំខាន់ៗក្នុងប្រវត្តិការរៀនម៉ាស៊ីន និងបញ្ញាសិប្បនិម្មិត។ + +ប្រវត្តិបញ្ញាសិប្បនិម្មិត (AI) ជាវិស័យមួយមានការតភ្ជាប់យ៉ាងជិតស្និទ្ធជាមួយប្រវត្តិការរៀនម៉ាស៊ីន ដោយសារបាល់ហ្គារីតម និងការរីកចម្រើនគណិតវិទ្យា ដែលជាគន្លងមួយដល់ការអភិវឌ្ឍន៍ AI។ វាមានប្រយោជន៍ក្នុងការចងគម្លាតថា ខណៈពេលដែលវិស័យទាំងពីរនេះជាវិស័យដាច់ខាតបានចាប់ផ្តើមបង្ករឡើងនៅទសវត្សរ៍ 1950 ការរកឃើញ [បាល់ហ្គារីត, ស្ថិតិ, គណិតវិទ្យា, ការគណនា និងបច្ចេកទេស](https://wikipedia.org/wiki/Timeline_of_machine_learning) សំខាន់ៗបានមកមុន និងមានភាពជាប់ពាក់ផ្តាច់គ្នានៅខណៈពេលនោះ។ ជាការពិត មនុស្សបានគិតអំពីសំណួរទាំងនេះរយៈពេលពាន់ឆ្នាំមកហើយ ([https://wikipedia.org/wiki/History_of_artificial_intelligence](https://wikipedia.org/wiki/History_of_artificial_intelligence))៖ អត្ថបទនេះពិភាក្សាអំពីមូលដ្ឋានបែបគំនិតបុរាណនៃគំនិតម៉ាស៊ីនដែលអាច "គិតបាន"។ + +--- +## ការរកឃើញសំខាន់ៗ + +- 1763, 1812 [ទ្រឹស្តីBayes](https://wikipedia.org/wiki/Bayes%27_theorem) និងមុខងាររបស់វា។ ទ្រឹស្តីនេះ និងការប្រើប្រាស់របស់វាជាផ្នែកមូលដ្ឋាននៃការទាយទ្រង់, ពិពណ៌នាពីប្រភេទភាពនៃព្រឹត្តិការណ៍មួយនៅលើការយល់ដឹងពីមុន។ +- 1805 [ទ្រឹស្តីបួនកន្លែងតិចបំផុត](https://wikipedia.org/wiki/Least_squares) ដោយគណិតវិទ្យាករជប៉ុន Adrien-Marie Legendre។ ទ្រឹស្តីនេះ ដែលអ្នកនឹងរៀននៅក្នុងមេរៀន Regression របស់យើង ជួយសម្រួលក្នុងការសម្រួលទិន្នន័យ។ +- 1913 [ខ្សែ Markov](https://wikipedia.org/wiki/Markov_chain) ដែលបានដាក់ឈ្មោះដោយគណិតវិទ្យាកររុស្ស៊ី Andrey Markov ជួយពិពណ៌នារបៀបលំដាប់នៃព្រឹត្តិការណ៍ដែលអាចកើតមានដោយផ្អែកលើស្ថានភាពមុន។ +- 1957 [Perceptron](https://wikipedia.org/wiki/Perceptron) គឺជាប្រភេទអ្នកចាត់ថ្នាក់បែបស្របបន្ទាត់ ដែលបានបង្កើតដោយបុគ្គលិកចិត្តវិទ្យាអាមេរិក Frank Rosenblatt ដែលជាគន្លងនៃការរីកចម្រើនក្នុង deep learning។ + +--- + +- 1967 [អ្នកជិតស្និទ្ធបំផុត](https://wikipedia.org/wiki/Nearest_neighbor) គឺបាល់ហ្គារីតដែលបានរចនាដំបូងសម្រាប់គូសផ្លូវ។ ក្នុងបរិបទ ML វាអាចប្រើសម្រាប់រកឃើញទ្រង់ទ្រាយ។ +- 1970 [Backpropagation](https://wikipedia.org/wiki/Backpropagation) ត្រូវបានប្រើសម្រាប់ហ្វឹកហាត់ [ធំណាលសរសៃប្រសាទមុខមាត់.feedforward](https://wikipedia.org/wiki/Feedforward_neural_network)។ +- 1982 [Recurrent Neural Networks](https://wikipedia.org/wiki/Recurrent_neural_network) គឺជាធំណាលសរសៃប្រសាទមួយដែលដើមមកពី feedforward neural networks ដែលបង្កើតក្រាបបន្ថែមពេលវេលា។ + +✅ សូមស្រាវជ្រាវបន្តិចបន្តួច។ តើកាលបរិច្ឆេទផ្សេងទៀតណាដែលនៅសោះជាកត្តាសំខាន់ក្នុងប្រវត្តិអំពី ML និង AI? + +--- +## 1950៖ ម៉ាស៊ីនដែលគិតបាន + +Alan Turing ដែលជាមនុស្សដ៏អស្ចារ្យម្នាក់ ដែលត្រូវបានជ្រើសរើស [ដោយសាធារណជនឆ្នាំ 2019](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) អោយជាសាស្ត្រាចារ្យដ៏អស្ចារ្យបំផុតក្នុងទសវត្សរ៍ 20, គេធ្លាប់បានជួយដាក់មូលដ្ឋានសម្រាប់គំនិតម៉ាស៊ីនដែលអាច "គិតបាន"។ គាត់បានប្រឈមមុខនឹងអ្នកពិជ័យនានា និងតម្រុយខ្លួនឯងក្នុងការរកភស្តុតាងសម្រាប់គំនិតនេះ ដោយការបង្កើត [តេស្ត Turing](https://www.bbc.com/news/technology-18475646) ដែលអ្នកនឹងស្វែងយល់ក្នុងមេរៀន NLP របស់យើង។ + +--- +## 1956៖ គម្រោងស្រាវជ្រាវរដូវក្តៅ Dartmouth + +"គម្រោងស្រាវជ្រាវរដូវក្តៅ Dartmouth លើបញ្ញាសិប្បនិម្មិត គឺជាព្រឹត្តិការណ៍ដ៏សំខាន់សម្រាប់សាលាបញ្ញាសិប្បនិម្មិត" ហើយក៏នៅទីនេះផងដែរនេះគេបានប្រើពាក្យ 'artificial intelligence' ជាលើកដំបូង ([ប្រភព](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth))។ + +> គ្រប់ផ្នែកនៃការរៀន ឬលក្ខណៈណាមួយនៃបញ្ញា អាចពិពណ៌នាបានយ៉ាងម៉ត់ចត់ ដូច្នេះម៉ាស៊ីនអាចបង្កើតឡើងដើម្បីធ្វើហ្គោលម៉ូដែលនោះ។ + +--- + +អ្នកស្រាវជ្រាវដឹកនាំគឺ គ្រូបន្លិចគណិតវិទ្យា John McCarthy ដែលមានក្តីសង្ឃឹម "ដើម្បីបន្តទៅលើមូលដ្ឋាននៃការប៉ាន់ប្រមាណថា គ្រប់ផ្នែកនៃការរៀន ឬលក្ខណៈណាមួយនៃរបស់ពិតបញ្ញា អាចពិពណ៌នាបានយ៉ាងម៉ត់ចត់ ដូច្នេះម៉ាស៊ីនអាចធ្វើតួមួយដើម្បីធ្វើម៉ូដែលបាន។" អ្នកចូលរួមរួមមានអ្នកវិចិកគណិត Minsky Marvin ម្នាក់ផ្សេងទៀត។ + +កម្មវិធីសិក្សានេះគឺត្រូវបានគេចាត់ទុកថាបានចាប់ផ្តើមនិងលូតលាស់ការពិភាក្សាជាច្រើន រួមរួមទាំង "ការរីកចម្រើនវិធីសាស្ត្រសញ្ញា, ប្រព័ន្ធផ្តោតលើដែនកំណត់ (ប្រព័ន្ធឯកទេសដំបូង), និងប្រព័ន្ធអនុវត្តតាមការបញ្ចេញមតិប្រៀបធៀបនឹងប្រព័ន្ធប្រមូលវិទ្យា" ([ប្រភព](https://wikipedia.org/wiki/Dartmouth_workshop))។ + +--- +## 1956 - 1974៖ "ឆ្នាំមាស" + +ចាប់ពីទសវត្សរ៍ 1950 មកដល់កណ្ដាលទសវត្សរ៍ '70, ការពេញចិត្តថាទំនុកចិត្តថា AI អាចដោះស្រាយបញ្ហាជាច្រើនបាន។ ក្នុងឆ្នាំ 1967 Marvin Minsky បានបញ្ជាក់ដោយមានទំនុកចិត្តថា "ក្នុងរយៈពេលមួយជំនាន់ ... បញ្ហានៃការបង្កើត 'artificial intelligence' នឹងត្រូវបានដោះស្រាយយ៉ាងសំខាន់។" (Minsky, Marvin (1967), Computation: Finite and Infinite Machines, Englewood Cliffs, N.J.: Prentice-Hall) + +ការស្រាវជ្រាវសំដៅទៅលើដំណើរការ​ភាសា​ធម្មជាតិបានរីកចម្រើន ការស្វែងរកបានកែលម្អ និងក្លាយទៅជាខ្លាំងជាងមុន និង​មានគំនិត ‘micro-worlds’ ដែលបំពេញភារកិច្ចដោយប្រើការណែនាំភាសារសាមញ្ញ។ + +--- + +ការស្រាវជ្រាវត្រូវបានផ្តល់ថវិការយ៉ាងល្អពីអង្គការរដ្ឋបាល ការរីកចម្រើនក្នុងទស្សនវិជ្ជា និងបាល់ហ្គារីត និងបានបង្កើតម៉ាស៊ីនឆ្លាតវៃមួយចំនួន។ មួយចំនួនក្នុងម៉ាស៊ីនទាំងនេះរួមមាន៖ + +* [Shakey the robot](https://wikipedia.org/wiki/Shakey_the_robot) ដែលអាចផ្លាស់ទី និងសម្រេចការប្រតិបត្ដិការដោយមានវិជ្ជាជីវៈ។ + + ![Shakey, ម៉ាស៊ីនឆ្លាតវៃមួយ](../../../../translated_images/km/shakey.4dc17819c447c05b.webp) + > Shakey ក្នុងឆ្នាំ 1972 + +--- + +* Eliza ដែលជាប្រភេទ 'chatterbot' ដំបូង អាចសម្ភាសជាមួយមនុស្ស និងដើរតួជាអ្នកព្យាបាលមួយ 'therapist' ប្រល័យ។ អ្នកនឹងរៀនបន្ថែមពី Eliza នៅក្នុងមេរៀន NLP។ + + ![Eliza, ប័ណ្ណ](../../../../translated_images/km/eliza.84397454cda9559b.webp) + > គំរូមួយនៃ Eliza, chatbot + +--- + +* "Blocks world" ជាគំរូ micro-world មួយដែលប្លុកអាចត្រូវបានដាក់ស្នូរនិងតម្រៀបនៅ តេស្តល្បងក្នុងការបង្រៀនម៉ាស៊ីនឲ្យធ្វើការសម្រេចចិត្តក៏ត្រូវបានអនុវត្ត។ ការរីកចម្រើនដែលបានបង្កើតឡើងជាមួយបណ្ណាល័យដូចជា [SHRDLU](https://wikipedia.org/wiki/SHRDLU) បានជំនួយឲ្យមានការរីកចម្រើនក្នុងការប្រាស្រ័យភាសា។ + + [![blocks world with SHRDLU](https://img.youtube.com/vi/QAJz4YKUwqw/0.jpg)](https://www.youtube.com/watch?v=QAJz4YKUwqw "blocks world with SHRDLU") + + > 🎥 ចុចរូបថតខាងលើសម្រាប់វីដេអូ៖ Blocks world ជាមួយ SHRDLU + +--- +## 1974 - 1980៖ "រដូវរងារ AI" + +ចាប់ពីកណ្ដាលទសវត្សរ៍ 1970 វាបានក្លាយជាការប៉ាន់ប្រមាណថាការធ្វើម៉ាស៊ីនឆ្លាតវៃមានភាពស្មុគស្មាញជាងការប៉ាន់ទុក ហើយការសន្យារបស់វាក្រោមសំណុំបញ្ញត្តិថាមពលគណនា មានការប៉ុនប៉ងលើសលប់។ ថវិកាត្រូវបានកាត់បន្ថយ ហើយទំនុកចិត្តក្នុងវិស័យបានត្រង់ការ។ បញ្ហាដែលមានឥទ្ធិពលដល់ទំនុកចិត្តរួមមាន៖ +--- +- **កំណត់លក្ខណៈ** លទ្ធភាពគណនាគឺមានកំណត់ខ្លាំង។ +- **ការរីកចម្រើនប្រមូលផ្តុំ** ចំនួនប៉ារ៉ាម៉ែត្រដែលត្រូវហ្វឹកហាត់មានការកើនឡើងយ៉ាងច្រើននៅពេលបានសុំសំណុំបន្ថែមពីកុំព្យូទ័រ ដោយគ្មានការរីកចម្រើននៅលើថាមពលនិងសមត្ថភាពគណនា។ +- **ទិន្នន័យខ្វះខាត** មានទិន្នន័យមិនគ្រប់គ្រាន់ដែលជារារាំងដល់ដំណើរការប្រលង, អភិវឌ្ឍ និងកែលម្អបាល់ហ្គារីត។ +- **តើយើងកំពុងសួរសំណួរត្រឹមត្រូវឬទេ?** សំណួរដែលបានសួរបានចាប់ផ្តើមមានការសង្ស័យ។ អ្នកស្រាវជ្រាវបានទទួលកំណត់ត្រានូវការរិះគន់ចំពោះវិធីសាស្ត្ររបស់ពួកគេ៖ + - តេស្ត Turing ត្រូវបានពិចារណា តាមរយៈគំនិតផ្សេងៗ ដូចជា 'ទ្រឹស្តីបន្ទប់ចិន' ដែលបានបង្ហាញថា "កម្មវិធីកុំព្យូទ័រឌីជីថលអាចបង្ហាញថាវា​យល់ភាសា ប៉ុន្តែមិនអាចបង្កើតការយល់ដឹងពិតប្រាកដ។" ([ប្រភព](https://plato.stanford.edu/entries/chinese-room/)) + - សីលធម៌នៃការបង្កើតវត្ថុបញ្ញាសិប្បនិម្មិត ដូចជា "អ្នកព្យាបាល" ELIZA ត្រូវបានគេបដិសេធ។ + +--- + +នៅក្នុងពេលតែមួយ ក្រុមគំនិត AI ផ្សេងៗបានចាប់ផ្តើមបង្កើតឡើង។ មានការផ្គុំចេញជាគំនិតផ្ទុកពីវិធីដំណើរការ ["scruffy" និង "neat AI"](https://wikipedia.org/wiki/Neats_and_scruffies)។ សេឡាប៊ល _scruffy_ បានកែប្រែកម្មវិធីរយៈពេលជាច្រើនម៉ោងរហូតដល់ទទួលបានលទ្ធផលយ៉ាងចង់បាន។ សេឡាប៊ល _neat_ "ផ្តោតលើហេតុផលនិងការដោះស្រាយបញ្ហាផ្លូវការ"។ ELIZA និង SHRDLU គឺជា​ប្រព័ន្ធ _scruffy_ មានឈ្មោះល្បី។ នៅទសវត្សរ៍ 1980 ខណៈមានតម្រូវការបង្កើតប្រព័ន្ធ ML អាចធ្វើឡើងម្ដងទៀត, វិធីសាស្ត្រ _neat_ បានទទួលការគាំទ្រជាច្រើន ព្រោះលទ្ធផលបង្ហាញបានច្បាស់លាស់ជាង។ + +--- +## ប្រព័ន្ធឯកទេសទសវត្សរ៍ 1980 + +ខណៈវិស័យកំពុងរីកចម្រើន ប្រយោជន៍របស់វាកាន់តែច្បាស់លាស់សម្រាប់អាជីវកម្ម ហើយនៅទសវត្សរ៍ 1980 ក៏មានការរាលដាលនៃ 'ប្រព័ន្ធឯកទេស'។ "ប្រព័ន្ធឯកទេសគឺជាប្រភេទកម្មវិធី AI (artificial intelligence) ដែលជោគជ័យដំបូងមួយ" ([ប្រភព](https://wikipedia.org/wiki/Expert_system))។ + +ប្រព័ន្ធនេះជារូបមន្ត _ផ្សំជាមួយគ្នា_ ដែលមានផ្នែកមួយជាគ្រឿងចស្ត្រ​និយមដែលកំណត់តម្រូវការអាជីវកម្ម និងផ្នែកមួយជាគ្រឿងចស្ត្រអនុវត្តប្រើប្រាស់បាល់ហ្គារីតដើម្បីសិក្សាផ្នែកអត្ថន័យថ្មី។ + +ទសវត្សនេះក៏ទទួលបានការចាប់អារម្មណ៍កាន់តែច្រើនលើបណ្ដាញសរសៃប្រសាទ។ + +--- +## 1987 - 1993៖ AI 'នៅស្ងាត់' + +ការរីកចម្រើននៃម៉ាស៊ីនឯកទេសដែលមានពិសេសធ្វើឲ្យវាក្លាយជាពិសេសពេក។ ការលេចធ្លោរបស់កុំព្យូទ័រផ្ទាល់ខ្លួនក៏ប្រកួតប្រជែងជាមួយប្រព័ន្ធធំៗដែលមានតែមួយនេះ។ ការចំណាយនៅលើកុំព្យូទ័របានជោគជ័យ ហើយវាបានបើកផ្លូវទៅរកការប្រសើរឡើងនៃទិន្នន័យធំ។ + +--- +## 1993 - 2011 + +រយៈពេលនេះបានឃើញជំនាន់ថ្មីសម្រាប់ ML និង AI ដើម្បីដោះស្រាយបញ្ហាកន្លងមកដែលផ្ទុះពីកំណត់ទិន្នន័យនិងថាមពលគណនា។ ចំនួនទិន្នន័យបានកើនឡើងយ៉ាងឆាប់រហ័ស និងអាចប្រើបានយ៉ាងទូលំទូលាយ ពិសេសជាមួយកំណើតនៃស្មាតហ្វូននៅឆ្នាំ 2007។ ថាមពលគណនាក៏កើនឡើងយ៉ាងឆាប់រហ័ស និងបាល់ហ្គារីតបានរីកចម្រើនជាប់គ្នា។ វិស័យបានចាប់ផ្តើមឈានដល់ភាពចាស់ទុំ ពីព្រោះថ្ងៃខ្លះនៃការរំសាយឥតការត្រួតពិនិត្យបានក្លាយទៅជាវិស័យពិតប្រាកដ។ + +--- +## ឥឡូវនេះ + +ថ្ងៃនេះ ការរៀនម៉ាស៊ីន និង AI ប៉ះពាល់ទៅលើគ្រប់ផ្នែកនៃជីវិតយើង។ រយៈពេលនេះត្រូវការជំនាញយល់ដឹងយ៉ាងម៉ត់ចត់អំពីហានិភ័យ និងផលប៉ះពាល់ធ្វើអោយមានពីរបាល់ហ្គារីតទាំងនេះលើជីវិតមនុស្ស។ ដូចដែល Brad Smith របស់ Microsoft បាននិយាយថា "បច្ចេកវិទ្យាព័ត៌មាន បង្កឡើងនូវបញ្ហាដែលទៅដល់ស្នូលនៃការការពារសិទ្ធិមនុស្សមេធាវីដូចជារក្សាសម្ងាត់ និងសិទ្ធិថ្លែងការណ៍។ បញ្ហានេះកើនឡើងការទទួលខុសត្រូវចំពោះក្រុមហ៊ុនបច្ចេកវិទ្យាដែលបង្កើតផលិតផលទាំងនេះ។ ក្នុងទស្សនវិជ្ជារបស់យើង វាក៏ហៅឲ្យមានច្បាប់រដ្ឋាភិបាលយ៉ាងម៉ត់ចត់ និងបង្កើតនីតិវិធីជុំវិញការប្រើប្រាស់លើសស្រឡាយទទួលបទបង្រៀន។" ([ប្រភព](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/))។ + +--- + +វានៅតែមិនទាន់បានដឹងថា អនាគតនឹងគ្រប់គ្រងអ្វីទេ ប៉ុន្តែវាសំខាន់ក្នុងការយល់ដឹងអំពីប្រព័ន្ធកុំព្យូទ័រ និងកម្មវិធី និងបាល់ហ្គារីតដែលវារត់។ យើងសង្ឃឹមថាផែនការសិក្សានេះនឹងជួយអ្នកយល់ដឹងកាន់តែច្បាស់ ដើម្បីអោយអ្នកអាចសម្រេចចិត្តដោយខ្លួនឯង។ + +[![ប្រវត្តិ deep learning](https://img.youtube.com/vi/mTtDfKgLm54/0.jpg)](https://www.youtube.com/watch?v=mTtDfKgLm54 "ប្រវត្តិ deep learning") +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូ៖ Yann LeCun ពិភាក្សាអំពីប្រវត្តិ deep learning ក្នុងមេរៀននេះ + +--- +## 🚀ការប្រកួតប្រជែង + +ស្វែងរកមួយក្នុងចំណោមព្រឹត្តិការណ៍ប្រវត្តិសាស្ត្រទាំងនេះ ហើយស្វែងយល់បន្ថែមអំពីមនុស្សនៅពីក្រោយពួកវា។ មានតួអង្គគួរឲ្យចាប់អារម្មណ៍ ហើយគ្មានការរកឃើញវិទ្យាសាស្ត្រណាមួយដែលបានបង្កើតឡើងនៅក្នុងអវកាសវប្បធម៌ទទេ។ តើអ្នកបានរកឃើញអ្វី? + +## [ប្រឡងបន្ទាប់ពីរៀន](https://ff-quizzes.netlify.app/en/ml/) + +--- +## ការត្រួតពិនិត្យ និងសិក្សាឯករាជ្យ + +នេះជារបស់មួយដែលត្រូវមើលនិងស្តាប់៖ + +[ប៉ុស្តិ៍បាស្កែតនេះដែល Amy Boyd ពិភាក្សាអំពីការវិវត្តន៍នៃ AI](http://runasradio.com/Shows/Show/739) + +[![ប្រវត្តិ AI ដោយ Amy Boyd](https://img.youtube.com/vi/EJt3_bFYKss/0.jpg)](https://www.youtube.com/watch?v=EJt3_bFYKss "ប្រវត្តិ AI ដោយ Amy Boyd") + +--- + +## អនុវត្តការ + +[បង្កើតកាលវេលា](assignment.md) + +--- + + +**ការបញ្ជាក់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខិតខំសំរាប់ភាពច្បាស់លាស់ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬការបញ្ចូលព័ត៌មានមិនត្រឹមត្រូវជាប់គ្នា។ ឯកសារដើមក្នុងភាសាមួយដើមគួរត្រូវបានគេស្គាល់ថាជា​រៀងត្រង់ជាមួយដើម។ សម្រាប់ព័ត៌មានដែលមានសារៈសំខាន់ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/1-Introduction/2-history-of-ML/assignment.md b/translations/km/1-Introduction/2-history-of-ML/assignment.md new file mode 100644 index 000000000..e1cb9c781 --- /dev/null +++ b/translations/km/1-Introduction/2-history-of-ML/assignment.md @@ -0,0 +1,18 @@ +# បង្កើតបន្ទាត់ពេលវេលា + +## សេចក្ដីណែនាំ + +ប្រើ [repo នេះ](https://github.com/Digital-Humanities-Toolkit/timeline-builder) បង្កើតបន្ទាត់ពេលវេលា ស្ដីពីជំរៅណាមួយនៃប្រវត្តិសាស្ត្ររបស់អាល់ហ្គោរិធម៍ សាស្ត្រគណិតវិទ្យា ស្ថិតិសាស្ត្រ បញ្ញាសិប្បនិម្មិត ឬរបៀបរៀនម៉ាស៊ីន ឬការតម្រង់គ្នានៃវា។ អ្នកអាចផ្ដោតលើមនុស្សម្នាក់ មតិមួយ ឬរយៈពេលយូរនៃការគិត។ ត្រូវប្រាកដថាបញ្ចូលធាតុ multimedia។ + +## ការ៉ាបៀង + +| កម្រិត | ល្អឥតខ្ចោះ | ពេញលេញ | តម្រូវការកែលម្អ | +| -------- | ----------------------------------------------- | ------------------------------------- | ---------------------------------------------------------------- | +| | បន្ទាត់ពេលវេលាបានដាក់បង្ហាញជាទំព័រ GitHub | កូដមិនពេញលេញ ហើយមិនបានដាក់បង្ហាញ | បន្ទាត់ពេលវេលាមិនពេញលេញ មិនបានស្រាវជ្រាវល្អ និង មិនបានដាក់បង្ហាញ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ខណៈដែលយើងខិតខំប្រឹងប្រែងក្នុងការបញ្ជាក់ភាពត្រឹមត្រូវ សូមជម្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមូលដ្ឋានគួรถูกគេយកចិត្តទុកដាក់ថាជា​ប្រភពដ្ឋានមួយដែលមានតម្លៃ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សដែលជាអ្នកជំនាញត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-Introduction/3-fairness/README.md b/translations/km/1-Introduction/3-fairness/README.md new file mode 100644 index 000000000..f7ce59e9d --- /dev/null +++ b/translations/km/1-Introduction/3-fairness/README.md @@ -0,0 +1,163 @@ +# ការបង្កើតដំណោះស្រាយម៉ាស៊ីនរៀនជាមួយ AI ដែលមានការទទួលខុសត្រូវ + +![សង្ខេបអំពី AI ដែលមានការទទួលខុសត្រូវក្នុងម៉ាស៊ីនរៀនក្នុងសកេតណូត](../../../../translated_images/km/ml-fairness.ef296ebec6afc98a.webp) +> សកេតណូតដោយ [Tomomi Imura](https://www.twitter.com/girlie_mac) + +## [គន្លឹះសំណួរមុនពេលសិក្សា](https://ff-quizzes.netlify.app/en/ml/) + +## ជំហានបើក + +ក្នុងមេរៀននេះ អ្នកនឹងចាប់ផ្តើមស្វែងរកពីរបៀបដែលម៉ាស៊ីនរៀនអាចវាយបង្វិលនិងមានឥទ្ធិពលលើជីវិតប្រចាំថ្ងៃរបស់យើង។ ទាំងឥឡូវនេះ ប្រព័ន្ធនិងម៉ូដែលជាប់ពាក់ព័ន្ធក្នុងភារកិច្ចសម្រេចចិត្តប្រចាំថ្ងៃដូចជា ការបញ្ជាក់ជំងឺសុខាភិបាល ការអនុម័តឥណទាន ឬការរកឃើញការជ្រុលបំពាន។ ដូច្នេះ វាពិតជាសំខាន់ណាស់ដែលម៉ូដែលទាំងនេះធ្វើការល្អដើម្បីផ្តល់លទ្ធផលដែលអាចទុកចិត្តបាន។ ដូចជាកម្មវិធីទូទៅណាមួយប្រព័ន្ធ AI អាចខកចិត្តនឹងការរំពឹងទុក ឬមានលទ្ធផលដែលមិនចង់បាន។ នេះហើយហ្នឹងជាហេតុផលដែលយើងត្រូវតែបង្រៀនខ្លួនឯងអំពីរបៀបយល់ និងពន្យល់អំពីអាកប្បករណ៍នៃម៉ូដែល AI។ + +សន្ដិភាពនូវអ្វីដែលអាចកើតមានឡើងពេលដែលទិន្នន័យដែលអ្នកកំពុងប្រើសម្រាប់បង្កើតម៉ូដែលទាំងនេះខ្វះក្រុមហ៊ុនជនជាតិខុសៗគ្នា ដូចជា ជាតិកុលលក្ខណៈ ភេទ ទស្សនវិស័យនយោកយោបាយ សាសនា ឬតំណាងនយោបាយដែលមានការលើសលប់។ តើវាយយកម៉ូដែលបានបង្ហាញលទ្ធផលផ្សេងទេវាសម្រាប់ខ្លឹមសារគណៈជនជាតិកំណត់មួយ? តើផលប៉ះពាល់សម្រាប់កម្មវិធីនេះមានអ្វីខ្លះ? លើសពីនេះ តើពេលម៉ូដែលមានលទ្ធផលអាក្រក់ និងបង្កមិត្តវិបត្តិក្នុងមនុស្ស តើនរណាជាទីតាំងទទួលខុសត្រូវចំពោះអាកប្បករិតនៃប្រព័ន្ធ AI? នេះជាសំណួរមួយចំនួនដែលយើងនឹងស្វែងរកក្នុងមេរៀននេះ។ + +ក្នុងមេរៀននេះ អ្នកនឹង៖ + +- បង្កើតការយល់ដឹងអំពីសារៈសំខាន់នៃភាពយុត្តិធម៌ក្នុងម៉ាស៊ីនរៀន និងគ្រោះថ្នាក់ដែលពាក់ព័ន្ធនឹងភាពយុត្តិធម៌។ +- មកស្គាល់នឹងការអនុវត្តន៍នៃការស្វែងរកចំពោះភាពខុសគ្នានិងលក្ខណៈពិសេសដើម្បីធានានូវភាពទុកចិត្ត និងសុវត្ថិភាព។ +- មានការយល់ដឹងពីតម្រូវការដើម្បីអោយគ្រប់គ្នាមានសិទ្ធិ និងរចនាប្រព័ន្ធរួមមួយ។ +- ស្វែងរកពីសារៈសំខាន់នៃការការពារឯកជនភាព និងសុវត្ថិភាពទិន្នន័យ និងមនុស្ស។ +- ឃើញសារៈសំខាន់នៃការយកវិធីជាកញ្ចក់ដើម្បីពន្យល់អាកប្បករិតនៃម៉ូដែល AI។ +- មានការត្រួតពិនិត្យចំពោះតួនាទីនៃការទទួលខុសត្រូវដើម្បីកសាងក្តីទុកចិត្តនៅក្នុងប្រព័ន្ធ AI។ + +## លក្ខខណ្ឌមុនពេលចូលរួម + +ជាលក្ខខណ្ឌមុនសូមចូលរួមវគ្គ "គោលនយោបាយ AI ដែលមានការទទួលខុសត្រូវ" និងមើលវីដេអូខាងក្រោម៖ + +ស្វែងរកព័ត៌មានបន្ថែមអំពី AI ដែលមានការទទួលខុសត្រូវតាមរយៈការតាមដាន [Learning Path](https://docs.microsoft.com/learn/modules/responsible-ai-principles/?WT.mc_id=academic-77952-leestott) + +[![Microsoft's Approach to Responsible AI](https://img.youtube.com/vi/dnC8-uUZXSc/0.jpg)](https://youtu.be/dnC8-uUZXSc "Microsoft's Approach to Responsible AI") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូ៖ របៀប Microsoft ក្នុងការទទួលខុសត្រូវ AI + +## ភាពយុត្តិធម៌ + +ប្រព័ន្ធ AI គួរតែប្រើប្រាស់យ៉ាងយុត្តិធម៌ និងជៀសវាងការប៉ះពាល់ដល់ក្រុមមនុស្សដូចគ្នានៅលើបែបផែនផ្សេងៗ។ ឧទាហរណ៍ នៅពេលប្រព័ន្ធ AI ផ្តល់យោបល់កំពុងការព្យាបាលផ្នែកសុខាភិបាល ការដាក់ពាក្យខ្ចីប្រាក់ ឬការជ្រើសរើសការងារ គួរតែផ្តល់ការផ្តល់យោបល់ដូចគ្នារបស់មនុស្សដែលមានរោគសញ្ញាស្រដៀងគ្នា ស្ថានភាពហិរញ្ញវត្ថុស្របគ្នា ឬគុណវប្បកម្មបុគ្គលរបស់ពួកគេ។ មនុស្សម្នាក់ទាំងអស់កាន់តាមដានលទ្ធផលនៃការប្រគល់វេនដែលមានឥទ្ធិពលលើសេចក្តីសម្រេចចិត្តនិងសកម្មភាពរបស់យើង។ ភាពលំអៀងនេះអាចមើលឃើញបានក្នុងទិន្នន័យដែលយើងប្រើសម្រាប់បណ្តុះបណ្តាលប្រព័ន្ធ AI។ ការតំលើងបែបនេះជាដំណើរទាក់ទងដែលអាចកើតឡើងដោយមិនចង់បាន។ វាពិបាកក្នុងការយល់ច្បាស់នៅពេលអ្នកជំពាក់ភាពលំអៀងក្នុងទិន្នន័យ។ + +**“ភាពមិនយុត្តិធម៌”** មានន័យថាប្រសិនបើមានផលប៉ះពាល់អវិជ្ជមាន ឬ “គ្រោះថ្នាក់” សម្រាប់ក្រុមអ្នកមួយ ដូចជាការកំណត់ជាតិកុលភេទ អាយុ ឬស្ថានភាពអ្នកពិការភាព។ គ្រោះថ្នាក់ទាក់ទងនឹងភាពយុត្តិធម៌អាចចែងបានជា៖ + +- **ការចែកចាយ** ជាដើមប្រភេទភេទ ឬជាតិកុលណាមួយត្រូវបានចូលចិត្តលើសពីមួយផ្សេងទៀត។ +- **គុណភាពសេវាកម្ម** ប្រសិនបើអ្នកបណ្តុះទិន្នន័យសម្រាប់ស្ថានการณ์មួយដែលមិនស្មុគស្មាញពេញលេញ នេះនាំឲ្យមានសេវាកម្មដែលឆ្លុះបញ្ចាំងមិនល្អ។ ឧទាហរណ៍ ម៉ាស៊ីនចាក់សាប៊ូដៃមួយមិនអាចដឹងបានពីមនុស្សដែលមានស្បែកស្រអាប់។ [យោង](https://gizmodo.com/why-cant-this-soap-dispenser-identify-dark-skin-1797931773) +- **ការរិះគន់មិនយុត្តិធម៌** ការរិះគន់មិនយុត្តិធម៌ និងបង្វែរ ឧទាហរណ៍ បច្ចេកវិទ្យាការតំឡើងស្លាករូបភាពមួយបានចាក់ស្លាករូបភាពមនុស្សស្បែក​ស្រអាប់​ជា​ក្រិកកណ្តោល។ +- **ការចំណេញឬការខ្វះតំណាង** គំនិតថាក្រុមណាមួយមិនបានមើលឃើញក្នុងវិជ្ជាជីវៈជាក់លាក់ណាមួយ ហើយសេវា ឬមុខងារណាមួយណាដែលបន្តផ្សព្វផ្សាយការខ្វះតំណាងនោះក៏បន្ថែមគ្រោះថ្នាក់។ +- **ស្ទេរ឵អាប់** ភ្ជាប់ក្រុមណាមួយជាមួយលក្ខណៈដែលបានកំណត់មិនជារួសរាយ។ ឧទាហរណ៍ ប្រព័ន្ធបកប្រែភាសារវាងភាសាអង់គ្លេសនិងទួរគីជាច្រើនបង្ហាញភាពមិនត្រឹមត្រូវដោយពាក្យដែលភ្ជាប់ទៅនិងភេទជាមួយនឹងស្ទេរព្រីប។ + +![បកប្រែទៅភាសាទួរគី](../../../../translated_images/km/gender-bias-translate-en-tr.f185fd8822c2d437.webp) +> បកប្រែទៅភាសាទួរគី + +![បកប្រែត្រឡប់ទៅភាសាអង់គ្លេស](../../../../translated_images/km/gender-bias-translate-tr-en.4eee7e3cecb8c70e.webp) +> បកប្រែត្រឡប់ទៅភាសាអង់គ្លេស + +ពេលរចនានិងសាកល្បងប្រព័ន្ធ AI យើងត្រូវធានាថា AI មានភាពយុត្តិធម៌ និងមិនត្រូវបានកំណត់ដើម្បីធ្វើការសម្រេចចិត្តមានការប្រហាក់ប្រហែល ឬការរើសអើងដែលមនុស្សក៏ត្រូវចាត់ទុកថាមិនត្រឹមត្រូវដែរ។ ការធានាអោយមានភាពយុត្តិធម៌ក្នុង AI និងម៉ាស៊ីនរៀននៅតែជាបញ្ហាសង្គមបច្ចេកទេសដ៏ស្មុគស្មាញ។ + +### ភាពទុកចិត្តនិងសុវត្ថិភាព + +ដើម្បីបង្កើតការទុកចិត្ត ប្រព័ន្ធ AI ត្រូវតែទុកចិត្តបាន, មានសុវត្ថិភាព និងមានស្ថិរភាពក្រោមលក្ខខណ្ឌធម្មតានិងមិនរំពឹងទុក។ វាពិតជាសំខាន់ក្នុងការយល់ពីរបៀបប្រព័ន្ធ AI នឹងមានអាកប្បករណ៍នៅក្នុងស្ថានភាពនានា ជាពិសេសនៅពេលវាជា outliers។ នៅពេលបង្កើតដំណោះស្រាយ AI ត្រូវផ្តោតខ្លាំងលើរបៀបដោះស្រាយស្ថានភាពផ្សេងៗដែលអាចមកជួបទៅនឹងដំណោះស្រាយ AI។ ឧទាហរណ៍ ឡានបើកប្រាណថ្មីគួរតែនាំខ្ពស់ការគ្រប់គ្រងសុវត្ថិភាពមនុស្ស។ ដូច្នេះ AI ដែលបើកឡានត្រូវតែពិចារណាស្ថានភាពជា​ច្រើន​អាច​កើត​មាន​ដូច​ជា ពេលกลางคืน ភ្លៀង បាញ់ស្រអប់ ក្មេងចូលរថយន្ត សត្វចិញ្ចឹម​ ការសាងសង់ផ្លូវ។ ប្រព័ន្ធ AI អាចគ្រប់គ្រងស្ថានភាពទាំងអស់យ៉ាងត្រឹមត្រូវនិងមានសុវត្ថិភាព បង្ហាញពីកម្រិតការព្យាបាលរបស់អ្នកវិទ្យាសាស្រ្តទិន្នន័យ ឬអ្នកអភិវឌ្ឍ AI មុនពេលរចនានិងសាកល្បងប្រព័ន្ធ។ + +> [🎥 ចុចទីនេះសម្រាប់វីដេអូ: ](https://www.microsoft.com/videoplayer/embed/RE4vvIl) + +### ការរួមបញ្ចូល + +ប្រព័ន្ធ AI គួរតែរចនាឡើងដើម្បីពាក់ព័ន្ធ និងផ្តល់អំណាចដល់ទាំងអស់។ នៅពេលរចនា និងអនុវត្តប្រព័ន្ធ AI អ្នកវិទ្យាសាស្រ្តទិន្នន័យ និងអ្នកអភិវឌ្ឍ AI ត្រូវកំណត់និងដោះស្រាយអំពើការកំណត់គោលដៅដែលអាចច្រេីនមនុស្សដោយមិនចង់បាន។ ឧទាហរណ៍ មានមនុស្ស 1 ពាន់លាននាក់ដែលមានជំងឺពិការភាពនៅជុំវិញពិភពលោក។ ជាមួយនឹងការវិវឌ្ឍ AI ពួកគេអាចចូលដំណើរការព័ត៌មាន និងឱកាសជាច្រើនបានងាយស្រួលក្នុងជីវិតប្រចាំថ្ងៃរបស់ពួកគេ។ ដោយដោះស្រាយឧបសគ្គ ទំនិញសម្រាប់ច្នៃប្រឌិតនិងអភិវឌ្ឍផលិតផល AI ដែលមានបទពិសោធន៍ល្អប្រសើរដែលអាចផ្ដល់អត្ថប្រយោជន៍ដល់គ្រប់គ្នា។ + +> [🎥 ចុចទីនេះសម្រាប់វីដេអូ: ការរួមបញ្ចូលក្នុង AI](https://www.microsoft.com/videoplayer/embed/RE4vl9v) + +### សុវត្ថិភាព និងឯកជនភាព + +ប្រព័ន្ធ AI គួរតែមានសុវត្ថិភាព និងគោរពឯកជនភាពរបស់មនុស្ស។ មនុស្សមានកម្រិតការទុកចិត្តតិចទៅលើប្រព័ន្ធដែលបង្កការជ្រុលនូវឯកជនភាព ព័ត៌មាន ឬជីវិតរបស់ពួកគេ។ នៅពេលបណ្តុះម៉ូដែលម៉ាស៊ីនរៀន យើងពឹងផ្អែកលើទិន្នន័យដើម្បីផលិតលទ្ធផលល្អបំផុត។ ក្នុងការធ្វើដូចនេះ ប្រភពទិន្នន័យ និងភាពរឹងប៉ឹងគួរត្រូវបានគិតគូរ។ ឧទាហរណ៍ ទិន្នន័យមានប្រភពពីអ្នកប្រើប្រាស់ ឬទិន្នន័យសាធារណៈ? បន្ទាប់មក នៅពេលធ្វើការជាមួយទិន្នន័យ វានិងមានសារៈសំខាន់ក្នុងការអភិវឌ្ឍប្រព័ន្ធ AI ដែលអាចការពារព័ត៌មានសម្ងាត់ និងទប់ស្កាត់ការប្រហារ។ បើយោងតាមការរីកចម្រើនAI ការគោរពឯកជនភាព និងការការពារព័ត៌មានបុគ្គល និងអាជីវកម្មកាន់តែលំបាកនិងសំខាន់។ បញ្ហាអំពីឯកជនភាពនិងសុវត្ថិភាពទិន្នន័យត្រូវការយកចិត្តទុកដាក់យ៉ាងជិតស្និទ្ធសម្រាប់ AI ព្រោះការចូលដំណើរការទិន្នន័យមានសារៈសំខាន់សម្រាប់ប្រព័ន្ធ AI ក្នុងការធ្វើការទំាងអំពីព្យាករណ៍និងសម្រេចចិត្តបានត្រឹមត្រូវ។ + +> [🎥 ចុចទីនេះសម្រាប់វីដេអូ: សុវត្ថិភាពក្នុង AI](https://www.microsoft.com/videoplayer/embed/RE4voJF) + +- ក្នុងឧស្សាហកម្មយើងបានធ្វើការវិវឌ្ឍយ៉ាងច្រើននៅផ្នែកឯកជនភាព និងសុវត្ថិភាព ដោយពាក់ព័ន្ទយ៉ាងខ្លាំងជាមួយនឹងបទបញ្ជាដូចជា GDPR ។ +- ប៉ុន្តែសម្រាប់ប្រព័ន្ធ AI យើងត្រូវតែទទួលស្គាល់ការពាក់ព័ន្ធរវាងតម្រូវការ ទិន្នន័យផ្ទាល់ខ្លួនបន្ថែម ដើម្បីធ្វើឲ្យប្រព័ន្ធផ្នែកផ្ទាល់ខ្លួន និងប្រសើរឡើង — និងការគោរពឯកជនភាព។ +- ដូចជាការបង្កើតកុំព្យូទ័រចងក្រងនឹងអ៊ីនធឺណិត យើងក៏បានឃើញការកើនឡើងយ៉ាងខ្លាំងនៃបញ្ហាសុវត្ថិភាពដែលពាក់ព័ន្ធនឹង AI៕ +- ខណៈពេលដដែល ក៏ឃើញពីការប្រើប្រាស់ AI ដើម្បីធ្វើឱ្យសុវត្ថិភាពប្រសើរឡើង។ ឧទាហរណ៍ សាច់ញាតិការពារពីវីរុសភាគច្រើនដែលមាននៅសព្វថ្ងៃគឺដំណើរការដោយ AI heuristics ។ +- យើងត្រូវធានាថា បើកម្រិតវិទ្យាសាស្រ្តទិន្នន័យរបស់យើងបញ្ចូលការអនុវត្តៗថ្មីៗទាំងអស់ទាក់ទងនឹងឯកជនភាព និងសុវត្ថិភាព។ + +### ភាពច្បាស់លាស់ + +ប្រព័ន្ធ AI គួរតែដឹងច្បាស់។ ផ្នែកសំខាន់ពីភាពច្បាស់លាស់គឺការពន្យល់អាកប្បករណ៍នៃប្រព័ន្ធ AI និងធាតុផ្សំនៃវា។ ការកែលម្អការយល់ដឹងអំពីប្រព័ន្ធ AI ជំរុញឱ្យអ្នកពាក់ព័ន្ធយល់ថាតើវាដំណើរការយ៉ាងដូចម្តេចនិងហេតុផលដែលវាដំណើរការដូច្នោះ ដើម្បីជួយកំណត់បញ្ហាផ្នែកសមត្ថភាព ភាពសុវត្ថិភាព ផ្លូវការផ្សេងៗ ភាពលំអៀង ភាពមិនសុចរិត ឬលទ្ធផលមិនចង់បាន។ យើងក៏ជឿថា អ្នកប្រើប្រាស់ប្រព័ន្ធ AI គួរតែត្រួតពិនិត្យនិងរាយការណ៍ពេលណានិងហេតុផលដែលពួកគេប្រើប្រាស់វា និងកម្រិតកំណត់នៃប្រព័ន្ធដែលពួកគេចេញការប្រើប្រាស់។ ឧទាហរណ៍ ប្រសិនបើធនាគារប្រើប្រព័ន្ធ AI ជួយសម្រេចចិត្តឥណទាន វាពិតជាសំខាន់ក្នុងការត្រួតពិនិត្យលទ្ធផល និងយល់ថាតើទិន្នន័យណាដែលមានឥទ្ធិពលលើការផ្តល់ដំណឹងរបស់ប្រព័ន្ធ។ រដ្ឋាភិបាលកំពុងចាប់ផ្តើមគ្រប់គ្រង AI នៅក្នុងវិស័យផ្សេងៗ ដូច្នេះអ្នកវិទ្យាសាស្រ្តទិន្នន័យ និងអង្គការត្រូវតែពន្យល់ថាប្រព័ន្ធ AI នេះត្រូវគោរពតាមបទបញ្ជា ឬទេ ជាពិសេសនៅពេលមានលទ្ធផលមិនចង់បាន។ + +> [🎥 ចុចទីនេះសម្រាប់វីដេអូ: ភាពច្បាស់លាស់ក្នុង AI](https://www.microsoft.com/videoplayer/embed/RE4voJF) + +- ពីព្រោះប្រព័ន្ធ AI មានភាពស្មុគស្មាញខ្លាំង បង្កឡើងការលំបាកក្នុងការយល់ពីរបៀបវាដំណើរការ និងបកស្រាយលទ្ធផល។ +- ការខ្វះការយល់ដឹងនេះប៉ះពាល់ដល់វិធីដែលប្រព័ន្ធទាំងនេះត្រូវបានគ្រប់គ្រង ប្រតិបត្តិ និងប្រភេទឯកសារ។ +- ការខ្វះការយល់ដឹងនេះប៉ះពាល់យ៉ាងចាំបាច់ទៅលើការសម្រេចចិត្ត ដែលធ្វើឡើងដោយប្រើលទ្ធផលដែលប្រព័ន្ធទាំងនេះផលិត។ + +### ការទទួលខុសត្រូវ + +មនុស្សដែលរចនានិងចេញផ្សាយប្រព័ន្ធ AI ត្រូវទទួលខុសត្រូវចំពោះរបៀបដែលប្រព័ន្ធរបស់ពួកគេចាក់សោ។ តម្រូវការនេះមានសារៈសំខាន់បំផុត ជាពិសេសជាមួយបច្ចេកវិទ្យាទាក់ទងនឹងការបញ្ចាក់មុខមាត់។ នៅពេលថ្មីៗនេះ មានការទាមទារកើនឡើងសម្រាប់បច្ចេកវិទ្យាបញ្ចាក់មុខមាត់ ជាពិសេសពីអង្គការជំនួយច្បាប់ ដែលឃើញភាពមានសក្តានុពលនៃបច្ចេកវិទ្យានៅក្នុងការស្វែងរកកុមារកំពុងបាត់បង់។ ទោះជាយ៉ាងណា បច្ចេកវិទ្យាអាចត្រូវបានប្រើដោយរដ្ឋាភិបាលដើម្បីឲ្យមានការតាមដានជាប់លាប់លើមនុស្សជាក់លាក់។ ដូច្នេះ អ្នកវិទ្យាសាស្រ្តទិន្នន័យ និងអង្គការត្រូវតែទទួលខុសត្រូវចំពោះវិបត្តិនៃប្រព័ន្ធ AI កំពុងប៉ះពាល់មនុស្ស ឬសង្គម។ + +[![អ្នកស្រាវជ្រាវ AI ដឹកនាំផ្សព្វផ្សាយអំពីការតាមដានទូទៅតាមបច្ចេកវិទ្យាបញ្ចាក់មុខមាត់](../../../../translated_images/km/accountability.41d8c0f4b85b6231.webp)](https://www.youtube.com/watch?v=Wldt8P5V6D0 "Microsoft's Approach to Responsible AI") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូ: ការព្រមានអំពីការតាមដានទូទៅតាមបច្ចេកវិទ្យាបញ្ចាក់មុខមាត់ + +ចុងក្រោយមួយក្នុងចំណោមសំណួរធំបំផុតសម្រាប់ជំនាន់យើង ជា​ជំនាន់ដំបូងដែលនាំ AI សម្រាប់សង្គម គឺរបៀបធានាឲ្យកុំព្យូទ័រនឹងនៅតែទទួលខុសត្រូវទៅមនុស្ស និងរបៀបធានាឲ្យអ្នកដែលរចនាកុំព្យូទ័រនេះនៅតែទទួលខុសត្រូវចំពោះគ្រប់លោកអ្នកផ្សេងទៀត។ + +## ការវាយតម្លៃផលប៉ះពាល់ + +មុនពេលបណ្តុះម៉ូដែលម៉ាស៊ីនរៀន វាជាចាំបាច់ក្នុងការធ្វើការវាយតម្លៃផលប៉ះពាល់ ដើម្បីយល់ពីគោលបំណងនៃប្រព័ន្ធ AI; តើការប្រើប្រាស់នឹងយកទៅប្រើធ្វើអ្វី; កន្លែងនឹងធ្វើការចេញផ្សាយ; និងនរណានឹងធ្វើការប៉ះពាល់ប្រព័ន្ធ។ ព័ត៌មាននេះជួយឲ្យអ្នកវាយតម្លៃ ឬអ្នកសាកល្បងធ្វើការវាយតម្លៃប្រព័ន្ធដឹងថាត្រូវគិតចំពោះមូលហេតុណាខ្លះនៅពេលកំណត់ហានិភ័យ និងលទ្ធផលដែលរំពឹងទុក។ + +ដូចតទៅជាតំបន់ដែលត្រូវផ្តោតខ្លាំងពេលធ្វើការវាយតម្លៃផលប៉ះពាល់៖ + +* **ផលប៉ះពាល់អវិជ្ជមានលើបុគ្គល**។ យល់ដឹងអំពីកំណត់ ឬតម្រូវការ ការប្រើប្រាស់មិនគាំទ្រ ឬកំណត់ខ្វះខាតណាមួយដែលអាចប៉ះពាល់ដល់សមត្ថភាពនៃប្រព័ន្ធមានសារៈសំខាន់ដើម្បីថែរក្សាឲ្យប្រព័ន្ធមិនត្រូវបានប្រើប្រាស់ដោយដូចជាការបង្កគ្រោះថ្នាក់លើបុគ្គល។ +* **តម្រូវការទិន្នន័យ**។ យល់ពីរបៀបនិងកន្លែងប្រព័ន្ធនឹងប្រើទិន្នន័យ អនុញ្ញាតឲ្យអ្នកវាយតម្លៃចែកចាយទិន្នន័យចំពោះតម្រូវការណាមួយដែលអ្នកត្រូវបានទុកចិត្ត (ឧ. បទបញ្ជា GDPR ឬ HIPPA)។ លើសពីនេះ ពិនិត្យមើលប្រភព ឬបរិមាណទិន្នន័យគ្រប់គ្រាន់សម្រាប់ការបណ្តុះបណ្តាល។ +* **សង្ខេបផលប៉ះពាល់**។ ប្រមូលបញ្ជីនៃគ្រោះថ្នាក់ដែលអាចកើតមានពីការប្រើប្រាស់ប្រព័ន្ធ។ តាមដានពេញលេញរយៈម៉ាស៊ីនរៀនប្រើប្រាស់ ដើម្បីពិនិត្យថាបញ្ហាដែលកំណត់បានត្រូវបានកាត់បន្ថយ ឬដោះស្រាយ។ +* **គោលបំណងដែលអាចប្រើប្រាស់បាន** សម្រាប់គោលការណ៍មូលដ្ឋានទាំងប្រាំមួយ។ វាយតម្លៃថាគោលបំណងនីមួយៗត្រូវបានបំពេញ និងមានចន្លោះខ្វះខាតទេ។ + +## ការសំរាមជាមួយ AI ដែលមានការទទួលខុសត្រូវ + +ដូចជាការសំរាមកម្មវិធីទូទៅ ការសំរាមប្រព័ន្ធ AI គឺជាដំណើរការត្រូវតែធ្វើការកំណត់និងដោះស្រាយបញ្ហា។ មានកត្តាច្រើនដែលប៉ះពាល់ដល់ម៉ូដែលដែលមិនផ្ដល់លទ្ធផលដូចបានរំពឹង ឬជាមួយភាពទទួលខុសត្រូវ។ តុល្យភាពសមត្ថភាពម៉ូដែលបែបបុរីជាច្រើនគឺជាការបូកសរុបគុណភាពចំនួននៃសមត្ថភាពម៉ូដែល មិនគ្រប់គ្រាន់សម្រាប់វិភាគថាតើម៉ូដែលផ្ទុះខុសបំណងគោលការណ៍ AI ទេ។ លើសពីនេះ ម៉ូដែលម៉ាស៊ីនរៀនគឺជាប្រអប់ខ្មៅដែលពិបាកយល់ពីមូលហេតុនៃលទ្ធផលរបស់វា ឬផ្តល់ការពន្យល់នៅពេលវាធ្វើកំហុស។ នៅបន្ទាប់នៃវគ្គនេះ យើងនឹងរៀនការប្រើប្រព័ន្ធ Dashboard AI ដែលមានភាពទទួលខុសត្រូវ ដើម្បីជួយសំរុងសំរួលប្រព័ន្ធ AI ។ Dashboard នេះផ្តល់ឧបករណ៍ទូលំទូលាយសម្រាប់អ្នកវិទ្យាសាស្រ្តទិន្នន័យ និងអ្នកអភិវឌ្ឍ AI ដើម្បីធ្វើ៖ + +* **វិភាគកំហុស**។ ដើម្បីកំណត់ចំនួនចែកថ្នាក់កំហុសរបស់ម៉ូដែលដែលអាចប៉ះពាល់ដល់ភាពយុត្តិធម៌ឬភាពទុកចិត្ត។ +* **ទិដ្ឋភាពម៉ូដែល**។ ដើម្បីរកឃើញកន្លែងមានភាពមិនស្មើគ្នានៃគុណភាពម៉ូដែលលើដុំទិន្នន័យផ្សេងៗ។ +* **វិភាគទិន្នន័យ**។ ដើម្បីយល់ពីចំណែកបែកផ្គរទិន្នន័យ និងកំណត់ភាពលំអៀងណាមួយក្នុងទិន្នន័យដែលអាចនាំឲ្យមានបញ្ហាផ្នែកភាពយុត្តិធម៌ ការរួមបញ្ចូល និងភាពទុកចិត្ត។ +* **ការសម្រួលម៉ូដែល**។ ដើម្បីយល់ថាគ្រឿងផ្សំណាដែលមានឥទ្ធិពលលើការព្យាករណ៍របស់ម៉ូដែល។ នេះជួយឲ្យពន្យល់អាកប្បករណ៍របស់ម៉ូដែល ដែលមានសារៈសំខាន់សម្រាប់ភាពច្បាស់លាស់ និងការទទួលខុសត្រូវ។ + +## 🚀 챌린지 + +ដើម្បីជៀសវាងការបង្កគ្រោះថ្នាក់ចូលឆាប់នៅដំបូង យើងគួរតែ៖ + +- មានភាពចម្រុះនៃផ្ទៃខាងក្រោយ និងទស្សនៈរបស់មនុស្សដែលកំពុងធ្វើការលើប្រព័ន្ធ +- វិនិយោគក្នុងសំណុំទិន្នន័យដែលបញ្ចាំងពីភាពចម្រុះក្នុងសង្គមយើង +- អភិវឌ្ឍវិធីសាស្រ្តប្រសើរជាមធ្យោបាយខ្លះក្នុងរយៈពេលវែកំណត់ម៉ាស៊ីនរៀន សម្រាប់រកឃើញ និងកែប្រែ AI ដែលទទួលខុសត្រូវនៅពេលវាកើតឡើង + +គិតអំពីស្ថានភាពជាក់ស្តែងដោយមានភាពអត់ទុកចិត្តក្នុងការបង្កើតម៉ូដែល និងការប្រើប្រាស់។ តើមានអ្វីផ្សេងទៀតត្រូវគិតខ្លះ? + +## [គន្លឹះសំណួរបន្ទាប់សិក្សា](https://ff-quizzes.netlify.app/en/ml/) + +## ការត្រួតពិនិត្យ និងការសិក្សាឯករាជ្យ +នៅមេរៀននេះ អ្នកបានរៀនអំពីមូលដ្ឋានខ្លះៗនៃគំនិតភាពយុត្តិធម៌ និងការអត់យុត្តិធម៌នៅក្នុងការរៀនម៉ាស៊ីន។ + +មើលវគ្គបណ្ដុះបណ្ដាលនេះដើម្បីជ្រាបជ្រាលជ្រៅជាងនេះអំពីប្រធានបទ៖ + +- ក្នុងការតាមដាន AI មានទំនួលខុសត្រូវ៖ នាំយកគោលការណ៍ទៅអនុវត្តដោយ Besmira Nushi, Mehrnoosh Sameki និង Amit Sharma + +[![Responsible AI Toolbox: An open-source framework for building responsible AI](https://img.youtube.com/vi/tGgJCrA-MZU/0.jpg)](https://www.youtube.com/watch?v=tGgJCrA-MZU "RAI Toolbox: An open-source framework for building responsible AI") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូ៖ RAI Toolbox: ស៊ុមបើកម៉ូដែលសម្រាប់សាងសង់ AI មានទំនួលខុសត្រូវ ដោយ Besmira Nushi, Mehrnoosh Sameki, និង Amit Sharma + +ផងដែរ សូមអាន៖ + +- មជ្ឈមណ្ឌលធនធាន RAI របស់ Microsoft៖ [Responsible AI Resources – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4) + +- ក្រុមស្រាវជ្រាវ FATE របស់ Microsoft៖ [FATE: Fairness, Accountability, Transparency, and Ethics in AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/) + +ស៊ុម RAI Toolbox៖ + +- [ឃ្លាំង GitHub របស់ Responsible AI Toolbox](https://github.com/microsoft/responsible-ai-toolbox) + +អានអំពីឧបករណ៍ Azure Machine Learning ដើម្បីធានាការយុត្តិធម៌៖ + +- [Azure Machine Learning](https://docs.microsoft.com/azure/machine-learning/concept-fairness-ml?WT.mc_id=academic-77952-leestott) + +## បេសកកម្ម + +[ស្វែងយល់អំពី RAI Toolbox](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងឱ្យបានត្រឹមត្រូវ សូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសា​ដើមគួរត្រូវបានគេចាត់ទុកជាថ្នាក់ដឹកនាំសម្រាប់ព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយមនុស្សជាជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការជំពាក់ចំពោះការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-Introduction/3-fairness/assignment.md b/translations/km/1-Introduction/3-fairness/assignment.md new file mode 100644 index 000000000..ae61f8d79 --- /dev/null +++ b/translations/km/1-Introduction/3-fairness/assignment.md @@ -0,0 +1,18 @@ +# ស្វែងយល់អំពីប្រអប់ឧបករណ៍ AI ដែលមានការទទួលខុសត្រូវ + +## សេចក្តីណែនាំ + +នៅក្នុងមេរៀននេះ អ្នកបានរៀនអំពីប្រអប់ឧបករណ៍ AI ដែលមានការទទួលខុសត្រូវ ដែលជាគម្រោង "ប្រភពបើកចំហ ដែលដឹកនាំដោយសហគមន៍ ដើម្បីជួយអ្នកវិទ្យាសាស្ត្រទិន្នន័យវិភាគ និងបង្កើនប្រសិទ្ធភាពប្រព័ន្ធ AI"។ សម្រាប់ភារកិច្ចនេះ សូមស្វែងយល់ពី [សៀវភៅកំណត់ត្រា](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/tabular/getting-started.ipynb) មួយនៃប្រអប់ឧបករណ៍ RAI ហើយរាយការណ៍លទ្ធផលរបស់អ្នកក្នុងអត្ថបទឬការនាំเสนอ។ + +## លក្ខខណ្ឌវាយតំលៃ + +| លក្ខណៈ | ល្អឯក | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| | មានការនាំเสนอអត្ថបទឬបង្ហាញ PowerPoint ដែលពិភាក្សាអំពីប្រព័ន្ធ Fairlearn សៀវភៅកំណត់ត្រាដែលបានបើកប្រតិបត្តិ និងមតិយោបល់ដែលបានទាញយកពីការបើកប្រតិបត្តិ | មានការនាំเสนอអត្ថបទដោយគ្មានមតិយោបល់ | មិនមានការនាំเสนอអត្ថបទ | + +--- + + +**ការបដិសេធ**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ក្នុងខណៈពេលដែលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានភាសាដោយដើមគួរត្រូវបានគេរកស៊ីជាខ្សែអធិបតេយ្យ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សគឺបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុស ណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-Introduction/4-techniques-of-ML/README.md b/translations/km/1-Introduction/4-techniques-of-ML/README.md new file mode 100644 index 000000000..e324bf4c0 --- /dev/null +++ b/translations/km/1-Introduction/4-techniques-of-ML/README.md @@ -0,0 +1,125 @@ +# បច្ចេកទេសនៃការរៀនម៉ាស៊ីន + +ដំណើរការនៃការបង្កើត ប្រើប្រាស់ និងថែទាំម៉ូដែលការរៀនម៉ាស៊ីន និងទិន្នន័យដែលពួកវា ប្រើប្រាស់ គឺជាប្រភេទដំណើរការផ្សេងពីច្រើនដំណើរការអភិវឌ្ឍន៍ផ្សេងទៀត។ ក្នុងមេរៀននេះ យើងនឹងបំបែកអាថ៍កំបាំងនៃដំណើរការនេះ ហើយលើកសញ្ញាផ្នែកបច្ចេកទេសសំខាន់ៗដែលអ្នកត្រូវដឹង។ អ្នកនឹង៖ + +- យល់ដឹងអំពីដំណើរការដែលគាំទ្រ ក្រោមកម្រិតខ្ពស់នៃការរៀនម៉ាស៊ីន។ +- សិក្សាពីគំនិតមូលដ្ឋានដូចជា 'ម៉ូដែល' 'ការព្យាករណ៍' និង 'ទិន្នន័យបណ្តុះបណ្តាល'។ + +## [សំនួរត្រួតពិនិត្យមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +[![ML for beginners - Techniques of Machine Learning](https://img.youtube.com/vi/4NGM0U2ZSHU/0.jpg)](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូខ្លីមួយនៃការប្រតិបត្តិមេរៀននេះ។ + +## ការណែនាំ + +នៅកម្រិតខ្ពស់ សិប្បកម្មនៃការបង្កើតដំណើរការរៀនម៉ាស៊ីន (ML) ត្រូវបានបង្កប់ដោយជំហានច្រើន៖ + +1. **សម្រេចចិត្តលើសំណួរ**។ ដំណើរការរៀនម៉ាស៊ីនភាគច្រើនចាប់ផ្តើមដើមដោយការសួរសំណួរដែលមិនអាចឆ្លើយតបដោយកម្មវិធីមានលក្ខខណ្ឌឬប្រព័ន្ធច្បាប់មួយ។ សំណួរទាំងនេះភាគច្រើនមានទំនាក់ទំនងនឹងការព្យាករណ៍ដែលផ្អែកលើយោគន័យទិន្នន័យមួយ។ +2. **រក្សាទិន្នន័យ និងរៀបចំទិន្នន័យ**។ ដើម្បីឆ្លើយសំណួររបស់អ្នក អ្នកត្រូវការទិន្នន័យ។ គុណភាព និងពេលខ្លះ បរិមាណទិន្នន័យរបស់អ្នកនឹងកំណត់ថាតើអ្នកអាចឆ្លើយសំណួរដើមបានល្អប៉ុណ្ណា។ ការមើលឃើញទិន្នន័យជារូបភាពគឺជាផ្នែកសំខាន់នៃជំហាននេះ។ ជំហាននេះរួមមានការបែងចែកទិន្នន័យទៅក្រុមបណ្តុះបណ្តាល និងតេស្ត ដើម្បីបង្កើតម៉ូដែល។ +3. **ជ្រើសរើសវិធីសាស្ត្របណ្តុះបណ្តាល**។ អាស្រ័យលើសំណួររបស់អ្នក និងធម្មជាតិទិន្នន័យ អ្នកត្រូវជ្រើសរើសរបៀបដែលអ្នកចង់បណ្តុះបណ្តាលម៉ូដែល ដើម្បីប្រតិបត្តិរូបភាពទិន្នន័យរបស់អ្នកឱ្យបានល្អបំផុត និងធ្វើការព្យាករណ៍បានត្រឹមត្រូវ។ នេះជាផ្នែកនៃដំណើរការរៀនម៉ាស៊ីនដែលទាមទារជំនាញជាក់លាក់ និងជាផ្នែកច្រើននៃការសាកល្បងយ៉ាងច្រើន។ +4. **បណ្តុះបណ្តាលម៉ូដែល**។ ប្រើប្រាស់ទិន្នន័យបណ្តុះបណ្តាលរបស់អ្នក អ្នកនឹងប្រើលេខាធិការកម្មវិធីនានាដើម្បីបណ្តុះបណ្តាលម៉ូដែល ដើម្បីស្គាល់លំនាំក្នុងទិន្នន័យ។ ម៉ូដែលអាចប្រើប្រាស់ទំងន់ផ្ទៃក្នុងដែលអាចប្តូរបាន ដើម្បីផ្តល់តម្លៃល្អជាងសម្រាប់ផ្នែកជាក់លាក់នៃទិន្នន័យ ដោយមានគោលបំណងបង្កើតម៉ូដែលល្អប្រសើរជាងមុន។ +5. **វាយតម្លៃម៉ូដែល**។ អ្នកប្រើទិន្នន័យដែលមិនដែលបានមើលមុន (ទិន្នន័យតេស្ត) ពីប្រភពទិន្នន័យដែលបានប្រមូល ដើម្បីមើលម៉ូដែលបញ្ចេញសមិទ្ធផលយ៉ាងដូចម្តេច។ +6. **កែតម្រូវប៉ារ៉ាម៉ែត្រ**។ យោងទៅលើសមត្ថភាពរបស់ម៉ូដែល អ្នកអាចធ្វើពន្លឿនដំណើរការឡើងវិញដោយប្រើប៉ារ៉ាម៉ែត្រ ឬអថេរដែលគ្រប់គ្រងអវកាសនៃលេខាធិការ ដែលបានប្រើបណ្តុះបណ្តាលម៉ូដែល។ +7. **ព្យាករណ៍**។ ប្រើបញ្ចូលថ្មីដើម្បីសាកល្បងភាពត្រឹមត្រូវរបស់ម៉ូដែលអ្នក។ + +## តើត្រូវសួរសំណួរអ្វី + +កុំព្យូទ័រមានជំនាញពិសេសក្នុងការរកឃើញលំនាំលាក់ក្នុងទិន្នន័យ។ អត្ថប្រយោជន៍នេះមានប្រយោជន៍សម្រាប់អ្នកស្រាវជ្រាវដែលមានសំណួរអំពីដែនដីមួយដែលមិនអាចឆ្លើយបានងាយដោយបង្កើតប្រព័ន្ធកំណត់លក្ខខ័ណ្ឌបែបច្បាប់។ ឧទាហរណ៍ ក្នុងភារកិច្ចអាគុយស្ត្រី ព័ត៌មានវិទ្យាទិន្នន័យថែមតម្រូវអាចបង្កើតច្បាប់ដូចគេច្នៃប្រឌិតអំពីភាពស្លាប់របស់អ្នកបារីប្រៀបធៀបនឹងអ្នកមិនបារី។ + +យ៉ាងไรก็ตามពេលបញ្ចូលអថេរច្រើនផ្សេងទៀតចូលក្នុងសមីការ ម៉ូដែល ML អាចមានប្រសិទ្ធភាពជាងក្នុងការព្យាករណ៍អត្រាស្លាប់អនាគតដោយផ្អែកលើប្រវត្តិសុខភាពចាស់ៗ។ ឧទាហរណ៍មួយដែលរីករាយជាងគេអាចជាការធ្វើការព្យាករណ៍អាកាសធាតុសម្រាប់ខែមេសា ក្នុងទីតាំងណាមួយដោយផ្អែកលើទិន្នន័យដែលរួមមានទិសដៅអាកាសធាតុ អំពីជាន់ទីតាំង, ផ្លាស់ប្តូរអាកាសធាតុ, ភាពជិតសមុទ្រ, លំនាំឯកសារចរណ៍ខ្យល់ និងច្រើនទៀត។ + +✅ ស្លាយឯកសារនេះ [slide deck](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) ពីម៉ូដែលអាកាសធាតុផ្ដល់ចំណុចមើលប្រវត្តិវិទ្យាសម្រាប់ការប្រើ ML ក្នុងការវិភាគអាកាសធាតុ។ + +## ភារកិច្ចមុនការបង្កើត + +មុននឹងចាប់ផ្តើមបង្កើតម៉ូដែលរបស់អ្នក មានភារកិច្ចជាច្រើនដែលអ្នកត្រូវបញ្ចប់។ ដើម្បីសាកល្បងសំណួររបស់អ្នក និងបង្កើតសំនឹមយោងតាមការព្យាករណ៍របស់ម៉ូដែល អ្នកត្រូវកំណត់ និងកំណត់រចនាសម្ព័ន្ធធាតុជាច្រើន។ + +### ទិន្នន័យ + +ដើម្បីឆ្លើយសំណួររបស់អ្នកដោយប្រាកដ អ្នកត្រូវការទិន្នន័យច្រើនមានប្រភេទត្រឹមត្រូវ។ មានពីររឿងដែលអ្នកត្រូវធ្វើនៅឆ្នាំនេះ៖ + +- **ប្រមូលទិន្នន័យ**។ ការចងចាំមេរៀនមុនអំពីកិច្ចភាពយុត្តិធម៌ក្នុងការវិភាគទិន្នន័យ ចូរប្រមូលទិន្នន័យដោយប្រុងប្រយត្ន៍។ ត្រូវយល់ដឹងពីប្រភពទិន្នន័យនេះ ការបង្វិលបម្រែបម្រួលរបស់វា និងចុះបញ្ជីប្រភពដើម។ +- **រៀបចំទិន្នន័យ**។ មានជំហានជាច្រើនក្នុងដំណើរការរៀបចំទិន្នន័យ។ អ្នកអាចត្រូវដាក់ទិន្នន័យជាបន្ទាត់ និង normalize វាបើវាមកពីប្រភពផ្សេងៗ។ អ្នកអាចបង្កើនគុណភាព និងបរិមាណទិន្នន័យតាមវិធីផ្សេងៗ ដូចជាការបម្លែងខ្សែអក្សរទៅជាចំនួន (ដូចដែលយើងធ្វើក្នុង [Clustering](../../5-Clustering/1-Visualize/README.md))។ អ្នកអាចបង្កើតទិន្នន័យថ្មីពីមួលដើមបាន (ដូចដែលយើងធ្វើក្នុង [Classification](../../4-Classification/1-Introduction/README.md))។ អ្នកអាចសំអាតនិងកែប្រែទិន្នន័យ (ដូចដែលយើងនឹងធ្វើមុនមេរៀន [Web App](../../3-Web-App/README.md))។ បន្ថែមពីនេះ អ្នកអាចត្រូវ randomized និង shuffle វា តាមវិធីសាស្រ្តបណ្តុះបណ្តាលរបស់អ្នក។ + +✅ បន្ទាប់ពីប្រមូល និងដំណើរការទិន្នន័យរបស់អ្នក សូមចំណាយពេលមើលថាទម្រង់របស់វា អាចឱ្យអ្នកដោះស្រាយសំណួរត្រូវបានមែនទេ។ អាចជាករណីដែលទិន្នន័យមិនអាចធ្វើបានល្អក្នុងភារកិច្ចរបស់អ្នក ដូចដែលយើងបានរកឃើញក្នុងមេរៀន [Clustering](../../5-Clustering/1-Visualize/README.md)។ + +### លក្ខណៈពិសេស និងគោលដៅ + +[លក្ខណៈពិសេស](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) គឺជាសម្បត្តិនៃទិន្នន័យដែលអាចវាស់បាន។ នៅក្នុងតារាងទិន្នន័យជាច្រើនវាត្រូវបានបង្ហាញជាថ្មើរឈ្មោះជួរដេកដូចជា 'កាលបរិច្ឆេទ' 'ទំហំ' ឬ 'ពណ៌'។ អថេរលក្ខណៈពិសេសរបស់អ្នក ដែលភាគច្រើនតំណាងដោយ `X` នៅក្នុងកូដ តំណាងឱ្យអថេរបញ្ចូលដែលនឹងត្រូវប្រើសម្រាប់បណ្តុះបណ្តាលម៉ូដែល។ + +គោលដៅគឺជារឿងដែលអ្នកកំពុងព្យាករណ៍។ គោលដៅត្រូវបានតំណាងជាធម្មតា `y` នៅក្នុងកូដ ដើម្បីបង្ហាញចំលើយចំពោះសំណួរដែលអ្នកកំពុងសួរអំពីទិន្នន័យ៖ នៅខែធ្នូ ការពណ៌អំពៅណាដែលមានតម្លៃទាបបំផុត? នៅទីក្រុង San Francisco តំបន់ណាដែលមានតម្លៃអចលនទ្រព្យល្អបំផុត? ពេលខ្លះគោលដៅត្រូវបានហៅថា 'label attribute' ផងដែរ។ + +### ជ្រើសរើសអថេរលក្ខណៈពិសេសរបស់អ្នក + +🎓 **ការជ្រើសរើសលក្ខណៈពិសេស និងការបញ្ចេញលក្ខណៈពិសេស** តើធ្លាប់ដឹងរបៀបជ្រើសអថេរណាមួយក្នុងការបង្កើតម៉ូដែលរបស់អ្នក? ប្រហែលជាអ្នកនឹងត្រូវប្រើវិធីសាស្ត្រជ្រើសរើសលក្ខណៈពិសេស ឬបញ្ចេញលក្ខណៈពិសេស ដើម្បីជ្រើសអថេរដែលត្រឹមត្រូវសម្រាប់ម៉ូដែលមានសមត្ថភាពខ្ពស់បំផុត។ ទាំងពីរបានខុសគ្នា៖ "ការបញ្ចេញលក្ខណៈពិសេសបង្កើតលក្ខណៈថ្មីពីមុខងារ​របស់លក្ខណៈដើម ខណៈពេលការជ្រើសរើសលក្ខណៈពិសេសបង្វិលបញ្ចេញជាសំណុំពីលក្ខណៈសញ្ញា" ([ប្រភព](https://wikipedia.org/wiki/Feature_selection)) + +### មើលឃើញទិន្នន័យរបស់អ្នក + +ផ្នែកសំខាន់មួយនៃឧបករណ៍អ្នកវិទ្យាសាស្ត្រទិន្នន័យគឺមានសមត្ថភាពក្នុងការមើលឃើញទិន្នន័យ ដោយប្រើបណ្ណាល័យល្អៗជាច្រើនដូចជា Seaborn ឬ MatPlotLib។ ការតំណាងទិន្នន័យជារូបភាព អាចអនុញ្ញាតឱ្យអ្នករកឃើញទំនាក់ទំនងលាក់ៗដែលអាចប្រើប្រាស់បាន។ ការមើលឃើញរបស់អ្នកអាចជួយរកឃើញការបង្វិលបម្រែបម្រួល ឬទិន្នន័យមិនត្រូវតម្រូវ (ដូចដែលយើងរកឃើញក្នុង [Classification](../../4-Classification/2-Classifiers-1/README.md))។ + +### បែងចែកឈុតទិន្នន័យរបស់អ្នក + +មុនបណ្តុះបណ្តាល អ្នកត្រូវបែងចែកឈុតទិន្នន័យទៅជាផ្នែកពីរឬច្រើនដែលមានទំហំមិនស្មើគ្នា តែក៏តំណាងឱ្យទិន្នន័យបានល្អ។ + +- **បណ្តុះបណ្តាល**។ ផ្នែកនេះនៃឈុតទិន្នន័យត្រូវបានប្រើសម្រាប់បណ្តុះបណ្តាលម៉ូដែល។ ជាឈុតធំជាងគេនៃឈុតទិន្នន័យដើម។ +- **តេស្ត**។ ឈុតទិន្នន័យតេស្តគឺជាក្រុមទិន្នន័យឯករាជ្យ ដែលភាគច្រើនបានប្រមូលពីទិន្នន័យដើម ត្រូវបានប្រើប្រាស់សម្រាប់ផ្ទៀងផ្ទាត់សមត្ថភាពម៉ូដែលដែលបានបង្កើត។ +- **ផ្ទៀងផ្ទាត់**។ ឈុតផ្ទៀងផ្ទាត់គឺជាក្រុមតូចជាង នៃគំរូឯករាជ្យ ដែលអ្នកប្រើដើម្បីកែតម្រូវអាជ្ញាប័ណ្ណ hyperparameters ឬរចនាសម្ព័ន្ធម៉ូដែល ដើម្បីធ្វើឱ្យម៉ូដែលកាន់តែប្រសើរ។ អាស្រ័យទៅលើទំហំទិន្នន័យ និងសំណួររបស់អ្នក អ្នកអាចមិនត្រូវការបង្កើតឈុតទីបីនេះទេ (ដូចដែលយើងកត់សម្គាល់ក្នុង [ការព្យាករណ៍លំដាប់ពេលវេលា](../../7-TimeSeries/1-Introduction/README.md))។ + +## ការបង្កើតម៉ូដែល + +ប្រើអថេរគំរប់បណ្តុះបណ្តាលរបស់អ្នក គោលបំណងរបស់អ្នកគឺបង្កើតម៉ូដែល ឬតំណាងស្ថិតិរបស់ទិន្នន័យ ដោយប្រើលេខាធិការកម្មវិធីនានាដើម្បី **បណ្តុះបណ្តាល** វា។ ការបណ្តុះបណ្តាលម៉ូដែលអនុញ្ញាតឱ្យវាត្រូវបានបង្ហាញទៅកាន់ទិន្នន័យ និងធ្វើការទាយពីលំនាំដែលវារកឃើញ បញ្ជាក់ និងទទួលយកឬបដិសេធ។ + +### សម្រេចចិត្តលើវិធីសាស្ត្របណ្តុះបណ្តាល + +អាស្រ័យលើសំណួរ និងធម្មជាតិនៃទិន្នន័យ អ្នកនឹងជ្រើសរើសវិធីសាស្ត្រមួយសម្រាប់បណ្តុះបណ្តាលវា។ ដំណើរឆ្លងកាត់ [ឯកសាររបស់ Scikit-learn](https://scikit-learn.org/stable/user_guide.html) - ដែលយើងប្រើនៅក្នុងវគ្គសិក្សានេះ - អ្នកអាចស្វែងយល់ពីវិធីជាច្រើនក្នុងការបណ្តុះបណ្តាលម៉ូដែល។ អាស្រ័យលើបទពិសោធន៍របស់អ្នក អ្នកអាចត្រូវមានការសាកល្បងវិធីផ្សេងៗជាច្រើន ដោយករណីជាក់លាក់ក្រុមអ្នកវិទ្យាសាស្ត្រទិន្នន័យវាយតម្លៃសមត្ថភាពម៉ូដែល ដោយផ្តល់ទិន្នន័យមិនដែលបានមើល មើលភាពត្រឹមត្រូវ ការបង្វិលបម្រែបម្រួល និងបញ្ហាគុណភាពផ្សេងទៀត ហើយជ្រើសរើសវិធីសាស្ត្របណ្តុះបណ្តាលសមរម្យបំផុតសម្រាប់ភារកិច្ច។ + +### បណ្តុះបណ្តាលម៉ូដែល + +ជាប់ជាមួយទិន្នន័យបណ្តុះបណ្តាលរបស់អ្នក អ្នកបានរួចរាល់សម្រាប់ 'fit' វា ដើម្បីបង្កើតម៉ូដែល។ អ្នកនឹងសង្កេតឃើញថាក្នុងបណ្ណាល័យ ML ជាច្រើន អ្នកនឹងឃើញកូដ 'model.fit' - នៅពេលនេះ អ្នកផ្ញើរអថេរលក្ខណៈពិសេសជាអារេនៃតម្លៃ (ភាគច្រើនគឺ 'X') និងអថេរគោលដៅ (ភាគច្រើន 'y')។ + +### វាយតម្លៃម៉ូដែល + +ពេលដំណើរការបណ្តុះបណ្តាលបានបញ្ចប់ (វាអាចយកពេលជាច្រើន iteration ឬ 'epoch' ដើម្បីបណ្តុះម៉ូដែលធំមួយ) អ្នកអាចវាយតម្លៃគុណភាពម៉ូដែលដោយប្រើទិន្នន័យតេស្ត ដើម្បីវាស់សមត្ថភាពវា។ ទិន្នន័យនេះគឺជាផ្នែកតូចមួយនៃទិន្នន័យដើម ដែលម៉ូដែលមិនដែលវិភាគមុន។ អ្នកអាចបោះពុម្ពតារាងស្ថិតិអំពីគុណភាពម៉ូដែលរបស់អ្នក។ + +🎓 **ការផ្គុំម៉ូដែល** + +នៅបរិបទនៃការរៀនម៉ាស៊ីន ការផ្គុំម៉ូដែលមានន័យថា ភាពត្រឹមត្រូវនៃមុខងាររបស់ម៉ូដែល ពេលវា​ព្យាយាមវិភាជន៍ទិន្នន័យដែលវាមិនស្គាល់។ + +🎓 **Underfitting** និង **overfitting** ជាបញ្ហាទូទៅដែលធ្វើឲ្យគុណភាពម៉ូដែលធ្លាក់ចុះ នោះហើយម៉ូដែលត្រូវបានផ្គុំបានមិនល្អគ្រប់គ្រាន់ ឬល្អពេក។ វានាំឲ្យម៉ូដែលប៉ាន់ប្រមាណពីទិន្នន័យបណ្តុះបណ្តាលបានយ៉ាងតិតទៅ ឬលំបាកពេកក្នុងការភ្ជាប់ជាមួយទិន្នន័យ។ ម៉ូដែល overfit នឹងព្យាករណ៍ទិន្នន័យបណ្តុះបណ្តាលបានល្អពេក ពីព្រោះវាបានរៀនលម្អិតនិងសំឡេងរំខានក្នុងទិន្នន័យយ៉ាងល្អ។ ម៉ូដែល underfit គឺមិនត្រឹមត្រូវ ពីព្រោះវាមិនអាចវិភាគទិន្នន័យបណ្តុះបណ្តាលឬទិន្នន័យមិនដែលបានមើលបានយ៉ាងត្រឹមត្រូវទេ។ + +![overfitting model](../../../../translated_images/km/overfitting.1c132d92bfd93cb6.webp) +> រូបតំណាងដោយ [Jen Looper](https://twitter.com/jenlooper) + +## ការកែសម្រួលប៉ារ៉ាម៉ែត្រ + +នៅពេលដែលការបណ្តុះបណ្តាលដំបូងបានបញ្ចប់ ការសង្កេតគុណភាពម៉ូដែល និងពិចារណាកែលម្អវា ដោយកែសម្រួល 'hyperparameters' របស់វា។ អានបន្ថែមអំពីដំណើរការនេះ [ក្នុងឯកសារ](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott)។ + +## ការព្យាករណ៍ + +នេះគឺជាពេលវេលាដែលអ្នកអាចប្រើទិន្នន័យថ្មីទាំងស្រុង ដើម្បីសាកល្បងភាពត្រឹមត្រូវនៃម៉ូដែល។ ក្នុងបរិបទ ML 'បច្ចេកប្រតិបត្តិន៍' ដែលអ្នកកំពុងបង្កើតទ្រព្យសម្បត្តិនៅលើបណ្ដាញ ដើម្បីប្រើម៉ូដែលក្នុងផលិតកម្ម វាអាចមានលទ្ធភាពបង្រួមទិន្នន័យអ្នកប្រើ (ការចុចប៊ូតុង ឧទាហរណ៍) ដើម្បីកំណត់អថេរមួយ ហើយផ្ញើវាទៅម៉ូដែលសម្រាប់ការបកស្រាយ ឬវាយតម្លៃ។ + +នៅក្នុងមេរៀនទាំងនេះ អ្នកនឹងស្វែងយល់ពីរបៀបប្រើជំហានទាំងនេះ ដើម្បីរៀបចំ បង្កើត សាកល្បង វាយតម្លៃ និងព្យាករណ៍ — ជាការប្រតិបត្តិរបស់អ្នកវិទ្យាសាស្ត្រទិន្នន័យ និងពាណិជ្ជកម្មបន្ថែម ជាពេលដែលអ្នកបន្តផ្លូវទៅរកជំនាញ ML ‘full stack’។ + +--- + +## 🚀ការប្រកួតប្រជែង + +គូរជាតារាងបង្ហាញនៃជំហានរបស់អ្នកអនុវត្ត ML។ តើអ្នកឃើញខ្លួននៅកន្លែងណាក្នុងដំណើរការ? តើអ្នកគិតថាអ្នកនឹងមានការលំបាកនៅពេលណា? តើអ្វីដែលមើលទៅងាយស្រួលសម្រាប់អ្នក? + +## [សំនួរត្រួតពិនិត្យបន្ទាប់មេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ទិដ្ឋភាពវិលត្រឡប់ & ការសិក្សាឯករាជ្យ + +ស្វែងរកនៅលើអ៊ីនធឺណិតសម្រាប់សម្ភាសន៍ជាមួយអ្នកវិទ្យាសាស្ត្រទិន្នន័យដែលពិភាក្សាអំពីការងារប្រចាំថ្ងៃរបស់ពួកគេ។ នេះគឺជា [មួយឯកសារ](https://www.youtube.com/watch?v=Z3IjgbbCEfs)។ + +## កិច្ចការផ្ទះ + +[សម្ភាសអ្នកវិទ្យាសាស្ត្រទិន្នន័យ](assignment.md) + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបំលែងភាសា ដោយប្រើសេវាកម្មបំលែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបំលែងភាសាទ្វេដងដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើម៖ ជាភាសារបស់ខ្លួន គួរត្រូវបានចាត់ទុកជាធនធានដើមដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបំលែងភាសាដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗ ដែលកើតឡើងពីការប្រើប្រាស់បំលែងភាសានេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/1-Introduction/4-techniques-of-ML/assignment.md b/translations/km/1-Introduction/4-techniques-of-ML/assignment.md new file mode 100644 index 000000000..0f65836ce --- /dev/null +++ b/translations/km/1-Introduction/4-techniques-of-ML/assignment.md @@ -0,0 +1,18 @@ +# សម្ភាសន៍អ្នកវិទ្យាសាស្ត្រទិន្នន័យ + +## សេចក្តីណែនាំ + +នៅក្នុងក្រុមហ៊ុនរបស់អ្នក ក្នុងក្រុមអ្នកប្រើ ឬរវាងមិត្តភក្តិ ឬសិស្សានុសិស្សរបស់អ្នក សូមនិយាយជាមួយនរណាម្នាក់ដែលបំពេញការងារជាអ្នកវិទ្យាសាស្ត្រទិន្នន័យជាមុខរបរ។ សរសេរឯកសារសេចក្តីយោងខ្លីមួយ (៥០០ ពាក្យ) ស្តីអំពីការងារប្រចាំថ្ងៃរបស់ពួកគេ។ តើពួកគេជាអ្នកជំនាញ ឬធ្វើការជា 'full stack'? + +## វិចារណាការណ៍ + +| លក្ខខណ្ឌ | ល្អឧត្តម | គ្រប់គ្រាន់ | ត្រូវធ្វើការកែលម្អ | +| -------- | ------------------------------------------------------------------------------ | -------------------------------------------------------------------- | -------------------- | +| | សេចក្តីអត្ថបទមានប្រវែងត្រឹមត្រូវ មានប្រភពយោងត្រឹមត្រូវ និងបង្ហាញជា​ឯកសារ.doc | សេចក្តីអត្ថបទមានប្រភពយោងខ្វះខាត ឬខ្លីជាងប្រវែងដែលទាមទារ | មិនមានសេចក្តីអត្ថបទបង្ហាញឡើង | + +--- + + +**ការមិនទទួលខុសត្រូវ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងឲ្យត្រូវតាមការពិត សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការខុសប្រការបាន។ ឯកសារដើមក្នុងភាសាជាតិរបស់វា គួរត្រូវបានពិចារណាថាជាផ្លូវការជាដើម។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សសូមបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកច្រាសណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/1-Introduction/README.md b/translations/km/1-Introduction/README.md new file mode 100644 index 000000000..6966d7a68 --- /dev/null +++ b/translations/km/1-Introduction/README.md @@ -0,0 +1,29 @@ +# ការណែនាំអំពីការរៀនម៉ាស៊ីន + +នៅក្នុងផ្នែកនេះនៃកម្មវិធីសិក្សា អ្នកនឹងត្រូវបានណែនាំអំពីគំនិតមូលដ្ឋានដែលនៅក្រោមវិស័យការរៀនម៉ាស៊ីន វាជាអ្វី ហើយសិក្សាអំពីប្រវត្តិសាស្ត្រ និងបច្ចេកទេសដែលអ្នកស្រាវជ្រាវប្រើដើម្បីធ្វើការជាមួយវា។ យើងមកស្វែងយល់ពីពិភពថ្មីនៃ ML ជាមួយគ្នា! + +![globe](../../../translated_images/km/globe.59f26379ceb40428.webp) +> រូបថតដោយ Bill Oxford នៅលើ Unsplash + +### មេរៀន + +1. [ការណែនាំអំពីការរៀនម៉ាស៊ីន](1-intro-to-ML/README.md) +1. [ប្រវត្តិការរៀនម៉ាស៊ីន និង AI](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) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំខាងភាពត្រឹមត្រូវ ក៏សូមជ្រាបថាការបកប្រែដោយអូតូម៉ាទិចអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានគេចាត់ទុកជាមូលដ្ឋានដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អត្ថប្រយោជន៍នៃការបកប្រែមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំន ឬការបកស្រាយខុសចេញពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/1-Tools/README.md b/translations/km/2-Regression/1-Tools/README.md new file mode 100644 index 000000000..105ea5277 --- /dev/null +++ b/translations/km/2-Regression/1-Tools/README.md @@ -0,0 +1,231 @@ +# ចាប់ផ្ដើមជាមួយ Python និង Scikit-learn សម្រាប់គំរូប្រូក្រេសស្យុង + +![សង្ខេបអំពីប្រូក្រេសស្យុងនៅក្នុងស្គេតណូត](../../../../translated_images/km/ml-regression.4e4f70e3b3ed446e.webp) + +> ស្គេតណូតដោយ [Tomomi Imura](https://www.twitter.com/girlie_mac) + +## [សំណួរប្រលងមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +> ### [មេរៀននេះអាចប្រើបានក្នុង R!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html) + +## ការណែនាំ + +នៅក្នុងមេរៀនបួននេះ អ្នកនឹងស្វែងរកវិធីសម្រាប់បង្កើតគំរូប្រូក្រេសស្យុង។ យើងនឹងពិភាក្សាថាវាជាកម្មវិធីសម្រាប់អ្វីក្នុងពេលឆាប់ៗនេះ។ ប៉ុន្តែក្រោយពេលអ្នកមិនបានធ្វើអ្វីនោះទេ សូមប្រាកដថាអ្នកមានឧបករណ៍ត្រឹមត្រូវដើម្បីចាប់ផ្ដើមដំណើរការនេះ! + +នៅក្នុងមេរៀននេះ អ្នកនឹងរៀនពី៖ + +- ការកំណត់កុំព្យូទ័ររបស់អ្នកសម្រាប់បេសកកម្មម៉ាស៊ីនរៀនក្នុងផ្ទាំងក្នុង។ +- ការធ្វើការ​ជាមួយសៀវភៅកំណត់សរសេរ Jupyter។ +- ការប្រើប្រាស់ Scikit-learn រួមទាំងការដំឡើង។ +- ស្វែងរកប្រូក្រេសស្យុងខ្សែបន្ទាត់ជាមួយហាត់ប្រាណអនុវត្តន៍ដោយដៃ។ + +## ការដំឡើង និង ការកំណត់រចនា + +[![ម៉ាស៊ីនរៀនសម្រាប់អ្នកចាប់ផ្ដើម - រៀបចំឧបករណ៍របស់អ្នករួចរាល់សម្រាប់បង្កើតគំរូម៉ាស៊ីនរៀន](https://img.youtube.com/vi/-DfeD2k2Kj0/0.jpg)](https://youtu.be/-DfeD2k2Kj0 "ម៉ាស៊ីនរៀនសម្រាប់អ្នកចាប់ផ្ដើម - រៀបចំឧបករណ៍របស់អ្នករួចរាល់សម្រាប់បង្កើតគំរូម៉ាស៊ីនរៀន") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូខ្លីដែលបង្កើតការកំណត់កុំព្យូទ័ររបស់អ្នកសម្រាប់ ML។ + +1. **ដំឡើង Python**។ ប្រាកដថា [Python](https://www.python.org/downloads/) ត្រូវបានដំឡើងលើកុំព្យូទ័ររបស់អ្នក។ អ្នកនឹងប្រើ Python សម្រាប់កិច្ចការវិទ្យាសាស្ត្រទិន្នន័យ និងម៉ាស៊ីនរៀនច្រើន។ ប្រព័ន្ធកុំព្យូទ័រច្រើនរួមបញ្ចូលការដំឡើង Python រួចហើយ។ មាន [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) ដែលមានប្រយោជន៍សម្រាប់កែលម្អការតំឡើងសម្រាប់អ្នកប្រើប្រាស់មួយចំនួន។ + + ករណីខ្លះនៃការប្រើប្រាស់ Python ត្រូវការតែមួយកំណែរបស់កម្មវិធី ខណៈពេលដែលមួយចំនួនផ្សេងទៀតត្រូវការកំណែផ្សេងទៀត។ ដូច្នេះ វាមានប្រយោជន៍ក្នុងការដំណើរការនៅក្នុង [បរិយាកាស virtual](https://docs.python.org/3/library/venv.html)។ + +2. **ដំឡើង Visual Studio Code**។ សូមប្រាកដថាអ្នកមាន Visual Studio Code បានដំឡើងលើកុំព្យូទ័ររបស់អ្នក។ តាមដានការណែនាំនេះដើម្បី [ដំឡើង Visual Studio Code](https://code.visualstudio.com/) សម្រាប់ការដំឡើងមូលដ្ឋាន។ អ្នកនឹងប្រើ Python ក្នុង Visual Studio Code ក្នុងមុខវិជ្ជានេះ ដូច្នេះ អ្នកអាចចង់រៀនបន្ថែមពីរបៀប [កំណត់ Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) សម្រាប់ការអភិវឌ្ឍ Python។ + + > ទទួលបានភាពស្រាលចិត្តជាមួយ Python ដោយធ្វើតាមបណ្ដុំ [Learn modules](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott) + > + > [![រៀបចំ Python ជាមួយ Visual Studio Code](https://img.youtube.com/vi/yyQM70vi7V8/0.jpg)](https://youtu.be/yyQM70vi7V8 "រៀបចំ Python ជាមួយ Visual Studio Code") + > + > 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូ៖ ការប្រើ Python នៅក្នុង VS Code។ + +3. **ដំឡើង Scikit-learn** ដោយអនុវត្តតាម [ការណែនាំនេះ](https://scikit-learn.org/stable/install.html)។ ពីព្រោះអ្នកចាំបាច់ត្រូវប្រើ Python 3 អ្នកត្រូវបានផ្តល់អនុស្សាវរីយ៍ឲ្យប្រើបរិយាកាស virtual។ សូមចំណាំ ប្រសិនបើអ្នកកំពុងដំឡើងបណ្ណាល័យនេះលើម៉ាស៊ីន M1 Mac មានការណែនាំពិសេសនៅលើទំព័រដែលភ្ជាប់ខាងលើ។ + +1. **ដំឡើង Jupyter Notebook**។ អ្នកត្រូវការដំឡើង [កញ្ចប់ Jupyter](https://pypi.org/project/jupyter/)។ + +## បរិយាកាសការសរសេរ ML របស់អ្នក + +អ្នកនឹងប្រើ **សៀវភៅកំណត់** ដើម្បីអភិវឌ្ឍកូដ Python របស់អ្នក និងបង្កើតគំរូម៉ាស៊ីនរៀន។ ប្រភេទឯកសារនេះគឺជាឧបករណ៍ធម្មតាសម្រាប់អ្នកវិទ្យាសាស្ត្រទិន្នន័យ ហើយវាត្រូវបានកំណត់ដោយបញ្ចំលើ ឬផ្នែកបន្ថែម `.ipynb` ។ + +សៀវភៅកំណត់គឺជាបរិយាកាសអន្តរកម្មដែលអនុញ្ញាតឲ្យអ្នកអភិវឌ្ឍទាំងការសរសេរកូដ និងបន្ថែមកំណត់ចំណាំនិងសរសេរឯកសារជារង្វង់ខាងកូដ ដែលអាចមានប្រយោជន៍ចំពោះគម្រោងអត្រា​ឬស្រាវជ្រាវ។ + +[![ម៉ាស៊ីនរៀនសម្រាប់អ្នកចាប់ផ្ដើម - រៀបចំ Jupyter Notebooks ដើម្បីចាប់ផ្ដើមបង្កើតគំរូប្រូក្រេសស្យុង](https://img.youtube.com/vi/7E-jC8FLA2E/0.jpg)](https://youtu.be/7E-jC8FLA2E "ម៉ាស៊ីនរៀនសម្រាប់អ្នកចាប់ផ្ដើម - រៀបចំ Jupyter Notebooks ដើម្បីចាប់ផ្ដើមបង្កើតគំរូប្រូក្រេសស្យុង") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូខ្លីដែលបង្កើតហាត់ប្រាណនេះ។ + +### ហាត់ប្រាណ - ធ្វើការជាមួយសៀវភៅកំណត់មួយ + +នៅក្នុងថតនេះ អ្នកនឹងរកឃើញឯកសារ _notebook.ipynb_។ + +1. បើក _notebook.ipynb_ នៅក្នុង Visual Studio Code។ + + ម៉ាស៊ីនបម្រើ Jupyter នឹងចាប់ផ្តើមជាមួយ Python 3+ បានចាប់ផ្តើម។ អ្នកនឹងរកឃើញតំបន់ឯកសារដែលអាច `run` បាន ដែលជាផ្នែកកូដ។ អ្នកអាចរត់កូដនេះដោយជ្រើសរើសរូបតំណាងបង្ហាញដូចប៊ូតុងចាក់ផ្ដើម។ + +1. ជ្រើសរើសរូបតំណាង `md` ហើយបន្ថែម markdown តិចមួយ និងអត្ថបទខាងក្រោម **# Welcome to your notebook**។ + + បន្ទាប់មក បន្ថែមកូដ Python មួយចំនួន។ + +1. វាយ **print('hello notebook')** នៅក្នុងខ្លែងកូដ។ +1. ជ្រើសរើសអរម្មណ៍ដើម្បីរត់កូដ។ + + អ្នកគួរតែឃើញប្រលោមបោះពុម្ព៖ + + ```output + hello notebook + ``` + +![VS Code ជាមួយសៀវភៅកំណត់បើក](../../../../translated_images/km/notebook.4a3ee31f396b8832.webp) + +អ្នកអាចបញ្ចូលកូដរបស់អ្នកជាមួយមតិយោបល់ ដើម្បីចុះផ្សាយឯកសារសៀវភៅកំណត់។ + +✅ គិតមួយភ្លែតពីបរិយាកាសការងាររបស់អ្នកអភិវឌ្ឍគេហទំព័រនិងអ្នកវិទ្យាសាស្ត្រទិន្នន័យមានភាពខុសគ្នា ឬដូចគ្នានៅខាងណា។ + +## ចាប់ផ្ដើម និង រត់ជាមួយ Scikit-learn + +ឥឡូវនេះ Python ត្រូវបានកំណត់នៅក្នុងបរិយាកាសក្នុងផ្ទាល់របស់អ្នកហើយ អ្នកក៏ស្រួលជាមួយ Jupyter notebooks សូមយើងស្រួលបង្រៀនអ្នកពី Scikit-learn ដដែល (សូមអានប្រាក់សំដៅការនិយាយ `sci` ដូចជា `science`)។ Scikit-learn ផ្តល់នូវ [API ឆ្លាតវៃ](https://scikit-learn.org/stable/modules/classes.html#api-ref) ដើម្បីជួយអ្នកធ្វើកិច្ចការ ML។ + +យោងទៅតាម [បណ្តាញរបស់ពួកគេ](https://scikit-learn.org/stable/getting_started.html) "Scikit-learn គឺជាបណ្ណាល័យម៉ាស៊ីនរៀនប្រភពបើកដែលគាំទ្រការរៀនតាមមគ្គុទេសក៍ និងមិនមានមគ្គុទេសក៍។ វាក៏ផ្តល់ឧបករណ៍ជាច្រើនសម្រាប់ការចងក្រងគំរូ ការរៀបចំទិន្នន័យ ជ្រើសរើសគំរូ និងការវាយតម្លៃ និងបណ្ណាល័យជំនួយផ្សេងទៀត។" + +នៅក្នុងមុខវិជ្ជានេះ អ្នកនឹងប្រើ Scikit-learn និងឧបករណ៍ផ្សេងទៀតដើម្បីបង្កើតគំរូម៉ាស៊ីនរៀន​ក្នុងការអនុវត្តកិច្ចការម៉ាស៊ីនរៀនបែបប្រពៃណី។ យើងបានជៀសវាងបណ្តាញសរសៃប្រសាទ និងការរៀនជ្រៅដោយសារវាទទួលបានជម្រៅនៅក្នុងមេរៀនដ៏ខាងមុខនៅកម្មវិធីសិក្សា 'AI សម្រាប់អ្នកចាប់ផ្ដើម'។ + +Scikit-learn ធ្វើឲ្យការបង្កើតគំរូ និងវាយតម្លៃសម្រាប់ការប្រើប្រាស់កាន់តែរងាយស្រួល។ វាត្រូវបានផ្តោតសំខាន់លើការប្រើប្រាស់ទិន្នន័យលេខ និងមានសំណុំទិន្នន័យរួចជាស្រេចជាច្រើនសម្រាប់ការរៀន។ វាក៏មានគំរូស្រេចសម្រាប់សិស្សសាកល្បងផងដែរ។ យើងស្វែងរកដំណើរការចម្លងទិន្នន័យរួចហើយនិងប្រើប្រាស់កំណត់តម្លៃដែលស្ថិតក្នុងវាលដំបូងរបស់ក្រុមហ៊ុន Scikit-learn ជាគំរូ ML ដំបូងសម្រាប់ទិន្នន័យមូលដ្ឋាន។ + +## ហាត់ប្រាណ - សៀវភៅកំណត់ Scikit-learn ដំបូងរបស់អ្នក + +> មេរៀននេះមានប្រភពពី [ឧទាហរណ៍ប្រូក្រេសស្យុងខ្សែបន្ទាត់](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) នៅលើគេហទំព័រ Scikit-learn។ + +[![ម៉ាស៊ីនរៀនសម្រាប់អ្នកចាប់ផ្ដើម - គម្រោងប្រូក្រេសស្យុងខ្សែបន្ទាត់ដំបូងរបស់អ្នកនៅក្នុង Python](https://img.youtube.com/vi/2xkXL5EUpS0/0.jpg)](https://youtu.be/2xkXL5EUpS0 "ម៉ាស៊ីនរៀនសម្រាប់អ្នកចាប់ផ្ដើម - គំរោងប្រូក្រេសស្យុងខ្សែបន្ទាត់ដំបូងរបស់អ្នកនៅក្នុង Python") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូខ្លីដែលបង្កើតហាត់ប្រាណនេះ។ + +នៅក្នុងឯកសារ _notebook.ipynb_ ដែលភ្ជាប់ជាមួយមេរៀននេះ សូមសម្អាតគ្រប់កោសិកាដោយចុចរូបតំណាង 'ប្រអប់សម្អាត'។ + +នៅក្នុងផ្នែកនេះ អ្នកនឹងធ្វើការ​ជាមួយសំណុំទិន្នន័យតូចមួយអំពីជំងឺទឹកនោមផ្អាស់ ដែលបានបង្កើតចូលក្នុង Scikit-learn សម្រាប់គោលបំណងរៀន។ សូមចូរព្រមានថាអ្នកចង់សាកល្បងការព្យាបាលសម្រាប់អ្នកជំងឺទឹកនោមផ្អាស់។ គំរូម៉ាស៊ីនរៀនអាចជួយអ្នកកំណត់ថា តើអ្នកជំងឺណាម្នាក់អាចឆ្លើយតបកាន់តែល្អទៅនឹងការព្យាបាល ដែលមានមូលដ្ឋានលើការរួមបញ្ចូលអថេរជាច្រើន។ គំរូប្រូក្រេសស្យុងមូលដ្ឋានមួយ ទោះបីជាបរិយាកាសប្រើបានវិស្វកម្ម ក៏វានឹងបង្ហាញព័ត៌មានអំពីអថេរដែលអាចជួយអ្នករៀបចំការសាកល្បងគ្លីនិកទ្រឹស្តី។ + +✅ មានវិធីសាស្ត្រប្រូក្រេសស្យុងជាច្រើនប្រភេទ ហើយវាលែងឲ្យអ្នកជ្រើសរើសផ្អែកលើចម្លើយដែលអ្នកកំពុងស្វែងរក។ ប្រសិនបើអ្នកចង់ព្យាករណ៍កម្ពស់អាចមានសម្រាប់មនុស្សម្នាក់នៅវ័យណាមួយ អ្នកនឹងប្រើប្រូក្រេសស្យុងខ្សែបន្ទាត់ ដោយសារអ្នកកំពុងស្វែងរកតម្លៃ **លេខ**។ ប្រសិនបើអ្នកចង់រកឃើញថាប្រភេទម្ហូបមួយគួរត្រូវបានចាត់ទុកថាជារូបមន្តសត្វឬទេ អ្នកកំពុងស្វែងរក **ការចាត់ថ្នាក់** ដូច្នេះអ្នកនឹងប្រើប្រូក្រេសស្យុងលូស្តិច។ អ្នកនឹងរៀនបន្ថែមអំពីប្រូក្រេសស្យុងលូស្តិចនៅពេលក្រោយ។ សូមគិតបន្តិចអំពីសំណួរខ្លះៗដែលអ្នកអាចសួរចំពោះទិន្នន័យ ហើយវិធីសាស្ត្រណាមួយដែលសមសម្រាប់សំណួរទាំងនោះ។ + +ចាប់ផ្ដើមធ្វើការនៅលើបេសកកម្មនេះ។ + +### នាំចូលបណ្ណាល័យ + +សម្រាប់បេសកកម្មនេះ យើងនឹងនាំចូលបណ្ណាល័យខ្លះៗ៖ + +- **matplotlib** ។ វាជា [ឧបករណ៍គូរប្លង់](https://matplotlib.org/) មានប្រយោជន៍ ហើយយើងនឹងប្រើវាដើម្បីបង្កើតប្លង់បន្ទាត់មួយ។ +- **numpy** ។ [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) គឺជាបណ្ណាល័យមានប្រយោជន៍សម្រាប់ដំណើរការទិន្នន័យលេខក្នុង Python។ +- **sklearn** ។ នេះគឺជាបណ្ណាល័យ [Scikit-learn](https://scikit-learn.org/stable/user_guide.html)។ + +នាំចូលបណ្ណាល័យខ្លះៗ ដើម្បីជួយសម្រាប់បេសកកម្មរបស់អ្នក។ + +1. បន្ថែមការនាំចូល ដោយវាយកូដដូចខាងក្រោម៖ + + ```python + import matplotlib.pyplot as plt + import numpy as np + from sklearn import datasets, linear_model, model_selection + ``` + + ខាងលើ អ្នកកំពុងនាំចូល `matplotlib`, `numpy` ហើយអ្នកកំពុងនាំចូល `datasets`, `linear_model` និង `model_selection` ពី `sklearn`។ `model_selection` ត្រូវបានប្រើសម្រាប់បំបែកទិន្នន័យជា សំណុំសាកល្បង និងសំណុំបណ្តុះបណ្តាល។ + +### សំណុំទិន្នន័យជំងឺទឹកនោមផ្អាស់ + +សំណុំទិន្នន័យ built-in [ជំងឺទឹកនោមផ្អាស់](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) មាននូវគំរូទិន្នន័យ 442 ដែលជុំវិញជំងឺទឹកនោមផ្អាស់ មានអថេរមុខងារ 10 ប្រភេទខ្លះៗរួមមាន៖ + +- អាយុកាល៖ អាយុជាឆ្នាំ +- bmi៖ ម៉ាស៊ីនម៉ាស្សារបស់ខ្លួន +- bp៖ សំពាធឈាមមធ្យម +- s1 tc៖ T-Cells (ប្រភេទស៊ែលសព្វពណ៌ស) + +✅ សំណុំទិន្នន័យនេះមាន មុំនឹកនឹង "ភេទ" ជាអថេរមុខងារដែលមានសារៈសំខាន់សម្រាប់ការស្រាវជ្រាវជុំវិញជំងឺទឹកនោមផ្អាស់។ សំណុំទិន្នន័យវេជ្ជសាស្ត្រច្រើនមានការវាយតម្លៃកំណត់ប្រភេទពីរបែបនេះ។ សូមគិតបន្តិចអំពីតើការចាត់ថ្នាក់បែបនេះអាចដកចេញអ្នកជំនួសនៃមនុស្សជាតិពីការព្យាបាល។ + +ឥឡូវនេះ សូមបញ្ចូលទិន្នន័យ X និង y។ + +> 🎓 ចងចាំថា នេះគឺជាការរៀនដោយអនុក្រឹត្យ ហើយយើងត្រូវការទោកដាក់ឈ្មោះ 'y' ជាគោលដៅ។ + +នៅក្នុងកោសិកាកូដថ្មី សូមបញ្ចូលសំណុំទិន្នន័យជំងឺទឹកនោមផ្អាស់ ដោយហៅ `load_diabetes()`។ បារាជ័យ `return_X_y=True` សំដៅថា `X` នឹងជាតារាងទិន្នន័យ ហើយ `y` នឹងជាគោលដៅប្រូក្រេសស្យុង។ + +1. បន្ថែមពាក្យបោះពុម្ព ដើម្បីបង្ហាញទម្រង់ទិន្នន័យ និងធាតុដំបូង៖ + + ```python + X, y = datasets.load_diabetes(return_X_y=True) + print(X.shape) + print(X[0]) + ``` + + អ្វីដែលអ្នកទទួលបានជាចម្លើយ គឺជា tuple។ អ្វីដែលអ្នកបានធ្វើគឺផ្ដល់តម្លៃពីរដំបូងនៅក្នុង tuple ទៅ `X` និង `y` តាមលំដាប់។ ហ្វឹកហាត់បន្ថែមអំពី [tuples](https://wikipedia.org/wiki/Tuple)។ + + អ្នកអាចមើលឃើញទិន្នន័យនេះមានធាតុ 442 ដែលរៀបជារាង arrays 10 ធាតុ៖ + + ```text + (442, 10) + [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 + -0.04340085 -0.00259226 0.01990842 -0.01764613] + ``` + + ✅ សូមគិតបន្តិចអំពីទំនាក់ទំនងរវាងទិន្នន័យ និងគោលដៅប្រូក្រេសស្យុង។ ប្រូក្រេសស្យុងខ្សែបន្ទាត់នាំមុខទស្សនៈទំនាក់ទំនងរវាងមុខងារ X និងអថេរកោល y។ តើអ្នកអាចរកឃើញ [គោលដៅ](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) សម្រាប់សំណុំទិន្នន័យជំងឺទឹកនោមផ្អាស់នៅក្នុងឯកសារណែនាំ? តើសំណុំទិន្នន័យនេះបង្ហាញអ្វី ជាមួយគោលដៅនោះ? + +2. បន្ទាប់មក ជ្រើសរើសផ្នែកមួយនៃសំណុំទិន្នន័យនេះសម្រាប់គូរប្លង់ ដោយជ្រើសជួរឈរ 3 នៃសំណុំទិន្នន័យ។ អ្នកអាចធ្វើបានដោយប្រើ `:` ដើម្បីជ្រើសរាល់ជួរ ហើយបន្ទាប់មកជ្រើសជួរឈរ 3 ដោយប្រើ index (2)។ អ្នកអាចប្តូរទម្រង់ទិន្នន័យឱ្យថ្លៃជារាង 2D ដូចដែលត្រូវការសម្រាប់គូរប្លង់ ដោយប្រើ `reshape(n_rows, n_columns)`។ ប្រសិនបើ parameters មួយគឺ -1 ភាគតំណាងនោះនឹងត្រូវគណនា secara automatique។ + + ```python + X = X[:, 2] + X = X.reshape((-1,1)) + ``` + + ✅ នៅពេលណាមួយ សូមបោះពុម្ពទិន្នន័យ ដើម្បីពិនិត្យទម្រង់វា។ + +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. ឥឡូវនេះ អ្នកត្រៀមខ្លួនបណ្តុះគំរូរបស់អ្នក! បញ្ចូលម៉ូឌែលប្រូក្រេសស្យុងខ្សែបន្ទាត់ ហើយបណ្តុះវាជាមួយសំណុំបណ្តុះបណ្តាល X និង y ដោយប្រើ `model.fit()`: + + ```python + model = linear_model.LinearRegression() + model.fit(X_train, y_train) + ``` + + ✅ `model.fit()` គឺជា function ដែលអ្នកនឹងឃើញនៅក្នុងបណ្ណាល័យ ML ជាច្រើនដូចជា TensorFlow។ + +5. បន្ទាប់មក បង្កើតការព្យាករណ៍ដោយប្រើទិន្នន័យសាកល្បង ដោយប្រើ function `predict()`។ នេះនឹងត្រូវប្រើសម្រាប់គូរបន្ទាត់ចល័តនៅចន្លោះក្រុមទិន្នន័យ។ + + ```python + y_pred = model.predict(X_test) + ``` + +6. ឥឡូវនេះពេលដើម្បីបង្ហាញទិន្នន័យជាប្លង់។ Matplotlib គឺជាឧបករណ៍មានប្រយោជន៍ខ្លាំងសម្រាប់បេសកកម្មនេះ។ បង្កើត scatterplot សម្រាប់ទិន្នន័យ X និង y សំណុំសាកល្បងទាំងអស់ ហើយប្រើការព្យាករណ៍ក្នុងការគូរបន្ទាត់ជាកន្លែងសមរម្យបំផុត រវាងក្រុមទិន្នន័យរបស់ម៉ូឌែល។ + + ```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() + ``` + + ![scatterplot បង្ហាញចំណុចទិន្នន័យជុំវិញជំងឺទឹកនោមផ្អាស់](../../../../translated_images/km/scatterplot.ad8b356bcbb33be6.webp) + ✅ សូមគិតកន្លែងអ្វីកំពុងកើតឡើងនៅទីនេះ។ ខ្សែ​ត្រង់មួយកំពុងរត់កាត់តាមចំណុចតូចៗជាច្រើននៃទិន្នន័យ ប៉ុន្តែវាកំពុងធ្វើអ្វីពិតប្រាកដមែនទេ? តើអ្នកអាចឃើញយ៉ាងដូចម្តេចថា តើអ្នកគួរតែប្រើខ្សែនេះដើម្បីទាយថាតើចំណុចទិន្នន័យថ្មីមួយដែលមិនធ្លាប់ឃើញអាចផ្គូផ្គងនៅឯណាទៅទាក់ទងនឹងអ័ក្ស y នៃផ្លូតបានយ៉ាងដូចម្តេច? សូមព្យាយាមដាក់ជាពាក្យអំពីការប្រើប្រាស់ជាក់ស្តែងនៃម៉ូដែលនេះ។ + +អបអរសាទរ អ្នកបានបង្កើតម៉ូដែលការស្ងាត់​ត្រង់លីនុយ (linear regression) ជាលើកដំបូងរបស់អ្នក សរសេរផ្នែកទាយទុកជាមួយវា ហើយបង្ហាញវានៅក្នុងផ្លូតមួយហើយ! + +--- +## 🚀បញ្ហា + +បង្ហាញអថេរផ្សេងទៀតពីឃุ่มទិន្នន័យនេះ។ គំនិតបញ្ជាក់៖ កែសម្រួលបន្ទាត់នេះ `X = X[:,2]`។ ប្រសិនបើឃุ่มទិន្នន័យនេះមានគោលដៅ អ្នកអាចរកឃើញអ្វីខ្លះអំពីការរីកចំរូងនៃជំងឺទាំងនេះដូចជាជំងឺទឹកនោមផ្អែម? +## [ស៊ែវសំណួរ បន្ទាប់ពីមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការពិនិត្យឡើងវិញ និងសិក្សាផ្ទាល់ខ្លួន + +នៅក្នុងមេរៀននេះ អ្នកបានចាប់ផ្តើមជាមួយការស្ងាត់​ត្រង់លីនុយ​ធម្មតា មិនមែនការស្ងាត់​ត្រង់លីនុយមួយអថេរ ឬច្រើនអថេរទេ។ សូមអានអំពីភាពខុសគ្នារវាងវិធីសាស្រ្តទាំងនេះ ឬមើលវីដេអូនេះ [វីដេអូ](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef)។ + +អានបន្ថែមអំពីគំនិតស្ងាត់ត្រង់ ហើយសូមគិតពីប្រភេទសំណួរណាអាចត្រូវបានឆ្លើយតបដោយបច្ចេកទេសនេះ។ អ្នកអាចយកមេរៀននេះ [មេរៀន](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott) ដើម្បីជ្រាបច្បាស់ជាងនេះ។ + +## ការតែងការងារ + +[ឃุ่มទិន្នន័យផ្សេងទៀត](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសម្លឹងរកភាពត្រឹមត្រូវ សូមចំណាំថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវបាន។ ឯកសារដើមជាភាសាដើមគួរត្រូវបាន​គិត​ថា​ជា​មូលដ្ឋានគោល។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សអ្នកជំនាញត្រូវបានផ្តល់អាណាព្យាបាល។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/1-Tools/assignment.md b/translations/km/2-Regression/1-Tools/assignment.md new file mode 100644 index 000000000..ca952297a --- /dev/null +++ b/translations/km/2-Regression/1-Tools/assignment.md @@ -0,0 +1,20 @@ +# ការធ្វើជា Regression ជាមួយ Scikit-learn + +## សេចក្ដីណែនាំ + +សូមមើលទៅលើ [Linnerud dataset](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) នៅក្នុង Scikit-learn។ មូលដ្ឋានទិន្នន័យនេះមាន [គោលដៅ](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset) ជាច្រើន៖ 'វាប្រមូលផ្តុំផ្នែកអហ្វិចស្រ្តេស (data) ចំនួនបី និងអថេរ វិស្សមកាលសសៃ (target) ចំនួនបី ដែលបានប្រមូលពីបុរសអាយុកណ្តាលម្ភៃនាក់ នៅក្លឹបហាត់ប្រាណមួយ'។ + +ដោយប្រើភាសារបស់អ្នក អ្នកត្រូវពិពណ៌នាថា របៀបទាំងមូលក្នុងការបង្កើតModel Regression មួយ ដែលអាចបង្ហាញការតភ្ជាប់រវាងច្រមុះជើងហើយចំនួន situps ដែលបានបញ្ចប់។ សូមធ្វើដូចគ្នាសម្រាប់ចំណុចទិន្នន័យផ្សេងទៀតនៅក្នុងមូលដ្ឋានទិន្នន័យនេះ។ + +## ការវាយតម្លៃ + +| លក្ខខណ្ឌ | ល្អឧត្តម | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- | +| សូមដាក់អត្ថបទពិពណ៌នា | បានដាក់អត្ថបទពិពណ៌នាប្រកបដោយលក្ខណៈល្អ | បានដាក់ប្រយោគប៉ុន្មាននោះ | មិនបានផ្តល់ការពិពណ៌នា | + +--- + + +**ការព្រមាន**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាមើលឃើញគួរត្រូវបានគេចាត់ទុកជាមូលដ្ឋានផ្លូវការនៃព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ យើងផ្តល់អនុសាសន៍ឱ្យមានការបញ្ចូលការបកប្រែដោយអ្នកជំនាញមនុស្សមួយ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកប្រែខុសដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះនោះទេ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/1-Tools/notebook.ipynb b/translations/km/2-Regression/1-Tools/notebook.ipynb new file mode 100644 index 000000000..e69de29bb diff --git a/translations/km/2-Regression/1-Tools/solution/Julia/README.md b/translations/km/2-Regression/1-Tools/solution/Julia/README.md new file mode 100644 index 000000000..27d9222c9 --- /dev/null +++ b/translations/km/2-Regression/1-Tools/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងដាក់បណ្តោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកបរសំរាប់ដោយសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ក្នុងនាមជាការខិតខំស្ថិតស្ថេរ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬក៏ភាពមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានយកចិត្តទុកដាក់ជាទីលំហូរពិតប្រាកដ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ម៉ាញ៉ង់ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/1-Tools/solution/R/lesson_1-R.ipynb b/translations/km/2-Regression/1-Tools/solution/R/lesson_1-R.ipynb new file mode 100644 index 000000000..f072b883e --- /dev/null +++ b/translations/km/2-Regression/1-Tools/solution/R/lesson_1-R.ipynb @@ -0,0 +1,449 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": { + "colab": { + "name": "lesson_1-R.ipynb", + "provenance": [], + "collapsed_sections": [], + "toc_visible": true + }, + "kernelspec": { + "name": "ir", + "display_name": "R" + }, + "language_info": { + "name": "R" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# បង្កើតម៉ូដែលរេក្រេស្សិន៖ ចាប់ផ្តើមជាមួយ R និង Tidymodels សម្រាប់ម៉ូដែលរេក្រេស្សិន\n" + ], + "metadata": { + "id": "YJUHCXqK57yz" + } + }, + { + "cell_type": "markdown", + "source": [ + "## ការណែនាំអំពីការត្រួតពិនិត្យ - មេរៀន ១\n", + "\n", + "#### យកវាទៅក្នុងទិសដៅ\n", + "\n", + "✅ មានប្រភេទវិធីសាស្រ្តត្រួតពិនិត្យជាច្រើន ហើយការជ្រើសរើសរបស់អ្នកអាស្រ័យលើចម្លើយដែលអ្នកកំពុងស្វែងរក។ ប្រសិនបើអ្នកចង់ទាយទុកកម្ពស់ប្រហែលសម្រាប់មនុស្សម្នាក់មានអាយុជាក់លាក់ អ្នកនឹងប្រើ `linear regression` ពីព្រោះអ្នកកំពុងស្វែងរក **តម្លៃលេខ**។ ប្រសិនបើអ្នកមានចំណាប់អារម្មណ៍ក្នុងការរកមើលថាតើប្រភេទម្ហូបមួយគួរត្រូវបានគិតថាជា វេហ្គាន់ ឬអត់ អ្នកកំពុងស្វែងរក **ការបែងចែកប្រភេទ** ដូច្នេះអ្នកនឹងប្រើ `logistic regression`។ អ្នកនឹងរៀនបន្ថែមអំពី logistic regression បន្ទាប់។ សូមគិតបន្តិចអំពីសំណួរខ្លះៗដែលអ្នកអាចសួរពីទិន្នន័យ ហើយវិធីសាស្រ្តណាមួយនៃវិធីเหล่านี้ដែលអាចសមរម្យជាងគេ។\n", + "\n", + "នៅក្នុងផ្នែកនេះ អ្នកនឹងធ្វើការជាមួយ [ឌាតាសេតតូចមួយអំពីជំងឺទឹកនោមផ្អែម](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html)។ សូមនឹកស្រមៃថា អ្នកចង់សាកល្បងការព្យាបាលសម្រាប់អ្នកជំងឺទឹកនោមផ្អែម។ ម៉ាស៊ីនរៀនអាចជួយអ្នកកំណត់ថា អ្នកជំងឺណាដែលនឹងឆ្លើយតបល្អជាងចំពោះការព្យាបាល ដោយផ្អែកលើការបញ្ចូលរួមនៃអថេរពីរបៀបផ្សេងៗ។ តែម៉ូដែលត្រួតពិនិត្យមានតំរូវការសាមញ្ញមួយ កាលណាត្រូវបានបង្ហាញជារូបភាព អាចបង្ហាញព័ត៌មានអំពីអថេរពីរដែលអាចជួយអ្នករៀបចំបទពិសោធន៍គ្លីនិកសាកល្បងទ្រឹស្តី។\n", + "\n", + "ហេតុនេះហើយបានជាអ្នកចាប់ផ្តើមការងារនេះបាន! \n", + "\n", + "

\n", + " \n", + "

ស្នាដៃដោយ @allison_horst
\n", + "\n", + "\n" + ], + "metadata": { + "id": "LWNNzfqd6feZ" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 1. ការផ្ទុកឧបករណ៍របស់យើងឡើង\n", + "\n", + "សម្រាប់ភារកិច្ចនេះ យើងត្រូវការបណ្ណាល័យដូចខាងក្រោម៖\n", + "\n", + "- `tidyverse`: [tidyverse](https://www.tidyverse.org/) គឺជា [កញ្ចប់បណ្ណាល័យ R](https://www.tidyverse.org/packages) ដែលរចនាឡើងដើម្បីធ្វើឱ្យការប្រើប្រាស់វិទ្យាសាស្ត្រទិន្នន័យមានភាពរហ័ស ប្រសើរឡើង និងគួរឱ្យសប្បាយចិត្ត!\n", + "\n", + "- `tidymodels`: ក្របខណ្ឌ [tidymodels](https://www.tidymodels.org/) គឺជា [កញ្ចប់បណ្ណាល័យ](https://www.tidymodels.org/packages/) សម្រាប់ការគំរូ និងការសិក្សាម៉ាស៊ីន។\n", + "\n", + "អ្នកអាចដំឡើងវាដូចជា៖\n", + "\n", + "`install.packages(c(\"tidyverse\", \"tidymodels\"))`\n", + "\n", + "ស្គ្រីបខាងក្រោមនេះត្រួតពិនិត្យថា តើអ្នកមានបណ្ណាល័យទាំងនេះដើម្បីបញ្ចប់មូឌុលនេះរួចថែមទៀត ហើយតំឡើងសម្រាប់អ្នក ប្រសិនបើមានខាតខាត។\n" + ], + "metadata": { + "id": "FIo2YhO26wI9" + } + }, + { + "cell_type": "code", + "execution_count": 2, + "source": [ + "suppressWarnings(if(!require(\"pacman\")) install.packages(\"pacman\"))\n", + "pacman::p_load(tidyverse, tidymodels)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Loading required package: pacman\n", + "\n" + ] + } + ], + "metadata": { + "id": "cIA9fz9v7Dss", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "2df7073b-86b2-4b32-cb86-0da605a0dc11" + } + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះ យើងសូមផ្ទុកបណ្ណាល័យអស្ចារ្យទាំងនេះ ហើយធ្វើឲ្យវាប្រើបានក្នុងសម័យ R បច្ចុប្បន្នរបស់យើង។ (នេះគ្រាន់តែសម្រាប់ការបង្ហាញតែប៉ុណ្ណោះ `pacman::p_load()` បានធ្វើរួចហើយសម្រាប់អ្នក)\n" + ], + "metadata": { + "id": "gpO_P_6f9WUG" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# load the core Tidyverse packages\r\n", + "library(tidyverse)\r\n", + "\r\n", + "# load the core Tidymodels packages\r\n", + "library(tidymodels)\r\n" + ], + "outputs": [], + "metadata": { + "id": "NLMycgG-9ezO" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 2. សំណុំទិន្នន័យជំងឺឆ្លងឈ сахар\n", + "\n", + "ក្នុងការអនុវត្តនេះ យើងនឹងបង្ហាញជំនាញការស្រង់ទិន្នន័យរបស់យើងដោយធ្វើការព្យាករណ៍លើសំណុំទិន្នន័យជំងឺឆ្លងឈ сахар។ [សំណុំទិន្នន័យជំងឺឆ្លងឈ сахар](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.rwrite1.txt) មាន `៤៤២ គំរូ` នៃទិន្នន័យជុំវិញជំងឺឆ្លងឈ сахар ដែលមានអថេរព្យាករណ៍លក្ខណៈ ១០ គឺ `អាយុ`, `ភេទ`, `រូបមាត្រមាឌរាងកាយ`, `សម្ពាធឈាមមធ្យម`, និង `ការវាស់ម៉ាស៊ីនសាំមេរ៉ា ៦ នាក់` ជាមួយអថេរវិលតប `y`៖ ជាអនុមាត្រលេខវាស់វែងនៃការរីកចម្រើនជំងឺមួយឆ្នាំបន្ទាប់ពីកំណត់ចំណុចដើម។\n", + "\n", + "|ចំនួនការសង្កេត|៤៤២|\n", + "|-----------------|:---|\n", + "|ចំនួនអថេរព្យាករណ៍|ជួរដេកទី ១០ ដំបូងគឺអថេរព្យាករណ៍ជាលេខ|\n", + "|លទ្ធផល/គោលដៅ|ជួរដេកទី ១១ ជាអនុមាត្រាលេខវាស់វែងនៃការរីកចម្រើនជំងឺមួយឆ្នាំបន្ទាប់ពីកំណត់ចំណុចដើម|\n", + "|ព័ត៌មានអថេរព្យាករណ៍|- អាយុជាឆ្នាំ\n", + "||- ភេទ\n", + "||- bmi មាត្ររូបធាតុរាងកាយ\n", + "||- bp សម្ពាធឈាមមធ្យម\n", + "||- s1 tc, គ្លេសតេរាលសេរ៉ូមសរុប\n", + "||- s2 ldl, លីពីតភាគតិច\n", + "||- s3 hdl, លីពីតភាគខ្ពស់\n", + "||- s4 tch, គ្លេសតេរាលសរុប / HDL\n", + "||- s5 ltg, ប្រហែលជាលក់នៃកម្រិតថ្រីក្លីសេរូម\n", + "||- s6 glu, កម្រិតស្ករក្នុងឈាម|\n", + "\n", + "\n", + "\n", + "\n", + "> 🎓 ចងចាំថា នេះគឺជាការរៀនដោយមានការត្រួតពិនិត្យ ហើយយើងត្រូវការគោលដៅឈ្មោះ 'y'។\n", + "\n", + "មុនពេលអ្នកអាចដោះស្រាយទិន្នន័យជាមួយ R បាន អ្នកត្រូវនាំចូលទិន្នន័យទៅក្នុងអង្គច័ន្ទ R ឬ បង្កើតការតភ្ជាប់ទៅកាន់ទិន្នន័យដែល R អាចប្រើដើម្បីចូលប្រើទិន្នន័យពីចម្ងាយ។\n", + "\n", + "> កញ្ចប់ [readr](https://readr.tidyverse.org/), ដែលជាផ្នែកមួយនៃ Tidyverse, ផ្ដល់នូវវិធីរហ័ស និងផ friendliness បានសម្រាប់អានទិន្នន័យរាងគូទ័រចូលទៅក្នុង R។\n", + "\n", + "ឥលូវនេះ នាំចូលសំណុំទិន្នន័យជំងឺឆ្លងឈ сахар ដែលផ្ដល់នៅក្នុង URL ផ្ដើមនេះ៖ \n", + "\n", + "បន្ថែមពីនេះ យើងនឹង​ធ្វើតេស្តសុវត្ថិភាពជាមួយទិន្នន័យរបស់យើងដោយប្រើ `glimpse()` ហើយបង្ហាញជួរដេកដំបូង ៥ ជួរដោយប្រើ `slice()`។\n", + "\n", + "មុនពេលទៅកាន់ជំហានបន្ទាប់ សូមណែនាំអ្វីដែលអ្នកនឹងជួបញឹកញាប់ក្នុងកូដ R 🥁🥁: អុបរ៉ាត័រពីប `%>%`\n", + "\n", + "អុបរ៉ាត័រពីប (`%>%`) បំពេញសកម្មភាពជាដំណាក់កាលតាមលំដាប់ ដោយផ្ដល់វត្ថុទៅមុខក្នុងមុខងារឬវេយ្យាករណ៍ហៅ។ អ្នកអាចគិតអុបរ៉ាត័រពីបថា “បន្ទាប់មក” ក្នុងកូដរបស់អ្នក។\n" + ], + "metadata": { + "id": "KM6iXLH996Cl" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Import the data set\r\n", + "diabetes <- read_table2(file = \"https://www4.stat.ncsu.edu/~boos/var.select/diabetes.rwrite1.txt\")\r\n", + "\r\n", + "\r\n", + "# Get a glimpse and dimensions of the data\r\n", + "glimpse(diabetes)\r\n", + "\r\n", + "\r\n", + "# Select the first 5 rows of the data\r\n", + "diabetes %>% \r\n", + " slice(1:5)" + ], + "outputs": [], + "metadata": { + "id": "Z1geAMhM-bSP" + } + }, + { + "cell_type": "markdown", + "source": [ + "`glimpse()` បង្ហាញឲ្យយើងឃើញថា​ទិន្នន័យនេះមានជួរដេក ៤៤២ និងជួរឈរ ១១ ដែលជួរឈរទាំងអស់មានប្រភេទទិន្នន័យជា `double`\n", + "\n", + "
\n", + "\n", + "\n", + "\n", + "> glimpse() និង slice() គឺជាអនុគមន៍នៅក្នុង [`dplyr`](https://dplyr.tidyverse.org/)។ Dplyr ជាផ្នែកមួយនៃ Tidyverse គឺជាវិប្បដិសារក្នុងការដំណើរការទិន្នន័យ ដែលផ្តល់នូវសំណុំគំរូពាក្យកិរិយាដែលមានភាពស្របគ្នា ដែលជួយអ្នកដោះស្រាយបញ្ហាដំណើរការទិន្នន័យទូទៅបំផុត\n", + "\n", + "
\n", + "\n", + "ឥឡូវពេលដែលយើងមានទិន្នន័យហើយ មកកាន់ការជ្រើសរើសមួយលក្ខណៈ (`bmi`) សម្រាប់អនុវត្តការហាត់នេះ។ នេះក៏ត្រូវការឲ្យយើងជ្រើសរើសជួរឈរដែលចង់បាន។ តើយើងធ្វើបែបណា?\n", + "\n", + "[`dplyr::select()`](https://dplyr.tidyverse.org/reference/select.html) អនុញ្ញាតឲ្យយើង *ជ្រើសរើស* (ហើយញឹកញាប់អាចប្តូរឈ្មោះ) ជួរឈរនៅក្នុងសំណុំទិន្នន័យមួយ។\n" + ], + "metadata": { + "id": "UwjVT1Hz-c3Z" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Select predictor feature `bmi` and outcome `y`\r\n", + "diabetes_select <- diabetes %>% \r\n", + " select(c(bmi, y))\r\n", + "\r\n", + "# Print the first 5 rows\r\n", + "diabetes_select %>% \r\n", + " slice(1:10)" + ], + "outputs": [], + "metadata": { + "id": "RDY1oAKI-m80" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 3. ទិន្នន័យសម្រាប់បណ្តុះបណ្តាល និងសាកល្បង\n", + "\n", + "វាជាវិធានការដែលត្រូវអនុវត្តនៅក្នុងការរៀនតាមការត្រួតពិនិត្យ ដើម្បី *បំបែក* ទិន្នន័យចេញជាសំណុំនៃពីរផ្នែក; សំណុំនៃទិន្នន័យ (ដែលជាទូទៅធំជាង) សម្រាប់បង្រៀនម៉ូដែល ហើយសំណុំនៃទិន្នន័យតូច \"hold-back\" សម្រាប់មើលថា ម៉ូដែលបានបំពេញការងារយ៉ាងដូចម្តេច។\n", + "\n", + "ឥឡូវនេះពេលយើងមានទិន្នន័យរួចរាល់ អ្នកអាចមើលថាតើម៉ាស៊ីនអាចជួយកំណត់ការបំបែកត្រឹមត្រូវរវាងលេខក្នុងឧទាហរណ៍ទិន្នន័យនេះបានទេ។ យើងអាចប្រើកញ្ចប់ [rsample](https://tidymodels.github.io/rsample/) ដែលជាមួយនឹងស៊ុមរ៉ែធមូល Tidymodels ដើម្បីបង្កើតអតិបរមាមួយដែលមានព្រឹត្តិបត្រស្តីពី *វិធី* បំបែកទិន្នន័យ ហើយបន្ទាប់មកប្រើមុខងារ rsample ច្រើនទៀតពីរមុខងារដើម្បីទាញយកសំណុំទិន្នន័យបណ្តុះបណ្តាល និងសាកល្បងដែលបានបង្កើត៖\n" + ], + "metadata": { + "id": "SDk668xK-tc3" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "set.seed(2056)\r\n", + "# Split 67% of the data for training and the rest for tesing\r\n", + "diabetes_split <- diabetes_select %>% \r\n", + " initial_split(prop = 0.67)\r\n", + "\r\n", + "# Extract the resulting train and test sets\r\n", + "diabetes_train <- training(diabetes_split)\r\n", + "diabetes_test <- testing(diabetes_split)\r\n", + "\r\n", + "# Print the first 3 rows of the training set\r\n", + "diabetes_train %>% \r\n", + " slice(1:10)" + ], + "outputs": [], + "metadata": { + "id": "EqtHx129-1h-" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 4. បណ្តុះបណ្តាលគំរូសមីការស្រមោលជាមួយ Tidymodels\n", + "\n", + "ឥឡូវនេះយើងមានស្រេចក្នុងការបណ្តុះបណ្តាលគំរូរបស់យើង!\n", + "\n", + "ក្នុង Tidymodels អ្នកកំណត់គំរូដោយប្រើ `parsnip()` ដោយបញ្ជាក់បីកន្លែង៖\n", + "\n", + "- ប្រភេទគំរូ **type** ផ្តែកគំរូៗ ដូចជាសមីការស្រមោលបន្ទាត់, សមីការស្រមោលឡូជីស្ទិច, គំរូដើមសម្រេចចិត្ត និងផ្សេងៗទៀត។\n", + "\n", + "- របៀបធ្វើដំណើរ **mode** រួមបញ្ចូលជម្រើសទូទៅដូចជា សមីការស្រមោល និង ការបែងចែកចំណាត់ថ្នាក់; ប្រភេទគំរូមួយចំនួនគាំទ្រតែម្ដងឬទាំងពីរ ខណៈដែលមួយចំនួនមានតែរបៀបធ្វើដំណើរតែមួយ។\n", + "\n", + "- មេកានិចគំរូ **engine** គឺជាឧបករណ៍គណនាសម្រាប់តម្រៀបគំរូ។ ជាញឹកញាប់គឺជាកញ្ចប់ R មួយចំនួន ដូចជា **`\"lm\"`** ឬ **`\"ranger\"`**\n", + "\n", + "ព័ត៌មាននេះត្រូវបានកត់ត្រា​នៅក្នុងការបញ្ជាក់គំរូ ដូច្នេះមកបង្កើតមួយបានហើយ!\n" + ], + "metadata": { + "id": "sBOS-XhB-6v7" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Build a linear model specification\r\n", + "lm_spec <- \r\n", + " # Type\r\n", + " linear_reg() %>% \r\n", + " # Engine\r\n", + " set_engine(\"lm\") %>% \r\n", + " # Mode\r\n", + " set_mode(\"regression\")\r\n", + "\r\n", + "\r\n", + "# Print the model specification\r\n", + "lm_spec" + ], + "outputs": [], + "metadata": { + "id": "20OwEw20--t3" + } + }, + { + "cell_type": "markdown", + "source": [ + "បន្ទាប់ពីម៉ូដែលត្រូវបាន *កំណត់* រួចហើយ ម៉ូដែលអាចត្រូវបាន `ពិនិត្យប្រមាណ` ឬ `បណ្តុះបណ្តាល` ដោយប្រើមុខងារ [`fit()`](https://parsnip.tidymodels.org/reference/fit.html) ជាទូទៅប្រើរូបមន្តមួយនិងទិន្នន័យមួយចំនួន។\n", + "\n", + "`y ~ .` មានន័យថាយើងនឹងត្រូវបណ្ដុះ `y` ជាបរិមាណដែលត្រូវព្យាករណ៍/គោលដៅ ដែលពណ៌នាដោយអ្នកដាំនេះរាល់គ្នា ie, `.` (ក្នុងករណីនេះ យើងមានអ្នកដាំតែមួយគត់គឺ `bmi` )\n" + ], + "metadata": { + "id": "_oDHs89k_CJj" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Build a linear model specification\r\n", + "lm_spec <- linear_reg() %>% \r\n", + " set_engine(\"lm\") %>%\r\n", + " set_mode(\"regression\")\r\n", + "\r\n", + "\r\n", + "# Train a linear regression model\r\n", + "lm_mod <- lm_spec %>% \r\n", + " fit(y ~ ., data = diabetes_train)\r\n", + "\r\n", + "# Print the model\r\n", + "lm_mod" + ], + "outputs": [], + "metadata": { + "id": "YlsHqd-q_GJQ" + } + }, + { + "cell_type": "markdown", + "source": [ + "ពីលទ្ធផលនៃម៉ូឌែល យើងអាចមើលឃើញអនុគមន៍ដែលបានរៀនឃើញនៅពេលបណ្តុះបណ្តាល។ វាតំណឹងអនុគមន៍នៃបន្ទាត់ដែលមានការសម្រួលល្អបំផុតដែលផ្តល់ឱ្យយើងនូវកំហុសសរុបទាបជាងគេទាំងពីរចន្លោះអថេរពិតនិងបានទាយ។\n", + "\n", + "
\n", + "\n", + "## 5. ធ្វើការទាយលទ្ធផលលើសំណុំទិន្នន័យតេស្ត\n", + "\n", + "ឥឡូវនេះដែលយើងបានបណ្តុះបណ្តាលម៉ូឌែលមួយរួចហើយ យើងអាចប្រើវាដើម្បីទាយការវិវឌ្ឍជំងឺ y សម្រាប់សំណុំទិន្នន័យតេស្តដោយប្រើ [parsnip::predict()](https://parsnip.tidymodels.org/reference/predict.model_fit.html)។ វានឹងត្រូវបានប្រើដើម្បីគូរបន្ទាត់រវាងក្រុមទិន្នន័យ។\n" + ], + "metadata": { + "id": "kGZ22RQj_Olu" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Make predictions for the test set\r\n", + "predictions <- lm_mod %>% \r\n", + " predict(new_data = diabetes_test)\r\n", + "\r\n", + "# Print out some of the predictions\r\n", + "predictions %>% \r\n", + " slice(1:5)" + ], + "outputs": [], + "metadata": { + "id": "nXHbY7M2_aao" + } + }, + { + "cell_type": "markdown", + "source": [ + "Woohoo! 💃🕺 យើងទើបតែបណ្តុះម៉ូដែលមួយ ហើយប្រើវាធ្វើការព្យាករណ៍!\n", + "\n", + "នៅពេលធ្វើការព្យាករណ៍ ទម្រង់ប្រើប្រាស់របស់ tidymodels គឺតែងតែបង្កើតតារាង tibble/data frame នៃលទ្ធផលដែលមានឈ្មោះជួរឈរប្រក្រតី។ នេះធ្វើឲ្យងាយស្រួលក្នុងការរួមបញ្ចូលទិន្នន័យដើម និងការព្យាករណ៍នៅក្នុងទម្រង់ដែលប្រើប្រាស់បានសម្រាប់ប្រតិបត្តិការបន្តដូចជាការគូររូប។\n", + "\n", + "`dplyr::bind_cols()` ភ្ជាប់ជួរឈរពហុទិន្នន័យបានយ៉ាងមានប្រសិទ្ធភាព។\n" + ], + "metadata": { + "id": "R_JstwUY_bIs" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Combine the predictions and the original test set\r\n", + "results <- diabetes_test %>% \r\n", + " bind_cols(predictions)\r\n", + "\r\n", + "\r\n", + "results %>% \r\n", + " slice(1:5)" + ], + "outputs": [], + "metadata": { + "id": "RybsMJR7_iI8" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 6. រូបភាពលទ្ធផលម៉ូដែល\n", + "\n", + "ឥឡូវនេះ ពេលវេលាដើម្បីមើលវា secara visual 📈។ យើងនឹងបង្កើតរូបភាព scatter plot របស់តម្លៃ `y` និង `bmi` ទាំងអស់ក្នុងសំណុំតេស្ត បន្ទាប់មកប្រើការព្យាករណ៍ដើម្បីគូរបន្ទាត់នៅកន្លែងដែលសមស្របបំផុត ចន្លោះក្រុមទិន្នន័យនៃម៉ូដែល។\n", + "\n", + "R មានប្រព័ន្ធជាច្រើនសម្រាប់បង្កើតក្រាហ្វិច ប៉ុន្តែ `ggplot2` គឺជាឯកឯកភាពមួយក្នុងចំណោមស្រស់ស្អាត និងចម្រុះបំផុត។ វាអនុញ្ញាតឲ្យអ្នកបង្កើតក្រាហ្វិចដោយ **ប្រមូលផ្តុំធាតុដោយឯករាជ្យ**។\n" + ], + "metadata": { + "id": "XJbYbMZW_n_s" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Set a theme for the plot\r\n", + "theme_set(theme_light())\r\n", + "# Create a scatter plot\r\n", + "results %>% \r\n", + " ggplot(aes(x = bmi)) +\r\n", + " # Add a scatter plot\r\n", + " geom_point(aes(y = y), size = 1.6) +\r\n", + " # Add a line plot\r\n", + " geom_line(aes(y = .pred), color = \"blue\", size = 1.5)" + ], + "outputs": [], + "metadata": { + "id": "R9tYp3VW_sTn" + } + }, + { + "cell_type": "markdown", + "source": [ + "> ✅ គិតបន្តិចអំពីអ្វីកំពុងកើតឡើងនៅទីនេះ។ ខ្សែស្របមួយកំពុងដំណើរការតាមចំណុចតូចៗជាច្រើន ផ្ទាល់តែវាកំពុងធ្វើអ្វីយ៉ាងដូចម្តេច? តើអ្នកអាចឃើញថាអ្នកគួរត្រូវបានប្រើខ្សែនេះដើម្បីទាកទាយថាចំណុចទិន្នន័យថ្មីមួយដែលមិនទាន់បានឃើញគួរត្រូវតាំងនៅឯណាក្នុងទំនាក់ទំនងជាមួយអ័ក្ស y នៃតារាងនេះដែរឬទេ? ជួយព្យាយាមពន្យល់ជាភាសាអំពីការប្រើប្រាស់ដែលពាក់ព័ន្ធនឹងគំរូនេះ។\n", + "\n", + "សូមអបអរសាទរ អ្នកបានបង្កើតគំរូទំនាក់ទំនងបន្ទាត់ដំបូងរបស់អ្នក បានបង្កើតការទស្សន៍ទាយជាមួយវា ហើយបានបង្ហាញវាលើតារាងមួយ!\n" + ], + "metadata": { + "id": "zrPtHIxx_tNI" + } + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសំរាប់ភាពត្រឹមត្រូវ សូមជ្រាបថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬ មិនត្រឹមត្រូវបាន។ ឯកសារដើមជាភាសាមាតុភាគគួរត្រូវបានទទួលស្គាល់ជាដើមប្រភពមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមពិចារណាការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬ ការបំភ្លឺខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/2-Regression/1-Tools/solution/notebook.ipynb b/translations/km/2-Regression/1-Tools/solution/notebook.ipynb new file mode 100644 index 000000000..cb2d0656e --- /dev/null +++ b/translations/km/2-Regression/1-Tools/solution/notebook.ipynb @@ -0,0 +1,671 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## រៀបរាប់រៀងរាល់សម្រាប់គណនាវិទ្យាភាពជំងឺទឹកនោមផ្អែម - មេរៀនទី 1\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "នាំចូលបណ្ណាល័យដែលត្រូវការ\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn import datasets, linear_model, model_selection\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ផ្ទុក dataset ជំនាញជម្រាបឬគ្រប់គ្រងទម្រង់ជម្ងឺទឹកនោមផ្អែម ដែលបានបែងចែកជា​ទិន្នន័យ `X` និង លក្ខណៈ `y`។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(442, 10)\n", + "[ 0.03807591 0.05068012 0.06169621 0.02187239 -0.0442235 -0.03482076\n", + " -0.04340085 -0.00259226 0.01990749 -0.01764613]\n" + ] + } + ], + "source": [ + "X, y = datasets.load_diabetes(return_X_y=True)\n", + "print(X.shape)\n", + "print(X[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ជ្រើសរើសមុខងារមួយតែម្ដងសម្រាប់លំហាត់នេះ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(442,)\n" + ] + } + ], + "source": [ + "# Selecting the 3rd feature\n", + "X = X[:, 2]\n", + "print(X.shape)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(442, 1)\n", + "[[ 0.06169621]\n", + " [-0.05147406]\n", + " [ 0.04445121]\n", + " [-0.01159501]\n", + " [-0.03638469]\n", + " [-0.04069594]\n", + " [-0.04716281]\n", + " [-0.00189471]\n", + " [ 0.06169621]\n", + " [ 0.03906215]\n", + " [-0.08380842]\n", + " [ 0.01750591]\n", + " [-0.02884001]\n", + " [-0.00189471]\n", + " [-0.02560657]\n", + " [-0.01806189]\n", + " [ 0.04229559]\n", + " [ 0.01211685]\n", + " [-0.0105172 ]\n", + " [-0.01806189]\n", + " [-0.05686312]\n", + " [-0.02237314]\n", + " [-0.00405033]\n", + " [ 0.06061839]\n", + " [ 0.03582872]\n", + " [-0.01267283]\n", + " [-0.07734155]\n", + " [ 0.05954058]\n", + " [-0.02129532]\n", + " [-0.00620595]\n", + " [ 0.04445121]\n", + " [-0.06548562]\n", + " [ 0.12528712]\n", + " [-0.05039625]\n", + " [-0.06332999]\n", + " [-0.03099563]\n", + " [ 0.02289497]\n", + " [ 0.01103904]\n", + " [ 0.07139652]\n", + " [ 0.01427248]\n", + " [-0.00836158]\n", + " [-0.06764124]\n", + " [-0.0105172 ]\n", + " [-0.02345095]\n", + " [ 0.06816308]\n", + " [-0.03530688]\n", + " [-0.01159501]\n", + " [-0.0730303 ]\n", + " [-0.04177375]\n", + " [ 0.01427248]\n", + " [-0.00728377]\n", + " [ 0.0164281 ]\n", + " [-0.00943939]\n", + " [-0.01590626]\n", + " [ 0.0250506 ]\n", + " [-0.04931844]\n", + " [ 0.04121778]\n", + " [-0.06332999]\n", + " [-0.06440781]\n", + " [-0.02560657]\n", + " [-0.00405033]\n", + " [ 0.00457217]\n", + " [-0.00728377]\n", + " [-0.0374625 ]\n", + " [-0.02560657]\n", + " [-0.02452876]\n", + " [-0.01806189]\n", + " [-0.01482845]\n", + " [-0.02991782]\n", + " [-0.046085 ]\n", + " [-0.06979687]\n", + " [ 0.03367309]\n", + " [-0.00405033]\n", + " [-0.02021751]\n", + " [ 0.00241654]\n", + " [-0.03099563]\n", + " [ 0.02828403]\n", + " [-0.03638469]\n", + " [-0.05794093]\n", + " [-0.0374625 ]\n", + " [ 0.01211685]\n", + " [-0.02237314]\n", + " [-0.03530688]\n", + " [ 0.00996123]\n", + " [-0.03961813]\n", + " [ 0.07139652]\n", + " [-0.07518593]\n", + " [-0.00620595]\n", + " [-0.04069594]\n", + " [-0.04824063]\n", + " [-0.02560657]\n", + " [ 0.0519959 ]\n", + " [ 0.00457217]\n", + " [-0.06440781]\n", + " [-0.01698407]\n", + " [-0.05794093]\n", + " [ 0.00996123]\n", + " [ 0.08864151]\n", + " [-0.00512814]\n", + " [-0.06440781]\n", + " [ 0.01750591]\n", + " [-0.04500719]\n", + " [ 0.02828403]\n", + " [ 0.04121778]\n", + " [ 0.06492964]\n", + " [-0.03207344]\n", + " [-0.07626374]\n", + " [ 0.04984027]\n", + " [ 0.04552903]\n", + " [-0.00943939]\n", + " [-0.03207344]\n", + " [ 0.00457217]\n", + " [ 0.02073935]\n", + " [ 0.01427248]\n", + " [ 0.11019775]\n", + " [ 0.00133873]\n", + " [ 0.05846277]\n", + " [-0.02129532]\n", + " [-0.0105172 ]\n", + " [-0.04716281]\n", + " [ 0.00457217]\n", + " [ 0.01750591]\n", + " [ 0.08109682]\n", + " [ 0.0347509 ]\n", + " [ 0.02397278]\n", + " [-0.00836158]\n", + " [-0.06117437]\n", + " [-0.00189471]\n", + " [-0.06225218]\n", + " [ 0.0164281 ]\n", + " [ 0.09618619]\n", + " [-0.06979687]\n", + " [-0.02129532]\n", + " [-0.05362969]\n", + " [ 0.0433734 ]\n", + " [ 0.05630715]\n", + " [-0.0816528 ]\n", + " [ 0.04984027]\n", + " [ 0.11127556]\n", + " [ 0.06169621]\n", + " [ 0.01427248]\n", + " [ 0.04768465]\n", + " [ 0.01211685]\n", + " [ 0.00564998]\n", + " [ 0.04660684]\n", + " [ 0.12852056]\n", + " [ 0.05954058]\n", + " [ 0.09295276]\n", + " [ 0.01535029]\n", + " [-0.00512814]\n", + " [ 0.0703187 ]\n", + " [-0.00405033]\n", + " [-0.00081689]\n", + " [-0.04392938]\n", + " [ 0.02073935]\n", + " [ 0.06061839]\n", + " [-0.0105172 ]\n", + " [-0.03315126]\n", + " [-0.06548562]\n", + " [ 0.0433734 ]\n", + " [-0.06225218]\n", + " [ 0.06385183]\n", + " [ 0.03043966]\n", + " [ 0.07247433]\n", + " [-0.0191397 ]\n", + " [-0.06656343]\n", + " [-0.06009656]\n", + " [ 0.06924089]\n", + " [ 0.05954058]\n", + " [-0.02668438]\n", + " [-0.02021751]\n", + " [-0.046085 ]\n", + " [ 0.07139652]\n", + " [-0.07949718]\n", + " [ 0.00996123]\n", + " [-0.03854032]\n", + " [ 0.01966154]\n", + " [ 0.02720622]\n", + " [-0.00836158]\n", + " [-0.01590626]\n", + " [ 0.00457217]\n", + " [-0.04285156]\n", + " [ 0.00564998]\n", + " [-0.03530688]\n", + " [ 0.02397278]\n", + " [-0.01806189]\n", + " [ 0.04229559]\n", + " [-0.0547075 ]\n", + " [-0.00297252]\n", + " [-0.06656343]\n", + " [-0.01267283]\n", + " [-0.04177375]\n", + " [-0.03099563]\n", + " [-0.00512814]\n", + " [-0.05901875]\n", + " [ 0.0250506 ]\n", + " [-0.046085 ]\n", + " [ 0.00349435]\n", + " [ 0.05415152]\n", + " [-0.04500719]\n", + " [-0.05794093]\n", + " [-0.05578531]\n", + " [ 0.00133873]\n", + " [ 0.03043966]\n", + " [ 0.00672779]\n", + " [ 0.04660684]\n", + " [ 0.02612841]\n", + " [ 0.04552903]\n", + " [ 0.04013997]\n", + " [-0.01806189]\n", + " [ 0.01427248]\n", + " [ 0.03690653]\n", + " [ 0.00349435]\n", + " [-0.07087468]\n", + " [-0.03315126]\n", + " [ 0.09403057]\n", + " [ 0.03582872]\n", + " [ 0.03151747]\n", + " [-0.06548562]\n", + " [-0.04177375]\n", + " [-0.03961813]\n", + " [-0.03854032]\n", + " [-0.02560657]\n", + " [-0.02345095]\n", + " [-0.06656343]\n", + " [ 0.03259528]\n", + " [-0.046085 ]\n", + " [-0.02991782]\n", + " [-0.01267283]\n", + " [-0.01590626]\n", + " [ 0.07139652]\n", + " [-0.03099563]\n", + " [ 0.00026092]\n", + " [ 0.03690653]\n", + " [ 0.03906215]\n", + " [-0.01482845]\n", + " [ 0.00672779]\n", + " [-0.06871905]\n", + " [-0.00943939]\n", + " [ 0.01966154]\n", + " [ 0.07462995]\n", + " [-0.00836158]\n", + " [-0.02345095]\n", + " [-0.046085 ]\n", + " [ 0.05415152]\n", + " [-0.03530688]\n", + " [-0.03207344]\n", + " [-0.0816528 ]\n", + " [ 0.04768465]\n", + " [ 0.06061839]\n", + " [ 0.05630715]\n", + " [ 0.09834182]\n", + " [ 0.05954058]\n", + " [ 0.03367309]\n", + " [ 0.05630715]\n", + " [-0.06548562]\n", + " [ 0.16085492]\n", + " [-0.05578531]\n", + " [-0.02452876]\n", + " [-0.03638469]\n", + " [-0.00836158]\n", + " [-0.04177375]\n", + " [ 0.12744274]\n", + " [-0.07734155]\n", + " [ 0.02828403]\n", + " [-0.02560657]\n", + " [-0.06225218]\n", + " [-0.00081689]\n", + " [ 0.08864151]\n", + " [-0.03207344]\n", + " [ 0.03043966]\n", + " [ 0.00888341]\n", + " [ 0.00672779]\n", + " [-0.02021751]\n", + " [-0.02452876]\n", + " [-0.01159501]\n", + " [ 0.02612841]\n", + " [-0.05901875]\n", + " [-0.03638469]\n", + " [-0.02452876]\n", + " [ 0.01858372]\n", + " [-0.0902753 ]\n", + " [-0.00512814]\n", + " [-0.05255187]\n", + " [-0.02237314]\n", + " [-0.02021751]\n", + " [-0.0547075 ]\n", + " [-0.00620595]\n", + " [-0.01698407]\n", + " [ 0.05522933]\n", + " [ 0.07678558]\n", + " [ 0.01858372]\n", + " [-0.02237314]\n", + " [ 0.09295276]\n", + " [-0.03099563]\n", + " [ 0.03906215]\n", + " [-0.06117437]\n", + " [-0.00836158]\n", + " [-0.0374625 ]\n", + " [-0.01375064]\n", + " [ 0.07355214]\n", + " [-0.02452876]\n", + " [ 0.03367309]\n", + " [ 0.0347509 ]\n", + " [-0.03854032]\n", + " [-0.03961813]\n", + " [-0.00189471]\n", + " [-0.03099563]\n", + " [-0.046085 ]\n", + " [ 0.00133873]\n", + " [ 0.06492964]\n", + " [ 0.04013997]\n", + " [-0.02345095]\n", + " [ 0.05307371]\n", + " [ 0.04013997]\n", + " [-0.02021751]\n", + " [ 0.01427248]\n", + " [-0.03422907]\n", + " [ 0.00672779]\n", + " [ 0.00457217]\n", + " [ 0.03043966]\n", + " [ 0.0519959 ]\n", + " [ 0.06169621]\n", + " [-0.00728377]\n", + " [ 0.00564998]\n", + " [ 0.05415152]\n", + " [-0.00836158]\n", + " [ 0.114509 ]\n", + " [ 0.06708527]\n", + " [-0.05578531]\n", + " [ 0.03043966]\n", + " [-0.02560657]\n", + " [ 0.10480869]\n", + " [-0.00620595]\n", + " [-0.04716281]\n", + " [-0.04824063]\n", + " [ 0.08540807]\n", + " [-0.01267283]\n", + " [-0.03315126]\n", + " [-0.00728377]\n", + " [-0.01375064]\n", + " [ 0.05954058]\n", + " [ 0.02181716]\n", + " [ 0.01858372]\n", + " [-0.01159501]\n", + " [-0.00297252]\n", + " [ 0.01750591]\n", + " [-0.02991782]\n", + " [-0.02021751]\n", + " [-0.05794093]\n", + " [ 0.06061839]\n", + " [-0.04069594]\n", + " [-0.07195249]\n", + " [-0.05578531]\n", + " [ 0.04552903]\n", + " [-0.00943939]\n", + " [-0.03315126]\n", + " [ 0.04984027]\n", + " [-0.08488624]\n", + " [ 0.00564998]\n", + " [ 0.02073935]\n", + " [-0.00728377]\n", + " [ 0.10480869]\n", + " [-0.02452876]\n", + " [-0.00620595]\n", + " [-0.03854032]\n", + " [ 0.13714305]\n", + " [ 0.17055523]\n", + " [ 0.00241654]\n", + " [ 0.03798434]\n", + " [-0.05794093]\n", + " [-0.00943939]\n", + " [-0.02345095]\n", + " [-0.0105172 ]\n", + " [-0.03422907]\n", + " [-0.00297252]\n", + " [ 0.06816308]\n", + " [ 0.00996123]\n", + " [ 0.00241654]\n", + " [-0.03854032]\n", + " [ 0.02612841]\n", + " [-0.08919748]\n", + " [ 0.06061839]\n", + " [-0.02884001]\n", + " [-0.02991782]\n", + " [-0.0191397 ]\n", + " [-0.04069594]\n", + " [ 0.01535029]\n", + " [-0.02452876]\n", + " [ 0.00133873]\n", + " [ 0.06924089]\n", + " [-0.06979687]\n", + " [-0.02991782]\n", + " [-0.046085 ]\n", + " [ 0.01858372]\n", + " [ 0.00133873]\n", + " [-0.03099563]\n", + " [-0.00405033]\n", + " [ 0.01535029]\n", + " [ 0.02289497]\n", + " [ 0.04552903]\n", + " [-0.04500719]\n", + " [-0.03315126]\n", + " [ 0.097264 ]\n", + " [ 0.05415152]\n", + " [ 0.12313149]\n", + " [-0.08057499]\n", + " [ 0.09295276]\n", + " [-0.05039625]\n", + " [-0.01159501]\n", + " [-0.0277622 ]\n", + " [ 0.05846277]\n", + " [ 0.08540807]\n", + " [-0.00081689]\n", + " [ 0.00672779]\n", + " [ 0.00888341]\n", + " [ 0.08001901]\n", + " [ 0.07139652]\n", + " [-0.02452876]\n", + " [-0.0547075 ]\n", + " [-0.03638469]\n", + " [ 0.0164281 ]\n", + " [ 0.07786339]\n", + " [-0.03961813]\n", + " [ 0.01103904]\n", + " [-0.04069594]\n", + " [-0.03422907]\n", + " [ 0.00564998]\n", + " [ 0.08864151]\n", + " [-0.03315126]\n", + " [-0.05686312]\n", + " [-0.03099563]\n", + " [ 0.05522933]\n", + " [-0.06009656]\n", + " [ 0.00133873]\n", + " [-0.02345095]\n", + " [-0.07410811]\n", + " [ 0.01966154]\n", + " [-0.01590626]\n", + " [-0.01590626]\n", + " [ 0.03906215]\n", + " [-0.0730303 ]]\n" + ] + } + ], + "source": [ + "#Reshaping to get a 2D array\n", + "X = X.reshape(-1, 1)\n", + "print(X.shape)\n", + "print(X)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "បែងចែកទិន្នន័យបណ្តុះបណ្តាល និងសាកល្បង សម្រាប់ទាំង `X` និង `y`៕\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ជ្រើសម៉ូដែលនិងផ្គូផ្គងវាមួយជាមួយទិន្នន័យហ្វឹកហាត់។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
LinearRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" + ], + "text/plain": [ + "LinearRegression()" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model = linear_model.LinearRegression()\n", + "model.fit(X_train, y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ប្រើទិន្នន័យសាកល្បងដើម្បីទាយប្រយោលមួយជួរ\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model.predict(X_test)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "បង្ហាញលទ្ធផលនៅក្នុងក្រមប្លត។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAigAAAGdCAYAAAA44ojeAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbmUlEQVR4nO3de3wU1f0//tcQIHIxiQmBALsQUdSigNYLxn6iSaECaj/5NKTawAfRWi2IbUBRS71gtIrKp5rUj5dqK7ZfXfwAWcVS8ALuYtCIQEERvAC/cAtJoCBJQAhkc35/rLtmk92dmd2Z2ZnZ1/Px2Edl92Tm7CTd894z7/M+khBCgIiIiMhEuiW6A0RERESdMUAhIiIi02GAQkRERKbDAIWIiIhMhwEKERERmQ4DFCIiIjIdBihERERkOgxQiIiIyHS6J7oDsWhvb8f+/ftx+umnQ5KkRHeHiIiIFBBCoKWlBYMGDUK3btHnSCwZoOzfvx9OpzPR3SAiIqIY7N27Fw6HI2obSwYop59+OgD/G0xLS0twb4iIiEiJ5uZmOJ3O4DgejSUDlMBtnbS0NAYoREREFqMkPYNJskRERGQ6DFCIiIjIdBigEBERkekwQCEiIiLTYYBCREREpqMqQHn++ecxatSo4OqZvLw8rFy5Mvh6QUEBJEkKeUyfPj3kGHv27MG1116L3r17o3///rj77rvR1tamzbshIiIiW1C1zNjhcODxxx/H8OHDIYTA3/72NxQVFWHTpk04//zzAQC33norHn744eDP9O7dO/jfPp8P1157LXJycvDRRx+hvr4eN954I3r06IHHHntMo7dEREREVicJIUQ8B8jMzMSCBQtwyy23oKCgABdeeCEqKirCtl25ciWuu+467N+/HwMGDAAAvPDCC7j33ntx8OBB9OzZU9E5m5ubkZ6ejqamJtZBISIisgg143fMOSg+nw+vv/46jh07hry8vODzr732Gvr164cLLrgAc+fOxbfffht8raamBiNHjgwGJwAwfvx4NDc3Y+vWrRHP1draiubm5pAHERERac/n88Hr9WLRokXwer3w+XwJ6YfqSrJbtmxBXl4eTpw4gb59++KNN97AiBEjAACTJ0/G0KFDMWjQIHz22We499578dVXX8HtdgMAGhoaQoITAMF/NzQ0RDzn/PnzUV5errarREREpILb7UZZWRn2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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(X_test, y_test, color='black')\n", + "plt.plot(X_test, y_pred, color='blue', linewidth=3)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការរិះគន់**៖ \nឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើប្រាស់សេវាកម្មបកប្រែកម្មវិធី AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកសុចរិតភាព សូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាម្តុំនឹងត្រូវបានកត់សម្គាល់ជាអ្នកផ្តល់ព័ត៌មានដ៏ត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការបកប្រែដោយមនុស្សដែលមាន​ជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែកំហុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.1" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/2-Regression/2-Data/README.md b/translations/km/2-Regression/2-Data/README.md new file mode 100644 index 000000000..44ecc3c36 --- /dev/null +++ b/translations/km/2-Regression/2-Data/README.md @@ -0,0 +1,219 @@ +# បង្កើតម៉ូដែលរេហ្គ្រេសស្យុងដោយប្រើ Scikit-learn៖ រៀបចំ និងវិចិត្រស័ក្តិទិន្នន័យ + +![តារាងវិចិត្រស័ក្តិទិន្នន័យ](../../../../translated_images/km/data-visualization.54e56dded7c1a804.webp) + +តារាងវិចិត្រស័ក្តិដោយ [Dasani Madipalli](https://twitter.com/dasani_decoded) + +## [តេស្តមុនម៉េរៀន](https://ff-quizzes.netlify.app/en/ml/) + +> ### [មេរៀននេះមានក្នុងភាសា R ផងដែរ!](../../../../2-Regression/2-Data/solution/R/lesson_2.html) + +## ទីផ្សារណ៍ + +ឥឡូវនេះអ្នកបានរៀបចំឧបករណ៍ដែលត្រូវការសម្រាប់ការចាប់ផ្តើមបង្កើតម៉ូដែលម៉ាស៊ីនរៀនជាមួយ Scikit-learn ហើយ អ្នករួចរាល់ក្នុងការចាប់ផ្តើមសួរចម្លើយពីទិន្នន័យរបស់អ្នក។ ពេលអ្នកធ្វើការជាមួយទិន្នន័យ និងអនុវត្តន៍ដោះស្រាយ ML វាសំខាន់ណាស់ក្នុងការយល់ដឹងពីរបៀបសួរចម្លើយត្រឹមត្រូវ ដើម្បីអាចបើកសមត្ថភាពនៃទិន្នន័យរបស់អ្នកបានត្រឹមត្រូវ។ + +ក្នុងមេរៀននេះ អ្នកនឹងរៀនពី៖ + +- របៀបរៀបចំព័ត៌មានរបស់អ្នកសម្រាប់ការបង្កើតម៉ូដែល។ +- របៀបប្រើ Matplotlib សម្រាប់វិចិត្រស័ក្តិនិន្នន័យ។ + +## សួរចម្លើយត្រឹមត្រូវពីទិន្នន័យរបស់អ្នក + +ចម្លើយដែលអ្នកត្រូវការបាននឹងកំណត់ប្រភេទអាល់ហ្គូរីធម៍ ML ដែលអ្នកនឹងប្រើ។ ហើយគុណភាពនៃចម្លើយដែលបានត្រឡប់មកវិញ គឺពឹងផ្អែកយ៉ាងខ្លាំងលើធម្មជាតិនៃទិន្នន័យរបស់អ្នក។ + +ចូរមើល [ទិន្នន័យ](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) ដែលបានផ្តល់សម្រាប់មេរៀននេះ។ អ្នកអាចបើកឯកសារ .csv នេះនៅក្នុង VS Code។ ការមើលលឿនភ្លាមៗបង្ហាញថាមានចន្លោះទទេ និងការលាយបញ្ចូលរវាងខ្សែអក្សរ និងទិន្នន័យចំនួន។ ក៏មានជួរឈរមួយហៅថា 'Package' ដែលទិន្នន័យក្នុងនោះលាយគ្នារវាង 'sacks', 'bins' និងតម្លៃផ្សេងទៀត។ ទិន្នន័យនេះ ពិតជា មិនស្អាតត្រឹមត្រូវទេ។ + +[![ML សម្រាប់អ្នកថ្មី - របៀបវិភាគ និងសម្អាតទិន្នន័យ](https://img.youtube.com/vi/5qGjczWTrDQ/0.jpg)](https://youtu.be/5qGjczWTrDQ "ML សម្រាប់អ្នកថ្មី - របៀបវិភាគ និងសម្អាតទិន្នន័យ") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូខ្លីបង្ហាញពីការរៀបចំទិន្នន័យសម្រាប់មេរៀននេះ។ + +ពិតប្រាកដថា មិនប្រាកដល្អទេដែលទទួលបាន dataset ដែលរួចរាល់សម្រាប់ប្រើបង្កើតម៉ូដែល ML បានភ្លាមៗ។ ក្នុងមេរៀននេះ អ្នកនឹងរៀនរបៀបរៀបចំនូវ dataset ដើមដោយប្រើបណ្ណាល័យ Python ស្តង់ដា។ ក៏ដូចជារៀនបច្ចេកទេសខុសៗគ្នាសម្រាប់វិចិត្រស័ក្តិនៃទិន្នន័យផងដែរ។ + +## ករណីសិក្សា៖ 'ទីផ្សារមុខបឺ' + +ក្នុងថតនេះ អ្នកនឹងរកឃើញឯកសារ .csv មួយនៅក្នុងថតឫស `data` ហៅថា [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) ដែលមានជួរដេក ១៧៥៧ នៃទិន្នន័យអំពីទីផ្សារវាយផ្លែគោល ដែលត្រូវបានចែកជាក្រុមតាមក្រុង។ ទិន្នន័យដើមនេះបញ្ចេញពី [Specialty Crops Terminal Markets Standard Reports](https://www.marketnews.usda.gov/mnp/fv-report-config-step1?type=termPrice) ដែលចែកចាយដោយក្រសួងកសិកម្មសហរដ្ឋអាមេរិក។ + +### រៀបចំទិន្នន័យ + +ទិន្នន័យនេះមានលើសាធារណៈ។ អ្នកអាចទាញយកវាចេញជា ឯកសារច្រើនឯកសារផ្ទាល់ខ្លួនរៀងរាល់ក្រុង ពីគេហទំព័រ USDA។ ដើម្បីជៀសវាងឯកសារច្រើនពេក យើងបានបញ្ចូលទិន្នន័យក្រុងទាំងអស់ចូលក្នុងសៀវភៅ បច្ចុប្បន្ន យើងបាន _រៀបចំ_ ទិន្នន័យរួចមួយចំនួន។ បន្ទាប់មក មកមើលលម្អិតទិន្នន័យ។ + +### ទិន្នន័យវាយផ្លែគោល - សេចក្ដីសន្និដ្ឋានដំបូង + +តើអ្នកមើលឃើញអ្វីពីទិន្នន័យនេះ? អ្នកបានឃើញថាមានការលាយបញ្ចូលរវាងខ្សែអក្សរ លេខ ចន្លោះទទេ និងតម្លៃចម្លែក ដែលអ្នកត្រូវយល់។ + +តើអ្នកអាចសួរចម្លើយអំពីទិន្នន័យនេះជាមួយបច្ចេកទេស Regression យ៉ាងដូចម្ដេច? តើអ្វីមួយដូចជា "ទស្សនាថ្លៃបាយផ្លែគោលលក់នៅខែណាមួយ"? មើលទិន្នន័យម្ដងទៀត មានកែប្រែខ្លះដែលត្រូវធ្វើដើម្បីបង្កើតរចនាសម្ព័ន្ធទិន្នន័យដែលត្រូវការសម្រាប់ភារកិច្ចនេះ។ + +## លំហាត់ - វិភាគទិន្នន័យវាយផ្លែគោល + +ចាប់ផ្តើមប្រើ [Pandas](https://pandas.pydata.org/) (ឈ្មោះមានន័យថា `Python Data Analysis`) ដែលជាឧបករណ៍មានប្រយោជន៍សម្រាប់រៀបចំទិន្នន័យ ដើម្បីវិភាគ និងរៀបចំទិន្នន័យវាយផ្លែគោលនេះ។ + +### ជំហានទីមួយ - ត្រួតពិនិត្យថ្ងៃខែខ្វះ + +អ្នកត្រូវខំធ្វើជំហានដើម្បីត្រួតពិនិត្យមើល ថ្ងៃខែខ្វះ៖ + +1. បំលែងថ្ងៃខែទៅទ្រង់ទ្រាយខែ (វាជាថ្ងៃខែឆ្នាំរបស់ ស.រ.អ., ដូច្នេះទ្រង់ទ្រាយគឺ `MM/DD/YYYY`)។ +2. ដកខែចេញជាជួរឈរថ្មី។ + +បើកឯកសារ _notebook.ipynb_ ក្នុង Visual Studio Code ហើយនាំចូលសៀវភៅផ្ទាំងទៅក្នុង dataframe ថ្មីរបស់ Pandas។ + +1. ប្រើមុខងារ `head()` ដើម្បីមើលជួរដេកប្រាំដំបូង។ + + ```python + import pandas as pd + pumpkins = pd.read_csv('../data/US-pumpkins.csv') + pumpkins.head() + ``` + + ✅ តើមុខងារមួយដែលអ្នកនឹងប្រើសម្រាប់មើលជួរដេកចុងបំផុតប្រាំចុងក្រោយ? + +1. ត្រួតពិនិត្យមើលថាតើមានទិន្នន័យខ្វះក្នុង dataframe បច្ចុប្បន្នទេ៖ + + ```python + pumpkins.isnull().sum() + ``` + + មានទិន្នន័យខ្វះ ប៉ុន្តែប្រហែលជាមិនមានផលប៉ះពាល់ចំពោះភារកិច្ចនេះទេ។ + +1. ដើម្បីឲ្យ dataframe របស់អ្នកងាយស្រួលក្នុងការងារ ជ្រើសយកតែជួរឈរដែលអ្នកត្រូវការ ជាមួយមុខងារ `loc` ដែលដកចេញពី dataframe ដើមជាក្រុមជួរដេក (ផ្ដល់ជាម៉ាស៊ីនជុំឡើង) និងជួរឈរ (ផ្ដល់ជាម៉ាស៊ីនទីពីរ)។ ប្រើ `:` ក្នុងករណីខាងក្រោមមានន័យថា "ទាំងអស់ជួរដេក"។ + + ```python + columns_to_select = ['Package', 'Low Price', 'High Price', 'Date'] + pumpkins = pumpkins.loc[:, columns_to_select] + ``` + +### ជំហានទីពីរ - កំណត់ថ្លៃមធ្យមនៃបាយផ្លែគោល + +គិតពីរបៀបកំណត់ថ្លៃមធ្យមនៃបាយផ្លែគោលក្នុងខែណាមួយ។ តើជួរឈរណាដែលអ្នកនឹងជ្រើសសម្រាប់ភារកិច្ចនេះ? គំនិត៖ អ្នកត្រូវការជួរឈរបី។ + +ដំណោះស្រាយ៖ គណនាមធ្យមនៃជួរឈរ `Low Price` និង `High Price` ដើម្បីបង្កើតជួរឈរថ្លៃថ្មី ហើយបំលែងជួរឈរ Date ឲ្យបង្ហាញតែខែប៉ុណ្ណោះ។សំណាងល្អ គិតតាមការត្រួតពិនិត្យខាងលើ គ្មានទិន្នន័យខ្វះសម្រាប់ថ្ងៃខែឬថ្លៃទេ។ + +1. ដើម្បីគណនាមធ្យម បន្ថែមកូដដូចខាងក្រោម៖ + + ```python + price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2 + + month = pd.DatetimeIndex(pumpkins['Date']).month + + ``` + + ✅ អ្នកអាចបោះពុម្ព `print(month)` ដើម្បីត្រួតពិនិត្យទិន្នន័យណាមួយបាន។ + +2. ឥឡូវនេះ ចម្លងទិន្នន័យដែលបានបំលែងទៅក្នុង dataframe ថ្មីរបស់ Pandas៖ + + ```python + new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price}) + ``` + + ការបោះពុម្ព dataframe នឹងបង្ហាញ dataset ស្អាតនិងមានរបៀប ដែលអ្នកអាចប្រើបង្កើតម៉ូដែល regression ថ្មីរបស់អ្នក។ + +### តែរង់ចាំ! មានអ្វីមួយចម្លែកនៅទីនេះ + +បើអ្នកមើលជួរឈរ `Package` សូមមើលថា វាយផ្លែគោលត្រូវបានលក់ក្នុងការរៀបចំផ្សេងៗគ្នាច្រើន។ មានករណីលក់ជា '1 1/9 bushel', '1/2 bushel', លក់ជា ខ្នាយ ផ្ទាល់, លក់ជា ផោន និងលក់ក្នុងប្រអប់ធំៗដែលមានទទឹងខុសៗគ្នា។ + +> បាយផ្លែគោលហាក់ដូចជាពិបាកវាស់ទំងន់ដោយសរុបផ្នែកមួយទេ។ + +ស្វែងរកជាងទិន្នន័យដើម គួរឱ្យចាប់អារម្មណ៍ថា ទាំងអស់មាន `Unit of Sale` ស្មើជា 'EACH' ឬ 'PER BIN' ត្រូវបានប្រើ `Package` ប្រភេទ តាមអាំងឆ្វេង មិនដូចគ្នា ឬ 'each'។ បាយផ្លែគោលហាក់ដូចជាពិបាកវាស់ទំងន់ច្បាស់លាស់ ដូចនេះយើងត្រូវតែចម្រោះសម្រាប់បាយផ្លែគោលដែលមានខ្សែអក្សរ 'bushel' ក្នុងជួរឈរ `Package` របស់ពួកវា។ + +1. បន្ថែមហ្វីលទ័រមួយនៅផ្នែកលើឯកសារ ខាងក្រោមការនាំចូល .csv ដើម៖ + + ```python + pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)] + ``` + + បើអ្នកបោះពុម្ពទិន្នន័យឥឡូវនេះ អ្នកនឹងឃើញថា តែជួរដេក​ប្រហែល ៤១៥ ដែលមានបាយផ្លែគោលតាម bushel ត្រូវបានយកតែប៉ុណ្ណោះ។ + +### តែរង់ចាំ! មានទៀតអ្វីមួយត្រូវធ្វើបន្ថែម + +តើអ្នកមើលឃើញថា បរិមាណ bushel ផ្លាស់ប្ដូរតាមជួរដេកមែនទេ? អ្នកត្រូវធ្វើការទម្រង់តម្លៃតាម bushel សម្រាប់បង្ហាញតម្លៃតាម bushel ដូច្នេះត្រូវធ្វើគណិតវិទ្យាដើម្បីធ្វើឲ្យវាមានភាពស្តង់ដារ។ + +1. បន្ថែមជួរដេកខាងក្រោមប្លុកបង្កើត 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) + ``` + +✅ ដោយយោងទៅតាម [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308), ទំងន់នៃ bushel អាស្រ័យលើប្រភេទផលិតផល ដូចជា វាជាបរិមាណមួយ។ "Bushel ត្រសក់ គឺត្រូវមានទំងន់ ៥៦ ផោន... ដល់ស្លឹកបៃតង មានទំហំធំជាង និងទំងន់តិចជាង bushel ត្រសក់ spinach គឺមានតែ ២០ ផោន"។ វាមិនងាយស្រួលទេ! យើងមិនបានបំលែង bushel ទៅផោនឡើយ តែប្រើតម្លៃតាម bushel។ ការសិក្សានេះពោរពេញដោយសារៈសំខាន់ក្នុងការយល់ដឹងធម្មជាតិនៃទិន្នន័យរបស់អ្នក! + +ឥឡូវនេះ អ្នកអាចវិភាគតម្លៃរាប់តាមឯកតាជាផ្អែកលើការវាស់ bushel របស់ពួកវា។ ប្រសិនបើអ្នកបោះពុម្ពទិន្នន័យនេះម្តងទៀត អ្នកនឹងឃើញភាពស្តង់ដារ។ + +✅ តើអ្នកមើលឃើញទេថា ផ្លែគោលដែលលក់ដោយ bushel ផ្នែកកន្លះមានតម្លៃថ្លៃជាង? តើអ្នកអាចសន្និដ្ឋានពីមូលហេតុបានទេ? គំនិត៖ បាយផ្លែគោលតូចៗ មានតំលៃថ្លៃជាងបាយធំៗ ព្រោះមានច្រើនជាងនៅក្នុង bushel មួយ ដោយផ្អែកលើកន្លែងទំនេរដែលមានរវាងវាយដ៏ធំនិងផ្លែគោល។ + +## វិធីសាស្រ្តវិចិត្រស័ក្តិ + +ផ្នែកមួយនៃភារកិច្ចរបស់វិទ្យាសាស្ដ្រ ទិន្នន័យគឺការបង្ហាញពីគុណភាព និងធម្មជាតិនៃទិន្នន័យដែលពួកគេទទួលបាន។ ដើម្បីធ្វើបែបនេះ មិនហ៊ានតែបង្កើតវិចិត្រស័ក្តិស្អាតៗជានិច្ច ឬ អត្រា គន្លង និងក្រាផបាន សម្រាប់បង្ហាញប្រភេទផ្សេងៗនៃទិន្នន័យ។ តាមរយៈនេះ ពួកគេអាចបង្ហាញទំនាក់ទំនង និងកន្លែងខ្វះខាតដែលពិបាកសំរេចដោយការមើលតាមផ្ទាល់។ + +[![ML សម្រាប់អ្នកថ្មី - របៀបវិចិត្រស័ក្តិនិន្នន័យជាមួយ Matplotlib](https://img.youtube.com/vi/SbUkxH6IJo0/0.jpg)](https://youtu.be/SbUkxH6IJo0 "ML សម្រាប់អ្នកថ្មី - របៀបវិចិត្រស័ក្តិនិន្នន័យជាមួយ Matplotlib") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូខ្លីបង្ហាញពីការវិចិត្រស័ក្តិនិន្នន័យសម្រាប់មេរៀននេះ។ + +វិចិត្រស័ក្តិអាចជួយកំណត់បច្ចេកទេសម៉ាស៊ីនរៀនដែលសមស្របបំផុតសម្រាប់ទិន្នន័យបាន។ គំនូស scatterplot ដែលហាក់ដូចតាមបន្ទាត់ បានបង្ហាញថាទិន្នន័យល្អសម្រាប់ការប្រើ regression របៀបលីនេអ៊ែរ។ + +បណ្ណាល័យវិចិត្រស័ក្តិទិន្នន័យមួយដែលដំណើរការល្អក្នុង Jupyter notebooks គឺ [Matplotlib](https://matplotlib.org/) (ដែលអ្នកបានឃើញមុននេះក្នុងមេរៀនមុន)។ + +> ទទួលបានបទពិសោធន៍បន្ថែមជាមួយវិចិត្រស័ក្តិនិន្នន័យក្នុង [មេរៀនទាំងនេះ](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott)។ + +## លំហាត់ - សាកល្បងជាមួយ Matplotlib + +សាកល្បងបង្កើតគំនូសបន្ទាត់មូលដ្ឋានដើម្បីបង្ហាញ dataframe ថ្មីដែលអ្នកបានបង្កើត។ តើគំនូសបន្ទាត់មូលដ្ឋាននឹងបង្ហាញអ្វី? + +1. នាំចូល Matplotlib នៅផ្នែកលើឯកសារ ក្រោមការនាំចូល Pandas៖ + + ```python + import matplotlib.pyplot as plt + ``` + +1. ដំណើរការសៀវភៅគ្រាន់ចប់ម្តងទៀតសម្រាប់បន្ទាន់សម័យ។ +1. នៅខាងក្រោមនៃសៀវភៅបន្ថែមកោសិកាដើម្បីគូសទិន្នន័យជាប្រអប់៖ + + ```python + price = new_pumpkins.Price + month = new_pumpkins.Month + plt.scatter(price, month) + plt.show() + ``` + + ![គំនូស scatterplot បង្ហាញទំនាក់ទំនងតម្លៃទៅខែ](../../../../translated_images/km/scatterplot.b6868f44cbd2051c.webp) + + តើនេះជាគំនូសមានប្រយោជន៍ទេ? តើមានអ្វីណាមួយដែលធ្វើឲ្យអ្នកភ្ញាក់ផ្អើលទេ? + + វាមិនមានប្រយោជន៍ពិសេសណាស់ទេ ពីព្រោះវា​គ្រាន់តែបង្ហាញទិន្នន័យរបស់អ្នកជាចំនុចច散នៅក្នុងខែណាមួយ។ + +### ធ្វើឲ្យវាមានប្រយោជន៍ + +ដើម្បីទទួលបានតារាងបង្ហាញទិន្នន័យដែលមានប្រយោជន៍ អ្នកត្រូវតែផ្ដុំទិន្នន័យមួយរបៀបណាមួយ។ យើងសាកល្បងបង្កើតគំនូសដែលភាគល្អិត y បង្ហាញខែ និងទិន្នន័យបង្ហាញការបែងចែកទិន្នន័យ។ + +1. បន្ថែមកោសិកាមួយសម្រាប់បង្កើតតារាងជាតារាងប៊ា៖ + + ```python + new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar') + plt.ylabel("Pumpkin Price") + ``` + + ![តារាងប៊ាបង្ហាញទំនាក់ទំនងតម្លៃទៅខែ](../../../../translated_images/km/barchart.a833ea9194346d76.webp) + + នេះជាវិចិត្រស័ក្តិទិន្នន័យមានប្រយោជន៍ជាងមុនទេ! វាហាក់ដូចបង្ហាញថាតម្លៃខ្ពស់បំផុតសម្រាប់បាយផ្លែគោលមាននៅខែកញ្ញា និងតុលា។ តើវาตรงតាមការរំពឹងទុករបស់អ្នកទេ? ហេតុអ្វី? + +--- + +## 🚀 ការប្រកួតប្រជែង + +ស្វែងយល់អំពីប្រភេទវិចិត្រស័ក្តិផ្សេងៗដែល Matplotlib ផ្តល់ជូន។ ប្រភេទណាដែលសមរម្យបំផុតសម្រាប់បញ្ហារេហ្គ្រេសស្យុង? + +## [តេស្តបន្ទាប់ម៉េរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## សង្ខេប និងការសិក្សាឯកឯង + +សូមមើលវិធីជាច្រើនក្នុងការវិចិត្រស័ក្តិនិន្នន័យ។ បង្កើតបញ្ជីបណ្ណាល័យផ្សេងៗ និងសម្គាល់ថាបណ្ណាល័យណាដែលល្អបំផុតសម្រាប់ភារកិច្ចបច្ចេកទេសផ្សេងៗ ដូចជាវិចិត្រស័ក្តិ 2D និង 3D។ តើអ្នកបានរកឃើញអ្វីខ្លះ? + +## កាតព្វកិច្ច + +[ការស្វែងរកវិចិត្រស័ក្តិ](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកសុពលភាព យើងសូមអោយស្គាល់ថាការបកប្រែដោយស្វ័យប្រវត្តិកុំព្យូទ័រអាចមានកំហុសឬការខកខានខ្លះ។ ឯកសារដើមជាភាសាដើមគួរត្រូវបានចាត់ទុកជាមធ្យោបាយដែលមានសិទ្ធិពេញលេញ។ សម្រាប់ព័ត៌មានដែលសំខាន់ ការបកប្រែដោយអ្នកជំនាញវិជ្ជាជីវៈត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកប្រែមិនត្រឹមត្រូវណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/2-Data/assignment.md b/translations/km/2-Regression/2-Data/assignment.md new file mode 100644 index 000000000..bb846e47e --- /dev/null +++ b/translations/km/2-Regression/2-Data/assignment.md @@ -0,0 +1,16 @@ +# ការត្រៀមតាមរយៈការមើលឃើញ + +មានបណ្ណាល័យផ្សេងៗជាច្រើនដែលអាចប្រើសម្រាប់ការមើលឃើញទិន្នន័យ។ បង្កើតការមើលឃើញខ្លះៗដោយប្រើទិន្នន័យ Pumpkin ក្នុងមេរៀននេះជាមួយ matplotlib និង seaborn ក្នុងសៀវភៅសម្រង់មួយ។ តើបណ្ណាល័យណាមានភាពងាយស្រួលក្នុងការធ្វើការជាង? + +## ក្រមសណ្ឋាន + +| ការវាយតម្លៃ | ល្អបំផុត | មធ្យម | ត្រូវការការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| | សៀវភៅសម្រង់ត្រូវបានដាក់ស្នើជាមួយនូវការត្រៀម/ការមើលឃើញពីរមុខ | សៀវភៅសម្រង់ត្រូវបានដាក់ស្នើជាមួយនូវការត្រៀម/ការមើលឃើញមួយមុខ | សៀវភៅសម្រង់មិនត្រូវបានដាក់ស្នើ | + +--- + + +**ការបដិសេធ**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ បើទោះបីយើងខិតខំប្រឹងប្រែងរកភាពត្រឹមត្រូវក្តី សូមជ្រាបថា ការបកប្រែដោយប្រព័ន្ធស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានភាសាដើមគួរត្រូវបានគេយកជាទិន្នន័យដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យប្រើការបកប្រែដោយមនុស្សអ្នកជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗដែលផ្តល់ឱ្យពីការប្រើប្រាស់បកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/2-Data/notebook.ipynb b/translations/km/2-Regression/2-Data/notebook.ipynb new file mode 100644 index 000000000..e625fe72d --- /dev/null +++ b/translations/km/2-Regression/2-Data/notebook.ipynb @@ -0,0 +1,40 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3-final" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3", + "language": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខំប្រឹងប្រែងឲ្យបានភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសាតំបន់មានត្រូវបានពិចារណាថាជាឋានពិតផ្លូវការនៃព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យប្រើការបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសណាមួយ ដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/2-Regression/2-Data/solution/Julia/README.md b/translations/km/2-Regression/2-Data/solution/Julia/README.md new file mode 100644 index 000000000..312f4b245 --- /dev/null +++ b/translations/km/2-Regression/2-Data/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាទីតាំងបង្ហើបបណ្តោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ក្នុងខណៈពេលយើងព្យាយាមធានាការត្រឹមត្រូវ សូមយល់ឲ្យបានថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមូលដ្ឋានគួរត្រូវបានពិចារណា​ជា​ទ្រព្យសម្បត្ដិផ្លូវការជាលេខកូដ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អាហារូបករណ៍ជាមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/2-Data/solution/R/lesson_2-R.ipynb b/translations/km/2-Regression/2-Data/solution/R/lesson_2-R.ipynb new file mode 100644 index 000000000..04b423612 --- /dev/null +++ b/translations/km/2-Regression/2-Data/solution/R/lesson_2-R.ipynb @@ -0,0 +1,666 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "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", + "source": [ + "# បង្កើតម៉ូដែលវិញ្ញាសារជាក់លាក់: រៀបចំនិងមើលទិន្នន័យ\n", + "\n", + "## **វិញ្ញាសារជាក់លាក់សម្រាប់ផំពកិន - មេរៀនទី 2**\n", + "#### គ្រប introductio\n", + "\n", + "ឥឡូវនេះដែលអ្នកបានត្រៀមខ្លួនជាមួយឧបករណ៍ដែលអ្នកត្រូវការដើម្បីចាប់ផ្តើមដោះស្រាយការបង្កើតម៉ូដែលសិក្សាមាស៊ីនជាមួយ Tidymodels និង Tidyverse អ្នកបានរៀបចំរួចហើយដើម្បីចាប់ផ្តើមសួរបានចំលើយពីទិន្នន័យរបស់អ្នក។ នៅពេលដែលអ្នកធ្វើការជាមួយទិន្នន័យ និងអនុវត្តដំណោះស្រាយ ML វិធីសាស្ត្រនេះ វាមានសារៈសំខាន់យ៉ាងខ្លាំងក្នុងការយល់ដឹងពីរបៀបសួរប្រាប់សំណួរដែលត្រឹមត្រូវដើម្បីបើកសមត្ថភាពរបស់សំណុំទិន្នន័យរបស់អ្នកយ៉ាងត្រឹមត្រូវ។\n", + "\n", + "នៅក្នុងមេរៀននេះ អ្នកនឹងរៀន:\n", + "\n", + "- របៀបរៀបចំទិន្នន័យរបស់អ្នកសម្រាប់ការបង្កើតម៉ូដែល។\n", + "\n", + "- របៀបប្រើ `ggplot2` សម្រាប់ការមើលទិន្នន័យ។\n", + "\n", + "សំណួរដែលអ្នកត្រូវបានបំផុតនឹងកំណត់ប្រភេទនៃអាល់ហ្គរីធម៌ ML ដែលអ្នកនឹងប្រើប្រាស់។ ហើយគុណភាពនៃចម្លើយដែលអ្នកទទួលបាននឹងពឹងផ្អែកយ៉ាងខ្លាំងលើធម្មសម្បត្តិនៃទិន្នន័យរបស់អ្នក។\n", + "\n", + "ចង់មើលរឿងនេះដោយធ្វើការប្រឡងផ្ទាល់។\n", + "\n", + "

\n", + " \n", + "

ស្នាដៃដោយ @allison_horst
\n" + ], + "metadata": { + "id": "Pg5aexcOPqAZ" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 1. នាំចូលទិន្នន័យផលល្ហុង និងហៅមក Tidyverse\n", + "\n", + "យើងត្រូវការបណ្ណាល័យខាងក្រោមដើម្បីកំណត់ និងរាយចេញមេរៀននេះ៖\n", + "\n", + "- `tidyverse`: [tidyverse](https://www.tidyverse.org/) គឺជា [កំណត់បណ្ណាល័យ R](https://www.tidyverse.org/packages) ដែលរចនាឡើងដើម្បីធ្វើឱ្យវិទ្យាសាស្ត្រទិន្នន័យរហ័ស រងាយស្រួល និងក្ដៅក្នុងការធ្វើការលេងជាងមុន!\n", + "\n", + "អ្នកអាចដំឡើងវាតាមរយៈ៖\n", + "\n", + "`install.packages(c(\"tidyverse\"))`\n", + "\n", + "ស្គ្រីបខាងក្រោមពិនិត្យមើលថាតើអ្នកមានបណ្ណាល័យដែលត្រូវការសម្រាប់បញ្ចប់មូឌុលនេះហើយដំឡើងវាដើម្បីជំនួសបើមានខកខាន។\n" + ], + "metadata": { + "id": "dc5WhyVdXAjR" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "suppressWarnings(if(!require(\"pacman\")) install.packages(\"pacman\"))\n", + "pacman::p_load(tidyverse)" + ], + "outputs": [], + "metadata": { + "id": "GqPYUZgfXOBt" + } + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះ យើងចាប់ផ្តើមដំណើរការបញ្ចប់មួយចំនួន និងផ្ទុក [ទិន្នន័យ](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) ដែលបានផ្តល់សម្រាប់មេរៀននេះ!\n" + ], + "metadata": { + "id": "kvjDTPDSXRr2" + } + }, + { + "cell_type": "code", + "execution_count": null, + "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)" + ], + "outputs": [], + "metadata": { + "id": "VMri-t2zXqgD" + } + }, + { + "cell_type": "markdown", + "source": [ + "មើល `glimpse()` ពេលវេលា​មួយភ្លាម ជាបន្ទាន់បង្ហាញថា​មានចន្លោះទទេ និងមានការលាយបញ្ចូលគ្នារវាងខ្សែអក្សរ (`chr`) និងទិន្នន័យលេខ (`dbl`)។ `Date` គឺជាប្រភេទខ្សែអក្សរ ហើយមានកូឡុំណ៍មួយដ៏អស្ចារ្យហៅថា `Package` ដែលទិន្នន័យ នៅក្នុងនោះមានការលាយបញ្ចូលគ្នារវាង `sacks`, `bins` និងតម្លៃផ្សេងៗទៀត។ ទិន្នន័យនេះ ជាការអភិវឌ្ឍន៍មួយព្រា​ជាក់ស្តែង 😤។\n", + "\n", + "ពិតប្រាកដ វានៅមិនធម្មតាទេដែលនឹងទទួលបានឯកសារទិន្នន័យ ដែលបានរៀបចំរួចរាល់សម្រាប់ប្រើបង្កើតម៉ូឌែល ML ពីប្រអប់ទេ។ ប៉ុន្តែកុំបារម្ភ នៅក្នុងមេរៀននេះ អ្នកនឹងរៀនពីរបៀបរៀបចំឯកសារទិន្នន័យដើមឲ្យបានត្រឹមត្រូវដោយប្រើបណ្ណាល័យ R ដែលមានស្តង់ដារ 🧑‍🔧។ អ្នកនឹងរៀនពីបច្ចេកទេសផ្សេងៗដើម្បីសម្របសម្រួលទិន្នន័យផងដែរ 📈📊\n", + "
\n", + "\n", + "> ការរំលឹកម្ដងទៀត៖ អូបერატឺ pipe (`%>%`) ប្រត្តិបត្ដិការជាមួយកំណត់ត្រានៅលំដាប់តាមហេតុផល ដោយផ្ទេរប្រធានវត្ថុមួយទៅមុខទៅមុខក្នុងសមីការឬហៅមុខងារ។ អ្នកអាចគិតពីអូបერატឺ pipe ដូចជាការនិយាយថា \"បន្ទាប់មក\" នៅក្នុងកូដរបស់អ្នក។\n" + ], + "metadata": { + "id": "REWcIv9yX29v" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 2. ពិនិត្យឃើញទិន្នន័យខ្វះ\n", + "\n", + "មួយក្នុងចំណោមបញ្ហាធម្មតាបំផុតដែលអ្នកវិទ្យាសាស្រ្តទិន្នន័យត្រូវដោះស្រាយគឺទិន្នន័យមិនពេញលេញឬខ្វះ។ R តំណាងឲ្យតម្លៃខ្វះ ឬមិនដឹងជាមួយតម្លៃសញ្ញាពិសេស៖ `NA` (មិនអាចប្រើបាន)។\n", + "\n", + "ដូចនេះ តើយើងធ្វើដូចម្តេចដើម្បីដឹងថា data frame មានតម្លៃខ្វះ?\n", + "
\n", + "- វិធីមួយផ្ទាល់សាមញ្ញគឺប្រើមុខងារ base R `anyNA` ដែលត្រឡប់តម្លៃតុល្យភាព `TRUE` ឬ `FALSE`\n" + ], + "metadata": { + "id": "Zxfb3AM5YbUe" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "pumpkins %>% \n", + " anyNA()" + ], + "outputs": [], + "metadata": { + "id": "G--DQutAYltj" + } + }, + { + "cell_type": "markdown", + "source": [ + "អស្ចារ្យណាស់ មានទិន្នន័យខ្វះខាតខ្លះ! នេះជាទីកន្លែងល្អសម្រាប់ចាប់ផ្ដើម។\n", + "\n", + "- វិធីមួយផ្សេងទៀតគឺការប្រើមុខងារ `is.na()` ដែលបង្ហាញពីធាតុទាំងមូលក្នុងជួរឈរដែលខ្វះជាមួយតម្លៃត្រឹមត្រូវ `TRUE`។\n" + ], + "metadata": { + "id": "mU-7-SB6YokF" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "pumpkins %>% \n", + " is.na() %>% \n", + " head(n = 7)" + ], + "outputs": [], + "metadata": { + "id": "W-DxDOR4YxSW" + } + }, + { + "cell_type": "markdown", + "source": [ + "បានហើយ បានបំពេញការងាររួច តែបើជាមួយ​ data frame ធំដូចមួយនេះ វានឹងអស្ថិរភាព ហើយជាក់ស្តែងមិនអាចពិនិត្យមើលជួរឈរនៅក្នុងប្រអប់ទាំងអស់បាននោះទេ😴។\n", + "\n", + "- វិធីងាយស្រួលជាងគេទៀតគឺគណនាដល់ចំនួនតម្លៃដែលកំពុងស្ទះសម្រាប់ជួរឈរនីមួយៗ៖\n" + ], + "metadata": { + "id": "xUWxipKYY0o7" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "pumpkins %>% \n", + " is.na() %>% \n", + " colSums()" + ], + "outputs": [], + "metadata": { + "id": "ZRBWV6P9ZArL" + } + }, + { + "cell_type": "markdown", + "source": [ + "ល្អជាងមុន! មានទិន្នន័យខ្វះ ខ្លះប៉ុន្តែអាចនឹងមិនមានបញ្ហាសម្រាប់ការងារដែលកំពុងធ្វើឡើយ។ យើងមកមើលថាវិភាគបន្ថែមនឹងផ្ដល់អ្វីខ្លះ។\n", + "\n", + "> ជាមួយនឹងឯកស្សិទសម្រាប់កញ្ចប់ និងមុខងារដ៏អស្ចារ្យ R មានឯកសារដ៏ល្អណាស់។ ជាឧទាហរណ៍ សូមប្រើ `help(colSums)` ឬ `?colSums` ដើម្បីស្វែងយល់បន្ថែមអំពីមុខងារ។\n" + ], + "metadata": { + "id": "9gv-crB6ZD1Y" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 3. Dplyr: វេយ្យាករណ៍នៃការបំលែងទិន្នន័យ\n", + "\n", + "\n", + "

\n", + " \n", + "

សិល្បៈដោយ @allison_horst
\n", + "\n", + "\n", + "\n" + ], + "metadata": { + "id": "o4jLY5-VZO2C" + } + }, + { + "cell_type": "markdown", + "source": [ + "[`dplyr`](https://dplyr.tidyverse.org/), គឺជាផ្នែកបន្ថែមមួយក្នុង Tidyverse ដែលជាវិធីសាស្រ្តនៃការបម្រើទិន្នន័យ ដែលផ្តល់នូវកិរិយាស័ព្ទមួយដែលមានសទិ្ធភាព ដែលជួយអ្នកដោះស្រាយបញ្ហារបស់ការបម្រើទិន្នន័យដែលជាប្រភេទទូទៅ។ នៅក្នុងផ្នែកនេះ យើងនឹងស្វែងយល់អំពីកិរិយាស័ព្ទមួយចំនួនរបស់ dplyr! \n", + "
\n" + ], + "metadata": { + "id": "i5o33MQBZWWw" + } + }, + { + "cell_type": "markdown", + "source": [ + "#### dplyr::select()\n", + "\n", + "`select()` គឺជាឧបករណ៍មួយក្នុងកញ្ចប់ `dplyr` ដែលជួយអ្នកជ្រើសរើសជួរឈរដែលចង់រក្សាទុកឬដកចេញ។\n", + "\n", + "ដើម្បីធ្វើឲ្យទ្រង់ទ្រាយទិន្នន័យរបស់អ្នកងាយស្រួលប្រើប្រាស់ លប់ជួរឈរជាច្រើនរបស់វាចេញ ដោយប្រើ `select()` រក្សាទុកតែជួរឈរដែលអ្នកត្រូវការ។\n", + "\n", + "ឧទាហរណ៍ ក្នុងលំហាត់នេះ ការវិភាគរបស់យើងនឹងពាក់ព័ន្ធនឹងជួរឈរ `Package`, `Low Price`, `High Price` និង `Date` ។ អង្គុយជ្រើសរើសជួរឈរទាំងនេះ។\n" + ], + "metadata": { + "id": "x3VGMAGBZiUr" + } + }, + { + "cell_type": "code", + "execution_count": null, + "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)" + ], + "outputs": [], + "metadata": { + "id": "F_FgxQnVZnM0" + } + }, + { + "cell_type": "markdown", + "source": [ + "#### dplyr::mutate()\n", + "\n", + "`mutate()` គឺជាអនុគមន៍មួយក្នុងកញ្ចប់ `dplyr` ដែលជួយអ្នកបង្កើតឬកែប្រែជួរឈរ ខណៈដែលរក្សាជួរឈរដើមទៅ។\n", + "\n", + "រចនាសម្ព័ន្ធទូទៅនៃ mutate គឺ៖\n", + "\n", + "`data %>% mutate(new_column_name = what_it_contains)`\n", + "\n", + "យើងមានល្បែង mutate ដោយប្រើជួរឈរ `Date` ដោយធ្វើប្រតិបត្តិការខាងក្រោម៖\n", + "\n", + "1. ផ្លាស់ប្តូរពេលវេលា (ដែលកំពុងជា តួអក្សរទទេ) ទៅជា ទ្រង់ទ្រាយខែ (ទាំងនេះគឺជាកាលបរិច្ឆេទអាមេរិក ដូច្នេះទ្រង់ទ្រាយគឺ `MM/DD/YYYY`)។\n", + "\n", + "2. ដកខែចេញពីកាលបរិច្ឆេទទៅជា​ជួរឈរថ្មីមួយ។\n", + "\n", + "ក្នុង R កញ្ចប់ [lubridate](https://lubridate.tidyverse.org/) ធ្វើឲ្យងាយស្រួលក្នុងការប្រើទិន្នន័យពេលវេលា។ ដូច្នេះ មកប្រើ `dplyr::mutate()`, `lubridate::mdy()`, `lubridate::month()` ហើយមើលវិធីសាស្ត្រដើម្បីសម្រេចគោលបំណងខាងលើ។ យើងអាចដកជួរឈរ Date ចេញ ពីព្រោះយើងមិនចាំបាច់ប្រើវាទៀតនៅក្នុងប្រតិបត្តិការបន្តទេ។\n" + ], + "metadata": { + "id": "2KKo0Ed9Z1VB" + } + }, + { + "cell_type": "code", + "execution_count": null, + "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)" + ], + "outputs": [], + "metadata": { + "id": "5joszIVSZ6xe" + } + }, + { + "cell_type": "markdown", + "source": [ + "Woohoo! 🤩\n", + "\n", + "បន្ទាប់មក យើងបង្កើតជួរដេកថ្មីមួយឈ្មោះ `Price` ដែលតំណាងឱ្យតម្លៃជាមធ្យមនៃស្ពានពូពេញ។ ឥឡូវនេះ យើងនឹងគណនាមធ្យមតម្លៃពីជួរដេក `Low Price` និង `High Price` ដើម្បីបំពេញជួរដេកថ្មី Price។ \n", + "
\n" + ], + "metadata": { + "id": "nIgLjNMCZ-6Y" + } + }, + { + "cell_type": "code", + "execution_count": null, + "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)" + ], + "outputs": [], + "metadata": { + "id": "Zo0BsqqtaJw2" + } + }, + { + "cell_type": "markdown", + "source": [ + "យ៉េស!💪\n", + "\n", + "\"ប៉ុន្តែរងចាំ!\", អ្នកនឹងនិយាយបន្ទាប់ពីបានរំលងតាមផ្ទៃទិន្នន័យទាំងមូលជាមួយ `View(pumpkins)`, \"មានអ្វីមួយចម្លែកនៅទីនេះ!\"🤔\n", + "\n", + "បើអ្នកមើលទៅកាន់ជួរឈរដែលមានឈ្មោះ `Package`, មើលវិញថា​ទំនិញនំឃ្មុំត្រូវបានលក់ក្នុងលក្ខណៈផ្សេងៗគ្នាច្រើន។ មានខ្លះលក់ក្នុងមាឌ `1 1/9 bushel` ហើយខ្លះលក់ក្នុងមាឌ `1/2 bushel`, ខ្លះលក់គិតជា​ផ្អែមម្តងៗ, ខ្លះលក់គិតជាគីឡូក្រាម, និងខ្លះក្នុងប្រអប់ធំៗដែលមានទទឹងខុសៗគ្នា។\n", + "\n", + "ឲ្យយើងត្រួតពិនិត្យឲ្យបានច្បាស់៖\n" + ], + "metadata": { + "id": "p77WZr-9aQAR" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Verify the distinct observations in Package column\n", + "pumpkins %>% \n", + " distinct(Package)" + ], + "outputs": [], + "metadata": { + "id": "XISGfh0IaUy6" + } + }, + { + "cell_type": "markdown", + "source": [ + "អស្ចារ្យ! 👏\n", + "\n", + "ការ៉ូតទំពាំងបង្ហាញថាការវាស់ទំងន់ឲ្យត្រឹមត្រូវជាប្រចាំគឺពិបាកណាស់ ដូច្នេះសូមតម្រាម្តងតែការ៉ូតទំពាំងដែលមានខ្សែអក្សរពាក្យ *bushel* នៅក្នុងជួរឈរ `Package` ហើយដាក់វាទៅក្នុង data frame ថ្មីឈ្មោះ `new_pumpkins`។\n", + "
\n" + ], + "metadata": { + "id": "7sMjiVujaZxY" + } + }, + { + "cell_type": "markdown", + "source": [ + "#### dplyr::filter() និង stringr::str_detect()\n", + "\n", + "[`dplyr::filter()`](https://dplyr.tidyverse.org/reference/filter.html): បង្កើត subset នៃទិន្នន័យដែលមានតែ **ជួរ** ដែលបំពេញលក្ខខណ្ឌរបស់អ្នក នៅក្នុងករណីនេះ គឺក្រូចមួយដែលមានខ្សែអក្សរ *bushel* នៅក្នុងស្រឡាយ `Package` ។\n", + "\n", + "[stringr::str_detect()](https://stringr.tidyverse.org/reference/str_detect.html): ស្វែងរកការត្រូវគ្នា ឬអវត្តមាននៃលំនាំនៅក្នុងខ្សែអក្សរ។\n", + "\n", + "កញ្ចប់ [`stringr`](https://github.com/tidyverse/stringr) ផ្តល់ជូននូវមុខងារ​ដែលសាមញ្ញសម្រាប់ប្រតិបត្តិការខ្សែអក្សរពេញនិយម។\n" + ], + "metadata": { + "id": "L8Qfcs92ageF" + } + }, + { + "cell_type": "code", + "execution_count": null, + "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)" + ], + "outputs": [], + "metadata": { + "id": "hy_SGYREampd" + } + }, + { + "cell_type": "markdown", + "source": [ + "អ្នកអាចមើលឃើញថាយើងបានកាត់បន្ថយដល់ប្រហែល ៤១៥ ជួរដេតាដែលមានទន្សោមជាច្រើនតាមប្រអប់។🤩\n", + "
\n" + ], + "metadata": { + "id": "VrDwF031avlR" + } + }, + { + "cell_type": "markdown", + "source": [ + "#### dplyr::case_when()\n", + "\n", + "**ប៉ុន្តែរងចាំ! មានរឿងមួយទៀតត្រូវធ្វើ**\n", + "\n", + "តើអ្នកបានមើលឃើញទេថា ចំនួន bushel ផ្លាស់ប្តូរតាមជួរដេកមួយៗ? អ្នកត្រូវតែធ្វើការប្រកាសតម្លៃឱ្យសមរម្យ ដើម្បីបង្ហាញតម្លៃក្នុងមួយ bushel មិនមែនក្នុង 1 1/9 ឬ 1/2 bushel ទេ។ ពេលវេលាទៅធ្វើគណិតវិទ្យាដើម្បីធ្វើឱ្យវាធម្មតា។\n", + "\n", + "យើងនឹងប្រើមុខងារ [`case_when()`](https://dplyr.tidyverse.org/reference/case_when.html) ដើម្បី *បម្លែង* ជួរឈរតម្លៃ Price ដោយផ្អែកលើលក្ខខណ្ឌជាក់លាក់ខ្លះៗ។ `case_when` អនុញ្ញាតឱ្យអ្នកធ្វើវ៉ិចទ័រជាច្រើននៃ `if_else()`។\n" + ], + "metadata": { + "id": "mLpw2jH4a0tx" + } + }, + { + "cell_type": "code", + "execution_count": null, + "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)" + ], + "outputs": [], + "metadata": { + "id": "P68kLVQmbM6I" + } + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះ យើងអាចវិភាគតម្លៃក្នុងមួយឯកតាតាមការវាស់តម្លៃម៉ែត្រប៊ូសែលរបស់ពួកវា។ ការសិក្សារអំពីប៊ូសែលនៃក្រូចប៊ឺតទាំងនេះ ប៉ុន្តែ បង្ហាញថា វា `សំខាន់`យ៉ាងខ្លាំងក្នុងការទទួលយក `ការយល់ដឹងពីធម្មជាតិឯកសាររបស់អ្នក`!\n", + "\n", + "> ✅ យោងតាម [The Spruce Eats](https://www.thespruceeats.com/how-much-is-a-bushel-1389308) ទំងន់នៃប៊ូសែលមួយអាស្រ័យលើប្រភេទផលិតផល ព្រោះវាជាការវាស់តម្លៃបរិមាណ។ \"ប៊ូសែលមួយនៃប៉េងប៉ោះ ឧទាហរណ៍ គួរតែមានទំងន់៥៦ផោន... ស្លឹក និងស្រស់កាន់កន្លែងច្រើនជាមួយទំងន់តិចជាង ដូច្នេះប៊ូសែលមួយនៃស្ពៃត្រូវមានទំងន់ត្រឹម២០ផោនប៉ុណ្ណោះ។\" វា​ពិបាក​ណាស់! មិនចាំបាច់ធ្វើការបម្លែងពីប៊ូសែលទៅផោនទេ ខណៈដែលយើងតំលៃតាមប៊ូសែលផងដែរ។ ការសិក្សារអំពីប៊ូសែលនៃក្រូចប៊ឺតទាំងនេះ បង្ហាញយ៉ាងខ្លាំងថា វា​សំខាន់ណាស់ក្នុងការយល់ដឹងពីធម្មជាតិឯកសាររបស់អ្នក!\n", + ">\n", + "> ✅ តើអ្នកបានសម្គាល់ទេថា ក្រូចប៊ឺតដែលលក់តាមកំរិតពាក់កណ្តាលប៊ូសែល គឺមានតម្លៃថ្លៃណាស់? តើអ្នកអាចស្រង់យកមូលហេតុបានទេ? ជំនួយ៖ ក្រូចប៊ឺតតូចៗមានតម្លៃថ្លៃជាងក្រូចធំ ដោយសារតែមានចំនួនរាប់មិនបានច្រើនក្នុងមួយប៊ូសែល បើប្រៀបធៀបទៅនឹងកន្លែងដែលមិនបានប្រើប្រាស់ដោយក្រូចបាយធំមួយដែលទទឹងទូលាយ។\n", + "
\n" + ], + "metadata": { + "id": "pS2GNPagbSdb" + } + }, + { + "cell_type": "markdown", + "source": [ + "ចុងក្រោយនេះ សម្រាប់ការផ្សងព្រេង 💁‍♀️ តោះយើងប្ដូរតំណែងកូឡុំខែទៅជាទីតាំងដំបូង គឺ `មុន` កូឡុំ `Package`។\n", + "\n", + "`dplyr::relocate()` ត្រូវបានប្រើដើម្បីផ្លាស់ប្តូរទីតាំងកូឡុំ។\n" + ], + "metadata": { + "id": "qql1SowfbdnP" + } + }, + { + "cell_type": "code", + "execution_count": null, + "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)" + ], + "outputs": [], + "metadata": { + "id": "JJ1x6kw8bixF" + } + }, + { + "cell_type": "markdown", + "source": [ + "ការងារល្អ!👌 ឥឡូវនេះអ្នកមានឯកសារទិន្នន័យស្អាត និងស្អិត ដែលអ្នកអាចបង្កើតម៉ូឌែលរេហ្គ្រេស្យុងថ្មីរបស់អ្នកបាន! \n", + "
\n" + ], + "metadata": { + "id": "y8TJ0Za_bn5Y" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 4. ការបង្ហាញទិន្នន័យជាមួយ ggplot2\n", + "\n", + "

\n", + " \n", + "

រូបភាពពត៌មានដោយ Dasani Madipalli
\n", + "\n", + "\n", + "\n", + "\n", + "មានពាក្យប្រាប់បញ្ញាតិប្រាប់ដូចខាងក្រោម៖\n", + "\n", + "> \"ក្រាផិកសាមញ្ញបាននាំគំនិតព័ត៌មានច្រើនទៅឱ្យអ្នកវិភាគទិន្នន័យជាងឧបករណ៍ផ្សេងទៀត។\" --- John Tukey\n", + "\n", + "ផ្នែកមួយនៃតួនាទីអ្នកវិទ្យាសាស្ត្រទិន្នន័យគឺបង្ហាញគុណភាពនិងធម្មជាតិនៃទិន្នន័យដែលពួកគេស正在ប៉ះពាល់។ ដើម្បីធ្វើការនេះ ពួកគេជាញឹកញាប់បង្កើតការបង្ហាញទិន្នន័យដែលគួរឱ្យចាប់អារម្មណ៍ ឬផ​លត និងក្រាផិក ផ្ទាំងចត់ ដំណើរការផ្សេងៗនៃទិន្នន័យ។ តាមរបៀបនេះ ពួកគេចែកបង្ហាញទំនាក់ទំនង និងចន្លោះដែលលំបាកក្នុងការរកឃើញ។\n", + "\n", + "ការបង្ហាញទិន្នន័យក៏អាចជួយកំណត់បច្ចេកទេសរៀនម៉៉ាស៊ីនដែលសមស្របបំផុតសម្រាប់ទិន្នន័យ។ ផ្ទាំងចត់ដែលហើមត្រាំតាមបន្ទាត់ឧទាហរណ៍ បង្ហាញថាទិន្នន័យជាអ្នកប្រលោមល្អសម្រាប់ហាត់ការរៀនបន្ទាត់ត្រង់។\n", + "\n", + "R ផ្តល់ជូនប្រព័ន្ធជាច្រើនសម្រាប់បង្កើតក្រាផិក ប៉ុន្តែ [`ggplot2`](https://ggplot2.tidyverse.org/index.html) គឺជាមួយក្នុងចំណោមប្រព័ន្ធដែលសុស្រស់បំផុត និងអាចប្រើប្រាស់បានទូលំទូលាយ។ `ggplot2` អនុញ្ញាតឱ្យអ្នកបង្កើតក្រាផិកដោយ **ការរួមបញ្ចូលសមាសធាតុឯករាជ្យ**។\n", + "\n", + "ចាប់ផ្តើមដោយផ្ទាំងចត់សាមញ្ញសម្រាប់ជួរឈរ Price និង Month។\n", + "\n", + "ដូច្នេះ នៅក្នុងករណីនេះ យើងនឹងចាប់ផ្តើមជាមួយ [`ggplot()`](https://ggplot2.tidyverse.org/reference/ggplot.html) ផ្ដល់ទិន្នន័យជាគេហទំព័រ និងការផ្គូរផ្គងសម្រង់អេសធីទីក (ជាមួយ [`aes()`](https://ggplot2.tidyverse.org/reference/aes.html)) បន្ទាប់មកបញ្ចូលស្រទាប់មួយ (ដូចជា [`geom_point()`](https://ggplot2.tidyverse.org/reference/geom_point.html)) សម្រាប់ផ្ទាំងចត់។\n" + ], + "metadata": { + "id": "mYSH6-EtbvNa" + } + }, + { + "cell_type": "code", + "execution_count": null, + "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()" + ], + "outputs": [], + "metadata": { + "id": "g2YjnGeOcLo4" + } + }, + { + "cell_type": "markdown", + "source": [ + "តើនេះជាចំណត់ត្រាមួយដ៏មានប្រយោជន៍មែនទេ 🤷? តើមានអ្វីណាមួយអំពីវាដែលធ្វើឲ្យអ្នកភ្ញាក់ផ្អើលទេ?\n", + "\n", + "វាមិនមានប្រយោជន៍ជាពិសេសទេ ពីព្រោះវាតែបង្ហាញទិន្នន័យរបស់អ្នកជាជួរផ្សព្វផ្សាយនៃចុចនៅក្នុងខែដែលបានកំណត់។ \n", + "
\n" + ], + "metadata": { + "id": "Ml7SDCLQcPvE" + } + }, + { + "cell_type": "markdown", + "source": [ + "### **តើយើងធ្វើដូចម្តេចដើម្បីឲ្យវាមានប្រយោជន៍?**\n", + "\n", + "ដើម្បីឲ្យតារាងបង្ហាញទិន្នន័យដែលមានប្រយោជន៍ ជាទូទៅអ្នកត្រូវតែចម្រៀងទិន្នន័យមួយៗជាក្រុម។ ឧទាហរណ៍ក្នុងករណីរបស់យើង ការស្វែងរកតម្លៃមធ្យមនៃផ្លែចេកសម្រាប់ខែជូនអាចផ្តល់ការយល់ដឹងបន្ថែមលើលំនាំមូលដ្ឋានក្នុងទិន្នន័យរបស់យើង។ នេះនាំឲ្យយើងទៅរកការបកស្រាយ **dplyr** មួយទៀត៖\n", + "\n", + "#### `dplyr::group_by() %>% summarize()`\n", + "\n", + "ការបូកសរុបតាមក្រុមក្នុង R អាចគណនាបានយ៉ាងងាយស្រួលដោយប្រើ\n", + "\n", + "`dplyr::group_by() %>% summarize()`\n", + "\n", + "- `dplyr::group_by()` ប្ដូរឯកត្តានៃការវិភាគពីឯកត្តានៃទិន្នន័យទាំងមូលទៅជា​ក្រុម​លក្ខណៈ​ដូច​ជា​តាមខែ។\n", + "\n", + "- `dplyr::summarize()` បង្កើតស៊ុមទិន្នន័យថ្មីដែលមានមួយជួរឈរសម្រាប់ប៉ារ៉ាម៉ែត្រក្រុមនីមួយ និងមួយជួរឈរសម្រាប់ស្ថិតិរួមដែលអ្នកបានបញ្ជាក់។\n", + "\n", + "ឧទាហរណ៍ យើងអាចប្រើ `dplyr::group_by() %>% summarize()` ដើម្បីចម្រៀងផ្លែចេកទៅជាក្រុមជាតាមជួរឈរ **Month** ហើយបន្ទាប់មកស្វែងរក **តម្លៃមធ្យម** សម្រាប់រាប់ខែរបស់មួយៗ។\n" + ], + "metadata": { + "id": "jMakvJZIcVkh" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Find the average price of pumpkins per month\r\n", + "new_pumpkins %>%\r\n", + " group_by(Month) %>% \r\n", + " summarise(mean_price = mean(Price))" + ], + "outputs": [], + "metadata": { + "id": "6kVSUa2Bcilf" + } + }, + { + "cell_type": "markdown", + "source": [ + "សង្ខេប!✨\n", + "\n", + "លក្ខណៈជាក្រុមដូចជាខែកាន់តែល្អក្នុងការទ្រទ្រង់ដោយប្រើក្រាបប៉ារ៉ែ📊។ ស្រទាប់ដែលទទួលខុសត្រូវសម្រាប់ក្រាបប៉ារ៉ែគឺ `geom_bar()` និង `geom_col()`។ សូមពិនិត្យ `?geom_bar` ដើម្បីស្វែងយល់បន្ថែម។\n", + "\n", + "មកធ្វើមួយ!\n" + ], + "metadata": { + "id": "Kds48GUBcj3W" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Find the average price of pumpkins per month then plot a bar chart\r\n", + "new_pumpkins %>%\r\n", + " group_by(Month) %>% \r\n", + " summarise(mean_price = mean(Price)) %>% \r\n", + " ggplot(aes(x = Month, y = mean_price)) +\r\n", + " geom_col(fill = \"midnightblue\", alpha = 0.7) +\r\n", + " ylab(\"Pumpkin Price\")" + ], + "outputs": [], + "metadata": { + "id": "VNbU1S3BcrxO" + } + }, + { + "cell_type": "markdown", + "source": [ + "🤩🤩នេះជាការបង្ហាញទិន្នន័យដែលមានប្រយោជន៍ជាងមុន! វាហាក់ដូចជាបង្ហាញថាតម្លៃខ្ពស់បំផុតសម្រាប់ដំឡូងពោតកើតឡើងនៅខែកញ្ញា និងតុលា។ តើវាត្រូវនឹងការរំពឹងទុករបស់អ្នកទេ? ហេតុអ្វីបានជាពីអ្វី?\n", + "\n", + "អបអរសាទរនៅក្នុងការសម្រេចចិត្តថ្នាក់ទីពីរ 👏! អ្នកបានរៀបចំទិន្នន័យរបស់អ្នកសម្រាប់ការបង្កើតម៉ូដែល បន្ទាប់មកបានរកឃើញការយល់ដឹងបន្ថែមតាមរយៈការបង្ហាញទម្រង់!\n" + ], + "metadata": { + "id": "zDm0VOzzcuzR" + } + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការជ្រាបជ្រ↵ណា**៖ \nឯកសារនេះត្រូវបានបំលែងភាសាដោយប្រើសេវាកម្មបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខំប្រឹងប្រែងឲ្យបានច្បាស់លាស់ សូមយកចិត្តទុកដាក់ទៅលើការបំលែងភាសាដោយស្វ័យប្រវត្តិនេះនិយាយឡើងថា អាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានដាក់ជាដែនព្រះរាជ្យ។ សម្រាប់ព័ត៌មានសំខាន់ៗណាមួយ អ្នកមានការណែនាំឲ្យប្រែសម្រួលដោយអ្នកជំនាញមនុស្ស។ យើងមិនមានការទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបំលែងភាសានេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/2-Regression/2-Data/solution/notebook.ipynb b/translations/km/2-Regression/2-Data/solution/notebook.ipynb new file mode 100644 index 000000000..153fffe07 --- /dev/null +++ b/translations/km/2-Regression/2-Data/solution/notebook.ipynb @@ -0,0 +1,433 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## លីនអ៊ែរ រេក្រេសសិន សម្រាប់ផំពក់ទក - មេរៀនទី ២\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
City NameTypePackageVarietySub VarietyGradeDateLow PriceHigh PriceMostly Low...Unit of SaleQualityConditionAppearanceStorageCropRepackTrans ModeUnnamed: 24Unnamed: 25
70BALTIMORENaN1 1/9 bushel cartonsPIE TYPENaNNaN9/24/1615.015.015.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
71BALTIMORENaN1 1/9 bushel cartonsPIE TYPENaNNaN9/24/1618.018.018.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
72BALTIMORENaN1 1/9 bushel cartonsPIE TYPENaNNaN10/1/1618.018.018.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
73BALTIMORENaN1 1/9 bushel cartonsPIE TYPENaNNaN10/1/1617.017.017.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
74BALTIMORENaN1 1/9 bushel cartonsPIE TYPENaNNaN10/8/1615.015.015.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
\n", + "

5 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " City Name Type Package Variety Sub Variety Grade \\\n", + "70 BALTIMORE NaN 1 1/9 bushel cartons PIE TYPE NaN NaN \n", + "71 BALTIMORE NaN 1 1/9 bushel cartons PIE TYPE NaN NaN \n", + "72 BALTIMORE NaN 1 1/9 bushel cartons PIE TYPE NaN NaN \n", + "73 BALTIMORE NaN 1 1/9 bushel cartons PIE TYPE NaN NaN \n", + "74 BALTIMORE NaN 1 1/9 bushel cartons PIE TYPE NaN NaN \n", + "\n", + " Date Low Price High Price Mostly Low ... Unit of Sale Quality \\\n", + "70 9/24/16 15.0 15.0 15.0 ... NaN NaN \n", + "71 9/24/16 18.0 18.0 18.0 ... NaN NaN \n", + "72 10/1/16 18.0 18.0 18.0 ... NaN NaN \n", + "73 10/1/16 17.0 17.0 17.0 ... NaN NaN \n", + "74 10/8/16 15.0 15.0 15.0 ... NaN NaN \n", + "\n", + " Condition Appearance Storage Crop Repack Trans Mode Unnamed: 24 \\\n", + "70 NaN NaN NaN NaN N NaN NaN \n", + "71 NaN NaN NaN NaN N NaN NaN \n", + "72 NaN NaN NaN NaN N NaN NaN \n", + "73 NaN NaN NaN NaN N NaN NaN \n", + "74 NaN NaN NaN NaN N NaN NaN \n", + "\n", + " Unnamed: 25 \n", + "70 NaN \n", + "71 NaN \n", + "72 NaN \n", + "73 NaN \n", + "74 NaN \n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "pumpkins = pd.read_csv('../../data/US-pumpkins.csv')\n", + "\n", + "pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]\n", + "\n", + "pumpkins.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "City Name 0\n", + "Type 406\n", + "Package 0\n", + "Variety 0\n", + "Sub Variety 167\n", + "Grade 415\n", + "Date 0\n", + "Low Price 0\n", + "High Price 0\n", + "Mostly Low 24\n", + "Mostly High 24\n", + "Origin 0\n", + "Origin District 396\n", + "Item Size 114\n", + "Color 145\n", + "Environment 415\n", + "Unit of Sale 404\n", + "Quality 415\n", + "Condition 415\n", + "Appearance 415\n", + "Storage 415\n", + "Crop 415\n", + "Repack 0\n", + "Trans Mode 415\n", + "Unnamed: 24 415\n", + "Unnamed: 25 391\n", + "dtype: int64" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pumpkins.isnull().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Month Package Low Price High Price Price\n", + "70 9 1 1/9 bushel cartons 15.00 15.0 13.50\n", + "71 9 1 1/9 bushel cartons 18.00 18.0 16.20\n", + "72 10 1 1/9 bushel cartons 18.00 18.0 16.20\n", + "73 10 1 1/9 bushel cartons 17.00 17.0 15.30\n", + "74 10 1 1/9 bushel cartons 15.00 15.0 13.50\n", + "... ... ... ... ... ...\n", + "1738 9 1/2 bushel cartons 15.00 15.0 30.00\n", + "1739 9 1/2 bushel cartons 13.75 15.0 28.75\n", + "1740 9 1/2 bushel cartons 10.75 15.0 25.75\n", + "1741 9 1/2 bushel cartons 12.00 12.0 24.00\n", + "1742 9 1/2 bushel cartons 12.00 12.0 24.00\n", + "\n", + "[415 rows x 5 columns]\n" + ] + } + ], + "source": [ + "\n", + "# A set of new columns for a new dataframe. Filter out nonmatching columns\n", + "columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']\n", + "pumpkins = pumpkins.loc[:, columns_to_select]\n", + "\n", + "# Get an average between low and high price for the base pumpkin price\n", + "price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2\n", + "\n", + "# Convert the date to its month only\n", + "month = pd.DatetimeIndex(pumpkins['Date']).month\n", + "\n", + "# Create a new dataframe with this basic data\n", + "new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})\n", + "\n", + "# Convert the price if the Package contains fractional bushel values\n", + "new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/(1 + 1/9)\n", + "\n", + "new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price/(1/2)\n", + "\n", + "print(new_pumpkins)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "price = new_pumpkins.Price\n", + "month = new_pumpkins.Month\n", + "plt.scatter(price, month)\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'Pumpkin Price')" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')\n", + "plt.ylabel(\"Pumpkin Price\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំព្យាយាមសំរាប់ភាពត្រឹមត្រូវ ក៏ដោយ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការជ្រៀតចូលខុសៗបាន។ ឯកសារដើមនៅក្នុងភាសាដែលវាត្រូវបានសរសេរជា ភាសាទូទៅគួរត្រូវបានគិតថាជា ប្រភពដែលមានសិទ្ធិខ្ពង់ខ្ពស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" + }, + "kernelspec": { + "display_name": "Python 3.7.0 64-bit ('3.7')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.1" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/2-Regression/3-Linear/README.md b/translations/km/2-Regression/3-Linear/README.md new file mode 100644 index 000000000..ac88eb63f --- /dev/null +++ b/translations/km/2-Regression/3-Linear/README.md @@ -0,0 +1,386 @@ +# បង្កើតម៉ូឌែលផ្សារ​ដោយប្រើ Scikit-learn: ផ្សារ​បួន​របៀប + +## សម្គាល់​សម្រាប់អ្នកចាប់ផ្ដើម + +ការ​ផ្សារ​រៀប​រ៉េ​ឌី​ស្យុងត្រូវបានប្រើនៅពេលដែលយើងចង់ទាយទោល​តម្លៃ **ចំនួន​ស៊ីផ៍** (ឧទាហរណ៍ តម្លៃផ្ទះ, សីតុណ្ហភាព ឬ លក់ចេញ)។ វាដំណើរការដោយស្វែងរករបារភាព​តម្រាស់​មួយ​ដែល​តំណាងឲ្យទំនាក់ទំនង​រវាង​លក្ខណៈបញ្ចូល និងលទ្ធផល​បាន​ល្អ​បំផុត។ + +​នៅក្នុងមេរៀន​នេះ​យើងផ្តោតលើការយល់ដឹងពីគំនិតមុនពេលស្រាវជ្រាវបច្ចេកវិទ្យាស្រាវជ្រាវផ្សារ​លំដាប់ខ្ពស់បន្ថែមទៀត។ +![Linear vs polynomial regression infographic](../../../../translated_images/km/linear-polynomial.5523c7cb6576ccab.webp) +> រូបភាពព័ត៌មានដោយ [Dasani Madipalli](https://twitter.com/dasani_decoded) +## [សំណួរណែនាំមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +> ### [មេរៀននេះមានជាជម្រើសជាភាសា R!](../../../../2-Regression/3-Linear/solution/R/lesson_3.html) +### ការណែនាំ + +ចំពោះពេលនេះ អ្នកបានសិក្សាដឹងថាផ្សាររៀបរាប់គឺជាអ្វីជាមួយទិន្នន័យគំរូដែលបានប្រមូលពីឧបករណ៍តម្លៃផ្លែផ្អែខោចដែលយើងនឹងប្រើនៅក្នុងមេរៀននេះ។ អ្នកក៏បានធ្វើការមើលឃើញវាតាមរយៈ Matplotlib ផងដែរ។ + +ឥឡូវនេះ អ្នករួចរាល់ក្នុងការជ្រៀតចូលជ្រាលជ្រៅចំពោះផ្សាររៀបរាប់សម្រាប់ ML។ ខណៈពេលដែលការមើលឃើញឲ្យអ្នកយល់ដឹងពីទិន្នន័យ ព្រះរាជអំណាចពិតប្រាកដរបស់ការសិក្សាម៉ាស៊ីនក្នុងការមានភាពពី _ការបណ្តុះបណ្តាលម៉ូឌែល_។ ម៉ូឌែលត្រូវបានបណ្តុះបណ្តាលលើទិន្នន័យប្រវត្តិសាស្ត្រដើម្បីឆាប់យល់ពីការទាក់ទងរវាងទិន្នន័យ និងអនុញ្ញាតឲ្យអ្នកទាយទោលលទ្ធផលសម្រាប់ទិន្នន័យថ្មី ដែលម៉ូឌែលមិនបានឃើញពីមុន។ + +នៅក្នុងមេរៀននេះ អ្នកនឹងរៀនបន្ថែមអំពីប្រភេទផ្សាររៀបរាប់ពីរ: _ផ្សាររៀបរាប់រាងតែមួយមូលដ្ឋាន_ និង _ផ្សាររៀបរាប់ពហុបូឡីណូម្យែល_ រួមជាមួយគណិតវិទ្យាផ្នែកខ្លះដែលគាំទ្របច្ចេកទេសទាំងនេះ។ ម៉ូឌែលទាំងនេះនឹងអនុញ្ញាតឲ្យយើងទាយតម្លៃផ្លែផ្អែខោចដោយផ្អែកលើទិន្នន័យបញ្ចូលផ្សេងៗ។ + +[![ML for beginners - Understanding Linear Regression](https://img.youtube.com/vi/CRxFT8oTDMg/0.jpg)](https://youtu.be/CRxFT8oTDMg "ML for beginners - Understanding Linear Regression") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់មើលវីដេអូបែបខ្លីអំពីផ្សាររៀបរាប់រាងតែ្មួយមូលដ្ឋាន។ + +> លើកទូលាយកម្មវិធីសិក្សានេះ យើងគិតថា មានចំណេះដឹងគណិតវិទ្យា​តិចតួច ប៉ុន្តែទាមទារឱ្យមានភាពងាយស្រួលសម្រាប់សិស្សដែលមកពីវិស័យផ្សេងទៀត ដូច្នេះសូមប្រយ័ត្នមានកំណត់សម្គាល់ 🧮 ការហៅចេញ វិចារណាធិការប្រើស្លាកបាច់បិទ និងឧបករណ៍អប់រំផ្សេងៗសម្រាប់ជួយឲ្យយល់។ + +### លក្ខណ្ឌមុនបច្ចេកទេស + +អ្នកគួរតែស្គាល់រចនាសម្ព័ន្ធទិន្នន័យផ្លែផ្អែខោចដែលយើងកំពុងពិនិត្យឥឡូវនេះ។ អ្នកអាចរកបានវាត្រូវបានផ្ទុករួចហើយ និងបានសម្អាតរួចក្នុងឯកសារ _notebook.ipynb_ នៃមេរៀននេះ។ ក្នុងឯកសារ គឺបង្ហាញតម្លៃផ្លែផ្អែខោចប្រចាំមួយកំប៉ិលក្នុងតារាងទិន្នន័យថ្មី។ ដូច្នេះប្រាកដថាអ្នកអាចរត់កំណត់ត្រាតំណាងទាំងនេះនៅក្នុងកណ្តុររបស់ Visual Studio Code។ + +### ការរៀបចំ + +ដើម្បីរំលឹក អ្នកកំពុងផ្ទុកទិន្នន័យនេះដើម្បីសួរចំឡើយពីវា។ + +- តើពេលណា​ជា​ពេលល្អបំផុតក្នុងការទិញផ្លែផ្អែខោច? +- តើតម្លៃអ្វីដែលខ្ញុំអាចរំពឹងទុកចំពោះប្រអប់ផ្លែផ្អែខោចតូច? +- តើខ្ញុំគួរទិញវាក្នុងធុងក៍មួយពាក់កណ្តាលកំប៉ិល ឬដោយប្រអប់ 1 1/9 កំប៉ិល? +អើយ! យើងសូមលត់ចូលទៅក្នុងទិន្នន័យនេះបន្ថែម។ + +ក្នុងមេរៀនមុន អ្នកបានបង្កើតតារាងតំណាង Pandas ហើយផ្ទុកវានៅជុំវិញផ្នែកមួយនៃឯកសារដើម ដោយប្រើការតម្រឹមតម្លៃផ្ទាល់មួយកំប៉ិល។ ប៉ុន្តែបច្ចុប្បន្ននេះ អ្នកអាចប្រមូលបានត្រឹមតែប្រហែល ៤០០ចំណុចទិន្នន័យហើយត្រឹមតែសម្រាប់ខែរដូវស្លឹកឈើជ្រុះតែប៉ុណ្ណោះ។ + +មើលទិន្នន័យដែលបានផ្ទុករួចជាមុនក្នុងកំណត់ត្រារួមនៅក្នុងមេរៀននេះ។ ទិន្នន័យត្រូវបានផ្ទុករួចហើយ និងបានចុះតំណាងតាមរយៈ scatterplot ដើម្បីបង្ហាញទិន្នន័យតាមខែ។ ប្រហែលជាយើងអាចយកព័ត៌មានជាក់លាក់បន្ថែមអំពីលក្ខណៈទិន្នន័យដោយសម្អាតវាបន្ថែមទៀត។ + +## សន្ទស្សន៍ផ្សារ​រៀបរាប់រាងតែមួយ + +ដូចដែលអ្នកបានរៀនក្នុងមេរៀន១ គោលបំណងនៃសមាហរណកម្ម Linear Regression គឺដើម្បីគូសបន្ទាត់មួយដែល: + +- **បង្ហាញទំនាក់ទំនងអថេរ**។ បង្ហាញទំនាក់ទំនងរវាងអថេរ +- **ធ្វើការទាយទោល**។ ធ្វើការទាយទោលយ៉ាងត្រឹមត្រូវថាចំណុចទិន្នន័យថ្មីនឹងស្ថិតនៅកន្លែងណាជិតបន្ទាត់នោះ។ + +សិក្សារៀបរាប់ប្រើមធ្យោបាយ **Least-Squares Regression** ជាទូទៅក្នុងការគូសបន្ទាត់ប្រភេទនេះ។ ពាក្យ "Least-Squares" មានន័យពីដំណើរការកាត់បន្ថយកំហុសសរុបក្នុងម៉ូឌែលយើង។ សម្រាប់ចំណុចទិន្នន័យរាល់គឺយើងវាស់ចម្ងាយឈរ (ហៅថា residual) រវាងចំណុចពិត និងបន្ទាត់ផ្សារ។ + +យើងសម្រួលចម្ងាយទាំងនេះដល់កំរិតក្រោមពីហេតុផលពីរចម្បង៖ + +1. **ទំហំលើទិសដៅ**៖ យើងចង់ដាក់តម្លៃកំហុស -5 និង +5 ដូចគ្នា។ ការបង្រួចគុណ​​បង្កើតអោយតម្លៃទាំងអស់ជាស្រប។ + +2. **ពិនិត្យសំណុំនៃចំណុចក្រៅ**៖ ការបង្រួចគុណធ្វើឲ្យកំហុសធំៗទទួលបានទំងន់ច្រើនជាង ហើយបណ្តាលឲ្យបន្ទាត់នៅជិតចំណុចចម្ងាយ។ + +បន្ទាប់មកយើងបូកតម្លៃក្រោមគុណទាំងនេះទាំងឡាយគ្នា។ គោលដៅគឺរកបន្ទាត់ជាក់លាក់មួយដែលបូកចុងក្រោយនេះតិចជាងគេ (តម្លៃតិចបំផុត)—ហេតុនេះហៅថា "Least-Squares"។ + +> **🧮 បង្ហាញគណិតវិទ្យា** +> +> បន្ទាត់នេះ ដែលហៅថា _បន្ទាត់ត្រូវគ្នា_ អាចបញ្ចេញដោយ[សមីការ](https://en.wikipedia.org/wiki/Simple_linear_regression): +> +> ``` +> Y = a + bX +> ``` +> +> `X` គឺជា 'អថេរពន្យល់'។ `Y` គឺជា 'អថេរពឹងផ្អែក'។ លំនឹងបន្ទាត់គឺ `b` ហើយ `a` គឺ កន្លែងឆ្លងដែក y-intercept ដែលសំដៅតម្លៃ `Y` នៅពេល `X = 0`។ +> +>![calculate the slope](../../../../translated_images/km/slope.f3c9d5910ddbfcf9.webp) +> +> ជំហានដំបូង គណនាលំនឹង `b`។ រូបភាពព័ត៌មានដោយ [Jen Looper](https://twitter.com/jenlooper) +> +> ផ្ទុះពីនេះ និងបើសិនវាចង់បង្ហាញពីសំណួរដើមទិន្នន័យ​ផ្លែផ្អែខោច៖ "ទាយតម្លៃផ្លែផ្អែខោចមួយក្នុងមួយកំប៉ិល តាមខែ" គឺ `X` នឹងសំដៅតម្លៃ និង `Y` នឹងសំដៅខែក្នុងការលក់។ +> +>![complete the equation](../../../../translated_images/km/calculation.a209813050a1ddb1.webp) +> +> គណនាតម្លៃ `Y`។ ប្រសិនបើអ្នកប្រាក់តម្លៃប្រហែល $4 វាត្រូវតែជាខែ មេសា! រូបភាពព័ត៌មានដោយ [Jen Looper](https://twitter.com/jenlooper) +> +> គណិតវិទ្យាដែលគណនាបន្ទាត់ត្រូវបង្ហាញលំនឹងបន្ទាត់ ដែលត្រូវអាស្រ័យលើការឆ្លងដែក ឬកន្លែងដែល `Y` មានតម្លៃនៅពេល `X = 0`។ +> +> អ្នកអាចមើលវិធីសាស្រ្តគណនាចំនួនទាំងនេះនៅគេហទំព័រ [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html)។ បន្ថែមទៀត អ្នកអាចចូលមើល [លេខាគណនាតាម Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) ដើម្បីងាយយល់ពីរបៀបលេខមានឥទ្ធិពលដល់បន្ទាត់។ + +## ទំនាក់ទំនងសមាមាត្រ (Correlation) + +ពាក្យមួយទៀតដែលត្រូវយល់គឺ **សមាមាត្រជាគូ** រវាងអថេរ X និង Y។ អ្នកអាចមើលសមាមាត្រនេះបានយ៉ាងរហ័សតាមការគូស scatterplot។ ប្លាត់ដែលមានចំណុចរាយព្រមទ្រុងក្នុងបន្ទាត់ត្រូវមានសមាមាត្រខ្ពស់ ប៉ុន្តែប្លាត់ដែលចំណុចរាយឡើងគ្នារវាង X និង Y គឺមានសមាមាត្រតិច។ + +ម៉ូឌែលផ្សារ Linear Regression ល្អគឺបានសមាមាត្រខ្ពស់ (ជិត 1 ជាង 0) ដោយប្រើវិធីសាស្រ្ត Least-Squares Regression ជាមួយបន្ទាត់ផ្សារ។ + +✅ រត់កំណត់ត្រាជាមួយមេរៀននេះ រួចមើល scatterplot សមាមាត្រពី Month ទៅ Price។ តើទិន្នន័យដែលភ្ជាប់ Month ទៅ Price សម្រាប់ការលក់ផ្លែផ្អែខោច យល់ថាសមាមាត្រខ្ពស់ឬទាប តាមការពិចារណារបស់អ្នកលើ scatterplot? តើវាប្រែប្រួលប្រសិនបើអ្នកប្រើវិមាត្រ​ចំ​ណាស់ជាងមុន ហៅថា *ថ្ងៃនៃឆ្នាំ* (ចំនួនថ្ងៃចាប់ពីដើមឆ្នាំ)? + +ក្នុងកូដខាងក្រោម នឹងគិតថាអ្នកបានសម្អាតទិន្នន័យហើយ ហើយទទួលបាន data frame មានឈ្មោះ `new_pumpkins` ដូចខាងក្រោម៖ + +ID | Month | DayOfYear | Variety | City | Package | Low Price | High Price | Price +---|-------|-----------|---------|------|---------|-----------|------------|------- +70 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364 +71 | 9 | 267 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636 +72 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 18.0 | 18.0 | 16.363636 +73 | 10 | 274 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 17.0 | 17.0 | 15.454545 +74 | 10 | 281 | PIE TYPE | BALTIMORE | 1 1/9 bushel cartons | 15.0 | 15.0 | 13.636364 + +> កូដសម្រាប់សម្អាតទិន្នន័យអាចរកបាននៅក្នុង [`notebook.ipynb`](notebook.ipynb)។ យើងបានបំពេញជំហានសម្អាតដូចមុន និងគណនាជួរឈរប្រចាំថ្ងៃ `DayOfYear` ដោយប្រើបំណែកការបង្ហាញដូចខាងក្រោម៖ + +```python +day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days) +``` + +ឥឡូវនេះដោយអ្នកបានយល់ពីគណិតវិទ្យានៃផ្សាររៀបរាប់រាងតែមួយវិញ សូមបង្កើតម៉ូឌែលផ្សារ​រួម​ដើម្បីមើលថាតើយើងអាចទាយថា ប្រអប់ផ្លែផ្អែខោចណាមួយនឹងមានតម្លៃផ្លែផ្អែខោចល្អបំផុត។ អ្នកដែលទិញផ្លែផ្អែខោចសម្រាប់ស្រុកផ្លែផ្អែខោចនៅថ្ងៃបុណ្យប្រហែលនឹងចង់បានព័ត៍មាននេះដើម្បីអាចលំអៀងការទិញប្រអប់ផ្លែផ្អែខោចរបស់ពួកគេ។ + +## ការស្វែងរកទំនាក់ទំនងសមាមាត្រ + +[![ML for beginners - Looking for Correlation: The Key to Linear Regression](https://img.youtube.com/vi/uoRq-lW2eQo/0.jpg)](https://youtu.be/uoRq-lW2eQo "ML for beginners - Looking for Correlation: The Key to Linear Regression") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់មើលវីដេអូសង្ខេបអំពីទំនាក់ទំនងសមាមាត្រ។ + +ពីមេរៀនមុន អ្នកប្រហែលជាបានឃើញថាតម្លៃមធ្យមសម្រាប់ខែផ្សេងៗមើលទៅដូចជា: + +Average price by month + +នេះបង្ហាញថាគួរតែមានទំនាក់ទំនងមួយ និងយើងអាចសាកល្បងបណ្តុះម៉ូឌែល Linear Regression ដើម្បីទាយទំនាក់ទំនងរវាង `Month` និង `Price` ឬស្របពេល `DayOfYear` និង `Price`។ នេះជាការបង្ហាញទិន្នន័យ scatterplot មួយបង្ហាញពីទំនាក់ទំនងចុងក្រោយ៖ + +Scatter plot of Price vs. Day of Year + +យើងមកមើលថាតើមានទំនាក់ទំនងសមាមាត្រដែលប្រើបានតាម `corr` function ដែរឬ? + +```python +print(new_pumpkins['Month'].corr(new_pumpkins['Price'])) +print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price'])) +``` + +មើលទៅសមាមាត្រមានតិច គឺ -0.15 សម្រាប់ `Month` និង -0.17 សម្រាប់ `DayOfMonth` ប៉ុន្តែអាចមានទំនាក់ទំនងសំខាន់ផ្សេងទៀត។ វាមើលទៅដូចជាមានក្រុមតម្លៃផ្សេងៗរបស់ផ្លែផ្អែខោចផ្សេងៗ។ ដើម្បីបញ្ជាក់សំណល់នេះ យើងមកគូសម៉ូដែលផ្លែផ្អែខោចនីតិវិធីដោយពណ៌ផ្សេងៗគ្នា។ ដោយបញ្ជូនប៉ារ៉ាម៉ែត្រ`ax` ទៅកម្មវិធីគូស scatterplot អ្នកអាចគូសចំណុចទាំងអស់នៅលើតារាងតែមួយ។ + +```python +ax=None +colors = ['red','blue','green','yellow'] +for i,var in enumerate(new_pumpkins['Variety'].unique()): + df = new_pumpkins[new_pumpkins['Variety']==var] + ax = df.plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var) +``` + +Scatter plot of Price vs. Day of Year + +ការស៊ើបអង្កេតនិងបង្ហាញថាប្រភេទផ្លែប៉ះពាល់ជាងកាលបរិច្ឆេទលក់។ អ្នកអាចមើលមើលវាពីក្រាលបន្ទាត់​ចំនួនជាប់គ្នា៖ + +```python +new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar') +``` + +Bar graph of price vs variety + +យើងយកចំណុចមានចំណាប់អារម្មណ៍មួយ គឺ ‘pie type’ និងមើលឥទ្ធិពលរបស់កាលបរិច្ឆេទលើតម្លៃ៖ + +```python +pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE'] +pie_pumpkins.plot.scatter('DayOfYear','Price') +``` +Scatter plot of Price vs. Day of Year + +បើយើងគណនាសមាមាត្ររវាង `Price` និង `DayOfYear` ដោយប្រើ `corr` វានឹងត្រឹមតែប្រហែលជា `-0.27` - មានន័យថាការបណ្តុះម៉ូឌែលទាយទោលមានទំនាក់ទំនងហើយ។ + +> មុននឹងបណ្តុះម៉ូឌែល Linear Regression វាជារឿងសំខាន់ក្នុងការត្រួតពិនិត្យថាទិន្នន័យរបស់យើងបានស្អាត។ Linear Regression មិនប្រសើរជាមួយអថេរបាត់បង់ ដូច្នេះវាត្រូវបានណែនាំឲ្យកម្ចាត់អថេរទទេទាំងអស់៖ + +```python +pie_pumpkins.dropna(inplace=True) +pie_pumpkins.info() +``` + +មុខងារផ្សេងគ្នាគឺដាក់បញ្ចូលតម្លៃទទេនូវតម្លៃមធ្យមពីជួរឈរត្រូវទាក់ទង។ + +## ផ្សាររៀបរាប់រាងតែមួយសាមញ្ញ + +[![ML for beginners - Linear and Polynomial Regression using Scikit-learn](https://img.youtube.com/vi/e4c_UP2fSjg/0.jpg)](https://youtu.be/e4c_UP2fSjg "ML for beginners - Linear and Polynomial Regression using Scikit-learn") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់មើលវីដេអូទាំងមូលអំពីការបណ្តុះម៉ូឌែល Linear និង Polynomial Regression។ + +ដើម្បីបណ្តុះម៉ូឌែល Linear Regression របស់យើង យើងនឹងប្រើបណ្ណាល័យ **Scikit-learn**។ + +```python +from sklearn.linear_model import LinearRegression +from sklearn.metrics import mean_squared_error +from sklearn.model_selection import train_test_split +``` + +យើងចាប់ផ្ដើមដោយបំបែកចំនួនបញ្ចូល (features) និងចេញរង់ចាំ (label) ទៅជា array numpy ផ្សេងៗ៖ + +```python +X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1) +y = pie_pumpkins['Price'] +``` + +> សម្គាល់ថាយើងត្រូវ reshape ទិន្នន័យបញ្ចូល ដើម្បីឲ្យ package Linear Regression យល់បានត្រឹមត្រូវ។ Linear Regression រង់ចាំ input array 2D ដែលជាតួរទំាងរបស់ជួរឈរនីមួយៗជាតួរផ្គុំឡើង ដូច្នេះសម្រាប់ input តែមួយ យើងចង់បាន array ទំហំ N×1 ដែល N គឺទំហំទិន្នន័យ។ + +បន្ទាប់មក យើងត្រូវបែងចែកទិន្នន័យជា train និង test dataset ដើម្បីធានាការផ្ទៀងផ្ទាត់ម៉ូឌែលបន្ទាប់ពីបណ្តុះ៖ + +```python +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) +``` + +ចុងក្រោយ ការបណ្តុះម៉ូឌែល Linear Regression ជាក់ស្តែង ត្រូវការតែពីរបន្ទាត់កូដ។ យើងកំណត់វត្ថុ `LinearRegression` ហើយភ្ជាប់វានៅលើទិន្នន័យដោយវិធីសាស្រ្ត `fit`៖ + +```python +lin_reg = LinearRegression() +lin_reg.fit(X_train,y_train) +``` + +Object `LinearRegression` បន្ទាប់ពីបាន `fit` រួចមានគុក័ភីស្យង់ទាំងអស់នៃរេហ្គ្រេស្យុង ដែលអាចចូលប្រើបានដោយប្រើបច្ចេក `.coef_`។ ក្នុងករណីរបស់យើង មានគុក័ភីស្យង់តែ១ ដែលគួរតែប្រហែល `-0.017`។ វាមានន័យថា តម្លៃថ្លៃទំនិញមានន័យថាកំពុងធ្លាក់បន្តិចបន្តួចជាមួយពេលវេលា ប៉ុន្តែមិនចាញ់ខ្លាំង ត្រឹមប្រហែល ២ សេនក្នុងមួយថ្ងៃទេ។ យើងក៏អាចចូលប្រើចំណុចឆ្លងផ្តួចផ្តើមរបស់រេហ្គ្រេស្យុងជាមួយអ័ក្ស Y ដោយប្រើ `lin_reg.intercept_` ដែលនៅក្នុងករណីរបស់យើងនឹងប្រហែល `21` ដែលបង្ហាញពីតម្លៃថ្លៃលើកដំបូងនៃឆ្នាំ។ + +ដើម្បីមើលថាម៉ូដែលរបស់យើងមានភាពត្រឹមត្រូវប៉ុណា យើងអាចទាយទម្លៃថ្លៃទំនិញលើប្រភេទទិន្នន័យសាកល្បង ហើយបន្ទាប់មកវាស់ថាតម្លៃទាយរបស់យើងជិតតម្លៃដែលរំពឹងទុកប៉ុណ្ណា។ វាអាចធ្វើបានដោយប្រើតំលៃ MSE (mean square error) ដែលជាមធ្យមនៃខុសគ្នារវាងតម្លៃរំពឹងទុក និងតម្លៃទាយដែលបានក្រោមភាពឡើងវិញ។ + +```python +pred = lin_reg.predict(X_test) + +mse = np.sqrt(mean_squared_error(y_test,pred)) +print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') +``` + +កំហុសរបស់យើងឆ្ងាយប្រហែល ២ ពិន្ទុ ដែលជាប្រហែល ~17%។ មិនល្អពេកទេ។ សញ្ញាមួយទៀតនៃគុណភាពម៉ូដែលគឺ **coefficient of determination** ដែលអាចទទួលបានដូចខាងក្រោម៖ + +```python +score = lin_reg.score(X_train,y_train) +print('Model determination: ', score) +``` + +បើតម្លៃនេះស្មើ 0 មានន័យថាម៉ូដែលមិនយកទិន្នន័យបញ្ចូលចូលចិត្តនោះទេ ហើយគាត់ប្រតិបត្តិដូចជា *អ្នកទាយបង្ហាញបញ្ចូល linear អាក្រក់បំផុត* ដែលគ្រាន់តែជាតម្លៃមធ្យមនៃលទ្ធផល។ តម្លៃ 1 មានន័យថាយើងអាចទាយទម្លៃលទ្ធផលបានយ៉ាងពេញលេញ។ ក្នុងករណីរបស់យើង coefficient ប្រហែល 0.06 ដែលទាបបន្តិច។ + +យើងក៏អាចបង្ហាញទិន្នន័យសាកល្បង រួមជាមួយខ្សែរេហ្គ្រេស្យុង ដើម្បីឲ្យយល់ច្បាស់ថារេហ្គ្រេស្យុងធ្វើការយ៉ាងដូចម្តេច៖ + +```python +plt.scatter(X_test,y_test) +plt.plot(X_test,pred) +``` + +Linear regression + +## រេហ្គ្រេស្យុងផូលីណូម្យ얼 + +ប្រភេទមួយទៀតនៃរេហ្គ្រេស្យុងបែបជួរឈរជាមួយគ្នាគឺ រេហ្គ្រេស្យុងផូលីណូម្យ얼។ នៅពេលខ្លះ មានទំនាក់ទំនងបែបជួរឈរពីរវីរីables - ដូចជាឥដ្ឋមានទំហំនាងធំ នឹងមានតម្លៃថ្លៃខ្ពស់ជាង - ប៉ុន្តេលើកលែងទំនាក់ទំនងទាំងនេះមិនអាចបង្ហាញជាពហុប្លង់ ឬបន្ទាត់ស្របបាន។ + +✅ នៅទីនេះមាន [ឧទាហរណ៍បន្ថែម](https://online.stat.psu.edu/stat501/lesson/9/9.8) នៃទិន្នន័យដែលអាចប្រើរេហ្គ្រេស្យុងផូលីណូម្យ얼បាន + +សូមមើលទំនាក់ទំនងរវាងថ្ងៃ និងតម្លៃវិញ។ តើក្រាហ្វ Scatterplot នេះមើលទៅគឺត្រូវតែវិភាគដោយបន្ទាត់ស្របទេមែន? តើតម្លៃថ្លៃអាចមានការប្រែប្រួលទេ? ក្នុងករណីនេះ អ្នកអាចសាកល្បងរេហ្គ្រេស្យុងផូលីណូម្យ얼បាន។ + +✅ ផូលីណូម្យ얼គឺជាការសម្ដែងគ្រឹះគណិតវិទ្យាដែលអាចមានអថេរតែមួយ ឬច្រើន និងគុក័ភីស្យង់ + +រេហ្គ្រេស្យុងផូលីណូម្យ얼បង្កើតខ្សែពោងកោង ដើម្បីឲ្យអាចសាកសមនឹងទិន្នន័យមិនម៉ាស្សា linear បានល្អប្រសើរជាងមុន។ ក្នុងករណីរបស់យើង ប្រសិនបើបញ្ចូលអថេរពណ៌វត្ថុ `DayOfYear`^2 ទៅក្នុងទិន្នន័យបញ្ចូល យើងគួរតែអាចតំឡើងទិន្នន័យជាមួយខ្សែ parabola ដែលមានតម្លៃអប្បបរមានៅពេលកំណត់មួយក្នុងឆ្នាំ។ + +Scikit-learn មាន [pipeline API](https://scikit-learn.org/stable/modules/generated/sklearn.pipeline.make_pipeline.html?highlight=pipeline#sklearn.pipeline.make_pipeline) ដែលមានប្រយោជន៍ ដើម្បីតភ្ជាប់ជំហានដំណើរការទិន្នន័យផ្សេងៗគ្នា។ **pipeline** គឺជាសង្ស័យនៃ **estimators**។ ក្នុងករណីរបស់យើង យើងនឹងបង្កើត pipeline ដែលជាលើកដំបូងបន្ថែមលក្ខណៈផូលីណូម្យ얼ទៅម៉ូដែល ហើយបន្ទាប់បណ្ដុះបណ្ដាលរេហ្គ្រេស្យុង៖ + +```python +from sklearn.preprocessing import PolynomialFeatures +from sklearn.pipeline import make_pipeline + +pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression()) + +pipeline.fit(X_train,y_train) +``` + +ការប្រើ `PolynomialFeatures(2)` មានន័យថាយើងនឹងបញ្ចូលផូលីណូម្យ얼ចំណាត់ថ្នាក់ទីពីរទាំងអស់ពីទិន្នន័យបញ្ចូល។ ក្នុងករណីរបស់យើង វានឹងមានតែន័យ `DayOfYear`^2 ប៉ុណ្ណោះ ប៉ុន្តែបើមានអថេរ 2 គឺ X និង Y វានឹងបន្ថែម X^2, XY និង Y^2 ក៏បាន។ យើងអាចប្រើផូលីណូម្យ얼ជំពូកខ្ពស់ ដោយបើត្រូវការបានដែរ។ + +pipeline អាចប្រើប្រាស់បានដូចជាអង្គភាព `LinearRegression` ដើម ដូច្នេះ​យើងអាច `fit` pipeline ហើយបន្ទាប់មកប្រើ `predict` បានផងដែរ ដើម្បីទទួលលទ្ធផលទាយ។ ខាងក្រោមជាក្រាហ្វដែលបង្ហាញទិន្នន័យសាកល្បង និងខ្សែពោងកោងតំណាង៖ + +Polynomial regression + +ដោយប្រើរេហ្គ្រេស្យុងផូលីណូម្យ얼 យើងអាចទទួលបាន MSE ទាបជាងបន្តិច និង coefficient of determination ខ្ពស់ជាងបន្តិច ប៉ុន្តែមិនខ្លាំងណាស់ទេ។ យើងត្រូវយកចំណុចផ្សេងទៀតចូលក្នុងការពិចារណាផងដែរ! + +> អ្នកអាចបើកចំណាំបានថា តម្លៃថ្លៃអង្គរជាមួយខ្នងនោះមានចន្លោះពេលដែលជិតថ្ងៃ Halloween។ តើអ្នកអាចពន្យល់មូលហេតុនេះបានយ៉ាងដូចម្តេច? + +🎃 សូមអបអរសាទរ អ្នកទើបបង្កើតម៉ូដែលមួយដែលអាចជួយទាយតម្លៃថ្លៃនំទំពាំងបាយជូបាន។ អ្នកប្រហែលជាអាចធ្វើដំណើរការ​តែមួយនេះសម្រាប់ប្រភេទទំពាំងបាយជូគ្រប់ប្រភេទបានផង ប៉ុន្តែវាត្រូវការការងារលំបាក។ យើងនឹងរៀនរបៀបយកប្រភេទទំពាំងបាយជូទៅក្នុងគំរូរបស់យើងឥលូវនេះ! + +## លក្ខណៈពិសេសដូចជាប្រភេទ (Categorical Features) + +នៅក្នុងពិភពផ្តល់ក្តីសង្ឃឹម អ្នកចង់អាចទាយតម្លៃថ្លៃសម្រាប់ប្រភេទទំពាំងបាយជូផ្សេងៗដោយប្រើម៉ូដែលតែមួយ។ ប៉ុន្តែកន្លែងជួរឈរ `Variety` មានភាពខុសគ្នាពីជួរឈរ `Month` ប៉ុន្តែបង្កប់តម្លៃមិនមែនជាតួលេខទេ។ ជួរឈរដូចនេះហៅថា **categorical**។ + +[![ML for beginners - Categorical Feature Predictions with Linear Regression](https://img.youtube.com/vi/DYGliioIAE0/0.jpg)](https://youtu.be/DYGliioIAE0 "ML for beginners - Categorical Feature Predictions with Linear Regression") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូជាសង្ខេបអំពីការប្រើលក្ខណៈពិសេសឈ្មោះដូចជាប្រភេទ។ + +នៅទីនេះ អ្នកអាចមើលថាតម្លៃថ្លៃមធ្យមអាស្រ័យលើប្រភេទ៖ + +Average price by variety + +ដើម្បីយកប្រភេទចូលក្នុងគំរូបាន ត្រូវបម្លែងវាទៅជាទម្រង់លេខឬ **encode**វា។ មានវិធីជាច្រើនក្នុងការធ្វើៈ + +* **numeric encoding** សាមញ្ញ នឹងបង្កើតតារាងប្រភេទផងដែរ ហើយបម្លែងឈ្មោះប្រភេទជាលេខតែម្ដងក្នុងតារាង។ នេះមិនមែនជាគំនិតល្អសម្រាប់រេហ្គ្រេស្យុងរេហ្គ្រេស្យុង linear ទេ ព្រោះវាប្រើតម្លៃលេខនោះដើម្បីបន្ថែមលទ្ធផល បូកនឹងគុក័ភីស្យង់ផ្សេងៗ ហើយទំនាក់ទំនងរវាងលេខនិងតម្លៃថ្លៃមិនមែន linear ទេ ទោះបីបញ្ជាក់ថាលេខជាតម្លៃលំដាប់ក្រោមក៏ដោយ។ +* **One-hot encoding** នឹងបម្លែងជួរឈរ `Variety` ទៅជាជួរឈរបួនគ្នា សម្រាប់ប្រភេទនីមួយៗគ្នា។ វា​អាចមានតម្លៃ `1` ប្រសិនបើជួរដេកទាំងនោះនៅក្នុងប្រភេទនោះ ហើយ`0` នៅក្នុងករណីផ្សេងទៀត។ នេះមានន័យថានឹងមានគុក័ភីស្យង់បួនសម្រាប់រេហ្គ្រេស្យុង linear សម្រាប់ប្រភេទទំពាំងបាយជូ បំពេញដំបូងនៃតម្លៃថ្លៃឬ "តម្លៃបន្ថែម" សម្រាប់ប្រភេទនោះ។ + +កូដខាងក្រោមបង្ហាញពីរបៀបដែលយើងអាចកូដ one-hot encoding ចំពោះប្រភេទបាន៖ + +```python +pd.get_dummies(new_pumpkins['Variety']) +``` + + ID | FAIRYTALE | MINIATURE | MIXED HEIRLOOM VARIETIES | PIE TYPE +----|-----------|-----------|--------------------------|---------- +70 | 0 | 0 | 0 | 1 +71 | 0 | 0 | 0 | 1 +... | ... | ... | ... | ... +1738 | 0 | 1 | 0 | 0 +1739 | 0 | 1 | 0 | 0 +1740 | 0 | 1 | 0 | 0 +1741 | 0 | 1 | 0 | 0 +1742 | 0 | 1 | 0 | 0 + +ដើម្បីបណ្ដុះបណ្ដាលរេហ្គ្រេស្យុង linear ប្រើប្រភេទ ខណៈដែលត្រូវបានបកប្រែជា one-hot encoded ក្នុងការបញ្ចូល យើងត្រូវ initialize ទិន្នន័យ `X` និង `y` ឲ្យបានត្រឹមត្រូវ៖ + +```python +X = pd.get_dummies(new_pumpkins['Variety']) +y = new_pumpkins['Price'] +``` + +កូដនៅសល់មានដូចដែលយើងបានប្រើទៅមុនសម្រាប់បណ្ដុះបណ្ដាល Linear Regression។ ប្រសិនបើអ្នកសាកល្បង វាអាចឃើញថា mean squared error ប្រហែលដូចគ្នា ប៉ុន្តែយើងទទួលបាន coefficient of determination ខ្ពស់ជាងគេ (~77%)។ ដើម្បីទទួលបានការទាយល្អប្រសើរជាងនេះ អ្នកអាចយកលក្ខណៈពិសេសពហុ (categorical) និង លក្ខណៈពិសេសចំនួន (numeric) ដូចជា `Month` ឬ `DayOfYear` ចូលរួមជាមួយគ្នាច្រើនទៀត។ ដើម្បីមានអារេចាយធំមួយ សម្រាប់លក្ខណៈទាំងនេះ អ្នកអាចប្រើ `join`៖ + +```python +X = pd.get_dummies(new_pumpkins['Variety']) \ + .join(new_pumpkins['Month']) \ + .join(pd.get_dummies(new_pumpkins['City'])) \ + .join(pd.get_dummies(new_pumpkins['Package'])) +y = new_pumpkins['Price'] +``` + +នៅទីនេះយើងក៏យកចំណុច `City` និងប្រភេទ `Package` ចូលគណនាផង ដោយមាន MSE 2.84 (10%) និងកំណត់ត្រានៃការបញ្ជាក់ 0.94! + +## រួមបញ្ចូលគ្នាទាំងអស់ + +ដើម្បីបង្កើតម៉ូដែលល្អបំផុត យើងអាចប្រើទិន្នន័យផ្សំប្រភេទ (one-hot encoded categorical) និងចំនួន (numeric) ពីឧទាហរណ៍ខាងលើជាមួយរេហ្គ្រេស្យុងផូលីណូម្យ얼។ ខាងក្រោមជាកូដពេញលេញសម្រាប់សម្រួលរបស់អ្នក៖ + +```python +# រៀបចំទិន្នន័យបណ្ដុះបណ្ដាល +X = pd.get_dummies(new_pumpkins['Variety']) \ + .join(new_pumpkins['Month']) \ + .join(pd.get_dummies(new_pumpkins['City'])) \ + .join(pd.get_dummies(new_pumpkins['Package'])) +y = new_pumpkins['Price'] + +# បំបែកទិន្នន័យបណ្ដុះបណ្ដាល និងសាកល្បង +X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + +# រៀបចំពីផ្លូវបំណង និងបណ្ដុះបណ្ដាល +pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression()) +pipeline.fit(X_train,y_train) + +# ទស្សន៍ទាយលទ្ធផលសម្រាប់ទិន្នន័យសាកល្បង +pred = pipeline.predict(X_test) + +# គណនារ៉ាស៊ី MSE និងកម្រិតកំណត់ +mse = np.sqrt(mean_squared_error(y_test,pred)) +print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)') + +score = pipeline.score(X_train,y_train) +print('Model determination: ', score) +``` + +នេះគួរតែផ្តល់ coefficient of determination ល្អបំផុតប្រហែល 97% ហើយ MSE=2.23 (~8% កំហុសទាយ)។ + +| ម៉ូដែល | MSE | ការកំណត់ត្រា | +|-------|-----|---------------| +| `DayOfYear` Linear | 2.77 (17.2%) | 0.07 | +| `DayOfYear` Polynomial | 2.73 (17.0%) | 0.08 | +| `Variety` Linear | 5.24 (19.7%) | 0.77 | +| លក្ខណៈទាំងអស់ Linear | 2.84 (10.5%) | 0.94 | +| លក្ខណៈទាំងអស់ Polynomial | 2.23 (8.25%) | 0.97 | + +🏆 ល្អណាស់! អ្នកបានបង្កើតម៉ូដែលរេហ្គ្រេស្យុងបួនលក្ខណៈក្នុងមួយមេរៀន ហើយបង្កើនគុណភាពម៉ូដែលដល់ 97%។ នៅផ្នែកចុងក្រោយអំពីរេហ្គ្រេស្យុង អ្នកនឹងរៀនអំពី Logistic Regression ដើម្បីកំណត់ប្រភេទ។ + +--- +## 🚀ការប្រកួតប្រជែង + +សាកល្បងអថេរផ្សេងៗគ្នាច្រើនក្នុងកំណត់ត្រានេះ ដើម្បីមើលថាតើភាពស៊ីជម្រៅនៃទំនាក់ទំនងឆ្លើយតបដូចម្តេចទៅដោយភាពត្រឹមត្រូវរបស់ម៉ូដែល។ + +## [ប្រលងបន្ទាប់ម៉ោងបង្រៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការត្រួតពិនិត្យ និង សិក្សាឯករាជ្យ + +ក្នុងមេរៀននេះ យើងបានរៀនអំពី Linear Regression។ មានប្រភេទរេហ្គ្រេស្យុងសំខាន់ៗផ្សេងទៀត។ សូមអានអំពី Stepwise, Ridge, Lasso និង Elasticnet។ មេរៀនល្អមួយសម្រាប់សិក្សាបន្ថែមគឺ [មេរៀនស្ថិតិ ស្ទេនហ្វ័រដ៍](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning) + +## បេសកកម្ម + +[បង្កើតម៉ូដែល](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងឱ្យមានភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានគិតថាជាដើមប្រភពដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ គ្រាន់តែផ្តល់អនុសាសន៍ឱ្យប្រើការបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/3-Linear/assignment.md b/translations/km/2-Regression/3-Linear/assignment.md new file mode 100644 index 000000000..aa8f558a8 --- /dev/null +++ b/translations/km/2-Regression/3-Linear/assignment.md @@ -0,0 +1,18 @@ +# បង្កើតម៉ូដែល Regression + +## សេចក្តីណែនាំ + +នៅក្នុងមេរៀននេះ អ្នកត្រូវបានបង្ហាញពីរបៀបបង្កើតម៉ូដែលដោយប្រើទាំង Linear និង Polynomial Regression។ ប្រើចំណេះដឹងនេះ ស្វែងរកហត្ថកម្មទិន្នន័យ ឬប្រើឈុតទិន្នន័យដែលមានក្នុង Scikit-learn ដើម្បីបង្កើតម៉ូដែលថ្មីមួយ។ ពន្យល់នៅក្នុងសៀវភៅកំណត់ត្រារបស់អ្នកថាហេតុអ្វីបានជាអ្នកជ្រើសរើសបច្ចេកទេសដែលបានប្រើ ហើយបង្ហាញពីភាពត្រឹមត្រូវនៃម៉ូដែល។ ប្រសិនបើវាមិនត្រឹមត្រូវ សូមពន្យល់ពីហេតុផល។ + +## ក្រមផ្សេងៗ + +| ការវាយតម្លៃ | ការបង្ហាញល្អឆ្នើម | គ្រប់គ្រាន់ | ត្រូវការ​ប្រសើរឡើង | +| -------- | ------------------------------------------------------------ | -------------------------- | -------------------------------- | +| | បង្ហាញសៀវភៅកំណត់ត្រាពេញលេញជាមួយដំណោះស្រាយដែលឯកសារយ៉ាងល្អ | ដំណោះស្រាយមិនពេញលេញ | ដំណោះស្រាយខូចឬមានកំហុស | + +--- + + +**ការបដិសេធ**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខំប្រឹងប្រែងក្នុងការសំអាតភាពត្រឹមត្រូវ សូមអោយដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមក្នុងភាសាតិជាគ្រឿងផ្តល់ពត៌មានផ្លូវការដែលគួរត្រូវបានយកមកពិចារណា។ សម្រាប់ពត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញផ្នែកវិជ្ជាជីវៈគឺត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗចេញពីការប្រើប្រាស់ការបកប្រែកម្មវិធីនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/3-Linear/notebook.ipynb b/translations/km/2-Regression/3-Linear/notebook.ipynb new file mode 100644 index 000000000..5f756682a --- /dev/null +++ b/translations/km/2-Regression/3-Linear/notebook.ipynb @@ -0,0 +1,122 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## តម្លៃផំពុំគីន\n", + "\n", + "ផ្ទុកបណ្ណាល័យត្រូវការនិងសំណុំទិន្នន័យ។ បម្លែងទិន្នន័យទៅជា dataframe ដែលមានអនុបំណែកនៃទិន្នន័យ៖\n", + "\n", + "- សូមទទួលបានផំពុំគីនដែលកំណត់តម្លៃជាម៉ាយលើមួយ bushel តែប៉ុណ្ណោះ\n", + "- បម្លែងកាលបរិច្ឆេទទៅជាខែ\n", + "- គណនាតម្លៃឱ្យក្លាយទៅជាមធ្យមនៃតម្លៃខ្ពស់និងទាប\n", + "- បម្លែងតម្លៃ ដើម្បីបង្រ្កាបកំណត់តម្លៃតាមបរិមាណមួយ bushel\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from datetime import datetime\n", + "\n", + "pumpkins = pd.read_csv('../data/US-pumpkins.csv')\n", + "\n", + "pumpkins.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]\n", + "\n", + "columns_to_select = ['Package', 'Variety', 'City Name', 'Low Price', 'High Price', 'Date']\n", + "pumpkins = pumpkins.loc[:, columns_to_select]\n", + "\n", + "price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2\n", + "\n", + "month = pd.DatetimeIndex(pumpkins['Date']).month\n", + "day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)\n", + "\n", + "new_pumpkins = pd.DataFrame(\n", + " {'Month': month, \n", + " 'DayOfYear' : day_of_year, \n", + " 'Variety': pumpkins['Variety'], \n", + " 'City': pumpkins['City Name'], \n", + " 'Package': pumpkins['Package'], \n", + " 'Low Price': pumpkins['Low Price'],\n", + " 'High Price': pumpkins['High Price'], \n", + " 'Price': price})\n", + "\n", + "new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/1.1\n", + "new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price*2\n", + "\n", + "new_pumpkins.head()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "គំនូសចំណុចមូលដ្ឋានប្រាប់យើងថាយើងមានទិន្នន័យតែពីខែសីហាររហូតដល់ខែធ្នូប៉ុណ្ណោះ។ យើងប្រហែលជាត្រូវការទិន្នន័យច្រើនជាងនេះដើម្បីអាចទាញយកសេចក្តីសន្និដ្ឋានជារបៀបបន្ទាត់បាន។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "plt.scatter('Month','Price',data=new_pumpkins)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "plt.scatter('DayOfYear','Price',data=new_pumpkins)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបញ្ចាក់**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីជាយើងខិតខំព្យាយាមឲ្យមានការពិតប្រាក់ក៏ដោយ សូមជ្រាបថាបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬការខកខាន។ ឯកសារដើមនៅក្នុងភាស maternative នឹងត្រូវបានកត់សម្គាល់ជាភស្តុតាងដើម។ សម្រាប់ព័ត៌មានសំខាន់ គោលការណ៍បកប្រែដោយមនុស្សវិជ្ជាជីវៈគឺត្រូវបានផ្តល់អាទិភាព។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំពីឬការបកប្រែខុសបន្ទាប់ពីបានប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3-final" + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/2-Regression/3-Linear/solution/Julia/README.md b/translations/km/2-Regression/3-Linear/solution/Julia/README.md new file mode 100644 index 000000000..2cf3306da --- /dev/null +++ b/translations/km/2-Regression/3-Linear/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះជាកន្លែងសម្រាប់ទីតាំងបណ្តោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបំលែងភាសាដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំធ្វើឲ្យមានភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយយន្តហោះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានភាសាដើមគួរត្រូវបានគេចាត់ទុកជាលេខាធិការ។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែដោយមនុស្សអ្នកជំនាញត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសចេញពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/3-Linear/solution/R/lesson_3-R.ipynb b/translations/km/2-Regression/3-Linear/solution/R/lesson_3-R.ipynb new file mode 100644 index 000000000..09d32754b --- /dev/null +++ b/translations/km/2-Regression/3-Linear/solution/R/lesson_3-R.ipynb @@ -0,0 +1,1080 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": { + "colab": { + "name": "lesson_3-R.ipynb", + "provenance": [], + "collapsed_sections": [], + "toc_visible": true + }, + "kernelspec": { + "name": "ir", + "display_name": "R" + }, + "language_info": { + "name": "R" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# សាងសង់ម៉ូដែលរេហ្គ្រេស្សិន: ម៉ូដែលរេហ្គ្រេស្សិនតូចតាង និងម៉ូដែលរេហ្គ្រេស្សិនពហុធារៈ\n" + ], + "metadata": { + "id": "EgQw8osnsUV-" + } + }, + { + "cell_type": "markdown", + "source": [ + "## ការសម្គាល់ជាអាក្សរសម្រាប់តម្លៃដល់ក្រហមផ្កាពោធិ៍ - មេរៀនទី 3\n", + "

\n", + " \n", + "

រូបភាពព័ត៌មានដោយ Dasani Madipalli
\n", + "\n", + "\n", + "\n", + "\n", + "#### ការណែនាំ\n", + "\n", + "ផ្តើមពីនេះ អ្នកបានស្រាវជ្រាវចំពោះអ្វីដែល regression គឺជាមួយទិន្នន័យគំរូយកមកពីឃ្លាំងតម្លៃក្រហមផ្កាពោធិ៍ ដែលយើងនឹងប្រើក្នុងមេរៀននេះ។ អ្នកក៏បានបង្ហាញវាដោយប្រើ `ggplot2`។💪\n", + "\n", + "ឥឡូវនេះ អ្នកបានត្រៀមខ្លួនរួចដើម្បីចូលទៅជ្រាបជ្រៅចំពោះ regression សម្រាប់ ML។ ក្នុងមេរៀននេះ អ្នកនឹងរៀនបន្ថែមអំពីប្រភេទ regression ស្រាលពី *linear regression* និង *polynomial regression*, ជាមួយនឹងគណិតវិទ្យាអ្នកក៏នឹងស្គាល់យ៉ាងខ្លី។\n", + "\n", + "> ក្នុងវគ្គសិក្សានេះ យើងសន្មត់ថាយើងមានចំណេះដឹងគណិតវិទ្យាអប្បបរមា ហើយព្យាយាមធ្វើអោយវា​មានភាពងាយស្រួលសម្រាប់សិស្សដែលមកពីដែនកំណត់ផ្សេងទៀត ដូច្នេះសូមចំណាំកំណត់ចំណាំ, 🧮 ការផ្តល់ព្រមាន, រូបភាព, និងឧបករណ៍សិក្សាផ្សេងៗ ដើម្បីជួយឱ្យយល់ច្បាស់។\n", + "\n", + "#### ការរៀបចំ\n", + "\n", + "ជាថ្លែងអនុញ្ញាត អ្នកកំពុងផ្ទុកទិន្នន័យនេះ ដើម្បីសួរប្រធានបទចំពោះវា។\n", + "\n", + "- តើពេលណាល្អបំផុតសម្រាប់ទិញក្រហមផ្កាពោធិ៍?\n", + "\n", + "- តម្លៃដែលខ្ញុំអាចរំពឹងទុកពីប្រអប់ក្រហមផ្កាពោធិ៍តូចៗជាម្ចាស់បៀបែបមួយ?\n", + "\n", + "- តើខ្ញុំគួរទិញវាទៅក្នុងធុងផ្លាស្ទិចកូបមួយចង្កោម ឬក្នុងប្រអប់ 1 1/9 bushel មួយ? មកពិនិត្យបន្តជ្រាបទិន្នន័យនេះចុះ។\n", + "\n", + "ក្នុងមេរៀនមុន អ្នកបានបង្កើត `tibble` (ដែលជារូបភាពបែបទំនើបនៃ data frame) ហើយបញ្ចូលវាដោយចំនួនមួយនៃទិន្នន័យដើម ដើម្បីគុណនឹងតម្លៃតាម bushel។ តែដោយរបៀបនេះ អ្នកអាចប្រមូលបានតែប្រហែល៤០០ចំណុចទិន្នន័យ ហើយសម្រាប់ខែរដូវស្លឹកឈើជ្រុះប៉ុណ្ណោះ។ ប្រហែលហើយយើងអាចទទួលបានព័ត៌មានលម្អិតបន្ថែមពីសភាពទិន្នន័យ ដោយសំអាតវាបន្ថែមទៀតទេ? យើងនឹងមើល... 🕵️‍♀️\n", + "\n", + "សម្រាប់ការងារនេះ យើងត្រូវការតំឡើងកម្មវិធីដូចខាងក្រោម៖\n", + "\n", + "- `tidyverse`: [tidyverse](https://www.tidyverse.org/) គឺជាកញ្ចប់កម្មវិធី R មួយដែលរួមបញ្ចូលជាច្រើនទៅក្នុងវិស័យវិទ្យាស្ថានទិន្នន័យ ដើម្បីធ្វើឲ្យការងារជាមួយទិន្នន័យកាន់តែលឿន, ងាយស្រួល និងរីករាយ!\n", + "\n", + "- `tidymodels`: ស៊ុម [tidymodels](https://www.tidymodels.org/) គឺជាកញ្ចប់ package សម្រាប់បង្កើតគំរូ និងការសិក្សាម៉ាស៊ីនលើការដឹកនាំ។\n", + "\n", + "- `janitor`: កញ្ចប់ [janitor](https://github.com/sfirke/janitor) ផ្ដល់ឧបករណ៍តូចៗសម្រាប់ពិនិត្យ និងសំអាតទិន្នន័យមិនស្អាត។\n", + "\n", + "- `corrplot`: កញ្ចប់ [corrplot](https://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html) ផ្ដល់ឧបករណ៍មើលទិដ្ឋភាពនៃគំនូស correlation matrix ដែលគាំទ្រការផ្លាស់ប្តូរជួរឈរពណ៌ដោយស្វ័យប្រវត្តិ ដើម្បីជួយរកគំរូលាក់នៅចន្លោះអថេរ។\n", + "\n", + "អ្នកអាចតំឡើងវាជា:\n", + "\n", + "`install.packages(c(\"tidyverse\", \"tidymodels\", \"janitor\", \"corrplot\"))`\n", + "\n", + "ស្គ្រីបខាងក្រោមពិនិត្យថាតើអ្នកមាន package ត្រូវការដើម្បីបញ្ចប់ម៉ូឌុលនេះ ឬអត់ ហើយនឹងតំឡើងវាដើម្បីអ្នកបើវាខ្វះ។\n" + ], + "metadata": { + "id": "WqQPS1OAsg3H" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "suppressWarnings(if (!require(\"pacman\")) install.packages(\"pacman\"))\n", + "\n", + "pacman::p_load(tidyverse, tidymodels, janitor, corrplot)" + ], + "outputs": [], + "metadata": { + "id": "tA4C2WN3skCf", + "colab": { + "base_uri": "https://localhost:8080/" + }, + "outputId": "c06cd805-5534-4edc-f72b-d0d1dab96ac0" + } + }, + { + "cell_type": "markdown", + "source": [ + "យើងនឹងបញ្ចូលកញ្ចប់ដ៏អស្ចារ្យទាំងនេះនៅពេលក្រោយ ហើយធ្វើអោយវាមានប្រើប្រាស់បានក្នុងសម័យ R បច្ចុប្បន្នរបស់យើង។ (នេះគឺសម្រាប់ការបង្ហាញតែមួយ `pacman::p_load()` បានធ្វើរួចហើយសម្រាប់អ្នក)\n", + "\n", + "## 1. របារចំណោមអាស៊ីតលីនេអ៊ែរ\n", + "\n", + "ដូចដែលអ្នកបានរៀននៅថ្នាក់មួយ គោលដៅនៃការប្រតិបត្តិរដ្ឋលីនេអ៊ែរ គឺដើម្បីឲ្យអាចគូរបាន *បន្ទាត់* *សម្រិតល្អបំផុត* ដើម្បី៖\n", + "\n", + "- **បង្ហាញទំនាក់ទំនងអថេរ**។ បង្ហាញទំនាក់ទំនងរវាងអថេរ\n", + "\n", + "- **ធ្វើការព្យាករណ៍**។ ធ្វើការព្យាករណ៍បានត្រឹមត្រូវពីនៅទីតាំងដែលទិន្នន័យថ្មីនឹងធ្លាក់នៅទំនាក់ទំនងទៅនឹងបន្ទាត់នោះ។\n", + "\n", + "ដើម្បីគូរប្រភេទបន្ទាត់នេះ យើងប្រើបច្ចេកទេសស្ថិតិដែលហៅថា **Least-Squares Regression**។ ពាក្យ `least-squares` មានន័យថាទិន្នន័យគ្រប់ចំនុចជុំវិញបន្ទាត់វាយតម្លៃត្រូវបានធ្វើការយករាងការ (square) ហើយបន្ថែមគ្នា។ យ៉ាងល្អបំផុត សរុបចុងក្រោយត្រូវតែលើកតិចបំផុត ព្រោះយើងចង់បានចំនួនកំហុសទាប ឬ `least-squares`។ ដូច្នេះ បន្ទាត់សម្រិតល្អបំផុតគឺជាបន្ទាត់ដែលផ្តល់តម្លៃទាបបំផុតសម្រាប់សរុបកំហុសរាងការ - ដូច្នេះឈ្មោះ *least squares regression* ។\n", + "\n", + "យើងធ្វើដូច្នេះ ព្រោះយើងចង់ម៉ូដែលបន្ទាត់ដែលមានចម្ងាយសរុបតិចបំផុតពីទិន្នន័យគ្រប់ចំនុចរបស់យើង។ យើងក៏ដាក់គូររាងការដើម្បីជម្រះចំនួនវិសាលភាពជាមូលដ្ឋានជាងទិសដៅ។\n", + "\n", + "> **🧮 បង្ហាញខ្ញុំគណនាគណិតវិទ្យា**\n", + ">\n", + "> បន្ទាត់នេះ ហៅថា *បន្ទាត់សម្រិតល្អបំផុត* អាចត្រូវបញ្ជាក់តាមរយៈ [សមីការ](https://en.wikipedia.org/wiki/Simple_linear_regression):\n", + ">\n", + "> Y = a + bX\n", + ">\n", + "> `X` គឺជា '`អថេរពន្យល់` ឬ `អ្នកព្យាករណ៍`'។ `Y` គឺជា '`អថេរពឹងផ្អែក` ឬ `លទ្ធផល`'។ រលកបន្ទាត់គឺជា `b` ហើយ `a` ជាចំណុចឈរ y-intercept ដែលមានន័យថាតម្លៃ `Y` នៅពេល `X = 0`។\n", + ">\n", + "\n", + "> ![](../../../../../../2-Regression/3-Linear/solution/images/slope.png \"slope = $y/x$\")\n", + " រូបភាពដោយ Jen Looper\n", + ">\n", + "> ចាប់ផ្តើម គណនា​រលក `b`។\n", + ">\n", + "> ផ្ទេរជាពាក្យផ្សេង ហើយយោងទៅកាន់សំនួរដើមពីទិន្នន័យផំពងរបស់យើង៖ \"ព្យាករណ៍តម្លៃផំពងក្នុងមួយប៊ូសែលតាមខែ\" `X` គឺតំណាងឲ្យតម្លៃ ក៏ដូចជា `Y` គឺតំណាងឲ្យខែមួយដែលបានលក់។\n", + ">\n", + "> ![](../../../../../../translated_images/km/calculation.989aa7822020d9d0.webp)\n", + " រូបភាពដោយ Jen Looper\n", + "> \n", + "> គណនាតម្លៃ Y។ ប្រសិនបើអ្នកបង់ប្រហែល \\$4 នោះត្រូវតែលើខែមេសា!\n", + ">\n", + "> គណនាគណិតដែលគិតពីបន្ទាត់ ត្រូវបង្ហាញពីរលករបស់បន្ទាត់ ដែលក៏ពឹងផ្អែកទៅលើចំណុចឈរ ឬនៅទីតាំងដែល `Y` ស្ថិតនៅពេល `X = 0`។\n", + ">\n", + "> អ្នកអាចមើលមេធដ្ឋិការគណនាសម្រាប់តម្លៃទាំងនេះនៅគេហទំព័រ [Math is Fun](https://www.mathsisfun.com/data/least-squares-regression.html)។ ក៏សូមចូលទៅកាន់ [เครื่องคิดเลข Least-squares](https://www.mathsisfun.com/data/least-squares-calculator.html) ដើម្បីមើលថាតម្លៃលេខបានឥទ្ធិពលដូចម្តេចចំពោះបន្ទាត់។\n", + "\n", + "មិនរំខានប៉ុនណា ទេ មែនទេ? 🤓\n", + "\n", + "#### សមួង\n", + "\n", + "ពាក្យមួយទៀតដែលត្រូវយល់គឺ **សមួងរាងការ** រវាងអថេរ X និង Y ខណ្ឌមួយ។ ប្រើការគូរប្រភេទ scatterplot អ្នកអាចមើលឃើញសមួងនេះបានយ៉ាងឆាប់រហ័ស។ ការគូរដែលមានចំណុចចោលជួរដែលស្អាតមានសមួងខ្ពស់ ប៉ុន្តែការគូរដែលមានចំណុចចោលគ្រប់ទីតាំងរវាង X និង Y មានសមួងទាប។\n", + "\n", + "ម៉ូដែលរាងការលីនេអ៊ែរ ដែលល្អ គឺម៉ូដែលដែលមានសមួងខ្ពស់ (ជិត 1 ជាង 0) ប្រើវិធី Least-Squares Regression ជាមួយបន្ទាត់វាយតម្លៃ។\n" + ], + "metadata": { + "id": "cdX5FRpvsoP5" + } + }, + { + "cell_type": "markdown", + "source": [ + "## **2. រាំជាមួយទិន្នន័យ៖ ការបង្កើតស៊ុមទិន្នន័យដែលនឹងត្រូវប្រើសម្រាប់សំណុំម៉ូដែល** \n", + "\n", + "

\n", + " \n", + "

សិល្បៈដោយ @allison_horst
\n", + "\n", + "\n", + "\n" + ], + "metadata": { + "id": "WdUKXk7Bs8-V" + } + }, + { + "cell_type": "markdown", + "source": [ + "Load up required libraries and dataset. Convert the data to a data frame containing a subset of the data:\n", + "\n", + "- ទទួលបានតែលោកគ្រូដែលមានតម្លៃតាមប៊ស្សែលប៉ុណ្ណោះ\n", + "\n", + "- បម្លែងកាលបរិច្ឆេទទៅជាខែ\n", + "\n", + "- គណនាតម្លៃឱ្យជា​មធ្យម​​រវាងតម្លៃខ្ពស់ និង តម្លៃទាប\n", + "\n", + "- បម្លែងតម្លៃឱ្យតំណាងលេខរាយតាមប៊ស្សែល\n", + "\n", + "> យើងបានគ្របដណ្តប់ចំណុចទាំងនេះក្នុង [មេរៀនមុន](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/2-Data/solution/lesson_2-R.ipynb)។\n" + ], + "metadata": { + "id": "fMCtu2G2s-p8" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Load the core Tidyverse packages\n", + "library(tidyverse)\n", + "library(lubridate)\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 = 5)" + ], + "outputs": [], + "metadata": { + "id": "ryMVZEEPtERn" + } + }, + { + "cell_type": "markdown", + "source": [ + "ក្នុងទឹកចិត្តនៃការផ្សងព្រេងអស់សោះ យើងមកស្វែងយល់អំពី [`janitor package`](../../../../../../2-Regression/3-Linear/solution/R/github.com/sfirke/janitor) ដែលផ្តល់នូវមុខងារងាយស្រួលសម្រាប់ពិនិត្យនិងសំអាតទិន្នន័យខូច។ ឧទាហរណ៍ យើងមកមើលឈ្មោះជួរឈររបស់ទិន្នន័យរបស់យើង៖\n" + ], + "metadata": { + "id": "xcNxM70EtJjb" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Return column names\n", + "pumpkins %>% \n", + " names()" + ], + "outputs": [], + "metadata": { + "id": "5XtpaIigtPfW" + } + }, + { + "cell_type": "markdown", + "source": [ + "🤔 យើងអាចធ្វើបានល្អជាងនេះ។ យើងមកបំលែងឈ្មោះជួរឈរទាំងនេះជារៀង `friendR` ដោយបម្លែងពួកវាទៅជារបៀប [snake_case](https://en.wikipedia.org/wiki/Snake_case) ដោយប្រើ `janitor::clean_names`។ ដើម្បីស្វែងយល់បន្ថែមអំពីមុខងារនេះ៖ `?clean_names`\n" + ], + "metadata": { + "id": "IbIqrMINtSHe" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Clean names to the snake_case convention\n", + "pumpkins <- pumpkins %>% \n", + " clean_names(case = \"snake\")\n", + "\n", + "# Return column names\n", + "pumpkins %>% \n", + " names()" + ], + "outputs": [], + "metadata": { + "id": "a2uYvclYtWvX" + } + }, + { + "cell_type": "markdown", + "source": [ + "ស្អាតជាងមុនទៀត 🧹! ឥឡូវនេះ រាំជាមួយទិន្នន័យប្រើ `dplyr` ដូចក្នុងមេរៀនមុន! 💃\n" + ], + "metadata": { + "id": "HfhnuzDDtaDd" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Select desired columns\n", + "pumpkins <- pumpkins %>% \n", + " select(variety, city_name, package, low_price, high_price, date)\n", + "\n", + "\n", + "\n", + "# Extract the month from the dates to a new column\n", + "pumpkins <- pumpkins %>%\n", + " mutate(date = mdy(date),\n", + " month = month(date)) %>% \n", + " select(-date)\n", + "\n", + "\n", + "\n", + "# Create a new column for average Price\n", + "pumpkins <- pumpkins %>% \n", + " mutate(price = (low_price + high_price)/2)\n", + "\n", + "\n", + "# Retain only pumpkins with the string \"bushel\"\n", + "new_pumpkins <- pumpkins %>% \n", + " filter(str_detect(string = package, pattern = \"bushel\"))\n", + "\n", + "\n", + "# Normalize the pricing so that you show the pricing per bushel, not per 1 1/9 or 1/2 bushel\n", + "new_pumpkins <- new_pumpkins %>% \n", + " mutate(price = case_when(\n", + " str_detect(package, \"1 1/9\") ~ price/(1.1),\n", + " str_detect(package, \"1/2\") ~ price*2,\n", + " TRUE ~ price))\n", + "\n", + "# Relocate column positions\n", + "new_pumpkins <- new_pumpkins %>% \n", + " relocate(month, .before = variety)\n", + "\n", + "\n", + "# Display the first 5 rows\n", + "new_pumpkins %>% \n", + " slice_head(n = 5)" + ], + "outputs": [], + "metadata": { + "id": "X0wU3gQvtd9f" + } + }, + { + "cell_type": "markdown", + "source": [ + "ដោយការងារល្អ!👌 ឥឡូវនេះអ្នកមានចំណូលដើមទិន្នន័យស្អាត និងទៀងទាត់ ដែលអ្នកអាចប្រើសម្រាប់កសាងគំរូបន្ទាប់បន្សំថ្មីរបស់អ្នក!\n", + "\n", + "ចង់មានតារាងប៉ះមើលទេ?\n" + ], + "metadata": { + "id": "UpaIwaxqth82" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Set theme\n", + "theme_set(theme_light())\n", + "\n", + "# Make a scatter plot of month and price\n", + "new_pumpkins %>% \n", + " ggplot(mapping = aes(x = month, y = price)) +\n", + " geom_point(size = 1.6)\n" + ], + "outputs": [], + "metadata": { + "id": "DXgU-j37tl5K" + } + }, + { + "cell_type": "markdown", + "source": [ + "គំនូស​ព្រីន​កណ្តុរនេះ​រំលឹក​យើង​ថា​យើង​មាន​ទិន្នន័យ​ខែមួយ​តែមួយ​ចាប់ពីខែកញ្ញា​តទៅដល់ខែធ្នូ។ យើងប្រហែលជាត្រូវការទិន្នន័យបន្ថែមដើម្បីអាចរៀបចំសេចក្តីសន្និដ្ឋានដោយរបៀបបន្ទាត់។\n", + "\n", + "យើងចាំមើលទិន្នន័យម៉ូដែលរបស់យើងម្ដងទៀត៖\n" + ], + "metadata": { + "id": "Ve64wVbwtobI" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Display first 5 rows\n", + "new_pumpkins %>% \n", + " slice_head(n = 5)" + ], + "outputs": [], + "metadata": { + "id": "HFQX2ng1tuSJ" + } + }, + { + "cell_type": "markdown", + "source": [ + "តើតើយើងចង់ទាយតម្លៃ `price` នៃផ្លែដូងសៀងដោយផ្អែកលើជួរឈរ `city` ឬ `package` ដែលជា​ប្រភេទ​តួអក្សរ ឬ? ឬថែមទាំងភាសាទេទៀត យើងអាចស្វែងរកការតភ្ជាប់គ្នា (correlation) ដែលតម្រូវឱ្យទាំងពីរបញ្ចូលមានជាតិនិរន្តរភាព (numeric) រួច ដូចជា `package` និង `price` បានយ៉ាងដូចម្តេច? 🤷🤷\n", + "\n", + "ម៉ាស៊ីនរៀន (Machine learning models) ប្រើប្រាស់ល្អជាមួយលក្ខណៈជាតិនិរន្តរជាងតំម្លៃអត្ថបទដូច្នេះអ្នកត្រូវការបម្លែងលក្ខណៈអក្សរជាលក្ខណៈជាតិនិរន្តជាទូទៅ។\n", + "\n", + "នេះមានន័យថា យើងត្រូវស្វែងរកវិធីកែទ្រង់ទ្រាយអ្នកប៉ាន់ប្រមាណ (predictors) ដើម្បីឲ្យវាងាយស្រួលសម្រាប់ម៉ូដែលប្រើប្រាស់យ៉ាងមានប្រសិទ្ធភាព កាលវិភាគនេះហៅថា `feature engineering`។\n" + ], + "metadata": { + "id": "7hsHoxsStyjJ" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 3. ការកំណ preprocess ទិន្នន័យសម្រាប់ម៉ូដែលជាមួយ recipes 👩‍🍳👨‍🍳\n", + "\n", + "សកម្មភាពដែលបំលែងតម្លៃ predictor ដើម្បីធ្វើឱ្យវាងាយស្រួលសម្រាប់ម៉ូដែលប្រើប្រាស់ប្រសើរជាងមុន ត្រូវបានហៅថា `feature engineering`។\n", + "\n", + "ម៉ូដែលផ្សេងៗមានតម្រូវការកំណ preprocess ផ្សេងគ្នា។ ឧទាហរណ៍ least squares តម្រូវឱ្យមាន `encoding categorical variables` ដូចជា month, variety និង city_name។ វាទំនងស្មើនឹង `បកប្រែលេខមួយជួរឈរដែលមានតម្លៃកាតេហ្គរិ` ទៅជាជួរឈរលេខមួយឬច្រើន ដែលជំនួសកន្លែងដែលមានមូលដ្ឋាន ។\n", + "\n", + "ឧទាហរណ៍៖ សូមសន្មត់ថាទិន្នន័យរបស់អ្នកមានលក្ខណៈកាតេហ្គរិដូចខាងក្រោម៖\n", + "\n", + "| city |\n", + "|:-------:|\n", + "| Denver |\n", + "| Nairobi |\n", + "| Tokyo |\n", + "\n", + "អ្នកអាចអនុវត្ត *ordinal encoding* ដើម្បីជំនួសតម្លៃពេញលេញមួយសម្រាប់គ្រប់ប្រភេទ ដូចជា៖\n", + "\n", + "| city |\n", + "|:----:|\n", + "| 0 |\n", + "| 1 |\n", + "| 2 |\n", + "\n", + "ហើយនេះជាការដែលយើងនឹងធ្វើចំពោះទិន្នន័យរបស់យើង!\n", + "\n", + "នៅក្នុងផ្នែកនេះ យើងនឹងស្វែងយល់ពីកញ្ចប់ Tidymodels ជាមួយមួយទៀតដែលអស្ចារ្យ: [recipes](https://tidymodels.github.io/recipes/) - ដែលរចនាឡើងដើម្បីជួយអ្នក preprocess ទិន្នន័យរបស់អ្នក **មុន** ការបណ្តុះបណ្តាលម៉ូដែល។ នៅផ្នែកមូលដ្ឋានម្ដងទៀត ព្រោងគឺជាវត្ថុដែលកំណត់ថាតើជំហានណាដែលគួរត្រូវអនុវត្តទៅលើកំណត់ទិន្នន័យមួយ ដើម្បីធ្វើឱ្យវាស្រេចសម្រាប់ម៉ូដែល។\n", + "\n", + "ឥឡូវនេះ សូមបង្កើតព្រោងមួយដែលត្រៀមទិន្នន័យរបស់យើងសម្រាប់ម៉ូដែលដោយជំនួសលេខពេញលេញមួយសម្រាប់ការសង្កេតទាំងអស់ក្នុងជួរឈរព្យាករណ៍៖\n" + ], + "metadata": { + "id": "AD5kQbcvt3Xl" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Specify a recipe\n", + "pumpkins_recipe <- recipe(price ~ ., data = new_pumpkins) %>% \n", + " step_integer(all_predictors(), zero_based = TRUE)\n", + "\n", + "\n", + "# Print out the recipe\n", + "pumpkins_recipe" + ], + "outputs": [], + "metadata": { + "id": "BNaFKXfRt9TU" + } + }, + { + "cell_type": "markdown", + "source": [ + "អស្ចារ្យណាស់! 👏 យើងទើបតែបង្កើតរូបមន្តដំបូងរបស់យើងដែលកំណត់លទ្ធផលមួយ (តម្លៃ) និងអ្នកចាប់ផ្តើមដែលទាក់ទង និងថាតើជួរឈរអ្នកចាប់ផ្តើមគ្រប់គ្រងគួរតែត្រូវបានបកប្រែទៅជាសំណុំលេខអាំងតេហ្សេរ 🙌! យើងមកបំបែកវាដោយរហ័ស៖\n", + "\n", + "- ការហៅទៅ `recipe()` ជាមួយរូបមន្តមួយប្រាប់រូបមន្តពី *តួនាទី* នៃអថេរដោយប្រើទិន្នន័យ `new_pumpkins` ជា​ជំនួយ។ ឧទាហរណ៍ជួរឈរ `price` ត្រូវបានផ្ដល់តួនាទី `outcome` ខណៈដែលជួរឈរផ្សេងទៀតត្រូវបានផ្ដល់តួនាទីជា `predictor`។\n", + "\n", + "- `step_integer(all_predictors(), zero_based = TRUE)` បញ្ជាក់ថាអ្នកចាប់ផ្តើមទាំងអស់គួរត្រូវបានបម្លែងទៅជាសំណុំលេខអាំងតេហ្សេរដោយលេខរាប់ចាប់ផ្តើមពី 0 ។\n", + "\n", + "យើងប្រាកដថាអ្នកប្រហែលជាកំពុងមានគំនិតយ៉ាងដូចជា៖ \"នេះគួរឲ្យចាប់អារម្មណ៍ណាស់!! តែកើតអ្វីមួយប្រសិនបើខ្ញុំចង់បញ្ជាក់ថារូបមន្តកំពុងធ្វើអ្វីដែលខ្ញុំរង់ចាំមែនទេ? 🤔\"\n", + "\n", + "នោះជាគំនិតដ៏អស្ចារ្យ! អ្នកឃើញទេ ថា ពេលដែលរូបមន្តរបស់អ្នកត្រូវបានកំណត់ អ្នកអាចប៉ាន់ប្រមាណប៉ារ៉ាម៉ែត្រ ដែលចាំបាច់សម្រាប់ធ្វើ​ដេតា​ការដំណើរការពិតប្រាកដ ហើយបន្ទាប់មកទាញយកទិន្នន័យដូចបានដំណើរការ។ អ្នកប្រៀបធៀបមិនចាំបាច់ធ្វើបែបនេះជាទូទៅនៅពេលប្រើ Tidymodels (យើងនឹងឃើញប្រព័ន្ធធម្មតាក្នុងរយៈពេលហើយនេះ- > `workflows`) ប៉ុន្តែវាអាចមានប្រយោជន៍នៅពេលអ្នកចង់ធ្វើតម្លើងការត្រួតពិនិត្យមួយ ដើម្បីបញ្ជាក់ថារូបមន្តកំពុងធ្វើអ្វីដែលអ្នករំពឹងទុក។\n", + "\n", + "សម្រាប់នេះ អ្នកត្រូវការពាក្យកិច្ចការ២​ជាងនេះទៀតគឺ៖ `prep()` និង `bake()` ហើយដូចជាគ្រប់ពេល ពួកមិត្តភក្តិ R ដូចជា [`Allison Horst`](https://github.com/allisonhorst/stats-illustrations) ជួយអ្នកយល់ដឹងល្អប្រសើរជាងនេះ!\n", + "\n", + "

\n", + " \n", + "

ស្នាដៃគំនូរដោយ @allison_horst
\n" + ], + "metadata": { + "id": "KEiO0v7kuC9O" + } + }, + { + "cell_type": "markdown", + "source": [ + "[`prep()`](https://recipes.tidymodels.org/reference/prep.html): គណនាពីរបៀបដែលត្រូវការពីសំណុំព្យួរបង្ហាត់ដែលអាចត្រូវអនុវត្តទៅលើសំណុំទិន្នន័យផ្សេងទៀតបាន។ ឧទាហរណ៍ សម្រាប់ជួរឈរព្យួរដែលបានផ្ដល់ អ្វីទៅជាការបែងចែកឲ្យលំដាប់គត់ 0 ឬ 1 ឬ 2 ល។\n", + "\n", + "[`bake()`](https://recipes.tidymodels.org/reference/bake.html): យករឿងដែលបាន​បានធ្វើការ prep ហើយអនុវត្តន៍បច្ចេកទេសទៅលើសំណុំទិន្នន័យណាមួយ។\n", + "\n", + "និយាយទៅហើយ ចង់ឲ្យ prep និង bake រូបមន្តរបស់យើង ដើម្បីបញ្ជាក់ថា ក្រោមមួក ខ្សែព្យួរនឹងត្រូវបានកូដមុនពេលម៉ូដែលត្រូវបានហ្វិត។\n" + ], + "metadata": { + "id": "Q1xtzebuuTCP" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Prep the recipe\n", + "pumpkins_prep <- prep(pumpkins_recipe)\n", + "\n", + "# Bake the recipe to extract a preprocessed new_pumpkins data\n", + "baked_pumpkins <- bake(pumpkins_prep, new_data = NULL)\n", + "\n", + "# Print out the baked data set\n", + "baked_pumpkins %>% \n", + " slice_head(n = 10)" + ], + "outputs": [], + "metadata": { + "id": "FGBbJbP_uUUn" + } + }, + { + "cell_type": "markdown", + "source": [ + "Woo-hoo!🥳 ទិន្នន័យដែលបានដំណើរការ `baked_pumpkins` មានអ្នកព្យាករណ៍ទាំងអស់របស់វាត្រូវបានកូដសំរាប់បញ្ជាក់ថាការប្រមូលព័ត៌មានបឋមដែលបានកំណត់ជារេស៊ីពីរបស់យើង នឹងដំណើរការតាមការរំពឹង។ នេះធ្វើឱ្យវាពិបាកសម្រាប់អ្នកក្នុងការអាន ប៉ុន្តែមានភាពយល់ច្បាស់សម្រាប់ Tidymodels! សូមចំណាយពេលមួយដើម្បីរកមើលថាតើព្រឹត្តិការណ៍ណាមួយត្រូវបានផ្គូផ្គងទៅឱ្យអាំងតេជ័រដែលសមរម្យ។\n", + "\n", + "វាក៏គួរឲ្យរៀបរាប់ថា `baked_pumpkins` គឺជា data frame ដែលយើងអាចធ្វើកំណត់ត្រាពីលើវាបាន។\n", + "\n", + "ឧទាហរណ៍ សូមព្យាយាមរកកសម្លេងល្អរវាងចំណុចពីរនៃទិន្នន័យរបស់អ្នក ដើម្បីបង្កើតគំរូព្យាករណ៍ល្អមួយ។ យើងនឹងប្រើមុខងារ `cor()` ដើម្បីធ្វើការនេះ។ វាយ `?cor()` ដើម្បីស្វែងយល់បន្ថែមអំពីមុខងារ។\n" + ], + "metadata": { + "id": "1dvP0LBUueAW" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Find the correlation between the city_name and the price\n", + "cor(baked_pumpkins$city_name, baked_pumpkins$price)\n", + "\n", + "# Find the correlation between the package and the price\n", + "cor(baked_pumpkins$package, baked_pumpkins$price)\n" + ], + "outputs": [], + "metadata": { + "id": "3bQzXCjFuiSV" + } + }, + { + "cell_type": "markdown", + "source": [ + "ដូចដែលបង្ហាញថា មានតែការទាក់ទងខ្សោយរវាងទីក្រុងនិងតម្លៃប៉ុណ្ណោះ។ ទោះជាយ៉ាងណា មានការទាក់ទងល្អជាងបន្តិចរវាងកញ្ចប់និងតម្លៃរបស់វា។ វាមានហេតុផល មែនទេ? ទូទៅ ប្រអប់ផលិតផល越ធំ តម្លៃ越ខ្ពស់។ \n", + "\n", + "ខណៈពេលដែលយើងនៅទីនេះ សូមព្យាយាមបង្ហាញម៉ាទ្រិចទាក់ទងរវាងជួរឈរទាំងអស់ដោយប្រើកញ្ចប់ `corrplot` ផង។\n" + ], + "metadata": { + "id": "BToPWbgjuoZw" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Load the corrplot package\n", + "library(corrplot)\n", + "\n", + "# Obtain correlation matrix\n", + "corr_mat <- cor(baked_pumpkins %>% \n", + " # Drop columns that are not really informative\n", + " select(-c(low_price, high_price)))\n", + "\n", + "# Make a correlation plot between the variables\n", + "corrplot(corr_mat, method = \"shade\", shade.col = NA, tl.col = \"black\", tl.srt = 45, addCoef.col = \"black\", cl.pos = \"n\", order = \"original\")" + ], + "outputs": [], + "metadata": { + "id": "ZwAL3ksmutVR" + } + }, + { + "cell_type": "markdown", + "source": [ + "🤩🤩 ល្អជាងមុន។\n", + "\n", + "សំណួរល្អមួយដែលគួរតែសួរឥឡូវនេះនៃទិន្នន័យនេះគឺ៖ '`តើតម្លៃណាដែលខ្ញុំអាចរំពឹងទុកពីកញ្ចប់បន្ទះពន្លឺមួយដែលបានផ្ដល់?`' តោះចូលទៅរកវា!\n", + "\n", + "> Note: កាលណាអ្នក **`bake()`** ឆ្មាំ​បានរៀបចំរួចហើយ **`pumpkins_prep`** ជាមួយ **`new_data = NULL`**, អ្នកនឹងទាញយកទិន្នន័យហ្វឹកហាត់ដែលបានដំណើរការ (ឧ. បានកែឡើង)។ ប្រសិនបើអ្នកមានឈុតទិន្នន័យផ្សេងទៀតដូចជាឈុតសាកល្បង ហើយចង់មើលថាតើពន្លឺចំណីអ្វីដែលនឹងដំណើរការ វាអ្នកគ្រាន់តែប៊ិកឆ្មាំ **`pumpkins_prep`** ជាមួយ **`new_data = test_set`**\n", + "\n", + "## ៤. បង្កើតគំរូរ Regression ប្រភេទ Linear\n", + "\n", + "

\n", + " \n", + "

រូបភាពព័ត៌មានដោយ Dasani Madipalli
\n", + "\n", + "\n", + "\n" + ], + "metadata": { + "id": "YqXjLuWavNxW" + } + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះដែលយើងបានបង្កើតរូបមន្ដមួយ ហើយពិតជាសម្រេចថាប្រាក់ចំណូលនឹងត្រូវបានដំណើរការមុនយ៉ាងត្រឹមត្រូវ តោះ ឥឡូវសូមបង្កើតម៉ូដែលឌីហ្សិនសមីការជាស្តង់ដារមួយ ដើម្បីឆ្លើយសំណួរ៖ `តម្លៃអ្វីដែលខ្ញុំអាចរំពឹងទុកបានសម្រាប់កញ្ចប់ក្រូចឆ្មារពិសេសមួយ?`\n", + "\n", + "#### បណ្តុះម៉ូដែលឌីហ្សិនសមីការជាស្តង់ដារមួយ ដោយប្រើតំណាងបណ្តុះបណ្តាល\n", + "\n", + "ដូចដែលអ្នកប្រហែលជាបានសំគាល់ហើយ ថា ជួរឈរ *price* គឺជាផលប៉ះពាល់ `outcome` ខណៈដែលជួរឈរ *package* គឺជាផលប៉ះពាល់ `predictor` ។\n", + "\n", + "ដើម្បីធ្វើបែបនេះ យើងនឹងបំបែកទិន្នន័យជាមុនជាផ្នែកដែល 80% សម្រាប់បណ្តុះបណ្តាល និង 20% សម្រាប់សាកល្បង បន្ទាប់មកកំណត់រូបមន្ដមួយដែលនឹងកូដជួរឈរ predictor ទៅជាសំណុំនៃលេខលេខរៀង បន្ទាប់មកបង្កើតកំណត់សេចក្ដីបញ្ជាក់ម៉ូដែលមួយ។ យើងមិននឹងត្រៀម និងចម្អិនរូបមន្តរបស់យើង ដោយសារយើងបានដឹងហើយថាវានឹងដំណើរការនូវទិន្នន័យជាមុនដូចដែលបានរំពឹង។\n" + ], + "metadata": { + "id": "Pq0bSzCevW-h" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "set.seed(2056)\n", + "# Split the data into training and test sets\n", + "pumpkins_split <- new_pumpkins %>% \n", + " initial_split(prop = 0.8)\n", + "\n", + "\n", + "# Extract training and test data\n", + "pumpkins_train <- training(pumpkins_split)\n", + "pumpkins_test <- testing(pumpkins_split)\n", + "\n", + "\n", + "\n", + "# Create a recipe for preprocessing the data\n", + "lm_pumpkins_recipe <- recipe(price ~ package, data = pumpkins_train) %>% \n", + " step_integer(all_predictors(), zero_based = TRUE)\n", + "\n", + "\n", + "\n", + "# Create a linear model specification\n", + "lm_spec <- linear_reg() %>% \n", + " set_engine(\"lm\") %>% \n", + " set_mode(\"regression\")" + ], + "outputs": [], + "metadata": { + "id": "CyoEh_wuvcLv" + } + }, + { + "cell_type": "markdown", + "source": [ + "ការ​ធ្វើ​ការ​ល្អ​ណាស់! ឥឡូវនេះ​ក្នុង​ពេល​យើង​មាន​រូបមន្ត​និង​លក្ខណៈអ្នក​តំណាង​ម៉ូដែល មួយ​យើង​ត្រូវ​ការ​រក​វិធី​សាស្រ្ត​សម្រាប់​ធ្វើឱ្យ​ពួកវា​ជា​វត្ថុ​ដូច​ជា​វត្ថុ​មួយ​ដែល​នឹង​ធ្វើការ​ដំណើរការ​ទិន្នន័យជាមុន (prep+bake នៅ​ព្រំ​ផ្ទៃ) បង្ហាត់ម៉ូដែលលើ​ទិន្នន័យ​ដែលបាន​ដំណើរការ​មុន និង​អនុញ្ញាតឱ្យ​មានសកម្មភាព​បន្ទាប់​បង្ហោះ​មួយចំនួន។ តើ​នេះ​ជាសម្រាប់​ចិត្ត​សុខខណៈរបស់​អ្នក​បានដែរទេ!🤩\n", + "\n", + "ក្នុង Tidymodels វត្ថុ​សម្រួលនេះត្រូវ​ហៅថា [`workflow`](https://workflows.tidymodels.org/) ហើយ​រក្សាទុក​គ្រឿងផ្សំនៃ​ម៉ូដែល​របស់​អ្នក​យ៉ាង​ងាយស្រួល! នេះ​គឺជា​អ្វី​ដែល​យើង​នឹងហៅថា *pipelines* នៅ​ក្នុង *Python*។\n", + "\n", + "ដូច្នេះ​ទៅ បញ្ចូល​ទៅក្នុង workflow ទាំងអស់​គ្នា!📦\n" + ], + "metadata": { + "id": "G3zF_3DqviFJ" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Hold modelling components in a workflow\n", + "lm_wf <- workflow() %>% \n", + " add_recipe(lm_pumpkins_recipe) %>% \n", + " add_model(lm_spec)\n", + "\n", + "# Print out the workflow\n", + "lm_wf" + ], + "outputs": [], + "metadata": { + "id": "T3olroU3v-WX" + } + }, + { + "cell_type": "markdown", + "source": [ + "👌 លើសពីនេះទៅទៀត ការងារដំណាក់កាលអាចត្រូវបានសមស្រប/បង្ហាត់ក្នុងវិធីដូចគ្នានឹងម៉ូឌែលមួយអាចធ្វើបាន។\n" + ], + "metadata": { + "id": "zd1A5tgOwEPX" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Train the model\n", + "lm_wf_fit <- lm_wf %>% \n", + " fit(data = pumpkins_train)\n", + "\n", + "# Print the model coefficients learned \n", + "lm_wf_fit" + ], + "outputs": [], + "metadata": { + "id": "NhJagFumwFHf" + } + }, + { + "cell_type": "markdown", + "source": [ + "ពីលទ្ធផលនៃម៉ូដែល យើងអាចមើលឃើញមេគុណដែលបានរៀននៅពេលបណ្តុះបណ្តាល។ វាតំណាងឱ្យមេគុណនៃបន្ទាត់ផ្គូរផ្គងល្អបំផុត ដែលផ្តល់ឱ្យយើងនូវកំហុសសរុបទាបបំផុតរវាងអថេរពិតនិងអថេរដែលបានទាយ។\n", + "\n", + "\n", + "#### ប៉ាន់ប្រមាណសមត្ថភាពម៉ូដែលដោយប្រើសំណុំតេស្ត\n", + "\n", + "ពេលវេលាជំរុញឲ្យយើងមើលថាម៉ូដែលបានអនុវត្តដូចម្តេច 📏! តើយើងធ្វើបានដូចម្តេច?\n", + "\n", + "ឥឡូវនេះពេលដែលយើងបានបណ្តុះបណ្តាលម៉ូដែលរួចវិញ យើងអាចប្រើវា​សម្រាប់ធ្វើការទាយសម្រាប់ test_set ដោយប្រើ `parsnip::predict()`។ បន្ទាប់មកយើងអាចប្រៀបធៀបការទាយទាំងនេះជាមួយតម្លៃស្លាកពិត ដើម្បីប៉ាន់ប្រមាណថាម៉ូដែលកំពុងដំណើរការល្អ (ឬមិនល្អ!) ប៉ុណ្ណា។\n", + "\n", + "ចូរចាប់ផ្តើមពីការធ្វើការទាយសម្រាប់សំណុំតេស្ទហើយបន្ទាប់មកភ្ជាប់កូឡុំទៅនឹងសំណុំតេស្ត។\n" + ], + "metadata": { + "id": "_4QkGtBTwItF" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Make predictions for the test set\n", + "predictions <- lm_wf_fit %>% \n", + " predict(new_data = pumpkins_test)\n", + "\n", + "\n", + "# Bind predictions to the test set\n", + "lm_results <- pumpkins_test %>% \n", + " select(c(package, price)) %>% \n", + " bind_cols(predictions)\n", + "\n", + "\n", + "# Print the first ten rows of the tibble\n", + "lm_results %>% \n", + " slice_head(n = 10)" + ], + "outputs": [], + "metadata": { + "id": "UFZzTG0gwTs9" + } + }, + { + "cell_type": "markdown", + "source": [ + "បាទ ឬ ចាស អ្នកទើបតែបណ្តុះម៉ូដែលមួយ ហើយប្រើវាដើម្បីធ្វើការព្យាករណ៍!🔮 តើវាល្អទេ មកវាយតម្លៃកម្រិតការងាររបស់ម៉ូដែលគ្នាដូចម្តេច!\n", + "\n", + "នៅ​ក្នុង Tidymodels យើងធ្វើរឿងនេះដោយ​ប្រើ `yardstick::metrics()`! សម្រាប់ការស្វ័យប្រវត្តិស៊ីមប៉ុលតួអក្សរ (linear regression) យើងអាចផ្តោតលើមាត្រដ្ឋានខាងក្រោមនេះៈ\n", + "\n", + "- `Root Mean Square Error (RMSE)`: ជាប្រភេទគណនា​ឫសការ​គោល MSE។ វាបង្ហាញដល់មាត្រ absolute នៅក្នុងឯកតាដដែលនឹងស្លាក (ក្នុងករណីនេះគឺតម្លៃផ្អែមបុកខ្មៅមួយ)។ តម្លៃតូចជាងនឹងកាន់តែល្អសម្រាប់ម៉ូដែល (មានន័យសាមញ្ញវា​តំណាងឲ្យ​តម្លៃមធ្យមដែលការព្យាករណ៍ខុស!)\n", + "\n", + "- `Coefficient of Determination (ជាទូទៅគេហៅថា R-squared ឬ R2)`: ជាមាត្រូបផលស نسب性的 ដែលតម្លៃ越ឧត្តម越ល្អសម្រាប់ការចោលម៉ូដែល។ នៅក្នុងន័យសំខាន់ មាត្រនេះ​តំណាងឲ្យចំនួនជាតុល្យភាពចន្លោះតម្លៃព្យាករណ៍ និងតម្លៃពិតដែលម៉ូដែលអាចពន្យល់បាន។\n" + ], + "metadata": { + "id": "0A5MjzM7wW9M" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Evaluate performance of linear regression\n", + "metrics(data = lm_results,\n", + " truth = price,\n", + " estimate = .pred)" + ], + "outputs": [], + "metadata": { + "id": "reJ0UIhQwcEH" + } + }, + { + "cell_type": "markdown", + "source": [ + "នោះជាការសម្តែងប្រសិទ្ធភាពម៉ូដែល។ យើងមកមើលថាតើយើងអាចទទួលបានសញ្ញាដែលល្អជាងនេះដោយវិស្វកម្មប្លង់បង្ហាញចំរូងនៃកញ្ចប់ និងតម្លៃ រួចប្រើការព្យាករណ៍ដែលបានធ្វើដើម្បីប្រាប់បន្ទាត់ល្អបំផុត។\n", + "\n", + "នេះមានន័យថាយើងត្រូវតែត្រៀមខ្ទង់ និងរៀបចំសំណុំសាកល្បង ដើម្បីកូដកូឡុមកញ្ចប់ បន្ទាប់មកភ្ជាប់វានឹងការព្យាករណ៍ដែលបានធ្វើដោយម៉ូដែលរបស់យើង។\n" + ], + "metadata": { + "id": "fdgjzjkBwfWt" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Encode package column\n", + "package_encode <- lm_pumpkins_recipe %>% \n", + " prep() %>% \n", + " bake(new_data = pumpkins_test) %>% \n", + " select(package)\n", + "\n", + "\n", + "# Bind encoded package column to the results\n", + "lm_results <- lm_results %>% \n", + " bind_cols(package_encode %>% \n", + " rename(package_integer = package)) %>% \n", + " relocate(package_integer, .after = package)\n", + "\n", + "\n", + "# Print new results data frame\n", + "lm_results %>% \n", + " slice_head(n = 5)\n", + "\n", + "\n", + "# Make a scatter plot\n", + "lm_results %>% \n", + " ggplot(mapping = aes(x = package_integer, y = price)) +\n", + " geom_point(size = 1.6) +\n", + " # Overlay a line of best fit\n", + " geom_line(aes(y = .pred), color = \"orange\", size = 1.2) +\n", + " xlab(\"package\")\n", + " \n" + ], + "outputs": [], + "metadata": { + "id": "R0nw719lwkHE" + } + }, + { + "cell_type": "markdown", + "source": [ + "អស្ចារ្យ! ដូចដែលអ្នកអាចមើលឃើញ គំរូបាញ់បត់បន្ទាត់មួយមិនបានធ្វើការបូករួមទំនាក់ទំនងរវាងកញ្ចប់មួយ និងតម្លៃសមរម្យរបស់វាទៅបានល្អណាស់។\n", + "\n", + "🎃 ជប់លៀងសំណាងល្អ អ្នកទើបតែបង្កើតបានគំរូមួយដែលអាចជួយទាយតម្លៃរបស់បុព្វហេតុនៃមិនខ្លះនៃម្សៅផ្លែដូង។ កន្លែងដាំផ្លែដូងឈ្មោលរបស់អ្នកនឹងស្អាតណាស់។ ប៉ុន្តែអ្នកអាចបង្កើតគំរូល្អជាងនេះបានទៀត!\n", + "\n", + "## 5. បង្កើតគំរូបាញ់បត់ប៉ូលីណូម\n", + "\n", + "

\n", + " \n", + "

Infographic by Dasani Madipalli
\n" + ], + "metadata": { + "id": "HOCqJXLTwtWI" + } + }, + { + "cell_type": "markdown", + "source": [ + "ម្តងម្កាលទិន្នន័យរបស់យើងអាចមិនមានទំនាក់ទំនងរ៉ែស៊ីស៊ីណែរ ខណៈដែលយើងនៅតែចង់ទាយទំនាក់ទំនងមួយ។ ការកំណត់អត្រាពហុគុណអាចជួយយើងបង្កើតការទាយសម្រាប់ទំនាក់ទំនងមិនរ៉ែស៊ីស៊ីណែរដែលស្មុគស្មាញ។\n", + "\n", + "យកឧទាហរណ៍ទំនាក់ទំនងរវាងកញ្ចប់ និងតម្លៃសម្រាប់សំណុំទិន្នន័យដំណាំខ្នងពោតរបស់យើង។ ម្តងម្កាលមានទំនាក់ទំនងរ៉ែស៊ីស៊ីណែរ រវាងអថេរនីមួយៗ - បន្លែខ្នងពោតដែលធំជាយ៉ាងមួយក្នុងចំណោមទំហំ វានឹងមានតម្លៃខ្ពស់ជាង - ប៉ុន្តែម្តងម្កាលទំនាក់ទំនងទាំងនេះមិនអាចគូសជាផ្ទៃ ឬបន្ទាត់ត្រង់បាន។\n", + "\n", + "> ✅ នៅទីនេះមាន [ឧទាហរណ៍បន្ថែមមួយចំនួន](https://online.stat.psu.edu/stat501/lesson/9/9.8) នៃទិន្នន័យដែលអាចប្រើប្រាស់ការកំណត់អត្រាពហុគុណ\n", + ">\n", + "> សូមមើលម្ដងទៀតពីទំនាក់ទំនងរវាងចំណាំដំណាំទៅតម្លៃនៅក្នុងក្រាបមុន។ តើក្រាបចេញបែបនេះសមរម្យអោយវាអាចត្រូវបានវិភាគដោយបន្ទាត់ត្រង់មែនទេ? ប្រហែលមិនទេ។ ក្នុងករណីនេះ អ្នកអាចសាកល្បងការកំណត់អត្រាពហុគុណ។\n", + ">\n", + "> ✅ ពហុគុណគឺជាអប្បរមាកម្មវិធីគណិតវិទ្យាដែលអាចមានអថេរមួយឬច្រើន និងសមាមាត្រផ្សេងៗ\n", + "\n", + "#### បណ្តុះម៉ូដែលកំណត់អត្រាពហុគុណដោយប្រើសំណុំបណ្តុះបណ្ដាល\n", + "\n", + "ការកំណត់អត្រាពហុគុណបង្កើត *បន្ទាត់បត់* ដើម្បីសម្រួលទិន្នន័យមិនរ៉ែស៊ីស៊ីណែរ។\n", + "\n", + "យើងមកមើលថាម៉ូដែលពហុគុណនេះនឹងដំណើរការល្អជាងក្នុងការបង្កើតការទាយទេឬ? យើងនឹងអនុវត្តវិធីសាស្រ្តមួយស្រដៀងគ្នាដូចដែលធ្វើម្តងមុន៖\n", + "\n", + "- បង្កើតរូបមន្តមួយដែលបញ្ជាក់ដំណើរការប្រកាសមុនដែលគួរត្រូវបានអនុវត្តលើទិន្នន័យរបស់យើងដើម្បីត្រៀមខ្លួនសម្រាប់ការតម្រៀបម៉ូដែល ឧ.៖ ការអ៊ិនកូដអ្នកទាយ និងការគណនាពហុគុណនៃឧបករណ៍ដឺក្រេ *n*\n", + "\n", + "- សង់ការបញ្ជាក់ម៉ូដែលមួយ\n", + "\n", + "- បញ្ចូលរូបមន្ត និងការបញ្ជាក់ម៉ូដែលចូលទៅក្នុងលំហូរការងារ\n", + "\n", + "- បង្កើតម៉ូដែលដោយការចងក្រងលំហូរការងារ\n", + "\n", + "- វាយតម្លៃមើលថាម៉ូដែលដំណើរការរលូនលើទិន្នន័យសាកល្បងយ៉ាងដូចម្តេច\n", + "\n", + "មកចាប់ផ្តើមភ្លាម!\n" + ], + "metadata": { + "id": "VcEIpRV9wzYr" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Specify a recipe\r\n", + "poly_pumpkins_recipe <-\r\n", + " recipe(price ~ package, data = pumpkins_train) %>%\r\n", + " step_integer(all_predictors(), zero_based = TRUE) %>% \r\n", + " step_poly(all_predictors(), degree = 4)\r\n", + "\r\n", + "\r\n", + "# Create a model specification\r\n", + "poly_spec <- linear_reg() %>% \r\n", + " set_engine(\"lm\") %>% \r\n", + " set_mode(\"regression\")\r\n", + "\r\n", + "\r\n", + "# Bundle recipe and model spec into a workflow\r\n", + "poly_wf <- workflow() %>% \r\n", + " add_recipe(poly_pumpkins_recipe) %>% \r\n", + " add_model(poly_spec)\r\n", + "\r\n", + "\r\n", + "# Create a model\r\n", + "poly_wf_fit <- poly_wf %>% \r\n", + " fit(data = pumpkins_train)\r\n", + "\r\n", + "\r\n", + "# Print learned model coefficients\r\n", + "poly_wf_fit\r\n", + "\r\n", + " " + ], + "outputs": [], + "metadata": { + "id": "63n_YyRXw3CC" + } + }, + { + "cell_type": "markdown", + "source": [ + "#### វាយតម្លៃការសម្តែងម៉ូដែល\n", + "\n", + "👏👏អ្នកបានបង្កើតម៉ូដែលពហុប៉ូលូម let's បង្កើតការព្យាករណ៍លើសំណុំសាកល្បង!\n" + ], + "metadata": { + "id": "-LHZtztSxDP0" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Make price predictions on test data\r\n", + "poly_results <- poly_wf_fit %>% predict(new_data = pumpkins_test) %>% \r\n", + " bind_cols(pumpkins_test %>% select(c(package, price))) %>% \r\n", + " relocate(.pred, .after = last_col())\r\n", + "\r\n", + "\r\n", + "# Print the results\r\n", + "poly_results %>% \r\n", + " slice_head(n = 10)" + ], + "outputs": [], + "metadata": { + "id": "YUFpQ_dKxJGx" + } + }, + { + "cell_type": "markdown", + "source": [ + "វូ-ហ៊ូ តោះយើងពិនិត្យមើលថា ម៉ូដែលបានធ្វើការប្រតិបត្តិលើ test_set ដោយប្រើ `yardstick::metrics()` យ៉ាងដូចម្តេច។\n" + ], + "metadata": { + "id": "qxdyj86bxNGZ" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "metrics(data = poly_results, truth = price, estimate = .pred)" + ], + "outputs": [], + "metadata": { + "id": "8AW5ltkBxXDm" + } + }, + { + "cell_type": "markdown", + "source": [ + "🤩🤩 ការសម្តែងប្រសើរជាងមុន។\n", + "\n", + "`rmse` បានកាត់បន្ថយចុះពីប្រហែល 7. ទៅប្រហែល 3. ដែលបង្ហាញពីកំហុសបានកាត់បន្ថយរវាងតម្លៃពិត និងតម្លៃប៉ាន់ប្រមាណ។ អ្នកអាច *យល់ឱ្យរលូន* ប្រហែលថា ជាមធ្យម ការប៉ាន់ប្រមាណខុសៗគ្នា មានកំហុសប្រហែល 3 ដុល្លារ។ `rsq` បាន​កើនឡើងពីប្រហែល 0.4 ទៅ 0.8។\n", + "\n", + "រ៉ូម៉ែត្រទាំងនេះបង្ហាញថា ម៉ូដែលពហុផលិច មានការសម្តែងល្អជាងម៉ូដែលរೇಖា។ សំណាងល្អ!\n", + "\n", + "មកយើងមើលមើលថាអាចបង្ហាញវាជារូបភាព​បានទេ!\n" + ], + "metadata": { + "id": "6gLHNZDwxYaS" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Bind encoded package column to the results\r\n", + "poly_results <- poly_results %>% \r\n", + " bind_cols(package_encode %>% \r\n", + " rename(package_integer = package)) %>% \r\n", + " relocate(package_integer, .after = package)\r\n", + "\r\n", + "\r\n", + "# Print new results data frame\r\n", + "poly_results %>% \r\n", + " slice_head(n = 5)\r\n", + "\r\n", + "\r\n", + "# Make a scatter plot\r\n", + "poly_results %>% \r\n", + " ggplot(mapping = aes(x = package_integer, y = price)) +\r\n", + " geom_point(size = 1.6) +\r\n", + " # Overlay a line of best fit\r\n", + " geom_line(aes(y = .pred), color = \"midnightblue\", size = 1.2) +\r\n", + " xlab(\"package\")\r\n" + ], + "outputs": [], + "metadata": { + "id": "A83U16frxdF1" + } + }, + { + "cell_type": "markdown", + "source": [ + "អ្នកអាចមើលឃើញខ្សែកោងមួយដែលសមស្របជាងសម្រាប់ទិន្នន័យរបស់អ្នក! 🤩\n", + "\n", + "អ្នកអាចធ្វើឲ្យវាស្កាយជាងនេះបានដោយផ្តល់មូលដ្ឋានពហុបថទៅ `geom_smooth` ដូចនេះ៖\n" + ], + "metadata": { + "id": "4U-7aHOVxlGU" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Make a scatter plot\r\n", + "poly_results %>% \r\n", + " ggplot(mapping = aes(x = package_integer, y = price)) +\r\n", + " geom_point(size = 1.6) +\r\n", + " # Overlay a line of best fit\r\n", + " geom_smooth(method = lm, formula = y ~ poly(x, degree = 4), color = \"midnightblue\", size = 1.2, se = FALSE) +\r\n", + " xlab(\"package\")" + ], + "outputs": [], + "metadata": { + "id": "5vzNT0Uexm-w" + } + }, + { + "cell_type": "markdown", + "source": [ + "ដូចជាកោងរលោងមួយ!🤩\n", + "\n", + "នេះ​ជា​របៀប​ដែល​អ្នក​នឹង​ធ្វើ​ការទាយ​ទាយថ្មី​មួយ៖\n" + ], + "metadata": { + "id": "v9u-wwyLxq4G" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Make a hypothetical data frame\r\n", + "hypo_tibble <- tibble(package = \"bushel baskets\")\r\n", + "\r\n", + "# Make predictions using linear model\r\n", + "lm_pred <- lm_wf_fit %>% predict(new_data = hypo_tibble)\r\n", + "\r\n", + "# Make predictions using polynomial model\r\n", + "poly_pred <- poly_wf_fit %>% predict(new_data = hypo_tibble)\r\n", + "\r\n", + "# Return predictions in a list\r\n", + "list(\"linear model prediction\" = lm_pred, \r\n", + " \"polynomial model prediction\" = poly_pred)\r\n" + ], + "outputs": [], + "metadata": { + "id": "jRPSyfQGxuQv" + } + }, + { + "cell_type": "markdown", + "source": [ + "ការព្យាករណ៍ `ម៉ូដែលពហុព្រីម` គឺមានហេតុផល ដែលផ្អែកលើក្រាផ្គុំចុចរវាង `តម្លៃ` និង `កញ្ចប់`! ហើយ ប្រសិនបើនេះជាម៉ូដែលល្អជាងម៉ូដែលមុន ដែលមើលទៅលើទិន្នន័យដដែល អ្នកត្រូវតែដាក់ថវិកាសម្រាប់ផ្លែសណ្ដែកខ្ញីដូច្នេះដែលមានតម្លៃថ្លៃជាង!\n", + "\n", + "🏆 ល្អណាស់! អ្នកបានបង្កើតម៉ូដែលអនុពាក់កណ្តាលពីរក្នុងមេរៀនមួយ។ នៅផ្នែកចុងក្រោយនៃមេរៀនអនុពាក់កណ្តាល អ្នកនឹងរៀនអំពីអនុពាក់កណ្តាលឡូជ៊ីស្ទិចដើម្បីកំណត់ប្រភេទ។\n", + "\n", + "## **🚀វិញ្ញាសា**\n", + "\n", + "សាកល្បងអថេរជាច្រើនខុសៗគ្នានៅក្នុងសៀវភៅកំណត់ត្រានេះដើម្បីឃើញថាអត្តសញ្ញាណចំពោះអត្រាច្បាស់លាស់ម៉ូដែល។\n", + "\n", + "## [**វិញ្ញាសាបន្ទាប់មកបន្ទប់ម៉ោង**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/14/)\n", + "\n", + "## **ពិនិត្យឡើងវិញ និងសិក្សាផ្ទាល់ខ្លួន**\n", + "\n", + "ក្នុងមេរៀននេះ យើងបានរៀនអំពីអនុពាក់កណ្តាលរាខ្សែ។ មានប្រភេទអនុពាក់កណ្តាលសំខាន់ផ្សេងទៀត។ សូមអានអំពីបច្ចេកទេស Stepwise, Ridge, Lasso និង Elasticnet។ មេរៀនល្អមួយសម្រាប់សិក្សាបន្ថែមគឺ [មេរៀនសិក្សាស្ថិតិ Stanford](https://online.stanford.edu/courses/sohs-ystatslearning-statistical-learning)\n", + "\n", + "បើអ្នកចង់រៀនបន្ថែមពីរបៀបប្រើបណ្ណាល័យ Tidymodels ដែលអស្ចារ្យ សូមពិនិត្យធនធានដូចខាងក្រោម៖\n", + "\n", + "- គេហទំព័រ Tidymodels: [ចាប់ផ្តើមជាមួយ Tidymodels](https://www.tidymodels.org/start/)\n", + "\n", + "- Max Kuhn និង Julia Silge, [*Tidy Modeling with R*](https://www.tmwr.org/)*.*\n", + "\n", + "###### **សូមអរគុណចំពោះ៖**\n", + "\n", + "[Allison Horst](https://twitter.com/allison_horst?lang=en) សម្រាប់ការបង្កើតរូបភាពអស្ចារ្យ ដែលធ្វើឲ្យ R មើលទៅទាក់ទាញ និងមានការចូលរួម។ អ្នកអាចរករូបភាពបន្ថែមនៅក្នុង [កន្លែងបង្ហាញរបស់នាង](https://www.google.com/url?q=https://github.com/allisonhorst/stats-illustrations&sa=D&source=editors&ust=1626380772530000&usg=AOvVaw3zcfyCizFQZpkSLzxiiQEM)។\n" + ], + "metadata": { + "id": "8zOLOWqMxzk5" + } + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ព័ត៌មានបដិសេធ**: \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវបានផ្ទុកក្នុង។ ឯកសារដើមជាភាសាពុំមែនជារូបមន្តត្រឹមត្រូវបំផុត គួរត្រូវបានគេពិចារណាជាដើមកំណត់គ្រប់គ្រង។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសឆ្គងណាមួយដែលកើត​ឡើងពីការប្រើប្រាស់បកប្រែនេះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/2-Regression/3-Linear/solution/notebook.ipynb b/translations/km/2-Regression/3-Linear/solution/notebook.ipynb new file mode 100644 index 000000000..a81a7252e --- /dev/null +++ b/translations/km/2-Regression/3-Linear/solution/notebook.ipynb @@ -0,0 +1,1111 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ការធ្វើប្រតិកម្មរស្មី និងប៉ូលីណូម្យែលសម្រាប់ការកំណត់តម្លៃស្ពឺគ្រប់លក្ខណៈ - មេរៀនទី 3\n", + "\n", + "ផ្ទុកបណ្ណាល័យនិងទិន្នន័យដែលត្រូវការ។ បម្លែងទិន្នន័យទៅជាតារាងដែលមានផ្នែកមួយនៃទិន្នន័យ៖\n", + "\n", + "- តែចាប់យកស្ពឺដែលមានតម្លៃតាមប៊ែស៊ែលតែប៉ុណ្ណោះ \n", + "- បម្លែងកាលបរិច្ឆេទទៅជាខែ \n", + "- គណនាតម្លៃជាមធ្យមនៃតម្លៃខ្ពស់ និងទាប \n", + "- បម្លែងតម្លៃឲ្យបង្ហាញតម្លៃតាមបរិមាណប៊ែស៊ែល\n" + ] + }, + { + "cell_type": "code", + "execution_count": 167, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
City NameTypePackageVarietySub VarietyGradeDateLow PriceHigh PriceMostly Low...Unit of SaleQualityConditionAppearanceStorageCropRepackTrans ModeUnnamed: 24Unnamed: 25
0BALTIMORENaN24 inch binsNaNNaNNaN4/29/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
1BALTIMORENaN24 inch binsNaNNaNNaN5/6/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
2BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
3BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
4BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN11/5/1690.0100.090.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
\n", + "

5 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " City Name Type Package Variety Sub Variety Grade Date \\\n", + "0 BALTIMORE NaN 24 inch bins NaN NaN NaN 4/29/17 \n", + "1 BALTIMORE NaN 24 inch bins NaN NaN NaN 5/6/17 \n", + "2 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n", + "3 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n", + "4 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 11/5/16 \n", + "\n", + " Low Price High Price Mostly Low ... Unit of Sale Quality Condition \\\n", + "0 270.0 280.0 270.0 ... NaN NaN NaN \n", + "1 270.0 280.0 270.0 ... NaN NaN NaN \n", + "2 160.0 160.0 160.0 ... NaN NaN NaN \n", + "3 160.0 160.0 160.0 ... NaN NaN NaN \n", + "4 90.0 100.0 90.0 ... NaN NaN NaN \n", + "\n", + " Appearance Storage Crop Repack Trans Mode Unnamed: 24 Unnamed: 25 \n", + "0 NaN NaN NaN E NaN NaN NaN \n", + "1 NaN NaN NaN E NaN NaN NaN \n", + "2 NaN NaN NaN N NaN NaN NaN \n", + "3 NaN NaN NaN N NaN NaN NaN \n", + "4 NaN NaN NaN N NaN NaN NaN \n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "execution_count": 167, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from datetime import datetime\n", + "\n", + "pumpkins = pd.read_csv('../../data/US-pumpkins.csv')\n", + "pumpkins.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 168, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
MonthDayOfYearVarietyCityPackageLow PriceHigh PricePrice
709267PIE TYPEBALTIMORE1 1/9 bushel cartons15.015.013.636364
719267PIE TYPEBALTIMORE1 1/9 bushel cartons18.018.016.363636
7210274PIE TYPEBALTIMORE1 1/9 bushel cartons18.018.016.363636
7310274PIE TYPEBALTIMORE1 1/9 bushel cartons17.017.015.454545
7410281PIE TYPEBALTIMORE1 1/9 bushel cartons15.015.013.636364
\n", + "
" + ], + "text/plain": [ + " Month DayOfYear Variety City Package Low Price \\\n", + "70 9 267 PIE TYPE BALTIMORE 1 1/9 bushel cartons 15.0 \n", + "71 9 267 PIE TYPE BALTIMORE 1 1/9 bushel cartons 18.0 \n", + "72 10 274 PIE TYPE BALTIMORE 1 1/9 bushel cartons 18.0 \n", + "73 10 274 PIE TYPE BALTIMORE 1 1/9 bushel cartons 17.0 \n", + "74 10 281 PIE TYPE BALTIMORE 1 1/9 bushel cartons 15.0 \n", + "\n", + " High Price Price \n", + "70 15.0 13.636364 \n", + "71 18.0 16.363636 \n", + "72 18.0 16.363636 \n", + "73 17.0 15.454545 \n", + "74 15.0 13.636364 " + ] + }, + "execution_count": 168, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]\n", + "\n", + "new_columns = ['Package', 'Variety', 'City Name', 'Month', 'Low Price', 'High Price', 'Date']\n", + "pumpkins = pumpkins.drop([c for c in pumpkins.columns if c not in new_columns], axis=1)\n", + "\n", + "price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2\n", + "\n", + "month = pd.DatetimeIndex(pumpkins['Date']).month\n", + "day_of_year = pd.to_datetime(pumpkins['Date']).apply(lambda dt: (dt-datetime(dt.year,1,1)).days)\n", + "\n", + "new_pumpkins = pd.DataFrame(\n", + " {'Month': month, \n", + " 'DayOfYear' : day_of_year, \n", + " 'Variety': pumpkins['Variety'], \n", + " 'City': pumpkins['City Name'], \n", + " 'Package': pumpkins['Package'], \n", + " 'Low Price': pumpkins['Low Price'],\n", + " 'High Price': pumpkins['High Price'], \n", + " 'Price': price})\n", + "\n", + "new_pumpkins.loc[new_pumpkins['Package'].str.contains('1 1/9'), 'Price'] = price/1.1\n", + "new_pumpkins.loc[new_pumpkins['Package'].str.contains('1/2'), 'Price'] = price*2\n", + "\n", + "new_pumpkins.head()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ប្លង់ចែកចាយរំឮកឲ្យយើងចាំថាយើងមានទិន្នន័យតែពីខែសីហារទៅដល់ខែធ្នូតែប៉ុណ្ណោះ។ យើងប្រហែលជាចាំបាច់ត្រូវការទិន្នន័យបន្ថែមដើម្បីអាចរើសសេចក្តីសន្និដ្ឋានក្នុងរបៀបបន្ទាត់បាន។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 169, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAkT0lEQVR4nO3dfXRV9Z3v8fc3EB7kYcAQA+Wh0IZSUWLqzWVARi+W+lQdodXOtHcQZ41dOGumc1tn5graXqc67Ywybe2009Urtb3F2mnrkhYVtEIj1NoRNTAQEFQyhRpoCBihgEJIyPf+cXZiHs5Jzsbss0/O/rzWOivnfM/Z53zdhm9+57d/D+buiIhIchTFnYCIiOSWCr+ISMKo8IuIJIwKv4hIwqjwi4gkzOC4E8jGuHHjfOrUqXGnISIyoGzZsuUNdy/tHh8QhX/q1KnU1NTEnYaIyIBiZr9NF1dXj4hIwqjwi4gkjAq/iEjCqPCLiCSMCr+ISMKo8EuHphPNbK8/StOJ5rhTEZEIDYjhnBK9x7YdYNnqWoqLimhpa2PFDRVcXzkx7rREJAJq8QtNJ5pZtrqWUy1tHG9u5VRLG7evrlXLX6RAqfAL+4+cpLio669CcVER+4+cjCkjEYmSCr8waexwWtrausRa2tqYNHZ4TBmJSJRU+IWSkUNZcUMFQwcb5xQPYuhgY8UNFZSMHBp3aiISARV+ASC1AaeBBT9FpGBFWvjNbJ+Z7TCzbWZWE8TONbMNZrYn+Dk2yhykb+0Xd5tb23j79BmaW3VxV6SQ5aLFf7m7V7p7VfB4OVDt7tOB6uCxxEgXd0WSJY6unoXAquD+KmBRDDlIJ7q4K5IsURd+B9ab2RYzWxrEyty9ASD4eV7EOUgf2i/uDisuYtTQwQwrLtLFXZECFvXM3Xnu/jszOw/YYGavZHtg8IdiKcCUKVOiyk8C11dOZF75OPYfOcmkscNV9EUKWKQtfnf/XfDzEPAzYDbQaGYTAIKfhzIcu9Ldq9y9qrS0x85hEoGSkUO5aPIYFX2RAhdZ4TezEWY2qv0+cCWwE3gcuDl42c3AY1HlICIiPUXZ1VMG/MzM2j/n393952b2EvCImd0CvA58IsIcRESkm8gKv7v/BrgoTbwJWBDV54qISO80c1dEJGFU+KVDzd4mvrb+VWr2NsWdiohESBuxCACLH9zMc3Wpgv+NZ+q4tLyEH3x6TsxZiUgU1OIXavY2dRT9dr+qa1LLX6RAqfALz+55I1RcRAY2FX7hsunjQsVFZGBT4ReqppVwaXlJl9il5SVUTSvJcISIDGQq/ALAjVWTGTKoiCGDjCGDivhE1eS4UxKRiKjwS8dGLKfPtHH6jHP6jDZiESlkKvyijVjOUvWugyx7dDvVuw7GnYpIKBrHL9qI5Sxcef8mXmt8C4Cf1OxnRtkInr5tfqw5iWRLLX7p2IhlyCBj6OBUP782YsmsetfBjqLf7tXGt9TylwFDhV8AqNn3JqfPOM2tqX7+mt++GXdKeWv9rsZQcZF8o8Iv1DUe56HNr3eJPfT869Q1Ho8po/x25cyyUHGRfKPCL2yrPxoqnnQLZo5nRtmILrEZZSNYMHN8TBmJhKOLu0Ll5DGh4gJP3zaf6l0HWb+rkStnlqnoy4ASeYvfzAaZ2X+a2drg8RfN7ICZbQtuH406B+ldedkolsztuqH9krlTKC8bFVNGA8OCmeO578aLVPSz1HSime31RzU/JA/kosX/WWA3MLpT7H53/0oOPluydM/CWSyZM5Vt9UepnDxGRV/61WPbDrBsdS3FRUW0tLWx4oYKrq+cGHdaiRVpi9/MJgHXAg9G+TnSP8rLRnFj1WQVfelX7TPDT7W0cby5lVMtmhket6i7er4O3A60dYt/xsxqzex7ZjY23YFmttTMasys5vDhwxGnKSJR0czw/BNZ4Tez64BD7r6l21PfBt4PVAINwFfTHe/uK929yt2rSktLo0pTRCKmmeH5J8oW/zzgejPbB/wY+LCZPezuje5+xt3bgO8AsyPMQURi1j4zfFhxEaOGDmZYcZFmhscssou77n4HcAeAmc0H/t7dF5vZBHdvCF72MWBnVDmISH64vnIi88rHsf/ISSaNHa6iH7M4xvGvMLNKwIF9wK0x5CAiOVYycqgKfp7ISeF3903ApuD+Tbn4TBERSU9LNoiIJIwKv4hIwqjwi4gkjAq/iEjCqPCLiCSMCr+ISMKo8EsHLZsbztLvv8AHv/AkS7//QtypDAh1jcd5tKZeO7vlAW3EIoCWzQ1r6vJ1HffXv/IGU5evY9+918aYUX67a82OLtt7Lpk7hXsWzooxo2RTi1+0bG5ImVr4avmnpz2d848Kv2jZ3JCerWsKFU867emcf1T4RcvmhnRZeUmoeNJpT+f8o8IvWjY3pJV//oeh4kmnPZ3zj7l73Dn0qaqqymtqauJOo+A1nWjWsrkhLP3+Czxb18Rl5SUq+lmoazyuPZ1zzMy2uHtVj7gKv4hIYcpU+NXVIyKSMJEXfjMbZGb/aWZrg8fnmtkGM9sT/Ey72brkniZwhfPlJ3Yy959/wZef0CZy2ViztZ5Pr3qJNVvr404l8SLv6jGzvwWqgNHufp2ZrQDedPd7zWw5MNbdl/X2HurqiZ4mcIXzvuXr6DwOqgj4jSZwZTTnnzZw8NjpjscTRg/h+TuviDGjZIilq8fMJgHXAg92Ci8EVgX3VwGLosxB+qYJXOF8+YmdtHWLtQVx6WnN1vouRR+g4dhptfxjFHVXz9eB26HLv5Oy9s3Wg5/npTvQzJaaWY2Z1Rw+fDjiNJNNE7jCWbvzYKh40q3dkeF8ZYhL9CIr/GZ2HXDI3beczfHuvtLdq9y9qrS0tJ+zk840gSuc6y4cHyqedNfNynC+MsQlelG2+OcB15vZPuDHwIfN7GGg0cwmAAQ/D0WYg2RBE7jC+fwfX9jjH05REJeeFl08mQmjh3SJTRg9hEUXT44pI8nJOH4zmw/8fXBx91+Apk4Xd89199t7O14Xd3NDE7jC+fITO1m78yDXXTheRT8La7bWs3bHQa6bNV5FP0dincDVrfCXAI8AU4DXgU+4+5u9Ha/CLyISXqbCn5P1+N19E7ApuN8ELMjF54qISE+auSsikjAFXfg1EzWcBzbu4Zp/fZYHNu6JO5UBQVsJykBVsFsvaiZqOOd/4UlOtqau9+xuOM7Xq/ew+0sfjTmr/KWtBGUgK8gWv2aihvPAxj0dRb/dyVZXyz8DbSUoA11BFn7NRA1nTW1DqHjSaStBGegKsvBrJmo4iyomhIonnbYSlIGuIAu/ZqKGc+vl0xk+2LrEhg82br18ekwZ5TdtJSgDXUHvwKWZqOE8sHEPa2obWFQxQUU/C9pKUPKdtl4U6WdqWEi+i3Xmrkih0XBhGcgKso9fJEoaLiwDnQq/dFj0zV/yvuXrWPTNX8adSl7TcOGzo5n0+UNdPQLA1OXrOu5vO3CCqcvXsU97yKY1aexwjje3dokdb27VcOFeqGssv6jFLxlb+Gr5p/dnK/8jVDzp1DWWf1T4hdoDJ0LFk+6VQ2+HiiedusbyT5R77g4zsxfNbLuZvWxmdwfxL5rZATPbFty0EljMKiaODBVPug+ed06oeNJpJn3+ibLF3wx82N0vAiqBq81sTvDc/e5eGdyejDAHycKav/kfoeJJ9/O/vTxUPOnaZ9IPHVzUcdNM+nhFVvg9pb2voDi45f9ssYT6o/KSLo8v7fZY5N2o2fcmza1tHbea3/a626pELNI+fjMbZGbbgEPABnd/IXjqM2ZWa2bfM7OxUeYgfavZ28RzdU1dYr+qa6Jmb1OGI5Jt6fdfCBVPOi1jnX8iLfzufsbdK4FJwGwzuxD4NvB+Ut0/DcBX0x1rZkvNrMbMag4fPhxlmon37J43QsWT7tm69H8QM8WTTstY55+cjOpx96OkNlu/2t0bgz8IbcB3gNkZjlnp7lXuXlVaWpqLNBPrsunjQsWT7rIM3WCZ4kmnZazzT5SjekrNbExwfzjwEeAVM+u8yPvHgJ1R5SDZqZqWvmBliifdyj//w1DxpMu0cqlWNI1PlC3+CcBGM6sFXiLVx78WWGFmO4L45cBtEeYgWfj7n2wNFU+6//nAr0PFk06/X/knsiUb3L0W+FCa+E1RfaacnQ27D4WKJ92Lvz0aKp50+v3KP5q5K1xx/nmh4kk3+71jQsWTTr9f+UeFX/jKn14cKp50/37rvFDxpNPvV/5R4RcA/mDYoF4fi7wb40cP6fJ4QrfHklsq/MLD/7GX35860yX2+1NnePg/9saUUX6r+Id1oeJJt2ZrPQePne4Sazh2mjVb62PKSLIq/Gb2ATOrNrOdweMKM/tCtKlJrjxW2xAqnnTHMqwmnCmedGt3HAwVl+hl2+L/DnAH0AIdI3Y+GVVSklsLKyaEiifd6Axri2WKJ911s8aHikv0si3857j7i91irWlfKQPO4kumpe3jX3zJtJgyym+1d6ffmSxTPOkWXTy5R5/+hNFDWHTx5JgykmwL/xtm9n6C1TXN7EZS6+xIgVjYbRu8hR/Stni9+ddPVnZ5/I1uj6Wr5++8gq//SQUfOf88vv4nFTx/5xVxp5Ro5t73Sslm9j5gJXAJcATYCyx2932RZheoqqrympqaXHxUItU1Hucj9z/bI/6L2y7TtPo0mk40M+++ZzjV8s7mIsOKi/j1sg9rjXnJK2a2xd2rusezmrnr7r8BPmJmI4Aid9d6qgWkt9UTVfh7at9K8BTvFP72rQRV+GUgyHZUzz+Z2Rh3f8vdj5vZWDP7UtTJSW5o9cRwtJWgDHTZ9vFfEyytDIC7HwG0V26BGDtiCIOKrEtsUJExdoQm2aTTvpVgEWCk/hFpK8G+1TUe59Gaem3AkgeyXaRtkJkNdfdm6FhmWb/lBWL/kZMUGXSewlVkqOuiF/9nzY6Ojh4PHl9fqQvimdy1ZkeXXbiWzJ3CPQtnxZhRsmXb4n8YqDazW8zsL4ANwKro0pJcamk9Q8uZrhf5W844La1nMhyRbJrpHI62Xsw/WRV+d18BfBk4H7gA+McgJgXghb3pN77OFE86zXQOR1sv5p+s1+N396eApyLMRWRAWFgxgZf2HUkbl540eCD/9NriN7Pngp/HzexYp9txMzvWx7HDzOxFM9tuZi+b2d1B/Fwz22Bme4KfY/vvP0fOxlUXpJ86nymedJrpHE552SiWzJ3SJbZk7hQNFY5Rry1+d/+j4OfZ/B9qBj7s7ifMrBh4zsyeAj4OVLv7vWa2HFgOLDuL95d+oj1Rw0vXxy+Z3bNwFkvmTGVb/VEqJ4/R71bM+uzjN7Oi9lU5w/CUE8HD4uDmwELeuTC8ClgU9r2lf12+ojpUPOm05+7ZKS8bxY1Vk1X080Cfhd/d24DtZjalr9d2Z2aDzGwbcIjUZusvAGXu3hC8dwOQdv81M1tqZjVmVnP48OGwHy0h7H3zVKh40mnPXRnosh3OOQF4OViT//H2W18HufsZd68EJgGzzezCbBNz95XuXuXuVaWlpdkeJmdh2rnDQsWTTnvuykCX7aieu9/Nh7j7UTPbBFwNNJrZBHdvMLMJpL4NSIw23r6Aqct77h618fYFMWST//791nlpz5f23JWBoq9RPcPM7HPAJ4APAr9291+23/o4ttTMxgT3hwMfAV4BHgduDl52M/DYu/ovkH6x795rmRismT5x9BD23au15Xuz795ruWTaGAYXwSXTxuh8yYDSV4t/Faldt34FXAPMBD6b5XtPAFaZ2SBSf2Aecfe1ZvY88IiZ3QK8TuqPisTsrjU7OBDsi3rg2GnuemyHptT3QS18Gaj6Kvwz3X0WgJl9F+i+C1dGwfaMH0oTbwLUh5BHMk2pXzJnqkZgiBSgvi7utrTfcXdttVigNKVeJFn6avFf1GmGrgHDg8dGaqj+6Eizk5zQlPqz84Wfbueplxu55oIyvvTxi+JORyRrfc3cHdTb81IYystGMaNsBK82vtURm1E2Qt08veg8qufhF/fz8Iv7dYFXBoxsx/FLAatrPN6l6AO82viWls3N4As/3R4qLpJvVPhFffwhPfVyY6i4SL5R4RfGnlMcKp5011xQFioukm9U+IUjb7eEiiddpgu5usArA4UKv2hUz1nYd++1LJ49iZIRxSyePUkXdmVAyXoHLilc7RtlPPR8182wNaqnd1/6+EV86eNxZyESngq/ANooQyRJVPilQ3nZKBV8kQRQH7+ISMKo8EuHusbjPFpTr4lbIgVOXT0CpJZl7rxC55K5U7Qss0iBUotfMi7LrJa/SGGKrPCb2WQz22hmu83sZTP7bBD/opkdMLNtwe2jUeUg2dGSDSLJEmVXTyvwd+6+1cxGAVvMbEPw3P3u/pUIP1tC0AQukWSJrPC7ewPQENw/bma7gYlRfZ6cvbEjhqQ2WOgUsyAuIoUnJ338ZjaV1DaMLwShz5hZrZl9z8zGZjhmqZnVmFnN4cOHc5FmYu0/cpKRQ7u2AUYOHcz+IydjykhEohR54TezkcBq4HPufgz4NvB+oJLUN4KvpjvO3Ve6e5W7V5WWlkadZqJNGjuclra2LrGWtjYmjR0eU0YiEqVIC7+ZFZMq+j90958CuHuju59x9zbgO8DsKHOQvpWMHMqKGyoYbDDIYLDBihsqKBk5NO7URCQCUY7qMeC7wG53/1qn+IROL/sYsDOqHCR7/7ZxD60OZxxaHb61cU/cKYlIRKIc1TMPuAnYYWbbgtidwKfMrJLUtcR9wK0R5iBZqN51kNfSbL1YvesgC2aOjykrEYlKlKN6niM1OKS7J6P6TDk763el3zJw/a5GFX6RAqSZu8KVM9NvGZgpLiIDmwq/sGDmeGaUjegSm1E2Qq19kQKlRdoEgKdvm0/1roOs39XIlTPLVPRFCpgKv3RYMHO8Cr5IAqirR0QkYVT4RUQSRoVfOmgHLpFkUB+/ANqBSyRJ1OIX7cAlkjAq/KIduEQSRoVftAOXSMKo8AvlZaNYMndKl9iSuVMoLxsVU0YiEiVd3BUA7lk4iyVzprKt/iiVk8eo6IsUMBV+6VBeNkoFPwQtcRGOzld4TSea2X/kJJPGDu/XjZFU+EXOwpX3b+rYw+AnNfuZUTaCp2+bH2tO+UznK7zHth1g2epaiouKaGlrY8UNFVxfObFf3jvKHbgmm9lGM9ttZi+b2WeD+LlmtsHM9gQ/0262LpKvetu4RnrS+Qqv6UQzy1bXcqqljePNrZxqaeP21bU0nWjul/eP8uJuK/B37n4+MAf4azObCSwHqt19OlAdPJY8ULO3ia+tf5WavU1xp5LXetu4RnrS+Qpv/5GTFBd1Lc/FRUXsP3KyX94/ssLv7g3uvjW4fxzYDUwEFgKrgpetAhZFlYNkb/GDm7nxgc1845k6bnxgMzc9uDnulPKWNq4JR+crvEljh9PS1tYl1tLWxqSxw/vl/XMynNPMpgIfAl4Ayty9AVJ/HIDzcpGDZFazt4nn6rq28n9V16SWfwbauCYcna/wSkYOZcUNFQwrLmLU0MEMKy5ixQ0V/XaBN/KLu2Y2ElgNfM7dj5ml24Y37XFLgaUAU6ZM6ePV8m48u+eNjPGqaSU5zmZg0MY14eh8hXd95UTmlY+LZFSPuXu/vVmPNzcrBtYCT7v714LYq8B8d28wswnAJnef0dv7VFVVeU1NTWR5Jl3N3iZufKBn186jt85R4RcZwMxsi7tXdY9HOarHgO8Cu9uLfuBx4Obg/s3AY1HlINmpmlbCpeVdC/yl5SUq+n1Ys7WeT696iTVb6+NOZUBoOtHM9vqj/TYyRc5elF0984CbgB1mti2I3QncCzxiZrcArwOfiDAHydKeQ11X4qw7pJU5ezPnnzZw8NhpAH6x+xD3/fwVnr/zipizyl9RjkmX8KIc1fOcu5u7V7h7ZXB70t2b3H2Bu08Pfr4ZVQ6SnTVb6zuKWLuGY6fVks1A5yucqMekS3gFvUibvlpmZ+2O9BNpMsWTTucrnKjHpEt4BVv4H9t2gHn3PcPiB19g3n3P8Pi2A3GnlLeum5V+hEWmeNLpfIUT9Zh0Ca8gC7++WobT+PtToeJJt+jiyUwYPaRLbMLoISy6eHJMGeW3qMekS3gFuUhb+1fLU7zTymj/aqlftp7W1DZkjN96+fQcZzMwPH/nFazZWs/aHQe5btZ4Ff0+RDkmXcIryMKvr5bhLKqYwO6GnqN4FlVMiCGbgWPRxZNV8EMoGTlUBT9PFGRXT/tXy6GDjXOKBzF0sOmrZS9uvXw6wwd3nVE9fLCptS9SoAqy8AOk5iMbWPBTevXfpp7b5XFVt8fSk1YzDaeu8TiP1tRT16g5InEryK6e9ou7za3vdPfcvrqWeeXj1OpPo7dF2jR7N73FD27uOGffeKaOS8tL+MGn58ScVf66a80OHtr8esfjJXOncM/CWTFmlGwF2eLXuOFwelukTXrSaqbh1DUe71L0AR56/nW1/GNUkIVfF3fDuWz6uFDxpNMfynC21R8NFZfoFWTh17jhcDJ156ibJz39oQyncvKYUHGJXkH28YPGDYfx5Sd2Zox//o8vzHE2+e9Xrx3KGNcfy57Ky0axZO4UHnq+ax9/edmoGLNKtoIt/KBxw9lauzPD2jM7D6rwp/HIlv0Z47dddX6OsxkY7lk4iyVzprKt/iiVk8eo6MesILt6JJzrLsyw9kyGeNJNGnNOqLiklJeN4saqySr6eUCFX/jT2e8NFU+68d3W6ekrLil/8/BLXHDXU/zNwy/FncqAUb3rIMse3U71rv5d+bWgu3okO8/VHc4YV+usp5r634eKC0xdvq7j/hM7D/HE8nXsu/faGDPKf1fev4nXGt8C4Cc1+5lRNoKnb5vfL+8d5daL3zOzQ2a2s1Psi2Z2wMy2BbePRvX5kr2jb7eEiifdmdYzoeJJl6mFr5Z/ZtW7DnYU/XavNr7Vby3/KLt6vg9cnSZ+f+cduSL8fMnSW6dbQ8WTrunt9OclUzzpnnkt/fyGTHGB9bsaQ8XDinLrxWcBbas4AFw1M/1F3EzxpJv1npGh4kn34Q+kn9+QKS5w5cyyUPGw4ri4+xkzqw26gsZmepGZLTWzGjOrOXw4fR+09I+qaSVpV+fUmPT07l50Uah40n1z8X8PFRdYMHM8M8pGdInNKBvBgn5qjOW68H8beD9QCTQAX830Qndf6e5V7l5VWlqao/SSqXrXQU62epfYyVbv95EEhWLS2OEMK+76T2dYcZGWBOnFvnuvpXxc6vyUjxuuC7tZePq2+dxx1Qc4f8Io7rjqA/12YRdyXPjdvdHdz7h7G/AdYHYuP1/Si7o/sdCUjBzKqZaua0GdamnTZMFeTL9jHXVvpBZJrHvjJNPvWNfHEbL4wc3889OvsbvhOP/89Gvc9ODmfnvvnBZ+M+u8pdPHgPRrBUhOzXrP6FDxpPvCT7eHiifd/U/vpqXrF0paPBWX9KJeATbK4Zw/Ap4HZpjZfjO7BVhhZjvMrBa4HLgtqs+X7A0bkn46R6Z40j31cvpvQpniSfdYbfouw0xxiX4F2ChH9XzK3Se4e7G7T3L377r7Te4+y90r3P16d0+/y7fklFZPDOeaC9KPrMgUT7qFFekvSGaKS/QrwGrJBpGQLv9g+gKfKZ50mRau04J2mVVNK+HS8q6j6i4tL+m3kXb6Li+9bpShJRt66u1ieH8NtyskmUaHVe86qPPVix98eg41e5t4ds8bXDZ9XL8Or1aLX9TVE1LUk2sKjUaNnb2qaSX87ZUz+n1OjQq/dGyU0Zk2ysgs6sk1hUZ/KPOPuXvfr4pZVVWV19TUxJ1GwatrPK6NMkKo3nWQ9bsauXJmmYp+H666fxOvdlp0rD9XmpTMzGyLu1f1iKvwi0gu6A9l7mUq/Lq4K3KWmk40a0/nEBbMHK+CnydU+EXOwmPbDrBsdS3FRUW0tLWx4oYKrq+cGHdaIlnRxV2RkJpONLNsdS2nWto43tzKqZY2bl9dS9OJ5rhTE8mKCr9ISPuPnKS4qOs/neKiIvYfORlTRiLhqPCLhDRp7HBa2rquztnS1qZlmWXAUOEXCalk5FBW3FBBcREMKoLiIlhxQ4Uu8Pah6UQz2+uPqkssD+jirshZ+LeNe2hfkv8M8K2Ne3Rxtxe6GJ5f1OIXCal610Fe6zQZCeDVxre0Y1kGuhief1T4RULS2jPh6GJ4/olyI5bvmdkhM9vZKXaumW0wsz3Bz4ybrYvkK609E44uhuefKFv83weu7hZbDlS7+3SgOngsMqBokbZw2i+GDysuYtTQwQwrLtLF8JhFulaPmU0F1rr7hcHjV4H57t4Q7L+7yd1n9PU+WqtH8pHWnglHS1zkXr6s1VPWvt1iUPzPy/RCM1sKLAWYMmVKppeJxEZrz4RTMnKoCn6eyNuLu+6+0t2r3L2qtLQ07nRERApGrgt/Y9DFQ/DzUI4/X0Qk8XJd+B8Hbg7u3ww8luPPFxFJvCiHc/4IeB6YYWb7zewW4F7gCjPbA1wRPBYRkRyK7OKuu38qw1MLovpMERHp24DYetHMDgO/PcvDxwFv9GM6/UV5haO8wlFe4eRrXvDucnuvu/cYHTMgCv+7YWY16caxxk15haO8wlFe4eRrXhBNbnk7nFNERKKhwi8ikjBJKPwr404gA+UVjvIKR3mFk695QQS5FXwfv4iIdJWEFr+IiHSiwi8ikjAFU/jN7DYze9nMdprZj8xsWLfnzcy+YWZ1ZlZrZhfnSV7zzez3ZrYtuN2Vo7w+G+T0spl9Ls3zcZ2vvvLKyfl6NxsJmdnVZvZqcO76dc+Jd5nXPjPbEZy3fl3nPENenwj+P7aZWcbhiDGcr2zzyvX5+hczeyX49/YzMxuT4dh3f77cfcDfgInAXmB48PgR4M+7veajwFOAAXOAF/Ikr/mk9izI5fm6ENgJnENq9vYvgOl5cL6yySsn5wu4DLgY2NkptgJYHtxfDtyX5rhBwH8B7wOGANuBmXHnFTy3DxiXw/N1PjAD2ARUZTgujvPVZ14xna8rgcHB/fui/P0qmBY/qUIx3MwGkyocv+v2/ELgIU/ZDIxpXyk05rzicD6w2d3fdvdW4JfAx7q9Jo7zlU1eOeHuzwJvdgsvBFYF91cBi9IcOhuoc/ffuPtp4MfBcXHnFal0ebn7bnd/tY9Dc36+sswrUhnyWh/83gNsBialObRfzldBFH53PwB8BXgdaAB+7+7ru71sIlDf6fH+IBZ3XgBzzWy7mT1lZhdEmVNgJ3CZmZWY2TmkWveTu70m5+cry7wg9+erXZeNhIB0GwnFcd6yyQvAgfVmtsVSGx3lgzjOV7biPF9/Qeobd3f9cr4KovAHfZoLgWnAe4ARZra4+8vSHBrpWNYs89pKaj2Ni4BvAmuizAlSLR5SXyU3AD8n9XWxtdvLcn6+sswr5+crpJyftxDmufvFwDXAX5vZZXEnhM5XD2b2eVK/9z9M93SaWOjzVRCFH/gIsNfdD7t7C/BT4JJur9lP19bjJKLvdukzL3c/5u4ngvtPAsVmNi7ivHD377r7xe5+GamvnHu6vSSO89VnXnGdr0A2GwnFcd6y2uDI3X8X/DwE/IxUt0HcYvk9y0Yc58vMbgauA/7Mg079bvrlfBVK4X8dmGNm55iZkVr6eXe31zwOLAlGq8wh1e3SEHdeZjY+eA4zm03q/0lTxHlhwX7HZjYF+Djwo24vieN89ZlXXOcrkM1GQi8B081smpkNAT4ZHBdrXmY2wsxGtd8ndSFxZ/fXxSCO89WnOM6XmV0NLAOud/e3M7ysf85XFFes47gBdwOvkPqf8wNgKPCXwF8GzxvwLVJXxHfQy9X8HOf1GeBlUt0am4FLcpTXr4BdwecuCGL5cL76yisn54vUH5wGoIVUK+sWoASoJvUtpBo4N3jte4AnOx37UeC14Nx9Ph/yIjUKZHtwezlHeX0suN8MNAJP58n56jOvmM5XHan++23B7f9Gdb60ZIOISMIUSlePiIhkSYVfRCRhVPhFRBJGhV9EJGFU+EVEEkaFXwQwMzezH3R6PNjMDpvZ2rN8vzFm9ledHs8/2/cS6W8q/CIpbwEXmtnw4PEVwIF38X5jgL/q60UicVDhF3nHU8C1wf1P0WnWsKXWvF8TrJW+2cwqgvgXg7XVN5nZb8zsfwWH3Au8P1jL/V+C2EgzezRYc/2H7TOQRXJNhV/kHT8GPmmpzXIqgBc6PXc38J/uXgHcCTzU6bkPAleRWsvlH8ysmNS6+P/l7pXu/r+D130I+Bwwk9TM0HkR/reIZKTCLxJw91pgKqnW/pPdnv4jUktu4O7PACVm9gfBc+vcvdnd3yC1QFpZho940d33u3sbqSn5U/v1P0AkS4PjTkAkzzxOag+F+aTWwGnX23K4zZ1iZ8j87yrb14lESi1+ka6+B9zj7ju6xZ8F/gxSI3SAN9z9WC/vcxwYFUWCIu+WWhwinbj7fuBf0zz1ReD/mVkt8DbvLIOc6X2azOzXwWbaTwHr+jtXkbOl1TlFRBJGXT0iIgmjwi8ikjAq/CIiCaPCLyKSMCr8IiIJo8IvIpIwKvwiIgnz/wEDeg/76NO6rgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "new_pumpkins.plot.scatter('Month','Price')" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 170, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "new_pumpkins.plot.scatter('DayOfYear','Price')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "មកមើលថាតើមានការតភ្ជាប់គ្នាឬអត់:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 171, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.14878293554077535\n", + "-0.16673322492745407\n" + ] + } + ], + "source": [ + "print(new_pumpkins['Month'].corr(new_pumpkins['Price']))\n", + "print(new_pumpkins['DayOfYear'].corr(new_pumpkins['Price']))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ហាក់ដូចជាការតភ្ជាប់គ្នាមានតិចតួច ប៉ុន្តែមានសម្រង់ផ្សេងទៀតសំខាន់ជាងនេះ - ព្រោះចំណុចតម្លៃនៅក្នុងរូបភាពខាងលើមានក្រុមច្រើនផ្សេងគ្នា។ យើងចាំបាច់ត្រូវបង្កើតរូបភាពមួយដែលបង្ហាញពីប្រភេទផ្លែផលឪឡឹកផ្សេងៗ៖\n" + ] + }, + { + "cell_type": "code", + "execution_count": 172, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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5sxSZs68nu9975ccemg3RBzH3RbOOOMMrr32Wh577DHASb8sEnpOPGmZVRv1hg8/kZqaLyPqff755yxbtozbbrutwTZt2jSWLl3KF198wbx58zj55JMZP348AB07duThhx9ueNIAOPXUU1m8eDH79u1jx44dfP755xQWFja7V5cuXTjttNNYsGBBg+2pp55q+Fs/99xznHfeeVxyySURZ0kfffTRdOzYkc2bN0f7Z4mJDRs20KdPn4bjEfE+ymKO30gCBQXN/+H37XPsXjF5cnT21ojUqnfs5UB/YJy7bz1u1bKeQ72z2b17NytWrOCEE06IqHfZZcVs27aZnTu3ce65TohI1Vl0/eabb24IF0yZMiWixvHHH88nn3wCOD/MwZP4y8vv55JLCjnpJEdn/fr1De8Fp5AuLCxk/vz5zbRFGvXee+9VvvnNyRHTPK9evbohDFJPfUhk1apVrFq1ilGjRoVcM3DgQHbs2MG2bdvc+wljx47ltdde48UXX2TixIkR611cXNzg1NevX8+aNWsa0krX/+AWFxdHXAPhgw8+4Oijj+awww4L+/6UKVMa/jY333xzxHKEI9xnd/3111NSUsIZZ5zBHXfcEfJZxIqFeoyEk5/vxN1LSpyW/r59zrGXyyxMmODE+INWG2T48NjCPOA45EAgNDwTCEC3bjVACVDnbrjHY4HIFYqs13g8YsQIKisrKS8vbzWOu3HjOrZu/TcHDgh79uwgEOhM//6O448U6mlKcLqW3Fyn76WqynHal156I7fddhM9ezrvFwT9Src11HPDDWfw739vpEePw7j++hkR0zyrKtL0cSPIHul9IMR+ySWX8OCDD7J161buvfdefv3rX4e9ZsKECVx33XVs27aNp59+mosuuoicnBw2btzI559/zimnnIKI0L59e1auXMmwYcMAJzfR448/zj/+8Q9effXViPUOF+ppK+E+u29961sN93zllVc47rjjWLlyJfGsU2ItfiMpFBc7TmXhQmcfIYoRFytWwIIFzg/MggXOcTwceywMGuQsjj5okHMMlUDTZmuua49FL5SJEydy0003RQzz1DN16lR++cvpFBdfzDPP/BfDh9PgpNvKhx9+GJLbpWdPGnR6945eryl//esiKiurGDnyWJ59dlpEvWOPPZYPP/yQg0FxqoMHD/LRRx8xZMgQjj32WJrm6vrH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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax=None\n", + "colors = ['red','blue','green','yellow']\n", + "for i,var in enumerate(new_pumpkins['Variety'].unique()):\n", + " ax = new_pumpkins[new_pumpkins['Variety']==var].plot.scatter('DayOfYear','Price',ax=ax,c=colors[i],label=var)" + ] + }, + { + "cell_type": "code", + "execution_count": 173, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 173, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "new_pumpkins.groupby('Variety')['Price'].mean().plot(kind='bar')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "សម្រាប់ពេលវេលានេះ មកផ្តោតលើកំណត់តែប្រភេទតែមួយគត់ - **ប្រភេទប៉ាយ**។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 174, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-0.2669192282197318\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 174, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pie_pumpkins = new_pumpkins[new_pumpkins['Variety']=='PIE TYPE']\n", + "print(pie_pumpkins['DayOfYear'].corr(pie_pumpkins['Price']))\n", + "pie_pumpkins.plot.scatter('DayOfYear','Price')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ព្រីរេស៊ីយ៉ុងវែគ្គ\n", + "\n", + "យើងនឹងប្រើ Scikit Learn ដើម្បីបណ្តុះម៉ូឌែលព្រីរេស៊ីយ៉ុងវែគ្គ៖\n" + ] + }, + { + "cell_type": "code", + "execution_count": 175, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LinearRegression\n", + "from sklearn.metrics import r2_score, mean_squared_error, mean_absolute_error\n", + "from sklearn.model_selection import train_test_split" + ] + }, + { + "cell_type": "code", + "execution_count": 176, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean error: 2.77 (17.2%)\n" + ] + } + ], + "source": [ + "X = pie_pumpkins['DayOfYear'].to_numpy().reshape(-1,1)\n", + "y = pie_pumpkins['Price']\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n", + "lin_reg = LinearRegression()\n", + "lin_reg.fit(X_train,y_train)\n", + "\n", + "pred = lin_reg.predict(X_test)\n", + "\n", + "mse = np.sqrt(mean_squared_error(y_test,pred))\n", + "print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 177, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.scatter(X_test,y_test)\n", + "plt.plot(X_test,pred)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ចំនង់ជន្លង់នៃរបារ​អាចកំណត់បានពីមេគុណសមីការស្រប៖\n" + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([-0.01751876]), 21.133734359909326)" + ] + }, + "execution_count": 178, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "lin_reg.coef_, lin_reg.intercept_" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "យើងអាចប្រើម៉ូដែលដែលបានបណ្តុះបណ្តាលដើម្បីព្យាករណ៍តម្លៃបាន៖\n" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([16.64893156])" + ] + }, + "execution_count": 179, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Pumpkin price on programmer's day\n", + "\n", + "lin_reg.predict([[256]])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ប្រតិកម្មPolynomial\n", + "\n", + "ម្តងម្កាលទំនាក់ទំនងរវាងលក្ខណៈពិសេស និងលទ្ធផលគឺមិនមែនជាកំណត់រចនាសម្ព័ន្ធបន្ទាត់ទេ។ ឧទាហរណ៍ តម្លៃដូងអាចខ្ពស់នៅរដូវរងារ (ខែ=1,2) បន្ទាប់មកធ្លាក់ចុះនៅរដូវក្តៅ (ខែ=5-7) ហើយបន្ទាប់មកឡើងវិញ។ ការប្រែប្រួលបន្ទាត់មិនអាចរកបានទំនាក់ទំនងនេះយ៉ាងត្រឺតព្រាន់។\n", + "\n", + "នៅក្នុងករណីនេះ យើងអាចពិចារណាបន្ថែមលក្ខណៈពិសេសបន្ថែម។ វិធីសាមញ្ញគឺប្រើរូបមន្តប៉ូលីណូមីពីលក្ខណៈបញ្ចូល ដែលនឹងនាំឱ្យមាន **ប្រតិកម្មPolynomial**។ នៅក្នុង Scikit Learn យើងអាចគណនា​លក្ខណៈប៉ូលីណូមីជាមុនដោយស្វ័យប្រវត្តិនៅតាម pipeline: \n" + ] + }, + { + "cell_type": "code", + "execution_count": 180, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean error: 2.73 (17.0%)\n", + "Model determination: 0.07639977655280217\n" + ] + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 180, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.preprocessing import PolynomialFeatures\n", + "from sklearn.pipeline import make_pipeline\n", + "\n", + "pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())\n", + "\n", + "pipeline.fit(X_train,y_train)\n", + "\n", + "pred = pipeline.predict(X_test)\n", + "\n", + "mse = np.sqrt(mean_squared_error(y_test,pred))\n", + "print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n", + "\n", + "score = pipeline.score(X_train,y_train)\n", + "print('Model determination: ', score)\n", + "\n", + "plt.scatter(X_test,y_test)\n", + "plt.plot(sorted(X_test),pipeline.predict(sorted(X_test)))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ប្រភេទការអ៊ិនគូដ\n", + "\n", + "នៅក្នុងពិភពលោកដ៏ល្អឥតខ្ចោះ យើងចង់អាចរំពឹងទុកតម្លៃសម្រាប់ប្រភេទផ្លែទំពាំងបាយជូផ្សេងៗដោយប្រើម៉ូដែលដដែល។ ដើម្បីគិតគូរប្រភេទ យើងត្រូវការបម្លែងវាទៅជាទម្រង់ខ្នាតលេខ ឬ **អ៊ិនគូដ**។ មានវិធីជាច្រើនដែលយើងអាចធ្វើបាន៖\n", + "\n", + "* ការអ៊ិនគូដខ្នាតលេខសាមញ្ញ ដែលនឹងបង្កើតតារាងនៃប្រភេទផ្សេងៗ ហើយបន្ទាប់មកជំនួសឈ្មោះប្រភេទដោយដាក់លេខលំដាប់ក្នុងតារាងនោះ។ នេះមិនមែនជាគំនិតល្អសម្រាប់ការត្រួតពិនិត្យបែបរូបមន្តស្រឡាញ់ សម្រាប់ linear regression ទេ ព្រោះ linear regression ស្រមៃថា តម្លៃខ្នាតលេខនៃលេខលំដាប់នោះមានទំនាក់ទំនងជាមួយតម្លៃតាមលេខ ហើយតម្លៃខ្នាតលេខនោះនឹងមិនបានសម្របសម្រួលជាលេខជាមួយតម្លៃតម្លៃទេ។\n", + "* ការអ៊ិនគូដOne-hot ដែលនឹងជំនួសជួរឈរប្រភេទ `Variety` ជាជួរឈរពីរពណ៌ 4 មក 4 ជួរឈរ ភាគតែមួយសម្រាប់ប្រភេទនីមួយៗ ដែលនឹងមានលេខ 1 ប្រសិនបើជួរដេកនោះជាប្រភេទដែលបានកំណត់ ហើយ 0 ករណីផ្សេងទៀត។\n", + "\n", + "កូដខាងក្រោមបង្ហាញពីរបៀបដែលយើងអាចអ៊ិនគូដដែលមានទម្រង់ one-hot សម្រាប់ប្រភេទ៖\n" + ] + }, + { + "cell_type": "code", + "execution_count": 181, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
FAIRYTALEMINIATUREMIXED HEIRLOOM VARIETIESPIE TYPE
700001
710001
720001
730001
740001
...............
17380100
17390100
17400100
17410100
17420100
\n", + "

415 rows × 4 columns

\n", + "
" + ], + "text/plain": [ + " FAIRYTALE MINIATURE MIXED HEIRLOOM VARIETIES PIE TYPE\n", + "70 0 0 0 1\n", + "71 0 0 0 1\n", + "72 0 0 0 1\n", + "73 0 0 0 1\n", + "74 0 0 0 1\n", + "... ... ... ... ...\n", + "1738 0 1 0 0\n", + "1739 0 1 0 0\n", + "1740 0 1 0 0\n", + "1741 0 1 0 0\n", + "1742 0 1 0 0\n", + "\n", + "[415 rows x 4 columns]" + ] + }, + "execution_count": 181, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pd.get_dummies(new_pumpkins['Variety'])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### រេស៊ែរ​ស្យុង​រېខប្រេស​ស្យុង​លើ​ប្រភេទ\n", + "\n", + "ឥឡូវនេះ​យើង​នឹង​ប្រើ​កូដ​ដូច​ខាង​លើ ប៉ុន្តែ​មិន​ប្រើ `DayOfYear` ទេ ប៉ុន្តែ​យើង​នឹង​ប្រើ​ប្រភេទ​ដែល​បាន​កូដ​ជា​មួយ​ភាគទាន​មួយ:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 182, + "metadata": {}, + "outputs": [], + "source": [ + "X = pd.get_dummies(new_pumpkins['Variety'])\n", + "y = new_pumpkins['Price']" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean error: 5.24 (19.7%)\n", + "Model determination: 0.774085281105197\n" + ] + } + ], + "source": [ + "def run_linear_regression(X,y):\n", + " X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n", + " lin_reg = LinearRegression()\n", + " lin_reg.fit(X_train,y_train)\n", + "\n", + " pred = lin_reg.predict(X_test)\n", + "\n", + " mse = np.sqrt(mean_squared_error(y_test,pred))\n", + " print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n", + "\n", + " score = lin_reg.score(X_train,y_train)\n", + " print('Model determination: ', score)\n", + "\n", + "run_linear_regression(X,y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "យើងអាចសាកល្បងប្រើលក្ខណៈពិសេសផ្សេងទៀតដោយវិធីដូចគ្នានេះ ហើយបញ្ចូលវាជាមួយលក្ខណៈសារពើភ័ណ្ឌជាឈ្មេាះ គឺដូចជា `Month` ឬ `DayOfYear`:\n" + ] + }, + { + "cell_type": "code", + "execution_count": 184, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean error: 2.84 (10.5%)\n", + "Model determination: 0.9401096672643048\n" + ] + } + ], + "source": [ + "X = pd.get_dummies(new_pumpkins['Variety']) \\\n", + " .join(new_pumpkins['Month']) \\\n", + " .join(pd.get_dummies(new_pumpkins['City'])) \\\n", + " .join(pd.get_dummies(new_pumpkins['Package']))\n", + "y = new_pumpkins['Price']\n", + "\n", + "run_linear_regression(X,y)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### បន្ទាត់ពហុប៉ូលីណូមីយ៉ាល់\n", + "\n", + "បន្ទាត់ពហុប៉ូលីណូមីយ៉ាល់អាចត្រូវបានប្រើជាមួយលក្ខណៈប្រភេទដែលបានបម្លែងជារូបមន្តមួយ-កម្រិត។ កូដសម្រាប់បណ្តុះបណ្តាលបន្ទាត់ពហុប៉ូលីណូមីយ៉ាល់គឺស្អិតដូចជាដែលយើងបានឃើញខាងលើ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 185, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mean error: 2.23 (8.25%)\n", + "Model determination: 0.9652870784724543\n" + ] + } + ], + "source": [ + "from sklearn.preprocessing import PolynomialFeatures\n", + "from sklearn.pipeline import make_pipeline\n", + "\n", + "pipeline = make_pipeline(PolynomialFeatures(2), LinearRegression())\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n", + "\n", + "pipeline.fit(X_train,y_train)\n", + "\n", + "pred = pipeline.predict(X_test)\n", + "\n", + "mse = np.sqrt(mean_squared_error(y_test,pred))\n", + "print(f'Mean error: {mse:3.3} ({mse/np.mean(pred)*100:3.3}%)')\n", + "\n", + "score = pipeline.score(X_train,y_train)\n", + "print('Model determination: ', score)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖\nឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលពួកយើងខិតខំព្យាយាមឱ្យបានត្រឹមត្រូវ សូមជ្រាបថា ការបកប្រែដោយម៉ាស៊ីនអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាបុរាណគួរត្រូវបានចាត់ទុកជាទិន្នន័យឯកសារដែលមានសុពលភាពខ្ពស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយមនុស្សដែលជា​អ្នកជំនាញ។ ពួកយើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសប្លែកណាមួយដែលមានចេញពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "86193a1ab0ba47eac1c69c1756090baa3b420b3eea7d4aafab8b85f8b312f0c5" + }, + "kernelspec": { + "display_name": "Python 3.7.0 64-bit ('3.7')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.5" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/2-Regression/4-Logistic/README.md b/translations/km/2-Regression/4-Logistic/README.md new file mode 100644 index 000000000..29467d3c3 --- /dev/null +++ b/translations/km/2-Regression/4-Logistic/README.md @@ -0,0 +1,401 @@ +# Logistic regression ដើម្បីទាយកាតេកូរី + +![Logistic vs. linear regression infographic](../../../../translated_images/km/linear-vs-logistic.ba180bf95e7ee667.webp) + +## [ការប្រលងមុនម៉ោងផ្សាយ](https://ff-quizzes.netlify.app/en/ml/) + +> ### [មេរៀននេះមានស្រាប់នៅក្នុង R!](../../../../2-Regression/4-Logistic/solution/R/lesson_4.html) + +## ការណែនាំ + +នៅក្នុងមេរៀនចុងក្រោយនេះលើការឧទ្ទិសសំណុំទិន្នន័យ Regression ដែលជាតិចរបស់បច្ចេកទេស ML _បុរាណ_, យើងនឹងស្គាល់ Logistic Regression។ អ្នកនឹងប្រើបច្ចេកទេសនេះដើម្បីរកមើលលំនាំដើម្បីទាយកាតេកូរីពីរបាន។ តើស្ករគឺជាស្វាម៉េតឫមិនមែន? តើជម្ងឺនេះឆ្លងឬមិន? តើអតិថិជននេះនឹងរើសផលិតផលនេះឫមិន? + +នៅក្នុងមេរៀននេះ អ្នកនឹងរៀន៖ + +- បណ្ណាល័យថ្មីសម្រាប់ការមើលទិន្នន័យ +- បច្ចេកទេសសម្រាប់ logistic regression + +✅ ជ្រាបចំហពីការប្រើ regression ប្រភេទនេះក្នុង [មូឌុលរៀន](https://docs.microsoft.com/learn/modules/train-evaluate-classification-models?WT.mc_id=academic-77952-leestott) + +## ការត្រៀមខ្លួន + +បន្ទាប់ពីបានធ្វើការលេងជាមួយទិន្នន័យកម្រាលផ្លែឈើ pumpkin យើងមានការស្គាល់គ្រប់គ្រាន់ដើម្បីយល់ថាមានកាតេកូរីពីរមួយដែលអាចប្រើបានគឺ `Color`។ + +មកបង្កើតម៉ូដែល logistic regression ដើម្បីទាយថា ពីអថេរខ្លះៗ _ពណ៌របស់ pumpkin មួយដែលបានផ្តល់ចង្អុលបង្ហាញនឹងមានអ្វីនៅលើទៅ_ (ទឹកក្រូច 🎃 ឬ ពណ៌ស 👻)។ + +> ហេតុអ្វីបានយើងពិភាក្សាពីចំណាត់ថ្នាក់ពីរ ក្នុងមេរៀនដែលពាក់ព័ន្ធនឹង regression? គ្រាន់តែសម្រាប់ភាពងាយស្រួលភាសា បើទោះបី logistic regression ជាវិធីចំណាត់ថ្នាក់មួយ [ពិតប្រាកដ](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression) ក៏ដោយ ដែលមានមូលដ្ឋានលើខ្សែតួ។ រៀនអំពីវិធីផ្សេងទៀតក្នុងការចាត់ថ្នាក់ទិន្នន័យនៅមេរៀនក្រោយ។ + +## កំណត់សំណួរ + +សម្រាប់គោលបំណងរបស់យើង យើងនឹងបង្ហាញនេះជាការចាត់តាមពីរយ៉ាង៖ 'ពណ៌ស' ឬ 'មិនមែនពណ៌ស'។ ក៏មានកាតេកូរី 'ពណ៌ប៊ិច' ផងដែលមាននៅលើdataset, ប៉ុន្តែមានករណីតិច ជាថ្មីយើងមិនប្រើវាទេ។ វានឹងបាត់បង់នៅពេលយើងដកទិន្នន័យដែលមានតម្លៃគ្មានអ្វីពី dataset ផងដែរ។ + +> 🎃 ព័ត៌មានរីករាយ គេពេលខ្លះហៅ pumpkin ពណ៌សថា pumpkin 'ភ្នំ'. វាមិនងាយក្នុងការចំអិន ដូច្នេះវាមិនពេញនិយមប៉ុន្មានដូច pumpkin ទឹកក្រូច, ប៉ុន្តែវាមើលទាក់ទាញណាស់! ដូច្នេះ យើងអាចកែសំណួររបស់យើងជាថា៖ 'ភ្នំ' ឬ 'មិនភ្នំ' 👻។ + +## អំពី logistic regression + +Logistic regression ផ្សេងពី linear regression ដែលអ្នកបានរៀនមុននេះនៅក្នុងបញ្ហាខ្លះ។ + +[![ML for beginners - Understanding Logistic Regression for Machine Learning Classification](https://img.youtube.com/vi/KpeCT6nEpBY/0.jpg)](https://youtu.be/KpeCT6nEpBY "ML for beginners - Understanding Logistic Regression for Machine Learning Classification") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូមោទនភាពខ្លីអំពី logistic regression។ + +### ចាត់ថ្នាក់ពីរជាន់ + +Logistic regression មិនផ្តល់លក្ខណៈដូច linear regression ទេ។ Logistic regression ផ្តល់ទាយន័យអំពីកាតេកូរីពីរដូចជា ("ពណ៌ស ឬ មិនពណ៌ស") ខណៈដែល linear regression អាចទាយតម្លៃជាបន្ត (បិទនេះផ្អែកលើដើម pumpkin និងពេលកាប់ ប្រហែលថា _តម្លៃរបស់វានឹងឡើងប៉ុន្មាន_)។ + +![Pumpkin classification Model](../../../../translated_images/km/pumpkin-classifier.562771f104ad5436.webp) +> រូបភាពដោយ [Dasani Madipalli](https://twitter.com/dasani_decoded) + +### ចាត់ថ្នាក់ផ្សេងៗ + +មានប្រភេទ logistic regression ផ្សេងទៀត រួមមាន multinomial និង ordinal៖ + +- **Multinomial** ដែលមានកាតេកូរីលើសពីមួយៈ "ទឹកក្រូច, ពណ៌ស និង ប៊ិច"។ +- **Ordinal** ដែលមានកាតេកូរីតាមលំដាប់ ដែលមានប្រយោជន៍ប្រសិនបើយើងចង់តម្រៀបលទ្ធផលយ៉ាងមានตรรกะដូច pumpkin ដែលមានទំហំកំណត់ (តូច ធំមធ្យម ធំ លំដាប់គ្នា)។ + +![Multinomial vs ordinal regression](../../../../translated_images/km/multinomial-vs-ordinal.36701b4850e37d86.webp) + +### អថេរមិនចាំបាច់ត្រូវពាក់ព័ន្ធគ្នា + +ចងចាំថា linear regression ធ្វើបានល្អជាមួយអថេរសមាសភាពល្អជាងទេ? Logistic regression ផ្ទុយទៅវិញ - អថេរមិនបាច់ត្រូវដូចគ្នា។ វាត្រូវនឹងទិន្នន័យនេះដែលមានសមាសភាពអន់។ + +### អ្នកត្រូវតែមានទិន្នន័យស្អាតច្រើន + +Logistic regression នឹងនាំឲ្យបានលទ្ធផលត្រឹមត្រូវឡើង ប្រសិនបើអ្នកប្រើទិន្នន័យច្រើន; dataset តូចរបស់យើងមិនល្អសម្រាប់ការងារនេះទេ ដូច្នេះសូមចងចាំ។ + +[![ML for beginners - Data Analysis and Preparation for Logistic Regression](https://img.youtube.com/vi/B2X4H9vcXTs/0.jpg)](https://youtu.be/B2X4H9vcXTs "ML for beginners - Data Analysis and Preparation for Logistic Regression") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូមោទនភាពខ្លីអំពីការត្រៀមទិន្នន័យសម្រាប់ linear regression + +✅ គិតអំពីប្រភេទទិន្នន័យដែលសមរម្យសម្រាប់ logistic regression + +## ការហាត់ប្រាណ - រៀបចំទិន្នន័យ + +ជំហានដំបូង សម្អាតទិន្នន័យ បោះបង់តម្លៃគ្មានអ្វី និងជ្រើសរើសកូឡុំប៉ុន្មាន៖ + +1. បន្ថែមកូដដូចខាងក្រោម៖ + + ```python + + columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color'] + pumpkins = full_pumpkins.loc[:, columns_to_select] + + pumpkins.dropna(inplace=True) + ``` + + អ្នកអាចមើល dataframe ថ្មីរបស់អ្នកបាននៅពេលណាដែលចង់បានៈ + + ```python + pumpkins.info + ``` + +### ការមើលទិន្នន័យ - គំនូរសញ្ញាកាតេកូរី + +ឥឡូវនេះ អ្នកបានផ្ទុកចូល [សៀវភៅកំណត់ចំណាំដើម](./notebook.ipynb) ជាមួយទិន្នន័យ pumpkin ម្តងទៀត ហើយបានសម្អាតវាដូច្នេះដើម្បីរក្សាទុក dataset ដែលមានអថេរមួយចំនួន រួមមាន `Color`។ អ្នកចង់គំនូរសម្រាប់ dataframe នៅក្នុងសៀវភៅកំណត់ចំណាំ ដោយប្រើបណ្ណាល័យផ្សេងទៀតគឺ [Seaborn](https://seaborn.pydata.org/index.html) ដែលបង្កើតលើ Matplotlib ដែលយើងបានប្រើមុន។ + +Seaborn ផ្តល់វិធីល្អក្នុងការមើលទិន្នន័យរបស់អ្នក។ ឧទាហរណ៍ អ្នកអាចប្រៀបធៀបទិន្នន័យសម្រាប់រាល់ `Variety` និង `Color` ក្នុងគំនូរសញ្ញាកាតេកូរី។ + +1. បង្កើតគំនូរដូចនេះដោយប្រើមុខងារ `catplot` ប្រាប់ពី data pumpkin របស់យើង `pumpkins` និងកំណត់ផែនទីពណ៌សម្រាប់រាល់កាតេកូរី pumpkin (ទឹកក្រូច ឬ ពណ៌ស)៖ + + ```python + import seaborn as sns + + palette = { + 'ORANGE': 'orange', + 'WHITE': 'wheat', + } + + sns.catplot( + data=pumpkins, y="Variety", hue="Color", kind="count", + palette=palette, + ) + ``` + + ![ស្រទាប់គំនូរទិន្នន័យ](../../../../translated_images/km/pumpkins_catplot_1.c55c409b71fea2ec.webp) + + ដោយមើលទិន្នន័យ អ្នកអាចឃើញពីទំនាក់ទំនងរវាងទិន្នន័យ Color និង Variety។ + + ✅ តាមគំនូរម៉ូតនេះ តើអ្នកអាចយល់ពីការស្រាវជ្រាវណាមួយដល់? + +### ការព្យាបាលទិន្នន័យជាមុន: ការអ៊ិនកូដលក្ខណៈ និងស្លាក + +Dataset pumpkins របស់យើងមានតម្លៃអក្សរសម្រាប់គ្រប់កូឡុំ។ ការងារជាមួយទិន្នន័យកាតេកូរីគឺងាយស្រួលសម្រាប់មនុស្ស ប៉ុន្តែមិនសម្រាប់ម៉ាស៊ីនទេ។ អាល់គុណិទិ៍ machine learning បំរើល្អជាមួយលេខ។ ដូច្នេះការអ៊ិនកូដគឺជជើងជម្រាបសំខាន់នៅដំណាក់កាលព្យាបាលទិន្នន័យ ដែលជួយបំលែងទិន្នន័យកាតេកូរីទៅកាន់ទិន្នន័យលេខ ដោយមិនបាត់បង់ព័ត៌មាន។ ការអ៊ិនកូដល្អនាំឲ្យបង្កើតម៉ូដែលល្អ។ + +សម្រាប់ feature encoding មានប្រភេទ encoder ពីរចម្បង៖ + +1. Ordinal encoder: សមស្របសម្រាប់អថេរអាគុយរបស់ ordinal ដែលជាកាតេកូរីដែលមានលំដាប់ដូចជា `Item Size` នៅក្នុង dataset របស់យើង។ វាបង្កើតផែនទីដែលរាល់កាតេកូរីត្រូវបានតំណាងដោយលេខ ដែលជាលំដាប់របស់កាតេកូរនោះនៅក្នុងកូឡុំ។ + + ```python + from sklearn.preprocessing import OrdinalEncoder + + item_size_categories = [['sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo']] + ordinal_features = ['Item Size'] + ordinal_encoder = OrdinalEncoder(categories=item_size_categories) + ``` + +2. Categorical encoder: សមស្របសម្រាប់អថេរអាគុយរបស់ nominal ដែលជាកាតេកូរីដែលមិនមានលំដាប់ដូចគ្នា ដូចជា លក្ខណៈផ្សេងទៀតក្រៅពី `Item Size` ក្នុង dataset របស់យើង។ វាជា one-hot encoding ដែលមានន័យថារាល់កាតេកូរត្រូវបានតំណាងដោយកូឡុំប៊ីណារី៖ អថេរអ៊ិនកូដស្មើនឹង 1 ប្រសិនបើ pumpkin ស្ថិតក្នុង Variety នោះ និង 0 មិនដល់។ + + ```python + from sklearn.preprocessing import OneHotEncoder + + categorical_features = ['City Name', 'Package', 'Variety', 'Origin'] + categorical_encoder = OneHotEncoder(sparse_output=False) + ``` +បន្ទាប់មក `ColumnTransformer` ត្រូវបានប្រើដើម្បីបញ្ចូល encoder ច្រើនទៅជាជំហានតែមួយ និងអនុវត្តលើកូឡុំដែលសមរម្យ។ + +```python + from sklearn.compose import ColumnTransformer + + ct = ColumnTransformer(transformers=[ + ('ord', ordinal_encoder, ordinal_features), + ('cat', categorical_encoder, categorical_features) + ]) + + ct.set_output(transform='pandas') + encoded_features = ct.fit_transform(pumpkins) +``` +ផ្ទៃផ្សេងទៀត សម្រាប់ encode ស្លាក label យើងប្រើថ្នាក់ `LabelEncoder` របស់ scikit-learn ដែលជាឧបករណ៍ជួយnormalize ស្លាកបែប ដែលធ្វើឲ្យមានតម្លៃក្នុងរកមួយពី 0 ដល់ n_classes-1 (នៅទីនេះ 0 និង 1)។ + +```python + from sklearn.preprocessing import LabelEncoder + + label_encoder = LabelEncoder() + encoded_label = label_encoder.fit_transform(pumpkins['Color']) +``` +បន្ទាប់ពី encode feature និង label រួច យើងអាចបញ្ចូលពួកវាទៅក្នុង dataframe ថ្មី `encoded_pumpkins`។ + +```python + encoded_pumpkins = encoded_features.assign(Color=encoded_label) +``` +✅ អត្ថប្រយោជន៍នៃការប្រើ ordinal encoder សម្រាប់កូឡុំ `Item Size` មានអ្វីខ្លះ? + +### វិភាគទំនាក់ទំនងរវាងអថេរ + +ឥឡូវនេះដែលយើងបានព្យាបាលទិន្នន័យជាមុនហើយ អាចវិភាគទំនាក់ទំនងរវាង feature និង label ដើម្បីយល់ពីថា ម៉ូដែលអាចទាយបានល្អប៉ុណ្ណា នៅពេលផ្តល់ចំណូលអថេរ។ +វិធីល្អបំផុតសម្រាប់វាយតម្លៃនេះគឺគំនូរ។ យើងនឹងប្រើមុខងារ catplot របស់ Seaborn វិញ ដើម្បីបង្ហាញទំនាក់ទំនងរវាង `Item Size`, `Variety` និង `Color` ក្នុងគំនូរសញ្ញាកាតេកូរី។ ដើម្បីបង្កើតគំនូរ យើងនឹងប្រើកូឡុំ `Item Size` ដែលបាន encode ហើយ និងកូឡុំ `Variety` មិនបាន encode។ + +```python + palette = { + 'ORANGE': 'orange', + 'WHITE': 'wheat', + } + pumpkins['Item Size'] = encoded_pumpkins['ord__Item Size'] + + g = sns.catplot( + data=pumpkins, + x="Item Size", y="Color", row='Variety', + kind="box", orient="h", + sharex=False, margin_titles=True, + height=1.8, aspect=4, palette=palette, + ) + g.set(xlabel="Item Size", ylabel="").set(xlim=(0,6)) + g.set_titles(row_template="{row_name}") +``` +![គំនូរ catplot ផ្ទាំងទិន្នន័យ](../../../../translated_images/km/pumpkins_catplot_2.87a354447880b388.webp) + +### ប្រើស្វាមប្រភេទគំនូរពណ៌ + +ព្រោះ Color ជាកាតេកូរពីរ (ពណ៌ស ឬ មិន) វាត្រូវការ '[វិធីពិសេស](https://seaborn.pydata.org/tutorial/categorical.html?highlight=bar) សម្រាប់ការមើលទិន្នន័យ'។ មានវិធីផ្សេងទៀតក្នុងការមើលទំនាក់ទំនងរបស់កាតេកូរនេះជាមួយអថេរផ្សេងទៀត។ + +អ្នកអាចមើលអថេរជាអ៊ុមណាមួយរាប់មុខជាមួយគំនូរ Seaborn។ + +1. សាកល្បងគំនូរស្វាម ដើម្បីបង្ហាញការចែកចាយតម្លៃ៖ + + ```python + palette = { + 0: 'orange', + 1: 'wheat' + } + sns.swarmplot(x="Color", y="ord__Item Size", data=encoded_pumpkins, palette=palette) + ``` + + ![គំនូរស្វាម](../../../../translated_images/km/swarm_2.efeacfca536c2b57.webp) + +**សូមប្រយ័ត្ន**: កូដខាងលើអាចបង្កើតសារព្រមាន ព្រោះ seaborn មិនអាចបង្ហាញចំណុចទិន្នន័យច្រើនប៉ុណ្ណោះក្នុងគំនូរស្វាមបានទេ។ ដំណោះស្រាយមួយគឺកាត់បន្ថយទំហំម៉ាកឯកសារ ដោយប្រើប៉ារ៉ាម៉ែត្រ 'size'។ ប៉ុន្តែសូមដឹងថា វានឹងប៉ះពាល់ទៅលើភាពអាចអាននៃគំនូរ។ + +> **🧮 បង្ហាញគណិតវិទ្យា** +> +> Logistic regression ពឹងផ្អែកលើគំនិត 'maximum likelihood' ដោយប្រើ [function sigmoid](https://wikipedia.org/wiki/Sigmoid_function)។ 'Sigmoid Function' នៅលើគំនូរមើលទៅដូចជារូប 'S'។ វាទទួលតម្លៃមួយហើយផ្គូរផ្គងឲ្យមានតម្លៃនៅចន្លោះ 0 និង 1។ ខ្សែវាក៏ហៅថា 'logistic curve'។ សមីការរូបនេះមានរូបរាងដូចខាងក្រោម៖ +> +> ![logistic function](../../../../translated_images/km/sigmoid.8b7ba9d095c789cf.webp) +> +> ដែល midpoint របស់ sigmoid មាននៅចំណុច x = 0, L ជាតម្លៃអតិបរមានៃខ្សែ, និង k ជាកម្រិតកាច់ជ្រាបនៃខ្សែ។ ប្រសិនបើលទ្ធផលនៃ function លើស 0.5 ស្លាកនោះនឹងត្រូវចាត់ថាជាប្រភេទ '1' នៃជម្រើសពីរ។ បើមិនបញ្ជាក់ នឹងចាត់ថាជាប្រភេទ '0'។ + +## បង្កើតម៉ូដែលរបស់អ្នក + +ការបង្កើតម៉ូដែលសម្រាប់រកចំណាត់ថ្នាក់ពីរនេះគឺងាយស្រួលក្នុង Scikit-learn។ + +[![ML for beginners - Logistic Regression for classification of data](https://img.youtube.com/vi/MmZS2otPrQ8/0.jpg)](https://youtu.be/MmZS2otPrQ8 "ML for beginners - Logistic Regression for classification of data") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូសង្ខេបស្តីពីការបង្កើតម៉ូដែល logistic regression + +1. ជ្រើសរើសអថេរដែលអ្នកចង់ប្រើនៅក្នុងម៉ូដែលចាត់ថ្នាក់ ហើយបំបែក training និង test ដោយហៅ `train_test_split()`៖ + + ```python + from sklearn.model_selection import train_test_split + + X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])] + y = encoded_pumpkins['Color'] + + X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) + + ``` + +2. ឥឡូវអ្នកអាចបណ្តុះម៉ូដែលដោយហៅ `fit()` ជាមួយទិន្នន័យ training ហើយបោះពុម្ពលទ្ធផលរបស់វា៖ + + ```python + from sklearn.metrics import f1_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('F1-score: ', f1_score(y_test, predictions)) + ``` + + មើលទៅក្រឡា scoreboard របស់ម៉ូដែលអ្នក។ វាមិនអាក្រាតទេ បើគិតថាអ្នកមានត្រឹមប្រហែល 1000 ជួរទិន្នន័យប៉ុណ្ណោះ៖ + + ```output + precision recall f1-score support + + 0 0.94 0.98 0.96 166 + 1 0.85 0.67 0.75 33 + + accuracy 0.92 199 + macro avg 0.89 0.82 0.85 199 + weighted avg 0.92 0.92 0.92 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 1 0 0 0 0 0 0 0 0 1 0 0 0 0 + 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 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 1 0 0 0 0 0 0 0 0 1 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 1 0 0 0 0 0 0 0 0 1 0 0 0 1 1 0 + 0 0 0 0 1 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 1 + 0 0 0 1 0 0 0 0 0 0 0 0 1 1] + F1-score: 0.7457627118644068 + ``` + +## យល់បានល្អជាងគេតាមរយៈ confusion matrix + +លោកអាចទទួលបានរបាយការណ៍ scoreboard ដោយបោះពុម្ពវត្ថុខាងលើ [terms](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html?highlight=classification_report#sklearn.metrics.classification_report) ប៉ុន្តែអ្នកអាចយល់ម៉ូដែលបានលឿនជាងដោយប្រើ [confusion matrix](https://scikit-learn.org/stable/modules/model_evaluation.html#confusion-matrix) ដើម្បីយល់ពីប្រសិទ្ធិភាពម៉ូដែល។ + +> 🎓 '[confusion matrix](https://wikipedia.org/wiki/Confusion_matrix)' (ឬ 'error matrix') ជាតារាងបង្ហាញពីការធ្វើត្រឹមត្រូវ និងមិនត្រឹមត្រូវនៃការទាយរបស់ម៉ូដែល ដូច្នេះវាផ្តល់ការវាយតម្លៃភាពត្រឹមត្រូវនៃទាយទំនាក់ទំនង។ + +1. ដើម្បីប្រើ confusion matrix, ហៅ `confusion_matrix()`៖ + + ```python + from sklearn.metrics import confusion_matrix + confusion_matrix(y_test, predictions) + ``` + + មើលទៅ confusion matrix របស់ម៉ូដែលអ្នក៖ + + ```output + array([[162, 4], + [ 11, 22]]) + ``` + +នៅក្នុង Scikit-learn, ជួរដេក (axis 0) ជាស្លាកពិត និងជួរឈរ (axis 1) ជាស្លាកទាយ។ + +| | 0 | 1 | +| :---: | :---: | :---: | +| 0 | TN | FP | +| 1 | FN | TP | + +អ្វីកើតឡើងនៅទីនេះ? យើងនិយាយថាម៉ូដែលត្រូវបានសួរឲ្យចាត់ថ្នាក់ pumpkin រវាងប៉ារងពីរគឺ 'ពណ៌ស' និង 'មិនពណ៌ស'។ + +- ប្រសិនបើម៉ូដែលអ្នកទាយថា pumpkin មិនមែនពណ៌ស និងនៅពិតកម្មវិធីជាក្រុម 'មិនពណ៌ស', យើងហៅនេះថា true negative ដែលបង្ហាញដោយលេខខាងលើឆ្វេង។ +- ប្រសិនបើម៉ូដែលទាយថា pumpkin ជាពណ៌ស ប៉ុន្តែពិតជាក្នុងក្រុម 'មិនពណ៌ស' យើងហៅថា false negative ដែលបង្ហាញដោយលេខខាងក្រោមឆ្វេង។ +- ប្រសិនបើម៉ូដែលទាយថា pumpkin មិនមែនពណ៌ស ប៉ុន្តែពិតជា 'ពណ៌ស', យើងហៅថា false positive ដែលបង្ហាញដោយលេខខាងលើស្តាំ។ +- ប្រសិនបើម៉ូដែលទាយថា pumpkin ជាពណ៌ស ហើយពិតជា 'ពណ៌ស', យើងហៅថា true positive ដែលបង្ហាញដោយលេខខាងក្រោមស្តាំ។ +យ៉ាងដែលអ្នកអាចបានគិត មុននេះវាជាការល្អបំផុតក្នុងការមានចំនួន TP (true positives) និង TN (true negatives) ច្រើន ហើយមានចំនួន FP (false positives) និង FN (false negatives) តិច ដែលបង្ហាញថាម៉ូដែលមានប្រសិទ្ធភាពល្អជាង។ + +តើ matrix រញ្ជួយទាក់ទងទៅនឹង precision និង recall យ៉ាងដូចម្តេច? ចូរចងចាំថា របាយការណ៍ចាត់ថ្នាក់ដែលបានបោះពុម្ពនៅលើ បានបង្ហាញពី precision (0.85) និង recall (0.67)។ + +Precision = tp / (tp + fp) = 22 / (22 + 4) = 0.8461538461538461 + +Recall = tp / (tp + fn) = 22 / (22 + 11) = 0.6666666666666666 + +✅ សំនួរ៖ យោងតាម matrix រញ្ជួយ ម៉ូដែលបានធ្វើការយ៉ាងដូចម្ដេច? ដាច់ចិត្ត៖ មិនអាក្រក់ទេ; មានចំនួន true negatives ច្រើនល្អ ប៉ុន្តែនៅតែមួយចំនួន false negatives ផងដែរ។ + +ចូលទៅវិញវិលទស្សនា លក្ខណៈដែលយើងបានឃើញពីមុន ជាមួយនឹងជំនួយកំណត់ទីតាំង TP/TN និង FP/FN នៃ matrix រញ្ជួយ៖ + +🎓 Precision: TP/(TP + FP) ភាគរយនៃករណីដែលពាក់ទាក់ទងក្នុងចំណោមករណីដែលបានយក (ឧ. ស្លាកណាដែលត្រូវបានស្លាកបានល្អ) + +🎓 Recall: TP/(TP + FN) ភាគរយនៃករណីដែលពាក់ទាក់ទង ដែលត្រូវបានយក មិនថាត្រូវបានស្លាកបានល្អឬអត់ + +🎓 f1-score: (2 * precision * recall)/(precision + recall) មធ្យម តុល្យភាពនៃ precision និង recall ដែលល្អបំផុតគឺ 1 និងអាក្រក់បំផុតគឺ 0 + +🎓 Support: ចំនួនករណីនៃស្លាកនីមួយៗដែលបានយក + +🎓 Accuracy: (TP + TN)/(TP + TN + FP + FN) ភាគរយនៃស្លាកដែលបានទំនាក់ទំនងត្រឹមត្រូវសម្រាប់គំរូ។ + +🎓 Macro Avg: ការគណនាតម្លៃមធ្យមប្រាក់មិនបង្គបង់សម្រាប់ស្លាកនីមួយៗ ដោយមិនគិតពីភាពមិនសមរម្យនៃស្លាក។ + +🎓 Weighted Avg: ការគណនាតម្លៃមធ្យមសម្រាប់ស្លាកនីមួយៗ ដោយទុកចិត្តលើភាពមិនសមរម្យនៃស្លាកដោយវាស់តំលៃតាមកម្រិតស្នេះ (ចំនួនករណីសព្វថ្ងៃសម្រាប់ស្លាកនីមួយៗ)។ + +✅ តើអ្នកគិតថាតម្លៃណាមួយដែលអ្នកគួរតែនៅត្រួតពិនិត្យ ប្រសិនបើអ្នកចង់ឲ្យម៉ូដែលរបស់អ្នកបន្ថយចំនួន false negatives? + +## បង្ហាញរាងកោង ROC របស់ម៉ូដែលនេះ + +[![ML for beginners - Analyzing Logistic Regression Performance with ROC Curves](https://img.youtube.com/vi/GApO575jTA0/0.jpg)](https://youtu.be/GApO575jTA0 "ML for beginners - Analyzing Logistic Regression Performance with ROC Curves") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូចំលងខ្លីអំពីរាងកោង ROC + +យើងចាំបាច់ត្រូវធ្វើបង្ហាញមួយទៀត ដើម្បីមើលរាងកោងដែលហៅថា ‘ROC’៖ + +```python +from sklearn.metrics import roc_curve, roc_auc_score +import matplotlib +import matplotlib.pyplot as plt +%matplotlib inline + +y_scores = model.predict_proba(X_test) +fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1]) + +fig = plt.figure(figsize=(6, 6)) +plt.plot([0, 1], [0, 1], 'k--') +plt.plot(fpr, tpr) +plt.xlabel('False Positive Rate') +plt.ylabel('True Positive Rate') +plt.title('ROC Curve') +plt.show() +``` + +ប្រើ Matplotlib ដើម្បីគូររាងកោង [Receiving Operating Characteristic](https://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html?highlight=roc) ឬ ROC របស់ម៉ូដែល។ រាងកោង ROC ត្រូវបានប្រើជាញឹកញាប់ដើម្បីមើលលទ្ធផលរបស់ម៉ាស៊ីនចាត់ថ្នាក់ក្នុងការប្រៀបធៀបចំណុច positive ត្រឹមត្រូវ និង false positives។ "រាងកោង ROC ជាធម្មតាបង្ហាញអត្រា true positive នៅលើអ័ក្ស Y ហើយ false positive នៅលើអ័ក្ស X"។ ដូច្នេះ, ភាពខ្ពស់របស់រាងកោង និងចន្លោះរវាងខ្សែ​បន្ទាត់កណ្តាល និងរាងកោងសំខាន់នឹង៖ អ្នកចង់បានរាងកោងមួយរំកិលឡើងលឿន ហើយឆ្លងកាត់ខ្សែបន្ទាត់។ ក្នុងករណីរបស់យើង there are false positives to start with, and then the line heads up and over properly: + +![ROC](../../../../translated_images/km/ROC_2.777f20cdfc4988ca.webp) + +ចុងក្រោយ ប្រើ Scikit-learn’s [`roc_auc_score` API](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.roc_auc_score.html?highlight=roc_auc#sklearn.metrics.roc_auc_score) ដើម្បីគណនាតម្លៃពិតប្រាកដ 'ផ្ទៃក្រោមរាងកោង' (AUC)៖ + +```python +auc = roc_auc_score(y_test,y_scores[:,1]) +print(auc) +``` + លទ្ធផលគឺ `0.9749908725812341`។ ពីព្រោះ AUC មានតម្លៃចន្លោះពី 0 ដល់ 1, អ្នកចង់បានពិន្ទុធំ ព្រោះម៉ូដែលដែលត្រឹមត្រូវ 100% នឹងមាន AUC ដល់ 1; ក្នុងករណីនេះ ម៉ូដែលនេះគឺ _ល្អជាងមធ្យម_។ + +នៅមុខ បង្រៀននាពេលក្រោយអំពីចំណាត់ថ្នាក់ អ្នកនឹងរៀនពីរបៀបធ្វើ iteration ដើម្បីបង្កើនពិន្ទុម៉ូដែល។ ប៉ុន្តាសម្រាប់ពេលនេះ សូមអបអរសាទរ! អ្នកបានបញ្ចប់មេរៀន regression ទាំងនេះហើយ! + +--- +## 🚀 ការប្រកួតប្រជែង + +មានអ្វីដែលត្រូវស្វែងយល់បន្ថែមទៀតអំពី logistic regression! ប៉ុន្តារបៀបល្អបំផុតក្នុងការរៀន គឺធ្វើតេស្ត។ ស្វែងរក dataset មួយដែលសមនឹងការវិភាគប្រភេទនេះ ហើយបង្កើតម៉ូដែលជាមួយវា។ តើអ្នកបានរៀនអ្វីខ្លះ? ជំនួយ៖ ព្យាយាម [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) សម្រាប់ dataset ដែលគួរឱ្យចាប់អារម្មណ៍។ + +## [តេស្តក្រោយមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## សារសង្ខេប និង អប់រំបន្ថែម + +អានទំព័រដើមខ្លះៗ នៃ [ឯកសារនេះពីស្ថានីយ៍ Stanford](https://web.stanford.edu/~jurafsky/slp3/5.pdf) អំពីការប្រើប្រាស់ប្រក្រតីមួយចំនួនសម្រាប់ logistic regression។ ស្វែករកភារកិច្ចណាដែលសមស្របសម្រាប់ប្រភេទ regression មួយឬមួយផ្សេងទៀត ដែលយើងបានរៀនរហូតដល់ពេលនេះ។ តើអ្វីដែលនឹងដំណើរការល្អបំផុត? + +## បេសកកម្ម + +[Retrying this regression](assignment.md) + +--- + + +**ការព្រមាន**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមាតុភូមិគួរត្រូវបានចាត់ទុកជាមូលដ្ឋានដែលមានសិទ្ធិ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សគឺត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីរណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/4-Logistic/assignment.md b/translations/km/2-Regression/4-Logistic/assignment.md new file mode 100644 index 000000000..d73fafdb8 --- /dev/null +++ b/translations/km/2-Regression/4-Logistic/assignment.md @@ -0,0 +1,17 @@ +# ព្យាយាមម្តងទៀតក្នុងការធ្វើ Regression + +## សេចក្ដីណែនាំ + +ក្នុងមេរៀននេះ អ្នកបានប្រើទិន្នន័យផ្នែកខាងក្រោមរបស់ទិន្នន័យកំបោរមួយ។ ឥឡូវ សូមត្រឡប់ទៅកាន់ទិន្នន័យដើម ហើយព្យាយាមប្រើទាំងអស់ រួចធ្វើការសម្អាត និងធ្វើឲ្យស្តង់ដាទៅ មួយដើម្បីបង្កើតម៉ូដែល Logistic Regression ។ +## មាតិកាប្រវត្តិ + +| កត្តា | ល្អឥតខ្ចោះ | គ្រប់គ្រាន់ | ត្រូវការកែប្រែកាន់តែប្រសើរ | +| -------- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- | +| | មានសៀវភៅកែរាប់រៀបរាប់ម៉ូដែលដែលមានការពន្យល់ល្អ និងសមត្ថភាពល្អ | មានសៀវភៅមួយដែលបង្ហាញម៉ូដែលដែលមានសមត្ថភាពតិចតួច | មានសៀវភៅមួយដែលបង្ហាញម៉ូដែលដែលមានសមត្ថភាពតិចឬមិនមានសមត្ថភាព | + +--- + + +**ការបញ្ជាក់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំធ្វើយុត្តិធម៌ភាព សូមយកចិត្តទុកដាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការខុសប្លែកខ្លះៗ។ ឯកសារដើមដែលមានភាសាមាតុភូមិគួរត្រូវបានគិតថាជា מקורគ្រប់គ្រង។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យប្រើការបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបញ្ចេញពីការប្រើប្រាស់ការបកប្រែនេះនោះឡើយ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/4-Logistic/notebook.ipynb b/translations/km/2-Regression/4-Logistic/notebook.ipynb new file mode 100644 index 000000000..5867fe6a8 --- /dev/null +++ b/translations/km/2-Regression/4-Logistic/notebook.ipynb @@ -0,0 +1,263 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ប្រភេទកន្ទុយសាំង និងពណ៌\n", + "\n", + "ផ្ទុកបណ្ណាល័យដែលត្រូវការ និងទិន្នន័យ។ បម្លែងទិន្នន័យទៅជា dataframe ដែលមានផ្នែកខ្លះនៃទិន្នន័យ៖\n", + "\n", + "ពិចារណាខ្សែទំនាក់ទំនងរវាងពណ៌និងប្រភេទ\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
City NameTypePackageVarietySub VarietyGradeDateLow PriceHigh PriceMostly Low...Unit of SaleQualityConditionAppearanceStorageCropRepackTrans ModeUnnamed: 24Unnamed: 25
0BALTIMORENaN24 inch binsNaNNaNNaN4/29/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
1BALTIMORENaN24 inch binsNaNNaNNaN5/6/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
2BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
3BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
4BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN11/5/1690.0100.090.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
\n", + "

5 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " City Name Type Package Variety Sub Variety Grade Date \\\n", + "0 BALTIMORE NaN 24 inch bins NaN NaN NaN 4/29/17 \n", + "1 BALTIMORE NaN 24 inch bins NaN NaN NaN 5/6/17 \n", + "2 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n", + "3 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n", + "4 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 11/5/16 \n", + "\n", + " Low Price High Price Mostly Low ... Unit of Sale Quality Condition \\\n", + "0 270.0 280.0 270.0 ... NaN NaN NaN \n", + "1 270.0 280.0 270.0 ... NaN NaN NaN \n", + "2 160.0 160.0 160.0 ... NaN NaN NaN \n", + "3 160.0 160.0 160.0 ... NaN NaN NaN \n", + "4 90.0 100.0 90.0 ... NaN NaN NaN \n", + "\n", + " Appearance Storage Crop Repack Trans Mode Unnamed: 24 Unnamed: 25 \n", + "0 NaN NaN NaN E NaN NaN NaN \n", + "1 NaN NaN NaN E NaN NaN NaN \n", + "2 NaN NaN NaN N NaN NaN NaN \n", + "3 NaN NaN NaN N NaN NaN NaN \n", + "4 NaN NaN NaN N NaN NaN NaN \n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "full_pumpkins = pd.read_csv('../data/US-pumpkins.csv')\n", + "\n", + "full_pumpkins.head()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការព្រមាន**៖ \nឯកសារនេះត្រូវបានបកប្រែជាភាសាខ្មែរដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំផ្តោតលើភាពត្រឹមត្រូវ ក៏សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវបានចងក្រង។ ឯកសារដើមក្នុងភាសាតិជាតិគួរត្រូវបានគេទទួលស្គាល់ថាជាអ្នកផ្តល់ព័ត៌មានដ៏ពិតប្រាកដ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការពន្យល់ខុសបាត់ពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.1" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/2-Regression/4-Logistic/solution/Julia/README.md b/translations/km/2-Regression/4-Logistic/solution/Julia/README.md new file mode 100644 index 000000000..a2481c398 --- /dev/null +++ b/translations/km/2-Regression/4-Logistic/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាទីតាំងបញ្ចូលបណ្ដោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងឲ្យមានភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដោយភាសាដើមគួរត្រូវបានគេចាត់ទុកជាអ្នកផ្តល់ព័ត៌មានដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានពិសេស សូមណែនាំឲ្យប្រើការបកប្រែដោយមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសប្លែកណាមួយ ដោយសារការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/2-Regression/4-Logistic/solution/R/lesson_4-R.ipynb b/translations/km/2-Regression/4-Logistic/solution/R/lesson_4-R.ipynb new file mode 100644 index 000000000..b35dc4b0a --- /dev/null +++ b/translations/km/2-Regression/4-Logistic/solution/R/lesson_4-R.ipynb @@ -0,0 +1,681 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## សង់ម៉ូឌែល logistic regression - មេរៀនទី 4\n", + "\n", + "![Logistic vs. linear regression infographic](../../../../../../translated_images/km/linear-vs-logistic.ba180bf95e7ee667.webp)\n", + "\n", + "#### **[សំណួរពិភាក្សា មុនមេរៀន](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/15/)**\n", + "\n", + "#### បម្រែបម្រួល\n", + "\n", + "នៅក្នុងមេរៀនចុងក្រោយនេះ ពាក់ព័ន្ធនឹង Regression វិធីសាស្រ្ត ML មូលដ្ឋាន *ជា classic* មួយ យើងនឹងពិចារណាត្រឹម Logistic Regression។ អ្នកនឹងប្រើវិធីនេះ ដើម្បីរកឃើញលំនាំក្នុងការព្យាករណ៍ប្រភេទពីរជារូបធាតុ។ តើភីតកន្ត្រៃនេះជាឆកូឡាទរឬទេ? តើជំងឺនេះអាចឆ្លងទៅបានរឺទេ? តើអតិថិជននេះនឹងជ្រើសរើសផលិតផលនេះ រឺទេ?\n", + "\n", + "ក្នុងមេរៀននេះ អ្នកនឹងរៀនពី៖\n", + "\n", + "- វិធីសាស្រ្តសម្រាប់ logistic regression\n", + "\n", + "✅ ពង្រឹងការយល់ដឹងអំពីការដំណើរការជាមួយ regression ប្រភេទនេះក្នុង [មូឌុលសិក្សានេះ](https://learn.microsoft.com/training/modules/introduction-classification-models/?WT.mc_id=academic-77952-leestott)\n", + "\n", + "## ប្រភេទខ្លឹមសារ\n", + "\n", + "បន្ទាប់ពីបានធ្វើការងារជាមួយទិន្នន័យដំបង pumpkin ហើយ ឥឡូវនេះយើងសម្រេចចិត្តបានថា មានប្រភេទពីរមួយដែលយើងអាចប្រើបានគឺ៖ `Color`។\n", + "\n", + "តោះបង្កើតម៉ូឌែល logistic regression ដើម្បីព្យាករណ៍ថា នៅពេលមានអថេរមួយចំនួន *ប pumpkin មួយនឹងមានពណ៌អ្វី* (ទឹកដោះគោ orange 🎃 រឺសဖြူ 👻)។\n", + "\n", + "> ហេតុអ្វីយើងពិភាក្សាអំពីចំណាត់ថ្នាក់ពីរនៅក្នុងមេរៀនដែលជាការប្រមូលផ្តុំ regression? ដោយសារតែភាពងាយស្រួលផ្នែកភាសា ប្រភេទ logistic regression គឺ [ជាវិធីសាស្រ្តចំណាត់ថ្នាក់](https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression) មួយ ដែលអាស្រ័យលើរៀបរាប់តាមខ្សែ។ រៀនពីវិធីផ្សេងទៀតក្នុងការចាត់ថ្នាក់ទិន្នន័យនៅក្នុងក្រុមមេរៀនបន្ទាប់។\n", + "\n", + "សម្រាប់មេរៀននេះ យើងត្រូវការពាក្យបណ្ណៈដូចខាងក្រោម៖\n", + "\n", + "- `tidyverse`: [tidyverse](https://www.tidyverse.org/) គឺ [បណ្ណាល័យ R មួយ](https://www.tidyverse.org/packages) ដែលបានរចនាឡើងដើម្បីអោយផ្នែកវិទ្យាសាស្រ្តទិន្នន័យមានល្បឿនលឿនឡើង សាមញ្ញ និងមានភាពរីករាយ!\n", + "\n", + "- `tidymodels`: ជា [ស៊ុមបណ្ណាល័យ](https://www.tidymodels.org/packages/) សម្រាប់ម៉ូឌែល និងការសិក្សាម៉ាស៊ីន។\n", + "\n", + "- `janitor`: [janitor package](https://github.com/sfirke/janitor) ផ្តល់ឧបករណ៍តូចៗសម្រាប់ពិនិត្យ និងសំអាតទិន្នន័យដែលខូច។\n", + "\n", + "- `ggbeeswarm`: [ggbeeswarm package](https://github.com/eclarke/ggbeeswarm) ផ្តល់វិធីសាស្រ្តបង្កើតកំណត់ត្រាបែប beeswarm ដោយប្រើ ggplot2។\n", + "\n", + "អ្នកអាចដំឡើងវាទាំងនេះដោយ៖\n", + "\n", + "`install.packages(c(\"tidyverse\", \"tidymodels\", \"janitor\", \"ggbeeswarm\"))`\n", + "\n", + "ជម្រើសមួយទៀត ស្គ្រីបខាងក្រោមនេះពិនិត្យថា តើអ្នកមានបណ្ណាល័យដែលចាំបាច់ដើម្បីបញ្ចប់មូឌុលនេះហើយទេ ហើយវានឹងដំឡើងបណ្ណាល័យក្នុងករណីវាពិបាកឃើញ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "suppressWarnings(if (!require(\"pacman\"))install.packages(\"pacman\"))\n", + "\n", + "pacman::p_load(tidyverse, tidymodels, janitor, ggbeeswarm)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## **កំណត់សំណួរ**\n", + "\n", + "សម្រាប់គោលបំណងរបស់យើង យើងនឹងបញ្ចេញវាឲ្យជាជម្រើសពីរមាន: 'ពណ៌ស' ឬ 'មិនពណ៌ស'។ ក៏មានប្រភេទ 'ដែលមានរបារ' នៅក្នុងទិន្នន័យរបស់យើង ប៉ុន្តែមានករណីតិចប៉ុណ្ណោះ ដូច្នេះយើងមិនប្រើវាទេ។ វារលាយបាត់បង់បើយើងលុបតម្លៃទទេចេញពីទិន្នន័យ។\n", + "\n", + "> 🎃 ព័ត៌មានរីករាយ ម្តងពីម្តង យើងហៅពិដានពណ៌សថា 'ពិដានព្រាហ្ម', ព្រាហ្មមិនងាយស្រូបរមាំង ដូច្នេះវាមិនពេញនិយមដូចពិដានពណ៌ទឹកក្រូចទេ ប៉ុន្តែវាមើលទៅត្រជាក់! ដូច្នេះយើងអាចកែសម្រួលសំណួររបស់យើងថា៖ 'ព្រាហ្ម' ឬ 'មិនព្រាហ្ម' ក៏បាន។ 👻\n", + "\n", + "## **អំពីការវិលត្រឡប់លូជីស្ទិច**\n", + "\n", + "ការវិលត្រឡប់លូជីស្ទិចខុសពីការវិលត្រឡប់បន្ទាត់ ដែលអ្នកបានរៀនពីមុន លើកលែងមានប្រែប្រួលសំខាន់ខ្លះ។\n", + "\n", + "#### **ចាត់ថ្នាក់ពីរជម្រើស**\n", + "\n", + "ការវិលត្រឡប់លូជីស្ទិចមិនមានលក្ខណៈដូចការវិលត្រឡប់បន្ទាត់ទេ។ វាជាការព្យាករណ៍អំពី `ចំណាត់ការទ្វេចមحدد` (\"ពណ៌ទឹកក្រូចឬមិនមែនពណ៌ទឹកក្រូច\") ខណៈដែលអាចព្យាករណ៍បានជាមួយ `តម្លៃបន្តបន្ទាប់` នៅក្នុងការវិលត្រឡប់បន្ទាត់ ដូចជាករណីផ្អែកលើប្រភពដើមនៃពិដាន និងពេលវេលាកាប់ដាំ *តម្លៃរបស់វានឹងកើនឡើងប៉េកលើកមុន*។\n", + "\n", + "![Infographic by Dasani Madipalli](../../../../../../translated_images/km/pumpkin-classifier.562771f104ad5436.webp)\n", + "\n", + "### ចំណាត់ថ្នាក់ផ្សេងៗ\n", + "\n", + "មានប្រភេទការវិលត្រឡប់លូជីស្ទិចផ្សេងទៀត រួមមានលក្ខណៈពហុបុព្វ និងអ័រដីនាល:\n", + "\n", + "- **ពហុបុព្វ** ដែលមានចំណាត់ថ្នាក់ច្រើនជាងមួយ - \"ពណ៌ទឹកក្រូច ពណ៌ស និងដែលមានរបារ\"។\n", + "\n", + "- **អ័រដីនាល** ដែលមានចំណាត់ថ្នាក់តាមលំដាប់ ដែលមានប្រយោជន៍បើចង់តម្រៀបលទ្ធផលយ៉ាង​មាន​ទ្រឹស្តី ដូចជាពិដានរបស់យើងដែលតម្រៀបតាមទំហំដាច់ដោយឡែក (តូចខ្នាតតូចមធ្យមធំធំដល់ធំបំផុត)។\n", + "\n", + "![Multinomial vs ordinal regression](../../../../../../translated_images/km/multinomial-vs-ordinal.36701b4850e37d86.webp)\n", + "\n", + "#### **អថេរមិនចាំបាច់ត្រូវត្រូវគ្នា**\n", + "\n", + "ចងចាំថាការវិលត្រឡប់បន្ទាត់ដំណើរការល្អជាមួយអថេរដែលមានទំនាក់ទំនងល្អបន្ថែមទៀត? ការវិលត្រឡប់លូជីស្ទិចវិញគឺផ្ទុយគ្នា - អថេរកុំពុំចាំបាច់ត្រូវគ្នាទេ។ នេះសមនឹងទិន្នន័យនេះដែលមានទំនាក់ទំនងខ្សោយបន្តិច។\n", + "\n", + "#### **អ្នកត្រូវការទិន្នន័យស្អាតច្រើន**\n", + "\n", + "ការវិលត្រឡប់លូជីស្ទិចនឹងផ្តល់លទ្ធផលមានភាពត្រឹមត្រូវប្រសើរជាងនេះបើអ្នកប្រើទិន្នន័យច្រើន។ ទិន្នន័យតូចរបស់យើងមិនល្អសម្រាប់បំណងនេះទេ ដូច្នេះសូមចងចាំរឿងនេះ។\n", + "\n", + "✅ សូមគិតថាទិន្នន័យប្រភេទណាដែលសមស្របសម្រាប់ការវិលត្រឡប់លូជីស្ទិច\n", + "\n", + "## កម្រិតហាត់ - រៀបចំទិន្នន័យ\n", + "\n", + "ចាប់ផ្តើម ជម្រះទិន្នន័យអោយបានស្អាតបន្តិច ដោយលុបតម្លៃទទេ និងជ្រើសរើសកូឡុំនៅខ្លះប៉ុណ្ណា៖\n", + "\n", + "1. បញ្ចូលកូដដូចខាងក្រោម៖\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Load the core tidyverse packages\n", + "library(tidyverse)\n", + "\n", + "# Import the data and clean column names\n", + "pumpkins <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/2-Regression/data/US-pumpkins.csv\") %>% \n", + " clean_names()\n", + "\n", + "# Select desired columns\n", + "pumpkins_select <- pumpkins %>% \n", + " select(c(city_name, package, variety, origin, item_size, color)) \n", + "\n", + "# Drop rows containing missing values and encode color as factor (category)\n", + "pumpkins_select <- pumpkins_select %>% \n", + " drop_na() %>% \n", + " mutate(color = factor(color))\n", + "\n", + "# View the first few rows\n", + "pumpkins_select %>% \n", + " slice_head(n = 5)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "អ្នកអាចតែងតែស្ទាក់មើល dataframe ថ្មីរបស់អ្នកបានជានិច្ច ដោយប្រើកម្មវិធី [*glimpse()*](https://pillar.r-lib.org/reference/glimpse.html) ដូចខាងក្រោម៖\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "pumpkins_select %>% \n", + " glimpse()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ចង់​បញ្ជាក់​ថា​យើង​នឹង​ធ្វើ​បញ្ហាកំណត់ចំណាត់ថ្នាក់​ដោយ​ប្រើ​ទិន្នន័យ​បីណារី​ពិតប្រាកដៈ\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Subset distinct observations in outcome column\n", + "pumpkins_select %>% \n", + " distinct(color)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ការមើលឃើញ - ផ្ទាំងប្រភេទ\n", + "ឥឡូវនេះអ្នកបានបញ្ចូលទិន្នន័យម្ទេសម្តងទៀតហើយបានសម្អាតវាដើម្បីរក្សាទុកឈុតទិន្នន័យដែលមានអថេរច្រើនមួយចំនួន រួមមានពណ៌។ យើងចង់បង្ហាញទិន្នន័យនេះក្នុងសៀវភៅកំណត់ត្រាដោយប្រើបណ្ណាលិខិត ggplot។\n", + "\n", + "បណ្ណាលិខិត ggplot ផ្តល់ជម្រើសដ៏ល្អសម្រាប់ការមើលឃើញទិន្នន័យរបស់អ្នក។ ឧទាហរណ៍ អ្នកអាចប្រៀបធៀបទឹកប្រាក់ចែកចាយនៃទិន្នន័យសម្រាប់ Variety និង Color នីមួយៗក្នុងផ្ទាំងប្រភេទ។\n", + "\n", + "1. បង្កើតផ្ទាំងដូចនេះដោយប្រើមុខងារ geombar ដោយប្រើទិន្នន័យម្ទេសរបស់យើង ហើយកំណត់ការកំណត់ពណ៌សម្រាប់ប្រភេទម្ទេសនីមួយៗ (ទឹកក្រូច ឬ ស):\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "python" + } + }, + "outputs": [], + "source": [ + "# Specify colors for each value of the hue variable\n", + "palette <- c(ORANGE = \"orange\", WHITE = \"wheat\")\n", + "\n", + "# Create the bar plot\n", + "ggplot(pumpkins_select, aes(y = variety, fill = color)) +\n", + " geom_bar(position = \"dodge\") +\n", + " scale_fill_manual(values = palette) +\n", + " labs(y = \"Variety\", fill = \"Color\") +\n", + " theme_minimal()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ដោយសង្កេតទិន្នន័យ អ្នកអាចឃើញថាតើទិន្នន័យពណ៌ទាក់ទងដូចម្តេចទៅនឹងប្រភេទ។ \n", + "\n", + "✅ នៅពេលមានគំនូសតាងប្រភេទនេះ តើអ្នកអាចរំពឹងទុកការស្វែងរកដែលមានអត្ថន័យអ្វីខ្លះ?\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### ការប្រមូលទិន្នន័យមុនកម្រិត៖ ការកូដលក្ខណៈពិសេស\n", + "\n", + "ឃ្លាំងទិន្នន័យទុក្ខប៉ូលប៊ីរបស់យើងមានតម្លៃខ្សែអក្សរសម្រាប់ជួរឈរទាំងអស់របស់វា។ ការធ្វើការជាមួយទិន្នន័យប្រភេទបញ្ជីគឺងាយស្រួលសម្រាប់មនុស្ស ប៉ុន្តែមិនសម្រាប់ម៉ាស៊ីនទេ។ អាល់ហ្គរីធម៍ការសិក្សាម៉ាស៊ីនដំណើរការល្អជាមួយលេខ។ ដូច្នេះហើយការកូដខ្លឹមសារជាជំហានសំខាន់ខ្លាំងក្នុងដំណាក់កាលការប្រមូលទិន្នន័យមុនកម្រិត ពីព្រោះវាអាចផ្លាស់ប្ដូរទិន្នន័យប្រភេទបញ្ជីទៅជាទិន្នន័យលេខបាន ដោយគ្មានការបាត់បង់ព័ត៌មានណាមួយឡើយ។ ការកូដល្អនាំឲ្យបង្កើតម៉ូដែលល្អបាន។\n", + "\n", + "សម្រាប់ការកូដលក្ខណៈពិសេស មានអ្នកកូដពីរប្រភេទសំខាន់ៗ៖\n", + "\n", + "1. អ្នកកូដលំដាប់៖ វាសមស្របសម្រាប់អថេរលំដាប់ ដែលជាអថេរបញ្ជីដែលទិន្នន័យរបស់ពួកវាមានលំដាប់ត្រឹមត្រូវ ដូចជា ជួរឈរ `item_size` ក្នុងឃ្លាំងទិន្នន័យរបស់យើង។ វាបង្កើតការផ្គូផ្គង ដែលប្រភេទនីមួយៗត្រូវបានតំណាងដោយលេខ ដែលជាលំដាប់នៃប្រភេទនៅក្នុងជួរឈរ។\n", + "\n", + "2. អ្នកកូដប្រភេទបញ្ជី៖ វាសមស្របសម្រាប់អថេរការដែលគ្មានលំដាប់ត្រឹមត្រូវ ដែលជាអថេរបញ្ជីដែលទិន្នន័យរបស់ពួកវាមិនមានលំដាប់ត្រឹមត្រូវ ដូចជាលក្ខណៈទាំងអស់ដែលខុសពី `item_size` នៅក្នុងឃ្លាំងទិន្នន័យរបស់យើង។ វាជាការកូដមួយ-កំឡុង (one-hot encoding) មានន័យថាប្រភេទនីមួយៗត្រូវបានតំណាងដោយជួរឈរកូដពីរ (binary column): អថេរកូដមានតម្លៃស្មើ 1 ប្រសិនបើទុក្ខប៉ូលប៊ីផ принадлежности ដល់ Variety នោះ និង 0 បើមិនទេ។\n", + "\n", + "Tidymodels ផ្តល់ជូនកញ្ចប់មួយទៀតដែលល្អ៖ [recipes](https://recipes.tidymodels.org/) - ជាកញ្ចប់សម្រាប់ការប្រមូលទិន្នន័យមុនកម្រិត។ យើងនឹងកំណត់ `recipe` ដែលបញ្ជាក់ថាជួរឈរព្យាករ (predictor columns) ទាំងអស់គួរត្រូវបានកូដទៅជាសំណុំលេខគត់, `prep` វាដើម្បីពិនិត្យគណនាភាគរយនិងស្ថិតិដែលត្រូវការដោយប្រតិទានណាមួយ ហើយចុងក្រោយ `bake` ដើម្បីអនុវត្តគណនាដល់ទិន្នន័យថ្មី។\n", + "\n", + "> ជាធម្មតា recipes ត្រូវបានប្រើជាឧបករណ៍ពិនិត្យមុនសម្រាប់ម៉ូដែល ដែលវាដាក់បញ្ជីថាតើជំហានអ្វីគួរត្រូវអនុវត្តទៅលើឃ្លាំងទិន្នន័យដើម្បីទទួលបានវាសម្រាប់ម៉ូដែល។ ក្នុងករណីនេះ វា **សូមផ្ដល់អនុសាសន៍យ៉ាងខ្លាំង** អោយអ្នកប្រើជា `workflow()` មួយជំនួសការប៉ាន់ស្មាន recipe ដោយដៃប្រើ prep និង bake។ យើងនឹងឃើញរឿងទាំងនេះឲ្យបានច្បាស់ក្នុងរយៈពេលឆាប់ៗនេះ។\n", + ">\n", + "> ទោះយ៉ាងណាក៏ដោយ សព្វថ្ងៃយើងកំពុងប្រើ recipes + prep + bake ដើម្បីបញ្ជាក់ថាជំហានអ្វីគួរត្រូវអនុវត្តទៅលើឃ្លាំងទិន្នន័យ ដើម្បីទទួលបានវាសម្រាប់វិភាគទិន្នន័យ ហើយបន្ទាប់មកយកទិន្នន័យដែលបានប្រមូលទិន្នន័យមុនជាមួយជំហានអនុវត្តទាំងនោះ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Preprocess and extract data to allow some data analysis\n", + "baked_pumpkins <- recipe(color ~ ., data = pumpkins_select) %>%\n", + " # Define ordering for item_size column\n", + " step_mutate(item_size = ordered(item_size, levels = c('sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo'))) %>%\n", + " # Convert factors to numbers using the order defined above (Ordinal encoding)\n", + " step_integer(item_size, zero_based = F) %>%\n", + " # Encode all other predictors using one hot encoding\n", + " step_dummy(all_nominal(), -all_outcomes(), one_hot = TRUE) %>%\n", + " prep(data = pumpkin_select) %>%\n", + " bake(new_data = NULL)\n", + "\n", + "# Display the first few rows of preprocessed data\n", + "baked_pumpkins %>% \n", + " slice_head(n = 5)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "✅ តើអត្ថប្រយោជន៍នៃការប្រើប្រាស់អ្នកបំលែងលេខរៀងសម្រាប់ជួរឈរជំនាន់ទំហំទំនិញមានអ្វីខ្លះ?\n", + "\n", + "### វិភាគទំនាក់ទំនងរវាងអថេរ\n", + "\n", + "ឥឡូវនេះដែលយើងបានដោះស្រាយទិន្នន័យរបស់យើងហើយ អាចវិភាគទំនាក់ទំនងរវាងលក្ខណៈពិសេស និងស្លាក ដើម្បីយល់ពីរបៀបដែលម៉ូដែលនឹងអាចទាយស្លាកបានល្អប៉ុណ្ណា ទៅតាមលក្ខណៈពិសេស។ វិធីធំៗសម្រាប់ធ្វើវិភាគប្រភេទនេះគឺការគូរបង្ហាញទិន្នន័យ។ \n", + "យើងនឹងប្រើមុខងារ ggplot geom_boxplot_ ម្តងទៀត ដើម្បីបង្ហាញទំនាក់ទំនងរវាងទំហំទំនិញ ជម្លោះ និងពណ៌ក្នុងតារាងប្រភេទ។ ដើម្បីគូរទិន្នន័យបានល្អជាងមុន យើងនឹងប្រើជួរឈរទំហំទំនិញដែលបានបំលែងលេខរៀង ហើយជួរឈរជម្លោះដែលមិនបានបំលែង។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Define the color palette\n", + "palette <- c(ORANGE = \"orange\", WHITE = \"wheat\")\n", + "\n", + "# We need the encoded Item Size column to use it as the x-axis values in the plot\n", + "pumpkins_select_plot<-pumpkins_select\n", + "pumpkins_select_plot$item_size <- baked_pumpkins$item_size\n", + "\n", + "# Create the grouped box plot\n", + "ggplot(pumpkins_select_plot, aes(x = `item_size`, y = color, fill = color)) +\n", + " geom_boxplot() +\n", + " facet_grid(variety ~ ., scales = \"free_x\") +\n", + " scale_fill_manual(values = palette) +\n", + " labs(x = \"Item Size\", y = \"\") +\n", + " theme_minimal() +\n", + " theme(strip.text = element_text(size = 12)) +\n", + " theme(axis.text.x = element_text(size = 10)) +\n", + " theme(axis.title.x = element_text(size = 12)) +\n", + " theme(axis.title.y = element_blank()) +\n", + " theme(legend.position = \"bottom\") +\n", + " guides(fill = guide_legend(title = \"Color\")) +\n", + " theme(panel.spacing = unit(0.5, \"lines\"))+\n", + " theme(strip.text.y = element_text(size = 4, hjust = 0)) \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### ប្រើ plots រួមមួយ\n", + "\n", + "ព្រោះពណ៌ជា​ប្រភេទពីររបៀប (ស និង មិនស) វាត្រូវការពី '[វិធីជាច្រើនពិសេស](https://github.com/rstudio/cheatsheets/blob/main/data-visualization.pdf)' ដើម្បី​បង្ហាញភាព។\n", + "\n", + "សាកល្បង `swarm plot` ដើម្បីបង្ហាញចំណាត់ថ្នាក់នៃពណ៌ដោយទាក់ទងទៅនឹង item_size។\n", + "\n", + "យើងនឹងប្រើ [កញ្ចប់ ggbeeswarm](https://github.com/eclarke/ggbeeswarm) ដែលផ្តល់វិធីសាស្រ្តបង្កើត plots រចនាប័ទ្ម beeswarm ដោយប្រើ ggplot2។ Plots beeswarm ជាវិធីមួយនៃការបញ្ចាំងចំណុចដែលធម្មតានឹងគ្នាហើយធ្វើឲ្យវាធ្លាក់នៅជាមួយគ្នានៅជិតៗគ្នាមិនឲ្យគ្នាហែលឆ្ងាយ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Create beeswarm plots of color and item_size\n", + "baked_pumpkins %>% \n", + " mutate(color = factor(color)) %>% \n", + " ggplot(mapping = aes(x = color, y = item_size, color = color)) +\n", + " geom_quasirandom() +\n", + " scale_color_brewer(palette = \"Dark2\", direction = -1) +\n", + " theme(legend.position = \"none\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ឥឡូវនេះឥឡូវនេះយើងមានគំនិតអំពីទំនាក់ទំនងរវាងប្រភេទទំនាស់ពីរក្រុមនៃពណ៌ និងក្រុមធំទូលាយនៃទំហំ មកសូមស្វែងយល់អំពី logistic regression ដើម្បីកំណត់ពណ៌ស្មេចដែលអាចមានបាន។\n", + "\n", + "## សង់ម៉ូដែលរបស់អ្នក\n", + "\n", + "ជ្រើសរើសអថេរដែលអ្នកចង់ប្រើនៅក្នុងម៉ូដែលចាត់ថ្នាក់របស់អ្នក ហើយបំបែកទិន្នន័យទៅជាសំណុំបណ្ដុះបណ្ដាល និងសំណុំសាកល្បង។ [rsample](https://rsample.tidymodels.org/), គឺជាកញ្ចប់ក្នុង Tidymodels, ផ្តល់ឱ្យនូវមូលដ្ឋានគ្រឹះសម្រាប់ការបំបែកទិន្នន័យ និងការបង្កើតសំណុំឡើងវិញបានយ៉ាងមានប្រសិទ្ធភាព។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Split data into 80% for training and 20% for testing\n", + "set.seed(2056)\n", + "pumpkins_split <- pumpkins_select %>% \n", + " initial_split(prop = 0.8)\n", + "\n", + "# Extract the data in each split\n", + "pumpkins_train <- training(pumpkins_split)\n", + "pumpkins_test <- testing(pumpkins_split)\n", + "\n", + "# Print out the first 5 rows of the training set\n", + "pumpkins_train %>% \n", + " slice_head(n = 5)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "🙌 ឥឡូវនេះ យើងបានត្រៀមខ្លួនរួចរាល់ក្នុងការបណ្តុះម៉ូឌែលដោយតម្រឹមលក្ខណៈបណ្តុះបណ្តាលទៅកាន់ស្លាកបណ្តុះបណ្តាល (ពណ៌) ។\n", + "\n", + "យើងនឹងចាប់ផ្តើមដោយបង្កើតវត្ថុវិធីដែលបញ្ជាក់ពីជំហានកំណត់មុនដែលគួរត្រូវបានអនុវត្តលើទិន្នន័យរបស់យើងដើម្បីធ្វើឲ្យវាប្រៀបប្រដាប់សម្រាប់ការដំណើរការ ម៉ូឌែល គឺ៖ ការរុំបញ្ចូលអថេរក្រុមជាគុណភាពទៅជាសំណុំចំនួនគត់។ ដូចជា `baked_pumpkins` យើងបង្កើតវត្ថុវិធី `pumpkins_recipe` ប៉ុន្តែ​មិនធ្វើការ `prep` និង `bake` មែនទែន ព្រោះវានឹងត្រូវបានបញ្ចូលក្នុងលំហូរ ការចុះបញ្ជី អ្នកនឹងមើលឃើញវាក្នុងជំហានមួយចំនួនបន្ទាប់ពីនេះ។\n", + "\n", + "មានវិធីជាច្រើនក្នុងការបញ្ជាក់ម៉ូឌែល logistic regression ក្នុង Tidymodels។ សូមមើល `?logistic_reg()` សម្រាប់ពេលនេះ យើងនឹងបញ្ជាក់ម៉ូឌែល logistic regression តាមរយៈម៉ូទ័រ `stats::glm()` ដែលជាគំរូលំនាំដើម។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Create a recipe that specifies preprocessing steps for modelling\n", + "pumpkins_recipe <- recipe(color ~ ., data = pumpkins_train) %>% \n", + " step_mutate(item_size = ordered(item_size, levels = c('sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo'))) %>%\n", + " step_integer(item_size, zero_based = F) %>% \n", + " step_dummy(all_nominal(), -all_outcomes(), one_hot = TRUE)\n", + "\n", + "# Create a logistic model specification\n", + "log_reg <- logistic_reg() %>% \n", + " set_engine(\"glm\") %>% \n", + " set_mode(\"classification\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ឥឡូវនេះ យើងមានរូបមន្តមួយ និងការបញ្ជាក់ម៉ូដែលមួយហើយ យើងត្រូវការស្វែងរកវិធីមួយដើម្បីបញ្ចូលពួកវាទាំងពីរចូលក្នុងវត្ថុមួយដែលនឹងរៀបចំទិន្នន័យជាមុន (prep+bake នៅពីក្រោយឆាក), ដាក់ម៉ូដែលលើទិន្នន័យដែលបានរៀបចំ និងក៏អនុញ្ញាតឱ្យមានសកម្មភាពបន្ទាប់ម៉ាផង។\n", + "\n", + "នៅក្នុង Tidymodels វត្ថុងាយស្រួលនេះហៅថា [`workflow`](https://workflows.tidymodels.org/) ហើយវាធ្វើការរក្សាទុកធាតុម៉ូដែលរបស់អ្នកយ៉ាងងាយស្រួល។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Bundle modelling components in a workflow\n", + "log_reg_wf <- workflow() %>% \n", + " add_recipe(pumpkins_recipe) %>% \n", + " add_model(log_reg)\n", + "\n", + "# Print out the workflow\n", + "log_reg_wf\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "បន្ទាប់ពីបាន *បញ្ជាក់* workflow មួយ model អាចត្រូវបាន `បណ្តុះបណ្តាល` ដោយប្រើមុខងារ [`fit()`](https://tidymodels.github.io/parsnip/reference/fit.html)។ workflow នឹងវាយតម្លៃមុខងារ recipe និង preprocess ទិន្នន័យមុនការបណ្តុះបណ្តាល ដូច្នេះយើងមិនចាំបាច់ត្រូវធ្វើដៃដោយប្រើ prep និង bake ទេ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Train the model\n", + "wf_fit <- log_reg_wf %>% \n", + " fit(data = pumpkins_train)\n", + "\n", + "# Print the trained workflow\n", + "wf_fit\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ការបង្ហាញម៉ូដែលបោះផ្សាយអំពីសមាមាត្រដែលបានរៀនក្នុងអំឡុងពេលបណ្តុះបណ្តាល។\n", + "\n", + "ឥឡូវនេះយើងបានបណ្តុះបណ្តាលម៉ូដែលដោយប្រើទិន្នន័យបណ្តុះបណ្តាលហើយ យើងអាចធ្វើការទស្សន៍ទាយលើទិន្នន័យសាកល្បងដោយប្រើ [parsnip::predict()](https://parsnip.tidymodels.org/reference/predict.model_fit.html)។ បង្វៀងចាប់ផ្តើមដោយប្រើម៉ូដែលនេះដើម្បីទស្សន៍ទាយស្លាកសញ្ញាសម្រាប់សំណុំសាកល្បងរបស់យើង និងប្រភាពសម្រាប់រាល់ស្លាក។ នៅពេលដែលប្រភាពច្រើនជាង 0.5 ការទស្សន៍ទាយថ្នាក់គឺជា `WHITE` ប្រសិនបើមិនដូច្នោះទេ គឺ `ORANGE`។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Make predictions for color and corresponding probabilities\n", + "results <- pumpkins_test %>% select(color) %>% \n", + " bind_cols(wf_fit %>% \n", + " predict(new_data = pumpkins_test)) %>%\n", + " bind_cols(wf_fit %>%\n", + " predict(new_data = pumpkins_test, type = \"prob\"))\n", + "\n", + "# Compare predictions\n", + "results %>% \n", + " slice_head(n = 10)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ឆ្លើយបានល្អណាស់! នេះផ្តល់ការយល់ដឹងបន្ថែមពីរបៀបដែល logistic regression ធ្វើការ។\n", + "\n", + "### ការយល់ដឹងកាន់តែប្រសើរ តាមរយៈមាទ្រីកខុសគ្នា\n", + "\n", + "ការប្រៀបធៀបទាំងអស់នៃការព្យាករណ៍ជាមួយតម្លៃ \"ពិត\" ក្នុងការពិតមិនមែនជាវិធីមានប្រសិទ្ធភាពសម្រាប់កំណត់ថាតើម៉ូដែលព្យាករណ៍បានល្អប៉ុណ្ណា។ គ្រប់គ្រាន់ហើយ Tidymodels មានជំនាញបន្ថែមមួយចំនួន៖ [`yardstick`](https://yardstick.tidymodels.org/) - ជាប៉ាកេជ្យដែលប្រើសម្រាប់វាស់ប្រសិទ្ធភាពនៃម៉ូដែលប្រើគ្រឿងសម្រួលសមត្ថភាព។\n", + "\n", + "គ្រឿងសម្រួលសមត្ថភាពមួយដែលទាក់ទងនឹងបញ្ហាការបែងចែកគឺ [`confusion matrix`](https://wikipedia.org/wiki/Confusion_matrix)។ មាទ្រីកខុសគ្នា​នេះពិពណ៌នាថាតើម៉ូដែលបែងចែកមានសមត្ថភាពល្អយ៉ាងដូចម្តេច។ មាទ្រីកខុសគ្នាដាក់បញ្ជីចំនួនឧទាហរណ៍នីមួយៗក្នុងថ្នាក់មួយត្រូវបានបែងចែកបានត្រឹមត្រូវដោយម៉ូដែលប៉ុន្មាន។ ក្នុងករណីរបស់យើង វានឹងបង្ហាញអ្នកថា តើមានប៊ឺរមាសពណ៌ទឹកដោះគោប៉ុន្មានដែលបានបែងចែកថាជា​ប៊ឺរមាសពណ៌ទឹកដោះគោ និងប៊ឺរស មួយពណ៌សប៉ុន្មានដែលបានបាំងចែកថាជាប៊ឺរស ពណ៌ស; មាទ្រីកខុសគ្នាក៏បង្ហាញអ្នកថា ប៊ឺរដែលបានបែងចែកទៅក្នុងប្រភេទដែលមិនត្រឹមត្រូវប៉ុណ្ណា។\n", + "\n", + "មុខងារ [**`conf_mat()`**](https://tidymodels.github.io/yardstick/reference/conf_mat.html) ពី yardstick គណនាការប្រមូលផ្ដុំគ្នានៃថ្នាក់ដែលបានសង្កេត និងថ្នាក់ដែលបានព្យាករណ៍។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Confusion matrix for prediction results\n", + "conf_mat(data = results, truth = color, estimate = .pred_class)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "អនុវត្តន៍សន្ទស្សន៍ច្របូកច្របល់។ គំរូរបស់យើងត្រូវបានស្នើឲ្យចាត់ថ្នាក់កន្ទុយកំណាត់មួយចំនួនចេញជាប្រភេទពីរប៊ីណារី គឺ ប្រភេទ `ស` និងប្រភេទ `មិនស`\n", + "\n", + "- ប្រសិនបើគំរូរបស់អ្នកទាយថាកន្ទុយកំណាត់គឺស ហើយវាគឺជាប្រភេទ 'ស' ក្នុងការពិត ខ្លួនយើងហៅវាថា `ពិតវិជ្ជមាន` ដែលបង្ហាញដោយលេខខាងឆ្វេងលើ។\n", + "\n", + "- ប្រសិនបើគំរូរបស់អ្នកទាយថាកន្ទុយកំណាត់គឺមិនស ហើយវាគឺជាប្រភេទ 'ស' ក្នុងការពិត ខ្លួនយើងហៅវាថា `មិនពិតអវិជ្ជមាន` ដែលបង្ហាញដោយលេខខាងឆ្វេងខាងក្រោម។\n", + "\n", + "- ប្រសិនបើគំរូរបស់អ្នកទាយថាកន្ទុយកំណាត់គឺស ហើយវាគឺជាប្រភេទ 'មិនស' ក្នុងការពិត ខ្លួនយើងហៅវាថា `មិនពិតវិជ្ជមាន` ដែលបង្ហាញដោយលេខខាងស្ដាំលើ។\n", + "\n", + "- ប្រសិនបើគំរូរបស់អ្នកទាយថាកន្ទុយកំណាត់គឺមិនស ហើយវាគឺជាប្រភេទ 'មិនស' ក្នុងការពិត ខ្លួនយើងហៅវាថា `ពិតអវិជ្ជមាន` ដែលបង្ហាញដោយលេខខាងស្ដាំខាងក្រោម។\n", + "\n", + "| Truth |\n", + "|:-----:|\n", + "\n", + "\n", + "| | | |\n", + "|---------------|--------|-------|\n", + "| **Predicted** | ស | ទឹកក្រូច |\n", + "| ស | TP | FP |\n", + "| ទឹកក្រូច | FN | TN |\n", + "\n", + "ដូចដែលអ្នកអាចគិតថាវាគឺល្អប្រសើរជាងក្នុងការមានចំនួននៅក្នុង true positives និង true negatives ធំបំផុត និងមាន false positives និង false negatives តិចបំផុត ដែលបង្ហាញថាគំរូមានការអនុវត្តល្អជាង។\n", + "\n", + "សន្ទស្សន៍ច្របូកច្របល់មានប្រយោជន៍ព្រោះវាបង្កើតទៅរកមាត្រដ្ឋានផ្សេងទៀតដែលអាចជួយយើងប៉ាន់ប្រាក់បានល្អប្រសើរជាងអំពីការអនុវត្តន៍នៃគំរូចាត់ថ្នាក់។ មកមើលខ្លះៗពីវា៖\n", + "\n", + "🎓 Precision: `TP/(TP + FP)` កំណត់ថាជាភាគរយនៃការទាយថាជាវិជ្ជមានដែលពិតជាវិជ្ជមាន។ ក៏ត្រូវ​បានហៅថា [positive predictive value](https://en.wikipedia.org/wiki/Positive_predictive_value \"Positive predictive value\")\n", + "\n", + "🎓 Recall: `TP/(TP + FN)` កំណត់ថាជាភាគរយនៃលទ្ធផលវិជ្ជមានក្នុងចំណោមចំនួននៃគំរូដែលពិតជាវិជ្ជមាន។ ក៏ត្រូវបានគេស្គាល់ថា `sensitivity`។\n", + "\n", + "🎓 Specificity: `TN/(TN + FP)` កំណត់ថាជាភាគរយនៃលទ្ធផលអវិជ្ជមានក្នុងចំណោមចំនួននៃគំរូដែលពិតជាអវិជ្ជមាន។\n", + "\n", + "🎓 Accuracy: `TP + TN/(TP + TN + FP + FN)` ភាគរយនៃស្លាកដែលបានទាយបានត្រឹមត្រូវសម្រាប់គំរូមួយ។\n", + "\n", + "🎓 F Measure: ជាមធ្យមគតិដូនទម្ងន់រវាង precision និង recall ដែលល្អបំផុតគឺ 1 ហើយអាក្រក់បំផុតគឺ 0។\n", + "\n", + "មកគណនាមាត្រដ្ឋានទាំងនេះគ្នាដូរ!\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Combine metric functions and calculate them all at once\n", + "eval_metrics <- metric_set(ppv, recall, spec, f_meas, accuracy)\n", + "eval_metrics(data = results, truth = color, estimate = .pred_class)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ការមើលឃើញឆ្លងបន្ទាត់ ROC នៃម៉ូដែលនេះ\n", + "\n", + "មកធ្វើការមើលឃើញមួយទៀតដើម្បីឃើញអ្វីដែលហៅថា [`ROC curve`](https://en.wikipedia.org/wiki/Receiver_operating_characteristic):\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Make a roc_curve\n", + "results %>% \n", + " roc_curve(color, .pred_ORANGE) %>% \n", + " autoplot()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ROC curves តែងត្រូវបានប្រើសម្រាប់ទទួលបានទិដ្ឋភាពនៃលទ្ធផលនៃម៉ាស៊ីនចាត់ថ្នាក់មួយដោយពិចារណាពីចំណុចពិតវិជ្ជមានប្រៀបធៀបនឹងចំណុចមិនពិតវិជ្ជមាន។ ROC curves ជាទូទៅមានអត្រាចំណុចវិជ្ជមានពិត / ការពិសោធន៍លើ Y axis និងអត្រាចំណុចវិជ្ជមានមិនពិត / 1-ភាពជាក់លាក់លើ X axis។ ដូចនេះ, ពហុភាពរបស់ខ្សែនិងកន្លែងរវាងបន្ទាត់កណ្តាលនិងខ្សែកោងមានសារៈសំខាន់: អ្នកចង់បានខ្សែកោងដែលឡើងខ្ពស់លឿនហើយឆ្លងកាត់បន្ទាត់។ ក្នុងករណីរបស់យើងមានចំណុចវិជ្ជមានមិនពិតមុនសិន រួចបន្ទាត់ឡើងខ្ពស់ហើយឆ្លងកាត់យ៉ាងត្រឹមត្រូវ។\n", + "\n", + "ចុងក្រោយនេះ មកប្រើ `yardstick::roc_auc()` ដើម្បីគណនាតំបន់ក្រោមខ្សែកោងពិត។ មួយវិធីក្នុងការពន្យល់ AUC គឺជាភាពមាននៅក្នុងម៉ូដែលថាលំដាប់នៃឧទាហរណ៍វិជ្ជមានចៃដន្យខ្ពស់ជាងឧទាហរណ៍អវិជ្ជមានចៃដន្យ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [], + "source": [ + "# Calculate area under curve\n", + "results %>% \n", + " roc_auc(color, .pred_ORANGE)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "លទ្ធផលស្ថិតនៅជុំវិញ `0.975`។ ដោយសារតែ AUC មានជួរពី 0 ដល់ 1 អ្នកចង់បានពិន្ទុធំ មកព្រោះម៉ូដែលដែលត្រឹមត្រូវ ១០០% ក្នុងការទុក្ខលំបាករបស់វានឹងមាន AUC ស្មើ 1; ក្នុងករណីនេះ ម៉ូដែលគឺ *ល្អណាស់*។\n", + "\n", + "នៅមេរៀនក្នុងអនាគតអំពីការបែងចែក ប្រភេទ អ្នកនឹងរៀនពីរបៀបធ្វើឲ្យពិន្ទុរបស់ម៉ូដែលរបស់អ្នកប្រសើរឡើង (ដូចជាការដោះស្រាយទិន្នន័យមិនស្មើគ្នានៅក្នុងករណីនេះ)។\n", + "\n", + "## 🚀 បញ្ញាកchallenge\n", + "\n", + "មានច្រើនអ្វីដែលត្រូវរំលេចទៀតទាក់ទងនឹង logistic regression! ប៉ុន្តែ វិធីល្អបំផុតក្នុងការរៀនគឺការសាកល្បង។ រកឃើញឧបករណ៍ទិន្នន័យមួយដែលសមស្របសម្រាប់ការវិភាគប្រភេទនេះ ហើយសង់ម៉ូដែលជាមួយវា។ តើអ្នកបានរៀនអ្វីខ្លះ? គំនិត៖ ព្យាយាមប្រើ [Kaggle](https://www.kaggle.com/search?q=logistic+regression+datasets) សម្រាប់ឧបករណ៍ទិន្នន័យដែលគួរឱ្យចាប់អារម្មណ៍។\n", + "\n", + "## ការត្រួតពិនិត្យ & ការសិក្សាឯករាជ្យ\n", + "\n", + "អានទំព័រដើមពីរបីនៃ [ឯកសារនេះពី Stanford](https://web.stanford.edu/~jurafsky/slp3/5.pdf) អំពីការប្រើប្រាស់ជាក់ស្តែងរបស់ logistic regression។ គិតអំពីភារកិច្ចដែលសមស្របសម្រាប់ប្រភេទ regression តែមួយ ឬមួយផ្សេងទៀតដែលយើងបានសិក្សាពីមុនដល់ពេលនេះ។ តើអ្វីជា វិធីល្អបំផុត?\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**: \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាផ្ទាល់ជាគោលដៅផ្លូវការដែលគួរត្រូវបានយកចិត្តទុកដាក់។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ គួរត្រូវបានបកប្រែដោយអ្នកជំនាញមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការបកប្រែខុសដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះនោះទេ។\n\n" + ] + } + ], + "metadata": { + "anaconda-cloud": "", + "kernelspec": { + "display_name": "R", + "langauge": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "3.4.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/translations/km/2-Regression/4-Logistic/solution/notebook.ipynb b/translations/km/2-Regression/4-Logistic/solution/notebook.ipynb new file mode 100644 index 000000000..e5007cd86 --- /dev/null +++ b/translations/km/2-Regression/4-Logistic/solution/notebook.ipynb @@ -0,0 +1,1255 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Logistic Regression - មេរៀន 4\n", + "\n", + "ផ្ទុកបណ្ណាល័យដែលត្រូវការ និងទិន្នន័យ។ បម្លែងទិន្នន័យជាតារាងទិន្នន័យដែលមានផ្នែកតូចរបស់ទិន្នន័យ៖\n" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
City NameTypePackageVarietySub VarietyGradeDateLow PriceHigh PriceMostly Low...Unit of SaleQualityConditionAppearanceStorageCropRepackTrans ModeUnnamed: 24Unnamed: 25
0BALTIMORENaN24 inch binsNaNNaNNaN4/29/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
1BALTIMORENaN24 inch binsNaNNaNNaN5/6/17270.0280.0270.0...NaNNaNNaNNaNNaNNaNENaNNaNNaN
2BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
3BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN9/24/16160.0160.0160.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
4BALTIMORENaN24 inch binsHOWDEN TYPENaNNaN11/5/1690.0100.090.0...NaNNaNNaNNaNNaNNaNNNaNNaNNaN
\n", + "

5 rows × 26 columns

\n", + "
" + ], + "text/plain": [ + " City Name Type Package Variety Sub Variety Grade Date \n", + "0 BALTIMORE NaN 24 inch bins NaN NaN NaN 4/29/17 \\\n", + "1 BALTIMORE NaN 24 inch bins NaN NaN NaN 5/6/17 \n", + "2 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n", + "3 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 9/24/16 \n", + "4 BALTIMORE NaN 24 inch bins HOWDEN TYPE NaN NaN 11/5/16 \n", + "\n", + " Low Price High Price Mostly Low ... Unit of Sale Quality Condition \n", + "0 270.0 280.0 270.0 ... NaN NaN NaN \\\n", + "1 270.0 280.0 270.0 ... NaN NaN NaN \n", + "2 160.0 160.0 160.0 ... NaN NaN NaN \n", + "3 160.0 160.0 160.0 ... NaN NaN NaN \n", + "4 90.0 100.0 90.0 ... NaN NaN NaN \n", + "\n", + " Appearance Storage Crop Repack Trans Mode Unnamed: 24 Unnamed: 25 \n", + "0 NaN NaN NaN E NaN NaN NaN \n", + "1 NaN NaN NaN E NaN NaN NaN \n", + "2 NaN NaN NaN N NaN NaN NaN \n", + "3 NaN NaN NaN N NaN NaN NaN \n", + "4 NaN NaN NaN N NaN NaN NaN \n", + "\n", + "[5 rows x 26 columns]" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "full_pumpkins = pd.read_csv('../../data/US-pumpkins.csv')\n", + "\n", + "full_pumpkins.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
City NamePackageVarietyOriginItem SizeColor
2BALTIMORE24 inch binsHOWDEN TYPEDELAWAREmedORANGE
3BALTIMORE24 inch binsHOWDEN TYPEVIRGINIAmedORANGE
4BALTIMORE24 inch binsHOWDEN TYPEMARYLANDlgeORANGE
5BALTIMORE24 inch binsHOWDEN TYPEMARYLANDlgeORANGE
6BALTIMORE36 inch binsHOWDEN TYPEMARYLANDmedORANGE
\n", + "
" + ], + "text/plain": [ + " City Name Package Variety Origin Item Size Color\n", + "2 BALTIMORE 24 inch bins HOWDEN TYPE DELAWARE med ORANGE\n", + "3 BALTIMORE 24 inch bins HOWDEN TYPE VIRGINIA med ORANGE\n", + "4 BALTIMORE 24 inch bins HOWDEN TYPE MARYLAND lge ORANGE\n", + "5 BALTIMORE 24 inch bins HOWDEN TYPE MARYLAND lge ORANGE\n", + "6 BALTIMORE 36 inch bins HOWDEN TYPE MARYLAND med ORANGE" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Select the columns we want to use\n", + "columns_to_select = ['City Name','Package','Variety', 'Origin','Item Size', 'Color']\n", + "pumpkins = full_pumpkins.loc[:, columns_to_select]\n", + "\n", + "# Drop rows with missing values\n", + "pumpkins.dropna(inplace=True)\n", + "\n", + "pumpkins.head()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# តោះមកមើលទិន្នន័យរបស់យើង!\n", + "\n", + "ដោយបង្ហាញវានៅជាមួយ Seaborn\n" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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S0tLab1CCxcuxAcffIBXXnkFbm5uGDZsGF555RW89dZbBtd1cnLCjBkzMGjQIFy6dAleXl4AYHDuomRnZyM7O1t6nJ6eXqJxRERU/THQEMzMzHD79u2nuuaQIUOwefNmDB06FL1798bp06dx5syZYseYmZkBAHJycsq0Znh4OD755BO9dssOi2BlaQ7bBv5lmpeIiKoe76F5jomiiN27d+PXX39F586di+1br149affFwsICPj4+5V5/+fLlOH36NMaOHYvly5fDwcGhyL4pKSn44osvULduXWl3BgCmTJkiq8vCwgIHDhwwOEdoaCjS0tKk4/r16+W+BiIiqh64Q/Mc2rFjBywsLJCbm4uCggK8+eabmDVrVrFjDhw4ILs3pUaNGuWuw9HREe+99x62bNmCnj17GuxTr149iKKI//77D82aNcPGjRthYmIinZ80aRKCg4NlY+rWrWtwLrVaDbVaXe66iYio+mGgeQ5ptVpERkbCxMQEderUgUr15B8Dd3f3Et1DU1oqlarY9Q8cOAArKys4OjoavNnX3t4eHh4eFV4XEREpCwPNc8jc3FwxIaCyghQRET1bGGioRG7duoWsrCxZm52dXYW89FQeGRkZep+HU7NmTb23mBMR0bONNwVTiXh5ecHJyUl2/PHHH1VdFmbMmKFX1+TJk6u6LCIiesoEURTFqi6CqCqkp6fD2toaV05u4du2iYgUjjs0REREpHgMNERERKR4DDRERESkeAw0REREpHgMNERERKR4DDRERESkeAw0REREpHgMNERERKR4DDRERESkeAw0REREpHgMNERERKR4/LZteu7Z1tfy27mJiBSOOzRERESkeAw0REREpHgMNERERKR4DDRERESkeAw0REREpHgMNERERKR4DDRERESkeAw0REREpHgMNERERKR4/KRgeu5dXdUElmYlz/Zuw65UYjVERFQW3KEhIiIixWOgISIiIsVjoCEiIiLFY6AhIiIixWOgISIiIsVjoCEiIiLFY6AhIiIixWOgISIiIsVjoCEiIiLFY6AhIiIixWOgISIiIsVjoCEiIiLFY6AhIiIixWOgISIiIsVjoCml4OBgCIIgHXZ2dggMDMSpU6dk/QRBwJYtW2RtcXFxeO211+Dg4ABTU1M0aNAAAwYMwP79+4td083NDYIgYO3atXrnfHx8IAgCVq5cqXcu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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "# Specify colors for each values of the hue variable\n", + "palette = {\n", + " 'ORANGE': 'orange',\n", + " 'WHITE': 'wheat',\n", + "}\n", + "# Plot a bar plot to visualize how many pumpkins of each variety are orange or white\n", + "sns.catplot(\n", + " data=pumpkins, y=\"Variety\", hue=\"Color\", kind=\"count\",\n", + " palette=palette, \n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ការត្រៀមទិន្នន័យជាមុន\n", + "\n", + "យើងចូរបំលែងលក្ខណៈនិងស្លាកសញ្ញាឱ្យមានរបៀបល្អប្រសើរជាងមុន ដើម្បីគូរបានល្អនិងបណ្តុះបណ្តាលម៉ូឌែល\n" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['med', 'lge', 'sml', 'xlge', 'med-lge', 'jbo', 'exjbo'],\n", + " dtype=object)" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Let's look at the different values of the 'Item Size' column\n", + "pumpkins['Item Size'].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import OrdinalEncoder\n", + "# Encode the 'Item Size' column using ordinal encoding\n", + "item_size_categories = [['sml', 'med', 'med-lge', 'lge', 'xlge', 'jbo', 'exjbo']]\n", + "ordinal_features = ['Item Size']\n", + "ordinal_encoder = OrdinalEncoder(categories=item_size_categories)" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import OneHotEncoder\n", + "# Encode all the other features using one-hot encoding\n", + "categorical_features = ['City Name', 'Package', 'Variety', 'Origin']\n", + "categorical_encoder = OneHotEncoder(sparse_output=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ord__Item Sizecat__City Name_ATLANTAcat__City Name_BALTIMOREcat__City Name_BOSTONcat__City Name_CHICAGOcat__City Name_COLUMBIAcat__City Name_DALLAScat__City Name_DETROITcat__City Name_LOS ANGELEScat__City Name_MIAMI...cat__Origin_MICHIGANcat__Origin_NEW JERSEYcat__Origin_NEW YORKcat__Origin_NORTH CAROLINAcat__Origin_OHIOcat__Origin_PENNSYLVANIAcat__Origin_TENNESSEEcat__Origin_TEXAScat__Origin_VERMONTcat__Origin_VIRGINIA
21.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
31.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.01.0
43.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
53.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
61.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00.0
\n", + "

5 rows × 48 columns

\n", + "
" + ], + "text/plain": [ + " ord__Item Size cat__City Name_ATLANTA cat__City Name_BALTIMORE \n", + "2 1.0 0.0 1.0 \\\n", + "3 1.0 0.0 1.0 \n", + "4 3.0 0.0 1.0 \n", + "5 3.0 0.0 1.0 \n", + "6 1.0 0.0 1.0 \n", + "\n", + " cat__City Name_BOSTON cat__City Name_CHICAGO cat__City Name_COLUMBIA \n", + "2 0.0 0.0 0.0 \\\n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 \n", + "\n", + " cat__City Name_DALLAS cat__City Name_DETROIT cat__City Name_LOS ANGELES \n", + "2 0.0 0.0 0.0 \\\n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 \n", + "\n", + " cat__City Name_MIAMI ... cat__Origin_MICHIGAN cat__Origin_NEW JERSEY \n", + "2 0.0 ... 0.0 0.0 \\\n", + "3 0.0 ... 0.0 0.0 \n", + "4 0.0 ... 0.0 0.0 \n", + "5 0.0 ... 0.0 0.0 \n", + "6 0.0 ... 0.0 0.0 \n", + "\n", + " cat__Origin_NEW YORK cat__Origin_NORTH CAROLINA cat__Origin_OHIO \n", + "2 0.0 0.0 0.0 \\\n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 \n", + "\n", + " cat__Origin_PENNSYLVANIA cat__Origin_TENNESSEE cat__Origin_TEXAS \n", + "2 0.0 0.0 0.0 \\\n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 \n", + "\n", + " cat__Origin_VERMONT cat__Origin_VIRGINIA \n", + "2 0.0 0.0 \n", + "3 0.0 1.0 \n", + "4 0.0 0.0 \n", + "5 0.0 0.0 \n", + "6 0.0 0.0 \n", + "\n", + "[5 rows x 48 columns]" + ] + }, + "execution_count": 69, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.compose import ColumnTransformer\n", + "ct = ColumnTransformer(transformers=[\n", + " ('ord', ordinal_encoder, ordinal_features),\n", + " ('cat', categorical_encoder, categorical_features)\n", + " ])\n", + "# Get the encoded features as a pandas DataFrame\n", + "ct.set_output(transform='pandas')\n", + "encoded_features = ct.fit_transform(pumpkins)\n", + "encoded_features.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
ord__Item Sizecat__City Name_ATLANTAcat__City Name_BALTIMOREcat__City Name_BOSTONcat__City Name_CHICAGOcat__City Name_COLUMBIAcat__City Name_DALLAScat__City Name_DETROITcat__City Name_LOS ANGELEScat__City Name_MIAMI...cat__Origin_NEW JERSEYcat__Origin_NEW YORKcat__Origin_NORTH CAROLINAcat__Origin_OHIOcat__Origin_PENNSYLVANIAcat__Origin_TENNESSEEcat__Origin_TEXAScat__Origin_VERMONTcat__Origin_VIRGINIAColor
21.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00
31.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.01.00
43.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00
53.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00
61.00.01.00.00.00.00.00.00.00.0...0.00.00.00.00.00.00.00.00.00
\n", + "

5 rows × 49 columns

\n", + "
" + ], + "text/plain": [ + " ord__Item Size cat__City Name_ATLANTA cat__City Name_BALTIMORE \n", + "2 1.0 0.0 1.0 \\\n", + "3 1.0 0.0 1.0 \n", + "4 3.0 0.0 1.0 \n", + "5 3.0 0.0 1.0 \n", + "6 1.0 0.0 1.0 \n", + "\n", + " cat__City Name_BOSTON cat__City Name_CHICAGO cat__City Name_COLUMBIA \n", + "2 0.0 0.0 0.0 \\\n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 \n", + "\n", + " cat__City Name_DALLAS cat__City Name_DETROIT cat__City Name_LOS ANGELES \n", + "2 0.0 0.0 0.0 \\\n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 \n", + "\n", + " cat__City Name_MIAMI ... cat__Origin_NEW JERSEY cat__Origin_NEW YORK \n", + "2 0.0 ... 0.0 0.0 \\\n", + "3 0.0 ... 0.0 0.0 \n", + "4 0.0 ... 0.0 0.0 \n", + "5 0.0 ... 0.0 0.0 \n", + "6 0.0 ... 0.0 0.0 \n", + "\n", + " cat__Origin_NORTH CAROLINA cat__Origin_OHIO cat__Origin_PENNSYLVANIA \n", + "2 0.0 0.0 0.0 \\\n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 \n", + "\n", + " cat__Origin_TENNESSEE cat__Origin_TEXAS cat__Origin_VERMONT \n", + "2 0.0 0.0 0.0 \\\n", + "3 0.0 0.0 0.0 \n", + "4 0.0 0.0 0.0 \n", + "5 0.0 0.0 0.0 \n", + "6 0.0 0.0 0.0 \n", + "\n", + " cat__Origin_VIRGINIA Color \n", + "2 0.0 0 \n", + "3 1.0 0 \n", + "4 0.0 0 \n", + "5 0.0 0 \n", + "6 0.0 0 \n", + "\n", + "[5 rows x 49 columns]" + ] + }, + "execution_count": 70, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.preprocessing import LabelEncoder\n", + "# Encode the 'Color' column using label encoding\n", + "label_encoder = LabelEncoder()\n", + "encoded_label = label_encoder.fit_transform(pumpkins['Color'])\n", + "encoded_pumpkins = encoded_features.assign(Color=encoded_label)\n", + "encoded_pumpkins.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "['ORANGE', 'WHITE']" + ] + }, + "execution_count": 71, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Let's look at the mapping between the encoded values and the original values\n", + "list(label_encoder.inverse_transform([0, 1]))" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# វិភាគទំនាក់ទំនងរវាងលក្ខណៈ និង ស្លាក\n" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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drtdw4cPN7s0t/DII4+oZ8+eeuaZZzR06FBt27ZNixcv1uLFi8vdp4eHh373u99p0KBBGj58uPLz87V06VI9+OCDrndioFxeeeUVo1mzZoanp6fRtWtXY+vWrWaX5BYSEhIMSSW2UaNGmV3ar15p112SsWTJErNLcwtjxowxQkJCDE9PT6NRo0bGbbfdZnzxxRdml+XWIiMjjUmTJpldhlsYNmyYERgYaHh6ehpNmjQxhg0bZhw6dMjsstzKZ599ZrRv397w8vIyIiIijMWLF1e4z8zMTGPYsGFGw4YNjaCgIOPhhx828vLyXD6fdWIBAABgOUwnAAAAQJX74YcfXDrO1bm2jMQCAACgytntdscTuUqLn5f3FxcXu9QfI7EAAACoFuvWrVPDhg0lScePH9fQoUP11VdfSZLOnDmjvn37utwXIRYAAADVol27do6nnvr4+Mhmszme2pWZmVmmvlgnFgAAAJZDiAUAAECVq+zbsAixAAAAqHI2m+26+0o75moIsQDgBo4cOSKbzaaUlBSzSwHgppYtW6a6des63rdo0UI5OTmO9w0aNNCWLVtc7o8QCwDlMHr0aN11112O91FRUZo8ebJp9aSlpelPf/qTgoKC5O3traZNm2rw4ME6cOCAJCk4OFjp6ek8IhWAaYYOHSovL6+rttvtdnXt2tXl/lidAAAs7uLFi+rfv79at26tFStWKDAwUMePH9eqVat09uxZSZd+OAQEBJhbKABUIkZiAaCCRo8eraSkJL300kuy2Wyy2Ww6cuSIJGnPnj0aNGiQfHx81LhxY40cOVKnT592nBsVFaUJEyZo8uTJqlevnho3bqzXX39d586dU0xMjHx9fRUWFqZVq1Zd9fP37t2rw4cPa+HCherevbtCQkLUq1cvzZ49W927d5dUcjrB6NGjHbVeuSUmJkqSCgoKNHXqVDVp0kS1a9dWt27dHG0A8EtAiAWACnrppZfUo0cPjR07Vunp6UpPT1dwcLDOnj2rvn37qnPnzkpOTtbq1at18uRJDR061On8t956Sw0bNtS2bds0YcIEjRs3TkOGDFHPnj21c+dO3X777Ro5cqT++9//lvr5jRo1Uo0aNfThhx+qqKjI5Zov15qenq5JkybJ399fERERkqTx48dry5YtWr58ub799lsNGTJEAwcO1MGDByt2sQCgkvDYWQAoh9GjR+vs2bP6+OOPJV0aUe3UqZPmzZvnOGb27NnatGmT1qxZ49h3/PhxBQcHKzU1VeHh4YqKilJRUZE2bdokSSoqKpKfn5/uvvtuvf3225KkjIwMBQYGasuWLY6R1Z9bsGCBHnvsMdntdnXp0kV9+vTRiBEj1KJFC0mXRmKbN2+uXbt2qVOnTk7nrlixQiNGjNC6devUq1cvHT16VC1atNDRo0cVFBTkOK5fv37q2rWrnnnmmYpePgCoMEZiAaCKfPPNN0pISJCPj49juzzSefjwYcdxl59WI12au9qgQQPdcMMNjn2Xn25zrafZxMbGKiMjQ0uXLlWPHj30wQcfqF27dlq7du01a9y1a5dGjhyp+fPnq1evXpKk3bt3q6ioSOHh4U61JyUlOdUNAGbixi4AqCJ5eXmKjo7Ws88+W6ItMDDQ8bpmzZpObTabzWnf5XUTi4uLr/l5vr6+io6OVnR0tGbPnq0BAwZo9uzZ6t+/f6nHZ2Rk6M4779QDDzyg+++/36luu92uHTt2yG63O53j4+NzzRoAoLoQYgGgEnh6epaYj3rjjTfqo48+UmhoqDw8qvfbrc1mU0REhL766qtS2/Pz8zV48GBFREToxRdfdGrr3LmzioqKlJmZqVtvvbU6ygWAMmM6AQBUgtDQUH399dc6cuSITp8+reLiYsXGxurMmTMaPny4tm/frsOHD2vNmjWKiYlx+QYsV6SkpGjw4MH68MMPtW/fPh06dEjx8fF64403NHjw4FLPeeihh3Ts2DG9/PLLOnXqlDIyMpSRkaELFy4oPDxcI0aM0H333acVK1YoLS1N27ZtU1xcnP79739XWt0AUBGMxAJAJZg6dapGjRqltm3b6vz580pLS1NoaKg2b96sxx9/XLfffrsKCgoUEhKigQMHqkaNyhtDaNq0qUJDQzVr1izHUlqX3z/yyCOlnpOUlKT09HS1bdvWaX9CQoKioqK0ZMkSzZ49W3/5y1/0448/qmHDhurevbt+97vfVVrdAFARrE4AAAAAy2E6AQAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBxCLAAAACyHEAsAAADLIcQCAADAcgixAAAAsBwPswsAAADAr19MTIxLxy1ZssSl42yGYRgVKQgAAAC4nrvvvtvx+ty5c9qwYYOio6Md+woKCrRq1SoVFxe71B8hFgAAANUqLS1NHTp0UG5urmPfqVOnFBAQoKKiIpf6YE4sAAAAqlXNmjV18eJFp335+fny8HB9pishtpwMw1BOTo4YyAYAACiboKAgGYahdevWOfb95z//UbNmzVzugxu7yik3N1d+fn46efKk6tSpY3Y5bsUwDBUUFEiSvLy8ZLPZTK7IfXH9AQDlUaNGDY0YMULR0dEaMGCAzp8/r3Xr1mnmzJku98Gc2HLKycmRn5+fBgwYoJo1a5pdDmCKDz74QN7e3maXAQCwoPPnz2vWrFlav369PD09deedd+rRRx9VjRquTRRgJBYAAADVrlatWpozZ065zyfEVtCM/t+pvo/ZVbiXgkKbnlzdVpL09MB98vLgjwnV6UJRDT2xqo3ZZQAALCYpKcml4yIjI106jhBbQTVrFMvLgzmBZvHyMAix1c619fuAXxvm4wMV07dvXxmGcc3/dgzDcHmdWEJsBV0o4psYALiDgoICDRkyRBLzwYHy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I0NLly7VfffdV+rcUx8fH02aNElTp07Vrl27VFRUpLffflsvvPCCbr/9dqdj77rrLi1btkwPP/xwiX66du2qu+++W9OmTXPa37lzZ0VEROj555/X0KFDrzovtry8vLyu+R/NxIkT+VN2FbPb7ZowYYLmzZtXoo3rD6DKXfGjzdvbW97e3ubV4uZ40IG11atXTzabTd9884327Nmjd955RyNHjpS3t7diYmI0ffp0l/opc9KbP3++CgoKNGDAAG3cuFHHjh3T6tWr1b9/fzVp0kRPP/30Vc996KGH9N133+mjjz7S559/rqysLN1///1q376903bPPfdcdUqBJD399NPasGGDUlNTHftsNpuWLFmi1NRU9erVS59++qkOHjyoffv2adGiRTp16lSJkHP27FllZGQ4befOnSvrJVHDhg3Vt2/fMp+HsrvtttvUsGFDp31cfwAArKl9+/Z69tlnlZaWpiFDhrg8ZVQqR4ht1aqVkpOT1aJFCw0dOlQtW7bUgw8+qD59+mjLli2qX7/+Vc+tX7++7rvvPs2cOVPx8fHq169fqVMG7rnnHiUnJ+vbb78ttZ/w8HCNGTOmxJ2h3bt3144dO9S6dWvFxsaqbdu26tmzp5YtW6a5c+c6Le0lXVr2KzAw0Gm72o1D18KC+9Xr59eb6w8AgDV98803evTRRxUSEqKPP/64TD/Ty7xOrCSFhITozTffvOYxiYmJpe4v7WEHP9e1a1enm8dKu5Hstdde02uvvVZif3h4+HVru1qf5dGjR49S161F1fH399ctt9yiL7/8UrfccgvXH27lymlNV87RBH7tvLy89MEHHzhew7p++uknGYahG264QUePHtWQIUP04Ycfqnv37mXqp1whFv/zyCOPmF2CW3r88cdLPPQAcAdXzgVkWiDcyeXH2MO6nnvuOX300UdKTk5Wjx49NGbMGA0bNky/+c1vytUfIRYALOpCUQ1JxWaX4TYuFlXuDcOAu3nxxRc1cuRIvf322woPD69wf4RYALCoJ1aV/uAZAPglOn78uOMm+6ysLB08eFA2m01hYWGqV69emfvj10oAAABUObvdrrS0NP32t79Vw4YN1b17d3Xr1k0NGzbUb3/7W/3www9l6s9m8ADicsnJyZGfn5+ys7NVp04ds8sB4CYMw3B6BDaqz5XXvk6dOpW+Hjnwa3fy5EndeOON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dWulpKQoOztbH374oUaNGqWkpCSCbDU4duyYJk2apLVr18rb29vsctzOoEGDHK87dOigbt26KSQkRO+//z7TaapBcXGxunTpomeeeUaS1LlzZ+3Zs0eLFi3SqFGjXO4nJibmuscYhqE333zTpf4YiS2jhg0bym636+TJk077T548qYCAAJOqAqrP+PHj9fnnnyshIaFMf/ZBxXl6eiosLEw33XST4uLi1LFjR7300ktml+UWduzYoczMTN14443y8PCQh4eHkpKS9PLLL8vDw0NFRUVml+hW6tatq/DwcB06dMjsUtxCYGBgiV+W27RpU+YpHdnZ2Y7txIkT+te//uW0LzMzU2+//bbL/TESW0aenp666aabtH79escNRcXFxVq/fr3Gjx9vbnFAFTIMQxMmTNDKlSuVmJio5s2bm12S2ysuLlZBQYHZZbiF2267Tbt373baFxMTo4iICD3++OOy2+0mVeae8vLydPjwYY0cOdLsUtxCr169Siyp+N133ykkJKRM/axYscLxOi0tTR06dHDad+rUqTINCBJiy2HKlCkaNWqUunTpoq5du2revHk6d+6cS8PkqJi8vDyn37zT0tKUkpKi+vXrq1mzZiZW9usXGxurd999V5988ol8fX0dc8D9/PxUq1Ytk6v79Zs+fboGDRqkZs2aKTc3V++++64SExO1Zs0as0tzC76+viXmf9euXVsNGjRgXng1mDp1qqKjoxUSEqITJ05oxowZstvtGj58uNmluYVHHnlEPXv21DPPPKOhQ4dq27ZtWrx4sRYvXlzuPmvWrKmLFy867cvPzy/b0mkGyuWVV14xmjVrZnh6ehpdu3Y1tm7danZJbiEhIcGQVGIbNWqU2aX96pV23SUZS5YsMbs0tzBmzBgjJCTE8PT0NBo1amTcdtttxhdffGF2WW4tMjLSmDRpktlluIVhw4YZgYGBhqenp9GkSRNj2LBhxqFDh8wuy6189tlnRvv27Q0vLy8jIiLCWLx4cYX6KyoqMjw9PY21a9c69i1atMgICwtzuQ/WiQUAAEC1GzNmjJYtW6YBAwbo/PnzWrdunWbOnKm//vWvLp1PiAUAAEC1O3/+vGbNmqX169fL09NTd955px599FHVqOHaugOEWAAAAFgON3YBAACgyiUlJbl0XGRkpEvHMRILAACAKme322UYhmw2m2Nfae+Li4td6o+HHQAAAKBapKamKisrS1lZWdq1a5d8fHx05swZZWVl6bvvvnMKtNfDdAIAAABUizp16qhOnTqSJB8fHxmGIT8/P0mX1oktywQBRmIBAABgOYRYAAAAVLnKvg2LEAsAbuDIkSOy2WxKSUkxuxQAburn811r1qyp0NDQax5zLYRYACiH0aNH66677nK8j4qK0uTJk02rJy0tTX/6058UFBQkb29vNW3aVIMHD9aBAwckScHBwUpPT1f79u1NqxGAe9uyZYsaNGjgeB8cHKzdu3c73vv7+ys9Pd3l/rixCwAs7uLFi+rfv79at26tFStWKDAwUMePH9eqVat09uxZSZeWtgkICDC3UABurWvXrtc9xt/f3+X+GIkFgAoaPXq0kpKS9NJLL8lms8lms+nIkSOSpD179mjQoEHy8fFR48aNNXLkSJ0+fdpxblRUlCZMmKDJkyerXr16aty4sV5//XWdO3dOMTEx8vX1VVhYmFatWnXVz9+7d68OHz6shQsXqnv37goJCVGvXr00e/Zsde/eXVLJ6QSjR4921HrllpiYKEkqKCjQ1KlT1aRJE9WuXVvdunVztAHALwEhFgAq6KWXXlKPHj00duxYpaenKz09XcHBwTp79qz69u2rzp07Kzk5WatXr9bJkyc1dOhQp/PfeustNWzYUNu2bdOECRM0btw4DRkyRD179tTOnTt1++23a+TIkfrvf/9b6uc3atRINWrU0IcffqiioiKXa75ca3p6uiZNmiR/f39FRERIksaPH68tW7Zo+fLl+vbbbzVkyBANHDhQBw8erNjFAoBKwhO7AKAcRo8erbNnz+rjjz+WdGlEtVOnTpo3b57jmNmzZ2vTpk1as2aNY9/x48cVHBys1NRUhYeHKyoqSkVFRdq0aZMkqaioSH5+frr77rv19ttvS5IyMjIUGBioLVu2OEZWf27BggV67LHHZLfb1aVLF/Xp00cjRoxQixYtJF0aiW3evLl27dqlTp06OZ27YsUKjRgxQuvWrVOvXr109OhRtWjRQkePHlVQUJDjuH79+qlr16565plnKnr5AKDCGIkFgCryzTffKCEhQT4+Po7t8kjn4cOHHcd16NDB8dput6tBgwa64YYbHPsaN24sScrMzLzqZ8XGxiojI0NLly5Vjx499MEHH6hdu3Zau3btNWvctWuXRo4cqfnz56tX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69y5c2aX5haaNm2qOXPmaMeOHUpOTlbfvn01ePBg7d271+zS3M727dv12muvqUOHDmaX4lbatWun9PR0x/bll1+aXZLbyMrKUq9evVSzZk2tWrVK+/bt0wsvvKB69epV2mf8/ClgLj0VzECZde3a1YiNjXW8LyoqMoKCgoy4uDgTq3I/koyVK1eaXYbbyszMNCQZSUlJZpfiturVq2f885//NLsMt5Kbm2u0atXKWLt2rREZGWlMmjTJ7JLcwowZM4yOHTuaXYbbevzxx41bbrml0vpr06aNcfr0acf7rKwspwx19uxZY9CgQdfth5HYMrpw4YJ27Nihfv36OfbVqFFD/fr105YtW0ysDKhe2dnZkqT69eubXIn7KSoq0vLly3Xu3Dn16NHD7HLcSmxsrO644w6nnwGoHgcPHlRQUJBatGihESNG6OjRo2aX5DY+/fRTdenSRUOGDJG/v786d+6s119/vdz97du3Tw0aNHC8r1u3rqZNm+Z47+fnp//85z/X7YcQW0anT59WUVGR4466yxo3bqyMjAyTqgKqV3FxsSZPnqxevXqpffv2ZpfjNnbv3i0fHx95eXnp4Ycf1sqVK9W2bVuzy3Iby5cv186dOxUXF2d2KW6nW7duevPNN7V69Wq9+uqrSktL06233uq4mx1V6/vvv9err76qVq1aac2aNRo3bpwmTpyot956y9S6eNgBgDKLjY3Vnj17mJNWzVq3bq2UlBRlZ2frww8/1KhRo5SUlESQrQbHjh3TpEmTtHbtWnl7e5tdjtsZNGiQ43WHDh3UrVs3hYSE6P3339f9999vYmXuobi4WF26dNEzzzwjSercubP27NmjRYsWadSoUabVxUhsGTVs2FB2u10nT5502n/y5EkFBASYVBVQfcaPH6/PP/9cCQkJatq0qdnluBVPT0+FhYXppptuUlxcnDp27KiXXnrJ7LLcwo4dO5SZmakbb7xRHh4e8vDwUFJSkl5++WV5eHhcdz1LVK66desqPDxchw4dMrsUtxAYGFjil+U2bdqYPqWDEFtGnp6euummm7R+/XrHvuLiYq1fv565afhVMwxD48eP18qVK7VhwwY1b97c7JLcXnFxsQoKCswuwy3cdttt2r17t1JSUhxbly5dNGLECKWkpMhut5tdolvJy8vT4cOHFRgYaHYpbqFXr14lllT87rvvFBIS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0blz5zRy5Eh5enpaXffwww8rMTFRTz31VJntTJ8+XW3btrXqNTWZTFq0aJF69+6t8PBwTZ48Wa1bt9aVK1e0fv16nTp1Smaz2aqd8+fPKzs72+qYh4eH6tSpU97HAgAAABts2bJFnTt3LnX82qQBx48fV1xcnNasWXPDdso9JrZVq1ZKT09XQECAHn30UbVs2VJPPvmkoqKitGnTJsscsWWpX7++HnvsMU2dOlWJiYnq1atXqQArXQ2x6enp+uGHH8psJygoSCNGjNClS5esjnfr1k3btm1TcHCw4uPj1aZNG3Xv3l1LlizRW2+9VWp+2ri4OPn4+Fhts2fPLu8jAQAAgI3KCrDXfPjhh2rfvn2pjseymAwWgK6QvLw8eXp6auubfmpwO0vPwnkUFpk08V9tJUmvP7Bbbi78FgLncOmKSc/+++qv/U8//bTUVJMAKu7UqVMaNWqUvvnmG73xxht64oknbnpPuYcTwNqVkhoqLLr5dcBvRWGRqczPwG/dlZL//8fLW5l3HHB2v159taioSO+++67atWunnTt3ys/Pz6Z2CLG36OU1QapZs6a9ywDs4sVVbexdAgDAwXz55ZdW+0VFRTp37pwGDRpkc4CVCLEAAACoRt9//32pY1999ZWeeOIJff7550pMTFSLFi1u2g5jYivo2pjYkydPMmcsnIphGCosLJR0df5k/lkVzohf+0DlO3v2rEaNGqVVq1bptdde0x//+McbXk+IraBrITY3N5cQCwAAUEk++eQTxcfH69y5cze8rkLLzgIA4GwMw9ClS5d06dIlm5dfB1B+/fv3v+E0XNcQYgEAsEFhYaEGDx6swYMHW4bUAKh8Fy9e1Nq1a296HSEWAAAb/HKBnV8vtgOg+hFiAQAA4HCYYgsAABuUlJSU+RlA+ZjN5koZV06IBQDABvn5+Vaf69evb8dqAMe1cuXKG57Pzc1VbGzsTdup8uEECxYskIeHh4qK/n9t1oKCAtWsWVORkZFW16akpMhkMunw4cPy9/fXrFmzSrU3depUdezYscx9f39/mUym627Dhw+XpOueX7p0aSX/9AAAAPilBx988IZbnz59bGqnyntio6KiVFBQoPT0dHXr1k2StGHDBnl7e2vLli26dOmSatWqJUlKTk5W8+bN1bJlywp919atW1VcXCxJ+u677/Twww9r//79lnlca9eu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xAIAAKDKff7555bPx44dU2RkpK5cuaKgoCDNnDmz3O0xJhYAAADV5vjx44qMjFSTJk20du1azZ8/X3/961/L3Q49sQAAAKgWJ06cUFRUlHx9fZWUlKQ6deroyy+/1P3336/69evr8ccft7ktQiwAAACqXFZWliIjI9W4cWOtWrVKderUkSRFRkZqyZIlGjJkiOrWratHHnnEpvZMhmEYVVkwAAAAEBISIi8vL61evVru7u6lzn/44YcaNWqULl68aFN79MQCAACgynl5eWnVqlVlBlhJeuyxx3TmzBmb26MnFgAAAFWuoKDgugG2IgixAAAAqHK2LHZgGIY++OADm9ojxAIAAKDKDRo06LrniouL9c033+jixYsqKSmxqT3GxAIAAKDK/XKxg1/68ssv9cILL6hWrVqaMmWKze2x2AEAAACq3YYNG9S9e3dFR0frgQce0I8//qjnnnvO5vsJsQAAAKg2u3btUv/+/XXvvfeqbdu2OnTokF577TV5enqWqx1CLAAAAKrcTz/9pNjYWHXs2FEuLi7auXOn3nvvPfn6+laoPV7sAgAAQJWrVauWatSooaefflphYWHXvW7AgAE2tUeIBQAAQJVzcXHRzWKnYRg2z05AiAUAAIDDYUwsAAAAHA7zxAIAAKDa7NmzR/v371deXl6Z52NjY21qh+EEAAAAqHJ5eXl69NFHtWbNGrm4uKhOnTqlrjEMQ+fOnbOpPXpiAQAAUOWmTJminJwcbdu2TR07drzl9uiJBQAAQJULCgrSggUL1LNnz0ppjxe7AAAAUOVOnDihgICASmuPEAsAAIAq17RpU+3bt6/S2mNMLAAAAKrcoEGDNGHCBLm6uurOO++Up6fnLbXHmFgAAABUuf/+97964okntHTp0huu3MWKXQAAAPifk5WVpQMHDig3N7fM8w8++KBN7RBiK8gwDOXn58vDw0Mmk8ne5QAAADgVxsRWUH5+vjw9PZWbm6vbb7/d3uUAAAA4hLS0NH3yySc6cOCATCaTAgMDFRMToy5dupSrHWYnAADABoZh6NKlS7p06dINx/MBuL5JkyYpLCxMixYtUlZWlk6cOKEPPvhA3bp104svvliutgixAADYoLCwUIMHD9bgwYNVWFho73IAh7N8+XK9+eabmjVrls6ePavt27dr+/btOnv2rN555x399a9/1YoVK2xujxAL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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "palette = {\n", + " 'ORANGE': 'orange',\n", + " 'WHITE': 'wheat',\n", + "}\n", + "# We need the encoded Item Size column to use it as the x-axis values in the plot\n", + "pumpkins['Item Size'] = encoded_pumpkins['ord__Item Size']\n", + "\n", + "g = sns.catplot(\n", + " data=pumpkins,\n", + " x=\"Item Size\", y=\"Color\", row='Variety',\n", + " kind=\"box\", orient=\"h\",\n", + " sharex=False, margin_titles=True,\n", + " height=1.8, aspect=4, palette=palette,\n", + ")\n", + "# Defining axis labels \n", + "g.set(xlabel=\"Item Size\", ylabel=\"\").set(xlim=(0,6))\n", + "g.set_titles(row_template=\"{row_name}\")\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ឥឡូវនេះយើងមកផ្តោតលើទំនាក់ទំនងជាក់លាក់មួយ៖ ទំហំធាតុ និងពណ៌!\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import warnings\n", + "warnings.filterwarnings(action='ignore', category=UserWarning, module='seaborn')" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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CqaZPpI33vSZxDsgvoKetmSb8564Msty4KSbTd+ceqvpq4mOtO+mlXfot8hxzVc4Bds/wvWak12GJ38sntwKPMEaV8zy5OArPgXL8eMrnu7uY5aDr3h6T+wUrH53nj3BGjy5lXjyx+JkuxMk2z/C1MUXxFs4BdcwZvvwl8zEth18JTP73VW18BZMwgkcTn+WTKLJtAN5sBA4EP/3ZTHY+yo0vw/BE6Fotvv97Tuhfo1Z4lm+xD3Yh9th99PmmX/F2e5lubEYND5vJoYWznIvywWz1HXvBjOAlJ4RX2IMZqnr7lVmOXP5Oe5ludEw1D9rlimXLHQvywXY/0bP8uQTzMqbRB11ZvmtN2jKTVhmSKTTtCXcZu7uJC7LBWh8CVo3mzsMBVPdsZYtsOcls/y1bLF7sO9uNuUCVJzjHuxjUVOfjjoonu9elgtw4O348uSSfglGZyPU/dEkPxXnuO/eRLrMSqTuJlOfrH7fGvesjy9PLux3l6p1mzlvgRKz9DthySTdrWZuSDRsznfiYB+LmWXN7bVQNM+9pByg6f348uSShe7zHdpnzrcTMG1JfDQW7Ya6Z8zy5LIz3IkLHNu+mzjhXJNoP1UinfuJdbdh+/Oxfe7rbrS7jWjnfiwngJ1V5FpdE4t2E2k3q4Kc7GKshD5mljbvJRbpxA4UYvdLXKJdzURDTVje7KQlxrFIiEjHHrAcnKySnkdGveVGibQ3QjSMk1WE5RngEap8rI6bVT+tra1s3rwZgOnTp/ODH/yA008/ncLCQkaNGnXI7Yc8UREREZFj7rhZ9fPaa69x+unxX0p1/fXXA3DllVdy//33D1OtREREJFMMa6KyaNEiMuTJk4iIiGSg42oyrYiIiHy6KFERERGRjKVERURERDKWEhURERHJWEpUREREJGMpUREREZGMpURFREREMpYSFREREclYSlREREQkYylRERERkYylREVEREQylhIVERERyVhKVERERCRjKVERERGRjKVERURERDKWEhURERHJWEpUREREJGMpUREREZGMpURFREREMpYSFREREclYSlREREQkYylRERERkYylREVEREQylhIVERERyVhKVERERCRjKVERERGRjKVERURERDKWEhURERHJWEpUREREJGMpUREREZGMpURFREREMpYSFREREclYSlREREQkYylRERERkYylREVE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txPt3Ifl+HvakniMwj3HKNZzjNKd7wLXknLTlpae5cnpzndj2rZEO/YQi3RjZ410LSkHjmnfTVwVd6wn0fY6rlb9PPzww1x55ZX8/Oc/Z/bs2dx111088sgj/OUvf0mau9LfkCcqIiIicswdN6t+AC6++GL27NnDv/zLv1BfX8+0adNYtWrVIZMUERER+eQb9jsqR0N3VERERI4/gxm/j6tVPyIiIvLpokRFREREMpYSFREREclYSlREREQkYylRERERkYylREVEREQylhIVERERyVhKVERERCRjKVERERGRjDXsv0L/aPT+Ut3m5uZhromIiIgcrt5x+3B+Of5xnai0tLQAUF1dfYh3ioiISKZpaWkhPz9/wPcc13/rJxqNsnv3bvLy8lx/Kls+mZqbm6murqa2tlZ/20nkE0af70+XWCxGS0sLFRUV2PbAs1CO6zsqtm1TVVU13NWQj1kwGNSFTOQTSp/vT49D3Unppcm0IiIikrGUqIiIiEjGUqIixw2/38/NN9+M3+8f7qqIyDGmz7ekc1xPphUREZFPNt1RERERkYylREVEREQylhIVERERyVhKVERERCRjKVGR48aKFSuoqakhEAgwZ84cXn311eGukogcpRdeeIFzzz2XiooKLMviiSeeGO4qSYZRoiLHhYcffpjrr7+em2++mTfeeINTTjmFJUuW0NjYONxVE5Gj0NbWximnnMKKFSuGuyqSobQ8WY4Lc+bMYdasWdx9992A+TtP1dXVLFu2jBtvvHGYaycix4JlWTz++ON84QtfGO6qSAbRHRXJeF1dXbz++ussXry47zXbtlm8eDHr168fxpqJiMhQU6IiGW/v3r1EIhFKS0tdr5eWllJfXz9MtRIRkY+DEhURERHJWEpUJOMVFRXhOA4NDQ2u1xsaGigrKxumWomIyMdBiYpkPJ/Px8yZM1m9enXfa9FolNWrVzNv3rxhrJmIiAw1z3BXQORwXH/99Vx55ZWceuqpzJ49m7vuuou2tjauvvrq4a6aiByF1tZWNm/e3PfvrVu38tZbb1FYWMioUaOGsWaSKbQ8WY4bd999N8uXL6e+vp5p06bx4x//mDlz5gx3tUTkKKxbt47TTz896fUrr7yS+++//+OvkGQcJSoiIiKSsTRHRURERDKWEhURERHJWEpUREREJGMpUREREZGMpURFREREMpYSFREREclYSlREREQkYylRERERkYylREVEMtott9zCtGnThrsaIjJMlKiIyJCqr69n2bJljB07Fr/fT3V1Neeee67rj0yKiKSjP0ooIkNm27ZtnHbaaYwYMYLly5dz8skn093dzTPPPMN1113HX/7yl4+lHt3d3Xi93o9lXyJybOmOiogMmWuvvRbLsnj11Ve58MILmThxIlOmTOH6669nw4YNAOzYsYPzzz+f3NxcgsEgF110EQ0NDWnLjEaj3HrrrVRVVeH3+5k2bRqrVq3qi2/btg3Lsnj44YdZuHAhgUCABx54YMjbKiJDQ4mKiAyJ/fv3s2rVKq677jpycnKS4iNGjCAajXL++eezf/9+nn/+eZ599lk++ugjLr744rTl/uhHP+L73/8+d955J2+//TZLlizhvPPO48MPP3S978Ybb+Tb3/42mzZtYsmSJce8fSLy8dCjHxEZEps3byYWizFp0qS071m9ejXvvPMOW7dupbq6GoBf//rXTJkyhY0bNzJr1qykbe68806++93vcskllwBwxx13sHbtWu666y5WrFjR976///u/54ILLjjGrRKRj5vuqIjIkIjFYod8z6ZNm6iuru5LUgBOPPFERowYwaZNm5Le39zczO7duznttNNcr5922mlJ7z/11FOPsOYikkmUqIjIkJgwYQKWZX1sE2b7S/W4SUSOP0pURGRIFBYWsmTJElasWEFbW1tS/ODBg0yePJna2lpqa2v7Xn///fc5ePAgJ554YtI2wWCQiooKXn75ZdfrL7/8csr3i8jxT3NURGTIrFixgtNOO43Zs2dz6623MnXqVMLhMM8++yz33HMP77//PieffDKXX345d911F+FwmGuvvZaFCxemfXRzww03cPPNNzNu3DimTZvGfffdx1tvvaWVPSKfUEpURGTIjB07ljfeeIN///d/5zvf+Q51dXUUFxczc+ZM7rnnHizL4sknn2TZsmV89rOfxbZtzj77bH7yk5+kLfNb3/oWTU1NfOc736GxsZETTzyRlStXMmHChI+xZSLycbFihzPjTURERGQYaI6KiIiIZCwlKiIiIpKxlKiIiIhIxlKiIiIiIhlLiYqIiIhkLCUqIiIikrGUqIiIiEjGUqIiIiIiGUuJioiIiGQsJSoiIiKSsZSoiIiISMb6/wHCnL2DXQSZ/gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Suppressing warning message claiming that a portion of points cannot be placed into the plot due to the high number of data points\n", + "import warnings\n", + "warnings.filterwarnings(action='ignore', category=UserWarning, module='seaborn')\n", + "\n", + "palette = {\n", + " 0: 'orange',\n", + " 1: 'wheat'\n", + "}\n", + "sns.swarmplot(x=\"Color\", y=\"ord__Item Size\", hue=\"Color\", data=encoded_pumpkins, palette=palette)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**ប្រយ័ត្ន**៖ ការមិនយកចិត្តទុកដាក់ការព្រមាន មិនមែនជាជំនាញល្អបំផុតនិងគួរត្រូវបានជៀសវាង ទៅតាមអាចធ្វើបាន។ ការព្រមានជាញឹកញាប់មានសារៈសំខាន់ដែលអាចជួយឱ្យយើងធ្វើឱ្យកូដរបស់យើងកាន់តែប្រសើរឡើង និងដោះស្រាយបញ្ហាមួយ។ \n", + "ហេតុផលដែលយើងមិនយកចិត្តទុកដាក់ការព្រមានជាក់លាក់នេះ គឺដើម្បីធានាបាននូវភាពអានបានងាយនៃគំនូស។ ការគូរគ្រប់ចំណុចទិន្នន័យជាមួយទំហំនសញ្ញាតូចជាង ហើយនៅពេលដែលរក្សាបានភាពស្ថាចរភាពជាមួយពណ៌ប៉ាលៀត ធ្វើឱ្យមានការមើលឃើញមិនច្បាស់លាស់។\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# សង់ម៉ូដែលរបស់អ្នក\n" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "# X is the encoded features\n", + "X = encoded_pumpkins[encoded_pumpkins.columns.difference(['Color'])]\n", + "# y is the encoded label\n", + "y = encoded_pumpkins['Color']\n", + "\n", + "# Split the data into training and test sets\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " 0 0.94 0.98 0.96 166\n", + " 1 0.85 0.67 0.75 33\n", + "\n", + " accuracy 0.92 199\n", + " macro avg 0.89 0.82 0.85 199\n", + "weighted avg 0.92 0.92 0.92 199\n", + "\n", + "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 1 0 0 0 0 0 0 0 0 1 0 0 0 0\n", + " 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n", + " 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0\n", + " 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 1 0 0 0 1 1 0\n", + " 0 0 0 0 1 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 1\n", + " 0 0 0 1 0 0 0 0 0 0 0 0 1 1]\n", + "F1-score: 0.7457627118644068\n" + ] + } + ], + "source": [ + "from sklearn.metrics import f1_score, classification_report \n", + "from sklearn.linear_model import LogisticRegression\n", + "\n", + "# Train a logistic regression model on the pumpkin dataset\n", + "model = LogisticRegression()\n", + "model.fit(X_train, y_train)\n", + "predictions = model.predict(X_test)\n", + "\n", + "# Evaluate the model and print the results\n", + "print(classification_report(y_test, predictions))\n", + "print('Predicted labels: ', predictions)\n", + "print('F1-score: ', f1_score(y_test, predictions))" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[162, 4],\n", + " [ 11, 22]])" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from sklearn.metrics import confusion_matrix\n", + "confusion_matrix(y_test, predictions)" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhgAAAIjCAYAAABBOWJ+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAABgUElEQVR4nO3dd1gUV8MF8LOUZelqsItBjTV2jcYKKgoWFDWKJUKIvUc0tqjYoibWxKDGFqwRNGqMjQiC3WhE7CX2BiixgHR27/eHL/tJBGVxl9lyfs/DE3aY2T07ETjcuTMjE0IIEBEREWmRmdQBiIiIyPiwYBAREZHWsWAQERGR1rFgEBERkdaxYBAREZHWsWAQERGR1rFgEBERkdaxYBAREZHWsWAQERGR1rFgEBERkdaxYBCZgODgYMhkMvWHhYUFypYtiy+++AIPHz7MdRshBDZs2ICWLVuiSJEisLGxQa1atTBz5kwkJyfn+Vo7duxA+/bt4eTkBLlcjjJlyqBnz544ePBgvrKmpaVh8eLFaNy4MRwdHaFQKFClShWMGDEC169fL9D7J6LCJ+O9SIiMX3BwMPz9/TFz5kxUqFABaWlpOHnyJIKDg+Hi4oKLFy9CoVCo11cqlejTpw9CQ0PRokULdOvWDTY2Njhy5Ag2b96MGjVqIDw8HCVLllRvI4TAl19+ieDgYNSrVw+fffYZSpUqhdjYWOzYsQNnzpzBsWPH0LRp0zxzJiQkwNPTE2fOnEGnTp3g7u4OOzs7XLt2DVu2bEFcXBwyMjJ0uq+ISEsEERm9X375RQAQp0+fzrF8woQJAoAICQnJsXzOnDkCgBg3btwbz7Vr1y5hZmYmPD09cyyfP3++ACC++uoroVKp3thu/fr14q+//nprzo4dOwozMzOxbdu2N76WlpYmxo4d+9bt8yszM1Okp6dr5bmIKHcsGEQmIK+CsXv3bgFAzJkzR70sJSVFFC1aVFSpUkVkZmbm+nz+/v4CgDhx4oR6m2LFiolq1aqJrKysAmU8efKkACAGDhyYr/VdXV2Fq6vrG8v9/PzEhx9+qH58+/ZtAUDMnz9fLF68WFSsWFGYmZmJkydPCnNzczF9+vQ3nuPq1asCgFi6dKl62bNnz8To0aNFuXLlhFwuF5UqVRLz5s0TSqVS4/dKZAo4B4PIhN25cwcAULRoUfWyo0eP4tmzZ+jTpw8sLCxy3c7X1xcAsHv3bvU2T58+RZ8+fWBubl6gLLt27QIA9OvXr0Dbv8svv/yCpUuXYtCgQVi4cCFKly4NV1dXhIaGvrFuSEgIzM3N0aNHDwBASkoKXF1dsXHjRvj6+uLHH39Es2bNMGnSJAQEBOgkL5Ghy/2nBxEZpRcvXiAhIQFpaWn466+/MGPGDFhZWaFTp07qdS5fvgwAqFOnTp7Pk/21K1eu5PhvrVq1CpxNG8/xNg8ePMCNGzdQvHhx9TIfHx8MHjwYFy9eRM2aNdXLQ0JC4Orqqp5jsmjRIty8eRNnz55F5cqVAQCDBw9GmTJlMH/+fIwdOxbOzs46yU1kqDiCQWRC3N3dUbx4cTg7O+Ozzz6Dra0tdu3ahXLlyqnXSUpKAgDY29vn+TzZX0tMTMzx37dt8y7aeI636d69e45yAQDdunWDhYUFQkJC1MsuXryIy5cvw8fHR71s69ataNGiBYoWLYqEhAT1h7u7O5RKJQ4fPqyTzESGjCMYRCYkKCgIVapUwYsXL7B27VocPnwYVlZWOdbJ/gWfXTRy898S4uDg8M5t3uX15yhSpEiBnycvFSpUeGOZk5MT2rRpg9DQUMyaNQvAq9ELCwsLdOvWTb3eP//8g/Pnz79RULI9fvxY63mJDB0LBpEJadSoERo2bAgA8Pb2RvPmzdGnTx9cu3YNdnZ2AIDq1asDAM6fPw9vb+9cn+f8+fMAgBo1agAAqlWrBgC4cOFCntu8y+vP0aJFi3euL5PJIHI5y16pVOa6vrW1da7Le/XqBX9/f8TExKBu3boIDQ1FmzZt4OTkpF5HpVKhbdu2GD9+fK7PUaVKlXfmJTI1PERCZKLMzc0xd+5cPHr0CD/99JN6efPmzVGkSBFs3rw5z1/W69evBwD13I3mzZujaNGi+PXXX/Pc5l28vLwAABs3bszX+kWLFsXz58/fWH737l2NXtfb2xtyuRwhISGIiYnB9evX0atXrxzrVKpUCS9fvoS7u3uuH+XLl9foNYlMAQsGkQlzc3NDo0aNsGTJEqSlpQEAbGxsMG7cOFy7dg3ffPPNG9vs2bMHwcHB8PDwwKeffqreZsKECbhy5QomTJiQ68jCxo0bcerUqTyzNGnSBJ6enli9ejV27tz5xtczMjIwbtw49eNKlSrh6tWrePLkiXrZuXPncOzYsXy/fwAoUqQIPDw8EBoaii1btkAul78xCtOzZ0+cOHECYWFhb2z//PlzZGVlafSaRKaAV/IkMgHZV/I8ffq0+hBJtm3btqFHjx5Yvnw5hgwZAuDVYQYfHx/89ttvaNmyJbp37w5ra2scPXoUGzduRPXq1REREZHjSp4qlQpffPEFNmzYgPr166uv5BkXF4edO3fi1KlTOH78OJo0aZJnzidPnqBdu3Y4d+4cvLy80KZNG9ja2uKff/7Bli1bEBsbi/T0dACvzjqpWbMm6tSpg/79++Px48dYsWIFSpYsicTERPUpuHfu3EGFChUwf/78HAXldZs2bcLnn38Oe3t7uLm5qU+ZzZaSkoIWLVrg/Pnz+OKLL9CgQQMkJyfjwoUL2LZtG+7cuZPjkAoRgVfyJDIFeV1oSwghlEqlqFSpkqhUqVKOi2QplUrxyy+/iGbNmgkHBwehUCjExx9/LGbMmCFevnyZ52tt27ZNtGvXThQrVkxYWFiI0qVLCx8fHxEVFZWvrCkpKWLBggXik08+EXZ2dkIul4vKlSuLkSNHihs3buRYd+PGjaJixYpCLpeLunXrirCwsLdeaCsviYmJwtraWgAQGzduzHWdpKQkMWnSJPHRRx8JuVwunJycRNOmTcWCBQtERkZGvt4bkSnhCAYRERFpHedgEBERkdaxYBAREZHWsWAQERGR1rFgEBERkdaxYBAREZHWsWAQERGR1pncvUhUKhUePXoEe3t7yGQyqeMQEREZDCEEkpKSUKZMGZiZvX2MwuQKxqNHj+Ds7Cx1DCIiIoN1//59lCtX7q3rmFzByL699P3799W3hyYiIqJ3S0xMhLOzs/p36duYXMHIPizi4ODAgkFERFQA+ZliwEmeREREpHUsGERERKR1LBhERESkdSwYREREpHUsGERERKR1LBhERESkdSwYREREpHUsGERERKR1LBhERESkdSwYREREpHUsGERERKR1LBhERESkdSwYREREpHUsGERERKR1khaMw4cPw8vLC2XKlIFMJsPOnTvfuU1UVBTq168PKysrfPTRRwgODtZ5TiIiItKMpAUjOTkZderUQVBQUL7Wv337Njp27IhWrVohJiYGX331FQYMGICwsDAdJyUiIiJNWEj54u3bt0f79u3zvf6KFStQoUIFLFy4EABQvXp1HD16FIsXL4aHh4euYhoVIQSi7z3Dk6R0qaMQEVEh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isTERGRlZSEtLQ0pKSmwsbF543kCAgIwYMAAbNiwQT3MX6lSJQCvDp+cP38emzZtUq8vhIBKpcLt27dRvXr1XLO9ePECdnZ2UKlUSEtLQ/PmzbF69WokJibi0aNHaNasWY71mzVrhnPnzgF4dXijbdu2qFq1Kjw9PdGpUye0a9fuvfZV3759MXDgQCxbtgxWVlbYtGkTevXqBTMzM/X7PHbsWI4RC6VS+db9BgBVq1bFrl27kJaWho0bNyImJgYjR47MsU5QUBDWrl2Le/fuITU1FRkZGahbt+5b8547dw43btyAvb19juVpaWm4efNmAfYAkf5hwSDSU7a2tvjoo49yLLtz5w46deqEoUOH4ttvv0WxYsVw9OhR9O/fHxkZGbn+opw+fTr69OmDPXv2YN++fQgMDMSWLVvQtWtXvHz5EoMHD8aoUaPe2K58+fJ5ZrO3t0d0dDTMzMxQunRpWFtbAwASExPf+b7q16+P27dvY9++fQgPD0fPnj3h7u6Obdu2vXPbvHh5eUEIgT179uCTTz7BkSNHsHjxYvXXX758iRkzZqBbt25vbKtQKPJ8Xrlcrv5/MG/ePHTs2BEzZszArFmzAABbtmzBuHHjsHDhQjRp0gT29vaYP38+/vrrr7fmffnyJRo0aJCj2GXTl4m8RO+LBYPIgJw5cwYqlQoLFy5U/3Wefbz/bapUqYIqVapgzJgx6N27N3755Rd07doV9evXx+XLl98oMu9iZmaW6zYODg4oU6YMjh07BldXV/XyY8eOoVGjRjnW8/HxgY+PDz777DN4enri6dOnKFasWI7ny57voFQq35pHoVCgW7du2LRpE27cuIGqVauifv366q/Xr18f165d0/h9/teUKVPQunVrDB06VP0+mzZtimHDhqnX+e8IhFwufyN//fr1ERISghIlSsDBweG9MhHpK07yJDIgH330ETIzM7F06VLcunULGzZswIoVK/JcPzU1FSNGjEBUVBTu3r2LY8eO4fTp0+pDHxMmTMDx48cxYsQIxMTE4J9//sHvv/+u8STP13399df47rvvEBISgmvXrmHixImIiYnB6NGjAQCLFi3Cr7/+iqtXr+L69evYunUrSpUqlevFwUqUKAFra2vs378f8fHxePHiRZ6v27dvX+zZswdr165VT+7MNm3aNKxfvx4zZszApUuXcOXKFWzZsgVTpkzR6L01adIEtWvXxpw5cwAAlStXxt9//42wsDBcv34dU6dOxenTp3Ns4+LigvPnz+PatWtISEhAZmYm+vbtCycnJ3Tp0gVHjhzB7du3ERUVhVGjRuHBgwcaZSLSW1JPAiGiN+U2MTDbokWLROnSpYW1tbXw8PAQ69evFwDEs2fPhBA5J2Gmp6eLXr16CWdnZyGXy0WZMmXEiBEjckzgPHXqlGjbtq2ws7MTtra2onbt2m9M0nzdfyd5/pdSqRTTp08XZcuWFZaWlqJOnTpi37596q+vXLlS1K1bV9ja2goHBwfRpk0bER0drf46XpvkKYQQq1atEs7OzsLMzEy4urrmuX+USqUoXbq0ACBu3rz5Rq79+/eLpk2bCmtra+Hg4CAaNWokVq5cmef7CAwMFHXq1Hlj+a+//iqsrKzEvXv3RFpamvjiiy+Eo6OjKFKkiBg6dKiYOHFiju0eP36s3r8ARGRkpBBCiNjYWOHr6yucnJyElZWVqFixohg4cKB48eJFnpmIDIlMCCGkrThERERkbHiIhIiIiLSOBYOIiIi0jgWDiIiItI4Fg4iIiLSOBYOIiIi0jgWDiIiItI4Fg4iIiLSOBYOIiIi0jgWDiIiItI4Fg4iIiLSOBYOIiIi07v8A1k+hWenkwRsAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "from sklearn.metrics import roc_curve, roc_auc_score\n", + "import matplotlib\n", + "import matplotlib.pyplot as plt\n", + "%matplotlib inline\n", + "\n", + "y_scores = model.predict_proba(X_test)\n", + "# calculate ROC curve\n", + "fpr, tpr, thresholds = roc_curve(y_test, y_scores[:,1])\n", + "\n", + "# plot ROC curve\n", + "fig = plt.figure(figsize=(6, 6))\n", + "# Plot the diagonal 50% line\n", + "plt.plot([0, 1], [0, 1], 'k--')\n", + "# Plot the FPR and TPR achieved by our model\n", + "plt.plot(fpr, tpr)\n", + "plt.xlabel('False Positive Rate')\n", + "plt.ylabel('True Positive Rate')\n", + "plt.title('ROC Curve')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.9749908725812341\n" + ] + } + ], + "source": [ + "# Calculate AUC score\n", + "auc = roc_auc_score(y_test,y_scores[:,1])\n", + "print(auc)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**: \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមជម្រាបថាការបកប្រែស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាមានដើមគួរត្រូវបានទទួលស្គាល់ជាដើមទុន។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែដោយមនុស្សវិជ្ជាជីវៈគួរតែត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលបន្ទុកចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.16" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "orig_nbformat": 2, + "vscode": { + "interpreter": { + "hash": "949777d72b0d2535278d3dc13498b2535136f6dfe0678499012e853ee9abcab1" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/2-Regression/README.md b/translations/km/2-Regression/README.md new file mode 100644 index 000000000..b92e08bec --- /dev/null +++ b/translations/km/2-Regression/README.md @@ -0,0 +1,47 @@ +# ម៉ូដែលថយចុះសម្រាប់ការរៀនម៉ាស៊ីន +## ប្រធានស្រុក: ម៉ូដែលថយចុះសម្រាប់តម្លៃដង្កូវនៅអាមេរិកខាងជើង 🎃 + +នៅអាមេរិកខាងជើង ដង្កូវគេជាញឹកញាប់ដាក់ញញឹមគួរឱ្យភ័យសម្រាប់បុណ្យហាឡូវីន។ យើងមកស្វែងយល់បន្ថែមអំពីបន្លែអស្ចារ្យទាំងនេះ! + +![jack-o-lanterns](../../../translated_images/km/jack-o-lanterns.181c661a9212457d.webp) +> រូបថតដោយ Beth Teutschmann នៅលើ Unsplash + +## អ្វីដែលអ្នកនឹងរៀន + +[![Introduction to Regression](https://img.youtube.com/vi/5QnJtDad4iQ/0.jpg)](https://youtu.be/5QnJtDad4iQ "Regression Introduction video - Click to Watch!") +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូណែនាំខ្លីអំពីមេរៀននេះ + +មេរៀននៅផ្នែកនេះគ្របដណ្តប់ពីប្រភេទនៃការថយចុះក្នុងបរិបទនៃការរៀនម៉ាស៊ីន។ ម៉ូដែលថយចុះអាចជួយកំណត់ _ទំនាក់ទំនង_ រវាងអថេរ។ ម៉ូដែលប្រភេទនេះអាចទាយទានតម្លៃដូចជា ប្រវែង សីតុណ្ហភាព ឬអាយុ ដូច្នេះបង្ហាញទំនាក់ទំនងរវាងអថេរនាពេលវេលានេះដែលវាធ្វើវិភាគទិន្នន័យ។ + +ក្នុងស៊េរីមេរៀននេះ អ្នកនឹងស្វែងយល់ពីភាពខុសគ្នារវាងការថយចុះបន្ទាត់និងការថយចុះលូជីស្ទិក ហើយពេលណាដែលអ្នកគួរជ្រើសរើសមួយពីរ។ + +[![ML for beginners - Introduction to Regression models for Machine Learning](https://img.youtube.com/vi/XA3OaoW86R8/0.jpg)](https://youtu.be/XA3OaoW86R8 "ML for beginners - Introduction to Regression models for Machine Learning") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូខ្លីណែនាំម៉ូដែលថយចុះ។ + +ក្នុងក្រុមមេរៀននេះ អ្នកនឹងត្រូវរៀបចំដើម្បីចាប់ផ្តើមបំពេញភារកិច្ចការរៀនម៉ាស៊ីន រួមមានការកំណត់ Visual Studio Code ដើម្បីគ្រប់គ្រងសៀវភៅកំណត់ត្រា ដែលជាបរិស្ថានទូទៅសម្រាប់អ្នកវិទ្យាសាស្ត្រទិន្នន័យ។ អ្នកនឹងស្វែងយល់អំពី Scikit-learn ដែលជាបណ្ណាល័យសម្រាប់ការរៀនម៉ាស៊ីន ហើយអ្នកនឹងបង្កើតម៉ូដែលដំបូងរបស់អ្នក អាប់ផោគខណៈម៉ូដែលថយចុះនៅក្នុងជំពូកនេះ។ + +> មានឧបករណ៍លឿនទាបកូដដែលមានប្រយោជន៍អាចជួយអ្នករៀនអំពីការប្រើប្រាស់ម៉ូដែលថយចុះ។ សូមសាកល្បង [Azure ML សម្រាប់ភារកិច្ចនេះ](https://docs.microsoft.com/learn/modules/create-regression-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) + +### មេរៀន + +1. [ឧបករណ៍នៃការការជួញដូរ](1-Tools/README.md) +2. [ការគ្រប់គ្រងទិន្នន័យ](2-Data/README.md) +3. [ការថយចុះបន្ទាត់និងពហុបន្ទាត់](3-Linear/README.md) +4. [ការថយចុះលូជីស្ទិក](4-Logistic/README.md) + +--- +### អនុញ្ញាតឲ្យរំពឹងទុក + +"ML with regression" ត្រូវបានសរសេរជាមួយនូវ ♥️ ដោយ [Jen Looper](https://twitter.com/jenlooper) + +♥️ អ្នកចូលរួមសំណួរ​មានរួមទាំង: [Muhammad Sakib Khan Inan](https://twitter.com/Sakibinan) និង [Ornella Altunyan](https://twitter.com/ornelladotcom) + +ទិន្នន័យដង្កូវត្រូវបានណែនាំដោយ [គម្រោងនេះនៅ 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) ដែលចែកចាយដោយក្រសួងកសិកម្មសហរដ្ឋអាមេរិក។ យើងបានបន្ថែមចំណុចខ្លះៗជុំវិញពណ៌ដោយផ្អែកលើប្រភេទដូច្នេះដើម្បីធ្វើអោយការចែកចាយស្មើគ្នា។ ទិន្នន័យនេះគឺនៅក្នុងដែនសាធារណៈ។ + +--- + + +**ការសំរាក**៖ +ឯកសារ​នេះ​ត្រូវ​បាន​បកប្រែ​ដោយ​វិញ្ញាណ​បច្ចេកវិទ្យាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេល​យើងខិតខំប្រឹងប្រែង​ដើម្បីភាព​ជាក់ស្តែង សូមយល់ថា ការបកប្រែ​ដោយស្វ័យប្រវត្តិ​អាចមាន​កំហុស ឬ​អកុសលភាព ។ ឯកសារ​ដើម​នៅ​ភាសាជាតិសុទ្ធ​គួរត្រូវបាន​គិត​ជា​ឯកសារដើម​ដែល​មានសុពលភាព​ខ្ពស់ជាងគេ ។ សម្រាប់​ព័ត៌មាន​សំខាន់ៗ ការបកប្រែ​ដោយ​មនុស្សវិជ្ជាជីវៈ​ត្រូវបាន​ណែនាំ ។ យើង​មិនទទួលខុសត្រូវ​ចំពោះ​ការ​កើតមាន​ការយល់ច្រឡំ ឬ​ការ​បក​ស្រាយខុសៗ ដែល​កើតមាន​ពី​ការ​ប្រើ​ប្រាស់​ការ​បកប្រែ​នេះ​ដោយឡែក​ទេ។ + \ No newline at end of file diff --git a/translations/km/3-Web-App/1-Web-App/README.md b/translations/km/3-Web-App/1-Web-App/README.md new file mode 100644 index 000000000..42aafed61 --- /dev/null +++ b/translations/km/3-Web-App/1-Web-App/README.md @@ -0,0 +1,352 @@ +# បង្កើតកម្មវិធីវេបសាយដើម្បីប្រើម៉ូដែល ML + +នៅក្នុងមេរៀននេះ អ្នកនឹងបណ្តុះបណ្តាលម៉ូដែល MLលើទិន្នន័យមួយដែលមកពីពិភពលោកខាងក្រៅ៖ _ការមើលឃើញ UFO លើរយៈពេលមួយសតវត្សที่ผ่านมา_ ដែលបានយកពីមូលដ្ឋានទិន្នន័យ NUFORC។ + +អ្នកនឹងរៀន៖ + +- របៀប 'pickle' ម៉ូដែលបានបណ្តុះបណ្តាល +- របៀបប្រើម៉ូដែលនោះក្នុងកម្មវិធី Flask + +យើងនឹងបន្ដប្រើកំណត់ត្រាដើម្បីសម្អាតទិន្នន័យ និងបណ្តុះបណ្តាលម៉ូដែលរបស់យើង ប៉ុន្តែអ្នកអាចយកដំណើរការនេះទៅជំហានបន្ថែម ដោយស្វែងយល់ពីរបៀបប្រើម៉ូដែល 'នៅតាមធម្មជាតិ' និយាយម្នាដូចជា នៅក្នុងកម្មវិធីវេបសាយ។ + +ដើម្បីធ្វើនេះ អ្នកត្រូវបង្កើតកម្មវិធីវេបសាយដោយប្រើ Flask។ + +## [សំណួរមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការបង្កើតកម្មវិធី + +មានវិធីជាច្រើនក្នុងការបង្កើតកម្មវិធីវេបសាយសម្រាប់ប្រើម៉ូដែលម៉ាស៊ីនរៀន។ វិធានាស្ថាបត្យកម្មវេបសាយរបស់អ្នកអាចមានឥទ្ធិពលលើរបៀបដែលម៉ូដែលរបស់អ្នកត្រូវបានបណ្តុះបណ្តាល។ សូមនិយាយថាអ្នកកំពុងធ្វើការនៅក្នុងអាជីវកម្មមួយ ដែលក្រុមវិទ្យាសាស្រ្តទិន្នន័យបានបណ្តុះបណ្តាលម៉ូដែលដែលពួកគេចង់ឱ្យអ្នកប្រើនៅក្នុងកម្មវិធីមួយ។ + +### ពិចារណា + +មានសំណួរច្រើនដែលអ្នកត្រូវសួរ៖ + +- **វាជាកម្មវិធីវេបសាយឬកម្មវិធីចល័ត?** ប្រសិនបើអ្នកកំពុងបង្កើតកម្មវិធីចល័ត ឬត្រូវប្រើម៉ូដែលក្នុងបរិបទ IoT អ្នកអាចប្រើ [TensorFlow Lite](https://www.tensorflow.org/lite/) ហើយប្រើម៉ូដែលក្នុងកម្មវិធី Android ឬ iOS ។ +- **ម៉ូដែលនឹងផ្ទុកនៅកន្លែងណា?** នៅក្នុងពពកឬក្នុងមូលដ្ឋានក្នុងតំបន់ ? +- **គាំទ្របច្ចេកវិទ្យាឯកតា។** តើកម្មវិធីត្រូវដំណើរការបន្តរពេលអត់ចូលបណ្ដាញរឺទេ? +- **បច្ចេកវិទ្យាអ្វីដែលបានប្រើបណ្តុះបណ្តាលម៉ូដែល?** បច្ចេកវិទ្យាត្រូវបានជ្រើសអាចមានឥទ្ធិពលលើឧបករណ៍ដែលអ្នកត្រូវប្រើ។ + - **ប្រើ TensorFlow។** ប្រសិនបើអ្នកកំពុងបណ្តុះបណ្តាលម៉ូដែលដោយប្រើ TensorFlow ជាឧទាហរណ៍ អេកូសុីស្តែមនោះផ្តល់ជូនសមត្ថភាពបម្លែងម៉ូដែល TensorFlow សម្រាប់ប្រើនៅក្នុងកម្មវិធីវេបដោយប្រើ [TensorFlow.js](https://www.tensorflow.org/js/)។ + - **ប្រើ PyTorch។** ប្រសិនបើអ្នកកំពុងបង្កើតម៉ូដែលដោយប្រើបណ្ណាល័យដូចជា [PyTorch](https://pytorch.org/), អ្នកអាចនាំចេញវាទៅទ្រង់ទ្រាយ [ONNX](https://onnx.ai/) (Open Neural Network Exchange) សម្រាប់ប្រើនៅក្នុងកម្មវិធីវេប JavaScript ដែលអាចប្រើ [Onnx Runtime](https://www.onnxruntime.ai/)បាន។ ជម្រើសនេះនឹងត្រូវស្វែងរកនៅមេរៀនខាងមុខសម្រាប់ម៉ូដែលបណ្តុះបណ្តាលដោយ Scikit-learn។ + - **ប្រើ Lobe.ai ឬ Azure Custom Vision។** ប្រសិនបើអ្នកកំពុងប្រើប្រព័ន្ធ ML SaaS (Software as a Service) ដូចជា [Lobe.ai](https://lobe.ai/) ឬ [Azure Custom Vision](https://azure.microsoft.com/services/cognitive-services/custom-vision-service/?WT.mc_id=academic-77952-leestott) ដើម្បីបណ្តុះបណ្តាលម៉ូដែល ប្រព័ន្ធនេះផ្តល់វិធីសាស្រ្តនាំចេញម៉ូដែលសម្រាប់វេទិកាច្រើន រួមមានការបង្កើត API ផ្ទាល់ខ្លួនសម្រាប់ស្វែងរកក្នុងពពកដោយកម្មវិធីអនឡាញរបស់អ្នក។ + +អ្នកក៏មានឱកាសបង្កើតកម្មវិធីវេប Flask ពេញលេញមួយដែលអាចបណ្តុះបណ្តាលម៉ូដែលដោយផ្ទាល់ក្នុងកម្មវិធីរុករកវេបផងដែរ។ នេះក៏អាចធ្វើបានដោយប្រើ TensorFlow.js នៅក្នុងបរិបទ JavaScript។ + +សម្រាប់គោលបំណងរបស់យើង ដោយសារយើងបានធ្វើការងារជាមួយកំណត់ត្រាគោលបំណង Python, យើងនឹងស្វែងយល់ពីជំហានដែលត្រូវធ្វើ ដើម្បីនាំចេញម៉ូដែលដែលបានបណ្តុះបណ្តាលពីកំណត់ត្រា ចេញទៅទ្រង់ទ្រាយដែលអាចអានបានដោយកម្មវិធីវេបដែលបានស្តាប់ដោយ Python។ + +## ឧបករណ៍ + +សម្រាប់ភារកិច្ចនេះ អ្នកត្រូវការឧបករណ៍ពីរគឺ Flask និង Pickle ដែលទាំងពីររត់លើ Python។ + +✅ Flask គឺជាអ្វី? និយាយថា 'micro-framework' ដោយអ្នកបង្កើតវា, Flask ផ្តល់លក្ខណៈមូលដ្ឋាននៃ framework សម្រាប់វេបដោយប្រើ Python និងម៉ាស៊ីនផ្សំទំព័រដើម្បីបង្កើតទំព័រវេប។ សូមមើល [មូឌុលរៀននេះ](https://docs.microsoft.com/learn/modules/python-flask-build-ai-web-app?WT.mc_id=academic-77952-leestott) ដើម្បីហ្វឹកហាត់ការបង្កើតជាមួយ Flask។ + +✅ Pickle គឺជាអ្វី? Pickle 🥒 គឺជាម៉ូឌុល Python មួយសម្រាប់សេរៀលកម្ម និងបង្វិលសេរៀលកម្មរចនាសម្ព័ន្ធ objects Python។ ពេលដែលអ្នក 'pickle' ម៉ូដែល អ្នកកំពុងសេរៀលកម្ម ឬប្លាតម៉ូដែលនេះសម្រាប់ប្រើនៅលើវេប។ សូមប្រយ័ត្ន៖ pickle មិនមានសុវត្ថិភាពផ្ទាល់ខ្លួនទេ ដូច្នេះសូមប្រយ័ត្ន ពេលដែលត្រូវ unzip ឬ 'un-pickle' ឯកសារ។ ឯកសារ pickle មានគោលបំណង .pkl។ + +## លំហាត់ - សម្អាតទិន្នន័យរបស់អ្នក + +នៅក្នុងមេរៀននេះ អ្នកនឹងប្រើទិន្នន័យពីការមើលឃើញ UFO ជាង 80,000 ដង ដែលបានប្រមូលឡើងដោយ [NUFORC](https://nuforc.org) (មជ្ឈមណ្ឌលរាយការណ៍ UFO ជាតិ)។ ទិន្នន័យនេះមានការពិពណ៌នាផ្សេងៗអំពីការមើល UFO ដូចជា៖ + +- **ការពិពណ៌នាឧទាហរណ៍វែង។** "បុរសម្នាក់ឡើងពីកាំរស្មីភ្លឺមួយដែលភ្លឺលើដីឡង់ម៉ាស ស្រែព្រៃនៅយប់ ហើយគាត់រត់ទៅកាន់សួនចត់យានយន្ត Texas Instruments"។ +- **ការពិពណ៌នាឧទាហរណ៍ខ្លី។** "ពន្លឺបានវិលតាមយើង"។ + +តារាង [ufos.csv](../../../../3-Web-App/1-Web-App/data/ufos.csv) មានជួរឈរអំពី `city`, `state` និង `country` ដែលបានឃើញ, រូបរាងនៃវត្ថុ `shape` និង `latitude` និង `longitude` របស់វា។ + +នៅកំណត់ត្រាតែមួយ [notebook](notebook.ipynb) ដែលរួមបញ្ចូលក្នុងមេរៀននេះ៖ + +1. នាំចូល `pandas`, `matplotlib`, និង `numpy` ដូចជា​បានធ្វើនៅមេរៀនកន្លងមក ហើយនាំចូលតារាង ufos។ អ្នកអាចមើលគំរូទិន្នន័យមួយ៖ + + ```python + import pandas as pd + import numpy as np + + ufos = pd.read_csv('./data/ufos.csv') + ufos.head() + ``` + +1. បម្លែងទិន្នន័យ ufos ទៅកាន់ dataframe តូចមួយដោយមានចំណងជើងថ្មី។ ពិនិត្យតម្លៃដាច់ខាតនៅក្នុងវាល `Country` ។ + + ```python + ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']}) + + ufos.Country.unique() + ``` + +1. ឥឡូវនេះ អ្នកអាចកាត់បន្ថយទិន្នន័យដែលត្រូវដោះស្រាយ ដោយបោះបង់តម្លៃ null និងនាំចូលតែចំនួនវេលាដែលមានរវាង 1-60 វិនាទីតែប៉ុណ្ណោះ៖ + + ```python + ufos.dropna(inplace=True) + + ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)] + + ufos.info() + ``` + +1. នាំចូលបណ្ណាល័យ `LabelEncoder` របស់ Scikit-learn ដើម្បីបម្លែងតម្លៃអក្សររបស់ប្រទេសទៅជាលេខ៖ + + ✅ LabelEncoder គឺ encode ទិន្នន័យតាមលំដាប់អក្ខរាវិរុទ្ធ។ + + ```python + from sklearn.preprocessing import LabelEncoder + + ufos['Country'] = LabelEncoder().fit_transform(ufos['Country']) + + ufos.head() + ``` + + ទិន្នន័យរបស់អ្នកគួរតែបង្ហាញដូចខាងក្រោម៖ + + ```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 + ``` + +## លំហាត់ - បង្កើតម៉ូដែលរបស់អ្នក + +ឥឡូវនេះ អ្នកអាចត្រៀមខ្លួនបណ្តុះបណ្តាលម៉ូដែល ដោយបំបែកទិន្នន័យជាក្រុមបណ្តុះបណ្តាល និងក្រុមសាកល្បង។ + +1. ជ្រើសរើសលក្ខណៈបីដែលអ្នកចង់បណ្តុះជាតម្លៃ X ហើយតម្លៃ y ដូចជា `Country`។ អ្នកចង់អាចបញ្ចូល `Seconds`, `Latitude` និង `Longitude` ហើយទទួលបានលេខសម្គាល់ប្រទេសវិញ។ + + ```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. បណ្តុះបណ្តាលម៉ូដែលរបស់អ្នកដោយប្រើ 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)) + ``` + +ភាពត្រឹមត្រូវមិនអាក្រក់ទេ **(ប្រហែល 95%)** អ្វីដែលគ្មានភាពភ្ញាក់ផ្អើល សម្រាប់ `Country` និង `Latitude/Longitude` មានសមាមាត្រចំរូង។ + +ម៉ូដែលដែលអ្នកបានបង្កើតមិនមែនជាថ្មីគ្រប់ແលកទេ ព្រោះអ្នកអាចអង្កេតឃើញប្រទេសពី `Latitude` និង `Longitude` ប៉ុណ្ណោះ តែវាជាលំហាត់ល្អក្នុងការបណ្តុះបណ្តាលពីទិន្នន័យដើមដែលអ្នកបានសម្អាតនិងនាំចេញ ហើយបន្ទាប់មកប្រើម៉ូដែលនេះជាកម្មវិធីវេបសាយ។ + +## លំហាត់ - 'pickle' ម៉ូដែលរបស់អ្នក + +ឥឡូវនេះ គឺពេលវេលា _pickle_ ម៉ូដែលរបស់អ្នក! អ្នកអាចធ្វើវា នៅក្នុងបន្ទាត់កូដប៉ុន្មានខ្សែ។ បន្ទាប់ពីវា _pickle_ រួច អ្នកអាចផ្ទុកម៉ូដែល pickle និងសាកល្បងវាជាមួយអារេ ឧទាហរណ៍មានតម្លៃ seconds, latitude និង 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]])) +``` + +ម៉ូដែលត្រឡប់តម្លៃ **'3'** ដែលជាកូដប្រទេសសហរាជអង់គ្លេស។ ពិភពក្រៅ! 👽 + +## លំហាត់ - បង្កើតកម្មវិធី Flask + +ឥឡូវនេះ អ្នកអាចបង្កើតកម្មវិធី Flask ដើម្បីហៅម៉ូដែលរបស់អ្នក ហើយត្រឡប់នូវលទ្ធផលដូចគ្នា តែមានរូបរាងសម្រស់ជាងមុន។ + +1. ចាប់ផ្តើមដោយបង្កើតថតណាមួយមានឈ្មោះ **web-app** នៅជាប់ឯកសារ _notebook.ipynb_ ដែលឯកសារ _ufo-model.pkl_ របស់អ្នករក្សាទុក។ + +1. នៅក្នុងថតនោះបង្កើតថតបីទៀត៖ **static** ដែលមានថត **css** ខាងក្នុង និង **templates**។ ឥឡូវនេះ អ្នកគួរតែមានឯកសារ និងថតដូចខាងក្រោម៖ + + ```output + web-app/ + static/ + css/ + templates/ + notebook.ipynb + ufo-model.pkl + ``` + + ✅ សូមយោងទៅថតដំណោះស្រាយសម្រាប់មើលកម្មវិធីដែលបានបញ្ចប់រួច + +1. ឯកសារដ៏ដំបូងក្នុងថត _web-app_ ដែលត្រូវបង្កើតគឺ **requirements.txt**។ ដូចជា _package.json_ ក្នុងកម្មវិធី JavaScript, ឯកសារនេះរាយបញ្ជីការពឹងផ្អែកដែលកម្មវិធីត្រូវការជា dependency។ ក្នុង **requirements.txt** បញ្ចូលបន្ទាត់៖ + + ```text + scikit-learn + pandas + numpy + flask + ``` + +1. ឥឡូវនេះ បើកបញ្ជីរដ្ឋនៃផ្លូវ _web-app_ ហើយរត់ឯកសារនេះ៖ + + ```bash + cd web-app + ``` + +1. នៅក្នុង terminal របស់អ្នកវាយ `pip install` ដើម្បីដំឡើងបណ្ណាល័យដែលមាននៅក្នុងឯកសារ _requirements.txt_៖ + + ```bash + pip install -r requirements.txt + ``` + +1. ឥឡូវនេះ អ្នកត្រៀមបង្កើតឯកសារបីបន្ថែម ដើម្បីបញ្ចប់កម្មវិធី៖ + + 1. បង្កើត **app.py** នៅឫសថត។ + 2. បង្កើត **index.html** នៅក្នុងថត _templates_។ + 3. បង្កើត **styles.css** នៅក្នុងថត _static/css_។ + +1. កសាងឯកសារ _styles.css_ ជាមួយរចនាប័ទ្មមួយចំនួន៖ + + ```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. បន្ទាប់មក សរសេរ​ឯកសារ _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 }}

+ +
+ +
+ + + + ``` + + សូមមើលការផ្សំរូបតំបន់ (templating) នៅក្នុងឯកសារនេះ។ សម្គាល់ថាសំណុំបែបបទ 'mustache' ជាគន្ធដៅជុំវិញអថេរ លទ្ធផលនៅពេលកម្មវិធីផ្តល់ឱ្យ ដូចជា អត្ថបទព្យាករណ៍៖ `{{}}`។ មានបែបបទមួយដែលផ្ញើព្យាករណ៍ទៅផ្លូវ `/predict` ទៀតផង។ + + ចុងក្រោយ អ្នកត្រៀមប្រើឯកសារ python ដែលដឹកនាំការប្រើម៉ូដែល និងបង្ហាញលទ្ធផលព្យាករណ៍៖ + +1. នៅក្នុង `app.py` បន្ថែម៖ + + ```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) + ``` + + > 💡 គន្លឹះ៖ ពេលអ្នកបន្ថែម [`debug=True`](https://www.askpython.com/python-modules/flask/flask-debug-mode) ពេលរត់កម្មវិធីវេបដោយប្រើ Flask, ការផ្លាស់ប្តូរណាមួយប្រតិបត្ដិបន្ទាន់នឹងត្រូវបង្ហាញភ្លាមៗ ដោយមិនចាំបាច់ចាប់ផ្ដើមម៉ាស៊ីនមួយទៀត។ តែបញ្ហាជាលក្ខណៈ៖ កុំបើកមុខងារនេះនៅក្នុងកម្មវិធីផលិតកម្ម។ + +បើអ្នករត់ `python app.py` ឬ `python3 app.py` ម៉ាស៊ីនបម្រើវេបរបស់អ្នកនឹងចាប់ផ្ដើមក្នុងបរិបទក្នុងស្រុក ហើយអ្នកអាចបំពេញសំណុំបែបបទខ្លីមួយ ដើម្បីទទួលបានចម្លើយចំពោះសំណួររបស់អ្នកអំពីទីតាំងដែលបានមើលឃើញ UFO! + +មុនធ្វើហ្នឹង សូមមើលផ្នែកនៃ `app.py`៖ + +1. ជាដំបូង dependencies ត្រូវបានទាញយក ហើយកម្មវិធីចាប់ផ្ដើម។ +1. បន្ទាប់ម៉ូដែលត្រូវបាននាំចូល។ +1. បន្ទាប់មក index.html ត្រូវបានបង្ហាញនៅផ្លូវមុខ។ + +នៅផ្លូវ `/predict`, មានរឿងជាច្រើនកើតឡើងនៅពេលសំណុំបែបបទត្រូវបានបញ្ចូន៖ + +1. អថេរនៃសំណុំបែបបទ ត្រូវបានប្រមួល និងបម្លែងទៅជា numpy array។ បន្ទាប់មកវាត្រូវបានផ្ញើទៅម៉ូដែល ហើយលទ្ធផលព្យាករណ៍ត្រូវបានទទួល។ +2. ប្រទេសដែលយើងចង់បង្ហាញ ត្រូវបានបម្លែងឡើងវិញជាអត្ថបទដែលអាចអានបាន ពីកូដប្រទេសដែលបានព្យាករណ៍ ហើយតម្លៃនោះត្រូវបានផ្ញើត្រឡប់ទៅ index.html សម្រាប់បង្ហាញក្នុងគំរូ។ + +ការប្រើម៉ូដែលបែបនេះ ដោយប្រើ Flask និងម៉ូដែលដែលបាន pickle គឺសាមញ្ញ។ រឿងលំបាកបំផុតគឺយល់ថាទិន្នន័យមាននៅក្នុងរបៀបណា ដែលត្រូវផ្ញើទៅម៉ូដែលដើម្បីទទួលបានព្យាករណ៍។ រឿងនេះទាំងអស់ תלויនឹងរបៀបដែលម៉ូដែលត្រូវបានបណ្តុះបណ្តាល។ ម៉ូដែលនេះមានចំណុចទិន្នន័យបី ដែលត្រូវបញ្ចូលដើម្បីទទួលបានព្យាករណ៍។ + +នៅក្នុងបរិបទមុខរបរ អ្នកអាចមើលឃើញថាការទំនាក់ទំនងល្អគឺទាមទារជាចាំបាច់រវាងមនុស្សដែលបណ្តុះបណ្តាលម៉ូដែល និងអ្នកប្រើវាសម្រាប់កម្មវិធីវេប ឬចល័ត។ ក្នុងករណីយើង គឺមនុស្សម្នាក់គត់ គឺអ្នក! + +--- + +## 🚀 ការប្រកួតប្រជែង + +ជំនួសការងារនៅក្នុងកំណត់ត្រា និងនាំចូលម៉ូដែលទៅកម្មវិធី Flask អ្នកអាចបណ្តុះបណ្តាលម៉ូដែលនៅក្នុងកម្មវិធី Flask យ៉ាងត្រង់! ព្យាយាមបម្លែងកូដ Python របស់អ្នកក្នុងកំណត់ត្រា ប្រហែលបន្ទាប់ពីទិន្នន័យរបស់អ្នកបានសម្អាត ហើយបណ្តុះម៉ូដែលពីក្នុងកម្មវិធីលើផ្លូវដែលហៅថា `train` ។ មានគុណសម្បត្តិ និងគុណវិបត្តិអ្វីខ្លះក្នុងការធ្វើវិធាននេះ? + +## [សំណួរបន្ទាប់មកមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការត្រួតពិនិត្យ និងសិក្សាដោយខ្លួនឯង + +មានវិធីជាច្រើនក្នុងការបង្កើតកម្មវិធីវេបសម្រាប់ប្រើម៉ូដែល ML។ សូមរាយបញ្ជីវិធីដែលអ្នកអាចប្រើ JavaScript ឬ Python ដើម្បីបង្កើតកម្មវិធីវេបសម្រាប់យកអត្ថប្រយោជន៍ពីម៉ាស៊ីនរៀន។ ពិចារណាស្ថាបត្យកម្ម៖ តើម៉ូដែលគួរចាំនៅក្នុងកម្មវិធី ឬនៅក្នុងពពក? ប្រសិនបើគឺនៅក្នុងពពក អ្នកត្រូវចូលដំណើរការយ៉ាងដូចម្តេច? គូររូបមន្តស្ថាបត្យកម្មសម្រាប់ដំណោះស្រាយ ML វេបសម្រាប់អនុវត្តន៍។ + +## មេរៀនបន្ថែម + +[សាកល្បងម៉ូដែលផ្សេង](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ទោះយើងខ្ញុំខិតខំផ្តល់ភាពត្រឹមត្រូវក៏ដោយ សូមយកចិត្តទុកដាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពខុសត្រូវ។ ឯកសារដើមនៅក្នុងភាសាជាតិ ជាការត្រូវបានគេពិចារណាថាជាផ្លាកលក្ខណៈសម្បត្តិ។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរប្រើការបកប្រែមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗផ្សេងៗដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/3-Web-App/1-Web-App/assignment.md b/translations/km/3-Web-App/1-Web-App/assignment.md new file mode 100644 index 000000000..1187dc5fe --- /dev/null +++ b/translations/km/3-Web-App/1-Web-App/assignment.md @@ -0,0 +1,18 @@ +# សាកល្លងម៉ូឌែលផ្សេងទៀត + +## សេចក្ដីណែនាំ + +ឥឡូវនេះអ្នកបានបង្កើតកម្មវិធីវែបមួយដោយប្រើម៉ូឌែល Regression ដែលបានហ្វឹកហ្វឺនរួចហើយ សូមប្រើម៉ូឌែលមួយពីមេរៀន Regression មុននេះ ដើម្បីធ្វើកម្មវិធីវែបនេះឡើងម្តងទៀត។ អ្នកអាចរក្សារចម្រុះរចនាប័ទ្មដដែលឬរចនាឡើងវិញឲ្យសមរម្យនឹងទិន្នន័យផ្សិតខ្ទឹមខ្មៅ។ ត្រូវប្រុងប្រយ័ត្នប្តូរបញ្ចូលឲ្យសមរម្យនឹងវិធីសាស្ត្រហ្វឹកហ្វឺនម៉ូឌែលរបស់អ្នក។ + +## ការវាយតម្លៃ + +| កត្តា | ល្អឧត្តម | សមរម្យ | ត្រូវការកែលម្អ | +| ----------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------ | +| | កម្មវិធីវែបដំណើរការតាមការរំពឹងទុក ហើយបានដាក់បង្ហោះនៅលើពពក | កម្មវិធីវែបមានកំហុស ឬបង្ហាញលទ្ធផលដែលមិនបានរំពឹងទុក | កម្មវិធីវែបមិនដំណើរការបានត្រឹមត្រូវ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ខណៈពេលដែលយើងខិតខំធ្វើឱ្យបានត្រឹមត្រូវ សូមចំពោះការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមាឌផ្ទាល់គួរត្រូវបានគេចាត់ទុកជាទិន្នន័យប្រភពផ្លូវការជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរតែប្រើការបកប្រែដោយមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការច្រឡំនូវហេតុផល ឬការបំភាន់ដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/3-Web-App/1-Web-App/notebook.ipynb b/translations/km/3-Web-App/1-Web-App/notebook.ipynb new file mode 100644 index 000000000..e69de29bb diff --git a/translations/km/3-Web-App/1-Web-App/solution/notebook.ipynb b/translations/km/3-Web-App/1-Web-App/solution/notebook.ipynb new file mode 100644 index 000000000..664788cc5 --- /dev/null +++ b/translations/km/3-Web-App/1-Web-App/solution/notebook.ipynb @@ -0,0 +1,263 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python37364bit8d3b438fb5fc4430a93ac2cb74d693a7", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "## បង្កើតកម្មវិធីវេបដោយប្រើម៉ូដែលធ្វើវិភាគ Regression ដើម្បីរៀនអំពីការមើលឃើញ UFO\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " datetime city state country shape \\\n", + "0 10/10/1949 20:30 san marcos tx us cylinder \n", + "1 10/10/1949 21:00 lackland afb tx NaN light \n", + "2 10/10/1955 17:00 chester (uk/england) NaN gb circle \n", + "3 10/10/1956 21:00 edna tx us circle \n", + "4 10/10/1960 20:00 kaneohe hi us light \n", + "\n", + " duration (seconds) duration (hours/min) \\\n", + "0 2700.0 45 minutes \n", + "1 7200.0 1-2 hrs \n", + "2 20.0 20 seconds \n", + "3 20.0 1/2 hour \n", + "4 900.0 15 minutes \n", + "\n", + " comments date posted latitude \\\n", + "0 This event took place in early fall around 194... 4/27/2004 29.883056 \n", + "1 1949 Lackland AFB, TX. Lights racing acros... 12/16/2005 29.384210 \n", + "2 Green/Orange circular disc over Chester, En... 1/21/2008 53.200000 \n", + "3 My older brother and twin sister were leaving ... 1/17/2004 28.978333 \n", + "4 AS a Marine 1st Lt. flying an FJ4B fighter/att... 1/22/2004 21.418056 \n", + "\n", + " longitude \n", + "0 -97.941111 \n", + "1 -98.581082 \n", + "2 -2.916667 \n", + "3 -96.645833 \n", + "4 -157.803611 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
datetimecitystatecountryshapeduration (seconds)duration (hours/min)commentsdate postedlatitudelongitude
010/10/1949 20:30san marcostxuscylinder2700.045 minutesThis event took place in early fall around 194...4/27/200429.883056-97.941111
110/10/1949 21:00lackland afbtxNaNlight7200.01-2 hrs1949 Lackland AFB&#44 TX. Lights racing acros...12/16/200529.384210-98.581082
210/10/1955 17:00chester (uk/england)NaNgbcircle20.020 secondsGreen/Orange circular disc over Chester&#44 En...1/21/200853.200000-2.916667
310/10/1956 21:00ednatxuscircle20.01/2 hourMy older brother and twin sister were leaving ...1/17/200428.978333-96.645833
410/10/1960 20:00kaneohehiuslight900.015 minutesAS a Marine 1st Lt. flying an FJ4B fighter/att...1/22/200421.418056-157.803611
\n
" + }, + "metadata": {}, + "execution_count": 23 + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ufos = pd.read_csv('../data/ufos.csv')\n", + "ufos.head()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array(['us', nan, 'gb', 'ca', 'au', 'de'], dtype=object)" + ] + }, + "metadata": {}, + "execution_count": 24 + } + ], + "source": [ + "\n", + "ufos = pd.DataFrame({'Seconds': ufos['duration (seconds)'], 'Country': ufos['country'],'Latitude': ufos['latitude'],'Longitude': ufos['longitude']})\n", + "\n", + "ufos.Country.unique()\n", + "\n", + "# 0 au, 1 ca, 2 de, 3 gb, 4 us" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\nInt64Index: 25863 entries, 2 to 80330\nData columns (total 4 columns):\n # Column Non-Null Count Dtype \n--- ------ -------------- ----- \n 0 Seconds 25863 non-null float64\n 1 Country 25863 non-null object \n 2 Latitude 25863 non-null float64\n 3 Longitude 25863 non-null float64\ndtypes: float64(3), object(1)\nmemory usage: 1010.3+ KB\n" + ] + } + ], + "source": [ + "ufos.dropna(inplace=True)\n", + "\n", + "ufos = ufos[(ufos['Seconds'] >= 1) & (ufos['Seconds'] <= 60)]\n", + "\n", + "ufos.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Seconds Country Latitude Longitude\n", + "2 20.0 3 53.200000 -2.916667\n", + "3 20.0 4 28.978333 -96.645833\n", + "14 30.0 4 35.823889 -80.253611\n", + "23 60.0 4 45.582778 -122.352222\n", + "24 3.0 3 51.783333 -0.783333" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
SecondsCountryLatitudeLongitude
220.0353.200000-2.916667
320.0428.978333-96.645833
1430.0435.823889-80.253611
2360.0445.582778-122.352222
243.0351.783333-0.783333
\n
" + }, + "metadata": {}, + "execution_count": 26 + } + ], + "source": [ + "from sklearn.preprocessing import LabelEncoder\n", + "\n", + "ufos['Country'] = LabelEncoder().fit_transform(ufos['Country'])\n", + "\n", + "ufos.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "\n", + "Selected_features = ['Seconds','Latitude','Longitude']\n", + "\n", + "X = ufos[Selected_features]\n", + "y = ufos['Country']\n", + "\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", + " FutureWarning)\n", + "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:469: FutureWarning: Default multi_class will be changed to 'auto' in 0.22. Specify the multi_class option to silence this warning.\n", + " \"this warning.\", FutureWarning)\n", + " precision recall f1-score support\n", + "\n", + " 0 1.00 1.00 1.00 41\n", + " 1 1.00 0.02 0.05 250\n", + " 2 0.00 0.00 0.00 8\n", + " 3 0.94 1.00 0.97 131\n", + " 4 0.95 1.00 0.97 4743\n", + "\n", + " accuracy 0.95 5173\n", + " macro avg 0.78 0.60 0.60 5173\n", + "weighted avg 0.95 0.95 0.93 5173\n", + "\n", + "Predicted labels: [4 4 4 ... 3 4 4]\n", + "Accuracy: 0.9512855209742895\n", + "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/metrics/classification.py:1437: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n", + " 'precision', 'predicted', average, warn_for)\n" + ] + } + ], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.metrics import accuracy_score, classification_report \n", + "from sklearn.linear_model import LogisticRegression\n", + "model = LogisticRegression()\n", + "model.fit(X_train, y_train)\n", + "predictions = model.predict(X_test)\n", + "\n", + "print(classification_report(y_test, predictions))\n", + "print('Predicted labels: ', predictions)\n", + "print('Accuracy: ', accuracy_score(y_test, predictions))\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[3]\n" + ] + } + ], + "source": [ + "import pickle\n", + "model_filename = 'ufo-model.pkl'\n", + "pickle.dump(model, open(model_filename,'wb'))\n", + "\n", + "model = pickle.load(open('ufo-model.pkl','rb'))\n", + "print(model.predict([[50,44,-12]]))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសំរាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែក្នុងរបៀបស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬការខុសច្រឡំផ្សេងៗ។ ឯកសារដើមដែលមានភាសាចម្បងគឺជាមូលដ្ឋានដែលមានសក្ដារភាព។ សម្រាប់ព័ត៌មានសំខាន់ សូមណែនាំឱ្យប្រើការបកប្រែដោយមនុស្សដែលមានជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនានាឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/3-Web-App/README.md b/translations/km/3-Web-App/README.md new file mode 100644 index 000000000..085c19afe --- /dev/null +++ b/translations/km/3-Web-App/README.md @@ -0,0 +1,28 @@ +# បង្កើតកម្មវិធីវែបដើម្បីប្រើម៉ូដែល ML របស់អ្នក + +នៅក្នុងផ្នែកនេះនៃមេរៀន អ្នកនឹងបានណែនាំអំពីប្រធានបទ ML ប្រើប្រាស់បាន៖ របៀបរក្សាទុកម៉ូដែល Scikit-learn របស់អ្នកជាឯកសារដែលអាចប្រើសម្រាប់ធ្វើការទស្សន៍ទាយនៅក្នុងកម្មវិធីវែប។ បន្ទាប់ពីម៉ូដែលត្រូវបានរក្សាទុក អ្នកនឹងរៀនរបៀបទៅប្រើវាក្នុងកម្មវិធីវែបដែលបានបង្កើតក្នុង Flask។ អ្នកនឹងបានបង្កើតម៉ូដែលដោយប្រើទិន្នន័យដែលទាក់ទងគ្នានឹងការមើលឃើញ UFO! បន្ទាប់មក អ្នកនឹងបង្កើតកម្មវិធីវែបមួយដែលនឹងអនុញ្ញាតឱ្យអ្នកបញ្ចូលចំនួនវិនាទីជាមួយតម្លៃបណ្តោយ និងអទិសដៅដើម្បីទស្សន៍ទាយប្រទេសណាដែលបានរាយការណ៍ថាវិញឃើញ UFO។ + +![ឧទ្ទិស UFO](../../../translated_images/km/ufo.9e787f5161da9d4d.webp) + +រូបថតដោយ Michael Herren នៅ Unsplash + +## មេរៀន + +1. [បង្កើតកម្មវិធីវែប](1-Web-App/README.md) + +## ការទទួលស្គាល់ + +"បង្កើតកម្មវិធីវែប" ត្រូវបានសរសេរដោយ ♥️ [Jen Looper](https://twitter.com/jenlooper)។ + +♥️ ការប្រឡងត្រូវបានសរសេរដោយ Rohan Raj។ + +ទិន្នន័យត្រូវបានយកមកពី [Kaggle](https://www.kaggle.com/NUFORC/ufo-sightings)។ + +បែបផែនកម្មវិធីវែបត្រូវបានផ្តល់អនុសាសន៍ផ្នែកមួយដោយ [អត្ថបទនេះ](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) និង [repo នេះ](https://github.com/abhinavsagar/machine-learning-deployment) ដោយ Abhinav Sagar។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសំរាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ទៅលើការប្រែប្រើម៉ាស៊ីនដែលអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសានិរន្តរបស់វាគួរត្រូវបានពិចារណាថាជាមូលដ្ឋានដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ខុស ឬការបកប្រែខុសដោយបានប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/1-Introduction/README.md b/translations/km/4-Classification/1-Introduction/README.md new file mode 100644 index 000000000..d55a27acb --- /dev/null +++ b/translations/km/4-Classification/1-Introduction/README.md @@ -0,0 +1,306 @@ +# ការណែនាំអំពីការបែងចែកចំណាត់ថ្នាក់ + +ក្នុងមេរៀនបួននេះ អ្នកនឹងបានសិក្សាពីចំណុចសំខាន់មួយនៃការសិក្សាម៉ាស៊ីនបែបចាស់ៗមួយ - _ការបែងចែកចំណាត់ថ្នាក់_។ យើងនឹងដំណើរការប្រើប្រាស់អាល់គូរីធึមបែងចំណាត់ថ្នាក់នានាជាមួយនឹងទិន្នន័យអំពីម្ហូបឆុងសាធារណៈទាំងអាស៊ីនិងឥណ្ឌា។ សូមសង្ឃឹមថាអ្នកនៅពេលនេះមានអាហារស្តុក! + +![just a pinch!](../../../../translated_images/km/pinch.1b035ec9ba7e0d40.webp) + +> ប្រារព្ធរំលឹកមុខម្ហូបប៉ាន-អាស៊ីក្នុងមេរៀនទាំងនេះ! រូបភាពដោយ [Jen Looper](https://twitter.com/jenlooper) + +ការបែងចំណាត់ថ្នាក់គឺជារបៀបមួយនៃ [ការសិក្សាដោយមានតំណាង](https://wikipedia.org/wiki/Supervised_learning) ដែលមានអារម្មណ៍ស្រដៀងនឹងបច្ចេកទេសរេហ្គ្រេស្យុង។ ប្រសិនបើការសិក្សាម៉ាស៊ីនគឺស្តីពីការព្យាករណ៍តម្លៃឬឈ្មោះរបស់វត្ថុតាមរយៈទិន្នន័យ។ ការបែងចំណាត់ថ្នាក់មានពីរប្រភេទទូទៅគឺ: _ការបែងចំណាត់ថ្នាក់ពីរប្រាំពីរណ៍_ និង _ការបែងចំណាត់ថ្នាក់ច្រើនថ្នាក់_។ + +[![Introduction to classification](https://img.youtube.com/vi/eg8DJYwdMyg/0.jpg)](https://youtu.be/eg8DJYwdMyg "Introduction to classification") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូ៖ John Guttag ពី MIT បង្ហាញអំពីការបែងចំណាត់ថ្នាក់ + +ចងចាំ៖ + +- **រេហ្គ្រេស្យុងបន្ទាត់** បានជួយអ្នកព្យាករណ៍ទំនាក់ទំនងរវាងអថេរនានា និងធ្វើព្យាករណ៍ត្រឹមត្រូវថាតម្លៃទិន្នន័យថ្មីនឹងស្ថិតនៅកន្លែងណាអំពីបន្ទាត់នោះ។ ដូច្នេះ អ្នកអាចព្យាករណ៍ថា _តម្លៃផ្លែហ្គែលនៅខែកញ្ញាឬខែធ្នូ_ ដូចជា។ +- **រេហ្គ្រេស្យុងឡូហ្ស៊ីស្ទិក** បានជួយអ្នករកឃើញ "ប្រភេទពីរប្រាំពីរណ៍": នៅតម្លៃតំលៃនេះ _ផ្លែហ្គែលនេះពណ៌ទ្រុងឬមិនទ្រុង_? + +ការបែងចំណាត់ថ្នាក់ប្រើអាល់គូរីធឹមជាច្រើនដើម្បីកំណត់វិធីផ្សេងៗក្នុងការបញ្ជាក់ស្លាក ឬថ្នាក់របស់ចំណុចទិន្នន័យ។ យើងនឹងប្រើទិន្នន័យម្ហូបនេះដើម្បីមើលថាតើដោយសង្កេតមើលក្រុមគ្រឿងផ្សំមួយ អាចកំណត់បានថាម្ហូបនេះមានប្រភពពីខេត្តណាបានឬជាអាច។ + +## [ការប្រលងមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +> ### [មេរៀននេះអាចប្រើបានក្នុង R!](../../../../4-Classification/1-Introduction/solution/R/lesson_10.html) + +### ការណែនាំ + +ការបែងចំណាត់ថ្នាក់គឺជាកម្មវិធីមួយសំខាន់សម្រាប់អ្នកស្រាវជ្រាវម៉ាស៊ីនសិក្សា និងអ្នកវិទ្យាស្ថានទិន្នន័យមួយ។ ចាប់ពីការបែងចំណាត់ថ្នាក់ពីរប្រាំពីរណ៍មូលដ្ឋាន ("អ៊ីមែលនេះជាស្គាមឬមិនមែន?"), រហូតដល់ការបែងចំណាត់ថ្នាក់រូបភាពស្មុគស្មាញ និងការបែងចំណាត់ថ្នាក់ផ្នែកដោយការមើលឃើញកុំព្យូទ័រ វាអាចមានប្រយោជន៍ជានិច្ចក្នុងការរៀបចំនូវទិន្នន័យទៅក្នុងថ្នាក់ និងសាកសួរទិន្នន័យនោះ។ + +ដើម្បីពន្យល់ដោយវិទ្យាសាស្ត្រនិងច្បាស់លាស់បន្ថែមវិញ វិធីសាស្ត្របែងចំណាត់ថ្នាក់របស់អ្នកបង្កើតម៉ូដែលព្យាករណ៍ដែលអនុញ្ញាតឲ្យអ្នកបំរែបំរួលទំនាក់ទំនងរវាងអថេរដំណាក់កាល ទៅកាន់អថេរបញ្ចេញ។ + +![binary vs. multiclass classification](../../../../translated_images/km/binary-multiclass.b56d0c86c81105a6.webp) + +> បញ្ហាប្រភេទពីរប្រាំពីរណ៍ និងច្រើនថ្នាក់សម្រាប់អាល់គូរីធឹមបែងចំណាត់ថ្នាក់ត្រូវដោះស្រាយ។ រូបភាពដោយ [Jen Looper](https://twitter.com/jenlooper) + +មុនចាប់ផ្តើមដំណើរការសំអាតទិន្នន័យរបស់យើង មើលគំរូវាទិន្នន័យ និងរៀបចំវាសម្រាប់ភារកិច្ច ML របស់យើង សូមយើងសិក្សាអំពីវិធីផ្សេងៗដែលម៉ាស៊ីនសិក្សាអាចប្រើដើម្បីបែងចែកទិន្នន័យ។ + +បានដកស្រង់ពី [ស្ថិតិវិទ្យា](https://wikipedia.org/wiki/Statistical_classification) ការបែងចំណាត់ថ្នាក់ដោយប្រើម៉ាស៊ីនសិក្សាចាស់ៗប្រើលក្ខណៈពិសេស ជាទម្រង់ `smoker`, `weight`, និង `age` ដើម្បីកំណត់ _ពលភាពនៃការកើតជំងឺ X_។ ជាចំណុចសិក្សាដោយមានតំណាង ដែលស្រដៀងនឹងហាត់រេហ្គ្រេស្យុងដែលអ្នកបានធ្វើមុននេះ ទិន្នន័យរបស់អ្នកត្រូវបានដាក់ស្លាក ហើយអាល់គូរីធឹម ML ប្រើស្លាកទាំងនោះដើម្បីបែងចំណាត់ និងព្យាករណ៍ថ្នាក់ (ឬ 'លក្ខណៈពិសេស') របស់ទិន្នន័យ និងផ្ដល់វាទៅក្រុម ឬលទ្ធផលមួយ។ + +✅ ចំណាយពេលស្រមៃពីទិន្នន័យអំពីម្ហូបមួយ។ ម៉ូដែលច្រើនថ្នាក់អាចឆ្លើយបានអ្វី? ម៉ូដែលពីរប្រាំពីរណ៍អាចឆ្លើយបានអ្វី? បើអ្នកចង់កំណត់ថាអ្វីមួយថាតើម្ហូបណាមួយប្រើ "fenugreek" ឬទេ? បើអ្នកចង់មើលថា ប្រសិនបើមានកាបូបទំនិញពោរពេញដោយ "star anise", "artichokes", "cauliflower", និង "horseradish" អ្នកអាចបង្កើតម្ហូបឥណ្ឌាប្រភេទមួយបានឬទេ? + +[![Crazy mystery baskets](https://img.youtube.com/vi/GuTeDbaNoEU/0.jpg)](https://youtu.be/GuTeDbaNoEU "Crazy mystery baskets") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូ៖ គោលបំណងទាំងមូលនៃកម្មវិធី 'Chopped' គឺក្នុង 'កាបូបសម្ងាត់' ដែលអ្នកចម្អិនម្ហូបត្រូវបង្កើតម្ហូបពីជម្រើសគ្រឿងផ្សំនានា។ ពិតជាម៉ូដែល ML នឹងជួយបានយ៉ាងច្រើន។ + +## សួរវាគឺ 'classifier' + +សំណួរដែលយើងចង់សួរពីទិន្នន័យម្ហូបនេះគឺជា **សំណួរច្រើនថ្នាក់**, ព្រោះយើងមានម្ហូបជាតិជាច្រើនដែលអាចប្រើបាន។ ដោយផ្អែកលើក្រុមគ្រឿងផ្សំមួយ, តើទិន្នន័យនេះនឹងស្ថិតក្នុងថ្នាក់ណា? + +Scikit-learn ផ្តល់ជូននូវអាល់គូរីធឹមជាច្រើនដើម្បីប្រើបែងចំណាត់របស់ទិន្នន័យ តាមបំណង​ ប្រភេទបញ្ហាដែលអ្នកចង់ដោះស្រាយ។ ក្នុងមេរៀនពីរបន្ទាប់ អ្នកនឹងសិក្សាអំពីអាល់គូរីធឹមទាំងនេះ។ + +## អនុវត្តិ - សំអាត និងសមតុល្យទិន្នន័យរបស់អ្នក + +កិច្ចការ​ដំបូងជាចាំបាច់ មុនចាប់ផ្តើមគម្រោងនេះ គឺសំអាត និង **សមតុល្យ** ទិន្នន័យរបស់អ្នក ដើម្បីទទួលបានលទ្ធផលល្អ។ ចាប់ផ្តើមជាមួយឯកសារ _notebook.ipynb_ ទទេនៅមូលដ្ឋានថតនេះ។ + +របស់ដំបូងដែលត្រូវដំឡើងគឺ [imblearn](https://imbalanced-learn.org/stable/)។ នេះជាបណ្ណាល័យ Scikit-learn មួយដែលអនុញ្ញាតឲ្យអ្នកសមតុល្យទិន្នន័យបានល្អប្រសើរជាងមុន (អ្នកនឹងរៀនអំពីភារកិច្ចនេះបន្ថែមបន្ទាប់ពីនេះ)។ + +1. ដើម្បីដំឡើង `imblearn`, ប្រើពាក្យបញ្ជា `pip install` ដូចខាងក្រោម៖ + + ```python + pip install imblearn + ``` + +1. នាំចូលបណ្ណាល័យដែលអ្នកត្រូវការដើម្បីនាំចូលទិន្នន័យ និងបង្ហាញវីសិរម្យ បានបញ្ចូល `SMOTE` ពី `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 + ``` + + ឥឡូវនេះអ្នកបានត្រៀមខ្លួនសម្រាប់នាំចូលទិន្នន័យបន្ទាប់។ + +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() + ``` + + លទ្ធផលដែលអ្នកទទួលបានមានរូបរាងដូចខាងក្រោម៖ + + ```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() + ``` + + ![cuisine data distribution](../../../../translated_images/km/cuisine-dist.d0cc2d551abe5c25.webp) + + មានម្ហូបច្រើនណាស់ ប៉ុន្តែការបែងចែកទិន្នន័យមិនស្មើល្អទេ។ អ្នកអាចដោះស្រាយបាន! មុននោះ សូមស្វែងយល់បន្ថែម។ + +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. បង្កើតមុខងារ `create_ingredient()` ក្នុង Python ដើម្បីបង្កើត dataframe គ្រឿងផ្សំ។ មុខងារនេះនឹងចាប់ផ្តើមដោយបោះបង់ស្ថំពត៌មានមិនមានប្រយោជន៍ ហើយតម្រៀបគ្រឿងផ្សំតាមចំនួន៖ + + ```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 + ``` + + ឥឡូវនេះ អ្នកអាចប្រើមុខងារនោះ ដើម្បីដឹងពីចំនួនគ្រឿងផ្សំដែលពេញនិយមចំនួនដប់ខាងលើតាមមុខម្ហូប។ + +1. ហៅ `create_ingredient()` ហើយគូសវាបញ្ចូល `barh()`៖ + + ```python + thai_ingredient_df = create_ingredient_df(thai_df) + thai_ingredient_df.head(10).plot.barh() + ``` + + ![thai](../../../../translated_images/km/thai.0269dbab2e78bd38.webp) + +1. ធ្វើដូចគ្នាសម្រាប់ទិន្នន័យជប៉ុន៖ + + ```python + japanese_ingredient_df = create_ingredient_df(japanese_df) + japanese_ingredient_df.head(10).plot.barh() + ``` + + ![japanese](../../../../translated_images/km/japanese.30260486f2a05c46.webp) + +1. ឥឡូវសម្រាប់គ្រឿងផ្សំចិន៖ + + ```python + chinese_ingredient_df = create_ingredient_df(chinese_df) + chinese_ingredient_df.head(10).plot.barh() + ``` + + ![chinese](../../../../translated_images/km/chinese.e62cafa5309f111a.webp) + +1. គូសគ្រឿងផ្សំឥណ្ឌា៖ + + ```python + indian_ingredient_df = create_ingredient_df(indian_df) + indian_ingredient_df.head(10).plot.barh() + ``` + + ![indian](../../../../translated_images/km/indian.2c4292002af1a1f9.webp) + +1. ចុងក្រោយ គូសគ្រឿងផ្សំកូរ៉េ៖ + + ```python + korean_ingredient_df = create_ingredient_df(korean_df) + korean_ingredient_df.head(10).plot.barh() + ``` + + ![korean](../../../../translated_images/km/korean.4a4f0274f3d9805a.webp) + +1. ឥឡូវនេះ បោះបង់គ្រឿងផ្សំពេញនិយមបំផុតដែលបង្កការភាន់ច្រឡំរវាងម្ហូបតាមរយៈការហៅ `drop()`៖ + + មនុស្សគ្រប់គ្នាស្រឡាញ់បាយ, ខ្ទឹម និង ខ្ទិះខ្ទិះ! + + ```python + feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1) + labels_df = df.cuisine #.មិនម្តង() + feature_df.head() + ``` + +## សមតុល្យទិន្នន័យ + +ឥឡូវនេះ អ្នកបានសំអាតទិន្នន័យហើយ ប្រើ [SMOTE](https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html) - "វិធីសាស្ត្របង្កើតគំរូបន្ថែមធម្មតា" - ដើម្បីសមតុល្យវា។ + +1. ហៅ `fit_resample()`, វិធីសាស្ត្រនេះបង្កើតគំរូថ្មីសម្រាប់នាំចេញតាមរយៈការបញ្ចូល។ + + ```python + oversample = SMOTE() + transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df) + ``` + + ដោយសមតុល្យទិន្នន័យ អ្នកនឹងទទួលបានលទ្ធផលល្អជាងពេលបែងចំណាត់វា។ សូមគិតអំពីបែងចំណាត់ពីរប្រាំពីរណ៍។ ប្រសិនបើភាគច្រើននៃទិន្នន័យមានថ្នាក់មួយថ្នាក់ណាមួយ ម៉ូដែល ML ចូលចិត្តទាយថា ថ្នាក់នោះកើតឡើងច្រើនជាងគេ ដោយសារតែវាមានទិន្នន័យច្រើន។ ការសមតុល្យទិន្នន័យ ជួយដកជម្រុញនៃទិន្នន័យហួសហេតុនั้น។ + +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. ជំហានចុងក្រោយ គឺរក្សាទុកទិន្នន័យមានសមតុល្យរបស់អ្នក ដែលរួមមានស្លាក និងលក្ខណៈពិសេស ទៅក្នុង dataframe ថ្មីដែលអាចនាំចេញទៅឯកសារមួយបាន៖ + + ```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_cuisines.csv") + ``` + + CSV ថ្មីនេះឥឡូវនេះអាចរកបាននៅក្នុងថតទិន្នន័យមូលដ្ឋាន។ + +--- + +## 🚀បញ្ហាកម្រិតខ្ពស់ + +មាតិកានេះមានទិន្នន័យច្រើនដែលគួរឱ្យចាប់អារម្មណ៍។ សូមស្ទង់មើលថាតើថត `data` មានទិន្នន័យណាមួយដែលសមស្របសម្រាប់ការបែងចំណាត់ពីរប្រាំពីរណ៍ ឬច្រើនថ្នាក់? តើសំណួរអ្វីដែលអ្នកចង់សួរពីទិន្នន័យនោះ? + +## [ការប្រលងក្រោយមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការពិនិត្យ និងសិក្សាឯករាជ្យ + +ស្វែងយល់អំពី API នៃ SMOTE។ តើវាភ្ជាប់នឹងការប្រើប្រាស់ពីរបៀបណា? តើវាដោះស្រាយបញ្ហាអ្វីខ្លះ? + +## កិច្ចការត្រូវបំពេញ + +[ស៊ើបអង្កេតវិធីសាស្ត្របែងចំណាត់ថ្នាក់](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងព្យាយាមរកភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវបានចំណាយ។ ឯកសារដើមដែលស្របតាមភាសាទីបន្លាស់គួរត្រូវបានចាត់ទុកជាមូលដ្ឋានដែលមានអាជ្ញាបណ្ណ។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរព្យាយាមបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/1-Introduction/assignment.md b/translations/km/4-Classification/1-Introduction/assignment.md new file mode 100644 index 000000000..5e45c5d25 --- /dev/null +++ b/translations/km/4-Classification/1-Introduction/assignment.md @@ -0,0 +1,18 @@ +# អ្វីៗដែលត្រូវស្វែងរកវិធីចាត់ថ្នាក់ + +## សេចក្តីណែនាំ + +នៅក្នុង [ឯកសាររបស់ Scikit-learn](https://scikit-learn.org/stable/supervised_learning.html) អ្នកនឹងបានជួបបញ្ជីធំបែបនៃវិធីសាស្រ្តក្នុងការចាត់ថ្នាក់ទិន្នន័យ។ សូមធ្វើការស្វែងរកតិចតួចនៅក្នុងឯកសារទាំងនេះ៖ គោលបំណងរបស់អ្នកគឺស្វែងរកវិធីចាត់ថ្នាក់ និងរកឃើញឯកសារទិន្នន័យមួយក្នុងកម្មវិធីសិក្សានេះ សំណួរមួយដែលអ្នកអាចសួរពីវា និងបច្ចេកទេសចាត់ថ្នាក់មួយ។ សូមបង្កើតសៀវភៅគណនាគ្រាប់ ឬតារាងក្នុងឯកសារ .doc ហើយពណ៌នាថាតើឯកសារទិន្នន័យនឹងដំណើរការជាមួយអាល់គរីធម៍ចាត់ថ្នាក់យ៉ាងដូចម្តេច។ + +## គោលវិធាន + +| គោលវិធាន | ឧទាហរណ៍ល្អ | ត្រឹមត្រូវ | ត្រូវការកែលម្អ | +| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| | មានឯកសារត្រូវបានបង្ហាញដោយផ្តោតលើអាល់គរីធម៍ចំនួន 5 ជាមួយនឹងបច្ចេកទេសចាត់ថ្នាក់មួយ។ សង្ខេបត្រូវបានពន្យល់យ៉ាងល្អ និងលម្អិត។ | មានឯកសារត្រូវបានបង្ហាញដោយផ្តោតលើអាល់គរីធម៍ចំនួន 3 ជាមួយនឹងបច្ចេកទេសចាត់ថ្នាក់មួយ។ សង្ខេបត្រូវបានពន្យល់យ៉ាងល្អ និងលម្អិត។ | មានឯកសារត្រូវបានបង្ហាញដោយផ្តោតលើអាល់គរីធម៍តិចជាងបីជាមួយនឹងបច្ចេកទេសចាត់ថ្នាក់មួយ ហើយសង្ខេបមិនត្រូវបានពន្យល់យ៉ាងល្អ ឬមិនលម្អិត។ | + +--- + + +**ការបដិសេធ**: +ឯកសារនេះត្រូវបានបកប្ប譯ដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ បើទោះបីយើងខិតខំដើម្បីទទួលបានភាពត្រឹមត្រូវក៏ដោយ សូមយកចិត្តទុកដាក់ថា បកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគឺជាផ្នែកប្រភពដែលមានសិទ្ធិសក្តានុពល។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អាទិភាពការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/1-Introduction/notebook.ipynb b/translations/km/4-Classification/1-Introduction/notebook.ipynb new file mode 100644 index 000000000..7c2eff5c6 --- /dev/null +++ b/translations/km/4-Classification/1-Introduction/notebook.ipynb @@ -0,0 +1,35 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": 3 + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# អាហារឆ្ងាញ់បែបអាស៊ី និងឥណ្ឌា\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមកត់សម្គាល់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសារបស់វាគួរត្រូវបានចាត់ទុកជាធនាគារដែលមានអំណាចជាអធិបតី। សម្រាប់ព័ត៌មានសំខាន់ យើងណែនាំឱ្យបកប្រែដោយមនុស្សឯកទេសវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំឬការសន្និដ្ឋានខុសឆ្គងណាមួយដែលកើតចេញពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/4-Classification/1-Introduction/solution/Julia/README.md b/translations/km/4-Classification/1-Introduction/solution/Julia/README.md new file mode 100644 index 000000000..2fbc51cb2 --- /dev/null +++ b/translations/km/4-Classification/1-Introduction/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងទំនេរបណ្ដោះអាសន្ន + +--- + + +**ការបដិសេធ**: +ឯកសារនេះត្រូវបានបម្លែងជាភាសាដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំខិតខំរក្សា​តម្លៃភាពត្រឹមត្រូវ ក៏សូមយល់ដឹងថា ការប្រែប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមក្នុងភាសាម្រោងនឹងត្រូវបានគេសារពើភាគថាជាដើមដ៏មានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យបកប្រែដោយអ្នកជំនាញជាមនុស្ស។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការពន្យល់ខុសឆ្គងណាមួយដែលកើតមានដោយមានការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/1-Introduction/solution/R/lesson_10-R.ipynb b/translations/km/4-Classification/1-Introduction/solution/R/lesson_10-R.ipynb new file mode 100644 index 000000000..d0601efc1 --- /dev/null +++ b/translations/km/4-Classification/1-Introduction/solution/R/lesson_10-R.ipynb @@ -0,0 +1,725 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": { + "colab": { + "name": "lesson_10-R.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "ir", + "display_name": "R" + }, + "language_info": { + "name": "R" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# សាងសង់ម៉ូដែលចាត់ថ្នាក់ៈ ម្ហូបអាស៊ីនិងឥណ្ឌាសாளីឆ្ងាញ់\n" + ], + "metadata": { + "id": "ItETB4tSFprR" + } + }, + { + "cell_type": "markdown", + "source": [ + "## អំនើ្លបាចំព័ទ្ធទៅកាន់ការបែងចែក: សម្អាត ផ្តិតផ្គុំ និងមើលទិន្នន័យរបស់អ្នក\n", + "\n", + "នៅក្នុងមេរៀន​បួន​នេះ អ្នកនឹងស្វែងយល់ពីកម្រិតមូលដ្ឋានមួយនៃការរៀនម៉ាស៊ីនគ្លាស៊ីច - *ការបែងចែក*។ យើងនឹងដើរតាមវិធីប្រើប្រាស់អាល់ហ្គូរីធម៍បែងចែកនានាមួយជាមួយនឹងសំណុំទិន្នន័យអំពីម្ហូបឆែបឆៃដ៏អស្ចារ្យទាំងអាស៊ី និងឥណ្ឌា។ សង្ឃឹមថាអ្នកឃ្លីប!\n", + "\n", + "

\n", + " \n", + "

អបអរសាទរម្ហូបអាហារប្រចាំប៉ានអាស៊ីក្នុងមេរៀនទាំងនេះ! រូបភាពដោយ Jen Looper
\n", + "\n", + "\n", + "\n", + "\n", + "ការបែងចែកជារបៀបមួយនៃ [ការរៀនភាគីត្រួតត្រា](https://wikipedia.org/wiki/Supervised_learning) ដែលមានចំណុចស្រដៀងជាច្រើនជាមួយវិធីសាស្រ្តព្យាករណ៍កំណត់តម្លៃ។ ក្នុងការបែងចែក អ្នកហ្វឹកហ្វឺនម៉ូដែលមួយដើម្បីព្យាករណ៍ថា `ប្រភេទ` អ្វីមួយដែលធាតុមួយស្ថិតលើវា។ ប្រសិនបើការរៀនម៉ាស៊ីនគឺស្តីពីការព្យាករណ៍តម្លៃ ឬឈ្មោះទៅកាន់វត្ថុដោយប្រើសំណុំទិន្នន័យ ការបែងចែកទូទៅចែកចេញជាពីរគូរៈ *ការបែងចែកពីរប្រភេទ* និង *ការបែងចែកពហុប្រភេទ*។\n", + "\n", + "ចងចាំ៖\n", + "\n", + "- **ព្យាករណ៍បញ្ចាត់បន្ទាត់** ជួយអ្នកព្យាករណ៍ទំនាក់ទំនងរវាងអថេរនានា ហើយបញ្ចេញការព្យាករណ៍មិនខុសពីទីតាំងចំណុចទិន្នន័យថ្មីក្នុងទំនាក់ទំនងជាមួយបន្ទាត់នោះ។ ដូច្នេះ អ្នកអាចព្យាករណ៍តម្លៃជាទំនាក់ទំនងជាក់លាក់ ដូចជា *តម្លៃនៃផ្លែមូសនៅខែ កញ្ញា ប្រៀបធៀបទៅខែធ្នូ* ជាឧទាហរណ៍។\n", + "\n", + "- **ព្យាករណ៍លូជីស្ទិច** ជួយអ្នករកឃើញ \"ប្រភេទពីរប្រភេទ\": នៅតម្លៃនេះ, *ផ្លែមូសនេះមានពណ៌លឿងឬពណ៌ផ្សេងទេ*?\n", + "\n", + "ការបែងចែកប្រើអាល់ហ្គូរីធម៍ជាច្រើនដើម្បីកំណត់វិធីផ្សេងៗសម្រាប់កំណត់ស្លាកឬថ្នាក់របស់ចំណុចទិន្នន័យមួយ។ យើងនឹងធ្វើការជាមួយទិន្នន័យអាហារនេះដើម្បីមើលថា តើដោយពីប៉ុន្មានគ្រឿងផ្សំ អ្នកអាចកំណត់ប្រភពអាហារនោះឬអត់។\n", + "\n", + "### [**សំណួរត្រៀមមុនមេរៀន**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/19/)\n", + "\n", + "### **មុខម្ហូប**\n", + "\n", + "ការបែងចែកគឺជាព្រឹត្តិការណ៍មូលដ្ឋានមួយនៃអ្នកស្រាវជ្រាវការរៀនម៉ាស៊ីន និងវិទ្យាសាស្រ្តទិន្នន័យ។ ចាប់ពីការបែងចែកតម្លៃពីរភេទមូលដ្ឋានមួយ (\"អ៊ីមែលនេះជាស្ពាមឬអត់?\") ទៅដល់ការបែងចែក និងបំបែករូបភាពស្មុគស្មាញដោយប្រើកុំព្យូទ័រមើល, វានានាសមរម្យក្នុងការបំបែកទិន្នន័យទៅកាន់ថ្នាក់ទំនាក់ទំនងនិងសួរបញ្ហាពីវា។\n", + "\n", + "ដើម្បីបញ្ជាក់ពីដំណើរការនេះក្នុងវិជ្ជាជីវៈវិទ្យាសាស្រ្ត, វិធីសាស្រ្តការបែងចែករបស់អ្នកបង្កើតម៉ូដែលព្យាករណ៍ ដែលអនុញ្ញាតឲ្យអ្នកប៉ះពាល់ទំនាក់ទំនងរវាងអថេរបញ្ចូលទៅអថេរចេញ។\n", + "\n", + "

\n", + " \n", + "

បញ្ហាប្រភេទពីរ និងពហុប្រភេទសម្រាប់អាល់ហ្គូរីធម៍បែងចែកដោះសោ។ ក្រាហ្វិកដោយ Jen Looper
\n", + "\n", + "\n", + "\n", + "មុនចាប់ផ្តើមដំណើរការសម្អាតទិន្នន័យ, មើលវា និងត្រៀមវាសម្រាប់ភារកិច្ច ML របស់យើង, យើងត្រូវរៀនពីវិធីផ្សេងៗដែលការរៀនម៉ាស៊ីនអាចប្រើដើម្បីបែងចែកទិន្នន័យ។\n", + "\n", + "យកមកពី [ស្ថិតិវិទ្យា](https://wikipedia.org/wiki/Statistical_classification), ការបែងចែកដោយប្រើការរៀនម៉ាស៊ីនគ្លាស៊ីចប្រើលក្ខណៈជាចម្បង ដូចជា `ស្រវឹងបារី`, `ទម្ងន់`, និង `អាយុ` ដើម្បីកំណត់ *សព្វះប្រហែលនៃការរីកចម្រើនជម្ងឺ X*។ ជាវិធីសាស្ត្រ supervised learning ដូចកម្រិតព្យាករណ៍ដែលអ្នកបានអនុវត្តមុននេះ, ទិន្នន័យរបស់អ្នកត្រូវបានតម្លាភាព ហើយដែលអាល់ហ្គូរីធម៍ ML ប្រើស្លាកទាំងនោះដើម្បីចាត់ថ្នាក់ទិន្នន័យ និងព្យាករណ៍ថ្នាក់ (ឬ 'លក្ខណៈ') នៃសំណុំទិន្នន័យ ហើយចាត់វាទៅក្រុមឬលទ្ធផលមួយ។\n", + "\n", + "✅ ចំណាយពេលមួយដើម្បីស្រមៃពីសំណុំទិន្នន័យអំពីអាហារ។ ម៉ូដែលពហុប្រភេទអាចឆ្លើយសំណួរអ្វីបានខ្លះ? ម៉ូដែលពីរប្រភេទអាចឆ្លើយសំណួរអ្វីបានខ្លះ? តើប្រសិនបើអ្នកចង់កំណត់ថាអាហារដ៏គ្នានោះប្រហែលជានឹងប្រើ fenugreek ទេឬអត់? តើប្រសិនបើអ្នកចង់មើលថា ក្នុងករណីមានកាបូបដេញមួយពេញដោយ star anise, artichokes, cauliflower និង horseradish អ្នកអាចបង្កើតម្ហូបទេជាអាហារឥណ្ឌាទេ?\n", + "\n", + "### **ជំរាបសួរ 'អ្នកបែងចែក'**\n", + "\n", + "សំណួរដែលយើងចង់សួរពីសំណុំទិន្នន័យអាហារនេះចាំបាច់ជាគំរូសំណួរពហុប្រភេទ**, ព្រោះយើងមានអាហារជាតិមួយចំនួនដែលអាចប្រើបាន។ ផ្អែកលើក្រុមគ្រឿងផ្សំមួយណាមួយ, តើថ្នាក់ណាមួយក្នុងចំណោមថ្នាក់ណាច្រើនទាំងនេះ តើទិន្នន័យនឹងប៉ះពាល់ពីអ្វី?\n", + "\n", + "Tidymodels ផ្តល់ជូនសំណុំអាល់ហ្គូរីធម៍ផ្សេងៗដើម្បីប្រើបែងចែកទិន្នន័យ, អាស្រ័យលើប្រភេទបញ្ហាដែលអ្នកចង់ដោះស្រាយ។ ក្នុងមេរៀនបន្ទាប់ អ្នកនឹងរៀនអំពីអាល់ហ្គូរីធម៍ជាច្រើនទាំងនេះ។\n", + "\n", + "#### **មុខងារជាមុនតម្រូវ**\n", + "\n", + "សម្រាប់មេរៀននេះ យើងនឹងត្រូវការកញ្ចប់ទីតាំងដូច​ខាងក្រោម ដើម្បីសម្អាត ផ្តិតផ្គុំ និងមើលទិន្នន័យរបស់យើង៖\n", + "\n", + "- `tidyverse`: [tidyverse](https://www.tidyverse.org/) គឺជាសំណុំ [កញ្ចប់ R](https://www.tidyverse.org/packages) ដែលគេរចនាឡើងដើម្បីឲ្យវិទ្យាសាស្រ្តទិន្នន័យមានល្បឿនលឿន ស្រួលបំផុត និងរីករាយ!\n", + "\n", + "- `tidymodels`: សំណុំរចនាសម្ព័ន្ធ [tidymodels](https://www.tidymodels.org/) ជាសំណុំ [កញ្ចប់](https://www.tidymodels.org/packages/) សម្រាប់ម៉ូដែល និងការរៀនម៉ាស៊ីន។\n", + "\n", + "- `DataExplorer`: កញ្ចប់ [DataExplorer](https://cran.r-project.org/web/packages/DataExplorer/vignettes/dataexplorer-intro.html) មានគោលបំណង លៃតម្រូវ និងស្វ័យប្រវត្តិដំណើរការវិភាគទិន្នន័យមូលដ្ឋាន និងរាយការណ៍។\n", + "\n", + "- `themis`: កញ្ចប់ [themis](https://themis.tidymodels.org/) ផ្តល់ជូនជំហានបន្ថែមសម្រាប់ដោះស្រាយបញ្ហាទិន្នន័យមិនសមស្រប។\n", + "\n", + "អ្នកអាចដំឡើងវាទាំងនេះបានដោយបញ្ជា៖\n", + "\n", + "`install.packages(c(\"tidyverse\", \"tidymodels\", \"DataExplorer\", \"here\"))`\n", + "\n", + "ជាជម្រើសផ្សេងទៀត ស្គ្រីបខាងក្រោមពិនិត្យថាតើអ្នកមានកញ្ចប់ដែលត្រូវការដើម្បីបញ្ចប់មូឌុលនេះ ឬនៅ និងដំឡើងវាឲ្យក្នុងករណីខ្វះកញ្ចប់។\n" + ], + "metadata": { + "id": "ri5bQxZ-Fz_0" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "suppressWarnings(if (!require(\"pacman\"))install.packages(\"pacman\"))\r\n", + "\r\n", + "pacman::p_load(tidyverse, tidymodels, DataExplorer, themis, here)" + ], + "outputs": [], + "metadata": { + "id": "KIPxa4elGAPI" + } + }, + { + "cell_type": "markdown", + "source": [ + "យើងនឹងផ្ទុកកញ្ចប់ដ៏អស្ចារ្យទាំងនេះក្នុងពេលក្រោយ ហើយធ្វើអោយវាអាចប្រើបាននៅក្នុងវគ្គសម័យ R បច្ចុប្បន្នរបស់យើង។ (នេះគឺសម្រាប់ការបង្ហាញតែមួយ, `pacman::p_load()` បានធ្វើរួចហើយសម្រាប់អ្នក)\n" + ], + "metadata": { + "id": "YkKAxOJvGD4C" + } + }, + { + "cell_type": "markdown", + "source": [ + "## លំហាត់ - សម្អាត និងតុល្យភាពទិន្នន័យរបស់អ្នក\n", + "\n", + "ភារកិច្ចដំបូងនៅដៃមុនចាប់ផ្តើមគម្រោងនេះ គឺសម្អាត និង **តុល្យភាព** ទិន្នន័យរបស់អ្នកដើម្បីទទួលបានលទ្ធផលល្អប្រសើរជាងមុន\n", + "\n", + "មកស្គាល់ទិន្នន័យគ្នាដែរ!🕵️\n" + ], + "metadata": { + "id": "PFkQDlk0GN5O" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Import data\r\n", + "df <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/4-Classification/data/cuisines.csv\")\r\n", + "\r\n", + "# View the first 5 rows\r\n", + "df %>% \r\n", + " slice_head(n = 5)\r\n" + ], + "outputs": [], + "metadata": { + "id": "Qccw7okxGT0S" + } + }, + { + "cell_type": "markdown", + "source": [ + "គួរឱ្យចាប់អារម្មណ៍! ពីរូបរាងវា តួបែបទីមួយគឺជាបន្ទាត់ `id` មួយប្រភេទ។ យើងចង់ទទួលបានព័ត៌មានបន្ថែមអំពីទិន្នន័យនេះ។\n" + ], + "metadata": { + "id": "XrWnlgSrGVmR" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Basic information about the data\r\n", + "df %>%\r\n", + " introduce()\r\n", + "\r\n", + "# Visualize basic information above\r\n", + "df %>% \r\n", + " plot_intro(ggtheme = theme_light())" + ], + "outputs": [], + "metadata": { + "id": "4UcGmxRxGieA" + } + }, + { + "cell_type": "markdown", + "source": [ + "From the output, we can immediately see that we have `2448` rows and `385` columns and `0` missing values. We also have 1 discrete column, *cuisine*.\n", + "\n", + "## វាយឆ្លើយ - រៀនអំពីម្ហូបជាតិ\n", + "\n", + "ឥឡូវនេះការងារចាប់ផ្តើមមានភាពរំភើបច្រើន។ អ្នកមកស្វែងយល់អំពីការចែកចាយទិន្នន័យ តាមប្រភេទម្ហូបជាតិ។\n" + ], + "metadata": { + "id": "AaPubl__GmH5" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Count observations per cuisine\r\n", + "df %>% \r\n", + " count(cuisine) %>% \r\n", + " arrange(n)\r\n", + "\r\n", + "# Plot the distribution\r\n", + "theme_set(theme_light())\r\n", + "df %>% \r\n", + " count(cuisine) %>% \r\n", + " ggplot(mapping = aes(x = n, y = reorder(cuisine, -n))) +\r\n", + " geom_col(fill = \"midnightblue\", alpha = 0.7) +\r\n", + " ylab(\"cuisine\")" + ], + "outputs": [], + "metadata": { + "id": "FRsBVy5eGrrv" + } + }, + { + "cell_type": "markdown", + "source": [ + "មានប្រភេទម្ហូបចំនួនកំណត់មួយ ប៉ុន្តែការចែកចាយទិន្នន័យមិនស្មើគ្នាទេ។ អ្នកអាចជួសជុលវាបាន! មុនពេលធ្វើដូច្នោះ សូមស្រាវជ្រាវបន្ថែមតិចជាងនេះ។ \n", + "\n", + "បន្ទាប់មក យើងនឹងចែកចាយម្ហូបនីមួយៗទៅក្នុង tibble ផ្ទាល់ខ្លួនរបស់វា ហើយស្វែងរកមើលថាតើមានទិន្នន័យប៉ុន្មាន (ជួរឈរ, បន្ទាត់) រៀងរាល់ប្រភេទម្ហូបមួយៗ។ \n", + "\n", + "> A [tibble](https://tibble.tidyverse.org/) គឺជារាងទិន្នន័យទំនើបមួយ។ \n", + "\n", + "

\n", + " \n", + "

ស្នាដៃដោយ @allison_horst
\n" + ], + "metadata": { + "id": "vVvyDb1kG2in" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Create individual tibble for the cuisines\r\n", + "thai_df <- df %>% \r\n", + " filter(cuisine == \"thai\")\r\n", + "japanese_df <- df %>% \r\n", + " filter(cuisine == \"japanese\")\r\n", + "chinese_df <- df %>% \r\n", + " filter(cuisine == \"chinese\")\r\n", + "indian_df <- df %>% \r\n", + " filter(cuisine == \"indian\")\r\n", + "korean_df <- df %>% \r\n", + " filter(cuisine == \"korean\")\r\n", + "\r\n", + "\r\n", + "# Find out how much data is available per cuisine\r\n", + "cat(\" thai df:\", dim(thai_df), \"\\n\",\r\n", + " \"japanese df:\", dim(japanese_df), \"\\n\",\r\n", + " \"chinese_df:\", dim(chinese_df), \"\\n\",\r\n", + " \"indian_df:\", dim(indian_df), \"\\n\",\r\n", + " \"korean_df:\", dim(korean_df))" + ], + "outputs": [], + "metadata": { + "id": "0TvXUxD3G8Bk" + } + }, + { + "cell_type": "markdown", + "source": [ + "អស្ចារ្យ!😋\n", + "\n", + "## **ហាត់ប្រាណ - រកឃើញសារធាតុសំខាន់ៗតាមម្ហូបប្រភេទជាមួយ dplyr**\n", + "\n", + "ឥឡូវនេះ អ្នកអាចធ្វើការជ្រៀតចូលជ្រៅក្នុងទិន្នន័យ ហើយស្វែងយល់ថាតើសារធាតុណាដែលជាមធ្យមសម្រាប់ម្ហូបប្រភេទនីមួយៗ។ អ្នកគួរតែសម្អាតទិន្នន័យដែលបញ្ជេញមកជាច្រើនដែលបង្កើតការភាន់ច្រឡំរវាងម្ហូបប្រភេទ ដូច្នេះចូរយើងស្វែងយល់អំពីបញ្ហានេះ។\n", + "\n", + "បង្កើតមុខងារ `create_ingredient()` នៅក្នុង R ដែលធ្វើការចេញផ្តល់មកជាតារាងដាតាដាហ្វ្រេមអំពីសារធាតុផ្សំមួយ។ មុខងារនេះនឹងចាប់ផ្តើមដោយការដកបញ្ជៅមួយដែលគ្មានប្រយោជន៍ចេញ ហើយរៀបចំតាមសារធាតុផ្សំជាតាមចំនួនរបស់ពួកវា។\n", + "\n", + "រចនាសម្ព័ន្ធមូលដ្ឋាននៃមុខងារមួយនៅក្នុង R គឺ៖\n", + "\n", + "`myFunction <- function(arglist){`\n", + "\n", + "**`...`**\n", + "\n", + "**`return`**`(value)`\n", + "\n", + "`}`\n", + "\n", + "ការណែនាំស្អាតសំរាប់មុខងារ R អាចរកឃើញបាន [នៅទីនេះ](https://skirmer.github.io/presentations/functions_with_r.html#1)។\n", + "\n", + "ចាប់ផ្តើមតម្រឹមមក! យើងនឹងប្រើប្រាស់ [កិរិយាសព្ទ dplyr](https://dplyr.tidyverse.org/) ដែលយើងបានរៀននៅមេរៀនមុនៗ។ ដូចជាការត្រលប់មកមើលឡើងវិញ៖\n", + "\n", + "- `dplyr::select()`: ជួយអ្នកជ្រើសរើសថាតើក колонមានណាមួយដើម្បីរក្សា ឬដកចេញ។\n", + "\n", + "- `dplyr::pivot_longer()`: ជួយអ្នក \"ពង្រីក\" ទិន្នន័យ បន្ថែមចំនួនជួរដេក ហើយកាត់បន្ថយចំនួនជួរឈរ។\n", + "\n", + "- `dplyr::group_by()` និង `dplyr::summarise()`: ជួយអ្នករកស្ថិតិសង្ខេបសម្រាប់ក្រុមខុសៗគ្នា ហើយដាក់វាទៅក្នុងតារាងដ៏ស្អាតមួយ។\n", + "\n", + "- `dplyr::filter()`: បង្កើតជាផ្នែករងនៃទិន្នន័យ ដែលមានតែជួរដេកដែលបំពេញលក្ខខណ្ឌរបស់អ្នកប៉ុណ្ណោះ។\n", + "\n", + "- `dplyr::mutate()`: ជួយអ្នកបង្កើត ឬកែប្រែក колонមួយ។\n", + "\n", + "សូមពិនិត្យមើល [មេរៀនFilled with *art*](https://allisonhorst.shinyapps.io/dplyr-learnr/#section-welcome) នៃ learnr ដែលបង្កើតដោយ Allison Horst ដែលណែនាំមុខងារព្យួរការទិន្នន័យមានប្រយោជន៍នៅក្នុង dplyr *(ជាផ្នែកនៃ Tidyverse)*។\n" + ], + "metadata": { + "id": "K3RF5bSCHC76" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Creates a functions that returns the top ingredients by class\r\n", + "\r\n", + "create_ingredient <- function(df){\r\n", + " \r\n", + " # Drop the id column which is the first colum\r\n", + " ingredient_df = df %>% select(-1) %>% \r\n", + " # Transpose data to a long format\r\n", + " pivot_longer(!cuisine, names_to = \"ingredients\", values_to = \"count\") %>% \r\n", + " # Find the top most ingredients for a particular cuisine\r\n", + " group_by(ingredients) %>% \r\n", + " summarise(n_instances = sum(count)) %>% \r\n", + " filter(n_instances != 0) %>% \r\n", + " # Arrange by descending order\r\n", + " arrange(desc(n_instances)) %>% \r\n", + " mutate(ingredients = factor(ingredients) %>% fct_inorder())\r\n", + " \r\n", + " \r\n", + " return(ingredient_df)\r\n", + "} # End of function" + ], + "outputs": [], + "metadata": { + "id": "uB_0JR82HTPa" + } + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះ​យើងអាច​ប្រើ​មុខងារ​ដើម្បី​ទទួលបាន​គំនិត​អំពី​គ្រឿងផ្សំ​ចំនួនដប់ដ៏ពេញនិយម​បំផុត​តាម​ប្រភេទម្ហូប។ ចូរយក​ចេញ​មើល​ជាមួយ `thai_df`។\n" + ], + "metadata": { + "id": "h9794WF8HWmc" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Call create_ingredient and display popular ingredients\r\n", + "thai_ingredient_df <- create_ingredient(df = thai_df)\r\n", + "\r\n", + "thai_ingredient_df %>% \r\n", + " slice_head(n = 10)" + ], + "outputs": [], + "metadata": { + "id": "agQ-1HrcHaEA" + } + }, + { + "cell_type": "markdown", + "source": [ + "នៅក្នុងផ្នែកមុន យើងបានប្រើ `geom_col()` យើងចង់មើលថាតើអ្នកអាចប្រើ `geom_bar` ដែរ ដើម្បីបង្កើតសៀរមាត្តរបារផងដែរ។ ប្រើ `?geom_bar` សម្រាប់អានបន្ថែម។\n" + ], + "metadata": { + "id": "kHu9ffGjHdcX" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Make a bar chart for popular thai cuisines\r\n", + "thai_ingredient_df %>% \r\n", + " slice_head(n = 10) %>% \r\n", + " ggplot(aes(x = n_instances, y = ingredients)) +\r\n", + " geom_bar(stat = \"identity\", width = 0.5, fill = \"steelblue\") +\r\n", + " xlab(\"\") + ylab(\"\")" + ], + "outputs": [], + "metadata": { + "id": "fb3Bx_3DHj6e" + } + }, + { + "cell_type": "markdown", + "source": [ + "ចូរធ្វើអោយដូចគ្នាសម្រាប់ទិន្នន័យជប៉ុននេះផង\n" + ], + "metadata": { + "id": "RHP_xgdkHnvM" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Get popular ingredients for Japanese cuisines and make bar chart\r\n", + "create_ingredient(df = japanese_df) %>% \r\n", + " slice_head(n = 10) %>%\r\n", + " ggplot(aes(x = n_instances, y = ingredients)) +\r\n", + " geom_bar(stat = \"identity\", width = 0.5, fill = \"darkorange\", alpha = 0.8) +\r\n", + " xlab(\"\") + ylab(\"\")\r\n" + ], + "outputs": [], + "metadata": { + "id": "019v8F0XHrRU" + } + }, + { + "cell_type": "markdown", + "source": [ + "តើអាហារចិនយ៉ាងដូចម្តេច?\n" + ], + "metadata": { + "id": "iIGM7vO8Hu3v" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Get popular ingredients for Chinese cuisines and make bar chart\r\n", + "create_ingredient(df = chinese_df) %>% \r\n", + " slice_head(n = 10) %>%\r\n", + " ggplot(aes(x = n_instances, y = ingredients)) +\r\n", + " geom_bar(stat = \"identity\", width = 0.5, fill = \"cyan4\", alpha = 0.8) +\r\n", + " xlab(\"\") + ylab(\"\")" + ], + "outputs": [], + "metadata": { + "id": "lHd9_gd2HyzU" + } + }, + { + "cell_type": "markdown", + "source": [ + "មកមើលម្ហូបឥណ្ឌាក្នុងចំណោមវាជាអំណោយជាតិ 🌶️។\n" + ], + "metadata": { + "id": "ir8qyQbNH1c7" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Get popular ingredients for Indian cuisines and make bar chart\r\n", + "create_ingredient(df = indian_df) %>% \r\n", + " slice_head(n = 10) %>%\r\n", + " ggplot(aes(x = n_instances, y = ingredients)) +\r\n", + " geom_bar(stat = \"identity\", width = 0.5, fill = \"#041E42FF\", alpha = 0.8) +\r\n", + " xlab(\"\") + ylab(\"\")" + ], + "outputs": [], + "metadata": { + "id": "ApukQtKjH5FO" + } + }, + { + "cell_type": "markdown", + "source": [ + "ចុងក្រោយ បង្ហាញគ្រឿងផ្សំកូរ៉េ។\n" + ], + "metadata": { + "id": "qv30cwY1H-FM" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Get popular ingredients for Korean cuisines and make bar chart\r\n", + "create_ingredient(df = korean_df) %>% \r\n", + " slice_head(n = 10) %>%\r\n", + " ggplot(aes(x = n_instances, y = ingredients)) +\r\n", + " geom_bar(stat = \"identity\", width = 0.5, fill = \"#852419FF\", alpha = 0.8) +\r\n", + " xlab(\"\") + ylab(\"\")" + ], + "outputs": [], + "metadata": { + "id": "lumgk9cHIBie" + } + }, + { + "cell_type": "markdown", + "source": [ + "ពីរូបភាពតំណាងទិន្នន័យ ឥឡូវនេះយើងអាចដកចេញគ្រឿងផ្សំដែលមានប្រើប្រាស់ទូទៅបំផុតដែលបង្កើតការយ៉ាងច្របូកច្របល់ចំពោះម្ហូបប្រភេទផ្សេងៗ ដោយប្រើ `dplyr::select()`។\n", + "\n", + "មនុស្សគ្រប់គ្នាស្រឡាញ់អង្ករ ខ្ទឹម និងខ្ញី!\n" + ], + "metadata": { + "id": "iO4veMXuIEta" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Drop id column, rice, garlic and ginger from our original data set\r\n", + "df_select <- df %>% \r\n", + " select(-c(1, rice, garlic, ginger))\r\n", + "\r\n", + "# Display new data set\r\n", + "df_select %>% \r\n", + " slice_head(n = 5)" + ], + "outputs": [], + "metadata": { + "id": "iHJPiG6rIUcK" + } + }, + { + "cell_type": "markdown", + "source": [ + "## ការប្រមូលផ្តុំទិន្នន័យជាមុនដោយប្រើរូបមន្ត 👩‍🍳👨‍🍳 - គ្រប់គ្រងទិន្នន័យមិនស្មើគ្នា ⚖️\n", + "\n", + "

\n", + " \n", + "

សិល្បៈដោយ @allison_horst
\n", + "\n", + "ដោយសារមេរៀននេះជារឿងអំពីម្ហូបសេប, យើងត្រូវតែដាក់ `recipes` ទៅក្នុងបរិបទ។\n", + "\n", + "Tidymodels ផ្ដល់នូវកញ្ចប់មួយទៀតដែលគួរអោយចាប់អារម្មណ៍: `recipes`- កញ្ចប់សម្រាប់ការប្រមូលផ្តុំទិន្នន័យជាមុន។\n" + ], + "metadata": { + "id": "kkFd-JxdIaL6" + } + }, + { + "cell_type": "markdown", + "source": [ + "ចង់មើលការចែកចាយនៃម្ហូបរបស់យើងម្តងទៀត។\n" + ], + "metadata": { + "id": "6l2ubtTPJAhY" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Distribution of cuisines\r\n", + "old_label_count <- df_select %>% \r\n", + " count(cuisine) %>% \r\n", + " arrange(desc(n))\r\n", + "\r\n", + "old_label_count" + ], + "outputs": [], + "metadata": { + "id": "1e-E9cb7JDVi" + } + }, + { + "cell_type": "markdown", + "source": [ + "ដូចដែលអ្នកអាចមើលឃើញ មានការចែកចាយមិនស្មើគ្នាក្នុងចំនួនម្ហូបអាហារ។ ម្ហូបអាហារកូរ៉េប្រហែលជា ៣ ដងនៃម្ហូបអាហារថៃ។ ទិន្នន័យមិនស្មើគ្នានេះជារឿយៗធ្វើឲ្យមានផលប៉ះពាល់អវិជ្ជមានទៅលើការបង្ហាត់ម៉ូដែល។ ពិចារណាពីការបែងចែកពីរប្រភេទ។ ប្រសិនបើទិន្នន័យភាគច្រើនរបស់អ្នកជាប្រភេទមួយម៉ូដែល ML នឹងទាយយ៉ាងច្រើននូវប្រភេទនោះ ដោយសារតែមានទិន្នន័យច្រើនសម្រាប់វា។ ការតុល្យភាពទិន្នន័យជួយយកទិន្នន័យដែលត្រូវបានព្យួរជ្រុង និងជួយដកចេញពីភាពមិនស្មើគ្នានេះ។ ម៉ូដែលជាច្រើនមានសមត្ថភាពល្អបំផុតនៅពេលចំនួនការសង្កេតឃើញស្មើគ្នា ហើយដូច្នេះ លំបាកចំពោះទិន្នន័យមិនស្មើគ្នា។\n", + "\n", + "មានវិធីធំៗពីរដើម្បីដោះស្រាយបញ្ហាទិន្នន័យមិនស្មើគ្នា៖\n", + "\n", + "- បន្ថែមការសង្កេតទៅក្នុងប្រភេទតិច: `ការបន្ថែមទិន្នន័យ` ឧ. ប្រើអាល់ហ្គរីធึម SMOTE\n", + "\n", + "- ដកការសង្កេតចេញពីប្រភេទភាគច្រើន: `ការកាត់បន្ថយទិន្នន័យ`\n", + "\n", + "ឥឡូវនេះយើងនឹងបង្ហាញទ្រង់ទ្រាយធ្វើដូចម្ដេចដើម្បីដោះស្រាយបញ្ហាទិន្នន័យមិនស្មើគ្នាប្រើ `recipe`។ ឯកសារ recipe អាចគិតថាជារូបរាងសម្រាប់ពិពណ៌នាពីជំហានជាក់លាក់ដែលគួរត្រូវបានអនុវត្តលើទិន្នន័យ ដើម្បីធ្វើឲ្យវាត្រៀមសម្រាប់វិភាគទិន្នន័យ។\n" + ], + "metadata": { + "id": "soAw6826JKx9" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Load themis package for dealing with imbalanced data\r\n", + "library(themis)\r\n", + "\r\n", + "# Create a recipe for preprocessing data\r\n", + "cuisines_recipe <- recipe(cuisine ~ ., data = df_select) %>% \r\n", + " step_smote(cuisine)\r\n", + "\r\n", + "cuisines_recipe" + ], + "outputs": [], + "metadata": { + "id": "HS41brUIJVJy" + } + }, + { + "cell_type": "markdown", + "source": [ + "ចង់បំបែកជំហានដំបូងនៃការកំណត់ទិន្នន័យរបស់យើង។\n", + "\n", + "- ការហៅ `recipe()` ជាមួយនឹងរូបមន្តបានប្រាប់ឱ្យ recipe ស្គាល់ *តួនាទី* នៃអថេរជាមួយ `df_select` ទិន្នន័យជាគន្លងយោង។ ឧទាហរណ៍ជួរដេក `cuisine` ត្រូវបានផ្ដល់តួនាទីជា `outcome` ខណៈជួរដេកផ្សេងទៀតត្រូវបានផ្ដល់តួនាទីជា `predictor`។\n", + "\n", + "- [`step_smote(cuisine)`](https://themis.tidymodels.org/reference/step_smote.html) បង្កើត *កំណត់បែបបទ* នៃជំហាន recipe មួយដែលបង្កើតឧទាហរណ៍ថ្មីៗនៃថ្នាក់តិចចំនួនដោយប្រើអ្នកជិតខាងបំផុតនៃករណីទាំងនេះ។\n", + "\n", + "ឥឡូវនេះ ប្រសិនបើយើងចង់មើលទិន្នន័យដែលបានកំណត់រួចជាមុន ត្រូវតែ [**`prep()`**](https://recipes.tidymodels.org/reference/prep.html) និង [**`bake()`**](https://recipes.tidymodels.org/reference/bake.html) recipe របស់យើង។\n", + "\n", + "`prep()`: ประมาณค่าพารามิเตอร์ที่จำเป็นจากชุดฝึกซ้อมที่สามารถนำไปใช้กับชุดข้อมูลอื่นได้ในภายหลัง។\n", + "\n", + "`bake()`: យក recipe ដែលបានកំណត់រួចហើយដាក់អនុវត្តលើគ្រប់សំណុំទិន្នន័យមួយណា។\n" + ], + "metadata": { + "id": "Yb-7t7XcJaC8" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Prep and bake the recipe\r\n", + "preprocessed_df <- cuisines_recipe %>% \r\n", + " prep() %>% \r\n", + " bake(new_data = NULL) %>% \r\n", + " relocate(cuisine)\r\n", + "\r\n", + "# Display data\r\n", + "preprocessed_df %>% \r\n", + " slice_head(n = 5)\r\n", + "\r\n", + "# Quick summary stats\r\n", + "preprocessed_df %>% \r\n", + " introduce()" + ], + "outputs": [], + "metadata": { + "id": "9QhSgdpxJl44" + } + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះយើងចាំពិនិត្យចែកចាយម្ហូបអាហាររបស់យើង ហើយប្រៀបធៀបវាជាមួយទិន្នន័យដែលមានការមិនសមតុល្យ។\n" + ], + "metadata": { + "id": "dmidELh_LdV7" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Distribution of cuisines\r\n", + "new_label_count <- preprocessed_df %>% \r\n", + " count(cuisine) %>% \r\n", + " arrange(desc(n))\r\n", + "\r\n", + "list(new_label_count = new_label_count,\r\n", + " old_label_count = old_label_count)" + ], + "outputs": [], + "metadata": { + "id": "aSh23klBLwDz" + } + }, + { + "cell_type": "markdown", + "source": [ + "យឹម! ទិន្នន័យនេះឆ្ងាយ និងស្អាត, មានតុល្យភាព ហើយឆ្ងាញ់ណាស់ 😋!\n", + "\n", + "> ជាច្បាប់, រេស៊ីពីជាមធ្យោបាយមួយសម្រាប់ការរៀបចំទិន្នន័យដែលវាកំណត់ថា តើជំហានណាខ្លះដែលគួរត្រូវអនុវត្តទៅលើសំណុំទិន្នន័យ ដើម្បីធ្វើឱ្យវាម្រាមម៉ូនសម្រាប់ការគំរូ។ ក្នុងករណីនោះ, `workflow()` ជាទូទៅត្រូវបានប្រើ (ដូចដែលយើងបានឃើញក្នុងមេរៀនមុនៗរបស់ពួកយើង) ជំនួសការប៉ាន់ប្រមាណរេស៊ីពីដោយដៃ។\n", + ">\n", + "> ដូច្នេះ អ្នកមិនអាចត្រូវការប្រើ **`prep()`** និង **`bake()`** ជារេស៊ីពីនៅពេលប្រើ tidymodels ប៉ុន្តែវាជាភាសារបស់ឧបករណ៍មួយ ដើម្បីផ្ទៀងផ្ទាត់ថារេស៊ីពីកំពុងធ្វើអ្វីដែលអ្នករំពឹងទុក ដូចក្នុងករណីរបស់យើង។\n", + ">\n", + "> នៅពេលដែលអ្នក **`bake()`** រេស៊ីពីដែលបានរៀបចំជាមួយ **`new_data = NULL`**, អ្នកនឹងទទួលបានទិន្នន័យដែលអ្នកបានផ្ដល់ពេលកំណត់រេស៊ីពីត្រឡប់មកវិញ ប៉ុន្តែបានរត់តាមជំហាននៃការរៀបចំជាមុន។\n", + "\n", + "ឥឡូវនេះ ចូរកត់ត្រា ចម្លងទិន្នន័យនេះសម្រាប់ប្រើនៅមេរៀននាពេលអនាគត៖\n" + ], + "metadata": { + "id": "HEu80HZ8L7ae" + } + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Save preprocessed data\r\n", + "write_csv(preprocessed_df, \"../../../data/cleaned_cuisines_R.csv\")" + ], + "outputs": [], + "metadata": { + "id": "cBmCbIgrMOI6" + } + }, + { + "cell_type": "markdown", + "source": [ + "CSV ថ្មីនេះឥឡូវនេះអាចរកឃើញនៅក្នុងថតទិន្នន័យដើម។\n", + "\n", + "**🚀ការ​ប្រកួតប្រជែង**\n", + "\n", + "មេរៀននេះមានសំណុំនៃទិន្នន័យច្រើននាក់ដែលគួរឱ្យចាប់អារម្មណ៍។ សូមស្វែងរកក្នុងថត `data` ហើយមើលថាតើមានទិន្នន័យណាដែលសមស្របសម្រាប់ការធ្វើចំណាត់ថ្នាក់ពីរភាគ ឬចំណាត់ថ្នាក់ច្រើនជំពូកទេ? តើអ្នកនឹងសួរបញ្ហាអ្វីពីទិន្នន័យនេះ?\n", + "\n", + "## [**ភាសាការប្រលងក្រោយមេរៀន**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/20/)\n", + "\n", + "## **ការត្រួតពិនិត្យ & ការសិក្សាឯកត្ត**\n", + "\n", + "- សូមពិនិត្យមើល [package themis](https://github.com/tidymodels/themis)។ តើយុទ្ធសាស្ត្រផ្សេងទៀតណាអាចប្រើដើម្បីដោះស្រាយបញ្ហាទិន្នន័យមិនសមមាត្របាន?\n", + "\n", + "- គេហទំព័រយោងរបស់ម៉ូដែល Tidy [reference website](https://www.tidymodels.org/start/)។\n", + "\n", + "- H. Wickham និង G. Grolemund, [*R សម្រាប់វិទ្យាសាស្ត្រទិន្នន័យ៖ ការមើលឃើញ, ម៉ូដែល, ការបំលែង, ការរៀបចំ, និងការនាំចូលទិន្នន័យ*](https://r4ds.had.co.nz/)។\n", + "\n", + "#### អរគុណចំពោះ៖\n", + "\n", + "[`Allison Horst`](https://twitter.com/allison_horst/) សម្រាប់ការបង្កើតរូបភាពដ៏អស្ចារ្យដែលធ្វើឲ្យ R កាន់តែស្វាគមន៍ និងមានភាពទាក់ទាញ។ សូមរករូបភាពបន្ថែមតាម [កម្រងរូបភាពរបស់នាង](https://www.google.com/url?q=https://github.com/allisonhorst/stats-illustrations&sa=D&source=editors&ust=1626380772530000&usg=AOvVaw3zcfyCizFQZpkSLzxiiQEM)។\n", + "\n", + "[Cassie Breviu](https://www.twitter.com/cassieview) និង [Jen Looper](https://www.twitter.com/jenlooper) សម្រាប់ការបង្កើតជំនាន់ Python ដើមនៃមូឌុលនេះ ♥️\n", + "\n", + "

\n", + " \n", + "

សិល្បៈដោយ @allison_horst
\n" + ], + "metadata": { + "id": "WQs5621pMGwf" + } + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការព្រមាន**៖ \nឯកសារនេះត្រូវបាន​ប្រែសម្រួល​ដោយ​ប្រើ​ប្រាស់​សេវាកម្ម​ប្រែសម្រួល AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈ​ពេល​យើង​ព្យាយាម​ក្នុង​ការ​ធានា​នៃភាពត្រឹមត្រូវ សូម​ជ្រាប​ថា​ការ​ប្រែសម្រួល​ស្វ័យប្រវត្តិ​អាច​មាន​កំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើម​នៅ​ភាសា​ដើម​គួរត្រូវ​បាន​គេ​កត់សម្គាល់​ថា​ជា​ប្រភព​ត្រឹមត្រូវ​និង​អ្នកមានអំណាច។ សម្រាប់​ព័ត៌មាន​សំខាន់ៗ ការប្រែសម្រួល​ដោយមនុស្ស​វិជ្ជាជីវៈ​ត្រូវបាន​សូម​ផ្តល់អាទិភាព។ យើងមិនទទួលខុសត្រូវចំពោះ​ការ​យល់ខុស ឬ​ការ​បំភាន់​ដែលបណ្តាលមកពី​ការ​ប្រើប្រាស់​ការ​ប្រែសម្រួល​នេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/4-Classification/1-Introduction/solution/notebook.ipynb b/translations/km/4-Classification/1-Introduction/solution/notebook.ipynb new file mode 100644 index 000000000..f03bde150 --- /dev/null +++ b/translations/km/4-Classification/1-Introduction/solution/notebook.ipynb @@ -0,0 +1,671 @@ +{ + "cells": [ + { + "source": [ + "# ម្ហូបអាស៊ាននិងឥណ្ឌាសរសៃឆ្ងាញ់\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "ដំឡុក Imblearn ដែលនឹងអនុញ្ញាតឱ្យប្រើ SMOTE។ នេះគឺជាបណ្ណាល័យ Scikit-learn មួយដែលជួយដោះស្រាយទិន្នន័យដែលមិនស្មើញគ្នា នៅពេលធ្វើចំណាត់ថ្នាក់។ (https://imbalanced-learn.org/stable/)\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: imblearn in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (0.0)\n", + "Requirement already satisfied: imbalanced-learn in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from imblearn) (0.8.0)\n", + "Requirement already satisfied: numpy>=1.13.3 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from imbalanced-learn->imblearn) (1.19.2)\n", + "Requirement already satisfied: scipy>=0.19.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from imbalanced-learn->imblearn) (1.4.1)\n", + "Requirement already satisfied: scikit-learn>=0.24 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from imbalanced-learn->imblearn) (0.24.2)\n", + "Requirement already satisfied: joblib>=0.11 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from imbalanced-learn->imblearn) (0.16.0)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from scikit-learn>=0.24->imbalanced-learn->imblearn) (2.1.0)\n", + "\u001b[33mWARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.\n", + "You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install --upgrade pip' command.\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install imblearn" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import matplotlib.pyplot as plt\n", + "import matplotlib as mpl\n", + "import numpy as np\n", + "from imblearn.over_sampling import SMOTE" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.read_csv('../../data/cuisines.csv')" + ] + }, + { + "source": [ + "ឧទាហរណ៍ទិន្នន័យនេះរួមមានស្ទូណាប់ ៣៨៥ ដែលបង្ហាញពីគ្រឿងផ្សំគ្រប់ប្រភេទក្នុងម្ហូបផ្សេងៗពីប្រភេទម្ហូបដែលបានផ្តល់។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Unnamed: 0 cuisine almond angelica anise anise_seed apple \\\n", + "0 65 indian 0 0 0 0 0 \n", + "1 66 indian 1 0 0 0 0 \n", + "2 67 indian 0 0 0 0 0 \n", + "3 68 indian 0 0 0 0 0 \n", + "4 69 indian 0 0 0 0 0 \n", + "\n", + " apple_brandy apricot armagnac ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 385 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnac...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
065indian00000000...0000000000
166indian10000000...0000000000
267indian00000000...0000000000
368indian00000000...0000000000
469indian00000000...0000000010
\n

5 rows × 385 columns

\n
" + }, + "metadata": {}, + "execution_count": 4 + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\nRangeIndex: 2448 entries, 0 to 2447\nColumns: 385 entries, Unnamed: 0 to zucchini\ndtypes: int64(384), object(1)\nmemory usage: 7.2+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "korean 799\n", + "indian 598\n", + "chinese 442\n", + "japanese 320\n", + "thai 289\n", + "Name: cuisine, dtype: int64" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ], + "source": [ + "df.cuisine.value_counts()" + ] + }, + { + "source": [ + "បង្ហាញចំណីអាហារជាក្រាបដុំប្រាវ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 7 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "df.cuisine.value_counts().plot.barh()" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "thai df: (289, 385)\njapanese df: (320, 385)\nchinese df: (442, 385)\nindian df: (598, 385)\nkorean df: (799, 385)\n" + ] + } + ], + "source": [ + "\n", + "thai_df = df[(df.cuisine == \"thai\")]\n", + "japanese_df = df[(df.cuisine == \"japanese\")]\n", + "chinese_df = df[(df.cuisine == \"chinese\")]\n", + "indian_df = df[(df.cuisine == \"indian\")]\n", + "korean_df = df[(df.cuisine == \"korean\")]\n", + "\n", + "print(f'thai df: {thai_df.shape}')\n", + "print(f'japanese df: {japanese_df.shape}')\n", + "print(f'chinese df: {chinese_df.shape}')\n", + "print(f'indian df: {indian_df.shape}')\n", + "print(f'korean df: {korean_df.shape}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## អ្វីជាសមាស្វត្ថុចម្បងតាមថ្នាក់\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def create_ingredient_df(df):\n", + " # transpose df, drop cuisine and unnamed rows, sum the row to get total for ingredient and add value header to new df\n", + " ingredient_df = df.T.drop(['cuisine','Unnamed: 0']).sum(axis=1).to_frame('value')\n", + " # drop ingredients that have a 0 sum\n", + " ingredient_df = ingredient_df[(ingredient_df.T != 0).any()]\n", + " # sort df\n", + " ingredient_df = ingredient_df.sort_values(by='value', ascending=False, inplace=False)\n", + " return ingredient_df\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 10 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "thai_ingredient_df = create_ingredient_df(thai_df)\r\n", + "thai_ingredient_df.head(10).plot.barh()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 11 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "japanese_ingredient_df = create_ingredient_df(japanese_df)\r\n", + "japanese_ingredient_df.head(10).plot.barh()" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 12 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "chinese_ingredient_df = create_ingredient_df(chinese_df)\r\n", + "chinese_ingredient_df.head(10).plot.barh()" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 13 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "indian_ingredient_df = create_ingredient_df(indian_df)\r\n", + "indian_ingredient_df.head(10).plot.barh()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 14 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "korean_ingredient_df = create_ingredient_df(korean_df)\r\n", + "korean_ingredient_df.head(10).plot.barh()" + ] + }, + { + "source": [ + "ដកចេញគ្រឿងផ្សំដែលពេញនិយមខ្លាំង (ដែលទូទៅមាននៅក្នុងម្ហូបគ្រប់ប្រភេទ)\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " almond angelica anise anise_seed apple apple_brandy apricot \\\n", + "0 0 0 0 0 0 0 0 \n", + "1 1 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 0 \n", + "\n", + " armagnac artemisia artichoke ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 380 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
almondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiaartichoke...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00000000000...0000000000
11000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000010
\n

5 rows × 380 columns

\n
" + }, + "metadata": {}, + "execution_count": 15 + } + ], + "source": [ + "feature_df= df.drop(['cuisine','Unnamed: 0','rice','garlic','ginger'], axis=1)\n", + "labels_df = df.cuisine #.unique()\n", + "feature_df.head()\n" + ] + }, + { + "source": [ + "តុល្យមាត្រទិន្នន័យជាមួយ SMOTE oversampling ទៅកាន់ថ្នាក់ខ្ពស់បំផុត។ អានបន្ថែមនៅទីនេះ៖ https://imbalanced-learn.org/dev/references/generated/imblearn.over_sampling.SMOTE.html\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "oversample = SMOTE()\n", + "transformed_feature_df, transformed_label_df = oversample.fit_resample(feature_df, labels_df)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "new label count: korean 799\nchinese 799\njapanese 799\nindian 799\nthai 799\nName: cuisine, dtype: int64\nold label count: korean 799\nindian 598\nchinese 442\njapanese 320\nthai 289\nName: cuisine, dtype: int64\n" + ] + } + ], + "source": [ + "print(f'new label count: {transformed_label_df.value_counts()}')\r\n", + "print(f'old label count: {df.cuisine.value_counts()}')" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " almond angelica anise anise_seed apple apple_brandy apricot \\\n", + "0 0 0 0 0 0 0 0 \n", + "1 1 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 0 \n", + "\n", + " armagnac artemisia artichoke ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 380 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
almondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiaartichoke...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00000000000...0000000000
11000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000010
\n

5 rows × 380 columns

\n
" + }, + "metadata": {}, + "execution_count": 18 + } + ], + "source": [ + "transformed_feature_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " cuisine almond angelica anise anise_seed apple apple_brandy \\\n", + "0 indian 0 0 0 0 0 0 \n", + "1 indian 1 0 0 0 0 0 \n", + "2 indian 0 0 0 0 0 0 \n", + "3 indian 0 0 0 0 0 0 \n", + "4 indian 0 0 0 0 0 0 \n", + "... ... ... ... ... ... ... ... \n", + "3990 thai 0 0 0 0 0 0 \n", + "3991 thai 0 0 0 0 0 0 \n", + "3992 thai 0 0 0 0 0 0 \n", + "3993 thai 0 0 0 0 0 0 \n", + "3994 thai 0 0 0 0 0 0 \n", + "\n", + " apricot armagnac artemisia ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "... ... ... ... ... ... ... ... \n", + "3990 0 0 0 ... 0 0 0 \n", + "3991 0 0 0 ... 0 0 0 \n", + "3992 0 0 0 ... 0 0 0 \n", + "3993 0 0 0 ... 0 0 0 \n", + "3994 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "... ... ... ... ... ... ... ... \n", + "3990 0 0 0 0 0 0 0 \n", + "3991 0 0 0 0 0 0 0 \n", + "3992 0 0 0 0 0 0 0 \n", + "3993 0 0 0 0 0 0 0 \n", + "3994 0 0 0 0 0 0 0 \n", + "\n", + "[3995 rows x 381 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisia...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
0indian000000000...0000000000
1indian100000000...0000000000
2indian000000000...0000000000
3indian000000000...0000000000
4indian000000000...0000000010
..................................................................
3990thai000000000...0000000000
3991thai000000000...0000000000
3992thai000000000...0000000000
3993thai000000000...0000000000
3994thai000000000...0000000000
\n

3995 rows × 381 columns

\n
" + }, + "metadata": {}, + "execution_count": 19 + } + ], + "source": [ + "# export transformed data to new df for classification\n", + "transformed_df = pd.concat([transformed_label_df,transformed_feature_df],axis=1, join='outer')\n", + "transformed_df" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "\nRangeIndex: 3995 entries, 0 to 3994\nColumns: 381 entries, cuisine to zucchini\ndtypes: int64(380), object(1)\nmemory usage: 11.6+ MB\n" + ] + } + ], + "source": [ + "transformed_df.info()" + ] + }, + { + "source": [ + "រក្សាទុកឯកសារនេះសម្រាប់ការប្រើប្រាស់ក្នុងអនាគត\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "transformed_df.to_csv(\"../../data/cleaned_cuisines.csv\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបម្លែងជាភាសាដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមជម្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬខុសឆ្គង។ ឯកសារដើមក្នុងភាសាមាតុភូមិគួរត្រូវបានគិតថាជាផ្លូវការបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែក្នុងវិធីខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/translations/km/4-Classification/2-Classifiers-1/README.md b/translations/km/4-Classification/2-Classifiers-1/README.md new file mode 100644 index 000000000..2de8c67e3 --- /dev/null +++ b/translations/km/4-Classification/2-Classifiers-1/README.md @@ -0,0 +1,250 @@ +# កម្មវិធីចាត់ថ្នាក់ម្ហូបចំណី 1 + +នៅក្នុងមេរៀននេះ អ្នកនឹងប្រើទិន្នន័យដែលអ្នកបានរក្សាទុកពីមេរៀនមុន ដែលពេញជាមួយទិន្នន័យត្រឹមត្រូវ ស្អាត និងទាក់ទងនឹងម្ហូបចំណីទាំងអស់។ + +អ្នកនឹងប្រើទិន្នន័យនេះជាមួយកម្មវិធីចាត់ថ្នាក់មុខជាច្រើន ដើម្បី _ធ្វើការប៉ាន់ស្មានម្ហូបជាតិនាក់ជាក់លាក់ដោយផ្អែកលើក្រុមគ្រឿងផ្សំមួយ_. ខណៈពេលធ្វើម្តងនេះ អ្នកនឹងរៀនបន្ថែមអំពីវិធីដែលអាល់ហ្គូរីធម៌អាចប្រើបានសម្រាប់ភារកិច្ចចាត់ថ្នាក់។ + +## [មេរៀនជំនួញមុន](https://ff-quizzes.netlify.app/en/ml/) +# ការរៀបចំ + +សន្មតបើអ្នកបានបញ្ចប់ [មេរៀនទី 1](../1-Introduction/README.md) សូមប្រាកដថាឯកសារ _cleaned_cuisines.csv_ មាននៅក្នុងថតឫស `/data` សម្រាប់មេរៀនបួននេះ។ + +## លំហាត់ - ប៉ាន់ស្មានម្ហូបជាតិនាក់ + +1. ធ្វើការងារនៅក្នុងថត _notebook.ipynb_ របស់មេរៀននេះ ដើម្បីនាំចូលឯកសារនោះជាមួយបណ្ណាល័យ Pandas៖ + + ```python + import pandas as pd + cuisines_df = pd.read_csv("../data/cleaned_cuisines.csv") + cuisines_df.head() + ``` + + ទិន្នន័យមានរូបរាងដូចខាងក្រោម៖ + +| | 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 ទៅជាdfពីរប្រភេទសម្រាប់ហ្វឹកហាត់។ `cuisine` អាចជាដាតាហ្វ្រេសសម្រាប់ស្លាក៖ + + ```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. លុបជួរឈរដែលមានឈ្មោះ `Unnamed: 0` និងជួរឈរ `cuisine` ដោយហៅ `drop()`។ រក្សាទុកទិន្នន័យសល់ជាលក្ខណៈសម្បត្តិសម្រាប់ហ្វឹកហាត់៖ + + ```python + cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1) + cuisines_feature_df.head() + ``` + + លក្ខណៈសម្បត្តិរបស់អ្នកមានរូបរាងដូចខាងក្រោម៖ + +| | 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 | + +ឥឡូវអ្នករួចរាល់សម្រាប់ហ្វឹកហាត់ម៉ូដែលរបស់អ្នកហើយ! + +## ការជ្រើសរើសកម្មវិធីចាត់ថ្នាក់ + +ឥឡូវនេះទិន្នន័យរបស់អ្នកបានស្អាត និងរួចរាល់សម្រាប់ហ្វឹកហាត់ អ្នកត្រូវតែសម្រេចថា អាល់ហ្គូរីធម៌ណាដែលត្រូវប្រើសម្រាប់ភារកិច្ចនេះ។ + +Scikit-learn ដាក់ក្រុមការចាត់ថ្នាក់នៅក្រោមការសិក្សាប្រភេទៈអនុគ្រោះ (Supervised Learning) ហើយក្នុងប្រភេទនោះ អ្នកនឹងរកឃើញវិធីជាច្រើនសម្រាប់ចាត់ថ្នាក់។ [ភាពខុសគ្នា](https://scikit-learn.org/stable/supervised_learning.html) គឺអាចធ្វើអោយច្របូកច្របល់នៅដំណើរមុន។ វិធីសាស្រ្តខាងក្រោមទាំងអស់រួមបញ្ចូលបច្ចេកទេសចាត់ថ្នាក់៖ + +- ម៉ូដែលបន្ទាត់ +- ម៉ាស៊ីនគាំទ្រតំបន់ +- ការវិលត្រឡប់ក្រាដីអង់តឹកប្លូ +- មិត្តជិតខាង +- ដំណើរការហ្គោស៊ីយ៉ង់ +- រុក្ខជាតិនិរន្តរភាព +- វិធីសាស្រ្តក្រុម (voting Classifier) +- អាល់ហ្គូរីធម៌ច្រើនថ្នាក់ និងច្រើនប្រភេទលទ្ធផល (multiclass and multilabel classification, multiclass-multioutput classification) + +> អ្នកក៏អាចប្រើ [បណ្ដាញណឺរ៉ាល់សម្រាប់ចាត់ថ្នាក់ទិន្នន័យ](https://scikit-learn.org/stable/modules/neural_networks_supervised.html#classification) ដែរ ប៉ុន្តែវាអ្នកខុសពីស៊ក្តមេរៀននេះ។ + +### តើត្រូវជ្រើសរើសកម្មវិធីចាត់ថ្នាក់ណា? + +ដូច្នេះ អ្នកគួរជ្រើសរើសកម្មវិធីចាត់ថ្នាក់ណា? ជាញឹកញាប់ ការរត់តាមកម្មវិធីជាច្រើន ហើយសំរាប់ស្វែងរកលទ្ធផលល្អគឺជាវិធីសាកល្បងមួយ។ Scikit-learn នាំមកនូវ [ការប្រៀបធៀបប្រភេទជាក្បាលតាបផ្ទាំង](https://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html) លើទិន្នន័យដែលបានបង្កើត ជាមួយទម្រង់ KNeighbors, SVC ជាផ្លូវពីរប្រភេទ, GaussianProcessClassifier, DecisionTreeClassifier, RandomForestClassifier, MLPClassifier, AdaBoostClassifier, GaussianNB និង QuadraticDiscrinationAnalysis បង្ហាញលទ្ធផលជាមួយនឹងរូបភាព៖ + +![ការប្រៀបធៀបកម្មវិធីចាត់ថ្នាក់](../../../../translated_images/km/comparison.edfab56193a85e7f.webp) +> គំនូសបង្ហាញត្រូវបានបង្កើតនៅលើឯកសារណែនាំរបស់ Scikit-learn + +> AutoML ដំណោះស្រាយបញ្ហានេះយ៉ាងត្រឹមត្រូវដោយរត់ការប្រៀបធៀបទាំងនេះនៅលើពពក អនុញ្ញាតឱ្យអ្នកជ្រើសរើសអាល់ហ្គូរីធម៌ល្អបំផុតសម្រាប់ទិន្នន័យរបស់អ្នក។ សូមសាកល្បង [នៅទីនេះ](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott) + +### វិធីល្អជាងនេះ + +វិធីល្អជាងការប៉ាន់ស្មានបែបចល័ត គឺតាមដានគំនិតនៅលើ [ប័ណ្ណ Cheat សម្រាប់ ML](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) ដែលអាចទាញយកបាន។ នៅទីនេះ យើងស្វែងឃើញថា សម្រាប់បញ្ហាច្រើនថ្នាក់ អ្នកមានជម្រើសខ្លះ៖ + +![សៀវភៅបង្រៀនសម្រាប់បញ្ហាច្រើនថ្នាក់](../../../../translated_images/km/cheatsheet.07a475ea444d2223.webp) +> ផ្នែកមួយនៃសៀវភៅ Cheat Algorithm របស់ Microsoft សង្ខេបជម្រើសចាត់ថ្នាក់ច្រើនថ្នាក់ + +✅ ទាញយកសៀវភៅ Cheat នេះ ព្រីនភ្លាម ហើយដាក់វាឲ្យនៅលើជញ្ជាំងផ្ទះរបស់អ្នក! + +### ការពន្យល់ + +មកមើលថាតើយើងអាចពន្យល់វិធីនានាក្រោមកំណត់តម្រូវបានណា៖ + +- **បណ្ដាញណឺរ៉ែលធ្ងន់ពេក**។ ប្រភេទទិន្នន័យស្អាត ប៉ុន្តិល្អិត បូកនឹងការដំណើរការហ្វឹកហាត់នៅក្នុងកុំព្យូទ័រសៀមទារគន៍ បណ្ដាញណឺរ៉េលធ្ងន់ពេកសម្រាប់ភារកិច្ចនេះ។ +- **គ្មានកម្មវិធីចាត់ពីរថ្នាក់**។ យើងមិនប្រើកម្មវិធីចាត់ពីរថ្នាក់ទេ ដូច្នេះមិនអាចប្រើ 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) ដែលត្រូវបញ្ជូន។ + +ចម្បងមានប៉ារ៉ាម៉ែត្រ ពីរដ៏សំខាន់ - `multi_class` និង `solver` - ដែលយើងត្រូវកំណត់ ពេលឲ្យ Scikit-learn ធ្វើបម្រែបម្រួលលូជាក់លាក់។ តម្លៃ `multi_class` កំណត់អាកប្បកិរិយាមួយ។ តម្លៃ `solver` ជាអាល់ហ្គូរីធម៌ដែលប្រើប្រាស់។ មិនទាំងអស់លក្ខណៈអាល់ហ្គូរីធម៌អាចប្រើជាមួយ `multi_class` ទាំងអស់បានទេ។ + +តាមការពិពណ៌នា ក្នុងករណីច្រើនថ្នាក់ អាល់ហ្គូរីធម៌ហ្វឹកហាត់៖ + +- **ប្រើផែនការមួយ-vs-សល់ (OvR)** ប្រសិនបើជម្រើស `multi_class` ដាក់តម្លៃជា `ovr` +- **ប្រើការបាត់បង់ក្រូសអេនត្រូពី (cross-entropy loss)** ប្រសិនបើជម្រើស `multi_class` ដាក់តម្លៃជា `multinomial`។ (ពេលនេះជម្រើស `multinomial` គឺគ្រប់គ្រងតែដោយ ‘lbfgs’, ‘sag’, ‘saga’ និង ‘newton-cg’ solvers ទេ)" + +> 🎓 "ផែនការ" នៅទីនេះអាចជាមួយ ‘ovr’ (មួយ-vs-សល់) ឬ ‘multinomial’។ ព្រោះបម្រែបម្រួលលូជាក់លាក់គឺពិតជាត្រូវបង្កើតសម្រាប់ចំណាត់ថ្នាក់ពីរថ្នាក់ schemes ទាំងនេះអនុញ្ញាតឲ្យវាទ្រទ្រង់ល្អប្រសើរក្នុងរៀបចំច្រើនថ្នាក់បាន។ [ប្រភព](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 ផ្តល់តារាងនេះដើម្បីពន្យល់ពីរបៀបដែល solvers ដោះស្រាយករណីប្រឈមផ្សេងៗរបស់រចនាសម្ព័ន្ធទិន្នន័យផ្ទាំងផ្សេងៗ៖ + +![solvers](../../../../translated_images/km/solvers.5fc648618529e627.webp) + +## លំហាត់ - បំបែកទិន្នន័យ + +យើងអាចផ្តោតលើបម្រែបម្រួលលូជាក់លាក់សម្រាប់លំហាត់ហ្វឹកហាត់ដំបូង គឺបានរៀនកន្លងមក។ + +បំបែកទិន្នន័យរបស់អ្នកជាក្រុមហ្វឺងហ្វឺន និងក្រុមតេស្ត ដោយហៅ `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) +``` + +## លំហាត់ - ប្រើបម្រែបម្រួលលូជាក់លាក់ + +ដោយសារតែអ្នកកំពុងប្រើករណីច្រើនថ្នាក់ អ្នកត្រូវជ្រើសរើស _ផែនការ_ មួយ និង _solver_ មួយ។ + +ប្រើ LogisticRegression ជាមួយកំណត់ multiclass ហើយជ្រើស `liblinear` solver សម្រាប់ហ្វឹកហាត់។ + +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 | + +## 🚀Challenge + +នៅក្នុងមេរៀននេះ អ្នកបានប្រើទិន្នន័យសំអាតរបស់អ្នក ដើម្បីបង្កើតគំរូរៀនម៉ាស៊ីនដែលអាចទាយម្ហូបជាតិសញ្ជាតិមួយដោយផ្អែកលើរបៀបជ្រើសរើសគ្រឿងផ្សំមួយចំនួន។ ចំណាយពេលមួយតិច ដើម្បីអានក្រមជាច្រើនដែល Scikit-learn ផ្តល់ជូនសម្រាប់ចាត់ថ្នាក់ទិន្នន័យ។ ជ្រាបចូលលម្អិតពីមូលដ្ឋាននៃ 'solver' ដើម្បីយល់ពីអ្វីដែលកើតមាននៅខាងក្រោយមុខងារ។ + +## [តេស្តបន្ទាប់មេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ពិនិត្យឡើងវិញ និង រៀនដោយខ្លួនឯង + +ជ្រាបចូលជ្រៅបន្ថែមពីគណិតវិទ្យាខាងក្រោយលូជាឡូជីស្ទិច regression នៅ [មេរៀននេះ](https://people.eecs.berkeley.edu/~russell/classes/cs194/f11/lectures/CS194%20Fall%202011%20Lecture%2006.pdf) +## កិច្ចការផ្ទះ + +[សិក្សាអំពី solvers](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅភាសាម្ចាស់ត្រូវបានគេពិចារណាថាជាឯកសារដើមដែលមានអនុភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរតែប្រើការបកប្រែដោយមនុស្សឯកទេសជាប់ផ្លូវការជាជម្រើសល្អបំផុត។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/2-Classifiers-1/assignment.md b/translations/km/4-Classification/2-Classifiers-1/assignment.md new file mode 100644 index 000000000..cade30608 --- /dev/null +++ b/translations/km/4-Classification/2-Classifiers-1/assignment.md @@ -0,0 +1,16 @@ +# សិក្សាអ្នកដោះស្រាយ +## សេចក្តីណែនាំ + +ក្នុងមេរៀននេះ អ្នកបានរៀនអំពីអ្នកដោះស្រាយជាច្រើន ដែលភ្ជាប់អាល់ហ្គារីធម និងដំណើរការសិក្សា​ម៉ាស៊ីន ដើម្បីបង្កើតម៉ូដែលដែលមានភាពត្រឹមត្រូវ។ ដើរឆ្ពោះតាមអ្នកដោះស្រាយដែលបានរាប់បញ្ចូលក្នុងមេរៀន ហើយជ្រើសរើសពីរនាក់។ នៅក្នុងពាក្យរបស់អ្នកផ្ទាល់ ប្រៀបធៀប និងប្រៀបធៀបអ្នកដោះស្រាយទាំងពីរនេះ។ តើពួកគេដោះស្រាយបញ្ហាប្រភេទណា? ពួកគេចុះបញ្ជូលជាមួយជា​ដំនាក់ទំនង​ទិន្នន័យផ្សេងៗដូចម្តេច? ហេតុអ្វីបានជា អ្នកនឹងជ្រើសរើសមួយជំនួសមួយផ្សេងទៀត? +## ប្រភេទវាយតម្លៃ + +| ក្រមសីលធម៌ | ល្អឯក | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- | +| | មានឯកសារ .doc មួយដែលមានពីរចំណាត់កថាលេខមួយសហគ្នានៅលើអ្នកដោះស្រាយនីមួយៗ ដែលប្រៀបធៀបពិចារណាយ៉ាងម៉ត់ចត់។ | មានឯកសារ .doc មួយដែលមានតែចំណាត់កថាលេខមួយតែប៉ុណ្ណោះ | ការងារនោះមិនទាន់ពេញលេញ | + +--- + + +**ការ​បដិសេធ**៖ +ឯកសារ​នេះ​ត្រូវបានបកប្រែដោយប្រើសេវាកម្ម​បកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំ​បំពេញភាពត្រឹមត្រូវ សូមយល់ថា​ការ​បកប្រែ​អូតូម៉ាទឺរអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវបាន។ ឯកសារ​ដើម​ក្នុង​ភាសា​ដើមគួរត្រូវបាន​គិតថា​ជា​ប្រភព​យល់ព្រម​រឹងមាំ។ សម្រាប់​ព័ត៌មាន​សំខាន់ៗ ការបកប្រែ​ដោយមនុស្សវិជ្ជាជីវៈត្រូវ​បានផ្ដល់​អនុសាសន៍។ យើង​មិនទទួលខុសត្រូវ​ចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗ ដែលកើតឡើងពីការប្រើប្រាស់​ការ​បកប្រែ​នេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/2-Classifiers-1/notebook.ipynb b/translations/km/4-Classification/2-Classifiers-1/notebook.ipynb new file mode 100644 index 000000000..4909c5e01 --- /dev/null +++ b/translations/km/4-Classification/2-Classifiers-1/notebook.ipynb @@ -0,0 +1,35 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": 3 + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# បង្កើតម៉ូដែលចាត់ថ្នាក់\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**:\nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬការខុសត្រូវបានបញ្ចូល។ ឯកសារដើមនៅក្នុងភាសាមូលដ្ឋានរបស់វាគួរត្រូវបានគិតជា ប្រភពធន់ខ្ពស់។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/4-Classification/2-Classifiers-1/solution/Julia/README.md b/translations/km/4-Classification/2-Classifiers-1/solution/Julia/README.md new file mode 100644 index 000000000..867ccbc78 --- /dev/null +++ b/translations/km/4-Classification/2-Classifiers-1/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាអ្នកប្ដូរទីតាំងបណ្តោះអាសន្ន + +--- + + +**ការបរិយាយ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខំប្រឹងធ្វើឱ្យបានត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាមាតុភាសាគួរត្រូវបានពិចារណាថាជាឧទាហរណ៍ដ៏មានអនុភាព។ សម្រាប់ព័ត៌មានសំខាន់ គួរតែប្រើការបកប្រែដោយមនុស្សដែលជាស្តង់ដារ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកកំហុសណាមួយដែលកើតឡើង ពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/2-Classifiers-1/solution/R/lesson_11-R.ipynb b/translations/km/4-Classification/2-Classifiers-1/solution/R/lesson_11-R.ipynb new file mode 100644 index 000000000..ff50e9bbc --- /dev/null +++ b/translations/km/4-Classification/2-Classifiers-1/solution/R/lesson_11-R.ipynb @@ -0,0 +1,1297 @@ +{ + "nbformat": 4, + "nbformat_minor": 2, + "metadata": { + "colab": { + "name": "lesson_11-R.ipynb", + "provenance": [], + "collapsed_sections": [], + "toc_visible": true + }, + "kernelspec": { + "name": "ir", + "display_name": "R" + }, + "language_info": { + "name": "R" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# សាងសង់ម៉ូដែលចាត់ថ្នាក់៖ ម្ហូបអាស៊ីសាក់សាច់ឆ្អែម និងម្ហូបឥណ្ឌា\n" + ], + "metadata": { + "id": "zs2woWv_HoE8" + } + }, + { + "cell_type": "markdown", + "source": [ + "## អ្នកចាត់ថ្នាក់ម្ហូបជាតិ 1\n", + "\n", + "ក្នុងមេរៀននេះ យើងនឹងស្វែងយល់អំពីអ្នកចាត់ថ្នាក់ជាច្រើនដើម្បី *ទាយម្ហូបជាតិតាមក្រុមធាតុផ្សំដែលបានផ្តល់។* ក្នុងការធ្វើដូចនេះ យើងនឹងស្វែងយល់បន្ថែមអំពីវិធីខ្លះៗដែលអាល់ហ្គរីធម៌អាចប្រើប្រាស់សម្រាប់ភារកិច្ចចាត់ថ្នាក់។\n", + "\n", + "### [**ការប្រលងមុនម៉ោងសិក្សា**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/21/)\n", + "\n", + "### **ការរៀបចំ**\n", + "\n", + "មេរៀននេះបង្កើតឡើងលើ [មេរៀនមុនរបស់យើង](https://github.com/microsoft/ML-For-Beginners/blob/main/4-Classification/1-Introduction/solution/lesson_10-R.ipynb) ដូចខាងក្រោម៖\n", + "\n", + "- ធ្វើការណែនាំយ៉ាងស្និទ្ធស្នាលអំពីការចាត់ថ្នាក់ដោយប្រើឌាតាសេតអំពីម្ហូបឆ្ងាញ់ៗទាំងអស់នៅអាស៊ី និងឥណ្ឌា 😋។\n", + "\n", + "- ស្វែងយល់ពី [dplyr verbs](https://dplyr.tidyverse.org/) ដើម្បីរៀបចំ និងសម្អាតទិន្នន័យរបស់យើង។\n", + "\n", + "- បង្កើតការមើលឃើញដ៏ស្រស់ស្អាតដោយប្រើ ggplot2។\n", + "\n", + "- បង្ហាញរបៀបដោះស្រាយទិន្នន័យដែលមិនស្មើមួយដោយធ្វើការរៀបចំវាក្រោម [recipes](https://recipes.tidymodels.org/articles/Simple_Example.html)។\n", + "\n", + "- បង្ហាញរបៀប `prep` និង `bake` វាទៅកាន់ recipe របស់យើង ដើម្បីបញ្ជាក់ថាវានឹងដំណើរការតាមដែលគ្រោងទុក។\n", + "\n", + "#### **លក្ខខណ្ឌមុន**\n", + "\n", + "សម្រាប់មេរៀននេះ យើងត្រូវការបន្ទប់ផ្សំខាងក្រោមសម្រាប់សម្អាត រៀបចំ និងបង្ហាញទិន្នន័យរបស់យើង៖\n", + "\n", + "- `tidyverse`: [tidyverse](https://www.tidyverse.org/) ជា [ក្រុមផ្នែកបញ្ចូល R](https://www.tidyverse.org/packages) ដែលរចនាឡើងដើម្បីធ្វើឲ្យវិទ្យាសាស្ត្រទិន្នន័យរហ័ស លឿន និងរីករាយ។\n", + "\n", + "- `tidymodels`: ស៊ុម [tidymodels](https://www.tidymodels.org/) ជា [ក្រុមផ្នែកបញ្ចូល](https://www.tidymodels.org/packages/) សម្រាប់ម៉ូឌែល និង machine learning។\n", + "\n", + "\n", + "- `themis`: កញ្ចប់ [themis](https://themis.tidymodels.org/) ផ្ដល់ជំហាន Extra Recipes សម្រាប់ដោះស្រាយទិន្នន័យមិនសមមាត្រ។\n", + "\n", + "- `nnet`: កញ្ចប់ [nnet](https://cran.r-project.org/web/packages/nnet/nnet.pdf) ផ្ដល់មុខងារសម្រាប់ប៉ាន់ប្រមាណបណ្ដាញប្រសាទ feed-forward មានស្រទាប់លាក់តែមួយ និងសម្រាប់ម៉ូឌែល logistic regression បូកបន្ថែម។\n", + "\n", + "អ្នកអាចដំឡើងវា ដូចជា៖\n" + ], + "metadata": { + "id": "iDFOb3ebHwQC" + } + }, + { + "cell_type": "markdown", + "source": [ + "`install.packages(c(\"tidyverse\", \"tidymodels\", \"DataExplorer\", \"here\"))`\n", + "\n", + "ជម្រើសមួយទៀត គឺស្ក្រីបខាងក្រោមនេះពិនិត្យមើលថាតើអ្នកមានកញ្ចប់ដែលត្រូវការ ដើម្បីបញ្ចប់មូឌុលនេះ រួចធ្វើការតម្លើងអោយក្នុងករណីដែលវាខ្វះ។\n" + ], + "metadata": { + "id": "4V85BGCjII7F" + } + }, + { + "cell_type": "code", + "execution_count": 2, + "source": [ + "suppressWarnings(if (!require(\"pacman\"))install.packages(\"pacman\"))\r\n", + "\r\n", + "pacman::p_load(tidyverse, tidymodels, themis, here)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "Loading required package: pacman\n", + "\n" + ] + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "an5NPyyKIKNR", + "outputId": "834d5e74-f4b8-49f9-8ab5-4c52ff2d7bc8" + } + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះ យើងចាប់ផ្តើមធ្វើការត្រឡប់ចុះដី!\n", + "\n", + "## 1. បំបែកទិន្នន័យជា trainings និង test sets។\n", + "\n", + "យើងនិងចាប់ផ្តើមដោយជ្រើសចំនួនសកម្មភាពពីមេរៀនមុនរបស់យើង។\n", + "\n", + "### ជម្រះធាតុផ្សំដែលពេញនិយមបំផុតដែលបង្កើតការជ្រុញជ្រុលរវាងម្ហូបផ្សេងៗគ្នា ដោយប្រើ `dplyr::select()`។\n", + "\n", + "មនុស្សគ្រប់គ្នាស្រឡាញ់ស្រូវ, ខ្ទឹមស និង ខ្ទិះខ្ញី!\n" + ], + "metadata": { + "id": "0ax9GQLBINVv" + } + }, + { + "cell_type": "code", + "execution_count": 3, + "source": [ + "# Load the original cuisines data\r\n", + "df <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/4-Classification/data/cuisines.csv\")\r\n", + "\r\n", + "# Drop id column, rice, garlic and ginger from our original data set\r\n", + "df_select <- df %>% \r\n", + " select(-c(1, rice, garlic, ginger)) %>%\r\n", + " # Encode cuisine column as categorical\r\n", + " mutate(cuisine = factor(cuisine))\r\n", + "\r\n", + "# Display new data set\r\n", + "df_select %>% \r\n", + " slice_head(n = 5)\r\n", + "\r\n", + "# Display distribution of cuisines\r\n", + "df_select %>% \r\n", + " count(cuisine) %>% \r\n", + " arrange(desc(n))" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "New names:\n", + "* `` -> ...1\n", + "\n", + "\u001b[1m\u001b[1mRows: \u001b[1m\u001b[22m\u001b[34m\u001b[34m2448\u001b[34m\u001b[39m \u001b[1m\u001b[1mColumns: \u001b[1m\u001b[22m\u001b[34m\u001b[34m385\u001b[34m\u001b[39m\n", + "\n", + "\u001b[36m──\u001b[39m \u001b[1m\u001b[1mColumn specification\u001b[1m\u001b[22m \u001b[36m────────────────────────────────────────────────────────\u001b[39m\n", + "\u001b[1mDelimiter:\u001b[22m \",\"\n", + "\u001b[31mchr\u001b[39m (1): cuisine\n", + "\u001b[32mdbl\u001b[39m (384): ...1, almond, angelica, anise, anise_seed, apple, apple_brandy, a...\n", + "\n", + "\n", + "\u001b[36mℹ\u001b[39m Use \u001b[30m\u001b[47m\u001b[30m\u001b[47m`spec()`\u001b[47m\u001b[30m\u001b[49m\u001b[39m to retrieve the full column specification for this data.\n", + "\u001b[36mℹ\u001b[39m Specify the column types or set \u001b[30m\u001b[47m\u001b[30m\u001b[47m`show_col_types = FALSE`\u001b[47m\u001b[30m\u001b[49m\u001b[39m to quiet this message.\n", + "\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + " cuisine almond angelica anise anise_seed apple apple_brandy apricot armagnac\n", + "1 indian 0 0 0 0 0 0 0 0 \n", + "2 indian 1 0 0 0 0 0 0 0 \n", + "3 indian 0 0 0 0 0 0 0 0 \n", + "4 indian 0 0 0 0 0 0 0 0 \n", + "5 indian 0 0 0 0 0 0 0 0 \n", + " artemisia ⋯ whiskey white_bread white_wine whole_grain_wheat_flour wine wood\n", + "1 0 ⋯ 0 0 0 0 0 0 \n", + "2 0 ⋯ 0 0 0 0 0 0 \n", + "3 0 ⋯ 0 0 0 0 0 0 \n", + "4 0 ⋯ 0 0 0 0 0 0 \n", + "5 0 ⋯ 0 0 0 0 0 0 \n", + " yam yeast yogurt zucchini\n", + "1 0 0 0 0 \n", + "2 0 0 0 0 \n", + "3 0 0 0 0 \n", + "4 0 0 0 0 \n", + "5 0 0 1 0 " + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 381\n", + "\n", + "| cuisine <fct> | almond <dbl> | angelica <dbl> | anise <dbl> | anise_seed <dbl> | apple <dbl> | apple_brandy <dbl> | apricot <dbl> | armagnac <dbl> | artemisia <dbl> | ⋯ ⋯ | whiskey <dbl> | white_bread <dbl> | white_wine <dbl> | whole_grain_wheat_flour <dbl> | wine <dbl> | wood <dbl> | yam <dbl> | yeast <dbl> | yogurt <dbl> | zucchini <dbl> |\n", + "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", + "| indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", + "| indian | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", + "| indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", + "| indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", + "| indian | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |\n", + "\n" + ], + "text/latex": [ + "A tibble: 5 × 381\n", + "\\begin{tabular}{lllllllllllllllllllll}\n", + " cuisine & almond & angelica & anise & anise\\_seed & apple & apple\\_brandy & apricot & armagnac & artemisia & ⋯ & whiskey & white\\_bread & white\\_wine & whole\\_grain\\_wheat\\_flour & wine & wood & yam & yeast & yogurt & zucchini\\\\\n", + " & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", + "\\hline\n", + "\t indian & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\t indian & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\t indian & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\t indian & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\t indian & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\\\\n", + "\\end{tabular}\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 381
cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiawhiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
<fct><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
indian0000000000000000000
indian1000000000000000000
indian0000000000000000000
indian0000000000000000000
indian0000000000000000010
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + " cuisine n \n", + "1 korean 799\n", + "2 indian 598\n", + "3 chinese 442\n", + "4 japanese 320\n", + "5 thai 289" + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 2\n", + "\n", + "| cuisine <fct> | n <int> |\n", + "|---|---|\n", + "| korean | 799 |\n", + "| indian | 598 |\n", + "| chinese | 442 |\n", + "| japanese | 320 |\n", + "| thai | 289 |\n", + "\n" + ], + "text/latex": [ + "A tibble: 5 × 2\n", + "\\begin{tabular}{ll}\n", + " cuisine & n\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t korean & 799\\\\\n", + "\t indian & 598\\\\\n", + "\t chinese & 442\\\\\n", + "\t japanese & 320\\\\\n", + "\t thai & 289\\\\\n", + "\\end{tabular}\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 2
cuisinen
<fct><int>
korean 799
indian 598
chinese 442
japanese320
thai 289
\n" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 735 + }, + "id": "jhCrrH22IWVR", + "outputId": "d444a85c-1d8b-485f-bc4f-8be2e8f8217c" + } + }, + { + "cell_type": "markdown", + "source": [ + "ល្អ​ណាស់! ឥឡូវនេះ ពេលវេលាដើម្បីបំបែកទិន្នន័យ ដូច្នេះ 70% នៃទិន្នន័យទៅកាន់ការបណ្តុះបណ្តាល ហើយ 30% ទៅកាន់ការធ្វើតេស្ត។ យើងនឹងអនុវត្តបច្ចេកទេស `stratification` នៅពេលបំបែកទិន្នន័យ ដើម្បី `ថែរក្សាភាគរយនៃម្ហូបប្រពៃណីនីមួយៗ` ទៅក្នុងឃ្លាំមើលការបណ្តុះបណ្តាល និងការផ្ទៀងផ្ទាត់។\n", + "\n", + "[rsample](https://rsample.tidymodels.org/), ជាឯកសារជំនួយមួយក្នុង Tidymodels, ផ្ដល់សំណង់សម្រាប់ការបំបែកទិន្នន័យ និងការបញ្ចូលវិញដែលមានប្រសិទ្ធភាព៖\n" + ], + "metadata": { + "id": "AYTjVyajIdny" + } + }, + { + "cell_type": "code", + "execution_count": 4, + "source": [ + "# Load the core Tidymodels packages into R session\r\n", + "library(tidymodels)\r\n", + "\r\n", + "# Create split specification\r\n", + "set.seed(2056)\r\n", + "cuisines_split <- initial_split(data = df_select,\r\n", + " strata = cuisine,\r\n", + " prop = 0.7)\r\n", + "\r\n", + "# Extract the data in each split\r\n", + "cuisines_train <- training(cuisines_split)\r\n", + "cuisines_test <- testing(cuisines_split)\r\n", + "\r\n", + "# Print the number of cases in each split\r\n", + "cat(\"Training cases: \", nrow(cuisines_train), \"\\n\",\r\n", + " \"Test cases: \", nrow(cuisines_test), sep = \"\")\r\n", + "\r\n", + "# Display the first few rows of the training set\r\n", + "cuisines_train %>% \r\n", + " slice_head(n = 5)\r\n", + "\r\n", + "\r\n", + "# Display distribution of cuisines in the training set\r\n", + "cuisines_train %>% \r\n", + " count(cuisine) %>% \r\n", + " arrange(desc(n))" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training cases: 1712\n", + "Test cases: 736" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + " cuisine almond angelica anise anise_seed apple apple_brandy apricot armagnac\n", + "1 chinese 0 0 0 0 0 0 0 0 \n", + "2 chinese 0 0 0 0 0 0 0 0 \n", + "3 chinese 0 0 0 0 0 0 0 0 \n", + "4 chinese 0 0 0 0 0 0 0 0 \n", + "5 chinese 0 0 0 0 0 0 0 0 \n", + " artemisia ⋯ whiskey white_bread white_wine whole_grain_wheat_flour wine wood\n", + "1 0 ⋯ 0 0 0 0 1 0 \n", + "2 0 ⋯ 0 0 0 0 1 0 \n", + "3 0 ⋯ 0 0 0 0 0 0 \n", + "4 0 ⋯ 0 0 0 0 0 0 \n", + "5 0 ⋯ 0 0 0 0 0 0 \n", + " yam yeast yogurt zucchini\n", + "1 0 0 0 0 \n", + "2 0 0 0 0 \n", + "3 0 0 0 0 \n", + "4 0 0 0 0 \n", + "5 0 0 0 0 " + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 381\n", + "\n", + "| cuisine <fct> | almond <dbl> | angelica <dbl> | anise <dbl> | anise_seed <dbl> | apple <dbl> | apple_brandy <dbl> | apricot <dbl> | armagnac <dbl> | artemisia <dbl> | ⋯ ⋯ | whiskey <dbl> | white_bread <dbl> | white_wine <dbl> | whole_grain_wheat_flour <dbl> | wine <dbl> | wood <dbl> | yam <dbl> | yeast <dbl> | yogurt <dbl> | zucchini <dbl> |\n", + "|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\n", + "| chinese | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |\n", + "| chinese | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |\n", + "| chinese | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", + "| chinese | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", + "| chinese | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ⋯ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |\n", + "\n" + ], + "text/latex": [ + "A tibble: 5 × 381\n", + "\\begin{tabular}{lllllllllllllllllllll}\n", + " cuisine & almond & angelica & anise & anise\\_seed & apple & apple\\_brandy & apricot & armagnac & artemisia & ⋯ & whiskey & white\\_bread & white\\_wine & whole\\_grain\\_wheat\\_flour & wine & wood & yam & yeast & yogurt & zucchini\\\\\n", + " & & & & & & & & & & ⋯ & & & & & & & & & & \\\\\n", + "\\hline\n", + "\t chinese & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\t chinese & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\t chinese & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\t chinese & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\t chinese & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & ⋯ & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\\end{tabular}\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 381
cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiawhiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
<fct><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl><dbl>
chinese0000000000000100000
chinese0000000000000100000
chinese0000000000000000000
chinese0000000000000000000
chinese0000000000000000000
\n" + ] + }, + "metadata": {} + }, + { + "output_type": "display_data", + "data": { + "text/plain": [ + " cuisine n \n", + "1 korean 559\n", + "2 indian 418\n", + "3 chinese 309\n", + "4 japanese 224\n", + "5 thai 202" + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 2\n", + "\n", + "| cuisine <fct> | n <int> |\n", + "|---|---|\n", + "| korean | 559 |\n", + "| indian | 418 |\n", + "| chinese | 309 |\n", + "| japanese | 224 |\n", + "| thai | 202 |\n", + "\n" + ], + "text/latex": [ + "A tibble: 5 × 2\n", + "\\begin{tabular}{ll}\n", + " cuisine & n\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t korean & 559\\\\\n", + "\t indian & 418\\\\\n", + "\t chinese & 309\\\\\n", + "\t japanese & 224\\\\\n", + "\t thai & 202\\\\\n", + "\\end{tabular}\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 2
cuisinen
<fct><int>
korean 559
indian 418
chinese 309
japanese224
thai 202
\n" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 535 + }, + "id": "w5FWIkEiIjdN", + "outputId": "2e195fd9-1a8f-4b91-9573-cce5582242df" + } + }, + { + "cell_type": "markdown", + "source": [ + "## 2. ដោះស្រាយទិន្នន័យមិនសមរម្យ\n", + "\n", + "ដូចដែលអ្នកប្រហែលជាបានសង្កេតឃើញនៅក្នុងសំណុំទិន្នន័យដើម និងសំណុំបណ្តុះបណ្តាលរបស់យើង អ្នកមានការចែកចាយមិនសមរម្យយ៉ាងខ្លាំងនៅក្នុងចំនួនម្ហូបបាយ។ ម្ហូបបាយកូរ៉េខាងជើងមានចំនួន *ប្រហែល* 3 ដងបន្ទាប់ពីម្ហូបបាយថៃ។ ទិន្នន័យមិនសមរម្យជាញឹកញាប់មានផលប៉ះពាល់អវិជ្ជមានលើការសម្តែងម៉ូដែល។ ម៉ូដែលជាច្រើនបង្ហាញសមត្ថភាពល្អបំផុតនៅពេលចំនួនទិន្នន័យស្មើគ្នា ហើយដូច្នេះពួកវាស្ទើរតែមានការលំបាកជាមួយទិន្នន័យមិនសមរម្យ។\n", + "\n", + "មានរបៀបធំបួនរបៀបសំខាន់ក្នុងការដោះស្រាយសំណុំទិន្នន័យមិនសមរម្យ៖\n", + "\n", + "- បន្ថែមការសង្កេតវគ្គទៅថ្នាក់តិចជាង: `Over-sampling` ឧទាហរណ៍ ដោយប្រើអាល់ហ្គរីធម SMOTE ដែលបង្កើតឧទាហរណ៍ថ្មីផ្សំឡើងពីថ្នាក់តិចជាងដោយប្រើអ្នកជិតខាងជិតស្និទ្ធនៃករណីទាំងនេះ។\n", + "\n", + "- ដកការសង្កេតវគ្គចេញពីថ្នាក់ភាគច្រើន: `Under-sampling`\n", + "\n", + "នៅក្នុងមេរៀនមុន យើងបានបង្ហាញពីរបៀបដោះស្រាយសំណុំទិន្នន័យមិនសមរម្យដោយប្រើ `recipe`។ អាចគិតថា recipe ជារូបមន្តមួយដែលពិពណ៌នាថាត្រូវអនុវត្តជំហានណាខ្លះទៅលើសំណុំទិន្នន័យដើម្បីធ្វើឱ្យវាប្រៀបប្រដាប់សម្រាប់វិភាគទិន្នន័យ។ សម្រាប់ករណីរបស់យើង យើងចង់មានការចែកចាយស្មើគ្នានៅក្នុងចំនួនម្ហូបបាយរបស់យើងសម្រាប់ `training set`។ ចាប់ផ្តើមចូលទៅក្នុងវា។\n" + ], + "metadata": { + "id": "daBi9qJNIwqW" + } + }, + { + "cell_type": "code", + "execution_count": 5, + "source": [ + "# Load themis package for dealing with imbalanced data\r\n", + "library(themis)\r\n", + "\r\n", + "# Create a recipe for preprocessing training data\r\n", + "cuisines_recipe <- recipe(cuisine ~ ., data = cuisines_train) %>% \r\n", + " step_smote(cuisine)\r\n", + "\r\n", + "# Print recipe\r\n", + "cuisines_recipe" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Data Recipe\n", + "\n", + "Inputs:\n", + "\n", + " role #variables\n", + " outcome 1\n", + " predictor 380\n", + "\n", + "Operations:\n", + "\n", + "SMOTE based on cuisine" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 200 + }, + "id": "Az6LFBGxI1X0", + "outputId": "29d71d85-64b0-4e62-871e-bcd5398573b6" + } + }, + { + "cell_type": "markdown", + "source": [ + "អ្នកអាចដំណើរការនិងបញ្ជាក់ (ប្រើ prep+bake) មើលថាប្រភេទម្ហូបនេះនឹងដំណើរការដូចដែលអ្នករំពឹងទុកទេ - ស្លោកគ្រប់ប្រភេទម្ហូបមានការអង្កេត `559`។\n", + "\n", + "ជាការ​ពិត​នេះ​យើង​នឹង​ប្រើ​ប្រភេទម្ហូបនេះ​ជា​ប្រភេទ​មុនសម្រាប់​ការ​បង្ហាញម៉ូដែល ដូច្នេះ `workflow()` នឹងធ្វើការរៀបចំ និងបាញ់ឲ្យយើង ដូច្នេះយើងមិនចាំបាច់ត្រូវប៉ាន់ខ្នាតប្រភេទម្ហូបដោយដៃទេ។\n", + "\n", + "ឥឡូវនេះយើងបានរៀបចំរួចរួមសម្រាប់បណ្តុះបណ្តាលម៉ូដែល👩‍💻👨‍💻!\n", + "\n", + "## 3. ជ្រើសរើសម៉ាស៊ីនចាត់ថ្នាក់របស់អ្នក\n", + "\n", + "

\n", + " \n", + "

ស្នាដៃដោយ @allison_horst
\n" + ], + "metadata": { + "id": "NBL3PqIWJBBB" + } + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះយើងត្រូវកំណត់ថាតើអាល់ហ្គារីធម៍ណាដែលត្រូវប្រើសម្រាប់ការងារ 🤔។\n", + "\n", + "ក្នុង Tidymodels, [`កញ្ចប់ parsnip`](https://parsnip.tidymodels.org/index.html) ផ្តល់ជាបន្ទាត់ផ្ទាល់ខ្លួនមួយសម្រាប់ធ្វើការជាមួយម៉ូដែលនៅឆ្លងកាត់ម៉ាស៊ីនផ្សេងៗ (កញ្ចប់)។ សូមមើលឯកសារម៉ូឌែល parsnip ដើម្បីស្រាវជ្រាវ [ប្រភេទម៉ូឌែល & ម៉ាស៊ីន](https://www.tidymodels.org/find/parsnip/#models) និង [ប៉ារ៉ាម៉ែត្រម៉ូឌែល](https://www.tidymodels.org/find/parsnip/#model-args) ដែលពាក់ព័ន្ធ។ ភាពចម្រុះគឺធ្វើឲ្យច្របូកច្របល់ចាប់ពីការមើលជាលើកដំបូង។ ឧទាហរណ៍ វិធីសាស្រ្តខាងក្រោមទាំងអស់រួមមានបច្ចេកទេសចាត់ថ្នាក់៖\n", + "\n", + "- ម៉ូឌែលចាត់ថ្នាក់ដោយច្បាប់ C5.0\n", + "\n", + "- ម៉ូឌែលអភិគ្រឹះមិនរឹងប្រែ\n", + "\n", + "- ម៉ូឌែលអភិគ្រឹះបន្ទាត់\n", + "\n", + "- ម៉ូឌែលអភិគ្រឹះតាមបែបរឹងប្រែ\n", + "\n", + "- ម៉ូឌែលរ៉េហ្គ្រេស្យុងឡូហ្ស្ទីក\n", + "\n", + "- ម៉ូឌែលរ៉េហ្គ្រេស្យុងពហុផ្សំ\n", + "\n", + "- ម៉ូឌែល Naive Bayes\n", + "\n", + "- ម៉ាស៊ីនអនុគមន៍ផ្ទុកគាំទ្រ\n", + "\n", + "- ឆ្លងឆ្លើយជិតៗ\n", + "\n", + "- ដើមឈើសំរេចចិត្ត\n", + "\n", + "- វិធីសាស្រ្តសហគមន៍\n", + "\n", + "- បណ្តាញប្រសាទ\n", + "\n", + "តារាងបញ្ជីបន្តបន្តរ!\n", + "\n", + "### **តើអ្នកជ្រើសរើសម៉ូឌែលចាត់ថ្នាក់អ្វី?**\n", + "\n", + "ដូច្នេះ តើអ្នកគួរជ្រើសរើសម៉ូឌែលចាត់ថ្នាក់អ្វី? ជាញឹកញាប់ ការប្រតិបត្តិលើច្រើនវិធី និងស្វែងរកលទ្ធផលល្អគឺជាវិធីសម្រាប់សាកល្បង។\n", + "\n", + "> AutoML ជម្រះបញ្ហានេះយ៉ាងច្បាស់ដោយដំណើរការប្រកួតប្រជែងទាំងនេះនៅក្នុងពពក អនុញ្ញាតិឱ្យអ្នកជ្រើសរើសអាល់ហ្គារីធម៍ល្អបំផុតសម្រាប់ទិន្នន័យរបស់អ្នក។ សាកល្បងវា [នៅទីនេះ](https://docs.microsoft.com/learn/modules/automate-model-selection-with-azure-automl/?WT.mc_id=academic-77952-leestott)\n", + "\n", + "ការជ្រើសរើសម៉ូឌែលចាត់ថ្នាក់ក៏អាស្រ័យលើបញ្ហារបស់យើងផងដែរ។ ឧទាហរណ៍ នៅពេលលទ្ធផលអាចចាត់ថ្នាក់ជាច្រើនថ្នាក់ទៀតបាន `ច្រើនជាងពីរថ្នាក់` ដូចក្នុងករណីរបស់យើង អ្នកត្រូវប្រើ `អាល់ហ្គារីធម៍ចាត់ថ្នាក់ពហុថ្នាក់` មិនមែន `ចាត់ថ្នាក់ពីរថ្នាក់` ទេ។\n", + "\n", + "### **វិធីសាស្រ្តល្អជាងនេះ**\n", + "\n", + "វិធីល្អជាងការប៉ាន់ស្មានដោយអត់គិតគឺតាមដានគំនិតក្នុង [ទំព័រឈីតស៊ុត ML](https://docs.microsoft.com/azure/machine-learning/algorithm-cheat-sheet?WT.mc_id=academic-77952-leestott) ដែលអាចទាញយកបាន។ នៅទីនេះ យើងរកឃើញថា សម្រាប់បញ្ហាពហុថ្នាក់របស់យើង យើងមានជម្រើសមួយចំនួន៖\n", + "\n", + "

\n", + " \n", + "

ផ្នែកមួយនៃទំព័រឈីតស៊ុតអាល់ហ្គារីធម៍របស់ Microsoft ដែលពណ៌នាជំរើសចាត់ថ្នាក់ពហុថ្នាក់
\n" + ], + "metadata": { + "id": "a6DLAZ3vJZ14" + } + }, + { + "cell_type": "markdown", + "source": [ + "### **ហេតុផល**\n", + "\n", + "មកមើលថាតើយើងអាចសង្កេតមើលវិធីសាស្ត្រផ្សេងៗដោយផ្អែកលើដែនកំណត់ដែលយើងមាន៖\n", + "\n", + "- **បណ្តាញសរសៃប្រសាទជ្រៅមានទម្ងន់ខ្លាំងពេក**។ ដោយផ្អែកលើទិន្នន័យស្អាត ប៉ុន្តែមានកំណត់ និងការព្យាយាមបណ្តុះបណ្ដាលនៅក្នុងកំណត់កថាខណ្ឌសៀវភៅ ការបណ្តុះបណ្តាលនេះមានទម្ងន់ធ្ងន់ពេកសម្រាប់ភារកិច្ចនេះ។\n", + "\n", + "- **មិនប្រើម៉ូដែលចាត់ថ្នាក់ពីរគ្រិត**។ យើងមិនប្រើម៉ូដែលចាត់ថ្នាក់ពីរគ្រិតទេ ដូច្នេះមិនពាក់ព័ន្ធនឹងវិធី one-vs-all ។\n", + "\n", + "- **ឈើសម្រេចចិត្ត ឬសមីការប្រមូលផលបាន**។ ឈើសម្រេចចិត្តអាចដំណើរការ ឬប្រើសមីការប្រមូលផលពហុចំនួន/សមីការប្រមូលផលច្រើនថ្នាក់សម្រាប់ទិន្នន័យច្រើនថ្នាក់។\n", + "\n", + "- **ឈើសម្រេចចិត្តប៊ូសសტი៉ងពហុថ្នាក់ដោះស្រាយបញ្ហាផ្សេង**។ ឈើសម្រេចចិត្តប៊ូសស្ទីងពហុថ្នាក់សមស្របសម្រាប់ភារកិច្ចដែលមិនមានប៉ារ៉ាម៉ែត្រដូចជា ភារកិច្ចដែលរចនាឡើងសម្រាប់បង្កើតចំណាត់ថ្នាក់ ដូច្នេះវាមិនបានប្រយោជន៍សម្រាប់យើងទេ។\n", + "\n", + "បន្តិចមុនពិចារណាអំពីម៉ូដែលស្វ័យប្រវត្តិភាពស្មុគស្មាញជាងនេះដូចជាវិធីសាស្ត្រសមាជិកជាក្រុម ការបង្កើតម៉ូដែលងាយបំផុតសម្រាប់យល់ពីអ្វីកំពុងកើតឡើងគឺជាគំនិតល្អ។ ដូច្នេះសម្រាប់មេរៀននេះ យើងនឹងចាប់ផ្តើមជាមួយម៉ូដែល `multinomial regression` ។\n", + "\n", + "> សមីការប្រមូលផលគឺជាវិធីសាស្ត្រ​ដែលប្រើនៅពេលអថេរបញ្ចប់មានប្រភេទតែមួយ (ឬជាnominal)។ សម្រាប់សមីការប្រមូលផលពីរគ្រិត ចំនួនអថេរបញ្ចប់គឺពីរ ខណៈដែលចំនួនអថេរបញ្ចប់សម្រាប់សមីការប្រមូលផលពហុថ្នាក់គឺលើសពីពីរ។ មើល [វិធីសាស្ត្រសមីការប្រមូលផលកម្រិតខ្ពស់](https://bookdown.org/chua/ber642_advanced_regression/multinomial-logistic-regression.html) សម្រាប់ការអានបន្ថែម។\n", + "\n", + "## ៤. បណ្តុះបណ្តាល និងវាយតម្លៃម៉ូដែលសមីការប្រមូលផលច្រើនថ្នាក់។\n", + "\n", + "នៅក្នុង Tidymodels, `parsnip::multinom_reg()` កំណត់ម៉ូដែលដែលប្រើអ្នកបញ្ជាក់រៀបរាប់បណ្តាលសំរាប់ទិន្នន័យច្រើនថ្នាក់ដោយប្រើចែកចាយ multinomial។ មើល `?multinom_reg()` សម្រាប់វិធីកំណត់/ម៉ូទ័រផ្សេងៗដែលអ្នកអាចប្រើដើម្បីបត់បែនម៉ូដែលនេះ។\n", + "\n", + "សម្រាប់ឧទាហរណ៍នេះ យើងនឹងបត់បែនម៉ូដែល សមីការប្រមូលផលច្រើនថ្នាក់ តាមរយៈម៉ាស៊ីន [nnet](https://cran.r-project.org/web/packages/nnet/nnet.pdf) ដើម។\n", + "\n", + "> ខ្ញុំបានជ្រើសរើសតម្លៃ `penalty` ដោយចៃដន្យ។ មានវិធីល្អជាងមួយក្នុងការជ្រើសរើសតម្លៃនេះ គឺដោយប្រើ `resampling` និង `tuning` ម៉ូដែល ដែលយើងនឹងពិភាក្សាក្រោយ។\n", + ">\n", + "> មើល [Tidymodels: ចាប់ផ្តើម](https://www.tidymodels.org/start/tuning/) ប្រសិនបើអ្នកចង់ស្គាល់បន្ថែមពីរបៀបកែតម្រូវពិក្យប៉ារ៉ាម៉ែត្រម៉ូដែល។\n" + ], + "metadata": { + "id": "gWMsVcbBJemu" + } + }, + { + "cell_type": "code", + "execution_count": 6, + "source": [ + "# Create a multinomial regression model specification\r\n", + "mr_spec <- multinom_reg(penalty = 1) %>% \r\n", + " set_engine(\"nnet\", MaxNWts = 2086) %>% \r\n", + " set_mode(\"classification\")\r\n", + "\r\n", + "# Print model specification\r\n", + "mr_spec" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "Multinomial Regression Model Specification (classification)\n", + "\n", + "Main Arguments:\n", + " penalty = 1\n", + "\n", + "Engine-Specific Arguments:\n", + " MaxNWts = 2086\n", + "\n", + "Computational engine: nnet \n" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 166 + }, + "id": "Wq_fcyQiJvfG", + "outputId": "c30449c7-3864-4be7-f810-72a003743e2d" + } + }, + { + "cell_type": "markdown", + "source": [ + "ការងារល្អណាស់ 🥳! ឥឡូវនេះដែលយើងមានរូបមន្តនិងការបញ្ជាក់ម៉ូដែលមួយហើយ យើងត្រូវការស្វែងរកវិធីមួយក្នុងការចងកញ្ចប់វាទាំងពីរចូលទៅក្នុងវត្ថុមួយ ដែលជាំផ្តើមកម្រិតទិន្នន័យជាមុន ហើយបន្ទាប់មកបណ្តាក់ទ្រង់ទ្រាយម៉ូដែលលើទិន្នន័យដែលបានកម្រិតមុន និងផ្តល់ឱកាសសម្រាប់សកម្មភាពក្រោយកំណត់ជា។ ក្នុង Tidymodels វត្ថុងាយស្រួលនេះហៅថា [`workflow`](https://workflows.tidymodels.org/) ហើយវាត្រូវបានរក្សាទុកជាទ្រង់ទ្រាយការសម្រួលម៉ូដែលរបស់អ្នកយ៉ាងងាយស្រួល! នេះជាអ្វីដែលយើងហៅថា *pipelines* នៅក្នុង *Python*។\n", + "\n", + "ដូច្នេះ យើងត្រូវចងកញ្ចប់គ្រប់យ៉ាងចូលក្នុង workflow មួយ!📦\n" + ], + "metadata": { + "id": "NlSbzDfgJ0zh" + } + }, + { + "cell_type": "code", + "execution_count": 7, + "source": [ + "# Bundle recipe and model specification\r\n", + "mr_wf <- workflow() %>% \r\n", + " add_recipe(cuisines_recipe) %>% \r\n", + " add_model(mr_spec)\r\n", + "\r\n", + "# Print out workflow\r\n", + "mr_wf" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "══ Workflow ════════════════════════════════════════════════════════════════════\n", + "\u001b[3mPreprocessor:\u001b[23m Recipe\n", + "\u001b[3mModel:\u001b[23m multinom_reg()\n", + "\n", + "── Preprocessor ────────────────────────────────────────────────────────────────\n", + "1 Recipe Step\n", + "\n", + "• step_smote()\n", + "\n", + "── Model ───────────────────────────────────────────────────────────────────────\n", + "Multinomial Regression Model Specification (classification)\n", + "\n", + "Main Arguments:\n", + " penalty = 1\n", + "\n", + "Engine-Specific Arguments:\n", + " MaxNWts = 2086\n", + "\n", + "Computational engine: nnet \n" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 333 + }, + "id": "Sc1TfPA4Ke3_", + "outputId": "82c70013-e431-4e7e-cef6-9fcf8aad4a6c" + } + }, + { + "cell_type": "markdown", + "source": [ + "ប្រព័ន្ធសកម្មភាព 👌👌! **`workflow()`** អាចត្រូវបានដាក់បញ្ចូលបានយ៉ាងដូចគ្នានឹងបទម៉ូដែលមួយ។ ដូច្នេះពេលវេលាដើម្បីបណ្តុះបណ្តាលម៉ូដែលមួយ!\n" + ], + "metadata": { + "id": "TNQ8i85aKf9L" + } + }, + { + "cell_type": "code", + "execution_count": 8, + "source": [ + "# Train a multinomial regression model\n", + "mr_fit <- fit(object = mr_wf, data = cuisines_train)\n", + "\n", + "mr_fit" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "══ Workflow [trained] ══════════════════════════════════════════════════════════\n", + "\u001b[3mPreprocessor:\u001b[23m Recipe\n", + "\u001b[3mModel:\u001b[23m multinom_reg()\n", + "\n", + "── Preprocessor ────────────────────────────────────────────────────────────────\n", + "1 Recipe Step\n", + "\n", + "• step_smote()\n", + "\n", + "── Model ───────────────────────────────────────────────────────────────────────\n", + "Call:\n", + "nnet::multinom(formula = ..y ~ ., data = data, decay = ~1, MaxNWts = ~2086, \n", + " trace = FALSE)\n", + "\n", + "Coefficients:\n", + " (Intercept) almond angelica anise anise_seed apple\n", + "indian 0.19723325 0.2409661 0 -5.004955e-05 -0.1657635 -0.05769734\n", + "japanese 0.13961959 -0.6262400 0 -1.169155e-04 -0.4893596 -0.08585717\n", + "korean 0.22377347 -0.1833485 0 -5.560395e-05 -0.2489401 -0.15657804\n", + "thai -0.04336577 -0.6106258 0 4.903828e-04 -0.5782866 0.63451105\n", + " apple_brandy apricot armagnac artemisia artichoke asparagus\n", + "indian 0 0.37042636 0 -0.09122797 0 -0.27181970\n", + "japanese 0 0.28895643 0 -0.12651100 0 0.14054037\n", + "korean 0 -0.07981259 0 0.55756709 0 -0.66979948\n", + "thai 0 -0.33160904 0 -0.10725182 0 -0.02602152\n", + " avocado bacon baked_potato balm banana barley\n", + "indian -0.46624197 0.16008055 0 0 -0.2838796 0.2230625\n", + "japanese 0.90341344 0.02932727 0 0 -0.4142787 2.0953906\n", + "korean -0.06925382 -0.35804134 0 0 -0.2686963 -0.7233404\n", + "thai -0.21473955 -0.75594439 0 0 0.6784880 -0.4363320\n", + " bartlett_pear basil bay bean beech\n", + "indian 0 -0.7128756 0.1011587 -0.8777275 -0.0004380795\n", + "japanese 0 0.1288697 0.9425626 -0.2380748 0.3373437611\n", + "korean 0 -0.2445193 -0.4744318 -0.8957870 -0.0048784496\n", + "thai 0 1.5365848 0.1333256 0.2196970 -0.0113078024\n", + " beef beef_broth beef_liver beer beet\n", + "indian -0.7985278 0.2430186 -0.035598065 -0.002173738 0.01005813\n", + "japanese 0.2241875 -0.3653020 -0.139551027 0.128905553 0.04923911\n", + "korean 0.5366515 -0.6153237 0.213455197 -0.010828645 0.27325423\n", + "thai 0.1570012 -0.9364154 -0.008032213 -0.035063746 -0.28279823\n", + " bell_pepper bergamot berry bitter_orange black_bean\n", + "indian 0.49074330 0 0.58947607 0.191256164 -0.1945233\n", + "japanese 0.09074167 0 -0.25917977 -0.118915977 -0.3442400\n", + "korean -0.57876763 0 -0.07874180 -0.007729435 -0.5220672\n", + "thai 0.92554006 0 -0.07210196 -0.002983296 -0.4614426\n", + " black_currant black_mustard_seed_oil black_pepper black_raspberry\n", + "indian 0 0.38935801 -0.4453495 0\n", + "japanese 0 -0.05452887 -0.5440869 0\n", + "korean 0 -0.03929970 0.8025454 0\n", + "thai 0 -0.21498372 -0.9854806 0\n", + " black_sesame_seed black_tea blackberry blackberry_brandy\n", + "indian -0.2759246 0.3079977 0.191256164 0\n", + "japanese -0.6101687 -0.1671913 -0.118915977 0\n", + "korean 1.5197674 -0.3036261 -0.007729435 0\n", + "thai -0.1755656 -0.1487033 -0.002983296 0\n", + " blue_cheese blueberry bone_oil bourbon_whiskey brandy\n", + "indian 0 0.216164294 -0.2276744 0 0.22427587\n", + "japanese 0 -0.119186087 0.3913019 0 -0.15595599\n", + "korean 0 -0.007821986 0.2854487 0 -0.02562342\n", + "thai 0 -0.004947048 -0.0253658 0 -0.05715244\n", + "\n", + "...\n", + "and 308 more lines." + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "GMbdfVmTKkJI", + "outputId": "adf9ebdf-d69d-4a64-e9fd-e06e5322292e" + } + }, + { + "cell_type": "markdown", + "source": [ + "លទ្ធផលបង្ហាញពីអនុគមន៍ដែលម៉ូដែលបានរៀនក្នុងកំឡុងការបណ្តុះបណ្តាល។\n", + "\n", + "### ប៉ាន់ប្រមាណម៉ូដែលដែលបានបណ្តុះបណ្តាល\n", + "\n", + "ពេលវេលាដើម្បីមើលថាម៉ូដែលបានបង្ហាញលទ្ធផលយ៉ាងដូចម្តេច 📏 ដោយប៉ាន់ប្រមាណវាលើសំណុំសាកល្បង! ចាប់ផ្តើមដោយធ្វើការទាយលទ្ធផលលើសំណុំសាកល្បង។\n" + ], + "metadata": { + "id": "tt2BfOxrKmcJ" + } + }, + { + "cell_type": "code", + "execution_count": 9, + "source": [ + "# Make predictions on the test set\n", + "results <- cuisines_test %>% select(cuisine) %>% \n", + " bind_cols(mr_fit %>% predict(new_data = cuisines_test))\n", + "\n", + "# Print out results\n", + "results %>% \n", + " slice_head(n = 5)" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " cuisine .pred_class\n", + "1 indian thai \n", + "2 indian indian \n", + "3 indian indian \n", + "4 indian indian \n", + "5 indian indian " + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 2\n", + "\n", + "| cuisine <fct> | .pred_class <fct> |\n", + "|---|---|\n", + "| indian | thai |\n", + "| indian | indian |\n", + "| indian | indian |\n", + "| indian | indian |\n", + "| indian | indian |\n", + "\n" + ], + "text/latex": [ + "A tibble: 5 × 2\n", + "\\begin{tabular}{ll}\n", + " cuisine & .pred\\_class\\\\\n", + " & \\\\\n", + "\\hline\n", + "\t indian & thai \\\\\n", + "\t indian & indian\\\\\n", + "\t indian & indian\\\\\n", + "\t indian & indian\\\\\n", + "\t indian & indian\\\\\n", + "\\end{tabular}\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 2
cuisine.pred_class
<fct><fct>
indianthai
indianindian
indianindian
indianindian
indianindian
\n" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "id": "CqtckvtsKqax", + "outputId": "e57fe557-6a68-4217-fe82-173328c5436d" + } + }, + { + "cell_type": "markdown", + "source": [ + "សូមស្តាប់ផង! ក្នុង Tidymodels ការវាយតម្លៃប្រសិទ្ធភាពម៉ូដែលអាចធ្វើបានដោយប្រើ [yardstick](https://yardstick.tidymodels.org/) - បង្កាន់ដៃមួយដែលប្រើប្រាស់សម្រាប់វាស់ប្រសិទ្ធភាពនៃម៉ូដែលដោយប្រើម៉ាកវិចារ។ ដូចដែលយើងបានធ្វើក្នុងមេរៀន logistic regression របស់យើង អ្នកអាចចាប់ផ្តើមដោយគណនាម៉ាទ្រីសច្របូកច្របល់។\n" + ], + "metadata": { + "id": "8w5N6XsBKss7" + } + }, + { + "cell_type": "code", + "execution_count": 10, + "source": [ + "# Confusion matrix for categorical data\n", + "conf_mat(data = results, truth = cuisine, estimate = .pred_class)\n" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " Truth\n", + "Prediction chinese indian japanese korean thai\n", + " chinese 83 1 8 15 10\n", + " indian 4 163 1 2 6\n", + " japanese 21 5 73 25 1\n", + " korean 15 0 11 191 0\n", + " thai 10 11 3 7 70" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 133 + }, + "id": "YvODvsLkK0iG", + "outputId": "bb69da84-1266-47ad-b174-d43b88ca2988" + } + }, + { + "cell_type": "markdown", + "source": [ + "នៅពេលដោះស្រាយចំណាត់ថ្នាក់ច្រើន មនុស្សភាគច្រើនភ្លឺចិត្តល្អជាងក្នុងការមើលវា​ជា​ផែនទីកំដៅ តាមរយៈរូបភាពដូចនេះ៖\n" + ], + "metadata": { + "id": "c0HfPL16Lr6U" + } + }, + { + "cell_type": "code", + "execution_count": 11, + "source": [ + "update_geom_defaults(geom = \"tile\", new = list(color = \"black\", alpha = 0.7))\n", + "# Visualize confusion matrix\n", + "results %>% \n", + " conf_mat(cuisine, .pred_class) %>% \n", + " autoplot(type = \"heatmap\")" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "plot without title" + ], + "image/png": "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" + }, + "metadata": { + "image/png": { + "width": 420, + "height": 420 + } + } + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 436 + }, + "id": "HsAtwukyLsvt", + "outputId": "3032a224-a2c8-4270-b4f2-7bb620317400" + } + }, + { + "cell_type": "markdown", + "source": [ + "ប្រអប់ពណ៌ងងឹតក្នុងក្រាហ្វិកម៉ាទ្រីក្ខក្លែងបន្លាយបង្ហាញពីចំនួនករណីខ្ពស់ ហើយអ្នកអាចឃើញខ្សែរស្រឡាយនៃប្រអប់ពណ៌ងងឹតបង្ហាញពីករណីដែលការព្យាករណ៍ និងស្លាកពិតប្រាកដមានតម្លៃដូចគ្នា។\n", + "\n", + "ឥឡូវនេះ យើងត្រូវគណនាស្ថិតិសង្ខេបសម្រាប់ម៉ាទ្រីក្ខក្លែងបន្លាយ។\n" + ], + "metadata": { + "id": "oOJC87dkLwPr" + } + }, + { + "cell_type": "code", + "execution_count": 12, + "source": [ + "# Summary stats for confusion matrix\n", + "conf_mat(data = results, truth = cuisine, estimate = .pred_class) %>% \n", + "summary()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " .metric .estimator .estimate\n", + "1 accuracy multiclass 0.7880435\n", + "2 kap multiclass 0.7276583\n", + "3 sens macro 0.7780927\n", + "4 spec macro 0.9477598\n", + "5 ppv macro 0.7585583\n", + "6 npv macro 0.9460080\n", + "7 mcc multiclass 0.7292724\n", + "8 j_index macro 0.7258524\n", + "9 bal_accuracy macro 0.8629262\n", + "10 detection_prevalence macro 0.2000000\n", + "11 precision macro 0.7585583\n", + "12 recall macro 0.7780927\n", + "13 f_meas macro 0.7641862" + ], + "text/markdown": [ + "\n", + "A tibble: 13 × 3\n", + "\n", + "| .metric <chr> | .estimator <chr> | .estimate <dbl> |\n", + "|---|---|---|\n", + "| accuracy | multiclass | 0.7880435 |\n", + "| kap | multiclass | 0.7276583 |\n", + "| sens | macro | 0.7780927 |\n", + "| spec | macro | 0.9477598 |\n", + "| ppv | macro | 0.7585583 |\n", + "| npv | macro | 0.9460080 |\n", + "| mcc | multiclass | 0.7292724 |\n", + "| j_index | macro | 0.7258524 |\n", + "| bal_accuracy | macro | 0.8629262 |\n", + "| detection_prevalence | macro | 0.2000000 |\n", + "| precision | macro | 0.7585583 |\n", + "| recall | macro | 0.7780927 |\n", + "| f_meas | macro | 0.7641862 |\n", + "\n" + ], + "text/latex": [ + "A tibble: 13 × 3\n", + "\\begin{tabular}{lll}\n", + " .metric & .estimator & .estimate\\\\\n", + " & & \\\\\n", + "\\hline\n", + "\t accuracy & multiclass & 0.7880435\\\\\n", + "\t kap & multiclass & 0.7276583\\\\\n", + "\t sens & macro & 0.7780927\\\\\n", + "\t spec & macro & 0.9477598\\\\\n", + "\t ppv & macro & 0.7585583\\\\\n", + "\t npv & macro & 0.9460080\\\\\n", + "\t mcc & multiclass & 0.7292724\\\\\n", + "\t j\\_index & macro & 0.7258524\\\\\n", + "\t bal\\_accuracy & macro & 0.8629262\\\\\n", + "\t detection\\_prevalence & macro & 0.2000000\\\\\n", + "\t precision & macro & 0.7585583\\\\\n", + "\t recall & macro & 0.7780927\\\\\n", + "\t f\\_meas & macro & 0.7641862\\\\\n", + "\\end{tabular}\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 13 × 3
.metric.estimator.estimate
<chr><chr><dbl>
accuracy multiclass0.7880435
kap multiclass0.7276583
sens macro 0.7780927
spec macro 0.9477598
ppv macro 0.7585583
npv macro 0.9460080
mcc multiclass0.7292724
j_index macro 0.7258524
bal_accuracy macro 0.8629262
detection_prevalencemacro 0.2000000
precision macro 0.7585583
recall macro 0.7780927
f_meas macro 0.7641862
\n" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 494 + }, + "id": "OYqetUyzL5Wz", + "outputId": "6a84d65e-113d-4281-dfc1-16e8b70f37e6" + } + }, + { + "cell_type": "markdown", + "source": [ + "បើពួកយើងដាក់កម្រិតខ្ទង់ចំនួនមួយចំនួនដូចជា ត្រឹមត្រូវភាព, ភាពប្រសើរ, ppv, ពួកយើងមិនបានខាតបង់ខ្លាំងនៅចំពោះមុខទេសម្រាប់ការចាប់ផ្តើម 🥳!\n", + "\n", + "## 4. ការជ្រៀតជ្រែកជ្រៅជាងនេះ\n", + "\n", + "ចង់សួរពាក្យសំណួរមួយស្វិតស្វាញ៖ តើវិធានការណ៍អ្វីកំណត់ឲ្យយល់ព្រមជាមួយប្រភេទម្ហូបខ្លះមួយជាលទ្ធផលដែលបានទាយ?\n", + "\n", + "អូហ៍ វិធីសាស្រ្តបោះពុម្ពស្ថិតិសិក្សាសិក្សាសាន្យាម៉ាស៊ីន ដូចជា logistic regression គឺផ្អែកលើ `សមភាព`; ដូច្នេះអ្វីដែលពិតប្រាកដត្រូវបានទាយដោយអ្នកចាត់ថ្នាក់គឺជាការចែកចាយសមភាពលើសំណុំលទ្ធផលសក្តិសម។ ថ្នាក់ដែលមានសមភាពខ្ពស់បំផុតត្រូវបានជ្រើសរើសជាលទ្ធផលសក្តិសមបំផុតសម្រាប់ការសង្កេតជាក់លាក់។\n", + "\n", + "យើងមកមើលវានៅក្នុងសកម្មភាពដោយធ្វើទាយថ្នាក់យ៉ាងតឹងរ៉ឹង និងសមភាពទាំងពីរ។\n" + ], + "metadata": { + "id": "43t7vz8vMJtW" + } + }, + { + "cell_type": "code", + "execution_count": 13, + "source": [ + "# Make hard class prediction and probabilities\n", + "results_prob <- cuisines_test %>%\n", + " select(cuisine) %>% \n", + " bind_cols(mr_fit %>% predict(new_data = cuisines_test)) %>% \n", + " bind_cols(mr_fit %>% predict(new_data = cuisines_test, type = \"prob\"))\n", + "\n", + "# Print out results\n", + "results_prob %>% \n", + " slice_head(n = 5)" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " cuisine .pred_class .pred_chinese .pred_indian .pred_japanese .pred_korean\n", + "1 indian thai 1.551259e-03 0.4587877 5.988039e-04 2.428503e-04\n", + "2 indian indian 2.637133e-05 0.9999488 6.648651e-07 2.259993e-05\n", + "3 indian indian 1.049433e-03 0.9909982 1.060937e-03 1.644947e-05\n", + "4 indian indian 6.237482e-02 0.4763035 9.136702e-02 3.660913e-01\n", + "5 indian indian 1.431745e-02 0.9418551 2.945239e-02 8.721782e-03\n", + " .pred_thai \n", + "1 5.388194e-01\n", + "2 1.577948e-06\n", + "3 6.874989e-03\n", + "4 3.863391e-03\n", + "5 5.653283e-03" + ], + "text/markdown": [ + "\n", + "A tibble: 5 × 7\n", + "\n", + "| cuisine <fct> | .pred_class <fct> | .pred_chinese <dbl> | .pred_indian <dbl> | .pred_japanese <dbl> | .pred_korean <dbl> | .pred_thai <dbl> |\n", + "|---|---|---|---|---|---|---|\n", + "| indian | thai | 1.551259e-03 | 0.4587877 | 5.988039e-04 | 2.428503e-04 | 5.388194e-01 |\n", + "| indian | indian | 2.637133e-05 | 0.9999488 | 6.648651e-07 | 2.259993e-05 | 1.577948e-06 |\n", + "| indian | indian | 1.049433e-03 | 0.9909982 | 1.060937e-03 | 1.644947e-05 | 6.874989e-03 |\n", + "| indian | indian | 6.237482e-02 | 0.4763035 | 9.136702e-02 | 3.660913e-01 | 3.863391e-03 |\n", + "| indian | indian | 1.431745e-02 | 0.9418551 | 2.945239e-02 | 8.721782e-03 | 5.653283e-03 |\n", + "\n" + ], + "text/latex": [ + "A tibble: 5 × 7\n", + "\\begin{tabular}{lllllll}\n", + " cuisine & .pred\\_class & .pred\\_chinese & .pred\\_indian & .pred\\_japanese & .pred\\_korean & .pred\\_thai\\\\\n", + " & & & & & & \\\\\n", + "\\hline\n", + "\t indian & thai & 1.551259e-03 & 0.4587877 & 5.988039e-04 & 2.428503e-04 & 5.388194e-01\\\\\n", + "\t indian & indian & 2.637133e-05 & 0.9999488 & 6.648651e-07 & 2.259993e-05 & 1.577948e-06\\\\\n", + "\t indian & indian & 1.049433e-03 & 0.9909982 & 1.060937e-03 & 1.644947e-05 & 6.874989e-03\\\\\n", + "\t indian & indian & 6.237482e-02 & 0.4763035 & 9.136702e-02 & 3.660913e-01 & 3.863391e-03\\\\\n", + "\t indian & indian & 1.431745e-02 & 0.9418551 & 2.945239e-02 & 8.721782e-03 & 5.653283e-03\\\\\n", + "\\end{tabular}\n" + ], + "text/html": [ + "\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\n", + "\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\t\n", + "\n", + "
A tibble: 5 × 7
cuisine.pred_class.pred_chinese.pred_indian.pred_japanese.pred_korean.pred_thai
<fct><fct><dbl><dbl><dbl><dbl><dbl>
indianthai 1.551259e-030.45878775.988039e-042.428503e-045.388194e-01
indianindian2.637133e-050.99994886.648651e-072.259993e-051.577948e-06
indianindian1.049433e-030.99099821.060937e-031.644947e-056.874989e-03
indianindian6.237482e-020.47630359.136702e-023.660913e-013.863391e-03
indianindian1.431745e-020.94185512.945239e-028.721782e-035.653283e-03
\n" + ] + }, + "metadata": {} + } + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 248 + }, + "id": "xdKNs-ZPMTJL", + "outputId": "68f6ac5a-725a-4eff-9ea6-481fef00e008" + } + }, + { + "cell_type": "markdown", + "source": [ + "ផុតលម្អិតជាងមុន!\n", + "\n", + "✅ តើអ្នកអាចពន្យល់បានទេថា​មូលហេតុអ្វីបានជា​ម៉ូដែលមានការទុកចិត្តខ្លាំងថា​សេចក្ដីសង្កេតដំបូងគឺជា​អាហារថៃ?\n", + "\n", + "## **🚀ការប្រកួតប្រជែង**\n", + "\n", + "នៅក្នុងមេរៀននេះ អ្នកបានប្រើទិន្នន័យបានសម្អាតរួចរបស់អ្នកដើម្បីបង្កើតម៉ូដែលសិក្សាម៉ាស៊ីនដែលអាចទាយចម្ងាយជាតិសាស្ត្រជាតិមួយដោយផ្អែកលើសំណុំសំគាល់គ្រឿងផ្សំ។ ចំណាយពេលមួយដើម្បីអានតាមរយៈ [ជម្រើសជាច្រើន](https://www.tidymodels.org/find/parsnip/#models) ដែល Tidymodels ផ្ដល់ជូនសម្រាប់ចាត់ថ្នាក់ទិន្នន័យ និង [វិធីផ្សេងទៀត](https://parsnip.tidymodels.org/articles/articles/Examples.html#multinom_reg-models) ក្នុងការបញ្ចូលម៉ូដែលការធ្វើរេស៊ីស៊ីយ៉ុងម៉ុលទីណូមីណាល់។\n", + "\n", + "#### សូមអរគុណចំពោះ:\n", + "\n", + "[`Allison Horst`](https://twitter.com/allison_horst/) សម្រាប់ការបង្កើតរូបថតគំនូរស្អាតៗដែលធ្វើឱ្យ R មានភាពស្វាគមន៍និងគួរឱ្យចាប់អារម្មណ៍។ ស្វែងរករូបថតបន្ថែមនៅក្នុង [ផ្សាររូបភាព](https://www.google.com/url?q=https://github.com/allisonhorst/stats-illustrations&sa=D&source=editors&ust=1626380772530000&usg=AOvVaw3zcfyCizFQZpkSLzxiiQEM) របស់នាង។\n", + "\n", + "[Cassie Breviu](https://www.twitter.com/cassieview) និង [Jen Looper](https://www.twitter.com/jenlooper) សម្រាប់ការបង្កើតកំណែ Python ដើមនៃម៉ូឌុលនេះ ♥️\n", + "\n", + "
\n", + "ខ្ញុំបាត់បង់ឱកាសចំពោះវិចិត្រសន្លឹកនានារបស់ខ្លួនប៉ុន្តែខ្ញុំមិនយល់ពីកំប្លែងអាហារទេ 😅។\n", + "\n", + "
\n", + "\n", + "រៀនបានរីករាយ,\n", + "\n", + "[Eric](https://twitter.com/ericntay), អ្នកប្រតិភូសិស្ស Microsoft Learn មាស។\n" + ], + "metadata": { + "id": "2tWVHMeLMYdM" + } + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**: \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ បើទោះបីយើងខិតខំធ្វើឱ្យមានភាពត្រឹមត្រូវ ក្តីសុំសម្គាល់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមនុស្សដើមគួរត្រូវបានគេយកជាឆ្នាំងចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/4-Classification/2-Classifiers-1/solution/notebook.ipynb b/translations/km/4-Classification/2-Classifiers-1/solution/notebook.ipynb new file mode 100644 index 000000000..4fa296f43 --- /dev/null +++ b/translations/km/4-Classification/2-Classifiers-1/solution/notebook.ipynb @@ -0,0 +1,275 @@ +{ + "cells": [ + { + "source": [ + "# សាងសង់ម៉ូដែលចាត់ថ្នាក់\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Unnamed: 0 cuisine almond angelica anise anise_seed apple \\\n", + "0 0 indian 0 0 0 0 0 \n", + "1 1 indian 1 0 0 0 0 \n", + "2 2 indian 0 0 0 0 0 \n", + "3 3 indian 0 0 0 0 0 \n", + "4 4 indian 0 0 0 0 0 \n", + "\n", + " apple_brandy apricot armagnac ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 382 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnac...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00indian00000000...0000000000
11indian10000000...0000000000
22indian00000000...0000000000
33indian00000000...0000000000
44indian00000000...0000000010
\n

5 rows × 382 columns

\n
" + }, + "metadata": {}, + "execution_count": 1 + } + ], + "source": [ + "import pandas as pd\n", + "cuisines_df = pd.read_csv(\"../../data/cleaned_cuisines.csv\")\n", + "cuisines_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.model_selection import train_test_split, cross_val_score\n", + "from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve\n", + "from sklearn.svm import SVC\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 indian\n", + "1 indian\n", + "2 indian\n", + "3 indian\n", + "4 indian\n", + "Name: cuisine, dtype: object" + ] + }, + "metadata": {}, + "execution_count": 3 + } + ], + "source": [ + "cuisines_label_df = cuisines_df['cuisine']\n", + "cuisines_label_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " almond angelica anise anise_seed apple apple_brandy apricot \\\n", + "0 0 0 0 0 0 0 0 \n", + "1 1 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 0 \n", + "\n", + " armagnac artemisia artichoke ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 380 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
almondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiaartichoke...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00000000000...0000000000
11000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000010
\n

5 rows × 380 columns

\n
" + }, + "metadata": {}, + "execution_count": 4 + } + ], + "source": [ + "cuisines_feature_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n", + "cuisines_feature_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(cuisines_feature_df, cuisines_label_df, test_size=0.3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Accuracy is 0.8181818181818182\n" + ] + } + ], + "source": [ + "lr = LogisticRegression(multi_class='ovr',solver='liblinear')\n", + "model = lr.fit(X_train, np.ravel(y_train))\n", + "\n", + "accuracy = model.score(X_test, y_test)\n", + "print (\"Accuracy is {}\".format(accuracy))" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "ingredients: Index(['artemisia', 'black_pepper', 'mushroom', 'shiitake', 'soy_sauce',\n 'vegetable_oil'],\n dtype='object')\ncuisine: korean\n" + ] + } + ], + "source": [ + "# test an item\n", + "print(f'ingredients: {X_test.iloc[50][X_test.iloc[50]!=0].keys()}')\n", + "print(f'cuisine: {y_test.iloc[50]}')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " 0\n", + "korean 0.392231\n", + "chinese 0.372872\n", + "japanese 0.218825\n", + "thai 0.013427\n", + "indian 0.002645" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
0
korean0.392231
chinese0.372872
japanese0.218825
thai0.013427
indian0.002645
\n
" + }, + "metadata": {}, + "execution_count": 8 + } + ], + "source": [ + "#rehsape to 2d array and transpose\n", + "test= X_test.iloc[50].values.reshape(-1, 1).T\n", + "# predict with score\n", + "proba = model.predict_proba(test)\n", + "classes = model.classes_\n", + "# create df with classes and scores\n", + "resultdf = pd.DataFrame(data=proba, columns=classes)\n", + "\n", + "# create df to show results\n", + "topPrediction = resultdf.T.sort_values(by=[0], ascending = [False])\n", + "topPrediction.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " precision recall f1-score support\n\n chinese 0.75 0.73 0.74 223\n indian 0.93 0.88 0.90 255\n japanese 0.78 0.78 0.78 253\n korean 0.87 0.86 0.86 236\n thai 0.76 0.84 0.80 232\n\n accuracy 0.82 1199\n macro avg 0.82 0.82 0.82 1199\nweighted avg 0.82 0.82 0.82 1199\n\n" + ] + } + ], + "source": [ + "y_pred = model.predict(X_test)\r\n", + "print(classification_report(y_test,y_pred))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការតាំងបញ្ញត្តិ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងដើម្បីភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាមាត្រប្រភេទរបស់វាគួរត្រូវបានចាត់ទុកជាឯកសារដែលមានអำนិកផ្លូវការជាព្រំដែន។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមអនុវត្តការបកប្រែដោយអ្នកជំនាញមនុស្សផ្ទាល់។ យើងមិនទទួលបន្ទុកចំពោះការយល់ច្រឡំ ឬការបកស្រាយមិនត្រឹមត្រូវណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/translations/km/4-Classification/3-Classifiers-2/README.md b/translations/km/4-Classification/3-Classifiers-2/README.md new file mode 100644 index 000000000..12f919daa --- /dev/null +++ b/translations/km/4-Classification/3-Classifiers-2/README.md @@ -0,0 +1,242 @@ +# ការបែងចែកចំណាត់ថ្នាក់ម្ហូប 2 + +នៅក្នុងមេរៀនបែងចែកចំណាត់ថ្នាក់ទីពីរនេះ អ្នកនឹងស្វែងយល់ពីវិធីបន្ថែមទៀតដើម្បីចាត់ថ្នាក់ទិន្នន័យលេខ។ អ្នកនឹងរៀនពីផលប៉ះពាល់នៃការជ្រើសរើសឧបករណ៍ចាត់ថ្នាក់មួយបើដាក់ប្រៀបធៀបនឹងមួយផ្សេងទៀតផងដែរ។ + +## [សំណួរពីមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +### លក្ខខណ្ឌមុន + +យើងសន្និដ្ឋានថាអ្នកបានបញ្ចប់មេរៀនមុនៗ ហើយមានឯកសារទិន្នន័យបានធ្វើការសំអាតស្អាត រក្សាទុកនៅក្នុងថត `data` មានឈ្មោះ _cleaned_cuisines.csv_ នៅក្នុងឫស្សីដៃថតនេះដែលមាន៤មេរៀន។ + +### ការរៀបចំ + +យើងបានបញ្ចូលឯកសារ _notebook.ipynb_ របស់អ្នកដែលមានទិន្នន័យបានស្អាត ហើយបានបំបែកវាជា dataframe X និង y រួចរាល់សម្រាប់ដំណើរការសាងសង់ម៉ូដែល។ + +## ផែនទីចាត់ថ្នាក់ + +មុននេះ អ្នកបានរៀនអំពីជម្រើសនានាជាមួយ Microsoft cheat sheet សម្រាប់ចាត់ថ្នាក់ទិន្នន័យ។ Scikit-learn ផ្ដល់ cheat sheet ប្រភេទដូចគ្នា ប៉ុន្តែមានការបែងចែកលម្អិតជាង ដែលអាចជួយបន្ថែមក្នុងការជ្រើសរើស estimators (ពាក្យផ្សេងសម្រាប់ឧបករណ៍ចាត់ថ្នាក់)៖ + +![ML Map from Scikit-learn](../../../../translated_images/km/map.e963a6a51349425a.webp) +> ទិដ្ឋភាព៖ [ចូលទៅកាន់ផែនទីនេះតាមអនឡាញ](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ហើយចុចតាមផ្លូវដើម្បីអានឯកសារពាក់ព័ន្ធ។ + +### ផែនការ + +ផែនទីនេះមានប្រយោជន៍ខ្លាំងនៅពេលអ្នកមានជំនាញច្បាស់លាស់ចំពោះទិន្នន័យ​របស់អ្នក ដូច្នេះ អ្នកអាច 'ដើរដោយ' តាមផ្លូវក្នុងការជ្រើសរើសចំណាត់ថ្នាក់៖ + +- យើងមាន >50 ឧទាហរណ៍ +- យើងចង់ទាយថាជាក្រុមប្រភេទណា +- យើងមានទិន្នន័យបានតម្រៀបស្លាកហើយ +- យើងមានឧទាហរណ៍តិចជាង 100K +- ✨ យើងអាចជ្រើស Linear SVC +- បើវាមិនដំណើរការ គឺនៅព្រោះយើងមានទិន្នន័យលេខ + - យើងអាចសាកល្បង ✨ KNeighbors Classifier + - បើវាមិនដំណើរការ សាកល្បង ✨ SVC និង ✨ Ensemble Classifiers + +ផ្លូវនេះគឺជាការតាមដានដែលមានប្រយោជន៍ខ្លាំង។ + +## ហាត់ប្រាណ - បំបែកទិន្នន័យ + +យោងតាមផ្លូវនេះ យើងគួរចាប់ផ្តើមដោយនាំចូលបណ្ណាល័យខ្លះៗដែលត្រូវការប្រើ។ + +1. នាំចូលបណ្ណាល័យដែលត្រូវការ៖ + + ```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. បំបែកទិន្នន័យបណ្តុះបណ្តាល និងសាកល្បងរបស់អ្នក៖ + + ```python + X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3) + ``` + +## ឧបករណ៍ចាត់ថ្នាក់ Linear SVC + +Support-Vector clustering (SVC) គឺជាកូនខ្លួនមួយនៃគ្រួសារឧបករណ៍ម៉ាសីនស្វ័យប្រវត្តិ Support-Vector (រៀនបន្ថែមអំពីវាខាងក្រោម)។ វិធីសាស្រ្តនេះ អ្នកអាចជ្រើស `'kernel'` ដើម្បីសម្រេចថាតើចែតូចLabelsយ៉ាងដូចម្តេច។ ប៉ារ៉ាម៉ែត្រ `'C'` មានន័យថា `'regularization'` ជាតុល្យភាពដែលគ្រប់គ្រងឥទ្ធិពលនៃប៉ារ៉ាម៉ែត្រ។ Kernel អាចជាតួអ្នកជាច្រើន [មួយចំនួន](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC); នៅទីនេះ យើងកំណត់វាថា `'linear'` ដើម្បីធានាថាយើងប្រើ linear SVC។ Probability ត្រូវបានកំណត់ត្រឹម `'false'`; នៅទីនេះ យើងកំណត់វាថា `'true'` ដើម្បីប្រមូលការប៉ាន់ស្មានប្រូបាប៊ីលីទី។ យើងកំណត់ random state ទៅជា `'0'` ដើម្បីរំលោភទិន្នន័យ ដើម្បីទទួលបានប្រូបាប៊ីលីទី។ + +### ហាត់ប្រាណ - អនុវត្ត Linear SVC + +ចាប់ផ្តើមដោយបង្កើតអារ៉េ (array) នៃឧបករណ៍ចាត់ថ្នាក់។ អ្នកនឹងបញ្ចូលបន្ថែមទៅក្នុងអារ៉េនេះ ដោយជាការបន្តជាដំណាក់កាលពាក់ព័ន្ធពេលដែលយើងសាកល្បង។ + +1. ចាប់ផ្តើមដោយ Linear SVC៖ + + ```python + C = 10 + # បង្កើតអ្នកចាត់ថ្នាក់ខុសៗគ្នា។ + classifiers = { + 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0) + } + ``` + +2. បណ្តុះម៉ូដែលរបស់អ្នកជាមួយ Linear SVC ហើយបោះពុម្ពរបាយការណ៍មួយ៖ + + ```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)) + ``` + + លទ្ធផលគឺល្អណាស់៖ + + ```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-Neighbors + +K-Neighbors គឺជាផ្នែកមួយនៃគ្រួសារពីរ “neighbors” នៃគម្រោងម៉ាស៊ីនស្វ័យប្រវត្តិ ដែលអាចប្រើសម្រាប់ការសិក្សាដោយមានមគ្គុទេសក៍ និងគ្មានមគ្គុទេសក៍។ វិធីសាស្រ្តនេះ បង្កើតចំនួនចាំបាច់នៃចំណុចមួយហើយទិន្នន័យត្រូវបានប្រមូលជុំវិញចំណុចទាំងនេះ ដើម្បីអាចទាយបានស្លាកទូទៅសម្រាប់ទិន្នន័យ។ + +### ហាត់ប្រាណ - អនុវត្តឧបករណ៍ចាត់ថ្នាក់ K-Neighbors + +ឧបករណ៍ចាត់ថ្នាក់មុនគឺល្អ ហើយដំណើរការល្អជាមួយទិន្នន័យ ប៉ុន្តែប្រហែលជាយើងអាចទទួលបានភាពត្រឹមត្រូវល្អជាងនេះទៀត។ សាកល្បងឧបករណ៍ចាត់ថ្នាក់ K-Neighbors។ + +1. បន្ថែមមួយជួរដដែលទៅក្នុងអារ៉េឧបករណ៍ចាត់ថ្នាក់របស់អ្នក (បន្ថែមខ្ទង់ក្រោយមុខរបស់ Linear SVC)៖ + + ```python + 'KNN classifier': KNeighborsClassifier(C), + ``` + + លទ្ធផលគឺអន់ជាងបន្តិច៖ + + ```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 + ``` + + ✅ រៀនអំពី [K-Neighbors](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) + +## Support Vector Classifier + +Support-Vector classifiers គឺជាផ្នែកមួយនៃគ្រួសាររបស់ [Support-Vector Machine](https://wikipedia.org/wiki/Support-vector_machine) នៃវិធីសាស្រ្តម៉ាស៊ីនស្វ័យប្រវត្តិដែលប្រើសម្រាប់ភារកិច្ចចាត់ថ្នាក់ និងរ៉េហ្គ្រេស្យុង។ SVMs "ផែនទីឧទាហរណ៍បណ្តុះបណ្តាលទៅកាន់ចំណុចក្នុងលំហ" ដើម្បីបង្កើនចម្ងាយរវាងក្រុមប្រភេទពីរ។ ទិន្នន័យបន្ទាប់ត្រូវបានផែនទីទៅក្នុងលំហនេះដើម្បីអាចទាយជាក្រុមប្រភេទ។ + +### ហាត់ប្រាណ - អនុវត្ត Support Vector Classifier + +សូមសាកល្បងដើម្បីទទួលបានភាពត្រឹមត្រូវល្អជាងនេះជាមួយ Support Vector Classifier។ + +1. បន្ថែមខ្ទង់ក្រោយ K-Neighbors item ហើយបន្ថែមជួរបន្ទាប់៖ + + ```python + 'SVC': SVC(), + ``` + + លទ្ធផលគឺល្អខ្លាំង! + + ```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 + ``` + + ✅ រៀនអំពី [Support-Vectors](https://scikit-learn.org/stable/modules/svm.html#svm) + +## Ensemble Classifiers + +សូមតាមផ្លូវដល់ចុងក្រោយ ទោះបីជាការសាកល្បងមុនគឺល្អមែន។ ត្រូវសាកល្បង 'Ensemble Classifiers', ជាចម្បង Random Forest និង AdaBoost៖ + +```python + 'RFST': RandomForestClassifier(n_estimators=100), + 'ADA': AdaBoostClassifier(n_estimators=100) +``` + +លទ្ធផលគឺល្អណាស់ ពិសេសសម្រាប់ 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 +``` + +✅ រៀនអំពី [Ensemble Classifiers](https://scikit-learn.org/stable/modules/ensemble.html) + +វិធីសាស្រ្តនេះនៃម៉ាសីនស្វ័យប្រវត្តិ "បញ្ចូលការព្យាករណ៍របស់អ្នកវាយតម្លៃមូលដ្ឋានច្រើន" ដើម្បីធ្វើឱ្យគុណភាពម៉ូដែលល្អប្រសើរឡើង។ ក្នុងឧទាហរណ៍របស់យើង យើងបានប្រើ Random Trees និង AdaBoost។ + +- [Random Forest](https://scikit-learn.org/stable/modules/ensemble.html#forest), វិធីសាស្រ្តជាមធ្យមមួយ បង្កើត 'ព្រៃ' នៃ 'ដើមឈើសម្រេចចិត្ត' ដែលបញ្ចូលករណីចៃដន្យដើម្បីជៀសវាងការបង្រួមខ្លួន។ ប៉ារ៉ាម៉ែត្រ n_estimators ត្រូវបានកំណត់ទៅចំនួនដើមឈើ។ + +- [AdaBoost](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.AdaBoostClassifier.html) បណ្តុះឧបករណ៍ចាត់ថ្នាក់ទៅជាលំនាំទិន្នន័យហើយបន្ទាប់មកបន្ថែមចម្លងនៃឧបករណ៍ចាត់ថ្នាក់នោះទៅលើទិន្នន័យដដែល។ វាត្រួតពិនិត្យទម្ងន់នៃធាតុដែលបានចាត់ថ្នាក់ទាន់ត្រូវខុស ហើយកែប្រែការបណ្តុះឧបករណ៍បន្ទាប់ដើម្បីកែតម្រូវ។ + +--- + +## 🚀ការប្រកួតប្រជែង + +ឧបករណ៍ទាំងនេះមានប៉ារ៉ាម៉ែត្រ​ច្រើនដែលអ្នកអាចកែប្រែបាន។ ស្រាវជ្រាវពីប៉ារ៉ាម៉ែត्रរចំណាំដែលមានដើមហើយគិតអំពីអ្វីដែលការកែប្រែប៉ារ៉ាម៉ែត្រเหล่านั้นនឹងមានផលប៉ះពាល់ដល់គុណភាពម៉ូដែលយ៉ាងដូចម្តេច។ + +## [សំណួរបន្ទាប់មកមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការត្រួតពិនិត្យ និងការសិក្សាផ្ទាល់ខ្លួន + +មានពាក្យសំខាន់ពោរពេញក្នុងមេរៀនទាំងនេះ ដូច្នេះសូមចំណាយពេលមួយភ្លែតដើម្បីត្រួតពិនិត្យ [បញ្ជីនេះ](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) នៃពាក្យសំខាន់មានប្រយោជន៍! + +## ការងារ + +[ការលេងប៉ារ៉ាម៉ែត្រ](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងរកភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬកង្វល់ខ្វះខាតខ្លះ។ ឯកសារដើមនៅក្នុងភាសាតំណាងរបស់វាគួរត្រូវបានទទួលស្គាល់ជាដ៏មានអាណត្តិផលចម្បង។ សម្រាប់ព័ត៌មានដែលសំខាន់ គួរតែបកប្រែដោយអ្នកវៃជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/3-Classifiers-2/assignment.md b/translations/km/4-Classification/3-Classifiers-2/assignment.md new file mode 100644 index 000000000..9f42801a1 --- /dev/null +++ b/translations/km/4-Classification/3-Classifiers-2/assignment.md @@ -0,0 +1,18 @@ +# លេងជាមួយប៉ារ៉ាម៉ែត្រ + +## សេចក្ដីណែនាំ + +មានប៉ារ៉ាម៉ែត្រច្រើនដែលត្រូវបានកំណត់ជាមុននៅពេលធ្វើការជាមួយអ្នកចាត់ថ្នាក់ទាំងនេះ។ Intellisense ក្នុង VS Code អាចជួយអ្នកចូលទៅក្នុងពួកវា។ អនុវត្តវិធីសាស្រ្តចាត់ថ្នាក់ ML មួយក្នុងមេរៀននេះ ហើយបណ្តុះបណ្តាលម៉ូដែលម្ដងទៀតដោយកែប្រែតម្លៃប៉ារ៉ាម៉ែត្រផ្សេងៗ។ បង្កើតសៀវភៅកំណត់ត្រាដែលពន្យល់ថាហេតុអ្វីបានជាការផ្លាស់ប្តូរមួយចំនួនជួយគុណភាពម៉ូដែល ខណៈដែលការផ្លាស់ប្តូរមួយចំនួនផ្សេងទៀតបំផ្លាញវា។ សូមរៀបរាប់លម្អិតនៅក្នុងចម្លើយរបស់អ្នក។ + +## តារាងវាយតម្លៃ + +| ទីតាំង | ល្អឥតខ្ចោះ | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ----------------------------- | +| | មានសៀវភៅកំណត់ត្រាមួយដែលបង្ហាញអ្នកចាត់ថ្នាក់បានសម្រេចពេញលេញ និងប៉ារ៉ាម៉ែត្ររបស់វាត្រូវបានកែប្រែក្នុងប្រអប់អត្ថបទ និងពន្យល់ពីការផ្លាស់ប្តូរ | មានសៀវភៅកំណត់ត្រាផ្នែកណាមួយ ឬពន្យល់មិនល្អ | មានបញ្ហា ឬខ្វះខាតក្នុងសៀវភៅកំណត់ត្រា | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែរ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ខណៈពេលដែលយើងខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ឲ្យដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាម្តងគួរត្រូវបានគេចាត់ទុកជាដើមទិន្នន័យដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងណែនាំឱ្យប្រើប្រាស់ការបកប្រែដោយអ្នកជំនាញមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសព្រោះដោយសារការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/3-Classifiers-2/notebook.ipynb b/translations/km/4-Classification/3-Classifiers-2/notebook.ipynb new file mode 100644 index 000000000..bfa91b6be --- /dev/null +++ b/translations/km/4-Classification/3-Classifiers-2/notebook.ipynb @@ -0,0 +1,159 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ពង្រីកម៉ូដែលចំណាត់ថ្នាក់\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Unnamed: 0 cuisine almond angelica anise anise_seed apple \\\n", + "0 0 indian 0 0 0 0 0 \n", + "1 1 indian 1 0 0 0 0 \n", + "2 2 indian 0 0 0 0 0 \n", + "3 3 indian 0 0 0 0 0 \n", + "4 4 indian 0 0 0 0 0 \n", + "\n", + " apple_brandy apricot armagnac ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 382 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnac...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00indian00000000...0000000000
11indian10000000...0000000000
22indian00000000...0000000000
33indian00000000...0000000000
44indian00000000...0000000010
\n

5 rows × 382 columns

\n
" + }, + "metadata": {}, + "execution_count": 9 + } + ], + "source": [ + "import pandas as pd\n", + "cuisines_df = pd.read_csv(\"../data/cleaned_cuisines.csv\")\n", + "cuisines_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 indian\n", + "1 indian\n", + "2 indian\n", + "3 indian\n", + "4 indian\n", + "Name: cuisine, dtype: object" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ], + "source": [ + "cuisines_label_df = cuisines_df['cuisine']\n", + "cuisines_label_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " almond angelica anise anise_seed apple apple_brandy apricot \\\n", + "0 0 0 0 0 0 0 0 \n", + "1 1 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 0 \n", + "\n", + " armagnac artemisia artichoke ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 380 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
almondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiaartichoke...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00000000000...0000000000
11000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000010
\n

5 rows × 380 columns

\n
" + }, + "metadata": {}, + "execution_count": 11 + } + ], + "source": [ + "cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n", + "cuisines_features_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖\nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំប្រឹងប្រែងក្នុងការបំពេញភាពត្រឹមត្រូវក៏ដោយ សូមយល់ព្រមថាការបកប្រែអូតូម៉ាទិចអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគឺជាផ្នែកដែលមានអំណាចខ្ពស់បំផុត សម្រាប់ព័ត៌មានសំខាន់ សូមយកការបកប្រែដោយអ្នកជំនាញមនុស្សជាដំណោះស្រាយ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/translations/km/4-Classification/3-Classifiers-2/solution/Julia/README.md b/translations/km/4-Classification/3-Classifiers-2/solution/Julia/README.md new file mode 100644 index 000000000..349577c3f --- /dev/null +++ b/translations/km/4-Classification/3-Classifiers-2/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងកំណត់បណ្តោះអាសន្ន។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងប្រឹងប្រែងឲ្យបានភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬព័ត៌មានមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានពិចារណាថាជាឧទាហរណ៍ត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ សូមផ្តល់អាទិភាពការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ខុស ឬការបកស្រាយខុសផ្សេងៗដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/3-Classifiers-2/solution/R/lesson_12-R.ipynb b/translations/km/4-Classification/3-Classifiers-2/solution/R/lesson_12-R.ipynb new file mode 100644 index 000000000..7b408635d --- /dev/null +++ b/translations/km/4-Classification/3-Classifiers-2/solution/R/lesson_12-R.ipynb @@ -0,0 +1,648 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "lesson_12-R.ipynb", + "provenance": [], + "collapsed_sections": [] + }, + "kernelspec": { + "name": "ir", + "display_name": "R" + }, + "language_info": { + "name": "R" + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "jsFutf_ygqSx" + }, + "source": [ + "# បង្កើតម៉ូដែលច្នៃប្រឌិតចំណាត់ថ្នាក់៖ ម្ហូបអាស៊ី និងឥណ្ឌាដែលឆ្ងាញ់\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HD54bEefgtNO" + }, + "source": [ + "## ម៉ាស៊ីនចំនួនចំណាត់ថ្នាក់ចំណីអាហារ 2\n", + "\n", + "នៅមេរៀនចំណាត់ថ្នាក់ទីពីរនេះ យើងនឹងស្វែងយល់អំពី `វិធីផ្សេងទៀត` ដើម្បីចាត់ថ្នាក់ទិន្នន័យប្រភេទកាតេហ្គូរិ។ យើងនឹងរៀនអំពីផលប៉ះពាល់នៃការជ្រើសរើសម៉ាស៊ីនចំណាត់ថ្នាក់មួយប្រសិនបើប្រៀបធៀបនឹងម៉ាស៊ីនដទៃទៀតផងដែរ។\n", + "\n", + "### [**ប្រលងមុនបង្រៀន**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/23/)\n", + "\n", + "### **លក្ខខណ្ឌមុន**\n", + "\n", + "យើងសន្មត់ថាអ្នកបានបញ្ចប់មេរៀនមុននេះហើយ ព្រោះយើងនឹងបន្តយកមកប្រើប្រាស់កន្លែងខ្លះៗដែលយើងបានរៀនមុន។\n", + "\n", + "សម្រាប់មេរៀននេះ យើងត្រូវការបណ្ណាល័យដូចខាងក្រោម៖\n", + "\n", + "- `tidyverse`: [tidyverse](https://www.tidyverse.org/) គឺជាក្រោមស្ទូមបណ្ណាល័យ R ដែលបង្កើតឡើងដើម្បីធ្វើឱ្យវិទ្យាសាស្រ្តទិន្នន័យរហ័សលឿន ស្រួល និងរីករាយជាងមុន!\n", + "\n", + "- `tidymodels`: សំណុំបណ្ណាល័យ [tidymodels](https://www.tidymodels.org/) គឺជាគោលការណ៍ នៃការប្រមូលផ្តុំបណ្ណាល័យសម្រាប់ម៉ូឌែល និងសិក្សាវីលម៉ាស៊ីន។\n", + "\n", + "- `themis`: បណ្ណាល័យ [themis](https://themis.tidymodels.org/) ផ្តល់ជំនួយក្នុងការបន្ថែមជំហានលើការដោះស្រាយទិន្នន័យមិនស្មើជាមួយ។\n", + "\n", + "អ្នកអាចដំឡើងវាបាន ដូច្នេះ៖\n", + "\n", + "`install.packages(c(\"tidyverse\", \"tidymodels\", \"kernlab\", \"themis\", \"ranger\", \"xgboost\", \"kknn\"))`\n", + "\n", + "ជាជម្រើសមួយទៀត កូដខាងក្រោមនេះពិនិត្យថាតើអ្នកមានបណ្ណាល័យដែលចាំបាច់សម្រាប់បញ្ចប់មេរៀននេះរួចមែនទេ បើយ៉ាងហោចណាស់វានឹងដំឡើងអោយអ្នកប្រសិនបើវាបាត់បង់។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vZ57IuUxgyQt" + }, + "source": [ + "suppressWarnings(if (!require(\"pacman\"))install.packages(\"pacman\"))\n", + "\n", + "pacman::p_load(tidyverse, tidymodels, themis, kernlab, ranger, xgboost, kknn)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "z22M-pj4g07x" + }, + "source": [ + "ឥឡូវនេះ យើងចាប់ផ្តើមភ្លាមៗ!\n", + "\n", + "## **1. ផែនទីចំណាត់ថ្នាក់**\n", + "\n", + "នៅក្នុង [មេរៀនមុនរបស់យើង](https://github.com/microsoft/ML-For-Beginners/tree/main/4-Classification/2-Classifiers-1) យើងបានព្យាយាមឆ្លើយសំណួរ៖ តើយើងត្រូវជ្រើសរើសរវាងម៉ូដែលជាច្រើនយ៉ាងដូចម្តេច? ក្នុងការធ្វើដូចនេះ សម្រាប់ភាគច្រើន វាអាស្រ័យលើលក្ខណៈរបស់ទិន្នន័យ និងប្រភេទបញ្ហាដែលយើងចង់ដោះស្រាយ (ឧទាហរណ៍ ចំណាត់ថ្នាក់ឬវិភាគជំហាន?)\n", + "\n", + "មុននេះ យើងបានរៀនអំពីជម្រើសនានាដែលអ្នកមានពេលចាត់ថ្នាក់ទិន្នន័យដោយប្រើសន្លឹកបន្លឺរបស់ Microsoft។ ស៊ុមម៉ាស៊ីនរៀនរបស់ Python ដែលមានឈ្មោះ Scikit-learn ផ្តល់ជូនសន្លឹកបន្លឺដដែល តែមានលំដាប់លម្អិតបន្ថែម ដែលអាចជួយបង្ហាញដល់អ្នកកាន់តែត្រឹមត្រូវចំពោះអ្នកប៉ាន់ស្មាន (ពាក្យផ្សេងមួយសម្រាប់អ្នកចាត់ថ្នាក់)។\n", + "\n", + "

\n", + " \n", + "

\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "u1i3xRIVg7vG" + }, + "source": [ + "> យោបល់៖ [ចូលទៅកាន់ផែនទីនេះតាមអ៊ិនធឺរណិត](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ហើយចុចតាមផ្លូវដើម្បីអានឯកសារ។\n", + ">\n", + "> គេហទំព័រ [អ្នកយោង Tidymodels](https://www.tidymodels.org/find/parsnip/#models) ក៏ផ្តល់ឯកសារល្អឥតខ្ចោះអំពីប្រភេទគំរូផ្សេងៗ។\n", + "\n", + "### **ផែនការ** 🗺️\n", + "\n", + "ផែនទីនេះមានប្រយោជន៍ខ្លាំងពេលអ្នកមានការយល់ដឹងច្បាស់លាស់ពីទិន្នន័យរបស់អ្នក ដើម្បីអ្នកអាច 'ដើរ' តាមផ្លូវរបស់វាទៅកាន់ការសម្រេចចិត្ត៖\n", + "\n", + "- យើងមាន \\>50 នៃគំរូ\n", + "\n", + "- យើងចង់ទាយថាភាពជាប្រភេទណាមួយ\n", + "\n", + "- យើងមានទិន្នន័យដែលបានតម្រៀបស្លាក\n", + "\n", + "- យើងមានគំរូតិចជាង 100K\n", + "\n", + "- ✨ យើងអាចជ្រើសយក Linear SVC\n", + "\n", + "- ប្រសិនបើវាមិនដំណើរការ តែព្រោះយើងមានទិន្នន័យលេខ\n", + "\n", + " - យើងអាចសាកល្បង ✨ KNeighbors Classifier\n", + "\n", + " - ប្រសិនបើវាមិនដំណើរការ សាកល្បង ✨ SVC និង ✨ Ensemble Classifiers\n", + "\n", + "នេះជារបៀបតាមដានដែលមានប្រយោជន៍ខ្លាំង។ ឥឡូវនេះ យើងចាប់ផ្តើមដោយប្រើ [tidymodels](https://www.tidymodels.org/) ស៊េរីម៉ូឌែល ដែលជាសំណុំប្រព័ន្ធ R ដែលមានរបៀបច្បាស់លាស់ និងមានភាពបត់បែនដែលបានបង្កើតឡើងដើម្បីលើកទឹកចិត្តអនុវត្តន៍ស្ថិតិសាស្ត្រល្អ 😊។\n", + "\n", + "## 2. បំបែកទិន្នន័យ និងដោះស្រាយបញ្ហាទិន្នន័យមិនសមម តម្រូវ។\n", + "\n", + "ពីមេរៀនមុនៗ យើងបានរៀនថានៅក្នុងម្ហូបមានសមាសធាតុទូទៅមួយចំនួន។ ផងដែរ ទេពកោសល្យនៃចំនួនម្ហូបមានការបែងចែកមិនសមស្រប។\n", + "\n", + "យើងនឹងដោះស្រាយរឿងនេះដោយ\n", + "\n", + "- លុបចោលសមាសធាតុំសហច្រើនបំផុតដែលបង្កើតភាពច្របូកច្របល់ក្នុងចន្លោះម្ហូបផ្សេងៗ ដោយប្រើ `dplyr::select()`។\n", + "\n", + "- ប្រើ `recipe` ដែលដំណើរការព្រមព្រៀងទិន្នន័យត្រៀមសម្រាប់ម៉ូឌែល ដោយអនុវត្តវិធីសាស្រ្ត `over-sampling`។\n", + "\n", + "យើងបានមើលរឿងខាងលើនៅក្នុងមេរៀនមុនទេ ដូច្នេះវាគួរតែស្រួលណាស់ 🥳!\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "6tj_rN00hClA" + }, + "source": [ + "# Load the core Tidyverse and Tidymodels packages\n", + "library(tidyverse)\n", + "library(tidymodels)\n", + "\n", + "# Load the original cuisines data\n", + "df <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/4-Classification/data/cuisines.csv\")\n", + "\n", + "# Drop id column, rice, garlic and ginger from our original data set\n", + "df_select <- df %>% \n", + " select(-c(1, rice, garlic, ginger)) %>%\n", + " # Encode cuisine column as categorical\n", + " mutate(cuisine = factor(cuisine))\n", + "\n", + "\n", + "# Create data split specification\n", + "set.seed(2056)\n", + "cuisines_split <- initial_split(data = df_select,\n", + " strata = cuisine,\n", + " prop = 0.7)\n", + "\n", + "# Extract the data in each split\n", + "cuisines_train <- training(cuisines_split)\n", + "cuisines_test <- testing(cuisines_split)\n", + "\n", + "# Display distribution of cuisines in the training set\n", + "cuisines_train %>% \n", + " count(cuisine) %>% \n", + " arrange(desc(n))" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zFin5yw3hHb1" + }, + "source": [ + "### ដោះស្រាយជាមួយទិន្នន័យដែលមិនសមភាព\n", + "\n", + "ទិន្នន័យដែលមិនសមភាពជាញឹកញាប់មានផលប៉ះពាល់អវិជ្ជមានលើការប្រតილពកម្មរបស់ម៉ូឌែល។ ម៉ូឌែលជាច្រើនអនុវត្តបានល្អបំផុតពេលដែលចំនួនការសង្កេតស្មើគ្នា ហើយ ដូច្នេះ មិនងាយស្រួលជាមួយទិន្នន័យមិនសមភាពឡើយ។\n", + "\n", + "មានវិធីធំៗពីរចម្បងសម្រាប់ដោះស្រាយទិន្នន័យមិនសមភាព៖\n", + "\n", + "- បន្ថែមការសង្កេតទៅក្នុងថ្នាក់តិច: `Over-sampling` ឧ. ប្រើអាល់ហ្គរីថម SMOTE ដែលបង្កើតគំរូថ្មីៗក្នុងថ្នាក់តិចដោយប្រើអ្នកជិតខាងដ៏នៅជិតបំផុតនៃករណីទាំងនេះ។\n", + "\n", + "- លុបការសង្កេតចេញពីថ្នាក់ធំ: `Under-sampling`\n", + "\n", + "នៅមេរៀនមុន យើងបានបង្ហាញពីវិធីដោះស្រាយទិន្នន័យមិនសមភាពដោយប្រើ `recipe`។ recipe អាចគិតថាជាផែនការដែលពិពណ៌នាថាតើជំហានអ្វីខ្លះគួរត្រូវអនុវត្តទៅលើសំណុំទិន្នន័យមួយ ដើម្បីធ្វើឱ្យវាត្រូវបានរៀបចំសម្រាប់វិភាគទិន្នន័យ។ ក្នុងករណីរបស់យើង យើងចង់មានការចែកចាយស្មើគ្នានៅចំនួនសំណុំម្ហូបសម្រាប់ `training set` របស់យើង។ យលង់ចូលទៅក្នុងវា។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "cRzTnHolhLWd" + }, + "source": [ + "# Load themis package for dealing with imbalanced data\n", + "library(themis)\n", + "\n", + "# Create a recipe for preprocessing training data\n", + "cuisines_recipe <- recipe(cuisine ~ ., data = cuisines_train) %>%\n", + " step_smote(cuisine) \n", + "\n", + "# Print recipe\n", + "cuisines_recipe" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KxOQ2ORhhO81" + }, + "source": [ + "ឥឡូវនេះយើងបានរួចរាល់ក្នុងការបណ្តុះម៉ូឌែលហើយ 👩‍💻👨‍💻!\n", + "\n", + "## 3. លើសពីម៉ូឌែលមូលដ្ឋានពហុនិម្មិត\n", + "\n", + "ក្នុងบทเรียนមុនរបស់យើង យើងបានសិក្សាអំពីម៉ូឌែលមូលដ្ឋានពហុនិម្មិត។ យើងនឹងស្រាវជ្រាវម៉ូឌែលបត់បែនផ្សេងទៀតសម្រាប់ការបែងចែកចំណាត់ថ្នាក់។\n", + "\n", + "### សំណុំគ្រឿងចក្រ Vector Support\n", + "\n", + "នៅក្នុងបរិបទនៃការបែងចែកចំណាត់ថ្នាក់, `Support Vector Machines` ជាបច្ចេកទេសរៀនម៉ាស៊ីនមួយដែលព្យាយាមរក *hyperplane* ដែល \"ល្អបំផុត\" ក្នុងការបំបែកចំណាត់ថ្នាក់ទៅជា​ថ្នាក់ផ្សេងៗ។ យើងមកមើលឧទាហរណ៍សាមញ្ញមួយ៖\n", + "\n", + "

\n", + " \n", + "

https://commons.wikimedia.org/w/index.php?curid=22877598
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "C4Wsd0vZhXYu" + }, + "source": [ + "H1~ មិនបំបែកថ្នាក់ដទៃ។ H2~ បំបែក ដោយទម្លាក់តិចតួចប៉ុណ្ណោះ។ H3~ បំបែកពួកវា ជាមួយទម្លាក់អតិបរមា។\n", + "\n", + "#### កម្មវិធីចម្លើយអនុគមន៍គូសអថេរបន្សំសេរី\n", + "\n", + "ការចម្រាញ់គំរូបញ្ជាក់-គូសអថេរ (SVC) គឺជាកូនក្រុមនៃគ្រួសារម៉ាស៊ីនបញ្ជាក់-គូសអថេរនៃបច្ចេកទេសML។ ក្នុង SVC អាក្សរ​ទំព័រត្រូវបានជ្រើសរើសដើម្បីបំបែកបានត្រឹមត្រូវទៅលើការសង្កេតមើលកំណត់ភាគច្រើនក្នុងការបណ្តុះបណ្តាល ប៉ុន្តែអាចកំហុសចំពោះការសង្កេតមើលខ្លះ។ ដោយអនុញ្ញាតឲ្យចំណុចខ្លះស្ថិតនៅផ្នែកខុស អេសវីអំ (SVM) ក្លាយជារឹងមាំបន្ថែមចំពោះចំណុចក្រៅដែន ដែលនាំឲ្យមានការជាក់លើទៅលើទិន្នន័យថ្មីបានកាន់តែប្រសើរ។ ប៉ារ៉ាម៉ែត្រដែលគ្រប់គ្រងការរំលោភនេះ ត្រូវបានហៅថា `cost` ដែលមានតម្លៃលំនាំដើម 1 (សូមមើល `help(\"svm_poly\")`)។\n", + "\n", + "យើងមកបង្កើត SVC បម្រែបម្រួលបន្ទាត់ដោយកំណត់ `degree = 1` ក្នុងម៉ូដែល SVM បក្សមេណូមិ។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "vJpp6nuChlBz" + }, + "source": [ + "# Make a linear SVC specification\n", + "svc_linear_spec <- svm_poly(degree = 1) %>% \n", + " set_engine(\"kernlab\") %>% \n", + " set_mode(\"classification\")\n", + "\n", + "# Bundle specification and recipe into a worklow\n", + "svc_linear_wf <- workflow() %>% \n", + " add_recipe(cuisines_recipe) %>% \n", + " add_model(svc_linear_spec)\n", + "\n", + "# Print out workflow\n", + "svc_linear_wf" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rDs8cWNkhoqu" + }, + "source": [ + "ឥឡូវនេះដែលយើងបានចាប់យកជំហានមុនការកាន់ត្រា និងការបញ្ជាក់ម៉ូដែលជាទម្រង់ *workflow* រួចហើយ យើងអាចបន្តហ្វឹកហាត់ SVC រាងបន្ទាត់ ហើយវាយតម្លៃលទ្ធផលពេលជាមួយគ្នា។ សម្រាប់មេត្រីកសមត្ថភាព សូមបង្កើតសំណុំមេត្រីកមួយ ដែលនឹងវាយតម្លៃៈ `accuracy`, `sensitivity`, `Positive Predicted Value` និង `F Measure`\n", + "\n", + "> `augment()` នឹងបន្ថែមជួរឈរមួយ(ច្រើន)សម្រាប់ការព្យាករណ៍ទៅកាន់ទិន្នន័យដែលបានផ្ដល់។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "81wiqcwuhrnq" + }, + "source": [ + "# Train a linear SVC model\n", + "svc_linear_fit <- svc_linear_wf %>% \n", + " fit(data = cuisines_train)\n", + "\n", + "# Create a metric set\n", + "eval_metrics <- metric_set(ppv, sens, accuracy, f_meas)\n", + "\n", + "\n", + "# Make predictions and Evaluate model performance\n", + "svc_linear_fit %>% \n", + " augment(new_data = cuisines_test) %>% \n", + " eval_metrics(truth = cuisine, estimate = .pred_class)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "0UFQvHf-huo3" + }, + "source": [ + "#### ម៉ាស៊ីនវ៉ិចទ័រគាំទ្រ\n", + "\n", + "ម៉ាស៊ីនវ៉ិចទ័រគាំទ្រ (SVM) គឺជាការពង្រីកនៃអ្នកចាត់ថ្នាក់វ៉ិចទ័រគាំទ្រ ដើម្បីអនុញ្ញាតឱ្យមានព្រំដែនមិនជាស maʻ្លើងរវាងថ្នាក់។ ជាធម្មតា SVMs ប្រើ *trick kernel* ដើម្បីពង្រីកលំហលក្ខណៈ ដើម្បីធ្វើឱ្យសមស្របនឹងសំណាញ់មិនជាស linear រវាងថ្នាក់។ មុខងារ kernel មួយដែលពេញនិយម និងបត់បែនខ្លាំង ដែល SVMs ប្រើគឺ *មុខងារថាមពលគោលកណ្តាល (Radial basis function)*។ មកមើលថាវានឹងដំណើរការយ៉ាងដូចម្តេចលើទិន្នន័យរបស់យើង។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-KX4S8mzhzmp" + }, + "source": [ + "set.seed(2056)\n", + "\n", + "# Make an RBF SVM specification\n", + "svm_rbf_spec <- svm_rbf() %>% \n", + " set_engine(\"kernlab\") %>% \n", + " set_mode(\"classification\")\n", + "\n", + "# Bundle specification and recipe into a worklow\n", + "svm_rbf_wf <- workflow() %>% \n", + " add_recipe(cuisines_recipe) %>% \n", + " add_model(svm_rbf_spec)\n", + "\n", + "\n", + "# Train an RBF model\n", + "svm_rbf_fit <- svm_rbf_wf %>% \n", + " fit(data = cuisines_train)\n", + "\n", + "\n", + "# Make predictions and Evaluate model performance\n", + "svm_rbf_fit %>% \n", + " augment(new_data = cuisines_test) %>% \n", + " eval_metrics(truth = cuisine, estimate = .pred_class)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QBFSa7WSh4HQ" + }, + "source": [ + "ល្អ​ច្រើន 🤩!\n", + "\n", + "> ✅ សូមមើលៈ\n", + ">\n", + "> - [*Support Vector Machines*](https://bradleyboehmke.github.io/HOML/svm.html), ការស្វែងយល់បែបហត្ថកម្មជាមួយ R\n", + ">\n", + "> - [*Support Vector Machines*](https://www.statlearning.com/), ការណែនាំអំពីការស្វែងយល់ស្ថិតិជាមួយកម្មវិធីក្នុង R\n", + ">\n", + "> សម្រាប់ការអានបន្ថែម។\n", + "\n", + "### កម្មវិធីមិត្តភាពជិត\n", + "\n", + "*K*-nearest neighbor (KNN) គឺជាអាល់ហ្គរីធម៍មួយដែលសំរាប់ការព្យាករណ៍គ្រប់ការត្រួតពិនិត្យដោយផ្អែកលើ *ការស្រដៀង* របស់វាទៅនឹងការត្រួតពិនិត្យផ្សេងទៀត។\n", + "\n", + "ចាំអោយយើងបញ្ជាក់មួយនៅលើទិន្នន័យរបស់យើង។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "k4BxxBcdh9Ka" + }, + "source": [ + "# Make a KNN specification\n", + "knn_spec <- nearest_neighbor() %>% \n", + " set_engine(\"kknn\") %>% \n", + " set_mode(\"classification\")\n", + "\n", + "# Bundle recipe and model specification into a workflow\n", + "knn_wf <- workflow() %>% \n", + " add_recipe(cuisines_recipe) %>% \n", + " add_model(knn_spec)\n", + "\n", + "# Train a boosted tree model\n", + "knn_wf_fit <- knn_wf %>% \n", + " fit(data = cuisines_train)\n", + "\n", + "\n", + "# Make predictions and Evaluate model performance\n", + "knn_wf_fit %>% \n", + " augment(new_data = cuisines_test) %>% \n", + " eval_metrics(truth = cuisine, estimate = .pred_class)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "HaegQseriAcj" + }, + "source": [ + "វាហាក់ដូចជាម៉ូឌែលនេះមិនមែនដំណើរការល្អនោះទេ។ ប្រហែលជាការផ្លាស់ប្តូរព្រិទ្ធិ HR អះអាងនៃម៉ូឌែល (មើល `help(\"nearest_neighbor\")`) នឹងធ្វើឱ្យការសម្រួលម៉ូឌែលមានប្រសិទ្ធភាពល្អប្រសើរឡើង។ ចូរប្រាកដថាបានសាកល្បងវា។\n", + "\n", + "> ✅ សូមមើល:\n", + ">\n", + "> - [Hands-on Machine Learning with R](https://bradleyboehmke.github.io/HOML/)\n", + ">\n", + "> - [An Introduction to Statistical Learning with Applications in R](https://www.statlearning.com/)\n", + ">\n", + "> ដើម្បីរៀនបន្ថែមអំពី *K*-Nearest Neighbors classifiers។\n", + "\n", + "### ម៉ូឌែលប្រភេទ Ensemble\n", + "\n", + "អាល់ហ្គរីធម์ Ensemble ធ្វើការដោយបញ្ចូលកំណត់ត្រាទាំងមួលមូលបួសទៅក្នុងម៉ូឌែលមួយដែលល្អបំផុត តាមរយៈ:\n", + "\n", + "`bagging`: ប្រើគោលការណ៍មធ្យមនៃមុខងារច្រើនចំពោះកំណត់ត្រាមូលដ្ឋាន\n", + "\n", + "`boosting`: ការសង់បណ្ដុំម៉ូឌែលដែលបន្តបណ្តូលគ្នាដើម្បីធ្វើឱ្យមានកំរិតទាយទំនោរល្អប្រសើរ។\n", + "\n", + "ចាប់ផ្តើមដោយសាកល្បងម៉ូឌែល Random Forest ដែលកសាងបណ្ដុំដើមច្រើននៃដើមឈើសំឡេង ពីនោះប្រើមុខងារមធ្យមមួយសម្រាប់ជាម៉ូឌែលសរុបល្អប្រសើរឡើង។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "49DPoVs6iK1M" + }, + "source": [ + "# Make a random forest specification\n", + "rf_spec <- rand_forest() %>% \n", + " set_engine(\"ranger\") %>% \n", + " set_mode(\"classification\")\n", + "\n", + "# Bundle recipe and model specification into a workflow\n", + "rf_wf <- workflow() %>% \n", + " add_recipe(cuisines_recipe) %>% \n", + " add_model(rf_spec)\n", + "\n", + "# Train a random forest model\n", + "rf_wf_fit <- rf_wf %>% \n", + " fit(data = cuisines_train)\n", + "\n", + "\n", + "# Make predictions and Evaluate model performance\n", + "rf_wf_fit %>% \n", + " augment(new_data = cuisines_test) %>% \n", + " eval_metrics(truth = cuisine, estimate = .pred_class)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "RGVYwC_aiUWc" + }, + "source": [ + "ការងារល្អ 👏!\n", + "\n", + "ក្រឡាប់ត្រូវតែសាកល្បងជាមួយម៉ូដែល Boosted Tree ផងដែរ។\n", + "\n", + "Boosted Tree កំណត់វិធីសាស្រ្ត ensemble មួយដែលបង្កើតខ្នាតដើមជាប់លំដាប់ច្រើន ដោយមានរាល់ឈើរុក្ខជាតិមួយ ពឹងផ្អែកលើលទ្ធផលនៃឈើរុក្ខមុនៗ ក្នុងគោលបំណងកាត់បន្ថយកំហុសឲ្យតិចចុះជារបៀបមានលំដាប់។ វាមើលទៅលើទម្ងន់នៃធាតុដែលបានចាត់ទោសមិនត្រឹមត្រូវ ហើយកែសម្រួលការសម្របសម្រួលសម្រាប់អ្នកចាត់ទោសបន្ទាប់ ដើម្បីកែតម្រូវខុស។\n", + "\n", + "មានវិធីផ្សេងៗក្នុងការសម្របសម្រួលម៉ូដែលនេះ (ចូរមើល `help(\"boost_tree\")`)។ ក្នុងឧទាហរណ៍នេះ យើងនឹងសម្របសម្រួលរៀងរាល់ Boosted trees តាមរយៈម៉ូទ័រ `xgboost`។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Py1YWo-micWs" + }, + "source": [ + "# Make a boosted tree specification\n", + "boost_spec <- boost_tree(trees = 200) %>% \n", + " set_engine(\"xgboost\") %>% \n", + " set_mode(\"classification\")\n", + "\n", + "# Bundle recipe and model specification into a workflow\n", + "boost_wf <- workflow() %>% \n", + " add_recipe(cuisines_recipe) %>% \n", + " add_model(boost_spec)\n", + "\n", + "# Train a boosted tree model\n", + "boost_wf_fit <- boost_wf %>% \n", + " fit(data = cuisines_train)\n", + "\n", + "\n", + "# Make predictions and Evaluate model performance\n", + "boost_wf_fit %>% \n", + " augment(new_data = cuisines_test) %>% \n", + " eval_metrics(truth = cuisine, estimate = .pred_class)" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "zNQnbuejigZM" + }, + "source": [ + "> ✅ សូមមើល៖\n", + ">\n", + "> - [ការសិក្សាសម្រាប់អ្នកសង្គមវិទ្យា](https://cimentadaj.github.io/ml_socsci/tree-based-methods.html#random-forests)\n", + ">\n", + "> - [ការសិក្សាដោយដៃលើម៉ាស៊ីនរៀនជាមួយ R](https://bradleyboehmke.github.io/HOML/)\n", + ">\n", + "> - [ការណែនាំអំពីការសិក្សាស្ថិតិជាមួយកម្មវិធីនៅក្នុង R](https://www.statlearning.com/)\n", + ">\n", + "> - - រៀបរាប់ពីម៉ូដែល AdaBoost ដែលជាជម្រើសល្អជាង xgboost។\n", + ">\n", + "> ដើម្បីស្វែងយល់បន្ថែមអំពី Ensemble classifiers។\n", + "\n", + "## 4. បន្ថែម - ការប្រៀបធៀបទំលាប់ម៉ូដែលច្រើន\n", + "\n", + "យើងបានស្ទង់ស្ទាយម៉ូឌែលច្រើនក្នុងមន្ទីរពិសោធន៍នេះ 🙌។ វាអាចក្លាយជាเหนื่อยឬមានការលំបាកក្នុងការបង្កើតច្រើននៃដំណើរការពីជំរើស preprocessors និង/ឬការបញ្ជាក់ម៉ូដែលផ្សេងៗហើយបន្ទាប់មកគណនាម៉ែត្ររបស់ការសម្តែងមួយៗពីរដង។\n", + "\n", + "ចង់មើលថាតើយើងអាចដោះស្រាយនេះដោយបង្កើតមុខងារមួយដែលធ្វើការតម្រឹមសាច់ដុំដំណើរការជាបញ្ជីនៅលើសំណុំបណ្តុះបណ្តាល បន្ទាប់មកត្រឡប់មកវិញតម្លៃពីគោលការណ៍សម្តែងផ្អែកលើសំណុំតេស្ត។ យើងនឹងប្រើ `map()` និង `map_dfr()` ពីកញ្ចប់ [purrr](https://purrr.tidyverse.org/) ដើម្បីអនុវត្តមុខងារទៅលើមេគ្រួសរបស់បញ្ជីនិមួយៗ។\n", + "\n", + "> មុខងារ [`map()`](https://purrr.tidyverse.org/reference/map.html) អនុញ្ញាតឱ្យអ្នកជំនួសសម្រាប់វដ្ត for ច្រើនជាមួយកូដដែលខ្លី និងងាយស្រួលក្នុងការអាន។ ទីតាំងល្អបំផុតក្នុងការសិក្សាអំពីមុខងារ [`map()`](https://purrr.tidyverse.org/reference/map.html) គឺជាតិខួរក្បាលដំណើរការ [iteration chapter](http://r4ds.had.co.nz/iteration.html) ក្នុង R សម្រាប់វិទ្យាសាស្ត្រ​ទិន្នន័យ។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Qzb7LyZnimd2" + }, + "source": [ + "set.seed(2056)\n", + "\n", + "# Create a metric set\n", + "eval_metrics <- metric_set(ppv, sens, accuracy, f_meas)\n", + "\n", + "# Define a function that returns performance metrics\n", + "compare_models <- function(workflow_list, train_set, test_set){\n", + " \n", + " suppressWarnings(\n", + " # Fit each model to the train_set\n", + " map(workflow_list, fit, data = train_set) %>% \n", + " # Make predictions on the test set\n", + " map_dfr(augment, new_data = test_set, .id = \"model\") %>%\n", + " # Select desired columns\n", + " select(model, cuisine, .pred_class) %>% \n", + " # Evaluate model performance\n", + " group_by(model) %>% \n", + " eval_metrics(truth = cuisine, estimate = .pred_class) %>% \n", + " ungroup()\n", + " )\n", + " \n", + "} # End of function" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Fwa712sNisDA" + }, + "source": [ + "មកហៅមុខងាររបស់យើងហើយប្រៀបធៀបភាពត្រឹមត្រូវរវាងម៉ូដែលទាំងឡាយ។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "3i4VJOi2iu-a" + }, + "source": [ + "# Make a list of workflows\n", + "workflow_list <- list(\n", + " \"svc\" = svc_linear_wf,\n", + " \"svm\" = svm_rbf_wf,\n", + " \"knn\" = knn_wf,\n", + " \"random_forest\" = rf_wf,\n", + " \"xgboost\" = boost_wf)\n", + "\n", + "# Call the function\n", + "set.seed(2056)\n", + "perf_metrics <- compare_models(workflow_list = workflow_list, train_set = cuisines_train, test_set = cuisines_test)\n", + "\n", + "# Print out performance metrics\n", + "perf_metrics %>% \n", + " group_by(.metric) %>% \n", + " arrange(desc(.estimate)) %>% \n", + " slice_head(n=7)\n", + "\n", + "# Compare accuracy\n", + "perf_metrics %>% \n", + " filter(.metric == \"accuracy\") %>% \n", + " arrange(desc(.estimate))\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "KuWK_lEli4nW" + }, + "source": [ + "កញ្ចប់ [**workflowset**](https://workflowsets.tidymodels.org/) អនុញ្ញាតឲ្យអ្នកប្រើបង្កើត និងបំពាក់គំរូជាច្រើនបានយ៉ាងងាយស្រួល ប៉ុន្តែភាគច្រើនត្រូវបានរចនាឡើងសម្រាប់ធ្វើការជាមួយបច្ចេកទេស resampling ដូចជា `cross-validation` ដែលជាវិធីសាស្រ្តមួយដែលយើងមិនទាន់បានសិក្សាទេ។\n", + "\n", + "## **🚀ការប្រឈម**\n", + "\n", + "បច្ចេកទេសនីមួយៗមានប៉ារ៉ាម៉ែត្រ​ច្រើនដែលអ្នកអាចកែប្រែបាន ដូចជា `cost` នៅក្នុង SVMs, `neighbors` នៅក្នុង KNN, `mtry` (ជាតិអ្នកទស្សនាដែលបានជ្រើសរើសដោយចៃដន្យ) នៅក្នុង Random Forest។\n", + "\n", + "ស្រាវជ្រាវពីប៉ារ៉ាម៉ែត្រ​លំនៃមួយៗ ហើយគិតពីលទ្ធផលដែលការកែប្រែប៉ារ៉ាម៉ែត្រ​នេះអាចមានសម្រាប់គុណភាពគំរូ។\n", + "\n", + "ដើម្បីស្វែងយល់បន្ថែមអំពីគំរូជាក់លាក់ និងប៉ារ៉ាម៉ែត្រ​របស់វា សូមប្រើៈ `help(\"model\")` ឧទាហរណ៍ `help(\"rand_forest\")`\n", + "\n", + "> នៅក្នុងប្រតិបត្តិការណ៍ យើងភាគច្រើន *ប៉ាន់ប្រមាណ* *តម្លៃល្អបំផុត* សម្រាប់វា ដោយបណ្ដេញគំរូជាច្រើនលើ `data set បានស្ទាញ` ហើយវាស់ថាគំរូទាំងនេះអាចប្រតិបត្តិការល្អប៉ុណ្ណាដែរ។ ដំណើរការនេះហៅថា **tuning** ។\n", + "\n", + "### [**សំនួរប្រលងក្រោយមេរៀន**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/24/)\n", + "\n", + "### **ពិនិត្យឡើងវិញ & សិក្សាឯកោ**\n", + "\n", + "មានពាក្យបច្ចេកទេសជាច្រើនក្នុងមេរៀនទាំងនេះ អូសពេលមួយដើម្បីពិនិត្យមើល [បញ្ជីនេះ](https://docs.microsoft.com/dotnet/machine-learning/resources/glossary?WT.mc_id=academic-77952-leestott) នូវពាក្យសម្គាល់មានប្រយោជន៍!\n", + "\n", + "#### សូមអរគុណចំពោះៈ\n", + "\n", + "[`Allison Horst`](https://twitter.com/allison_horst/) ដែលបានបង្កើតរូបភាពដ៏អស្ចារ្យ ដែលធ្វើឲ្យ R កាន់តែស្វាគមន៍ និងទាក់ទាញ។ រកឃើញរូបភាពបន្ថែមនៅក្នុង [វិចិត្រសាល](https://www.google.com/url?q=https://github.com/allisonhorst/stats-illustrations&sa=D&source=editors&ust=1626380772530000&usg=AOvVaw3zcfyCizFQZpkSLzxiiQEM) របស់នាង។\n", + "\n", + "[Cassie Breviu](https://www.twitter.com/cassieview) និង [Jen Looper](https://www.twitter.com/jenlooper) ដែលបានបង្កើតកំណែ Python ដើមនៃម៉ូឌុលនេះ ♥️\n", + "\n", + "សូមរំលឹករីករាយក្នុងការសិក្សា,\n", + "\n", + "[Eric](https://twitter.com/ericntay), ឯកទេសសិស្ស Microsoft Learn លំដាប់មាស។\n", + "\n", + "

\n", + " \n", + "

ស្នាដៃដោយ @allison_horst
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**: \nឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមប្រយ័ត្នថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានភាសាម្តាយគួរត្រូវបានគេរំពឹងថាជាមូលដ្ឋានដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/4-Classification/3-Classifiers-2/solution/notebook.ipynb b/translations/km/4-Classification/3-Classifiers-2/solution/notebook.ipynb new file mode 100644 index 000000000..9a3594cf3 --- /dev/null +++ b/translations/km/4-Classification/3-Classifiers-2/solution/notebook.ipynb @@ -0,0 +1,298 @@ +{ + "cells": [ + { + "source": [ + "# ស្ថាបនា ម៉ូដែលចម្លែកច្រើនទៀត\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Unnamed: 0 cuisine almond angelica anise anise_seed apple \\\n", + "0 0 indian 0 0 0 0 0 \n", + "1 1 indian 1 0 0 0 0 \n", + "2 2 indian 0 0 0 0 0 \n", + "3 3 indian 0 0 0 0 0 \n", + "4 4 indian 0 0 0 0 0 \n", + "\n", + " apple_brandy apricot armagnac ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 382 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnac...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00indian00000000...0000000000
11indian10000000...0000000000
22indian00000000...0000000000
33indian00000000...0000000000
44indian00000000...0000000010
\n

5 rows × 382 columns

\n
" + }, + "metadata": {}, + "execution_count": 1 + } + ], + "source": [ + "import pandas as pd\n", + "cuisines_df = pd.read_csv(\"../../data/cleaned_cuisines.csv\")\n", + "cuisines_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0 indian\n", + "1 indian\n", + "2 indian\n", + "3 indian\n", + "4 indian\n", + "Name: cuisine, dtype: object" + ] + }, + "metadata": {}, + "execution_count": 2 + } + ], + "source": [ + "cuisines_label_df = cuisines_df['cuisine']\n", + "cuisines_label_df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " almond angelica anise anise_seed apple apple_brandy apricot \\\n", + "0 0 0 0 0 0 0 0 \n", + "1 1 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 0 \n", + "\n", + " armagnac artemisia artichoke ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 380 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
almondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiaartichoke...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00000000000...0000000000
11000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000010
\n

5 rows × 380 columns

\n
" + }, + "metadata": {}, + "execution_count": 3 + } + ], + "source": [ + "cuisines_features_df = cuisines_df.drop(['Unnamed: 0', 'cuisine'], axis=1)\n", + "cuisines_features_df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ព្យាយាមម៉ាស៊ីនចាត់ថ្នាក់ខុសៗគ្នា\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.neighbors import KNeighborsClassifier\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.svm import SVC\n", + "from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier\n", + "from sklearn.model_selection import train_test_split, cross_val_score\n", + "from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report, precision_recall_curve\n", + "import numpy as np" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(cuisines_features_df, cuisines_label_df, test_size=0.3)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "C = 10\n", + "# Create different classifiers.\n", + "classifiers = {\n", + " 'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0),\n", + " 'KNN classifier': KNeighborsClassifier(C),\n", + " 'SVC': SVC(),\n", + " 'RFST': RandomForestClassifier(n_estimators=100),\n", + " 'ADA': AdaBoostClassifier(n_estimators=100)\n", + " \n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Accuracy (train) for Linear SVC: 76.4% \n", + " precision recall f1-score support\n", + "\n", + " chinese 0.64 0.66 0.65 242\n", + " indian 0.91 0.86 0.89 236\n", + " japanese 0.72 0.73 0.73 245\n", + " korean 0.83 0.75 0.79 234\n", + " thai 0.75 0.82 0.78 242\n", + "\n", + " accuracy 0.76 1199\n", + " macro avg 0.77 0.76 0.77 1199\n", + "weighted avg 0.77 0.76 0.77 1199\n", + "\n", + "Accuracy (train) for KNN classifier: 70.7% \n", + " precision recall f1-score support\n", + "\n", + " chinese 0.65 0.63 0.64 242\n", + " indian 0.84 0.81 0.82 236\n", + " japanese 0.60 0.81 0.69 245\n", + " korean 0.89 0.53 0.67 234\n", + " thai 0.69 0.75 0.72 242\n", + "\n", + " accuracy 0.71 1199\n", + " macro avg 0.73 0.71 0.71 1199\n", + "weighted avg 0.73 0.71 0.71 1199\n", + "\n", + "Accuracy (train) for SVC: 80.1% \n", + " precision recall f1-score support\n", + "\n", + " chinese 0.71 0.69 0.70 242\n", + " indian 0.92 0.92 0.92 236\n", + " japanese 0.77 0.78 0.77 245\n", + " korean 0.87 0.77 0.82 234\n", + " thai 0.75 0.86 0.80 242\n", + "\n", + " accuracy 0.80 1199\n", + " macro avg 0.80 0.80 0.80 1199\n", + "weighted avg 0.80 0.80 0.80 1199\n", + "\n", + "Accuracy (train) for RFST: 82.8% \n", + " precision recall f1-score support\n", + "\n", + " chinese 0.80 0.75 0.77 242\n", + " indian 0.90 0.91 0.90 236\n", + " japanese 0.82 0.78 0.80 245\n", + " korean 0.85 0.82 0.83 234\n", + " thai 0.78 0.89 0.83 242\n", + "\n", + " accuracy 0.83 1199\n", + " macro avg 0.83 0.83 0.83 1199\n", + "weighted avg 0.83 0.83 0.83 1199\n", + "\n", + "Accuracy (train) for ADA: 71.1% \n", + " precision recall f1-score support\n", + "\n", + " chinese 0.60 0.57 0.58 242\n", + " indian 0.87 0.84 0.86 236\n", + " japanese 0.71 0.60 0.65 245\n", + " korean 0.68 0.78 0.72 234\n", + " thai 0.70 0.78 0.74 242\n", + "\n", + " accuracy 0.71 1199\n", + " macro avg 0.71 0.71 0.71 1199\n", + "weighted avg 0.71 0.71 0.71 1199\n", + "\n" + ] + } + ], + "source": [ + "n_classifiers = len(classifiers)\n", + "\n", + "for index, (name, classifier) in enumerate(classifiers.items()):\n", + " classifier.fit(X_train, np.ravel(y_train))\n", + "\n", + " y_pred = classifier.predict(X_test)\n", + " accuracy = accuracy_score(y_test, y_pred)\n", + " print(\"Accuracy (train) for %s: %0.1f%% \" % (name, accuracy * 100))\n", + " print(classification_report(y_test,y_pred))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវបានបញ្ចូល។ ឯកសារដើមក្នុងភាសានៅដើមគួរត្រូវបានគេពិចារណាជាផ្ទាំងមូលដ្ឋាន។ សម្រាប់ព័ត៌មានសំខាន់ ប្រែឯកទេសដោយមនុស្សវិជ្ជាជីវៈគឺជាសំណើនៅលើ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនិងការពន្យល់ខុសផ្សេងៗដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file diff --git a/translations/km/4-Classification/4-Applied/README.md b/translations/km/4-Classification/4-Applied/README.md new file mode 100644 index 000000000..b6748cf16 --- /dev/null +++ b/translations/km/4-Classification/4-Applied/README.md @@ -0,0 +1,322 @@ +# កសាងកម្មវិធីេបសាយផ្តល់អត្ថសម្គាល់អំពីម្ហូប + +នៅមេរៀននេះ អ្នកនឹងកសាងម៉ូដែលចាត់ថ្នាក់ដោយប្រើបច្ចេកទេសខ្លះៗដែលអ្នកបានរៀនពីមេរៀនមុនៗ និងដោយប្រើឃ្លើងទិន្នន័យម្ហូបឆ្ងាញ់ដែលបានប្រើជារឿយៗក្នុងស៊េរីនេះ។ លើសពីនេះ អ្នកនឹងកសាងកម្មវិធីេបសាយតូចមួយ ដើម្បីប្រើម៉ូដែលដែលបានរក្សាទុក ដោយប្រើ Onnx រចនាសម្ព័ន្ធក្នុងបណ្តាញ។ + +មួយក្នុងចំណោមការប្រើប្រាស់ប្រព័ន្ធស្វ័យប្រវត្តិមានប្រយោជន៍បំផុត គឺការកសាងប្រព័ន្ធផ្ដល់សំណើណែនាំ ហើយអ្នកអាចចាប់ផ្តើមជំហានដំបូងនោះថ្ងៃនេះ! + +[![បង្ហាញកម្មវិធីេបសាយនេះ](https://img.youtube.com/vi/17wdM9AHMfg/0.jpg)](https://youtu.be/17wdM9AHMfg "Applied ML") + +> 🎥 ចុចលើរូបភាពខាងលើសម្រាប់វីដេអូៈ Jen Looper សាងសង់កម្មវិធីេបសាយដោយប្រើទិន្នន័យអាហារចាត់ថ្នាក់ + +## [វាយតម្លៃមុនការបង្រៀន](https://ff-quizzes.netlify.app/en/ml/) + +នៅមេរៀននេះ អ្នកនឹងរៀនពី៖ + +- របៀបកសាងម៉ូដែល ហើយរក្សាទុកវាជា Onnx ម៉ូដែល +- របៀបប្រើ Netron ដើម្បីពិនិត្យម៉ូដែល +- របៀបប្រើម៉ូដែលរបស់អ្នកនៅក្នុងកម្មវិធីេបសាយសម្រាប់ការប៉ាន់ស្មាន + +## កសាងម៉ូដែលរបស់អ្នក + +ការកសាងប្រព័ន្ធ ML អនុវត្តមានសារៈសំខាន់ក្នុងការប្រើប្រាស់បច្ចេកវិទ្យាទាំងនេះសម្រាប់ប្រព័ន្ធអាជីវកម្មរបស់អ្នក។ អ្នកអាចប្រើម៉ូដែលនៅក្នុងកម្មវិធីេបសាយរបស់អ្នក (ហើយដូច្នេះអាចប្រើវាក្នុងបរិបទក្រៅបណ្ដាញ ប្រសិនបើចាំបាច់) ដោយប្រើ Onnx។ + +ក្នុងមេរៀនមុន ([មេរៀនមុន](../../3-Web-App/1-Web-App/README.md)) អ្នកបានកសាងម៉ូដែល Regression នៃការកាន់កាប់ UFO ហើយរក្សាទុកវា "pickled" ហើយបានប្រើវានៅក្នុងកម្មវិធី Flask។ ទោះបីជាស្ថាបត្យកម្មនេះមានប្រយោជន៍ដល់ការយល់ដឹង ក៏វាជាកម្មវិធី Python ពេញលេញ ហើយតម្រូវការរបស់អ្នកអាចមានការប្រើប្រាស់កម្មវិធី JavaScript។ + +នៅក្នុងមេរៀននេះ អ្នកអាចកសាងប្រព័ន្ធមូលដ្ឋានដែលបង្កើតជាកកម្មវិធី JavaScript សម្រាប់ការប៉ាន់ស្មាន។ ប៉ុន្តែមុននឹងនោះ អ្នកត្រូវហ្វឹកហាត់ម៉ូដែល និងបម្លែងវាសម្រាប់ប្រើជាមួយ Onnx ។ + +## វាយតម្លៃ - ហ្វឹកហាត់ម៉ូដែលចាត់ថ្នាក់ + +ដំបូង សូមហ្វឹកហាត់ម៉ូដែលចាត់ថ្នាក់ ដោយប្រើឃ្លើងទិន្នន័យម្ហូបដដែលដែលបានសំអាត។ + +1. ចាប់ផ្តើមដោយនាំចូលបណ្ណាល័យមានប្រយោជន៍៖ + + ```python + !pip install skl2onnx + import pandas as pd + ``` + + អ្នកត្រូវការពាក្យ '[skl2onnx](https://onnx.ai/sklearn-onnx/)' ដើម្បីជួយបម្លែងម៉ូដែល Scikit-learn របស់អ្នកទៅទ្រង់ទ្រាយ Onnx ។ + +1. បន្ទាប់មក ប្រើព័ត៌មានរបស់អ្នកដូចជាដែលបានធ្វើក្នុងមេរៀនមុន ដោយអានឯកសារ CSV ដោយប្រើ `read_csv()`៖ + + ```python + data = pd.read_csv('../data/cleaned_cuisines.csv') + data.head() + ``` + +1. ចេញពីធាតុពីរដំបូងដែលមិនចាំបាច់ ហើយរក្សាទុកទិន្នន័យនៅសល់ជា 'X'៖ + + ```python + X = data.iloc[:,2:] + X.head() + ``` + +1. រក្សាទុកស្លាកជា 'y'៖ + + ```python + y = data[['cuisine']] + y.head() + + ``` + +### ចាប់ផ្តើមដំណើរការហ្វឹកហាត់ + +យើងនឹងប្រើបណ្ណាល័យ 'SVC' ដែលមានភាពត្រឹមត្រូវល្អ។ + +1. នាំចូលបណ្ណាល័យដែលត្រឹមត្រូវពី 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. បំបែកទិន្នន័យហ្វឹកហាត់ និងសំណាកអត្រា៖ + + ```python + X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3) + ``` + +1. កសាងម៉ូដែល SVC Classification ដូចដែលបានធ្វើក្នុងមេរៀនមុន៖ + + ```python + model = SVC(kernel='linear', C=10, probability=True,random_state=0) + model.fit(X_train,y_train.values.ravel()) + ``` + +1. ឥឡូវនេះ សាកល្បងម៉ូដែលរបស់អ្នក ដោយហៅ `predict()`៖ + + ```python + y_pred = model.predict(X_test) + ``` + +1. បោះពុម្ពរបាយការណ៍ចាត់ថ្នាក់ ដើម្បីពិនិត្យគុណភាពម៉ូដែល៖ + + ```python + print(classification_report(y_test,y_pred)) + ``` + + ដូចដែលបានឃើញមុននេះ ត្រឹមត្រូវល្អ៖ + + ```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 + ``` + +### បម្លែងម៉ូដែលរបស់អ្នកទៅ Onnx + +សូមប្រាកដថាបម្លែងដោយប្រើលេខ Tensor ត្រឹមត្រូវ។ ឃ្លើងទិន្នន័យនេះមាន ៣៨០ សមាសធាតុ ដែលត្រូវសរសេរលេខនោះនៅក្នុង `FloatTensorType`: + +1. បម្លែងដោយប្រើលេខ tensor ៣៨០ ។ + + ```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 ហើយរក្សាទុកជា​ឯកសារ **model.onnx**៖ + + ```python + onx = convert_sklearn(model, initial_types=initial_type, options=options) + with open("./model.onnx", "wb") as f: + f.write(onx.SerializeToString()) + ``` + + > សេចក្ដីចំណាំ អ្នកអាចបញ្ជូន [ជម្រើស](https://onnx.ai/sklearn-onnx/parameterized.html) ក្នុងស្គ្រីបបម្លែងរបស់អ្នក។ ក្នុងករណីនេះ យើងបានបញ្ជូន 'nocl' ជា True និង 'zipmap' ជា False។ ដោយសារតែនេះជាម៉ូដែលចាត់ថ្នាក់ អ្នកមានជម្រើសដើម្បីដកចេញ ZipMap ដែលបង្កើតបញ្ជីវចនានុក្រម (មិនចាំបាច់)។ `nocl` មានន័យពីព័ត៌មានថ្នាក់បានរួមបញ្ចូលក្នុងម៉ូដែល។ បន្ថយទំហំម៉ូដែលរបស់អ្នកដោយកំណត់ `nocl` ជា 'True' ។ + +ការប្រើបញ្ចូលទាំងស្រុងនៃកំណត់ត្រានេះ នឹងកសាង Onnx ម៉ូដែល ហើយរក្សាទុកវាទៅក្នុងថតនេះ។ + +## មើលម៉ូដែលរបស់អ្នក + +ម៉ូដែល Onnx មិនងាយស្រួលមើលក្នុង Visual Studio code ជាមូលដ្ឋានទេ ប៉ុន្តែមានកម្មវិធីសំណើមដោយឥតគិតថ្លៃមួយដែលអ្នកស្រាវជ្រាវជាច្រើនប្រើសម្រាប់មើលម៉ូដែល ដើម្បីធានាថាម៉ូដែលត្រូវបានសាងសង់យ៉ាងត្រឹមត្រូវ។ សូមទាញយក [Netron](https://github.com/lutzroeder/Netron) ហើយបើកឯកសារ model.onnx របស់អ្នក។ អ្នកអាចមើលម៉ូដែលសាមញ្ញរបស់អ្នកដូចរូបភាព ផ្តល់ជាមួយ ៣៨០​ inputs និងម៉ាស៊ីនចាត់ថ្នាក់៖ + +![Netron visual](../../../../translated_images/km/netron.a05f39410211915e.webp) + +Netron គឺជាឧបករណ៍មានប្រយោជន៍សម្រាប់មើលម៉ូដែលរបស់អ្នក។ + +ឥឡូវអ្នកបានរួចរាល់ក្នុងការប្រើម៉ូដែលនេះនៅក្នុងកម្មវិធីេបសាយ។ មកកសាងកម្មវិធីមួយដែលមានប្រយោជន៍ពេលអ្នកមើលក្នុងទូរទឹកកក ហើយព្យាយាមស្វែងរកភាពចម្រុះនៃសមាសធាតុដែលនៅសល់ អ្នកអាចប្រើវាសម្រាប់ធ្វើម្ហូបជាមួយម្ហូបជាតិដែលម៉ូដែលសម្គាល់បាន។ + +## កសាងកម្មវិធីេបសាយផ្ដល់អត្ថសម្គាល់ + +អ្នកអាចប្រើម៉ូដែលរបស់អ្នកដោយផ្ទាល់នៅក្នុងកម្មវិធីេបសាយ។ រចនាសម្ព័ន្ធនេះអនុញ្ញាតឲ្យអ្នកដំណើរការវាផ្ទាល់និងក្រៅបណ្ដាញ ប្រសិនបើចាំបាច់។ ចាប់ផ្តើមដោយបង្កើតឯកសារ `index.html` ក្នុងថតដដែលដែលអ្នកបានរក្សាទុកឯកសារ `model.onnx` របស់អ្នក។ + +1. ក្នុងឯកសារ _index.html_ នេះ បន្ថែម markup ខាងក្រោម៖ + + ```html + + +
+ Cuisine Matcher +
+ + ... + + + ``` + +1. ឥឡូវនេះ ដំណើរការក្នុងស្លាក `body` បន្ថែម markup តូចមួយសម្រាប់បង្ហាញបញ្ជីប្រអប់ជ្រើសរើសដែលបង្ហាញសមាសធាតុខ្លះៗ៖ + + ```html +

Check your refrigerator. What can you create?

+
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+
+ +
+ ``` + + សូមកត់សម្គាល់ថាប្រអប់ជ្រើសរើសនីមួយៗមានតម្លៃ ផ្សារភ្ជាប់ទៅនឹងលេខរៀងដែលសមាសធាតុនោះមានក្នុងឃ្លឹងទិន្នន័យ។ ផ្លែប៉ោមឧទាហរណ៍ នៅក្នុងបញ្ជីតម្រៀបតាមអក្សរ មានកន្លែងនៅជួរដេកទីប្រាំហើយតម្លៃរបស់វាគឺកំណត់ជា '4' ពីព្រោះយើងរាប់ចាប់ពី 0។ អ្នកអាចពិនិត្យ [សៀវភៅបញ្ជីសំគ្រិត](../../../../4-Classification/data/ingredient_indexes.csv) ដើម្បីស្វែងរកលេខរៀងសមាសធាតុ។ + + បន្តការងាររបស់អ្នកនៅក្នុងឯកសារ index.html បន្ថែមបរិច្ឆេទ script ដែលហៅម៉ូដែលក្រោយពី `` បិទចុងក្រោយ។ + +1. ជាងដំបូង នាំចូល [Onnx Runtime](https://www.onnxruntime.ai/)៖ + + ```html + + ``` + + > Onnx Runtime ត្រូវបានប្រើដើម្បីអនុញ្ញាតឲ្យដំណើរការម៉ូដែល Onnx របស់អ្នកនៅលើឧបករណ៍តំណាងខុសៗគ្នា ដូចជាការបំពេញប្រសិទ្ធភាព និង API សម្រាប់ប្រើប្រាស់។ + +1. ពេលមាន Runtime ស្រេច អ្នកអាចហៅវា៖ + + ```html + + ``` + +ក្នុងកូដនេះ មានអ្វីៗជាច្រើនកើតឡើង៖ + +1. អ្នកបានបង្កើតអារេ ៣៨០ តម្លៃដែលអាចជា 1 ឬ 0 ដើម្បីកំណត់ និងផ្ញើទៅម៉ូដែលសម្រាប់ការប៉ាន់ស្មាន ពីព្រោះប្រសិនបើប្រអប់ជ្រើសរើសត្រូវបានតំណល់។ +2. អ្នកបានបង្កើតអារេប្រអប់ជ្រើសរើស និងវិធីសាស្រ្តក្នុងការកំណត់ថាតើពួកវាត្រូវបានជ្រើសឬទេ នៅក្នុងមុខងារ `init` ដែលត្រូវបានហៅនៅពេលកម្មវិធីចាប់ផ្តើម។ ពេលប្រអប់ជ្រើសរើសត្រូវបានកំណត់ `ingredients` អារេនឹងផ្លាស់ប្តូរដើម្បីបង្ហាញសមាសធាតុដែលត្រូវបានជ្រើស។ +3. អ្នកបានបង្កើតមុខងារ `testCheckboxes` ដែលពិនិត្យថាតើមានប្រអប់ជ្រើសរើសណាហើយត្រូវបានជ្រើស។ +4. អ្នកប្រើមុខងារ `startInference` នៅពេលពិន្ទុត្រូវបានចុច ហើយ ប្រសិនបើមានប្រអប់ជ្រើសរើស ត្រូវចាប់ផ្តើមការប៉ាន់ស្មាន។ +5. វិធីសាស្រ្តប៉ាន់ស្មាន រួមមាន៖ + 1. កំណត់ការផ្ទុកម៉ូដែលប្រភេទអាស៊ីនក + 2. បង្កើតរចនាសម្ព័ន្ធ Tensor ដើម្បីផ្ញើទៅម៉ូដែល + 3. បង្កើត 'feeds' ដែលបង្ហាញ `float_input` ជាញឹកញាប់ដែលបានបង្កើតនៅពេលហ្វឹកហាត់ម៉ូដែល (អ្នកអាចប្រើ Netron ដើម្បីផ្ទៀងផ្ទាត់ឈ្មោះនោះ) + 4. ផ្ញើ 'feeds' ទៅម៉ូដែល ហើយរង់ចាំការឆ្លើយតបទៅវិញ + +## សាកល្បងកម្មវិធីរបស់អ្នក + +បើក​ការ​សម្‍មរណ៍​បញ្ជា (terminal) នៅក្នុង Visual Studio Code ក្នុងថតដែលមានឯកសារ index.html របស់អ្នក។ ប្រាកដថាអ្នកបានដំឡើង [http-server](https://www.npmjs.com/package/http-server) ជាទូទៅរួចហើយ ហើយវាយ `http-server` នៅក្នុងបញ្ជាលេខា។ វ៉ិបសឺវ័របើកឡើងក្នុង localhost ហើយអ្នកអាចមើលកម្មវិធីេបសាយរបស់អ្នកបាន។ ពិនិត្យមើលម្ហូបណាដែលផ្ដល់ជាមួយមុខម្ហូបណាមួយដោយផ្អែកលើសមាសធាតុផ្សេងៗ៖ + +![ingredient web app](../../../../translated_images/km/web-app.4c76450cabe20036.webp) + +សូមអបអរ যাচាហ៎ អ្នកបានបង្កើតកម្មវិធីេបសាយ 'ផ្ដល់អត្ថសម្គាល់' ជាមួយវាលតិចៗមួយចំនួន។ ចំណាយពេលបន្តកសាងប្រព័ន្ធនេះ! + +## 🚀កញ្ញាប្រលង + +កម្មវិធីេបសាយរបស់អ្នកមានលក្ខណៈគ្រួសារគតិយុត្តិ ផ្ទាល់បន្តកសាងវាជាមួយសមាសធាតុ និងលេខរៀងរបស់ពួកវាពីទិន្នន័យ [ingredient_indexes](../../../../4-Classification/data/ingredient_indexes.csv)។ តើការចម្រុះរសជាតិនានាដែលអាចធ្វើឱ្យផលិតម្ហូបជាតិណាដែលបានកំណត់? + +## [វាយតម្លៃបន្ទាប់ពីការបង្រៀន](https://ff-quizzes.netlify.app/en/ml/) + +## សង្ខេប និងអានដើម្បីរៀនបន្តផ្ទាល់ខ្លួន + +ព្រោះមេរៀននេះទើបតែប៉ះពាល់លើការជួយបង្កើតប្រព័ន្ធផ្ដល់សំណើអំពីសមាសធាតុម្ហូប បរិបទនេះគឺសម្បូរទៅដោយឧទាហរណ៍។ សូមអានបន្ថែមពីរបៀបដែលប្រព័ន្ធទាំងនេះបានកសាង៖ + +- 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/ + +## កិច្ចការ + +[កសាងកម្មវិធីផ្ដល់អត្ថសម្គាល់ថ្មី](assignment.md) + +--- + + +**ការមិនទទួលខុសត្រូវ**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ យើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ ប៉ុន្តែសូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិនាះអាចមានកំហុស ឬភាពមិនច្បាស់លាស់បាន។ ឯកសារដើមដើមនៅក្នុងភាសាមាតុភាគគួរត្រូវបានគេដឹងថាជាផ្លូវការជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/4-Applied/assignment.md b/translations/km/4-Classification/4-Applied/assignment.md new file mode 100644 index 000000000..3140ad5a3 --- /dev/null +++ b/translations/km/4-Classification/4-Applied/assignment.md @@ -0,0 +1,18 @@ +# សាងសង់កម្មវិធីផ្តល់អនុសាសន៍ + +## មេរៀនណែនាំ + +ដោយផ្អែកលើលំហាត់នានារបស់អ្នកក្នុងមេរៀននេះ អ្នកឥឡូវនេះបានដឹងពីវិធីសាស្រ្តសាងសង់កម្មវិធីវែបផ្អែកលើ JavaScript ដោយប្រើ Onnx Runtime និងម៉ូដែល Onnx ដែលបានបម្លែងរួច។ សូមសាកល្បងសាងសង់កម្មវិធីផ្តល់អនុសាសន៍ថ្មីមួយដោយប្រើទិន្នន័យពីមេរៀនទាំងនេះ ឬពីប្រភពផ្សេងទៀត (សូមគោរពកិត្តិយស)។ អ្នកអាចបង្កើតកម្មវិធីផ្តល់អនុសាសន៍សត្វចិញ្ចឹម ដោយផ្អែកលើលក្ខណៈបុគ្គលិតភាពផ្សេងៗ ឬកម្មវិធីផ្តល់អនុសាសន៍សំរាប់ចំណង់ចំណូលចិត្តតន្រ្តី ដោយយោងទៅតាមអារម្មណ៍របស់មនុស្សម្នាក់។ សូមមានភាពច្នៃប្រឌិត! + +## កំណត់ចំណាំ + +| គ្រឿងផ្សំ | លំដាប់ល្អឥតខ្ចោះ | លំដាប់គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| ------------ | -------------------------------------------------------------------------- | ------------------------------------------ | ---------------------------------------- | +| | កម្មវិធីវែប និងកំណត់សៀវភៅត្រូវបានបង្ហាញទាំងពីរ មានឯកសារពណ៌នាល្អ និងដំណើរការ​បាន | មួយក្នុងចំណោមទាំងពីរនោះខ្វះ ឬមានកំហុស | ទាំងពីរទាំងអស់ឬខ្វះ ឬមានកំហុស | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងក្នុងការបំពេញភាពត្រឹមត្រូវ សូមយល់ឲ្យបានថា ការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លួនវា អាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាទីមួយរបស់វា គួរត្រូវបានទទួលស្គាល់ជាមួយប្រភពដែលមានសញ្ញាសន្ដិសុខ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សគឺត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំពីសារ ឬការបកស្រាយខុសណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/4-Classification/4-Applied/notebook.ipynb b/translations/km/4-Classification/4-Applied/notebook.ipynb new file mode 100644 index 000000000..2479372ef --- /dev/null +++ b/translations/km/4-Classification/4-Applied/notebook.ipynb @@ -0,0 +1,35 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": 3 + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# សាងសង់កម្មវិធីផ្តល់អនុសាសន៍ម្ហូបអាហារ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការមិនត្រឹមត្រូវខ្លះ។ឯកសារដើមក្នុងភាសាមានដើមត្រូវបានពិចារណាជាជំរើសដើម។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំណាមួយ ឬការបកប្រែខុសទោសដែលកើតហេតុពីការប្រើប្រាស់ការបកប្រែនេះនោះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/4-Classification/4-Applied/solution/notebook.ipynb b/translations/km/4-Classification/4-Applied/solution/notebook.ipynb new file mode 100644 index 000000000..cb6c059e1 --- /dev/null +++ b/translations/km/4-Classification/4-Applied/solution/notebook.ipynb @@ -0,0 +1,286 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# រៀបចំកម្មវិធីផ្តល់អនុសាសន៍ម្ហូបអាហារ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: skl2onnx in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (1.8.0)\n", + "Requirement already satisfied: protobuf in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (3.8.0)\n", + "Requirement already satisfied: numpy>=1.15 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.19.2)\n", + "Requirement already satisfied: onnx>=1.2.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.9.0)\n", + "Requirement already satisfied: six in /Users/jenlooper/Library/Python/3.7/lib/python/site-packages (from skl2onnx) (1.12.0)\n", + "Requirement already satisfied: onnxconverter-common<1.9,>=1.6.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.8.1)\n", + "Requirement already satisfied: scikit-learn>=0.19 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (0.24.2)\n", + "Requirement already satisfied: scipy>=1.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from skl2onnx) (1.4.1)\n", + "Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from protobuf->skl2onnx) (45.1.0)\n", + "Requirement already satisfied: typing-extensions>=3.6.2.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from onnx>=1.2.1->skl2onnx) (3.10.0.0)\n", + "Requirement already satisfied: threadpoolctl>=2.0.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from scikit-learn>=0.19->skl2onnx) (2.1.0)\n", + "Requirement already satisfied: joblib>=0.11 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from scikit-learn>=0.19->skl2onnx) (0.16.0)\n", + "\u001b[33mWARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.\n", + "You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install --upgrade pip' command.\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "!pip install skl2onnx" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd \n" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " Unnamed: 0 cuisine almond angelica anise anise_seed apple \\\n", + "0 0 indian 0 0 0 0 0 \n", + "1 1 indian 1 0 0 0 0 \n", + "2 2 indian 0 0 0 0 0 \n", + "3 3 indian 0 0 0 0 0 \n", + "4 4 indian 0 0 0 0 0 \n", + "\n", + " apple_brandy apricot armagnac ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 382 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Unnamed: 0cuisinealmondangelicaaniseanise_seedappleapple_brandyapricotarmagnac...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00indian00000000...0000000000
11indian10000000...0000000000
22indian00000000...0000000000
33indian00000000...0000000000
44indian00000000...0000000010
\n

5 rows × 382 columns

\n
" + }, + "metadata": {}, + "execution_count": 60 + } + ], + "source": [ + "data = pd.read_csv('../../data/cleaned_cuisines.csv')\n", + "data.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " almond angelica anise anise_seed apple apple_brandy apricot \\\n", + "0 0 0 0 0 0 0 0 \n", + "1 1 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 0 0 \n", + "\n", + " armagnac artemisia artichoke ... whiskey white_bread white_wine \\\n", + "0 0 0 0 ... 0 0 0 \n", + "1 0 0 0 ... 0 0 0 \n", + "2 0 0 0 ... 0 0 0 \n", + "3 0 0 0 ... 0 0 0 \n", + "4 0 0 0 ... 0 0 0 \n", + "\n", + " whole_grain_wheat_flour wine wood yam yeast yogurt zucchini \n", + "0 0 0 0 0 0 0 0 \n", + "1 0 0 0 0 0 0 0 \n", + "2 0 0 0 0 0 0 0 \n", + "3 0 0 0 0 0 0 0 \n", + "4 0 0 0 0 0 1 0 \n", + "\n", + "[5 rows x 380 columns]" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
almondangelicaaniseanise_seedappleapple_brandyapricotarmagnacartemisiaartichoke...whiskeywhite_breadwhite_winewhole_grain_wheat_flourwinewoodyamyeastyogurtzucchini
00000000000...0000000000
11000000000...0000000000
20000000000...0000000000
30000000000...0000000000
40000000000...0000000010
\n

5 rows × 380 columns

\n
" + }, + "metadata": {}, + "execution_count": 61 + } + ], + "source": [ + "X = data.iloc[:,2:]\n", + "X.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " cuisine\n", + "0 indian\n", + "1 indian\n", + "2 indian\n", + "3 indian\n", + "4 indian" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
cuisine
0indian
1indian
2indian
3indian
4indian
\n
" + }, + "metadata": {}, + "execution_count": 62 + } + ], + "source": [ + "y = data[['cuisine']]\n", + "y.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.model_selection import train_test_split\n", + "from sklearn.svm import SVC\n", + "from sklearn.model_selection import cross_val_score\n", + "from sklearn.metrics import accuracy_score,precision_score,confusion_matrix,classification_report" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [], + "source": [ + "X_train, X_test, y_train, y_test = train_test_split(X,y,test_size=0.3)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "SVC(C=10, kernel='linear', probability=True, random_state=0)" + ] + }, + "metadata": {}, + "execution_count": 65 + } + ], + "source": [ + "model = SVC(kernel='linear', C=10, probability=True,random_state=0)\n", + "model.fit(X_train,y_train.values.ravel())\n" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [], + "source": [ + "y_pred = model.predict(X_test)" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " precision recall f1-score support\n\n chinese 0.72 0.70 0.71 236\n indian 0.91 0.88 0.89 243\n japanese 0.80 0.75 0.77 240\n korean 0.80 0.81 0.81 230\n thai 0.76 0.85 0.80 250\n\n accuracy 0.80 1199\n macro avg 0.80 0.80 0.80 1199\nweighted avg 0.80 0.80 0.80 1199\n\n" + ] + } + ], + "source": [ + "print(classification_report(y_test,y_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [], + "source": [ + "from skl2onnx import convert_sklearn\n", + "from skl2onnx.common.data_types import FloatTensorType\n", + "\n", + "initial_type = [('float_input', FloatTensorType([None, 380]))]\n", + "options = {id(model): {'nocl': True, 'zipmap': False}}\n", + "onx = convert_sklearn(model, initial_types=initial_type, options=options)\n", + "with open(\"./model.onnx\", \"wb\") as f:\n", + " f.write(onx.SerializeToString())\n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបី​យើងខិតខំសំរាប់ភាពត្រឹមត្រូវ ខ្ញុំសូមអោយដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសាដើមគួរត្រូវបានចាត់ទុកជាធនធានដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងផ្ដល់អនុសាសន៍ឲ្យប្រើការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំនូវអ្វីៗ ឬការបកប្រែខុសៗណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/4-Classification/README.md b/translations/km/4-Classification/README.md new file mode 100644 index 000000000..22d12d186 --- /dev/null +++ b/translations/km/4-Classification/README.md @@ -0,0 +1,34 @@ +# ការចាប់ផ្តើមជាមួយការបែងចែកប្រភេទ + +## ប្រធានបទតំបន់៖ ម្ហូបអាស៊ីនិងឥណ្ឌាដ៏ឆ្ងាញ់ 🍜 + +នៅក្នុងអាស៊ី និងឥណ្ឌា ប្រពៃណីម្ហូបរបស់ពួកគេមានភាពផ្សេងប្លែកខ្លាំង ហើយឆ្ងាញ់បំផុត! យើងមកមើលទិន្នន័យអំពី ម្ហូបតំបន់ ដើម្បីព្យាយាមយល់ពីគ្រឿងផ្សំរបស់ពួកវា។ + +![Thai food seller](../../../translated_images/km/thai-food.c47a7a7f9f05c218.webp) +> រូបថតដោយ Lisheng Chang នៅលើ Unsplash + +## អ្វីដែលអ្នកនឹងរៀន + +នៅក្នុងផ្នែកនេះ អ្នកនឹងបន្ដគ្រាន់តែការសិក្សាបឋមរបស់អ្នកអំពី Regression ហើយរៀនអំពីអ្នកបែងចែកប្រភេទផ្សេងទៀតដែល អ្នកអាចប្រើដើម្បីយល់ចំពោះទិន្នន័យបានល្អប្រសើរជាងមុន។ + +> មានឧបករណ៍ទាបកូដដែលមានប្រយោជន៍សម្រាប់ជួយអ្នករៀនអំពីការធ្វើការជាមួយម៉ូដែលបែងចែកប្រភេទ។ សាកល្បង [Azure ML សម្រាប់ភារកិច្ចនេះ](https://docs.microsoft.com/learn/modules/create-classification-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) + +## ជង្រៀន + +1. [ការបង្ហាញពីការបែងចែកប្រភេទ](1-Introduction/README.md) +2. [អ្នកបែងចែកប្រភេទបន្ថែមទៀត](2-Classifiers-1/README.md) +3. [អ្នកបែងចែកប្រភេទផ្សេងទៀតទៀត](3-Classifiers-2/README.md) +4. [ការអនុវត្ត ML៖ បង្កើតកម្មវិធីបណ្ដាញ](4-Applied/README.md) + +## ឥណទាន + +"ការចាប់ផ្តើមជាមួយការបែងចែកប្រភេទ" ត្រូវបានសរសេរដោយ♥️ [Cassie Breviu](https://www.twitter.com/cassiebreviu) និង [Jen Looper](https://www.twitter.com/jenlooper) + +ទិន្នន័យម្ហូបឆ្ងាញ់ត្រូវបានយកពី [Kaggle](https://www.kaggle.com/hoandan/asian-and-indian-cuisines)។ + +--- + + +**ការតែងព័ត៌មានមិនទាក់ទង**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ក្នុងខណៈពេលយើងខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការខុសត្រូវ។ ឯកសារដើមជាភាសាទំនើបគួរត្រូវបានគេយកទៅជាធនធានដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្លំ ដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/5-Clustering/1-Visualize/README.md b/translations/km/5-Clustering/1-Visualize/README.md new file mode 100644 index 000000000..77249b639 --- /dev/null +++ b/translations/km/5-Clustering/1-Visualize/README.md @@ -0,0 +1,339 @@ +# សេចក្ដីផ្តើមអំពីការចែកទំព័រ + +ការចែកទំព័រជាប្រភេទ [ការសិក្សាឥតគ្រប់គ្រង](https://wikipedia.org/wiki/Unsupervised_learning) ដែលគិតថា អាសយដ្ឋានទិន្នន័យមួយគ្មានស្លាក ឬថា បញ្ចូលរបស់វាមិនបានផ្គូរផ្គងជាមួយលទ្ធផលដែលកំណត់រួចជាស្រេច។ វា​ប្រើប្រាស់​អាល់ហ្គរីធម៍ផ្សេងៗ ដើម្បីខ្វះខាតតាមទិន្នន័យគ្មានស្លាក និងផ្តល់ការបែងចែកតាមលំនាំដែលវាស្គាល់បានក្នុងទិន្នន័យ។ + +[![No One Like You by PSquare](https://img.youtube.com/vi/ty2advRiWJM/0.jpg)](https://youtu.be/ty2advRiWJM "No One Like You by PSquare") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូ។ ខណៈពេលដែលអ្នកកំពុងសិក្សាអំពីការសិក្សាម៉ាស៊ីនជាមួយការចែកទំព័រ សូមរីករាយជាមួយបទចម្រៀង Dance Hall នៃប្រទេសណាយហ្សេរី - នេះជាបទដែលមានការវាយតម្លៃខ្ពស់បំផុតពីឆ្នាំ ២០១៤ ដោយ PSquare។ + +## [សំណួរលទ្ធផលមុនជំនอบ](https://ff-quizzes.netlify.app/en/ml/) + +### សេចក្ដីផ្តើម + +[ការចែកទំព័រ](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 នៃ MIT ផ្តល់បង្ហាញអំពីការចែកទំព័រ + +នៅក្នុងបរិបទវិជ្ជាជីវៈ ការចែកទំព័រអាចប្រើសម្រាប់កំណត់របស់ដូចជា បំបែកទីផ្សារ កំណត់អាយុក្រុមដែលទិញទំនិញណាមួយ ជាដើម។ ការប្រើប្រាស់មួយផ្សេងទៀតគឺកំណត់ការរកឃើញករណីបញ្ហា ដូចជាការរកឃើញការលួចសារ ប្រសិនបើមានទិន្នន័យប្រតិបត្តិការកាតឥណទាន។ ឬអ្នកអាចប្រើការចែកទំព័រដើម្បីកំណត់ឆៅនៅក្នុងស្កេនវេជ្ជសាស្ត្រជាច្រើន។ + +✅ ចំណាយពេលមួយនាទីគិតពីរបៀបដែលអ្នកប្រហែលជាបានប្រទះមកការចែកទំព័រ 'ក្នុងធម្មជាតិ' នៅក្នុងបរិបទធនាគារ អ៊ី-ម៉ាស៊ីនបំពង់ ឬអាជីវកម្ម។ + +> 🎓 វិជ្ជាជីវៈដែលគួរឲ្យចាប់អារម្មណ៍ ការវិភាគក្រុមត្រូវបានចាប់ផ្តើមនៅក្នុងដែនវិទ្យាសាស្ត្រអង់ត្រូប្យូឡូជី និង ហ្សីកូឡូជី ក្នុងឆ្នាំ ១៩៣០។ តើអ្នកអាចស្រមៃថាវាបានប្រើប្រាស់ដូចម្តេច? + +ផ្សេងទៀត អ្នកអាចប្រើសម្រាប់ក្រុមលទ្ធផលស្វែងរក - តាមតំណភ្ជាប់ទំនិញ រូបភាព ឬ ការវាយតម្លៃ ជាដើម។ ការចែកទំព័រមានប្រយោជន៍ពេលអ្នកមានទិន្នន័យធំដែលអ្នកចង់បន្ថយ ហើយចង់អនុវត្តវិភាគលម្អិតជាងនេះ ដូច្នេះបច្ចេកវិទ្យានេះអាចប្រើសម្រាប់រៀនអំពីទិន្នន័យមុនពេលម៉ូដែលផ្សេងទៀតត្រូវបានបង្កើត។ + +✅ ពេលទិន្នន័យរបស់អ្នកត្រូវរៀបចំជាក្រុម អ្នកផ្ដល់លេខសម្គាល់ក្រុម ហើយបច្ចេកទេសនេះអាចមានប្រយោជន៍ពេលរក្សាទុកឯកជនភាពនៃទិន្នន័យ; អ្នកអាចយោងទៅតាមចំណុចទិន្នន័យដោយលេខសម្គាល់ក្រុមជំនួស លេខសម្គាល់ដែលបង្ហាញអត្តសញ្ញាណខ្លះៗជាងនេះ។ តើអ្នកអាចគិតមូលហេតុផ្សេងទៀតដែលអ្នកនឹងយោងលេខសម្គាល់ក្រុមជំនួសធាតុផ្សេងៗក្នុងក្រុមដើម្បីកំណត់វា? + +ពង្រីកការយល់ដឹងរបស់អ្នកអំពីបច្ចេកទេសចែកទំព័រនៅក្នុង [មូឌុលរៀននេះ](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott) +## ការចាប់ផ្តើមជាមួយការចែកទំព័រ + +[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 | ក្រុមច្រើន មានកំណត់ ចម្ងាយមិនមែន Euclidean ជាវិធីប្រើផ្ទាល់ | +| DBSCAN | ជីមេត្រីមិនស្មើរ មិនស្មើរ ជាវិធីប្រើផ្ទាល់ | +| OPTICS | ជីមេត្រីមិនស្មើរ មិនស្មើរជាមួយដង់ស៊ីតេចម្រុះ ជាវិធីប្រើផ្ទាល់ | +| Gaussian mixtures | ជីមេត្រីស្មើរ ជាវិធីចូលពីមុខ | +| BIRCH | ទិន្នន័យធំពីរដុំជាមួយ outliers ជាវិធីចូលពីមុខ | + +> 🎓 របៀបយើងបង្កើតក្រុមមានទំនាក់ទំនងយ៉ាងខ្លាំងជាមួយរបៀបយើងបម្លែងចំណុចទិន្នន័យទៅជាក្រុម។ មកពន្យល់ពាក្យមួយចំនួន៖ +> +> 🎓 ['ប្រភេទប្រើផ្ទាល់' ទល់នឹង 'ចូលពីមុខ'](https://wikipedia.org/wiki/Transduction_(machine_learning)) +> +> ការអនុវត្តប្រភេទប្រើផ្ទាល់ចេញមកពីករណីបណ្តុះបណ្តាលដែលត្រូវម៉េចទៅករណីតេស្តជាក់លាក់។ ការអនុវត្តចូលពីមុខចេញពីករណីបណ្តុះបណ្តាលដែលប្រើទៅលក្ខណៈទូទៅ ហើយបន្ទាប់មកអនុវត្ដទៅករណីតេស្ត។ +> +> ឧទាហរណ៍៖ សូមស្រមៃថាអ្នកមានទិន្នន័យដែលមានស្លាកតិចតួច។ អ្វីខ្លះជារេកតិត (records), អ្វីខ្លះជាលីបស៊ីឌី (cds), ហើយអ្វីខ្លះទៀតទទេ។ ការងាររបស់អ្នកគឺផ្ដល់ស្លាកមកសម្រាប់អ្វីទទេ។ ប្រសិនបើអ្នកជ្រើសរើសវិធីចូលពីមុខ អ្នកនឹងបង្ហាត់ម៉ូដែលស្វែងរករេកតិត និងលីបស៊ីឌី ហើយអនុវត្តស្លាកទាំងនោះទៅលើទិន្នន័យគ្មានស្លាក។ វិធីនេះនឹងមានបញ្ហាក្នុងការបែងចែកវត្ថុដែលពិតជាជាស៊ីស៊ីត (cassettes)។ តាមផ្ទុយ, វិធីប្រើផ្ទាល់មានសមត្ថភាពច្រើនក្នុងការដោះស្រាយទិន្នន័យមិនស្គាល់ ដោយវាធ្វើការបែងចែកវត្ថុដូចគ្នាជាក្រុម ហើយបន្ទាប់មកផ្ដល់ស្លាកទៅក្រុម។ ក្នុងករណីនេះ ក្រុមអាចបង្ហាញថាអ្វីដែលជាវត្ថុនឹងទំនាក់ទំនងទៅនឹងតន្ត្រីធ្វើដូចជា 'រង្វង់តន្ត្រី' និង 'ការ៉េតន្ត្រី'។ +> +> 🎓 ['ជីមេត្រីមិនស្មើ' ទល់នឹង 'ជីមេត្រីស្មើ'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering) +> +> ប្រភពលើកទឹកចិត្តពីពាក្យគណិតវិទ្យា ជីមេត្រមិនស្មើ និងជីមេត្រីស្មើ បង្ហាញពីវិធីវាស់ចម្ងាយរវាងចំណុច ដោយប្រើវិធីជីមេត្រស្មើ ([Euclidean](https://wikipedia.org/wiki/Euclidean_geometry)) ឬ មិនស្មើ (non-Euclidean)។ +> +>'ជីមេត្រីស្មើ' មានន័យជាជីមេត្រយូក្លីដ (ដែលផ្នែកមួយត្រូវបានបង្រៀនជាជីមេត្រប្លែន), ខណៈដែលជីមេត្រមិនស្មើមានន័យជាជីមេត្រមិនយូឃ្លីដ។ តើជីមេត្រមានទំនាក់ទំនងយ៉ាងដូចម្តេចជាមួយការសិក្សាម៉ាស៊ីន? ជាផ្នែកមួយនៃវិស័យវិទ្យាសាស្ត្រគណិតវិទ្យា ត្រូវមានវិធីសម្រាប់វាស់ចម្ងាយរវាងចំណុចនៅក្នុងក្រុម និងវា អាចធ្វើបានក្នុងរបៀប 'ស្មើ' ឬ 'មិនស្មើ' ដោយហេតុផលពីធម្មជាតិនៃទិន្នន័យ។ [ចម្ងាយយូឃ្លីដ](https://wikipedia.org/wiki/Euclidean_distance) គឺវាស់ថា​វែងបន្ទាត់រវាងចំណុចពីរដុល។ [ចម្ងាយមិនយូឃ្លីដ](https://wikipedia.org/wiki/Non-Euclidean_geometry) គឺវាស់ជាប្រវែងតាមខ្សែវង់។ ប្រសិនបើទិន្នន័យរបស់អ្នក, ដែលបានបង្ហាញរូបមន្ត, មិនមានលំនាំស្មើផ្លែនទេ អ្នកប្រហែលជាត្រូវប្រើអាល់ហ្គរីធម៍ពិសេសមួយដើម្បីដោះស្រាយវា។ +> +![Flat vs Nonflat Geometry Infographic](../../../../translated_images/km/flat-nonflat.d1c8c6e2a96110c1.webp) +> រូបភាពបង្ហាញដោយ [Dasani Madipalli](https://twitter.com/dasani_decoded) +> +> 🎓 ['ចម្ងាយ'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf) +> +> ក្រុមត្រូវបានកំណត់ដោយ ម៉ាទ្រីចចម្ងាយរបស់ពួកវា ពិរុទ្ធជា ចម្ងាយរវាងចំណុច។ ចម្ងាយនេះអាចវាស់បានជាច្រើនវិធី។ ក្រុមយូឃ្លីដត្រូវបានកំណត់ដោយមធ្យមនៃតម្លៃចំណុច ហើយមាន 'ចំណុចកណ្តាល' ឬចំណុចមជ្ឈមណ្ឌល។ ចម្ងាយត្រូវវាស់ដោយចម្ងាយទៅរកចំណុចមជ្ឈមណ្ឌលនោះ។ ចម្ងាយមិនយូឃ្លីដត្រូវបានទាក់ទងទៅនឹង 'clustroids' ដែលជាចំណុចនៅជិតចំណុចផ្សេងទៀតបំផុត។ Clustroids អាចត្រូវបានកំណត់ដោយវិធីផ្សេងៗ។ +> +> 🎓 ['មានកំណត់'](https://wikipedia.org/wiki/Constrained_clustering) +> +> [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 ដើម្បីស្វែងរកទិន្នន័យដែលមានសំលេងរំខានជាមួយដង់ស៊ីតេចម្រុះ។ + +## អាល់ហ្គរីធម៍ចែកទំព័រ + +មានអាល់ហ្គរីធម៍ចែកទំព័រលើស ១០០ គឺ ដោយប្រើប្រាស់គឺអាស្រ័យលើធម្មជាតិនៃទិន្នន័យ។ នេះជាការពិភាក្សាអំពីខ្លះៗនៃអាល់ហ្គរីធម៍សំខាន់ៗ៖ + +- **ការចែកទំព័រប្រភេទលំដាប់លំដោយ**។ ប្រសិនបើវត្ថុត្រូវបានចាត់ថ្នាក់ដោយភាពជិតស្និទ្ធទៅអ្វីដែលនៅជិតវា ជំនួសការជិតទៅវត្ថុចម្ងាយជាង ពួកក្រុមត្រូវបានបង្កើតឡើង ដោយផ្អែកលើចម្ងាយរវាងសមាជិកទៅនឹងវត្ថុផ្សេងៗ។ ការចែកទំព័រអាហ្គ្លូម៉ើត៊ីវរបស់ Scikit-learn គឺប្រភេទលំដាប់លំដោយ។ + + ![Hierarchical clustering Infographic](../../../../translated_images/km/hierarchical.bf59403aa43c8c47.webp) + > រូបភាពបង្ហាញដោយ [Dasani Madipalli](https://twitter.com/dasani_decoded) + +- **ការចែកទំព័រចំណុចកណ្តាល**។ អាល់ហ្គរីធម៍ល្បីឈ្មោះនេះត្រូវការជ្រើសរើស 'k' រឺ ចំនួនក្រុមដែលត្រូវបង្កើត បន្ទាប់មកអាល់ហ្គរីធម៍កំណត់ចំណុចមជ្ឈមណ្ឌលរបស់ក្រុម និងប្រមូលទិន្នន័យនៅជុំវិញចំណុចនោះ។ [K-means clustering](https://wikipedia.org/wiki/K-means_clustering) គឺជាប្រភេទពេញនិយមនៃការចែកទំព័រចំណុចកណ្តាល។ ចំណុចមជ្ឈមណ្ឌលត្រូវបានកំណត់ដោយមធ្យមជិតបំផុត ដូច្នេះឈ្មោះ។ ចម្ងាយកោណត្រូវបានបន្តិចបន្តួច។ + + ![Centroid clustering Infographic](../../../../translated_images/km/centroid.097fde836cf6c918.webp) + > រូបភាពបង្ហាញដោយ [Dasani Madipalli](https://twitter.com/dasani_decoded) + +- **ការចែកទំព័រដែលផ្អែកលើចែកចាយ**។ មានមូលដ្ឋានលើគំរូស្ថិតិ ការចែកទំព័រដែលផ្អែកលើចែកចាយផ្តោតលើការកំណត់ពិតភាពថាចំណុចទិន្នន័យទាក់ទងទៅក្រុមណាមួយ ហើយផ្ដាច់ផ្តាច់ទៅតាមរបៀប។ វិធី Gaussian mixture ស្ថិតនៅក្នុងប្រភេទនេះ។ + +- **ការចែកទំព័រលើមូលដ្ឋានដង់ស៊ីតេ**។ ចំណុចទិន្នន័យត្រូវបានតែងតាំងទៅក្រុម ដោយផ្អែកលើដង់ស៊ីតេរបស់ពួកវា ឬការប្រមូលផ្តុំគ្នា។ ចំណុចទិន្នន័យដែលឆ្ងាយពីក្រុម ត្រូវបានគេចាត់ទុកថាជាផលប៉ះពាល់ខាងក្រៅ ឬសំឡេងរំខាន។ DBSCAN, Mean-shift និង OPTICS ស្ថិតក្នុងប្រភេទនេះ។ + +- **ការចែកទំព័រលើមូលដ្ឋានក្រឡា**។ សម្រាប់ទិន្នន័យពហុវិមាត្រ ក្រឡាត្រូវបានបង្កើត ហើយទិន្នន័យត្រូវបានចែកចាយទៅក្នុងវាលនៃក្រឡា បង្កើតក្រុមឡើង។ + +## លំហាត់ - ចែកទិន្នន័យរបស់អ្នកជាក្រុម + +ការចែកទំព័រជាបច្ចេកទេស ត្រូវបានជួយស្រាលដូចខុសគ្នា ដោយការពិពណ៌នារូបភាពដូចត្រឹមត្រូវ ដូច្នេះសូមចាប់ផ្តើមដោយបង្ហាញទិន្នន័យតន្ត្រីរបស់យើង។ លំហាត់នេះនឹងជួយយើងសម្រេចចិត្តថាតើយ៉ាងដូចម្តេចក្នុងចំណោមវិធីចែកទំព័រដែលគួរប្រើសម្រាប់ធម្មជាតិនៃទិន្នន័យនេះ។ + +1. បើកឯកសារ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) ក្នុងថតនេះ។ + +1. នាំចូលកញ្ចប់ `Seaborn` សម្រាប់ការពិពណ៌នាទិន្នន័យល្អ។ + + ```python + !pip install seaborn + ``` + +1. បន្ថែមទិន្នន័យបទចម្រៀងពី [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv)។ បង្ហាញ data frame មានទិន្នន័យពីបទចម្រៀង។ រៀបចំខ្លួនដើម្បីស្វែងរកទិន្នន័យនេះដោយនាំចូលបណ្ណាល័យ និងបង្ហាញទិន្នន័យ៖ + + ```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. សូមទទួលបានព័ត៌មានមួយចំនួនអំពី DataFrame ដោយអំពាវនាវ `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. ពិនិត្យម្តងទៀតសម្រាប់តម្លៃ null ដោយហៅ `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 | + +> 🤔 ប្រសិនបើយើងកំពុងធ្វើការជាមួយ clustering ដែលជា វិធីសាស្ត្រ unsupervised មួយដែលមិនត្រូវការទិន្នន័យមានស្លាក ហេតុអ្វីបានយើងចង្អុលបង្ហាញទិន្នន័យនេះជាមួយស្លាក? ក្នុងដំណាក់កាលចាប់ផ្តើមស្វែងរកទិន្នន័យ ស្លាកទាំងនេះមានប្រយោជន៍ ប៉ុន្តែវាមិនចាំបាច់សម្រាប់អាល់គ័រីធម clustering ដើម្បីដំណើរការ។ អ្នកអាចយកចេញក្បាលជួរឈរនៅតែមិនប៉ះពាល់ ដើម្បីយោងទិន្នន័យតាមលេខជួរឈរ។ + +មើលតម្លៃទូទៅនៃទិន្នន័យ។ សូមចំណាំថា popularity អាចមានតម្លៃជា '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](../../../../translated_images/km/popular.9c48d84b3386705f.webp) + +✅ ប្រសិនបើអ្នកចង់មើលតម្លៃកំពូលច្រើនជាងនេះ សូមប្តូរ top `[:5]` ទៅជាតម្លៃធំជាងនេះ ឬដកវាចេញដើម្បីមើលទាំងអស់។ + +សូមចំណាំ ពេលដែលប្រភេទចម្រៀងកំពូលត្រូវបានពិពណ៌នាជា 'Missing' មានន័យថា 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') + ``` + + ឥឡូវនេះសូមពិនិត្យមើលប្រភេទចម្រៀងម្ដងទៀត៖ + + ![most popular](../../../../translated_images/km/all-genres.1d56ef06cefbfcd6.webp) + +1. ប្រភេទចម្រៀងកំពូលបី មានអំណាចលើទិន្នន័យនេះ។ យើងសូមផ្តោតទៅលើ `afro dancehall`, `afropop`, និង `nigerian pop` ហើយត្រងទិន្នន័យដើម្បីដកចេញវត្ថុដែលមានតម្លៃ popularity ដែលស្មើ 0 (មានន័យថាវាមិនត្រូវបានចាត់ថ្នាក់ដោយ popularity ក្នុងទិន្នន័យ ហើយអាចត្រូវបានចាត់ទុកជាសំលេងរំខានសម្រាប់គោលបំណងរបស់យើង)៖ + + ```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(numeric_only=True) + f, ax = plt.subplots(figsize=(12, 9)) + sns.heatmap(corrmat, vmax=.8, square=True) + ``` + + ![correlations](../../../../translated_images/km/correlation.a9356bb798f5eea5.webp) + + ការពាក់ព័ន្ធតែមួយដែលខ្លាំងគឺរវាង `energy` និង `loudness` ដែលមិនមែនជារឿងភ្ញាក់ផ្អើលទេ ព្រោះតែលំនៅសំឡេងខ្ពស់ជារឿយៗដូចជាអ្នកមានថាមពលខ្លាំង។ អ្នកលំដាប់ប្រសើរពីរវាងផ្សេងទៀតគួរជារបាយការណ៍ខ្សោយ។ វានឹងគួរអោយចាប់អារម្មណ៍មើលពីអាល់គ័រីធម clustering អាចយល់ដឹងអ្វីខ្លះពីទិន្នន័យនេះបាន។ + + > 🎓 សូមចំណាំថាការពាក់ព័ន្ធមិនមានន័យថាការកើតមាន! យើងមានភស្តុតាងនៃការពាក់ព័ន្ធ ប៉ុន្តែមិនមានភស្តុតាងនៃការកើតមាន។ គេហទំព័រមួយដែលគួរឱ្យចាប់អារម្មណ៍ [amusing web site](https://tylervigen.com/spurious-correlations) ផ្តល់នូវរូបភាពសម្រាប់ពិចារណារឿងនេះ។ + +តើមានការប្រមូលផ្តុំគ្នានៅក្នុងទិន្នន័យនេះអំពីការមើលឃើញនូវពន្លឺនិង danceability របស់ចម្រៀងមួយទេ? FacetGrid បង្ហាញថាមានរង្វង់ច្រវ៉ាក់អាចផ្គូរផ្គងគ្នា បើទោះបីជាមានបែបបទផ្សេងៗគ្នាក៏ដោយ។ តើអាចមានការចូលចិត្តនៃនាយាជននៅជាមួយមួយកម្រិតបំណងចិត្តលើលំនាំនេះ? + +✅ សាកល្បងបច្ចេកទិន្នន័យផ្សេងទៀត (energy, loudness, speechiness) និងប្រភេទតន្ត្រីផ្សេងៗ ឬច្រើនជាងនេះ។ តើអ្នកអាចរកឃើញអ្វីខ្លះ? សូមមើលតារាង `df.describe()` ដើម្បីមើលការវេចខ្ចប់ទូទៅនៃចំណុចទិន្នន័យ។ + +### វាយតម្លៃ - ការបែងចែកទិន្នន័យ + +តើប្រភេទចម្រៀងបីនេះមានភាពខុសគ្នាយ៉ាងច្បាស់ក្នុងការមើលឃើញ danceability របស់ពួកគេ ដោយផ្អែកលើកម្រិត popularity? + +1. ពិនិត្យមើលការបែងចែកទិន្នន័យរបស់បីប្រភេទកំពូលសម្រាប់ popularity និង danceability នៅលើអ័ក្ស x និង y ដែលមានការបញ្ជាក់។ + + ```python + sns.set_theme(style="ticks") + + g = sns.jointplot( + data=df, + x="popularity", y="danceability", hue="artist_top_genre", + kind="kde", + ) + ``` + + អ្នកអាចរកឃើញរង្វង់ច្រវ៉ាក់នៅជុំវិញចំណុចមួយបាន កំណត់បង្ហាញពីបែងចែកចំណុច។ + + > 🎓 សូមចំណាំឧទាហរណ៍នេះប្រើក្រាហ្វ KDE (Kernel Density Estimate) ដែលតំណាងឱ្យទិន្នន័យដោយ curve មានប្រហែលភាពគុណភាពជាបន្ត។ នេះអាចអោយយើងផ្ដល់អត្ថន័យទិន្នន័យនៅពេលធ្វើការជាមួយការបែងចែកច្រើន។ + + ជាទូទៅ ប្រភេទចម្រៀងបីភាគបន្តិចឆ្លុះបញ្ចាំងគ្នានៅក្នុងចំណោម popularity និង danceability។ ការទាញយកក្រុមនៅក្នុងទិន្នន័យដែលមានការបង្ហាញខាងលើនេះគឺជាភាពលំបាកជា​មួយ៖ + + ![distribution](../../../../translated_images/km/distribution.9be11df42356ca95.webp) + +1. បង្កើតប្លង់ scatter៖ + + ```python + sns.FacetGrid(df, hue="artist_top_genre", height=5) \ + .map(plt.scatter, "popularity", "danceability") \ + .add_legend() + ``` + + ប្លង់ scatter នៃអ័ក្សដូចគ្នាបង្ហាញលំនាំស្រដៀងគ្នារបស់ការប្រមូលផ្តុំ + + ![Facetgrid](../../../../translated_images/km/facetgrid.9b2e65ce707eba1f.webp) + +ជាទូទៅ សម្រាប់ clustering អ្នកអាចប្រើប្លង់ scatter ដើម្បីបង្ហាញក្រុមទិន្នន័យ ដូច្នេះការបង្កប់ចំណេះដឹងនៅលើការបង្ហាញទូរគមនាគមន៍នេះគឺមានប្រយោជន៍ខ្លាំង។ នៅមេរៀនបន្ទាប់ យើងនឹងយកទិន្នន័យដែលបានត្រងនេះ ដើម្បីប្រើ k-means clustering ដើម្បីស្វែងរកក្រុមក្នុងទិន្នន័យដែលពាក់ព័ន្ធគ្នាជាបែបគួរឱ្យចាប់អារម្មណ៍។ + +--- + +## 🚀បញ្ចាំង + +ក្នុងការរៀបចំសម្រាប់មេរៀនបន្ទាប់ សូមបង្កើតតារាងអំពីអាល់គ័រីធម clustering ផ្សេងៗដែលអ្នកអាចស្វែងរក និងប្រើក្នុងបរិដ្ឋានផលិតកម្ម។ តើបញ្ហាប្រភេទអ្វីដែល clustering ព្យាយាមដោះស្រាយ? + +## [ប្រលងក្រោយមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## សេចក្តីពិនិត្យ និងសិក្សាផ្ទាល់ខ្លួន + +មុនពេលអ្នកអនុវត្តអាល់គ័រីធម clustering ដូចដែលយើងបានរៀន វាគួរឱ្យចាប់អារម្មណ៍ក្នុងការយល់ដឹងពីធម្មជាតិទិន្នន័យរបស់អ្នក។ ចំណាយពេលអានបន្ថែមស្តីពីប្រធានបទនេះ [ទីនេះ](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/) នឹងដឹកនាំអ្នក តាមរយៈវិធីផ្សេងៗដែលអាល់គ័រីធម clustering ប្រតិបត្តិការពិតដោយផ្អែកលើរូបរាងទិន្នន័យផ្សេងៗ។ + +## ការងារ + +[ស្វែងយល់អំពីការបង្ហាញទិន្នន័យផ្សេងទៀតសម្រាប់ clustering](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំរក្សាការត្រឹមត្រូវ ក៏សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវលើកកន្លែងណាមួយ។ ឯកសារដើមនៅក្នុងភាសាមូលដ្ឋានរបស់វាគួរត្រូវបានចាត់ទុកជាដើមខ្យល់សម្រាប់ព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសធីងអ្វីៗដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេទេ។ + \ No newline at end of file diff --git a/translations/km/5-Clustering/1-Visualize/assignment.md b/translations/km/5-Clustering/1-Visualize/assignment.md new file mode 100644 index 000000000..87e36dc0b --- /dev/null +++ b/translations/km/5-Clustering/1-Visualize/assignment.md @@ -0,0 +1,18 @@ +# ស្រាវ​ជ្រាវ​អំពី​ការ​បង្ហាញ​ទិដ្ឋភាព​ផ្សេង​ទៀត​សម្រាប់​ការ​ក្រុម + +## សេចក្ដីណែនាំ + +នៅមេរៀននេះ អ្នកបាន​ធ្វើការជាមួយ​បច្ចេកទេស​បង្ហាញ​ទិដ្ឋភាព​ខ្លះៗ ដើម្បី​យល់ដឹងអំពី​ការ​គូស​រូបភាព​ទិន្នន័យ​របស់អ្នក​ក្នុងការ​ត្រៀមសម្រាប់​ការក្រុម​វា។ ការគូរប្រសព្វ (scatterplots) ជាពិសេសមាន​ប្រយោជន៍​សម្រាប់​រក​ក្រុម​អ្នកច្រើនវត្ថុ។ ស្រាវ​ជ្រាវ​របៀបផ្សេងៗ និង​បណ្ណាល័យ​ផ្សេងៗ​ដើម្បី​បង្កើត scatterplots ហើយ​សរសេរ​កំណត់ចំណាំ​ការ​ធ្វើការ​របស់អ្នក​ក្នុង សៀវភៅកំណត់។ អ្នកអាចប្រើទិន្នន័យ​ពីមេរៀននេះ មេរៀនផ្សេងៗ ឬ ទិន្នន័យ​ដែលអ្នកបានរកឃើញដោយខ្លួនឯង (សូម​ញត្តិ​ថា​ដើមទិន្នន័យនៅក្នុងសៀវភៅកំណត់របស់អ្នក)។ គូសភាព​ទិន្នន័យ​មួយចំនួន​ដោយប្រើ scatterplots និង​ពន្យល់​អំពីអ្វីដែលអ្នកបាន​រកឃើញ។ + +## ការវាយតម្លៃ + +| ការវាយតម្លៃ | ល្អឥតខ្ចោះ | គ្រប់គ្រាន់ | ត្រូវការកែលំអ | +| -------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------- | +| | មានសៀវភៅកំណត់មួយដែល​បង្ហាញ scatterplots ចំនួនប្រាំខណៈពិពណ៌នា​ជា​ល្អ | មានសៀវភៅកំណត់មួយដែល​បង្ហាញ scatterplots តិចជាងប្រាំ ហើយពិពណ៌នា​តិចជាង | មានសៀវភៅកំណត់មួយមិនពេញលេញ | + +--- + + +**ប្រកាសលើកលែង**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខំប្រឹងប្រែងរកភាពត្រឹមត្រូវ ក៏សូមចំណាំថាការបកប្រែដោយស្វ័យប្រវត្តិស័ព្ទអាចមានអក្សរខុសឬការមិនត្រឹមត្រូវ។ ឯកសារដើមនៅភាសាប្រភពគួរត្រូវបានគិតថាជាធនាគារដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អាទិភាពនូវការបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/5-Clustering/1-Visualize/notebook.ipynb b/translations/km/5-Clustering/1-Visualize/notebook.ipynb new file mode 100644 index 000000000..5686f29b0 --- /dev/null +++ b/translations/km/5-Clustering/1-Visualize/notebook.ipynb @@ -0,0 +1,46 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.3" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python383jvsc74a57bd0e134e05457d34029b6460cd73bbf1ed73f339b5b6d98c95be70b69eba114fe95", + "display_name": "Python 3.8.3 64-bit (conda)" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# ផ្សេងបទតន្ត្រីនៃប្រទេសនីហ្សេរីយ៉ា ប្រមូលពី Spotify - ការវិភាគមួយ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការរក្សាសុវត្ថិភាព**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំបំផុតសម្រាប់ភាពត្រឹមត្រូវ ក៏ដោយសូមយល់ថា ការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លះៗប្រហែលជាមានកំហុស ឬមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានភាសាម្ចាស់ជាភាសាគួរតែគិតថាជា​មូលដ្ឋានដ៏ផ្លូវការដ៏មានអនុភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរតែប្រើអ្នកបកប្រែជាមនុស្សដែលមានជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ខុស ឬការបកប្រែខុសណាមួយដែលកើតមានចេញពីការប្រើប្រាស់ការបកប្រែក្នុងលក្ខខណ្ឌនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/5-Clustering/1-Visualize/solution/Julia/README.md b/translations/km/5-Clustering/1-Visualize/solution/Julia/README.md new file mode 100644 index 000000000..545189b6a --- /dev/null +++ b/translations/km/5-Clustering/1-Visualize/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងកាន់តំណែងបណ្តោះអាសន្ន។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំបំពេញភាពត្រឹមត្រូវ ក៏សូមយោងដើម្បីប្រាកដថា ការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬការខុសគ្នាបាន។ ឯកសារដើមជាភាសាទ្រព្យសម្បត្តិគួរត្រូវបានគេចាត់ទុកជាមូលដ្ឋានដែលផ្តល់សមត្ថភាព។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែដោយអ្នកជំនាញមនុស្សគឺបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬចោលអត្ថន័យដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb b/translations/km/5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb new file mode 100644 index 000000000..94d834c12 --- /dev/null +++ b/translations/km/5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb @@ -0,0 +1,492 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "## **តន្ត្រីនីជេរីយ៉ាន់ដែលបានច្រកចេញពី Spotify - ការវិភាគ**\r\n", + "\r\n", + "ការជំរុញជាគ្រឿងម៉ាស៊ីនមួយប្រភេទ [កំណត់អត្រា​គ្មានអ្នកគ្រប់គ្រង](https://wikipedia.org/wiki/Unsupervised_learning) ដែលសន្មត់ថាតំណើរការទិន្នន័យមិនមានស្លាកឬថា ការបញ្ចូលទិន្នន័យរបស់វាមិនត្រូវបានផ្គូផ្គងជាមួយលទ្ធផលដែលបានកំណត់ជាមុនទេ។ វាប្រើប្រាស់អាល់ហ្គរីធម៍ជាច្រើនដើម្បីតម្រៀបតាមទិន្នន័យគ្មានស្លាក ហើយផ្តល់ជាក្រុមតាមលំនាំដែលវាបង្កប់ក្នុងទិន្នន័យ។\r\n", + "\r\n", + "[**សំណួរត្រួតពិនិត្យមុនថ្នាក់**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/27/)\r\n", + "\r\n", + "### **ការបើកបង្ហាញ**\r\n", + "\r\n", + "[ការជំរុញ](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) មានប្រយោជន៍ខ្លាំងសម្រាប់ការស្វែងយល់ទិន្នន័យ។ យើងមកមើលថាតើវាអាចជួយរកឃើញនិន្នាការ និងលំនាំក្នុងវិធីដែលអ្នកស្តាប់តន្ត្រីនីជេរីយ៉ាន់ប្រើប្រាស់តន្ត្រីបានទេ។\r\n", + "\r\n", + "> ✅ ចំណាយពេលមួយនាទីគិតអំពីការប្រើប្រាស់នៃការជំរុញ។ នៅក្នុងជីវិតពិត ការជំរុញកើតឡើងនៅពេលដែលអ្នកមានវេចខ្ទប់សម្លៀកបំពាក់ហើយត្រូវតម្រៀបសម្លៀកបំពាក់របស់សមាជិកគ្រួសាររបស់អ្នក 🧦👕👖🩲។ ក្នុងវិទ្យាសាស្ត្រទិន្នន័យ ការជំរុញកើតឡើងនៅពេលព្យាយាមវិភាគចំណង់ចំណូលចិត្តរបស់អ្នកប្រើប្រាស់ ឬកំណត់លក្ខណៈនៃ datasets គ្មានស្លាកណាមួយ។ ការជំរុញ ជាជំនួយចំពោះការស្វែងយល់ពីរំខាន ដូចជាឃូបនៃស្រោមជើងជើង។\r\n", + "\r\n", + "នៅក្នុងបរិបទវិជ្ជាជីវៈ ការជំរុញអាចប្រើប្រាស់ដើម្បីកំណត់អ្វីៗដូចជា ការបែងចែកទីផ្សារ កំណត់អាយុដែលទិញផលិតផលជាក់លាក់ៗ ។ ការប្រើប្រាស់មួយផ្សេងទៀតគឺការរកឃើញអសកម្មភាព ប្រហែលជាសម្រាប់រកឃើញការបោកប្រាស់ពីរៃយកាតឥណទាន។ ឬអ្នកអាចប្រើការជំរុញដើម្បីកំណត់មហារីកក្នុងប្រមាណផ្នែកវេជ្ជសាស្ត្រ។\r\n", + "\r\n", + "✅ គិតមួយនាទីអំពីរបៀបដែលអ្នកប្រហែលជាបានជួបប្រទៈការជំរុញ 'ក្នុងធម្មជាតិ' នៅក្នុងបរិបទធនាគារ, អ៊ី-ចម្រុះ ឬជំនួញ។\r\n", + "\r\n", + "> 🎓 គួរឱ្យចាប់អារម្មណ៍ ជំរុញត្រូវបានបង្កើតឡើងក្នុងវិស័យមនុស្សបច្ចេកទេស និងចិត្តវិទ្យា នៅឆ្នាំ 1930។ អ្នកអាចលើកទឹកចិត្តថាវាត្រូវបានប្រើប្រាស់យ៉ាងដូចម្តេចទេ?\r\n", + "\r\n", + "ដោយជម្រើសផ្សេង អ្នកអាចប្រើវាសម្រាប់បំបែកលទ្ធផលស្វែងរក - ដោយតំណភ្ជាប់ទិញ, រូបភាព ឬការពិនិត្យលើ។ ការជំរុញមានប្រយោជន៍នៅពេលដែលអ្នកមានdatasetធំដែលអ្នកចង់បង្រួម និងអនុវត្តវិភាគលំអិតជាងនេះ ដូច្នេះវិធីសាស្ត្រនេះអាចប្រើសម្រាប់រៀនពីទិន្នន័យ មុនពេលមានការបង្កើតម៉ូដែលផ្សេងទៀត។\r\n", + "\r\n", + "✅ ពេលទិន្នន័យរបស់អ្នកតម្រៀបក្នុងក្រុមអ្នកផ្ដល់លេខសម្គាល់ក្រុមមួយ ហើយវិធីសាស្ត្រនេះអាចមានប្រយោជន៍នៅពេលរក្សាព័ត៌មានឯកជនរបស់datasets អ្នកអាចយោងទៅលើចំណុចទិន្នន័យដោយលេខសម្គាល់ក្រុម ជំនួសឲ្យលេខសម្គាល់បង្ហាញពីព័ត៌មានឯកជន។ អ្នកអាចគិតឃើញហេតុផលផ្សេងទៀតដែលអ្នកយោងទៅលេខសម្គាល់ក្រុមប៉ុន្មានជំនួសធាតុផ្សេងទៀតក្នុងក្រុមដើម្បីសម្គាល់វា?\r\n", + "\r\n", + "### ចាប់ផ្តើមជាមួយការជំរុញ\r\n", + "\r\n", + "> 🎓 របៀបយើងបង្កើតក្រុមនៅទំនាក់ទំនងទៅនឹងរបៀបយើងប្រមូលចំណុចទិន្នន័យជាក្រុម។ បង្ហាញវាក្នុងពាក្យសំខាន់៖\r\n", + ">\r\n", + "> 🎓 ['Transductive' ប្រឆាំងនឹង 'inductive'](https://wikipedia.org/wiki/Transduction_(machine_learning))\r\n", + ">\r\n", + "> ការជានិស្ស័យ transductive មានប្រភពចេញពីករណីបណ្តុះបណ្តាលដែលបានមើលឃើញដែលផ្គូផ្គងទៅនឹងករណីសាកល្បងជាក់លាក់។ ការជានិស្ស័យ inductive មានប្រភពចេញពីករណីបណ្តុះបណ្តាលដែលផ្គូផ្គងទៅនឹងច្បាប់ទូទៅ ដែលត្រូវបានអនុវត្តត្រឹមតែទៅក្ដៅករណីសាកល្បងប៉ុណ្ណោះ។\r\n", + ">\r\n", + "> ឧទាហរណ៍៖ ស្រមៃថាអ្នកមានdatasetមួយ ដែលមានប៉ុន្មានស្លាកតិចតួច។ មានអ្វីខ្លះនៅជារបៀប 'កំណត់ត្រា' (records) ខ្លះ 'ស៊ីឌី' (cds) ហើយខ្លះទៀតគ្មានស្លាក។ ការងាររបស់អ្នកគឺផ្ដល់ស្លាកសម្រាប់ការខ្វះ។ បើអ្នកជ្រើសរើសវិធី inductive អ្នកនឹងបណ្តុះបណ្តាលម៉ូដែលស្វែងរក 'កំណត់ត្រា' និង 'ស៊ីឌី' ហើយផ្ដល់ស្លាកទ្រង់ទ្រាយទៅលើទិន្នន័យគ្មានស្លាករបស់អ្នក។ វិធីនេះនឹងមានបញ្ហាក្នុងការបែងចែកវាលើអ្វីដែលពិតជា 'កាសែត'។ ផ្ទុយទៅវិញ អ្នកប្រើវិធី transductive អាចដោះស្រាយទិន្នន័យមិនស្គាល់នេះបានប្រសើរជាង ដោយវាកម្មវិធីដើម្បីបំបែកវត្ថុស្រដៀងគ្នាជាក្រុម ហើយបន្ទាប់មកផ្ដល់ស្លាកក្នុងក្រុម។ ក្នុងករណីនេះ ក្រុមអាចបង្ហាញ 'រឿងតន្ត្រីរង្វង់' និង 'រឿងតន្ត្រីការ៉េ'។\r\n", + ">\r\n", + "> 🎓 ['Geometry មិនស្មើ' ប្រឆាំងនឹង 'geometry ស្មើ'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)\r\n", + ">\r\n", + "> ទាមទារពីវេយ្យាករណ៍គណិតវិទ្យា geometry មិនស្មើ ប្រឆាំងនឹង geometry ស្មើ មានន័យពីការវាស់ចម្ងាយរវាងចំណុច ដោយប្រើវិធីគណិតវិទ្យា 'ស្មើ' ([Euclidean](https://wikipedia.org/wiki/Euclidean_geometry)) ឬ 'មិនស្មើ' (non-Euclidean)។\r\n", + ">\r\n", + "> 'ស្មើ' នៅក្នុងបរិបទនេះយោងឲ្យ geometry Euclidean (ផ្នែកមួយដែលបានបង្រៀនក្នុងនាមជា 'geometry លើផ្ទៃ'), ហើយមិនស្មើយោងទៅ geometry មិន Euclidean។ អ្វីទៅជាgeometry ទាក់ទងទៅ machine learning? ដូចជាវិស័យទាំងពីរដែលដាំដុះពីគណិតវិទ្យា ត្រូវមានវិធីសាមញ្ញមួយសម្រាប់វាស់ចម្ងាយរវាងចំណុចក្នុងក្រុម ហើយវាអាចធ្វើបានជា 'ស្មើ' ឬ 'មិនស្មើ'ព្រមទាំងតម្រូវទៅលើធម្មជាតិទិន្នន័យ។ [ចម្ងាយ Euclidean](https://wikipedia.org/wiki/Euclidean_distance) ត្រូវបានវាស់យើម្បីជាបញ្ចេញប្រវែងបន្ទាត់រវាងចំណុចពីរផ្ទាល់។ [ចម្ងាយមិន-Euclidean](https://wikipedia.org/wiki/Non-Euclidean_geometry) ត្រូវបានវាស់តាមបន្ទាត់ឈរ។ ប្រសិនបើទិន្នន័យរបស់អ្នក មានការបង្ហាញមិនស្ថិតលើផ្ទៃ អ្នកប្រហែលជាត្រូវប្រើអាល់ហ្គរីធម៍ពិសេសមួយដើម្បីដោះស្រាយវា។\r\n", + "\r\n", + "

\r\n", + " \r\n", + "

តារាងព័ត៌មានដោយ Dasani Madipalli
\r\n", + "\r\n", + "\r\n", + "\r\n", + "> 🎓 ['ចម្ងាយ'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)\r\n", + ">\r\n", + "> ក្រុមត្រូវបានកំណត់ដោយម៉ាទ្រីសចម្ងាយ រួមមានចម្ងាយរវាងចំណុច។ ចម្ងាយនេះអាចវាស់បានច្រើនវិធី។ ក្រុម Euclidean ត្រូវបានកំណត់ដោយមធ្យមភាគរយនៃតម្លៃចំណុច ហើយមាន 'centroid' ឬចំណុចកណ្តាល។ ចម្ងាយដូច្នេះត្រូវបានវាស់ដោយចម្ងាយទៅកាន់ centroid នោះ។ ចម្ងាយមិន-Euclidean ធ្វើចំណងទៅ 'clustroids', ចំណុចដែលជិតចំណុចផ្សេងៗជាងគេ។ Clustroids ត្រូវបានកំណត់បានជា​វិធីផ្សេងគ្នា។\r\n", + ">\r\n", + "> 🎓 ['មានភាពកំណត់'](https://wikipedia.org/wiki/Constrained_clustering)\r\n", + ">\r\n", + "> [Constrained Clustering](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) បញ្ចូលការរៀន 'ពាក់កណ្តាលគ្រប់គ្រង' ទៅវិធីមិនគ្រប់គ្រងនេះ។ សម្រួលភាពទំនាក់ទំនងរវាងចំណុចត្រូវបានគេដាក់សញ្ញា 'មិនអាចភ្ជាប់' ឬ 'ត្រូវភ្ជាប់' ដូច្នេះមានច្បាប់ខ្លះត្រូវអនុវត្តទៅលើ dataset។\r\n", + ">\r\n", + "> ឧទាហរណ៍៖ ប្រសិនបើអាល់ហ្គរីធម៍ត្រូវបានដោះស្រាយលើទិន្នន័យគ្មានស្លាកឬពាក់កណ្តាល មានន័យថាក្រុមដែលវាបង្កើតអាចមានគុណភាពទាប។ ក្នុងឧទាហរណ៍ខាងលើ ក្រុមអាចចែក 'រឿងតន្ត្រីរង្វង់' នឹង 'រឿងតន្ត្រីការ៉េ' និង 'រឿងត្រីកោណ' និង 'គូគី'។ ប្រសិនបើមានកំណត់ ឬច្បាប់មួយ (\"វត្ថុត្រូវផលិតពីប្លាស្ទិច\", \"វត្ថុត្រូវអាចផលិតតន្ត្រី\") នេះអាចជួយ 'ដាក់កំណត់' អាល់ហ្គរីធម៍ក្នុងការជ្រើសរើសល្អប្រសើរ។\r\n", + ">\r\n", + "> 🎓 'Density'\r\n", + ">\r\n", + "> ទិន្នន័យដែល 'មានសំឡេងរំខាន' ត្រូវបានគេចាត់ទុកថា 'សម្បូរបែប'។ ចម្ងាយរវាងចំណុចក្នុងក្រុមអាចបង្ហាញថា មានភាពសម្បូរឬអត់ ស្ថិតក្នុងស្ថានភាព 'រុំគ្នា' ដូច្នេះទិន្នន័យនេះត្រូវបានវិភាគដោយវិធីត្រឹមត្រូវនៃការជំរុញ។ [អត្ថបទនេះ](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) បង្ហាញពីភាពខុសគ្នារវាងការប្រើប្រាស់ K-Means clustering ប្រឆាំងនឹង HDBSCAN algorithms ដើម្បីស្វែងយល់ dataset រញ្ជួយមានភាពនៅចម្ងាយបែកឡែកគ្នា។\r\n", + "\r\n", + "បង្កើនការយល់ដឹងរបស់អ្នកអំពីវិធីសាស្ត្រជំរុញនៅក្នុង [ផ្នែករៀន](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott)\r\n", + "\r\n", + "### **អាល់ហ្គរីធម៍ជំរុញ**\r\n", + "\r\n", + "មានអាល់ហ្គរីធម៍ជំរុញលើស ១០០ ប្រភេទ ហើយការប្រើប្រាស់របស់ពួកវាអាស្រ័យលើធម្មជាតិទិន្នន័យនៅដើម។ យើងមកពិភាក្សាអំពីចំនុចសំខាន់ៗខ្លះ៖\r\n", + "\r\n", + "- **ការជំរុញលំដាប់ដាច់ខាត (Hierarchical clustering)**។ ប្រសិនបើវត្ថុណាមួយត្រូវបានចាត់ថ្នាក់ដោយភាពជិតស្និទ្ធទៅវត្ថុជិតខាងមួយ មិនមែនទៅវត្ថុឆ្ងាយជាងទេ ក្រុមនឹងត្រូវបានបង្កើតឡើងដោយអាស្រ័យលើចម្ងាយរវាងសមាជិក។ ការជំរុញលំដាប់ដាច់ខាតត្រូវបានលក្ខណៈដោយការបន្សំក្រុមពីរក្រុមជាបន្តបន្ទាប់។\r\n", + "\r\n", + "\r\n", + "

\r\n", + " \r\n", + "

តារាងព័ត៌មានដោយ Dasani Madipalli
\r\n", + "\r\n", + "\r\n", + "\r\n", + "- **ការជំរុញតាមភាគរយ (Centroid clustering)**។ អាល់ហ្គរីធម៍ពេញនិយមនេះតម្រូវឲ្យជ្រើសរើស 'k' ឬចំនួនក្រុមដែលត្រូវបង្កើត បន្ទាប់មកអាល់ហ្គរីធម៍កំណត់ចំណុចកណ្តាលរបស់ក្រុម ហើយប្រមូលទិន្នន័យជុំវិញចំណុចនោះ។ [K-means clustering](https://wikipedia.org/wiki/K-means_clustering) គឺជាប្រភេទដែលពេញនិយមនៃការជំរុញតាមភាគរយ ដែលបំបែក dataset ទៅជា K ក្រុមដែលបានកំណត់ជាមុន។ ចំណុចកណ្តាលត្រូវបានកំណត់ដោយមធ្យមភាគនៅជិតបំផុត ដូច្នេះមានឈ្មោះ។ ចម្ងាយការេពីក្រុមត្រូវបានកាត់បន្ថយ។\r\n", + "\r\n", + "

\r\n", + " \r\n", + "

តារាងព័ត៌មានដោយ Dasani Madipalli
\r\n", + "\r\n", + "\r\n", + "\r\n", + "- **ការជំរុញដោយផ្អែកលើចែកចាយ (Distribution-based clustering)**។ មានមូលដ្ឋាននៅលើម៉ូដែលស្ថិតិ ការជំរុញដោយផ្អែកលើចែកចាយផ្ដោតលើការកំណត់ប្រតិបត្តិអាចធ្វើបានថាចំណុចទិន្នន័យជាប់នឹងក្រុមណាមួយ ហើយផ្ដល់ចំណាត់ថ្នាក់តាមបែបនេះ។ វិធីផ្សំ Gaussian ជាផ្នែកមួយនៃប្រភេទនេះ។\r\n", + "\r\n", + "- **ការជំរុញដោយផ្អែកលើដង់សុីតេ (Density-based clustering)**។ ចំណុចទិន្នន័យត្រូវបានផ្ដល់សេចក្តីថ្លែងអំពីក្រុមដោយផ្អែកលើដង់សុីតេ រឺការជុំវិញគ្នា។ ចំណុចដែលឆ្ងាយពីក្រុមគេចាត់ទុកថាជាអ្វីៗមិនរួមបញ្ចូល ឬសម្លេងរំខាន។ DBSCAN, Mean-shift និង OPTICS ជាផ្នែកនៃប្រភេទនេះ។\r\n", + "\r\n", + "- **ការជំរុញដោយផ្អែកលើក្រឡា (Grid-based clustering)**។ សម្រាប់ dataset ច្រើនវិមាត្រ ក្រឡាត្រូវបានបង្កើត ហើយទិន្នន័យត្រូវបានបែងចែកទៅចូលក្នុងក្រឡាពណ៍។ ដោយហេតុនេះ បង្កើតក្រុមឡើង។\r\n", + "\r\n", + "វិធីល្អបំផុតសម្រាប់រៀនអំពីការជំរុញគឺសាកល្បងវាផ្ទាល់ ដូច្នេះនេះជាការធ្វើក្នុងលំហាត់នេះ។\r\n", + "\r\n", + "យើងត្រូវការ package ខ្លះសម្រាប់បញ្ចប់មេរៀននេះ។ អ្នកអាចដំឡើងបានដោយ: `install.packages(c('tidyverse', 'tidymodels', 'DataExplorer', 'summarytools', 'plotly', 'paletteer', 'corrplot', 'patchwork'))`\r\n", + "\r\n", + "ជាជម្រើសផ្សេងទៀត ស្គ្រីបខាងក្រោមពិនិត្យមើលថាអ្នកមាន package ដែលត្រូវការសម្រាប់បញ្ចប់មេរៀននេះ ហើយដំឡើងវាសម្រាប់អ្នក ប្រសិនបើមាន package ខ្វះចាំបាច់។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "suppressWarnings(if(!require(\"pacman\")) install.packages(\"pacman\"))\r\n", + "\r\n", + "pacman::p_load('tidyverse', 'tidymodels', 'DataExplorer', 'summarytools', 'plotly', 'paletteer', 'corrplot', 'patchwork')\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## ដំណើរការ - ប្រមូលក្រុមទិន្នន័យរបស់អ្នក\n", + "\n", + "ការប្រមូលក្រុមជាយុទ្ធសាស្ត្រមួយត្រូវបានជួយយ៉ាងខ្លាំងដោយការបង្ហាញតម្លៃដ៏ត្រឹមត្រូវ ដូច្នេះយើងចាប់ផ្តើមដោយបង្ហាញតម្លៃទិន្នន័យតន្រ្តីរបស់យើង។ ដំណើរការនេះនឹងជួយយើងសម្រេចចិត្តថាវិធីណាដែលយើងគួរតែប្រើច្រើនបំផុតសម្រាប់ធម្មជាតិនៃទិន្នន័យនេះ។\n", + "\n", + "យើងចាប់ផ្តើមយកទិន្នន័យជា​វិធីដំបូង។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Load the core tidyverse and make it available in your current R session\r\n", + "library(tidyverse)\r\n", + "\r\n", + "# Import the data into a tibble\r\n", + "df <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/5-Clustering/data/nigerian-songs.csv\")\r\n", + "\r\n", + "# View the first 5 rows of the data set\r\n", + "df %>% \r\n", + " slice_head(n = 5)\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "នៅខ្លះពេលណា យើងប្រហែលចង់បានព័ត៌មានបន្តិចបន្ថែមអំពីទិន្នន័យរបស់យើង។ យើងអាចពិនិត្យមើល `data` និង `its structure` ដោយប្រើមុខងារ [*glimpse()*](https://pillar.r-lib.org/reference/glimpse.html):\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Glimpse into the data set\r\n", + "df %>% \r\n", + " glimpse()\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "ការងារល្អ!💪\n", + "\n", + "យើងអាចមើលឃើញថា `glimpse()` នឹងផ្តល់ឲ្យអ្នកនូវចំនួនជួរដេកសរុប (ការសង្កេត) និងជួរឈរ (អថេរ) បន្ទាប់មកជួរដេកដំបូងៗនៃអថេរនីមួយៗបន្ទាប់ពីឈ្មោះអថេរ។ លើសពីនេះទៀត *ប្រភេទទិន្នន័យ* នៃអថេរនោះត្រូវបានផ្តល់ភ្លាមៗបន្ទាប់ពីឈ្មោះអថេរនីមួយៗនៅក្នុង `< >`។\n", + "\n", + "`DataExplorer::introduce()` អាចសង្ខេបព័ត៌មាននេះបានយ៉ាងល្អឥតខ្ចោះ៖\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Describe basic information for our data\r\n", + "df %>% \r\n", + " introduce()\r\n", + "\r\n", + "# A visual display of the same\r\n", + "df %>% \r\n", + " plot_intro()\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "អស្ចារ្យ! យើងទើបតែបានរៀនថាទិន្នន័យរបស់យើងមិនមានតម្លៃខ្វះទេ។\n", + "\n", + "ខណៈពេលដែលយើងកំពុងធ្វើការនេះ យើងអាចស្វែងយល់អំពីស្ថិតិចំណុចកណ្តាលទូទៅ (ឧ. [មធ្យម](https://en.wikipedia.org/wiki/Arithmetic_mean) និង [មេឌាន](https://en.wikipedia.org/wiki/Median)) ហើយវាស់វែងការពន្លឿន (ឧ. [ស្តង់ដា​ដេវិយ៉ាស្យិន](https://en.wikipedia.org/wiki/Standard_deviation)) ដោយប្រើ `summarytools::descr()`\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Describe common statistics\r\n", + "df %>% \r\n", + " descr(stats = \"common\")\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "មកសូមមើលតម្លៃទូទៅនៃទិន្នន័យ។ ចង់បញ្ជាក់ថាបាតុភូតពេញនិយមអាចមានតម្លៃជា `0` ដែលបង្ហាញពីចម្រៀងដែលមិនមានចំណាត់ថ្នាក់ទេ។ យើងនឹងដកចេញវាឆាប់ៗនេះ។\n", + "\n", + "> 🤔 បើយើងកំពុងធ្វើការជាមួយ clustering វិធីសាស្រ្តមិនត្រូវការយោងលើទិន្នន័យមានស្លាកហើយ គួរឲ្យផ្ញើយកទិន្នន័យនេះជាមួយស្លាកហើយមានហេតុអ្វី? ក្នុងដំណាក់កាលស្វែងរកទិន្នន័យ វាពាក់ព័ន្ធផងដែរ ប៉ុន្តែមិនចាំបាច់សម្រាប់អាល់គុណម clustering ឲ្យដំណើរការទេ។\n", + "\n", + "### 1. ស្វែងរកប្រភេទតន្ត្រីពេញនិយម\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Popular genres\r\n", + "top_genres <- df %>% \r\n", + " count(artist_top_genre, sort = TRUE) %>% \r\n", + "# Encode to categorical and reorder the according to count\r\n", + " mutate(artist_top_genre = factor(artist_top_genre) %>% fct_inorder())\r\n", + "\r\n", + "# Print the top genres\r\n", + "top_genres\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "វា​ទៅ​របស់​ល្អ! ពួកគេ​និយាយ​រូបភាព​មួយ​មាន​តម្លៃ​ស្មើ​នឹងជួរ​ច្រើន​នៃ​តារាង​ទិន្នន័យ (ពិតណាស់ មិនមាននរណា​ធ្វើ​អោយ​និយាយបែប​នេះឡើយ 😅)។ ប៉ុន្តែ​អ្នកយល់​ន័យ​របស់​វា ដូច្នោះ​ទេ?\n", + "\n", + "វិធីមួយ​ដើម្បី​មើល​ទិន្នន័យ​ដែលើ​ប្រភេទ​តួអក្សរ (អក្សរ ឬអថេរ factor) គឺ​ការ​ប្រើ​ប្រាស់ប្លុតបារ។ អ្នកមក​ធ្វើ​ប្លុតបារ​នៃ​ប្រភេទ ១០​លើស​ពីគេដូចតទៅ៖\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Change the default gray theme\r\n", + "theme_set(theme_light())\r\n", + "\r\n", + "# Visualize popular genres\r\n", + "top_genres %>%\r\n", + " slice(1:10) %>% \r\n", + " ggplot(mapping = aes(x = artist_top_genre, y = n,\r\n", + " fill = artist_top_genre)) +\r\n", + " geom_col(alpha = 0.8) +\r\n", + " paletteer::scale_fill_paletteer_d(\"rcartocolor::Vivid\") +\r\n", + " ggtitle(\"Top genres\") +\r\n", + " theme(plot.title = element_text(hjust = 0.5),\r\n", + " # Rotates the X markers (so we can read them)\r\n", + " axis.text.x = element_text(angle = 90))\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "ឥឡូវនេះវាកាន់តែងាយស្រួលក្នុងការទទួលស្គាល់ថាយើងខ្វះចំនួនភេទ `missing` 🧐!\n", + "\n", + "> ការបង្ហាញទិន្នន័យល្អមួយនឹងបង្ហាញឱ្យអ្នកឃើញរឿងដែលអ្នកមិនបានចាំបាច់រំពឹងទុកទេ ឬហេតុគួរឱ្យសួរថ្មីៗអំពីទិន្នន័យ - Hadley Wickham និង Garrett Grolemund, [R For Data Science](https://r4ds.had.co.nz/introduction.html)\n", + "\n", + "សម្គាល់ថា ពេលដែលភេទកំពូលត្រូវបានពណ៌នាថា `Missing` មានន័យថា Spotify មិនបានចាត់ថ្នាក់វាទេ ដូចនេះយើងត្រូវបំបាត់វា។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Visualize popular genres\r\n", + "top_genres %>%\r\n", + " filter(artist_top_genre != \"Missing\") %>% \r\n", + " slice(1:10) %>% \r\n", + " ggplot(mapping = aes(x = artist_top_genre, y = n,\r\n", + " fill = artist_top_genre)) +\r\n", + " geom_col(alpha = 0.8) +\r\n", + " paletteer::scale_fill_paletteer_d(\"rcartocolor::Vivid\") +\r\n", + " ggtitle(\"Top genres\") +\r\n", + " theme(plot.title = element_text(hjust = 0.5),\r\n", + " # Rotates the X markers (so we can read them)\r\n", + " axis.text.x = element_text(angle = 90))\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "ពីការស្រាវជ្រាវទិន្នន័យតូចៗ យើងបានរៀនថាប្រភេទត្រីមាសបីខ្ពស់ជាងគេគ្របដណ្តប់លើឃ្លោងទិន្នន័យនេះ។ យើងត្រូវផ្ដោតលើ `afro dancehall` , `afropop` និង `nigerian pop` បន្ថែមទៀតធ្វើការត្រងឃ្លោងទិន្នន័យដើម្បីខ្វក់អ្វីដែលមានតម្លៃពេញនិយម 0 (មានន័យថា វាមិនត្រូវបានចាត់ថ្នាក់ជាមួយពេញនិយមក្នុងឃ្លោងទិន្នន័យ ហើយអាចត្រូវបានពិចារណា​ជា​សំលេងរំខានសម្រាប់គោលបំណងរបស់យើង):\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "nigerian_songs <- df %>% \r\n", + " # Concentrate on top 3 genres\r\n", + " filter(artist_top_genre %in% c(\"afro dancehall\", \"afropop\",\"nigerian pop\")) %>% \r\n", + " # Remove unclassified observations\r\n", + " filter(popularity != 0)\r\n", + "\r\n", + "\r\n", + "\r\n", + "# Visualize popular genres\r\n", + "nigerian_songs %>%\r\n", + " count(artist_top_genre) %>%\r\n", + " ggplot(mapping = aes(x = artist_top_genre, y = n,\r\n", + " fill = artist_top_genre)) +\r\n", + " geom_col(alpha = 0.8) +\r\n", + " paletteer::scale_fill_paletteer_d(\"ggsci::category10_d3\") +\r\n", + " ggtitle(\"Top genres\") +\r\n", + " theme(plot.title = element_text(hjust = 0.5))\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "មកមើលថាតើមានទំនាក់ទំនងបន្ទាត់ច្បាស់ណាមួយរវាងអថេរជាចំនួនក្នុងសំណុំទិន្នន័យរបស់យើងទេ។ ទំនាក់ទំនងនេះត្រូវបានបញ្ចាក់ទ្រឹស្តីវិទ្យាដោយ [ស្ថិតិសមាហរណភាព](https://en.wikipedia.org/wiki/Correlation)។\n", + "\n", + "ស្ថិតិសមាហរណភាពគឺជា​តម្លៃ​រវាង -1 និង 1 ដែលបង្ហាញពីកម្លាំងនៃទំនាក់ទំនង។ តម្លៃដែលលើស 0 បង្ហាញពីសមាហរណភាពបញ្ញក (តម្លៃខ្ពស់នៃអថេរមួយមានទំនោរទៅនឹងតម្លៃខ្ពស់នៃអថេរមួយផ្សេងទៀត) ខណៈដែលតម្លៃក្រោម 0 បង្ហាញពីសមាហរណភាពអវិជ្ជមាន (តម្លៃខ្ពស់នៃអថេរមួយមានទំនោរទៅនឹងតម្លៃទាបនៃអថេរមួយផ្សេងទៀត)។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Narrow down to numeric variables and fid correlation\r\n", + "corr_mat <- nigerian_songs %>% \r\n", + " select(where(is.numeric)) %>% \r\n", + " cor()\r\n", + "\r\n", + "# Visualize correlation matrix\r\n", + "corrplot(corr_mat, order = 'AOE', col = c('white', 'black'), bg = 'gold2') \r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "ទិន្នន័យមិនមានទំនាក់ទំនងយ៉ាងខ្លាំងក្រៅតែចំពោះ `energy` និង `loudness` ដែលមានហេតុផលសមរម្យ ពេលតន្ត្រីសំឡេងខ្លាំងទូទៅមានថាមពលខ្លាំងផងដែរ។ `Popularity` មានទំនាក់ទំនងទៅនឹង `release date` ដែលក៏មានហេតុផលសមរម្យ ព្រោះចម្រៀងថ្មីៗភាគច្រើនមានប្រជាប្រិយភាពខ្លាំងជាង។ ប្រវែង និងថាមពលក៏មានទំនាក់ទំនងផងដែរ។\n", + "\n", + "វានឹងគួរឲ្យចាប់អារម្មណ៍មើលថា អាល់ហ្គរីធម៍ក្រុមចម្រៀងអាចធ្វើអ្វីបានជាមួយទិន្នន័យនេះ!\n", + "\n", + "> 🎓 សូមចំណាំថា ទំនាក់ទំនងមិនមានន័យថា មានមូលហេតុ! យើងមានភស្តុតាងពីទំនាក់ទំនងប៉ុន្តែមិនមានភស្តុតាងពីមូលហេតុឡើយ។ គេហទំព័រមួយ [amusing web site](https://tylervigen.com/spurious-correlations) មានរូបភាពមួយចំនួនដែលលើកឡើងចំណុចនេះ។\n", + "\n", + "### 2. ស្វែងយល់ការចែកចាយទិន្នន័យ\n", + "\n", + "អោយយើងសួរបញ្ហាបន្តិចទៀត។ តើរចនាប័ទ្មតន្ត្រីមានភាពខុសគ្នាដោយសារ ចំពោះការយល់ឃើញនៃការរាំរបស់ពួកវាដោយផ្អែកលើប្រជាប្រិយភាពរបស់ពួកវាទេ? អោយយើងពិនិត្យការចែកចាយទិន្នន័យរចនាប័ទ្មច្រីនបួនលើប្រជាប្រិយភាព និងការរាំ ដោយប្រើ [density plots](https://www.khanacademy.org/math/ap-statistics/density-curves-normal-distribution-ap/density-curves/v/density-curves) ជាមួយអ័ក្ស x និង y មួយដែលបានផ្តល់។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# Perform 2D kernel density estimation\r\n", + "density_estimate_2d <- nigerian_songs %>% \r\n", + " ggplot(mapping = aes(x = popularity, y = danceability, color = artist_top_genre)) +\r\n", + " geom_density_2d(bins = 5, size = 1) +\r\n", + " paletteer::scale_color_paletteer_d(\"RSkittleBrewer::wildberry\") +\r\n", + " xlim(-20, 80) +\r\n", + " ylim(0, 1.2)\r\n", + "\r\n", + "# Density plot based on the popularity\r\n", + "density_estimate_pop <- nigerian_songs %>% \r\n", + " ggplot(mapping = aes(x = popularity, fill = artist_top_genre, color = artist_top_genre)) +\r\n", + " geom_density(size = 1, alpha = 0.5) +\r\n", + " paletteer::scale_fill_paletteer_d(\"RSkittleBrewer::wildberry\") +\r\n", + " paletteer::scale_color_paletteer_d(\"RSkittleBrewer::wildberry\") +\r\n", + " theme(legend.position = \"none\")\r\n", + "\r\n", + "# Density plot based on the danceability\r\n", + "density_estimate_dance <- nigerian_songs %>% \r\n", + " ggplot(mapping = aes(x = danceability, fill = artist_top_genre, color = artist_top_genre)) +\r\n", + " geom_density(size = 1, alpha = 0.5) +\r\n", + " paletteer::scale_fill_paletteer_d(\"RSkittleBrewer::wildberry\") +\r\n", + " paletteer::scale_color_paletteer_d(\"RSkittleBrewer::wildberry\")\r\n", + "\r\n", + "\r\n", + "# Patch everything together\r\n", + "library(patchwork)\r\n", + "density_estimate_2d / (density_estimate_pop + density_estimate_dance)\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "យើងមើលឃើញថាមានរង្វង់រំលឹកគ្នាមួយចំនួនដែលស្របគ្នា មិនគិតពីប្រភេទតន្ត្រីឡើយ។ តើអាចជាការស្របគ្នារវាងរសជាតិអ្នកនិយមតន្ត្រី Nigerien នៅកម្រិតចាក់រាំដូចគ្នាមួយសម្រាប់ប្រភេទតន្ត្រីនេះ?\n", + "\n", + "ជាទូទៅ ប្រភេទតន្ត្រីទាំងបីត្រូវគ្នាតាមកម្រិតនៃការពេញនិយម និងចាក់រាំ។ ការកំណត់រ៉ូមក្រុមក្នុងទិន្នន័យដែលមិនបានស្របគ្នារបស់ក្រុមនេះនឹងជាឧបសគ្គមួយ។ យើងមកមើលថាតើតារាងបញ្ចាំងចំណុចអាចគាំទ្រ និយមន័យនេះឬអត់។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [ + "# A scatter plot of popularity and danceability\r\n", + "scatter_plot <- nigerian_songs %>% \r\n", + " ggplot(mapping = aes(x = popularity, y = danceability, color = artist_top_genre, shape = artist_top_genre)) +\r\n", + " geom_point(size = 2, alpha = 0.8) +\r\n", + " paletteer::scale_color_paletteer_d(\"futurevisions::mars\")\r\n", + "\r\n", + "# Add a touch of interactivity\r\n", + "ggplotly(scatter_plot)\r\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "ប្លង់ចែកបញ្ចាំងពីអ័ក្សដាច់ខាតដូចគ្នាបង្ហាញលំនាំស្រដៀងគ្នានៃការប្រមូលផ្តុំនៃទិន្នន័យ។\n", + "\n", + "ទូទៅ សម្រាប់ការបែងចែកក្រុម អ្នកអាចប្រើប្លង់ចែកបញ្ចាំងដើម្បីបង្ហាញក្រុមទិន្នន័យ ដូចនេះ ការគ្រប់គ្រងវិចិត្រសិល្ប៍ប្រភេទនេះគឺមានប្រយោជន៍ខ្លាំង។ នៅមេរៀនក្រោយយើងនឹងយកទិន្នន័យដែលបានចម្រោះនេះ និងប្រើការបែងចែកក្រុម k-means ដើម្បីរកក្រុមក្នុងទិន្នន័យដែលមានការឆ្លងកាត់គ្នានៅលក្ខណៈគួរឱ្យចាប់អារម្មណ៍។\n", + "\n", + "## **🚀 ប្រយោគ**\n", + "\n", + "ជាការប្រកាសមុខសម្រាប់មេរៀនក្រោយ សូមបង្កើតតារាងអំពីអាល់កឡារីធម៍បែងចែកក្រុមនានាដែលអ្នកអាចស្វែងរកនិងប្រើប្រាស់ក្នុងបរិបទផលិតកម្ម។ តើបញ្ហាប្រភេទអ្វីដែលការបែងចែកក្រុមកំពុងព្យាយាមដោះស្រាយ?\n", + "\n", + "## [**សំណួរថែត្រាសិក្សាបន្ទាប់មកមេរៀន**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/28/)\n", + "\n", + "## **ការត្រួតពិនិត្យ & សិក្សាឯករាជ្យ**\n", + "\n", + "មុនពេលអ្នកអនុវត្តអាល់កឡារីធម៍បែងចែកក្រុម ដូចដែលយើងបានស្គាល់ វាជាគំនិតល្អក្នុងការយល់ដឹងអំពីប្រភេទនៃទិន្នន័យរបស់អ្នក។ អានបន្ថែមអំពីប្រធាននេះ [នៅទីនេះ](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)\n", + "\n", + "ជ្រាបច្បាស់កាន់តែដល់បច្ចេកទេសបែងចែកក្រុម៖\n", + "\n", + "- [បណ្តុះបណ្តាល និងវាយតម្លៃ ម៉ូដែលបែងចែកក្រុមដោយប្រើ Tidymodels និងមិត្តភក្តិ](https://rpubs.com/eR_ic/clustering)\n", + "\n", + "- Bradley Boehmke & Brandon Greenwell, [*Hands-On Machine Learning with R*](https://bradleyboehmke.github.io/HOML/)*.*\n", + "\n", + "## **ការបញ្ជូនការងារ**\n", + "\n", + "[ស្រាវជ្រាវវិចិត្រសិល្ប៍ផ្សេងៗសម្រាប់ការបែងចែកក្រុម](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/assignment.md)\n", + "\n", + "## សូមអរគុណចំពោះ៖\n", + "\n", + "[Jen Looper](https://www.twitter.com/jenlooper) ដែលបានបង្កើតកំណែ Python ដើមនៃម៉ូឌុលនេះ ♥️\n", + "\n", + "[`Dasani Madipalli`](https://twitter.com/dasani_decoded) ដែលបានបង្កើតរូបភាពអស្ចារ្យដែលធ្វើឱ្យមាតិកាសម្រាប់ចងក្រងម៉ាស៊ីនរៀនកាន់តែងាយស្រួលយល់ដឹង និងបកស្រាយបានច្បាស់។\n", + "\n", + "សូមសំណាងល្អក្នុងការរៀន។\n", + "\n", + "[Eric](https://twitter.com/ericntay), តំណាងសិស្ស Microsoft Learn ជាពេជ្រមាស។\n" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការព្រមាន**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងដើម្បីឲ្យបានភាពត្រឹមត្រូវ សូមយល់ជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសាមូលដ្ឋានគួរត្រូវបានយកទៅជាលទ្ធផលផ្លូវការនិងត្រឹមត្រូវបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងណែនាំឲ្យប្រើការបកប្រែដោយមនុស្សជាជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកអត្ថន័យខុសដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "anaconda-cloud": "", + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "3.4.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/translations/km/5-Clustering/1-Visualize/solution/notebook.ipynb b/translations/km/5-Clustering/1-Visualize/solution/notebook.ipynb new file mode 100644 index 000000000..998066880 --- /dev/null +++ b/translations/km/5-Clustering/1-Visualize/solution/notebook.ipynb @@ -0,0 +1,825 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# និរិកាសបទចម្រៀងនៃប្រទេសនីហ្សេរីយ៉ា ពី Spotify - ការវិភាគមើល\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Defaulting to user installation because normal site-packages is not writeable\n", + "Requirement already satisfied: seaborn in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (0.11.2)\n", + "Requirement already satisfied: matplotlib>=2.2 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from seaborn) (3.5.0)\n", + "Requirement already satisfied: numpy>=1.15 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from seaborn) (1.21.4)\n", + "Requirement already satisfied: pandas>=0.23 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from seaborn) (1.3.4)\n", + "Requirement already satisfied: scipy>=1.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from seaborn) (1.7.2)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (4.28.1)\n", + "Requirement already satisfied: pyparsing>=2.2.1 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (2.4.7)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (1.3.2)\n", + "Requirement already satisfied: pillow>=6.2.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (8.4.0)\n", + "Requirement already satisfied: cycler>=0.10 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (0.11.0)\n", + "Requirement already satisfied: packaging>=20.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (21.2)\n", + "Requirement already satisfied: setuptools-scm>=4 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (6.3.2)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from matplotlib>=2.2->seaborn) (2.8.2)\n", + "Requirement already satisfied: pytz>=2017.3 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from pandas>=0.23->seaborn) (2021.3)\n", + "Requirement already satisfied: six>=1.5 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from python-dateutil>=2.7->matplotlib>=2.2->seaborn) (1.16.0)\n", + "Requirement already satisfied: tomli>=1.0.0 in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from setuptools-scm>=4->matplotlib>=2.2->seaborn) (1.2.2)\n", + "Requirement already satisfied: setuptools in /Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages (from setuptools-scm>=4->matplotlib>=2.2->seaborn) (59.1.1)\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "!pip install seaborn" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import pandas as pd" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
namealbumartistartist_top_genrerelease_datelengthpopularitydanceabilityacousticnessenergyinstrumentalnesslivenessloudnessspeechinesstempotime_signature
0SparkyMandy & The JungleCruel Santinoalternative r&b2019144000480.6660.85100.4200.5340000.1100-6.6990.0829133.0155
1shuga rushEVERYTHING YOU HEARD IS TRUEOdunsi (The Engine)afropop202089488300.7100.08220.6830.0001690.1010-5.6400.3600129.9933
2LITT!LITT!AYLØindie r&b2018207758400.8360.27200.5640.0005370.1100-7.1270.0424130.0054
3Confident / Feeling CoolEnjoy Your LifeLady Donlinigerian pop2019175135140.8940.79800.6110.0001870.0964-4.9610.1130111.0874
4wanted yourare.Odunsi (The Engine)afropop2018152049250.7020.11600.8330.9100000.3480-6.0440.0447105.1154
\n", + "
" + ], + "text/plain": [ + " name album \\\n", + "0 Sparky Mandy & The Jungle \n", + "1 shuga rush EVERYTHING YOU HEARD IS TRUE \n", + "2 LITT! LITT! \n", + "3 Confident / Feeling Cool Enjoy Your Life \n", + "4 wanted you rare. \n", + "\n", + " artist artist_top_genre release_date length popularity \\\n", + "0 Cruel Santino alternative r&b 2019 144000 48 \n", + "1 Odunsi (The Engine) afropop 2020 89488 30 \n", + "2 AYLØ indie r&b 2018 207758 40 \n", + "3 Lady Donli nigerian pop 2019 175135 14 \n", + "4 Odunsi (The Engine) afropop 2018 152049 25 \n", + "\n", + " danceability acousticness energy instrumentalness liveness loudness \\\n", + "0 0.666 0.8510 0.420 0.534000 0.1100 -6.699 \n", + "1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n", + "2 0.836 0.2720 0.564 0.000537 0.1100 -7.127 \n", + "3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n", + "4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n", + "\n", + " speechiness tempo time_signature \n", + "0 0.0829 133.015 5 \n", + "1 0.3600 129.993 3 \n", + "2 0.0424 130.005 4 \n", + "3 0.1130 111.087 4 \n", + "4 0.0447 105.115 4 " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.read_csv(\"../../data/nigerian-songs.csv\")\n", + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "យកព័ត៍មានអំពី dataframe\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 530 entries, 0 to 529\n", + "Data columns (total 16 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 name 530 non-null object \n", + " 1 album 530 non-null object \n", + " 2 artist 530 non-null object \n", + " 3 artist_top_genre 530 non-null object \n", + " 4 release_date 530 non-null int64 \n", + " 5 length 530 non-null int64 \n", + " 6 popularity 530 non-null int64 \n", + " 7 danceability 530 non-null float64\n", + " 8 acousticness 530 non-null float64\n", + " 9 energy 530 non-null float64\n", + " 10 instrumentalness 530 non-null float64\n", + " 11 liveness 530 non-null float64\n", + " 12 loudness 530 non-null float64\n", + " 13 speechiness 530 non-null float64\n", + " 14 tempo 530 non-null float64\n", + " 15 time_signature 530 non-null int64 \n", + "dtypes: float64(8), int64(4), object(4)\n", + "memory usage: 66.4+ KB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ពិនិត្យ​ម្ដង​ទៀត​សម្រាប់​តម្លៃ​ទទេ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "name 0\n", + "album 0\n", + "artist 0\n", + "artist_top_genre 0\n", + "release_date 0\n", + "length 0\n", + "popularity 0\n", + "danceability 0\n", + "acousticness 0\n", + "energy 0\n", + "instrumentalness 0\n", + "liveness 0\n", + "loudness 0\n", + "speechiness 0\n", + "tempo 0\n", + "time_signature 0\n", + "dtype: int64" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isnull().sum()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "មើលទៅតម្លៃទូទៅនៃទិន្នន័យ។ ត្រូវចំណាំថា ភាពពេញនិយមអាចមានតម្លៃជា '0' ហើយមានជួរដេកជាច្រើនដែលមានតម្លៃនោះ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
release_datelengthpopularitydanceabilityacousticnessenergyinstrumentalnesslivenessloudnessspeechinesstempotime_signature
count530.000000530.000000530.000000530.000000530.000000530.000000530.000000530.000000530.000000530.000000530.000000530.000000
mean2015.390566222298.16981117.5075470.7416190.2654120.7606230.0163050.147308-4.9530110.130748116.4878643.986792
std3.13168839696.82225918.9922120.1175220.2083420.1485330.0903210.1235882.4641860.09293923.5186010.333701
min1998.00000089488.0000000.0000000.2550000.0006650.1110000.0000000.028300-19.3620000.02780061.6950003.000000
25%2014.000000199305.0000000.0000000.6810000.0895250.6690000.0000000.075650-6.2987500.059100102.9612504.000000
50%2016.000000218509.00000013.0000000.7610000.2205000.7845000.0000040.103500-4.5585000.097950112.7145004.000000
75%2017.000000242098.50000031.0000000.8295000.4030000.8757500.0002340.164000-3.3310000.177000125.0392504.000000
max2020.000000511738.00000073.0000000.9660000.9540000.9950000.9100000.8110000.5820000.514000206.0070005.000000
\n", + "
" + ], + "text/plain": [ + " release_date length popularity danceability acousticness \\\n", + "count 530.000000 530.000000 530.000000 530.000000 530.000000 \n", + "mean 2015.390566 222298.169811 17.507547 0.741619 0.265412 \n", + "std 3.131688 39696.822259 18.992212 0.117522 0.208342 \n", + "min 1998.000000 89488.000000 0.000000 0.255000 0.000665 \n", + "25% 2014.000000 199305.000000 0.000000 0.681000 0.089525 \n", + "50% 2016.000000 218509.000000 13.000000 0.761000 0.220500 \n", + "75% 2017.000000 242098.500000 31.000000 0.829500 0.403000 \n", + "max 2020.000000 511738.000000 73.000000 0.966000 0.954000 \n", + "\n", + " energy instrumentalness liveness loudness speechiness \\\n", + "count 530.000000 530.000000 530.000000 530.000000 530.000000 \n", + "mean 0.760623 0.016305 0.147308 -4.953011 0.130748 \n", + "std 0.148533 0.090321 0.123588 2.464186 0.092939 \n", + "min 0.111000 0.000000 0.028300 -19.362000 0.027800 \n", + "25% 0.669000 0.000000 0.075650 -6.298750 0.059100 \n", + "50% 0.784500 0.000004 0.103500 -4.558500 0.097950 \n", + "75% 0.875750 0.000234 0.164000 -3.331000 0.177000 \n", + "max 0.995000 0.910000 0.811000 0.582000 0.514000 \n", + "\n", + " tempo time_signature \n", + "count 530.000000 530.000000 \n", + "mean 116.487864 3.986792 \n", + "std 23.518601 0.333701 \n", + "min 61.695000 3.000000 \n", + "25% 102.961250 4.000000 \n", + "50% 112.714500 4.000000 \n", + "75% 125.039250 4.000000 \n", + "max 206.007000 5.000000 " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "តោះមកពិនិត្យមើលប្រភេទអង្គភាព។ មានច្រើនដែលត្រូវបានរាប់បញ្ចូលថា 'ខ្វះ' ដែលមានន័យថាពួកវាមិនត្រូវបានចាត់ទុកជាប្រភេទណាមួយក្នុងទិន្នន័យនោះឡើយ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top genres')" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import seaborn as sns\n", + "\n", + "top = df['artist_top_genre'].value_counts()\n", + "plt.figure(figsize=(10,7))\n", + "sns.barplot(x=top[:5].index,y=top[:5].values)\n", + "plt.xticks(rotation=45)\n", + "plt.title('Top genres',color = 'blue')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ដកចេញប្រភេទ 'ខ្វះ' ព្រោះវាមិនត្រូវបានចាត់ថ្នាក់នៅក្នុង Spotify\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top genres')" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df = df[df['artist_top_genre'] != 'Missing']\n", + "top = df['artist_top_genre'].value_counts()\n", + "plt.figure(figsize=(10,7))\n", + "sns.barplot(x=top.index,y=top.values)\n", + "plt.xticks(rotation=45)\n", + "plt.title('Top genres',color = 'blue')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ប្រ genre ទីបីខាងលើរួមមានផ្នែកធំបំផុតនៃផ្ទុកទិន្នន័យ ដូចនេះតាង់យើងផ្ដោតលើពួកវា។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top genres')" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]\n", + "df = df[(df['popularity'] > 0)]\n", + "top = df['artist_top_genre'].value_counts()\n", + "plt.figure(figsize=(10,7))\n", + "sns.barplot(x=top.index,y=top.values)\n", + "plt.xticks(rotation=45)\n", + "plt.title('Top genres',color = 'blue')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ទិន្នន័យមិនមានទំនាក់ទំនងយ៉ាងខ្លាំងក្រៅពីរវាងថាមពល និងសំឡេងខ្លះៗ ដែលវាមានអារម្មណ៍យល់។ ភាពល្បីល្បាញមានការតភ្ជាប់ទៅនឹងកាលបរិច្ឆេទចេញផ្សាយ ដែលវាក៏មានអារម្មណ៍យល់ដែរ ព្រោះចម្រៀងថ្មីៗមួយប្រហែលជាល្បីជាង។ ប្រវែងនិងថាមពលមើលទៅមានទំនាក់ទំនង - ប្រហែលជាចម្រៀងខ្លីៗមានថាមពលច្រើនជាង?\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "corrmat = df.corr()\n", + "f, ax = plt.subplots(figsize=(12, 9))\n", + "sns.heatmap(corrmat, vmax=.8, square=True);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "តើប្រភេទតន្រ្តយ៍មានការផ្សៈផ្សារយ៉ាងខ្លាំងក្នុងការទស្សនាជំនញនៃការរត់រាំរបស់ពួកវា ដោយផ្អែកលើយល់ព្រមភាពរបស់ពួកវាឬអត់? សូមពិនិត្យការចែកចាយទិន្នន័យសំរាប់បីប្រភេទតន្រ្តយ៍កំពូលរបស់យើង សម្រាប់ការរីកចំរើននិងការរត់រាំតាមអក្ខរាវិជ្ជាជាក់លាក់ x និង y។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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OKvs+++/H25FAXz55ZcALFiwgJycHDl53mmA3GUnIyNzRFx22WXce++9fPPNN2g0GkaMGBEWj76YMWMGxcXFXHrppQQCAaZOncq1115LY2MjZrOZ559/nurqagoKCvjjH/+IwWDg8ccf584778Tv95OcnMwTTzwRPt+mTZv46KOP0Ov1/QZolTm1kAVJRkbmiCgoKODzzz/vtX3/lBR79uzpse+OO+7gjjvu6HWMXq/npZde6rW925uuL37961//KHIE/ZiQu+xkZGRkZE4K5BaSjIzMgJKamsrixYsP65jDLS9zaiC3kGRkZGRkTgpkQZKRkZGROSmQBUlGRkZG5qRAFiQZGRkZmZMCWZBkZGSOKU1NTdx6663H5FzPPfccixYtOibnkjn5kb3sZGRkjikJCQn861//Oibnuueee47JeWRODWRBkpGROSLWrl3LK6+8gk6no6ysjIKCAv7617/S3NzM9ddfz+LFi2lsbOTee+/FarWSn5/P+vXrWbZsGU6nk8cff5zS0lKCwSC33norF1xwQTgSeGdnJzNmzKC5uZlx48Yxd+5cnnnmGVavXo3VaiUqKooXXniBuLg4pkyZwtlnn83GjRtRKpU8++yzpKWl9bC1v3QVFRUVPProo3R2dmIwGHjooYcoKiriwQcfRBAESkpKcDgc3H777Vx88cUD8C3/uJAFSUbmFMW+bQn2rcdnPk7k8JlEFp1x0HKbN2/m66+/Jj4+nssvv5wVK1aQn58f3v/EE09w7rnncs0117BgwQK++OILAF566SWGDBnCU089hcPh4MorrwxHBW9qauKrr75CpVLx4IMPAlBVVUV5eTnvvfceCoWC+++/n88//5ybb76ZlpYWJk6cyCOPPMKTTz7Jf//73/Bx+9OdrmLx4sU88MADfP7559x3333cdtttzJ49my1btnDPPffw7bffhu147733aGtrY+7cuUyePJm4uLij/WqPiL6C1p6OyGNIMjIyR0xeXh6JiYkoFApycnKwWq099q9cuZI5c+YAcNZZZ2EymQBYtWoV7733HnPmzOGaa67B5XJRWloKwODBg3tE8gbIyMjggQce4MMPP+TJJ59ky5YtPVJdTJ06NWzPD23oZv90FU1NTTQ2NlJdXc3s2bMBGDFiBGazmfLycgDmzp2LWq0mMTGRUaNGsXHjxqP6ro6OH4cgyS0k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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.set_theme(style=\"ticks\")\n", + "\n", + "# Show the joint distribution using kernel density estimation\n", + "g = sns.jointplot(\n", + " data=df,\n", + " x=\"popularity\", y=\"danceability\", hue=\"artist_top_genre\",\n", + " kind=\"kde\",\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ជាទូទៅ ប្រភេទត្រីមានការច្របល់គ្នាតាមកម្រិតពេញនិយម និងសមត្ថភាពរាំ។ គំនូសតាងចំណុចរបស់អ័ក្សដូចគ្នាបង្ហាញលំនាំស្រដៀងគ្នានៃការជួបប្រជុំ។ សូមសាកល្បងគំនូសតាងចំណុចដើម្បីពិនិត្យចំណែកចាយទិន្នន័យតាមប្រភេទ។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/jenniferlooper/Library/Python/3.8/lib/python/site-packages/seaborn/axisgrid.py:337: UserWarning: The `size` parameter has been renamed to `height`; please update your code.\n", + " warnings.warn(msg, UserWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sns.FacetGrid(df, hue=\"artist_top_genre\", size=5) \\\n", + " .map(plt.scatter, \"popularity\", \"danceability\") \\\n", + " .add_legend()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងដើម្បីទទួលបានភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាផ្ទាល់របស់វាគួរត្រូវបានចាត់ទុកថាជាម៉ោងហត្ថនៃព័ត៌មាន។ សម្រាប់ព័ត៌មានដ៏សំខាន់ ការបកប្រែដោយអ្នកជំនាញមនុស្សគឺជាជម្រើសល្អបំផុត។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ], + "metadata": { + "interpreter": { + "hash": "31f2aee4e71d21fbe5cf8b01ff0e069b9275f58929596ceb00d14d90e3e16cd6" + }, + "kernelspec": { + "display_name": "Python 3.7.0 64-bit ('3.7')", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.9" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/5-Clustering/2-K-Means/README.md b/translations/km/5-Clustering/2-K-Means/README.md new file mode 100644 index 000000000..34a1431f8 --- /dev/null +++ b/translations/km/5-Clustering/2-K-Means/README.md @@ -0,0 +1,254 @@ +# ការបែងចែកក្រុម K-Means + +## [វិញ្ញាសាមុនវគ្គ](https://ff-quizzes.netlify.app/en/ml/) + +ក្នុងមេរៀននេះ អ្នក​នឹងរៀនពីរបៀបបង្កើត​ក្រុមឲ្យបានដោយប្រើ Scikit-learn និងឯកសារគម្រប់តន្ត្រីនីហ្សេរីយ៉ាដើម្បីនាំចូលមុននេះ។ យើង​នឹងរៀបរាប់ពីមូលដ្ឋាននៃ K-Means សម្រាប់​ការ​បែងចែក​ក្រុម។ សូមចងចាំថា ដូចដែលអ្នកបានរៀន​ក្នុងមេរៀនមុន មានរបៀបច្រើន​ក្នុងការប្រើក្រុម ហើយវិធីដែលអ្នកប្រើនឹងអាស្រ័យលើទិន្នន័យរបស់អ្នក។ យើង​នឹងសាកល្បង K-Means ព្រោះវាជា​បច្ចេកទេសបែងចែកក្រុមធម្មតា​បំផុត។ ចាប់ផ្តើមទៅ! + +ពាក្យសំខាន់ដែលអ្នក​នឹងរៀនពី៖ + +- ពិន្ទុ Silhouette +- វិធី Elbow +- Inertia +- ភាពខុសគ្នា (Variance) + +## ការណែនាំ + +[K-Means Clustering](https://wikipedia.org/wiki/K-means_clustering) គឺ​ជា​វិធីមួយ​ចេញពី​វិស័យ​ការបញ្ចេញសញ្ញា។ វាត្រូវបានប្រើសម្រាប់បែងចែកក្រុមទិន្នន័យជា 'k' ក្រុមដោយប្រើសន្ទស្សន៍ជាច្រើន។ សន្ទស្សន៍នីមួយៗ​នឹងធ្វើការជួញដូរ​ដាក់​ជាក្រុម​និងទិន្នន័យ​ដែលជិតកន្លែង 'mean' ឬ​កាចំណុចមជ្ឈមណ្ឌលរបស់ក្រុម។ + +ក្រុមអាចត្រូវបាននាំមុខជារូបភាពជា [វ៉រ៉ូណូយ](https://wikipedia.org/wiki/Voronoi_diagram) ដែលរួមមានចំណុច (ឬ 'គ្រាប់') និងតំបន់​ដែលសមស្របមួយចំនួន។ + +![voronoi diagram](../../../../translated_images/km/voronoi.1dc1613fb0439b95.webp) + +> រូបតំណាងដោយ [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' ដែលជាចំនួនចំណុចមជ្ឈមណ្ឌល។ ជាសំណាងវិធី 'elbow method' ជួយប៉ាន់ប្រមាណតម្លៃដើមល្អសម្រាប់ 'k'។ អ្នកនឹងសាកល្បងវិធីនេះមួយភ្លឺ។ + +## លក្ខខណ្ឌមុន + +អ្នក​នឹង​ធ្វើការងារ​នៅក្នុង​ឯកសារ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/notebook.ipynb) ក្នុងមេរៀននេះ ដែលរួមមានការនាំចូល និងសម្អាតដំណើរការដំបូងដែលអ្នកបានធ្វើនៅមេរៀនមុន។ + +## អនុវត្ត - រៀបចំ + +ចាប់ផ្តើមដោយមើលទិន្នន័យចម្រៀងម្តងទៀត។ + +1. បង្កើត boxplot ដោយហៅ `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) + ``` + + ទិន្នន័យនេះមានសំឡេងរំខានតិចតួច៖ ដោយមើលជាបទបង្ហាញ boxplot នីមួយៗ អ្នកអាចមើលឃើញព្រំដែនដែលឆ្លងកាត់។ + + ![outliers](../../../../translated_images/km/boxplots.8228c29dabd0f292.webp) + +អ្នកអាចធ្វើការលុបចោលព្រំដែនទាំងនេះពីឯកសារទិន្នន័យ ប៉ុន្តែវានឹងធ្វើឱ្យទិន្នន័យតិចតួចបន្ថែម។ + +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) + + # ខាតថានអំពីក្រុមសម្រាប់ចំណុចទិន្នន័យនីមួយៗ + + y_cluster_kmeans = km.predict(X) + y_cluster_kmeans + ``` + +អ្នកនឹងឃើញអារេមួយបោះពុម្ពជាមួយក្រុមដែលបានទាយទោល (0, 1, ឬ 2) សម្រាប់ជួរដេតាប្រេមមួយៗ។ + +1. ប្រើអារេនេះដើម្បីគណនាពិន្ទុ 'silhouette': + + ```python + from sklearn import metrics + score = metrics.silhouette_score(X, y_cluster_kmeans) + score + ``` + +## ពិន្ទុ Silhouette + +ស្វែងរកពិន្ទុ silhouette ដែលឆៀងទៅកាន់ 1។ ពិន្ទុនេះប្រែប្រួលពី -1 ទៅ 1 ហើយ បើពិន្ទុជាប្រាំមួយ គឺក្រុមមានភាពរឹងមាំ និងបំបែកច្បាស់ពីក្រុមផ្សេងទៀត។ តម្លៃជិត 0 បង្ហាញពីក្រុមដែលមានការច្របូកច្របល់ ជួរដេតានៅជិតព្រំដែនសម្រាច់របស់ក្រុមជិតខាង។ [(ប្រភព)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam) + +ពិន្ទុរបស់យើងគឺ **.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: វាជាចំនួន iteration នៃដំណើរការបែងចែកក្រុម + + > 🎓 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 ព្យាយាមជ្រើសចំណុចមជ្ឈមណ្ឌលដើម្បីកាត់បន្ថយ 'inertia' ដែលជាការវាស់ថា ក្រុមមានភាពរឹងមាំក្នុងខ្លួនយ៉ាងណា។ [ប្រភព](https://scikit-learn.org/stable/modules/clustering.html) តម្លៃនេះត្រូវបានបន្ថែមទៅអថេរ wcss នៅរាល់ចំនួន iteration។ + + > 🎓 k-means++: នៅ [Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means) អ្នកអាចប្រើការបង្កើតចំណុចមជ្ឈមណ្ឌល 'k-means++' ដែល "ចាប់ផ្តើមចំណុចមជ្ឈមណ្ឌលឲ្យនៅឆ្ងាយពីគ្នាដោយទូទៅ បណ្ដាលអោយលទ្ធផលប្រសើរជាងការចាប់ផ្តើមចៃដន្យ។ + +### វិធី Elbow + +មុននេះ អ្នកបានសន្និដ្ឋានថា ដូចជាអ្នកបានគោលបំណងចម្រៀង 3 ប្រភេទ អ្នកគួរជ្រើសក្រុម 3 តែតើពិតទេ? + +1. ប្រើវិធី 'elbow method' ដើម្បីធានា។ + + ```python + plt.figure(figsize=(10,5)) + sns.lineplot(x=range(1, 11), y=wcss, marker='o', color='red') + plt.title('Elbow') + plt.xlabel('Number of clusters') + plt.ylabel('WCSS') + plt.show() + ``` + + ប្រើអថេរ `wcss` ដែលអ្នកបានបង្កើតនៅជំហានមុន ដើម្បីបង្កើតក្រាផិកបង្ហាញទីដែលមាន 'bend' ក្នុង elbow ដោយបង្ហាញពីចំនួនក្រុម​អប្បបរមា។ ប្រហែលជា វា **ជាអច់** 3! + + ![elbow method](../../../../translated_images/km/elbow.72676169eed744ff.webp) + +## អនុវត្ត - បង្ហាញក្រុម + +1. សាកល្បងដំណើរការតម្កល់ម្តងទៀត កំណត់ក្រុម 3 ដង ហើយបង្ហាញក្រុមជារ៉ែតូច៖ + + ```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](../../../../translated_images/km/clusters.b635354640d8e4fd.webp) + + ទិន្នន័យនេះមិន​តុល្យភាពគ្រប់គ្រាន់ ទំនាក់ទំនងតិចហើយ​មានភាពខុសគ្នាច្រើនរវាងតម្លៃជួរឈរដើម្បីបែងចែកក្រុមឲ្យបានល្អ។ ជាក់ស្តែង ក្រុមដែលបង្កើតឡើងស័ក្ដិ influenced ឬ មានភាពច្រាសច្រោមយ៉ាងខ្លាំងដោយក្រុមចម្រៀង 3 មុខដែលយើងបានកំណត់ពីមុន។ នេះជាដំណើរការសិក្សា! + + ឯកសារនៃ Scikit-learn អ្នកអាចមើលឃើញថា ម៉ូដែលដូចនេះ ដែលក្រុមមិនបានបំបែកច្បាស់ មានបញ្ហា 'variance'៖ + + ![problem models](../../../../translated_images/km/problems.f7fb539ccd80608e.webp) + > រូបតំណាងពី Scikit-learn + +## ភាពខុសគ្នា (Variance) + +ភាពខុសគ្នាបានកំណត់ថា "ជាមធ្យមនៃភាពខុសគ្នាចត្រង្គពីមធ្យម" [(ប្រភព)](https://www.mathsisfun.com/data/standard-deviation.html)។ នៅក្នុងបរិបទនៃបញ្ហាបែងចែកក្រុមនេះ វាសម្រាប់បញ្ជាក់ពីទិន្នន័យដែលចំនួនក្នុងឯកសារទិន្នន័យច្រាំងចេញពីមធ្យមច្រើនពេក។ + +✅ នេះជាពេលវេលាល្អក្នុងការគិតពីវិធីទាំងអស់ដែលអ្នកអាចកែតម្រូវបញ្ហានេះ។ ចំពោះទិន្នន័យមួយ? ប្រើជួរឈរផ្សេង? ប្រើអាល់ហ្គូរីធម៍ផ្សេង? សេចក្តីផ្តល់អនុសាសន៍: សាកល្បង [ការប្រភេទទិន្នន័យរបស់អ្នក](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) ដើម្បីធ្វើឲ្យវាមានស្តង់ដារនិងសាកល្បងជួរឈរផ្សេងៗ។ + +> សាកល្បង '[កម្មវិធីគណនា variance](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' ដើម្បីយល់ពីគំនិតនេះបន្ថែម។ + +--- + +## 🚀챌린지 + +ចំណាយពេលជាមួយ notebook នេះ ប៉ិនប្រមាណប៉ារ៉ាម៉ែត្រ។ អ្នកអាចធ្វើឲ្យភាពត្រឹមត្រូវនៃម៉ូដែលកាន់តែប្រសើរដោយសម្អាតទិន្នន័យច្រើនជាងមុន (ដូចជាលុបចោលព្រំដែន)? អ្នកអាចប្រើទំងន់ដើម្បីផ្ដល់ទំងន់ចំពោះទិន្នន័យខ្លះៗ។ តើមានអ្វីទៀតដែលអ្នកអាចធ្វើដើម្បីបង្កើតក្រុមល្អជាងនេះ? + +សេចក្តីផ្តល់អនុសាសន៍៖ សាកល្បងបញ្ចូលការប្រភេទទិន្នន័យ។ មានកូដដែលបានព្រីនុចក្នុង notebook ដែលបន្ថែមការប្រភេទស្តង់ដារដើម្បីឲ្យជួរឈរទិន្នន័យមានម៉ាស្សារូបរាងដូចគ្នាច្រើនជាង។ អ្នកនឹងរកឃើញថា ខណៈពិន្ទុ silhouette បន្ថយ កំណត់ 'kink' នៅក្រាផិក elbow ចេញរាបស្មើឡើង។ នេះដោយសារពេលទិន្នន័យមិនត្រូវបានប្រភេទ ក្រុមដែលមានភាពខុសខាតតិចនឹងមានទំងន់ធ្ងន់ជាង។ អានបន្ថែមអំពីបញ្ហានេះ [នៅទីនេះ](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226)។ + +## [វិញ្ញាសាក្រោយវគ្គ](https://ff-quizzes.netlify.app/en/ml/) + +## ពិនិត្យឡើងវិញ & សិក្សាឯកតាឯករាជ្យ + +មើលឧបករណ៍រៀបចំ K-Means [ដូចទម្រង់នេះ](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/)។ អ្នកអាចប្រើឧបករណ៍នេះដើម្បីបង្ហាញចំណុចទិន្នន័យគំរូ និងកំណត់ចំណុចមជ្ឈមណ្ឌលរបស់វា។ អ្នកអាចកែប្រែ randomness ទិន្នន័យ ចំនួនក្រុម និងចំនួនចំណុចមជ្ឈមណ្ឌល។ តើវាជួយអ្នកបានគំនិតពីរបៀបបែងចែកទិន្នន័យជាក្រុម? + +ក្រៅពីនេះ មើលឯកសារនេះ [K-Means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) ពីស្ថានទិន្នន័យ Stanford ។ + +## កិច្ចការផ្ទះ + +[សាកល្បងកិច្ចការបែងចែកក្រុមផ្សេងៗ](assignment.md) + +--- + + +**ការបដិបត្តិ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំធ្វើឱ្យបានច្បាស់លាស់ សូមយល់ថា ការបកប្រែដោយស្វ័យប្រវត្តិក្នុងសំណុំនេះអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាទីផ្សារដើមគួរត្រូវបានពិចារណាថាជា ប្រភពដែលមានសក្តានុពល។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យប្រើសេវាកម្មបកប្រែដែលធ្វើដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែរបស់មិនត្រឹមត្រូវណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះ។ + \ No newline at end of file diff --git a/translations/km/5-Clustering/2-K-Means/assignment.md b/translations/km/5-Clustering/2-K-Means/assignment.md new file mode 100644 index 000000000..f58f0642d --- /dev/null +++ b/translations/km/5-Clustering/2-K-Means/assignment.md @@ -0,0 +1,18 @@ +# សាកល្បងវិធីសាស្ត្រក្លាស្ទឺរផ្សេងៗ + +## របៀបណែនាំ + +ក្នុងមេរៀននេះ អ្នកបានរៀនអំពីការក្លាស្ទឺរបែប K-Means។ ពេលខ្លះ K-Means មិនសមរម្យសម្រាប់ទិន្នន័យរបស់អ្នកទេ។ បង្កើតសៀវភៅកំណត់ត្រាមួយដោយប្រើទិន្នន័យពីមេរៀនទាំងនេះ ឬពីកន្លែងផ្សេង (អបអរសារដែលអ្នកយកទិន្នន័យ) ហើយបង្ហាញវិធីក្លាស្ទឺរផ្សេងមួយដែលមិនប្រើ K-Means។ តើអ្នកបានរៀនអ្វី? + +## ការវាយតម្លៃ + +| កត្តា | លក្ខណៈឧត្ដម | លក្ខណៈគ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------- | +| | សៀវភៅកំណត់ត្រាមួយត្រូវបានបង្ហាញជាមួយម៉ូដែលក្លាស្ទឺរដែលមានឯកសារលម្អិតល្អ | សៀវភៅកំណត់ត្រាមួយត្រូវបានបង្ហាញដោយគ្មានឯកសារល្អ និង/ឬមិនពេញលេញ | ការងារដែលមិនពេញលេញត្រូវបានដាក់ស្នើ | + +--- + + +**ការតែងជូនដំណឹង**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ នៅពេលដែលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមចាប់អារម្មណ៍ថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានគិតថាជា ប្រភពដើមដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ ត្រូវផ្ដល់អនុសាសន៍ឱ្យប្រើការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសផ្សេងៗដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/5-Clustering/2-K-Means/notebook.ipynb b/translations/km/5-Clustering/2-K-Means/notebook.ipynb new file mode 100644 index 000000000..abf9c4f4e --- /dev/null +++ b/translations/km/5-Clustering/2-K-Means/notebook.ipynb @@ -0,0 +1,227 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python37364bit8d3b438fb5fc4430a93ac2cb74d693a7", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# តន្ត្រីនីហ្សេរីយ៉ាត្រូវបានរក្សាទុកពីSpotify - ការវិភាគមួយ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: seaborn in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (0.11.1)\n", + "Requirement already satisfied: numpy>=1.15 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.19.2)\n", + "Requirement already satisfied: pandas>=0.23 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.1.2)\n", + "Requirement already satisfied: scipy>=1.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.4.1)\n", + "Requirement already satisfied: matplotlib>=2.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (3.1.0)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pandas>=0.23->seaborn) (2.8.0)\n", + "Requirement already satisfied: pytz>=2017.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pandas>=0.23->seaborn) (2019.1)\n", + "Requirement already satisfied: cycler>=0.10 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (0.10.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (1.1.0)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (2.4.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/jenlooper/Library/Python/3.7/lib/python/site-packages (from python-dateutil>=2.7.3->pandas>=0.23->seaborn) (1.12.0)\n", + "Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from kiwisolver>=1.0.1->matplotlib>=2.2->seaborn) (45.1.0)\n", + "\u001b[33mWARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.\n", + "You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install --upgrade pip' command.\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install seaborn" + ] + }, + { + "source": [ + "ចាប់ផ្តើមពីកន្លែងដែលយើងបញ្ចប់នៅមេរៀនចុងក្រោយ ជាមួយទិន្នន័យបាននាំចូល និងតម្រាំ។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " name album \\\n", + "0 Sparky Mandy & The Jungle \n", + "1 shuga rush EVERYTHING YOU HEARD IS TRUE \n", + "2 LITT! LITT! \n", + "3 Confident / Feeling Cool Enjoy Your Life \n", + "4 wanted you rare. \n", + "\n", + " artist artist_top_genre release_date length popularity \\\n", + "0 Cruel Santino alternative r&b 2019 144000 48 \n", + "1 Odunsi (The Engine) afropop 2020 89488 30 \n", + "2 AYLØ indie r&b 2018 207758 40 \n", + "3 Lady Donli nigerian pop 2019 175135 14 \n", + "4 Odunsi (The Engine) afropop 2018 152049 25 \n", + "\n", + " danceability acousticness energy instrumentalness liveness loudness \\\n", + "0 0.666 0.8510 0.420 0.534000 0.1100 -6.699 \n", + "1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n", + "2 0.836 0.2720 0.564 0.000537 0.1100 -7.127 \n", + "3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n", + "4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n", + "\n", + " speechiness tempo time_signature \n", + "0 0.0829 133.015 5 \n", + "1 0.3600 129.993 3 \n", + "2 0.0424 130.005 4 \n", + "3 0.1130 111.087 4 \n", + "4 0.0447 105.115 4 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namealbumartistartist_top_genrerelease_datelengthpopularitydanceabilityacousticnessenergyinstrumentalnesslivenessloudnessspeechinesstempotime_signature
0SparkyMandy & The JungleCruel Santinoalternative r&b2019144000480.6660.85100.4200.5340000.1100-6.6990.0829133.0155
1shuga rushEVERYTHING YOU HEARD IS TRUEOdunsi (The Engine)afropop202089488300.7100.08220.6830.0001690.1010-5.6400.3600129.9933
2LITT!LITT!AYLØindie r&b2018207758400.8360.27200.5640.0005370.1100-7.1270.0424130.0054
3Confident / Feeling CoolEnjoy Your LifeLady Donlinigerian pop2019175135140.8940.79800.6110.0001870.0964-4.9610.1130111.0874
4wanted yourare.Odunsi (The Engine)afropop2018152049250.7020.11600.8330.9100000.3480-6.0440.0447105.1154
\n
" + }, + "metadata": {}, + "execution_count": 6 + } + ], + "source": [ + "\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "\n", + "\n", + "df = pd.read_csv(\"../data/nigerian-songs.csv\")\n", + "df.head()" + ] + }, + { + "source": [ + "យើងនឹងផ្ដោតលើប៉ុណ្ណោះ 3 ប្រភេទ។ ប្រហែលជាយើងអាចបង្កើតក្រុម 3 ក្រុមបាន!\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top genres')" + ] + }, + "metadata": {}, + "execution_count": 7 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]\n", + "df = df[(df['popularity'] > 0)]\n", + "top = df['artist_top_genre'].value_counts()\n", + "plt.figure(figsize=(10,7))\n", + "sns.barplot(x=top.index,y=top.values)\n", + "plt.xticks(rotation=45)\n", + "plt.title('Top genres',color = 'blue')" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " name album \\\n", + "1 shuga rush EVERYTHING YOU HEARD IS TRUE \n", + "3 Confident / Feeling Cool Enjoy Your Life \n", + "4 wanted you rare. \n", + "5 Kasala Pioneers \n", + "6 Pull Up Everything Pretty \n", + "\n", + " artist artist_top_genre release_date length popularity \\\n", + "1 Odunsi (The Engine) afropop 2020 89488 30 \n", + "3 Lady Donli nigerian pop 2019 175135 14 \n", + "4 Odunsi (The Engine) afropop 2018 152049 25 \n", + "5 DRB Lasgidi nigerian pop 2020 184800 26 \n", + "6 prettyboydo nigerian pop 2018 202648 29 \n", + "\n", + " danceability acousticness energy instrumentalness liveness loudness \\\n", + "1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n", + "3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n", + "4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n", + "5 0.803 0.1270 0.525 0.000007 0.1290 -10.034 \n", + "6 0.818 0.4520 0.587 0.004490 0.5900 -9.840 \n", + "\n", + " speechiness tempo time_signature \n", + "1 0.3600 129.993 3 \n", + "3 0.1130 111.087 4 \n", + "4 0.0447 105.115 4 \n", + "5 0.1970 100.103 4 \n", + "6 0.1990 95.842 4 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namealbumartistartist_top_genrerelease_datelengthpopularitydanceabilityacousticnessenergyinstrumentalnesslivenessloudnessspeechinesstempotime_signature
1shuga rushEVERYTHING YOU HEARD IS TRUEOdunsi (The Engine)afropop202089488300.7100.08220.6830.0001690.1010-5.6400.3600129.9933
3Confident / Feeling CoolEnjoy Your LifeLady Donlinigerian pop2019175135140.8940.79800.6110.0001870.0964-4.9610.1130111.0874
4wanted yourare.Odunsi (The Engine)afropop2018152049250.7020.11600.8330.9100000.3480-6.0440.0447105.1154
5KasalaPioneersDRB Lasgidinigerian pop2020184800260.8030.12700.5250.0000070.1290-10.0340.1970100.1034
6Pull UpEverything Prettyprettyboydonigerian pop2018202648290.8180.45200.5870.0044900.5900-9.8400.199095.8424
\n
" + }, + "metadata": {}, + "execution_count": 8 + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបញ្ជាក់**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវក៏ដោយ សូមយល់ថាការបកប្រែក្នុងស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសាមូលដ្ឋាន ត្រូវបានគេយកជាលេខាធិការលេខបញ្ជាក់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អាទិភាពទៅកាន់ការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់បម្លែង ឬការបកប្រែខុសប្រក្រតីណាមួយ ដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/5-Clustering/2-K-Means/solution/Julia/README.md b/translations/km/5-Clustering/2-K-Means/solution/Julia/README.md new file mode 100644 index 000000000..1600d17b1 --- /dev/null +++ b/translations/km/5-Clustering/2-K-Means/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះ​គឺ​ជា​កន្លែង​ស្ងៀម​ស្ងាត់​បណ្ដោះអាសន្ន​ជា​តំណ_placeholder + +--- + + +**ការបះបោរ**៖ +ឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខិតខំបំពេញភាពត្រឹមត្រូវ សូមចំណាំថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬមានការខុសគ្នា។ ឯកសារដើមក្នុងភាសាទំនើបគួរត្រូវបានទទួលស្គាល់ថាជាទ្រព្យសម្បត្តិដើម។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញគឺជាការត្រូវបានណែនាំ។ យើងមិនអាចទទួលខុសត្រូវចំពោះការយល់ច្រឡំនឹង ឬការបកប្រែខុសៗណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/5-Clustering/2-K-Means/solution/R/lesson_15-R.ipynb b/translations/km/5-Clustering/2-K-Means/solution/R/lesson_15-R.ipynb new file mode 100644 index 000000000..daac0b77d --- /dev/null +++ b/translations/km/5-Clustering/2-K-Means/solution/R/lesson_15-R.ipynb @@ -0,0 +1,636 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "anaconda-cloud": "", + "kernelspec": { + "display_name": "R", + "language": "R", + "name": "ir" + }, + "language_info": { + "codemirror_mode": "r", + "file_extension": ".r", + "mimetype": "text/x-r-source", + "name": "R", + "pygments_lexer": "r", + "version": "3.4.1" + }, + "colab": { + "name": "lesson_14.ipynb", + "provenance": [], + "collapsed_sections": [], + "toc_visible": true + } + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "GULATlQXLXyR" + }, + "source": [ + "## ស្វែងយល់អំពីការបែងចែកក្រុម K-Means ដោយប្រើប្រាស់ R និងគោលការណ៍ទិន្នន័យ Tidy។ \n", + "\n", + "### [**សំណួរពិចារណា មុនមុខវិជ្ជា**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/29/)\n", + "\n", + "ក្នុងមុខវិជ្ជានេះ អ្នកនឹងរៀនពីរបៀបបង្កើតក្រុម cluster ដោយប្រើកញ្ចប់ Tidymodels និងកញ្ចប់ផ្សេងទៀតក្នុងប្រព័ន្ធអិខូស៊ីស្ទឹម R (យើងនឹងហៅពួកវាថា មិត្ត 🧑‍🤝‍🧑) និងទិន្នន័យតន្រ្តីនៃប្រទេសនីហ្សេរីយ៉ាដែលអ្នកបាននាំចូលមុននេះ។ យើងនឹងគ្របដណ្តប់ពីមូលដ្ឋានរបស់ K-Means សម្រាប់ការបែងចែកក្រុម។ សូមចំណាំថា ចំនុចដែលអ្នកបានរៀនក្នុងមុខវិជ្ជាមុន មានរបៀបជាច្រើនក្នុងការដំណើរការជាមួយក្រុម ហើយវិធីដែលអ្នកប្រើប្រាស់អាស្រ័យលើទិន្នន័យរបស់អ្នក។ យើងនឹងសាកល្បង K-Means ព្រោះវាជាវិធីសាស្ត្របែងចែកក្រុមដែលពេញនិយមបំផុត។ ចាប់ផ្តើមទៅ!\n", + "\n", + "ពាក្យដែលអ្នកនឹងរៀន៖\n", + "\n", + "- ការវាយតម្លៃ Silhouette\n", + "\n", + "- វិធីសាស្រ្ត Elbow\n", + "\n", + "- កម្លាំងរឹង (Inertia)\n", + "\n", + "- ភាពចម្រុះ (Variance)\n", + "\n", + "### **ការណែនាំ**\n", + "\n", + "[K-Means Clustering](https://wikipedia.org/wiki/K-means_clustering) គឺជាវិធីសាស្ត្រដែលបានផ្សំនឹងពីដែនសញ្ញាស្រាវជ្រាវ។ វាត្រូវបានប្រើសម្រាប់បែងចែកនិងចែកជាក្រុមនៃទិន្នន័យទៅជា `k clusters` ដោយផ្អែកលើសមាធីនៅលើលក្ខណៈពិសេសរបស់វា។ \n", + "\n", + "ក្រុម cluster អាចត្រូវបានបង្ហាញជារូបភាព [Voronoi diagrams](https://wikipedia.org/wiki/Voronoi_diagram) ដែលរួមមានចំណុចមួយ (ឬ 'គ្រាប់ពូជា') និងតំបន់ដែលពាក់ព័ន្ធរបស់វា។\n", + "\n", + "

\n", + " \n", + "

រូបភាពព័ត៌មានដោយ Jen Looper
\n", + "\n", + "\n", + "ការបែងចែកក្រុម K-Means មានជំហានដូចខាងក្រោម៖\n", + "\n", + "1. អ្នកវិទ្យាសាស្ត្រទិន្នន័យចាប់ផ្តើមដោយកំណត់ចំនួនក្រុមដែលចង់បង្កើត។\n", + "\n", + "2. បន្ទាប់មក, អាល់ហ្គូរិធម៍ជ្រើសរើសរាប់ K អារម្មណ៍ជាប់ចៃដន្យពីទិន្នន័យ ដើម្បីបម្រើជាមជ្ឈមណ្ឌលដំបូង (centroids) សម្រាប់ក្រុម cluster ។\n", + "\n", + "3. បន្ទាប់មក, រាល់អារម្មណ៍នៅសល់ត្រូវបានចាត់ទុកទៅកាន់ centroid ដែលជិតបំផុត។\n", + "\n", + "4. បន្ទាប់មក, គណនាមធ្យមថ្មីនៃរាល់ក្រុម ហើយផ្លាស់ទី centroid ទៅកាន់មធ្យមនោះ។\n", + "\n", + "5. ឥឡូវនេះដែលមជ្ឈមណ្ឌលត្រូវបានគណនាឡើងវិញ អារម្មណ៍រាល់មួយត្រូវបានពិនិត្យម្តងទៀតថាតើវាអាចជិតក្រុមផ្សេងទៀតខ្លះឬទេ។ អ្នកនឹងចាត់ទុកវាឡើងវិញដោយប្រើមធ្យមក្រុមថ្មី។ ជំហានចាត់តាំងក្រុម និងធ្វើបច្ចុប្បន្នភាព centroid នឹងធ្វើឡើងជារយៈពេលមួយរហូតដល់ការបែងចែកក្រុមឈប់ផ្លាស់ប្តូរ (ឧ. នៅពេលដែលការរួមបញ្ចូលបានជោគជ័យ)។ ជាទូទៅ អាល់ហ្គូរិធម៍នឹងបញ្ចប់នៅពេលរៀងរាល់វដ្តថ្មីមានចលនាតិចឡើងនៃចំណុចកណ្តាល ហើយក្រុមក្លាយទៅជាស្ថិតិ។\n", + "\n", + "
\n", + "\n", + "> សូមចំណាំថា ដោយសារតែការចៃដន្យនៃអារម្មណ៍ដំបូង k ដែលត្រូវបានប្រើជាចំណុចកណ្តាលចាប់ផ្តើម អ្នកអាចទទួលបានលទ្ធផលខុសពីម្តងៗ។ ដូច្នេះ អាល់ហ្គូរិធម៍ភាគច្រើនប្រើ *random starts* ច្រើន និងជ្រើសវដ្តដែលមាន WCSS ទាបបំផុត។ ដូច្នេះ សូមណែនាំឱ្យដំណើរការ K-Means ជាមួយតម្លៃ *nstart* ច្រើន ដើម្បីជៀសវាង *local optimum* មិនចង់បាន។\n", + "\n", + "
\n", + "\n", + "រូបភាពធ្វើចលនាខ្លីនេះ ដោយប្រើ [ស្នាដៃសិល្បៈ](https://github.com/allisonhorst/stats-illustrations) របស់ Allison Horst សូមពន្យល់ដំណើរការបែងចែកក្រុម៖\n", + "\n", + "

\n", + " \n", + "

ស្នាដៃដោយ @allison_horst
\n", + "\n", + "\n", + "\n", + "សំណួរមូលដ្ឋានមួយដែលកើតឡើងក្នុងការបែងចែកក្រុម គឺ៖ តើធ្វើដូចម្តេចដើម្បីដឹងថាត្រូវបែងចែកទិន្នន័យរបស់អ្នកទៅជាចំនួនក្រុមប៉ុន្មាន? ខុសជំនាញមួយនៃការប្រើប្រាស់ K-Means គឺអ្នកត្រូវការបង្កើត `k` ដែលជាចំនួន `centroids` ។ សំណាងល្អវិធីសាស្រ្ត `elbow method` ជួយឲ្យប៉ាន់ប្រមាណតម្លៃបើកផ្លាស់ចាប់ផ្តើមល្អសម្រាប់ `k`។ អ្នកនឹងសាកល្បងវាក្នុងរយៈពេលខ្លីនេះ។\n", + "\n", + "### \n", + "\n", + "**លក្ខខណ្ឌជាមុន**\n", + "\n", + "យើងនឹងបន្តតាំងពីកន្លែងដែលយើងបានបញ្ឈប់ក្នុង [មុខវិជ្ជាមុន](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb) ដែលយើងបានវិភាគកញ្ចប់ទិន្នន័យ បង្កើតវិចិត្រសាលជាច្រើន និងច្រោះទិន្នន័យទៅកាន់អារម្មណ៍ដែលគួរឱ្យចាប់អារម្មណ៍។ សូមអញ្ជើញពិនិត្យមើល!\n", + "\n", + "យើងត្រូវការកញ្ចប់មួយចំនួនដើម្បីបញ្ចប់មេរៀននេះ។ អ្នកអាចដំឡើងពួកវា ដូចម្តេចជា៖ `install.packages(c('tidyverse', 'tidymodels', 'cluster', 'summarytools', 'plotly', 'paletteer', 'factoextra', 'patchwork'))`\n", + "\n", + "ម្យ៉ាងទៀត script ខាងក្រោមនេះពិនិត្យថាទោះបីអ្នកមានកញ្ចប់ត្រូវការដែរឬអត់សម្រាប់បញ្ចប់មេរៀននេះ ហើយដំឡើងសម្រាប់អ្នក ប្រសិនបើមានខ្វះខាត។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ah_tBi58LXyi" + }, + "source": [ + "suppressWarnings(if(!require(\"pacman\")) install.packages(\"pacman\"))\n", + "\n", + "pacman::p_load('tidyverse', 'tidymodels', 'cluster', 'summarytools', 'plotly', 'paletteer', 'factoextra', 'patchwork')\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "7e--UCUTLXym" + }, + "source": [ + "យើងចាប់ផ្តើមភ្លាមៗ!\n", + "\n", + "## 1. រាំជាមួយទិន្នន័យ៖ កាត់បន្ថយជាប្រភេទតន្រ្តីពេញនិយមបំផុត 3 ប្រភេទ\n", + "\n", + "នេះជាការសង្ខេបអំពីអ្វីដែលយើងបានធ្វើនៅថ្នាក់មុន។ យើងចែកនិងចំហាចែកទិន្នន័យមួយចំនួន!\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Ycamx7GGLXyn" + }, + "source": [ + "# Load the core tidyverse and make it available in your current R session\n", + "library(tidyverse)\n", + "\n", + "# Import the data into a tibble\n", + "df <- read_csv(file = \"https://raw.githubusercontent.com/microsoft/ML-For-Beginners/main/5-Clustering/data/nigerian-songs.csv\", show_col_types = FALSE)\n", + "\n", + "# Narrow down to top 3 popular genres\n", + "nigerian_songs <- df %>% \n", + " # Concentrate on top 3 genres\n", + " filter(artist_top_genre %in% c(\"afro dancehall\", \"afropop\",\"nigerian pop\")) %>% \n", + " # Remove unclassified observations\n", + " filter(popularity != 0)\n", + "\n", + "\n", + "\n", + "# Visualize popular genres using bar plots\n", + "theme_set(theme_light())\n", + "nigerian_songs %>%\n", + " count(artist_top_genre) %>%\n", + " ggplot(mapping = aes(x = artist_top_genre, y = n,\n", + " fill = artist_top_genre)) +\n", + " geom_col(alpha = 0.8) +\n", + " paletteer::scale_fill_paletteer_d(\"ggsci::category10_d3\") +\n", + " ggtitle(\"Top genres\") +\n", + " theme(plot.title = element_text(hjust = 0.5))\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b5h5zmkPLXyp" + }, + "source": [ + "🤩 វាដំណើរការល្អ!\n", + "\n", + "## 2. ការស៊ើបអង្កេតទិន្នន័យបន្ថែម\n", + "\n", + "ទិន្នន័យនេះស្អាតប៉ុណ្ណាដែរ? យាងពិនិត្យសម្រាប់ outliers ដោយប្រើ box plots។ ពួកយើងនឹងផ្ដោតលើជួរឈរផ្នែកលេខដែលមាន outliers តិចជាង (បើទោះបីជាអ្នកអាចសម្អាត outliers បានក៏ដោយ)។ Boxplots អាចបង្ហាញជួរនៃទិន្នន័យ និងជួយជ្រើសរើសជួរឈរណាដើម្បីប្រើ។ សម្គាល់, Boxplots មិនបង្ហាញភាពផ្សេងគ្នាទេ, ដែលជាធាតុសំខាន់នៃទិន្នន័យអាចបែងចែកបានល្អ។ សូមមើល [ការពិភាក្សានេះ](https://stats.stackexchange.com/questions/91536/deduce-variance-from-boxplot) សម្រាប់ការអានបន្ថែម។\n", + "\n", + "[Boxplots](https://en.wikipedia.org/wiki/Box_plot) ត្រូវបានប្រើដើម្បីបង្ហាញភាពចែកចាយយ៉ាងក្រាហ្វិកនៃទិន្នន័យ `numeric` ដូច្នេះ យើងចាប់ផ្តើមដោយ *ជ្រើសរើស* ជួរឈរលេខទាំងអស់រួមជាមួយប្រភេទតន្ត្រីពេញនិយម។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HhNreJKLLXyq" + }, + "source": [ + "# Select top genre column and all other numeric columns\n", + "df_numeric <- nigerian_songs %>% \n", + " select(artist_top_genre, where(is.numeric)) \n", + "\n", + "# Display the data\n", + "df_numeric %>% \n", + " slice_head(n = 5)\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "uYXrwJRaLXyq" + }, + "source": [ + "មើលថា​ជួយ​ការជ្រើសរើស `where` ធ្វើឲ្យ​ងាយស្រួល​នេះ 💁? ស្វែងយល់​អំពី​មុខងារ​ផ្សេងទៀត​ទីនេះ [here](https://tidyselect.r-lib.org/)។\n", + "\n", + "ដោយសារ​យើង​នឹង​បង្កើត​កំណត់​បឹង​រាង​សម្រាប់​លក្ខណៈចំនួន​រាល់មួយ ហើយ​យើង​ចង់ចៀសវាង​ការ​ប្រើលំហាត់​ឆ្នាំឡូប សូមប្រែ​ទ្រង់​ទ្រាយ​ទិន្នន័យ​របស់​យើង​ទៅជា​ទ្រង់ទ្រាយ *វែង* ដែល​នឹងអនុញ្ញាត​ឲ្យ​យើង​ប្រើប្រាស់ `facets` - គំនូស​រូប​តូច​ដែល​មួយរូប​បង្ហាញ​ឲ្យ​ឃើញ​ដាក់​ចេញ​តំបន់​មួយ​នៃ​ទិន្នន័យ។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "gd5bR3f8LXys" + }, + "source": [ + "# Pivot data from wide to long\n", + "df_numeric_long <- df_numeric %>% \n", + " pivot_longer(!artist_top_genre, names_to = \"feature_names\", values_to = \"values\") \n", + "\n", + "# Print out data\n", + "df_numeric_long %>% \n", + " slice_head(n = 15)\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "-7tE1swnLXyv" + }, + "source": [ + "វែងជាងនេះទៀត! ឥឡូវនេះពេលសម្រាប់ `ggplots`! តើយើងនឹងប្រើ `geom` អ្វី?\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "r88bIsyuLXyy" + }, + "source": [ + "# Make a box plot\n", + "df_numeric_long %>% \n", + " ggplot(mapping = aes(x = feature_names, y = values, fill = feature_names)) +\n", + " geom_boxplot() +\n", + " facet_wrap(~ feature_names, ncol = 4, scales = \"free\") +\n", + " theme(legend.position = \"none\")\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "EYVyKIUELXyz" + }, + "source": [ + "Easy-gg!\n", + "\n", + "ឥឡូវនេះយើងអាចមើលឃើញទិន្នន័យនេះមានសំឡេងរំខានបន្តិច៖ ដោយការពិនិត្យមើលជួរដេកនីមួយៗជារាងប្រអប់ អ្នកអាចឃើញតម្លៃចំម្លង។ អ្នកអាចត្រួតពិនិត្យតារាងទិន្នន័យហើយដកតម្លៃចំម្លងទាំងនេះចេញ ប៉ុន្តែវានឹងធ្វើឱ្យទិន្នន័យមានតិចតួច។\n", + "\n", + "សម្រាប់ពេលនេះ យើងមកជ្រើសរើសជួរដេកដែលយើងនឹងប្រើសម្រាប់ហាត់ clustering របស់យើង។ យើងនឹងជ្រើសរើសជួរដេកជាចំនួនដែលមានជួរដូចគ្នា។ យើងអាចបម្លែង `artist_top_genre` ជាចំនួនតែសម្រាប់ពេលនេះយើងនឹងលុបវាចេញ។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "-wkpINyZLXy0" + }, + "source": [ + "# Select variables with similar ranges\n", + "df_numeric_select <- df_numeric %>% \n", + " select(popularity, danceability, acousticness, loudness, energy) \n", + "\n", + "# Normalize data\n", + "# df_numeric_select <- scale(df_numeric_select)\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "D7dLzgpqLXy1" + }, + "source": [ + "## 3. កំណត់ក្រុមតាមវិធី k-means ក្នុង R\n", + "\n", + "យើងអាចកំណត់ក្រុមតាមវិធី k-means ក្នុង R ជាមួយមុខងារ `kmeans` ដែលមានមុនហើយ សូមមើល `help(\"kmeans()\")`។ មុខងារ `kmeans()` ទទួលបាន data frame ដែលមានជួរឈរផ្ទាល់ខ្លួនទាំងអស់ជាឈ្មោះបញ្ចូលដើមរបស់វា។\n", + "\n", + "ជំហានដំបូង នៅពេលប្រើក្រុមតាមវិធី k-means គឺត្រូវកំណត់ចំនួនក្រុម (k) ដែលនឹងត្រូវបង្កើតឡើងក្នុងដំណោះស្រាយចុងក្រោយ។ យើងដឹងថាមាន 3 ប្រភេទបទចម្រៀងដែលយើងបានចែងចេញពីឃ្លាំងទិន្នន័យ ដូច្នេះសូមព្យាយាមប្រើ 3៖\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "uC4EQ5w7LXy5" + }, + "source": [ + "set.seed(2056)\n", + "# Kmeans clustering for 3 clusters\n", + "kclust <- kmeans(\n", + " df_numeric_select,\n", + " # Specify the number of clusters\n", + " centers = 3,\n", + " # How many random initial configurations\n", + " nstart = 25\n", + ")\n", + "\n", + "# Display clustering object\n", + "kclust\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hzfhscWrLXy-" + }, + "source": [ + "វត្ថុ kmeans មានព័ត៌មានជាច្រើនដែលបានពិពណ៌នាយ៉ាងលម្អិតនៅក្នុង `help(\"kmeans()\")`។ សម្រាប់ពេលនេះ យើងនឹងផ្តោតលើខ្លះៗប៉ុណ្ណោះ។ យើងឃើញថា ទិន្នន័យត្រូវបានក្រុម into 3 ក្រុមមានទំហំ 65, 110, 111។ លទ្ធផលនោះក៏មានមជ្ឈំដ្ឋានក្រុម (means) សម្រាប់ក្រុមទាំង 3 នៅលើអថេរចំនួន 5 ។\n", + "\n", + "វ៉ិចទ័រក្រុមគឺជាចំណាត់ថ្នាក់ក្រុមសម្រាប់ការសង្កេតនីមួយៗ។ យើងចូរប្រើមុខងារ `augment` ដើម្បីបន្ថែមចំណាត់ថ្នាក់ក្រុមទៅកាន់កំណត់ត្រាទិន្នន័យដើម។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "0XwwpFGQLXy_" + }, + "source": [ + "# Add predicted cluster assignment to data set\n", + "augment(kclust, df_numeric_select) %>% \n", + " relocate(.cluster) %>% \n", + " slice_head(n = 10)\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "NXIVXXACLXzA" + }, + "source": [ + "ល្អបំផុត, យើងទើបបំបែកក្រុមទិន្នន័យរបស់យើងទៅជាក្រុមចំនួន 3 ក្រុម។ ហើយហើយ, ការក្រុមហ៊ុនរបស់យើងល្អប៉ុនណា 🤷? យើងមើលទៅលើ `ពិន្ទុ Silhouette`\n", + "\n", + "### **ពិន្ទុ Silhouette**\n", + "\n", + "[ការ​វិភាគ Silhouette](https://en.wikipedia.org/wiki/Silhouette_(clustering)) អាចត្រូវបានប្រើដើម្បីសិក្សាចម្ងាយបំបែករវាងក្រុមដែលទទួលបាន។ ពិន្ទុនេះផ្លាស់ប្តូរពី -1 ទៅ 1 ហើយបើពិន្ទុជិត 1 នោះក្រុមនោះមានភាពសម្បូរបែប និងបំបែកចេញពីក្រុមផ្សេងទៀតយ៉ាងច្បាស់។ តម្លៃជិត 0 ជាតំណាងឱ្យក្រុមឈ្លោះគ្នាមានគំរូដែលនៅជិតស្និទ្ធដល់ស្រមោលសម្រេចចិត្តរវាងក្រុមជិតខាង។[ប្រភព](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)។\n", + "\n", + "វិធីសាស្រ្ត silhouette មធ្យមគិតពិន្ទុ silhouette មធ្យមនៃការសង្កេតសម្រាប់តម្លៃ *k* ផ្សេងៗគ្នា។ ពិន្ទុ silhouette មធ្យមខ្ពស់បង្ហាញពីការបែងចែកក្រុមល្អ។\n", + "\n", + "មុខងារ `silhouette` ក្នុងកញ្ចប់ cluster ត្រូវបានប្រើដើម្បីគណនាល្បះ silhouette មធ្យម។\n", + "\n", + "> silhouette អាចត្រូវបានគណนาด้วยវិធីសាស្រ្ត [ចម្ងាយ](https://en.wikipedia.org/wiki/Distance \"ចម្ងាយ\") ផ្សេងៗដូចជា [ចម្ងាយ Euclidean](https://en.wikipedia.org/wiki/Euclidean_distance \"ចម្ងាយ Euclidean\") ឬ [ចម្ងាយ Manhattan](https://en.wikipedia.org/wiki/Manhattan_distance \"ចម្ងាយ Manhattan\") ដែលយើងបានពិភាក្សានៅក្នុង [មេរៀនមុន](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb)។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "Jn0McL28LXzB" + }, + "source": [ + "# Load cluster package\n", + "library(cluster)\n", + "\n", + "# Compute average silhouette score\n", + "ss <- silhouette(kclust$cluster,\n", + " # Compute euclidean distance\n", + " dist = dist(df_numeric_select))\n", + "mean(ss[, 3])\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "QyQRn97nLXzC" + }, + "source": [ + "ពិន្ទុរបស់យើងគឺ **.549**, ដូច្នេះគឺនៅកណ្តាល។ នេះបង្ហាញថាដាតារបស់យើងមិនសមស្របជាពិសេសសម្រាប់ប្រភេទ clustering នេះទេ។ យើងមកមើលថាតើយើងអាចបញ្ជាក់សង្ស័យនេះតាមរូបមន្តវិជ្ជាមានទេឬនៅ។ កញ្ចប់ [factoextra package](https://rpkgs.datanovia.com/factoextra/index.html) ផ្តល់នូវមុខងារ (`fviz_cluster()`) ដើម្បីបង្ហាញ clustering។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "7a6Km1_FLXzD" + }, + "source": [ + "library(factoextra)\n", + "\n", + "# Visualize clustering results\n", + "fviz_cluster(kclust, df_numeric_select)\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IBwCWt-0LXzD" + }, + "source": [ + "ការយកគ្នាប៉ះគ្នានៅក្នុងក្រុមបង្ហាញថាដាតារបស់យើងមិនសមរម្យពិសេសសម្រាប់ប្រភេទក្រុមបែងចែកនេះទេ ប៉ុន្តែទៅមុខទៅ។\n", + "\n", + "## 4. ការកំណត់ចំនួនក្រុមដែលល្អបំផុត\n", + "\n", + "សំណួរសំខាន់មួយដែលនៅតែមានជាញឹកញាប់ក្នុងការបែងចែកជាក្រុម K-Means គឺនេះ - ដោយគ្មានស្លាកថេរជាប់ថ្នាក់ដែលបានស្គាល់ធ្វើដូចម្តេចដើម្បីដឹងចំនួនក្រុមដែលត្រូវបំបែកដាតារបស់អ្នក?\n", + "\n", + "មធ្យោបាយមួយដែលយើងអាចព្យាយាមរកគឺការប្រើតំណាងទិន្នន័យ `បង្កើតស៊េរីនៃគំរូបែងចែកក្រុម` ជាមួយចំនួនក្រុមកើនឡើង (ឧ. ពី 1-10) ហើយវាយតម្លៃមាត្រដ្ឋានបែងចែកក្រុមដូចជា **ពិន្ទុ Silhouette។**\n", + "\n", + "មកកំណត់ចំនួនក្រុមល្អបំផុតដោយគណនាវិធីសាស្ត្របែងចែកក្រុមសម្រាប់តម្លៃ *k* ផ្សេងៗ ហើយវាយតម្លៃ **ផលបូកក្នុងចំណោមក្រុម (Within Cluster Sum of Squares)** (WCSS)។ ផលបូកសរុបក្នុងចំណោមក្រុម (WCSS) វាស់វែងភាពដិតដ្យរបស់ការបែងចែកក្រុម ហើយយើងចង់ឲ្យវាថយចុះបំផុត អោយតម្លៃទាបមានន័យថាចំណុចទិន្នន័យស្ថិតនៅជិតគ្នា។\n", + "\n", + "មកពិនិត្យឥទ្ធិពលនៃជម្រើសខុសៗគ្នារបស់ `k` ពី 1 ដល់ 10 ទៅលើការបែងចែកក្រុមនេះ។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "hSeIiylDLXzE" + }, + "source": [ + "# Create a series of clustering models\n", + "kclusts <- tibble(k = 1:10) %>% \n", + " # Perform kmeans clustering for 1,2,3 ... ,10 clusters\n", + " mutate(model = map(k, ~ kmeans(df_numeric_select, centers = .x, nstart = 25)),\n", + " # Farm out clustering metrics eg WCSS\n", + " glanced = map(model, ~ glance(.x))) %>% \n", + " unnest(cols = glanced)\n", + " \n", + "\n", + "# View clustering rsulsts\n", + "kclusts\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "m7rS2U1eLXzE" + }, + "source": [ + "ឥឡូវនេះដែលយើងមានតម្លៃបូកសរុបនៃចំនួនបត់ខ្ទង់ខាងក្នុងក្រុម (tot.withinss) សម្រាប់ជAlgorithms ការបែងចែកនីមួយៗដោយមានមជ្ឈមណ្ឌល *k* យើងប្រើវិធី [elbow method](https://en.wikipedia.org/wiki/Elbow_method_(clustering)) ដើម្បីស្វែងរកចំនួនក្រុមដែលល្អបំផុត។ វិធីនេះរួមមានការរៀបចំក្រាប WCSS ជាអនុគមន៍នៃចំនួនក្រុម ហើយជ្រើសយក [elbow of the curve](https://en.wikipedia.org/wiki/Elbow_of_the_curve \"Elbow of the curve\") ជាចំនួនក្រុមដែលត្រូវប្រើ។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "o_DjHGItLXzF" + }, + "source": [ + "set.seed(2056)\n", + "# Use elbow method to determine optimum number of clusters\n", + "kclusts %>% \n", + " ggplot(mapping = aes(x = k, y = tot.withinss)) +\n", + " geom_line(size = 1.2, alpha = 0.8, color = \"#FF7F0EFF\") +\n", + " geom_point(size = 2, color = \"#FF7F0EFF\")\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "pLYyt5XSLXzG" + }, + "source": [ + "រូបភាពបង្ហាញពីការកាត់បន្ថយ WCSS សំខាន់មួយ (ដូច្នេះ​មាន *ភាពតឹង*) ខណៈដែលចំនួនក្លុស្ទឺរកើនពីមួយទៅពីរ ហើយមានការកាត់បន្ថយច្បាស់លាស់បន្ថែមទៀតពីពីរទៅបីក្លុស្ទឺរ។ បន្ទាប់មក ការកាត់បន្ថយកាន់តែតិចបន្ថយ អោយមាន `elbow` 💪 នៅក្នុងតារាងនៅជិតបីក្លុស្ទឺរ។ នេះជាសញ្ញាល្អថាមានពីរដល់បីក្លុស្ទឺរដែលបំបែកបានល្អនៃចំណុចទិន្នន័យ។\n", + "\n", + "ពេលនេះយើងអាចបន្តទៅយកម៉ូដែលក្លុស្ទឺរដែល `k = 3` ៖\n", + "\n", + "> `pull()`: ប្រើសម្រាប់យកជួរឈរតែមួយ \n", + ">\n", + "> `pluck()`: ប្រើសម្រាប់បញ្ជីឬរចនាសម្ព័ន្ធទិន្នន័យដូចជា បញ្ជី\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "JP_JPKBILXzG" + }, + "source": [ + "# Extract k = 3 clustering\n", + "final_kmeans <- kclusts %>% \n", + " filter(k == 3) %>% \n", + " pull(model) %>% \n", + " pluck(1)\n", + "\n", + "\n", + "final_kmeans\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "l_PDTu8tLXzI" + }, + "source": [ + "សូមអរគុណ! ឲ្យយើងបន្តបង្ហាញ cluster ដែលបានទទួល។ តើចង់មានអន្តរកម្មមួយប្រើ `plotly` ដែរឬទេ?\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "dNcleFe-LXzJ" + }, + "source": [ + "# Add predicted cluster assignment to data set\n", + "results <- augment(final_kmeans, df_numeric_select) %>% \n", + " bind_cols(df_numeric %>% select(artist_top_genre)) \n", + "\n", + "# Plot cluster assignments\n", + "clust_plt <- results %>% \n", + " ggplot(mapping = aes(x = popularity, y = danceability, color = .cluster, shape = artist_top_genre)) +\n", + " geom_point(size = 2, alpha = 0.8) +\n", + " paletteer::scale_color_paletteer_d(\"ggthemes::Tableau_10\")\n", + "\n", + "ggplotly(clust_plt)\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "6JUM_51VLXzK" + }, + "source": [ + "ប្រហែលជាយើងបានរំពឹងថាclusterនីមួយៗ(ដែលតំណាងដោយពណ៌ផ្សេងៗ)នឹងមានប្រភេទភែនខុសគ្នា(ដែលតំណាងដោយរាងធាតុផ្សេងៗ)។\n", + "\n", + "យើងមកសាកសួរពិនិត្យភាពត្រូវតាមម៉ូដែល។\n" + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "HdIMUGq7LXzL" + }, + "source": [ + "# Assign genres to predefined integers\n", + "label_count <- results %>% \n", + " group_by(artist_top_genre) %>% \n", + " mutate(id = cur_group_id()) %>% \n", + " ungroup() %>% \n", + " summarise(correct_labels = sum(.cluster == id))\n", + "\n", + "\n", + "# Print results \n", + "cat(\"Result:\", label_count$correct_labels, \"out of\", nrow(results), \"samples were correctly labeled.\")\n", + "\n", + "cat(\"\\nAccuracy score:\", label_count$correct_labels/nrow(results))\n" + ], + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "C50wvaAOLXzM" + }, + "source": [ + "ម៉ូដែលនេះមានភាពត្រឹមត្រូវមិនអីប៉ិន្មាន ប៉ុន្តែមិនល្អទេ។ អាចជាករណីដែលទិន្នន័យមិនសមស្របសម្រាប់ការបែងចែកក្រុម K-Means។ ទិន្នន័យនេះមានភាពមិនស្តង់ដារខ្លាំង ពិតប្រាកដតិច និងមានចម្រុះខ្នាតធំជាងគ្នារវាងតម្លៃជួរឈរដើម្បីបង្កើតក្រុមបានល្អ។ ជាក់ស្តែង ក្រុមដែលបង្កើតឡើងប្រហែលជាត្រូវបានផលប៉ះពាល់យ៉ាងខ្លាំង ឬបាត់បង់ដោយប្រភេទត្រីយៈចំនួនបីដែលយើងបានកំណត់ខាងលើ។\n", + "\n", + "ប៉ុន្តែ យ៉ាងណា នេះគឺជាដំណើរការរៀនមួយ!\n", + "\n", + "ក្នុងឯកសាររបស់ Scikit-learn អ្នកអាចឃើញថា ម៉ូដែលដូចនេះ ដែលមានក្រុមមិនត្រូវបានកំណត់យ៉ាងច្បាស់ មានបញ្ហា 'ចម្រុះ':\n", + "\n", + "

\n", + " \n", + "

ព័ត៌មានក្រាហ្វិចពី Scikit-learn
\n", + "\n", + "\n", + "\n", + "## **ចម្រុះ**\n", + "\n", + "ចម្រុះត្រូវបានកំណត់ថា \"ជាមធ្យមនៃភាពខុសគ្នាសុក្រឹតពីមធ្យម\" [ប្រភព](https://www.mathsisfun.com/data/standard-deviation.html)។ ក្នុងបរិបទនៃបញ្ហាបែងចែកក្រុមនេះ វាមានន័យថាទិន្នន័យដែលលេខក្នុងសំណុំទិន្នន័យរបស់យើងមានមុខងារចេញពីមធ្យមមួយចំនួនច្រើនពេក។\n", + "\n", + "✅ នេះគឺជាពេលវេលាដ៏ល្អក្នុងការពិចារណាពីវិធីសាស្ត្រទាំងឡាយដែលអ្នកអាចកែតម្រូវបញ្ហានេះ។ កែសម្រួលទិន្នន័យបន្ថែមទៀត? ប្រើជួរឈរផ្សេងទៀត? ប្រើអាល់ហ្គរីធម៍ផ្សេងទៀត? ការជូនដំណឹង៖ សូមសាកល្បង [បង្រួមទិន្នន័យរបស់អ្នក](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) ដើម្បីធ្វើឲ្យធម្មតា ហើយសាកល្បងជួរឈរផ្សេងទៀត។\n", + "\n", + "> សាកល្បង '[កាឡ្យ៊ុលទ័រចម្រុះ](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' ដើម្បីយល់បន្ថែមពីគំនិតនេះ។\n", + "\n", + "------------------------------------------------------------------------\n", + "\n", + "## **🚀ការប្រកួតប្រជែង**\n", + "\n", + "ចំណាយពេលខ្លះជាមួយសៀវភៅកំណត់ត្រានេះ ដើម្បីកែប្រែប៉ារ៉ាម៉ែត្រ។ តើអ្នកអាចបង្កើតភាពត្រឹមត្រូវរបស់ម៉ូដែលឲ្យល្អឡើងដោយសម្អាតទិន្នន័យបន្ថែមទៀត (ដកចេញតម្លៃចេញក្រៅឧទាហរណ៍)? អ្នកអាចប្រើទំងន់ដើម្បីផ្តល់ទំងន់បន្ថែមដល់គំរូទិន្នន័យណាមួយ។ តើមានអ្វីផ្សេងទៀតដែលអ្នកអាចធ្វើដើម្បីបង្កើតក្រុមល្អជាងនេះ?\n", + "\n", + "ការជូនដំណឹង៖ សូមព្យាយាមបង្រួមទិន្នន័យរបស់អ្នក។ មានកូដដែលមិនបានដំណើរការបង្ហាញក្នុងសៀវភៅកំណត់ត្រា ដែលបន្ថែមការបង្រួមស្តង់ដារ ដើម្បីធ្វើឲ្យជួរឈរទិន្នន័យមានស្រដៀងគ្នាជា range។ អ្នកនឹងសង្កេតឃើញថា ខណៈពេលដែលពិន្ទុនៃសំណុំបែបវិលកាត់ធ្លាក់ចុះ ការបង្ហាញរូបភាពលំនាំកោងកភាគច្រើនទន់ភ្លន់ឡើង។ នេះដោយសារតែការរិះគន់ទិន្នន័យដែលមិនបានបង្រួមអនុញ្ញាតឲ្យទិន្នន័យដែលមានចម្រុះតិចមានទំងន់ធំជាង។ អានបន្ថែមពីបញ្ហានេះ [នៅទីនេះ](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226)។\n", + "\n", + "## [**វិញ្ញាសាក្រោយមេរៀន**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/30/)\n", + "\n", + "## **ការត្រួតពិនិត្យ និងសិក្សាឯករាជ្យ**\n", + "\n", + "- មើលឧបករណ៍សម្រង់ក្រុម K-Means [ដូចមួយនេះ](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). អ្នកអាចប្រើឧបករណ៍នេះដើម្បីមើលទិន្នន័យឧទាហរណ៍ និងកំណត់អំពែកម្ពុជា (centroids) របស់វា។ អ្នកអាចកែប្រែភាពចៃដន្យនៃទិន្នន័យ ចំនួនក្រុម និងចំនួនអំពែកម្ពុជា។ វាមានប្រយោជន៍ក្នុងការជួយអ្នកយល់ពីរបៀបដែលទិន្នន័យអាចត្រូវបានភ្ជាប់ក្រុមអ្វីមួយ?\n", + "\n", + "- ផងដែរ មើលឯកសារនេះ [អំពី K-Means](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) ពីសាកលវិទ្យាល័យ Stanford។\n", + "\n", + "ចង់សាកល្បងជំនាញបែងចែកក្រុមថ្មីរបស់អ្នកទៅជាសំណុំទិន្នន័យដែលសមស្របសម្រាប់ K-Means ដែរឬទេ? សូមមើល៖\n", + "\n", + "- [បណ្តុះបណ្តាល និងវាយតម្លៃម៉ូដែលបែងចែកក្រុម](https://rpubs.com/eR_ic/clustering) ដោយប្រើ Tidymodels និងមិត្តភក្តិ\n", + "\n", + "- [វិភាគក្រុម K-means](https://uc-r.github.io/kmeans_clustering), គណនីវិទ្យាជំនាញរបស់ UC ផលិតកម្មអាជីវកម្ម\n", + "\n", + "- [ការបែងចែកក្រុម K-means ជាមួយគោលការណ៍ទិន្នន័យ tidy](https://www.tidymodels.org/learn/statistics/k-means/)\n", + "\n", + "## **ការបញ្ជា**\n", + "\n", + "[សាកល្បងវិធីបែងចែកក្រុមផ្សេងៗ](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/assignment.md)\n", + "\n", + "## អរគុណចំពោះ៖\n", + "\n", + "[Jen Looper](https://www.twitter.com/jenlooper) សម្រាប់បង្កើតកំណែ Pythonដើមនៃមុខងារនេះ ♥️\n", + "\n", + "[`Allison Horst`](https://twitter.com/allison_horst/) សម្រាប់បង្កើតរូបភាពដ៏អស្ចារ្យដែលធ្វើឲ្យ R គួរឲ្យស្វាគមន៍ និងទាក់ទាញ។ រកមើលរូបភាពបន្ថែមនៅក្នុង [ណែនាំរបស់នាង](https://www.google.com/url?q=https://github.com/allisonhorst/stats-illustrations&sa=D&source=editors&ust=1626380772530000&usg=AOvVaw3zcfyCizFQZpkSLzxiiQEM) ។\n", + "\n", + "សូមសំណាងល្អក្នុងការរៀន,\n", + "\n", + "[Eric](https://twitter.com/ericntay), ស្ថាប័នរៀនសង្កេត Microsoft Learn Gold Student Ambassador ។\n", + "\n", + "

\n", + " \n", + "

សិល្បៈដោយ @allison_horst
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបំលែងដោយប្រើសេវាកម្មបកប្រែកម្មវិធី AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងឲ្យបានច្បាស់លាស់ សូមព្រមានថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុស ឬអក្សរបាត់បង់ត្រូវមិនបានផ្ទៀងផ្ទាត់។\n\nឯកសារដើមជាភាសាសូម្បីជាតិក្នុងការប្រើប្រាស់គួរតែត្រូវបានគេចាត់ទុកជាមូលដ្ឋានត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងណែនាំឲ្យប្រើការបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/5-Clustering/2-K-Means/solution/notebook.ipynb b/translations/km/5-Clustering/2-K-Means/solution/notebook.ipynb new file mode 100644 index 000000000..d7a11507c --- /dev/null +++ b/translations/km/5-Clustering/2-K-Means/solution/notebook.ipynb @@ -0,0 +1,548 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python37364bit8d3b438fb5fc4430a93ac2cb74d693a7", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# តន្ត្រីនៃប្រទេសនីហ្សេរីយ៉ា ដែលបានច្រោះពី Spotify - ការវិភាគមួយ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: seaborn in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (0.11.1)\n", + "Requirement already satisfied: pandas>=0.23 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.1.2)\n", + "Requirement already satisfied: matplotlib>=2.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (3.1.0)\n", + "Requirement already satisfied: scipy>=1.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.4.1)\n", + "Requirement already satisfied: numpy>=1.15 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.19.2)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pandas>=0.23->seaborn) (2.8.0)\n", + "Requirement already satisfied: pytz>=2017.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pandas>=0.23->seaborn) (2019.1)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (1.1.0)\n", + "Requirement already satisfied: cycler>=0.10 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (0.10.0)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (2.4.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/jenlooper/Library/Python/3.7/lib/python/site-packages (from python-dateutil>=2.7.3->pandas>=0.23->seaborn) (1.12.0)\n", + "Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from kiwisolver>=1.0.1->matplotlib>=2.2->seaborn) (45.1.0)\n", + "\u001b[33mWARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.\n", + "You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install --upgrade pip' command.\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install seaborn" + ] + }, + { + "source": [ + "ចាប់ផ្តើមពីកន្លែងដែលយើងបានបញ្ចប់ក្នុងមេរៀនចុងក្រោយ ជាមួយទិន្នន័យដែលបាននាំចូលនិងបានតម្រៀប។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " name album \\\n", + "0 Sparky Mandy & The Jungle \n", + "1 shuga rush EVERYTHING YOU HEARD IS TRUE \n", + "2 LITT! LITT! \n", + "3 Confident / Feeling Cool Enjoy Your Life \n", + "4 wanted you rare. \n", + "\n", + " artist artist_top_genre release_date length popularity \\\n", + "0 Cruel Santino alternative r&b 2019 144000 48 \n", + "1 Odunsi (The Engine) afropop 2020 89488 30 \n", + "2 AYLØ indie r&b 2018 207758 40 \n", + "3 Lady Donli nigerian pop 2019 175135 14 \n", + "4 Odunsi (The Engine) afropop 2018 152049 25 \n", + "\n", + " danceability acousticness energy instrumentalness liveness loudness \\\n", + "0 0.666 0.8510 0.420 0.534000 0.1100 -6.699 \n", + "1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n", + "2 0.836 0.2720 0.564 0.000537 0.1100 -7.127 \n", + "3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n", + "4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n", + "\n", + " speechiness tempo time_signature \n", + "0 0.0829 133.015 5 \n", + "1 0.3600 129.993 3 \n", + "2 0.0424 130.005 4 \n", + "3 0.1130 111.087 4 \n", + "4 0.0447 105.115 4 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namealbumartistartist_top_genrerelease_datelengthpopularitydanceabilityacousticnessenergyinstrumentalnesslivenessloudnessspeechinesstempotime_signature
0SparkyMandy & The JungleCruel Santinoalternative r&b2019144000480.6660.85100.4200.5340000.1100-6.6990.0829133.0155
1shuga rushEVERYTHING YOU HEARD IS TRUEOdunsi (The Engine)afropop202089488300.7100.08220.6830.0001690.1010-5.6400.3600129.9933
2LITT!LITT!AYLØindie r&b2018207758400.8360.27200.5640.0005370.1100-7.1270.0424130.0054
3Confident / Feeling CoolEnjoy Your LifeLady Donlinigerian pop2019175135140.8940.79800.6110.0001870.0964-4.9610.1130111.0874
4wanted yourare.Odunsi (The Engine)afropop2018152049250.7020.11600.8330.9100000.3480-6.0440.0447105.1154
\n
" + }, + "metadata": {}, + "execution_count": 11 + } + ], + "source": [ + "\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "\n", + "\n", + "df = pd.read_csv(\"../../data/nigerian-songs.csv\")\n", + "df.head()" + ] + }, + { + "source": [ + "យើងនឹងផ្ទៀងផ្ទាត់តែប្រភេទចំនួន 3 ទេ។ ប្រហែលជាយើងអាចបង្កើតក្រុមចំនួន 3 បាន!\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top genres')" + ] + }, + "metadata": {}, + "execution_count": 12 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]\n", + "df = df[(df['popularity'] > 0)]\n", + "top = df['artist_top_genre'].value_counts()\n", + "plt.figure(figsize=(10,7))\n", + "sns.barplot(x=top.index,y=top.values)\n", + "plt.xticks(rotation=45)\n", + "plt.title('Top genres',color = 'blue')" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " name album \\\n", + "1 shuga rush EVERYTHING YOU HEARD IS TRUE \n", + "3 Confident / Feeling Cool Enjoy Your Life \n", + "4 wanted you rare. \n", + "5 Kasala Pioneers \n", + "6 Pull Up Everything Pretty \n", + "\n", + " artist artist_top_genre release_date length popularity \\\n", + "1 Odunsi (The Engine) afropop 2020 89488 30 \n", + "3 Lady Donli nigerian pop 2019 175135 14 \n", + "4 Odunsi (The Engine) afropop 2018 152049 25 \n", + "5 DRB Lasgidi nigerian pop 2020 184800 26 \n", + "6 prettyboydo nigerian pop 2018 202648 29 \n", + "\n", + " danceability acousticness energy instrumentalness liveness loudness \\\n", + "1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n", + "3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n", + "4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n", + "5 0.803 0.1270 0.525 0.000007 0.1290 -10.034 \n", + "6 0.818 0.4520 0.587 0.004490 0.5900 -9.840 \n", + "\n", + " speechiness tempo time_signature \n", + "1 0.3600 129.993 3 \n", + "3 0.1130 111.087 4 \n", + "4 0.0447 105.115 4 \n", + "5 0.1970 100.103 4 \n", + "6 0.1990 95.842 4 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namealbumartistartist_top_genrerelease_datelengthpopularitydanceabilityacousticnessenergyinstrumentalnesslivenessloudnessspeechinesstempotime_signature
1shuga rushEVERYTHING YOU HEARD IS TRUEOdunsi (The Engine)afropop202089488300.7100.08220.6830.0001690.1010-5.6400.3600129.9933
3Confident / Feeling CoolEnjoy Your LifeLady Donlinigerian pop2019175135140.8940.79800.6110.0001870.0964-4.9610.1130111.0874
4wanted yourare.Odunsi (The Engine)afropop2018152049250.7020.11600.8330.9100000.3480-6.0440.0447105.1154
5KasalaPioneersDRB Lasgidinigerian pop2020184800260.8030.12700.5250.0000070.1290-10.0340.1970100.1034
6Pull UpEverything Prettyprettyboydonigerian pop2018202648290.8180.45200.5870.0044900.5900-9.8400.199095.8424
\n
" + }, + "metadata": {}, + "execution_count": 13 + } + ], + "source": [ + "df.head()" + ] + }, + { + "source": [ + "ទិន្នន័យនេះស្អាតប៉ុនណា? ពិនិត្យមើលចំណុចក្រៅប្រក្រតីដោយប្រើតារាងប្រអប់។ យើងនឹងផ្តោតលើជួរឈរដែលមានចំណុចក្រៅប្រក្រតីតិចជាង (បើទោះជាអ្នកអាចសម្អាតចំណុចក្រៅប្រក្រតីបានក៏ដោយ)។ តារាងប្រអប់អាចបង្ហាញឱ្យឃើញជួរទិន្នន័យ ហើយនឹងជួយក្នុងការជ្រើសរើសជួរឈរដែលត្រូវប្រើ។ សម្គាល់ថា តារាងប្រអប់មិនបង្ហាញអំពីភាពបចេក្ចល ដែលជាធាតុសំខាន់នៃទិន្នន័យដែលអាចកំណត់ក្រុមបានល្អ (https://stats.stackexchange.com/questions/91536/deduce-variance-from-boxplot)។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": {}, + "execution_count": 14 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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AAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOTMpx5g16xWq7FcLu9dOz4+HrOZ9gQAAHj5nHmAh/iOAAAAdo1zCgCwLX53AAD7zG+dzxNUfGS5XI7z8/N71y4uLsbJyclEEwEAADwfZx7gIb4jAACAXeOcAgBsi98dAMA+81vn8yQlAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAA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AAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAKrtqYAAACAASURBVAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDirfQ9Qzfr6envy5Mkb1wAAAIbAPQ9wHXsEAABQjfsUAGBRvO4AAIbMa523E1T8ycrKStvY2Oh7DAAAgFvhnge4jj0CAACoxn0KALAoXncAAEPmtc7brfQ9AAAAAAAAAAAAAAAAwKIJKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAAgDiCCgAAAAAAAAAAAAAAII6gAgAAAAAAAAAAAAAAiCOoAAAAAAAAAAAAAAAA4ggqAAAAAAAAAAAAAACAOIIKAAAAAAAAAAAAAAAgjqACAAAAAAAAAAAAAACII6gAAAAAAAAAAAAAAADiCCoAAAAAAAAAAAAAAIA4ggoAAAAAAAAAAAAAACCOoAIAAAAAAAAAAAAAAIgjqAAAAAAAAAAAAAAAAOIIKgAAAAAAAAAAAAAA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AAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMgRVAAAAAAAAAAAAAAAADmCCgAAAAAAAAAAAAAAIEdQAQAAAAAAAAAAAAAA5AgqAAAAAAAAAAAAAACAHEEFAAAAAAAAAAAAAACQI6gAAAAAAAAAAAAAAAByBBUAAAAAAAAAAAAAAECOoAIAAAAAAAAAAAAAAMiZTz3Aulkulx+dvXnzZjx//nzMZvoTAAAAYHstl8uxWCyune3t7dmJAHwmn68AAAAA28W+B4BN47vr0wQVN1xcXHx0dnx8PE5OTsb+/v4EEwEAAACsxmKxGEdHR9fO7EQAPp/PVwAAAIDtYt8DwKbx3fVpkhIAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAAAAAAAAAAAAAAAAcgQVAAAAAAAAAAAAAABAjqACAAAAAAAAAAAAAADIEVQAAAAAAAAAAAAAAAA5ggoAAAAAAAAAAAAAACBHUAEAAAAAAAAAAAAAAOQIKgAAAAAAAAAAAAAAgBxBBQAAAAAAAAAAAAAAkCOoAPibvfuJjeuq/wZ87Lj5ya/SNEZq+6LWYovUIL1ITXYNKxYsQIioiaNEqhDQFJImFFg6RaLuFikhEW1ZISVK0qqoArGhK9JVky4imggQC6SGqmoiZJpatX6uY78bbDnj8Z07M/fM3Lnf55EQ9vjc8+/eOb33jD8xAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQAUAAAAAAAAAAAAAABCOQEVJH330UfrHP/6RlpaW0sLCwvrrCwsLaWlpKS0tLa2/tvZ962vtbCy3VZnW8v0oe3y/7Qyr7rrJMdatrqvWtiLNM0TlfQ5EYb3Lx9wCADRT0X1eu591W77b9te+n5+f37L8Vsd02mevuu/dau1n0++xo4wzl17nzXx3VsUc1WWec/UjR70bPzMdRXU550A9WSMgJu/9wSrz+3WDOied2nFtAECzCVSU9MMf/jD94Ac/SN/97nfTgQMH0vz8fJqfn08HDhxIzz//fHrhhRfS4uJiWlxcTC+88EI6efLkfa/99Kc/TYuLi/fVuVb2hRdeSPPz823LtJbvVKZI2eP7bWdYdddNjrFurHOrr3O1DdSL9zkQhfUuH3MLANBMRfd57X7Wbflu21/7/p///Gfav39/+uijjzaVX9snbz1m4775IPrerdZ+ltnnH2Xtzgvl9XpNenbrrIo5qss85+pHjnrXPifdKixXd3U550A9WSMgJu/9wWrdD+j2ub/qvhS149oAgOYTqOjShx9+mD777LN06tSpNDs7mz777LP097//Pd28eTNduHAhnT9/Pt28eTP99a9/ve+1999/P124cOG+utbK3rx5M83OzrYt01q+U5kiZY/vt51h1V03Oca6sc6tvs7VNlAv3udAFNa7fMwtAEAzFd3ntftZt+W7bX/t+x/96EdpZWUlnThxYlP5tX3y1mM27psPou/dau1nmX3+UdbuvFBer9ekZ7fOqpijusxzrn7kqHftc9JTp05VVucg1eWcA/VkjYCYvPcHq3U/oNvn/qr7UtSOawMAmk+gokc3btxIN2/evO+1ixcvposXL2567dKlSymllC5fvpxu3bqVUkrp1q1b66+nlNbr2lhmo1u3bqXLly8XlilS9vh+26miD02QY6wb67x06dL69bPx68uXL6erV6+GmWeIKtJ6CsRmvcvH3AIANFPRfV67n3Vbvtv2N+5Vrv0rjnfu3El//OMf18tv3Ce/dOnSfT3bnlAAACAASURBVMes7Zu37oHm6Hu3Nrax1s9O+/yjrN14mzjOXHq9Jj27dVbFHNVlnnP1I0e9V69eXV8Lbty4ka5evdp3nYNUl3MO1JM1AmLy3h+s1v2Adr9fN6hz0qkd1wYAxCBQUaF79+6llZWVTa/du3cvpZTS559/ns6cOZNWVlbS6dOn11/faK3M6urq+murq6vpzJkzaXl5ecsyRcoe3287VfShCXKMtbXO5eXl9etn49eff/55mpubCzHPEFWk9RSIzXqXj7kFAGimovu8dj87ffp0On36dOnyne4Z2x2zca9yo1/+8pdpeXl50z758vJy22Na90Cr7nu3Wtto1bR77K3G27Rx5tLrNenZrbMq5qgu85yrHznqXVlZSXNzc/e9Njc3t+kz0rqqyzkH6skaATF57w/W6urqpv2A1t+vK3rur7ovRefetQEAcQhUDNi1a9fSq6++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OAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOAIVAAAAAAAAAAAAAABAOBPD7kDd7NixY9Nrp0+fTjt37hxCbwAAAAAGZ+fOnemtt97a9BoA/bG+AgAAADSL/R4ARo3/dm1NoKLF+PjmP9qxa9eutq8DAAAANMn4+HjatWvXsLsB0DjWVwAAAIBmsd8DwKjx366tSQkAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAWz1K/gAAIABJREFUAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQAAAAAAAAAAAAAAADhCFQA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AAAAAAAoR1ABAAAAAAAAAAAAAACUI6gAAAAAAAAAAAAAAADKEVQAAAAAAAAAAAAAAADlCCoAAAAAAAAAAAAAAIByBBUAAAAAAAAAAAAAAEA5ggoAAAAAAAAAAAAAAKAcQQUAAAAAAAAAAAAAAFCOoAIAAAAAAAAAAAAAAChHUAEAAAAAAAAAAAAAAJQjqAAAAAAAAAAAAAAAAMoRVAAAAAAAAAAAAAAAAOUIKgAAAAAAAAAAAAAAgHIEFQAAAAAAAAAAAAAAQDmCCgAAAAAAAAAAAAAAoBxBBQAAAAAAAAAAAAAAUI6gAgAAAAAAAAAAAAAAKEdQAQAAAAAAAAAAAAAAlCOoAAAAAAAAAAAAAAAAyhFUAAAAAAAAAAAAAAAA5QgqAAAAAAAAAAAAAACAcgQVAAAAAAAAAAAAAABAOYIKAAAAAAAAAAAAAACgHEEFAAAAAAAAAAAAAABQjqACAAAAAAAAAAAAAAAoR1ABAAAAAAAAAAAAAACUI6gAAAAAAAAAAAAAAADKEVQAAAAAAAAAAAAAAADlCCoAAAAAAAAAAAAAAIByBBUAAAAAAAAAAAAAAEA5ggoAAAAAAAAAAAAAAKAcQQUAAAAAAAAAAAAAAFCOoAIAAAAAAAAAAAAAAChHUAEAAAAAAAAAAAAAAJQjqAAAAAAAAAAAAAAAAMoRVAAAAAAAAAAAAAAAAOUIKgAAAAAAAAAAAAAAgHIEFQAAAAAAAAAAAAAAQDmCCgAAAAAAAAAAAAAAoBxBBQAAAAAAAAAAAAAAUI6gAgAAAAAAAAAAAAAAKEdQAQAAAAAAAAAAAAAAlCOoAAAAAAAAAAAAAAAAyhFUAAAAAAAAAAAAAAAA5QgqAAAAAAAAAAAAAACAcgQVAAAAAAAAAAAAAABAOYIKAAAAAAAAAAAAAACgHEEFAAAAAAAAAAAAAABQjqACAAAAAAAAAAAAAAAoR1ABAAAAAAAAAAAAAACUI6gAAAAAAAAAAAAAAADKEVQAAAAAAAAAAAAAAADlCCoAAAAAAAAAAAAAAIByBBUAAAAAAAAAAAAAAEA5ggoAAAAAAAAAAAAAAKAcQQUAAAAAAAAAAAAAAFCOoAIAAAAAAAAAAAAAAChHUAEAAAAAAAAAAAAAAJQjqAAAAAAAAAAAAAAAAMoRVAAAAAAAAAAAAAAAAOUIKgAAAAAAAAAAAAAAgHIE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gHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAAgHAEKgAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUbOLFixddR4DiNJ2L3PPU9vrmHwAAiC7HvqjUvVapuQAAgPFKvXcF1M01Iq/nz593HWHLaspao5pmraasAABsj0LFCGtra+mzzz5La2trXUeBYjSdi9zz1Pb65h8AAIgux76o1L1WqbkAAIDmzGtMAAAgAElEQVTxSr13BdTNNSKvlZWVdPbs2bSystJ1lLFqylqjmmatpqwAAGyfQsUIN2/eTL/88ku6detW11GgGE3nIvc8tb2++QcAAKLLsS8qda9Vai4AAGC8Uu9dAXVzjcir3++n33//PV25cqXrKGPVlLVGNc1aTVkBANg+hYohHj16lJaWllJKKS0tLaVHjx51nAi613Qucs9T2+u/vt5vv/2244wAAAA1ybGPK/WspdRcAADAeKXeuwLq5hqR1/3799PDhw9TSik9ePAg3b9/v+NEo9WUtUY1zVpNWQEAaEah4jXr6+vp2rVr6eXLlymllP7888907dq1tL6+3nEy6E7Tucg9T22vP2y9r7/+upWsAAAANcixjyv1rKXUXAAAwHil3rsC6uYakddgMEgLCwsbHltYWEiDwaCjRKPVlLVGNc1aTVkBAGhOoeI1d+/eTcvLyxseW15eTvfu3esoEXSv6Vzknqe21x+23s8//9w4HwAAQG1y7ONKPWspNRcAADBeqfeugLq5RuR1/fr1tLq6uuGx1dXVdOPGjY4SjVZT1hrVNGs1ZQUAoDmFilesra2lxcXFoT9bXFxMa2tru5wIutd0LnLPU9vrb7YeAABABDn2caWetZSaCwAAGK/Ue1dA3Vwj8lpZWUl37twZ+rPbt2+nlZWVXU40Wk1Za1TTrNWUFQCAnVGoeMXNmzfTkydPhv7s8ePH6datW7ucCLrXdC5yz1Pb62+2HgAAQAQ59nGlnrWUmgsAABiv1HtXQN1cI/Lq9/tpMBgM/dlgMEhXrlzZ5USj1ZS1RjXNWk1ZAQDYGYWK//j111/T0tLSps/59ttv06NHj3YpEXSv6Vzknqe219/KegAAAHtZjn1cqWctpeYCAADGK/XeFVA314i8fvrpp/Tw4cNNn/PgwYN0//79XUo0Wk1Za1TTrNWUFQCAnVOoSCmtr6+nf/3rX+nly5ebPu/ly5fp2rVraX19fZeSQXeazkXueWp7/a2uBwAAsFfl2MeVetZSai4AAGC8Uu9dAXVzjchrMBikL7/8ckvPXVhYGPnNELuhpqw1qmnWasoKAEA7proOUIK7d++m5eXlLT13eXk53bt3L506dSpzKuhW07nIPU9tr7+d9f7f06dPt/V8oC5DZ9whGKUZ8jvp/YmtGva74sYPxJZjH1fqWUupuWo37H3EZxPaZJ9GSsk+iOLZa0F+pd67AurmGpHX9evX0+rq6paeu7q6mm7cuJE++eSTzKmGqylrjWqatZqyvs45HfA6Z6tUyVlwNs4wR2u9UDExMfHumKf8T9t/506sra2lxcXFbb1mcXExzc7Opunp6UypoFtN5+L48eNZ56nteW2yXkopXbhwYduvASr37z9SSm92nQL+9u8//vGQ9yd24tmzZ+ntt9/uOgbsCc5Fyj1rKTXXXvDs2bN/POazCdnZp8VjH0SF7LWgPaXeuwI2ci7Cq1ZWVtKdO3e29Zrbt2+nubm51Ov1MqUarqasNapp1mrKOoxzOmBLnK1SOmfBu8oZ5l8mM6z5aMyf7f1T8JndvHkzPXnyZFuvefz4cbp161amRNC9pnPR7/ezzlPb89pkPQAAgDHCn4uUetZSai4AAGC8Uu9dAf8Q/lyEv/X7/W3/a7eDwSBduXIlU6LRaspao5pmraasAAC0J0ehohovXrxI33//faPXfvfdd+nFixctJ4Lu7WQuHj582Oh1W5mntud1J+sBAADsBTnORUo9ayk1FwAAMF6p966AujkryOv58+eNr8EPHjxIz58/bznRaDVlrVFNs1ZTVgAA2pWjUHFkzJ/ZDH9nI/v27Usffvhho9eePn067du3r+VE0L2dzMXRo0cbvW4r89T2vO5kPQAAgE2EPhcp9ayl1FwAAMB4pd67AoYKfS7C3/bv39/4Gnzs2LG0f//+lhONVlPWGtU0azVlBQCgXVNtL7i+vv6/m/18YmKi7b9yR86fP59+/PHHbX1d2+HDh9O5c+cypoJuNZ2LhYWFdOnSpWzz1Pa8NlkvpZRu3LiRDh06tK3XAPV4+vRpunDhwsYH/+u/uwkDowz5nfzmm2/SgQMHOghDbYZd5956662O0sDe41yk3LOWUnPtBcPeR3w2oU32aaSU7IMonr0W5FXqvStgI+civGphYSGdPn06DQaDLb9mcnIyXb16NWOq4WrKWqOaZq2mrMM4pwNe52yVKjkLzsYZ5mitFypqMz09nebn59MXX3yx5dfMz8+n6enpjKmgW03notfrZZ2ntue1yXoppXTo0KF08ODBbb0GqFxhB/ww7HfywIED3p9obHIyx5cXAjXIcS5S6llLqbn2gmHvIz6bkJ19Wjz2QVTIXgvaU+q9K6Buzgry6vV66cyZM2lpaWnLrzl79mzq9XoZUw1XU9Ya1TRrNWUdxjkdsCXOVimds+Bd5QzzL/4rpJROnTqVZme39s2Ss7Oz6eTJk5kTQfeazkXueWp7/e2sBwAAsBfl2MeVetZSai4AAGC8Uu9dAXVzjcjr0qVLaWZmZkvPnZmZSRcvXsycaLSastaoplmrKSsAAO1QqEh/fa3k5cuX09TU5l/YMTU1lS5fvlzc11BCDk3nIvc8tb3+VtcDAADYq3Ls40o9ayk1FwAAMF6p966AurlG5DU5OZn6/f6Wntvv9zv913FrylqjmmatpqwAALTDp/v/OHLkSJqbm9v0OR999FE6cuTILiWC7jWdi9zz1Pb6W1kPAABgL8uxjyv1rKXUXAAAwHil3rsC6uYakdeJEyfS0aNHN33OsWPH0okTJ3Yp0Wg1Za1RTbNWU1YAAHZOoeIV58+fT4cOHRr6s8OHD6dz587tciLoXtO5yD1Pba+/2XoAAAAR5NjHlXrWUmouAABgvFLvXQF1c43Ia2FhYeQ3OkxOTqarV6/ucqLRaspao5pmraasAADsjELFK6anp9P8/PzQn83Pz6fp6eldTgTdazoXueep7fU3Ww8AACCCHPu4Us9aSs0FAACMV+q9K6BurhF59Xq9dObMmaE/O3v2bOr1erucaLSastaoplmrKSsAADujUPGaU6dOpdnZ2Q2Pzc7OppMnT3aUCLrXdC5yz1Pb6w9b77333mucDwAAoDY59nGlnrWUmgsAABiv1HtXQN1cI/K6dOlSmpmZ2fDYzMxMunjxYkeJRqspa41qmrWasgIA0JxCxWsmJibS5cuX09TUVEoppTfeeCN9+umnaWJiouNk0J2mc5F7ntpef9h6H3/8cStZAQAAapBjH1fqWUupuQAAgPFKvXcF1M01Iq/JycnU7/c3PPb555+nycny/telmrLWqKZZqykrAADN+aQ/xJEjR9Lc3FxKKaW5ubn07rvvdpwIutd0LnLPU9vrv77eO++8s+OMAAAANcmxjyv1rKXUXAAAwHil3rsC6uYakdeJEyfS0aNHU0opHTt2LL3//vsdJxqtpqw1qmnWasoKAEAzChUjnD9/Ph0/fjydO3eu6yhQjKZzkXue2l7f/AMAANHl2BeVutcqNRcAADBeqfeugLq5RuS1sLCQ3nzzzXT16tWuo4xVU9Ya1TRrNWUFAGD7proOUKrp6en01VdfpX379nUdBYrRdC5yz1Pb67+63h9//NHKmgAAADXJsY8r9ayl1FwAAMB4pd67AurmGpFXr9dLt2/fTvv37+86ylg1Za1RTbNWU1YAALbPN1Rswodg+Kemc5F7ntpe3/wDAADR5dgXlbrXKjUXAAAwXqn3roC6uUbkVVNBoaasNapp1mrKCgDA9ihUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAAAAAAAAAAAAAAAA4ShUAADA/7F379HWnHV9wL+/NxcgJCFyUVpAwkVcICqsJkgQ4VVRqwsERClasa9KEVpslaqwrNrUeqOWBVphRbyQIF6gSCJFQaAYigISoBZSCBclUeSSIBJCQhJCpn/MnJz9npy9z97n7LNvz+ez1qx37/fMfp6Z+T3zPDOz5zcbAAAAAAAAAACA5kioAAAAAAAAAAAAAAAAmiOhAgAAAAAAAAAAAAAAaI6ECgAAAAAAAAAAAAAAoDkSKgAAAAAAAAAAAAAAgOZIqAAAAAAAAAAAAAAAAJojoQIAAAAAAAAAAAAAAGiOhAoAAAAAAAAAAAAAAKA5EioAAAAAAAAAAAAAAIDmSKgAAAAAAAAAAAAAAACaI6ECAAAAAAAAAAAAAABojoQKAAAAAAAAAAAAAACgORIqAAAAAAAAAAAAAACA5kioAAAAAAAAAAAAAAAAmiOhAgAAAAAAAAAAAAAAaI6ECgAAAAAAAAAAAAAAoDkSKgAAAAAAAAAAAAAAgOZIqAAAAAAAAAAAAAAAAJojoQIAAAAAAAAAAAAAAGiOhAoAAAAAAAAAAAAAAKA5EioAAAAAAAAAAAAAAIDmSKgAAAAAAAAAAAAAAACaI6ECAAAAAAAAAAAAAABojoQKAAAAAAAAAAAAAACgOScuewEAVtnpp5+eiy666Fb/BwCwrhzfADBvxhYAMB4CAADL57wEAJjEscJ4EioAJjhy5EjOOOOMZS8GAMDcOL4BYN6MLQBgPAQAAJbPeQkAMIljhfGOLHsBAAAAAAAAAAAAAAAAFk1CBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQgUAAAAAAAAAAAAAANAcCRUAAAAAAAAAAAAAAEBzJFQAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADTnxGUvAADAqqubblj2ImyOm67f9f9q8Uuy1rRJAABat1HHxM6TprJRMQcAAACAJXGdbU5c1z002ijLIKECAGAPt7/0lctehI126qUXLnsRAACANbPp52nOkwAAAACAw7Dp11aXyXVdWF9Hlr0AAAAAAAAAAAAAAAAAiyahAgAAAAAAAAAAAAAAaI6ECgAAAAAAAAAAAAAAoDknLnsBAABWyemnn56LLrpo2YuxsW6++eZcc801x/3faaedliNH5Pke1Omnn77sRQAAgEOx6edpzpP2z3kQAAAAAIy36ddWl8l13cVyLZjDJqECAGDEkSNHcsYZZyx7MTbaHe94x2UvAgAAsEZaOE9zngQAAAAAzFsL11aXyXVd2BxSoQAAAAAAAAAAAAAAgOZIqAAAAAAAAAAAAAAAAJojoQIAAAAAAAAAAAAAAGiOhAoAAAAAAAAAAAAAAKA5EioAAAAAAAAAAAAAAIDmSKgAAAAAAAAAAAAAAACaI6ECAAAAAAAAAAAAAABojoQKAAAAAAAAAAAAAACgORIqAAAAAAAAAAAAAACA5kioAAAAAAAAAAAAAAAAmiOhAgAAAAAAAAAAAAAAaI6ECgAAAAAAAAAAAAAAoDkSKgAAAAAAAAAAAAAAgOZIqAAAAAAAAAAAAAAAAJojoQIAAAAAAAAAAAAAAGiOhAoAAAAAAAAAAAAAAKA5EioAAAAAAAAAAAAAAIDmSKgAAAAAAAAAAAAAAACaI6ECAAAAAAAAAAAAAABojoQKAAAAAAAAAAAAAACgORIqAAAAAAAAAAAAAACA5kioAAAAAAAAAAAAAAAAmiOhAgAAAAAAAAAAAAAAaI6ECgAAAAAAAAAAAAAAoDkSKgAAAAAAAAAAAAAAgOZIqAAAAAAAAAAAAAAAAJojoQIAAAAAAAAAAAAAAGiOhAoAAAAAAAAAAAAAAKA5EioAAAAAAAAAAAAAAIDmSKgAAAAAAAAAAAAAAACaI6ECAAAAAAAAAAAAAABojoQKAAAAAAAAAAAAAACgORIqAAAAAAAAAAAAAACA5kioAAAAAAAAAAAAAAAAmiOhAgAAAAAAAAAAAAAAaI6ECgAAAAAAAAAAAAAAoDkSKgAAAAAAAAAAAAAAgOZIqAAAAAAAAAAAAAAAAJojoQIAAAAAAAAAAAAAAGiOhAoAAAAAAAAAAAAAAKA5EioAAAAAAAAAAAAAAIDmSKgAAAAAAAAAAAAAAACaI6ECAAAAAAAAAAAAAABojoQKAAAAAAAAAAAAAACgORIqAAAAAAAAAAAAAACA5kioAAAAAAAAAAAAAAAAmiOhAgAAAAAAAAAAAAAAaI6ECgAAAAAAAAAAAAAAoDkSKgAAAAAAAAAAAAAAgOZIqAAAAAAAAAAAAAAAAJojoQIAAAAAAAAAAAAAAGiOhAoAAAAAAAAAAAAAAKA5EioAAAAAAAAAAAAAAIDmSKgAAAAAAAAAAAAAAACaI6ECAAAAAAAAAAAAAABojoQKAAAAAAAAAAAAAACgORIqAAAAAAAAAAAAAACA5kioAAAAAAAAAAAAAAAAmiOhAgAAAAAAAAAAAAAAaM6JS6jzhK0XH/vYx5ZQPQAAAKtux/niCePmgzXkuggAAAB7cm2EDeW6CAAAAHta9HWR6rrusOs4vsKqs5JcstBKAQAAWGdnd133jmUvBMyD6yIAAADsg2sjbATXRQAAANiHQ78ucuQwCwcAAAAAAAAAAAAAAFhFy/iFitsk+crh7VVJvrDQBWjbXbP9tIezk3x8icvCfInt5hLbzSW2m0tsN5fYbi6xXU0nJLnL8Po9XdfdsMyFgXlxXWQsfTHjaBuMo20wjrbBONoG42gbjLPstuHaCBvHdZG1suw+kNmJ2foRs/UjZutHzNaPmK0fMVs/6xKzhV4XOfEwC9/NsEJ+jnQJqmr07ce7rvvIspaF+RLbzSW2m0tsN5fYbi6x3Vxiu9KuWHM3WBcAACAASURBVPYCwLy5LrI7fTHjaBuMo20wjrbBONoG42gbjLMibcO1ETaK6yLrY0X6QGYgZutHzNaPmK0fMVs/YrZ+xGz9rFnMFnZd5MiiKgIAAAAAAAAAAAAAAFgVEioAAAAAAAAAAAAAAIDmSKgAAAAAAAAAAAAAAACaI6ECAAAAAAAAAAAAAABojoQKAAAAAAAAAAAAAACgORIqAAAAAAAAAAAAAACA5kioAAAAAAAAAAAAAAAAmlNd1y17GQAAAAAAAAAAAAAAABbKL1QAAAAAAAAAAAAAAADNkVABAAAAAAAAAAAAAAA0R0IFAAAAAAAAAAAAAADQHAkVAAAAAAAAAAAAAABAcyRUAAAAAAAAAAAAAAAAzZFQAQAAAAAAAAAAAAAANEdCBQAAAAAAAAAAAAAA0BwJFQAAAAAAAAAAAAAAQHMkVAAAAAAAAAAAAAAAAM2RUAEAAAAAAAAAAAAAADRHQsWaqap7VtVzq+qyqrq2qj5VVZdU1Y9X1SkHLPv+VfWMqrqgqt5VVR+pquuHev6mql5WVY+tqprX+nC8w4zvhDpPGeLbDdPlh1FP6w553z02Er+9pmNzWiUGi9xvq+pRVXV+VX1oqOvqqvpAVb2iqp5eVafOs77WHVZsq+rMGfZZffMhWMR+O8T5OVX1zqr6dFV9fqjnLVX1M1X1xfOoh+MtKLb3qqrnVdWlVXXNUM8Hq+qFVfUV86gDYD+q6our6tFV9bNV9Zqq+uTIscT5+yjvW6vqwuHawA3DvxdW1bfOUMaJVfW0qnpzVV1VVZ+rqr+uql+fpc+sqjsP6/XuqvrMML17+L87zVDOA4e6/3pYlquGZXtaVZ04QzkH3jaLNI+2UXM+76z+WsRPDOP0p4bx9LJhHL/nDOs2l7G/qh5WVS+tqiuqvxb28ar606r67mnLGMr57qp63fD564fyXlpV58xSzqJU1VnDsenrRtrzZ6s/z3xxVT18xvL0G+PLWbd+48BtQ78xdTlr029U1elV9aRh+72p+utTV1fVjVV1ZVVdPMRoqn1slbbhpravRZlH26iqozP0GedOsUzGkzVQ/bWz0dgeneIzjjfGl7NR7QM2UW3gOVhVPaD6Y51XV9Xl1R+7XFdVH66qP6iqb5tlnSbUs5Tvwzc0ZpdPuR0vn2Xd9qhzYWPUpsWs+nsDZv1e+dgs6zhSV/P7WVXdpqoeWlU/XFW/U1Xvr6qbt9Z7H+u2yHtJFnosuIlxm/c6Tajn3Bn2taPzqHOodxNjNu12vHiWddujzoVdy9u0mFV/fWjWMe3oLOs4Upf9rOpLquopVfV7VfXeYTlurKqPVdVrq+qpVXW7GZZlY8e043RdZ1qTKcljklydpBszvT/JfQ9Q/ksnlD06XZzkTsveHps2HXZ8J9T733bUc/myt8WmTQvYd49Nue92SY4te3ts0rSo/TbJFyW5aIr4PmjZ22RTpsOMbZIzZ9hnt6Y/XfY22ZRpEfttkicnuW6PmP5Dkm9a9vbYpGlBsX1qkhsm1HFDkmcse1uYTKY2pz3GnfNnKOdIkt/co7zfSHJkj3LunOTtE8q4PslTplier0nysQnlfDTJQ6Yo51/v0Yf/ZZI7L2LbrGPbyBzPO5PcN8kHJnz+6iSPnmKZ5jL2Jzk3yRcmlPPqJLfdo4zbJfnjCWV8Icl/WnZb2LHM/3vKeF6Q5ORF7BvRbyy9XcyzbUS/sYn9xqOmjOdVSb5lXbbhJravdWwbSY5OWUaX5Nw9lsd4sgZTkgcl+fyOdTh62NtA+1h+7E2mVqds4DnYsKzTrNNrk5xxwO13bMq6uszp+/BNjNlQxuVTrtflc9iGCx2jNjFmSc6foe1vTefYz/YXsyQvnvT5GddtUfeSLPxYcBPjNs91mqKuc2fY146K2cRlmXY7XjyHbbjQa3mbGLP09xxPG7OtbXo3+9nsMUt/reGmKZblA0m+aop129gx7VbLcFgFm+YcqOTB2b4x75okP5nknCTfkORFOxrnafus4/wkb0vy3PQHyv88yT9LfzH8GUneM1LPWw6zYbY2LSK+E+q9KcnnknxmqOPyZW+PTZoWtO8eGynnm5M8cMJ0oItVpsXGdqjnDkneMVLeK5N8T/ovbM5K8vgkz0/yd5FQsRaxTXLSHvvp1vS7I3V9z7K3yyZMC+qTvzbbNz58IclvJ3lskrOTPCHJq0bquS7JvZe9XTZhWlBsnzRSzqeT/PQQ77PSn5B+cPjbzUmeuOxtYjKZ2ptG+qguyRVJ/nTk/fkzlPOLI59719D/nT38+66Rv/3ChDJOSPLmkXn/MP01hock+eEknxgZK791Qjn3SHLlMO/nkzwnydcN03OyfQPWJ5LcfUI53zYyPn98WIaHDMv0hyPL+eYkJxzmtlnXtpE5nXcmOW0Yj7fKetEwXp8zjN/XDP9/bSac32ROY3+SHxqZ90NJfmCI6WOTvHHkb7+3x/b5/ZF535jt478fGMrd+ttTl90eRpZ5a7n+Pv055ROGZX5okh9N8pEZ1l+/cYjbZl3bRvQbm9hvPCrJ36b/0u/fpb8m9dAkD0vyxCQvz/YXdTck+epV34ab2r7WsW3k+ISK78/kPuOLJyyL8WQF2sQUbeZItm8s/MTI8h89zG2gfaxH+zCZNnXKBp6DJXnDMM8/JPn1JN+d/hjo7PQPJ7psR1+27/tLsoTvwzcxZkM5lw/zXbTHdrzfHLbhQseoTYxZkrvtEacHpj8G2TqmeL/97EAxO39kvs+kv/n3liTaGdZrYfeALXo/29S4zXOdpqjr3JGy9tq/by9mE5dlq4wX7rEd7zWHbbjQa3mbGLMk95qizT9xpJ7X2c/2F7MkPzX8/Yb0xx8/lOQR6cen78zx3xNemcnXLjZ6TLvVMhxWwaY5B2o7g+nz2SWbOMmPjzSYc/dZx4l7/P2EHH8B79uXvV02ZVpEfMfEc+sm7Z/O9onz5cveHps0LWjfPTZSxpnLXudWpkXtt0leMpRx/aR+N0nt1Y+bViu2eyzDCekPsrdORm637O2yCdOC+uRXj5Txb8bM89yReX5t2dtlE6bDjm2SU7J9YfuaJA/cZZ7Tk7x7mOfjSU5d9nYxmUxtTUn+c5JHJ/mS4f2ZI33f+VOWcb9s3/xzyc5jkKE/vGSkz931aSPpLyBv1f2CXf5+32w/yeSD445jR46FuyTftcvfRy+s7rqO6ZNZ/3qY5+ok99llnheMlHPsMLfNGreNYyOfOfMAy/KzI+X8+C5/f9jIdr54QjkHHvuT3DF9kmSXPtHkzjv+fkKOT4Y9OqacbxiZ51XZcbNb+icRXjH8/R+TfNGy28SwXK8e9qFdb84blnv0JuNHjJlPv7Fh/cYc24Z+Y/P6jbE3847M87iRdXvlqm/DTWxfa9w2js5j3WI8WZnxZI84/ciwvO9L8gtT7POONxpqHybTpk7ZwHOw9E8qfmqS24yp45QcfzP59x1g+x0bKedMMTvQOHb5pDFqjttv4WPUpsZsivV++kg9P3WA7Wc/S/7FsB2+IkMSWEaeqD7Dei3qXpKlHAtuYtzmtU5T1nXurG1KzMau14H3oynrWfi1vE2N2RTr/ZyRdfreA5TT9H6WPoHjl5LcZcLyjt639NsT5tvoMe1Wy7GoBmM6QJD67OStRnfemHmOJHnvSMd80iEty0NHluWXl71tNmFaVnyTPHMo77IkJ0dCxdrGNhIqNjm2Dx+p58eWvd4tTKsy5ib5lmkOXE2rF9sknxo+/8kJ89xhZFneuexts+7TImKbPkt/q46fmzDfo0bme8ayt43JZGp7yv5umn/hyGceOmae0esCt/oicJhnq8/9hySnjJnn2SPl7HYT0l2z/WS1105Y5tcO83whyV13+fvozUzPHlPGKSNj+P87zG2zCtM+28axkc+cuc96T8r2jaLvzfifIj5vpK6zd/n7XMb+JD8xUs6TxpRz92w/UfuPx8zzJ9m+gLvrU3xy/C9d3eqG3VWd0ifibC33r46ZR7/RQL+xz7ah32iw3xiWfetJxFet8jbc1Pa1ytMebePoyPofPUAdxpMVH0+SfGm2f/3lkTn+qZG7xn5e20D7WP32YTK1PmXNzsGmXKcHjpTxqgNsm2Mj5Zy57Fitc8yyuISKlRyj1jFmU6zTW4fP35zkngfYNs3vZ2M+d/HW56acf2H3G6zqfraOcZvXOk1ZzrnzXrZWYzZSz7mHvG1W8lreOsZsj/KOZPtXHK7JmLFzyrLsZ3svy8lJPjqU8enscm00DY5pR8I6eNzI6xfvNkPXdTenfyJKkpyR5OsPaVmuGXl920OqozULj29V3TP907eS5Gld1914kPIYa5X2XeZrUbF9xvDv1Ul+bR+fZ3arst9+38jrCw6h/BYtKrYnD/9+eNwMXdddneSTO+Zn/xYR27NGXr9mwnwXp/9FoaRPwgBYG1VV6X+iOEku67rubbvNN/z/+4e3jx0+N1rO/ZLcf3j78q7rrhtT5fkjrx+/y9+/PbnlutWu/fuOco4Mn9lpdJw4f5e/Z1jGlw9vHzCswy3mtW3I16dPLE2SC4bxeTfnj7zerW3Ma+zfKuczSV45ppyPJHnD8PYbq+q00b8P779xePuGYf7dvHKoJ9l9nVbVn428vs/OP+o3mu43JraNOdJv9Nap30i2v0PY7fuDVdqGG9e+1sCktnFgxpO1GU9ekOTU9Pvdm/aa2fFGc+0DWrdu52B76rru0mx/H3KY5w7LsnExm4cVH6M2KmZV9WXpby5Mkjd1XXfFrGWsgYXEbI4W8p30Cq73TusWt2ks6nrYsmxizA5sxa/lbVrMvjHJ3YbXr5gwdq6zlYnZcL/wXwxv75DkTrvM1tyYJqFiPTx8+PfaJO+cMN/ohcevPaRledLI68sOqY7WLCO+L0xy+yS/03XdxQcsi/FWad9lvg49tlV1crYPFl7fdd31w/+fUFX3qKozq0pi2/wtfb8dTsi2DkovT//zaRzcomK7dfB+r3EzVNXp6X/Ob3R+9m8RsR09efzEuJm6rrsp/ZMDk+ScqjpxxnoAluleSf7p8HqvG5u2/n639L92MOrhu8x3K13XfTzJB4a3u/XLU5WTvfv3rXLeP9S5n3LmtW1aN21M35Fk60L5pJjue+wfzrceMrx96x4Pmtgq5zY5PskySc7OdoLspPZ+Y5KtC8BnV9VJE+pbJbcZef2FXf6u3xhfzqb3G3u1jXnRbwyfWZd+o6q+PMmDhreX7fjbqm3DTWxfK2tS25gj40lvZceTqnpi+qcxfirJj035Mccb48vZqPYBJFm/c7BpbR27Hea5w7JsaswOapXHqE2L2ehD+l4ydq71tqiYzcuivpNetfXead3iNo1FXQ9blk2M2Tys8rW8TYuZMW3xMdtreZob0yRUrIetrOUPDTdpjTN6Efr+Y+eaUVXduarOqarfSvIfh//+ZJLfnVcdjVtofKvqSUm+Lf1P7PyH/ZbDVJax7764qj5aVTdW1Ser6m1V9XNVdbe9P8oMFhHbr87209reU1WnV9Xz0/e/f5v+6fdXV9Xrq+rojGUz3lLH3MF3pv8596RPfOvmXH6rFhXb84Z/71RVTxszz0/vMj/7t4jYfnbk9R3GzTRkwJ8+vD05yX1nrAdgmR4w8nqvm9wm9an7KeceVXX7MeVcPekGo67rPpbtp/4ctyxVdWqSe8y4LLcqJ/PbNptiv+edU23HYTz/0PB2t204j7H/fklO2GtZpihnP23jxCRftse8q+KRI6/ft8vf9RvbWus39mobO+k3tm1cv1FVp1TVl1XVM9N/obWVWP78HbOu2jbcxPa1UmZoGzv9fFVdUVU3VNU/VtX/qarn7Xw6/y6MJ+PLWbqqOiPJrwxvn9V13ScnzT/C8ca2jW0fwC3W7RxsT1X14GxfM5/m3GEaq/R9+DrH7BFV9VdVdU1VXVdVH66ql1XV4+bwtN9VHqPWOWbHGeL0vcPb65K8YtrPTqHF/WxeFvWd9Kqt907rFrdpzHo9bE9V9bqqunLY166sqour6tlV9UXzKH9G6xyz76qq9w7j2TVV9cGquqCqZn5S/i5W+VreOsfsOMN58tYve1yR5OI5lm0/28WQ9HPO8PYTXdd9apfZmhvTJFSsuOHp41tPMB73k0FJkq7r/jF9NlCyfSFuv/VeXFVdVXVJrkryliQ/kKTS38z7+K7rPn2QOlh8fIeBYOvLimd3XXfVfsphb8vad5McTfJPkpyU/mnaX5M+EepDVfVDByybLDS2owcLR9I/De/fp/95rC0nJ3lUkjdW1bNmLJ8dlrjf7tRC1vVCLTi2v53tuL2gqn6jqh5TVWdV1XdU1YXZfgLfz3dd94Z91MFggbEdPZl95Ni5kgcnOXXk/ZfOWA/AMt195PXEPjXJ34283tmn7qec2vG50XL2KmO0nHksy2GWsymOZn/nnVvb8dopriltbce7VNUtT8iZ49ivbeyhqo4kefbIf718l9n0G9u0jcmORr8x73KWqqqOjXx/cG36J6o+N8mXDLP8UpLf2/GxVduGm9i+lm6fbWOnh6U/nz45/bXQByX5kSTvq6pzJ9zgZzwZX84q+K9J7prkL5L81gyfc7yxbZPbBzRvTc/BpvGTI6+nOXeYxtGswPfhGxCze6V/wN+pSW6X/gm/T0xyYZI3H/DG+ZUcozYgZjs9IttPZr6w67prZvjsXo6mvf3swBb8nfTKrPdO6xa3aezzetg0vinJXdLva3dJ/z30Lyb5m6p67Jzq2NMGxOwB6W+svl36ce2+6e+7eWNVXVhVYx+YOIWVXO8NiNlOT0iylVT40jk/eNZ+trunZnvM+h87/9jqmHbi3rOwZKeNvP7s2Lm2XZu+czl1rxn36VeT/JcZnhzDZIuO7y+n/+LirUl+Y59lMJ1Fx/ZvkrwyfWy3Bo57pz/g+M70v3RwXlV1Xde9aJ910FtUbO848vpZ6WP42iQ/k+Td6Z/m8oT0X0LeIckvVdVlXdf90Yz1sG3pY25VfWm2b9Z+S9d1H5o0P1NbWGy7rvtCkn9VVf8z/RcFTxmmUX+W5BckU8zFomL7miQ3pT9/emZVvWTn8fBwAvzzE5YPYNXN0qdeO/J6Z58673Km7d8XsSwHLWfdHfS8cz8xTfrteMOOMmYpZ7exX9vY248mecjw+pVd1+32c86rth31G4sxTdvYot9oq20kyV8leWrXdZfs8rdV24ab2L5W2aS2seVj6fuMP0/ff9yUPrHi0elvhDgpyX9Kn2jxk7t83ngyvpylqqqvS3997KYkT5vxxohV25baB3BY1vEcbKKq2jruT5J3ph/nD2LVvg9f15jdmORVSV6X5NIkV6dPYj0nydPT35j2tUleX1XndF139R717WZVx6h1jdk4ow/pu2CGz03S8n42D4u832CV1nundYvbNGa5HjaN9yS5KMnbk3w0/fnulyf5l0m+OX2//IdV9Ziu615zwLqmsa4xuy79mPa/0j+1/rPZvmH+aekTwh6X5I+q6pu6rvv8PupYxfVO1jdm4xzGg2ftZ2NU1b2zfW/LZ9MnmBxkWbaWZ+3HNAkVq++2I69vnGL+rQv5tztgvd+fvoFX+s7jrPQnT89Icu+qekrXdZ84YB0sML5V9Yj0vzKynwvWzG6R++6FSS7YJaaXJHlZVT06/UnvSUmeV1WvmvRT1OxpUbEd/TnP2yZ5fZJHDzdrJ/2vB51XVZcmeVP6X7H4xSG+9u/9WdaYO+p704+9iV+nmKeFxraq7p/+hO8rx8xyTpIfrKr3dV339/upg1ssJLZd1/1dVZ2X/lj4bkn+oqp+In1yzI3pn5Z5bpJvGd6fvJ96AJZslj71hpHXO/u6eZdzkP591dZpnc3jvHM/MU2O347zGvu1jQmq6pHpk/eT5Mr01wR3s2rbUb9xyGZoG4l+Y7dlmWc5y3ZR+l9TTfplu0/6p9k+PsnvV9WPdF336h2fWbVtuIntaxXsp20kfd9wz11ubnhXkouq6kXpb/q7Q5JnV9XLuq77vzvmNZ6ML2dpqurkJC9Kf83zeV3XXTpjEau2LbUPYO7W+BxsrOF7khcPbz+X5MkH/P5ypb4PX/OYPWTML7RdXFW/luQV6W8yvH/6ZNZn7lHfblZujFrzmN3K8NTorYSlv09/M/FBtb6fzcMiv5NepfW+xZrGbaIZr4dN4/ld1527y///ZZKXDL8Cc16SE5L8ZlXdp+u66w9Y51hrHrO7jRnTXl9V/z39QxMfnD7B4unpHyQ+q5Vb7zWP2a1U1d3T/zJSkryt67oPzKFY+9n4ZTkl/Xi+9cstP9x13UcPuCyjy7PWY9qReRfI3I3uqCePnWvb1s9Nf+4glXZd9+Gu6y7tuu49Xde9ueu65yX5qiR/kv5pQJcMnRkHs5D4Dj9DvnXB+le6rnv3LJ9nXxa273Zdd/WkC1DDF1Q/O7w9JckPzloHx1lUbHceqD1rJJniFl3X/Xm2n+hy/4y/gZu9LWXM3eHJw783JHnZHMtt3cJiOzxx761JHpP+AuaTk9x1qPceSf5t+iclPCnJ26vqK2atg+Mscr/9sfTHwklyv/Q3iVw9lPXW9MkU70jyWyOfmefPKwMctln61NuMvN7Zp867nIP076u2TmtrTued+4lpcvx2nNfYr22MMRyfXpj+QTzXJ/muruuuHDP7qm1H/cYhmrFt6Dd2X5Z5lrNUXdd9evj+4NKu6y7puu4Puq77jvQPF7h3+if/HdvxsVXbhpvYvpZun20jXdddO+lJkV3XvT39Qw7y/9u773BbqvLw498XEFGkgwo2lKIi/ARBIwH0Ioiggr0glgtGjYVEDRgbckGi0Whi7CJR7A0iFmyxXIrGCKgRjYoIFytVmvTy/v5Ya3vm7rvrOfucfc7e38/zzLP37JlZs2bWlD1rVqG853hZh9m8n3QPZ5xeCzwA+A1wzCyWX2z70uND0kgt8WewjiJiK0pe+gZAAodl5s8HWbabxfQ+fKmnWZeCp61p11Iqw/6p/vTCWjlyWIvqHrXU06yLJwIb1u8fz8zbB1yuK8+zkVjI95aLabuBJZ1uXQ2bHzaIXtfhOv0DzLxv3orSQ8y8WOpp1ueedgml4lkrr+HwWa5mUW33Uk+zLp7NTDn2kfS45HnWNS7rAJ8DHlx/el9mnjiCuDTjs6TvaVaoWPyahbAG6aKk1aL5IN2sDKXWwjqUUgjwXsBbR72OKbRQ6fs6SpdFv6W0IqD5t2jO3ep4SoYVlJq3mr2FStvmei7LzB/1mPfrje8PHXI9mjHW8zYiHkZ5uQjwxX5/8DWUBUnbWoHxU5Sa3BcDD8/Mj2fmJZl5S2b+LjPfCzyC8kCwFaPrgndaLdh5m5k3USrKvAD4MTP3VSitCPwTsBczvcwAXDnseiRpjIa5pjZ7U2u/po46nLlc3xfbNk26fs+ds0lTWH0/jure77HRQUTcl9L69ybAbcAzM/P0Hosstv3odWOezOLYGJTXjdmHsyhl5scoL+XWAt4dEZs2Ji+2fTiJx9ei1efYGNSngWvq917XDPB+siiOjYh4APCaOnp4Zl43i2AW2770+JA0MhPwDLaGeo//BrB1/enwzPx0v+VGZN7fh09imrXLzKsp/7taYe02bBgsonvUBKfZcxvfPzrgMqMwyefZKCxkeYPFtN1LPd06msf8sEF8oPHdc22WMvMC4L/q6La10uewFs12T3Cajavh2ak6zyIigBOBx9afPkvnBktmE5dmfJb0Pc0KFYtcrcRwRR3t2SNERGzCzAHz23mKz+XAd+voEyLiDvOxnmmxgOn7j/Xzm8CBEfHM9qER9vqN3x815HpULcJz99JGfO4xH+uYFguYts35fzfEvFsMuR5Vi+C8HVfG18RbwLTdn5lr7Lu6dXObmT8DPl5Hd42IB3eaT/0t9Hmbmbdn5gmZuQul4sx2lDTfMjNfX+OzXWOR/5vNeiRpTJr/Ofv1SHmvxvf2a+pswknW/M/bGh+kd8xWOO1x+f0s4tIpnFHtm4k2wHNnaz+uHxEb9wmutR8vq5UaW+sY1b1/nMd7p3DGrr5M+ial0m+rBdEv9FnM68YMj41Z8LqxtI+NHlrHx/qU5+SWxbYPJ/H4Wuy6HRsDycxbgfPqaK9rBng/WSzHxisoLQteANy5y7upHRvzP6oxrXW++H9jxqQdH9JUm5BnsNVExAbA14BWz9xHZeZ7+oQ/MvP9PnwS06yH5ruN2ezLRXGPmtQ0i4i7AfvV0XMyc8HeRU34eTZnC/zectFs91JPt07mMz9sQHO9Dvc0iWnWg/e0YlGmWUTsBuxQR7+cmQvZYOW0nWfvAQ6p378KPLtXD1fTek+zQsXS0Dp5t63drnTzgMb3OXWZ2Mdl9fPOwObzuJ5psRDp2+oK51BKy9mdhlZabt747Q1DrkerW2znbtfuGTW0hUjbnzW+r91n3ub0W4dcj1Y3lvO2VlB8Zh29lJLhrNFaiLR9YOP7D/vMe06XdWp4YzlvM/PazDw/M//QetCMiLWBnessF9TKyJK0VDQzDvvdm3pdU2cTzm87tFbbCmejiLh7twAiYktmurdfLS6ZeS0zmWkLvU2dwpkGvZ47B9qP9X6+TR3ttA9Hce8/j9IaUM+4DBDObI6NW4Ff9Zl3QUXE5pSWuu5Xfzo8Mwep5O11Y8ZEXjfmcGwMw+tG/3AW3XWjj8sa3+/T+L7Y9uEkHl+LXbdjYxhzvma0Tfd+Mr/uWD/vR/d3U09pzH9U4/dWw0H+35gxaceHNLUm6BnsLyLiTsCXgIfWn/4lM4/rE/Z8mJf34ZOYZn3MdT+O/R414Wl2CDPlAz4ywPyjNqnn2ags1HvLRbHdE5Ruf7FA+WH9zFv5rklMsz7GcU8baV7ehKdZs+HZhb6nTc15FhFvAV5cR08HnpKZtwwRn6m4p4EVKpaKM+vn+sCuPeZrdj3z3a5zzV2zRpbdws7d0d1e9wAAIABJREFUYktfjc6iSduI2IKZSjN/mI91TJl5T9vMvAj4TR3duna91c02je+/7zqXBjGu8/ZxwGb1+ydri3sarYVI22a69XqYAGj28mV6z82iud8CezNzLi9kd5SSNAoXMvOs0K9r20fUz98Dq9qmndn43jWcWvho+zra6bo8UDj0v763wrl/rwJPfcIZ1b6ZaAM8dw6aprsx05JNrzSd9b0/M28GflBHd4+IdemuFc5NwNlt084Cbu6wvtXU8B/eWmbAjOoFEREbAV9nphWoVw/RgqjXje7hLPnrxhyPjUHX4XWji8V83RhAx/cHi3AfTuLxtdjN6d1SfXHbug/M+prh/WTJ8f9G93A8PqQlaMKewVrz3QE4uRHW+zPzVX3iN3Lz9T58EtNsADs0vs9mX471HjUFadYqfHoLpSLqgpnw82xUFuq95di3e8LSDViY/LABzfU63NEkptkA5rovx5qXN8lp1tbw7GWUXhMW0lScZxHxeqD13/ws4PGZecOA8Zmae1qLFSqWhlMa3w/tNENErMXMn+argO/MR0Qi4p7A7nX0otqKiuZm3tM3M6PfAFxUZ7+o8fuyIbdFq1s05y7wQqBVIP+0eVrHNFmotD25fm4I7NNjvic3vp/ZdS4NYlzn7ThrXU+LhUjbCxvf9+ozb/Mh4MKuc2kQi+J+Wyu+raijtwAfHPU6JGk+ZWYCra5mHxARD+80X/291frHF+pyzXDOY6ZFkKdHxJ27rHJ54/vnO0z/ItDqarbj9b0tnNvrMu2a94nlHaZT4/j0Ovp/dRv+YlT7Zgr0e+5cCVxdvz+vR6Xx5Y3vnY6NUd37W+FsyOrPVM1w7gnsW0e/1Z4PVse/VUf3rfN38mRmWijutE1jUY/9U4GH1J/+KTPfMujyXjcm97ox12NjCF43lth1Y0BPa3w/t23aYtqHK5mw42sJ6HVsDOIZwEb1+xrXDO8ni+9+kpnLB3g3dUxjkb0b01bVMPy/UUzc8SFNowl8Bmv12vxJ4ID608eAl/TYjPk08vfhk5hm/dRCgK3Cjdczi0q847xHTXqaRcROwIPr6Fdy4XtKn9jzbIQW5L3luLd7AtNtIfPDBvGixnfPtVmKiPsCj66jv87MoRuoHWde3hSk2QHM9E45joZnJ/48i4i/B95YR88F9h8yP3Eq7mntkXFYAgOlq5WkFM7avcP0I+v0BFZ0mL6sMf3EDtO3Bx7VJw4bNeKRwLHj3i+TMsx3+g4Yh1V1+VXj3h+TNCzAubs1sEufODye0mJZUjI97jHu/TIJw0Kct8C9gRvqPD8BNuwwz7Mb4Xx53PtlEoaFviYDmzbO0Z+Me/sneViAa/LGwHV1+jXATl3icQBwW53vd8Ba4943S31YoGvyZsAdu0xbG3hPI4xjxr1PHBwcHOqzwlDPiZS8gVvrMmcBd2qbfqf6e+uau12XcA5rrPvdHaZvQynAmJRuj9fpEs5HG+E8tcP0pw1w/b4D8Os6z9XANh3maV7Dl8/nvlkMw7DHBiN87gSObaz7yA7Td6/7L4GVPdY3p3t/nWdTSuZuUvJENmubvjal8FsrnGVdwnlUY54vAGu3Td+c0ohFAlcCm4z7GKjxWpfSSlIr7u+YZTheNybsujGKY8PrxsReN5YD6/WZ5xWNbbugw7Ytqn04icfXUjw2gE36bQ/wsJqWSSmgvmuX+byfLJL7yRDHz4oBznn/b0zp8eHgMEkDE/gMRilU/aFGOCfR9r9swG1a1uu6yZjeh09omu3fvv626Xdp2+Z3zibNRrnd055mHZZ5WyPMJw+xTZ5nszzeKJXxE8ghlhnFM+KiPM8mNd1GuE3Le6UtsBOwbZ8wXtgI44/A+qZZx/kPpMd1E7gb8MPGNr9yNmlW51nwvLxJTLMOy5/U2L6HDLGc59lg/0MOpeShJfBL4G6zjM9E39PWiMd8BOowDwkFu1D+kCZwLfAaSjdBewMfaBxwvwQ26LB8z4OyMf3HlMzLA4GH1vUeABxXLx6tMM4F7jzu/TIpw3yn74BxWFWXXzXu/TFJwwKeu9+rYT+W0g39bpSWiz7buDkm8JJx75NJGRbqvGX1Px6/oPzh2bWu513M/Jm4er7+LEzbsNDXZEpLPa35/2Hc2z/Jw0KkLXBUY55rgTfV8HcGHgO8l5nCGAk8e9z7ZRKGBUrbpwIXA+8AnlSvxXsALwZ+1Fj+K8C6494nDg4O0zcAe1IyEVvDEY1r05lt05b3COfNjeV+SGkJeLf62cx8flOPMNau62zNe1K9Dz4MeBlwSf39NuCAHuHcC7iUmcyxf67buWf93rqnXgrcs0c4j2WmMuPFNQ4Pq3FqZtieQY8X/6PYN0vx2GCEz53ABpT7cWveD1Du1w+vYV9bf78e2LlHOHO69zfCeVFj3vMpz1u7AQcB325M+2SfffypxrzfrsvvVsM7vzHtheM+HhpxPrkRr29RXjLs2GPY3uvGdFw3RnFs4HVjUq8bq4ArgOMprY7tQWkZdU/Kc1HzHL4J2Hex78NJPb6W2rHBTGXP/6X0VnAQ5f3UQ4AnAicwU3Argbf2iIv3k0VwTAx5/KxoxH/ZfO4Dj4+ld3w4OEzSwAQ+gwFvbyx/LuXe3WubduwSzrJGOCf2mL6g78MnNM1WUv63fRB4HuXetTOlV/XXMFMYNCnvpTedTZqNcrunPc06hPeHuswVDPEuql+a4XnWCuPutOWV1nOhtWz7tI4FdhnBM2K/NBvXeTap6TaqbaJ/Qe/llDI+/wW8ktJ7wkMo14Xnsnph7FuBA02zrmm2Cvg98E7gYEqjGDtTevY8DrisEd4ZdG84sWeaNeZb0Ly8SUyztvA2AW6sy5475L7pmWZ4nkHJT2uWJ9y/T1x2pEulEib8nrZGHOYrYId5SKxSyeHqxoHRPvyy28Wo30HZNr3f8GVgi3Hvj0kb5jN9B1z/qrr8qnHvi0kbFsm5ex2L6AXspAwLdd7WPwy391jPJXSoBeqw+NO2zv99Zv6o333c2z7pw3ynLaVFpn/rc84mcDNwxLj3xyQNC5C2T+2TprcD/0GXzBgHBweH+R6AEwd8Nkgge4SzVr2e9Vr+BPr0sERpkecHPcK4EfibAbbrr1i9gYf24Y/AXw0QzgtYvSBe+/A/wOZ9whjJvllqxwYjfu4EtgXO6xHO1cDjBwhn1vf+tnCOofd/t1Pp3+r2nep83cK4jR4vY8Z0XAx8TNRh1XyfG3jdGPtxMapjA68bk3rdWDVguv4WePRS2YeTeHwttWOD1XvP6jXcChwNRJ/4eD9ZQgODV6jw/8YUHh8ODpM0DHivaw6reoS1KK6JDP4f4C9Dl3CWNeY5sc/0XsNI34dPaJqtHHBbVtKj94F+aTbq7Z7mNGsLa//Gcu8Zct/0TDM8z4bdD61heY+w5vSM2C/NxnWeTWq6jWqbGKyg9yDhXw48wTTrmWarBlz2JGDjHnHpmWaN+RY0L28S06wtvL9tzLtGr7F9lu2ZZniewZDvBeuwrEd8JvaetkYc5itgh3lKMLgP8K/1ILyO0k3QWcCr6NFjRL+DktK17H7AWym16M6rJ8EtlJrNZwPvBvYY9z6Y5GG+0nfAda/qd7F2WHxpS2lF7ZB6fn6f0mrEdZQM+IspNR5fC9x13PtgUoeFOm8ptak/ClxIyVi5ipL58npgo3Hvh0kcFiJtge0a83513Ns8LcMCpe2uwPsorTJdQ3npf1X9T/V2etQ2d1icaUvpFvQISg8UF9Twr63rej8DvCR3cHBwmM+BEVWoaIT3WOAUSgs/N9XPUxigtbRGGOtQWiU+g5IxeQPwa0rrxQ8aIpzNgTfW++q1dfhJ/W2zIcLZsa771zUul9e4/S09uoaej32zlI4N5uG5E1i/3p/Pqvfr6yitGf0rcJ8hwpnVvb9DOH8NfAL4Td2uS4BvAAcPua+fVZe7pIbzmxruoqsAP8wxwYD5RV435nffLKVjw+vGUPt7KV037k9p1e1kSk8CF1PeH1xDaYnvJMoLy4H242Lah5N6fC2VYwNYl9KIwdsp19gL6rI3U1qUPJPSuuTWQ8TJ+8kSGRiwQsUo94HHh4ODwzgGJvAZjIWrUDGW9+ETmma7Af9Y1/lzyn+tWyhlg35OyUN6DP0rsPZMs/nY7mlNs7ZwPtGI+1DvpDzPBkszRl9geNbPiIv1PJvUdBvVNtG/oPddgcMoPQWdTWl44HrKdeH3lPfQfwdsaJr1TbNHAm8Avko5x66g3NOupDyXvZ8B8ob6pVmH+RckL28S06wtvO/W+W4Fthpy33ie9UkzRlyhooZ5HybwntY+RI2AJEmSJEmSJEmSJEmSJEmSJEnS1Fhr3BGQJEmSJEmSJEmSJEmSJEmSJElaaFaokCRJkiRJkiRJkiRJkiRJkiRJU8cKFZIkSZIkSZIkSZIkSZIkSZIkaepYoUKSJEmSJEmSJEmSJEmSJEmSJE0dK1RIkiRJkiRJkiRJkiRJkiRJkqSpY4UKSZIkSZIkSZIkSZIkSZIkSZI0daxQIUmSJEmSJEmSJEmSJEmSJEmSpo4VKiRJkiRJkiRJkiRJkiRJkiRJ0tSxQoUkSZIkSZIkSZIkSZIkSZIkSZo6VqiQJEmSJEmSJEmSJEmSJEmSJElTxwoVkiRJkiRJkiRJkiRJkiRJkiRp6lihQpIkSZIkSZIkSZIkSZIkSZIkTR0rVEiSJEmSJEmSJEmSJEmSJEmSpKljhQpJkiRJkiRJkiRJkiRJkiRJkjR1rFAhSZIkSZIkSZIkSZIkSZIkSZKmjhUqJEmSJEmSJEmSJEmSJEmSJEnS1LFChSRJkiRJkiRJkiRJkiRJkiRJmjpWqJAkLZiIWB4RWYetxx2fSdbYzyvmEMayRjjLOkxf0ZreZfmVdfrK2cZBkiRJkiTNnXkynUXEiXWfrBp3XCRJkiRJ0poiYlV9dj9x3HGZVpb9kCRNAytUSJIkSZIkSZIkSZIkSZIkSZKkqWOFCkmSNBaj6EVDkiRJkiSpyd44JEmSJEmSlo6I2LqRl7N83PGRJE2ndcYdAUmStDhl5kog5rD8spFFRpIkSZIkSZIkSZIkSZIkacTsoUKSJEmSJEmSJEmSJEmSJEmSJE0dK1RIkiRJkiRJkiRJkiRJkiRJkqSpY4UKSdLIRMQmEfHPEfGLiLghIi6NiG9GxNMGWHbdiDgwIt4dEWdFxJURcUtEXBER/xMRKyJi8z5hrIqIjIgT6/j9I+KD9febIuKSiPh8RDx8wO3ZOiLeEhHn1HjcEhGXR8QZNT7367HsRhHxmoj4bkRcFhE3R8QfI+JLEfHUiIgey64fEc+IiBMi4scRcXVd92URcVpEHBERdxlkGxph7hsRX6xxuDEiLqj7+h49lllW92dGxLJh1leXX1mXXdn2+6qIyMZPRzfW0xpOrPP+Zx2/MiLW67O+dSLi4jr/V4aNryRJkiRJ0ywi1o6I50XElyPiDzUv5YqIODMiXhkRd+qx7Gp5ABFxj4j414g4v+YRXRERX4+IAwaMy3NrHsiVEfHniDg3It4QERvW6a38gxWNZZbV/IYPN4K6sEOew7Ie6904Io6NiJ9FxHURcVVEnB4RhwwSb0mSJEmSJl0tK5Gtd/61bMRREfGj+hydEbG8bZlZl58YIl7bRsS/1TyEq2t+xAURcWJE7NZn2S0j4iURcVJE/KrmCdwUEb+PiC/U8hs9y1lGxHoR8Xc1j+SyWsbjTxHxy4j4as1b2brH8rPOl5mriHh4RHyulre4MSIujIjjI+L+Ay4/6/1Xj6MLGz99uENezoouyz4kIt5f9/Gf63p/GRHvi4jth94RkqSpts64IyBJmgwR8UDgm8BWjZ/XA/YB9omIDwOn9wjieOB5HX7fFHhYHV4WEU/IzO8OEJ8nAR8H7tz4+a7AE4EDI+KQzPxMj+WPAN4E3KFt0mbAnnVYVof2ZfcBPlPnbbo78Pg6fCUinpGZf+6w+lOBR3b4fXPgEXV4SUQ8NjN/0W0bGvE5GljR9vN9gZcCz46IAzPzjH7hjMkJwJOAjSlp9+ke8z4WuFv9/qF5jpckSZIkSRMjIu4NfBF4cNukTYE96vDiiHhcZp7XJ6w9gFMo+Rgt6wH7AftFxJGZ+bYuy94B+BzwhLZJO9bh2RHx6MG2aji1kMDXgK3bJu0F7BURu2fmy+Zj3ZIkSZIkLUURsR3wDdZ8lm7OM9fyE4PEo1v5jvvW4bkRcVxmvqHDsmsDv6Nzw9RbAQfV4fkR8eROcYyILSnlZXZom7RJHbYH9q/hHdFh+ZHlywwrIl4BvI3Vt39r4AXAsyLi6X2Wn/P+m0Wc16pxfjnQXhln+zr8TUS8NDOPn+v6JEnTwQoVkqQ5i9I64NeZqUzxGeAjwKWUB5VXAodSXnx3sw5wAfB54AfAb4BbgfsA+wKHUR6wPx8RO2bmpT3C2gl4BvBH4O3A2ZSHqMcAr6a8xD8+Ir6dmZd12J6jgGPr6FXAe4HvAFdQCvY/BHgykB2W3QP4KuVB/RLgXcD/An+o++cZwLMphf8/Ajyly744l/LAfHZdNuq+eBLwdMpD/ykRsXNm3thjXzwO2A34JfBW4CfARsDTKA/AGwFfrvv0tz3CGaX9gHUp2wjwPso+brqyfn6N8vB9T8ox1KtCxaH183LKvpMkSZIkSX1ExGbAmcC9gJuADwKnAauAu1Ce4/8e2Bb4akQ8JDOv7hLclpTKFLdT8mDOBG6mNEzxBkq+ypsj4quZ+bMOy/87M5UpfkZ5Of5TYENKnsiLKflOnZxFyRN6AnBc/e0xlHyVpgtZ052BL1Hyno6jFIL4M7ALcDQlX+KlEfGlzPx6l/VLkiRJkjRtTgLuQSkX8UXKe/7tgItgZOUneoqIIyllIaCUh3gf8CtKWY/7Ay8DdgeOiojLM/Od7UHUz2/XuJ4LXAZsANyPUq5id+DRwHvo3FDou5ipTPFx4D/rNt5GySvZjTUbj2jFf5T5MkOpDZX+ax29GngLsLKOPwp4FfAJyv7oGkz9nO3+24lyLLTyW14PfKFtnvbyQe8CXlK/nw6cSClvdD2lUsrLgQcBH4iIizPT8iOSpL4ic42yoJIkDSUi/oWZWvSvzcw3t02/A/BlyoNey30zc1Vjnm2AC7LLjSkidgK+R3lgPC4zj+owzypKpQOAc4BHZeY1bfMcQnmABXhlZv5b2/RdKJUY1gLOA/bJzN91idO9mpUQ6naeR6mt/zXgKZl5fYflXkDpkQNgv8z8r7bp22Xmrzqts07fl/IwuRbwN5n5Hx3mae7HHwKPbK/pHxHPAT5aRz+XmU9vm76MUpEEYO/MXNk2fQWlUAGZuUYXnBGxktLTxmmZuaxHHI/JzBVrbOjMfMcCR1EKY9ynU3pExF0pFS/uAPx7Zr68W3iSJEmSJE2biFgOfLiOtufJfAJ4FqWww96ZuUaFg5pfcgawPvCmzHxd2/SVzPS2eRGwR2b+vm2ePSkvuQN4Z2b+fYd1nFOn/zclT+aGtnmeSunBomWNPIVe29phu05k5kX+1TXeP2ubZ1tKYYD1gC9mZscCEJIkSZIkTYNmOQHKO/wDMvMbHeYbVfmJVZRyIB/JzOVt03YAfkwpJ3AMJZ8g2+ZZi1JZ49mUxhPunZlXNqYHsE1mnt9jm4+hNBSRwP2b5TkiYj3gmhqHt2fmGj1QNObdNDP/1PbbnPNlZiMi1qU0OrEVJU9k98z8eds8OwLfpTR0AR3Kfsx1/9XpWzPTAMahmXlij7AeTekVBbqXl1kPOJVSKeQiYNvMvLVbmJIkQeeuliRJGlh9yHp+Hf0J8M/t82TmLXWeW7qFk5m/7laZok4/Fzihjj5xgKgd1l6ZovokMy0T7tVh+pGU+2MCz+xWmaLGqb1Hh2dSMgNuBJ7bKTOgLvdBSi8cAMs7TO9amaJO/yYzPTAMsi9e2KnbxMz8GKWFAIAnRcTdBwhrHD5ESY+16NzaA5TMjzs05pckSZIkSX3UF9bPqKMv6/TSHiAzf0RpRRA65GW0Oby9MkUN40zgf+popzyZFzLTquEL2itT1DBOovRuOh+O6tRrRi0QcEod3XOe1i1JkiRJ0lJ0YqfKFNVIyk/08Q+UcgJn06EyRQ3/duBwSu8PdwGe2jY9e1UGqI4FLqfkWxzUNm1TZsoqnN4rkA6VKbZm9Pkyg3oCpTIFwBvbK1PU9f4U+KdegYxg/w3r1fXz5E6VKWqcbqT0TAKlMs7ec1ynJGkKWKFCkjRXuwKb1O8f6VYpolZM6PYgvYaI2CQitomIB0XEjrXm+1V18g61NYNuzs3Mn3SJRwI/qqP3a1vnWsABdXRlfSgdRuvB77TM7NXlIcw8SO/eL9CI2CIitmvth7ovWuE/uM/i52bmOT2mtyofrAMs6xeXcagtSX6zji7vMtuh9fOcbmkvSZIkSZLW8DhgbeB6Zhpd6KaVl7FVRNy7yzxXUVoA7KaVR3G/DtP2rZ8/6lSxoeGjPabNVlIa4eimFe9NI2LjeVi/JEmSJElL0Sd6TJuX8hNtDqyfJ/dpwPMqSu+TfdcREWtFxFYRcf9G+YwHAq3GONvLaFwB3Fy/Pyci1hki/qPOlxlGKx8mKT14dPPhOs9AZrH/BhYRGzJTruWkXvPWCiKX19FhjytJ0hQa5gYuSVInOzW+n9Vn3h9QHgg7ioidgFdQKjX06i1hLUoljku7TP9Fn3i0av1v0Pb7fYHWS/Ez+oTRyW718zERMegDZcftjIg9gL+jPMRu2mP5zfuEP0iatOwEfLrP/ONyAvBoYNuI2Csz/5I+EbEbsGMdtXcKSZIkSZIG18rLuDNwa0T0mrfp7sBvOvz+q9ryYzcd82QiYj1g2zraq2EIKK1OjtrlmXlFj+nNFiQ3YKbRD0mSJEmSplmvxg5HVn6ik4i4D7BFHX1zRLx5tuuIkiFyCPB84K+AO/VYfrUyGpl5U0R8BngOpfeLh0bEZ4GVwPdqZY5uRp0vM4xWWZ8LM/PybjNl5mURsYpSnqajuey/Ie3CTAPin4qITw243MDHlSRpelmhQpI0V83C/t0qOLRc0m1CRDwfeD+D35t6PYB17CqyofVif+2235sPbn8cMB5Nd53FMmtsR0SsAI6e7fJthkmTXhU3xu0USusBm1N6o2hWeDmsft5I79YkJUmSJEnS6maTlwHlRX8ng+bJtPee3ez1oV+rlf2mz8ag8YY185MkSZIkSZpWV/aYNpLyEyMOH9ryNGojD/9JafhzEJ3i+DJK3saBwH2AI+twe0T8EPgscHxmXt223KjzZYbRKh/Sr0wJlHIlHStUjGj/DWqc+0uSNOGsUCFJGqWBu/lriogHMFOZ4lLgX4BvA6uAazPzljrfYcB/tBaba2TnQeuF+leBV80mgIjYh5nKFBcAbwPOpLQucF1m3lrnOxY4aoAgZ5Umi01m3hwRH6P0YPK0iDg8M6+rD+cH19k+36d1B0mSJEmStLpWXsblwN5DLHfhPMRFkiRJkiQtIZl5W4/Jcy4/0UezwYNjgc8NuNx1beOvY6YywGnAe4AfAhcDN7R64oyI04G96FBWJTOvAQ6KiIcBTweWATvXOO5WhyMi4omZ+d8dtmGc+TJzLVMy5/03hGaavwj43oDL9ar4I0kSYIUKSdLcNR887gac12Peu3X5fTnlnnQb8MjM/EWX+ea7B4VmN4ZbzmL5K4CtgHUz86ezjMML6ueVwMMzs1uri4Pui277vNP0Pw0Y5ricQKlQcRfgacCJwBOZacXyQ+OJliRJkiRJS9YV9XMD4Od9CkLMp2YDCVv0mbffdEmSJEmSNH6jKD/RL/yWW2azjogI4G/q6BnAo1oVADroW0YjM38A/KCGvQGlYsVy4MmU3hVOjohtMvOGtm0YR75Mq6xPvzIlXecZ9f4bQDPNr5+n40qSNKXau9WWJGlY5za+P7TPvN2mP6h+/m+PyhRQau3PpwuZeYH/iFks/6P6uVtErDvLOLT2xXd6VKaAwffFMGmyqB82M/P/gFZrDYfWz8Pq50XAtxY8UpIkSZIkLW2tvIw7Mv/5Ll1l5o3Ar+vorn1m7xfPieitU5IkSZKkJW4U5Sd6uQC4un7fY5ZhbArcvX7/XLfKABFxF+D+wwScmddm5pcy8ynAO+vPWwJ7NmYbZ75Mq6zPfSNis24zRcQWwNZdJo9q/w2al/PjxryzTXNJkjqyQoUkaa7OYabm+nNqDfQ1RMQ9gP26hNHqMWn9biuJiC2Bg2YbyUHUh7tT6+gjI2KXIYP4Yv3ciJkC/8MaZF/sAvzVgOHt1Gc7WhUSbgNWDhjmqNxYP+84xDIn1M+9ImJvYJ86fmJmWmBCkiRJkqThfImZF9EvH2dEmGkoYZeIeFCP+Z7bJ5wbG9+HyXOQJEmSJEmjM4ryE13V3hy+Ukf3i4gHziKYdRrfu5bRoPTCsE6P6f00G4fcvPF9nPky36yfQe+8luV1nk5Gtf8GysupjZJ+v44+q1b2kCRpJKxQIUmak8y8CfhwHd0ZOLJ9nohYB/gg0K3VgV/Vz+0i4q87LH9n4JPAneYc4f7eBtxOeSD8dETcs9uMHaZ9BPhtK5yI6NnLRUTsGRGPbPu5tS/2jIhtOyyzBfCxXuF2cHxErPHwGhHPAh5bR0/JzD8OGe5ctda3zRDLfAa4lpI+n6T8l0lmjkFJkiRJkjSgzPwl8Lk6+syIeGWv+SPivhFx8DxF53hmChF8MCLWyAeKiKcAT+oTTjN/Y5g8B0mSJEmSNDqjKD/Rz5spjUeuBZzUp3zH2hFxSNs8lwFX1e8HR8Qahfkj4qHAG3uEe78B4t1sfPTC1pcx58ucwkweylERsUYPEhGxA/C6HmHMef9VVwA31+/98nKOq58bUtJ8424zRsQdI+KlEbFenzAlSbJChSRpJI4Ffle/vyUiPhkR+0fEQyLimcD3gAOAs7ss36ogsBZwakS8NiIeEREPi4gXU7qQ5UZvAAAHxklEQVTtWwZ8d/42ocjMHwNH19HtgXMj4riI2Ccido6IZRHx8og4nbaKDbVyydOBm4C7AN+OiI9HxFMjYteIeGhEHBQRx0TET4AzgJ3aovDR+rk+cFpEHB4Rf12HI4D/BXYA/nvATTqb0jXk2RGxvMbjURHx3kb8rwWOGDC8Ufpe/TwoIl4UETtGxLZ1uGunBTLzOuDTdbTVdeS3M/Oi+Y6sJEmSJEkT6sXABfX72yPitIh4fkQ8PCJ2iYh9I+IfIuK/gPOBp8xHJDLzHEqDHAC7A2dFxPNqXsbeEfEuSkMLP2gu1iGoHzHTsuEbI+LREbF9I89hIRrskCRJkiRpqo2o/ES/dZzLTFmHHYCfRsRba3mVXSJi94g4OCLeSanc8XFg48bytwOfqKP/Dzizzr9bLSPyduB0Sj7DeV2icW9gZUT8rJYteWLdtodGxJMj4jPAS+u8Pwb+p235seTLZObNwOF1dBPg+xHx6rre3SPiNcyU6Ti/Sxij2H9k5q3AWXX0sBrGAxt5OZs25v0K8O919BHAzyPi6EaZnj1qftIJlAoj72ZuvYtIkqaENwtJ0pxl5tURsT+lS8C7AwfXoelE4DQ69CSQmWdFxNHAMZSH13/qsJq3Az8F9hhdzDvLzOMi4vZGfF5H51r3p3VY9vsRsQz4LHAv4JA6dHNN2/InRcSHKV1ebgW8s23+24BXUB5odx9gc06tw9F07sXhGuCgzFw1QFij9jbgqZQuG9/fNu0jlK4jOzkBeEFj/EMjj5kkSZIkSVMiM/8UEXtQ8jL2oryM7tVq5DU9ps3V4ZT8kMcDD6LkJzVdCDyLmRf5N7ZNJzOvrQUlXgU8BPhG2yx7AytHFmNJkiRJktTRXMtPDLiOd0TEdcA7gI2AI+vQyc2smZfwOko5lJ0pjVV+sm36nyiVGI6lNMrZzQ516OYXwJMzc7XGIcaZL5OZJ0fEkcBbKWVj3tw2y/WUSjFHAtt2CWZU++/NwJeAzTqEcQywojH+ihruUZQySivo7jpKORtJknqyhwpJ0khk5s8oL7rfCvyK0srA5cB3gGdl5qF9lj8WeBzlJfeVlAfZ3wH/CeyXmQvag0JmvonysPsOSkWOa4BbKV0Wnga8HnhOl2W/D2wH/C2lMsMfmHkw/y1lG18HPCAzP9ph+cNq2GdQeo+4CbiI0qPEX2fmv7cv02dbVgD717hcUuOyCngv8KDMXKNiyEKovYHsDnwK+A1lOwdZ7gfMtF5wFeUYkSRJkiRJs5SZF2fmIygVGT5BaRnxeuAWSl7I9yiNXTyy5lvMVzxuBg6iNDRxJnB1jcfPgTcBuwJXNBa5uktQr6Y0xnAG5QW7L84lSZIkSRqDuZafGHAdHwTuR2lo8ruUsiq3UgrTnwecXNd/j8w8v23ZqykVAo4Czq3x+jMlL+JtwIMz8/Qeqz8DWEapEPAdSiMQ11LyVC6p2/e3wM6ZeWGX+I8tXyYz3wbsSSl3cSkz5VM+BOyWmaf2WX6u+68VzqnAPsAXKMfILT3mzVrGaHtKGaWzmcn/uRb4P8p+fB6wZWbe0G/9kiRFW6VHSZKkRS0iNgQuBu4EvC8zXzLmKEmSJEmSpAUSEXtSCisA7JuZ3xpnfCRJkiRJkiRJ0tJmDxWSJGmpOZhSmQLgP8YZEUmSJEmStOAOrp+3AOeMMyKSJEmSJEmSJGnps0KFJElaMiJiHeCVdfTszLTghCRJkiRJEyIiNo+IjXtMfwzwojr6xcy8amFiJkmSJEmSJEmSJtU6446AJElSLxGxKbApsBnwD8D2ddKbxhYpSZIkSZI0H3YEvhARnwO+CfwauB24D3AQ8GxgbeAG4LXjiqQkSZIkSZIkSZockZnjjoMkSVJXEbECOLrt5y9n5oFjiI4kSZIkSZonEbEM+E6f2a4BnpaZ35j/GEmSJEmSJC0+EXFX4K6zWPTmzDxv1PGRJGmps4cKSZK0VNwKXAR8CnjzmOMiSZIkSZJG72xgObA/8GBgC2BjSiWK84GvAe/OzMvGFUFJkiRJkqRF4CWs2TDlIC4Cth5tVCRJWvrsoUKSJEmSJEmSJEmSJEmSJGkJiIgVzLJCRWZuPdrYSJK09FmhQpIkSZIkSZIkSZIkSZIkSZIkTZ21xh0BSZIkSZIkSZIkSZIkSZIkSZKkhWaFCkmSJEmSJEmSJEmSJEmSJEmSNHWsUCFJkiRJkiRJkiRJkiRJkiRJkqaOFSokSZIkSZIkSZIkSZIkSZIkSdLUsUKFJEmSJEmSJEmSJEmSJEmSJEmaOlaokCRJkiRJkiRJkiRJkiRJkiRJU8cKFZIkSZIkSZIkSZIkSZIkSZIkaepYoUKSJEmSJEmSJEmSJEmSJEmSJE0dK1RIkiRJkiRJkiRJkiRJkiRJkqSpY4UKSZIkSZIkSZIkSZIkSZIkSZI0daxQIUmSJEmSJEmSJEmSJEmSJEmSpo4VKiRJkiRJkiRJkiRJkiRJkiRJ0tSxQoUkSZIkSZIkSZIkSZIkSZIkSZo6VqiQJEmSJEmSJEmSJEmSJEmSJElTxwoVkiRJkiRJkiRJkiRJkiRJkiRp6lihQpIkSZIkSZIkSZIkSZIkSZIkTR0rVEiSJEmSJEmSJEmSJEmSJEmSpKljhQpJkiRJkiRJkiRJkiRJkiRJkjR1/j+aeOcrmpqnWAAAAABJRU5ErkJggg==\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "plt.figure(figsize=(20,20), dpi=200)\n", + "\n", + "plt.subplot(4,3,1)\n", + "sns.boxplot(x = 'popularity', data = df)\n", + "\n", + "plt.subplot(4,3,2)\n", + "sns.boxplot(x = 'acousticness', data = df)\n", + "\n", + "plt.subplot(4,3,3)\n", + "sns.boxplot(x = 'energy', data = df)\n", + "\n", + "plt.subplot(4,3,4)\n", + "sns.boxplot(x = 'instrumentalness', data = df)\n", + "\n", + "plt.subplot(4,3,5)\n", + "sns.boxplot(x = 'liveness', data = df)\n", + "\n", + "plt.subplot(4,3,6)\n", + "sns.boxplot(x = 'loudness', data = df)\n", + "\n", + "plt.subplot(4,3,7)\n", + "sns.boxplot(x = 'speechiness', data = df)\n", + "\n", + "plt.subplot(4,3,8)\n", + "sns.boxplot(x = 'tempo', data = df)\n", + "\n", + "plt.subplot(4,3,9)\n", + "sns.boxplot(x = 'time_signature', data = df)\n", + "\n", + "plt.subplot(4,3,10)\n", + "sns.boxplot(x = 'danceability', data = df)\n", + "\n", + "plt.subplot(4,3,11)\n", + "sns.boxplot(x = 'length', data = df)\n", + "\n", + "plt.subplot(4,3,12)\n", + "sns.boxplot(x = 'release_date', data = df)" + ] + }, + { + "source": [ + "ជ្រើសរើសជួរឈរជាច្រើនដែលមានជួរដូចគ្នា។ ត្រូវប្រាកដរាប់បញ្ចូលជួរឈរ artist_top_genre ដើម្បីរក្សារភាពត្រឹមត្រូវនៃប្រភេទតន្ត្រីរបស់យើង។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import LabelEncoder, StandardScaler\n", + "le = LabelEncoder()\n", + "\n", + "# scaler = StandardScaler()\n", + "\n", + "X = df.loc[:, ('artist_top_genre','popularity','danceability','acousticness','loudness','energy')]\n", + "\n", + "y = df['artist_top_genre']\n", + "\n", + "X['artist_top_genre'] = le.fit_transform(X['artist_top_genre'])\n", + "\n", + "# X = scaler.fit_transform(X)\n", + "\n", + "y = le.transform(y)\n", + "\n" + ] + }, + { + "source": [ + "ការបែងចែកក្រុម K-Means មានចំណុចខ្សោយមួយគឺត្រូវការប្រាប់ថាត្រូវបង្កើតក្រុមប៉ុន្មាន។ យើងដឹងមានប្រភេទចម្រៀងបីប្រភេទ ដូច្នេះចាំបញ្ជាក់នៅលើ 3។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([2, 1, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 1, 2, 0, 2, 1, 1, 0, 1, 0, 0,\n", + " 0, 1, 0, 2, 0, 0, 2, 2, 1, 1, 0, 2, 2, 2, 2, 1, 1, 0, 2, 0, 2, 0,\n", + " 2, 0, 0, 1, 1, 2, 1, 0, 0, 2, 2, 2, 2, 1, 1, 0, 1, 2, 2, 1, 2, 2,\n", + " 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 2, 1, 2, 2, 0, 2, 1, 1, 1, 2, 2, 2,\n", + " 2, 1, 2, 2, 2, 2, 1, 1, 2, 1, 1, 2, 1, 2, 1, 2, 1, 2, 2, 1, 2, 0,\n", + " 1, 1, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 0, 1, 1, 1, 1, 0, 1, 2, 1, 2,\n", + " 1, 2, 2, 2, 0, 2, 1, 1, 1, 2, 1, 0, 1, 2, 2, 1, 1, 1, 0, 1, 2, 2,\n", + " 2, 1, 1, 0, 1, 2, 1, 1, 1, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2,\n", + " 0, 1, 0, 0, 1, 0, 0, 2, 0, 0, 1, 1, 2, 0, 2, 2, 0, 2, 2, 1, 1, 0,\n", + " 1, 1, 0, 0, 1, 0, 2, 0, 1, 0, 2, 0, 0, 2, 2, 2, 1, 1, 1, 1, 1, 0,\n", + " 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 2, 2, 1, 1, 0, 1, 1, 1, 0, 2, 2, 2,\n", + " 1, 1, 0, 0, 1, 1, 2, 0, 0, 0, 0, 0, 2, 0, 0, 2, 1, 1, 1, 2, 2, 2,\n", + " 1, 2, 1, 2, 1, 1, 1, 0, 2, 2, 2, 1, 2, 1, 0, 1, 2, 1, 1, 1, 2, 1],\n", + " dtype=int32)" + ] + }, + "metadata": {}, + "execution_count": 16 + } + ], + "source": [ + "\n", + "from sklearn.cluster import KMeans\n", + "\n", + "nclusters = 3 \n", + "seed = 0\n", + "\n", + "km = KMeans(n_clusters=nclusters, random_state=seed)\n", + "km.fit(X)\n", + "\n", + "# Predict the cluster for each data point\n", + "\n", + "y_cluster_kmeans = km.predict(X)\n", + "y_cluster_kmeans" + ] + }, + { + "source": [ + "លេខទាំងនោះមិនមានន័យពេកសម្រាប់ពួកយើងទេ ដូច្នេះយើងត្រូវយក 'ពិន្ទុប្រវត្តិរូបវង្ស' ដើម្បីមើលភាពត្រឹមត្រូវ។ ពិន្ទុរបស់យើងមាននៅកណ្ដាល។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.5466747351275563" + ] + }, + "metadata": {}, + "execution_count": 17 + } + ], + "source": [ + "from sklearn import metrics\n", + "score = metrics.silhouette_score(X, y_cluster_kmeans)\n", + "score" + ] + }, + { + "source": [ + "នាំចូល KMeans និងស្ថាបនាម៉ូឌែលមួយ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.cluster import KMeans\n", + "wcss = []\n", + "\n", + "for i in range(1, 11):\n", + " kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42)\n", + " kmeans.fit(X)\n", + " wcss.append(kmeans.inertia_)" + ] + }, + { + "source": [ + "ប្រើម៉ូដែលនោះដើម្បីសម្រេចចិត្ត ប្រើវិធី Elbow Method ក្នុងការស្វែងរកចំនួនក្រុមដែលល្អបំផុតសម្រាប់សង់\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/seaborn/_decorators.py:43: FutureWarning: Pass the following variables as keyword args: x, y. From version 0.12, the only valid positional argument will be `data`, and passing other arguments without an explicit keyword will result in an error or misinterpretation.\n FutureWarning\n" + ] + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "plt.figure(figsize=(10,5))\n", + "sns.lineplot(range(1, 11), wcss,marker='o',color='red')\n", + "plt.title('Elbow')\n", + "plt.xlabel('Number of clusters')\n", + "plt.ylabel('WCSS')\n", + "plt.show()" + ] + }, + { + "source": [ + "Looks like 3 is a good number after all. Fit the model again and create a scatterplot of your clusters. They do group in bunches, but they are pretty close together." + ], + "cell_type": "code", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "from sklearn.cluster import KMeans\n", + "kmeans = KMeans(n_clusters = 3)\n", + "kmeans.fit(X)\n", + "labels = kmeans.predict(X)\n", + "plt.scatter(df['popularity'],df['danceability'],c = labels)\n", + "plt.xlabel('popularity')\n", + "plt.ylabel('danceability')\n", + "plt.show()" + ] + }, + { + "source": [ + "ភាពត្រឹមត្រូវរបស់ម៉ូដែលនេះមិនទាយទាក់ទិនខ្លាំងទេ ប៉ុន្តែមិនអស្ថិរភាពដែរ។ ប្រហែលជាទិន្នន័យនេះមិនសមស្របសម្រាប់ការបែងចែកក្រុម K-Means។ អ្នកអាចសាកល្បងវិធីមួយផ្សេងទៀតបាន।\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 811, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Result: 109 out of 286 samples were correctly labeled.\nAccuracy score: 0.38\n" + ] + } + ], + "source": [ + "labels = kmeans.labels_\n", + "\n", + "correct_labels = sum(y == labels)\n", + "\n", + "print(\"Result: %d out of %d samples were correctly labeled.\" % (correct_labels, y.size))\n", + "\n", + "print('Accuracy score: {0:0.2f}'. format(correct_labels/float(y.size)))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខំប្រឹងរកឱ្យបានភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាម្ចាស់វាគួរត្រូវបានទទួលស្គាល់ជាអ្នកផ្តល់ព័ត៌មានដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយមនុស្សដែលមានជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡោម ឬការពុម្ពាយប្រើប្រាស់ដោយសារការបកប្រែនេះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/5-Clustering/2-K-Means/solution/tester.ipynb b/translations/km/5-Clustering/2-K-Means/solution/tester.ipynb new file mode 100644 index 000000000..4f56b5111 --- /dev/null +++ b/translations/km/5-Clustering/2-K-Means/solution/tester.ipynb @@ -0,0 +1,339 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# តន្ត្រីនៃប្រទេសនីហ្សេរីយ៉ា ដែលបានចាក់ស្រោបពី Spotify - ការវិភាគមួយ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 104, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: seaborn in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (0.11.1)\n", + "Requirement already satisfied: pandas>=0.23 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.1.2)\n", + "Requirement already satisfied: matplotlib>=2.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (3.1.0)\n", + "Requirement already satisfied: numpy>=1.15 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.19.2)\n", + "Requirement already satisfied: scipy>=1.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from seaborn) (1.4.1)\n", + "Requirement already satisfied: pytz>=2017.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pandas>=0.23->seaborn) (2019.1)\n", + "Requirement already satisfied: python-dateutil>=2.7.3 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from pandas>=0.23->seaborn) (2.8.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (1.1.0)\n", + "Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (2.4.0)\n", + "Requirement already satisfied: cycler>=0.10 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from matplotlib>=2.2->seaborn) (0.10.0)\n", + "Requirement already satisfied: six>=1.5 in /Users/jenlooper/Library/Python/3.7/lib/python/site-packages (from python-dateutil>=2.7.3->pandas>=0.23->seaborn) (1.12.0)\n", + "Requirement already satisfied: setuptools in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from kiwisolver>=1.0.1->matplotlib>=2.2->seaborn) (45.1.0)\n", + "\u001b[33mWARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.\n", + "You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install --upgrade pip' command.\u001b[0m\n", + "Note: you may need to restart the kernel to use updated packages.\n" + ] + } + ], + "source": [ + "pip install seaborn" + ] + }, + { + "source": [ + "ចាប់ផ្តើមពីកន្លែងដែលយើងបានបញ្ចប់នៅមេរៀនចុងក្រោយ ជាមួយទិន្នន័យដែលបាននាំចូល និងតម្រៀបរួច។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 105, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " name album \\\n", + "0 Sparky Mandy & The Jungle \n", + "1 shuga rush EVERYTHING YOU HEARD IS TRUE \n", + "2 LITT! LITT! \n", + "3 Confident / Feeling Cool Enjoy Your Life \n", + "4 wanted you rare. \n", + "\n", + " artist artist_top_genre release_date length popularity \\\n", + "0 Cruel Santino alternative r&b 2019 144000 48 \n", + "1 Odunsi (The Engine) afropop 2020 89488 30 \n", + "2 AYLØ indie r&b 2018 207758 40 \n", + "3 Lady Donli nigerian pop 2019 175135 14 \n", + "4 Odunsi (The Engine) afropop 2018 152049 25 \n", + "\n", + " danceability acousticness energy instrumentalness liveness loudness \\\n", + "0 0.666 0.8510 0.420 0.534000 0.1100 -6.699 \n", + "1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n", + "2 0.836 0.2720 0.564 0.000537 0.1100 -7.127 \n", + "3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n", + "4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n", + "\n", + " speechiness tempo time_signature \n", + "0 0.0829 133.015 5 \n", + "1 0.3600 129.993 3 \n", + "2 0.0424 130.005 4 \n", + "3 0.1130 111.087 4 \n", + "4 0.0447 105.115 4 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namealbumartistartist_top_genrerelease_datelengthpopularitydanceabilityacousticnessenergyinstrumentalnesslivenessloudnessspeechinesstempotime_signature
0SparkyMandy & The JungleCruel Santinoalternative r&b2019144000480.6660.85100.4200.5340000.1100-6.6990.0829133.0155
1shuga rushEVERYTHING YOU HEARD IS TRUEOdunsi (The Engine)afropop202089488300.7100.08220.6830.0001690.1010-5.6400.3600129.9933
2LITT!LITT!AYLØindie r&b2018207758400.8360.27200.5640.0005370.1100-7.1270.0424130.0054
3Confident / Feeling CoolEnjoy Your LifeLady Donlinigerian pop2019175135140.8940.79800.6110.0001870.0964-4.9610.1130111.0874
4wanted yourare.Odunsi (The Engine)afropop2018152049250.7020.11600.8330.9100000.3480-6.0440.0447105.1154
\n
" + }, + "metadata": {}, + "execution_count": 105 + } + ], + "source": [ + "\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import seaborn as sns\n", + "import numpy as np\n", + "\n", + "df = pd.read_csv(\"../../data/nigerian-songs.csv\")\n", + "df.head()" + ] + }, + { + "source": [ + "យើងនឹងផ្តោតតែលើប្រភេទតែបីតែប៉ុណ្ណោះ។ ប្រហែលជាយើងអាចបង្កើតបាន ៣ក្រុម!\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 106, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Text(0.5, 1.0, 'Top genres')" + ] + }, + "metadata": {}, + "execution_count": 106 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]\n", + "df = df[(df['popularity'] > 0)]\n", + "top = df['artist_top_genre'].value_counts()\n", + "plt.figure(figsize=(10,7))\n", + "sns.barplot(x=top.index,y=top.values)\n", + "plt.xticks(rotation=45)\n", + "plt.title('Top genres',color = 'blue')" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " name album \\\n", + "1 shuga rush EVERYTHING YOU HEARD IS TRUE \n", + "3 Confident / Feeling Cool Enjoy Your Life \n", + "4 wanted you rare. \n", + "5 Kasala Pioneers \n", + "6 Pull Up Everything Pretty \n", + "\n", + " artist artist_top_genre release_date length popularity \\\n", + "1 Odunsi (The Engine) afropop 2020 89488 30 \n", + "3 Lady Donli nigerian pop 2019 175135 14 \n", + "4 Odunsi (The Engine) afropop 2018 152049 25 \n", + "5 DRB Lasgidi nigerian pop 2020 184800 26 \n", + "6 prettyboydo nigerian pop 2018 202648 29 \n", + "\n", + " danceability acousticness energy instrumentalness liveness loudness \\\n", + "1 0.710 0.0822 0.683 0.000169 0.1010 -5.640 \n", + "3 0.894 0.7980 0.611 0.000187 0.0964 -4.961 \n", + "4 0.702 0.1160 0.833 0.910000 0.3480 -6.044 \n", + "5 0.803 0.1270 0.525 0.000007 0.1290 -10.034 \n", + "6 0.818 0.4520 0.587 0.004490 0.5900 -9.840 \n", + "\n", + " speechiness tempo time_signature \n", + "1 0.3600 129.993 3 \n", + "3 0.1130 111.087 4 \n", + "4 0.0447 105.115 4 \n", + "5 0.1970 100.103 4 \n", + "6 0.1990 95.842 4 " + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
namealbumartistartist_top_genrerelease_datelengthpopularitydanceabilityacousticnessenergyinstrumentalnesslivenessloudnessspeechinesstempotime_signature
1shuga rushEVERYTHING YOU HEARD IS TRUEOdunsi (The Engine)afropop202089488300.7100.08220.6830.0001690.1010-5.6400.3600129.9933
3Confident / Feeling CoolEnjoy Your LifeLady Donlinigerian pop2019175135140.8940.79800.6110.0001870.0964-4.9610.1130111.0874
4wanted yourare.Odunsi (The Engine)afropop2018152049250.7020.11600.8330.9100000.3480-6.0440.0447105.1154
5KasalaPioneersDRB Lasgidinigerian pop2020184800260.8030.12700.5250.0000070.1290-10.0340.1970100.1034
6Pull UpEverything Prettyprettyboydonigerian pop2018202648290.8180.45200.5870.0044900.5900-9.8400.199095.8424
\n
" + }, + "metadata": {}, + "execution_count": 107 + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "metadata": {}, + "outputs": [], + "source": [ + "from sklearn.preprocessing import StandardScaler\n", + "\n", + "scaler = StandardScaler()\n", + "\n", + "# X = df.loc[:, ('danceability','energy')]\n", + "\n", + "\n", + "\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "metadata": {}, + "outputs": [ + { + "output_type": "error", + "ename": "ValueError", + "evalue": "Unknown label type: 'continuous'", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 20\u001b[0m \u001b[0;31m# we create an instance of SVM and fit out data. We do not scale our\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 21\u001b[0m \u001b[0;31m# data since we want to plot the support vectors\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 22\u001b[0;31m \u001b[0mls30\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mLabelSpreading\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_30\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_30\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Label Spreading 30% data'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 23\u001b[0m \u001b[0mls50\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mLabelSpreading\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_50\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_50\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Label Spreading 50% data'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 24\u001b[0m \u001b[0mls100\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mLabelSpreading\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'Label Spreading 100% data'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/semi_supervised/_label_propagation.py\u001b[0m in \u001b[0;36mfit\u001b[0;34m(self, X, y)\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_validate_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mX_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mX\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 230\u001b[0;31m \u001b[0mcheck_classification_targets\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 231\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 232\u001b[0m \u001b[0;31m# actual graph construction (implementations should override this)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/sklearn/utils/multiclass.py\u001b[0m in \u001b[0;36mcheck_classification_targets\u001b[0;34m(y)\u001b[0m\n\u001b[1;32m 181\u001b[0m if y_type not in ['binary', 'multiclass', 'multiclass-multioutput',\n\u001b[1;32m 182\u001b[0m 'multilabel-indicator', 'multilabel-sequences']:\n\u001b[0;32m--> 183\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Unknown label type: %r\"\u001b[0m \u001b[0;34m%\u001b[0m \u001b[0my_type\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 184\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 185\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Unknown label type: 'continuous'" + ] + } + ], + "source": [ + "from sklearn.svm import SVC\n", + "from sklearn.semi_supervised import LabelSpreading\n", + "from sklearn.semi_supervised import SelfTrainingClassifier\n", + "from sklearn import datasets\n", + "\n", + "X = df[['danceability','acousticness']].values\n", + "y = df['energy'].values\n", + "\n", + "# X = scaler.fit_transform(X)\n", + "\n", + "# step size in the mesh\n", + "h = .02\n", + "\n", + "rng = np.random.RandomState(0)\n", + "y_rand = rng.rand(y.shape[0])\n", + "y_30 = np.copy(y)\n", + "y_30[y_rand < 0.3] = -1 # set random samples to be unlabeled\n", + "y_50 = np.copy(y)\n", + "y_50[y_rand < 0.5] = -1\n", + "# we create an instance of SVM and fit out data. We do not scale our\n", + "# data since we want to plot the support vectors\n", + "ls30 = (LabelSpreading().fit(X, y_30), y_30, 'Label Spreading 30% data')\n", + "ls50 = (LabelSpreading().fit(X, y_50), y_50, 'Label Spreading 50% data')\n", + "ls100 = (LabelSpreading().fit(X, y), y, 'Label Spreading 100% data')\n", + "\n", + "# the base classifier for self-training is identical to the SVC\n", + "base_classifier = SVC(kernel='rbf', gamma=.5, probability=True)\n", + "st30 = (SelfTrainingClassifier(base_classifier).fit(X, y_30),\n", + " y_30, 'Self-training 30% data')\n", + "st50 = (SelfTrainingClassifier(base_classifier).fit(X, y_50),\n", + " y_50, 'Self-training 50% data')\n", + "\n", + "rbf_svc = (SVC(kernel='rbf', gamma=.5).fit(X, y), y, 'SVC with rbf kernel')\n", + "\n", + "# create a mesh to plot in\n", + "x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1\n", + "y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1\n", + "xx, yy = np.meshgrid(np.arange(x_min, x_max, h),\n", + " np.arange(y_min, y_max, h))\n", + "\n", + "color_map = {-1: (1, 1, 1), 0: (0, 0, .9), 1: (1, 0, 0), 2: (.8, .6, 0)}\n", + "\n", + "classifiers = (ls30, st30, ls50, st50, ls100, rbf_svc)\n", + "for i, (clf, y_train, title) in enumerate(classifiers):\n", + " # Plot the decision boundary. For that, we will assign a color to each\n", + " # point in the mesh [x_min, x_max]x[y_min, y_max].\n", + " plt.subplot(3, 2, i + 1)\n", + " Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])\n", + "\n", + " # Put the result into a color plot\n", + " Z = Z.reshape(xx.shape)\n", + " plt.contourf(xx, yy, Z, cmap=plt.cm.Paired)\n", + " plt.axis('off')\n", + "\n", + " # Plot also the training points\n", + " colors = [color_map[y] for y in y_train]\n", + " plt.scatter(X[:, 0], X[:, 1], c=colors, edgecolors='black')\n", + "\n", + " plt.title(title)\n", + "\n", + "plt.suptitle(\"Unlabeled points are colored white\", y=0.1)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបកប្រែទម្រង់**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុស ឬការប្រកាន់ខុសបាន។ ឯកសារដើម ក្នុងភាសាតំណាងរបស់វាគួរត្រូវបានទទួលស្គាល់ថាជា​ប្រភពផែនការដ៏មានសិទ្ធិ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសរបបណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/5-Clustering/README.md b/translations/km/5-Clustering/README.md new file mode 100644 index 000000000..63c8febde --- /dev/null +++ b/translations/km/5-Clustering/README.md @@ -0,0 +1,35 @@ +# ម៉ូដែលក្រុមសម្រាប់ការសិក្សាម៉ាស៊ីន + +ក្រុមគឺជាការប្រព្រឹត្តិការណ៍សិក្សាម៉ាស៊ីនមួយ ដែលវាមើលរកវត្ថុដែលដូចគ្នា ហើយក៏ផ្ដុំវាទៅជាក្រុមដែលហៅថា ក្រុមសំណុំ។ អ្វីដែលខុសគ្នារវាងការក្រុម និងវិធីសាស្រ្តផ្សេងទៀតក្នុងការសិក្សាម៉ាស៊ីន គឺថា អ្វីៗបានកើតឡើងដោយស្វ័យប្រវត្តិ មិនមែនដូចការសិក្សាផ្ទាល់ដឹកនាំ។ + +## ប្រធានបទតំបន់៖ ម៉ូដែលក្រុមសម្រាប់ចំណូលចិត្តតន្ត្រីរបស់អ្នកស្តាប់នៅនីហ្សេរីយ៉ា 🎧 + +ចំនូនអ្នកស្តាប់ពហុមុខជាតិនៅនីហ្សេរីយ៉ាមានចំណូលចិត្តតន្ត្រីផ្សេងៗគ្នា។ ដោយប្រើទិន្នន័យដែលទាញយកពី Spotify (បានបង្កើតច្រកពី [អត្ថបទនេះ](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)) យើងមកមើលតន្ត្រីដែលពេញនិយមនៅនីហ្សេរីយ៉ា។ ឈុតទិន្នន័យនេះរួមមានទិន្នន័យអំពីពិន្ទុ 'ការ​បន្ទាត់​ចលនា', 'ភាពសំឡេង​ស្ងាត់', រសជាតិសម្លេង, 'ភាពនិយាយ', ភាពពេញនិយម និងថាមពលនៃបទចម្រៀងនានា។ វានឹងគួរឱ្យចាប់អារម្មណ៍ក្នុងការស្វែងរកលំនាំជាក់លាក់នៅក្នុងទិន្នន័យនេះ! + +![A turntable](../../../translated_images/km/turntable.f2b86b13c53302dc.webp) + +> រូបថតដោយ Marcela Laskoski នៅ Unsplash + +ក្នុងបណ្ដុំនៃមេរៀននេះ អ្នកនឹងស្វែងរកវិធីថ្មីៗក្នុងការវិភាគទិន្នន័យដោយប្រើបច្ចេកទេសក្រុម។ ក្រុមមានប្រយោជន៍ពិសេសនៅពេលដែលឈុតទិន្នន័យរបស់អ្នកគ្មានស្លាកបង្ហាញ។ បើវាមានស្លាក បច្ចេកទេសចាត់ថ្នាក់ដូចដែលអ្នកបានរៀនក្នុងមេរៀនមុនប្រហែលជាមានប្រយោជន៍ជាង។ តែក្នុងករណីដែលអ្នកចង់បណ្ដុំទិន្នន័យគ្មានស្លាក ក្រុមគឺជាវិធីល្អក្នុងការស្វែងរកលំនាំ។ + +> មានឧបករណ៍កូដទាបដែលមានប្រយោជន៍ដែលអាចជួយអ្នកបង្រៀនអំពីការងារជាមួយម៉ូដែលក្រុម។ សូមសាកល្បង [Azure ML សម្រាប់ភារកិច្ចនេះ](https://docs.microsoft.com/learn/modules/create-clustering-model-azure-machine-learning-designer/?WT.mc_id=academic-77952-leestott) + +## មេរៀន + +1. [ការណែនាំអំពីក្រុមសំណុំ](1-Visualize/README.md) +2. [ក្រុមសំណុំ K-Means](2-K-Means/README.md) + +## អធិប្បាយ + +មេរៀនទាំងនេះបានសរសេរដោយ 🎶 ជាមួយ [Jen Looper](https://www.twitter.com/jenlooper) មានការត្រួតពិនិត្យមានប្រយោជន៍ពី [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](https://www.kaggle.com/bburns/iris-exploration-pca-k-means-and-gmm-clustering), សញ្ញាណាមូល [សៀវភៅប្រតិបត្តិការណ៍ដំណើរការ](https://www.kaggle.com/prashant111/k-means-clustering-with-python) និងឧទាហរណ៍ NGO ស្វែងរក [ឧទាហរណ៍សារធាតុ](https://www.kaggle.com/ankandash/pca-k-means-clustering-hierarchical-clustering)។ + +--- + + +**ការដោះស្រាយ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំធ្វើឱ្យមានភាពត្រឹមត្រូវ សូមមេត្តាត្រួតពិនិត្យថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬកំហុសផ្ទាល់ខ្លួន។ ឯកសារដើមជាភាសាតំណើបត្រូវបានពិចារណា ដោយគេដឹងថាជាដើម។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះនោះទេ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/1-Introduction-to-NLP/README.md b/translations/km/6-NLP/1-Introduction-to-NLP/README.md new file mode 100644 index 000000000..0da91c4cb --- /dev/null +++ b/translations/km/6-NLP/1-Introduction-to-NLP/README.md @@ -0,0 +1,172 @@ +# ការណែនាំអំពីកែសម្រួលភាសាធម្មជាតិ + +មេរៀននេះផ្ដោតលើប្រវត្តិសាស្រ្តខ្លីៗ និងមូលដ្ឋានសំខាន់ៗនៃ *កែសម្រួលភាសាធម្មជាតិ* ដែលជាក្រុមរងមួយនៃ *ភាសាវិទ្យាគណនាមួយ*។ + +## [សំណួរជាមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការណែនាំ + +NLP ដែលគេស្គាល់សំរាប់ភាគច្រើនគឺជាតំបន់មួយដែលមានការដាក់ពាក់ព័ន្ធនិងអនុវត្តការសិក្សាយានយន្តយ៉ាងល្អបំផុតក្នុងកម្មវិធីផលិតកម្ម។ + +✅ តើអ្នកអាចគិតបានអំពីកម្មវិធីដែលអ្នកប្រើប្រាស់រៀងរាល់ថ្ងៃដែលប្រហែលជាមាន NLP បញ្ចូលរួមទេ? តើកម្មវិធីកែសម្រួលពាក្យ ឬកម្មវិធីទូរស័ព្ទចល័តដែលអ្នកប្រើប្រាស់ជាទៀងទាត់យ៉ាងដូចម្តេច? + +អ្នកនឹងបានរៀនអំពី៖ + +- **គំនិតអំពីភាសា**។ របៀបដែលភាសាបានអភិវឌ្ឍនិងតំបន់សិក្សាធំៗដែលបានសិក្សា។ +- **និយមន័យ និងមែនទកិច្ច**។ អ្នកនឹងរៀននិយមន័យនិងមែនទកិច្ចអំពីរបៀបដែលកុំព្យូទ័របញ្ចូលប្រតិបត្តិការនៅលើអត្ថបទ រួមមានការពិភាក្សា ការប្រឡងវេយ្យាករណ៍ និងការកំណត់នាម និងកិរិយាស័ព្ទ។ មានវិបត្តិការកូដមួយចំនួននៅក្នុងមេរៀននេះ ហើយមានមែនទកិច្ចសំខាន់ៗជាច្រើនដែលនឹងបង្ហាញដែលអ្នកនឹងរៀនដើម្បីកូដនៅមេរៀនបន្ទាប់។ + +## ភាសាវិទ្យាគណនាមួយ + +ភាសាវិទ្យាគណនាមួយគឺជាតំបន់ស្រាវជ្រាវនិងអភិវឌ្ឍន៍ប៉ុន្មានទសវត្សរ៍ដែលសិក្សារបៀបដែលកុំព្យូទ័រអាចធ្វើការជាមួយ ហើយផងដែរយល់ដឹង បកប្រែ និងទំនាក់ទំនងជាមួយភាសា។ ការ៉េសម្រួលភាសាធម្មជាតិ (NLP) គឺជាវដ្តនាក្នុងការ​ផ្តោតលើរបៀបដែលកុំព្យូទ័រអាចដំណើរការភាសា 'ធម្មជាតិ' ឬភាសាមនុស្ស។ + +### ឧទាហរណ៍ - ការបញ្ចាក់តាមទូរស័ព្ទ + +បើអ្នកធ្លាប់បានបញ្ចាក់តាមទូរស័ព្ទរបស់អ្នកជំនួសការបញ្ចូលដោយការចុច ឬសួរអ្នកជំនួយវីរុសមួយ សំឡេងរបស់អ្នកត្រូវបានបម្លែងទៅជាអក្សរនិងបន្ទាប់មកត្រូវបានដំណើរការឬ *បានបញ្ចាក់* ពីភាសាដែលអ្នកបាននិយាយ។ ពាក្យគន្លឹះដែលបានរកឃើញបន្ទាប់មកត្រូវបានដំណើរការចូលទៅជារូបមន្តដែលទូរស័ព្ទឬអ្នកជំនួយអាចយល់និងអនុវត្តបាន។ + +![comprehension](../../../../translated_images/km/comprehension.619708fc5959b0f6.webp) +> ការយល់ដឹងភាសាវិទ្យាពិតជាពិបាកណាស់! រូបភាពដោយ [Jen Looper](https://twitter.com/jenlooper) + +### តើបច្ចេកវិទ្យានេះត្រូវបានបង្កើតឡើងជាដូចម្តេច? + +វាអាចកើតឡើងបានដោយសារតែមាននរណាម្នាក់បានសរសេរកម្មវិធីកុំព្យូទ័រដើម្បីធ្វើការនេះ។ ចំណាយពីរទសវត្សរ៍មុន អ្នកនិពន្ធវិទ្យាសាស្ត្រខ្លះបានទាយថាមនុស្សភាគច្រើននឹងនិយាយទៅកុំព្យូទ័ររបស់ពួកគេ ហើយកុំព្យូទ័រនឹងយល់បានឲ្យបានត្រឹមត្រូវចំពោះអ្វីដែលពួកគេចង់និយាយ។ អសូរម_FACE_: វាបានបង្ហាញថា វាជាបញ្ហា ដែលពិបាកជាងការគិតពីមុន ហើយជាបញ្ហាដែលមានការយល់ដឹងល្អប្រសើរជាងមុននៅថ្ងៃនេះ ប៉ុន្តែមានអកុសលភាពច្រើននៅក្នុងការសម្រេចបាននូវការកែសម្រួលភាសាធម្មជាតិដែល 'ល្អឥតខ្ចោះ' នៅពេលដែលវាជួបការយល់ដឹងអត្ថន័យនៃប្រយោគ។ នេះជាបញ្ហាដ៏ពិបាកផ្ទាត់ខ្លាំងនៅពេលផ្នែកនៃការយល់យុទ្ធមានមនោសញ្ចេតនា ឬគេចែកសំអាតអារម្មណ៍ដូចជា ការធ្វើរឿងអន្ទិតិតក្នុងប្រយោគ។ + +នៅពេលនេះ អ្នកប្រហែលជាចងចាំថានៅថ្នាក់រៀននៅសាលាមុនដែលគ្រូបានបង្រៀនផ្នែកវេយ្យាករណ៍ក្នុងប្រយោគ។ នៅប្រទេសខ្លះ សិស្សបានបង្រៀនវេយ្យាករណ៍ និងភាសាវិទ្យាជាប្រធានបទមួយជាក់លាក់ ប៉ុន្តែនៅជាច្រើន ប្រធានបទទាំងនេះត្រូវបានរួមបញ្ចូលជាផ្នែកមួយនៃការសិក្សាភាសា: ប្រសិនបើភាសដំបូងរបស់អ្នកនៅក្នុងសាលាបឋមសិក្សា (រៀនអាននិងសរសេរ) ហើយប្រហែលជារបស់ទីពីរ នៅបន្ទាប់បឋមសិក្សា ឬវិស្សមកាលទូទៅ។ កុំបារម្ភប្រសិនបើអ្នកមិនជាអ្នកជំនាញក្នុងការដាច់ចេញនាមពីកិរិយាស័ព្ទ ឬគន្លឹះពីគុណនាមពីគុណវុត្ថុ! + +បើអ្នកប្រឈមមុខនឹងភាពខុសគ្នារវាង *វេលាបច្ចុប្បន្នសាមញ្ញ* និង *វេលាបច្ចុប្បន្នបន្ត* អ្នកមិនម្នាក់ឯងឡើយ។ នេះជារឿងថា់ពីអ្នកជាច្រើនទេទំនងតែម្ដង ជាពិសេសសម្រាប់អ្នកដែលនិយាយភាសាជាភាសាមាតុភូមិ។ ព័ត៌មានល្អគឺកុំព្យូទ័រមានសមត្ថភាពល្អបំផុតក្នុងការដាក់ពាក្យច្បាប់ផ្លូវការ ហើយអ្នកនឹងរៀនសរសេរកូដដែលអាច *បញ្ចាក់* ប្រយោគបានដូចជាមនុស្សម្នាក់។ បញ្ហាប្រឈមធំបំផុតដែលអ្នកនឹងពិនិត្យបន្តគឺការយល់អត្ថន័យ និង *អារម្មណ៍*, នៃប្រយោគមួយ។ + +## វត្ថុកាលរងចាំ + +សម្រាប់មេរៀននេះ វត្ថុកាលរងចាំសំខាន់គឺអាចអាននិងយល់ភាសានៃមេរៀននេះ។ មិនមានបញ្ហាគណិតវិទ្យាឬសមីការណ៍ណាដើម្បីដោះស្រាយទេ។ ខណៈដែលអ្នកនិពន្ធដើមបានសរសេរមេរៀននេះជាភាសាអង់គ្លេស វាក៏មានការបកប្រែទៅជាភាសាផ្សេងទៀតដូច្នេះអ្នកអាចកំពុងអានការបកប្រែ។ មានឧទាហរណ៍មួយចំនួនដែលប្រើភាសាវិវរណៈជាច្រើន (ដើម្បីប្រៀបធៀបច្បាប់វេយ្យាករណ៍ផ្សេងៗរបស់ភាសាតែងតែផ្សេងគ្នា)។ អ្នក *មិន* ប្រែក្លាយនោះទេ ប៉ុន្តែអត្ថបទពន្យល់បាន បើយាយហេតុអត្ថន័យគួរតែច្បាស់។ + +សម្រាប់វិបត្តិការកូដ អ្នកនឹងប្រើ Python ហើយឧទាហរណ៍ក្នុងនេះប្រើ Python 3.8។ + +នៅក្នុងផ្នែកនេះ អ្នកនឹងត្រូវការ ហើយប្រើ៖ + +- **ការយល់ភាសា Python 3**។ ការយល់ភាសាកម្មវិធីក្នុង Python 3, មេរៀននេះប្រើ input, loop, ការអានឯកសារ, អារៃ។ +- **Visual Studio Code + ការពង្រីក**។ យើងនឹងប្រើ Visual Studio Code និងកំណែ Python របស់វា។ អ្នកក៏អាចប្រើ IDE Python ដែលអ្នកចូលចិត្ត។ +- **TextBlob**។ [TextBlob](https://github.com/sloria/TextBlob) គឺជាបណ្ណាល័យកែសម្រួលអត្ថបទសាមញ្ញសម្រាប់ Python។ អ្នកអាចធ្វើតាមការណែនាំនៅលើគេហទំព័រ TextBlob ដើម្បីតំឡើងវា នៅលើប្រព័ន្ធរបស់អ្នក (តំឡើង corpora ដូចមានបង្ហាញខាងក្រោម)៖ + + ```bash + pip install -U textblob + python -m textblob.download_corpora + ``` + +> 💡 ត្បិត: អ្នកអាចរត់ Python ត្រង់ក្នុងបរិយាកាស VS Code បានដែរ។ សូមពិនិត្យ [ឯកសារ](https://code.visualstudio.com/docs/languages/python?WT.mc_id=academic-77952-leestott) សម្រាប់ព័ត៌មានបន្ថែម។ + +## និយាយជាមួយម៉ាស៊ីន + +ប្រវត្តិនៃការព្យាយាមធ្វើឲ្យកុំព្យូទ័រយល់បានភាសាមនុស្សដំណើរត្រឡប់បានជាច្រើនទស្សវត្សរ៍ ហើយអ្នកវិទ្យាសាស្ត្របឋមមួយនៅក្នុងការកែសម្រួលភាសាធម្មជាតិគឺ *Alan Turing*។ + +### 'តេស្ត Turing' + +ពេលដែល Turing កំពុងស្រាវជ្រាវ *បញ្ជាជ្រងយន្ត* ក្នុងទសវត្សរ៍ 1950 គាត់បានពិចារណាថាតើតេស្តសន្ទនា ដែលផ្តល់ទៅកាន់មនុស្សម្នាក់និងកុំព្យូទ័រ (តាមការសរសេរចញ្ជូមពាក្យ) ដែលមនុស្សនៅក្នុងសន្ទនានោះមិនប្រាកដថាតើគាត់កំពុងនិយាយជាមួយមនុស្សផ្សេងទេ ឬកុំព្យូទ័រហើយឬទេ។ + +បើនៅបន្ទាប់ពីរយៈពេលកំណត់នៃសន្ទនា មនុស្សម្នាក់មិនអាចសម្រេចបានថាចម្លើយមកពីកុំព្យូទ័រ ឬមិនមែនទេ តើអាចនិយាយបានទេថាកុំព្យូទ័រនេះកំពុង *គិត*? + +### បណ្តុះបណ្តាល - 'ហ្គេមក្លែងបន្លំ' + +គំនិតនេះបានប្រភូសមកពីហ្គេមបន្ទប់ភោជនីយដ្ឋានមួយដែលហៅថា *The Imitation Game* ដែលអ្នកសួរចោទសំណុំគឺនៅតែម្នាក់នៅក្នុងបន្ទប់ និងត្រូវបញ្ជាក់គ្នាតាព័ន្ធនឹងមនុស្សពីរនាក់នៅក្នុងបន្ទប់មួយផ្សេងទៀតដែលជាបុរស និងស្រ្តីបន្ទាប់បន្សំពីគ្នា។ អ្នកសួរចោទអាចផ្ញើកំណត់ត្រាចេញ ហើយត្រូវពិចារណាផ្ញើសំណួរដែលចម្លើយសរសេររៀបរាប់ពីភេទរបស់មនុស្សមិនគួរត្រូវបញ្ជាក់ថាជាស្រ្តី ឬបុរស។ ពិតប្រាកដ អ្នកលេងនៅក្នុងបន្ទប់ផ្សេងទៀតកំពុងព្យាយាមបន្លំអ្នកសួរសំណួរដោយឆ្លើយវាផ្សេងពីការពិត ដែលមានគោលបំណងបន្លំ ឬបញ្ច្រាសអ្នកសួរចោទ ខណៈពេលផ្តល់មើលឲ្យមើលដូចជាកំពុងឆ្លើយស្មោះត្រង់។ + +### ការអភិវឌ្ឍ Eliza + +នៅទសវត្សរ៍ 1960 អ្នកវិទ្យាសាស្ត្រ MIT ម្នាក់ទៅជា *Joseph Weizenbaum* បានបង្កើត [*Eliza*](https://wikipedia.org/wiki/ELIZA) មនុស្សជឿថាជា 'គ្រូពេទ្យ' កុំព្យូទ័រមួយ ដែលនឹងសួរអ្នកអំពីសំណួរហើយផ្តល់មើលដូចជាយល់ពីចម្លើយរបស់ពួកគេ។ ប៉ុន្តែនៅពេល Eliza អាចបញ្ចាក់ប្រយោគនិងកំណត់អោយដឹងពីរចនាសម្ព័ន្ធវិញ្ញាណនិងពាក្យគន្លឹះដើម្បីផ្ដល់ចម្លើយមានហេតុ មានន័យក៏ពុំអាចនិយាយថា *យល់* ប្រយោគនោះទេ។ បើ Eliza បានបង្ហាញប្រយោគដែលមានទ្រង់ទ្រាយ "**ខ្ញុំមាន** សោកសៅ" វាអាចប្តូរនិងប្តូរពាក្យក្នុងប្រយោគ ដើម្បីបង្កើតចម្លើយ "តើអ្នកសោកសៅរយៈពេលប៉ុន្មាន?"។ + +វាបង្កើតអារម្មណ៍ថា Eliza យល់ពីសេចក្តីថ្លែង និងកំពុងសួរពីសំណួរបន្ត ប៉ុន្តែនៅក្នុងភាពជាក់ស្តែង វាត្រឹមតែប្ដូរពេលនិងបន្ថែមពាក្យខ្លះៗប៉ុណ្ណោះ។ ប្រសិនបើ Eliza មិនអាចស្គាល់ពាក្យគន្លឹះណាមួយដែលមានចម្លើយវានឹងផ្ដល់ចម្លើយចៃដន្យដែលអាចត្រូវបានប្រើទាន់ក្នុងពាក្យជាច្រើនផ្សេងទៀត។ Eliza អាចត្រូវបានគេទប់បោកយ៉ាងងាយស្រួល ដូចជាបើអ្នកប្រើប្រាស់សរសេរ "**អ្នកគឺ** ជា កង់" វាអាចឆ្លើយថា "តើខ្ញុំបានជាកង់រយៈពេលប៉ុន្មាន?" ជំនួសឱ្យចម្លើយដែលមានហេតុផលជាង។ + +[![Chatting with Eliza](https://img.youtube.com/vi/RMK9AphfLco/0.jpg)](https://youtu.be/RMK9AphfLco "Chatting with Eliza") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូមានយោបាយដើមបង្កើតកម្មវិធី ELIZA + +> កំណត់សម្គាល់: អ្នកអាចអានពិពណ៌នាដើមស្តីពី [Eliza](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) ដែលបានបោះពុម្ពផ្សាយនៅឆ្នាំ 1966 ប្រសិនបើអ្នកមានគណនី ACM។ ផ្ទុយនេះ អានអំពី Eliza នៅលើ [វីគីភីឌា](https://wikipedia.org/wiki/ELIZA) + +## ការប្រលង - កូដកម្មវិធីបូតសន្ទនា​ដែលមូលដ្ឋាន + +បូតសន្ទនា ដូចជា Eliza គឺជាកម្មវិធីដែលទាញយកព័ត៌មានអ្នកប្រើ ហើយដូច្នេះមានអារម្មណ៍ថាបានយល់ និងឆ្លើយតបយ៉ាងឆ្លាតវៃ។ ខុសពី Eliza បូតរបស់យើងមិនមានច្បាប់ជាច្រើនព្រមទាំងមើលទៅដូចជាកាន់តែឆ្លាតមុខផងដែរ។ ផ្ទុយទៅវិញបូតរបស់យើងមានតែសមត្ថភាពតែមួយគត់ គឺរក្សាសន្ទនាឲ្យបន្តជាមួយចម្លើយចៃដន្យដែលអាចឆ្លើយតបបានក្នុងសន្ទនាធម្មតាណាមួយ។ + +### ផែនការណ៍ + +ជំហានរបស់អ្នកពេលបង្កើតបូតសន្ទនា៖ + +1. បោះពាក្យណែនាំដល់អ្នកប្រើប្រាស់អំពីរបៀបផ្អែកជាមួយបូត +2. ចាប់ផ្តើមវដ្ត + 1. ទទួលយកបញ្ចូលអ្នកប្រើ + 2. បើអ្នកប្រើស្នើរបញ្ចប់ ទៅបញ្ចប់កម្មវិធី + 3. ដំណើរការបញ្ចូលអ្នកប្រើ និងកំណត់ចម្លើយ (នៅក្នុងករណីនេះ ចម្លើយគឺជាការជ្រើសរើសចៃដន្យពីបញ្ជីចម្លើយទូទៅ) + 4. បោះពាក្យចម្លើយ +3. វដ្តត្រឡប់ទៅជំហានលេខ 2 + +### ការបង្កើតបូត + +មកបង្កើតបូតបន្ទាប់។ យើងនឹងចាប់ផ្តើមដោយកំណត់ពាក្យសម្តីមួយចំនួន។ + +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?"] + ``` + + វានេះជាឧទាហរណ៍លទ្ធផលដើម្បីណែនាំអ្នក (បញ្ចូលអ្នកប្រើនៅជួរដើមជាមួយ `>`): + + ```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! + ``` + + ដំណោះស្រាយមួយដែលអាចធ្វើបានសម្រាប់បញ្ហានេះមាននៅ [ទីនេះ](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/1-Introduction-to-NLP/solution/bot.py) + + ✅ បញ្ឈប់ និងពិចារណា + + 1. តើអ្នកគិតថាចម្លើយចៃដន្យអាច 'បោកបញ្ឆោត' អ្នកណាម្នាក់ឲ្យគិតថាបូតបានយល់ពិតណែន? + 2. តើមានលក្ខណៈអ្វីដែលបូតនឹងត្រូវការដើម្បីមានប្រសិទ្ធភាពបន្ថែម? + 3. បើបូតអាចពិតប្រាកដ 'យល់' អត្ថន័យប្រយោគ តើវាត្រូវចាំអត្ថន័យនៃប្រយោគចាស់ក្នុងសន្ទនាជាមួយទេ? + +--- + +## 🚀ការប្រកួតប្រជែង + +ជ្រើសរើសមួយក្នុងចំណោមធាតុ "បញ្ឈប់ និងពិចារណា" ខាងលើ ហើយសាកល្បងអនុវត្តវាក្នុងកូដ ឬសរសេរបញ្ហាដោយផ្ទាល់ក្នុងទំព័រដោយប្រើ pseudocode។ + +នៅមេរៀនបន្ទាប់ អ្នកនឹងរៀនអំពីវិធីផ្សេងៗជាច្រើនក្នុងការបញ្ចាក់ភាសាធម្មជាតិ និងការសិក្សាយានយន្ត។ + +## [សំណួរបន្ទាប់មករួចពីមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## សេចក្ដីពិនិត្យ & ការសិក្សាផ្ទាល់ខ្លួន + +សូមមើលឯកសារយោងខាងក្រោមជាឳកាសអានបន្ថែម។ + +### ឯកសារយោង + +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.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើប្រាស់សេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំរក្សាការត្រឹមត្រូវ ក៏ដោយ សូមយល់ដឹងថាការបកប្រែដោយម៉ាស៊ីនអាចមានកំហុសឬការមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាទ្រង់ទ្រាយដើមគួរត្រូវបានចាត់ទុកជាភាពដោយផ្លូវការជាមូលដ្ឋាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរតែប្រើការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/1-Introduction-to-NLP/assignment.md b/translations/km/6-NLP/1-Introduction-to-NLP/assignment.md new file mode 100644 index 000000000..6ee5702c8 --- /dev/null +++ b/translations/km/6-NLP/1-Introduction-to-NLP/assignment.md @@ -0,0 +1,18 @@ +# ស្វែងរកបូត + +## សេចក្តីណែនាំ + +បូតមានគ្រប់កន្លែង។ ភារកិច្ចរបស់អ្នក៖ ស្វែងរកមួយហើយទទួលយកវា! អ្នកអាចឃើញពួកវានៅលើគេហទំព័រ ក្នុងកម្មវិធីធនាគារ និងលើទូរស័ព្ទ តាមឧទាហរណ៍ពេលដែលអ្នកហៅក្រុមហ៊ុនសេវាកម្មហិរញ្ញវត្ថុសម្រាប់សុំយោបល់ឬព័ត៌មានគណនី។ វិភាគបូតហើយពិចារណាថាតើអ្នកអាចធ្វើឲ្យវាក្រងច្រឡំបានទេ។ ប្រសិនបើអាចធ្វើឲ្យបូតច្រឡំបាន អ្វីជាហេតុដែលអ្នកគិតថាជាហេតុនោះ? សរសេរគ្រប់ឯកសារខ្លីអំពីបទពិសោធន៍របស់អ្នក។ + +## ចំណាត់ថ្នាក់ + +| កត្តា | លទ្ធផលឧទាហរណ៍ | គ្រប់គ្រាន់ | ត្រូវបានលើកលែង | +| -------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | --------------------- | +| | ឯកសារត្រូវបានសរសេរពេញមួយទំព័រ ពន្យល់ពីសំណង់បូតដែលបានសន្មត់ និងបង្ហាញបទពិសោធន៍របស់អ្នកជាមួយវា | ឯកសារមិនពេញលេញឬមិនបានស្រាវជ្រាវល្អ | មិនមានការដាក់ស្នើឯកសារ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវទៅវិញទៅមក។ ឯកសារដើមនៅភាសាមាតិការបស់វាគួរត្រូវបានចាត់ទុកជាអ្នកឧត្តមសុវត្ថិភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សដែលជាមនុស្សជំនាញគឺបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការសInterpretទេ ដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/2-Tasks/README.md b/translations/km/6-NLP/2-Tasks/README.md new file mode 100644 index 000000000..d6235864d --- /dev/null +++ b/translations/km/6-NLP/2-Tasks/README.md @@ -0,0 +1,221 @@ +# ការងារជាទូទៅនៃដំណើរការបម្លែងភាសាជាស្រ្តី និងបច្ចេកទេសផ្សេងៗ + +សម្រាប់ការងារ *ដំណើរការបម្លែងភាសាជាស្រ្តី* សន្តិសុខមួយចំនួន ប្រយោលដែលត្រូវដំណើរការ ត្រូវបានបំបែក ចែកសមាសភាព និងរក្សាទុកលទ្ធផល ឬយោងតាមច្បាប់ និងឈុតទិន្នន័យ។ ការងារទាំងនេះ អនុញ្ញាតឲ្យកម្មវិធីកុំព្យូទ័រចេញចំណេះដឹងពី _អត្ថន័យ_ ឬ _បំណង_ ឬគឺ _ចំនួនកើតឡើង_ នៃពាក្យ និងពាក្យសំដីនៅក្នុងអត្ថបទ។ + +## [សំណួរប្រឡងមុនពេលសិក្សា](https://ff-quizzes.netlify.app/en/ml/) + +មកស្វែងយល់ពីបច្ចេកទេសទូទៅប្រើប្រាស់ក្នុងការដំណើរការអត្ថបទ។ រួមបញ្ចូលជាមួយការរៀនម៉ាស៊ីន បច្ចេកទេសទាំងនេះជួយអ្នកវិភាគអត្ថបទច្រើនយ៉ាងមានប្រសិទ្ធភាព។ មុនពេលអនុវត្តការរៀនម៉ាស៊ីនទៅការងារទាំងនេះ ទោះជាយ៉ាងណា មកយល់ពីបញ្ហាដែលជំនាញ NLP បានជួបប្រទៈ។ + +## ការងារទូទៅសម្រាប់ NLP + +មានវិធីផ្សេងៗក្នុងការវិភាគអត្ថបទដែលអ្នកកំពុងធ្វើការ។ មានការងារដែលអ្នកអាចអនុវត្តបាន ហើយតាមរយៈការងារទាំងនេះ អ្នកអាចវាស់វែងការយល់ដឹងអំពីអត្ថបទ និងទាញយកសេចក្តីសន្និដ្ឋាន។ វាធម្មតាអ្នកអនុវត្តការងារទាំងនេះតាមលំដាប់ជួរ។ + +### ការបំបែកពាក្យ + +ប្រហែលជារឿងដំបូងដែលអាល់ហ្គរីធម៍ NLP ចាំបាច់ធ្វើ គឺបំបែកអត្ថបទទៅជាពាក្យ ឬ token។ ទោះបីវាមើលទៅសាមញ្ញ ក៏ដោយ ត្រូវរាប់បញ្ចូល ចំណុចពាក្យសម្គាល់ និងភាសារផ្សេងៗដែលមានរំលេចពាក្យ និងប្រយោគ អាចធ្វើឲ្យវារវល់។ អ្នកប្រហែលជាត្រូវប្រើវិធីផ្សេងៗក្នុងកំណត់ព្រំដែន។ + +![tokenization](../../../../translated_images/km/tokenization.1641a160c66cd2d9.webp) +> ការបំបែកពាក្យប្រយោគមួយពី **Pride and Prejudice**។ រូបភាពដោយ [Jen Looper](https://twitter.com/jenlooper) + +### ការចម្លងបំលែង Embeddings + +[Word embeddings](https://wikipedia.org/wiki/Word_embedding) គឺជាវិធីមួយក្នុងការបម្លែងទិន្នន័យអត្ថបទរបស់អ្នកទៅជាលេខ។ Embeddings ត្រូវធ្វើម៉្យាងដែលពាក្យដែលមានអត្ថន័យស្រដៀងឬពាក្យដែលប្រើប្រាស់រួមគ្នា ត្រូវរួមជាក្រុមគ្នា។ + +![word embeddings](../../../../translated_images/km/embedding.2cf8953c4b3101d1.webp) +> "ខ្ញុំមានកិត្យាស្រយាលខ្ពស់ចំពោះសរសៃប្រសាទរបស់អ្នក ពួកវាជាមិត្តបងប្អូនចាស់របស់ខ្ញុំ។" - Word embeddings សម្រាប់ប្រយោគមួយនៅ **Pride and Prejudice**។ រូបភាពដោយ [Jen Looper](https://twitter.com/jenlooper) + +✅ សាកល្បង [ឧបករណ៍ចម្លែកនេះ](https://projector.tensorflow.org/) ដើម្បីសាកល្បង word embeddings។ ចុចលើពាក្យមួយ បង្ហាញក្រុមពាក្យស្រដៀងៗគ្នា៖ 'toy' រួមជាមួយ 'disney', 'lego', 'playstation', និង 'console'។ + +### ការវិភាគផ្លូវរចនា និង គ្រឿងតុបតែងភាសា (POS Tagging) + +ពាក្យរាល់ពាក្យដែលបានបំបែកអាចត្រូវបានផ្ដល់ស្លាកជាប្រភេទគ្រឿងតុបតែងភាសា - ឈ្មោះនាម, កិរិយាស័ព្ទ, ឬគុណនាម។ ប្រយោគ `the quick red fox jumped over the lazy brown dog` អាចត្រូវបានបញ្ចូលស្លាក POS ដូចជា fox = នាម, jumped = កិរិយាស័ព្ទ។ + +![parsing](../../../../translated_images/km/parse.d0c5bbe1106eae8f.webp) + +> ការវិភាគចំពោះប្រយោគមួយពី **Pride and Prejudice**។ រូបភាពដោយ [Jen Looper](https://twitter.com/jenlooper) + +ការវិភាគ គឺសម្គាល់ថាពាក្យមួយៗមានទំនាក់ទំនងគ្នាយ៉ាងដូចម្តេចនៅក្នុងប្រយោគ - ឧទាហរណ៍ `the quick red fox jumped` ជាលំដាប់គុណនាម-នាម-កិរិយាស័ព្ទ ដែលបំបែកខុសពីលំដាប់ `lazy brown dog`។ + +### ចំនួនកើតឡើងនៃពាក្យ និងវាក្យសម្រុក + +វិធីប្រើប្រាស់មានប្រយោជន៍មួយនៅពេលវិភាគអត្ថបទធំមួយ គឺបង្កើតវចនានុក្រមនៃពាក្យ ឬវាក្យសម្រុកដែលចាប់អារម្មណ៍ និងចំនួនកើតឡើងរបស់វា។ វាក្យសម្រុក `the quick red fox jumped over the lazy brown dog` មានចំនួនកើតឡើង 2 សម្រាប់ពាក្យ the។ + +មកមើលអត្ថបទឧទាហរណ៍មួយដែលយើងរាប់ចំនួនកើតឡើងនៃពាក្យ។ យកកាដើមទសព្យពាក្យ Rugyard Kipling "The Winners" មានវត្រង់ដូចខាងក្រោម៖ + +```output +What the moral? Who rides may read. +When the night is thick and the tracks are blind +A friend at a pinch is a friend, indeed, +But a fool to wait for the laggard behind. +Down to Gehenna or up to the Throne, +He travels the fastest who travels alone. +``` + +ដោយសារវាក្យសម្រុកអាចសំរាប់ភ្ជាប់ចំរូង case sensitive ឬ case insensitive តាមការត្រូវការ ប៉ុន្តែវាក្យសម្រុក `a friend` មានចំនួនកើតឡើង 2 ហើយ `the` មានចំនួនកើតឡើង 6 ហើយ `travels` មានចំនួន 2។ + +### N-grams + +អត្ថបទអាចត្រូវបានចែកជា លំដាប់ពាក្យដែលមានប្រវែងបង្កប់មួយ ដូចជា ពាក្យតែមួយ (unigram), ពាក្យពីរ (bigrams), ពាក្យបី (trigrams) ឬជាចំនួនពាក្យណាមួយ (n-grams)។ + +ឧទាហរណ៍ `the quick red fox jumped over the lazy brown dog` ជាមួយពិន្ទុ n-gram 2 ផលិតនូវ n-grams ខាងក្រោម៖ + +1. the quick +2. quick red +3. red fox +4. fox jumped +5. jumped over +6. over the +7. the lazy +8. lazy brown +9. brown dog + +វាអាចងាយស្រួលប្រសើរជាងជាមួយនឹងការថតដំបូងលើប្រយោគ។ ជាលំនាំអំពី n-grams 3 ពាក្យ n-gram ពណ៌ត្រង់ក្នុងមួយប្រយោគដូចខាងក្រោម៖ + +1. **the quick red** fox jumped over the lazy brown dog +2. the **quick red fox** jumped over the lazy brown dog +3. the quick **red fox jumped** over the lazy brown dog +4. the quick red **fox jumped over** the lazy brown dog +5. the quick red fox **jumped over the** lazy brown dog +6. the quick red fox jumped **over the lazy** brown dog +7. the quick red fox jumped over **the lazy brown** dog +8. the quick red fox jumped over the **lazy brown dog** + +![n-grams sliding window](../../../../6-NLP/2-Tasks/images/n-grams.gif) + +> តម្លៃ N-gram 3៖ រូបមន្តដោយ [Jen Looper](https://twitter.com/jenlooper) + +### ការនាំយកវាក្យភាសា ឬ Noun phrase + +នៅក្នុងប្រយោគភាគច្រើន មាននាមមួយដែលជា ប្រធាន ឬវត្ថុរបស់ប្រយោគ។ ក្នុងភាសាអង់គ្លេស វាពិបាកស្គាល់ដូចជាមានពាក្យ 'a' ឬ 'an' ឬ 'the' មុខវា។ ការសម្គាល់ប្រធាន ឬវត្ថុដោយ 'នាំយកវាក្យភាសា' គឺជាការងារមួយទូទៅនៅក្នុង NLP នៅពេលដែលព្យាយាមយល់អត្តន័យរបស់ប្រយោគ។ + +✅ ក្នុងប្រយោគ "I cannot fix on the hour, or the spot, or the look or the words, which laid the foundation. It is too long ago. I was in the middle before I knew that I had begun." អ្នកអាចសម្គាល់វាក្យភាសា? + +ក្នុងប្រយោគ `the quick red fox jumped over the lazy brown dog` មានវាក្យភាសា 2៖ **quick red fox** និង **lazy brown dog**។ + +### វិភាគអារម្មណ៍ + +ប្រយោគ ឬអត្ថបទអាចត្រូវបានវិភាគសម្រាប់អារម្មណ៍ ឬថាតើវា *វិជ្ជមាន* ឬ *អវិជ្ជមាន* មួយ។ អារម្មណ៍វាស់វែងជាពណ៌អំណស្សក៍ និងអតិបរមា/អធិបរមា (polarity និង objectivity/subjectivity)។ Polarity វាស់វែងពី -1.0 ទៅ 1.0 (អវិជ្ជមានទៅវិជ្ជមាន) និង 0.0 ទៅ 1.0 (សំរាប់អតិបរមាទៅអធិបរមា) ។ + +✅ នៅពេលក្រោយ អ្នកនឹងរៀនថាមានវិធីផ្សេងៗក្នុងការកំណត់អារម្មណ៍ដោយប្រើការរៀនម៉ាស៊ីន ប៉ុន្តែវិធីមួយគឺមានបញ្ជីពាក្យ និងវាក្យសម្រុកដែលត្រូវបានចាត់ថ្នាក់ជា positive ឬ negative ដោយអ្នកជំនាញមនុស្ស ហើយអនុវត្តគំរូទៅលើអត្ថបទដើម្បីគណនាចំនួន polarity។ អ្នកអាចមើលឃើញថាវាធ្វើដូចម្តេចនៅស្ថានការណ៍ខ្លះ និងតិចក្នុងស្ថានការណ៍ផ្សេងទៀត? + +### Inflection + +Inflection អនុញ្ញាតឲ្យអ្នកយកពាក្យមួយ ហើយទទួលបាននាមវត្ថុម្នាក់ឬពហុវត្ថុនៃពាក្យនោះ។ + +### Lemmatization + +lemma គឺជាគោលដៅ ឬពាក្យដើមសម្រាប់ជុំវិញពាក្យមួយក្រុម បទពិសោធន៍ដូចជា *flew*, *flies*, *flying* មាន lemma គឺកិរិយាស័ព្ទ *fly*។ + +ក៏មានមូលដ្ឋានទិន្នន័យមានប្រយោជន៍សម្រាប់អ្នកស្រាវជ្រាវ NLP ដូចជាៈ + +### WordNet + +[WordNet](https://wordnet.princeton.edu/) គឺជាមូលដ្ឋានទិន្នន័យពាក្យ សមាសភាពសំដីប្រយោគ និងព័ត៌មានផ្សេងៗសម្រាប់ពាក្យរាល់ពាក្យក្នុងភាសាច្រើនផ្សេងៗគ្នា។ វាមានប្រយោជន៍ខ្លាំងនៅពេលព្យាយាមបង្កើតការប្រែប្រាស់ កម្មវិធីកំណត់អក្សរត្រួតពិនិត្យ ឬឧបករណ៍ភាសាប្រភេទណាមួយ។ + +## បណ្ណាល័យ NLP + +សំណាងល្អ អ្នកមិនចាំបាច់បង្កើតបច្ចេកទេសទាំងនេះផ្ទាល់ទាំងអស់ទេ ព្រោះមានបណ្ណាល័យ Python ល្អៗដែលធ្វើឲ្យវាងាយស្រួលសម្រាប់អ្នកអភិវឌ្ឍដែលមិនពិសេសក្នុងដំណើរការបម្លែងភាសាជាស្រ្តី ឬការរៀនម៉ាស៊ីន។ មេរៀនបន្ទាប់មានឧទាហរណ៍បន្ថែមច្រើនខាងលើ ប៉ុន្តែទីនេះ អ្នកនឹងរៀនឧទាហរណ៍ប្រយោជន៍ខ្លះៗដើម្បីជួយអ្នកកិច្ចការ។ + +### លំហាត់ - ប្រើបណ្ណាល័យ `TextBlob` + +មកប្រើបណ្ណាល័យដែលហៅថា TextBlob ព្រោះវាមាន API ផ្តល់ជំនួយសម្រាប់ដោះស្រាយប្រភេទការងារទាំងនេះ។ TextBlob "ឈរលើស្មារតីដ៏ធំនៃ [NLTK](https://nltk.org) និង [pattern](https://github.com/clips/pattern) ហើយមានការបញ្ចូលសាមញ្ញជាមួយទាំងពីរ"។ វាមានបរិមាណ ML មានជាច្រើននៅក្នុង API របស់វា។ + +> កំនត់ចំណាំ៖ មានមគ្គុទេសក៍ [Quick Start](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) ដែលមានប្រយោជន៍សម្រាប់ TextBlob ដែលបានផ្តល់អត្ថប្រយោជន៍សម្រាប់អ្នកអភិវឌ្ឍ Python មានបទពិសោធន៍។ + +នៅពេលព្យាយាមសម្គាល់ *វាក្យភាសា* TextBlob ផ្តល់ជម្រើស extractor ជាច្រើនសម្រាប់រកវាក្យភាសា។ + +1. មើលទៅហើយលើ `ConllExtractor`។ + + ```python + from textblob import TextBlob + from textblob.np_extractors import ConllExtractor + # នាំចូល ហើយបង្កើតឧបករណ៍ទាញយក Conll ដើម្បីប្រើក្រោយ + extractor = ConllExtractor() + + # ក្រោយពេលដែលអ្នកត្រូវការឧបករណ៍ទាញយកវាក្យបុព្វបទសកម្មភាពចំណាំ: + user_input = input("> ") + user_input_blob = TextBlob(user_input, np_extractor=extractor) # សម្គាល់ថាឧបករណ៍ទាញយកមិនមែនលំនាំដើមត្រូវបានបញ្ជាក់ឡើយ + np = user_input_blob.noun_phrases + ``` + + > តើមានអ្វីកើតឡើងនៅទីនេះ? [ConllExtractor](https://textblob.readthedocs.io/en/dev/api_reference.html?highlight=Conll#textblob.en.np_extractors.ConllExtractor) ជា "ឧបករណ៍នាំយកវាក្យភាសាមួយដែលប្រើការជម្រះ chunk parsing ដែលបានបង្រៀនជាមួយ ConLL-2000 training corpus"។ ConLL-2000 សំដៅទៅកាន់សន្និបាត 2000 ផ្នែកចំណេះដឹងដំណើរការភាសាជាស្រ្តីដោយកុំព្យូទ័រ។ គ្រប់ឆ្នាំ សន្និបាតនេះមានសិក្ខាសាលាផ្តល់ដោះស្រាយបញ្ហា NLP ពិបាក ហើយឆ្នាំ 2000 គឺជាការចែកម៉ូដែល noun chunking។ ម៉ូដែលត្រូវបានបង្រៀននៅលើ Wall Street Journal ជាមួយ "ផ្នែក 15-18 ជាដាតាប្រើសម្រាប់បង្រៀន (211727 tokens) និងផ្នែក 20 ជាដាតាសម្រាប់សាកល្បង (47377 tokens)"។ អ្នកអាចមើលដំណើរការដំណើរ [ទីនេះ](https://www.clips.uantwerpen.be/conll2000/chunking/) និង [លទ្ធផល](https://ifarm.nl/erikt/research/np-chunking.html)។ + +### បញ្ហា - បង្កើត bot របស់អ្នកឲ្យប្រសើរជាមួយ NLP + +ក្នុងមេរៀនមុន អ្នកបានបង្កើតbotសំណួរ-ចម្លើយងាយៗមួយ។ ឥឡូវនេះ អ្នកនឹងធ្វើឲ្យ Marvin មើលទៅមានមនុស្សធម៌បន្តិច ដោយវិភាគអារម្មណ៍នៃការបញ្ចូលព័ត៌មាន រួចបោះពុម្ពមតិក្នុងការឆ្លើយតបសមរម្យតាមអារម្មណ៍។ អ្នកក៏ត្រូវសំគាល់ `noun_phrase` ហើយសួរអំពីវា។ + +ជំហានរបស់អ្នកនៅពេលបង្កើត bot សន្ទនា ប្រសើរជាងមុន៖ + +1. បោះពុម្ពអនុសាសន៍ណែនាំដល់អ្នកប្រើអំពីរបៀបធ្វើការ ជាមួយ bot +2. ចាប់ផ្ដើមចូលរង្វាន់ (loop) + 1. ទទួលការបញ្ចូលពីអ្នកប្រើ + 2. ប្រសិនបើអ្នកប្រើបានស្នើសុំចាកចេញ ចប់កម្មវិធី + 3. ដំណើរការបញ្ចូលពីអ្នកប្រើ ហើយកំណត់ការឆ្លើយតបតាមអារម្មណ៍ + 4. ប្រសិនបើមានវាក្យភាសាត្រូវបានរកឃើញ នៅក្នុងអារម្មណ៍ សូមបង្វះវា និងសួរពាណិជ្ជកម្មបន្ថែមអំពីប្រធានបទនោះ + 5. បោះពុម្ពចម្លើយ +3. ត្រលប់ទៅជំហាន 2 + +នេះគឺជាឧទាហរណ៍កូដកំណត់អារម្មណ៍ដោយប្រើ TextBlob។ សូមចំណាំថាមានតែបួន *កម្រិត* នៃចម្លើយអារម្មណ៍តែប៉ុណ្ណោះ (អ្នកអាចមានច្រើនជាងនេះ ប្រសិនបើចង់បាន)៖ + +```python +if user_input_blob.polarity <= -0.5: + response = "Oh dear, that sounds bad. " +elif user_input_blob.polarity <= 0: + response = "Hmm, that's not great. " +elif user_input_blob.polarity <= 0.5: + response = "Well, that sounds positive. " +elif user_input_blob.polarity <= 1: + response = "Wow, that sounds great. " +``` + +នេះជាឧទាហរណ៍ចេញព័ត៌មានមួយ ដើម្បីណែនាំអ្នក (ការបញ្ចូលអ្នកប្រើមាននៅលើបន្ទាត់ដែលចាប់ផ្ដើមជាមួយ >): + +```output +Hello, I am Marvin, the friendly robot. +You can end this conversation at any time by typing 'bye' +After typing each answer, press 'enter' +How are you today? +> I am ok +Well, that sounds positive. Can you tell me more? +> I went for a walk and saw a lovely cat +Well, that sounds positive. Can you tell me more about lovely cats? +> cats are the best. But I also have a cool dog +Wow, that sounds great. Can you tell me more about cool dogs? +> I have an old hounddog but he is sick +Hmm, that's not great. Can you tell me more about old hounddogs? +> bye +It was nice talking to you, goodbye! +``` + +ដំណោះស្រាយមួយសម្រាប់ការងារនេះគឺ [នៅទីនេះ](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/2-Tasks/solution/bot.py) + +✅ ការត្រួតពិនិត្យចំណេះដឹង + +1. តើអ្នកគិតថាចម្លើយដែលមានការស្រលាញ់នឹងអាច 'ជួញដូរ' មនុស្សម្នាក់ឲ្យគិតថាbotបានយល់ពួកគេមែនទេ? +2. តើការបន្ថែមវាក្យភាសាធ្វើឲ្យបូតមើលទៅ 'ជាក់ស្តែង' ឡើងដែរឬទេ? +3. ហេតុអ្វីបានជា ការនាំយក 'វាក្យភាសា' ពីប្រយោគគឺជារឿងមានប្រយោជន៍? + +--- + +អនុវត្ត bot ក្នុងការត្រួតពិនិត្យចំណេះដឹង និងសាកល្បងវាចំពោះមិត្តភក្តិ។ តើវាអាចបោកពួកគេបានទេ? តើអាចធ្វើឲ្យ bot របស់អ្នកមើលទៅ 'ជាក់ស្តែង' ជាងមុនបានទេ? + +## 🚀បញ្ហា + +យកការងារមួយក្នុងការត្រួតពិនិត្យចំណេះដឹងមុន ហើយព្យាយាមអនុវត្តវា។ សាកល្បង bot ជាមួយមិត្តភក្តិ។ តើវាអាចបោកបានទេ? តើអ្នកអាចធ្វើឲ្យ bot របស់អ្នកប្រសើរជាងមុនបានទេ? + +## [សំណួរប្រឡងបន្ទាប់មក](https://ff-quizzes.netlify.app/en/ml/) + +## ការត្រួតពិនិត្យ និងសិក្សាឯករាជ្យ + +ក្នុងមេរៀនបន្ទាប់ អ្នកនឹងស្គាល់បន្ថែមអំពីវិភាគអារម្មណ៍។ ស្រាវជ្រាវបច្ចេកទេសចម្លែកនេះតាមអត្ថបទដូចជា នៅលើ [KDNuggets](https://www.kdnuggets.com/tag/nlp) + +## កិច្ចការផ្ទះ + +[បង្កើត robot ដែលអាចសន្ទនាតប្ដូរ](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងដើម្បីភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានពិនិត្យជាតំណាងផ្លូវការជាប្រភព។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរតែប្រើប្រាស់ការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/2-Tasks/assignment.md b/translations/km/6-NLP/2-Tasks/assignment.md new file mode 100644 index 000000000..ceac038ca --- /dev/null +++ b/translations/km/6-NLP/2-Tasks/assignment.md @@ -0,0 +1,18 @@ +# ធ្វើឲ្យបុត់និយាយតបតទៅវិញ + +## សេចក្តីណែនាំ + +នៅក្នុងមេរៀនប៉ុន្មានមុខមុននេះ អ្នកបានកម្មវិធីបុត់មូលដ្ឋានមួយដែលអាចនិយាយជជែកសន្ទនាជាមួយវា។ បុត់នេះផ្តល់ចម្លើយចៃដន្យរហូតដល់អ្នកនិយាយ 'លាលា'។ តើអ្នកអាចធ្វើឲ្យចម្លើយមានភាពខុសគ្នានិងបណ្តើរ​ចម្លើយបើអ្នកនិយាយវាកាសពិសេសៗដូចជា 'ហេតុអ្វី' ឬ 'ដូចម្តេច'? សូមគិតឲ្យល្អថា ការសិក្សាគ្រឿងម៉ាស៊ីនអាចធ្វើឲ្យការងារនេះមានភាពងាយស្រួល និងមានការរីកចម្រើនបុត់របស់អ្នកយ៉ាងដូចម្តេច។ អ្នកអាចប្រើប្រាស់បណ្ណាល័យ NLTK ឬ TextBlob ដើម្បីធ្វើឲ្យការងាររបស់អ្នកកាន់តែងាយស្រួល។ + +## ក្រមាសម្រាប់វាយតម្លៃ + +| ប្រធានបទ | ល្អឥតខ្ចោះ | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------------------------------------------- | ------------------------------------------------ | ----------------------- | +| | មានឯកសារ bot.py ថ្មី និងមានឯកសារ | មានឯកសារបុត់ថ្មី ប៉ុន្តែមានបញ្ហា | មិនមានឯកសារបង្ហាញ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ពីពីរបច្ច័យថា ការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមនៅក្នុងភាសមាតុភូមិគួរត្រូវបានពិចារណាថាជាមូលដ្ឋានដ៏មានអភិបាលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងណែនាំឱ្យប្រើប្រាស់ការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសចេញពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/3-Translation-Sentiment/README.md b/translations/km/6-NLP/3-Translation-Sentiment/README.md new file mode 100644 index 000000000..004ea060c --- /dev/null +++ b/translations/km/6-NLP/3-Translation-Sentiment/README.md @@ -0,0 +1,199 @@ +# ការបកប្រែ និងវិភាគអារម្មណ៍ជាមួយ ML + +ក្នុងមេរៀនមុន អ្នកបានរៀនពីរបៀបសាងសង់បុត្រមូលដ្ឋានប្រើ `TextBlob` ដែលជាបណ្ណាល័យដែលបញ្ចូល ML នៅពីក្រោយដើម្បីអនុវត្តបេសកកម្ម NLP មូលដ្ឋានដូចជាការទាញយកគន្លឹះ នៃវាក្យប្បទាន។ បញ្ហាសំខាន់មួយទៀតក្នុងវិទ្យាសាស្ត្រភាសាគណនា​គឺការ​បកប្រែ_យ៉ាងត្រឹមត្រូវ_នៃ​ប្រយោគ​ពី​ភាសាប្រកបដោយសន្ទនា ឬបានសរសេរ មួយ ទៅភាសាផ្សេងទៀត។ + +## [គណនាសំណួរមុនម៉ោងបង្រៀន](https://ff-quizzes.netlify.app/en/ml/) + +ការបកប្រែកឺជាបញ្ហាដ៏ស្មុគស្មាញខ្លាំង ព្រោះមានភាសាច្រើនក្នុងពិភពលោក ហើយភាសាទាំងនោះអាចមានវិន័យវចនានុក្រមខុសគ្នាយ៉ាងខ្លាំង។ មួយវិធីមួយគឺបម្លែងវិន័យផ្លូវការសម្រាប់ភាសាមួយ ដូចជាភាសាអង់គ្លេស​ទៅកាន់រចនាសម្ព័ន្ធមិនពឹងផ្អែកលើភាសា ហើយបន្ទាប់មកបកប្រែវាដោយបម្លែងវិញទៅភាសាផ្សេងទៀត។ វិធីនេះព្រមទាំងត្រូវដំណើរការជំហានដូចខាងក្រោម៖ + +1. **កំណត់អត្តសញ្ញាណ**។កំណត់ ឬមីតភាសា​ពាក្យនៅក្នុងភាសាបញ្ចូលទៅជាគោលវចនានុក្រមដូចជា នាម សកម្មនាម ជាដើម។ +2. **បង្កើតការបកប្រែ**។ ផលិតការបកប្រែផ្ទាល់នៃពាក្យនីមួយៗនៅក្នុងទ្រង់ទ្រាយភាសាគោលដៅ។ + +### ប្រយោគគំរូ, ពីអង់គ្លេសទៅភាសាអៀរឡង់ + +នៅក្នុងភាសា 'អង់គ្លេស' ប្រយោគ _I feel happy_ មានបីពាក្យលំដាប់ដូចជា៖ + +- **រូបនាម** (I) +- **សកម្មនាម** (feel) +- **ពាក្យលក្ខណៈនាម** (happy) + +ប៉ុន្តែក្នុងភាសា 'អៀរឡង់' ប្រយោគដូចគ្នាមានរចនាសម្ព័ន្ធវិន័យខុសពីគ្នាយ៉ាងខ្លាំង - អារម្មណ៍ដូចជា "*សប្បាយចិត្ត*" ឬ "*សោកសៅ*" ត្រូវបានបង្ហាញថា *នៅលើ* អ្នក។ + +ប្រយោគអង់គ្លេស `I feel happy` ក្នុងភាសាអៀរឡង់នឹងមានជា `Tá athas orm`។ ការបកប្រែ *តាមពិត* គឺជា `Happy is upon me`។ + +អ្នកនិយាយភាសាអៀរឡង់បកប្រែទៅអង់គ្លេសនឹងនិយាយថា `I feel happy` មិនមែន `Happy is upon me` ទេ ព្រោះពួកគេយល់ន័យនៃប្រយោគ ទោះបីជាពាក្យ និងរចនាសម្ព័ន្ធប្រយោគខុសគ្នាក៏ដោយ។ + +លំដាប់ផ្លូវការរបស់ប្រយោគក្នុងភាសាអៀរឡង់គឺ៖ + +- **សកម្មនាម** (Tá ឬ is) +- **ពាក្យលក្ខណៈនាម** (athas, ឬ happy) +- **រូបនាម** (orm, ឬ upon me) + +## ការបកប្រែ + +កម្មវិធីបកប្រែកម្រង់អាចបកប្រែតែក្នុងកំឡុងពាក្យ ដោយមិនប្រើរចនាសម្ព័ន្ធប្រយោគ។ + +✅ ប្រសិនបើអ្នកបានរៀនភាសាទីពីរឬទីបីជាអ្នកធំ អ្នកអាចមានការចាប់ផ្តើមគិតជាភាសា​ដើម ហើយបកប្រែពាក្យមួយៗនៅក្នុងខួរក្បាលទៅភាសាទីពីរ ហើយបន្ទាប់និយាយនូវការបកប្រែរបស់អ្នក។ វា​ដូច​នឹង​ដែលកម្មវិធីបកប្រែ​កុំព្យូទ័រមួួយចំនួន កំពុងធ្វើនេះ។ វាសំខាន់ក្នុងការទៅឆ្ពោះដល់រាងភាសាអាចនិយាយបានរចនាសម្ព័ន្ធហ្គ្រាសយ៉ាងល្អ! + +ការបកប្រែសាមញ្ញនាំឲ្យមានការបកប្រែខុស (ហើយខ្លះពេលសើច)៖ `I feel happy` បកប្រែថា `Mise bhraitheann athas` ក្នុងភាសាអៀរឡង់។ នេះមានន័យ (តាមដិតដល់) `me feel happy` ហើយមិនមែនជាប្រយោគអៀរឡង់ត្រឹមត្រូវទេ។ ទោះបីជាភាសាអង់គ្លេស និងអៀរឡង់ជាភាសានិយាយនៅលើកោះជិតៗគ្នា ប៉ុន្តែវាជាភាសាផ្សេងគ្នាដោយមានរចនាសម្ព័ន្ធវិន័យខុសគ្នា។ + +> អ្នកអាចមើលវីដេអូជាច្រើនអំពីប្រពៃណីភាសាអៀរឡង់ដូចជា [នេះ](https://www.youtube.com/watch?v=mRIaLSdRMMs) + +### វិធីសាស្រ្ត machine learning + +រហូតមកដល់ពេលបច្ចុប្បន្ន អ្នកបានរៀនពីវិធីសាស្រ្តច្បាប់ផ្លូវការសម្រាប់កំណត់ប្រតិបត្តិការភាសាជាធម្មជាតិ។ វិធីសាស្រ្តមួយផ្សេងទៀតគឺមិនគិតពីន័យពាក្យទេ ហើយ _វិលមកប្រើ​​ machine learning ដើម្បីស្វែងរកលំនាំ_។ វា​អាច​ប្រើបាន​ក្នុងការបកប្រែ ប្រសិនបើអ្នកមានអត្ថបទច្រើន (កុលប្បធាន) ឬអត្ថបទជាច្រើន (កុលប្បធាន plural) ក្នុងភាសាម្ដង និងភាសាគោលដៅទាំងពីរ។ + +ឧទាហរណ៍ មើលករណី *Pride and Prejudice* គឺនិពន្ធអង់គ្លេសល្បីមួយដែល Jane Austen បានសរសេរនៅឆ្នាំ 1813។ ប្រសិនបើអ្នកពិនិត្យសៀវភៅជាភាសាអង់គ្លេស និងការបកប្រែដោយមនុស្សជា​ភាសាប្រទេស​បារាំង អ្នកអាចរកឃើញវាក្យប្បទានមួយដែលបានបកប្រែជា *អត្ថន័យ​តំណាង* ទៅឆ្មុះហើយផ្សេងគ្នា។ អ្នកនឹងធ្វើវានៅពេលក្រោយ។ + +ឧទាហរណ៍ ពេលពាក្យអង់គ្លេសដូចជា `I have no money` បកប្រែតាមដិតទៅជាបារាំង វាអាចក្លាយជាសម័យ `Je n'ai pas de monnaie`។ "Monnaie" គឺជាពាក្យបារាំងដែលគេហៅថា 'false cognate' មួយ មានន័យខុសពី 'money' ដូច្នេះមិនស្មើគ្នាទេ។ ការបកប្រែល្អជាងដែលអ្នកមនុស្សអាចធ្វើបាន គឺ `Je n'ai pas d'argent` ព្រោះវាពន្យល់ន័យថាអ្នកគ្មានលុយ (ប្រាក់កត្ថាន) មិនមែន​ជាការកក់បាក់តូចៗដែលមានន័យថា 'monnaie' ទេ។ + +![monnaie](../../../../translated_images/km/monnaie.606c5fa8369d5c3b.webp) + +> រូបថតដោយ [Jen Looper](https://twitter.com/jenlooper) + +ប្រសិនបើម៉ូដែល ML មានការបកប្រែដោយមនុស្សគ្រប់គ្រាន់សម្រាប់សាងម៉ូដែល វាអាចបញ្ចឹតភាពត្រឹមត្រូវនៃការបកប្រែដោយរកលំនាំធម្មតា ក្នុងអត្ថបទដែលបានបកប្រែដោយអ្នកនិយាយជំនាញទាំងពីរភាសា។ + +### ការហាត់ប្រាណ - ការបកប្រែ + +អ្នកអាចប្រើ `TextBlob` ដើម្បីបកប្រែប្រយោគ។ សាកល្បងប្រយោគទីមួយល្បីនៃ **Pride and Prejudice**៖ + +```python +from textblob import TextBlob + +blob = TextBlob( + "It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife!" +) +print(blob.translate(to="fr")) + +``` + +`TextBlob` ធ្វើការបកប្រែបានល្អ៖ "C'est une vérité universellement reconnue, qu'un homme célibataire en possession d'une bonne fortune doit avoir besoin d'une femme!" ។ + +អាចប្រកាន់ខុសថា ការបកប្រែរបស់ TextBlob ត្រឹមត្រូវជាងការបកប្រែជាភាសាបារាំងនៅឆ្នាំ 1932 ដែលបានធ្វើឡើងដោយ V. Leconte និង Ch. Pressoir៖ + +"C'est une vérité universelle qu'un célibataire pourvu d'une belle fortune doit avoir envie de se marier, et, si peu que l'on sache de son sentiment à cet egard, lorsqu'il arrive dans une nouvelle résidence, cette idée est si bien fixée dans l'esprit de ses voisins qu'ils le considèrent sur-le-champ comme la propriété légitime de l'une ou l'autre de leurs filles." + +ក្នុងករណីនេះ ការបកប្រែដែលបានជួយដោយ ML ធ្វើបានល្អជាងអ្នកបកប្រែមនុស្ស ដែលបញ្ចូលពាក្យមិនចាំបាច់ក្នុងមាត់អ្នកនិពន្ធដើមសម្រាប់ 'ភាពច្បាស់លាស់'។ + +> តើមានអ្វីកើតឡើងនៅទីនេះ? ហើយហេតុអ្វី TextBlob ជាអ្នកបកប្រែបានល្អចិត្ត? ខាងក្រោយវាកំពុងប្រើ Google translate ដែលជាបច្ចេកវិទ្យាស៊ីជម្រៅ AI ដែលអាចវិភាគពាក្យរាប់លានៗ ដើម្បីទាយទោលខ្សែអត្ថបទល្អបំផុតសម្រាប់បេសកកម្ម។ គ្មានដំណើរការដោយដៃខាងក្រោយ ហើយអ្នកត្រូវការតភ្ជាប់អ៊ីនធឺណិតដើម្បីប្រើ `blob.translate`។ + +✅ សាកល្បងប្រយោគខ្លះទៀត។ តើអ្វីល្អជាងគេខ្លះ ML ឬការបកប្រែមនុស្ស? ក្នុងករណីណាខ្លះ? + +## វិភាគអារម្មណ៍ + +តំបន់មួយផ្សេងទៀតដែល machine learning អាចមានប្រសិទ្ធភាពគឺក្នុងវិភាគអារម្មណ៍។ វិធីមួយដែលមិនប្រើ ML សម្រាប់វិភាគអារម្មណ៍គឺកំណត់ពាក្យនិងវាក្យប្បទានដែលមានន័យ 'វិជ្ជមាន' និង 'អវិជ្ជមាន'។ បន្ទាប់មក ប្រើអត្ថបទថ្មី គណនាតម្លៃសរុបនៃពាក្យវិជ្ជមាន អវិជ្ជមាន និងមិនច្បាស់លាស់ ដើម្បីកំណត់អារម្មណ៍ទូទៅ។ + +វិធីនេះងាយដួលបាំងដូចដែលអ្នកបានឃើញក្នុងការងារម៉ាហ្វិន - ប្រយោគ `Great, that was a wonderful waste of time, I'm glad we are lost on this dark road` តម្លៃអារម្មណ៍អវិជ្ជមានដោយសារប្រើពាក្យ 'great', 'wonderful', 'glad' ជាវិជ្ជមាន និង 'waste', 'lost' និង 'dark' ជាអវិជ្ជមាន។ អារម្មណ៍សរុបត្រូវបានរំអិលដោយពាក្យបាតុកម្មទាំងនេះ។ + +✅ បញ្ឈប់មួយវិនាទី ហើយគិតពីរបៀបដែលយើងបញ្ជាក់អារម្មណ៍រដួលចិត្តជាមនុស្សនិយាយ។ សោមខ្យល់នៅសំឡេងរបស់អ្នកមានសារៈសំខាន់។ សាកល្បងនិយាយប្រយោគថា "Well, that film was awesome" ជាច្រើនរបៀប ដើម្បីស្វែងរករបៀបសំឡេងរបស់អ្នកបញ្ជាក់ន័យ។ + +### វិធី ML + +វិធី ML គឺប្រមូលអត្ថបទអវិជ្ជមាន និងវិជ្ជមានដោយដៃ - ជារៀងរហូត អាចជាប្រកាសតាម Twitter រឺពិនិត្យភាពយន្ត ឬអ្វីគ្រប់យ៉ាងដែលមនុស្សបានផ្ដល់ពិន្ទុ និងយោបល់។ បច្ចេកទេស NLP អាចប្រើប្រតិបត្តិលើយោបល់ និងពិន្ទុ ដើម្បីរកលំនាំ (ឧទាហរណ៍ ពិនិត្យភាពយន្តវិជ្ជមានមានពាក្យ 'Oscar worthy' ច្រើនជាងពិនិត្យភាពយន្តអវិជ្ជមាន ឬពិនិត្យភោជនីយដ្ឋានវិជ្ជមានមានពាក្យ 'gourmet' ច្រើនជាង 'disgusting')។ + +> ⚖️ **ឧទាហរណ៍**៖ ប្រសិនបើអ្នកធ្វើការក្នុងការិយាល័យនយោបាយម្នាក់ ហើយមានច្បាប់ថ្មីមួយកំពុងពិភាក្សា ប្រជាពលរដ្ឋអាចសរសេរអ៊ីមែលគាំទ្រឬប្រឆាំងច្បាប់ថ្មី។ សន្មតថាអ្នកត្រូវអានអ៊ីមែលទាំងនោះ ហើយចាត់ថ្នាក់វាទៅជា 2 ក្រុម គឺ *គាំទ្រ* និង *ប្រឆាំង*។ ប្រសិនបើមានអ៊ីមែលច្រើន អ្នកអាចនៅក្រោមបន្ទុកក្នុងការអានវាទាំងអស់។ តើមិនល្អប្រសើរទេ ប្រសិនបើបុត្រ អាចអានគ្រប់អ៊ីមែលសម្រាប់អ្នក បានយល់ដឹង ហើយប្រាប់អ្នកថា អ៊ីមែលណាខ្លះនៅក្នុងក្រុមណា? + +> មួយវិធីដើម្បីសម្រេចចិត្តនេះ គឺប្រើ Machine Learning។ អ្នកបណ្តុះម៉ូដែលជាមួយផ្នែកមួយនៃអ៊ីមែល *ប្រឆាំង* និងផ្នែកមួយនៃអ៊ីមែល *គាំទ្រ*។ ម៉ូដែលនឹងភ្ជាប់ពាក្យ និងលំនាំជាមួយក្រុមប្រឆាំង និងគាំទ្រ ប៉ុន្តែវាមិនយល់ពីមាតិកា* ទេ គ្រាន់តែពាក្យ និងលំនាំខ្លះៗច្រើនរើសបានប្រើក្នុងអ៊ីមែល *ប្រឆាំង* ឬ *គាំទ្រ*។ អ្នកអាចសាកល្បងវាជាមួយអ៊ីមែលមួយចំនួនដែលមិនបានប្រើបណ្តុះម៉ូដែល ហើយមើលថាវាមានមតិដូចជាអ្នកទេឬ? បន្ទាប់មក ពេលអ្នកពេញចិត្តនឹងភាពត្រឹមត្រូវរបស់ម៉ូដែល អ្នកអាចដំណើរការអ៊ីមែលនៅពេលក្រោយដោយមិនចាំបាច់អានទាំងអស់ទៀត។ + +✅ តើដំណើរការនេះសម្លឹងទៅដូចនឹងដំណើរការដែលអ្នកបានប្រើរៀងៗខាងមុនទេ? + +## ការហាត់ប្រាណ - ប្រយោគមានអារម្មណ៍ + +អារម្មណ៍វាស់ដោយ *polarity* ពី -1 ទៅ 1, មានន័យថា -1 ជាអារម្មណ៍អវិជ្ជមានខំរាំងខ្លាំងបំផុត ហើយ 1 ជាអារម្មណ៍វិជ្ជមានខំរាំងខ្លាំងបំផុត។ អារម្មណ៍វាស់បានក៏ដោយជាមួយពិន្ទុ 0 - 1 សម្រាប់លក្ខណៈវាស់ចម្ងាយ(objectivity) (0) និងរូបភាពឯកជន(subjectivity) (1)។ + +សូមមើលម្ដងទៀត *Pride and Prejudice* របស់ Jane Austen។ អត្ថបទត្រូវបានចែករំលែកនៅទីនេះ [Project Gutenberg](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm)។ ឧទាហរណ៍ខាងក្រោមបង្ហាញកម្មវិធីខ្លីមួយដែលវិភាគអារម្មណ៍ក្នុងប្រយោគដំបូង និងចុងក្រោយពីសៀវភៅ និងបង្ហាញ polarity និង subjectivity/objectivity របស់វា។ + +អ្នកគួរប្រើបណ្ណាល័យ `TextBlob` (បានពិពណ៌នាចំពោះខាងលើ) ដើម្បីកំណត់ `sentiment` (អ្នកមិនចាំបាច់សរសេរកំណត់ត្រាអារម្មណ៍ផ្ទាល់) ក្នុងភារកិច្ចខាងក្រោម។ + +```python +from textblob import TextBlob + +quote1 = """It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want of a wife.""" + +quote2 = """Darcy, as well as Elizabeth, really loved them; and they were both ever sensible of the warmest gratitude towards the persons who, by bringing her into Derbyshire, had been the means of uniting them.""" + +sentiment1 = TextBlob(quote1).sentiment +sentiment2 = TextBlob(quote2).sentiment + +print(quote1 + " has a sentiment of " + str(sentiment1)) +print(quote2 + " has a sentiment of " + str(sentiment2)) +``` + +អ្នកឃើញលទ្ធផលដូចខាងក្រោម៖ + +```output +It is a truth universally acknowledged, that a single man in possession of a good fortune, must be in want # of a wife. has a sentiment of Sentiment(polarity=0.20952380952380953, subjectivity=0.27142857142857146) + +Darcy, as well as Elizabeth, really loved them; and they were + both ever sensible of the warmest gratitude towards the persons + who, by bringing her into Derbyshire, had been the means of + uniting them. has a sentiment of Sentiment(polarity=0.7, subjectivity=0.8) +``` + +## បញ្ហាសាកល្បង - ពិនិត្យ polarity អារម្មណ៍ + +ភារកិច្ចរបស់អ្នកគឺកំណត់ ប្រើ polarity អារម្មណ៍ ថា *Pride and Prejudice* មានប្រយោគវិជ្ជមានជាច្រើនជាងប្រយោគអវិជ្ជមានទេឬទេ។ សម្រាប់ភារកិច្ចនេះ អ្នកអាចសន្មតថា polarity 1 ឬ -1 តំណាងឲ្យវិជ្ជមាន ឬអវិជ្ជមានយ៉ាងពេញលេញ។ + +**ជំហាន៖** + +1. ទាញយក [ចម្លង​ឯកសារ Pride and Prejudice](https://www.gutenberg.org/files/1342/1342-h/1342-h.htm) ពី Project Gutenberg ជាឯកសារ .txt។ លុបបណ្ដាញបន្ថែម ដូចជា metadata នៅចាប់ផ្តើម និងចុងឯកសារ ដើម្បីទុកតែអត្ថបទដើម។ +2. បើកឯកសារនៅក្នុង Python ហើយទាញយកខ្លឹមសារជាសរុប +3. បង្កើត TextBlob ដោយប្រើខ្សែអត្ថបទសៀវភៅ +4. វិភាគប្រយោគមួយៗក្នុងសៀវភៅ ក្នុងរង្វិល + 1. ប្រសិនបើ polarity គឺ 1 ឬ -1 សូមរក្សាទុកប្រយោគនោះក្នុងអារេឬបញ្ជីប្រយោគវិជ្ជមាន ឬអវិជ្ជមាន +5. នៅចុងក្រោយ បោះពុម្ពប្រយោគវិជ្ជមាន និងអវិជ្ជមានទាំងអស់ (ចែករំលែក) និងចំនួននៃប្រយោគនីមួយៗ + +នេះជាឧទាហរណ៍ [ដំណោះស្រាយ](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb)។ + +✅ ការត្រួតពិនិត្យចំណេះដឹង + +1. អារម្មណ៍នេះគ្រប់គ្រាន់មកពីពាក្យដែលបានប្រើក្នុងប្រយោគ ក៏ប៉ុន្តែកម្មវិធីនេះ *យល់* ពាក្យទេឬ? +2. តើអ្នកគិតថា polarity អារម្មណ៍ត្រឹមត្រូវ ឬប្រែថា តើអ្នក *យល់ស្រប* ជាមួយពិន្ទុទាំងនោះ? + + 1. ជាពិសេស តើអ្នកយល់ស្របឬមិនយល់ស្របជាមួយ polarity **វិជ្ជមាន** ពេញលេញនៃប្រយោគខាងក្រោមនេះ? + + * “What an excellent father you have, girls!” said she, when the door was shut. + * “Your examination of Mr. Darcy is over, I presume,” said Miss Bingley; “and pray what is the result?” “I am perfectly convinced by it that Mr. Darcy has no defect. + * How wonderfully these sort of things occur! + * I have the greatest dislike in the world to that sort of thing. + * Charlotte is an excellent manager, I dare say. + * “This is delightful indeed! + * I am so happy! + * Your idea of the ponies is delightful. + + 2. ប្រយោគបីវាគ្មិនបន្ទាប់ត្រូវបានគេផ្ដល់ polarity វិជ្ជមានពេញលេញ ប៉ុន្តែរំពឹង​ពីការអានយ៉ាងម៉ត់ចត់ វាមិនមែនប្រយោគវិជ្ជមានទេ។ ហេតុអ្វីបានជា​វិភាគអារម្មណ៍គិតថាវាជាប្រយោគវិជ្ជមាន? + + * Happy shall I be, when his stay at Netherfield is over!” “I wish I could say anything to comfort you,” replied Elizabeth; “but it is wholly out of my power. + * If I could but see you as happy! + * Our distress, my dear Lizzy, is very great. + + 3. តើអ្នកយល់ស្របឬមិនយល់ស្របជាមួយ polarity **អវិជ្ជមាន** ពេញលេញនៃប្រយោគខាងក្រោមនេះ? + + - Everybody is disgusted with his pride. + - “I should like to know how he behaves among strangers.” “You shall hear then—but prepare yourself for something very dreadful. + - The pause was to Elizabeth’s feelings dreadful. + - It would be dreadful! + +✅ គ្រប់អ្នកដែលចូលចិត្ត Jane Austen នឹងយល់ថា នាងជាញឹកញាប់ប្រើសៀវភៅរបស់នាង ដើម្បីវិភាគកម្រិតលើសំបុកសំបែរ នៃសង្គម Regency អង់គ្លេស។ Elizabeth Bennett ដែលជាតួអង្គដ៏សំខាន់ក្នុង *Pride and Prejudice* ជាអ្នកត្រួតពិនិត្យសង្គមយ៉ាងម៉ត់ចត់ (ដូចអ្នកនិពន្ធ) ហើយភាសារបស់នាងគឺពោរពេញនូវអត្ថន័យស្មុគស្មាញ។ ម្ចាស់បំណង Mr. Darcy (ជាទំនាញស្នេហាជាក្នុងរឿង) ក៏បានដឹងនូវការប្រើភាសារបស់ Elizabeth ដែលពេញនឹងការលេងសើច និងចកកាយ៖ "I have had the pleasure of your acquaintance long enough to know that you find great enjoyment in occasionally professing opinions which in fact are not your own." + +--- + +## 🚀បញ្ហាសាកល្បង + +តើអ្នកអាចធ្វើឲ្យ Marvin ល្អប្រសើរឡើងទៀត ដោយទាញយកលក្ខណៈផ្សេងទៀតពីការបញ្ចូលរបស់អ្នកប្រើ? + +## [គណនាសំណួរថ្មីក្រោយម៉ោងបង្រៀន](https://ff-quizzes.netlify.app/en/ml/) + +## សង្ខេប និងសិក្សាឯករាជ្យ +មានវិធីជាច្រើនដើម្បីដកស្រង់អារម្មណ៍ពីអត្ថបទ។ សូមគិតពីកម្មវិធីជាអាជីវកម្មដែលអាចប្រើប្រាស់បច្ចេកវិទ្យានេះ។ សូមគិតអំពីរបៀបដែលវាអាចខូចខាតបាន។ អានបន្ថែមអំពីប្រព័ន្ធសម្រាប់សហគ្រាសដែលមានលទ្ធភាពវិជ្ជាជីវៈខ្ពស់ ដែលវិភាគអារម្មណ៍ដូចជា [Azure Text Analysis](https://docs.microsoft.com/azure/cognitive-services/Text-Analytics/how-tos/text-analytics-how-to-sentiment-analysis?tabs=version-3-1?WT.mc_id=academic-77952-leestott)។ សាកល្បងប្រយោគខ្លះពី Pride and Prejudice ខាងលើ ហើយមើលថាវាអាចរកឃើញការប្រែប្រួលសម្បទានោះទេ។ + +## កិច្ចការដាក់ស្នើ + +[Poetic license](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយការប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខិតខំធ្វើឲ្យមានភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសារបស់ខ្លួនគួរត្រូវបានជាឯកសារយោងដ៏ត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យបកប្រែដោយអ្នកជំនាញមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/3-Translation-Sentiment/assignment.md b/translations/km/6-NLP/3-Translation-Sentiment/assignment.md new file mode 100644 index 000000000..5e820c31a --- /dev/null +++ b/translations/km/6-NLP/3-Translation-Sentiment/assignment.md @@ -0,0 +1,18 @@ +# Poetic license + +## សំណើរ + +នៅក្នុង [សៀវភៅកំណត់ត្រានេះ](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) អ្នកអាចស្វែងរកបានកំណាព្យ Emily Dickinson ជាង ៥០០ ដែលបានវិភាគជាមុនសម្រាប់អារម្មណ៍ដោយប្រើប្រាស់ Azure text analytics។ ដោយប្រើបន្ថត់ទិន្នន័យនេះ សូមវិភាគវាដោយប្រើបច្ចេកទេសដែលបានពិពណ៌នានៅក្នុងមេរៀន។ តើអារម្មណ៍ដែលបានណែនាំនៃកំណាព្យមួយ ត្រូវគ្នានឹងការសម្រេចចិត្តរបស់សេវាកម្ម Azure ដែលទំនើបជាងទេ? ហេតុអ្វីឬអត់ ក្នុងទស្សនៈរបស់អ្នក? តើមានអ្វីដែលធ្វើអោយអ្នកភ្ញាក់ផ្អើលទេ? + +## កម្មវិធីវាយតម្លៃ + +| គោលការណ៍ | អمثលគឺ ឧទាហរណ៍ល្អ | គ្រប់គ្រាន់ | ត្រូវការ ការកែលម្អ | +| -------- | -------------------------------------------------------------------------- | ------------------------------------------------------- | ------------------------ | +| | សៀវភៅកំណត់ត្រាមួយត្រូវបានបង្ហាញជាមួយនឹងការវិភាគរឹងមាំនៃលទ្ធផលគំរូរបស់អ្នកនិពន្ធ | សៀវភៅកំណត់ត្រាមិនបានបញ្ចប់ឬមិនបានបំពេញការវិភាគ | គ្មានសៀវភៅកំណត់ត្រាត្រូវបានបង្ហាញ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងក្នុងការធ្វើឱ្យមានភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសាមูลដ្ឋានគួរត្រូវបានគិតថាជា ប្រភពទិន្នន័យដែលមានតុល្យភាព។ សម្រាប់ព័ត៌មានជាចម្បង ការបកប្រែដោយមនុស្សមានជំនាញគឺល្អបំផុត។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការប្រែប្រាសដែលបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែមិននេះទេ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/3-Translation-Sentiment/solution/Julia/README.md b/translations/km/6-NLP/3-Translation-Sentiment/solution/Julia/README.md new file mode 100644 index 000000000..b63b7f1c6 --- /dev/null +++ b/translations/km/6-NLP/3-Translation-Sentiment/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជារបារគ្មានថេរ​បណ្តោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះ​ត្រូវ​បាន​បកប្រែ​ដោយ​ប្រព័ន្ធ​បកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈ​ពេល​យើង​ព្យាយាម​សំរាប់​ភាព​ត្រឹម​ត្រូវ សូមយល់ចំណាំថា ការបកប្រែ​ដោយ​កុំព្យូទ័រ​អាច​មាន​កំហុស ឬ ការ​មិនត្រឹមត្រូវ។ ឯកសារដើម​ក្នុង​ភាសាគេហទំព័ររបស់វា គួរត្រូវបាន​ពិចារណា​ជា ប្រភព​ផ្លូវការ។ សម្រាប់​ព័ត៌មាន​សំខាន់ៗ គួរត្រូវ​បកប្រែ​ដោយ​អ្នកជំនាញ​វេជ្ជសាស្ត្រ។ យើងមិនទទួលខុសត្រូវ​ចំពោះ​ការយល់ច្រឡំ ឬ ការបកស្រាយខុសពី​ការ​ប្រើ​ប្រាស់​ការ​បកប្រែ​នេះទេ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/3-Translation-Sentiment/solution/R/README.md b/translations/km/6-NLP/3-Translation-Sentiment/solution/R/README.md new file mode 100644 index 000000000..1a8ab14eb --- /dev/null +++ b/translations/km/6-NLP/3-Translation-Sentiment/solution/R/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងកាន់កន្លែងទំនេរបណ្តោះអាសន្ន + +--- + + +**ការធ្វើបរិយាយ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងរកភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមត្រូវបានយកក្នុងភាសាមួយដើមគេគួរឱ្យអះអាងថាជា ប្រភពដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានដ៏សំខាន់ និយមន័យបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសប្រកបដោយការប្រើបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb b/translations/km/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb new file mode 100644 index 000000000..bc0f86a9c --- /dev/null +++ b/translations/km/6-NLP/3-Translation-Sentiment/solution/notebook.ipynb @@ -0,0 +1,94 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": 3 + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from textblob import TextBlob\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# You should download the book text, clean it, and import it here\n", + "with open(\"pride.txt\", encoding=\"utf8\") as f:\n", + " file_contents = f.read()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "book_pride = TextBlob(file_contents)\n", + "positive_sentiment_sentences = []\n", + "negative_sentiment_sentences = []" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "for sentence in book_pride.sentences:\n", + " if sentence.sentiment.polarity == 1:\n", + " positive_sentiment_sentences.append(sentence)\n", + " if sentence.sentiment.polarity == -1:\n", + " negative_sentiment_sentences.append(sentence)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"The \" + str(len(positive_sentiment_sentences)) + \" most positive sentences:\")\n", + "for sentence in positive_sentiment_sentences:\n", + " print(\"+ \" + str(sentence.replace(\"\\n\", \"\").replace(\" \", \" \")))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(\"The \" + str(len(negative_sentiment_sentences)) + \" most negative sentences:\")\n", + "for sentence in negative_sentiment_sentences:\n", + " print(\"- \" + str(sentence.replace(\"\\n\", \"\").replace(\" \", \" \")))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការព្រមាន**៖\nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងដើម្បីបានភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមនៅជាភាសាទីទទួលគួរត្រូវបានយកជាអ្នកផ្ដល់ព័ត៌មានផ្លូវការទីបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងណែនាំឲ្យមានការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែច្រឡំទាំងឡាយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះនោះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/6-NLP/4-Hotel-Reviews-1/README.md b/translations/km/6-NLP/4-Hotel-Reviews-1/README.md new file mode 100644 index 000000000..35417b9aa --- /dev/null +++ b/translations/km/6-NLP/4-Hotel-Reviews-1/README.md @@ -0,0 +1,410 @@ +# ការវិភាគអារម្មណ៍ជាមួយការពិនិត្យមតិសណ្ឋាគារ - ការបំលែងទិន្នន័យ + +ក្នុងផ្នែកនេះ អ្នកនឹងប្រើបច្ចេកទេសក្នុងមេរៀនមុន ដើម្បីធ្វើការវិភាគទិន្នន័យស្វែងរកអំពីសំណុំទិន្នន័យធំមួយ។ ពេលអ្នកមានការយល់ដឹងល្អអំពីភាពមានប្រយោជន៍របស់ជួរឈរផ្សេងៗ អ្នកនឹងរៀន៖ + +- របៀបលុបជួរឈរដែលមិនចាំបាច់ +- របៀបគណនាទិន្នន័យថ្មីមួយចំនួនដោយផ្អែកលើជួរឈរដែលមានស្រាប់ +- របៀបរក្សាទុកសំណុំទិន្នន័យដែលបានទទួលសម្រាប់ប្រើប្រាស់ក្នុងបញ្ហាចុងក្រោយ + +## [សំនួរប្រឡងមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +### អត្ថបទណែនាំ + +រហូតមកទល់ពេលនេះ អ្នកបានរៀនពីរបៀបដែលទិន្នន័យអត្ថបទខុសពីប្រភេទទិន្នន័យលេខសេដ្ឋកិច្ច។ ប្រសិនបើវាជាអត្ថបទដែលបានសរសេរឬនិយាយដោយមនុស្ស វាអាចត្រូវបានវិភាគដើម្បីស្វែងរកលំនាំ និងចំនួនកើតឡើង, អារម្មណ៍និងការប្រាប់អត្ថន័យ។ មេរៀននេះនាំអ្នកចូលទៅក្នុងសំណុំទិន្នន័យពិតមួយដែលមានបញ្ហាពិតៗ៖ **[ទិន្នន័យការពិនិត្យមតិសណ្ឋាគារ ៥១៥K នៅអឺរ៉ុប](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)** ហើយរួមបញ្ចូលជាមួយ [អាជ្ញាប័ណ្ណ CC0: ផលិតផលរដ្ឋបុព្វនិយម](https://creativecommons.org/publicdomain/zero/1.0/)។ វាត្រូវបានទាញយកពី Booking.com ពីប្រភពសាធារណៈ។ អ្នកបង្កើតសំណុំទិន្នន័យនេះគឺបុគ្គលឈ្មោះ Jiashen Liu។ + +### ការរៀបចំ + +អ្នកនឹងត្រូវការ៖ + +* សមត្ថភាពបើកបរប្រតិបត្តិការសៀវភៅ .ipynb ជាមួយ Python 3 +* pandas +* NLTK, [ដែលអ្នកគួរតេដំឡើងនៅក្នុងកំណត់ត្រាកន្លែងរបស់អ្នក](https://www.nltk.org/install.html) +* សំណុំទិន្នន័យដែលមាននៅលើ Kaggle [ទិន្នន័យការពិនិត្យមតិសណ្ឋាគារ ៥១៥K នៅអឺរ៉ុប](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)។ វាមានទំហំប្រហែល ២៣០ MB បន្ទាប់ពីដោះសោ។ ទាញយកទៅថតបណ្តាំ `/data` ដែលភ្ជាប់ជាមួយមេរៀន NLP នេះ។ + +## ការវិភាគទិន្នន័យស្វែងរក + +បញ្ហានេះសន្មតថាអ្នកកំពុងបង្កើតប៊ូតណែនាំសណ្ឋាគារមួយដោយប្រើវិភាគអារម្មណ៍ និងពិន្ទុការវាយតម្លៃពីភ្ញៀវ។ សំណុំទិន្នន័យដែលអ្នកនឹងប្រើរួមបញ្ចូលការវាយតម្លៃសណ្ឋាគារចំនួន ១៤៩៣ នៅក្នុង ៦ ទីក្រុងផ្សេងគ្នា។ + +ដោយប្រើ Python, សំណុំទិន្នន័យការពិនិត្យមតិសណ្ឋាគារ, និងវិភាគអារម្មណ៍ NLTK អ្នកអាចស្វែងយល់បាន៖ + +* តើពាក្យនិងវាក្យសព្ទណាដែលត្រូវបានប្រើជាញឹកញាប់បំផុតក្នុងការវាយតម្លៃ? +* តើ *ស្លាក* ផ្លូវការដែលពណ៌នាសណ្ឋាគារមានទំនាក់ទំនងជាមួយពិន្ទុការវាយតម្លៃទេ (ចំណុចឧទាហរណ៍៖ តើការវាយតម្លៃអវិជ្ជមានច្រើនសម្រាប់សណ្ឋាគារមួយសម្រាប់ *គ្រួសារដែលមានក្មេងតូច* ជាង *អ្នកដំណើរតែម្នាក់* ដែលអាចសម្រង់បានថាវាល្អសម្រាប់ *អ្នកដំណើរតែម្នាក់*?) +* តើពិន្ទុអារម្មណ៍ NLTK 'ស្របគ្នា' ឬទេ ជាមួយពិន្ទុលេខសម្រាប់អ្នកវាយតម្លៃសណ្ឋាគារ? + +#### សំណុំទិន្នន័យ + +ចូរធ្វើការស្វែងយល់សំណុំទិន្នន័យដែលអ្នកបានទាញយក និងរក្សាទុកជាកន្លែងមូលដ្ឋាន។ បើកឯកសារនៅកម្មវិធីកែប្រែដូចជា VS Code ឬ Excel។ + +ចំណងជើងក្នុងសំណុំទិន្នន័យមានដូចតទៅ៖ + +*Hotel_Address, Additional_Number_of_Scoring, Review_Date, Average_Score, Hotel_Name, Reviewer_Nationality, Negative_Review, Review_Total_Negative_Word_Counts, Total_Number_of_Reviews, Positive_Review, Review_Total_Positive_Word_Counts, Total_Number_of_Reviews_Reviewer_Has_Given, Reviewer_Score, Tags, days_since_review, lat, lng* + +នេះជាការរៀបប្រមាណជាក្រុមដែលអាចងាយស្រួលពិនិត្យ៖ +##### ជួរឈរសណ្ឋាគារ + +* `Hotel_Name`, `Hotel_Address`, `lat` (រយៈកាំ), `lng` (រយៈបណ្តោយ) + * ដោយប្រើ *lat* និង *lng* អ្នកអាចផែនទីដោយជាមួយ Python ដើម្បីបង្ហាញទីតាំងសណ្ឋាគារ (ប្រហែលជាប្រែលក់ពណ៌សម្រាប់ការវាយតម្លៃអវិជ្ជមាននិងវិជ្ជមាន) + * Hotel_Address មិនច្បាស់ថាមានប្រយោជន៍សម្រាប់យើងទេ ហើយយើងប្រហែលជាចំបងប្ដូរនោះជាពាណិជ្ជកម្មសម្រាប់ជំនួសដើម្បីចាប់ផ្ដើមការរៀបចំ និងស្វែងរកបានងាយ + +**ជួរឈរពិនិត្យមតិក្នុងការវាយតម្លៃសណ្ឋាគារ** + +* `Average_Score` + * ផ្អែកលើអ្នកបង្កើតសំណុំទិន្នន័យ ជួរឈរនេះគឺជា *ពិន្ទុមធ្យមនៃសណ្ឋាគារ ដែលគណនាតាមមតិក្នុងឆ្នាំចុងក្រោយ*។ វាហាក់ដូចជាជារបៀបគណនាពិន្ទុមួយដែលមិនធម្មតា ប៉ុន្តែវាជាទិន្នន័យដែលបានទាញ ហើយយើងអាចទទួលយកវាជាការពិតសម្រាប់ពេលនេះ។ + + ✅ ដោយផ្អែកលើជួរឈរផ្សេងទៀតក្នុងទិន្នន័យនេះ យ៉ាងណាអ្នកអាចយល់គំនិតពីវិធីផ្សេងទៀតក្នុងការគណនាពិន្ទុមធ្យម? + +* `Total_Number_of_Reviews` + * ចំនួនសរុបនៃការវាយតម្លៃដែលសណ្ឋាគារនេះបានទទួល - វាមិនច្បាស់ (ដោយមិនត្រូវសរសេរកូដ) ថាតើវាត្រូវនិយាយពីការវាយតម្លៃក្នុងសំណុំទិន្នន័យមែនទេ។ +* `Additional_Number_of_Scoring` + * នេះមានន័យថា ពិន្ទុបានផ្តល់ជូន ប៉ុន្តែមិនមានមតិវិជ្ជមានឬអវិជ្ជមានផ្សេងទៀតដែលបានសរសេរដោយអ្នកវាយតម្លៃទេ + +**ជួរឈរមតិវិភាគ** + +- `Reviewer_Score` + - គឺជាតម្លៃលេខដែលមានទ្រង់ទ្រាយឯកតាខ្ទង់ទសភាគ១ ដែលក្នុងចន្លោះពី ២.៥ ដល់ ១០ + - វាមិនបានពណ៌នាថាទេថាហេតុអ្វីបានជាពិន្ទុល្អបំផុតគឺ ២.៥ +- `Negative_Review` + - ប្រសិនបើអ្នកវាយតម្លៃមិនបានសរសេរអ្វីទេ វានឹងមាន "**មិនមានអវិជ្ជមាន**" + - សូមចំណាំថាអ្នកវាយតម្លៃអាចសរសេរមតិវិជ្ជមាននៅជួរឈរអវិជ្ជមាន (ឧ. "គ្មានអ្វីអាក្រក់អំពីសណ្ឋាគារនេះទេ") +- `Review_Total_Negative_Word_Counts` + - ចំនួនពាក្យអវិជ្ជមានខ្ពស់បង្ហាញពីពិន្ទុល្ងស់ (ដោយមិនត្រួតពិនិត្យអារម្មណ៍) +- `Positive_Review` + - ប្រសិនបើអ្នកវាយតម្លៃមិនបានសរសេរអ្វី ទៀត ទេ វានឹងមាន "**មិនមានវិជ្ជមាន**" + - សូមចំណាំថាអ្នកវាយតម្លៃអាចសរសេរមតិអវិជ្ជមាន នៅជួរឈរវិជ្ជមាន (ឧ. "គ្មានអ្វីល្អអំពីសណ្ឋាគារនេះទេ") +- `Review_Total_Positive_Word_Counts` + - ចំនួនពាក្យវិជ្ជមានខ្ពស់បង្ហាញពីពិន្ទុខ្ពស់ (ដោយមិនត្រួតពិនិត្យអារម្មណ៍) +- `Review_Date` និង `days_since_review` + - វិធានសម្រាប់ភាពថ្មីឬចាស់នៃការវាយតម្លៃអាចត្រូវបានពិនិត្យ (ការវាយតម្លៃចាស់ៗអាចមិនត្រឹមត្រូវដូចការវាយតម្លៃថ្មីៗ ព្រោះការគ្រប់គ្រងសណ្ឋា​គារបានផ្លាស់ប្តូរ ឬមានការជួសជុល ឬបានបន្ថែមអាងហែលទឹកជាដើម) +- `Tags` + - នេះជាការពិពណ៌នាសង្ខេបដែលអ្នកវាយតម្លៃអាចជ្រើសរើស ដើម្បីពិពណ៌នាប្រភេទភ្ញៀវដែលពួកគេបានជួប (ឧ. ដំណើរតែម្នាក់ ឬគ្រួសារ), ប្រភេទបន្ទប់ដែលពួកគេចងក្រង, រយៈពេលស្នាក់នៅ និងរបៀបដាក់សំណើ + - ជាតិបង្ខំបាន ប្រើស្លាកទាំងនេះជារឿងលំបាក សូមពិនិត្យផ្នែកក្រោមដែលពិភាក្សាអំពីប្រយោជន៍របស់វា + +**ជួរឈរអ្នកវាយតម្លៃ** + +- `Total_Number_of_Reviews_Reviewer_Has_Given` + - វាអាចជា៉មូលហេតុមួយសម្រាប់ម៉ូដែលណែនាំ, ដូចជា ប្រសិនបើអ្នកអាចកំណត់បានថាអ្នកវាយតម្លៃដែលវាយតម្លៃច្រើនមានការវាយតម្លៃអវិជ្ជមានច្រើនជាងវិជ្ជមាន។ ប៉ុន្តែ អ្នកវាយតម្លៃមិនត្រូវបានកំណត់ដោយកូដជាក់លាក់ ដូច្នេះមិនអាចភ្ជាប់ទៅនឹងការវាយតម្លៃមួយជាច្រើនបាន។ មានអ្នកវាយតម្លៃ ៣០ នាក់ដែលមានការវាយតម្លៃ ១០០ ឬច្រើនជាងនេះ ប៉ុន្តែយើងមើលមិនឃើញថាវានឹងជួយម៉ូដែលណែនាំយ៉ាងដូចម្តេច។ +- `Reviewer_Nationality` + - អ្នកមួយចំនួនអាចគិតថាជាតិកំណើតណាមួយអាចមានឥទ្ធិពលក្នុងការផ្តល់វិជ្ជមានឬអវិជ្ជមាន។ សូមប្រយ័ត្ននៅពេលបញ្ចូលទ្រឹស្តីបែបនេះទៅម៉ូដែលរបស់អ្នក។ ទស្សនៈទាំងនេះជាប្រភេទទំនៀមទម្លាប់ជាតិសាសន៍ (និងខ្លះគឺជាពណ៌) ហើយអ្នកវាយតម្លៃម្នាក់ៗមានការវាយតម្លៃផ្អែកលើបទពិសោធន៍ផ្ទាល់ខ្លួន។ វាអាចត្រូវបានបញ្ចូលដោយទស្សនីយភាពជាច្រើនដូចជា ការស្នាក់នៅសណ្ឋាគារកន្លងមក ចម្ងាយដំណើរ និងលក្ខណៈគំនិតផ្ទាល់ខ្លួន។ ការគិតថាជាតិនៃអ្នកវាយតម្លៃជាហេតុផលនៃពិន្ទុគឺពិបាកបដិសេធ។ + +##### ឧទាហរណ៍ + +| ពិន្ទុមធ្យម | ចំនួនការវាយតម្លៃសរុប | ពិន្ទុអ្នកវាយតម្លៃ | Negative
Review | Positive Review | Tags | +| -------------- | ---------------------- | ---------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------- | +| 7.8 | 1945 | 2.5 | នេះមិនមែនជាសណ្ឋាគារបច្ចុប្បន្នទេប៉ុន្តែជានិងស្ថានសំណង់។ ខ្ញុំត្រូវបានរំខានពីព្រឹកដើមរហូតដល់ល្ងាច ជាមួយសំលេងសំណង់ដែលមិនអាចទ្រាំទ្រ​បាន ខណៈពេលដែលកំពុងសម្រាកបន្ទាប់ពីដំណើរយូរ និងធ្វើការក្នុងបន្ទប់មួយ។ មនុស្សកំពុងធ្វើការទាំងថ្ងៃ ដូចជាពីការប្រើម៉ាស៊ីនចល័តនៅបន្ទប់ក្បែរ។ ខ្ញុំបានស្នើសុំផ្លាស់ប្ដូរបន្ទប់ ប៉ុន្តែបន្ទប់ស្ងាត់មិនមានទេ។ ដើម្បីធ្វើឱ្យរឿងអាក្រក់ឡើង ខ្ញុំត្រូវបង់លើស។ ខ្ញុំបានចាកចេញនៅល្ងាច ដូចជាខ្ញុំត្រូវទៅជិះយន្តហោះភ្លាមៗ ហើយបានទទួលវិក័យប័ត្រដែលត្រឹមត្រូវ។ ថ្ងៃបន្ទាប់ សណ្ឋាគារ បានកាត់ប្រាក់ម្តងទៀតដោយគ្មានការយល់ព្រមពីខ្ញុំ ជាមានកំណត់លើតម្លៃបានកក់។ វាជាទីតាំងអាក្រក់មែនទែន។ កុំទោសខ្លួនដោយការកក់នៅទីនេះ | ទីតាំងអាក្រក់ កុំទៅជិត | ដំណើរការអាជីវកម្ម គូស្នាក់នៅ បន្ទប់ទ្វេក្បាល ស្នាក់ ២ យប់ | + +ដូចដែលអ្នកបានឃើញភ្ញៀវនេះមិនមានការសប្បាយចិត្តខ្លាំងលើការស្នាក់នៅសណ្ឋាគារនេះទេ។ សណ្ឋាគារមានពិន្ទុមធ្យមល្អ ៧.៨ និងការវាយតម្លៃ៤ ១៩៤៥ ប៉ុន្តែអ្នកវាយតម្លៃនេះបានផ្តល់ត្រឹម ២.៥ និងបានសរសេរចំនួន ១១៥ ពាក្យអំពីភាពអវិជ្ជមានរបស់ពួកគេ។ ប្រសិនបើពួកគេមិនបានសរសេរអ្វីនៅជួរឈរ Positive_Review អ្នកអាចសន្និដ្ឋានបានថាមិនមានអ្វីវិជ្ជមានទេ ប៉ុន្តែពួកគេបានសរសេរពាក្យរាបសារជាចំនួន ៧ ពាក្យ។ បើពួកគេគិតគណនាពាក្យតែប៉ុណ្ណោះ ដោយមិនគិតពីអត្ថន័យ អារម្មណ៍ នៃពាក្យពួកគេ ការយល់ឃើញអំពីចេតនារបស់អ្នកវាយតម្លៃអាចមានការប្រែក្លាយ។ វាហាក់ដូចជាពិន្ទុ ២.៥ របស់ពួកគេច្រឡំ ព្រោះប្រសិនបើស្នាក់នៅសណ្ឋាគារនេះអាក្រក់ពេក ហេតុអ្វីបានផ្តល់ពិន្ទុសោះ? ពិនិត្យយ៉ាងជិតជាង អ្នកនឹងឃើញថាពិន្ទុកំពូលតិចបំផុតគឺ ២.៥ មិនមែន ០ ទេ។ ពិន្ទុកំពូលបំផុតគឺ ១០។ + +##### ស្លាក Tags + +ដូចបានបញ្ចាក់ខាងលើ ជាមើលមិនឃើញបញ្ហា ការប្រើ `Tags` ដើម្បីចាត់ថ្នាក់ប្រភេទទិន្នន័យហាក់ដូចមានហេតុផលល្អ។ ជាអកិសរណ៏ទាំងនេះមិនមានគោលស្តង់ដារ ដែលមានន័យថា នៅសណ្ឋាគារមួយ អាចមានជម្រើសជា *បន្ទប់តែម្នាក់* , *បន្ទប់សង្វាក់ទ្វេ* និង *បន្ទប់ទ្វេក្បាល* ប៉ុន្តែនៅសណ្ឋាគារផ្សេងទៀត មានជា *បន្ទប់តែម្នាក់ឈុតលម្អ* , *បន្ទប់គ្រីនថ្នាក់មធ្យម* និង *បន្ទប់អគ្គិសនី*។ វាហាក់ដូចជាធាតុដូចគ្នា ប៉ុន្តែមានករណីជាច្រើន ដែលការជ្រើសរើសចាំបាច់៖ + +1. ព្យាយាមផ្លាស់ប្ដូរជាភាសាតែមួយ ដែលមានការលំបាកខ្លាំង ព្រោះមិនច្បាស់ថាមីនិយមន៍ផ្លាស់ប្ដូរជួរមានអ្វីនៅក្នុងករណីនីមួយៗ (ឧ. *បន្ទប់តែម្នាក់គ្រីនថ្នាក់* ត្រូវជាបន្ទប់តែម្នាក់ ប៉ុន្តែ *បន្ទប់គ្រីនថ្នាក់លើសហាងសួនចម្ការឬមើលទីក្រុង* ពិបាកផ្លាស់ប្ដូរជាង) + +1. អាចយកវិធី NLP សម្រាប់វាស់ទំហំទិដ្ឋភាពនៃពាក្យជាក់លាក់ដូចជា *Solo*, *អ្នកដំណើរអាជីវកម្ម*, ឬ *គ្រួសារដែលមានកូនតូច* ដែលមានទំនាក់ទំនងទៅនឹងសណ្ឋាគារនីមួយៗ ហើយស្នើសុំរួមបញ្ចូលវាទៅក្នុងការរៀបចំ + +ស្លាកទាញ តែជាធម្មតា (ប៉ុន្តែមិនខំប្រកាន់) ជាជួរឈរដែលមានតែមួយ ដែលមានបញ្ជីតម្លៃបំបែកជាមួយគ្នាចំនួន ៥ ដល់ ៦ ដោយបំបែកជាក្បួនក្បាលទៅ *ប្រភេទដំណើរ*, *ប្រភេទភ្ញៀវ*, *ប្រភេទបន្ទប់*, *ចំនួនយប់*, និង *ប្រភេទឧបករណ៍ដែលបានដាក់សំណើ*។ ប៉ុន្តែព្រោះអ្នកវាយតម្លៃខ្លះមិនបំពេញទាំងអស់ (ខ្លះអាចទុកទទេមួយ), តម្លៃមិនត្រឹមត្រូវជារបៀបដូចគ្នានៅគ្រប់កន្លែងទេ។ + +ជាឧទាហរណ៌ ចូរយក *ប្រភេទក្រុម*។ មានជម្រើសតែមួយគត់ចំនួន ១០២៥ នៅក្នុងជួរឈរ `Tags` ដែលមិនគ្រប់ចេញពីក្រុមទេ (ខ្លះគឺជាប្រភេទបន្ទប់ ល.)។ ប្រសិនបើអ្នកចំណាត់ថ្នាក់តែវា​ដែលត្រូវ​និយាយ​ពី​គ្រួសារ លទ្ធផលនោះមាន *បន្ទប់គ្រួសារ*។ ប្រសិនបើអ្នកបញ្ចូលពាក្យ *ជាមួយ*, ឧ. រាប់ *គ្រួសារជាមួយ*, លទ្ធផលល្អជាងគេ មានច្រើនជាង ៨០,០០០ ក្នុងចំណោម ៥១៥,០០០ ដែលមានប្រយោបល់ថា "គ្រួសារជាមួយក្មេងតូច" ឬ "គ្រួសារជាមួយក្មេងចាស់"។ + +នេះមានន័យថាជួរឈរ Tags មិនមែនគ្មានប្រយោជន៍ជាសះស្បើយទេ ប៉ុន្តែមិនមែនរឿងងាយដើម្បីផ្លាស់ប្ដូរឲ្យមានប្រយោជន៍។ + +##### ពិន្ទុមធ្យមសណ្ឋាគារ + +មានបញ្ហាចម្លែក និងភាពមិនស្របគ្នាខ្លះៗក្នុងសំណុំទិន្នន័យ ដែលខ្ញុំមិនអាចកំណត់បាន ប៉ុន្តែបានបង្ហាញនៅទីនេះដើម្បីឲ្យអ្នកយល់ពីពេលកំពុងបង្កើតម៉ូដែល។ ប្រសិនបើអ្នកជឿជាក់ សូមប្រាប់យើងនៅផ្នែកពិភាក្សា! + +សំណុំទិន្នន័យមានជួរឈរដូចខាងក្រោមការពាក់ព័ន្ធនឹងពិន្ទុមធ្យម និងចំនួនការវាយតម្លៃ៖ + +1. Hotel_Name +2. Additional_Number_of_Scoring +3. Average_Score +4. Total_Number_of_Reviews +5. Reviewer_Score + +សណ្ឋាគារចំនួនតែ១ដែលមានការវាយតម្លៃច្រើនបំផុតក្នុងសំណុំទិន្នន័យនេះគឺ *Britannia International Hotel Canary Wharf* មានការវាយតម្លៃ 4789 ក្នុងចំណោម 515,000។ ប៉ុន្តែប្រសិនបើយើងមើលតម្លៃ `Total_Number_of_Reviews` សម្រាប់សណ្ឋាគារនេះ វាគឺ 9086។ អ្នកអាចគិតថាមានពិន្ទុច្រើនដែលមិនមានមតិតា តែប្រហែលជាអ្នកគួរបញ្ចូលតម្លៃជួរឈរ `Additional_Number_of_Scoring`។ តម្លៃនោះគឺ 2682 ហើយបន្ថែមទៅ 4789 យើងបាន 7,471 ដែលនៅតែខ្វះ 1615 នៃតម្លៃ `Total_Number_of_Reviews`។ + +ប្រសិនបើអ្នកយកជួរឈរ `Average_Score` អ្នកអាចគិតថាវាត្រូវជាពិន្ទុមធ្យមនៃការវាយតម្លៃក្នុងសំណុំទិន្នន័យ ប៉ុន្តែការពណ៌នាពី Kaggle គឺ "*ពិន្ទុមធ្យមនៃសណ្ឋាគារ ដែលគណនាតាមមតិក្នុងឆ្នាំចុងក្រោយ*"។ វាហាក់ដូចជាយ៉ាងមិនមានប្រយោជន៍ ប៉ុន្តែយើងអាចគណនាពិន្ទុមធ្យមផ្ទាល់ពីការវាយតម្លៃក្នុងសំណុំទិន្នន័យ។ ទៅលើសណ្ឋាគារដូចជាឧទាហរណ៍ អ្នកមានពិន្ទុ ៧.១ ប៉ុន្តែការគណនាពិន្ទុ (ពិន្ទុនักវាយតម្លៃបញ្ចូលក្នុងសំណុំទិន្នន័យ) គឺ ៦.៨។ នេះស្ទើរត្រឹមត្រូវ ប៉ុន្តែមិនមែនតម្លៃដូចគ្នា ហើយយើងអាចគ្រាន់តែសន្មត់ថាពិន្ទូក្នុងការវាយតម្លៃ `Additional_Number_of_Scoring` បានបន្ថែមពិន្ទុមធ្យមទៅ ៧.១។ បិសាចមិនមានវិធីសាកល្បងឲ្យដឹង លំបាកក្នុងការប្រើប្រាស់ ឬ ជឿទុកចិត្ត `Average_Score`, `Additional_Number_of_Scoring` និង `Total_Number_of_Reviews` ព្រោះវាគឺផ្អែកលើទិន្នន័យដែលយើងមិនមាន។ + +ដើម្បីបន្ថែមភាពចម្រុះ សណ្ឋាគារដែលមានការវាយតម្លៃច្រើនជាងទីពីរមានពិន្ទុស្មើ ៨.១២ ហើយសំណុំទិន្នន័យ `Average_Score` គឺ ៨.១។ តើពិន្ទុនេះត្រឹមត្រូវ ដោយឱកាស ឬវិវា​តញានក្នុងសណ្ឋាគារដំបូង? +អំពីសក្តានុពលដែលសណ្ឋាគារទាំងនេះអាចជាអវត្តមាន និងថាប្រៀបធៀបជាច្រើនតម្លៃត្រូវគ្នា (ប៉ុន្តែមានខ្លះមិនត្រូវគ្នាដោយហេតុផលខ្លះៗ) យើងនឹងសរសេរកម្មវិធីខ្លីមួយនៅខាងក្រោមដើម្បីស្វែងយល់តម្លៃក្នុងឧទDatasetនិងកំណត់ការប្រើប្រាស់ត្រឹមត្រូវ (ឬមិនប្រើប្រាស់) នៃតម្លៃទាំងនេះ។ + +> 🚨 សេចក្តីរំពឹងប្រយ័ត្ន +> +> នៅពេលធ្វើការជាមួយឧទនេះ អ្នកនឹងសរសេរកូដដែលគណនាអ្វីមួយពីអត្ថបទដោយមិនចាំបាច់អាន ឬវិភាគអត្ថបទដោយខ្លួនឯង។ នេះជាគ្រឹះនៃ NLP គឺការបកស្រាយអត្ថន័យ ឬអារម្មណ៍ដោយមិនចាំបាច់ឲ្យមនុស្សធ្វើវា។ ទោះយ៉ាងណា អាចមានករណីដែលអ្នកអានមតិអវិជ្ជមានខ្លះ។ ខ្ញុំស្នើអ្នកកុំអាន ព្រោះអ្នកមិនចាំបាច់អាននោះទេ។ មតិខ្លះពេកលេងសើច ឬមតិអវិជ្ជមានអំពីសណ្ឋាគារដែលមិនពាក់ព័ន្ធ ដូចជា "អាកាសធាតុខុសគ្នា" ដែលជាពីលើការគ្រប់គ្រងរបស់សណ្ឋាគារ ឬមនុស្សណាមួយ។ ប៉ុន្តែនៅមានមុខងារឈ្មួញក្នុងមតិខ្លះផងដែរ។ ពេលខ្លះមតិអវិជ្ជមានជានរណារវាងជាតិសាសន៍ ភេទ ឬវ័យ។ នេះគឺជាករណីអស្ចារ្យ ប៉ុន្តែនឹងប្រកបដោយការរំពឹងបានក្នុងឧទDatasetដែលបានទាញយកពីគេហទំព័រផ្សាយសាធារណៈ។ អ្នកពិនិត្យមតិខ្លះ ទុកមតិដែលអ្នកអាចយកចិត្តទុកដាក់ មិនស្រួល ឬធ្វើឲ្យអ្នកមានអារម្មណ៍មិនល្អ។ កាន់តែប្រសើរជាងនេះ ឲ្យកូដវាស់អារម្មណ៍ ជំនួសអ្នកអានផ្ទាល់ មិនឲ្យមានអារម្មណ៍រិះគន់ឡើងវិញ។ ទោះបីជាមានតែមនុស្សតិច ដែលសរសេរអ្វីបែបនេះ ក៏ពួកគេស្ថិតនៅតែមាន។ + +## ហាត់ការណ៍ - ការស្វែងយល់ទិន្នន័យ +### ផ្ទុកទិន្នន័យ + +គឺគ្រប់គ្រាន់សម្រាប់ការត្រួតពិនិត្យទិន្នន័យដោយកាន់តែម៉ត់ចត់។ ឥឡូវនេះ អ្នកនឹងសរសេរកូដខ្លីមួយក្នុងការស្វែងរកនិងទទួលបានចម្លើយ! ផ្នែកនេះប្រើបណ្ណាល័យ pandas។ ភារកិច្ចដំបូងរបស់អ្នកគឺធានាថាអ្នកអាចផ្ទុក និងអានទិន្នន័យ CSV បាន។ បណ្ណាល័យ pandas មានកម្មវិធីផ្ទុក CSV ដែលលឿន ហើយលទ្ធផលត្រូវបានដាក់នៅក្នុង dataframe ដូចក្នុងមេរៀនមុនៗ។ CSV ដែលយើងកំពុងផ្ទុកមានជួរដេកលើសប្រាំលានជួរ តែក្នុងមានតែ ១៧ បន្ទាត់។ pandas ផ្តល់ឱ្យអ្នកនូវវិធីអនុវត្តច្រើនចំពោះ dataframe រួមទាំងការធ្វើបណ្តុលលើគ្រប់ជួរដេក។ + +ចាប់ពីនេះបន្តទៅក្នុងមេរៀននេះ នឹងមានកូដខ្លីៗ និងការពន្យល់ខ្លះៗពីកូដ និងការពិភាក្សាអំពីអ្វីដែលលទ្ធផលមានន័យជា។ ប្រើ _notebook.ipynb_ ដដែលសម្រាប់កូដរបស់អ្នក។ + +ចាប់ផ្តើមដោយផ្ទុកឯកសារទិន្នន័យដែលអ្នកនឹងប្រើ៖ + +```python +# បញ្ចូលការពិនិត្យសណ្ឋាគារពី CSV +import pandas as pd +import time +# នាំចូលម៉ោង ដើម្បីអាចប្រើម៉ោងចាប់ផ្តើម និងបញ្ចប់សម្រាប់គណនាពេលវេលាបញ្ចូលឯកសារ +print("Loading data file now, this could take a while depending on file size") +start = time.time() +# df គឺជា 'DataFrame' - ត្រូវប្រាកដថាអ្នកបានទាញយកឯកសារទៅក្នុងថតទិន្នន័យហើយ +df = pd.read_csv('../../data/Hotel_Reviews.csv') +end = time.time() +print("Loading took " + str(round(end - start, 2)) + " seconds") +``` + +ឥឡូវនេះ ទិន្នន័យត្រូវបានផ្ទុករួចហើយ យើងអាចអនុវត្តបណ្តុលលើវាបាន។ រក្សាកូដនេះនៅលើជំពូកកម្មវិធីរបស់អ្នកសម្រាប់ផ្នែកបន្ទាប់។ + +## ស្វែងរកទិន្នន័យ + +ករណីនេះ ទិន្នន័យគឺ *ស្អាត* រួចហើយ មានន័យថាវាត្រៀមសម្រាប់ប្រើប្រាស់ ហើយគ្មានតួអក្សរនៅក្នុងភាសាផ្សេងទៀតដែលអាចធ្វើឲ្យអាលហ្គរីធម៍ដែលរំពឹងអក្សរអង់គ្លេសតែម្ដងឆ្លងកាត់។ + +✅ ប្រហែលជាអ្នកត្រូវប្រើបញ្ ដាញ់ទិន្នន័យដែលតម្រូវការជំហ៊ានដំបូងក្នុងការរៀបចំវា មុនពេលប្រើបច្ចេកទេស NLP ប៉ុន្តានៅពេលនេះ មិនត្រូវធ្វើមេរៀននេះទេ។ បើត្រូវធ្វើ តើអ្នកនឹងដោះស្រាយតួអក្សរផ្សេងភាសាយ៉ាងដូចម្តេច? + +យកពេលខ្លះដើម្បីធានាថាអន្ទាន់ពេលទិន្នន័យត្រូវបានផ្ទុក អ្នកអាចស្វែងរកវាដោយប្រើកូដ។ វាងាយស្រួលណាស់ក្នុងការភ្ជាប់ចំណាប់អារម្មណ៍ទៅកាន់បន្ទាត់ `Negative_Review` និង `Positive_Review`។ ពួកវាត្រូវបានបំពេញដោយអត្ថបទធម្មជាតិសម្រាប់អាល់ហ្គរីធម៍ NLP របស់អ្នកដំណើរការ។ ប៉ុន្តែមុនចូលទៅកាន់ NLP និងអារម្មណ៍ អ្នកគួរតែអនុវត្តកូដខាងក្រោមដើម្បីបញ្ជាក់ថាតម្លៃដែលផ្តល់ក្នុងឧទDataset ត្រូវគ្នាទៅនឹងតម្លៃដែលអ្នកគណនាដោយ pandas ឬអត់។ + +## ប្រតិបត្តិការលើ Dataframe + +ភារកិច្ចដំបូងក្នុងមេរៀននេះគឺពិនិត្យមើលថាតើការបញ្ជាក់ខាងក្រោមត្រឹមត្រូវឬអត់ ដោយសរសេរកូដស្រាវជ្រាវលើ dataframe (ដោយមិនប្តូរវា)។ + +> ដូចជាភារកិច្ចកម្មវិធីជាច្រើន មានវិធីជាច្រើនក្នុងការសម្រេចបាន តែដំណើរការល្អគឺធ្វើវាឲ្យបានសាមញ្ញ និងងាយយល់ ជាពិសេសបើអ្នកនឹងត្រឡប់មកកូដនេះម្ដងទៀតនៅពេលអនាគត។ ជាមួយ dataframes មាន API គ្រប់គ្រាន់ហើយជាទូទៅមានវិធីសាស្រ្តមួយទៅមួយសម្រាប់ធ្វើអ្វីដែលអ្នកចង់បានយ៉ាងសមហេតុផល។ + +ច treatសំនួរខាងក្រោមជាភារកិច្ចកូដ និងព្យាយាមឆ្លើយដោយមិនមើលដំណោះស្រាយ។ + +1. បោះពុម្ព out *shape* នៃ dataframe ដែលអ្នកទើបផ្ទុក (shape គឺជាចំនួនជួរដេក និងបន្ទាត់) +2. គណនាចំនួនល្បិចសម្រាប់ជាតិសញ្ជាតិអ្នកទស្សនាៈ + 1. មានតម្លៃផ្សេងទៀតប៉ុន្មានសម្រាប់ជួរ `Reviewer_Nationality` ហើយអ្វីខ្លះ? + 2. ជាតិសញ្ជាតិិកណ្តាលបំផុតក្នុងDatasetនេះមានអ្វីខ្លះ (បោះពុម្ពប្រទេស និងចំនួនមតិ)? + 3. តើជាតិសញ្ជាតិទាំង ១០ បន្ទាប់ដែលមានចំនួនខ្លួនយ៉ាងទៀងទាត់ជាងគេជាអ្វីខ្លះ និងចំនួន? +3. តើសណ្ឋាគារណាដែលមានការពិនិត្យខ្ពស់បំផុតសម្រាប់ជាតិសញ្ជាតិទាំង ១០ ចំណាត់ថ្នាក់ខ្ពស់បំផុត? +4. មានមតិប៉ុន្មានសម្រាប់សណ្ឋាគារមួយៗ (ចំនួនមតិសម្រាប់សណ្ឋាគារ) នៅក្នុងDataset? +5. ទោះបីមានជួរ `Average_Score` សម្រាប់សណ្ឋាគារនីមួយៗ នៅក្នុងDataset អ្នកក៏អាចគណនាគម្លាតមធ្យមសម្រាប់ម៉ាយវា​ណដែរ (យកគម្លាតមធ្យមនៃពិន្ទុអ្នកពិនិត្យទាំងអស់សម្រាប់សណ្ឋាគារ​នីមួយៗ)។ បន្ថែមជួរថ្មី `Calc_Average_Score` ទៅក្នុង dataframe ដែលមានគម្លាតមធ្យមបានគណនាថែមទៀត។ +6. តើមានសណ្ឋាគារណាដែលមានលក្ខណៈដូចគ្នា (កែសម្រួលទៅ១ទសភាគ) រវាង `Average_Score` និង `Calc_Average_Score`? + 1. សាកល្បងសរសេរ​មុខងារ Python មួយដែលទទួលអនុគមន៍ Series (ជួរដេក) និងប្រៀបធៀបតម្លៃ ហើយបោះពុម្ពសារ នៅពេលតម្លៃមិនស្មើគ្នា។ បន្ទាប់មកប្រើវិធី `.apply()` ដើម្បីដំណើរការជួរទាំងអស់។ +7. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ `Negative_Review` ជា "No Negative" +8. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ `Positive_Review` ជា "No Positive" +9. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ `Positive_Review` ជា "No Positive" **និង** `Negative_Review` ជា "No Negative" +### កូដចម្លើយ + +1. បោះពុម្ព out *shape* នៃ dataframe ដែលអ្នកទើបផ្ទុក (shape គឺជាចំនួនជួរដេក និងបន្ទាត់) + + ```python + print("The shape of the data (rows, cols) is " + str(df.shape)) + > The shape of the data (rows, cols) is (515738, 17) + ``` + +2. គណនាចំនួនល្បិចសម្រាប់ជាតិសញ្ជាតិអ្នកទស្សនាៈ + + 1. មានតម្លៃផ្សេងទៀតប៉ុន្មានសម្រាប់ជួរ `Reviewer_Nationality` ហើយអ្វីខ្លះ? + 2. ជាតិសញ្ជាតិិកណ្តាលបំផុតក្នុងDatasetនេះមានអ្វីខ្លះ (បោះពុម្ពប្រទេស និងចំនួនមតិ)? + + ```python + # value_counts() បង្កើតអอบ្សជាប់ Series ដែលមាន index និងតម្លៃ ក្នុងករណីនេះ ជាប្រទេស និងប្រេកង់ដែលពួកវាប្រារព្ធក្នុងជាតិសាសន៍អ្នកពិនិត្យ + nationality_freq = df["Reviewer_Nationality"].value_counts() + print("There are " + str(nationality_freq.size) + " different nationalities") + # បោះពុម្ពជួរដំបូង និងចុងក្រោយរបស់ Series ។ ផ្លាស់ប្ដូរទៅ nationality_freq.to_string() ដើម្បីបោះពុម្ពទិន្នន័យទាំងអស់ + print(nationality_freq) + + There are 227 different nationalities + United Kingdom 245246 + United States of America 35437 + Australia 21686 + Ireland 14827 + United Arab Emirates 10235 + ... + Comoros 1 + Palau 1 + Northern Mariana Islands 1 + Cape Verde 1 + Guinea 1 + Name: Reviewer_Nationality, Length: 227, dtype: int64 + ``` + + 3. តើជាតិសញ្ជាតិទាំង ១០ បន្ទាប់ដែលមានចំនួនខ្លួនយ៉ាងទៀងទាត់ជាងគេជាអ្វីខ្លះ និងចំនួន? + + ```python + print("The highest frequency reviewer nationality is " + str(nationality_freq.index[0]).strip() + " with " + str(nationality_freq[0]) + " reviews.") + # សូមចំណាំថាមានចន្លោះមួយនៅចំពោះមុខតម្លៃ strip() នឹងលុបចេញសម្រាប់ការបោះពុម្ព + # តើជាតិសម្លញ ១០អันดับខ្នងជាងគេមានអ្វីខ្លះ និងប្រេកង់របស់ពួកវា? + print("The next 10 highest frequency reviewer nationalities are:") + print(nationality_freq[1:11].to_string()) + + The highest frequency reviewer nationality is United Kingdom with 245246 reviews. + The next 10 highest frequency reviewer nationalities are: + United States of America 35437 + Australia 21686 + Ireland 14827 + United Arab Emirates 10235 + Saudi Arabia 8951 + Netherlands 8772 + Switzerland 8678 + Germany 7941 + Canada 7894 + France 7296 + ``` + +3. តើសណ្ឋាគារណាដែលមានការពិនិត្យខ្ពស់បំផុតសម្រាប់ជាតិសញ្ជាតិទាំង ១០ ចំណាត់ថ្នាក់ខ្ពស់បំផុត? + + ```python + # សណ្ឋាគារណាមួយដែលមានការពិនិត្យច្រើនបំផុតសម្រាប់ជនជាតិ ១០ ប្រភេទលំដាប់ខាងលើ + # ជាធម្មតាជាមួយ pandas អ្នកនឹងជៀសវាងការបញ្ច្រាសរុំទម្រង់ដែលច្បាស់លាស់ ប៉ុន្តកចង់បង្ហាញការបង្កើត dataframe ថ្មីដោយការជ្រើសរើសលក្ខណៈពិសេស (កុំធ្វើនេះជាមួយទិន្នន័យច្រើនព្រោះវាអាចយឺតខ្លាំង) + for nat in nationality_freq[:10].index: + # ជាលើកដំបូងដកបន្ទាត់ទាំងអស់ដែលផ្គូផ្គងនឹងលក្ខខណ្ឌចូលទៅក្នុង dataframe ថ្មី + nat_df = df[df["Reviewer_Nationality"] == nat] + # ឥឡូវទទួលបានប្រេកង់សណ្ឋាគារ + freq = nat_df["Hotel_Name"].value_counts() + print("The most reviewed hotel for " + str(nat).strip() + " was " + str(freq.index[0]) + " with " + str(freq[0]) + " reviews.") + + The most reviewed hotel for United Kingdom was Britannia International Hotel Canary Wharf with 3833 reviews. + The most reviewed hotel for United States of America was Hotel Esther a with 423 reviews. + The most reviewed hotel for Australia was Park Plaza Westminster Bridge London with 167 reviews. + The most reviewed hotel for Ireland was Copthorne Tara Hotel London Kensington with 239 reviews. + The most reviewed hotel for United Arab Emirates was Millennium Hotel London Knightsbridge with 129 reviews. + The most reviewed hotel for Saudi Arabia was The Cumberland A Guoman Hotel with 142 reviews. + The most reviewed hotel for Netherlands was Jaz Amsterdam with 97 reviews. + The most reviewed hotel for Switzerland was Hotel Da Vinci with 97 reviews. + The most reviewed hotel for Germany was Hotel Da Vinci with 86 reviews. + The most reviewed hotel for Canada was St James Court A Taj Hotel London with 61 reviews. + ``` + +4. មានមតិប៉ុន្មានសម្រាប់សណ្ឋាគារមួយៗ (ចំនួនមតិសម្រាប់សណ្ឋាគារ) នៅក្នុងDataset? + + ```python + # ជាដំបូង បង្កើត dataframe ថ្មីមួយ ដោយផ្អែកលើតារាងចាស់ ហើយយកចេញពីជួរឈរដែលមិនចាំបាច់ + hotel_freq_df = df.drop(["Hotel_Address", "Additional_Number_of_Scoring", "Review_Date", "Average_Score", "Reviewer_Nationality", "Negative_Review", "Review_Total_Negative_Word_Counts", "Positive_Review", "Review_Total_Positive_Word_Counts", "Total_Number_of_Reviews_Reviewer_Has_Given", "Reviewer_Score", "Tags", "days_since_review", "lat", "lng"], axis = 1) + + # ក្រុមជួរដេកតាម Hotel_Name រាប់និយាយ ហើយដាក់លទ្ធផលក្នុងជួរឈរថ្មី Total_Reviews_Found + hotel_freq_df['Total_Reviews_Found'] = hotel_freq_df.groupby('Hotel_Name').transform('count') + + # កំចាត់ជួរដេកដែលមានចម្លងទាំងអស់ + hotel_freq_df = hotel_freq_df.drop_duplicates(subset = ["Hotel_Name"]) + display(hotel_freq_df) + ``` + | Hotel_Name | Total_Number_of_Reviews | Total_Reviews_Found | + | :----------------------------------------: | :---------------------: | :-----------------: | + | Britannia International Hotel Canary Wharf | 9086 | 4789 | + | Park Plaza Westminster Bridge London | 12158 | 4169 | + | Copthorne Tara Hotel London Kensington | 7105 | 3578 | + | ... | ... | ... | + | Mercure Paris Porte d Orleans | 110 | 10 | + | Hotel Wagner | 135 | 10 | + | Hotel Gallitzinberg | 173 | 8 | + + អ្នកអាចសង្កេតឃើញថាលទ្ធផល *គណនាទៅនូវតម្លៃក្នុងDataset* មិនត្រូវគ្នាជាមួយតម្លៃនៅក្នុង `Total_Number_of_Reviews`។ មិនច្បាស់ថាតម្លៃនេះក្នុងDatasetតំណាងឲ្យចំនួនមតិសរុបដែលសណ្ឋាគារមាន ឬមិនទាំងអស់ត្រូវបានទាញយកបាន ឬជាគណនាផ្សេងទៀត។ ដោយសារ `Total_Number_of_Reviews` មិនត្រូវបានប្រើក្នុងម៉ូដែលព្រោះករណីមិនច្បាស់នេះ។ + +5. ទោះបីមានជួរ `Average_Score` សម្រាប់សណ្ឋាគារនីមួយៗ នៅក្នុងDataset អ្នកក៏អាចគណនាគម្លាតមធ្យមសម្រាប់ម៉ាយវា​ណដែរ (យកគម្លាតមធ្យមនៃពិន្ទុអ្នកពិនិត្យទាំងអស់សម្រាប់សណ្ឋាគារ​នីមួយៗ)។ បន្ថែមជួរថ្មី `Calc_Average_Score` ទៅក្នុង dataframe ដែលមានគម្លាតមធ្យមបានគណនាថែមទៀត។ បោះពុម្ពជួរ `Hotel_Name`, `Average_Score`, និង `Calc_Average_Score`។ + + ```python + # កំណត់មុខងារមួយដែលទទួលជួរដេកមួយហើយបំពេញការគណនាមួយជាមួយវា + def get_difference_review_avg(row): + return row["Average_Score"] - row["Calc_Average_Score"] + + # 'mean' ជាពាក្យគណិតវិទ្យាសម្រាប់ 'មធ្យម' + df['Calc_Average_Score'] = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1) + + # បន្ថែមជួរឈរថ្មីមួយដែលមានភាពខុសគ្នារវ่างពិន្ទុមធ្យមពីរដែលមាន + df["Average_Score_Difference"] = df.apply(get_difference_review_avg, axis = 1) + + # បង្កើត df ដោយគ្មានច្បាប់ចម្លងទាំងអស់នៃ Hotel_Name (ដូច្នេះមានតែ 1 ជួរដេកសម្រាប់សណ្ឋាគារ) + review_scores_df = df.drop_duplicates(subset = ["Hotel_Name"]) + + # តម្រៀប dataframe ដើម្បីស្វែងរកភាពខ្ពស់ និងទាបបំផុតនៃភាពខុសគ្នារវាងពិន្ទុមធ្យម + review_scores_df = review_scores_df.sort_values(by=["Average_Score_Difference"]) + + display(review_scores_df[["Average_Score_Difference", "Average_Score", "Calc_Average_Score", "Hotel_Name"]]) + ``` + + អ្នកអាចសួរផងដែរអំពីតម្លៃ `Average_Score` និងហេតុអ្វីបានជា ពេលខ្លះខុសពីគម្លាតមធ្យមដែលគណនា។ ពិចារណាថាយើងមិនអាចដឹងថា ហេតុអ្វីខ្លះប៉ុន្មានតម្លៃត្រូវគ្នា ប៉ុន្តែខ្លះមានការប្រែប្រួលដូច្នេះ។ វាជាការប្រសើរបំផុតក្នុងករណីនេះ សម្រាប់ប្រើពិន្ទុពិនិត្យដែលយើងមានដើម្បីគណនាគម្លាតមធ្យមដោយខ្លួនឯង។ ទោះជាយ៉ាងណា ការប្រែប្រួលភាគច្រើនមានតិចណាស់។ នៅទីនេះគឺជាសណ្ឋាគារដែលមានភាពខុសគ្នាច្រើនបំផុតរវាងគម្លាតមធ្យមនៅក្នុងDataset និងគម្លាតមធ្យមដែលគណនា៖ + + | ផ្សេងគ្នាគម្លាតមធ្យម | គម្លាតមធ្យម | គម្លាតមធ្យមគណនា | ឈ្មោះសណ្ឋាគារ | + | :----------------------: | :-----------: | :----------------: | ------------------------------------------: | + | -0.8 | 7.7 | 8.5 | Best Western Hotel Astoria | + | -0.7 | 8.8 | 9.5 | Hotel Stendhal Place Vend me Paris MGallery | + | -0.7 | 7.5 | 8.2 | Mercure Paris Porte d Orleans | + | -0.7 | 7.9 | 8.6 | Renaissance Paris Vendome Hotel | + | -0.5 | 7.0 | 7.5 | Hotel Royal Elys es | + | ... | ... | ... | ... | + | 0.7 | 7.5 | 6.8 | Mercure Paris Op ra Faubourg Montmartre | + | 0.8 | 7.1 | 6.3 | Holiday Inn Paris Montparnasse Pasteur | + | 0.9 | 6.8 | 5.9 | Villa Eugenie | + | 0.9 | 8.6 | 7.7 | MARQUIS Faubourg St Honor Relais Ch teaux | + | 1.3 | 7.2 | 5.9 | Kube Hotel Ice Bar | + + មានតែសណ្ឋាគារមួយតែប៉ុណ្ណោះដែលមានភាពខុសគ្នានៃពិន្ទុលើស ១ នេះមានន័យថាយើងអាចអបអរសាទរនូវការមិនគិតពីភាពខុសគ្នា និងប្រើគម្លាតមធ្យមដែលគណនាផ្ទាល់បាន។ + +6. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ `Negative_Review` ជា "No Negative" + +7. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ `Positive_Review` ជា "No Positive" + +8. គណនា និងបោះពុម្ពចំនួនជួរដេកដែលមានតម្លៃជួរ `Positive_Review` ជា "No Positive" **និង** `Negative_Review` ជា "No Negative" + + ```python + # ជាមួយ lambdas: + start = time.time() + no_negative_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" else False , axis=1) + print("Number of No Negative reviews: " + str(len(no_negative_reviews[no_negative_reviews == True].index))) + + no_positive_reviews = df.apply(lambda x: True if x['Positive_Review'] == "No Positive" else False , axis=1) + print("Number of No Positive reviews: " + str(len(no_positive_reviews[no_positive_reviews == True].index))) + + both_no_reviews = df.apply(lambda x: True if x['Negative_Review'] == "No Negative" and x['Positive_Review'] == "No Positive" else False , axis=1) + print("Number of both No Negative and No Positive reviews: " + str(len(both_no_reviews[both_no_reviews == True].index))) + end = time.time() + print("Lambdas took " + str(round(end - start, 2)) + " seconds") + + Number of No Negative reviews: 127890 + Number of No Positive reviews: 35946 + Number of both No Negative and No Positive reviews: 127 + Lambdas took 9.64 seconds + ``` + +## វិធីផ្សេងទៀត + +វិធីផ្សេងទៀតដើម្បីរាប់ធាតុនៅគ្មាន Lambdas ហើយប្រើ sum ដើម្បីរាប់ជួរដេក៖ + + ```python + # ដោយគ្មាន lambdas (ប្រើការលាយបញ្ចូលនៃកំណត់ត្រាដើម្បីបង្ហាញថាអ្នកអាចប្រើទាំងពីរបាន) + start = time.time() + no_negative_reviews = sum(df.Negative_Review == "No Negative") + print("Number of No Negative reviews: " + str(no_negative_reviews)) + + no_positive_reviews = sum(df["Positive_Review"] == "No Positive") + print("Number of No Positive reviews: " + str(no_positive_reviews)) + + both_no_reviews = sum((df.Negative_Review == "No Negative") & (df.Positive_Review == "No Positive")) + print("Number of both No Negative and No Positive reviews: " + str(both_no_reviews)) + + end = time.time() + print("Sum took " + str(round(end - start, 2)) + " seconds") + + Number of No Negative reviews: 127890 + Number of No Positive reviews: 35946 + Number of both No Negative and No Positive reviews: 127 + Sum took 0.19 seconds + ``` + + អ្នកអាចមានចំណាប់អារម្មណ៍ថា មាន១២៧ជួរដេកដែលមានទាំង "No Negative" និង "No Positive" សម្រាប់ជួរ `Negative_Review` និង `Positive_Review` ដែលមានតំលៃនោះតាមលំដាប់។ នេះមានន័យថាអ្នកពិនិត្យបានផ្តល់ពិន្ទុត្រួតពិនិត្យសណ្ឋាគារ ប៉ុន្តែបានច្រានចោលមិនសរសេរពត៌មានវិជ្ជមាន ឬអវិជ្ជមានឡើយ។ អំណោយឥតបល់ មានតែមតិគត់ប៉ុណ្ណោះ (១២៧ ក្នុងចំនួន ៥១៥៧៣៨, ប្រហែល ០.០២%) ដូច្នេះវា ប្រហែលមិនប៉ះពាល់ឬឧបាំងពីលទ្ធផលម៉ូដែល ឬលទ្ធផលណាមួយទេ ប៉ុន្តែអ្នកប្រហែលមិនរំពឹងទុកថា dataset មួយដែលមានជាបន្ទាត់មតិ មានជួរដេកគ្មានមតិដែលសរសេរឡើយ ដូច្នេះវាគួរតែមានការស្វែងរកជ្រុងតម្កើងយ៉ាងណាមួយ។ + +ឥឡូវនេះអ្នកបានស្វែងរកឧទម្ដងហើយ មេរៀនបន្ទាប់ អ្នកនឹងតែងតែត្រងទិន្នន័យ និងបន្ថែមការវិភាគអារម្មណ៍។ + +--- +## 🚀 បញ្ហា + +មេរៀននេះបង្ហាញថា ដូចដែលយើងបានឃើញក្នុងមេរៀនមុនៗ វាសំខាន់យ៉ាងខ្លាំងក្នុងការយល់ដឹងអំពីទិន្នន័យរបស់អ្នក និងចំណុចខ្សោយរបស់វា មុនធ្វើប្រតិបត្តិការណ៍លើវា។ ទិន្នន័យផ្អែកលើអត្ថបទ ជាពិសេស ត្រូវការត្រួតពិនិត្យយ៉ាងប្រុងប្រយ័ត្ន។ រុករកដោយDatasetដែលមានអត្ថបទច្រើន និងស្វែងរកតំបន់ដែលអាចនាំឲ្យមានចំណោទធ្វើឲ្យម៉ូដែលមានអារម្មណ៍ក្រិតប្រើប្រាស់ ឬបង្វិលភ្នែក។ + +## [កម្រងសម្រាប់បញ្ញត្តិក្រៅម៉ោង](https://ff-quizzes.netlify.app/en/ml/) + +## ការត្រួតពិនិត្យ និងរៀនដោយខ្លួនឯង + +ចូលរួម [ផ្លូវការសិក្សាអំពី NLP](https://docs.microsoft.com/learn/paths/explore-natural-language-processing/?WT.mc_id=academic-77952-leestott) ដើម្បីស្វែងរកឧបករណ៍ដែលអាចប្រើបង្កើតម៉ូដែលសន្ទស្សន៍និងអត្ថបទច្រើន។ + +## ភារកិច្ច + +[NLTK](assignment.md) + +--- + + +**ការបដិសេធៈ** +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងស្វែងរកភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសំបុរាណគួរត្រូវបានពិចារណាថាជាផ្លូវការជាព័ត៌មានសំខាន់។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ យើងបញ្ជាក់ថាការបកប្រែដោយមនុស្សវិជ្ជាជីវៈគឺត្រូវបានណែនាំ។ យើងមិនដាក់ចំណាយខ្ចីចំពោះការយល់មិនត្រឹមត្រូវ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/4-Hotel-Reviews-1/assignment.md b/translations/km/6-NLP/4-Hotel-Reviews-1/assignment.md new file mode 100644 index 000000000..6dc73468d --- /dev/null +++ b/translations/km/6-NLP/4-Hotel-Reviews-1/assignment.md @@ -0,0 +1,12 @@ +# NLTK + +## សេចក្ដីណែនាំ + +NLTK គឺជាបណ្ណាល័យល្បីមួយសម្រាប់ប្រើប្រាស់ក្នុងភាសាសាស្រ្តគណនាត្រឹមត្រូវ និង NLP។ ចូរយកឱកាសនេះដើម្បីអានតាមរយៈ '[សៀវភៅ NLTK](https://www.nltk.org/book/)' ហើយសាកល្បងលំហាត់របស់វា។ ក្នុងភារកិច្ចមិនប្រកួតនេះ អ្នកនឹងបានស្គាល់បណ្ណាល័យនេះជាងមុនជ្រៅជាងមុន។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែអំពីសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាដើម គួរត្រូវបានគេចាត់ទុកជាលទ្ធផលផ្លូវការ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ដំណើរការបកប្រែដោយអ្នកជំនាញផ្ទាល់មនុស្សគឺជាការផ្ដល់អត្ថប្រយោជន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកផ្សព្វផ្សាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/4-Hotel-Reviews-1/notebook.ipynb b/translations/km/6-NLP/4-Hotel-Reviews-1/notebook.ipynb new file mode 100644 index 000000000..e69de29bb diff --git a/translations/km/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md b/translations/km/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md new file mode 100644 index 000000000..1e06ba982 --- /dev/null +++ b/translations/km/6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងដាក់បណ្តោះអាសន្ន។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរក្សាកម្រិតត្រឹមត្រូវ កុំភ្លេចថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬច្រឡំខុស។ ឯកសារដើមនៅក្នុងភាសាទាប្រភេទ គួរត្រូវបានទទួលស្គាល់ថាជាអ្នកផ្តល់ព័ត៌មានដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ យើងផ្តល់អនុសាសន៍ឱ្យប្រើបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/4-Hotel-Reviews-1/solution/R/README.md b/translations/km/6-NLP/4-Hotel-Reviews-1/solution/R/README.md new file mode 100644 index 000000000..b2e5e5161 --- /dev/null +++ b/translations/km/6-NLP/4-Hotel-Reviews-1/solution/R/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងគូរសំណងបណ្តោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំធ្វើឲ្យមានភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះបាន។ ឯកសារដើមជាភាសាដើមគួរត្រូវបានយកជាចំណុចយោងបំពេញត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យបំពេញបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលបន្ទុកចំពោះការយល់បញ្ចូលខុស ឬការបកប្រែខុសដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb b/translations/km/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb new file mode 100644 index 000000000..f121fc1f6 --- /dev/null +++ b/translations/km/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb @@ -0,0 +1,168 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": 3 + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# EDA\n", + "import pandas as pd\n", + "import time" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "def get_difference_review_avg(row):\n", + " return row[\"Average_Score\"] - row[\"Calc_Average_Score\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the hotel reviews from CSV\n", + "print(\"Loading data file now, this could take a while depending on file size\")\n", + "start = time.time()\n", + "df = pd.read_csv('../../data/Hotel_Reviews.csv')\n", + "end = time.time()\n", + "print(\"Loading took \" + str(round(end - start, 2)) + \" seconds\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# What shape is the data (rows, columns)?\n", + "print(\"The shape of the data (rows, cols) is \" + str(df.shape))\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# value_counts() creates a Series object that has index and values\n", + "# in this case, the country and the frequency they occur in reviewer nationality\n", + "nationality_freq = df[\"Reviewer_Nationality\"].value_counts()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# What reviewer nationality is the most common in the dataset?\n", + "print(\"The highest frequency reviewer nationality is \" + str(nationality_freq.index[0]).strip() + \" with \" + str(nationality_freq[0]) + \" reviews.\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# What is the top 10 most common nationalities and their frequencies?\n", + "print(\"The top 10 highest frequency reviewer nationalities are:\")\n", + "print(nationality_freq[0:10].to_string())\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# How many unique nationalities are there?\n", + "print(\"There are \" + str(nationality_freq.index.size) + \" unique nationalities in the dataset\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# What was the most frequently reviewed hotel for the top 10 nationalities - print the hotel and number of reviews\n", + "for nat in nationality_freq[:10].index:\n", + " # First, extract all the rows that match the criteria into a new dataframe\n", + " nat_df = df[df[\"Reviewer_Nationality\"] == nat] \n", + " # Now get the hotel freq\n", + " freq = nat_df[\"Hotel_Name\"].value_counts()\n", + " print(\"The most reviewed hotel for \" + str(nat).strip() + \" was \" + str(freq.index[0]) + \" with \" + str(freq[0]) + \" reviews.\") \n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# How many reviews are there per hotel (frequency count of hotel) and do the results match the value in `Total_Number_of_Reviews`?\n", + "# First create a new dataframe based on the old one, removing the uneeded columns\n", + "hotel_freq_df = df.drop([\"Hotel_Address\", \"Additional_Number_of_Scoring\", \"Review_Date\", \"Average_Score\", \"Reviewer_Nationality\", \"Negative_Review\", \"Review_Total_Negative_Word_Counts\", \"Positive_Review\", \"Review_Total_Positive_Word_Counts\", \"Total_Number_of_Reviews_Reviewer_Has_Given\", \"Reviewer_Score\", \"Tags\", \"days_since_review\", \"lat\", \"lng\"], axis = 1)\n", + "# Group the rows by Hotel_Name, count them and put the result in a new column Total_Reviews_Found\n", + "hotel_freq_df['Total_Reviews_Found'] = hotel_freq_df.groupby('Hotel_Name').transform('count')\n", + "# Get rid of all the duplicated rows\n", + "hotel_freq_df = hotel_freq_df.drop_duplicates(subset = [\"Hotel_Name\"])\n", + "print()\n", + "print(hotel_freq_df.to_string())\n", + "print(str(hotel_freq_df.shape))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# While there is an `Average_Score` for each hotel according to the dataset, \n", + "# you can also calculate an average score (getting the average of all reviewer scores in the dataset for each hotel)\n", + "# Add a new column to your dataframe with the column header `Calc_Average_Score` that contains that calculated average. \n", + "df['Calc_Average_Score'] = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)\n", + "# Add a new column with the difference between the two average scores\n", + "df[\"Average_Score_Difference\"] = df.apply(get_difference_review_avg, axis = 1)\n", + "# Create a df without all the duplicates of Hotel_Name (so only 1 row per hotel)\n", + "review_scores_df = df.drop_duplicates(subset = [\"Hotel_Name\"])\n", + "# Sort the dataframe to find the lowest and highest average score difference\n", + "review_scores_df = review_scores_df.sort_values(by=[\"Average_Score_Difference\"])\n", + "print(review_scores_df[[\"Average_Score_Difference\", \"Average_Score\", \"Calc_Average_Score\", \"Hotel_Name\"]])\n", + "# Do any hotels have the same (rounded to 1 decimal place) `Average_Score` and `Calc_Average_Score`?\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លះអាចមានកំហុសឬការមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាម្ចាស់របស់វាគួរត្រូវបានពិចារណាជា ប្រភពសំខាន់។ សម្រាប់ព័ត៌មានសំខាន់ៗ ម្នាក់ដែលមានជំនាញបកប្រែដោយមនុស្សគឺត្រូវបានផ្គាប់ផ្គង់។ យើងមិនចុះខ្ចប់ខ្ចាយចំពោះការយល់ច្រឡំ ឬក៏ការបកប្រែខុសៗកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/6-NLP/5-Hotel-Reviews-2/README.md b/translations/km/6-NLP/5-Hotel-Reviews-2/README.md new file mode 100644 index 000000000..89f1235b3 --- /dev/null +++ b/translations/km/6-NLP/5-Hotel-Reviews-2/README.md @@ -0,0 +1,381 @@ +# ការវិភាគអារម្មណ៍ជាមួយការវាយតម្លៃសណ្ឋាគារ + +ឥឡូវនេះបន្ទាប់ពីអ្នកបានស្វែងយល់ពីឯកសារទិន្នន័យលម្អិតរួចហើយ គឺពេលវេលាដើម្បីចម្រោះជួរឈរនានា ហើយបន្ទាប់មកប្រើបច្ចេកទេស NLP លើឯកសារទិន្នន័យ ដើម្បីទទួលបានចំណេះដំណឹងថ្មីអំពីសណ្ឋាគារ។ + +## [សំណួរសម្រៀងមុនមុខវិជ្ជា](https://ff-quizzes.netlify.app/en/ml/) + +### ការចម្រោះនិងប្រតិបត្ដិការវិភាគអារម្មណ៍ + +ដូចដែលអ្នកប្រហែលជាសង្កេតបាន ឯកសារទិន្នន័យមានបញ្ហាខ្លះៗ។ ជួរឈរខ្លះពេញទៅដោយព័ត៌មានដែលមិនមានប្រយោជន៍ អ្នកខ្លះមើលទៅមិនត្រឹមត្រូវឡើយ។ ប្រសិនបើវាត្រឹមត្រូវ វាមិនច្បាស់ថាតើយ៉ាងដូចម្តេចដែលវាត្រូវបានគណនាឡើង ហើយចម្លើយមិនអាចបញ្ជាក់ដោយការគណនារបស់អ្នកបានឡើយ។ + +## ការអនុវត្ត៖ ដំណើរការទិន្នន័យបន្ថែមបន្តិចទៀត + +សម្អាតទិន្នន័យបន្តិចទៀត។ បន្ថែមជួរឈរដែលមានប្រយោជន៍ក្រោយនេះ ប្ដូរតម្លៃនៅជួរឈរផ្សេងៗ និងបោះបង់ជួរឈរតិចៗទាំងមូល។ + +1. ការដំណើរការជួរឈរកដំបូង + + 1. បោះបង់ `lat` និង `lng` + + 2. ផ្លាស់ប្តូរតម្លៃ `Hotel_Address` ជាមួយតម្លៃតទៅនេះ (បើអាសយដ្ឋានមានឈ្មោះទីក្រុង និងប្រទេសដូចគ្នា សូមផ្លាស់ប្ដូរឲ្យជាតែទីក្រុង និងប្រទេសប៉ុណ្ណោះ)។ + + នេះជាទីក្រុង និងប្រទេសតែមួយៗក្នុងឯកសារទិន្នន័យ៖ + + Amsterdam, Netherlands + + Barcelona, Spain + + London, United Kingdom + + Milan, Italy + + Paris, France + + Vienna, Austria + + ```python + def replace_address(row): + if "Netherlands" in row["Hotel_Address"]: + return "Amsterdam, Netherlands" + elif "Barcelona" in row["Hotel_Address"]: + return "Barcelona, Spain" + elif "United Kingdom" in row["Hotel_Address"]: + return "London, United Kingdom" + elif "Milan" in row["Hotel_Address"]: + return "Milan, Italy" + elif "France" in row["Hotel_Address"]: + return "Paris, France" + elif "Vienna" in row["Hotel_Address"]: + return "Vienna, Austria" + + # ជំនួសអាសយដ្ឋានទាំងអស់ជាមួយទម្រង់ខ្លីដែលមានប្រយោជន៍ច្រើនជាងមុន + df["Hotel_Address"] = df.apply(replace_address, axis = 1) + # បរិមាណនៃ value_counts() គួរត្រូវបានបូកសរុបទៅនឹងចំនួនសរុបនៃការវាយតម្លៃ + print(df["Hotel_Address"].value_counts()) + ``` + + ឥឡូវអ្នកអាចសំណួរទិន្នន័យកម្រិតប្រទេសបាន៖ + + ```python + display(df.groupby("Hotel_Address").agg({"Hotel_Name": "nunique"})) + ``` + + | Hotel_Address | Hotel_Name | + | :--------------------- | :--------: | + | Amsterdam, Netherlands | 105 | + | Barcelona, Spain | 211 | + | London, United Kingdom | 400 | + | Milan, Italy | 162 | + | Paris, France | 458 | + | Vienna, Austria | 158 | + +2. ដំណើរការជួរឈរសង្ខេបមតិយោបល់សណ្ឋាគារ + + 1. បោះបង់ `Additional_Number_of_Scoring` + + 1. ផ្លាស់ប្តូរ `Total_Number_of_Reviews` ជាចំនួនសរុបនៃការវាយតម្លៃសម្រាប់សណ្ឋាគានោះដែលមាននៅក្នុងឯកសារទិន្នន័យបច្ចុប្បន្ន + + 1. ផ្លាស់ប្តូរ `Average_Score` ជាពិន្ទុខ្លួនឯងដែលគណនាឡើង + + ```python + # ដក `Additional_Number_of_Scoring` ចេញ + df.drop(["Additional_Number_of_Scoring"], axis = 1, inplace=True) + # ជំនួស `Total_Number_of_Reviews` និង `Average_Score` ជាមួយតម្លៃដែលយើងគណនាឡើងឯង + df.Total_Number_of_Reviews = df.groupby('Hotel_Name').transform('count') + df.Average_Score = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1) + ``` + +3. ដំណើរការជួរឈរពិនិត្យមតិ + + 1. បោះបង់ `Review_Total_Negative_Word_Counts`, `Review_Total_Positive_Word_Counts`, `Review_Date` និង `days_since_review` + + 2. រក្សា `Reviewer_Score`, `Negative_Review`, និង `Positive_Review` ដូចដែលវាជា, + + 3. រក្សា `Tags` នៅពេលនេះ + + - យើងនឹងធ្វើការចម្រោះបន្ថែមលើ Tags នៅក្នុងផ្នែកបន្ទាប់ ហើយ Tags នឹងត្រូវបានបោះបង់ + +4. ដំណើរការជួរឈរពិនិត្យមតិជាភ្ញៀវ + + 1. បោះបង់ `Total_Number_of_Reviews_Reviewer_Has_Given` + + 2. រក្សា `Reviewer_Nationality` + +### ជួរឈរ Tags + +ជួរឈរ `Tag` គឺមានបញ្ហា ពីព្រោះវាជាបញ្ជី (ក្នុងទំរង់អត្ថបទ) ដែលបានផ្ទុកក្នុងជួរឈរ។ អ្នកមិនសង្ឃឹមថាលំដាប់ និងចំនួនអថេររងនៅក្នុងជួរឈរនេះតែមួយគ្នាទេ។ វាពិបាកសម្រាប់មនុស្សក្នុងការដឹងពីអត្ថន័យត្រឹមត្រូវដែលគួរឲ្យចាប់អារម្មណ៍ ពីព្រោះមានជួរដេក ៥១៥,០០០ និងសណ្ឋាគារ ១៤២៧ និងនីមួយៗមានជម្រើសខុសគ្នាខ្លះៗដែលអ្នកវាយតម្លៃអាចជ្រើសរើសបាន។ នេះជាកន្លែងដែល NLP ស្មោះត្រង់។ អ្នកអាចស្កេនអត្ថបទ និងស្វែងរកប្រយោជន៍គំនិតដែលពេញនិយមបំផុត ហើយរាប់វា។ + +អសូរណាស់ អ្នកមិនចាប់អារម្មណ៍លើពាក្យតែមួយទេ ប៉ុន្តែចាប់អារម្មណ៍លើពាក្យច្រើនពាក្យ (ឧ. *Business trip*)។ រត់ប្រព័ន្ធចែករំលែកភាពញឹកញាប់ពាក្យច្រើនពាក្យលើទិន្នន័យច្រើនបែបនេះ (៦,៧៦២,៦៤៦ ពាក្យ) អាចចំណាយពេលវេលាយ៉ាងខ្លាំង ប៉ុន្តែក្រោយមិនមើលទិន្នន័យ វាហាក់ដូចជាការចំណាយដែលចាំបាច់។ នេះជាកន្លែងដែលការវិភាគទិន្នន័យស្មើស្មាញមានប្រយោជន៍ ពីព្រោះអ្នកបានឃើញ ឧទាហរណ៍នៃ Tags ដូចជា `[' Business trip ', ' Solo traveler ', ' Single Room ', ' Stayed 5 nights ', ' Submitted from a mobile device ']` អ្នកអាចចាប់ផ្តើមសួរថា តើអាចកាត់បន្ថយដំណើរការដែលអ្នកត្រូវធ្វើបានយ៉ាងខ្លាំងដែរឬទេ។ សំណាងល្អ វាអាចបាន – ប៉ុន្ត្រ្តត្រូវជំហានមួយចំនួនដើម្បីកំណត់ Tags ដែលគួរឲ្យចាប់អារម្មណ៍។ + +### ចម្រោះ Tags + +ចូរចងចាំថាគោលបំណងឯកសារទិន្នន័យគឺដើម្បីបន្ថែមអារម្មណ៍ និងជួរឈរដែលជួយអ្នកក្នុងការជ្រើសសណ្ឋាគារល្អបំផុត (សម្រាប់ខ្លួនឯង ឬអតិថិជនដែលចង់ឲ្យអ្នកបង្កើត bot ផ្តល់អនុសាសន៍សណ្ឋាគារ)។ អ្នកត្រូវសួរខ្លួនឯងថា Tags មានប្រយោជន៍ឬអត់ក្នុងឯកសារទិន្នន័យចុងក្រោយ។ នេះជាការពន្យល់មួយ (បើអ្នកត្រូវការឯកសារទិន្នន័យសម្រាប់ហេតុផលផ្សេង Tags ខ្លះអាចត្រូវឬមិនត្រូវបានរួចចេញពីការ​ selection)៖ + +1. ប្រភេទដំណើរត្រូវបានពាក់ព័ន្ធ ហើយគួរត្រូវបានរក្សាទុក +2. ប្រភេទក្រុមភ្ញៀវមានសារៈសំខាន់ ហើយគួរត្រូវបានរក្សាទុក +3. ប្រភេទបន្ទប់ ស៊ុយត ឬស្ទូឌីយោដែលភ្ញៀវបានស្នាក់នៅគ្មានសារៈសំខាន់ (សណ្ឋាគារទាំងអស់មានបន្ទប់ដូចគ្នាផ្ទាល់) +4. ឧបករណ៍ដែលបានដាក់តំបន់មតិគ្មានសារៈសំខាន់ +5. ចំនួនយប់ដែលភ្ញៀវស្នាក់នៅ *អាច*មានប្រយោជន៍ ប្រសិនបើអ្នកភ្ជាប់ការស្នាក់នៅយូរជាមួយចំណង់ចំណូលចិត្តសណ្ឋាគារលើស แต่វាគឺជាការព្យាយាម ហើយប្រហែលជាគ្មានប្រយោជន៍ + +ជាភាគចុងក្រោយ **រក្សា Tags ២ ប្រភេទ និងដក Tags ផ្សេងទៀតចេញ**។ + +ដំបូង អ្នកមិនចង់រាប់ Tags ទាល់តែពួកវានៅក្នុងទម្រង់ល្អជាងនេះទេ ដូច្នេះមានន័យថាត្រូវដកសញ្ញាគូសនិងសញ្ញាក្រដាសចេញ។ អ្នកអាចធ្វើវិធីនោះបានជាច្រើន ប៉ុន្តែអ្នកចង់បានរហ័សបំផុត ព្រោះវាអាចចំណាយពេលយូរនៅបំផុតដើម្បីដំណើរការទិន្នន័យច្រើន។ ដំណឹងល្អ គឺ pandas មានវិធីងាយស្រួលដើម្បីធ្វើជំហានទាំងនេះ។ + +```Python +# ដកសញ្ញាគូបួសបើក និងបិទចេញ +df.Tags = df.Tags.str.strip("[']") +# ដកសញ្ញាដូចគ្នាសាំងទាំងអស់ផងដែរ +df.Tags = df.Tags.str.replace(" ', '", ",", regex = False) +``` + +សៀវភៅ Tag ទាំងអស់ធ្វើឡើងជាម៉ូដុល: `Business trip, Solo traveler, Single Room, Stayed 5 nights, Submitted from a mobile device`។ + +បន្ទាប់មកយើងឃើញបញ្ហា។ ពិនិត្យមតិខ្លះ ឬជួរដេកខ្លះ មាន ៥ ជួរឈរ មាន ៣ មាន ៦ ។ នេះគឺជាលទ្ធផលដែលឯកសារទិន្នន័យត្រូវបានបង្កើត ហើយពិបាកកែប្រែ។ អ្នកចង់ទទួលពិន្ទុញឹកញាប់នៃពាក្យនីមួយៗ ប៉ុន្តែពួកវានៅក្នុងលំដាប់ផ្សេងគ្នាក្នុងពិនិត្យមតិគ្រប់មួយ ដូច្នេះប្រហែលជាចំនួនពាក្យនឹងខុស ហើយសណ្ឋាគារព្រមទាំងមិនទទួលបាន Tag ដែលគួរត្រូវបានផ្ដល់។ + +ផ្ទុយពីនេះ អ្នកនឹងប្រើលំដាប់ខុសគ្នានេះជាសេចក្ដីអត្ថប្រយោជន៍ ព្រោះ Tag មួយៗមានពាក្យច្រើនប៉ុន្តែត្រូវបំភ័យដោយសញ្ញាក្បៀស! វិធីងាយស្រួលបំផុតគឺបង្កើតជួរឈរបណ្តោះអាសន្ន ៦ ជួរឈរជាមួយ Tag ខុសៗគ្នាដាក់នៅជួរឈរតាមលំដាប់ក្នុង Tag។ អ្នកអាចផ្សំនៅជួរឈរទាំង ៦ ទៅជាជួរឈរធំមួយ ហើយរត់មុខងារ `value_counts()` លើជួរឈរដែលបានបង្កើត។ បោះពុម្ពមើល អ្នកនឹងឃើញមាន Tag ផ្សេងៗចំនួន ២៤២៨។ នេះជាឧទាហរណ៍តិចតួច៖ + +| Tag | Count | +| ------------------------------ | ------ | +| Leisure trip | 417778 | +| Submitted from a mobile device | 307640 | +| Couple | 252294 | +| Stayed 1 night | 193645 | +| Stayed 2 nights | 133937 | +| Solo traveler | 108545 | +| Stayed 3 nights | 95821 | +| Business trip | 82939 | +| Group | 65392 | +| Family with young children | 61015 | +| Stayed 4 nights | 47817 | +| Double Room | 35207 | +| Standard Double Room | 32248 | +| Superior Double Room | 31393 | +| Family with older children | 26349 | +| Deluxe Double Room | 24823 | +| Double or Twin Room | 22393 | +| Stayed 5 nights | 20845 | +| Standard Double or Twin Room | 17483 | +| Classic Double Room | 16989 | +| Superior Double or Twin Room | 13570 | +| 2 rooms | 12393 | + +Tag ទូទៅមួយចំនួនដូចជា `Submitted from a mobile device` គ្មានប្រយោជន៍សម្រាប់យើង ដូច្នេះវាមានតម្លៃក្នុងការដកចេញមុនរាប់ផែនទី ប៉ុន្តែវាជាលំហូរយ៉ាងលឿន អ្នកអាចរក្សាទុកវានិងមិនប្រើវាបាន។ + +### ការដក Tag សម្រាប់រយៈពេលស្នាក់នៅចេញ + +ការដក Tags ទាំងនេះចេញគឺជាជំហានទី១ វាកាត់បន្ថយចំនួន Tag ដែលត្រូវគិតបន្តិចតិច។ សូមចំណាំថាអ្នកមិនដកវាចេញពីឯកសារទិន្នន័យទេ តែក្នុងការកាត់បន្ថយជួរតម្លៃនៃការរាប់ករណី/រក្សាទុកនៅក្នុងឯកសារពិនិត្យមតិ។ + +| Length of stay | Count | +| ---------------- | ------ | +| Stayed 1 night | 193645 | +| Stayed 2 nights | 133937 | +| Stayed 3 nights | 95821 | +| Stayed 4 nights | 47817 | +| Stayed 5 nights | 20845 | +| Stayed 6 nights | 9776 | +| Stayed 7 nights | 7399 | +| Stayed 8 nights | 2502 | +| Stayed 9 nights | 1293 | +| ... | ... | + +មានប្រភេទបន្ទប់ ស៊ុយត ស្ទូឌីយ៉ូ អាផាតមិនជាច្រើន ។ ពួកវាមានអត្ថន័យដូចគ្នា និងមិនពាក់ព័ន្ធ ទោះបីជាអ្នកដកចេញពីការពិចារណាទេ។ + +| Type of room | Count | +| ----------------------------- | ----- | +| Double Room | 35207 | +| Standard Double Room | 32248 | +| Superior Double Room | 31393 | +| Deluxe Double Room | 24823 | +| Double or Twin Room | 22393 | +| Standard Double or Twin Room | 17483 | +| Classic Double Room | 16989 | +| Superior Double or Twin Room | 13570 | + +ចុងក្រោយ នេះគឺគួរឱ្យរីករាយ (ដោយព្រោះវាមិនចំណាយពេលដំណើរការលើសកម្រិតទេ) អ្នកនឹងទទួលបាន *Tags ប្រយោជន៍* ដូចខាងក្រោម៖ + +| Tag | Count | +| --------------------------------------------- | ------ | +| Leisure trip | 417778 | +| Couple | 252294 | +| Solo traveler | 108545 | +| Business trip | 82939 | +| Group (combined with Travellers with friends) | 67535 | +| Family with young children | 61015 | +| Family with older children | 26349 | +| With a pet | 1405 | + +អ្នកអាចអះអាងថា `Travellers with friends` គឺដូចជា `Group` ប្រហែល ភាគច្រើន ហើយវា គឺសមហេតុផលក្នុងការបញ្ចូលទាំងពីរជាមួយគ្នា ដូចបានបង្ហាញខាងលើ។ កូដសម្រាប់កំណត់ Tags ត្រឹមត្រូវគឺ [កំណត់ហេតុ Tags](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb)។ + +ជំហានចុងក្រោយគឺបង្កើតជួរឈរថ្មីសម្រាប់Tags ទាំងនេះ។ បន្ទាប់មក សម្រាប់ជួរដេកពិនិត្យមតិគ្រប់រូប ត្រូវបើកបង្ហាញថាជួរឈរ `Tag` ផ្គូផ្គងជាមួយជួរឈរថ្មីណាមួយ សូមបន្ថែមលេខ ១ ប្រសិនមិនគ្នា សូមបន្ថែមលេខ ០។ លទ្ធផលចុងក្រោយនឹងជាចំនួនអ្នកបើកបង្ហាញដែលបានជ្រើសសណ្ឋាគារនេះ (ក្នុងសរុប) ដូចជា សម្រាប់អាជីវកម្មទេសចរណ៍ ឬសម្រាប់លំហែកាយជាមួយសត្វចិញ្ចឹម ហើយនេះជាព័ត៌មានមានប្រយោជន៍នៅពេលផ្តល់អនុសាសន៍សណ្ឋាគារ។ + +```python +# ដំណើរការស្លាកទៅជាជួរឈរថ្មី +# ឯកសារ Hotel_Reviews_Tags.py កំណត់ស្លាកសំខាន់បំផុត +# ដំណើរកម្សាន្ត, គូស្នេហា, អ្នកដំណើរតែម្នាក់, ដំណើរជំនួញ, ក្រុមរួមជាមួយ អ្នកដំណើរជាមួយមិត្តភក្តិ, +# គ្រួសារជាមួយកុមារតូច, គ្រួសារជាមួយកុមារចាស់, ជាមួយសត្វចិញ្ចឹម +df["Leisure_trip"] = df.Tags.apply(lambda tag: 1 if "Leisure trip" in tag else 0) +df["Couple"] = df.Tags.apply(lambda tag: 1 if "Couple" in tag else 0) +df["Solo_traveler"] = df.Tags.apply(lambda tag: 1 if "Solo traveler" in tag else 0) +df["Business_trip"] = df.Tags.apply(lambda tag: 1 if "Business trip" in tag else 0) +df["Group"] = df.Tags.apply(lambda tag: 1 if "Group" in tag or "Travelers with friends" in tag else 0) +df["Family_with_young_children"] = df.Tags.apply(lambda tag: 1 if "Family with young children" in tag else 0) +df["Family_with_older_children"] = df.Tags.apply(lambda tag: 1 if "Family with older children" in tag else 0) +df["With_a_pet"] = df.Tags.apply(lambda tag: 1 if "With a pet" in tag else 0) + +``` + +### រក្សាទុកឯកសារ + +ចុងក្រោយ សូមរក្សាទុកឯកសារទិន្នន័យអោយថ្មីជាមួយឈ្មោះថ្មី។ + +```python +df.drop(["Review_Total_Negative_Word_Counts", "Review_Total_Positive_Word_Counts", "days_since_review", "Total_Number_of_Reviews_Reviewer_Has_Given"], axis = 1, inplace=True) + +# កំពុងរក្សាទុកឯកសារទិន្នន័យថ្មីជាមួយជួរឈរដែលបានគិតផ្លូវរួចហើយ +print("Saving results to Hotel_Reviews_Filtered.csv") +df.to_csv(r'../data/Hotel_Reviews_Filtered.csv', index = False) +``` + +## ប្រតិបត្ដិការវិភាគអារម្មណ៍ + +នៅក្នុងផ្នែកចុងក្រោយនេះ អ្នកនឹងអនុវត្តវិភាគអារម្មណ៍ទៅលើជួរឈរពិនិត្យមតិ ហើយរក្សាលទ្ធផលនៅក្នុងឯកសារទិន្នន័យ។ + +## ការអនុវត្ត៖ ដំណើរការនិងរក្សាទុកទិន្នន័យចម្រោះ + +ចំណាំថាឥឡូវនេះ អ្នកកំពុងផ្ទុកឯកសារទិន្នន័យចម្រោះដែលបានរក្សាទុកនៅផ្នែកមុន ហើយមិនមែនឯកសារដើមទេ។ + +```python +import time +import pandas as pd +import nltk as nltk +from nltk.corpus import stopwords +from nltk.sentiment.vader import SentimentIntensityAnalyzer +nltk.download('vader_lexicon') + +# ទាញយកការត្រួតពិនិត្យសណ្ឋាគារដែលបានត្រងពីឯកសារ CSV +df = pd.read_csv('../../data/Hotel_Reviews_Filtered.csv') + +# កូដរបស់អ្នកនឹងត្រូវបានបញ្ចូលនៅទីនេះ + + +# ចុងក្រោយ សូមចងចាំរក្សាទុកការត្រួតពិនិត្យសណ្ឋាគារជាមួយទិន្នន័យ NLP ថ្មីដែលបានបន្ថែម +print("Saving results to Hotel_Reviews_NLP.csv") +df.to_csv(r'../data/Hotel_Reviews_NLP.csv', index = False) +``` + +### ការដកពាក្យឈប់ + +បើអ្នកចង់រត់វិភាគអារម្មណ៍លើជួរឈរពិនិត្យមតិ Negative និង Positive វាអាចចំណាយពេលយូរ។ បានធ្វើតេស្តជាមួយកុំព្យូទ័រយួរដៃមាន CPU លឿន វាចំណាយពេល 12-14 នាទី អាស្រ័យលើបណ្ណាល័យអារម្មណ៍ដែលបានប្រើ។ វាក្នុងរយៈពេលខ្លី ប៉ុន្តែក៏គួរតែពិចារណាថាតើអាចបង្កើនល្បឿនបានទេ។ + +ការដកពាក្យឈប់ ឬពាក្យជាភាសាអង់គ្លេសធម្មតាដែលមិនប៉ះពាល់អារម្មណ៍នៃប្រយោគ គឺជាជំហានទីមួយ។ ដោយដកពួកវាចេញ អ្នកវិភាគអារម្មណ៍គួររត់បានលឿនជាងមុន ប៉ុន្តែមិនត្រឹមត្រូវតិចជាងមុនឡើយ (ព្រោះពាក្យឈប់មិនមានអារម្មណ៍ ប៉ុន្តែពួកវាធ្វើឲ្យការវិភាគយឺត)។ + +ការពិនិត្យមតិអវិជ្ជមានវែងបំផុតមាន ៣៩៥ ពាក្យ ប៉ុន្ត្រ្ទចាប់តាំងពីដកពាក្យឈប់ចេញ គឺនៅ ១៩៥ ពាក្យ។ + +ការដកពាក្យឈប់ក៏ជាការអនុវត្តលឿនដែរ ការដកពាក្យឈប់ពីជួរឈរពិនិត្យមតិ ២ ជួរពីជួរដេក ៥១៥,០០០ ចំណាយពេល ៣.៣ វិនាទីនៅលើឧបករណ៍ភ្ជាប់សាកល្បង។ វាអាចយឺតឬឆាប់ជាងនេះសម្រាប់អ្នកขึ้นដោយប្រើឧបករណ៍ CPU មួយ RAM បទពិសោធន៍ មានវត្ថុចល័ត SSD ឬគ្មានហើយប៉ុន្តាយ៉ាងណាក៏ដោយ។ រយៈពេលខ្លីនេះមានន័យថាបើវាជួយបង្កើនល្បឿនវិភាគអារម្មណ៍ វាគួរតែបានធ្វើ។ + +```python +from nltk.corpus import stopwords + +# ដាក់ទិន្នន័យពិនិត្យផ្ញើសណ្ឋាគារពី CSV +df = pd.read_csv("../../data/Hotel_Reviews_Filtered.csv") + +# លុបពាក្យបញ្ឈប់ - ប្រហែលជាស៊ីជម្រៅសម្រាប់អត្ថបទច្រើន! +# Ryan Han (ryanxjhan លើ Kaggle) មានអត្ថបទល្អអំពីការវាស់វែងលទ្ធភាពនៃវិធីលុបពាក្យបញ្ឈប់ផ្សេងៗ +# https://www.kaggle.com/ryanxjhan/fast-stop-words-removal # ប្រើវិធីដែល Ryan ប្រាប់ដាក់ +start = time.time() +cache = set(stopwords.words("english")) +def remove_stopwords(review): + text = " ".join([word for word in review.split() if word not in cache]) + return text + +# លុបពាក្យបញ្ឈប់ពីទាំងពីរបន្ទាត់ទិន្នន័យ +df.Negative_Review = df.Negative_Review.apply(remove_stopwords) +df.Positive_Review = df.Positive_Review.apply(remove_stopwords) +``` + +### បំពេញវិភាគអារម្មណ៍ + +ឥឡូវអ្នកគួរតែគណនាវិភាគអារម្មណ៍សម្រាប់ជួរឈរពិនិត្យមតិទាំងអវិជ្ជមាន និងវិជ្ជមាន ហើយរក្សាលទ្ធផលនៅក្នុង ២ ជួរឈរថ្មី។ ការតេស្តវីភាគអារម្មណ៍ គឺប្រៀបធៀបជាមួយពិន្ទុអ្នកផ្តល់មតិសម្រាប់ពិនិត្យមតិបែបដូចគ្នា។ ឧទាហរណ៍ បើអារម្មណ៍ថាពិនិត្យអវិជ្ជមានមានអារម្មណ៍ ១ (អារម្មណ៍វិជ្ជមានខ្លាំង) ហើយពិនិត្យវិជ្ជមានគឺ ១ ប៉ុន្ត្រអ្នកផ្តល់មតិយ៉ាងហោចណាស់លើសណ្ឋាគារមានពិន្ទុទាបបំផុត ពោលគឺអត្ថបទពិនិត្យមមិនផ្គូផ្គងនឹងពិន្ទុ ឬអ្នកវិភាគអារម្មណ៍មិនអាចទទួលស្គាល់អារម្មណ៍ត្រឹមត្រូវបាន។ អ្នកគួរមានការរំពឹតថា ពិន្ទុអារម្មណ៍ខ្លះគឺខុសបំពានពេញលេញ ហើយជាញឹកញាប់វាអាចពន្យល់បាន ដោយឧទាហរណ៍ មតិយោបល់អាចជារឿងសិចសេរី "មិនអូស លោកខ្ញុំស្រលាញ់ការគេងក្នុងបន្ទប់គ្មានប្រេងកំដៅ" ហើយអ្នកវិភាគអារម្មណ៍សន្និដ្ឋានថាវាជាអារម្មណ៍វិជ្ជមាន ទោះបីជាមនុស្សអាននោះដឹងថាវាជាការអះអាង។ + +NLTK ផ្តល់អ្នកវិភាគអារម្មណ៍មួយចំនួនផ្សេងៗសម្រាប់រៀន ហើយអ្នកអាចជំនួសពួកវាបាន ហើយមើលថា អារម្មណ៍មានត្រឹមត្រូវខ្លះ ឬក៍ខ្វះ។ វិភាគអារម្មណ៍ VADER ត្រូវបានប្រើនៅទីនេះ។ +> Hutto, C.J. & Gilbert, E.E. (2014). VADER: ម៉ូដែលរៀបចំលក្ខខ័ណ្ឌមានលក្ខណៈសាមញ្ញសម្រាប់វិភាគអារម្មណ៍នៃអត្ថបទបណ្តាញសង្គម។ កិច្ចសន្និបាតអន្ដរជាតិជាលើកទីប្រាំបីលើបណ្តាញអ៊ីនធឺរណែត និងបណ្តាញសង្គម (ICWSM-14)។ Ann Arbor, MI, ខែមិថុនា ២០១៤។ + +```python +from nltk.sentiment.vader import SentimentIntensityAnalyzer + +# បង្កើតកម្មវិធីវិភាគអារម្មណ៍ vader (មានកម្មវិធីផ្សេងទៀតនៅក្នុង NLTK ដែលអ្នកអាចសាកល្បងបានផងដែរ) +vader_sentiment = SentimentIntensityAnalyzer() +# Hutto, C.J. & Gilbert, E.E. (2014). VADER: ម៉ូដែលផ្អែកលើច្បាប់តិចតួចសម្រាប់វិភាគអារម្មណ៍នៃអត្ថបទប្រព័ន្ធផ្សព្វផ្សាយសង្គម។ សន្និសីទអន្តរជាតិលើកទីប្រាំបួនអំពីបន្ទាត់បណ្ដាញនិងប្រព័ន្ធផ្សព្វផ្សាយសង្គម (ICWSM-14)។ អាន់អាប់ប៊ើរ, MI, ខែមិថុនា 2014។ + +# មានជម្រើស 3 សម្រាប់ការបញ្ចូលមួយសម្រាប់ការវាយតម្លៃ៖ +# វាអាចជា "គ្មានអវិជ្ជមាន", ក្នុងករណីនេះ សូមបង្វិល 0 +# វាអាចជា "គ្មានវិជ្ជមាន", ក្នុងករណីនេះ សូមបង្វិល 0 +# វាអាចជាការវាយតម្លៃមួយ, ក្នុងករណីនេះ គណនាអារម្មណ៍នោះ +def calc_sentiment(review): + if review == "No Negative" or review == "No Positive": + return 0 + return vader_sentiment.polarity_scores(review)["compound"] +``` + +បន្ទាប់ពីក្នុងកម្មវិធីរបស់អ្នក នៅពេលដែលអ្នករួចរាល់ក្នុងការគណនាអារម្មណ៍ អ្នកអាចអនុវត្តវាទៅលើការពិនិត្យមតិមួយមួយដូចតទៅ៖ + +```python +# បន្ថែមជួរឈរពីអារម្មណ៍អវិជ្ជមាន និងអារម្មណ៍វិជ្ជមាន +print("Calculating sentiment columns for both positive and negative reviews") +start = time.time() +df["Negative_Sentiment"] = df.Negative_Review.apply(calc_sentiment) +df["Positive_Sentiment"] = df.Positive_Review.apply(calc_sentiment) +end = time.time() +print("Calculating sentiment took " + str(round(end - start, 2)) + " seconds") +``` + +នេះចំណាយពេលប្រហែល ១២០ វិនាទីនៅលើកុំព្យូទ័ររបស់ខ្ញុំ ប៉ុន្តែវានឹងផ្លាស់ប្តូរតាមកុំព្យូទ័រនីមួយៗ។ ប្រសិនបើអ្នកចង់បោះពុម្ពលទ្ធផល ហើយមើលថាអារម្មណ៍សមស្របនឹងការពិនិត្យមតិយ៉ាងដែរឬទេ៖ + +```python +df = df.sort_values(by=["Negative_Sentiment"], ascending=True) +print(df[["Negative_Review", "Negative_Sentiment"]]) +df = df.sort_values(by=["Positive_Sentiment"], ascending=True) +print(df[["Positive_Review", "Positive_Sentiment"]]) +``` + +រឿងចុងក្រោយណាស់ដែលត្រូវធ្វើជាមួយឯកសារមុនប្រើវាក្នុងការប្រកួតប្រជែង គឺត្រូវរក្សាទុកវា! អ្នកគួរតែពិចារណាលំដាប់ជួរឈរថ្មីទាំងអស់របស់អ្នក ដើម្បីឲ្យវាងាយស្រួលដំណើរការជាមួយ (សម្រាប់មនុស្ស វាជាការផ្លាស់ប្តូរផ្នែកសម្រស់)។ + +```python +# បញ្ជាលំដាប់ជួរឈរ (នេះគឺគ្រាន់តែមួយរូបរាង ប៉ុន្តែដើម្បីឲ្យងាយស្រួលស្វែងរកទិន្នន័យនៅពេលក្រោយ) +df = df.reindex(["Hotel_Name", "Hotel_Address", "Total_Number_of_Reviews", "Average_Score", "Reviewer_Score", "Negative_Sentiment", "Positive_Sentiment", "Reviewer_Nationality", "Leisure_trip", "Couple", "Solo_traveler", "Business_trip", "Group", "Family_with_young_children", "Family_with_older_children", "With_a_pet", "Negative_Review", "Positive_Review"], axis=1) + +print("Saving results to Hotel_Reviews_NLP.csv") +df.to_csv(r"../data/Hotel_Reviews_NLP.csv", index = False) +``` + +អ្នកគួរតែដំណើរការកូដទាំងមូលសម្រាប់ [កំណត់ត្រាវិភាគ](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) (បន្ទាប់ពីអ្នកបានដំណើរការកំណត់ត្រា [ការតម្រៀប](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) ដើម្បីបង្កើតឯកសារ Hotel_Reviews_Filtered.csv)។ + +ដើម្បីពិនិត្យមើលម្តងទៀត ជំហានគឺ៖ + +1. ឯកសារដើមទិន្នន័យ **Hotel_Reviews.csv** ត្រូវបានស្ទង់មតិនៅមេរៀនមុនជាមួយ [កំណត់ត្រាអ្នកស្ទង់មតិ](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/4-Hotel-Reviews-1/solution/notebook.ipynb) +2. Hotel_Reviews.csv ត្រូវបានតម្រៀបដោយ [កំណត់ត្រាការតម្រៀប](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb) បណ្តាលឲ្យមាន **Hotel_Reviews_Filtered.csv** +3. Hotel_Reviews_Filtered.csv ត្រូវបានដំណើរការដោយ [កំណត់ត្រាវិភាគអារម្មណ៍](https://github.com/microsoft/ML-For-Beginners/blob/main/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb) បណ្តាលឲ្យមាន **Hotel_Reviews_NLP.csv** +4. ប្រើប្រាស់ Hotel_Reviews_NLP.csv ក្នុងការប្រកួត NLP ខាងក្រោម + +### សេចក្ដីសន្និដ្ឋាន + +នៅពេលដែលអ្នកចាប់ផ្តើម អ្នកមានទិន្នន័យជាមួយជួរឈរ និងទិន្នន័យ ប៉ុន្តែមិនអាចផ្ទៀងផ្ទាត់ឬប្រើប្រាស់ទាំងអស់បានទេ។ អ្នកបានស្ទង់មតិទិន្នន័យ ដកចេញអ្វីដែលអ្នកមិនត្រូវការ បម្លែងស្លាកឲ្យទៅជាអ្វីដែលមានប្រយោជន៍ គណនាមធ្យមភាគរបស់ខ្លួន បន្ថែមជួរឈរអារម្មណ៍មួយចំនួន ហើយសង្ឃឹមថា បានរៀនអ្វីដែលគួរឱ្យចាប់អារម្មណ៍អំពីការប្រែប្រួលអត្ថបទធម្មជាតិ។ + +## [លំហាត់តេស្តបិទមុខវិជ្ជា](https://ff-quizzes.netlify.app/en/ml/) + +## ការប្រកួតប្រជែង + +ឥឡូវនេះដែលអ្នកបានវិភាគទិន្នន័យរបស់អ្នកសម្រាប់អារម្មណ៍ សូមពិនិត្យមើលថាតើអ្នកអាចប្រើយុទ្ធសាស្រ្តដែលបានរៀនក្នុងកម្មវិធីនេះ (ដូចជាការបែងចែកក្រុម អាចជា?) ដើម្បីកំណត់លំនាំជុំវិញអារម្មណ៍។ + +## ការត្រួតពិនិត្យ និងរៀនផ្ទាល់ខ្លួន + +យក [មុខងារ​សិក្សា​នេះ](https://docs.microsoft.com/en-us/learn/modules/classify-user-feedback-with-the-text-analytics-api/?WT.mc_id=academic-77952-leestott) ដើម្បីរៀនបន្ថែម និងប្រើឧបករណ៍ផ្សេងៗដើម្បីស្ទង់មតិអារម្មណ៍ក្នុងអត្ថបទ។ +## ផ្ញើកិច្ចការរៀន + +[សាកល្បងទិន្នន័យផ្សេង](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងព្យាយាមឲ្យមានភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ទៅថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬការខ្វះត្រឹមត្រូវបាន។ ឯកសារដើមជាភាសាមាតុភាគត្រូវបានគិតថាជា ប្រភពពិតប្រាកដ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានអនុញ្ញាត។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/5-Hotel-Reviews-2/assignment.md b/translations/km/6-NLP/5-Hotel-Reviews-2/assignment.md new file mode 100644 index 000000000..b05d400fc --- /dev/null +++ b/translations/km/6-NLP/5-Hotel-Reviews-2/assignment.md @@ -0,0 +1,18 @@ +# សាកល្បងឈុតទិន្នន័យផ្សេង + +## សេចក្តីណែនាំ + +ឥឡូវនេះដែលអ្នកបានរៀនអំពីការប្រើ NLTK ដើម្បីផ្ដល់អារម្មណ៍ចំពោះអត្ថបទ សូមសាកល្បងឈុតទិន្នន័យផ្សេងមួយ។ ប្រហែលជាអ្នកនឹងត្រូវធ្វើការបញ្ច្រាស់ទិន្នន័យជាច្រើនជុំវិញវា ដូច្នេះសូមបង្កើតសៀវភៅកំណត់ត្រាមួយ ហើយឯកសារពីដំណើរការគិតរបស់អ្នក។ តើអ្នករកឃើញអ្វីខ្លះ? + +## រូបិក + +| លក្ខខណ្ឌទិន្នន័យ | ល្អឥតខ្ចោះ | ទៅតាមគ្រោង | ត្រូវការកែលម្អ | +| -------- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------- | ---------------------- | +| | សៀវភៅកំណត់ត្រាពេញលេញ និងឈុតទិន្នន័យត្រូវបានបង្ហាញជាមួយកោសិការដែលបានពន្យល់ខណៈដែលបង្ហាញពីរបៀបផ្ដល់អារម្មណ៍ | សៀវភៅកំណត់ត្រាអត់ពិពណ៌នាល្អ | សៀវភៅកំណត់ត្រាមានកំហុស | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំយ៉ាងខ្លាំងសម្រាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមនៅក្នុងភាសាម្ចាស់ត្រូវបាន xem រួមម៉ាទៅជាមូលដ្ឋានផ្លូវការជាផ្លូវការ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែផ្ទាល់ពីអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការជៀសវាងការពន្យល់ណាមួយដែលកើតឡើងពីការប្រើប្រាស់បកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/5-Hotel-Reviews-2/notebook.ipynb b/translations/km/6-NLP/5-Hotel-Reviews-2/notebook.ipynb new file mode 100644 index 000000000..e69de29bb diff --git a/translations/km/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb new file mode 100644 index 000000000..330ed15a5 --- /dev/null +++ b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/1-notebook.ipynb @@ -0,0 +1,166 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 4, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import time\n", + "import ast" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def replace_address(row):\n", + " if \"Netherlands\" in row[\"Hotel_Address\"]:\n", + " return \"Amsterdam, Netherlands\"\n", + " elif \"Barcelona\" in row[\"Hotel_Address\"]:\n", + " return \"Barcelona, Spain\"\n", + " elif \"United Kingdom\" in row[\"Hotel_Address\"]:\n", + " return \"London, United Kingdom\"\n", + " elif \"Milan\" in row[\"Hotel_Address\"]: \n", + " return \"Milan, Italy\"\n", + " elif \"France\" in row[\"Hotel_Address\"]:\n", + " return \"Paris, France\"\n", + " elif \"Vienna\" in row[\"Hotel_Address\"]:\n", + " return \"Vienna, Austria\" \n", + " else:\n", + " return row.Hotel_Address\n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the hotel reviews from CSV\n", + "start = time.time()\n", + "df = pd.read_csv('../../data/Hotel_Reviews.csv')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# dropping columns we will not use:\n", + "df.drop([\"lat\", \"lng\"], axis = 1, inplace=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# Replace all the addresses with a shortened, more useful form\n", + "df[\"Hotel_Address\"] = df.apply(replace_address, axis = 1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# Drop `Additional_Number_of_Scoring`\n", + "df.drop([\"Additional_Number_of_Scoring\"], axis = 1, inplace=True)\n", + "# Replace `Total_Number_of_Reviews` and `Average_Score` with our own calculated values\n", + "df.Total_Number_of_Reviews = df.groupby('Hotel_Name').transform('count')\n", + "df.Average_Score = round(df.groupby('Hotel_Name').Reviewer_Score.transform('mean'), 1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Process the Tags into new columns\n", + "# The file Hotel_Reviews_Tags.py, identifies the most important tags\n", + "# Leisure trip, Couple, Solo traveler, Business trip, Group combined with Travelers with friends, \n", + "# Family with young children, Family with older children, With a pet\n", + "df[\"Leisure_trip\"] = df.Tags.apply(lambda tag: 1 if \"Leisure trip\" in tag else 0)\n", + "df[\"Couple\"] = df.Tags.apply(lambda tag: 1 if \"Couple\" in tag else 0)\n", + "df[\"Solo_traveler\"] = df.Tags.apply(lambda tag: 1 if \"Solo traveler\" in tag else 0)\n", + "df[\"Business_trip\"] = df.Tags.apply(lambda tag: 1 if \"Business trip\" in tag else 0)\n", + "df[\"Group\"] = df.Tags.apply(lambda tag: 1 if \"Group\" in tag or \"Travelers with friends\" in tag else 0)\n", + "df[\"Family_with_young_children\"] = df.Tags.apply(lambda tag: 1 if \"Family with young children\" in tag else 0)\n", + "df[\"Family_with_older_children\"] = df.Tags.apply(lambda tag: 1 if \"Family with older children\" in tag else 0)\n", + "df[\"With_a_pet\"] = df.Tags.apply(lambda tag: 1 if \"With a pet\" in tag else 0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# No longer need any of these columns\n", + "df.drop([\"Review_Date\", \"Review_Total_Negative_Word_Counts\", \"Review_Total_Positive_Word_Counts\", \"days_since_review\", \"Total_Number_of_Reviews_Reviewer_Has_Given\"], axis = 1, inplace=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Saving results to Hotel_Reviews_Filtered.csv\n", + "Filtering took 23.74 seconds\n" + ] + } + ], + "source": [ + "# Saving new data file with calculated columns\n", + "print(\"Saving results to Hotel_Reviews_Filtered.csv\")\n", + "df.to_csv(r'../../data/Hotel_Reviews_Filtered.csv', index = False)\n", + "end = time.time()\n", + "print(\"Filtering took \" + str(round(end - start, 2)) + \" seconds\")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយ៉ាងណា យើងខ្ញុំខិតខំធ្វើឲ្យបានចំរូងចំរាស ប៉ុន្តែក៏សូមទុកចិត្តថាបកប្រែដោយស្វ័យប្រវត្តិកើតមានកំហុស ឬភាពមិនត្រឹមត្រូវតែងកើតឡើង។ ឯកសារដើមក្នុងភាសាម្តងគត់គួរត្រូវបានទទួលស្គាល់ថាជាឯកសារសំខាន់បំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្ដល់អាទិភាព។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសប្លែកណាមួយដែលកើតឡើងពីការប្រើប្រាស់បកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/6-NLP/5-Hotel-Reviews-2/solution/2-notebook.ipynb b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/2-notebook.ipynb new file mode 100644 index 000000000..961d4a876 --- /dev/null +++ b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/2-notebook.ipynb @@ -0,0 +1,131 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 4, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the hotel reviews from CSV (you can )\n", + "import pandas as pd \n", + "\n", + "df = pd.read_csv('../../data/Hotel_Reviews_Filtered.csv')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# We want to find the most useful tags to keep\n", + "# Remove opening and closing brackets\n", + "df.Tags = df.Tags.str.strip(\"[']\")\n", + "# remove all quotes too\n", + "df.Tags = df.Tags.str.replace(\" ', '\", \",\", regex = False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "# removing this to take advantage of the 'already a phrase' fact of the dataset \n", + "# Now split the strings into a list\n", + "tag_list_df = df.Tags.str.split(',', expand = True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# Remove leading and trailing spaces\n", + "df[\"Tag_1\"] = tag_list_df[0].str.strip()\n", + "df[\"Tag_2\"] = tag_list_df[1].str.strip()\n", + "df[\"Tag_3\"] = tag_list_df[2].str.strip()\n", + "df[\"Tag_4\"] = tag_list_df[3].str.strip()\n", + "df[\"Tag_5\"] = tag_list_df[4].str.strip()\n", + "df[\"Tag_6\"] = tag_list_df[5].str.strip()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "# Merge the 6 columns into one with melt\n", + "df_tags = df.melt(value_vars=[\"Tag_1\", \"Tag_2\", \"Tag_3\", \"Tag_4\", \"Tag_5\", \"Tag_6\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "The shape of the tags with no filtering: (2514684, 2)\n", + " index count\n", + "0 Leisure trip 338423\n", + "1 Couple 205305\n", + "2 Solo traveler 89779\n", + "3 Business trip 68176\n", + "4 Group 51593\n", + "5 Family with young children 49318\n", + "6 Family with older children 21509\n", + "7 Travelers with friends 1610\n", + "8 With a pet 1078\n" + ] + } + ], + "source": [ + "# Get the value counts\n", + "tag_vc = df_tags.value.value_counts()\n", + "# print(tag_vc)\n", + "print(\"The shape of the tags with no filtering:\", str(df_tags.shape))\n", + "# Drop rooms, suites, and length of stay, mobile device and anything with less count than a 1000\n", + "df_tags = df_tags[~df_tags.value.str.contains(\"Standard|room|Stayed|device|Beds|Suite|Studio|King|Superior|Double\", na=False, case=False)]\n", + "tag_vc = df_tags.value.value_counts().reset_index(name=\"count\").query(\"count > 1000\")\n", + "# Print the top 10 (there should only be 9 and we'll use these in the filtering section)\n", + "print(tag_vc[:10])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**:\nឯកសារនេះត្រូវបានបម្លែងភាសាដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេល我們ខំប្រឹងព្យាយាមឲ្យបានភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយអូតូម៉ាទិកអាចមានកំហុស ឬភាពមិនបានឆ្លើយត្រូវ។ ឯកសារដើមដែលមាននៅក្នុងភាសាដើមគួរត្រូវបានគេពិចារណាជាដ מקורសំខាន់។ សម្រាប់ព័ត៌មានសំខាន់ៗ ភាសាបកប្រែដោយមនុស្សវិជ្ជាជីវៈត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែត្រឡប់មិនត្រឹមត្រូវណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb new file mode 100644 index 000000000..c8c8ad7e7 --- /dev/null +++ b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/3-notebook.ipynb @@ -0,0 +1,254 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 4, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "[nltk_data] Downloading package vader_lexicon to\n[nltk_data] /Users/jenlooper/nltk_data...\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "True" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ], + "source": [ + "import time\n", + "import pandas as pd\n", + "import nltk as nltk\n", + "from nltk.corpus import stopwords\n", + "from nltk.sentiment.vader import SentimentIntensityAnalyzer\n", + "nltk.download('vader_lexicon')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "vader_sentiment = SentimentIntensityAnalyzer()\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# There are 3 possibilities of input for a review:\n", + "# It could be \"No Negative\", in which case, return 0\n", + "# It could be \"No Positive\", in which case, return 0\n", + "# It could be a review, in which case calculate the sentiment\n", + "def calc_sentiment(review): \n", + " if review == \"No Negative\" or review == \"No Positive\":\n", + " return 0\n", + " return vader_sentiment.polarity_scores(review)[\"compound\"] \n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# Load the hotel reviews from CSV\n", + "df = pd.read_csv(\"../../data/Hotel_Reviews_Filtered.csv\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "# Remove stop words - can be slow for a lot of text!\n", + "# Ryan Han (ryanxjhan on Kaggle) has a great post measuring performance of different stop words removal approaches\n", + "# https://www.kaggle.com/ryanxjhan/fast-stop-words-removal # using the approach that Ryan recommends\n", + "start = time.time()\n", + "cache = set(stopwords.words(\"english\"))\n", + "def remove_stopwords(review):\n", + " text = \" \".join([word for word in review.split() if word not in cache])\n", + " return text\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# Remove the stop words from both columns\n", + "df.Negative_Review = df.Negative_Review.apply(remove_stopwords) \n", + "df.Positive_Review = df.Positive_Review.apply(remove_stopwords)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Removing stop words took 5.77 seconds\n" + ] + } + ], + "source": [ + "end = time.time()\n", + "print(\"Removing stop words took \" + str(round(end - start, 2)) + \" seconds\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Calculating sentiment columns for both positive and negative reviews\n", + "Calculating sentiment took 201.07 seconds\n" + ] + } + ], + "source": [ + "# Add a negative sentiment and positive sentiment column\n", + "print(\"Calculating sentiment columns for both positive and negative reviews\")\n", + "start = time.time()\n", + "df[\"Negative_Sentiment\"] = df.Negative_Review.apply(calc_sentiment)\n", + "df[\"Positive_Sentiment\"] = df.Positive_Review.apply(calc_sentiment)\n", + "end = time.time()\n", + "print(\"Calculating sentiment took \" + str(round(end - start, 2)) + \" seconds\")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " Negative_Review Negative_Sentiment\n", + "186584 So bad experience memories I hotel The first n... -0.9920\n", + "129503 First charged twice room booked booking second... -0.9896\n", + "307286 The staff Had bad experience even booking Janu... -0.9889\n", + "452092 No WLAN room Incredibly rude restaurant staff ... -0.9884\n", + "201293 We usually traveling Paris 2 3 times year busi... -0.9873\n", + "... ... ...\n", + "26899 I would say however one night expensive even d... 0.9933\n", + "138365 Wifi terribly slow I speed test network upload... 0.9938\n", + "79215 I find anything hotel first I walked past hote... 0.9938\n", + "278506 The property great location There bakery next ... 0.9945\n", + "339189 Guys I like hotel I wish return next year Howe... 0.9948\n", + "\n", + "[515738 rows x 2 columns]\n", + " Positive_Review Positive_Sentiment\n", + "137893 Bathroom Shower We going stay twice hotel 2 ni... -0.9820\n", + "5839 I completely disappointed mad since reception ... -0.9780\n", + "64158 get everything extra internet parking breakfas... -0.9751\n", + "124178 I didnt like anythig Room small Asked upgrade ... -0.9721\n", + "489137 Very rude manager abusive staff reception Dirt... -0.9703\n", + "... ... ...\n", + "331570 Everything This recently renovated hotel class... 0.9984\n", + "322920 From moment stepped doors Guesthouse Hotel sta... 0.9985\n", + "293710 This place surprise expected good actually gre... 0.9985\n", + "417442 We celebrated wedding night Langham I commend ... 0.9985\n", + "132492 We arrived super cute boutique hotel area expl... 0.9987\n", + "\n", + "[515738 rows x 2 columns]\n" + ] + } + ], + "source": [ + "df = df.sort_values(by=[\"Negative_Sentiment\"], ascending=True)\n", + "print(df[[\"Negative_Review\", \"Negative_Sentiment\"]])\n", + "df = df.sort_values(by=[\"Positive_Sentiment\"], ascending=True)\n", + "print(df[[\"Positive_Review\", \"Positive_Sentiment\"]])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "# Reorder the columns (This is cosmetic, but to make it easier to explore the data later)\n", + "df = df.reindex([\"Hotel_Name\", \"Hotel_Address\", \"Total_Number_of_Reviews\", \"Average_Score\", \"Reviewer_Score\", \"Negative_Sentiment\", \"Positive_Sentiment\", \"Reviewer_Nationality\", \"Leisure_trip\", \"Couple\", \"Solo_traveler\", \"Business_trip\", \"Group\", \"Family_with_young_children\", \"Family_with_older_children\", \"With_a_pet\", \"Negative_Review\", \"Positive_Review\"], axis=1)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Saving results to Hotel_Reviews_NLP.csv\n" + ] + } + ], + "source": [ + "print(\"Saving results to Hotel_Reviews_NLP.csv\")\n", + "df.to_csv(r\"../../data/Hotel_Reviews_NLP.csv\", index = False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖\nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លះបណ្តែតបានមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាមូលដ្ឋានគួរត្រូវបានគិតថាជា មានអាទិភាពខ្ពស់បំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សវិជ្ជាជីវៈគួរត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗដែលមានដើមមកពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md new file mode 100644 index 000000000..e80bb3d8a --- /dev/null +++ b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាទីតាំងប៉ាន់ប៉ងបណ្តោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានប្រែសម្រួលដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ថាការប្រែសម្រួលដោយស្វ័យប្រវត្តិក្នុងមួយចំណុចអាចមានកំហុស ឬការមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាមូលដ្ឋានរបស់វាគួរត្រូវបានចាត់ទុកជាភស្តុតាងដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមកំណត់ឲ្យមានការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកព្រំនានានា ដែលកើតឡើងពីការប្រើប្រាស់ការប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/5-Hotel-Reviews-2/solution/R/README.md b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/R/README.md new file mode 100644 index 000000000..93f223bfb --- /dev/null +++ b/translations/km/6-NLP/5-Hotel-Reviews-2/solution/R/README.md @@ -0,0 +1,8 @@ +នេះ​គឺជាកន្លែង​រង់ចាំ​បណ្ដោះអាសន្ន​ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកភាពត្រឹមត្រូវ សូមចងចាំថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមជាភាសាមូលដ្ឋានគួរត្រូវបានគេចាត់ទុកជាដើមទុនផ្លូវការជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ គឺការបកប្រែដោយអ្នកជំនាញផ្នែកមនុស្សត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសវា ដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/README.md b/translations/km/6-NLP/README.md new file mode 100644 index 000000000..7beda49ac --- /dev/null +++ b/translations/km/6-NLP/README.md @@ -0,0 +1,31 @@ +# ការដាក់ចូលគ្នាជាមួយនឹងក្រុមហ៊ុនដំណើរការភាសាធម្មជាតិក្នុងការដំណើរការ + +ការដំណើរការភាសាធម្មជាតិ (NLP) គឺជាសមត្ថភាពនៃកម្មវិធីកុំព្យូទ័រមួយក្នុងការយល់ដឹងភាសាមនុស្សពេលវាត្រូវបាននិយាយ និងសរសេរ -- បានហៅថាភាសាធម្មជាតិ។ វាជាផ្នែកមួយនៃបញ្ញាសិបញ្ញាប្រព័ន្ធ (AI)। NLP មានរយៈពេលជាង ៥០ ឆ្នាំហើយមានដើមកំណើតនៅក្នុងវិស័យសាស្ត្រាភាសា។ ពិភពលោកទាំងមូលត្រូវបានគេដឹកនាំឲ្យជួយឲ្យម៉ាស៊ីនយល់ និងដំណើរការភាសាមនុស្ស។ វាក៏អាចប្រើសម្រាប់អនុវត្តកិច្ចការដូចជាការត្រួតពិនិត្យអក្ខរកម្ម ឬការបកប្រែម៉ាស៊ីន។ វាមានកម្មវិធីជាក់ស្តែងជាច្រើននៅក្នុងវាលធ្ងន់ធ្ងរជាច្រើន រួមមានការស្រាវជ្រាវវេជ្ជសាស្រ្ត បណ្ដាញស្វែងរក និងបញ្ញាជំនាញអាជីវកម្ម។ + +## ប្រធានបទតំបន់៖ ភាសានិងអក្សរសាស្រ្តអឺរ៉ុប និងសណ្ឋាគារព្រហ្មទណ្ឌរបស់អឺរ៉ុប ❤️ + +នៅក្នុងផ្នែកនេះនៃកម្មវិធីសិក្សា អ្នកនឹងត្រូវបានណែនាំអំពីការប្រើប្រាស់យ៉ាងទូលំទូលាយមួយនៃការសិក្សាម៉ាស៊ីន: ការដំណើរការភាសាធម្មជាតិ (NLP)។ ដែលមានមូលដ្ឋានមកពីភាសាស្ថិតស្វ័យប្រវត្តិវិទ្យា ប្រភេទនេះនៃបញ្ញាសិបញ្ញាប្រព័ន្ធជាស្ពានចន្លោះមនុស្ស និងម៉ាស៊ីនតាមរយៈការទំនាក់ទំនងដោយសំឡេង ឬអត្ថបទ។ + +នៅក្នុងមេរៀនខាងក្រោម យើងនឹងរៀនមូលដ្ឋាននៃ NLP ដោយបង្កើតកម្មវិធីរៀបចំជជែកតូចៗ ដើម្បីរៀនពីរបៀបដែលការសិក្សាម៉ាស៊ីនជួយឲ្យការជជែកទាំងនេះមានភាព 'ឆ្លាតវៃ' ទីប្រាំជាងមុន។ អ្នកនឹងត្រឡប់ពេលវេលាចាស់ទៅវិញ ដើម្បីជជែកជាមួយ Elizabeth Bennett និងលោក Darcy ពីរឿងនិទានល្បីរបស់ Jane Austen គឺ **Pride and Prejudice** ដែលបានបោះពុម្ពផ្សាយក្នុងឆ្នាំ ១៨១៣។ បន្ទាប់មក អ្នកនឹងបន្ថែមចំណេះដឹងរបស់អ្នកដោយរៀនអំពីវិភាគអារម្មណ៍តាមរយៈការពិនិត្យសណ្ឋាគារជានិច្ចនៅអឺរ៉ុប។ + +![Pride and Prejudice book and tea](../../../translated_images/km/p&p.279f1c49ecd88941.webp) +> រូបថតលើកដោយ 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) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងដើម្បីភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិនោះអាចមានកំហុស ឬការខុសឆ្គងខ្លះៗ។ ឯកសារដើមដែលមានភាសាមិនបានបម្លែងគួរត្រូវបានគិតថាជាធនាគារដែលមានសុភមង្គលលំដាប់ដើម។ សម្រាប់ព័ត៌មានដែលមានភាពសំខាន់ ពិចារណាបកប្រែដោយមនុស្សជំនាញគឺផ្តល់អត្ថប្រយោជន៍ច្រើនជាង។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការពន្យល់ខុសពីការប្រើប្រាស់ប្រែអត្ថបទនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/6-NLP/data/README.md b/translations/km/6-NLP/data/README.md new file mode 100644 index 000000000..cf263b0c6 --- /dev/null +++ b/translations/km/6-NLP/data/README.md @@ -0,0 +1,8 @@ +ទាញយកទិន្នន័យពិន្ទុសណ្ឋាគារទៅក្នុងថតនេះ។ + +--- + + +**ការកំណត់ទួលខុសត្រូវ**៖ +ឯកសារនេះត្រូវបានប្រែជាភាសាដោយប្រើសេវាកម្មប្រែភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងព្យាយាមធ្វើឱ្យមានភាពត្រឹមត្រូវ សូមជ្រាបថាការប្រែជាឯកសារដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬកង្វះភាពត្រឹមត្រូវ។ ឯកសារដើមដែលមានជាភាស​មូលដ្ឋាន គួរត្រូវបានទទួលស្គាល់ជា ប្រភព​ដែលមានភាពត្រឹមត្រូវបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងស្នើអោយប្រើប្រាស់ការប្រែភាសាដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបំភ្លេចពត៌មានណាមួយដែលកើតមានពីការប្រើប្រាស់ការប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/1-Introduction/README.md b/translations/km/7-TimeSeries/1-Introduction/README.md new file mode 100644 index 000000000..8d4aeec9a --- /dev/null +++ b/translations/km/7-TimeSeries/1-Introduction/README.md @@ -0,0 +1,192 @@ +# ការណែនាំអំពីការព្យាករណ៍រយៈពេល + +![សេចក្តីសង្ខេបអំពីរយៈពេលក្នុងស្នាដៃស្នាដៃ](../../../../translated_images/km/ml-timeseries.fb98d25f1013fc0c.webp) + +> ស្នាដៃស្នាដៃដោយ [Tomomi Imura](https://www.twitter.com/girlie_mac) + +នៅក្នុងមេរៀននេះ និងមេរៀនបន្ទាប់ អ្នកនឹងរៀនបន្តិចអំពីការព្យាករណ៍រយៈពេល ដែលជាផ្នែកមួយគួរឱ្យចាប់អារម្មណ៍ និងមានតម្លៃក្នុងសមាសភាគរបស់វិទ្យាសាស្រ្តកំពុងរៀនម៉ាស៊ីន ដែលមិនគឺមានដំណឹងច្រើនដូចប្រធានបទផ្សេងទៀត។ ការព្យាករណ៍រយៈពេលគឺជាប្រភេទ “កញ្ចក់គ្រាប់ផ្លែក”: អាស្រ័យលើការដំណើរការពីមុននៃអថេរមួយដូចជា តម្លៃ អ្នកអាចទាយទុកតម្លៃអនាគតរបស់វា។ + +[![ការណែនាំអំពីការព្យាករណ៍រយៈពេល](https://img.youtube.com/vi/cBojo1hsHiI/0.jpg)](https://youtu.be/cBojo1hsHiI "ការណែនាំអំពីការព្យាករណ៍រយៈពេល") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូវីដេអូអំពីការព្យាករណ៍រយៈពេល + +## [លំហាត់មុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +វាជាផ្នែកដែលមានប្រយោជន៍ និងគួរឱ្យចាប់អារម្មណ៍ មានតម្លៃពិតប្រាកដចំពោះអាជីវកម្ម ដោយសារតែការប្រើប្រាស់ផ្ទាល់ខ្លួនសម្រាប់បញ្ហាចាក់តម្លៃ សារធាតុ និងបញ្ហាសង្វាក់ផ្គត់ផ្គង់។ ខណៈពេលដែលបច្ចេកទេសរៀនជ្រាលជ្រៅបានចាប់ផ្តើមប្រើប្រាស់ដើម្បីទទួលបានយល់ដឹងបន្ថែមដើម្បីព្យាករណ៍លទ្ធផលអនាគតបានល្អជាងមុន ការព្យាករណ៍រយៈពេលនៅតែជាផ្នែកមួយដែលត្រូវបានជ្រៀតជ្រែកយ៉ាងខ្លាំងដោយបច្ចេកទេស ML ចាស់ៗ។ + +> វគ្គសិក្សារយៈពេលមានតម្លៃរបស់ Penn State អាចរកបាន [នៅទីនេះ](https://online.stat.psu.edu/stat510/lesson/1) + +## ការណែនាំ + +សន្មត់ថាអ្នកគ្រប់គ្រងមួយជួរម៉ែត្រចត់ឡានឆ្លាត ដែលផ្តល់ទិន្នន័យអំពីការប្រើប្រាស់ជាប្រចាំ និងរយៈពេលវែងប៉ុណ្ណា។ + +> តើអ្នកអាចទាយទុកបានទេ ដោយផ្អែកលើការដំណើរការពីមុនរបស់ម៉ែត្រនោះ តម្លៃអនាគតរបស់វាផ្អែកលើច្បាប់នៃការផ្គត់ផ្គង់ និងតម្រូវការ? + +ការព្យាករណ៍បានច្បាស់លាស់ពីពេលណាដើម្បីដំណើរការដើម្បីសម្រេចគោលដៅរបស់អ្នក គឺជាការប្រឈមមួយដែលអាចដោះស្រាយបានដោយការព្យាករណ៍រយៈពេល។ វាអាចមិនធ្វើអោយមនុស្សរីករាយនឹងត្រូវគិតថ្លៃច្រើននៅពេលយ៉ាងច្រើនណាស់ពេលពួកគេកំពុងស្វែងរកកន្លែងចតឡានទេ ប៉ុន្តែវាជាវិធីដែលប្រាកដដើម្បីបង្កើតប្រាក់ចំណូលសម្រាប់សំអាតផ្លូវ! + +មកយើងអាចស្វែងយល់ពីប្រភេទផ្សេងៗនៃអាល់ហ្គរីធម៍រយៈពេល ហើយចាប់ផ្តើមកំណត់សៀវភៅកំណត់ត្រាមួយដើម្បីសម្អាត និងរៀបចំទិន្នន័យមួយ។ ទិន្នន័យដែលអ្នកនឹងវិភាគ មានមូលដ្ឋានមកពីការប្រកួតព្យាករណ៍ GEFCom2014។ វាមានរយៈពេល 3 ឆ្នាំនៃទម្លាប់អគ្គិសនីម៉ោង និងតម្លៃសីតុណ្ហភាពចន្លោះឆ្នាំ 2012 ដល់ 2014។ អាស្រ័យលើលំនាំប្រវត្តិសាស្រ្តនៃទម្លាប់អគ្គិសនី និងសីតុណ្ហភាព អ្នកអាចទាយទុកតម្លៃអនាគតនៃទម្លាប់អគ្គិសនី។ + +ក្នុងឧទាហរណ៍នេះ អ្នកនឹងរៀនពីវិធីព្យាករណ៍មួយជំហានមុខ ប្រាប់តែប្រើទិន្នន័យទម្លាប់ប្រវត្តិសាស្ត្រតែប៉ុណ្ណោះ។ មុនចាប់ផ្តើម ទោះយ៉ាងណា វាជារឿងល្អក្នុងការយល់អំពីអ្វីកើតឡើងនៅក្រោយទំព័រដូច្នេះ។ + +## ពាក្យនិយមមួយចំនួន + +ពេលប្រទះពាក្យ 'រយៈពេល' អ្នកត្រូវយល់ពីការប្រើប្រាស់វានៅក្នុងបរិបទខុសៗគ្នាច្រើន។ + +🎓 **រយៈពេល** + +ក្នុងគណិតវិទ្យា "រយៈពេលគឺជាជួរមួយនៃចំណុចទិន្នន័យដែលបានដាក់លេខសំគាល់ (ឬបានបញ្ជី ឬបានគូស) តាមលំដាប់ពេល។ គ្រប់ពេល ប្រភេទរយៈពេលជាដំណាលចំនួនដែលបានទាញយកនៅចំណុច​ចម្រុះ​ដែលមានចន្លោះពេលស្មើគ្នា។" ឧទាហរណ៍នៃរយៈពេលគឺតម្លៃបិទប្រចាំថ្ងៃនៃ [Dow Jones Industrial Average](https://wikipedia.org/wiki/Time_series)। ការប្រើប្រាស់គំនូសរយៈពេល និងម៉ូដែលស្ថិតិគឺតែងតែពេលជួបប្រទៈនៅក្នុងដំណើរការសញ្ញា, ការព្យាករណ៍អាកាសធាតុ, ការទាយអាគម និងវិស័យផ្សេងទៀតដែលមានព្រឹត្តិការណ៍កើតឡើង ហើយចំណុចទិន្នន័យអាចគូសបានតាមពេល។ + +🎓 **វិភាគរយៈពេល** + +វិភាគរយៈពេល គឺជាការវិភាគទិន្នន័យរយៈពេលខាងលើ។ ទិន្នន័យរយៈពេលអាចមានរាងនានា រួមមាន 'រយៈពេលដែលបានរំខាន' ដែលស្វែងរកលំនាំនៅក្នុងការវិវត្តរបស់រយៈពេលមួយមុន និងក្រោយព្រឹត្តិការណ៍រំខានមួយ។ ប្រភេទវិភាគដែលត្រូវការសម្រាប់រយៈពេលផ្អែកលើធម្មជាតិទិន្នន័យ។ ទិន្នន័យរយៈពេលផ្ទាល់អាចមានរាងជាចំណុចលេខ ឬតួអក្សរ។ + +វិភាគដែលត្រូវធ្វើមានប្រើវិធីផ្សេងៗ រួមបញ្ចូលពីដែនប្រេកង់ និងដែនពេល, គន្លងបន្ទាត់ និងមិនបន្ទាត់, និងច្រើនទៀត។ [សូមស្វែងយល់បន្ថែម](https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc4.htm) អំពីវិធីជាច្រើនក្នុងការវិភាគទិន្នន័យប្រភេទនេះ។ + +🎓 **ការព្យាករណ៍រយៈពេល** + +ការព្យាករណ៍រយៈពេលគឺជាការប្រើម៉ូដែលដើម្បីទាយទុកតម្លៃអនាគតដោយផ្អែកលើលំនាំដែលបង្ហាញដោយទិន្នន័យដែលបានប្រមូលនៅមុន។ បើទោះបីជាអាចប្រើម៉ូដែលរេហ្គ្រេស្យុងដើម្បីស្វែងយល់ទិន្នន័យរយៈពេលដោយមានអថេរពេលជាអថេរជំរៅលើនិទ្ទេសមួយនោះក៏ដោយ ទិន្នន័យបែបនេះប្រសើរជាងរាល់ករណីត្រូវបានវិភាគដោយម៉ូដែលពិសេស។ + +ទិន្នន័យរយៈពេលគឺជាបញ្ជីនៃការសង្កេតតែងតាំងលំដាប់ ខុសពីទិន្នន័យដែលអាចវិភាគដោយរេហ្គ្រេស្យុងបន្ទាត់។ ម៉ូដែលទូទៅបំផុតគឺ ARIMA ដែលជាអក្សរកាត់សម្រាប់ "Autoregressive Integrated Moving Average"។ + +[ម៉ូដែល ARIMA](https://online.stat.psu.edu/stat510/lesson/1/1.1) "ភ្ជាប់តម្លៃបច្ចុប្បន្ននៃជួរមួយទៅនឹងតម្លៃមុន និងកំហុសការព្យាករណ៍ពីមុន។" ពួកវាមានសមត្ថភាពល្អសម្រាប់វិភាគទិន្នន័យដែនពេល ដែលទិន្នន័យត្រូវបានលំដាប់តាមពេល។ + +> មានម៉ូដែល ARIMA ច្រើនប្រភេទ ដែលអ្នកអាចរៀនអំពីវា [នៅទីនេះ](https://people.duke.edu/~rnau/411arim.htm) ហើយដែលអ្នកនឹងប្រើប្រាស់ក្នុងមេរៀនបន្ទាប់។ + +នៅក្នុងមេរៀនបន្ទាប់ អ្នកនឹងបង្កើតម៉ូដែល ARIMA ដោយប្រើ [រយៈពេលយូនីវ៉ារីយ៉ាតីវ](https://itl.nist.gov/div898/handbook/pmc/section4/pmc44.htm) ដែលផ្ដោតលើអថេរមួយដែលប្ដូរតម្លៃរបស់វានៅពេលណាមួយ។ ឧទាហរណ៍នៃទិន្នន័យប្រភេទនេះគឺ [សំណុំទិន្នន័យនេះ](https://itl.nist.gov/div898/handbook/pmc/section4/pmc4411.htm) ដែលកត់ត្រាការមានផ្ទុក CO2 ប្រចាំខែ​នៅ Mauna Loa Observatory៖ + +| CO2 | YearMonth | Year | Month | +| :----: | :-------: | :---: | :---: | +| 330.62 | 1975.04 | 1975 | 1 | +| 331.40 | 1975.13 | 1975 | 2 | +| 331.87 | 1975.21 | 1975 | 3 | +| 333.18 | 1975.29 | 1975 | 4 | +| 333.92 | 1975.38 | 1975 | 5 | +| 333.43 | 1975.46 | 1975 | 6 | +| 331.85 | 1975.54 | 1975 | 7 | +| 330.01 | 1975.63 | 1975 | 8 | +| 328.51 | 1975.71 | 1975 | 9 | +| 328.41 | 1975.79 | 1975 | 10 | +| 329.25 | 1975.88 | 1975 | 11 | +| 330.97 | 1975.96 | 1975 | 12 | + +✅ សម្គាល់អថេរដែលផ្លាស់ប្តូរតាមពេលនៅក្នុងសំណុំទិន្នន័យនេះ + +## លក្ខណៈទិន្នន័យរយៈពេលដែលត្រូវគិតគូរ + +ពេលមើលទៅទិន្នន័យរយៈពេល អ្នកអាចសង្កេតឃើញថាវាមាន [លក្ខណៈពិសេសមួយចំនួន](https://online.stat.psu.edu/stat510/lesson/1/1.1) ដែលអ្នកត្រូវគិតគូរ និងកាត់បន្ថយដើម្បីយល់ពីលំនាំរបស់វាបានល្អកាន់តែច្រើន។ ប្រសិនបើអ្នកគិតទិន្នន័យរយៈពេលជាសញ្ញាមួយដែលអ្នកចង់វិភាគ លក្ខណៈទាំងនេះអាចត្រូវគេគិតថាជាសំឡេងរំខាន។ អ្នកភាគច្រើននឹងត្រូវបន្ថយសំឡេងនេះដោយផ្ដល់តុល្យភាពលក្ខណៈខ្លះៗជាមួយបច្ចេកទេសស្ថិតិ។ + +នេះជាគំនិតមួយចំនួនដែលអ្នកគួរតែយល់ដើម្បីអាចធ្វើការជាមួយរយៈពេល៖ + +🎓 **លំនាំ** + +លំនាំត្រូវបានកំណត់ឱ្យជាការកើនឡើង និងចុះបន្តិចបន្តួចដែលអាចវាស់បានតាមពេល។ [អានបន្ថែម](https://machinelearningmastery.com/time-series-trends-in-python)។ នៅក្នុងបរិបទរយៈពេល វាស្តីពីរបៀបប្រើ និង ប្រសិនបើចាំបាច់ ក៏ដកលំនាំចេញពីរយៈពេលរបស់អ្នក។ + +🎓 **[រដូវកាល](https://machinelearningmastery.com/time-series-seasonality-with-python/)** + +រដូវកាលត្រូវបានកំណត់ជាការវិលត្រឡប់ជាប្រចាំ ដូចជាការរញ្ជួយពេលបុណ្យដែលអាចប៉ះពាល់ដល់ការលក់ ជាឧទាហរណ៍។ [មើល](https://itl.nist.gov/div898/handbook/pmc/section4/pmc443.htm) របៀបដែលគំនូសផ្សេងៗបង្ហាញរដូវកាលក្នុងទិន្នន័យ។ + +🎓 **ចំណុចចម្លែក** + +ចំណុចចម្លែកមានភាពតែមកផុតពីបម្លែងទិន្នន័យធម្មតា។ + +🎓 **វដ្តរយៈពេលវែង** + +ដោយឡែកពីរដូវកាល ទិន្នន័យអាចបង្ហាញវដ្តរយៈពេលវែងដូចជាវដ្តអនយោគមួយដែលយូរជាងមួយឆ្នាំ។ + +🎓 **ភាពប្រែប្រួលថេរ** + +តាមពេលខ្លះទិន្នន័យបង្ហាញភាពប្រែប្រួលថេរ ដូចជាការប្រើប្រាស់ថាមពលរយៈពេលមួយថ្ងៃ និងយប់។ + +🎓 **ការផ្លាស់ប្តូរបែបក្រៅមធ្យម** + +ទិន្នន័យអាចបង្ហាញការផ្លាស់ប្តូរច្បាស់លាស់ ដែលអាចត្រូវការវិភាគបន្ថែម។ ការបិទជើងហោះហើរជាបន្ទាន់ដោយសារ COVID ជាឧទាហរណ៍មួយដែលបណ្តាលអោយមានការផ្លាស់ប្តូរនៅក្នុងទិន្នន័យ។ + +✅ នេះគឺជាគំនូសរយៈពេលគំរូមួយ [sample time series plot](https://www.kaggle.com/kashnitsky/topic-9-part-1-time-series-analysis-in-python) បង្ហាញការចំណាយរូបិយវត្ថុក្នុងហ្គេមប្រចាំថ្ងៃក្នុងរយៈពេលពីរបីឆ្នាំ។ តើអ្នកអាចសម្គាល់លក្ខណៈណាមួយដែលបានរាយនាមខាងលើនៅក្នុងទិន្នន័យនេះទេ? + +![ចំណាយរូបិយវត្ថុក្នុងហ្គេម](../../../../translated_images/km/currency.e7429812bfc8c608.webp) + +## លំហាត់ - ចាប់ផ្តើមជាមួយទិន្នន័យប្រើថាមពល + +មកចាប់ផ្តើមបង្កើតម៉ូដែលរយៈពេលមួយ ដើម្បីទាយទុកប្រើថាមពលអនាគតដោយផ្អែកលើការប្រើប្រាស់ពីមុន។ + +> ទិន្នន័យក្នុងឧទាហរណ៍នេះចាប់យកពីការប្រកួតព្យាករណ៍ GEFCom2014។ វាមានរយៈពេល 3 ឆ្នាំនៃទំងន់អគ្គិសនីម៉ោង និងតម្លៃសីតុណ្ហភាពចន្លោះឆ្នាំ 2012 ដល់ 2014។ +> +> Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli និង Rob J. Hyndman, "Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond", International Journal of Forecasting, vol.32, no.3, pp 896-913, July-September, 2016. + +1. នៅក្នុងថត `working` នៃមេរៀននេះ បើកឯកសារ _notebook.ipynb_។ ចាប់ផ្តើមដោយបន្ថែមបណ្ណាល័យ ដែលជួយអ្នកដំណើរការ និងមើលទិន្នន័យ + + ```python + import os + import matplotlib.pyplot as plt + from common.utils import load_data + %matplotlib inline + ``` + + ចំណាំ អ្នកកំពុងប្រើឯកសារពីថត `common` ដែលបានចូលរួមមកជាមួយ ដែលរៀបចំបរិយាកាសរបស់អ្នក ហើយដំណើរការចេញទិន្នន័យ។ + +2. បន្ទាប់មក សូមពិនិត្យទិន្នន័យជាដាតាហ្វ្រេម ដោយហៅ `load_data()` និង `head()`៖ + + ```python + data_dir = './data' + energy = load_data(data_dir)[['load']] + energy.head() + ``` + + អ្នកអាចឃើញថាមានកូឡុំពីរ តំណាងឲ្យកាលបរិច្ឆេទ និងទំងន់៖ + + | | load | + | :-----------------: | :----: | + | 2012-01-01 00:00:00 | 2698.0 | + | 2012-01-01 01:00:00 | 2558.0 | + | 2012-01-01 02:00:00 | 2444.0 | + | 2012-01-01 03:00:00 | 2402.0 | + | 2012-01-01 04:00:00 | 2403.0 | + +3. ឥឡូវ សូមគូសរូបភាពទិន្នន័យ ដោយហៅ `plot()`៖ + + ```python + energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12) + plt.xlabel('timestamp', fontsize=12) + plt.ylabel('load', fontsize=12) + plt.show() + ``` + + ![គំនូសថាមពល](../../../../translated_images/km/energy-plot.5fdac3f397a910bc.webp) + +4. ឥឡូវ សូមគូសរូបភាពសប្តាហ៍ទីមួយរបស់ខែកក្កដា 2014 ដោយផ្ដល់វាជាអ្នកបញ្ចូលទៅក្នុង `energy` ដែលមានគំរូ `[ពីកាលបរិច្ឆេទ]: [ទៅកាន់កាលបរិច្ឆេទ]`៖ + + ```python + energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12) + plt.xlabel('timestamp', fontsize=12) + plt.ylabel('load', fontsize=12) + plt.show() + ``` + + ![កក្កដា](../../../../translated_images/km/july-2014.9e1f7c318ec6d5b3.webp) + + គំនូសស្អាតណាស់! សូមមើលគំនូសទាំងនេះ ហើយមើលថាតើអ្នកអាចកំណត់លក្ខណៈណាមួយដែលបញ្ជាក់ខាងលើក្នុងទិន្នន័យនេះបានទេ។ តើយើងអាចទាញបញ្ចេញអ្វីបានពីការមើលគំនូសទិន្នន័យនេះ? + +នៅក្នុងមេរៀនបន្ទាប់ អ្នកនឹងបង្កើតម៉ូដែល ARIMA ដើម្បីបង្កើតការព្យាករណ៍ខ្លះ។ + +--- + +## 🚀បញ្ញាសមហេតុ + +រៀបចុំនីតិសង្ខេបនៃរោងចក្រ និងវិស័យស្រាវជ្រាវទាំងឡាយដែលអ្នកគិតថាអាចទទួលបានផលពីការព្យាករណ៍រយៈពេល។ តើអ្នកអាចគិតពីកម្មវិធីណាមួយនៃបច្ចេកទេសទាំងនេះនៅក្នុងវិចិត្រសិល្បៈទេ? ក្នុងប្រពន្ធវិជ្ជា? បរិស្ថានវិទ្យា? រាយវិល? ឧស្សាហកម្ម? ហិរញ្ញវត្ថុ? តើនៅកន្លែងណាផ្សេងទៀត? + +## [លំហាត់បន្ទាប់មេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## សេចក្តីសង្ខេប និងសិក្សាឯករាជ្យ + +ទោះបីជាយើងមិនគ្របដណ្តប់វានៅទីនេះក៏ដោយ បណ្តាញប្រសាទ (neural networks) មួយចំនួនត្រូវបានប្រើសម្រាប់បង្កើនប្រសិទ្ធភាពវិធីចាស់ៗនៃការព្យាករណ៍រយៈពេល។ អានបន្ថែមអំពីវានៅ [អត្ថបទនេះ](https://medium.com/microsoftazure/neural-networks-for-forecasting-financial-and-economic-time-series-6aca370ff412) + +## កិច្ចការផ្ញើរ + +[គូសរូបភាពរយៈពេលបន្ថែមមួយចំនួន](assignment.md) + +--- + + +**ការបដិសេធ** ៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំធ្វើអោយមានភាពត្រឹមត្រូវ សូមយល់ឲ្យបានថាការបកប្រែដោយស្វយ័តអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាដើមត្រូវបានគេសង្កត់សំខាន់ថាជាផ្លូវការ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អនុសាសន៍ឲ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗដែលបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/1-Introduction/assignment.md b/translations/km/7-TimeSeries/1-Introduction/assignment.md new file mode 100644 index 000000000..110325b36 --- /dev/null +++ b/translations/km/7-TimeSeries/1-Introduction/assignment.md @@ -0,0 +1,18 @@ +# វិចិត្រសិល្បៈខ្លះទៀតសម្រាប់ស្វ័យប្រវត្តិសកម្មវទ្យា + +## សេចក្ដីណែនាំ + +អ្នកបានចាប់ផ្តើមរៀនអំពីការទស្សនៈទុកអនាគតស្វ័យប្រវត្តិសកម្មវទ្យាដោយមើលទៅលើប្រភេទទិន្នន័យដែលត្រូវការម៉ូដែលពិសេសនេះ។ អ្នកបានវិចិត្រសិល្បៈទិន្នន័យខ្លះជុំវិញថាមពលរួចរាល់។ ឥឡូវនេះ សូមស្វែងរកទិន្នន័យផ្សេងទៀតដែលអាចទទួលបានអត្ថប្រយោជន៍ពីការទស្សនៈទុកអនាគតស្វ័យប្រវត្តិសកម្មវទ្យា។ សូមស្វែងរកឧទាហរណ៍បី (សាកល្បងនៅ [Kaggle](https://kaggle.com) និង [Azure Open Datasets](https://azure.microsoft.com/en-us/services/open-datasets/catalog/?WT.mc_id=academic-77952-leestott)) និងបង្កើតស្វ័យប្រវត្តិក្នុងការវិចិត្រសិល្បៈពួកវា។ សូមសរសេរពិពណ៌នាលក្ខណៈពិសេសណាមួយដែលពួកវាមាន (រដូវកាល, ការប្រែប្រួលយ៉ាងភ្លាមភ្លាន, ឬនិន្នាការផ្សេងទៀត) ក្នុងស្វ័យប្រវត្តិនោះ។ + +## គោលការណ៍វាយតម្លៃ + +| ក្រម | ឧត្តម | ត្រូវបានគ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | ------------------------------------------------------ | ---------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| | ឯកសារទិន្នន័យបីត្រូវបានគូរនិងពន្យល់ក្នុងស្វ័យប្រវត្តិ | ឯកសារទិន្នន័យពីរត្រូវបានគូរនិងពន្យល់ក្នុងស្វ័យប្រវត្តិ | មានឯកសារទិន្នន័យតិចជាងនេះត្រូវបានគូរឬពន្យល់ក្នុងស្វ័យប្រវត្តិ ឬទិន្នន័យដែលបានបង្ហាញមិនគ្រប់គ្រាន់ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានការខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការមិនត្រឹមត្រូវបានដែរ។ ឯកសារដើមក្នុងភាសាមានដើមរបស់វាគួរត្រូវបានចាត់ទុកថាជា ប្រភពដែលមានអំណាចបំផុត។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សវិជ្ជាជីវៈគឺត្រូវបានផ្តល់អនុសាសន៍។ អ្នកបម្រុងទុកមិនមានខុសត្រូវចំពោះការជ្រុះបះបោរឬការបកប្រែមិនត្រឹមត្រូវណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/1-Introduction/solution/Julia/README.md b/translations/km/7-TimeSeries/1-Introduction/solution/Julia/README.md new file mode 100644 index 000000000..510e3952a --- /dev/null +++ b/translations/km/7-TimeSeries/1-Introduction/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះជាតំណត់តំបន់បណ្តោះអាសន្ន + +--- + + +**ការបញ្ចាក់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ពីពេលយើងខំប្រឹងដើម្បីឲ្យត្រឹមត្រូវ គួរបញ្ជាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុស ឬក៏មានភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដែលមានដើមគួរត្រូវបានចាត់ទុកជារបស់មូលដ្ឋានដែលមានសិទ្ធិលើព័ត៌មាន។ សម្រាប់ព័ត៌មានចំបង សូមប្រើការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនស្មោះត្រង់ចំពោះការយល់ច្រឡំ ឬការបម្លែងអត្ថន័យណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/1-Introduction/solution/R/README.md b/translations/km/7-TimeSeries/1-Introduction/solution/R/README.md new file mode 100644 index 000000000..1848e31f1 --- /dev/null +++ b/translations/km/7-TimeSeries/1-Introduction/solution/R/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងយកជំនួសបណ្ដោះអាសន្ន + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែស្វ័យប្រវត្តិក្នុងនេះអាចមានកំហុស ឬការខុសប្លែក។ ឯកសារដើមជាភាសាតំបន់របស់វាគួរត្រូវបានកាន់ជាជារបស់ដើមដែលមានអំណាច។ សម្រាប់ព័ត៌មានដែលមានសារៈសំខាន់ យ៉ាងហោចណាស់ គួរត្រូវបានបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/1-Introduction/solution/notebook.ipynb b/translations/km/7-TimeSeries/1-Introduction/solution/notebook.ipynb new file mode 100644 index 000000000..1077bdee2 --- /dev/null +++ b/translations/km/7-TimeSeries/1-Introduction/solution/notebook.ipynb @@ -0,0 +1,166 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ការតំឡើងទិន្នន័យ\n", + "\n", + "ក្នុងកំណត់ឯកសារនេះ យើងបង្ហាញរបៀប:\n", + "- តំឡើងទិន្នន័យស៊េរីពេលវេលាសម្រាប់ម៉ូឌុលនេះ\n", + "- ពិពណ៌នាទិន្នន័យ\n", + "\n", + "ទិន្នន័យនៅក្នុងឧទាហរណ៍នេះ ត្រូវបានយកមកពីការប្រកួតទាយទម្លាសម្រាប់ GEFCom20141។ វាប្រមូលផ្តុំពីទិន្នន័យបំពង់ភ្លើងអគ្គិសនី និងតម្លៃសីតុណ្ហភាពរ საათបីឆ្នាំចន្លោះឆ្នាំ 2012 ទៅ 2014។\n", + "\n", + "1Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli and Rob J. Hyndman, \"Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond\", International Journal of Forecasting, vol.32, no.3, pp 896-913, July-September, 2016.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "import os\n", + "import matplotlib.pyplot as plt\n", + "from common.utils import load_data\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ផ្ទុកទិន្នន័យពីឯកសារ csv ចូលទៅក្នុង Pandas dataframe\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " load\n", + "2012-01-01 00:00:00 2698.0\n", + "2012-01-01 01:00:00 2558.0\n", + "2012-01-01 02:00:00 2444.0\n", + "2012-01-01 03:00:00 2402.0\n", + "2012-01-01 04:00:00 2403.0" + ], + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
load
2012-01-01 00:00:002698.0
2012-01-01 01:00:002558.0
2012-01-01 02:00:002444.0
2012-01-01 03:00:002402.0
2012-01-01 04:00:002403.0
\n
" + }, + "metadata": {}, + "execution_count": 7 + } + ], + "source": [ + "data_dir = './data'\n", + "energy = load_data(data_dir)[['load']]\n", + "energy.head()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "គូរទិន្នន័យទម្ងន់ដែលមានស្រាប់ទាំងអស់ (ខែមករា 2012 ដល់ ខែធ្នូ 2014)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)\n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "គូររូបភាគរយសប្តាហ៍ដំបូង នៃខែកក្កដា ឆ្នាំ 2014\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4kAAAHiCAYAAABFgonlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdeXhb5ZU/8O+r3bYkO7bl3YljZ3dCnJBASCCQFkqBgUDpBrRMZ6YLMJ2l26/TTjtDmelMp09nOtNOaUt31tKFtRToQAkpSUhIiJPY2Z14X+VFkiVL1vL+/pBkjHESL5Ku7r3fz/P4IbF07z1Gsa1z3/OeI6SUICIiIiIiIgIAg9IBEBERERERUfZgkkhEREREREQTmCQSERERERHRBCaJRERERERENIFJIhEREREREU1gkkhEREREREQTTEoHoITi4mJZU1OjdBhERERERESKOHDggFtK6ZruMV0miTU1Ndi/f7/SYRARERERESlCCNF2rsdYbkpEREREREQTmCQSERERERHRBCaJRERERERENEGXexKJiIiIiIgAIBwOo7OzE8FgUOlQ0sJms6Gqqgpms3nGxzBJJCIiIiIi3ers7ITD4UBNTQ2EEEqHk1JSSgwODqKzsxOLFy+e8XEsNyUiIiIiIt0KBoMoKirSXIIIAEIIFBUVzXqVlEkiERERERHpmhYTxKS5fG1MEomIiIiIiBRkt9tTcp57770X3/rWt+Z9HiaJRERERERENIFJIhERERERURaQUuILX/gCVq9ejTVr1uDxxx8HAIyOjuLd73431q9fjzVr1uDpp5+eOObrX/86li1bhssvvxwnTpxISRzsbkpERERERATga88242i3N6XnXFXhxD/fWD+j5z7xxBNobGzEoUOH4Ha7sXHjRmzduhUulwtPPvkknE4n3G43Nm3ahJtuuglvvvkmfvnLX6KxsRGRSATr16/HxRdfPO+YuZJIRERERESUBV577TXcdtttMBqNKC0txZVXXok33ngDUkp8+ctfxkUXXYSrr74aXV1d6Ovrw5/+9CfccsstyM3NhdPpxE033ZSSOLiSSEREREREBMx4xS/THnnkEQwMDODAgQMwm82oqamZ9ViL2eBKIhERERERURa44oor8PjjjyMajWJgYAA7d+7EJZdcAo/Hg5KSEpjNZrzy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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "energy['2014-07-01':'2014-07-07'].plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)\n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើប្រាស់សេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំក្នុងការទាញយកភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមនៅភាសាមួយរបស់វាគួរត្រូវបានយកជាឯកសារយោងដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្ដល់អនុសាសន៍ឲ្យប្រើការបកប្រែដោយមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។\n\n" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python37364bit8d3b438fb5fc4430a93ac2cb74d693a7", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/7-TimeSeries/1-Introduction/working/notebook.ipynb b/translations/km/7-TimeSeries/1-Introduction/working/notebook.ipynb new file mode 100644 index 000000000..b56571e4a --- /dev/null +++ b/translations/km/7-TimeSeries/1-Introduction/working/notebook.ipynb @@ -0,0 +1,57 @@ +{ + "cells": [ + { + "source": [ + "# ការកំណត់ទិន្នន័យ\n", + "\n", + "នៅក្នុងសៀវភៅបំណងនេះ យើងបង្ហាញពីវិធី:\n", + "\n", + "កំណត់ទិន្នន័យស៊េរីពេលវេលាដើម្បីប្រើប្រាស់សម្រាប់ម៉ូឌុលនេះ \n", + "បង្ហាញទិន្នន័យ \n", + "ទិន្នន័យក្នុងឧទាហរណ៍នេះយកចេញពីការប្រកួតព្យាករណ៍ GEFCom20141។ វាបង្ហាប់ពីទិន្នន័យផ្ទុកអគ្គិសនី និងតម្លៃសីតុណ្ហភាពរោងម៉ោងរយៈ 3 ឆ្នាំ រវាងឆ្នាំ 2012 និង 2014។\n", + "\n", + "1Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli និង Rob J. Hyndman, \"Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond\", International Journal of Forecasting, vol.32, no.3, pp 896-913, July-September, 2016.\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការ​ព្រមាន**៖ \nឯកសារនេះត្រូវបានបកប្រែជាភាសាខ្មែរដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងសម្រាប់ភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិសម័យអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានគិតថាជា ប្រភពមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ យើងសូមផ្ដល់អនុសាសន៍ឲ្យប្រើការបកប្រែដោយមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែអាក្រក់ណាមួយដែលកើតមានពីចំណាត់ការប្រើប្រាស់ការបកប្រែនេះនោះទេ។\n\n" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python37364bit8d3b438fb5fc4430a93ac2cb74d693a7", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/7-TimeSeries/2-ARIMA/README.md b/translations/km/7-TimeSeries/2-ARIMA/README.md new file mode 100644 index 000000000..01dbcc00c --- /dev/null +++ b/translations/km/7-TimeSeries/2-ARIMA/README.md @@ -0,0 +1,400 @@ +# ការទាយទ្រង់ទ្រាយពេលវេលាជាមួយ ARIMA + +នៅថ្នាក់មុន អ្នកបានរៀនពីការទាយទ្រង់ទ្រាយពេលវេលា ហើយបានបង្ហាញកំណត់ត្រាដែលបង្ហាញការប្រែប្រួលនៃទិន្នន័យភារកិច្ចអគ្គិសនីជាមួយរយៈពេល។ + +[![Introduction to ARIMA](https://img.youtube.com/vi/IUSk-YDau10/0.jpg)](https://youtu.be/IUSk-YDau10 "Introduction to ARIMA") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូ៖ ការណែនាំខ្លីអំពីម៉ូដែល ARIMA។ ឧទាហរណ៍ត្រូវបានធ្វើក្នុង R ប៉ុន្តែគំនិតទាំងនេះគឺទូទៅ។ + +## [ពិន្ទុវាយតម្លៃមុនថ្នាក់បង្រៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការណែនាំ + +នៅក្នុងមេរៀននេះ អ្នកនឹងស្វែងយល់ពីវិធីពិសេសមួយក្នុងការបង្កើតម៉ូដែលជាមួយ [ARIMA: *A*uto*R*egressive *I*ntegrated *M*oving *A*verage](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average)។ ម៉ូដែល ARIMA សម ħafnaសម្រាប់ផ្ទុកទិន្នន័យដែលបង្ហាញ [non-stationarity](https://wikipedia.org/wiki/Stationary_process)។ + +## គំនិតទូទៅ + +ដើម្បីអាចធ្វើការជាមួយ ARIMA មានគំនិតខ្លះដែលអ្នកត្រូវដឹង៖ + +- 🎓 **Stationarity**។ ពីរយៈពេលស្ថិតិ ស្ថានភាព stationarity គឺបញ្ជាក់ពីទិន្នន័យដែលការចែកចាយមិនផ្លាស់ប្តូរនៅពេលផ្លាស់ប្តូរពេល។ ទិន្នន័យដែលមិនមែន stationarity បង្ហាញពីការប្រែប្រួលដោយសារតែផ្លូវនៃទិន្នន័យដែលត្រូវតែផ្លាស់ប្តូរដើម្បីវិភាគបាន។ ឧទាហរណ៍ ដំណាក់កាលរដូវអាចបង្ករជាការប្រែប្រួលនៅក្នុងទិន្នន័យ ហើយអាចដកចេញបានដោយប្រើដំណើរការត្រូវបានហៅថា 'seasonal-differencing'។ + +- 🎓 **[Differencing](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average#Differencing)**។ ការប្រែប្រួលទិន្នន័យ (differencing) ពីការស្ថិតិបង្ហាញពីដំណើរការផ្លាស់ប្តូរទិន្ននយ៍មិនមែន stationarity ទៅជា stationarity ដោយយកចេញពីផ្លូវដែលមិនម៉ោងថេរ។ "Differencing បំបាត់ការផ្លាស់ប្តូរទ្រង់ទ្រាយក្នុងមួយរយៈពេល ហើយដកចេញផ្លូវនិងរដូវបក្ស ដូចនេះធ្វើឲ្យពីរយៈពេលនោះមានមធ្យមថេរ។" [ក្រុមហ៊ុន Shixiong et al](https://arxiv.org/abs/1904.07632) + +## ARIMA នៅក្នុងបរិបទនៃឈុតពេលវេលា + +មកវិញពន្យល់ផ្នែករបស់ ARIMA ដើម្បីយល់បានល្អថាវាដូចម្តេចធ្វើឲ្យយើងសិក្សា និងបង្កើតការទាយទ្រង់ទ្រាយពេលវេលានិងជួយយើងបង្កើតការទាយ។ + +- **AR - សម្រាប់ AutoRegressive**។ ម៉ូដែល autoregressive ដូចឈ្មោះវា បង្ហាញពីការមើលត្រឡប់ក្រោយក្នុងពេលវេលា ដើម្បីវិភាគតម្លៃមុនៗក្នុងទិន្នន័យរបស់អ្នក និងធ្វើការសន្មត់អំពីវា។ តម្លៃមុនៗទាំងនេះហៅថា 'lags'។ ឧទាហរណ៍ គឺទិន្នន័យដែលបង្ហាញការលក់ខ្មៅខ្មៅប្រចាំខែ។ តម្លៃលក់គ្រប់ខែគឺជាផលបន្លាស់ការចល័តនៅក្នុងឈុតទិន្នន័យ។ ម៉ូដែលនេះត្រូវបានបង្កើតដោយការចងក្រង “ផ្លាស់បន្លាស់នៃអថេរដែលទាក់ទងជាមួយលើតម្លៃ lag មួយរបស់ខ្លួន។” [wikipedia](https://wikipedia.org/wiki/Autoregressive_integrated_moving_average) + +- **I - សម្រាប់ Integrated**។ ផ្ទុយពីម៉ូដែល ARMA ស្រដៀងគ្នា អង់គ្លេខាង I ក្នុង ARIMA សំដៅលើផ្នែក *[integrated](https://wikipedia.org/wiki/Order_of_integration)* របស់វា។ ទិន្នន័យត្រូវបាន 'integrated' នៅពេលដំណាក់កាល differencing ត្រូវបានអនុវត្តដើម្បីដកចេញ non-stationarity។ + +- **MA - សម្រាប់ Moving Average**។ ផ្នែក [moving-average](https://wikipedia.org/wiki/Moving-average_model) នៃម៉ូដែលនេះ បង្ហាញពីអថេរចេញដែលកំណត់ដោយការសង្កេតតម្លៃបច្ចុប្បន្ន និងមុនៗនៃ lag។ + +ព័ត៌មានសំខាន់៖ ARIMA ត្រូវបានប្រើសម្រាប់ធ្វើឲ្យម៉ូដែលសមស្របតាមទ្រង់ទ្រាយពេលវេលាពិសេសខ្ពស់បំផុត។ + +## លំហាត់ - បង្កើតម៉ូដែល ARIMA + +បើកថត [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/working) ក្នុងមេរៀននេះ ហើយស្វែងរកឯកសារ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/2-ARIMA/working/notebook.ipynb)។ + +1. ប្រតិបត្តិនៅក្នុង notebook ដើម្បីបញ្ចូលបណ្ណាល័យ Python `statsmodels`; អ្នកត្រូវការសម្រាប់ម៉ូដែល ARIMA។ + +1. បញ្ចូលបណ្ណាល័យដែលចាំបាច់ + +1. ឥឡូវនេះ បញ្ចូលបណ្ណាល័យផ្សេងៗទៀតដែលមានប្រយោជន៍សម្រាប់គូរទិន្នន័យ៖ + + ```python + import os + import warnings + import matplotlib.pyplot as plt + import numpy as np + import pandas as pd + import datetime as dt + import math + + from pandas.plotting import autocorrelation_plot + from statsmodels.tsa.statespace.sarimax import SARIMAX + from sklearn.preprocessing import MinMaxScaler + from common.utils import load_data, mape + from IPython.display import Image + + %matplotlib inline + pd.options.display.float_format = '{:,.2f}'.format + np.set_printoptions(precision=2) + warnings.filterwarnings("ignore") # កំណត់ឱ្យមិនយកចិត្តទុកដាក់សារ​ព្រមាន + ``` + +1. បញ្ចូលទិន្នន័យពីឯកសារ `/data/energy.csv` ទៅក្នុង Pandas dataframe ហើយមើលវា៖ + + ```python + energy = load_data('./data')[['load']] + energy.head(10) + ``` + +1. គូរទិន្នន័យថាមពលដែលមានចាប់ពីខែមករ ឆ្នាំ 2012 ដល់ខែធ្នូ ឆ្នាំ 2014។ គ្មានអ្វីផ្ទុយពីដែលយើងបានមើលក្នុងមេរៀនមុនទេ៖ + + ```python + energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12) + plt.xlabel('timestamp', fontsize=12) + plt.ylabel('load', fontsize=12) + plt.show() + ``` + + ឥឡូវ បង្កើតម៉ូដែលមួយ! + +### បង្កើតឈុតទិន្នន័យបណ្តុះបណ្តាល និងសាកល្បង + +ឥឡូវនេះទិន្នន័យរបស់អ្នកត្រូវបានបញ្ចូលហើយ ដូច្នេះអ្នកអាចបំបែកវាជាឈុតបណ្តុះបណ្តាល និងសាកល្បង។ អ្នកនឹងបណ្តុះម៉ូដែលលើឈុតបណ្តុះបណ្តាល។ ដូចជាស្ថិតិ អ្នកនឹងវាយតម្លៃភាពត្រឹមត្រូវរបស់វាជាមួយឈុតសាកល្បងបន្ទាប់ពីបណ្តុះបណ្តាលរួច។ អ្នកត្រូវប្រាកដថាឈុតសាកល្បងគ្របដណ្តប់រយៈពេលក្រោយពីឈុតបណ្តុះបណ្តាល ដើម្បីប្រាកដមិនឲ្យម៉ូដែលបានទទួលព័ត៌មានពីរយៈពេលអនាគត។ + +1. បែងចែករយៈពេលពីរ ខែពីថ្ងៃទី 1 ខែកញ្ញា ដល់ថ្ងៃទី 31 ខែតុលាឆ្នាំ 2014 ជាឈុតបណ្តុះបណ្តាល។ ឈុតសាកល្បងនឹងរួមបញ្ចូលរយៈពេលពីរខែពីថ្ងៃទី 1 ខែវិច្ឆិកា ដល់ថ្ងៃទី 31 ខែធ្នូ ឆ្នាំ 2014៖ + + ```python + train_start_dt = '2014-11-01 00:00:00' + test_start_dt = '2014-12-30 00:00:00' + ``` + + ពីព្រោះទិន្នន័យនេះបង្ហាញពីការប្រើប្រាស់ថាមពលរៀងរាល់ថ្ងៃ មានរូបមន្តរដូវកាលចម្រូងចម្រាស់ខ្លាំង ប៉ុន្តែការប្រើប្រាស់ស្រដៀងទៅនឹងថ្ងៃថ្មីៗជាង។ + +1. មើលភាពខុសគ្នា៖ + + ```python + energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \ + .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \ + .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12) + plt.xlabel('timestamp', fontsize=12) + plt.ylabel('load', fontsize=12) + plt.show() + ``` + + ![training and testing data](../../../../translated_images/km/train-test.8928d14e5b91fc94.webp) + + ដូច្នេះ ការប្រើបង្អួចពេលវេលាតូចសម្រាប់បណ្តុះបណ្តាលគឺគ្រប់គ្រាន់ហើយ។ + + > សម្គាល់៖ ពីព្រោះមុខងារដែលយើងប្រើសម្រាប់សមមូលម៉ូដែល ARIMA អនុវត្ត validation ក្នុងសំណុំទិន្នន័យលើកដំបូង (in-sample) ក្រោមការសមមូល យើងនឹងមិនប្រើទិន្នន័យ pour validation។ + +### រៀបចំទិន្នន័យសម្រាប់បណ្តុះបណ្តាល + +ឥឡូវនេះ អ្នកត្រូវរៀបចំទិន្នន័យសម្រាប់បណ្តុះបណ្តាលដោយអនុវត្តការត្រង់ និងការវាស់អណ្ដាតនៃទិន្នន័យ។ ត្រង់ឈុតទិន្នន័យរបស់អ្នកឲ្យរួមបញ្ចូលតែកាលបរិច្ឆេទ និងជួរឈរដែលអ្នកត្រូវការ ហើយវាស់អណ្ដាតដើម្បីធានាថាទិន្នន័យត្រូវបង្ហាញក្នុងចន្លោះពី 0,1។ + +1. ត្រង់ឈុតទិន្នន័យដើមរួមបញ្ចូលតែកាលបរិច្ឆេទ និងជួរឈរដែលបានលើកឡើងថា 'load': + + ```python + train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']] + test = energy.copy()[energy.index >= test_start_dt][['load']] + + print('Training data shape: ', train.shape) + print('Test data shape: ', test.shape) + ``` + + អ្នកអាចមើលទម្រង់ទិន្នន័យ៖ + + ```output + Training data shape: (1416, 1) + Test data shape: (48, 1) + ``` + +1. វាស់អណ្ដាតទិន្នន័យឲ្យមានចន្លោះ (0, 1)។ + + ```python + scaler = MinMaxScaler() + train['load'] = scaler.fit_transform(train) + train.head(10) + ``` + +1. មើលទិន្នន័យដើមប្រៀបធៀបនឹងទិន្នន័យដែលបានវាស់អណ្ដាត៖ + + ```python + energy[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']].rename(columns={'load':'original load'}).plot.hist(bins=100, fontsize=12) + train.rename(columns={'load':'scaled load'}).plot.hist(bins=100, fontsize=12) + plt.show() + ``` + + ![original](../../../../translated_images/km/original.b2b15efe0ce92b87.webp) + + > ទិន្នន័យដើម + + ![scaled](../../../../translated_images/km/scaled.e35258ca5cd3d43f.webp) + + > ទិន្នន័យដែលបានវាស់អណ្ដាត + +1. ឥឡូវនេះអ្នកបានកាលកម្មទិន្នន័យដែលបានវាស់អណ្ដាត អ្នកអាចវាស់អណ្ដាតទិន្នន័យសាកល្បងបាន៖ + + ```python + test['load'] = scaler.transform(test) + test.head() + ``` + +### អនុវត្ត ARIMA + +ពេលវេលាទស្សនា ARIMA! ឥឡូវនេះអ្នកត្រូវប្រើបណ្ណាល័យ `statsmodels` ដែលបានដំឡើងមុន។ + +ឥឡូវអ្នកត្រូវអនុវត្តជំហានខ្លះៗ៖ + + 1. កំណត់ម៉ូដែលដោយហៅ `SARIMAX()` ហើយបញ្ជូនប៉ារ៉ាម៉ែត្រ៖ p, d, និង q រួមទាំង P, D, និង Q ។ + 2. រៀបចំម៉ូដែលសម្រាប់ទិន្នន័យបណ្តុះបណ្តាលដោយហៅមុខងារ fit()។ + 3. ធ្វើការទាយដោយហៅមុខងារ `forecast()` និងបញ្ជាក់ចំនួនជំហាន (horizon) ដែលត្រូវទាយ។ + +> 🎓 ប៉ារ៉ាម៉ែត្រទាំងនេះមានអ្វីខ្លះ? នៅក្នុងម៉ូដែល ARIMA មានប៉ារ៉ាម៉ែត្រចំនួន 3 ដែលត្រូវបានប្រើក្នុងការសមមូលរឿងសំខាន់ៗក្នុងឈុតពេលវេលា៖ រដូវកាល, ផ្លូវ, និងសំឡេង។ ប៉ារ៉ាម៉ែត្រទាំងនេះគឺ៖ + +`p`: ប៉ារ៉ាម៉ែត្រភ្ជាប់សម្រាប់ផ្នែក autoregressive ដែលភ្ជាប់តម្លៃ *ពីមុន*។ +`d`: ប៉ារ៉ាម៉ែត្រភ្ជាប់សម្រាប់ផ្នែក integrated ដែលមានឥទ្ធិពលលើកម្រិតនៃ *differencing* (🎓 ចងចាំ differencing 👆?) ដែលអនុវត្តលើឈុតពេលវេលា។ +`q`: ប៉ារ៉ាម៉ែត្រភ្ជាប់សម្រាប់ផ្នែក moving-average ។ + +> សម្គាល់៖ ប្រសិនបើទិន្នន័យរបស់អ្នកមានលក្ខណៈរដូវកាល - ដែលនេះធ្វើ - យើងប្រើម៉ូដែល ARIMA រដូវ (SARIMA)។ ក្នុងករណីនេះ អ្នកត្រូវប្រើប៉ារ៉ាម៉ែត្រថ្មី P, D, និង Q ដែលសមនឹង p, d, និង q ប៉ុន្តែបង្ហាញលក្ខណៈរដូវកាល។ + +1. ចាប់ផ្តើមដោយកំណត់តម្លៃ horizon ដែលអ្នកចង់បាន។ មកសាកល្បង 3 ម៉ោង៖ + + ```python + # បញ្ជាក់ចំនួនជំហានសម្រាប់ទាយអនាគត + HORIZON = 3 + print('Forecasting horizon:', HORIZON, 'hours') + ``` + + ការជ្រើសរើសតម្លៃល្អសម្រាប់ប៉ារ៉ាម៉ែត្រ ARIMA អាចជាការលំបាក ព្រោះវាមានអារម្មណ៍ផ្ទាល់ខ្លួន និងចំណាយពេល។ អ្នកអាចពិចារណាដាក់បញ្ចូលមុខងារ `auto_arima()` ពីបណ្ណាល័យ [`pyramid`](https://alkaline-ml.com/pmdarima/0.9.0/modules/generated/pyramid.arima.auto_arima.html)។ + +1. សម្រាប់ពេលនេះ សាកល្បងជ្រើសរើសដោយដៃដើម្បីស្វែងរកម៉ូដែលល្អមួយ។ + + ```python + order = (4, 1, 0) + seasonal_order = (1, 1, 0, 24) + + model = SARIMAX(endog=train, order=order, seasonal_order=seasonal_order) + results = model.fit() + + print(results.summary()) + ``` + + តារាងលទ្ធផលត្រូវបានបោះពុម្ភ។ + +អ្នកបានបង្កើតម៉ូដែលដំបូងរបស់អ្នក! ឥឡូវនេះយើងត្រូវស្វែងរកវិធីវាយតម្លៃវា។ + +### វាយតម្លៃម៉ូដែលរបស់អ្នក + +ដើម្បីវាយតម្លៃម៉ូដែលរបស់អ្នក អ្នកអាចអនុវត្ត `walk forward` validation។ ក្នុងការអនុវត្តពិតប្រាកដ ម៉ូដែលពេលវេលាត្រូវបណ្តុះបណ្តាលឡើងវិញរៀងរាល់ពេលមានទិន្នន័យថ្មី។ វាធ្វើឲ្យម៉ូដែលអាចបង្កើតការទាយបានល្អបំផុតនៅក្នុងជំហានពេលវេលា។ + +ចាប់ផ្តើមពីដើមឈុតពេលវេលា ដោយប្រើវិធីនេះ បណ្តុះម៉ូដែលលើឈុតទិន្នន័យបណ្តុះបណ្តាល។ បន្ទាប់មកធ្វើការទាយនៅជំហានបន្ទាប់។ ការទាយត្រូវបានវាយតម្លៃបង្កប់តាមតម្លៃពិត។ ឈុតបណ្តុះបណ្តាលបន្តពង្រីករួមបញ្ចូលតម្លៃពិត ហើយដំណើរការនេះត្រូវបានធ្វើឡើងម្តងទៀត។ + +> សម្គាល់៖ អ្នកគួរតែរក្សាបង្អួចឈុតបណ្តុះបណ្តាលនៅមិនប្ដូរដើម្បីបណ្តុះបណ្តាលមានប្រសិទ្ធភាពខ្ពស់ជាង ដូច្នេះរៀងរាល់ពេលអ្នកបន្ថែមការសង្កេតថ្មីចូលទៅ គួរយកការសង្កេតចាស់ចេញពីដើមឈុត។ + +ដំណើរការនេះផ្តល់នូវការប៉ាន់ប្រមាណរឹងមាំថាម៉ូដែលនឹងដំណើរការ ដោយមានការចំណាយកំណត់ចំពោះបុព្វជំនាញ។ វាជាការទទួលយកបាន ប្រសិនបើទិន្នន័យតូច ឬម៉ូដែលសាមញ្ញ ប៉ុន្តាអាចជាបញ្ហាសម្រាប់ទិន្នន័យធំ។ + +Walk-forward validation គឺជាមាត្រដ្ឋានមាសសម្រាប់ការវាយតម្លៃម៉ូដែលពេលវេលា ហើយត្រូវបានណែនាំសម្រាប់គម្រោងផ្ទាល់ខ្លួនរបស់អ្នក។ + +1. ជាលើកដំបូង បង្កើតចំណុចទិន្នន័យសាកល្បងសម្រាប់រាល់ជំហាន HORIZON។ + + ```python + test_shifted = test.copy() + + for t in range(1, HORIZON+1): + test_shifted['load+'+str(t)] = test_shifted['load'].shift(-t, freq='H') + + test_shifted = test_shifted.dropna(how='any') + test_shifted.head(5) + ``` + + | | | load | load+1 | load+2 | + | ---------- | -------- | ---- | ------ | ------ | + | 2014-12-30 | 00:00:00 | 0.33 | 0.29 | 0.27 | + | 2014-12-30 | 01:00:00 | 0.29 | 0.27 | 0.27 | + | 2014-12-30 | 02:00:00 | 0.27 | 0.27 | 0.30 | + | 2014-12-30 | 03:00:00 | 0.27 | 0.30 | 0.41 | + | 2014-12-30 | 04:00:00 | 0.30 | 0.41 | 0.57 | + + ទិន្នន័យត្រូវបានបញ្ជូនទៅផ្នែកកូស៊ីនេតិចតាមចំនុច horizon។ + +1. ធ្វើការទាយលើទិន្នន័យសាកល្បង ប مستخدمវិធីស៊ីលីងវីនដូក្នុងរង្វង់ដែលមានប្រវែងស្មើនឹងប្រវែងទិន្នន័យសាកល្បង៖ + + ```python + %%time + training_window = 720 # អញ្ជើញចំណាយពេល ៣០ ថ្ងៃ (៧២០ ម៉ោង) សម្រាប់ការបណ្តុះបណ្តាល + + train_ts = train['load'] + test_ts = test_shifted + + history = [x for x in train_ts] + history = history[(-training_window):] + + predictions = list() + + order = (2, 1, 0) + seasonal_order = (1, 1, 0, 24) + + for t in range(test_ts.shape[0]): + model = SARIMAX(endog=history, order=order, seasonal_order=seasonal_order) + model_fit = model.fit() + yhat = model_fit.forecast(steps = HORIZON) + predictions.append(yhat) + obs = list(test_ts.iloc[t]) + # ផ្លាស់ទីបង្អួចបណ្តុះបណ្តាល + history.append(obs[0]) + history.pop(0) + print(test_ts.index[t]) + print(t+1, ': predicted =', yhat, 'expected =', obs) + ``` + + អ្នកអាចមើលការបណ្តុះបណ្តាលកំពុងធ្វើការ៖ + + ```output + 2014-12-30 00:00:00 + 1 : predicted = [0.32 0.29 0.28] expected = [0.32945389435989236, 0.2900626678603402, 0.2739480752014323] + + 2014-12-30 01:00:00 + 2 : predicted = [0.3 0.29 0.3 ] expected = [0.2900626678603402, 0.2739480752014323, 0.26812891674127126] + + 2014-12-30 02:00:00 + 3 : predicted = [0.27 0.28 0.32] expected = [0.2739480752014323, 0.26812891674127126, 0.3025962399283795] + ``` + +1. ប្រៀបធៀបការទាយនឹងតម្លៃពិត៖ + + ```python + eval_df = pd.DataFrame(predictions, columns=['t+'+str(t) for t in range(1, HORIZON+1)]) + eval_df['timestamp'] = test.index[0:len(test.index)-HORIZON+1] + eval_df = pd.melt(eval_df, id_vars='timestamp', value_name='prediction', var_name='h') + eval_df['actual'] = np.array(np.transpose(test_ts)).ravel() + eval_df[['prediction', 'actual']] = scaler.inverse_transform(eval_df[['prediction', 'actual']]) + eval_df.head() + ``` + + លទ្ធផល + | | | timestamp | h | prediction | actual | + | --- | ---------- | --------- | --- | ---------- | -------- | + | 0 | 2014-12-30 | 00:00:00 | t+1 | 3,008.74 | 3,023.00 | + | 1 | 2014-12-30 | 01:00:00 | t+1 | 2,955.53 | 2,935.00 | + | 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 | + + + សង្កេតការទាយទិន្នន័យរោងម៉ោង ប្រៀបធៀបនឹងភារកិច្ចពិត។ ត្រឹមត្រូវប៉ុន្មាន? + +### ពិនិត្យភាពត្រឹមត្រូវម៉ូដែល + +ពិនិត្យភាពត្រឹមត្រូវរបស់ម៉ូដែលដោយវាស់ mean absolute percentage error (MAPE) លើការទាយទាំងអស់។ + +> **🧮 បង្ហាញគណិតវិទ្យា** +> +> ![MAPE](../../../../translated_images/km/mape.fd87bbaf4d346846.webp) +> +> [MAPE](https://www.linkedin.com/pulse/what-mape-mad-msd-time-series-allameh-statistics/) ត្រូវបានប្រើសម្រាប់បង្ហាញភាពត្រឹមត្រូវនៃការទាយជាគំនូសដែលកំណត់តាមរូបមន្តខាងលើ។ បម្រែបម្រួលរវាង actualt និង predictedt ត្រូវបានបែងចែកដោយ actualt។ "តម្លៃ absolute នៃការគណនានេះត្រូវបានបូកសម្រាប់រាល់ចំណុចដែលបានទាយ ហើយចែកតាមចំនួនចំណុច fitted n។" [wikipedia](https://wikipedia.org/wiki/Mean_absolute_percentage_error) +1. Express equation in code: + + ```python + if(HORIZON > 1): + eval_df['APE'] = (eval_df['prediction'] - eval_df['actual']).abs() / eval_df['actual'] + print(eval_df.groupby('h')['APE'].mean()) + ``` + +1. Calculate one step's MAPE: + + ```python + print('One step forecast MAPE: ', (mape(eval_df[eval_df['h'] == 't+1']['prediction'], eval_df[eval_df['h'] == 't+1']['actual']))*100, '%') + ``` + + One step forecast MAPE: 0.5570581332313952 % + +1. Print the multi-step forecast MAPE: + + ```python + print('Multi-step forecast MAPE: ', mape(eval_df['prediction'], eval_df['actual'])*100, '%') + ``` + + ```output + Multi-step forecast MAPE: 1.1460048657704118 % + ``` + + A nice low number is best: consider that a forecast that has a MAPE of 10 is off by 10%. + +1. But as always, it's easier to see this kind of accuracy measurement visually, so let's plot it: + + ```python + if(HORIZON == 1): + ## គូសគំនូសការព្យាករណ៍ជំហានតែមួយ + eval_df.plot(x='timestamp', y=['actual', 'prediction'], style=['r', 'b'], figsize=(15, 8)) + + else: + ## គូសគំនូសការព្យាករណ៍ជាច្រើនជំហាន + plot_df = eval_df[(eval_df.h=='t+1')][['timestamp', 'actual']] + for t in range(1, HORIZON+1): + plot_df['t+'+str(t)] = eval_df[(eval_df.h=='t+'+str(t))]['prediction'].values + + fig = plt.figure(figsize=(15, 8)) + ax = plt.plot(plot_df['timestamp'], plot_df['actual'], color='red', linewidth=4.0) + ax = fig.add_subplot(111) + for t in range(1, HORIZON+1): + x = plot_df['timestamp'][(t-1):] + y = plot_df['t+'+str(t)][0:len(x)] + ax.plot(x, y, color='blue', linewidth=4*math.pow(.9,t), alpha=math.pow(0.8,t)) + + ax.legend(loc='best') + + plt.xlabel('timestamp', fontsize=12) + plt.ylabel('load', fontsize=12) + plt.show() + ``` + + ![a time series model](../../../../translated_images/km/accuracy.2c47fe1bf15f44b3.webp) + +🏆 គំនូសតាងល្អណាស់ បង្ហាញពីម៉ូដែលដែលមានភាពត្រឹមត្រូវល្អ។ អបអរសាទរ! + +--- + +## 🚀ការប្រឈម + +រំលឹកចូលទៅក្នុងវិធីសាស្រ្តសាកល្បងភាពត្រឹមត្រូវរបស់ម៉ូដែលរយៈពេលតារាង។ យើងបានប៉ះពាល់លើ MAPE នៅមេរៀននេះ ប៉ុន្តែមានវិធីផ្សេងទៀតដែលអ្នកអាចប្រើបានទេ? សូមស្រាវជ្រាវហើយបញ្ចូលសម្គាល់របស់អ្នក។ ឯកសារដែលមានប្រយោជន៍អាចរកបាន [នៅទីនេះ](https://otexts.com/fpp2/accuracy.html) + +## [ប្រឡងបន្ទាប់មកបន្ទាប់មក](https://ff-quizzes.netlify.app/en/ml/) + +## ការពិនិត្យឡើងវិញ & ការសិក្សាឯកឡើងវិញ + +មេរៀននេះប៉ះពាល់លើគោលការណ៍មូលដ្ឋាននៃការព្យាករណ៍រយៈពេលតារាងជាមួយ ARIMA។ សូមចំណាយពេលបន្ថែមដើម្បីជ្រាបច្បាស់ជាងនេះដោយរុករក [ឃ្លាំងនេះ](https://microsoft.github.io/forecasting/) និងប្រភេទម៉ូដែលផ្សេងៗរបស់វាទៅសិក្សាវិធីផ្សេងទៀតក្នុងការសាងសង់ម៉ូដែលរយៈពេលតារាង។ + +## ការងារ + +[ម៉ូដែល ARIMA ថ្មី](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំស្តាប់សំរាប់ភាពត្រឹមត្រូវ សូមអនុញ្ញាតឱ្យដឹងថាការបកប្រែដោយស្វ័យឆ្លាតអាចមានកំហុសឬការបាត់បង់ព័ត៌មានខ្លះ។ ឯកសារដើមដែលជា​ភាសានាទីកំណត់គួរត្រូវបានគេពិចារណាជា ប្រភពដើមត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានដែលមានសារៈសំខាន់ ការបកប្រែដោយអ្នកជំនាញផ្នែកមនុស្សគឺត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុស ពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/2-ARIMA/assignment.md b/translations/km/7-TimeSeries/2-ARIMA/assignment.md new file mode 100644 index 000000000..f6ba1fdc6 --- /dev/null +++ b/translations/km/7-TimeSeries/2-ARIMA/assignment.md @@ -0,0 +1,17 @@ +# ម៉ូឌែល ARIMA ថ្មី + +## សេចក្ដីណែនាំ + +ឥឡូវនេះដែលអ្នកបានសាងសង់ម៉ូឌែល ARIMA មួយហើយ សូមសាងសង់ម៉ូឌែលថ្មីមួយជាមួយទិន្នន័យថ្មី (សាកល្បងមួយក្នុងចំណោម [សំណុំទិន្នន័យទាំងនេះពី Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html))។ សូមបញ្ជាក់កិច្ចការរបស់អ្នកក្នុងសៀវភៅកំណត់ត្រា បង្ហាញទិន្នន័យ និងម៉ូឌែលរបស់អ្នក ហើយធ្វើតេស្តភាពត្រឹមត្រូវរបស់វាប្រើ MAPE។ +## សេចក្ដីវាយតម្លៃ + +| មាតិកា | ល្អឧត្តម | ល្អគ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | ------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | ----------------------------------- | +| | សៀវភៅកំណត់ត្រាត្រូវបានបង្ហាញជាមួយម៉ូឌែល ARIMA ថ្មីបានសាងសង់ តេស្ត និងពន្យល់ជាមួយការបង្ហាញច្បាស់ និងការបញ្ជាក់ភាពត្រឹមត្រូវ។ | សៀវភៅកំណត់ត្រាដែលបានបង្ហាញមិនទាន់បានបញ្ជាក់ឬមានកំហុស | សៀវភៅកំណត់ត្រាជាសំណុំមិនសំបូរមានត្រូវបានបង្ហាញ | + +--- + + +**ការដកស្រង់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមប្រាកដថាបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវបានចងក្រង។ ឯកសារដើមក្នុងភាសាដើមគួរត្រូវបានគេទទួលស្គាល់ថាជាមេដៅដ៏ច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ គួរតែប្រើប្រាស់ការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសឆ្គងណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/2-ARIMA/solution/Julia/README.md b/translations/km/7-TimeSeries/2-ARIMA/solution/Julia/README.md new file mode 100644 index 000000000..ac4ba272e --- /dev/null +++ b/translations/km/7-TimeSeries/2-ARIMA/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងតាំងបណ្តោះអាសន្ន + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំធ្វើឲ្យមានភាពត្រឹមត្រូវ សូមដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានក្នុងភាសាដើមគួរត្រូវបានចាត់ទុកជាឯកសារដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្តល់អាទិភាព។ យើងមិនពាក់ព័ន្ធចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/2-ARIMA/solution/R/README.md b/translations/km/7-TimeSeries/2-ARIMA/solution/R/README.md new file mode 100644 index 000000000..e722bd15d --- /dev/null +++ b/translations/km/7-TimeSeries/2-ARIMA/solution/R/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងកំណត់បណ្តោះអាសន្ន + +--- + + +**ការព្រមាន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំឲ្យបានភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លួនវាអាចមានកំហុស ឬការមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមជាភាសាដើម ត្រូវបានគិតថាជាឧទាហរណ៍ដែលមានអំណាចសម្រាប់យោង។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងអញ្ជើញណែនាំឲ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការកំហុសសំរាប់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/2-ARIMA/solution/notebook.ipynb b/translations/km/7-TimeSeries/2-ARIMA/solution/notebook.ipynb new file mode 100644 index 000000000..2bf0ef3d3 --- /dev/null +++ b/translations/km/7-TimeSeries/2-ARIMA/solution/notebook.ipynb @@ -0,0 +1,1096 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# ការព្យាករណ៍ខ្សែកាលជាមួយ ARIMA\n", + "\n", + "ក្នុងកំណត់ត្រានេះ យើងបង្ហាញពីរបៀបៈ\n", + "- រៀបចំទិន្នន័យខ្សែកាលសម្រាប់ហ្វឹកហាត់ម៉ូដែលព្យាករណ៍ខ្សែកាល ARIMA\n", + "- អនុវត្តម៉ូដែល ARIMA សាមញ្ញ ដើម្បីព្យាករណ៍ជំហាន HORIZON បន្ទាប់មុខ (ពេលវេលា *t+1* រហូតដល់ *t+HORIZON*) ក្នុងខ្សែកាល\n", + "- វាយតម្លៃម៉ូដែល\n", + "\n", + "\n", + "ទិន្នន័យនៅក្នុងឧទាហរណ៍នេះត្រូវបានយកពីការប្រកួតព្យាករណ៍ GEFCom20141។ វาประกอบដោយទិន្នន័យបន្ទាត់ផ្ទុកអគ្គិសនីនិងតម្លៃសីតុណ្ហភាពជាដំណាក់ម៉ោងរយៈពេល 3 ឆ្នាំចន្លោះឆ្នាំ 2012 ដល់ 2014។ បេសកកម្មគឺព្យាករណ៍តម្លៃផ្ទុកអគ្គិសនីអនាគត។ នៅក្នុងឧទាហរណ៍នេះ យើងបង្ហាញពីរបៀបព្យាករណ៍ជំហានពេលវេលាតែមួយ ដោយប្រើទិន្នន័យផ្ទុកប្រវត្តិកាលតែប៉ុណ្ណោះ។\n", + "\n", + "1Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli and Rob J. Hyndman, \"Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond\", International Journal of Forecasting, vol.32, no.3, pp 896-913, July-September, 2016.\n" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## Install Dependencies\n", + "ចាប់ផ្តើមដោយត្រូវតែដំឡើងពីរបៀបចាំបាច់ខ្លះៗ។ បណ្ណាល័យទាំងនេះជាមួយនឹងកំណែដែលពាក់ព័ន្ធភាគច្រើនត្រូវបានដឹងថាធ្វើបានសម្រាប់ដំណោះស្រាយ៖\n", + "\n", + "* `statsmodels == 0.12.2`\n", + "* `matplotlib == 3.4.2`\n", + "* `scikit-learn == 0.24.2`\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 16, + "source": [ + "!pip install statsmodels" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "/bin/sh: pip: command not found\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 17, + "source": [ + "import os\n", + "import warnings\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import datetime as dt\n", + "import math\n", + "\n", + "from pandas.plotting import autocorrelation_plot\n", + "from statsmodels.tsa.statespace.sarimax import SARIMAX\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "from common.utils import load_data, mape\n", + "from IPython.display import Image\n", + "\n", + "%matplotlib inline\n", + "pd.options.display.float_format = '{:,.2f}'.format\n", + "np.set_printoptions(precision=2)\n", + "warnings.filterwarnings(\"ignore\") # specify to ignore warning messages\n" + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 18, + "source": [ + "energy = load_data('./data')[['load']]\n", + "energy.head(10)" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
load
2012-01-01 00:00:002,698.00
2012-01-01 01:00:002,558.00
2012-01-01 02:00:002,444.00
2012-01-01 03:00:002,402.00
2012-01-01 04:00:002,403.00
2012-01-01 05:00:002,453.00
2012-01-01 06:00:002,560.00
2012-01-01 07:00:002,719.00
2012-01-01 08:00:002,916.00
2012-01-01 09:00:003,105.00
\n", + "
" + ], + "text/plain": [ + " load\n", + "2012-01-01 00:00:00 2,698.00\n", + "2012-01-01 01:00:00 2,558.00\n", + "2012-01-01 02:00:00 2,444.00\n", + "2012-01-01 03:00:00 2,402.00\n", + "2012-01-01 04:00:00 2,403.00\n", + "2012-01-01 05:00:00 2,453.00\n", + "2012-01-01 06:00:00 2,560.00\n", + "2012-01-01 07:00:00 2,719.00\n", + "2012-01-01 08:00:00 2,916.00\n", + "2012-01-01 09:00:00 3,105.00" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "គូសតុបត្រទិន្នន័យបន្ទុកដែលមានទាំងអស់ (មករា 2012 ដល់ធ្នូ 2014)\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 19, + "source": [ + "energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)\n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## បង្កើតសំណុំទិន្នន័យហ្វឹកហាត់ និងសំណុំទិន្នន័យសាកល្បង\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 20, + "source": [ + "train_start_dt = '2014-11-01 00:00:00'\n", + "test_start_dt = '2014-12-30 00:00:00' " + ], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 21, + "source": [ + "energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \\\n", + " .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \\\n", + " .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)\n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 22, + "source": [ + "train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]\n", + "test = energy.copy()[energy.index >= test_start_dt][['load']]\n", + "\n", + "print('Training data shape: ', train.shape)\n", + "print('Test data shape: ', test.shape)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Training data shape: (1416, 1)\n", + "Test data shape: (48, 1)\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 23, + "source": [ + "scaler = MinMaxScaler()\n", + "train['load'] = scaler.fit_transform(train)\n", + "train.head(10)" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
load
2014-11-01 00:00:000.10
2014-11-01 01:00:000.07
2014-11-01 02:00:000.05
2014-11-01 03:00:000.04
2014-11-01 04:00:000.06
2014-11-01 05:00:000.10
2014-11-01 06:00:000.19
2014-11-01 07:00:000.31
2014-11-01 08:00:000.40
2014-11-01 09:00:000.48
\n", + "
" + ], + "text/plain": [ + " load\n", + "2014-11-01 00:00:00 0.10\n", + "2014-11-01 01:00:00 0.07\n", + "2014-11-01 02:00:00 0.05\n", + "2014-11-01 03:00:00 0.04\n", + "2014-11-01 04:00:00 0.06\n", + "2014-11-01 05:00:00 0.10\n", + "2014-11-01 06:00:00 0.19\n", + "2014-11-01 07:00:00 0.31\n", + "2014-11-01 08:00:00 0.40\n", + "2014-11-01 09:00:00 0.48" + ] + }, + "metadata": {}, + "execution_count": 23 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "ទិន្នន័យដើមប្រៀបធៀបនឹងទិន្នន័យដែលបានបម្លែងមាត្រា៖\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 24, + "source": [ + "energy[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']].rename(columns={'load':'original load'}).plot.hist(bins=100, fontsize=12)\n", + "train.rename(columns={'load':'scaled load'}).plot.hist(bins=100, fontsize=12)\n", + "plt.show()" + ], + "outputs": [ + { + "output_type": "display_data", + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAD7CAYAAACMlyg3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAaCklEQVR4nO3de5RV5Znn8e+PSyjlIhEK1GBZagJeQBQL7ehSM9EWO2omhjjRqOOltaIOsTNZzdLJ0oTYtunOmpl0JEokbTAg2iRpcKKxXYKXVmNPQsE0ERQ0LsHQogIJSCF3n/ljn9JjUUXtU5x9Tp3av89aZ8m+nf285+B5ePfz7ncrIjAzs3zqU+0AzMysepwEzMxyzEnAzCzHnATMzHLMScDMLMf6VTuAUgwfPjwaGxurHYaZWU1ZsmTJhoio72hbTSWBxsZGWlpaqh2GmVlNkbSms22+HGRmlmNOAmZmOeYkYGaWYzVVEzCz2rJr1y7Wrl3L9u3bqx1KLtTV1TFq1Cj69++f+hgnATPLzNq1axk8eDCNjY1IqnY4vVpEsHHjRtauXcuRRx6Z+jhfDjKzzGzfvp1hw4Y5AVSAJIYNG1Zyr8tJwMwy5QRQOd35rJ0EzMxyzDUBM6uYxlt+Vdb3W/1355f1/To8x+rVXHDBBSxfvjz1MVdddRUXXHABX/rSl1Ktr0RMnXESMMuB4h/fSvxwWu3w5SAz67W2bt3K+eefz/jx4xk7dizz5s0DYPHixZx22mmMHz+eU045hS1btrB69WrOOOMMJkyYwIQJE3jhhRf2er89e/YwdepUJk6cyAknnMC9994LJCNzpkyZwpgxYzjnnHN45513uoztySef5KSTTmLcuHFcc8017NixA4Dbb7+diRMnMnbsWJqbm2l7+uOSJUsYP34848eP5+677y7XR1SZJCDpU5K2S3qgaN1XJK2RtFXSw5IOrkQsZpYfjz/+OIcddhjLli1j+fLlnHfeeezcuZMvf/nL/OAHP2DZsmUsWrSIAw44gBEjRrBw4UKWLl3KvHnzuOmmm/Z6v/vuu4+DDjqIxYsXs3jxYn784x/z+uuvs2DBAlatWsVLL73E7NmzO0wgxbZv385VV13FvHnzePHFF9m9ezczZswAYMqUKSxevJjly5ezbds2Hn30UQCuvvpqpk+fzrJly8r6GVWqJ3A3sLhtQdLxwL3AFcBI4D3gngrFYmY5MW7cOBYuXMjNN9/Mc889x0EHHcSqVas49NBDmThxIgBDhgyhX79+7Nq1i+uuu45x48Zx8cUX89JLL+31fk888QSzZ8/mxBNP5NRTT2Xjxo28+uqrPPvss1x66aX07duXww47jM9+9rP7jGvVqlUceeSRjB49GoArr7ySZ599FoCnn36aU089lXHjxvHUU0+xYsUKNm3axKZNmzjzzDMBuOKKK8r2GWVeE5B0CbAJeAH4ZGH1ZcAjEfFsYZ/bgJclDY6ILVnHZGb5MHr0aJYuXcpjjz3Grbfeytlnn81FF13U4b7f//73GTlyJMuWLeP999+nrq5ur30igunTpzNp0qSPrH/sscfKEu/27du58cYbaWlp4fDDD2fatGmZ322daU9A0hDgduAb7TYdD3zQp4mI14CdwOgO3qNZUouklvXr12cZrlnuNN7yqw9evdGbb77JgQceyOWXX87UqVNZunQpY8aMYd26dSxenFyc2LJlC7t372bz5s0ceuih9OnThzlz5rBnz5693m/SpEnMmDGDXbt2AfDKK6+wdetWzjzzTObNm8eePXtYt24dTz/99D7jGjNmDKtXr+b3v/89AHPmzOGss8764Ad/+PDhtLa28otf/AKAoUOHMnToUJ5//nkA5s6dW54PiOx7An8D3BcRa9vdxDAI2Nxu383A4PZvEBEzgZkATU1NkVGcZlYBlR6Z9OKLLzJ16lT69OlD//79mTFjBh/72MeYN28eX/va19i2bRsHHHAAixYt4sYbb2Ty5MnMnj2b8847j4EDB+71ftdeey2rV69mwoQJRAT19fU8/PDDXHTRRTz11FMcd9xxNDQ08OlPf3qfcdXV1TFr1iwuvvhidu/ezcSJE7n++usZMGAA1113HWPHjuWQQw754JIVwKxZs7jmmmuQxLnnnlu2z0htledyk3QiMBc4KSJ2SpoGfDIiLpf0f4BfR8T3ivbfAnwmIpZ09p5NTU3hh8qYla6zIaJZDx19+eWXOfbYY8v+vta5jj5zSUsioqmj/bPsCXwGaATeKPQCBgF9JR0HPA6MLwrwKGAA8EqG8ZiZWTtZJoGZwD8VLf81SVK4ARgB/JukM4ClJHWD+S4Km5lVVmZJICLeIxn6CYCkVmB7RKwH1ku6nuRy0TBgEXB1VrGYWfVEhCeRq5DuXN6v2LQRETGt3fKDwIOVOr+ZVV5dXR0bN270dNIV0PY8gY6Gtu6L5w4ys8yMGjWKtWvX4uHdldH2ZLFSOAmYWWb69+9f0lOurPI8gZyZWY45CZiZ5ZiTgJlZjjkJmJnlmJOAmVmOOQmYmeWYk4CZWY45CZiZ5ZiTgJlZjjkJmJnlmJOAmVmOee4gsx4g6yd8mXXGPQEzsxzLNAlIekDSOknvSnpF0rWF9Y2SQlJr0eu2LGMxM7O9ZX056LvAX0bEDknHAM9I+n/AxsL2oRGxO+MYzMysE5n2BCJiRUTsaFssvI7O8pxmZpZe5jUBSfdIeg9YCawDHivavEbSWkmzJA3v5PhmSS2SWvx0IjOz8so8CUTEjcBg4AxgPrAD2ABMBI4ATi5sn9vJ8TMjoikimurr67MO18wsVyoyOigi9kTE88Ao4IaIaI2IlojYHRFvA1OAcyUNrkQ8ZmaWqPQQ0X50XBOIwn89ZNXMrIIy+9GVNELSJZIGSeoraRJwKfCkpFMljZHUR9Iw4C7gmYjYnFU8Zma2tyyHiAZwA/AjkmSzBvh6RPxS0qXAncAI4F1gIUmCMLMeoPgOZvBdzL1ZZkkgItYDZ3Wy7SHgoazObWZm6fgavJlZjjkJmJnlmJOAmVmOeSppM+uSp7ruvdwTMDPLMScBM7MccxIwM8sxJwEzsxxzYdgsYy6qWk/mnoCZWY45CZiZ5ZiTgJlZjjkJmJnlmJOAmVmOOQmYmeVYpklA0gOS1kl6V9Irkq4t2na2pJWS3pP0tKQjsozFzMz2lnVP4LtAY0QMAT4P3CHpZEnDgfnAbcDBQAswL+NYzMysnUxvFouIFcWLhdfRwMnAioj4OYCkacAGScdExMosYzIzsw9lXhOQdI+k94CVwDrgMeB4YFnbPhGxFXitsL798c2SWiS1rF+/PutwzcxyJfMkEBE3AoOBM0guAe0ABgGb2+26ubBf++NnRkRTRDTV19dnHa6ZWa5UZHRQROyJiOeBUcANQCswpN1uQ4AtlYjHzMwSlR4i2o+kJrACGN+2UtLAovVmZlYhmSUBSSMkXSJpkKS+kiYBlwJPAguAsZImS6oDvgX8zkVhM7PKynJ0UJBc+vkRSbJZA3w9In4JIGky8EPgAeA3wCUZxmLWI2Q9rbSnrbZSZZYEImI9cNY+ti8Cjsnq/GZm1jVPG2FmlmNOAmZmOeYkYGaWY37GsFkP4+KuVZJ7AmZmOeYkYGaWY04CZmY55iRgZpZjLgybWUlcuO5d3BMwM8sxJwEzsxxzEjAzy7FUSUDSuKwDMTOzyktbGL5H0gDgfmBuRLR/NKSZZcBFWMtaqp5ARJwBXAYcDiyR9KCkP880MjMzy1zqmkBEvArcCtxM8pyAuyStlPTFjvaXNEDSfZLWSNoi6d8l/UVhW6OkkNRa9LqtHA0yM7P0Ul0OknQCcDVwPrAQuDAilko6DPg3YH4n7/0HkoTxBvA54Gft6gtDI2L3fsRvZmb7IW1NYDrwj8A3I2Jb28qIeFPSrR0dEBFbgWlFqx6V9DpwMrCke+GamVk5pU0C5wPbImIPgKQ+QF1EvBcRc9K8gaSRwGhgRdHqNZKCpHcxNSI2pA/dzMz2V9oksAg4B2gtLB8IPAGcluZgSf2BucBPI2KlpEHARODfgWHA3YXtkzo4thloBmhoaEgZbr54BEm+FX//+7N/qe9jvUPawnBdRLQlAAp/PjDNgYVewxxgJzCl7fiIaImI3RHxdmH9uZIGtz8+ImZGRFNENNXX16cM18zM0kibBLZKmtC2IOlkYNs+9m/bT8B9wEhgckTs6mTXKDEeMzMrg7SXg74O/FzSm4CAQ4AvpzhuBnAscE5xQVnSqcAm4FXg48BdwDO+Cc3MrLJSJYGIWCzpGGBMYdWqffyrHgBJRwBfBXYAbyWdAiisex+4ExgBvEtSGL605OjNzGy/lPI8gYlAY+GYCZKIiNmd7RwRa0h6DZ15qIRzm/U6WRdiXei1NNLeLDYHOJpkNM+ewuoAOk0CZmbW86XtCTQBx0VEdLmnmZnVjLSjcZaTFIPNzKwXSdsTGA68JOm3JIVeACLi85lEZWZmFZE2CUzLMoi88p2+tcPflfVWaYeI/mthyOenImKRpAOBvtmGZmZmWUv7eMnrgF8A9xZWfQJ4OKugzMysMtIWhv8bcDrJjV1tD5gZkVVQZmZWGWmTwI6I2Nm2IKkfH873Y2ZmNSptYfhfJX0TOKDwbOEbgUeyC8vKwcXM6vHdulYr0vYEbgHWAy+SzP3zGMnzhs3MrIalHR30PvDjwsvMzHqJtHMHvU4HNYCIOKrsEZmZWcWUMndQmzrgYuDg8odjZmaVlPZy0MZ2q/5B0hLgW+UPyaz8ylkkd8G9Y/5calPay0ETihb7kPQMSnkWgZmZ9UBpf8j/V9GfdwOrgf+yrwMkDQDuAc4huXT0GvA/IuJfCtvPBu4GGoDfAFcVHkRjZmYVkvZy0H/q5nv/ATgLeAP4HPAzSeOAVmA+cC3J/QZ/A8wD/qwb5zEzs25KeznoG/vaHhH/u4N1W/no7KOPFkYZnQwMA1ZExM8L7z8N2CDpmIhYmS50MzPbX6WMDpoI/LKwfCHwW+DVtCeSNBIYDawAbgCWtW2LiK2SXgOOB1a2O64ZaAZoaGhIezqrkLwXA/Pefqt9aZPAKGBCRGyBD/7l/quIuDzNwZL6A3OBn0bESkmDSO5ALrYZGNz+2IiYCcwEaGpq8nxFZmZllHbaiJHAzqLlnYV1XZLUB5hTOGZKYXUrMKTdrkOALSnjMTOzMkjbE5gN/FbSgsLyF4CfdnWQJAH3kSSMz0XErsKmFcCVRfsNBI4urDczswpJ1ROIiL8Frgb+VHhdHRF3pjh0BnAscGFEbCtavwAYK2mypDqSm85+56KwmVlllXLD14HAuxExS1K9pCMj4vXOdi48jvKrJA+mfyvpFADw1YiYK2ky8EPgAZL7BC7pVgvMrGo8ZXbtSztE9NskI4TGALOA/iQ/3qd3dkzhxi/tY/si4JhSgjUzs/JKWxi+CPg8sBUgIt6kg5E8ZmZWW9ImgZ0RERSmky4Ucs3MrMalTQI/k3QvMFTSdcAi/IAZM7Oal3buoP9ZeLbwuyR1gW9FxMJMI7Oa5jtpy8+fqWWhyyQgqS+wqDCJnH/4zcx6kS4vB0XEHuB9SQdVIB4zM6ugtPcJtAIvSlpIYYQQQETclElUZmZWEWmTwPzCy8zMepF9JgFJDRHxRkR0OU+Q7R8X/awUvlPXyqWrmsDDbX+Q9M8Zx2JmZhXWVRIonvbhqCwDMTOzyusqCUQnfzYzs16gq8LweEnvkvQIDij8mcJyRET7B8OYmVkN2WcSiIi+lQrEKquzwmJxUTrNPj3Z/hZPSz3exVqrRWnnDjIzs14o0yQgaYqkFkk7JN1ftL5RUkhqLXrdlmUsZma2t1KeLNYdbwJ3AJOAAzrYPjQidmccg5mZdSLTJBAR8wEkNQGjsjyXmZmVLuueQFfWSAqS2UmnRsSG9jtIagaaARoaGiocXnWkKTDWSnHW8qnUO+B9x3z1VKswvAGYCBwBnEzyqMq5He0YETMjoikimurr6ysYoplZ71eVnkBEtAIthcW3JU0B1kkaHBFbqhGTmVke9ZQhom13I/eUeMzMciHTnoCkfoVz9AX6SqoDdpNcAtoEvAp8HLgLeCYiNmcZj5mZfVTWl4NuBb5dtHw58B1gFXAnMILkucULgUszjqVqXPT6kD8La9PZAAgXlSsr6yGi04BpnWx+KMtzm5lZ13wN3swsx5wEzMxyzEnAzCzHqn3HsHVTmqJarXJh0Kxy3BMwM8sxJwEzsxxzEjAzyzEnATOzHHNhuBs6K0T2tqJsLb5nmnPtq5DcG75Ds1K4J2BmlmNOAmZmOeYkYGaWY04CZmY55sLwfnIh8UP781n4c8yHcv0d8Z3h5eOegJlZjmWaBCRNkdQiaYek+9ttO1vSSknvSXpa0hFZxmJmZnvLuifwJnAH8JPilZKGA/OB24CDSR46Py/jWMzMrJ2snyw2H0BSEzCqaNMXgRUR8fPC9mnABknHRMTKLGMyM7MPVaswfDywrG0hIrZKeq2w/iNJQFIz0AzQ0NBQyRith6mVu5mtfPz9ZK9aheFBwOZ26zYDg9vvGBEzI6IpIprq6+srEpyZWV5UKwm0AkParRsCbKlCLGZmuVWtJLACGN+2IGkgcHRhvZmZVUjWQ0T7SaoD+gJ9JdVJ6gcsAMZKmlzY/i3gdy4Km5lVVtaF4VuBbxctXw58JyKmSZoM/BB4APgNcEnGseyXWi9Q1Xr8ZpaNrIeITgOmdbJtEXBMluc3M7N987QRZmY55iRgZpZjTgJmZjnmqaT3wXeoZsufRT70hO+5sxg8JbV7AmZmueYkYGaWY04CZmY55iRgZpZjLgy30xOKWPYhfx/WEf+9KB/3BMzMcsxJwMwsx5wEzMxyzEnAzCzHclsYLi4s+a7B0rgoZz2V/78unXsCZmY5VtUkIOkZSdsltRZeq6oZj5lZ3vSEnsCUiBhUeI2pdjBmZnnSE5KAmZlVSU9IAt+VtEHSryV9ptrBmJnlSbWTwM3AUcAngJnAI5KOLt5BUrOkFkkt69evr0aMZma9VlWTQET8JiK2RMSOiPgp8Gvgc+32mRkRTRHRVF9fX51Azcx6qWr3BNoLQNUOwswsL6qWBCQNlTRJUp2kfpIuA84EHq9WTGZmeVPNO4b7A3cAxwB7gJXAFyLilSrGZGaWK1VLAhGxHphYrfObWe+WZnoTTzPR82oCZmZWQU4CZmY55iRgZpZjTgJmZjmW2+cJmJl1Jk8FY/cEzMxyzEnAzCzHnATMzHLMScDMLMdyVRj2A9LNbH+k/Q2ppWKyewJmZjnmJGBmlmNOAmZmOeYkYGaWY7kqDJuZdaazom93BpSUesdxZ/tX4s5l9wTMzHKsqklA0sGSFkjaKmmNpK9UMx4zs7yp9uWgu4GdwEjgROBXkpZFxIrqhmVmlg/VfND8QGAycFtEtEbE88AvgSuqFZOZWd4oIqpzYukk4NcRcWDRur8GzoqIC4vWNQPNhcUxwKr9OO1wYMN+HF9r8tZecJvzwm0uzRERUd/RhmpeDhoEvNtu3WZgcPGKiJgJzCzHCSW1RERTOd6rFuStveA254XbXD7VLAy3AkParRsCbKlCLGZmuVTNJPAK0E/Sp4rWjQdcFDYzq5CqJYGI2ArMB26XNFDS6cB/BuZkeNqyXFaqIXlrL7jNeeE2l0nVCsOQ3CcA/AT4c2AjcEtEPFi1gMzMcqaqScDMzKrL00aYmeWYk4CZWY71qiSQdi4iJf5e0sbC6+8lqdLxlkMJbZ4qabmkLZJelzS10rGWS6lzTkn6mKSXJa2tVIzlVEp7JU2Q9KykVklvS/qrSsZaLiX8vR4g6UeFtv5R0iOSPlHpeMtB0hRJLZJ2SLq/i33/u6S3JL0r6SeSBnT3vL0qCfDRuYguA2ZIOr6D/ZqBL5AMST0BuBD4aqWCLLO0bRbwX4GPA+cBUyRdUrEoyyttm9tMBdZXIrCMpGqvpOHA48C9wDDgk8ATFYyznNJ+x38FfJrk/+PDgD8B0ysVZJm9CdxBMlimU5ImAbcAZwNHAEcB3+n2WSOiV7yAgSR/aUYXrZsD/F0H+74ANBct/yXwf6vdhizb3MGxdwHTq92GrNsMHAm8DPwFsLba8WfZXuBOYE61Y65wm2cA3ytaPh9YVe027Gf77wDu38f2B4E7i5bPBt7q7vl6U09gNLA7Il4pWrcM6OhfD8cXtnW1X09XSps/ULj0dQa1eWNeqW2eDnwT2JZ1YBkppb1/BvxR0guS3ilcGmmoSJTlVUqb7wNOl3SYpANJeg3/UoEYq6mj36+RkoZ15816UxJINRdR0b6b2+03qAbrAqW0udg0ku9+VgYxZS11myVdBPSNiAWVCCwjpXzHo4ArSS6RNACvAw9lGl02Smnzq8AfgP8oHHMscHum0VVfR79f0PX/9x3qTUmglLmI2u87BGiNQt+qhpQ8/5KkKSS1gfMjYkeGsWUlVZsLU5V/D7ipQnFlpZTveBuwICIWR8R2kuvEp0k6KOMYy62UNt8NDCCpgQwkmYWgt/cEOvr9gm7Ou9abkkApcxGtKGzrar+erqT5lyRdQ6GgFBE1OVKG9G3+FNAIPCfpLZIfh0MLIyoaKxBnuZTyHf8OKP6HTK39o6ZNKW0+keT6+R8L/6iZDpxSKJL3Vh39fr0dERu79W7VLoKUuaDyTyTd34HA6STdpOM72O96kmLhJ0hGFKwArq92/Bm3+TLgLeDYasdciTaTTJN+SNHriySjLw4huURU9XZk8B1/lmR0zIlAf+D7wHPVjj/jNs8C/hk4qNDmbwL/Ue34u9nmfkAd8F2SQngd0K+D/c4r/L98HDAUeIoUg0E6PW+1G17mD/Fg4GFgK/AG8JXC+jNILve07SeSSwV/LLy+R2EKjVp7ldDm14FdJF3JttePqh1/lm1ud8xnqMHRQaW2F7iB5Pr4n4BHgMOrHX+WbSa5DDQXeAfYBDwPnFLt+LvZ5mkkvbfi1zSS+k4r0FC07zeAt0nqILOAAd09r+cOMjPLsd5UEzAzsxI5CZiZ5ZiTgJlZjjkJmJnlmJOAmVmOOQmYmeWYk4CZWY45CZiZ5dj/BywbGaIaCXKXAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "អនុវត្តការពូជឆ្លងទិន្នន័យសាកល្បងផងដែរ។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 25, + "source": [ + "test['load'] = scaler.transform(test)\n", + "test.head()" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
load
2014-12-30 00:00:000.33
2014-12-30 01:00:000.29
2014-12-30 02:00:000.27
2014-12-30 03:00:000.27
2014-12-30 04:00:000.30
\n", + "
" + ], + "text/plain": [ + " load\n", + "2014-12-30 00:00:00 0.33\n", + "2014-12-30 01:00:00 0.29\n", + "2014-12-30 02:00:00 0.27\n", + "2014-12-30 03:00:00 0.27\n", + "2014-12-30 04:00:00 0.30" + ] + }, + "metadata": {}, + "execution_count": 25 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## អនុវត្តវិធីសាស្ត្រ ARIMA\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 26, + "source": [ + "# Specify the number of steps to forecast ahead\n", + "HORIZON = 3\n", + "print('Forecasting horizon:', HORIZON, 'hours')" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Forecasting horizon: 3 hours\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 27, + "source": [ + "order = (4, 1, 0)\n", + "seasonal_order = (1, 1, 0, 24)\n", + "\n", + "model = SARIMAX(endog=train, order=order, seasonal_order=seasonal_order)\n", + "results = model.fit()\n", + "\n", + "print(results.summary())\n" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " SARIMAX Results \n", + "==========================================================================================\n", + "Dep. Variable: load No. Observations: 1416\n", + "Model: SARIMAX(4, 1, 0)x(1, 1, 0, 24) Log Likelihood 3477.239\n", + "Date: Thu, 30 Sep 2021 AIC -6942.477\n", + "Time: 14:36:28 BIC -6911.050\n", + "Sample: 11-01-2014 HQIC -6930.725\n", + " - 12-29-2014 \n", + "Covariance Type: opg \n", + "==============================================================================\n", + " coef std err z P>|z| [0.025 0.975]\n", + "------------------------------------------------------------------------------\n", + "ar.L1 0.8403 0.016 52.226 0.000 0.809 0.872\n", + "ar.L2 -0.5220 0.034 -15.388 0.000 -0.588 -0.456\n", + "ar.L3 0.1536 0.044 3.470 0.001 0.067 0.240\n", + "ar.L4 -0.0778 0.036 -2.158 0.031 -0.148 -0.007\n", + "ar.S.L24 -0.2327 0.024 -9.718 0.000 -0.280 -0.186\n", + "sigma2 0.0004 8.32e-06 47.358 0.000 0.000 0.000\n", + "===================================================================================\n", + "Ljung-Box (L1) (Q): 0.05 Jarque-Bera (JB): 1464.60\n", + "Prob(Q): 0.83 Prob(JB): 0.00\n", + "Heteroskedasticity (H): 0.84 Skew: 0.14\n", + "Prob(H) (two-sided): 0.07 Kurtosis: 8.02\n", + "===================================================================================\n", + "\n", + "Warnings:\n", + "[1] Covariance matrix calculated using the outer product of gradients (complex-step).\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "## បរិច្ឆេទម៉ូដែល\n" + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "បង្កើតចំណុចទិន្នន័យសាកល្បងមួយសម្រាប់每 HORIZON ជំហាន។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 28, + "source": [ + "test_shifted = test.copy()\n", + "\n", + "for t in range(1, HORIZON):\n", + " test_shifted['load+'+str(t)] = test_shifted['load'].shift(-t, freq='H')\n", + " \n", + "test_shifted = test_shifted.dropna(how='any')\n", + "test_shifted.head(5)" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
loadload+1load+2
2014-12-30 00:00:000.330.290.27
2014-12-30 01:00:000.290.270.27
2014-12-30 02:00:000.270.270.30
2014-12-30 03:00:000.270.300.41
2014-12-30 04:00:000.300.410.57
\n", + "
" + ], + "text/plain": [ + " load load+1 load+2\n", + "2014-12-30 00:00:00 0.33 0.29 0.27\n", + "2014-12-30 01:00:00 0.29 0.27 0.27\n", + "2014-12-30 02:00:00 0.27 0.27 0.30\n", + "2014-12-30 03:00:00 0.27 0.30 0.41\n", + "2014-12-30 04:00:00 0.30 0.41 0.57" + ] + }, + "metadata": {}, + "execution_count": 28 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "ធ្វើការព្យាករណ៍លើទិន្នន័យសាកល្បង\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 29, + "source": [ + "%%time\n", + "training_window = 720 # dedicate 30 days (720 hours) for training\n", + "\n", + "train_ts = train['load']\n", + "test_ts = test_shifted\n", + "\n", + "history = [x for x in train_ts]\n", + "history = history[(-training_window):]\n", + "\n", + "predictions = list()\n", + "\n", + "# let's user simpler model for demonstration\n", + "order = (2, 1, 0)\n", + "seasonal_order = (1, 1, 0, 24)\n", + "\n", + "for t in range(test_ts.shape[0]):\n", + " model = SARIMAX(endog=history, order=order, seasonal_order=seasonal_order)\n", + " model_fit = model.fit()\n", + " yhat = model_fit.forecast(steps = HORIZON)\n", + " predictions.append(yhat)\n", + " obs = list(test_ts.iloc[t])\n", + " # move the training window\n", + " history.append(obs[0])\n", + " history.pop(0)\n", + " print(test_ts.index[t])\n", + " print(t+1, ': predicted =', yhat, 'expected =', obs)" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "2014-12-30 00:00:00\n", + "1 : predicted = [0.32 0.29 0.28] expected = [0.32945389435989236, 0.2900626678603402, 0.2739480752014323]\n", + "2014-12-30 01:00:00\n", + "2 : predicted = [0.3 0.29 0.3 ] expected = [0.2900626678603402, 0.2739480752014323, 0.26812891674127126]\n", + "2014-12-30 02:00:00\n", + "3 : predicted = [0.27 0.28 0.32] expected = [0.2739480752014323, 0.26812891674127126, 0.3025962399283795]\n", + "2014-12-30 03:00:00\n", + "4 : predicted = [0.28 0.32 0.42] expected = [0.26812891674127126, 0.3025962399283795, 0.40823634735899716]\n", + "2014-12-30 04:00:00\n", + "5 : predicted = [0.3 0.39 0.54] expected = [0.3025962399283795, 0.40823634735899716, 0.5689346463742166]\n", + "2014-12-30 05:00:00\n", + "6 : predicted = [0.4 0.55 0.66] expected = [0.40823634735899716, 0.5689346463742166, 0.6799462846911368]\n", + "2014-12-30 06:00:00\n", + "7 : predicted = [0.57 0.68 0.75] expected = [0.5689346463742166, 0.6799462846911368, 0.7309758281110115]\n", + "2014-12-30 07:00:00\n", + "8 : predicted = [0.68 0.75 0.8 ] expected = [0.6799462846911368, 0.7309758281110115, 0.7511190689346463]\n", + "2014-12-30 08:00:00\n", + "9 : predicted = [0.75 0.8 0.82] expected = [0.7309758281110115, 0.7511190689346463, 0.7636526410026856]\n", + "2014-12-30 09:00:00\n", + "10 : predicted = [0.77 0.78 0.78] expected = [0.7511190689346463, 0.7636526410026856, 0.7381378692927483]\n", + "2014-12-30 10:00:00\n", + "11 : predicted = [0.76 0.75 0.74] expected = [0.7636526410026856, 0.7381378692927483, 0.7188898836168307]\n", + "2014-12-30 11:00:00\n", + "12 : predicted = [0.77 0.76 0.75] expected = [0.7381378692927483, 0.7188898836168307, 0.7090420769919425]\n", + "2014-12-30 12:00:00\n", + "13 : predicted = [0.7 0.68 0.69] expected = [0.7188898836168307, 0.7090420769919425, 0.7081468218442255]\n", + "2014-12-30 13:00:00\n", + "14 : predicted = [0.72 0.73 0.76] expected = [0.7090420769919425, 0.7081468218442255, 0.7385854968666068]\n", + "2014-12-30 14:00:00\n", + "15 : predicted = [0.71 0.73 0.86] expected = [0.7081468218442255, 0.7385854968666068, 0.8478066248880931]\n", + "2014-12-30 15:00:00\n", + "16 : predicted = [0.73 0.85 0.97] expected = [0.7385854968666068, 0.8478066248880931, 0.9516562220232765]\n", + "2014-12-30 16:00:00\n", + "17 : predicted = [0.87 0.99 0.97] expected = [0.8478066248880931, 0.9516562220232765, 0.934198746642793]\n", + "2014-12-30 17:00:00\n", + "18 : predicted = [0.94 0.92 0.86] expected = [0.9516562220232765, 0.934198746642793, 0.8876454789615038]\n", + "2014-12-30 18:00:00\n", + "19 : predicted = [0.94 0.89 0.82] expected = [0.934198746642793, 0.8876454789615038, 0.8294538943598924]\n", + "2014-12-30 19:00:00\n", + "20 : predicted = [0.88 0.82 0.71] expected = [0.8876454789615038, 0.8294538943598924, 0.7197851387645477]\n", + "2014-12-30 20:00:00\n", + "21 : predicted = [0.83 0.72 0.58] expected = [0.8294538943598924, 0.7197851387645477, 0.5747538048343777]\n", + "2014-12-30 21:00:00\n", + "22 : predicted = [0.72 0.58 0.47] expected = [0.7197851387645477, 0.5747538048343777, 0.4592658907788718]\n", + "2014-12-30 22:00:00\n", + "23 : predicted = [0.58 0.47 0.39] expected = [0.5747538048343777, 0.4592658907788718, 0.3858549686660697]\n", + "2014-12-30 23:00:00\n", + "24 : predicted = [0.46 0.38 0.34] expected = [0.4592658907788718, 0.3858549686660697, 0.34377797672336596]\n", + "2014-12-31 00:00:00\n", + "25 : predicted = [0.38 0.34 0.33] expected = [0.3858549686660697, 0.34377797672336596, 0.32542524619516544]\n", + "2014-12-31 01:00:00\n", + "26 : predicted = [0.36 0.34 0.34] expected = [0.34377797672336596, 0.32542524619516544, 0.33034914950760963]\n", + "2014-12-31 02:00:00\n", + "27 : predicted = [0.32 0.32 0.35] expected = [0.32542524619516544, 0.33034914950760963, 0.3706356311548791]\n", + "2014-12-31 03:00:00\n", + "28 : predicted = [0.32 0.36 0.47] expected = [0.33034914950760963, 0.3706356311548791, 0.470008952551477]\n", + "2014-12-31 04:00:00\n", + "29 : predicted = [0.37 0.48 0.65] expected = [0.3706356311548791, 0.470008952551477, 0.6145926589077886]\n", + "2014-12-31 05:00:00\n", + "30 : predicted = [0.48 0.64 0.75] expected = [0.470008952551477, 0.6145926589077886, 0.7247090420769919]\n", + "2014-12-31 06:00:00\n", + "31 : predicted = [0.63 0.73 0.79] expected = [0.6145926589077886, 0.7247090420769919, 0.786034019695613]\n", + "2014-12-31 07:00:00\n", + "32 : predicted = [0.71 0.76 0.79] expected = [0.7247090420769919, 0.786034019695613, 0.8012533572068039]\n", + "2014-12-31 08:00:00\n", + "33 : predicted = [0.79 0.82 0.83] expected = [0.786034019695613, 0.8012533572068039, 0.7994628469113696]\n", + "2014-12-31 09:00:00\n", + "34 : predicted = [0.82 0.83 0.81] expected = [0.8012533572068039, 0.7994628469113696, 0.780214861235452]\n", + "2014-12-31 10:00:00\n", + "35 : predicted = [0.8 0.78 0.76] expected = [0.7994628469113696, 0.780214861235452, 0.7587287376902416]\n", + "2014-12-31 11:00:00\n", + "36 : predicted = [0.77 0.75 0.74] expected = [0.780214861235452, 0.7587287376902416, 0.7367949865711727]\n", + "2014-12-31 12:00:00\n", + "37 : predicted = [0.77 0.76 0.76] expected = [0.7587287376902416, 0.7367949865711727, 0.7188898836168307]\n", + "2014-12-31 13:00:00\n", + "38 : predicted = [0.75 0.75 0.78] expected = [0.7367949865711727, 0.7188898836168307, 0.7273948075201431]\n", + "2014-12-31 14:00:00\n", + "39 : predicted = [0.73 0.75 0.87] expected = [0.7188898836168307, 0.7273948075201431, 0.8299015219337511]\n", + "2014-12-31 15:00:00\n", + "40 : predicted = [0.74 0.85 0.96] expected = [0.7273948075201431, 0.8299015219337511, 0.909579230080573]\n", + "2014-12-31 16:00:00\n", + "41 : predicted = [0.83 0.94 0.93] expected = [0.8299015219337511, 0.909579230080573, 0.855863921217547]\n", + "2014-12-31 17:00:00\n", + "42 : predicted = [0.94 0.93 0.88] expected = [0.909579230080573, 0.855863921217547, 0.7721575649059982]\n", + "2014-12-31 18:00:00\n", + "43 : predicted = [0.87 0.82 0.77] expected = [0.855863921217547, 0.7721575649059982, 0.7023276633840643]\n", + "2014-12-31 19:00:00\n", + "44 : predicted = [0.79 0.73 0.63] expected = [0.7721575649059982, 0.7023276633840643, 0.6195165622202325]\n", + "2014-12-31 20:00:00\n", + "45 : predicted = [0.7 0.59 0.46] expected = [0.7023276633840643, 0.6195165622202325, 0.5425246195165621]\n", + "2014-12-31 21:00:00\n", + "46 : predicted = [0.6 0.47 0.36] expected = [0.6195165622202325, 0.5425246195165621, 0.4735899731423454]\n", + "CPU times: user 12min 15s, sys: 2min 39s, total: 14min 54s\n", + "Wall time: 2min 36s\n" + ] + } + ], + "metadata": { + "scrolled": true + } + }, + { + "cell_type": "markdown", + "source": [ + "ប្រៀបធៀបការព្យាករណ៍នឹងបន្ទុកពិតប្រាកដ\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 30, + "source": [ + "eval_df = pd.DataFrame(predictions, columns=['t+'+str(t) for t in range(1, HORIZON+1)])\n", + "eval_df['timestamp'] = test.index[0:len(test.index)-HORIZON+1]\n", + "eval_df = pd.melt(eval_df, id_vars='timestamp', value_name='prediction', var_name='h')\n", + "eval_df['actual'] = np.array(np.transpose(test_ts)).ravel()\n", + "eval_df[['prediction', 'actual']] = scaler.inverse_transform(eval_df[['prediction', 'actual']])\n", + "eval_df.head()" + ], + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
timestamphpredictionactual
02014-12-30 00:00:00t+13,008.743,023.00
12014-12-30 01:00:00t+12,955.532,935.00
22014-12-30 02:00:00t+12,900.172,899.00
32014-12-30 03:00:00t+12,917.692,886.00
42014-12-30 04:00:00t+12,946.992,963.00
\n", + "
" + ], + "text/plain": [ + " timestamp h prediction actual\n", + "0 2014-12-30 00:00:00 t+1 3,008.74 3,023.00\n", + "1 2014-12-30 01:00:00 t+1 2,955.53 2,935.00\n", + "2 2014-12-30 02:00:00 t+1 2,900.17 2,899.00\n", + "3 2014-12-30 03:00:00 t+1 2,917.69 2,886.00\n", + "4 2014-12-30 04:00:00 t+1 2,946.99 2,963.00" + ] + }, + "metadata": {}, + "execution_count": 30 + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "គណនា **កំហុសសំខាន់លើសភាគរយមធ្យម (MAPE)** សម្រាប់ការព្យាករណ៍ទាំងអស់\n", + "\n", + "$$MAPE = \\frac{1}{n} \\sum_{t=1}^{n}|\\frac{actual_t - predicted_t}{actual_t}|$$\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 31, + "source": [ + "if(HORIZON > 1):\n", + " eval_df['APE'] = (eval_df['prediction'] - eval_df['actual']).abs() / eval_df['actual']\n", + " print(eval_df.groupby('h')['APE'].mean())" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "h\n", + "t+1 0.01\n", + "t+2 0.01\n", + "t+3 0.02\n", + "Name: APE, dtype: float64\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 32, + "source": [ + "print('One step forecast MAPE: ', (mape(eval_df[eval_df['h'] == 't+1']['prediction'], eval_df[eval_df['h'] == 't+1']['actual']))*100, '%')" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "One step forecast MAPE: 0.5570581332313952 %\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 33, + "source": [ + "print('Multi-step forecast MAPE: ', mape(eval_df['prediction'], eval_df['actual'])*100, '%')" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Multi-step forecast MAPE: 1.1460048657704118 %\n" + ] + } + ], + "metadata": {} + }, + { + "cell_type": "markdown", + "source": [ + "គូសព្យាករណ៍ប្រៀបធៀបនឹងតម្លៃពិតសម្រាប់សប្តាហ៍ទីមួយនៃសំណុំតេស្ត។\n" + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 34, + "source": [ + "if(HORIZON == 1):\n", + " ## Plotting single step forecast\n", + " eval_df.plot(x='timestamp', y=['actual', 'prediction'], style=['r', 'b'], figsize=(15, 8))\n", + "\n", + "else:\n", + " ## Plotting multi step forecast\n", + " plot_df = eval_df[(eval_df.h=='t+1')][['timestamp', 'actual']]\n", + " for t in range(1, HORIZON+1):\n", + " plot_df['t+'+str(t)] = eval_df[(eval_df.h=='t+'+str(t))]['prediction'].values\n", + "\n", + " fig = plt.figure(figsize=(15, 8))\n", + " ax = plt.plot(plot_df['timestamp'], plot_df['actual'], color='red', linewidth=4.0)\n", + " ax = fig.add_subplot(111)\n", + " for t in range(1, HORIZON+1):\n", + " x = plot_df['timestamp'][(t-1):]\n", + " y = plot_df['t+'+str(t)][0:len(x)]\n", + " ax.plot(x, y, color='blue', linewidth=4*math.pow(.9,t), alpha=math.pow(0.8,t))\n", + " \n", + " ax.legend(loc='best')\n", + " \n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ], + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "No handles with labels found to put in legend.\n" + ] + }, + { + "output_type": "display_data", + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4QAAAHjCAYAAAB7INHwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdd3xV9f348de592bvhDBkhhEggCICIqCCgoJ7K462Wm1rtV+7tFpb/XVpq6211tFaR93WPVBQQXAwFBXUMMLeSHZyM26Se+/5/fG+J+ecDJYhN+P9fDx45JxzRz6xac59fz7vz/ttmKaJUkoppZRSSqnuxxPtASillFJKKaWUig4NCJVSSimllFKqm9KAUCmllFJKKaW6KQ0IlVJKKaWUUqqb0oBQKaWUUkoppbopDQiVUkoppZRSqpvyRXsAh1uPHj3MQYMGRXsYSimllFJKKRUVn3/+ebFpmtktPdblA8JBgwbx2WefRXsYSimllFJKKRUVhmFsa+0xTRlVSimllFJKqW5KA0KllFJKKaWU6qY0IFRKKaWUUkqpbqrL7yFUSimllFJKqa6ioaGBnTt3EggEmj0WHx9Pv379iImJOeD304BQKaWUUkoppTqJnTt3kpKSwqBBgzAMo/G6aZqUlJSwc+dOcnJyDvj9NGVUKaWUUkoppTqJQCBAVlaWKxgEMAyDrKysFlcO90UDQqWUUkoppZTqRJoGg/u7vi8aECqllFJKKaVUN6UBoVJKKaWUUkp1UxoQKqWUUkoppVQnYprmQV3fFw0IlVJKKaWUUqqTiI+Pp6SkpFnwZ1UZjY+PP6j307YTSimllFJKKdVJ9OvXj507d1JUVNTsMasP4cHQgFAppZRSSimlOomYmJiD6jO4P5oyqpRSSimllFLdlAaESimllFJKKdVNaUColFJKKaWUUt2U7iFUSqluYv16+O9/ITsbfvxjiIuL9oiUUkopFW26QqiUUt3Es8/Cjh3wxRfw5pvRHo1SSimlOgINCJVSqhsIBGDzZvt84UKor4/eeJRSSinVMWhAqJRS3cCmTeDsX1tVBUuWRG88SimllOoYNCBUSqluoKCg+bX5891BolJKKaW6Hw0IlVKqG1i/vvm13bvhq6/afyxKKaWU6jg0IFRKqS4uFIKNG+1zj+Mv//z57T8epZRSSnUcGhAqpVQXt3071NXZ52efbR/n58POne0/JqWUUkp1DBoQKqVUF+dMF83IgDPPhLQ0+5quEiqllFLdlwaESinVxTkDwtxciImBk0+2ry1ZAhUV7T8upZRSSkWfL9oDUEopdfiYZvOAEGDGDHjjDQgGoaEB3n4bZs2C2lr7XyDg/mr9a2iAkSNh6tTo/ExKKaWUajsaECqlVBdWVATl5XIcDMp+wscfl8CuulqCxXAY1q2Dr78Gr/fA3nf7dhg8GI444vCNXSmllFKHn6aMKqVUF+ZcHSwpgS1bYPNm2LNHgrlQSFYR6+oOvrjMunVtO1allFJKtT9dIVRKqS7MCghNE3w+d8uJlBTo1UsCRa8X9u6Fk06ChAT7X3y8+7iiAl59VV5fUCDPV0op1T3V1Ei16pwcyM6O9mjUodKAUCmlujArIKythaQkOc7MhCuvlCCvoADuvtt+/vjxMHp06+8XCsG8ebKvcPdu8PslsFRKKdX9vPqqZIv4fHJfGTAg2iNSh0JTRpVSqouqqoJdu+TY74esLDkePhzS0yEuDsaMgb597dfMm7fv9/R6Ydgw+9yZkqqUUqr7qK6WSUWQPepPPy371lXnowGhUkp1URs22MdVVdKDEOxKowCGIdVFLV99JSt/++J8vQaESinVPa1dK9sRLLW18OSTMgGpOhcNCJVSqouyZm5DIUnn8fmkB+GgQe7nTZ7sTvvcX6P63FwJJAE2bpSZYaWUUt1Lfr59bO1PLy+Hp56SQmWq89CAUCmluihr9c7vl32DADk9/PjMBtfzYmOlL6Hl44/3PcObmAj9+slxfT1s29aGg1ZKKdXh1dRI1WqQycbvfU/uJSBVrJ97TiYjVeegAaFSSnVBDQ32zbqyMhIQLlxI7vWnyAbCX//aFfWdfLLc1K3Xvv/+vt9/+HD72FqJVEop1T2sWyc9bAGGDpUqoxdfbK8UbtoEr73mTilVHVe7BoSGYXgNw1hpGMbcJtfvMwyjynEeZxjG/wzD2GgYxieGYQxyPHZL5HqBYRintt/olVKq89iyRVI5TTNSUIZiWLaUYWaBTO3eeadUh3n0UQiFSEuT1FHLe+/tOxW0aUCoN32llOo+1qyxj0eNkq+5uXD22fb1VatgwYL2HZc6NO29QngDsNZ5wTCM8UBGk+d9HygzTXMo8HfgL5Hn5gGXAKOAWcCDhmF4D/eglVKqs7FW7QIBSeOJ37aeLErIpMx+0t69cPXV0mti8WJXcZmKCli2rPX379ULUlPluLRUehkqpZTq+gIB2T8OUnnaOUE4bpy7P+2HH8Knn7bv+NTBa7eA0DCMfsDpwCOOa17gbuCmJk8/G3gicvwScLJhGEbk+vOmadaZprkF2AhMPNxjV0qpzsbaP1hZGWk3sWEDubRSEnTVKpg+nf43nMeo3nZkN39+6yt/hqFpo0op1R0VFNj7A4cMkZ62TtOmyTyjZe5cqUiqOq72XCG8Fwn8wo5r1wNvmKa5p8lz+wI7AEzTDAIVQJbzesTOyDWllFIRpmm3nPD7ITOpDnbsYBiOPhRxcc1f+OqrzL73VPjic6ivZ/v2fd/Ene0nNCBUSqnuYfVq+zgvr/njhgFnnmlPGpomvPACbN/ePuNTB69dAkLDMM4ACk3T/Nxx7QjgQuCfh+H7/cAwjM8Mw/isSDtkKqW6md27pWFwKCRfs/xb8NHAQLayl55sy51JaO16mDOn2WuPDH5OnzUL4fXXYP165r/Vepm4IUPsQjTbtkkakVJKqa6rvt6ecPR4YOTIlp/n8cBFF9kVqa3G9cXF7TNOdXDaa4VwCnCWYRhbgeeBk4DVwFBgY+R6omEYkYxkdgH9AQzD8AFpQInzekS/yDUX0zQfNk1zvGma47Ozsw/LD6SUUh2VtVrn90vfweQdaxnMZh7lak7nLc6vfIwpcwZwcehZbr58Jw/n3MF7zGATg2kghlnMlyZSn37Cyj+9zZ7nFrf4fWJiYPBgOQ6H7T0lSimluqb16+2CY4MGSRui1sTGwuWX222PamvhiSegqqr116joaJeA0DTNW0zT7Gea5iCkKMz7pmlmmKbZ2zTNQZHrNZEiMgBvAN+NHF8Qeb4ZuX5JpAppDjAM0K2qSinl4No/mBHG2LSJNCp4jKvkgbR0gkEpC75gbV8ezryZW3Ke5+KYV5nKx/yT6/maMRSQy+6KRJ64dB51s8+ROuNN6D5CpZTqPpzpoqNHS7XR226DJ5+Eb75p/vykJPjud+UrSOP6J5/UxvUdjS/aA2jFo8BTkRXDUiSIxDTN1YZhvACsAYLAdaZpattLpZRysNpA+P3QJ6MYArWsZCwmBnh9kJzU5BUGZGZBejrhvXvZ8Y0PfziF8khCxpccyQvztzPgnQIGH7WHnIsnMvXUJI4+2r2PcMMG+b6G0X4/q1JKqfbR0GBPOBqG9B88+WTZMpCQIMVjJkyAmTPhqKPse0FmJlxxhXQ5amiQxvXPPy+rh17tFdAhtHtjetM0F5umeUYL15MdxwHTNC80TXOoaZoTTdPc7HjsT6ZpDjFNc7hpmvPaa9xKKdUZlJXJHo1AQG68WWUbSaSGBcyUJ6Slkp5uMHOmew8gAB4v9DkCRo8mJcOHgZQYNfFQSSo7zb58uCqFJ36znmvOLuSDxSbp6dKCAmS/4q5mSfxKKaW6gg0bZA8hwMCBsHChBIMg6aAbNsBXX8Hf/ga//CXMmyf3BYC+fd2N6zduhNdf1x62HUVHXSFUSil1CJzpoh4PpO/Ip5BsaonUBU9L59JL4apI9mgoBDt3SiP7zZutr7FsSRpI0pY6qooDEAxSSSppVGBYL9qxnb/9qJzjvsolN1daGoKsTlpFBJRSSnUdTauL3nef+/EdO2TVMD4eCgvh2WfhpZdgyhRZNRw+HM46C157TZ6/cqX0s50xo/1+BtUyDQiVUqoLsQJCvx8yEmoxi4v4nKmNj8dlp3LeefbzvV6Z6R04UHpHWcJhWLEijtt+G0vVthKqtpSS3VBENcmNweXugkqevXMb0783kI8+ktcVFEgKkVJKqa4jGHTvEx8yBD7/3D7PzJRJyNJSOOII+3p9PSxaJP9GjJDA8IQTpGE9wAcfQFqapJqq6Gn3lFGllFKHj9UwuLoasgK72M4Aqolk5CencMY5PtLT9/8+Hg8ceyycOM1g8MQeHHlBLhOmp/JswtXE0ND4vMfuLibRV9/YmHjPHlmdVEop1XVs2mQXgunfH774AkpK7MeTkyElBWpq4PrrYdKk5vsD162Df/4T3nhDAkzr/d58s8WaZaodaUColFJdRCAgjX/9ftmXkVm8gU0MadwLSFoal112cO85e3bkwOtla98pVP/1IebwXOPjNdUm//7OEoYNs19jrVIqpZTqGpzpoqNGSSqoJSHBDv4aGmDpUrjuOrj3XjjvPFkBdCovl3vV8uWyylhaKo3rd+w4/D+HapkGhEop1UVs3GhXFyUcomF3EWVkND5+wowYBgw4uPccOxZ697bP59WdxFUXVpFBWeO11xelELdna+O5tp9QSqmuIxRyr+ANGACfOpq+JSXZbSUAXn5ZCpylp8O550pgeN11uCYOPR7Zb15SImmjCxbAPffICqNqfxoQKqVUF7F+vQSElZWQGi5nnZlLPAF5MDaOy67PPOj3NAw49VT7fOVKqP7dX/lRqr1KaJrwxu9XysZDJLXIalyslFKqc9uyRaqIguwPXLcOiork3DBgzBjpNWgJBOCZZ+xzn09SSG+7Df7wB9lD6PPJquLgwdLAvqwM3n8fXnyx/X4uZdOAUCmluoiCArvdRELFXnbRFx/SqnVETh3jjjm0BoHHH2/P/pomvLMik3P+czpD2NT4nFUl/Ql8JFPGDQ2wdeu3+lGUUkp1EE3TRd94w24/kZAgAd5FF8keQssLL7S8n3zQILjmGqlQevHF0rZo4EAJLMNhWSlcu/aw/jiqBRoQKqVUFxAKScqo3w9gUlYUJM5aHQQuu8JzyA3j4+Jg+nT7/MMPoe6M8/n5SV+6nrf8oyChvcWAFghQSqmuIBx2B2h9+sCKFfZ5cjJMnSpfL7nEvl5TA8/ZiSTNpKTAGWdImuikSZCdLde/+UYCTk0dbV8aECqlVBewfbvM2FZWQqg6wJ5gVmO6aE9vCTN/Oupbvf/MmXbRgLo6KSF+7HM/5fj4zxqfU0kya19aDeFwY/qqUkqpzmvbNru5fO/esjWhsFDOPR7o0QOOPFLO58yBxET7tc89B1VV+35/jwcmTpT3jo+XVNSKCnjrrbb/WVTrNCBUSqkuwNluorZMAsE4JKfnkrEF+JLivtX7Z2ZKGwrLu+9CKKsnP73rCLyRtFQfQb4q60dgyeeUldl7TJRSSnVO+fn2cV6e7POrqJDzxEQ47jjZDwjSZP6ii+znV1VJ6uj+jB0rgWH//rIiWVQEX30Fa9a03c+h9k0DQqWU6gLWr5d00XAY/H6DOOoxMEmglnOuzNj/GxyAWbPs49JS+M9/oP+Pz+TCUZJPZAAGYb74sApKSrT9hFJKdWKm6Q7KsrKksJglORmmTHG/5rLLZJuB5Zln9p/+mZ4OOTmyV71nT0kbBelPqKmj7UMDQqWU6uRM0w4IqypCmKFQ4/7Bs3md1PNntsn3ycmRggKWJUvgkUcNrnllNqk+uWvHE2CtmUvZa4spWBtuk++rlFKq/W3fbqd8ZmfDhg125ofXKymekye7X5ORAeefb59XVLh7Frbm6KPla69esvXBNOV7a+po+9CAUCmlOrmiImn0W1kJ5SUhvASJpw4DkzlHrnE3EvyWrr1WigpYPvoIXvqoF9dcIxVrrDTVT/f0Z/vLKxpLlSullOpcnKuDeXkyCWgFhElJMHx4pBhMkw3j3/mOtJKwPP20VMDel3Hj5KvHIyuRVoVSTR1tHxoQKqVUJ2e1m6ishPq6MLHU4yXIdBbR97xj9/8GByEtDW65xR1jLl4M1eOmMqCXBKFx1LGDfmxbsJ6Ni3a06fdXSil1+Jmmu91EcrJkojQ0yHlSEkyZbMKNN8qy4IwZ0mUeKTRzzjn2a0tL4dVX9/39BgyQverWe2c4djpo1dHDTwNCpZTq5Kx00fIyE1+4nngCGMDlPC11vdtYRoYEhT172tc++MAg76IxmB5vY3XTT0LHsOaXjzU2rFdKKdU57NplF4/JzJS2RtbqoM8n+wQnBz+Av/5VnrhwIfzoR42v/+537WIzAE8+afcubIlhSHEZSzBo32OqqzV19HDTgFAppTo5qwx4dVU4ki4aYDT5jOlVZG/MaGOZmfDrX8tMsGVbWSqZw3sSRx0A5aTz2tphhB/692EZg1JKqcPDuTo4ciQsX+5OF01JgSPfu8f9opdekka1yF7AM8+0HyoqkpW+fbHSRkH2L06fTmP/XE0dPbw0IFRKqU7M74cdO2DPHiAUIoYG4qjncp7GOON02ZBxmGRlwa23yldLUu4R+BN6EYPkFS3nONbe+Jg0s1JKKdXhNU0XjY2VSUdrxTA5GSaN9uOd38Ky3U9/Kj2QgO99z30L+u9/7ZTTluTlufceFhXB8cfb55o6evhoQKiUUp3Yhg2yP6Oy0oRQiARqOILdTGfRYUkXbapHD1kptPZ7pKQYpOb0oAG5qweI45+1V8E112ineqWU6gS++QbKyuQ4LQ02bbJXB2Nj5d+UyvktbwdYuRKeeAKAvn3htNPc7/v2261/35gYGD3a/VbTp2vqaHvQgFAppTqx9eth82YwwyY+giQQYA7P4Y31ySb/dtCzpwSF6elynjs6loakdALEAzCfWWx/bx08+mi7jEcppdShc64OjhgBn33mThcFk8kf39X6G/z6141lQq+6yr1K+PjjjQuILXLucsjPl5jzvPM0dfRw04BQKaU6sfz8SBPfkLSbyKSUs3kdpk2TvJ520ru3FJpJS5PZ49wj46nzJFJHPHXEcRc3wi9+ATt3ttuYlFJKHZym6aKGIStzxcVynpQEIzIKydrymf2k2FhpSmjZuxfuvBOQ6qEzHa1wd+6Ed95p/fs7C8s0NMhY+vbV1NHDTQNCpZTqpOrrYdGiyJ6MUIg46riQF0mipl3SRZs64ggJClNSICfHICE1htpIQLiQk1lRmQs/+IGmjiqlVAdVWGgHfykpkoFSXi73mbg4Seuc4p/vftE558Avf+m+ds898mLg+993P/TYPopPp6fD4MH2+cqV8rVp6ujcuYfww6lWaUColFKd1KZNUgocTDDDJFPFHJ6XB08/PSpj6ttXgsLUVMgd4QVfLLUkUEYm9/BzwvPmS/1xpZRSHY4zHXPoUAnICgvlPDkZCAWZsuoB94uuugp+9SuZFbTU18NNNwES4J10kv3Q1q3SpaI1zrTRlStlDtHnk9RRK/306681dbQtaUColFKd1BtvyEyppIuGmcECerNXaoQ7p1jbWf/+cPPNUjEuIcULhodKUlnBMbzBWVKFbvfuqI1PKaVUy5zpouGwrAw69w+m1u5ldJ0jXbR/f9mvnpzcmCba6OWX4YMPALj6avdDjz7a+iqhMyAsL5cAEmTCcepU+zFNHW07GhAqpVQn9corkc35Iek/eC0PyQNRSBdtauBA+M1vYMgQA2JjMYFisvkDv6G6vB6uvVZTR5VSqgMpLpbtfyDB3+bNEAhIfZiEBPB6YVLle3hw/O2+8kp5AODyy2HCBPebRtpQ5ObCCSfYlzdubGxZ2MyAAe52RlbaKGjq6OGiAaFSSnVCBQVSYRRMCIcYxFbG8pU82AECQoCcHNlWkp7hAV8MIbxsJYdbuEOmdp97LtpDVEopFeFcHczJkXNnMRlqa5m65wX3i6680j72eODee92Pr1olDQhpvkr4yCMtzwsahru4jDMg1NTRw0MDQqWU6oQefBCCQSI5NyYXEblJp6fD5MnRHJrL9OkwezZ443yEjBhM4Dnm8DLnwk9+Yk9HK6WUiipnQFhfL7eXwkIJ0JKSgOJiJrHcftLJJ8OgQe43mTwZLrnEfS3ShiIvD447zr68bh0sXdryWJxpo1u32n0RQVNHDwcNCJVSqpMpLJSy3Va6aBx1fJ9H5MFZs2QKtYPIzpZGwxMmGBAbh4lBGC+383s+Ks2DW2+N9hCVUqrbKyuDPXvkOCFB0kXDYVkhTEgAjxEmr3wpmTgis6blQy1/+Yu7DUVhIdxxB3Dgq4R5edLNwuJcJQRNHW1rGhAqpVQn8+KLUFUVuYmGQwxlI72I7PrvIOmiFsOA3FyYNAmye3kIxyUCsIc+3M2N7H5svuS/KqWUihrn6mC/frLHr7xcMlGSk4HycqbUv28/KT0dzj235TcbMABuvNF97e9/h82bOeooGD/evvz117BiRfO3iImRyURL04BQU0fblgaESinVidTWSuG26mrADOM1g8zkXQyQO+OsWVEeYXMjRsjNe+pUSMqIw4jcwfMZxVxzNvz2t1EeoVJKdW/OgDAQkK+FhXJbSUgAiouZwhL7SZdd5l4FbKqlNhSRILGlVcKWjBvnHl99vftxTR1tOxoQKqVUJ/Lmm1BaajWjD5NKBdOQst5MnuwuzdZBDBoks705OdCzl0FKD0lprSCdF7iI8hffhS++iO4glVKqm6qogJ075Tguzm7zUFQEiYngCdaTVrmDPBxLcK2li1qSkuDPf3Zfe+UVWLyYY46Bo46yL3/xRcu3AGdhmYYGyM9v/pymqaPz5u17WKplGhAqpVQnEQ7Ds8/KDGgoBEY4SBalHM9H8oQoNaPfH59PGhwbBhx7LMRlJGN45fazljzmcroUHVBKKdXunKmW2dmwY4esEvr9kXTRkmIms9RuN3H00e6qL6257DKYONF97ac/xQiHDmiVMC0Nhgyxz1etav6cllJHm64kqv3TgFAppTqJDz+UWdzqagCT5HAluRSQSCS/p4PtH3TKzZWvPXvC6NEGyT3iAAgQz7/5IYF3FsPixVEbn1JKdVfOdNHaWvlaVCTtBePjTSguYTKOcqD7Wx20tNSG4ssv4fHHmTRJCsdYPv1UgrmmnHHnypUtF6Dp29cudhoK2Suc6sBpQKiUUp3EM8/I15oaIBwmgzKO4ku5OHAgjBoVtbHtjxUQWsc9+iU0VkNdxwhe5Ry45RZtVq+UUu3I74ft2+U4JsadLpqUBEaVH6M+wHEskwfi4uDSSw/8Gxx3HMyZ4752660Y/soDWiV0po2Wl7ce7A0dah9v3Hjgw1NCA0KllOoE1qyR2dFQCOrqINGoJZY6O130jDMkJ7ODSk2FPn3k2OuF8883SMyUggRhvPydnxNa/qlsklRKKdUu1q615+HS06GkxG43YfUeHMVq0qmQJ513HmRkHNw3+ctfIpVpIgoL4U9/4vjj3ZOFS5bA+vXulw4Y4N4a37TaqEUDwm9HA0KllOoEnKuDpmmSHiwmjnomEKnX3UH3DzoNH24fjxkDg0fEyZQ0sIkhPMsc6UsYCkVphEop1b04C7VYFTqtJvBxviCUlbmrix5ouqhT//7N21Dcey/G5k3N3q5pP0HDcK8StlZ/rHfvSACLrG5WVBz8MLszDQiVUqqDC4fh44/luKoKYr1hEkOV5LCFZGqkDNz06dEd5AFwBoRbt0qGaFy6PWt8NzcRyl8Nzz3X/oNTSqluprraTsH0+WDbNjluTBctKwXTtAPCQYMO/V5z002y2c8SaUMxfbp7BXD+/OZzgs59hNu2SaXtpgxDVwm/DQ0IlVKqg9u2zSokIzO4SR6Zxj2ayFTpjBn77gfVQfTta8/g7t0rFUePOTYGYmMB2EVfHuYHcNttWiZOKaUOM2e6aGKiTDiCZHQmJwPFxWRQxgjWyQNXXmmX8zxYLbWhePVVPB8scrXPLS2VAjNOeXmyddHSUrVR0IDw29CAUCmlOjgrpcfaPxhfX4mBY9a2A1cXdTIM936RDRvgjjsgJtVeJfwHP6VmyzetdypWSinVJpzVRa1Jx9pauc/EBmugpsZuN2EY8L3vfbtveOmlMhPo9LOfcdqp7iXBpr0EY2Jg9Gj7vLW0UWeLik2bJLtGHRgNCJVSqoOzAsLqatk/GF9XQTLVjLKaBJ92WvQGd5CcAWFBgewlnDnL1zj9W0Q293ID/P739icUpZRSbaqmBjZvlmPDsBvTFxXZvQcBe+Jx5kyp8PJttNKGIvfjxxg82L60aJHd/sLiTBtdvVqC1qZSUmQvIcjr9+z5dsPtTjQgVEqpDs4KCKuqIIYGvATpy06yKJG7pHNfRgc3dKidcbR5s5QRv/NOiHWsEj7K99mz14D77ovSKJVSqmtbt85eQYuNtQOswkJISgxDSQkewkxiuTxwKMVkWjJpkjSsdzB+cyuzT6xpPK+thQ8+cL/MWVgmGHSvbjpp2uih0YBQKaU6sEBAUitNU2Z048IybXoMn2NAp0kXtcTH2zfsYBBeeEHaUZx7gbdxH2QF6dzFjXDXXXa5O6WUUm3GGVBZewfDYbnPxFSVQyjEaPJJxS9VX84+u+2++Z13uttQFBUxa/XfXE95+233S9LS3Cmh2n6ibbVrQGgYhtcwjJWGYcyNnD9jGEaBYRj5hmE8ZhhGTOS6YRjGfYZhbDQM4yvDMMY53uO7hmFsiPz7bnuOXyml2ps1i9vQAA31JvH1fmJpYJxVUKYTtJto6rTTGuvIsGMHLFwIv/sdJGYmgGFgYvA6Z7OqfKAEhUoppdpMba3ssQOZbNy9W45LSyPZ+8WSLjqVSHnryy93V3X5tvr3l6qjDn0e+QPjhtq9IpYvb15N1Jk2unKlXRDHacAAqZgKsH17y6mlqrn2XiG8AVjrOH8GGAGMARKAqyPXZwPDIv9+ADwEYBhGJnA7cCwwEbjdMIyD7I6plFKdhzWLW1MD4VCYeGpIoZLhrIfsbJgwIboDPARZWXDWWfb5Rx9Jz6iLLvE0rhL6SeUubiR87326EUQppdrQujTM7GEAACAASURBVHV2awePxw6sioshKaYO/JUATGapPHDVVW0/iJtugn797POGBmZveajxNByGd991v8QZEFZUwJYtzd82Jka6Y1jv0dJzVHPtFhAahtEPOB1oLB1nmubbZgTwKWD9ZpwNPBl5aDmQbhhGH+BU4D3TNEtN0ywD3gNmoZRSXZRz/6ARChFHPT0opj87ZHXwUEuAR9lRR7lv7i+9BNdeCxl94sEwCONhBRN4K3AS/PGP0RuoUkp1Mc50Ub/fPg4EwFtWAkAWJeSyHsaPhyOPbPtBJCY2a0Nx8qd3EFNb2XjeNG20f393z0JNG2077flJ4l7gJqBZEdhIqugVwPzIpb7ADsdTdkautXa96fv9wDCMzwzD+KyoqKhtRq+UUlGQny+znIEAxIYDeAkxji+kDHgn2z/Y1BlnyCInSEHRjz6CCy70QEIiAJWk8U+up+bfT9n5TUoppQ5ZIGAHScGgFJEByUKprzcbq4s2tptoq2IyLbn0UikyE5GKn+NDixvP16yRPrwWw2ieNtoSDQgPXrsEhIZhnAEUmqb5eStPeRD40DTNj9ri+5mm+bBpmuNN0xyfbX3aUEqpTqa0VLIl6+ogWB8m3qwhGT95rJW8mJkzoz3EbyU2Fi66yN7vsXmztKHoOzgWPB6C+NjOAP4buhxuvz26g1VKqS7AmS5qmnaSSWkpJIX8UF8PRNpNxMfDJZccvsEYRrNVwtmbH4BQsPG8aU9CZ0C4bVvzfYYAPXtKCwqAkhKtTXYg2muFcApwlmEYW4HngZMMw3gawDCM24Fs4OeO5+8C+jvO+0WutXZdKaW6HGf/wVBDiHgCpFJJHmvghBMgNTW6A2wDvXu72ygWFMCUqR68SVKBroI0nuJydj+zCL7+OkqjVEqprsGZLlppZ2dKcFgqWXUewhzLJ3DBBZCefngHdMIJOJsQTmlYREpNYeP522+7i8eMHOmub7NqVfO3NAz3KqEmmOxfuwSEpmneYppmP9M0BwGXAO+bpnm5YRhXI/sC55im6UwlfQP4TqTa6CSgwjTNPcA7wCmGYWREismcErmmlFJdTn6+3Airq4FQmDgC9KCYwWzu9OmiTuPHw6hRcmyacrMfNDwOvF7qiaOSVO7jJ3DrrdEdqFJKdWJ1ddLGCGQhsLxcjsNhKC0KNl44ii9JoerwpotaDAO+853G01gamFk3t/F89273XGBMjGSSWL74ouW31bTRgxPtagT/AnoBywzDWGUYxm2R628Dm4GNwH+AHwOYplkK/AFYEfn3+8g1pZTqcvLz5abdUG/iMRtIo4JRrMFHqEsFhIYB55xjT0QnJ0NWD4O4VJkGriCNBcxg5Zs7YOnSKI5UKaU6L2e6qGGA1yvHFRXgqyxpXIqbzFJp+nfiie0zsCuucJ3O3vYQ1AUaz5sWl3E2qV+9uuXWEs6ehZs2SdCrWtfuAaFpmotN0zwjcuwzTXOIaZpjI/9+H7lumqZ5XeSxMaZpfuZ4/WOmaQ6N/Hu8vcevlFLtIRyWG10gAA11drroSNZCbq57+rMLiI+Hiy+W/SyGAT16QN/B8eD1UUsi9cTwN35B+OZft9x8Siml1D4500UDdryF12PiiRSTgcj+wSuvlD/G7WHwYJg6tfH0KL6kT71dTebdd6UXr2XsWHtowaD757IkJUGfPnIcCMAu3WC2T9FeIVRKKdWCbdskVbSmBsLBMHHU2QHh7NnRHt5h0a+fXSenf38wMUjpIR3sK0hjHSOY+1EqvKM7BZRS6mA400VDISm2YinbWSXd6oFsihhmbILvfa99B+hIG/VgMrvkGUAm/yorYdky+6lpaa5th5o22gY0IFRKqQ4oP19mPuvqTAiFSKKadMpl/+Csrtt+dcoUGDZMUplyciApKwHTF0M1yQTx8gDXUXPz7zX/RymlDkJBgdxTwE4VBYkD/dvtMpyTWYoxexb0bdbV7fC68EJXtZhZJU9DVXXjedO0UWe10VWrWk4c0YDwwGlAqJRSHVB+vqS5BOvCgElPCsllA774mPbb1xEFhgHnny8lw3NypIBASo84whhUkkoJWTz+5dHSyV4ppdQBcaZVOvfcxXiCeMvt5cIpLIGrrmrHkUWkp8PZZzeeDmYLw0P2oD/8EKqq7KePG2cfV1RI26KmBgyQewjAzp3uNFnlpgGhUkp1QM79gz6CZFEi6aInnggJCdEe3mGVlCTVzuPj5YaemB6HGROLn1TCGDzDZey+5Z/2dLdSSqlW1dfD+vVybJp2M3qAmk17GivNeAkxsccWOPPMKIwSV9oowGm7HoFIE4L6enj/ffuxfv0gK8s+b6n9hM8nE4sgSSUtBY1KaEColFIdTF2dpPcEAhAOmSRQSzJVEhB24XRRp8GDJfYdOlRmeJOz4gjixU8K9cTyj81nwH//G+1hKqVUh+dMF42JsSuNhkKwe72dljmWVSR/5zyIjY3CKIFTTpGu8tZp7Wt4Ksobz51po4bhThtdubLlt9S00QOjAaFSSnUw69ZJMZlggwnhEGmUk0Cgy+8fbGr6dMjLk0pxaVmxmDHxVJCGCSzkZL649eXGQghKqY7LNOHLL2H+fPD7oz2a7seZLupMrIitq8R05GFGLV3UEhMDc+Y0nmZTzISgXU3m889h71776c6AcNs2d6EciwaEB0YDQqWU6mAa9w8G5M7dkyKGsQHfwH4wfHiUR9d+PB646CIYPVpmgzN6xVJLAtUkAfC3wssJ3/9glEeplNqXDRvg97+HO++Ef/0L7r5bO8e0J2e6KLgDKrNJhDTlqGoYNaqdRtaKpmmjO/4NQek5YZruItMjR7rq0LSYNtqjB6SmynFZGZRq9/IWaUColFIdzNdfR/YP1ocxgD7sIY81sjrYXn2hOojUVLjmGtkrkpzuIybORzFZmEABw5n7h5VSk1wp1aF88w3cd58Eg/n5kvmwaRPMmwdvvhnt0XUfGzbYPfwSEhxJFeEw3xTYfzt7UsjgH3eADJSjj3YFpdPDC4irLGo8d6aNxsTAmDH2eUtpo4ahq4QHQgNCpZTqYD77TNJ6wkGTBGpIINCt9g82NWKEVB4F6NE3lhqSqSYRgPv936Hmwf9Gb3BKKRe/H556Cm6+GVaskH1qW7fa+9YCAVktnD9f60K1h/x8+9j63wAgruwbiuuSG8+nxnyCccnF7TiyVhiGa5UwkVqm1cxrPN+40e6nCO600dWr3RVULRoQ7p8GhEop1YGUlsL27RCqDwFhMignlnpyvDvgpJOiPbyo+dGPoHdviEv0kZIYZi+9MYFSMln47N79vl4pdXjV18PcufCLX8C770rwYZqwY0fzVZqqKgkaH3pI2gGow6OhwZ0u6qwuam7bjjPf5MTpXju3Mtouu8yVDXPa3sdc+8Xn2fEhY8faTw0G3QGwZcgQ+zmbN7sDYyU0IFRKqQ7E2j/YENk/mE0huazHN3VSx7lZR0FMDFx/vTRUzuwTS4B4SskEYOnqNHeDKqVUuzFNWLIEbroJ/vc/d52nigopCjVjhqT2zZwJGRnyWEEB7NoFDz8M772nq4WHw4YNEqiD3D7KrYKdpsnOLfWNz0vBz8SrRrf/AFvTt6/80kQcyydkVNszB/PnSxsJkJ9ryBD7pS2ljSYmwhFHyHFdnU5CtEQDQqWU6kA+/VRmdYMNJgYmvdjbrdNFnU47TWrq+BJiiTMaKCWTAHEsD08gtGBRtIenVLezejX89rdSLMZZ4dHjgaOOkq1gw4fLRM6MGXDDDTBokPwLhSR9zzSl6biuFrY952qZFUABUFlJcW1i4+k0z0fEzJ5Bh+JIG/UR4pSy5wGpRlRYKBVHLc600VWrWi5apGmj+6YBoVJKdSBLl0I4bBIOhYmlodv1H9wXqyJ5VhYkJpg0EEspmVSSwurnvor28JTqNnbtgr/+Ff78Zyn373TMMfCb30jAFxMj10aMgOOPh4EDYfJkSE+Xa6WlkhEB8iH/4Ycl3VRXC7+9hgZZhQVJlywuth8zdu10pYvOOKa042WgnHsuJCU1np5W+TxU2j1LnGmjzoCwosK9x9CiAeG+aUColFIdRDgsM+7BWvk0lEY5cdQzuFeNTLcrZsyAnBxIz/RiArUk0EAMSxYGtJa9UodJfb3sbS4pgUcfhVtukb6CTkOGSCD4k5/A4sV2FndmphSFsvZwXXAB+Hzyr29fCQ6TI7VNTBM++ggefFBXC7+tjRvtdNGMDKn6atm92c7rTcHPxEuHtfPoDkBSkvyyROSxhgEBe0PkwoV2AZl+/aBXL/ulK1Y0f7v+/SE2Vo537dIWtk1pQKiUcgmHpcrlCy/Ali3RHk33smGDVOgL1ln7B4sYTgHeWTO7XbuJ1iQnw7Rp0HtwIh7C1BFHgHiWluTqtK9Sh8HGjXD22TB9uqzEPPmkuyhHdjZcdx3cfrukh777rgSPYK/qx8fbz+/RQ/YSWtavl8/9Rx5pXysqktXCd97R1cJD5WxG71Tvr6Os3D6fxmJizj6tfQZ1sBxpowYwe+/jEJZfvupqmTwAuT1OnGi/7NNPm88Per0weLAcm6YUl1E2DQiVUo2sDf6vvy698J54Qv9otqcFC+RGFWww8RImkzJNF23B7NmQmuElMSaIiYGfZNYyktJXFkd7aEp1Kdu3ww9/KIU6ysvlQ3h+vqwA7t4tgdxdd8GkSfKhPD9f0t4tZ50l1YGbOussKfQBMgk5dy5ceCFceql7tfDjj2W1cMeOw/6jdinBoPR9tDibsRvf7HGli87M2SRpFx3RtGmytBcxu/516S4f4exJ6AwIS0ul52VTzrTRltJKuzMNCJVSBALSKPjf/5ag0BIKwbPPwp490Rtbd7JsGYSDIcImeAmRTjkjWeeeTlf07CkZtEnJ8rGmlkRMDJa/vGs/r1RKHai9e+HHP5ZJQauxOUjgFxcnH7r/+U9pH1FdLXsAX33Vft7EidISoCXJyXDmmfb5Z5/JB/SRI+H//s+dIV9UBP/5j6wWOsehWrdxo51OmZ3t3ue5d7NdkTkFPxMuGNjOozsIHg9cfnnjaT92cWTdZ43nS5bYlVMHDpSf1dJS2mjTfYS6y8CmAaFS3Zhpyj6Qe+91p1gkJMi+D5CbypNPuibl1GEQDsvserBWPvEkUkUqleRMzJYqKspl4kTo0UcqVtQTSx0xLFmZaFeoUEodstJSuPZaWSH0R+p4xMTIql7fvnJ/8Hrlw/gDD0gF4Ouvh8pKeW6/frKSvy+nnGLfZwCef17uQQkJsvJ42WW6WnionOmiPp99b6+pClNRYufgTmcRMeec3s6jO0hXXOE6nb3nscbNkaGQZNbAgaWNZmbKnlWQ4jPOyrjdnQaESnVThYXw2GPw0ksyu2sZN05Kg191lV10rKpK0kedz1Nta9MmmQkP1oXwYJJJObmsxzv7lGgPrUMaNw4yjkggzmjAxKCKFJYFxxP+8ONoD02pTq2yUvYEbtsmgaFpSjGO6dNlf+DFF9vVQ8FuPv/RR9KHcNUqCfZ8vn1/n9hYKTZjWb/e3UNuxAhZLXSuMhYXy2phS83HlQgGYe1a+9w5mWsWF+MJ2wHhjLTP4Nhj23F0h2DkSJgwofF0Ju/iLbNLpraWNlpc3LwOgmFotdHWaECoVDdTXy9NgB94ALZuta/36gVXX21Xek5Lg+9+V2ZrQWbSnnrKrlqm2tbChdJuIhh0povq/sHW9OkDQ4YYJMZLc60qkqkklTXProryyJTqvGpqJAjbsEGqMNbWSmA3caLU9xg5En79a9lnPmeOpI5WV9sVG4NBua9cdpnsLXRWtmzJ1Kmy4mj53//cBWsSEiRovOwySEmRa6Ypew6tlEjltmmT/d+mVy930FO82W7bkEolE87sLUu9HZ2juEw6FUypeRerJ+FXX9lbXXJy3Ak1n37a/K00IGyZBoRKdSNr18J990kTYKtJbWysxBzXXis5+E49e0r6vjXTu2sXPPec+4at2sayZRCuayCMgccKCFN3u2ZGldsJJ0BKunyYCZBACIOl7+kytlKHor4efv5zWX0zTZkE9HrlT9CIEe6tzD17wi9+IROLOTn2imFKigSJ9fVSqfqcc+APf2g9zdPjkRVHy+7dcn9qasQIaWdhtRZwVphUbs500fh4u0qr3w/+YjulvkNXF23qkktcS86zS5+R2YsIqydh07TRFSuap40OHmwX7d6yRT/PWDQgVKobKCuDZ56RAjEVFfb1UaMkPXTKlNYnCQcMkBu29Qd040Z47TXdjN2Wysrkv2swEMTAxEuIbArJOTW3c8zeRsn48ZDVPwEPYUJ4qCaJJbsHaQMzpQ5SMAi/+pUUdwG5T4TD0mQ+I8M9MWjx+6XQy/jx8nn99NPhiCOav+/rr8sq329/23LV6rFjJeCzvPJKy6t/CQnufYnOgiJKhELudFHn/T5UUYW33m6+N8O7WHJ7O4MePeQXLOIEPiSxwq529/bb9mcSZ0BYWOguqAPye9SvnxzX1+ueVIsGhEp1YcEgfPCBVIJzlqDOzJQMjEsusfcJ7suIEdKHyrJqlewlUW2joMDeP+glTCp+8liL97RToz20Dm3oUOjdN4ZEnxTi8ZPKGvIof21xdAemVCcSDsNtt9krbsGgBBJHHy2fw8eNgzG+tbJn4IUX4J13CC1Zzv/u3UPVHj/U19Ont8n998Nbb0nKqbNYjPU95s2Diy6SLBXnhKJhyL3IUl4O8+e3PNYhQ6TXoTXO995ru/8OXcGmTXZdrT59ZF+mpWSLHR2mUsnEExMO7ANAR+FIG42jnhnlL4EpqU7bt9uB8JAh7t+//aWNavsJoQGhUl3U5s2SzrNggV2q2+uVwgDXXw/Dhh3c+x1zDJx8sn3+8cfuflPq0H3+OfgrwgTDjnRR1sKpGhDui8cDxx8PiUmyfF1ttZ94Ydt+XqmUAgnM7rjDPcFXVgZjxkh6pq+8iMvmXQ55efKB/OKLYdYs3p36O7bd9gj8415i7vojc27sR3zfLBJHD+Y7fz+aNwMzuYm76LnnS/m0vmuXbCgsLeHJx4Pcf797HEOGuFd25s61q5s2deqp8v99kP1jmhBgc6aLJifbWZWVlVBdZK8OTmMxvrM7eHXRpk4/XZarI2bVvAIVlY3nVnEZw3DvtGip2qjuI2xOA0KlupjqanjxRXj8camyZRk6VPZgnHSSu0LcwTjxRPcf2nnz5IasDl1dnaRphevqCOPBS4g0yskbYcoUr9qnE06AtCz5hW4gljpiWfppjL1xRinVItOEv/9dtgBYAgEYNAj6xhXD++9z+txr6fneM67X5TOKpUxuPD+LN+gd3i0lSbdsgVWriPtoARd9/ite3z2e3xT9H/2+WQG7dsrjX+fzxD3FPP6Y+1P6hRfaGfKBgHtcTtnZze9DuoWhebpold1ukEBVAzE1dn7tDBa4G0F2BnFxrg2n4/mM7Cq7jOg779h/9p2TC3v3Nk8L7ddP3g6kz7JWUNeAUKkuJRSCO++ERx6RVJFgUDb5X3yxTO5+23Z2hgFnnCGTxZZXXpE0FXVoNm6UG1awNoiXMAbQi0IGnTkm2kPrFMaMgeyBCcQiy+CVpLKs7mjCy1vIE1JKNfrPf2RfucU0YXB6KQM2LIT588jYnc+ZvOl6TRE9eJVzG88nsIKxfNnq94ghyDm8zsuczxU8JRdDUor0gRvW88K9uxuf27u3ZLBYFi6UPWAtmT5dCqaALEA6V8a6qy1b7Gqvffq4t4mUb2uSLppXLdWAOhtH2qgHk1nFTzdGgWVldnrosGF2v0Fonjbq8ciqNMjvfUt7W7sbDQiV6kJeeQXefFMqta1dC19/Lfv/hg+3i8J8Wx6PzOQOGiTnoZB8qNi9e58vU60oKIDCQpNgfRgvIXwEOYbPdf/gAYqNhaPHeUiKl1JxVSRTRgbrnv0iyiNTquN65hl4+GHHhSo/UwtfIW3JW7BH/pjP4TnisPsM1Y07jueOvJP6QcOhzxH061nPadmf2Ust++AlzP9xHxfwkut73vXzPbx92TONVWTOOccO9EIhyXZpSVKSZKxYnKtD3ZWzN2NGht1/sLISaorsipzTWIzvzNl0SpMmufI9Z4fehLLSxnNNGz10GhAq1UXs3Qv332+3kxgwQG4KL74o5cEXLWq78so+n/SFskqA19fDk09KxpA6cOFwpKDMrgaCePEQIo0K8uK3wOTJ+38DBcje1sQUKYHY2H5iXsV+XqVU9/Tqq5IqCkCVH9YXcE7Bn6nbubfxObmsZxLL5WTyZMz57/DajUsoOutquPxyEn/yfS5Z/wd8hbslvzMQkJvQ+vWSA79wocxQPv443Hsv/O53GNdey03x/2Q28+zBmCb/79lhLBr2A/jgA9LS4DRHJ4Tly5s3F7dMmmRvKSsvl9Y93VXTdNFae7sg/sowsVUljeczea/zpYtaDMO1SjiMDQyptvetLFpk75t0po3u2dN80rppQNjd0441IFSqC7AKA1gBWWqqO12irAweewxuukkKwVhB47cRHy9/l9PS5Ly6Gp54wr1vQe3brl1ykwr46wEDD6YUlJmaJUtf6oBMngzpfeLxECaMQRXJLN16hHsTrVKKd9+FO+4wwV8ps1EFBZzpf5a+7KKaZAAMTL7Dk9RPOYndz3/Ilw98zOu1p5C/WtJMDEOqhVp/+wFZJezZU3L1jjlGNqufey5873vS2+i22+DBB/Gs/prbZy7jRD5ofGkYD7/e8SM+mXYTXHUVsyeWuN77+edb/rDu87nrbn3wQffdC7Z1qx0INU0X9e+pwgjLbHAqlUzI2iLRdGd1+eWNhwZwWslTUCelVevqYPFieSw31/07+skn7rfJyLCrkVZWSqXv7kwDQqW6gHfflZshSErntGkSII4b535eYSE89BDceqtUtvy2M2KpqfDd70pfH5CA9KmnWu4hpZpzt5uQG3Y2hQw69+goj6xzSUuD4aNjSfDa7SfyGUXl64uiPDKlOo4PPzD57Q0VmOsKZCWvys9JLORcXuF1zqaIHuykH77eWfzvB+/zx2kLeCj/eF562eDzz+33Oflke//VQRs8GN87b3HnU/2ZmGDnODYQwy/4G18+/jnxY0dwbvJ7gNyg1qxxp0M65eXBwIFyXFcH779/iOPq5Jz/fXr1khUxkECnttiOkqezCN/pp3bu/rY5OVJNLGIW86HEXgG10kY9HumRadlf+4nunjaqAaFSnZzfD3/9q50O2r+/VBMdMAB+9jO4/XZpQO+0c2djFg/5+d8uMMzOhiuusCuX7t4Nzz3XdumpXdm6dVC4J0gwaOKJBIQTWIF3didpFtyBTJ0KSYlyXEMSITwsf35rVMekVIdgmiy55xN+fvo6/Ot2UlllUEoGyVSRQC03cB+bGMKupOFUDhtPjytOx99zSIsbz0ePdn0WPzSGQezlF/HXDWczJtfeoxggnhv4BwXFmUz7yyx6f/iiRDS0vkpoGO5m9StWtF6IpqsKhyVotlh9CEGyg+L8drA0gwVSGa6zc6SN9qKQY/wfYE0gfPqpnRziTBu1MnKcNCC0aUCoVCd3113S3gkgMRF++EOp1mYZOhRuvhluucX9xw+kOuhf/iKVSb9Nc9b+/aWSqdUbatMm2T7S3XPy96W8XLbcFG2tJoQXD2HiCTCh7zeds/pblJ16KiRmSJptEB8B4li6zGib/GilOimzNsC/xj7EnF/0YVd1GmVk4CeFdCo4jmXsYADFSQNh8BDIGcyICSmNNWKSk6V42PjxMGsWXHmlpIq2VYGyxL4Z/GPFZIadPLCxkkwVyVzP/eygPxdtv1saEn79Ndu3hlrte9u3Lxx1VOTnNVtvat9VOdNFe/d2N6OvKg5g1EuEmEolE3yrukZ/2wsusKsPAadV/a9xv0o4LFtYQQrqpaTYL2u6Sjh4sP25ZevW7l2YSANCpTqx5cvlfglyk5482b0h3ykvT7Zx/PznEsA5rV0Lv/893HOPlPA+FMOHw9ln2+dffSWV31TLCgrk5lNUZGIgeyHSKWfEjH7RHlqnlJMD/YdJ+wkTqCSNpdVHEl6ljTJV9/XOd57hz1/NpgFf47VsipnJuxg5g1iTdyHxIweT1ieJ0aPl/vDDH8q2gl/9Cr7/ffm7PmWKfHhuq2DQkpoKD7yQzYBT8+CIvmAYlJHBj3mQvuxkaLgAvlwFc9/ixXt30dDQ8vvMnCl7CkEmN7/NBGdn40wX7d/fbqFQWQmBEntT/3QW4Zs2Vf6jd3ZpaVKSNmI6i/CV2kvD1mcPr3ffaaNxcfbnoYaGQ//80xVoQKhUJxUIwB//aM9o9e4tKaL72hpgGHD00fCnP8F117lXEgFWrpQPAg88YO9BOBjjxsGMGfb5kiXdu/LbvqxbByUlJg2BcGO6aDZFDLpwwn5eqVpiGDDhWA+JcXb7iVIy2fDsiiiPTKno2L6yhPte6UsdsuQXSz2D2czd4//H9/83i+G3z2Ho0SmMGCETKr/9rdSD6dfPtfhy2GVmwoP/8tBrbB/Z35CSSiE9uY4HOZXIJ/vKCkpeep/3zvxHi+Ws09Ikbdwyf373SA5omi7qDJiLiyGhugumi1ocaaOp+Dmu3P4f/auvJAMH3GmjO3bYGVUWTRsVGhAq1Undfz9s2ybHcXFw1VWyb/BAGIYUGfvzn+Hqq5s3rF++XGaHn3vu4G+qJ5wAxx5rn7/zzqEFl11ZXZ2UUi/aXEXQ9DQWlBnr/RrvSSfu59WqNSefDEkpMiNSTyz1xLBkblmUR6VU+6uuhmdu+IR14VwA4gkwyLeb199J5NQVfyJj+lgWL7ZX/CZOlCySaOndWwqeZfaJh9xhkJPDDl8Of+dnjMSOeN54J47qEce02KDw+OMlzRVkH6GzEE5XtW2bXVm1Vy/3yqi/PIhR7Qci6aKs6LztJloyc6bd+wo4pWGu7MWIeO89+TpypP17Ac1XCTUgFBoQKtUJrV0rm+wtxxwD559/FZMnqQAAIABJREFU8O/j9Upz37vvlkrOzkwS05RqXffdJ30GD5RhSNrq8OFybjUXbi3VpzvatEn+uxRu8mNiRFJGTU4YXWaXbFUH7fjjIb1PHB5MwnioJoll67Ok8pJS3UQ4DC88UsmXS6upJR4fITIo45zTG+hxipSefvZZO7skNhbmzInigCMGDJDslJQUAzKzYNRoNvU4lpWMIxT5uFpNEm8WHSubGa+4AirsfqOxsRIjWBYu7PoVr53pooMH270IKyuhvqxJddG84fKkrsJqiBxxIh8QW2b30nz3Xfnq9cpnJEvTgPCII+wV8T17um/rLA0IlepkQiGpHGrd6LKypPG8VeXzUMTEyD7zv/0NLrxQitNYPv9cis4czGdqj0daUCUlyXlRkT1bp2T/IMA39r2LZPyMPUP3D34bMTFw5Ph4Ejzyfw4/KXxpjsH/1odRHplS7WfRItj0/KesCQ3HADIoxevzctFfJXdu9WrpHW854wzo0SM6Y21q2DCZhExIQD7wDxzEluGz2JUwjHDkI+s7nEoJmfD003DkkXbPJWDsWHsrRHU1fNiF/6/fNF00HLYzevbuhcSAnVrbqZvR74sjbTSRWqZWvNU4+7xmjVRUB3fa6LZt7kq0Ho+7jcqmTYdzwB2XBoRKdTKPPWbPAsbEyCRpbm7bvHd8PJx1lqSSOtNPN26UFhV797b+2qaSkiQotCxb1r3TMSymKQFhrb+B8trYxnTRHhQz8JLjojy6zm/KFHtCo5Z4Gojh02f1F091DwUFsPitaopWbKOIHqRRTiwNTJ1i0ndoAqGQ9Iq19OgBp58evfG2ZMwYmZxsnORMTqFi2HhWZc8kbHgJ4uNhfkAt8VIFZPp0uOkmqKvD43G3oVi61JVF2KWsX2+vZvXs6Q5kqvxhPJXyg6dSyXg+61r7By1HHSWTAhGnmPNde0ytiehRo+wJapD2JE6aNqoBoVKdyrZt8Mgj9vmoUa6MiTaTkQG/+Y30nLLs3StB4cHMng0f7q7w9cordnns7mrXLpm5LlpdiIkHT6R30pjELXhHjYjy6Dq/GTMgOUM+SYbxUUMCSz8KaQ8U1eWVl8PLLwPLlrE6lEsiNSRSA74YLv7dSAAWLJC/QZZLL5VUy45m4kSZmLRaAvhiPNQm9+TLwedhpmWwhjz+xK2UkS7/3777btm8np/P4MEwIvKnNBi0Uwe7gvJyWfV84AF45hn7em6uFFKBSLpoZaCxGfBJvI8vKx2O66ITjo5Vwql8TEKZ/QtuBYRerxS9s3zyifstmgaE3fF2oQGhUp2EacL/+392QJWaCjfeePiqwSUkwC9/KfuyLH4/3HEHfPHFgb/P7NlSRc56/RtvdM8/tpZ16+Rr4YYKwtg13KeMD7R9TfduaMAAyMmT9hNhDKpIZln5CMz13agOvep2gkEpAlZbXE3tinx20o90KjCAgXlJTDw+Hr9fJuUseXnuCbuO5sQTZRLS+rOYng6lNfHkDzwNc0Qe2xjI77id3fSRJ3z5pWwWu+ceTp0Zbgwmv/5aqkt2Vn6/ZNg8/LCsnL73nrtSptcrQb2113/PHkiss1fJZrBANvbvqwR5Z3bppY0zB/HUcXz1fKiVD0rr10t/QXCnjW7ZYjevB/ndstKmq6oOLhuqq2jXgNAwDK9hGCsNw5gbOc8xDOMTwzA2GobxP8MwYiPX4yLnGyOPD3K8xy2R6wWGYXSB7ppKHZiXXrL3fXg8sqfekSlxWHi9cM017tTP+nq4916ZaW5NeTk8/risMn79texLtG7Oq1fLfbu7svYP7t5jB38+gky/uFcrr1AHwzBgwiQfibFSMaOaRL6hFxuf0v4nqut6+23YvRtYtowNoUGRYNCEmBguvnEAHo8U97ImFD0e2W7Q0eegZs+Gm2+WY49H9geWlHqYV3gM72VcxKveC5jBAn7Iv7iLG3m0/nJe+cXH5M/6JT1jSqmslC1lb73VuSYia2tl//7jj8vi59tvNw9qk5IkyPnRj9zVRSsrwRdJF02jQtJFu+L+QUufPnDKKY2np/CuFC6IsFaIR49210fQaqNuvv0/pU3dAKwFrFqGfwH+bprm84Zh/Av4PvBQ5GuZaZpDDcO4JPK8iw3DyAMuAUYBRwALDMPINU0z1M4/h1LtqqQE/vEP+3zYMGkY3B4MA847T4rXPPaYbFo3TXjiCZlhu/hi+0PFrl2SxvL663bRmw8+kFnpadPg/ffl2ty5MHCgpKZ2JxUVMrNrlpVTWJ+GB6kAkEkpgy6ZFOXRdR3Tp8PT93soL4EQMQRIYNmbxQz7Y7RHplTbW7UqsiequprQii8oZjI+ZEIkcUAPzjgv9v+zd97xUZVZH//eKZlk0nsBkpDQQXoXpSPoKlZ0UbGtrmVddXd1d33fXVdd17K6vupr3dXXCtjQdW10QUGa9JIQCC0kJCG9TcrMff84M3NnIDQNmZTn+/nkw9yZO5MTIPe55zm/8zvs2wfffGO8Z8oUmTfYHrjiCqnavPCCJIUJCbImVlXZaIxIobomko8briCeIkJxZ7ybwLXlIIWRwbhsdiwWqaCmpclalp4um6rJyQH90fxoaBB/gG3bJCFxNnNnGxwsld1zzhHDUJNJztu0SV6vrISmugaodwBud1GL5pcwdUhuukmGTwJjWU1oyUFqUrqAxcKiRbKxbbHIHOZVq+Qt69ZJ4dRDjx4ycgvk7993rmVnoNUqhJqmdQUuAv7lPtaAScBH7lPeAi51P57pPsb9+mT3+TOB+bqu1+u6vg/YA/gUgRWKjslf/mK4a9vtIhX1navjS02N6ON9XbRagvHjxc3UV6L6xRfw0kvSu/DHP0ol8YMP/K2+6+pkZ3r8eOMGpL5eel06w+BgXzzVwcodh2jC6hWM9oktxhwTGbC4OhqDB0NyWhAaOk5M1GBn1Y4ocDgCHZpC0aIUFooMH4DvVxPqrKAe90XaauXimxMICYG33zYqZOHhssnXnrjhBpm1C7IBGRvr3lDUTBAWjh4aTpGWRCXG7CSTq4nwsgNQXkZTo4u9e0Wh8u23Yqxz9dWBX4eamsQN8/33pWfyo49knfBNBq1WSQBnz5b5wJddJsmLR3WTnW2YyxQUQGij4aIzlcWy+EZ28PXlssu8NxhBNDLBtQyOSpVw/36j4ucrG927VzYWPKSnG5vbhw51vvuT1pSM/g/wAOD5K44FynVdd0/CIQ/o4n7cBTgE4H69wn2+9/lm3qNQdEgWLzZctTVNlB++g989NDTIInfxxXDXXbLzNWeOSE48GvrToqhINCpz5kgm56OzGThQZKCetaW4WOSjM2bI5tyJLqAffyyynSuvNJzjDhyA7747g7g6AN7+wd3lOH36B0cOUyKHliQyEnoPsWPX6tHRqCGUTc4B1CxaFejQFIoWo75eql6NjUBNNWk/fEIOPrq3pCSuvs7K6tX+ErirrvJ3XGwv3HEHPPusFIMuu0wcsUeNkk1Ss90GkZGUWBIpJQbPqhVKDRZHNRQX46yr95sxV1srI5Xuussttz0DamqMgfA/hupq+PRTSQLnzZN5gr6zes1mMca56iqRzM6aJQPWLc3o+n74wXhcVgbWqjKgk8hFPVitcPfd3sNpLJJ7GV1uSjzmMuec47+p7es2arMZI0saGvxUp52CVpGMapr2M6BI1/UfNE2b0Arf7zbgNoBUX+98haKdUV0tC5YnJ0tNhV/9yv8cl0v6C15++fhG6J075evFF2X3a+JE+erb95jeEV0X67JXXjGyN5AM8xe/kA9wW9GlpIhZ2aOP+l8wCwrkYmqxyO5taqohY6mogK++gksvlUT13/+W55ctk53OlJQW+etq0zQ0QG4u4HRy+IgJfBLCqXPakG6pgzBunMai+To1NdBAELXYWf/uD0y4ZHKgQ1MofjK6LlJ8T4UjdP0KBjeu5RXcZTSrlTEXxRIUJEPoPaSlScGoPaJpYnLma3QGkkw99xzU1Jipr4+gIesoPbJWM871DRVEsYu+rHaNwVEaQr2Wgi0mkfpGox6yfr1UC+++WzYtTScplRw4IMoYj0vlpElSbQ0PP/2fIzsbPvnk+IRS06B7d9l47dfPPYvxFOi6kRBWVoKryQnVMjR4Essw4+qY4yaa49ZbxYWotpaRrCOisYTKsjKIiWXRItlQsFrFbXT1annLunUwfbrxEV27yr0MSJUwsRO19rdWD+G5wCWapl0IBCM9hM8BUZqmWdxVwK6Axyv2MNANyNM0zQJEAiU+z3vwfY8XXddfA14DGD58eDtqI1Yo/Hn8cSPpCg4WyWZUlBzrulzUXnjh9Bqg9++XauH//Z/0YEyYABOHVzF065uYX3vZGG54LP/6F+TkUPPWRyxYGce8ebLxFhIiMXlUeI2N4ob2hz+IvKe0VHZwPVXDuXNh5kwxgcvOlmqZ0ykSGc+FuiOzd69bBpR3iFJXpDcdDDU5GDKrhQZJKryMGAFxCSaK94ELE7XYWb2ikQmBDkyhaAFWrzaGkms11Vy9/ne8zSzjhKQkJl9g4bHHJFHwMGfOyROe9siAAaJcefppKC/XsA/N5GjGHLI3wL1H/kAIdbzBzewnHUrgHHsFey/7HR+vSvJ+Rl0dPPWUmKX9+c/+/ZW6Ln/Xn38uyacvS5ZIT9rMmXDBBc1X8Dw0NsLChcePPEhNlcrVgAEnbgU5Efv3G5sCBQVgb6ryvjaFJbL76zt1vSMTHQ033ggvvYSVJiaxjE8LkyAmhrw8jV27JNEeMcJICHNypKrq8TPo1s2oGh461LZdeFuaVrks6Lr+R13Xu+q6no6YwizTdf1aYDlwpfu0GwB33YDP3Me4X1+m67rufv4atwtpd6AncIxPkELRMVi3ThYgD5MmSRIHsjjdfjvcc8/xyaDFIjuWkyadeCRF0b4aPnhqP3dMyWHaff14eNdVrOQ86jl+IFUxcTy/YiAX9tnLc0/UeXsTzWapCIaGyliJYcOkcrh2rSR7SUkSg4fcXPmZNE0qhR7JUnFxx5oTdSI8ctGmnH2UEuN9PjO+ArO1g92htQEyMsRu30ojLszSR1jUA/1gO/afVyiQKpXvNXPK4beIqj/CQtzG61Yrsb3iWLTIfyj7RRfJvLqOSFoaPPSQj9okKopdE+/i0VGfU0osM/hKXFeB7YciuPnlEbw87j1Skv1rBhs3wjXXSE9fY6OYjPzpTyLtPDYZ9FBXB/PnwwMPyBrXnJtpYaEIcHyTwYQEuPNOKWyNHn3mySD4y0VLSiCoRsZNdCq5qC/33ON9OI1FoguullKsRzY6cKDIQz34yka7+ZSc8vLOZqBtj9Z2GT2W3wPzNU37K7AJeN39/OvAO5qm7QFKkSQSXdd3aJr2AbATaALuUg6jio5IQ4Msbp7qWlKSGMnk5Yl680QjH6ZPlwXGsyjW18uCtnw5rFzupPJAqWRgPtPhK4jkP1zMf7iYEOoYw/dMTNlNGgf4MH8sXzGDJizgALJ2yZ12ZBSaJgnfdddJgvrFF8b3fOYZMQCYPds/1rlzpecjNFR6QN59VxbPFStkrmJUlNzAeL4qKiTBvfhi6NKOu4V1XeYhAZTsLqHR59I7dGgb931vp4SEwKDhQXy/qJKKRiv1BJNHF/a9t5qMP14d6PAUih9FdbUkK561oU9SOec9fT9vcjUN7g29+rgUnJipMopFXHSRyCI7MnFxkrz9z/+4DbzMZvJ6TuLhLpu5f82VDM7fzCaGoKPxVeNkbnjuOuZPfp//nf4uH3xtmNHU1srn/PWv4uh9bL9lVJRUA0tKpO3B829RXCyKnZ49Ze3r0UOu/WvWSALf1GR8xsiRsl7/VGWMZxRVRQW4nDpapbjPeeWinS0h7NVLJLKff84wfiCGUkoLCyEsjMWL4de/lu6XIUMMR9H16w0T1thYWTvq6kQJ5XCcvVnPbY1WTwh1Xf8G+Mb9OJdmXEJ1XXcAV53g/Y8Bj529CBWKwPPss8bulNUqydUbb0h7X3NW1CNHyoWuTx//5202GB+3g/Elr+Dc9C4bq3qwnIl8wwSKSDjuc+qiUliWcDvLwsNl9arM9fYjAOByEbRnJz+b7uS6V8aRmibJzMCBshh7nOxcLlGaXnKJyGE88tDPPxcpjsUiC9iWLbLb7XJJ4ti7d/OSm7174ckn26/U6fBhtwtcVRVlpS50jAHBE2Z3ggbKADF6NMyLgIoSj2w0lNWfFJLxx0BHplCcOS6XuDh7Er3oaLg8+3Fcjno+cout6i2hFLvi6B9nvG/mTBnd0NZnDrYEYWHixPnKK8acuTJ7Vx6dupJfHPkr2xc20oiVvWTyCZdx7tJVPLA5g8kPfsyflownO9vdi+dO8goLJcdIT5dNyQsvhHPPNdapqVOlOujplweRIT78sCQdwcFGTxqIAc5llx2/Vv8YjhyRtcXz2K7Vem8QprJYpDujO+E4o3vvhc8/x4yLySzlw/IYaKjnyBEb27bJ/cqIEUZCmJ0tG9BRUfI70rWrMdfx8OHOo7gNdIVQoVAcw86dssCALEoRETLaoa7u+HN795ZE8DjXUc9ch1deEY9twAyMYAMj2MD9/J1d9GU5E1kechH7owdLRmf1kYxarNCrJxw8CEePEkEls/iAWXxAzNdl8Jcb5fPd2ospU2T9efFFqXCC2KFXVPib3cybB/37y+OwMEl46+tFnpOXJ9KfY29cjhyR5HHIkB/1VxpwNm50P8jN5SjGnZrZojHx0g5uBx5AevWC7j0tHCrRcWKWPsItdq5rajp5s49C0QZZuhT27ZPHFgv8fHIRIWNeYBnjKSSRemwcsaXTNVnzVp4uv1wSkM6E1Srma++9Jz17AHXOIF5KeoRhN22kaO5SqHewiSFsYggJJUXU/vYL4noGURg+kvJyY8PO6ZS/87g4Ud+kpfl/r5QU+M1vZJzF3LmyXIIkle+8I2t4ZqZci/r0kcT8TAxomsPhkITFd65kURHE1olcNIpyhvEDXDi7c17nJk2Spsxt25jKYj7kKvkL6tqNRYskIRw0SCqFDQ2yib1hg9zDgMhGPQnhwYOdJyFsp/vtCkXHxOWS5vjGRkmk8vNFlnJsMpiSInKWd945JhlsaJAXunaFa6/1JoPHomka/Wakc9dn0/mochofrUrhrnuD6Nfv2BNNpIxJ4/4bivlCu5jbeZUYxNKaN9+EyZP9Bh4OHQoPPui/4CUl+Usu8vIME1OzWSqIngSwslIW4O7dJfmLjTXe59H/tzeqqnwSwr17KcSwLesSW/+j+kYUp0dqKqSdE0EI9bgwUYeNDQ3nULti/anfrFC0IbKyxAjaw89+BslvPwl1dcznGhzYOKKl4LIFk54u58ya1fmSQQ+aJu0Ms2cbzzmdsKZ+KM5f3AapqZQTxQaG809u5V2uY1eOmcQ93zGyTwV2u1TzkpPlKy8Pfv5zSTKbG6/Uv784b994o5iU5OaKyMblkj7/7GxJNOz2M/9ZqqtlDZk3T1pJfvlLMcDxVEArKiSp0So6uVzUg6ZJlRAYzGbiKYbio+BysmSJ/JvYbDKv1oPqI1QVQoWiTfHPf8LmzZIENjZKMuXb/BwZCbfcItbYQcf6v6xfL9rSE3W+A8THywfcdptkXW7S02W20003STVvxQpZxIYPh8mTNczmGTD7E7nDcC86gNirjRwppcCBAwHZTXvoIfjHPyShNZmk7XD3btmsNJvl5/jZz0SiERUlVdEffpCfKThY5kJFR0s++9pr8q22bRPpTfJpTmjQdZF77NghefKUKadn493SfP+9W8XjctF130qOcq73tYFDzCd+o+InY7HA8BEmvnrPRW0tuDBTQSQb3vqO8yePCXR4CsVpUVYmgg8PQ4fCsC5H4OWXyaEHqxnLERLRQ0KJjdUIC5Pk5cILAxdzW2HGDFlLXn1VEjSTCQ5VRBJzyfVs/+IQpfvKvTMLHQRzuCaIzO+X8fg1QRwaMIMFn5i8JjENDdLOsXSprHHHVguLi8Ws+5xzZK3JyZFqZWqqJIJvvikbmz//uSyXJ5LwlpcbTtzZ2eJ2eTIKCiDcVg/1Yvk9hSVy8bvggh/999bumT0b/vhHTEVFTGUxc12z4ehRjpoS2bxZfodGjDCS6l27ZEM6IsLfr+DQIXey3Qnk1iohVCjaCA6HFPeOHpVju92wQrbZpOA3Z04zTmR1dbI6PfPMiSfDjx8vtqSXX95MJulPYqLkfccxbZqI7i++2N/a9MABGDtWtk5nzvR+xt/+JqMnQkNlIb3oIpGGglxkZ8ww1Cz9+8simJcn53z0keSto0aJDMczTHjJErj++pOGT1ERbN0qX2VlxvMVFbJj3Jo4HMaCQ34+5roqnJ7LrqZx7iWxJ3yvomXo0we6dXFRnIMhG13u4PxAB6ZQnAZNTVIZ8oz3SUpyj5X7/VNQV8cL/EqSQc0MwTbS0uQa6THJUEgbXWSkmM14/NRKy010PTeNpJ6hlHy7i4q6ILqQRwa5hOgOsueBOaOUn193MUvWR/kKYdi6VZK622+XNUXTxD104UL597JY5Lpz6aWSZHz/veE8eviwjMcYMEBylq5dZQM4K8tIAI8cOb2fq1s3aRs5fBj0I2In65WLnj9BfujOSnCwzLN6+GFJCJkNhUWQkMDChRpDh0qF0GqVzXePbHTSJEnm4+Mlwa+rk3+fuLhTf8v2jpKMKhRthKeeMpJBk0kqYWazSH4+/VT6F45LBr/7TsTwf//78clgZKQ0GO7YIc0G11xzymTwlPTpIyvf5GOGe9fUSKBPPOFd+cxmuaja7VIFvOgi4/SiInE+9WAywVVXGeEdPCg/WlAQTJxonLdypXFj5EtZmbz2v/8rLm8rVvgngyALbWvLP9atM5Lg9JIf2EF/72smq5kJk1WF8GyTmQkZA8Ox0oQLM3WE8F1eGnpRcaBDUyhOyddfG6YkNpskItYSqQ6uZjTvcw06JgixExKi8cADKhlsjr59Zb5gTIz/8/G947j3neEsve5NHuIRMsn1vubM3U/Z3//FoJDd9Owp13LfauHzz8tG7TPPiMu2x0XUbpdk79prJSd55BH5/r5s3w7/9V8yJeG++6SCuWLFiZNBk0muZRdeKD2LL78sm64jR7rnTFZIQtjp5aK+3HEHBAUxgO0kUwAN9VBezrJlotoJDpbbJw/ezVs6p2xUJYQKRRtA10VO4sFuF7XH++/LohEff8wbqqsl2Tv/fKP72ZcbbpAmhuee4/jGwJ9ITAx89ZVkqMf+EH/8o5Qxm8narrnG/3jevOM/dsYM43jpUpGcTppkyDUcDkkUQXrzvv9eFtJ//EOkOL7mNSA5cWqqcXyicR1ng8ZGic/DeQfeZSNDvcfhkRo9erRePJ2V5GRI7xuC3dKACw0XJnLJ4OC8VYEOTaE4KQ0N/nPmrrjCndA89RSbHH34A0/KSCBNg2Ab118vrpeK5unSBf7yF0mi+vWTzol//AMuvCKEsHdeZtCHf+L2qPe5hdfpyy6ZW1hXh2XB+/TY/QVjRjTS1CT7n7ou69G334qMdNMmSTIyM8XQxjcBTE+XpfG++6TC60HXj9+49OCpMs6cKa6pr74qsf/859Jf79kcXrIEcDZBlchopuBe5FRCKFKl2bPRcLuuAhQWUVZmjOsYMcI4fdcuw8HXNyE8lWS3o6AkowpFG+CTT/x3BkeOFFlJs7r1JUtkku3+/ce/1rWrNN35ZlZnA6tV7ET795fE1HcWxrvviqT0k0/8Vr+MDBlc70mStm6VXdIBA4y3Dhtm9E64XCIdveMOeX7DBtmBfecdqSDu39/8AODQUPnMgQPlol5bK4t+Q4OMr9i/H6/pwtlk82ZD6poUXk3G1gXs5Vnv6737B7XbMRrtCU2T/w+J0Y1UFHtko6Gs+qiAtHtO/X6FIlDs3WtUnbp3dycZBQVseHEtL3APubj7wENCSE7W+MMfAhZquyE6Gu6++wQvXnkl2qhRpM+ZQ/o38yghhu8Zw0aG0rhxI4kHDnLhJZex8XASO3b4L3sbN4q88Nprm3cR1TTpWxs4UGYXfvKJsT6AVH979pQksHdvSSxPNaNQ191ma5WVgG7IRfv06TzWmKfi3nvhzTeZxiLeZo6M0aqtZdEiO6NGSXJtsRgGQD/8ABMmyK2Uh86SEKrbEYWiDfDkk0ZyExQkkpDjksGKCkkEp05tPhn85S9FHnq2k0Ff7rxTJu56mh09rFkjW2++w5nwd3wD6Q/0RdOk78IzCLi4WIqRaWli/b1jhyy869b5J4PBwbLY3ngjPPCA9Nh43EtDQ/1HMS1Z0nwi2ZK4XP4Gr+fp37KJIdThdrUxmxk1vpNMu20DZGZCjz4WNHRc7j7CVRtsJ+65VSjaAFlZxmNPxWntffN5oeE2CkimDjtoGvHdbMya1blbxlqMbt1kkXj8cWItlfyML7ifvzONRUSU5GJ56w1GOr/nogt177JntYqKp6JCjNmef95oFTgWi0UkvU8/LX3y114rlb9XX5VK4MyZks+dzsD6rCxR0VCu5KInZNAgmDiR3mTTDXdmV1jIsmWi4gkJ8frhAYZsNCHBaGEpLDRGaXVkVEKoUASY9evFZdND9+7+fXOATHTv31+mvR9LRoZsOb7yilhktTaTJklfYe/e/s/n5cG4caJ7dTN6tJ+5KUuW+E2tACSB87VKX79eqoMul5HI5ebKgulpzP/97+U9mZnND68fN85waz1wQHbezyY7dhhSoOhoGLDzA5ZgaLlMQRbGjTu7MSgMMjOh26AYQnDgxEQTZlY7BuNYtzXQoSkUzeJyiVrCQ58+sPqzo7z4YQIuTBwgHQ2dhAQICzMdJ8lX/ATMZvjDH2D1aujZkxAcnMd3/IZ/cJVrPilL3yZhyXtcOrmKSy8VZaIngXO54O23Rdq5efOJv0VoqFSipk+X65P5DNvJGxulyoiue52/lVz0BNx3HxowjUVyXFZKVWkDa9fK4ciRxqlgtL07AAAgAElEQVQ7d0rl1mQy3EZdLnfi3cFRCaFCEWCeeMKQBZlMonDwJjUlJWIZd/HFYiXmi2fWztatzWSQrUzPnlIVPNbmurZWmgcvuwzy8tA0WSg9uFzwwQfHf1zv3v7afk2TRVPTJOcNCpLd1auvlp3zU83eDQmBc41pDyxdevaqhLruPy9snGUNpg/msxZjYGRwmMVvV1JxdomOhm7pZqLtDeho6GhUEMkPb6qEUNE2OXxYetVAqhXbt8Mrf9iH7nJRTRglxJJgKSW0SxSDB8vgc0ULM2KESFJuuQUAMy4Gso3beYU79j3A3e+N5uWx7/DeOy769PF/68GDIuh56inD2fSnouuySfD00yIEWrAAqKkGp9OQi8bESG+GwuCii6BHDyMh1HUoLmaR+3DIECMhdzqNucGdrY9QJYQKRQA5eNDfbTMmRpIcQBro+vWTnrxj6d1b3FWefdbQVwaaqCipZN7TTGPWp59K5vb881x4gdOvkLlggfReHMv06SIV1TSpKt5+u6zPGRnGjMIzYexYYw5hXp7/7ntLsmeP0Q8aeng3Q+6fgu5wkIX7jkHTSOoWRELC2fn+iubp0QO6p8rOi1c2uqiF7tQUihbGVy7qcMA/n69FzxYDsUN0I4FC7ClRoJmMNUPR8oSFiTLno4+8rREakEIByWU7Yc4cet10Lm/9aj133+1v5K3rsuF59dV4q1E/htJSmer085+LxHT+fK9KFMqlOjiVxSIX9Z3npBBMJrjnHjLJJcPjIltczDfLnDQ0iInfOecYp3tko53NaVQlhApFAHnqKUObrmkifwypLJTJ81dddbye0iNl2bxZMpy2hsUiw55ee+34JojqarjnHoInjOaKkcZ2W2UlfPnl8R/lqQI+/DDcfLNU+CZNMl5fseLMdP02G5x3nnF8tqqE3urgnj2MffdOrA01HKQbR3HPHLTbGTpcXXpbm8xM6DEsEgtNODHRSBDL96W5DRkUiraFJyE8cMA9x277DnA5AR0XGnarE+LiSEgIvECkU3DFFbBli+g8j2XNGsxjR3HDyluY93yx3ygDkLEhd90l4ydO93LT0CBr1L33yubos8/6j//1UlHOUDbyC9ztJEou2jw33giRkUaVsKmJ2rxSVrnNpn1lo9u3S1XX11jm4MGz7z0QaNRdiUIRIKqqpHDmcSoLDobf9P5CqoIff3z8GwYOlG3Gxx+Xk9syt94qjX+jRh3/2oYNXPX3kZgPH3Tf4MgIiub8PTTN31zHd/xhdbX/WIfTYdQoo6B65Ij0+p0OxcUiI1m9Wiq6X30l/Rvz58Nbb4khwHPPwYMPSv/Iso9LWfZ+EXMbr+AX/JO7eFFmhdntmEKClaInAGRkQExaBOHmOlyY0YE99ODQB2f4n0ihOMuUlcleYEOD9DTZtVrYnUMQDQxiCyZ0SE4CzcQVV6iCUKvhMZx54onjZ/rqOrzxBmmTe/DPPs9w/31NXkWKh88+g1mzZDOzOXRd1qQnn5Qk8Pe/FyFQc2tjXBzMmVHMB45LeI1fEkup/Ec4tm1DIYSFwa23GgkhQGERixdJltecbDQszPDLq67u+HuHKiFUKALE88/7X2DGn1NC4m0zRR/ii9UqZbL162X+Qnth4EBYtQpeeuk4s5sE1xGmHHlHVr+KcvbvlxbEU5GU5D9IdvHiM9u1CwqC8eON42XLTm00uW0b3H+/7NC+/DK88Ya4oy5YIMOIlyyRRXvDBqkOlh6opHLXYYL1WmoIox4b5USBPRSCQwgORvUPBgC7XUwCusXVoQM6Jmqxs3r+wUCHplD44akOFhbKBpa2cwdmVwO/4++s5lywBkFcHFarvwGXohUwmyVT27lTLEGPpbIS0wO/4+pHB/D+L5f5VZ4Ajh6F3/5WNg89xmNFRbKxeNVVMkL4ww+bTz6CgsSh9PnnZe35dcy7ZLDPOOG886R1Q9E8d99NqjmfXuyWY0cdK/9TTl2dJH/9+xunNicb7eh9hCohVCgCgGeenqc6GGTV+fXh3/sPNgIYPlwG4/z5z8fvSLYHzGYZJLhrl6x2PsxmrmyB79kDuXuZ96/qE3yIP76Dlw8cgJycMwtpxAgjPy0uloTvRNTUiPr12H+W5nA4oCKvAg4cQMNFPMUAVBDJwejBEByMpsmO47EGBIrWITMTeve3oAFOTDiwsXxtSMfXAinaFZ6EMD8fIoPqYHcO/dlBGTEcJNVbHZw61T2oXtH6ZGaKxGfhQv8p9B6ys0m5fjIvHvgZf7ol3ztI3sOiRdIZcuedMibphReanyYFsoH44IPyrf72Nxg7Rse8c5s0Fvqi5KInJzUVrriCC1jofcpx6KjXj8A3ed+2Te7TOtM8QpUQKhQB4N13ZffXU53qGVnE+L1v+J/0+OOiifTtdm6vpKRId/1//iMXZaA/OxmI2+WxrIzv38oh95F3T5l9DRwoNt8eFi8+s1AsFv82kGXLTvwt33vPp3kfSeaSkmSwfZ8+Uq0cORLOPx+S6/bS6+Ay+rGTy/mEG3mLCCrYmzyOiJRwUlLkR+/fX6pVitYnMxO6DEkkBJGNgsaq6kHUbz/DXQWF4izhcEhi0NQkG1ZhB6V3cDgbeJ+rvdVBQI2aaAtMmya9hc8+2+wgSO3LL5h5TzofnvMI54/2b3qvqJBKVHMqlcRE6Z1fsEBUKZeff5Twz+dJL1yXLrIQ/vCD/5tUQnhq7r2XqfjcNFRWsHh+CeCv3Glqkt9DVSFUKBRnDV0X6aFn1ITF7OKGo89IX4iH2bPFPKajNYf87Gcitfnd78BsliqhB5eT+Q/tFPeYrSceB6BpMGWKcbx+vSG9OV2GDjWUNaWlzc+L2rzZ38l0wgSR6vz97/Doo/Bf/yU/xt13w6zgz4j+ci799O30Iptz2Mr/cC9r064mJCWG4GAxtbFYZHCxIjCkpYEtzEpiaBVO929cOZFsfH1ToENTKABRPLhcsmFot9Rj3rMbDZ1EjrCasd7q4IAB0m6uaANYreL+kpMj/fO+je8AjY3E/+9DPPNRGn+buJioqOYVCcHBcOGF0mXxnwWN3DlgJamv/bfIWhIS5L7grbfEpeZY+vYVK2XFyRkzhpRRqfTHMBBY9WU5NTWy4Rsba5yakwPJycZtWH6+cd/WEVEJoULRyixbJhcaT1UqyVTM5Q6f0RLh4ZJ1dFRCQ+Xn27CBicOrSaTQ+9Ln/IyKtbskY/v9741BXMdw/vmGgtbp9B/dcTqYzf6OpcuX+1/oa2pkV9ZDbKysxc3y0UesuvGfuHSoIpz1jOBxHuRo2nCIi/ee1q+frOXTpp1ZrIqWw2qVKm2PNM/4CRN1hPDtV1UBjkyhEDxy0YICiKjMA5eT3mTzNTPQrTZvdVCNmmiDxMdLj8GGDf6Db91ohUeY9vQ0PiyfxgXnGJPOhw6VrpBFr+7jkeSXGfm3SzHFx0rD+2OPyeedTNYeFCRaUsXpcd99frLRhqIKVvxHmjZ79jRO27NH7hVSUuTY6TRGSnVEVEKoULQyTz8tO8C6DiacTKn6mBR8dvwefti4AnVkBg/GvGYVV18XJHOCgAaCWMDlcuV96ikYMAC+/vq4t9rtMG6ccbxsWfM7d9XVstv65z9LE361T5vioEHeeysqKvzVN++95191vOUWjnOMA+CDD6i9+ibWuoaxmcF8xBXkkwJp6d4Pt9vhgQfgzTebbzVRtC6ZmdBrRJR7/IQZHRMLczKbH4apULQiTifs3i3rw5EjEFF2AIABbOPfzBQdoWYiJsZfJaFoYwwdKvKS994TeecxRP+whMfe7MJ/Mu5h4d2f81rQr7jktz2xD8iQpsJ//1tsyE+G3S4D159/XnaYL730LP0wHZDLL2dK8k7jWHex6AUZTOybEObkyH1aZ5GNqoRQoWhFdu6UzT6pDupENR3lKj7EKzAZMAB+9avABdjamM1c+uJUQob192o4P2AWjbg1Gvv3y6DdsWPhmWcgN9f7Vl9zGU8vhi/r18su+htvyJzDhx6S6txvfysN/Q6Hf5Xwm2+gsVHaQXylouPHn6CNc/58mD2bt12z+YBZbGAYVpoISu/iTQanTJEJIrNmeXNeRYDJzISQrrHEmCpxuZfAvXo6+Z/8hMnRCkULcPCgXJeKiyHI7CToqGwUlhJDDaEQJT1qV1xx/JhXRRvDM1g4K0v6C2y2405J/vB5Ym+8GF588QRDBo9h8GBRzixbJr0On38uPQvuvnzFaWK1knDvbAZj9IqsWW+msqTRLyEsK5O/5s5iLKNuURSKVuSJJyQZdDpBczYxrGkNQ3wuSrz4Yqdb6SMi4OIrbZDZAzJ7UGztwlIm+5/0/ffSsJeZKQODHn2UrhU76NfXkNF4zGUcDlGk3nGH9OH40tAgM6AefFASynfflWSyqUmqhytXwuuvG+fHxJxAKjp3LuWz7+TPzj/xKH+SsRJAWNcoiI0jJUU2bp94QlREirZDSgoEh2ikJ9TgcvcR1hLKpn+r8ROKwOLrLhrRVAq6i3T28RUXSkJhC8ZshssvD2ycijMgLAz++lfZDT7TGSEJCXDddTLctqAANm2SRWXixGYTTMUZcOutTAsyBkI2NbpY/thqUlP9Dd1zclSFUKFQtDBFRTKzzukE3eUitLGc6SwkGreN5fXXS3NcJ8TrlhcVBQP6M7fvo+jaCS5PmzeLBnTAAKa+eqUskiVH2bNH56uvJIF7//1Tf8/6eli6VL7ee08qhA8/LP9OHm655XhHUP2dd/nsug+4XP+ID5jlrTIFxUZgT4nm5pvFUHXs2DP+a1C0AiaTDKnv1Ufq8k7MODGzal0HM3BStCt0XRJCl8vdP1iVB0AU5eSSARFSHZw8WW0ytUsyMsQydPHiE7sBWa3iXvb44zIZvaBA5lNdf73YWytajuhoplyXhAnD4nXRu0WYTTrduxun5eTIpnV4uByXl/u3nnQkVEKoULQSTz8tSYjTCVpjIwPZwgjWy4sREdIz10lJTfXpCTSZ2WkfwbZ520+ZIA85+CmxO1bg+moh2e9v5o6rSzi4owp8HFtHjBAzl9/8RhS5xxIcLOqeXbtEZrpwoZicduly/Lqd+/QCbpvj4BH9v6kggmrcw6WiohkxIYx586QFJDj4x/9dKM4+mZmQ2DeWIBq8Cf36Q0nN+78rFK1AcbHI00pKJDkMKZL+wd30khMiZXiqGjXRzpkyRTY1n3sOeveWReZXv4LPPpP/AMuXi8P4kCGqz+AsE/P7WxmGYR6wvjiNsq/XHmcso2mdo0qotkQVilagvh4+/FAWemejE5urlqFsNKyPH3200+8Azp4N331nHL+3sS8DV6yQxppPP5Xd1W+/9btpN+OiL7v4NzOpbIxAa9SJrsrBbDFhiwnj1zdVcdVD/TCF2OjfX75Hfr5UahcuhOxsudiHhsLRo/KZ9fVyzqJFkiBOnixr+PoX1vD2u11wIv0adYTgxExwXARTLg3h1VfV+t1eyMgALSaGaO0gRXoc0MgeZ3cc2/cQPLBXoMNTdEJ83UUjg2rRqquIopy1jJKLVHg4ffp0jLG0nR6rFX79a/lSBI5evZg69EPWb5RDFyaWPbKCni+O9p5y4IC0mnTrJqpfgLy8jmkQpxJChaIVeOklqKwEp1OHhkZ6k80QNmOnTqah3nlnoEMMOCNGSOVm7145Xr5cbo6SU1ONxbOoSHZSFyzAtXgpbzf9nH9xC1WInkNHo4pwxjWt4pGiP5P65CF4OUIyuuhoCA4mxWZjTnAwc3rbOJgaz+L9PXl59UBoigZdQwfsWgOmmiYqak0seFdjwSs1cMi4XOpANeH06mtl5EVhzJ6tksH2RGwsREZpJIbXUlip4UKjjmB2/XsHQ1RCqAgA2dmyYVhQAMkO8bbXkZtUwsLAZGbWrONH3CkUih/PpD+P48lLnTgxA7BwTRRPW/YD6YAouvbtUxVChULRArhcxky7JkcjVhoYwQYGsUWefPHFjjeA/kfgMWV79FE5drmkF++ee3xOSkiAX/yCg9N+wV8ebGDr6iooKyO0vIZqwtBwkc5+XuNWgnDPoaislOpiM6QCIziHb7ifGBLYQX+cmGkqduEqLvTrL/AljhKGTI4leUw8ERGS0yvaD5ommw+pKU1srZSb7kaC2LCsgiF/CnR0is5GTY3cZJaXi0IhrEQMjg6QJidERBIc7O+srFAofjpRl5zPqNi5rC7pDcAmBlP/8hskJDzi9RPIyYELLpBNX5cLDh+WPzvaJnAH+3EUirbHggUiQXQ1OXE1NNGNgyRxhN5kww03+A/U6+RMn+6dPgHAJ59Aba1xrOsivZ09G7ZmBUFMLGT2IKJfV8Ljgzm360GSraVsYfBpfb9aQnidWwBIpIi+ZHEDbzGTTxnD96SQ73d+EA3cob3KzFsTSR4jnefnnivDaxXti8xMSO8Tgobu3R1evS0iwFEpOiOe6mB+PkSEuTAVFWChSWaaAkRGMGHCCWahKhSKH4+mMXV2gvdQR2PpW3n07ObwPpeTIypfT1dPQ4O/+VxHQSWECsVZ5vnn5U9nbT1mnIxiLf3ZgSUyDJ58MrDBtTFsNrjySuO4ulpGLYGMkPjVr+SvzGFcqzGZ4Jd3mJlzeygRE4bBVVey+Mb34LbbpKJ4EuYym1JivMe/4+8E0UgspSRSyHvM5m3mcBP/x3W8yweWa5n0yiwKEiXhDAmB4cNb7MdXtCIZGRCcnkQYxviJzSVd0R31gQ5N0cnwlYtGOEuhqQkdZD6txQohIUyfHuAgFYoOyoQ/nYfVR6S1qG4cPXO+9B7v2SO/nx19HqHSqSkUZ5G1a2HHDtAbGnA26SRQTAr5MhD1r3+FxMRAh9jmuPJKePNNmQ0IMv89NFRmCx5r99ytm4yKGDgQVq+Gl18GTGZ2NfXi0COv0u2ll+QfISdHtFj19ZJN1tez7WAkK1aNdQ+GdHFe7E6mp0VRnBPG7opEGp1NfBt8Gxfav6GfY7kMJXz4X7yVZ8xIHD3af2aRov0QFgbx3cOIs+RT1RSGjkYx8RQt30HijKGBDk/RSWhqkstTVZVIR9ObZNyEVy4aGUFkpMbo0Sf5EIVC8aMJjw9mzPBGVq6RGdBbGcgdnz4KEy8FzURlpbgAd+sG69bJew4dEt+DjoRKCBWKs8gTTwDo6DV1gIWRrCOSStIHRcHttwc4urZJXBxMmwZfujfoDh6Ehx46/rxZs+Duuw0Z1ciRMHeuDJoHcRK96SazDAQ8ZihgbS3864+A+74/Ohque2I02G9mcj7sflmeX2eew7n3QaSMACM/H/Z8I4+tVtRNWjsnLQ1Soh3sK5Y+wnpsbP38IFNVQqhoJXJzobFRri12O1h259GIlUoipEIYEcnUqarNXKE4m0z7dR9Wrs2VUiCwMz+S4OI8HAniKp6TA336GOd3xAqhkowqFGeJ/fth1SrA4aBJ1winkh7sZSBb0V5+Sa3wJ2H27BO/lpAgPjwPPODfU2OxwKRJxvF338mOe3PMny8jnzzcfLMxgD4lxbCUdjplYL2Hb781Hg8ffvzQekX7Ij0d0t1DiF2YcWHiu2/VLEJF6+EZN5GfD5HB9VBWhhMzXjPRiAglF1UozjLnz4zGFm/0kC9hKhmHjQU/J0dEQp41/+hRqKtr7SjPLiohVCjOEo8/LjMH9dpaXJgZzgZMuBh0TT8YMybQ4bVp+vSBoc0UaS68EN5/H0aNav59EycaBi8NDbBy5fHnbNsmIy08nHceDD7Gg2byZMPefeNGY2D0DvfYSJNJzGQU7Zu0NEjqHYmVRpzu5XDd3rgAR6XoLOi69A/W1IgZckRtPi40DuFuVrKHktTVolyMFYqzjN0O46YYO8y76EtM1ippM6H5AfV5ea0d5dlFJYQKxVmgshK++AKorcWFiWDq6M8OEkOqSHr+wUCH1y647TbD1jk6WnoIH3kEwsNP/J7oaH9d/5IlXgUIIDt6r79uHEdFwbXXHv85iYkwYIA8drkkgfzuO+OzBg0yZKSK9ktUFET1TiKacnRkHuHu2hQai8oCHZqiE1BQIGtFfr4YatmK8qghjEakl4nICK/dvUKhOLtMvbGL/CK6KXVGwIH9gLSuOBwd21hGXWYUirPAM89AXWUDNDTgxMIAthNEI4PuGAvx8YEOr10wfLiYyzz8MHz8sVT/TgffWV1FRbBli3E8b55U+jzcfLMY1jTHpElGlXDLFti0yXhNTQrpOKT1spEQXAVIH2ENoeR8tivAUSk6Ax65aEEBREboaEcKaMDqIxeNZMaMQEWnUHQuxp6rYY2P9h7vphfszQVkMzg3t2MPqFcJoULRwjidMPc9HWpq0QETToaxES0piYH/dXGgw2tX9OsHF10EEWcwHq5nT5ECeli8WP7cvt1fKjpuHAwZcuLPiYszpKS6Lv+uIP2Fp5hmoWhHpKdDt0SRBXkG1K//sjiwQSk6BVlZolooLYUIVznO+iYKSJYXzWYyB9rp0SOwMSoUnQW7HUZMNm42djCA2JJsqBSnupwc6NLF2CjOy/NXILV3VEKoULQwr78Opfl14HLixEwP9hBKDem3TCYyRk0wP9tomn+VcOtW2LcP/vUv47moKLjuulN/1sSJx8u1zjuvZeJUtA3S0iCjlwUNMZYB+O6H4MAGpejwVFZKZfDIETHECi3Lo4xoNNx3mOERTJ+hbtEUitZkwiURECZ9KS5MODF7q4Q5ORAcbIi8HA4xl+koqKuNQtHCvPpCvdd+SkNnFGth8BAGXZYR4Mg6D2PGyJw5D088cfpSUV+io2HYMOM4Pd1fMqJo/8THQ2yfBOzU4HLfjm/OT+hYW7+KNoevu2h4OGgF+TiwYfIkhO7+QYVC0Xqcfz4QF+s9LiIe9uWC7mLvXlkWOqqxjEoIFYoW5MsvYf/uBgB0IJkjxAbXYZk2kf79AxtbZyIoCMaPN45ra43H5557cqnosUyaBMnJIlu96KKWi1HRNtA0SBuRQBwyh8SFmYKmeEq3HQ5wZIqOTFaWGBgePQoRIY00FJdTRKL39UGjQ0hJCWCACkUnJC4OBoyN9EqDcsnAWeuAI4VUV0tFv6P2EaqEUKFoQZ797xKZdwCAJtXBSRPpPSSUYKVCa1WmTDG0/h4iI09PKupLWBjceSfcfz8kJbVcfIq2Q1qGmZTIagCcngH1C/YEOCpFR6WhQQwqCgvlOKK2gGLiseGQJ4KDmX5F2Ik/QKFQnDXGT7FClJjLuDBRTRjk7gVENtpRnUZVQqhQtBBb1tWzaYvxKxVDCV2TnSIXHRTAwDopcXHHzzK8+WZ/KalCAdJHmN61CZAbABcmVi3pYFOHFW2GPXvEpCo/X65H5iP51BLilYuaIiOYMiXAQSoUnZQJE/DKRjXAQTAcPASNjezZI20GnukUhYU+NYB2TqskhJqmBWuatk7TtC2apu3QNO1h9/OTNU3bqGnaZk3TvtM0rYf7eZumae9rmrZH07S1mqal+3zWH93PZ2uaphT2ijbD47/Yg+5yuY90BrMFbcYMQkJN9OwZ0NA6LTNninwUxCCmuWH3CkVyMqT2DcVCEy73bfnaXWdgbatQnAFZWdDUJGNxIiJ0HIdLKMOwux89Sic6+iQfoFAozhrp6ZDaLxyscvNQRCK6swkOHmD3blGTduki5+o6HO4g3QWtVSGsBybpuj4IGAxM1zRtNPAycK2u64OBucB/u8+/BSjTdb0H8CzwJICmaf2Aa4D+wHTgJU3TlG2jIuDUHSxmxTajETmKCnoNtkNKCgMGiIucovXp3h0eewwefBBuuinQ0SjaKmYzpI9KIgqxF3dhYldZAq6GpgBHpuhouFyQnS29SC4XRFBJfl0kdtyNzprG9BuVNl2hCBSaBuMnaBAr93SNWCknCvbmkp8vngQdsY+wVRJCXah2H1rdX7r7y7MNGwnkux/PBN5yP/4ImKxpmuZ+fr6u6/W6ru8D9gAjW+FHUChOypKnN9OAFZD/1P2sOZgnTwBQctEAk5QkswOP7SdUKHxJGxpLgtljLGOiSg8nd/HeAEel6Gjk5ckNZUEBhISA7Wg+1YRhRtQltshgJlxgC3CUCkXnZvx4vAmhjXoxfCoqRK+qZu9elRD+JDRNM2uathkoAhbrur4W+AXwpaZpecD1wBPu07sAhwB0XW8CKoBY3+fd5LmfUygCyldfuvyOuw2KhhA7UVGQmhqgoBQKxWmT3l2jW5xUaVyYacTKuk87iBZI0WbIypL+wcJCcS6uPlRGHXbv6+OH12C3n+QDFArFWWfgQIhODobQUEy4qCBSXsjNJSfn+ISwI0wparWEUNd1p1sa2hUYqWnaAOA+4EJd17sC/wf8oyW+l6Zpt2matkHTtA3FxcUt8ZEKxYlxOlmzz5D42Kklpr/sUwwapCpTCkV7oGtX6JEpq7qnj/DbVeqXV9GyZGVBcbH0EEaENXG42IqdGu/r0+ckBDA6hUIB0id43nl4q4T1BFFNKOTmsidHx26HmBg5t6YGyssDF2tL0eouo7qulwPLgRnAIHelEOB9YKz78WGgG4CmaRZETlri+7ybru7njv0er+m6PlzX9eHx8fFn5edQKDwULtrCYZckhDoQaypH6yIDpAYODGBgCoXitLFaoddw6eXSkaRwy4GYQIel6ECUlkoymJ8v/9/slUVU6BFYcAIQYatnzNVpAY5SoVCA2200JgY0DRv1FJII1VXsWVV43ID6jiAbbS2X0XhN06Lcj0OAqcAuIFLTtF7u0zzPAXwG3OB+fCWwTNd13f38NW4X0u5AT2Bda/wMCsWJWPSvAzQhrjEuTKQmOMBkIjkZEtRmr0LRbkg7L5U4SgD5XT5YG0t1Yc0p3qVQnB5ZWWIkc+SIyEXL95fh8rkNm3JOEdYgVZVWKNoCo0ZBcKgFoqII9iSEQN2ufRw+7J8Q5uUFKMgWpLUqhMnAck3TtgLrkR7Cz4FbgY81TduC9BDe7z7/dSBW0zgyv20AACAASURBVLQ9wG+APwDour4D+ADYCXwN3KXrurOVfgaFolkWrjQaPlyY6XWOGAIoMxmFon2Rfk44ScFlgCSE9djY9klOgKNSdBSysqCkROaWRURAfr7mLxedpUadKBRtBZsNRo8GYmOx0EgVEdRjgwMHyNleryqEPwZd17fquj5E1/WBuq4P0HX9Effzn+i6fo6u64N0XZ+g63qu+3mHrutX6breQ9f1kZ7n3a89put6pq7rvXVd/6o14lcoToSrrIIfjoprjA6EUo29TxqapuSiCkV7IzUVuifXA7K548TEt/+pCHBUio5AXR0cOCByUZMJwrQayupDsCKjTRIoZvAtwwIcpUKh8GX8eCAiEs1idbuNJkBjIzkfbSEx0RgpVlAgfcHtmVbvIVQoOhI731rvHSjsxEyyrRwiI8nIgPDwAAenUCjOiJAQGDIYzLjcc5E01mwJDnRYig5ATo64ixYUQFgYlO4txYQhcJrePRtTTFQAI1QoFMdy3nlgMmsQG4MNh1c2umfpAcxmY0C953e7PaMSQoXiJ7D0wxIa3fMHnZjJ6NYAKLmoQtFeyRiTSCRiGefCzM7CuA5hKa4ILFlZUFYGDgdERkL+IRehvnLRS4ICGJ1CoWiOqCgYPBiIjcVGPUeJpQkzBfvrqc4p6FCyUZUQKhQ/Fl1n6SZxIfTcL2YODkfTZBC6QqFof6RP7E4CMq7IiYnyplDyNh8NcFSK9ozTCbt3i1wUINTuorTKipVGADLIpefsEQGMUKFQnIjx44EQO7ZgMy5MHCUe0Nnz4kK6djXOUwmhQtFJqd68h+11GQDomIiigqDMVJKSIFipzBSKdklaLxvdIisBMZZpwMraD/YHNihFu+bAAakMFhSA3Q5l+ysJ0uvw+IlOD/0ObdjQgMaoUCiaZ/x4+dMUF0MQDYZs9OMtdOtqyEdUQqhQdFLWvbGdOsRh1ImJLhFVYLXSvXuAA1MoFD+aiAgY3KMakB5CHY1vlzUGOCpFeyYrCyorZYB1RAQc3t+AnVrv6xdMcYLZHMAIFQrFiejaFTIygNgYgt3GMjoaOXnBROT8QITbHLiiAqqqAhrqT0IlhArFj2Tlwloa3P2DLkz0yJCdovT0AAalUCh+MoPH2AmhDpDf7U27wwIckaK9ouuwa5chF7XboazCjA1xsx3IVrpcNjKAESoUilMxYQJgsWILtdCIlVJi2Esmzv97u8P0EaqEUKH4EeiOepbvTQU0dMCMk25D49A0lRAqFO2dtPHpxHoH1JvZVxGDo045yyjOnKIiKC+XhDAoCMqLGwlpqjTkonwN06YFNEaFQnFyJkyQP21xYh9fSAL12Mibu5JuSYaCRCWECkUn49CnP3DIlQKIrCzaVIk1OZ7ERLGuVygU7Ze089NIMomxjAsTdXoQO75uxyu9ImBkZUF1tUjJIiIgP9fhHUZvwsWU/kcgOTnAUSoUipPRpw/Ex4MlJgKz5vL2EeaUx9Ft91LveSohVCg6GWvm7cOBZH5OzHSNrQNNU9VBhaIDEBtvok9iGQAuNFyYWPlxcYCjUrRHsrMNuWhwMFSU6wTjAGAUa4m5aEwAo1MoFKeDyQTnnw+ayYTNbqYOO5WEs4ceJH/+T28LcH6+uAq3R1RCqFD8CL5drdGAzI3SMdGjj/QSqoRQoWj/aBqcN6wWEy5ANn2+X6ud4l0KhT/V1ZCXJ+6iZjNUVOiENFV45aIz+AqmTw9ojAqF4vTwyEaDo8VMsJBEcuiJ9avPSAoVN5nGRigsDFCAPxGVECoUZ0hjXiGrjvZ2OxBCEA0kDkoCVEKoUHQUep6bSCTG+IkdhyMDHJGivZGdDbW1MpA+PBwKDjQQ6pT/U0E0MMG+Hs49N8BRKhSK02HYMDGFskXawGSmkESKSKCyKYRue5Z7z8vLC2CQPwGVECoUZ8jWNzZQQRTg7h8MqiUoyk5CAoSGBjg4hULRIqRf0Jt4igBJCI/WhVGU1xDgqBTtiexsqQ4CWCxQXe4kxC0XHc8K7JPHiNOMQqFo8wQFyf5NUJCGFhxEJZE4CGYPPei28j3vee21j1AlhArFGbLmP8U4kMnzLsx0S5abRFUdVCg6DomDkugefASQhLARC2vePxDgqBTtibw8o3+wqgpCnFVuXYnbXfSCCwIYnUKhOFMmTJB+wqAwGyCy0d30olvWIrEURiWECkXnwOVi1dZw6pGLgYZOWl8pC6qB9ApFx8FkgnE9Crz9Xi5MrPiyOqAxKdoPtbVw9CiUlIDVCoUFLkLrSwGIoJKxrFb9gwpFO2PsWOkHttnNYLFSSCJ76EEU5YTu2gDI73xtbYAD/RFYTvaipmnvAKccvqTr+pwWi0ihaMOUrtzO1oZe3v5Bm1ZPXN94QFUIFYqOxvAxNoK211OPDRdmNu4IDnRIinZCUREcOSKD6V0uqKtqJB65S5zMUqyZaZCZGeAoFQrFmRAeLr2Ey5YBNhslTbFk0xsnZrpt/YKs86aDyUReHvTqFehoz4xTVQj3AHvdXxXApYAZyHO/dyZQfjYDVCjaEuve2uUdN6GjEWVvJCTUTFwchIUFODiFQtGidJ9oDKh3YmJvSSSNjSd/j0IBkhB65KLV1RDiqsWk5KIKRbtnwgQZIUOQFR2NfJI5SCpdK7ZDbi7QPmWjJ00IdV1/2PMF9AIu0nX9Wl3XH9R1/TrgIqB3awSqULQFvl/u8OsfTO0mC7yqDioUHY8u088hBbmrd2GipslK1vqqAEelaA/k50Oxe3RlRQXYG0QumkARQ9ik5KIKRTtl/HgxiTJbTBBko5AkMZbhEGzdCnTAhPAYRgNrjnluLaCmqio6BXpVNd8fSMbh7h+0Uk9KX3EbVf2DCkXHwxIdzvCYfd5jJxZWzD0cwIgU7YWsLLdUtA6a6p2ENMq4iQtYiMlqgYkTAxyhQqH4MSQmQp8+7iqhzUYx8eyiD104jJadBQ4HeXkiF29PnElCuAn4m6ZpIQDuPx8DNp+NwBSKtsaeuesoIAndLfwJNjuJ6x4OqAqhQtFRmTS4zDug3oWJ1d85AxyRoq2j67BnjzyuqgKLqx4z8v9mOl/DuHGqx0ChaMeMHw82G2C10GQKYjXnYqOBBGc+7NxJfb2hEGgvnElCeCNwLlChaVoh0lM4DlCGMopOwfcf5vn1D0ZEQEgIxMRARESAg1MoFGeFPuMTCUdkoi7M7NhnD3BEirZOdTUUFkpiWFsLNmctGpDOfnqxW/UPKhTtHG9CiAY2G7vpSRlR7Vo2etoJoa7r+3VdHwv0AC4Beui6PlbX9f1nKziFoi2xZoPZ2z+oA93SzWiaqg4qFB2Z1Av6kuAzoL6gKoyysgAHpWjTFBZCeTnU1ICu69jqRS46na9ljInqH1Qo2jU9e8q9n6YBQTaKSCSbXpIQ5h2C0tKOmxB60HX9ILAOyNM0zaRpmpplqOjwOLL2s6miu7d/0I6DhF7RgOofVCg6Mrah/elnygZkI6hRN7PmP+1MC6RoVQ4fhspKkYuaXE6CdAfglosmJcHAgQGOUKFQ/BQ0TdqAg4IAsxmHJYyVnC8JIcDWreTlBTTEM+a0kzlN01I0TftE07QSoAlo9PlSKDo0G1/fRA2huDCjA0E2jdgkK6ASQoWiQ2O1Mik91zug3omZbz4pDWhIirZNVhY0NYlcVHM2YKOeAWynK4dh2jR3WUGhULRnxo93G8sA2GysYDxxHCWGUnrv+pSBA1ztyljmpIPpj+FVoBaYDKwAzgf+AnzZ8mEpFG2LNV+X+8hFNcIiLYSFQVQUREYGODiFQnFWGTNWw5rbQANBuDCxcbO6oVecmOxsqK+XHkJrkxjKTGORvKjkogpFh2DIEPGQqKgAgoLYWTOAJizcx/8g42svBW1CYIM8A85E7jkWuFnX9c2Aruv6FuAW4LdnJTKFoq3Q2Mj3WVHehNBCEykZQWiaqg4qFJ2B7pMyiEGqgi5M7M6PwOUKcFCKNomuw7594HDIgc1VgwYMZrNUBqdODXSICoWiBTCbYdIk94FmojIoljWMNk54662AxPVjOZOE0IlIRQHKNU2LB2qALi0elULRhij88gdym7p5HUZDTQ7i0sVWVBnKKBQdn7Dxw8hA5hHqaFQ1WMnJUuMnFMdTXg4lJVIhNOlNBFOPhSZ6sAeGD4e4uECHqFAoWojp02VIPQA2G59xsfHiRx+Js1Q74UwSwrXAhe7HC4H3gQXAhpYOSqFoS6x5by9NWHBiBsBqDyIuXiRjqkKoUHQCundndLAxcteJmeXzjwQwIEVbJT9fJGQOB2jOJoKopxe7CaJRjZtQKDoYo0dDaKj7wGpllXWi8WJ1NSxYEJC4fgxnkhBej/QOAtwLLAe2A7NbOiiFoi3x/+zdd3Rc13nu/++eMw0DYNDZAHawiKJEioJIVavLkmwV21KsuMf2spO4XFtOu7lxHKfd6zT/YieOb/yLEjtOcZMsWbZkFauQkigWQSQBNoAESJAEARKVKDOYmbPvH2c4pLooETiYmeez1izOOVPwgLYIvHP2++7n1qdzy0VdDLGqMPG4t/dgZaXP4URk8hnD9ef3nLZBvcNzj4/5HEqmo5YWSKUgnbYEMikiTLCCnd6DKghFCkosBqtWnTwy7AstZ4DTBksUYkForR201vZn749ba//MWvv71truyYsn4i+39zibjs7NFYQljDFjQWmuf1DD4kSKw6qrqinFW/6TIcCOPRGfE8l0tHu3t1wU1+KQwiHtFYQVFd7lBBEpKKd/zpMOlfCLwK1w++1w333wgx/4F+wMncm2EyFjzFeNMR3GmIQxZn/2ODyZAUX8tPO7mxkmfqp/MJyhZo73i6CWi4oUj8orVzGHI4DXR9g1WMbIiM+hZNppa8sOlHEzlJDAgFcQXnvtac1GIlIo3vteCJysppwgP3/Pd7xi8PbbsxsV5oczWTL6V8B1wKeBVcBvAtcAX5uEXCLTwsafHiWNQzq7Q0uoLEpNjfeYBsqIFA+z9iIuoDl3PJEJsPGphI+JZLrJZODQIe8KobEuERJESbCQDrj8cr/jicgkmDED5s49dbx5W8T7UCjPnElBeCdwq7X2EWvtHmvtI8B7gF+bnGgiPrOW516M5paLBsgQqoxRWQnl5d7+MyJSJGprua5uW26DepcAT/7omK+RZHrp7YWBgexAGdebMLqMPTi4sG6d3/FEZJJccsmp+6OjsGmTf1neqjMpCF+rW0pdVFKQRjbvYsfY4lxBWMYoNXNLCQS8q4PqHxQpLldekiJICvAGy2x9XltPyCk7dsDEBGQyloB1iTDBubR6G5ZdcIHf8URkktx006n7ExPw2GP+ZXmrzqQg/BHwM2PMO40x5xhjbgR+mj0vUnA2/2sLLoFcQRgrDVBT5/0no/5BkeJTf9VSaugDvInDuw6WYK3PoWTaaGk5OVDGxck2G6xgJ5x/PpSU+B1PRCbJlVee2n7CWq8gdF1/M52pMykIfw94DPhHYCvwTbytJ353EnKJ+O65x0bIECCF1xTsVMRyewqrf1Ck+Jh1a1nGntzx0HiEAwd8DCTTyt69JwfKuERPHyij5aIiBa28HBobTx339norBvLJ6xaExphrTt6Ay4EngU8Bt+ANl3kie16koNjRMTbun5G7OhhhHFNWTlWV9ynQycJQRIrIBRdwBc/kDtM2wK/uP+FjIJlOOjpOXSGMMk4ZIzRwCNau9TuaiEyySy89dT+ZhCef9C3KW/JGM5D/5TXOn1wkY7L3F521RCLTQNdPNnHEnZUrCOPBBFWzIjiO+gdFilZJCTcvbecv97q4BHAJ8MzPB/j4/yj3O5n4LJGAnh5IJCzGzRAlyQp2EsDqCqFIEbjqKrjnHq8YPFkQfv7z+fP74usWhNZadUpJUdr4gwPAubmCMBoPU1Pr/Vet/kGR4nX+lVXE9o4xQhkuAba1nEnnhRSqHTu8otDNWAK4REhyDru8tWTLlvkdT0Qm2dKl3hYUXV3eFjT790NnZ/78zqifZCKvYuNGi0uACcIYLE5FufYfFBGcS9Yyn1ONg53Hy7xlglLUtm071T/o7Vyb9iaMNjV5U0ZFpKA1NHi3kzIZaG/3L8+ZUkEo8jKp/V1s6V9EgghgiDNEqiROdTXEYt4nQCJSpNaupYktucOJlOH5jRo1Wux27z69f3BCA2VEikwgABdf7BWFa9bA5z4H11/vd6o3b0oKQmNM1BizyRizzRjTaoz5ava8Mcb8hTFmrzFmlzHm86ed/4Yxpt0Ys90Ys+a09/qoMaYte/voVOSX4rLj37YyRiy3XLS8xKWi2iEUUv+gSNFbvpwbw0++ZIP6J+4b8DORTAP79p0qCCOMU8UAM+nRQBmRIrJ8ubfLzKxZcPCg32nOzBsNlTlbksA11toRY0wI2GCMeQg4B5gLLLfWusaYk9debgKWZG/rgH8C1hljqoGvAE14w2y2GmMesNbqp7GcNc892Ac0nJowWhXTclER8TgO11x0guAzaVIEcQmw6alxv1OJjzIZOHQIkgkL1iXGOCvY6X1ooCuEIkVjyZJT97u6vGXk0ah/ec7ElFwhtJ6R7GEoe7PAbwF/aq11s8/rzT7nNuB72ddtBCqNMbOBdwKPWmv7s0Xgo8CNU/E9SJHIZHiutRwXwwQRQqSw8QrtPygiOfHLz6eOHsD7QbZzf578xJdJsX8/DA97A2UMligJr3+wvh7mzPE7nohMkcZGqKz0Wofvuiu/NqefqiuEGGMcvA3tG4F/tNY+b4xZDLzfGPMe4BjweWttG1APdJ328kPZc691XuSsGHj8BXZPLCJJBIuh2gySCM6kutr7lGfmTL8Tiojv1q7lXHZyJPvjp380zJEj+t2/WG3bdmq5qEOGIGlvwqiWi4oUldJS+MY38rO1aMqGylhrM9ba1UADsNYYsxKIAAlrbRPwHeCes/G1jDGfMsZsMcZsOXbs2Nl4SykSz39vD0BuuWhppUN5uSES8a4OBjSGSUTWruUqnswdZjLw+C/T/uURX7W0nJowGskOlDmXVi0XFSlC+VgMgg9TRq21g8ATeEs9DwH3Zh+6Dzg/e/8wXm/hSQ3Zc691/uVf45+ttU3W2qa6urqz+w1IQXvuqQngVEEYqSnXclERean6et5dt4kA3nogF4f1Pxv0OZT4Ze/elw6UmUkP1QzoCqGI5I2pmjJaZ4ypzN4vAa4HdgM/Ba7OPu1KYG/2/gPAR7LTRi8Ghqy13cAvgRuMMVXGmCrghuw5kbfNDgyy8VADFkgSpYwRJkqrcgNl8mVzURGZZMaw5NIZlDIKZCecbc2jZhE5azIZb5pgMmEBlxIS3nYTxniNRCIieWCqeghnA9/N9hEGgB9aax80xmwA/sMY80VgBPhk9vm/AG4G2oEx4DcArLX9xpg/AzZnn/en1tr+KfoepMC1/8fz9FGT6x+siYyScCPU1EAk4o0RFhEBMOvWsuj+/WxjFQCdPSWkUhAK+RxMptSRI9DXBzY7PaKEMa8gXLECyst9Tici8uZMSUFord0OXPAq5weBd73KeQt85jXe6x7OUq+hyOk2/uQwUJNbLhqriZKOQUkJzJ+v/kEROc3atazj+VxBODERYMMGuPrqN3idFJSdO2F0FHBdAriESXn9g1ouKiJ5RL/iigBYy3NbvI/2E5QQIEOwRttNiMhraGridu7DYAHIWPj5fUmfQ8lU27HjVP9gODtQZjm7NVBGRPKKCkIRILF9Ly+OLM72D0aoNoOMRyrVPygir66igsuWDVCCtym9xfD0IwmfQ8lU270bkkkLrkuUBHPpIs4JXSEUkbyiglAEeOHftjFBmAnCuASoLk8znnSoqYFwGGbP9juhiEw34YvXsJj23HH7gZB3tUiKQiYD+/bBRNJCdkP6Fez0+gxWrvQ7nojIm6aCUATY+PAQcGq7idiMUqJRiMVg3jxwHD/Tici0dPXVXMvjucOJJPxSc6+LRnd3dqBM5mUDZdas0XQhEckrKghFkkk2tlUDXv9ghCTU1FBT400OV/+giLyqa6/lPfwUhwygPsJis38/DA0Bros5/QqhlouKSJ5RQShFb/TZbezPzMcCCSLUBocYpTQ3UEb9gyLyqhoaWL0smduPEOCZX6kgLBY7d8L4OOC6hEgRxGUZezRQRkTyjgpCKXrtj3UCkCKEi0N5HMbGDDU13qqf+np/84nI9BW+/kpW0Jo77joaZGDAx0AyZXbuzG5Ib10iJFlAJzHGdYVQRPKOCkIpem3P9wOn+geD8RjhMJSVwdy56h8Ukddx3XXcxEO5w1TK8POf+5hHpoTrwp49MDHhbTsSJeHtP1hbqz4DEck7Kgil6O3d7fX/nCwITXlprn9Qy0VF5HVddRXv5DHCpACw1vLzH4/5HEomW3c39PbiVYZACeNe/+C6dd4PDxGRPKKCUIpbKkV7d1m2fzBKlASJUDy3/6A+6BWR11VRwbnryihnOHdq87NprPUxk0y6jg4NlBGRwqGCUIqau3M3be4i0gTJEKQ8MMZYKkxNDQSD0NDgd0IRme6C11/NBTTnjnsGQhw65GMgmXT79sHICOC6BEkTJcES2jRQRkTykgpCKWpHntjDOCW55aLhUgfHgYoKrxgMBn0OKCLT33XX8W5+hsG7LJhJW+7/qS4RFrJduyAx7g2UCZNiKW3esuGLLvI7mojIGVNBKEVt74Ye4LSBMrGo+gdF5MxcfDGXRV8kQgIAC/ziRyf8zSSTxnWhpQVSE17/YIQE57ALGhuhutrndCIiZ04FoRS19u3jACSzBaEtKVH/oIicmUiEc66aSRWDuVM7dhgyGR8zyaTp7oaeHl4yUOZcWrVcVETylgpCKV7WsvdABBdDiiCGDJlIjMpKb6uJuXP9Digi+cK5/houZmPueOBEkN27fQwkk6azEwYHyQ2UiWigjIjkORWEUrw6OmibmEeKMGAoYQIbChOPe/2DoZDfAUUkb1x3HTfwCA7eZcFMxnLvj3SJsBB1dMDwMOC6OGQoY5RF7NcVQhHJWyoIpWiNPredw9QzQRiAcNQQjRqiUS0XFZEztHIla6v3U8J47tSj9434GEgmS1sbjI24gCVImhXsxAk5sGqV39FERN4SFYRStPY92QWQKwidaIh43HtMA2VE5IwEAiy/YR61HM+d2rsvwJj2qC8orgs7dkA67U2RjZBkJa1eMRiN+pxOROStUUEoRWvvVm8K4ARhLGAjESoqIBBQ/6CInLnA9dfyDp7KHQ+PB9m61cdActYdPQpHjpAbKBNl3JswquWiIpLHVBBK0Wpr98bDTxDGJUCoNEI8DvX1EA77nU5E8s511/EONhBmAgDrWn78n0mfQ8nZ1NEBAwOcNlAm6U0Y1UAZEcljKgilOPX00HZiFhmCuAQIksYp8a4Qqn9QRN6SefNomn+cGKO5U+sfTfgYSM62zk4YHrK5gTIVDDOXLl0hFJG8poJQipK7tZl2GnP9g6EgBBxDWZkKQhF565bc1MhMenLHXUcCHDvmYyA5q/bvh5ETJwfKZDiPHQQq4rBkid/RRETeMhWEUpS617czRoxktn/QCQcpL4dgEObP9zudiOSrwPXXchVPEsAbOjKaCPLMMz6HkrPC2uxAmZT3v22QFKvYDhdd5DWfi4jkKf0LJkVp78Z+4LT+wRKHigqYPRsiEZ/DiUj+uvpq1pmtRPCWilpr+cn3NWq0EHR3w+HDnDZQJts/qOWiIpLnVBBKUWrbmQJOFYThWJCKCm03ISJvU1UVTeclKePUHoSbn02drCEkj3V2Qn8/pw2USXgTRjVQRkTynApCKT4nTtDWG8fFkCaExRAujxKPq39QRN6+xe9azmyO5I57+xz27/cxkJwVHR0wNOiC9QbKVNPPbLpVEIpI3lNBKMVn2zbaWJLbfzAYsBAIUFmp/kERefu8/QjXEyQDQGLC4bHHrM+p5O3q6ICRYe9Sr0OGc2nFzJsHs2b5nExE5O1RQShFZ+z5HRyiIVsQBgiHLCUlXjEYjfqdTkTy3iWXcFFoOyV4vYMWy4M/GH2DF8l09sqBMhnW8IKuDopIQVBBKEWnfX034PUPZggQjgaIx9U/KCJnSTRK0zrnJX2EO3dkSGhLwrx19Kg3VMZmvCuEISa8CaMaKCMiBUAFoRSdtm3ep/YnB8pEsgNl1D8oImfLwltWMo8DueP+IYft230MJG9LRwf09QGuzQ2UWcFOXSEUkYKgglCKy8QEbQcjWCBJGBeHcHmYigr1D4rI2WOuv45LeJ4ISQCS6QC//EXG51TyVnV2wkB/BvAGytRxnNrAAKxZ43c0EZG3TQWhFJfWVva6i0kTxMXBwcUJB2lshJISv8OJSMFYtYoLy/YS49QehI/dP/I6L5DprL0dRoZODZQ5h12wciWUlfmcTETk7VNBKEXF3dpMO43Z/kGHSMjFceD88/1OJiIFJRCg6cpSyjmRO7V/f3bZoeSVkwNlMmmvIAySYRXbtFxURAqGCkIpKt3P7GeM2KkN6SMQj8OiRX4nE5FCM/+21czlIAG8QuLEaIDnnvM5lJyxnh7vZjPehFGHNOt4XgNlRKRgqCCUotK2ZQiAJBFcHCIljgbKiMikMNdfxzo2U4I3XjSZcXjk5xM+p5Iz1dEBA/0Wmx0oE2aC89mhK4QiUjBUEErxcF3a2ry7CaJYIFweZv58iMV8TSYihWjBAi6ceZjYadtPbHh0HNf1MZOcsc5O6D+eBiwOGWbSQzyWgRUr/I4mInJWqCCU4tHeTltyLi4BJghjgHBJkJUr/Q4mIoWq6doK4gznjo8e9XoJJX+0tcHI8MnlohmW0gZNTRAM+pxMROTsUEEoxaO5mTaWnOofdDJgDE1NfgcTkUI19/YLmcshgqQBGBsP8OST/maSN89a2L4d3NMGypzHdi0XFZGCooJQisbYphYO0ZDdfzBAJOwtFT3nHL+TiUihMtdczUVszW0/kXQd1IPfdQAAIABJREFUnnho3OdU8madHCjjZgfKBMhwEZs1UEZECooKQika+zYew2Ky/YOGcEmA+nooLfU7mYgUrJoaLlw8SNlp20+8sHGCZNLHTPKmdXbCwMCpgTLBkxNGdYVQRAqICkIpDtbS1uL9BjaOtwN9pDTIsmV+hhKRYtD0zhrKOYHJHg8MWF54wddI8iZ1dMBAbwqL1z84ix7KZ5bB3Ll+RxMROWumpCA0xkSNMZuMMduMMa3GmK++7PFvGGNGTjuOGGN+YIxpN8Y8b4xZcNpj/zN7fo8x5p1TkV8KQHc3bcMzsHhbTgCEy8KsWuVvLBEpfHNuX0sDRwhnt58YTwR44lfW51TyZuzZA6MnTg2UWUy7t1zUmDd4pYhI/piqK4RJ4Bpr7SpgNXCjMeZiAGNME1D1sud/Ahiw1jYCXwe+ln3uCuAu4FzgRuBbxhhnar4FyWvNzexlKROEyOAQDFgcx2jVj4hMOnP5ZTQ5L1LKKAATNsiGR8Z8TiVvJDdQJnNqoMy5tGq5qIgUnCkpCK3n5BXAUPZms8XcXwO/97KX3AZ8N3v/x8C1xhiTPf/f1tqktbYDaAf0L7O8IfuCN2F0nBIshkjIUlYGCxf6nUxECl5JCReuTFJ+Wh/h3p1p+vt9zCRvKDdQJjthNECGNbyggTIiUnCmrIfQGOMYY14EeoFHrbXPA58FHrDWdr/s6fVAF4C1Ng0MATWnn886lD338q/1KWPMFmPMlmPHjp39b0byTvdznYwRYxxvB/pw1LBggVb9iMjUaHrXTEoZJ0AGgJETrrafmOY6O2GwP4O1vHSgjPYqEpECM2UFobU2Y61dDTQAa40x7wDuBL45CV/rn621Tdbaprq6urP99pKH2pq9C9TjRAGIxBxtNyEiU2b2ey+hnsOUnOwjTDqsf8r1OZW8no4OGDyewsXgkKGW48xYWg2VlX5HExE5q6Z8yqi1dhB4ArgaaATajTGdQMwY05592mFgLoAxJghUAH2nn89qyJ4TeW2Dg+w9Wo4FJk4bKLNmjb+xRKSIrF5NU0krZXgfTk0QZNOTo1jNlpm2du2CsZFTA2UW0oG5WMtFRaTwTNWU0TpjTGX2fglwPbDVWjvLWrvAWrsAGMsOkQF4APho9v4dwK+stTZ7/q7sFNKFwBJg01R8D5LHXnyRNpbkBsoYYygrD7B8ud/BRKRoOA5NayzlDOe2nzhyMMPevb6mkteQGyiTPjVQ5hx2aaCMiBSkqbpCOBt4whizHdiM10P44Os8/1+AmuwVw7uBPwCw1rYCPwR2Ag8Dn7HWZiY1ueS/5mbaaWQUbwf6cNClvBwaGnzOJSJFpem2esKkCJICYGzU5fHHfQ4lr6q31xsoY08bKLOKbRooIyIFaaqmjG631l5grT3fWrvSWvunr/KcstPuJ6y1d1prG621a621+0977C+stYuttcustQ9NRX7Jb+ObW+hibm6gTCQC8+ZBNOpzMBEpKjPeeznz6CKGt+XEeMph44a0z6nk1ZzqH/QGyoSZYE1wB5x/vt/RRETOuinvIRSZavs29+NiSGQHyoRLHM491+dQIlJ8Fi2iqXJfro8wRYjtz4+RTPqcS16howOG+tJYAtmBMn3MWT0TwmG/o4mInHUqCKWwjY+zd79DBocUIQBKK4MsW+ZzLhEpPsZw4bogZYxg8IaVDB5Ps3Gjz7nkFVpaIDHm5iaMzqabskvO8zuWiMikUEEoha2lhXZ3EUkiuDiAoaYuyLx5fgcTkWLU9L75BMkQwbssOD5mtR/hNJPJwLZtYNPeiAKHDEvZg1mngTIiUphUEEpha25mL0sZI4YFgo63hZQKQhHxQ+17rmA+ByhlFIDxdJDNz2jN6HRy8CD09lrcjHcVN0ia89ihCaMiUrBUEEpBsy80s5clpwbKhC11dVBT43MwESlOtbU0zT5COScAr49w/84Ex475nEtydu2CoWMTuBgCuERIsrLsIDQ2vvGLRUTykApCKWjdm7oYJp7rHyyJGRobwZg3eKGIyCS58LIoJYzj4C1JHBtK8atf+RxKcnbuhKH+DJYAQdLUcpzZa2brB4eIFCwVhFK4MhnaW5NMECGDA0BFraPloiLiq6b3LyaApYRxAMbGYP16n0MJAK4LmzZBKukNlAmSpo5jzLhsid/RREQmjQpCKVx797J3Yj5JwtmC0FA7M6SCUER8VX3zxSwKdOa2nxh3w2x7fhxrfQ4mHDjg9RDaVBqbLQiX0EbJZWv8jiYiMmlUEErham6mjSUkKMHFYAKGuhlGBaGI+CsWo2lBH6XZ7SfSBDnWlaC11e9gsmsX9Pa4uK7N9Q9eQLMGyohIQVNBKIWruZlWVjCBt5FwNOQSjUJDg8+5RKToXXhVOREmCJEGYPxEmscf9zmUsGXLS/sHGzhE/UwX6ur8jiYiMmlUEErBGt/SSgcLyWT/b15ebpkzB8Jhn4OJSNG78APLMEDs5PYT47DxOdffUEXOdWHDBmBiItc/OJ+DzFijTxFFpLCpIJTCZC37XhgiQTQ3UKaqNqDloiIyLVRetZrG0AHKsttPjNsIu5oTHD/uc7Ai1tUFXV02WxAGCJGmgS5m3qLloiJS2FQQSmHq6qJteMZLJozWzI6qIBSR6cFxaFo2QhmjOGRIEyTRP8ZPfuJ3sOK1bRsc78lgXe9K7Sy6qQiMMuuuq/wNJiIyyVQQSmFqbmYHK0nj4OJgjKG6RgNlRGT6uPDaShxcSk8uGz2R4dFHfQ5VxB55BNzEBBmc3HLRhefGcKrifkcTEZlUKgilMDU38yKryeBggUh2oIwKQhGZLi786EoMlgoGMVjGkgHa9rh0dPidrPhY6+0/yEQKNztQZh4Habyx0e9oIiKTTgWhFCT7QjN7WZpbLhovcykrg8pKn4OJiGTFVy9iSewIpYzhkCZBFHf4BPfe63ey4tPZCYcOZrCZNBkcKhmkgkEWf/hSv6OJiEw6FYRSkI5uPcwQFa8YKGOMz8FERE4yhqZVEzi4lDFKGofEsRF+9SvIZPwOV1weeQSSIyksBgMsYj9VDeXUrJztdzQRkUmnglAKT18f247UkCZIBgeDpWpWiZaLisi0c83nVgJQzjABLMPjQQ7tS7B9u8/Bisxjj5GdLuoQJMU8DrL4ijn6EFFEioIKQik8zc08zzoAMjgEDMQrteWEiEw/q+46h3lVI5QyRpAUI5SRPjbA/ff7nax4WAsvvpCBVIoMAaIkmEUPjXes9juaiMiUUEEohae5me2cj0sAi8EJQlmZBsqIyPRjDNxyRzg7bXQEF8PoQIpn16cZG/M7XXFobob+3jQWcHGYx0GcyjiL3rnE72giIlNCBaEUnuZm2llyaqBMaYZQCOrrfc4lIvIq3vXlCwkEA5QzgkOGYVtGz55Bb+qlTLr77iM3XdRgaaSdOWtmESvVelERKQ4qCKXgHN+8n2PU5X64V1Y5zJ4NwaDfyUREXmnG3AgXr0oQY4wgacaJkjw2zM8esH5HKwpPPelCaiK73USKuRyi8ealfscSEZkyKgilsIyOsqF9FpZs/yAu8RkRLRcVkWnttrsX55aNGmB4IsK2pwfp7fU7WWEbG4O9rSmwlgwOMzhGJBqg8bZz/Y4mIjJlVBBKYdmxg81cBHgFoWMs8aqgCkIRmdauuGMm8doIZYzikOYE5fS2D/Pss34nK2wPPgipsZP9gwEWsY/w8oXMXaglJSJSPFQQSmFpbqaFc7EY7wphMEB5uQbKiMj0Fg7Dze+NZKeNpkkTZHQozUM/GcV1/U5XuB78mYXURHZFiWUZe1j4jnk4jt/JRESmjgpCKShjm1vpYl62fxCiEYhEVBCKyPR3691LCETClDLq7UlIOe3P9NDe7neywuS6sGl9ElwXlwBlnKDCGWPxrVouKiLFRQWhFJSO53vppzr7aW+GeAVUZG8iItPZ0mWGZSuDuWWjo5Ry9GCK59an/Y5WkFpaoP9YBvBaDOZyCBYtpPH8mM/JRESmlgpCKRypFM17S0kSzg2UKa/VQBkRyR+3fmYeMTNOiDQWw4lMCU/8+yHGx/1OVngefBAyyRQuBothCXuJr1pIba3fyUREppYKQikcu3ezNX0ekB0og0u8OqSCUETyxo3vjRGpqyDGmLcnIeV0beujpcXvZIXnkZ8lIJPBxSFImkV00HjzMoy2HxSRIqOCUArG+PPb2UcjAC4OJuhooIyI5JWKCrjy3WWUMopDhiQRDg2W8uxPuv2OVlC6u2H/nhQAGQLM4BiB+jk0NlX6nExEZOqpIJSC0bn+IH3UZAfKuARCDmVlKghFJL/c+okZxEoNQdLenoRUsOW+gxw75neywvH005AYyWS3m3CYzwHMsqUsXux3MhGRqaeCUApG5wsD9OUGyriUlXmj3GfP9juZiMibd/HFMGtJnBjjuT0JD7UnefGZUb+jFYxf3J8kk8rgZn8NWsZuZl++mJjmyYhIEVJBKIXBWva2G4aJZ/sHM8Srg9TXo/2kRCSvBALwrt+YQamTIEiGDAEOuPVs/M4O7Ul4FoyOwqanEoC3GX0pI9RUQ+Pls3xOJiLiDxWEUhASuzvZnZiP9RaLYoDy6rCWi4pIXrrldodYXSkBMtk9CSvYu6GX/fus39Hy3saNMDpwsn/QYTbdmGXLaGz0OZiIiE9UEEpB6Hy0jT5qcscm6BCvMCoIRSQvzZsHa66uyC0bHSNGx3AVzd/XuNG366lfZUiM22z/YIBF7Ce0Yglz5/qdTETEHyoIpSB0PtdNPzVYDBbACWrCqIjktVvvKqW03BDEG37SyQKa/3sviYTfyfKX68ITDwyRIYCLQ5gJ5pUcZ+EVDQSDfqcTEfGHCkIpCJ07TtCfHSjjYAlHDZGICkIRyV/XXQc188qzpUuGYeIc3DtOy+M9fkfLWzt2QE/Xqe0m4gwTXzqLxUv065CIFC/9Cyh5L5GAw50p+qnObTkRr3SoqoKyMr/TiYi8NbEYvPPOOCXBFA4ZUoTYw1Kav/Wc39Hy1tNPWRIn0oC33UQDh9Q/KCJFTwWh5L2DLxxndNSSJIzBegNlakK6Oigiee+WWw2lNREcMhjgIPPY+8Qhjh9O+h0tLz11/yAJN4SLweCyIHCI8vMXUlfndzIREf+oIJS8t+/xTvqoBsj2DzrEKwIqCEUk761eDUvXxAkADmlGKKNrvIYX/3GD39HyzqFD0NaSIIODS4AYY9QtKKXxnBDG+J1ORMQ/U1IQGmOixphNxphtxphWY8xXs+f/wxizxxjTYoy5xxgTyp43xphvGGPajTHbjTFrTnuvjxpj2rK3j05Ffpm+rIXW54bpz04YtQQgqIEyIlIYjIHb7whSUhbAwdtIfScraP7P3dqT8Aw9/TSMD3pXVjM4VDBEfEWDlouKSNGbqiuESeAaa+0qYDVwozHmYuA/gOXAeUAJ8Mns828ClmRvnwL+CcAYUw18BVgHrAW+YoypmqLvQaahw4dhqHOAfqpOzhfFBB3KylQQikhhePe7oXxmCQFcAlgO0UDvgVE6fr7T72h5Zf3Ph0lMeD8pLAHm0YVZuoTFi/1OJiLirykpCK1nJHsYyt6stfYX2ccssAloyD7nNuB72Yc2ApXGmNnAO4FHrbX91toB4FHgxqn4HmR6am0Feo7STw1B0higrNwQjcKsWX6nExF5+2bMgKtuiBIIBnFIM04J7Syh+e+f8jta3hgZga3rx0gQxSVAlHFm1FlmL45RWup3OhERf01ZD6ExxjHGvAj04hV1z5/2WAj4MPBw9lQ90HXayw9lz73WeSlC1kLLpjHS/UMMEcfgrZ8qrw7R0AABdciKSIF4z3sgVhEiSAaAVlaw86njJI8O+JwsPzz7LCT7R8gQxCVAKaPULq3RclEREaawILTWZqy1q/GuAq41xqw87eFvAU9ba9efja9ljPmUMWaLMWbLsWPHzsZbyjR05AgMNncwQBUOLhmCEHCIVzpaLioiBeXKK6FufhRjDA4u3cxmOB2l5a9+4Xe0vLD+kXESo14xfbJ/sGLVfBWEIiL4MGXUWjsIPEF2qacx5itAHXD3aU87DMw97bghe+61zr/8a/yztbbJWttUp1nSBau1FWhvZ4BqShgnRRjCIQ2UEZGCEw7D+94XwJREcEiTJsgOzqP5+61ouszry2TgmV8MkSCKBUKkmVU6QnhmtX5WiIgwdVNG64wxldn7JcD1wG5jzCfx+gJ/3Vp7+k+0B4CPZKeNXgwMWWu7gV8CNxhjqrLDZG7InpMiYy207HBhXzt9VBMmSZoghMLE4zB37hu/h4hIPnnf+yBWeWpPwt2cw4FjJfT/5Am/o01r27bB0JFRxrP9gzFGqZ1fxvz5EAz6nU5ExH9TdYVwNvCEMWY7sBmvh/BB4NvATOA5Y8yLxpg/zj7/F8B+oB34DvDbANbafuDPsu+xGfjT7DkpMt3dMNDaDWNjjFLmzRc1hnAsSCSiK4QiUniWLYNzVjqYcBiHNMeoZYg4zX/3K7+jTWtPP54iPTxKhiAZHMoYpfbcmVouKiKSNSWfjVlrtwMXvMr5V/362amjn3mNx+4B7jmrASXvnFwumsHhBOXectFQiHiFobYWYjG/E4qInH0f+hBsfT6KMzFCmiAvsIZ5Gx/gmv0dmEUL/Y43LT19Xx8JGwEggKU0mKRiyQwVhCIiWZrDKHnHWmhpAdrb6WY2ATJMZAvC6mpdHRSRwnXLLVBWGSQQMASwtLGEIeJ0fO2Hfkeblg4ehINtyex2E4Yo49TODFIeN8yY4Xc6EZHpQQWh5J2eHujvGoHuIxyjjhCpbEEYZsYMFYQiUrgqK+Ed7zCYkigOaYaJc4TZNP/nLkgk/I437Tz9pIsdGMztP1jKKDWLK2lsBGP8TiciMj2oIJS8410d3IcFjlMDwIRTQjQWIB5XQSgihe3jHwcTCeNk915t5gJaR+aR/P6PfE42/Tx97zHSGUuaIBZDzCSpXVGn5aIiIqdRQSh5xdpT/YNDVDBGjBQhbDjCyR1GVBCKSCG74gqYMTNAIOoVhR0sJEGE1q8/4ne0aWV4GF7cNJHbbiLCBKGKEiqqgyxe7Hc6EZHpQwWh5JXeXjjek4F9+zj+KstFo1HUFyIiBc1x4N3vBiLestEEUdpppHlnGDZt8jvetPHMM+AODJGgBEuAEsaoqY8yZw6UlfmdTkRk+lBBKHmlpQU4dAgmkgxSgQEmAiUEwg41NdDQoL4QESl8n/oUmKCDEwxggG2sopMFDPzdv/odbdpYf38/NpEgQZQMAUoZo3ZpjZaLioi8jApCySvectE2JgjTzWwsMB6ppKbGEAxquaiIFIfGRliyhOxwmQxHmMMYMTb/5CDs3Ol3PN+l0/Dso6OkCZImSJgJgqURaueEVRCKiLyMCkLJG729cOwY0NZOP1U4ZEgQZcIpyfUPrlrla0QRkSlzxx1AKIRjMqQJ0soKnk1fRO/7fgvGx/2O56vmZhjpHc31D0ZJEqwsp6ZGHxyKiLycCkLJG62twNAgHD/GKGUYYJBKCIWYMQPmzIELLvA7pYjI1PjEJyAUMjixEhwytLKSNA73716KvftLfsfz1fqHTsDISG67iRij1MwvY+FCCIX8TiciMr2oIJS8cXIzeovhIHNJEiERLKesPEAs5g1ZUP+giBSLykq48EIgEiYcgkEq6GUGB5nH5m9vgXvv9TuiL6yFp+/rByBBCQEyRKIBahpKtFxURORVqCCUvHDsmLdklLZ2RokxTgmDVOSuDtbUwCWX+J1SRGRqfeADAAZTVkrAeMNlLIZHuIHhj38BDh70O+KU6+yEQx2pXP9gCQmIx6mtRQWhiMirUEEoeaG1FUiloLOTJBFShBgjBuEwdXVw000QDPqdUkRkat15J5SXAyaAUxajg4X8khsYpJIHhy7HfuCD3oSVIvL0o0kYHmacKC6GSLZ/sKEBZs70O52IyPSjglDyQksLcPAApFMcYQ7DVIBxCEYc5s6Fq67yO6GIyNQLh+Haa737JhTEjZXRxTzu5T08yvXsfKYf/uzP/A05xZ764VGwLgmiAMSCaaobSryprGorEBF5BRWEMu0dPw49PUBbO2DpYAEjlEE4RF2d4cYbIRLxO6WIiD+++EVYtMi7b6MxJoIxxojxMO/kD/jfnPjTr8NTT/kbcoo8+yxsf9ECkCBKjDFMRTm1tUbLRUVEXoMKQpn2WlvxpgS0t+PiMEwFFgPhMHPmwPXX+51QRMQ/K1fC7/wOXHQRRCIGyspImBgAW2jiFu7n4Pt/F/r6fE46uVIp+JuvZWBokDRBUoSIMQbxcmprYfFivxOKiExPKghl2mttxftFZnCAw8zmBOXeA6Eg73sflJX5Gk9ExHe/9mvwrnfB5ZdD3YwAxEoYpwSAPSzjfT3/wM9v/kesa31OOnn+67/g4LNdkE6TIEoVA0QDKZzyMpYty/ZaiojIK6gglGmtvx+6u4H2diIk2cjFWAIQClFVFfA2ZhYRKXLGwKc/DStWeFcKz10Vxg2XkMRbT3+UWfzxppv58k1bGB31Oewk6O2F7/xFj9djACQJM4fDUFVJTa1h6VKfA4qITGMqCGVaa2nJ3mlvI0CaPmq941CISy/1tpsQERFvwMwXvwh1dV5P4RXXhHGdMCnCpAlygnIefjTAB9415K28KCDf+KNextsO544XcIB0NA4zZ1FTo+WiIiKvRwWhTGutrUAyCQe72M4qXBzvgXCYT37S12giItNORYXXTxiLQXVtgEuvCBAkQ4YgI5STsg6HN3bx8Y9l+O53wXX9Tvz2NW8Y5eHv9YL1vplyhqkzfYzOXQ4Bh5kzYcECfzOKiExnKghl2hoYgCNHgI4Oou4Im7jIeyDgMGOWwxVX+BpPRGRaqq+Hz38eHAdqGkppXBaggkECZBikEptMkOno4pvfhM9+NrfKMi+5Gctff7AZkoncuXfxC5Kr1mIjJTgOrFoFoZCPIUVEpjkVhDJtnb5cdJgKhqjyjkMhbrpJ+0mJiLyWc8+F3/gN737D6jpKq6PM4ijlnGCMUug7Dv19bNoEd90FGzb4m/et+smnHmbvwWjueBXbKL/0PE5UzQOguhqWLfMrnYhIflBBKNPWye0mbFs7m2nKnY+WOdx6q3+5RETywZVXwi23eFfHZl84h2Q4Th3HWMh+Mjhw4AAkEwwOwhe+AH/7tzAx4XfqN2/w8a3807+eKgYNlvcv2MSzCz/IiRPeudpatP+giMgbUEEo09LgIBw+DPT0MDgaoouG3GO1c8KsXetfNhGRfHHnnbBuHdTMCFK6vIHjzCCAy238lCr3OOzvyPXe/dd/wcc+BocO+Zv5Tenv51t3PM6wPbWXxLtDj/DQVf+HRCpIIgHBICxfDrNm+ZhTRCQPqCCUaenkclHb1s5RZjKAN040HDFcdnmAWMzHcCIiecIY+NSnYMkSmLu0FDNnFgeYzy7O4U/4KpeOPQqHj+Sev3ev9/zubh9DvxHXZfd7/5D7Bq/OnSpnmLK73k3vRBV9fd65VavgvPPUXiAi8kZUEMq0dHIket/uXo4wB4v3E72yymiYjIjIGQiH4e67Yd48mLmiBsrj7GQF/8mv87/5A+7u+T2Co4O55/f2wm//NrnCarqx/+dr/NVTa3M/FwAuv2iCh46sYudO6OmBuXO9m5aLioi8MRWEMu0MDWWXLI2N0dETY4RSAEKkiNWVqiAUETlD5eXwpS/BggWG6OJ6CIbYwOV8j4/wAf6Lf+t9F9Wlydzzu7q8onB42MfQr+bJJ3noj55hO+djgQnCBEpL+HnqBnp6IJ2G0lLv6mBVFZxzjt+BRUSmPxWEMu2cXC461NLFGCUcZwYAFeFxFiwJ09DwOi8WEZFXNWeOt3H9gsYQZt5cXBz+hU+ymQtZ3v8s/5D+TcrLbe75+/bB5z4HY2M+hj7d0aOMvv/jfN1+PvuzoY5jzCC9oJFU2vt1JhCAm27yeic/9zmIRt/gPUVERAWhTD8nl4u27UgQJE2SCA5pyqpCXH65v9lERPLZihXeHoU188pgxgyShPkDvsYgcZY++2/8/ep/o6Tk1PNbW70iMpl87fecEuk0w3d+gt/r/RK7WMEAVUwQoqKhjJSJYAxUVnrf2x//MaxZo70HRUTeLBWEMq0MDXlLlUZHXLp7A4xml4tWMIyprFRBKCLyNl1xhTc4JlRfB7FSeqnjbv6ONA7n/8On+NuP7XhJMbV1K/z+70Mq9frvay2Mjp7drSushYMH4Yd3/og/2nADP+V2Mid/dSktI1RZxsyZ3tLQm2/29l7UEBkRkTMT9DuAyOl27vT+bNs8SDzTzyEaCOBSHhglVlfK6tX+5hMRKQR33QW7dgW4b2wutLWzxW3i63yB30n/LWs/cxFfu+tb/E7Lx3CzxdeGDd6Vty99Cfr7vYEzx497t5P3+/ogkfCWaX7sY3DZZW89XzoNO3bAxo1w5Kk27E/beZYbcbODZIIRh/pzy1nc6C0TLSuD3/xN776IiJwZFYQyrbS0eL9QHGxLMpsxhqikkkEClXEuudRoCZCIyFlgDHz5y7B7d5hd4/XYgwf4MXcwnwOcm9yJ/e53eWd8hH+PfIJUKEY6bfjOd+Chh7ytHF5PIgHf/rY37fM97zmzK3ajo14RuGlTtndxaBDuv58DzOcI9ZQwTqmThIVLWNxocgXgJz/pDZEREZEzp4JQpo3hYW9p0P79YIaHGKcEgyXOMFTM03JREZGzKBSCv/97uPPOCobG6hg7fox7+Dh1HPeeMAzz2UxLaA3ESsFx6OryNnx/M9M777vPKwo/+ck37uc7ccK7Crl582lLU9Np+Mm9hBODtHMpMzmKg8vw7BUsmh/KFYPXXAMXXviW/xpERIqeCkKZNnbu9H4R6NgzQTzRw3HqKOcEDhmIx9/W8iMREXml2bO9K4V/+D9nMRGJ0H00QDCTpoIhAljm0UU6FWL30HKIlkDknzh1AAAeyklEQVRJlI6OAGVl8I53QE0N1Nae+hPgnnu8Ag/g2We95aRf+IK39cXLDQ7C+vVen2Im87Jsz93LJUe+yUbWkSKMg8vErLmEK2LU1XnPqa+HD35w8v5+RESKgQpCmTZaWqCzE1KDJ4gzzB6WM4tuKC1lxfkhqqv9TigiUnhuuAE2bzbce281qXgFB3urKOs7wEL2s5IWbuEBnuVSHkncQDBjCM6dzchIJcuXGz7wgVe+37x58Dd/A93d3vHevfAnf+L1H86Z453r64Onn4YXXwTXfenrlyyBK4d/xryn3k83s/l3PgKAjVfQ78xg3TLvecEgfOYzEA5Pzt+LiEixUEEo08KJE9DR4e17FTgxTIogURKESEPFDG1GLyIySYzxNqF3HOjrc4hE6gkcC8LDbYx1ldLDLO7gx9RynJ+m3gP790E8zt/95TxKS6PcdttL32/GDPjKV+Ab3zg1KKy3F776VfjQh+DoUW9gjLUvfd0558CVV0L9yB5o8irN/48vMEEYwmH6KxZRP9sQi3nP//Vfh7lzJ/kvR0SkCGgel19++ctXro8pYjt3ev2DiXGXipHD9FFHBYPegxUV6h8UEZlE1dVw993e9NH584GZM+EjH4Hbbqe3dBG/5EYmiDCfTsaJYoeHYWcrf/6bXTxy//gr3q+0FH73d70CD7wBMa2t8NnPwoMPnioGjfGG1Hz2s/CBD0B9/ATccQeMjLCJi/gV14AxjNUvIeU6LF7svW71arj++qn5uxERKXS6QjjVJia8XX6/9S34wz+Ev/gLvxNNCzt2QFsbMDZKhdvPAAuIMAGhEDVzYyxb5ndCEZHCFolAU5N3O3YMmpsNzeXnMbJ0KTz9NHbTJpbb3XQzh4PMo8SOETvax5fvPE7sjwa4/MtXv2SkaDDoLUfdtQseeeTU13nhBRgdTPHrl3RwZelWare+CN/f5T1x/35wXdI4/DW/C0C6fh7HR0pYtcq7illR4e2jqP0GRUTODhWEU+nwYe+Tz40bveO//EtYtw5uvdXfXD4bGfEGD4yOestFHTLY7F5TxCu47DKjvaVERKZQXZ1XzF13HbS1RWhecz27n14Fv3iYqw48yWNcRxcNjFBGOJXit77i8O0H/geX/ftvYZefQ2cnPPmEZf+OUWLHj3NR+Tgv7C3HTSSpTvUQaOniyAMbiPN/gVfueP8D3k8HC7GV1Ry3tVRWwqxZ3mOf/vSrD6gREZG3RgXhVAoEvKkpp/vwh2HLFq+Lvkjt3OkNHQCIjx4hRJooSe+ElouKiPgmEIBly7zb2K0z2PahD9P8/2/l2h89x8MjQY4yiwlCHKeWD2y9m8+f+49UrF7Igd4Sb7xoMgHAfNJcxiGeZy3jeE2Am1hLHzV8ka9TwXDua/ZRzf/l0xCJMlw9n8SQ4aKLvMduvvmN90EUEZEzo+suU2n2bPjhD2kPLOUBbvHODQ/D+97nXR4rUg8/DENDwESSyvGjwMlJA4ZgdTkXX+xjOBERASAWg0suNfz2PU18/oXf4H/d2sIsenOPTxDmm/a3aW524fAhSCYIM8EVrOdL/C2f4B7+kv9FPYdzr9nHYv6EP+EQ9blz34z/EWNV9SQXLGFgyGHBAigrgwUL4M47p/AbFhEpEsa+fMzXZHwRY6LA00AE76rkj621XzHGLAT+G6gBtgIfttZOGGMiwPeAC4E+4P3W2s7se/1P4BNABvi8tfaXr/e1m5qa7JYtWybnG3sLRkbgw5e207VjkFt5gN/na16v3Ic+BN/7XtE1RYyOwrvf7X2QHOg/xjVHvsezXEaGIJSXs/ZDy/jWt/xOKSIir+b4M3v44K3D7O2vIUkUC0RIUkM/MznKLI4SJEMAF4PFYMkQoIXz6QvPgnAYEwkTLAlxwfkutQvLeXpjGNeFI0e8K5RXXukVo3/+597nqiIicuaMMVuttU2v9thULRlNAtdYa0eMMSFggzHmIeBu4OvW2v82xnwbr9D7p+yfA9baRmPMXcDXgPcbY1YAdwHnAnOAx4wxS621eTGu01pvL6au8GKo2s8DA7eyh2X8Fb9H/fe/Dxdf7G2qVCSOHIFvf9srBgHiYz0sopP1ZMfSabmoiMi0VnvZMr6/y/LJdx3h4Iv9jKcdwFvn0ctMes1sKIlCNJrb2J5oFBuOkOgPeBvYW2AMjmyEmjaIx6G/H1IpOP98bzjNRz6iYlBEZLJMyZJR6xnJHoayNwtcA/w4e/67wO3Z+7dlj8k+fq0xxmTP/7e1Nmmt7QDagbVT8C2cFem0t+wFjLf2JRplD8v4EN9nA5d500efe87nlJMvnYbHHoN/+Ad49NHsSddlyfAW+jht93kVhCIi017dDMM/3V/PrKuXUza/lrKGagKNjV6z35oL4JwVsHCRV9FVVkG0BBMIUFPjbXdxur4+b5/CEyegshLq62HtWnjHO/z53kRE/l97dx4fVXX3cfzzS0ISthAggIRNQZbiBhoUrVallipVoGqBFtEWWpG61/Vxq6I+VlyxWoUqKGKtqBSx6qtUBOqDUAERlUU2o+w7BBQISc7zx7nDTDBRIMnMJPf7fr3mlZkz95577v0lDL85554TBnGbVMbMUvHDQo8GngJWANudc0XBJqth/00ELYBVAM65IjPbgR9W2gKYHVNt7D5Jr1Ytv1jv8cfDQw+lsq9dO1i8mJ0l9bmOx/ntvme5/KJfkDJ/nl8DqgZauxYmTvQf+B9+6IfQpqVBy1obGVTyPH/if/yG6Rm07pBJ69aJba+IiHy/3FwY9Wwajz7ahLVr/YiYkhL/M/IoKfHbxpY3bQrbt/t1aCPlRUXQsCGccALk5MDgwaG7m0JEJK7ilhAGwzq7mFk28A+gU1Udy8wuBy4HaJ1kGYUZXHghdOoEt9xSm3W7j4KVKwB4lt/y2bpjue+iIWRPn+QzpRqiuBimT4f//Md/6C9aBBs2+A/9Fi3gzDXv0YwNbKGx36FBA04/Xf8DEBGpLlq3hscfP7x98/Ph0Udh27ZomRkMG+YXuRcRkaoT91lGnXPbgWnAqUC2mUWynpawf+qxNUArgOD9BvjJZfaXl7FP7DFGO+fynHN5TZo0qZLzqKjOnWH8eDi1V0NodsT+8tl0Z+DMYSwc+kQCW1e51q6Fp5/2CWFJCaxeDV984UfNtmkD7Y92DP7iTmYSMz5Uw0VFRELjyCP9Pfax3+H27euXuxARkaoVl4TQzJoEPYOYWW3gJ8BifGJ4cbDZZcAbwfPJwWuC999zfjrUycAAM8sIZihtD3wYj3OoCg0awMiRcPkfm2P16+0v30AzfjvmVF6/aRZxmAS2yhQXw9SpMGqU7w0Ev7xEfr7vIc3O9pMHXPvTJaSvXsn/RRJCS6FOs3p07ZqwpouISJw1agR33eWX573iCvj5zxPdIhGRcIjXmMTmwAvBfYQpwATn3D/NbBHwdzO7D5gPPBds/xzwopktB7biZxbFObfQzCYAi4Ai4MrqMsNoeVJS4PJhqRzbqil3XLSFgsIMAPZRiwceTWHBN5u57ZEcMjMT3NBDtG5d9F7BiNRUf69Iy5bR19deC40nvclWGrKQY/wbWfXpfloqtWrFv90iIpI4GRnQs2eiWyEiEi5xSQidc58A3+rvcc6tpIxZQp1ze4Ayl591zt0P3F/ZbUy0085vxPhXM7il7+csdsEYmZIS3h6znqUbGjDi0VrVYoKV4mKYMcM/IhMIgB8i+/nnlOrxvPRS6NABeOstZvLD6BsaLioiIiIiEhdxv4dQypfbO4/nHivgQiZGC/fsYfl7XzFokGPGjMS17WCsW+fXFZw2LZoM1qkD/fv7WeNWrIhue/bZ0KMHvstw5szocFGABg344Q8REREREZEqpoQwyaRfcwW3XbKKP3IP6RT6wm3b+HrlRm64Af78Z98Ll0yKi+G993wyGDtE9Jhj4Jpr/ALDU6ZEyzt08L2DAEyZQlGxn0wHgMxMOnfJoHHjuDVfRERERCS0lBAmGzMYNYoLjvuS5/k1LSKTqK5eDbt28sILcOWVPslKBuX1Cvbr53sG16+HsWOj2zds6JPE/StqvP02H9OFrwnmFddwURERERGRuFFCmIzq1IGJE+nQYCMvMogzeB9wsGIl7Ctk7lwYOBA++SRxTXQO5szxM4iW1St43HF+RtGRI/1wUfBJ4HXX+dlVAZg9GyZM4H3OiFbQIFsJoYiIiIhInCghTFZHHw3jxpHFTh7hBn7PX0gp2gsrV4IrYdMm+N3vYMIE4r40RVERvPEGTJ4cHb4a2ytYt67fZuTI0osMDxkCbdsGL5YuhfPPh927o/cPpqbRqHVdOnWK6+mIiIiIiISWEsJk1rs33HYbKTgGM5YnuYrsXathtR9GWlwMI0bAvfdCYWF8mrRjBzz7LMybFy1r1w6uvtr3Cpr5BPX552H58ug2555LtOdv/XpfsGULq2nBl7Tx5S1bcvoZKaTot1JEREREJC70X+9kN3w4nHMOACczh5cYyLEbp8K26E2EkyfD5ZfDxo1V25T8fHj6aVizJlr2ox/5CWLq1YuWTZ1KqRlRO3eGAQOCFzt3ws9+Bl98QQnGG/Tx5c2bQ06OhouKiIiIiMSREsJkl5oKL79MZBHCZmzkr/yOi1aNhD2792/22WcwaFDV3FfoHHzwgZ8c5uuvfVl6uk/yfvITSvXoLVkC48dHX+fkwFVX+dNg3z64+GIKPlrGOAbRhzcYy2+gcWPIzSUtDU45pfLbLyIiIiIiZYvLwvRSQTk58NprfsxlYSG1KOJ/9g2n47atjMh9jCLnw7hli+8pvPVW6Nu3/OoKC2HzZv8oKfFDPuvXL3vbfftg0qTSiWbjxvCrX0HTpqW33bIFnngiel9hejr84Q9B3c6xrN/tvDKlG+9wF3vJ8BtlZUGbNoBxyin+/kMREREREYkPJYTVRbdufhHCoUP3F1249knatdjDTRmPs3WPz6SKivwo0w8/hAsv9Pf8RZK/TZv8zx07vl19mzZ+aGfnztCxI9Su7SeE+dvfSs8i2rEjXHwxZGaW3r+wEB57zI8IjRg6FHJz/RqFf79hDh993K/0TnXq+GzUUsjLg1tuqehFEhERERGRQ2Eu3lNUxlleXp6bO3duoptROZyDIUMoHDuezeSwiSZsJofl1p4xjW9mVUprilza/h66Ro2ga1fIyDi0w6Sk+KUhNm/2HXiNGvkhnz16wFln+YljDmzW00/DrFnRsh49/HavvgobPt0Iq74qvVNGBhnHd+S83un07w/t2x/y1RARERERkYNgZvOcc3llvacewurEDJ56iikz6vPKyph4Ojh68yz22C5Wp7eDOrXBUti6FWbOhJNOiln7L0Zqqv8ZSSDBJ3fr1sH8+dHlLGrV8olgQYGfObRt2+i+AO+8E00GCwpgzx4YPdoPN2X7tm8lg83Tt/CLe7vQd2g6WVkVvioiIiIiInKYlBBWN7Vrk/PY7TB4HmzZvL84hRKOdwvI2rudxXuPwdWujWVmUlycwoIF/p7CHj2gSRN/S2KTJpCd7Yd6Ll0KCxf6+wTffx+2b48eLjMTjjrKDzd97bVoWceOfnhp3brRYaX5+bBrlx8mmpIC7Nrp100M5DGXARmT+NH04aR0bxaf6yUiIiIiIuVSQlgNNTmmKZx7Lmlr8slZ8B4525aSw2Zy2EwTNrGOIxi5+1q+3puFNW8OjZswc2YqRx7p14KP7d3LyPDrBzZv7petOO00PznMpk2+h7BevdLbg+8BnD8fpk/3w0pXrfJlKSm+npQU/Ayoy5eT6XbTi7fpzyu0S/0SXn8Dup8cx6slIiIiIiLl0T2E1VBRkZ+8JTsbrLgIxo2Du+/2mVlgLc25kYdZSgdIqwW5fp2/k09J4YEHSg8hXbLE9/7t3etfm/nlJE4/3Q8BXbwYPv3UDz9dtswnjFu3lh5qCtCsmZ8nhn2F5C6bQb/dL9CbyWQRzDTz3HMweHCVXhsRERERESntu+4hVEJYU+zdC6NGwX33+e49YA8ZDOcuptDTb5OeAbm55B7biEceNY4+GqZN84+I2rWhf38/THT5cpg71z/mzfNrEBYVwe7dvkdw925KTWDToAGc3GUvA6ZdwekrXyCFmN+t4cPhzjvjdDFERERERCRCCWEYEsKIXbtg5Eh46CHYsQMHvMgg/szVOILpQTMzSW/dnDP6NiI93Zc559cNbNXK9wjOm1f28hSxnPMJYu3a/h7Ffn320vbK80pnmOAXR3zmmW9PTyoiIiIiIlVOCWGYEsKIrVthxAi/Uvzu3XzAqdzO/ezEr0C/jWy+ScumU+cUCus1ZNcuIy3t4HK29HQ4/njIy/OPY46BWqklcMkl8PLLpTe+4AKYOBHSdLuqiIiIiEgiKCEMY0IYsW6dH0Y6ejSrio7gBh5hJW0pJoVNNKGEVLKsgLq1werW8UtW1Knju/0sBfCTyhx7rE/+unXzyWB6+gHHuekmePjh0mXdu8PUqcGNhSIiIiIikghKCMOcEEasXAn33MM3417jLu5hOmdRSC0cRgaFpTZNoYQf2BLyjlhD3gn7OOHMbOqcchyccIK/WfBAjz8O119fuqxDBz8LTU5OFZ6UiIiIiIh8HyWESgijFi6k5I67GDOpIaMYisMwHO1ZRjfmkMdcujKfenxd9v6tW0PXrtCli/+5aZO/RzD296hZM79S/VFHxeecRERERESkXEoIlRB+25w55N/xLOtn59O5YFZ0aYiKqlcPZsyAE0+snPpERERERKRCvish1EwfYdWtG0f+qxtHOgerV/uV5j/+OPozP//Q60xLg9dfVzIoIiIiIlJNKCEMOzO/1kSrVtC7d7R82zZYsKB0krhokV9nojxjxkDPnlXfZhERERERqRRKCKVsDRvCWWf5R8SePT4pjE0SFyyAWrXgwQdh0KBEtVZERERERA6DEkI5eJmZfjiohoSKiIiIiNQIKYlugIiIiIiIiCSGEkIREREREZGQUkIoIiIiIiISUkoIRUREREREQkoJoYiIiIiISEgpIRQREREREQkpJYQiIiIiIiIhpYRQREREREQkpJQQioiIiIiIhJQSQhERERERkZBSQigiIiIiIhJSSghFRERERERCSgmhiIiIiIhISCkhFBERERERCSklhCIiIiIiIiGlhFBERERERCSklBCKiIiIiIiElDnnEt2GKmVmm4AvE92OMuQAmxPdCPkWxSX5KCbJSXFJPopJclJcko9ikpwUl6rVxjnXpKw3anxCmKzMbK5zLi/R7ZDSFJfko5gkJ8Ul+SgmyUlxST6KSXJSXBJHQ0ZFRERERERCSgmhiIiIiIhISCkhTJzRiW6AlElxST6KSXJSXJKPYpKcFJfko5gkJ8UlQXQPoYiIiIiISEiph1BERERERCSklBAeBDMbY2YbzeyzA8ofMrMlZvaJmf3DzLLL2f/eYJuPzWyKmeUG5WZmT5jZ8uD9E8vZ/1wz+zzY7taY8qPM7L9B+Stmll6Z553skjguZmb3m9lSM1tsZtdU5nknsySISYWOXxMlcUy6mNnsoN65ZnZyZZ1zdVCFcelkZrPMbK+Z3fgdxz/JzD4N4veEmVlQ3sjM/m1my4KfDSvzvJNZssYkeO/qoA0LzWxEZZ1zdZAEcbnfzFaZ2a4Dyv9gZouCuqeaWZvKON/qIIlj0trMppnZ/KD+XpVxvqHgnNPjex7Aj4ATgc8OKO8JpAXPHwQeLGf/rJjn1wDPBM97Ae8ABnQH/lvGvqnACqAtkA4sADoH700ABgTPnwGGJfpaKS4O4DfAOCAleN000dcqDDGpjOPXxEcSx2QKcF5MXdMTfa1qSFyaAt2A+4Ebv+P4HwZxsyCOkViMAG4Nnt+qv5WkiMnZwLtARqS+RF+rkMWlO9Ac2HVA+dlAneD5MOCVRF8rxYTRBP8XBjoD+Ym+VtXloR7Cg+Cc+w+wtYzyKc65ouDlbKBlOfsXxLysC0Ru3OwDjHPebCDbzJofsPvJwHLn3ErnXCHwd6BP8M1hD+C1YLsXgL6HfnbVVzLGJXhvGDDcOVcSHGfjoZ9d9ZTgmFT4+DVRssYkqCcreN4AWHsQp1NjVFVcnHMbnXNzgH3lHTuIU5ZzbrZzzuG/wIp8fvTBf55AyD5Xkjgmw4A/Oef2Ruo7pBOr5hIZl2C72c65dWWUT3POffN9x6+JkjUmhPxzpSLSEt2AGmQw8Ep5b5rZ/cClwA78t0oALYBVMZutDspif8nL2uYUoDGwPeYPL7KvlBbvuAC0A/qb2c+BTcA1zrllFTiHmqaqYlIpxw+pRMTkOuBfZvYw/vaF0w6xzWFwOHE5GC3w8YqI/fxoFvMfrfVAs0OoNwwSEZMOwBlB3XvwPSdzDqXRIVBVcTlYQ/C9uhKViJjcDUwxs6vxieY5lVRvjacewkpgZrcDRcBL5W3jnLvdOdcq2OaqeLUtzBIYlwxgj3MuD/grMKaS6q32Ev23cjDHD5sExmQYcH1Q7/XAc5VUb42Q6L+VoH5HtEc49BIYkzSgEX6Y3E3AhNj7C8Mu0X8rZnYJkAc8VJn1VmcJjMkvgeedcy3xtyK8aGbKdQ6CLlIFmdmvgfOBgcGHJ2Y2NrhR9u0ydnkJuCh4vgZoFfNey6AsVnnbbMEP0Ur7jn1DK4FxAf/N7sTg+T+A4w/zNGqUOMTkkI8fdgmOyWVE/05exQ/DFiocl4OxhtJDuWJjtyEy9Df4GarhieVJcExWAxOD4dkfAiVAziGeQo0Uh7h83/HPAW4HekeG9IZdgmMyBD+/Bs65WUAm+ls5KEoIK8DMzgVuxv9DEBlHjnPuN865Ls65XsF27WN26wMsCZ5PBi41rzuwo4wx0XOA9uZnFE0HBgCTgz+yacDFwXaXAW9U8ilWS4mMS/DeJKLDH84Ellbi6VVLcYrJIR8/zBIdE/y9HWcGz3sAGlZNpcTlewVxKjCz7kFP06VEPz8m4z9PQJ8rQFLEZP9nipl1wE9ktrkCp1QjxCMu33P8rsCo4Pj64oTExwT4CvhxcIwf4BPCTZVUd83mkmBmm2R/AC/j74vZh/+mbkhQvhx/D83HweOZcvZ/HfgM+AR4E2gR+dIEeAo/W+WnQF45+/fCJxUrgNtjytviZyVbjv+GPSPR10pxcQDZwFvBvrOAExJ9rUIUkwodvyY+kjgmpwPz8DP0/hc4KdHXqobE5YigvgJge/A8q4z984L9VwBPAhaUNwam4hP0d4FGib5WignpwPjgvY+AHom+ViGLy4jgvZLg591B+bvAhpjjT070tVJM6AzMxH+ufAz0TPS1qi6PyD82IiIiIiIiEjIaMioiIiIiIhJSSghFRERERERCSgmhiIiIiIhISCkhFBERERERCSklhCIiIiIiIiGlhFBERELHzFqb2S4zS010W0RERBJJCaGIiISCmeWb2TkAzrmvnHP1nHPFcTz+WWa2Ol7HExERORhKCEVEREREREJKCaGIiNR4ZvYi0Bp4MxgqerOZOTNLC96fbmb3mdkHwftvmlljM3vJzArMbI6ZHRlTXycz+7eZbTWzz82sX8x7vcxskZntNLM1ZnajmdUF3gFyg/p3mVmumZ1sZrPMbLuZrTOzJ80sPaYuZ2a/N7NlQX33mlm7oJ0FZjYhsn2kB9LMbjOzzUGP6MD4XGEREamulBCKiEiN55wbBHwFXOCcqwdMKGOzAcAgoAXQDpgFjAUaAYuBPwIEyd2/gb8BTYP9/mJmnYN6ngOGOufqA8cC7znnvgbOA9YGQ1XrOefWAsXA9UAOcCrwY+D3B7Trp8BJQHfgZmA0cAnQKqj/lzHbHhHU1QK4DBhtZh0P6WKJiEioKCEUERHxxjrnVjjnduB781Y45951zhUBrwJdg+3OB/Kdc2Odc0XOufnA68Avgvf3AZ3NLMs5t80591F5B3TOzXPOzQ7qyQdGAWcesNkI51yBc24h8BkwxTm3MqadXQ/Y/k7n3F7n3AzgLaAfIiIi5VBCKCIi4m2Ieb67jNf1gudtgFOCYZ7bzWw7MBDfOwdwEdAL+NLMZpjZqeUd0Mw6mNk/zWy9mRUA/4vv4TucdgFsC3ojI74Ecss7voiIiBJCEREJC1dJ9awCZjjnsmMe9ZxzwwCcc3Occ33ww0knER2eWtbxnwaWAO2dc1nAbYBVoG0NgyGtEa2BtRWoT0REajglhCIiEhYbgLaVUM8/gQ5mNsjMagWPbmb2AzNLN7OBZtbAObcPKABKYo7f2MwaxNRVP9hml5l1AoZVQvvuCdpxBn5466uVUKeIiNRQSghFRCQsHgDuCIZ4Xny4lTjndgI98ZPJrAXWAw8CGcEmg4D8YAjoFfjhpDjnlgAvAyuDoaa5wI3Ar4CdwF+BVw63XYH1wLagXS8BVwTHFRERKZM5V1kjaERERCRRzOwsYLxzrmWi2yIiItWHeghFRERERERCSgmhiIiIiIhISGnIqIiIiIiISEiph1BERERERCSklBCKiIiIiIiElBJCERERERGRkFJCKCIiIiIiElJKCEVEREREREJKCaGIiIiIiEhI/T/TYeQPsPM8oAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + } + } + ], + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "source": [], + "outputs": [], + "metadata": {} + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការ​បដិសេធ**៖ \nឯកសារ​នេះ​ត្រូវ​បាន​បកប្រែ​ដោយប្រើ​សេវាកម្ម​បកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះ​បី​យើង​ព្យាយាម​ដល់​កម្រិត​ត្រឹមត្រូវ​ក៏​ដោយ សូមយកចិត្តទុកដាក់ថា​ការ​បកប្រែ​ដោយ​ស្វ័យប្រវត្តិ​អាច​មាន​កំហុស​ឬ​ភាពមិន​ត្រឹមត្រូវ​បាន។ ឯកសារ​ដើម​នៅភាសាដើម​គួរត្រូវ​បាន​គិត​ជា​ប្រភព​ផ្លូវការ។ សម្រាប់​ព័ត៌មាន​សំខាន់ៗ គួរឱ្យ​ប្រើ​ការ​បកប្រែ​ដោយ​មនុស្ស​ជំនាញ។ យើង​មិនទទួល​ខុស​ត្រូវ​ចំពោះ​ការយល់ច្រឡំ ឬ​ការ​ញែក​ចេញ​ពី​ការ​យល់​ផ្សេង ដែល​កើត​ឡើង​ពី​ការប្រើប្រាស់​ការ​បកប្រែ​នេះ​ទេ។\n\n" + ] + } + ], + "metadata": { + "kernel_info": { + "name": "python3" + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "nteract": { + "version": "nteract-front-end@1.0.0" + }, + "metadata": { + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} \ No newline at end of file diff --git a/translations/km/7-TimeSeries/2-ARIMA/working/notebook.ipynb b/translations/km/7-TimeSeries/2-ARIMA/working/notebook.ipynb new file mode 100644 index 000000000..39114dae4 --- /dev/null +++ b/translations/km/7-TimeSeries/2-ARIMA/working/notebook.ipynb @@ -0,0 +1,53 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": 3 + }, + "orig_nbformat": 2 + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# ការព្យាករណ៍ស៊េរីពេលវេលាមួយជាមួយ ARIMA\n", + "\n", + "នៅក្នុងសៀវភៅកំណត់ត្រានេះ យើងបង្ហាញពីរបៀប៖\n", + "- រៀបចំទិន្នន័យស៊េរីពេលវេលាសម្រាប់បណ្តុះម៉ូឌែលព្យាករណ៍ស៊េរីពេលវេលា ARIMA\n", + "- អនុវត្តម៉ូឌែល ARIMA ងាយៗមួយ ដើម្បីព្យាករណ៍ជំហាន HORIZON បន្ទាប់មុខ (ពេល *t+1* រហូតដល់ *t+HORIZON*) ក្នុងស៊េរីពេលវេលា\n", + "- វាយតំលៃម៉ូឌែល\n", + "\n", + "ទិន្នន័យក្នុងឧទាហរណ៍នេះត្រូវយកពីការប្រកួតព្យាករណ៍ GEFCom20141។ វាមានលេខាខ្ទង់ម៉ោងរបស់ទម្រង់អគ្គិសនីនិងតម្លៃសីតុណ្ហភាពរយៈពេល 3 ឆ្នាំចន្លោះឆ្នាំ 2012 និង 2014។ ភារកិច្ចគឺព្យាករណ៍តម្លៃអនាគតនៃទម្រង់អគ្គិសនី។ ក្នុងឧទាហរណ៍នេះ យើងបង្ហាញពីរបៀបព្យាករណ៍ជំហានពេលវេលាមួយជាមុខ ដោយប្រើទិន្នន័យទម្រង់ចាស់តែប៉ុណ្ណោះ។\n", + "\n", + "1Tao Hong, Pierre Pinson, Shu Fan, Hamidreza Zareipour, Alberto Troccoli and Rob J. Hyndman, \"Probabilistic energy forecasting: Global Energy Forecasting Competition 2014 and beyond\", International Journal of Forecasting, vol.32, no.3, pp 896-913, July-September, 2016.\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pip install statsmodels" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការព្រមាន**: \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវក៏ដោយ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវបាន។ ឯកសារដើមក្នុងភាសាមូលដ្ឋានគួរត្រូវចាត់ទុកជាប្រភពផ្លូវការជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញគឺត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសផ្សេងៗដែលមានកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/7-TimeSeries/3-SVR/README.md b/translations/km/7-TimeSeries/3-SVR/README.md new file mode 100644 index 000000000..ac0efeaa7 --- /dev/null +++ b/translations/km/7-TimeSeries/3-SVR/README.md @@ -0,0 +1,393 @@ +# ការព្យាករណ៍លំដាប់ពេលវេលា ជាមួយ Support Vector Regressor + +នៅក្នុងមេរៀនមុន អ្នកបានរៀនពីវិធីប្រើម៉ូដែល ARIMA ដើម្បីធ្វើការព្យាករណ៍លំដាប់ពេលវេលា។ ឥឡូវនេះ អ្នកនឹងស្វែងយល់ពីម៉ូដែល Support Vector Regressor ដែលជាម៉ូដែល regressors ដែលប្រើក្នុងការព្យាករណ៍ទិន្នន័យបន្ដ។ + +## [ប្រលងមុនម៉េរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការណែនាំ + +ក្នុងមេរៀននេះ អ្នកនឹងស្វែងរកវិធីជាក់លាក់មួយក្នុងការបង្កើតម៉ូដែលជាមួយ [**SVM**: **S**upport **V**ector **M**achine](https://en.wikipedia.org/wiki/Support-vector_machine) សម្រាប់ regression, ឬ **SVR: Support Vector Regressor**។ + +### SVR ក្នុងបរិបទនៃលំដាប់ពេលវេលា [^1] + +មុនពេលយល់ពីសារៈសំខាន់របស់ SVR ក្នុងការព្យាករណ៍លំដាប់ពេលវេលា នេះជាគំនិតសំខាន់ៗខ្លះដែលអ្នកត្រូវដឹង៖ + +- **Regression:** ជាបច្ចេកទេសរៀនក្រោមការត្រួតពិនិត្យ ដើម្បីព្យាករណ៍តម្លៃបន្ដពីការបញ្ចូលដែលបានផ្ដល់។ គំនិតគឺដាក់កម្រាស់ (ឬបន្ទាត់) នៅក្នុងប្រឡាយលក្ខណៈដែលមានចំនួនចំណុចទិន្នន័យច្រើនបំផុត។ [ចុចទីនេះ](https://en.wikipedia.org/wiki/Regression_analysis) សម្រាប់ព័ត៌មានបន្ថែម។ +- **Support Vector Machine (SVM):** ប្រភេទម៉ូដែលម៉ាស៊ីនរៀនក្រោមការត្រួតពិនិត្យដែលប្រើសម្រាប់ការបែងចែកថ្នាក់, regression និងការរកឃើញចំណុចខូចខាត។ ម៉ូដែលគឺជា hyperplane នៅក្នុងប្រឡាយលក្ខណៈ ដែលរឿងបែងចែកធ្វើជា​ព្រំដែន ហើយការរឿង regression ដំណើរការជាបន្ទាត់អនុគមន៍ល្អបំផុត។ ក្នុង SVM, មុខងារកឺណែលគឺត្រូវបានប្រើសម្រាប់បំលែងទិន្នន័យទៅប្រឡាយដែលមានមิติច្រើនជាង ដើម្បីអាចបំបែកបានស្រួល។ [ចុចទីនេះ](https://en.wikipedia.org/wiki/Support-vector_machine) សម្រាប់ព័ត៌មានបន្ថែមអំពី SVM។ +- **Support Vector Regressor (SVR):** ជាប្រភេទ SVM ដើម្បីស្វែងរកបន្ទាត់ល្អបំផុត (ដែលនៅក្នុងករណី SVM គឺជា hyperplane) ដែលមានចំនួនចំណុចទិន្នន័យច្រើនបំផុត។ + +### ហេតុអ្វីបានជា SVR? [^1] + +នៅក្នុងមេរៀនមុន អ្នកបានរៀនអំពី ARIMA ដែលជាវិធីសាស្រ្តស្ថិតិស្របនឹងបន្ទាត់ដែលមានភាពជោគជ័យខ្លាំងក្នុងការព្យាករណ៍លំដាប់ពេលវេលា។ ទោះជាយ៉ាងណា ក្នុងករណីជាច្រើន ទិន្នន័យលំដាប់ពេលវេលាមាន *មិនលីនុយ* ដែលមម៉ូដែលលីនុយមិនអាចផ្គូរផ្គងបាន។ ក្នុងករណីទាំងនេះ សមត្ថភាពរបស់ SVM ក្នុងការបង្ហាប់មិនលីនុយក្នុងទិន្នន័យសម្រាប់ភារកិច្ច regression ធ្វើឲ្យ SVR មានភាពជោគជ័យក្នុងការព្យាករណ៍លំដាប់ពេលវេលា។ + +## ការហ្វឹកហាត់ - បង្កើតម៉ូដែល SVR + +ជំហានដំបូងក្នុងការរៀបចំទិន្នន័យដូចគ្នានឹងមេរៀនមុននៃ [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA)។ + +បើកថត [_/working_](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/3-SVR/working) ក្នុងមេរៀននេះ ហើយស្វែងរកឯកសារ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/7-TimeSeries/3-SVR/working/notebook.ipynb)។[^2] + +1. រត់ notebook និងនាំចូលបណ្ណាល័យដែលត្រូវការ៖ [^2] + + ```python + import sys + sys.path.append('../../') + ``` + + ```python + import os + import warnings + import matplotlib.pyplot as plt + import numpy as np + import pandas as pd + import datetime as dt + import math + + from sklearn.svm import SVR + from sklearn.preprocessing import MinMaxScaler + from common.utils import load_data, mape + ``` + +2. ផ្ទុកទិន្នន័យពីឯកសារ `/data/energy.csv` ចូលក្នុង dataframe នៃ Pandas ហើយមើលទិន្នន័យ៖ [^2] + + ```python + energy = load_data('../../data')[['load']] + ``` + +3. គូរ​ទិន្នន័យថាមពលទាំងអស់ដែលមានចាប់ពីខែមករា ២០១២ ដល់ធ្នូ ២០១៤៖ [^2] + + ```python + energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12) + plt.xlabel('timestamp', fontsize=12) + plt.ylabel('load', fontsize=12) + plt.show() + ``` + + ![full data](../../../../translated_images/km/full-data.a82ec9957e580e97.webp) + + ឥឡូវនេះ យើងចាប់ផ្តើមបង្កើតម៉ូដែល SVR។ + +### បង្កើតឯកសារបណ្តុះបណ្តាល និងសាកល្បង + +ឥឡូវនេះទិន្នន័យរបស់អ្នក បានផ្ទុករួចហើយ អ្នកអាចបំបែកវាទៅជាសំណុំបណ្តុះបណ្តាល និងសាកល្បង។ បន្ទាប់មក អ្នកនឹងបម្លែងទិន្នន័យធ្វើជា dataset ដែលផ្អែកលើជំហានពេលវេលា ដែលចាំបាច់សម្រាប់ SVR។ អ្នកនឹងបណ្តុះម៉ូដែលលើសំណុំបណ្តុះបណ្តាល។ បន្ទាប់ពីម៉ូដែលបញ្ចប់ការបណ្តុះ អ្នកនឹងវាយតម្លៃភាពត្រឹមត្រូវរបស់វាលើសំណុំបណ្តុះបណ្តាល សំណុំសាកល្បង ហើយបន្ទាប់បង្អស់លើទិន្នន័យទាំងមូល ដើម្បីមើលការសម្តែងសរុប។ អ្នកត្រូវប្រាកដថាសំណុំសាកល្បងគ្របដណ្តប់រយៈពេលក្រោយសំណុំបណ្តុះបណ្តាល ដើម្បីធានាថាម៉ូដែលមិនទទួលបានពូជព័ត៌មានពីរយៈពេលអនាគត។ [^2] (ស្ថានភាពដែលហៅថា *Overfitting*)។ + +1. ចាត់តាំងរយៈពេលពីខែកញ្ញា ១ ដល់ ៣១ កញ្ញា ឆ្នាំ ២០១៤ សម្រាប់សំណុំបណ្តុះបណ្តាល។ សំណុំសាកល្បងនឹងរួមបញ្ចូលរយៈពេលពីខែវិច្ឆិកា ១ ដល់ ៣១ ធ្នូ ឆ្នាំ ២០១៤: [^2] + + ```python + train_start_dt = '2014-11-01 00:00:00' + test_start_dt = '2014-12-30 00:00:00' + ``` + +2. មើលឃើញភាពខុសគ្នា៖ [^2] + + ```python + energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \ + .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \ + .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12) + plt.xlabel('timestamp', fontsize=12) + plt.ylabel('load', fontsize=12) + plt.show() + ``` + + ![training and testing data](../../../../translated_images/km/train-test.ead0cecbfc341921.webp) + + + +### រៀបចំទិន្នន័យសម្រាប់បណ្តុះបណ្តាល + +ឥឡូវនេះ អ្នកត្រូវរៀបចំទិន្នន័យសម្រាប់បណ្តុះបណ្តាល ដោយការបំលាស់តម្រង និងបញ្ចៀសទំហំទិន្នន័យ។ សូមតម្រង dataset ទៅតែរយៈពេល និងទល់ដែលអ្នកត្រូវការ ហើយបញ្ចៀសទំហំដើម្បីធានាថាទិន្នន័យត្រូវបានបង្ហាញនៅចន្លោះទី 0 និង 1។ + +1. តម្រង dataset ដើមដើម្បីរួមបញ្ចូលតែកាលបរិច្ឆេទនិងកូឡុំ 'load' ដែលចាំបាច់តែមួយក្នុងសំណុំទិន្នន័យនីមួយៗ៖ [^2] + + ```python + train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']] + test = energy.copy()[energy.index >= test_start_dt][['load']] + + print('Training data shape: ', train.shape) + print('Test data shape: ', test.shape) + ``` + + ```output + Training data shape: (1416, 1) + Test data shape: (48, 1) + ``` + +2. បញ្ចៀសទំហំនៃទិន្នន័យសម្រាប់សំណុំបណ្តុះបណ្តាលក្នុងចន្លោះ (0, 1): [^2] + + ```python + scaler = MinMaxScaler() + train['load'] = scaler.fit_transform(train) + ``` + +4. ឥឡូវនេះ អ្នកបញ្ចៀសទំហំនៃទិន្នន័យសម្រាប់សំណុំសាកល្បង៖ [^2] + + ```python + test['load'] = scaler.transform(test) + ``` + +### បង្កើតទិន្នន័យជាជំហានពេលវេលា [^1] + +សម្រាប់ SVR, អ្នកបម្លែងទិន្នន័យបញ្ចូលឲ្យមានទ្រង់ទ្រាយ `[batch, timesteps]`។ ដូច្នេះ អ្នកបម្លែង `train_data` និង `test_data` ដែលមានស្រាប់ ដើម្បីបង្កើតវិមាត្រថ្មីដែលសំដៅទៅលើជំហានពេលវេលា។ + +```python +# ការបម្លែងទៅជាអារេ numpy +train_data = train.values +test_data = test.values +``` + +សម្រាប់ឧទាហរណ៍នេះ យើងកំណត់ `timesteps = 5`។ ដូច្នេះ ទិន្នន័យបញ្ចូលទៅម៉ូដែលគឺទិន្នន័យរបស់ 4 ជំហានពេលវេលាដំបូង ហើយទិន្នន័យចេញនឹងជាទិន្នន័យសម្រាប់ជំហានពេលវេលាទី 5។ + +```python +timesteps=5 +``` + +បម្លែងទិន្នន័យបណ្តុះបណ្តាលទៅជា 2D tensor ដោយប្រើការរួមបញ្ចូលបញ្ជីមួយ: + +```python +train_data_timesteps=np.array([[j for j in train_data[i:i+timesteps]] for i in range(0,len(train_data)-timesteps+1)])[:,:,0] +train_data_timesteps.shape +``` + +```output +(1412, 5) +``` + +បម្លែងទិន្នន័យសាកល្បងទៅជា 2D tensor: + +```python +test_data_timesteps=np.array([[j for j in test_data[i:i+timesteps]] for i in range(0,len(test_data)-timesteps+1)])[:,:,0] +test_data_timesteps.shape +``` + +```output +(44, 5) +``` + + ជ្រើសរើសទិន្នន័យបញ្ចូល និងចេញពីទិន្នន័យបណ្តុះបណ្តាល និងសាកល្បង: + +```python +x_train, y_train = train_data_timesteps[:,:timesteps-1],train_data_timesteps[:,[timesteps-1]] +x_test, y_test = test_data_timesteps[:,:timesteps-1],test_data_timesteps[:,[timesteps-1]] + +print(x_train.shape, y_train.shape) +print(x_test.shape, y_test.shape) +``` + +```output +(1412, 4) (1412, 1) +(44, 4) (44, 1) +``` + +### អនុវត្ត SVR [^1] + +ឥឡូវនេះពេលវេលាអនុវត្ត SVR។ ដើម្បីអានបន្ថែមអំពីការអនុវត្តនេះ អ្នកអាចយោងទៅកាន់ [ឯកសារ​នេះ](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html)។ សម្រាប់ការអនុវត្តរបស់យើង យើងផ្ដល់តាមជំហានខាងក្រោម៖ + + 1. កំណត់ម៉ូដែលដោយហៅ `SVR()` ហើយផ្តល់ប៉ារ៉ាម៉ែត្រម៉ូដែលៈ kernel, gamma, c និង epsilon + 2. រៀបចំម៉ូដែលសម្រាប់ទិន្នន័យបណ្តុះបណ្តាល​ដោយហៅមុខងារ `fit()` + 3. ធ្វើការព្យាករណ៍ដោយហៅមុខងារ `predict()` + +ឥឡូវនេះយើងបង្កើតម៉ូដែល SVR។ នៅទីនេះយើងប្រើ [kernel RBF](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel) ហើយកំណត់ប៉ារ៉ាម៉ែត្រ gamma, C និង epsilon ជា 0.5, 10 និង 0.05 តាមលំដាប់។ + +```python +model = SVR(kernel='rbf',gamma=0.5, C=10, epsilon = 0.05) +``` + +#### តម្រឹមម៉ូដែលលើទិន្នន័យបណ្តុះបណ្តាល [^1] + +```python +model.fit(x_train, y_train[:,0]) +``` + +```output +SVR(C=10, cache_size=200, coef0=0.0, degree=3, epsilon=0.05, gamma=0.5, + kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False) +``` + +#### ធ្វើការព្យាករណ៍ម៉ូដែល [^1] + +```python +y_train_pred = model.predict(x_train).reshape(-1,1) +y_test_pred = model.predict(x_test).reshape(-1,1) + +print(y_train_pred.shape, y_test_pred.shape) +``` + +```output +(1412, 1) (44, 1) +``` + +អ្នកបានបង្កើត SVR រួចហើយ! ឥឡូវនេះយើងត្រូវវាយតម្លៃវា។ + +### វាយតម្លៃម៉ូដែលរបស់អ្នក [^1] + +សម្រាប់ការ​វាយ​តម្លៃ ជា​ដំបូង​មុន យើង​នឹង​បំលែង​ទិន្នន័យ​វិញ​ទៅ​ទំហំដើម។ បន្ទាប់មក ដើម្បីពិនិត្យប្រសិទ្ធភាព យើងនឹងគូររូបតារាងលំដាប់ពេលវេលាដើម និងដែលបានព្យាករណ៍ ហើយក៏បោះពុម្ពលទ្ធផល MAPE ផងដែរ។ + +បញ្ចៀសទំហំទិន្នន័យដែលបានព្យាករណ៍ និងដើម៖ + +```python +# ការតម្រូវទិន្នន័យទាយទុក +y_train_pred = scaler.inverse_transform(y_train_pred) +y_test_pred = scaler.inverse_transform(y_test_pred) + +print(len(y_train_pred), len(y_test_pred)) +``` + +```python +# ការបម្លែងតម្លៃដើម +y_train = scaler.inverse_transform(y_train) +y_test = scaler.inverse_transform(y_test) + +print(len(y_train), len(y_test)) +``` + +#### ពិនិត្យប្រសិទ្ធភាពម៉ូដែលលើទិន្នន័យបណ្តុះបណ្តាល និងសាកល្បង [^1] + +យើងដកយកកាលបរិច្ឆេទពី dataset ដើម្បីបង្ហាញនៅផខ្វារដេខាង x នៃធាតុគូរ។ ចំណាំថា យើងប្រើតម្លៃ ```timesteps-1``` ដំបូងជាinput សម្រាប់ចេញលទ្ធផលដំបូង ដូច្នេះកាលបរិច្ឆេទសម្រាប់លទ្ធផលនឹងចាប់ផ្តើមក្រោយពីពេលនោះ។ + +```python +train_timestamps = energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)].index[timesteps-1:] +test_timestamps = energy[test_start_dt:].index[timesteps-1:] + +print(len(train_timestamps), len(test_timestamps)) +``` + +```output +1412 44 +``` + +គូរព្យាករណ៍សម្រាប់ទិន្នន័យបណ្តុះបណ្តាល៖ + +```python +plt.figure(figsize=(25,6)) +plt.plot(train_timestamps, y_train, color = 'red', linewidth=2.0, alpha = 0.6) +plt.plot(train_timestamps, y_train_pred, color = 'blue', linewidth=0.8) +plt.legend(['Actual','Predicted']) +plt.xlabel('Timestamp') +plt.title("Training data prediction") +plt.show() +``` + +![training data prediction](../../../../translated_images/km/train-data-predict.3c4ef4e78553104f.webp) + +បោះពុម្ព MAPE សម្រាប់ទិន្នន័យបណ្តុះបណ្តាល + +```python +print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%') +``` + +```output +MAPE for training data: 1.7195710200875551 % +``` + +គូរព្យាករណ៍សម្រាប់ទិន្នន័យសាកល្បង + +```python +plt.figure(figsize=(10,3)) +plt.plot(test_timestamps, y_test, color = 'red', linewidth=2.0, alpha = 0.6) +plt.plot(test_timestamps, y_test_pred, color = 'blue', linewidth=0.8) +plt.legend(['Actual','Predicted']) +plt.xlabel('Timestamp') +plt.show() +``` + +![testing data prediction](../../../../translated_images/km/test-data-predict.8afc47ee7e52874f.webp) + +បោះពុម្ព MAPE សម្រាប់ទិន្នន័យសាកល្បង + +```python +print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%') +``` + +```output +MAPE for testing data: 1.2623790187854018 % +``` + +🏆 អ្នកមានលទ្ធផលល្អបំផុតលើសំណុំទិន្នន័យសាកល្បង! + +### ពិនិត្យប្រសិទ្ធភាពម៉ូដែលលើទិន្នន័យទាំងមូល [^1] + +```python +# ដកតម្លៃផ្ទុកជាអារេ numpy +data = energy.copy().values + +# ការចម្រុះមាត្រា +data = scaler.transform(data) + +# ការបម្លែងទៅជា tensor 2D ដូចតាមតម្រូវការបញ្ចូលម៉ូដែល +data_timesteps=np.array([[j for j in data[i:i+timesteps]] for i in range(0,len(data)-timesteps+1)])[:,:,0] +print("Tensor shape: ", data_timesteps.shape) + +# ជ្រើសរើសការបញ្ចូល និងការចេញពីទិន្នន័យ +X, Y = data_timesteps[:,:timesteps-1],data_timesteps[:,[timesteps-1]] +print("X shape: ", X.shape,"\nY shape: ", Y.shape) +``` + +```output +Tensor shape: (26300, 5) +X shape: (26300, 4) +Y shape: (26300, 1) +``` + +```python +# ធ្វើការព្យាករណ៍ម៉ូឌែល +Y_pred = model.predict(X).reshape(-1,1) + +# បំលែងវាស់វិញ និងបង្ហាញទ្រង់ទ្រាយឡើងវិញ +Y_pred = scaler.inverse_transform(Y_pred) +Y = scaler.inverse_transform(Y) +``` + +```python +plt.figure(figsize=(30,8)) +plt.plot(Y, color = 'red', linewidth=2.0, alpha = 0.6) +plt.plot(Y_pred, color = 'blue', linewidth=0.8) +plt.legend(['Actual','Predicted']) +plt.xlabel('Timestamp') +plt.show() +``` + +![full data prediction](../../../../translated_images/km/full-data-predict.4f0fed16a131c8f3.webp) + +```python +print('MAPE: ', mape(Y_pred, Y)*100, '%') +``` + +```output +MAPE: 2.0572089029888656 % +``` + + + +🏆 រូបភាពគូរល្អណាស់ បង្ហាញមូដែលដែលមានភាពត្រឹមត្រូវល្អ។ អបអរសាទរ! + +--- + +## 🚀 ដំណើរការប្រកួតប្រជែង + +- ព្យាយាមកែសម្រួលប៉ារ៉ាម៉ែត្រ (gamma, C, epsilon) ខណៈបង្កើតម៉ូដែល ហើយវាយតម្លៃលើទិន្នន័យ ដើម្បីមើលថាប៉ារ៉ាម៉ែត្រណាផ្ដល់លទ្ធផលល្អបំផុតលើទិន្នន័យសាកល្បង។ ដើម្បីដឹងបន្ថែមអំពីប៉ារ៉ាម៉ែត្រនេះ អ្នកអាចយោងទៅឯកសារ [នៅទីនេះ](https://scikit-learn.org/stable/modules/svm.html#parameters-of-the-rbf-kernel)។ +- ព្យាយាមប្រើមុខងារកឺណែលផ្សេងៗសម្រាប់ម៉ូដែល ហើយវិភាគប្រសិទ្ធភាពរបស់ពួកវាលើ dataset។ ឯកសារជួយសម្រួលអាចរកបាន [នៅទីនេះ](https://scikit-learn.org/stable/modules/svm.html#kernel-functions)។ +- ព្យាយាមប្រើតម្លៃ `timesteps` ខុសគ្នាដើម្បីឲ្យម៉ូដែលមើលពីចុងក្រោយក្នុងការធ្វើការព្យាករណ៍។ + +## [ប្រលងបន្ទាប់ម៉េរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការពិនិត្យឡើងវិញ និងសិក្សាដោយខ្លួនឯង + +មេរៀននេះបានណែនាំអំពីការដាក់ពាក្យ SVR សម្រាប់ការព្យាករណ៍លំដាប់ពេលវេលា។ ដើម្បីអានបន្ថែមអំពី SVR អ្នកអាចយោងទៅ [ប្លុកនេះ](https://www.analyticsvidhya.com/blog/2020/03/support-vector-regression-tutorial-for-machine-learning/)។ ឯកសារនៅលើ [scikit-learn](https://scikit-learn.org/stable/modules/svm.html) នេះផ្តល់ការពិពណ៌នាច្បាស់លាស់ជាងនេះអំពី SVMs ទូទៅ, [SVRs](https://scikit-learn.org/stable/modules/svm.html#regression) និងព័ត៌មានលម្អិតនៃការអនុវត្តផ្សេងទៀតដូចជាមុខងារកឺណែលនានា [kernel functions](https://scikit-learn.org/stable/modules/svm.html#kernel-functions) ដែលអាចប្រើបាន និងប៉ារ៉ាម៉ែត្រ។ + +## កិច្ចការ + +[ម៉ូដែល SVR ថ្មី](assignment.md) + + + +## ប្រភព + + +[^1]: អត្ថបទ កូដ និងលទ្ធផលក្នុងផ្នែកនេះបានចូលរួមដោយ [@AnirbanMukherjeeXD](https://github.com/AnirbanMukherjeeXD) +[^2]: អត្ថបទ កូដ និងលទ្ធផលក្នុងផ្នែកនេះត្រូវបានយកមកពី [ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំប្រឹងប្រែងឲ្យបានត្រឹមត្រូវក្តី ក៏សូមយកចិត្តទុកដាក់ទំរូវថាការបកប្រែដោយស្វ័យប្រវត្តិកាត់ដណ្ដើមអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅភាសាដើមគួរត្រូវបានគេយកជាមូលដ្ឋានសំខាន់។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែដោយអ្នកជំនាញមានបទពិសោធន៍គឺត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកអត្ថន័យខុសបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/3-SVR/assignment.md b/translations/km/7-TimeSeries/3-SVR/assignment.md new file mode 100644 index 000000000..eacb57107 --- /dev/null +++ b/translations/km/7-TimeSeries/3-SVR/assignment.md @@ -0,0 +1,22 @@ +# ម៉ូដែល SVR ថ្មី + +## សេចក្ដីណែនាំ [^1] + +ឥឡូវនេះដែលអ្នកបានបង្កើតម៉ូដែល SVR មួយហើយ សូមបង្កើតម៉ូដែលថ្មីមួយជាមួយទិន្នន័យថ្មី (សាកល្បងមួយក្នុងចំណោម [ឯកសារទិន្នន័យទាំងនេះពី Duke](http://www2.stat.duke.edu/~mw/ts_data_sets.html))។ សូមចុះផ្សេងការងាររបស់អ្នកក្នុងសៀវភៅកំណត់ត្រា បង្ហាញទិន្នន័យ និងម៉ូដែលរបស់អ្នកជាថ្មី ហើយសាកល្បងភាពត្រឹមត្រូវរបស់វាពីរបៀបគំនូសភាព និង MAPE។ ក៏សាកល្បងកែប្រែប៉ារ៉ាម៉ែត្រ hyper តាមប្រភេទ និងប្រើតម្លៃផ្សេងៗសម្រាប់ខ្សែពេលផងដែរ។ + +## សេចក្តីវាយតម្លៃ [^1] + +| ក្រុមប្រឹក្សា | ល្អឧត្តម | ល្អទៀងទាត់ | ត្រូវការកែលម្អ | +| -------- | ------------------------------------------------------------ | --------------------------------------------------------- | ----------------------------------- | +| | សៀវភៅកំណត់ត្រាត្រូវបានបង្ហាញជាមួយម៉ូដែល SVR ដែលបានបង្កើត សាកល្បង និងបានពន្យល់ជាមួយការបង្ហាញភាគគ្រប់ និងបានបញ្ជាក់ភាពត្រឹមត្រូវ។ | សៀវភៅកំណត់ត្រាដែលបានបង្ហាញមិនមានការចុះផ្សេង ឬមានកំហុស។ | សៀវភៅកំណត់ត្រារងគ្មានភាពទៀងទាត់ត្រូវបានបង្ហាញ។ | + + + +[^1]:អត្ថបទក្នុងផ្នែកនេះមានមូលដ្ឋានលើ [ការបំណងពី ARIMA](https://github.com/microsoft/ML-For-Beginners/tree/main/7-TimeSeries/2-ARIMA/assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេល​យើងខិតខំប្រឹងប្រែងដើម្បីបានភាពត្រឹមត្រូវ សូមយល់ឲ្យបានថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាមាត្រដែលគួរត្រូវបានគេចាត់ទុកជាឈុតឯកសារដែលមានសុពលភាព អ្នកគួរប្រាប់ប្រយ័ត្នថាសម្រាប់ព័ត៌មានដែលមានសារៈសំខាន់ គួរត្រូវបានបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ខុស ឬការសន្និដ្ឋានខុសដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/7-TimeSeries/3-SVR/solution/notebook.ipynb b/translations/km/7-TimeSeries/3-SVR/solution/notebook.ipynb new file mode 100644 index 000000000..b64a52431 --- /dev/null +++ b/translations/km/7-TimeSeries/3-SVR/solution/notebook.ipynb @@ -0,0 +1,1029 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "fv9OoQsMFk5A" + }, + "source": [ + "# ការព្យាករណ៍រយៈពេលដោយប្រើក្រុមឧបករណ៍គាំទ្រវិលត្រឡប់ (Support Vector Regressor)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ក្នុងសៀវភៅកំណត់ត្រានេះ យើងបង្ហាញពីរបៀបធ្វើដូចតទៅ៖\n", + "\n", + "- រៀបចំទិន្នន័យស៊េរីពេលវេលា 2D សម្រាប់រៀនម៉ូដែល SVM regressor\n", + "- អនុវត្ត SVR ដោយប្រើ RBF kernel\n", + "- ប៉ាន់ប្រមាណម៉ូដែលដោយប្រើក្រាប និង MAPE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ការនាំចូលមូឌុល\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "M687KNlQFp0-" + }, + "outputs": [], + "source": [ + "import os\n", + "import warnings\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import datetime as dt\n", + "import math\n", + "\n", + "from sklearn.svm import SVR\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "from common.utils import load_data, mape" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Cj-kfVdMGjWP" + }, + "source": [ + "## ការរៀបចំទិន្នន័យ\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8fywSjC6GsRz" + }, + "source": [ + "### ដាក់បញ្ចូលទិន្នន័យ\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 363 + }, + "id": "aBDkEB11Fumg", + "outputId": "99cf7987-0509-4b73-8cc2-75d7da0d2740" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
load
2012-01-01 00:00:002698.0
2012-01-01 01:00:002558.0
2012-01-01 02:00:002444.0
2012-01-01 03:00:002402.0
2012-01-01 04:00:002403.0
\n", + "
" + ], + "text/plain": [ + " load\n", + "2012-01-01 00:00:00 2698.0\n", + "2012-01-01 01:00:00 2558.0\n", + "2012-01-01 02:00:00 2444.0\n", + "2012-01-01 03:00:00 2402.0\n", + "2012-01-01 04:00:00 2403.0" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "energy = load_data('../../data')[['load']]\n", + "energy.head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "O0BWP13rGnh4" + }, + "source": [ + "### គូរទិន្នន័យ\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 486 + }, + "id": "hGaNPKu_Gidk", + "outputId": "7f89b326-9057-4f49-efbe-cb100ebdf76d" + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4kAAAH1CAYAAABbUbvGAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAC4S0lEQVR4nOzdd7wU1d0G8OfcQu9dQUA6goI0RQXFimL3jb3FrjHRmNg19hJrYo29d8WKFQQFC0WlSu8gvVzqBe695/1jd/bOzk7vs/t88/GTy+7M7NnZmTOn/o6QUoKIiIiIiIgIAIqiTgARERERERHFByuJRERERERElMFKIhEREREREWWwkkhEREREREQZrCQSERERERFRBiuJRERERERElFESdQKi0KxZM9m+ffuok0FERERERBSJX375Za2UsrneewVZSWzfvj0mTZoUdTKIiIiIiIgiIYRYbPQeh5sSERERERFRBiuJRERERERElMFKIhEREREREWUU5JxEIiIiIiIiANi1axeWLVuG8vLyqJMSiFq1aqFNmzYoLS21vQ8riUREREREVLCWLVuG+vXro3379hBCRJ0cX0kpsW7dOixbtgx77rmn7f043JSIiIiIiApWeXk5mjZtmncVRAAQQqBp06aOe0lZSSQiIiIiooKWjxVEhZvvxkoiERERERFRhOrVq+fLcW6//XY89NBDno/DSiIRERERERFlsJJIREREREQUA1JKXHvttejZsyf23ntvvPPOOwCALVu24LDDDkOfPn2w99574+OPP87sc88996BLly446KCDMHv2bF/SweimREREREREAO74dAZ+/2OTr8fca/cGuO24Hra2HT58OCZPnowpU6Zg7dq16N+/PwYPHozmzZvjww8/RIMGDbB27Vrsv//+OP744/Hrr7/i7bffxuTJk1FRUYE+ffqgb9++ntPMnkQiIiIiIqIYGDduHM444wwUFxejZcuWOPjggzFx4kRIKXHTTTdhn332weGHH47ly5dj1apVGDt2LE466STUqVMHDRo0wPHHH+9LOtiTSEREREREBNju8QvbG2+8gTVr1uCXX35BaWkp2rdv73hZCyfYk0hERERERBQDgwYNwjvvvIPKykqsWbMG33//PQYMGICysjK0aNECpaWlGD16NBYvXgwAGDx4MD766CNs374dmzdvxqeffupLOtiT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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)\n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IPuNor4eGwYY" + }, + "source": [ + "### បង្កើតទិន្នន័យបណ្តុះបណ្តាសម្រាប់ហ្វឹកហាត់ និងសាកល្បង\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "id": "ysvsNyONGt0Q" + }, + "outputs": [], + "source": [ + "train_start_dt = '2014-11-01 00:00:00'\n", + "test_start_dt = '2014-12-30 00:00:00'" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 548 + }, + "id": "SsfdLoPyGy9w", + "outputId": "d6d6c25b-b1f4-47e5-91d1-707e043237d7" + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA4kAAAITCAYAAACqpFnEAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAAEAAElEQVR4nOz9d7gkyVUmjL+RmVV1bdvpHitpRiOLJCQhCdCHkxAsEny4FQiz2mXNhzD74yfWsAgjFrMLfBghBAtIeCuMkLBCFllkRjNyYzTe9vS073v7+qrKjO+PyBMZmRURGSdv3+rb3fE+Tz/3dt2Kyqw0kXHO+573CCklIiIiIiIiIiIiIiIiIiIAILnQOxARERERERERERERERGxexCDxIiIiIiIiIiIiIiIiAiNGCRGREREREREREREREREaMQgMSIiIiIiIiIiIiIiIkIjBokRERERERERERERERERGjFIjIiIiIiIiIiIiIiIiNDILvQOXAhcccUV8vrrr7/QuxEREREREREREREREXFBcMstt5ySUh6y/e2yDBKvv/563HzzzRd6NyIiIiIiIiIiIiIiIi4IhBAPuf4W5aYRERERERERERERERERGjFIjIiIiIiIiIiIiIiIiNCIQWJERERERERERERERESExmVZkxgRERERERERERERcXljNBrhyJEj2NzcvNC7sqOYmZnBddddh16vFzwmBokREREREREREREREZcdjhw5gsXFRVx//fUQQlzo3dkRSClx+vRpHDlyBDfccEPwuCg3jYiIiIiIiIiIiIi47LC5uYmDBw9esgEiAAghcPDgQTZbGoPEiIiIiIiIiIiIiIjLEpdygEjo8h1jkBgRERERERERERERETFlLC0t4Td+4zfY4772a78WS0tL53+HDMQgMSIiIiIiIiIiIiIiYspwBYnj8dg77u1vfzv27du3Q3ulEI1rIiIiIiIiIiIiIiIipozXvOY1uO+++/Cc5zwHvV4PMzMz2L9/P+68807cfffd+KZv+iY88sgj2NzcxKtf/Wq86lWvAgBcf/31uPnmm7G6uoqXvexl+NIv/VJ85CMfwbXXXou//du/xezs7Lb3LQaJERERERERERERERGXNX7q72/HHUfPndfP/Lxr9uB/fv0znH//+Z//edx222349Kc/jfe///34uq/7Otx2223ahfT3fu/3cODAAWxsbOAFL3gBXv7yl+PgwYO1z7jnnnvw5je/Gb/927+NV7ziFfjrv/5rvPKVr9z2vscgMSIiIiIiIiIiIiIi4gLjC7/wC2ttKt7whjfgbW97GwDgkUcewT333DMRJN5www14znOeAwB43vOehwcffPC87EsMEiMiIiIiIiIiIiIiLmv4GL9pYX5+Xv/+/ve/H+95z3vw0Y9+FHNzc3jRi15kbWMxGAz072maYmNj47zsSzSuiYiIiIiIiIiIiIiImDIWFxexsrJi/dvy8jL279+Pubk53HnnnfjYxz421X2LTGJERERERERERERERMSUcfDgQXzJl3wJnvnMZ2J2dhZXXnml/ttLX/pS/NZv/Rae/vSn46lPfSq++Iu/eKr7JqSUU93gbsDzn/98efPNN1/o3YiIiIiIiIiIiIiIuED43Oc+h6c//ekXejemAtt3FULcIqV8vu39UW4aERERERERERERERERoRGDxIiIiIiIiIjLFv/pDz6BZ/3kOy/0bkRERETsKkw9SBRCPFkIsSmE+JPy/y8SQhRCiFXj33cZ7z8ghHibEGJNCPGQEOI7G5/3neXra0KIvxFCHJj2d4qIiIiIiIi4OPHeO09gZXN8oXcjIiIiYlfhQjCJ/wfAJxqvHZVSLhj//rDx/iGAKwH8GwC/KYR4BgCUP98I4N+Wf18H8Bs7/QUiIiIiIiIiLi1cjh4NERERES5MNUgUQnw7gCUA7w18/zyAlwN4rZRyVUr5YQB/BxUUAipo/Hsp5QellKsAXgvgXwshFs/7zkdERERERERcstgcFRd6FyIiIiJ2DaYWJAoh9gD4aQD/1fLnw0KI40KIB4QQv1IGhwDwFABjKeXdxns/A4C6XT6j/D8AQEp5HxTr+BTL9l8lhLhZCHHzyZMnz8M3ioiIiIiIiLhUsLQxvNC7EBEREbFrME0m8WcA/K6U8kjj9TsBPAfA1QC+EsDzALyu/NsCgHON9y8DWDT+vuz5u4aU8k1SyudLKZ9/6NChrt8hIiIiIiIi4hLE2bXRhd6FiIiIywxLS0v4jd/oVin3+te/Huvr6+d5jypMJUgUQjwHwFcB+JXm36SUx6SUd0gpCynlAwD+B5TEFABWAexpDNkDYCXw7xERERERERERrYhMYkRExLSxm4PEbMc+uY4XAbgewMNCCEAxgKkQ4vOklF/QeK9EFbzeDSATQjxZSnlP+dqzAdxe/n57+X8AgBDiiQAG5biIiIiIiIiICC8SARQSWF6PTGJERMR08ZrXvAb33XcfnvOc5+Crv/qrcfjwYfzlX/4ltra28M3f/M34qZ/6KaytreEVr3gFjhw5gjzP8drXvhbHjx/H0aNH8eIXvxhXXHEF3ve+9533fZtWkPgmAH9u/P+/QwWN3yeEeDGA+wE8DOA6AD8P4G8BQEq5JoR4K4CfFkL8P1Cy1G8E8H+Vn/OnAD4qhPgyAJ+Eqnl8q5QyMokRERERERERrZjvZ1jZGmNpIwaJERGXNf7pNcCxW8/vZ171LOBlP+/888///M/jtttuw6c//Wm8613vwlve8hbcdNNNkFLiG77hG/DBD34QJ0+exDXXXIN//Md/BAAsLy9j7969eN3rXof3ve99uOKKK87vPpeYitxUSrleykqPSSmPQclEN6WUJwE8F8BHAKyVP28F8P83hn8/gFkAJwC8GcD3SSlvLz/3dgDfCxUsnoCqRfz+aXyniIiIiIiIiIsfWSoAAJuj/ALvSURExOWMd73rXXjXu96F5z73ufiCL/gC3HnnnbjnnnvwrGc9C+9+97vxwz/8w/jQhz6EvXv3TmV/psUk1iCl/Enj99ehMqqxvfcMgG/y/P3PAPzZedy9iIiIiIiIiMsEZRkMhuPYAiMi4rKGh/GbBqSU+JEf+RF8z/d8z8TfPvnJT+Ltb387fvzHfxwveclL8BM/8RM7vj9T7ZMYEREREREREbGbkKgYEVsxSIyIiJgyFhcXsbKiquS+5mu+Br/3e7+H1dVVAMCjjz6KEydO4OjRo5ibm8MrX/lK/NAP/RA++clPTozdCVwQJjEiIiIiIiIiYjegkOpnZBIjIiKmjYMHD+JLvuRL8MxnPhMve9nL8J3f+Z144QtfCABYWFjAn/zJn+Dee+/FD/3QDyFJEvR6Pfzmb/4mAOBVr3oVXvrSl+Kaa665qI1rIiIiIiIiIiJ2HUa5Cg6HeQwSIyIipo8/+7N61dyrX/3q2v9vvPFGfM3XfM3EuB/4gR/AD/zAD+zYfkW5aURERERERMRlCx0kRiYxIiIiQiMGiRERERERERGXLca50pvGmsSIiIiICjFIjIiIiIiIiLgsIaXEuCxKjExiRERERIUYJEZERERERERclhiVLCIAbI1jn8SIiMsRUsr2N13k6PIdY5AYERERERERcVliZJjVRCYxIuLyw8zMDE6fPn1JB4pSSpw+fRozMzOscdHdNCIiIiIiIuKyxNhgEqO7aUTE5YfrrrsOR44cwcmTJy/0rvCweQ4YrQGLVwe9fWZmBtdddx1rEzFIjIiIiIiIiLgsMSoikxgRcTmj1+vhhhtuuNC7wcdP7lU//+cSIMSObCLKTSMiIiIiIiIuS0S5aURExEWNrZUd++gYJEZERERERERclohy04iIiIsaazsnk41BYkRERERERMRliWFkEiMiIi5GzOxTP9dP79gmYpAYERERERERcVmCmMQsEdiKQWJERMTFgtl96ufaqR3bRAwSIyIiIiIiIi5LUE3iXD+NTGJERMTFg9n96ud6DBIjIiIiIiIiIs4rKEhcGGSRSYyIiLh4QEFiZBIjIiIiIiIiIs4vxoWSm84NMgzHOWvs0aUNrG2Nd2K3IiIiIvxI++rnaGPHNhGDxIiIiIiIiIjLElSTONdP2e6m/9fP/zO+47c/thO7FREREeFHUSa1xps7tokYJEZERERERERcliikChJnsm41iZ89sny+dykiIiKiHZKCxK0d20QMEiMiIiIiIiIuS+Sl3HTQS1BIoChky4j6uIiIiIgLgqKUukcmMSIiIiIiIiLi/CIvmcRBlgIARkUYmxidUCMiIi4oaK6KTGJERERERERExPlFYTCJQFWj2IbNEc/kJiIiIsKGzVGOt9xyBFIy1QlTYBKzHfvkiIiIiIiIiIhdDC03zZhBItMJNSIiIsKG33j/fXjDe+/BXD/F1z7r6vCBsSYxIiIiIiIiImJnUHSUm26Notw0IiJi+9gqVQkPnFrjDYw1iRERERERERE2vOO2Yzi7NrzQu3FRg7peRCYxIiLiQuCKhQEA4NQqkxEsOjKJSw8D62eC3hqDxIiIiIiIiIsM5zZH+N4/uQX//vdvutC7clFDG9eUNYmjwF6Jm5FJjIiIOA/YN9cDAJxaZSb8uvZJfP2zgNd/ftBbY5AYERERERFxkYEYr1sfjX36tgNtXFPKTceBrS22onFNRETEecSpFSYjSDWJeQc1yXAl6G0xSIyIiIiIiLjIMC4Zr9iur8IoL3D38bDFD2HSuCaQSYwtMCIiIs4DqC6aLzeNNYkRERERERERDQwDg5nLCa979934V7/yQZYBRDNIHMUWGBEREVMETeUb3Dmla00iAzFIjIiIiIiIuMgQarByOeGOo+cAAA+cWg0eQzWJMz2Smwa6m0YmMSIi4jyA5qCcKwvpWpPIQAwSIyIiIiIiLjKEBjOXEw7M9wEAZ9ZGwWMikxgREXEhQXXRofXQGrFPYkREREREREQTw3G1oGBnoC9R7J9TQeLSeriRg+6TSExioIzXNK4p4vGPiIjoCJq/+UxirEmMiIiIiIiIaMBkErdizz4AwP7SSv4Mo3fkhHFN4ELNbIER60MjIiK6otiu3DQfAjukLIlBYkRERERExEUGs5/fVuzZBwDolYHeWQaTSAszqkkM7ZNoBubx+EdERHRFZyZRGsnBPFByygwmY5AYERERERFxkcGsnYtMlgItsjhMopab6hYYYQu14TgyuREREdsHGdew68wLY94JlZwW4fXaQAwSIyIiIiIiLjqYjNcwOm0CqGoDNxnMHh3GSm4aNtaUpXK2FxEREWGi6FyTmAPZrPo9Dwz+Qt9XIgaJERERERERFxlMxisyWQoUuIVKRgGTSSS5adhCzVzQjaLTbEREREfQdNXJuKZHQWKgeoLMbgIRg8SIiIiIiIiLDKbENPbsU6CAj8OsauOaXncmMfasjIiI6AqSmxaS6ZQsc6A3p34PbYMRg8SIiIiIiIhLG2ZgMg256TgvsDHc3YwlBXybDGaVxvRTXp/EGpMYa0IjIiI6wgwMWfXlNSYxUEZqBomyfa6LQWJERERERMRFhtGUmcRX//mn8fSfeMeOb2c7oIw8p0awkBJCAH2mcY0ZJLKbYEdERESUGHcJEknxwJWbmsFkAKsYg8SIiIiIiIiLDNM2rvnHWx8DAJxeDZQ1XQBQRp5To5kXEqkQyBIBoKvcNDKJERER3VDIDqoQCvDYNYlGkBggUY1BYkRERERExEWG0ZTlpocXBwCAu4+v7vi2umLcxd1USiSJQMaWm1bbCB0TYccjZ9bxvjtPXOjdiIi4IDBVCcFzOfVIZAeJZm/F9jExSIyIiLgosTHM8fr33B2dHSMuS5iM1zTkpk88NA8AuOfEyo5vqyuqFhjhc0JRMom9tGQSA1nBGpMY3U23hX//+zfhP/zBJ1jnbdo4szbE/3nfvXwHyoiIFnQKEjWTWBrXdJGbRiYxIiLiUsUffORBvP499+APP/Lghd6ViIipw1xMDPOdX1wfnFdM4qnV8Eb10wbVJHKC5nEhkSYCWZLo/4egiO6m5w3E/N7x2LkLvCdu/NK77sIvvvMuvPuO4xd6VyIuMZhy02ATrKLBJI47yE3zGCRGRERcoiCjiaNLmxd4TyIipo9xl+zztrantrGb2R5aXw3HRbCVfFEGicQkhi7SxtHd9Lzh6VfvAQDcemT5Au+JGzNlH82HTq9d4D2JuNRgMonBCa5mkNilT2JAYBmDxIiIiIsSVyz0AQAnmUYa/3LvKfzMP9yxE7sUETE1jKfsbkps2W5ug1F0WGzlUgWJQgikiYjuphcAh8p616NLG6xx77r9GG564MxO7NIErtk3AwB4lLmPERFtqBnXhCacdE0iyU0D10G5ESRGJjEiIuJSBfU1O7nCCxL/ze98HL/74Qd2NSMSEdGG4bT7JJaB0MYuvm/GtSAxbD/zAkiEYhGzRLCYRC77GGFH5UrLO46v+uNb8Io3fnQndmkC5H776NkYJEacX2yvJpHbJ9GsSYxMYkRExCUKqj86xQwS9872AABHpvCwH44LfOdvfwyffPjsjm8r4vLC1JnEi0BuambkQx1OldxU/d5LE1ZNIkkQo5nJ9tCllnTaoOvi9BqvJvevbzmCH33brTuxSxGXCMwcE78mkWlcY8pNi/bAMgaJERERFyVoYXaKKTe9eq+SDT1ydv2871MTD5xaw0fuO40ffstnd3xbEZcXRnmBmZ56hE9jcU1tHnZzkJh3YRKlcjcFACHqgaYP40Ji0FNBYjSu2R5yzSTu3muLrn8ZeH0Q/ttffQZ/9vGHd2KXIi4RdOqT2GyBEeBUCqAhN41BYkRExCUKWlhwe5TpIPHMzgeJxFDkzIVFREQbRrlEP03QT5OpyE3zi0BumndkEpNSSpgmItjwJi+kDtJHsQXGtjDuKDedJoi570oa7+bkSsSFRTe5aZNJDJWbju2/OxCDxIiIiIsSNLFypV7755ThzWPLO++KSrsWuvCMiAjFKC/QSxP0s+kEibRI5hrX3PLQGdx/cnUndmkC5n0Wuign4xoASIUIDgLGRYGZyCSeF+iaxI6BFJfd64JRx+cNgat4mSbe+skjuP41/4i1rfagIeL8w0xujUKvLwoSs5nyQwKvL1NiGoPEiIiISxUk0eA2sqas9TQeiLR4j0xixPnGOJfopQkGWTIVmV4lN+Xdby//zY/iK3/5AzuxSxMYdwkSC1NuKoLv1aIABmUbnmhcsz3QHN6VSZwGu01JkmD3yRKUgDjBrJ2fJt70wfsBAA/G9h4XBEUhq7lkp41rzPdFuWlERMSlCloQchO7uQ4Sd35hQYv3qEaLON8YFUXZ3y+ZSpBC981uls2ZTGKoDL2Qptw0nJWqMYnMSWh5PXBBd5mALt8tZgKCsDSF40nnmMva759TRmlcF+4uWN4Y4cW/9H7cfpTXb5LM3OJ1eWGQG0FicNKbahKzASAShnGNMX9HJjEiIuJSRVcJJy2o14c7zyRSZjy6H0acb1AT+CwN7+23HVDd3cVSkxgaOJtMYiJE8L1q1iSOGUH6Zx5ZwrN/+l34x88+FjzmUkeumcTwa8sM5pc3dj64oeuJGyTuK8sbpsEkfuKBM3jg1Bp+6Z13scZRCcbSFI5jxCQKKXXCaRg6l1OAl2RA2g83rqnJTSOTGBERcYmia+Cl5aZTaAq+FeWmETuEXKJiEqeQhKBAlBMkTrsWNy+k7p8aKgvMC2gmMWHVJEoMyhYYHPOsO4+dAwC8764TwWMuddDh48hNzfl/GkEiXf9cafd8X10j0yhvWJzJAAArm7xt7SvZzjPM9h4R5wd5ITHoceWm5ftECqSDjnLTyCRGRERcouhKnnStSXz49DpOnOOZ3VDWeRrGChGXFwopkQiglwoWk9UVtA2O3HRzyi0NVEaeVydYyKpPYpKEB7Z5IZElAmkiWHXR/VJWNg2zoYsFeYeaRDMwn2afUO55owREVyktB73y2uIGiXtKueluNte5lJFL6J6rwXOJZhJTIO117JMYg8SIiIhLFLkxmXJYRVrscoPEL//F9+ELf/a9rDFRbhqxUygKiUQIZMl0ahLHuiaxCA6kplH3a2KcV7KtLnJT5W7KCBJTgSzhyX17aTezm1seOoMfePOnLkmnZM3SMRIQJlPc1RWVAwpKucY12rl1CgkTes6sbHZjVmOQeGFQmExi6FxCNYlJquSmwe6mZpAY5aYRERGXKMxnNSe7S4vd9SnITYcxSIzYIeRlTWIvFSy544mVTfz3v/oMu5VFzTk0cMHL3cZ2Ydb2dDGuSYQIViio45+UxkHhxz8rt8VlpL7nj2/B33/m6CW5kKfAnMMImsePG7h1ASUXR7lkBeqjnP/duoISD1wmkcYtb8QWGBcCeU26zmUSMyDNuvVJjO6mERERlyrMjD8rSJyqcU3pbhpjxIjzDCU3FcjShCV3/JV334O33HIEf/PpR1nbMxcvoffb+mi6i85ag/suxjVJOJM4LiRSAWUcxDj+w46MFBmgnL4E68bGBT+Q6nI9Ela3xuwSADNJwjl34w6mPF2hmUSmSoaY3OGU5eERCrmspOvhQWJ5rkSqAsUi8NxFd9OIiIjLAabEaysPf7httwUGpyaL6lAikxhxvlFjEsfh19dsybStMtmGvJCYK004goPEKTOJuUTFJAbu47g8jgCQCF5NYpokpdw3/PjTseMyS/tmp9dKYdroIsnsGiQurQ/xzP/5TrzhvfeG7yAaz5sOypVp1CR2dTnuWm8ZcX5QGHN58DmkYC/JVKAoQ4PEWJMYERFxGSDvyCSODJfGLsHbY8vh5jWUcY7uphHnG7lUzJdyNw2//hfIAbED20BBYugi2ZSbTsO8qSja5abL66NaPXJRCxKZNYl6YceXSbL77c0rJpEbJN70wBl87P7TrDHTBgVSo1wGz8lmkMgJ2lbLc//HH3uIsYd1QxGecmX6clP+uG77eMtDZ/Hhe0512mZEhVyWQWKShLPUuiYx6c4kRrlpRETEpQoz4895aJuLkC6S0+MMh1PKHl+KZhMRFxZSlnJHpnHK4kAFiVwmcVQUmOursaGLUZNJnErdWGH2G5vc3tY4x7N/+l34j3/wCf0aLdAA6pMYvq00LftUMu5vkvR1bcrO7bf3ijd+FN/+po+xxkwb5pwcyiYOx93mf8oBnFnjHUcz6cCSm+bTl5t2HccNEl/+mx/BK3/34522GVGBTMh6WcJgEsv5W6TKvCY0SJRRbhoREXEZoMYkMh7aJuvSxViDM2ZYymDHRXiGPCIiBDktLFKeu2lZfofVrXAHxKKQkBKV3DQ4SKwWIZvDnQ8Si0JiJnPXJL77juMAgI8/cKY2JiF300QEM555USDt4C471AYovONBrqgnVnhteC4G1ILEQFlmTW7Kmf/L93Kn465M4qhjANYFXful0jGJctMLA5K8Z11qEpMMEAlTbiqM3/2IQWJERMRFifw8MIld2A1OM3FzwTONTHLE5YO8kJXclHEd02J1lSE3pcTKLLMm0UyoTKNnYi6rthS2Y3LOcG+kxuF1JjFcGm4u7DgJIC03Zc499H24DPDFgC5zcle5KYf1rW9ve88bbk3i8saIVf8OoCZ75qhXKklsfEZdCFT15Yz6ZrMFBldummTqX5SbRkREXKroGiSOc9nZhh7gGdfUe3nFLG3E+UMhlSsnX+7It8mnReQ8U25qJlSm0Q6jqLGrk8fE7K16x9Fz5WvQTKJyNw3fVpYod9kuxjWhxjqEada2TRtmYB56bZlzK68mvdvxG+fdEn6jjnLTZ//Uu/CKN36UNWb7Dqzdjs006o0vZdBcrtoZdWASkzSIFVTjxuWYXuyTGBERcemic5BYFJoRCV3cmQ/BrkziNJiUiMsHZvaZU5NIi0dO0EaLz1mmcY15j06NSSzNZGxzgnm/3350GYBqxE5tMxIhghkYqknsMVtgbJHclMlo0fu57NLFADNxFzonj2puo4xr2RjHCW7GRbfk4naC+88eWWa9v+bAykhK0v3dVW56KSYuponaXB46l+gWGAnT3TRXQWXaC2IfY5AYERFxUaJWx8IyEqhcGkOzduaCZJPx8DUXL5xxERFtqNxNBYs10ExWB/MNbgsM8x6dBpM4zpUEt5/ZJbi0P4szGe54TDGJm6NctwVJme6mqVC9zbrITbmMFjGPmx0X5Lu53qyQleFQqFOsycRyk4QEXl9GfgsYc3vTOP7178YPnLsGe2tMp+SIOopyLs/SpGbI5B9UHnOSjoYGl7IMEpM0yk0jIiIuXXRtgTEupHZpDF1cmw9fTia/HlxeegxAxIVD5W6asFow0OJxyGAfiWmo3E0DA6mO92hXVLIte5BI3+Pzr9uLOx9bAaCUARSgCBHuEEnMUteaRLbclCSBHeeRLk7O04JypVXL0S41iV1aIAG8OXmcF5gvnYFZSckpGtd07eWoJbEdry1OfXPEJFTCCehzVAm1msTELTddPQl85i8qW98oN42IiLgc0LUFxjgv2A23uy4sanK7GCRGnEeQu2nGacCMbkzWqCOTaN6j01gkk2wrS4W3JvHGQwt45Ow6pJTYHFXyc+Vu2r4d+l5pkiARvJpQOpacOkbz/V2ZxLUpMLldURQSg4yYxLDjUqtJZCpJCBx1h0ou8pl0up6mYQrTmUkkuWnHek1OfXPEJMiELOOYkJlMok9uetObgLe9CvjYb5TjcvX+tBfdTSMiInY/pJT45Xfdhdse5dVfdK1JHJkP+1Am0XgfK/tcdFuQRFxe+KV33oX/9Q93sMbQwqKfMhowo1uQmGsmkSfTHne8R7uikJXjq+2Y0P48/sAc1oc5zqwNFZOYVTWJIe6m9DlZ2SeR4yRpupvyauK2x/bsZknguJAY9NytS2ygoHm2l7Lq70adVSEFFohJDE4udpO2djWC6VoWQdfzKO/Wqmk3X1sXA2rGNcFyU6pJJHdTxzkYrqqfD5cmSJpJTIE8BokRERG7HFvjAr/2z/fiW3+L5+SWFxK9tDQSYC54t7PY5RjXmPVN0bgmwoVff9+9+J0PP4CzZVuGEHR2NyUmq4NEj9sC40IwiVkZONu+n2JfgccdmAMA3H9qDQAwU34v5W7afixpIZ0IwWYSzbmKxUCO+bJFM9jYzQt51d+SZyZGc/f8IOvMJLJaZ+RGmULgOPP8cgLZrj11u7Z3GneU7hKi3HR7qLXA4BrXUH2hy4RmVfWGxcZSNS5Jo9w0IiLi4gBlc7lSl9wwOwh9sEmpMqWzehxvQQLwM7SDkqXoygBEXD745MNng9+rpZVJUsraAmV6mskKX4jS4pNaYITWZNVqEvNpyO3MFhh2JjFLEly3fxYAcO8JlWWnACURYf3liNWjmsRQsxugPlexJL8dmEQzSFnb2r3zz7iQhuM0zxRprp+yyw0IPFVIgfkB73lD25rvp9ga58H3aNdejrU2HZznVEenWEIMErcHUwERPCc0+yRKx7jVE+rn+plqHLmbRuOaiIiI3Q4OM2eiHuzxMrvcBYn5EGUxiYXUZgdRbhrhQtmmj3WNkCNePyOZXtjCcmsbclMyFwllIacuN9UZeTu7N84LpInA1XtVkPggMYk1d9OQ7aifaaLcTTk1oSZ7FSwtQzUHcWoSzWO+mxfyuWFcE2rc0TVINFuPcE3IZjWTGDZOGz4NMhQyPPir9dfl9GQsugV7JnvFSbgSYr399kBOyT1OfXmtJtFnXENM4tlqnHZEjS0wIiIidjnIGp9bh1HILrWF3WqrarUlHbPP8UEa4QL1X+Ms7Artbkr95cKu5S41icSUaeY+cOzU5aaykm3ZFrvjQiJLBfbN9pAI4NGlDQDAbF8thYQIcyqlRXWWdm+BAfDUE10cKEcdWbOukFLirmMr7HG5rOSmoeqOKnGRMts9GMeEcU0WhcQc8/qn5w23ltEMFDgMcN7xfusiwR1uU6IaUaEy3GLUl9dqEj1y0xVLkKjrGCOTGBERscvRlUkc55XcNHThRFnq2R6vtqSrIUBRGBK9+CCNcCBLSkky4xqp3E1LBobpCtmFSeQy93lRsaTTMa5R2/P1ScwSgSQR2D/Xx9EySKQAJU0QJB2lxNZML1VyX47c1NivLg6zXZnErvMsB2/71KP4mtd/EO+780TwGCoB0H0SA5lEOk+zvbRTuweAb0JGCpRQKWdVN8l8Thn7uMpwDu1qlJMXUisSQgNu89qKz7btoZCqvrmfJgwmkeSmJStoczctcmBrGchmgPEGMNooaxKzKDeNiIi4OEAPakGryUAUUi2S+1kSXCPVlUk0Fy6cxZZiEkluGpnECDuIDeRcI0VBdSwlkxi4uK6YxPA6RgqCelmCRITfN4WsJOHTWEjKWp9Ei9y0kEjLgPzAfB9HlzYBGMY1Iqy+kBbSM70UCZNJNN/LCRJJqpgXMrgvpnnMN6bQAuOessbzjsfOBY+hw8F1NzUl0Lxgu2M7I6nqy4Xg9Ndt1PKGJiXNWlJGf8saI7jjzq3dTHIiJqGYRPUc6FSTKFK73DQvjdAWr1I/N5YaxjXR3TQiImKXY2OoJkWu3JQkGgOHtMyGZk1iqHkHPRB7qWAuLKqANNYkKjx0ei0GzA2kKclNGdl/IyAC+HJTNSbs+td9AYVbymnDuCgq46YpuZsmQjgXW3kudUC+f76PY+fKIJGMawIDPpqzZnspMmaQaC7kWUGiGdx0kAROg0mkhADXEAaopMyh12RuSKA5Ri9dzV2o3rXPuP6pLydfbtqNpRt3lZsajt/BclNTNh2ZxG0hl2afREZNokiUdCJJq0Lp2geXQeLClernxpnKuCZxBJYNxCAxIiLigqKz3JQe2hlv0QpUi5lw4xqSDWW8ILEo0EsT9NMktsCAWmh9xS++H9/zx7dc6F3ZVdA1iSybfBXU0NhQmVLNOIXJ2tD9FrqQzAsgSxPWPbodkJmPq06Q5gwAODjf16/PGkxiSK5qUzOJieqtyGQSKwluN5lq6Bw07ZpEMp/hsJa0tq1aYPDqXQcZQ6KHZiDFYxK51z8t+Od0kBh63roxguO8wDwz2FPbK3SQGCxbj0HieUNRGteEyt3VoFwxiIA74CM5qQ4Sz1bGNbtVbiqEeLIQYlMI8SfGa98phHhICLEmhPgbIcQB428HhBBvK//2kBDiOxuf5xwbERGx+9E1SCxkhyCx0e+N69I43+f15MoLtbAe9JLInqFa6H7g7pMXeE92F2hdwDauScBmEs33BQeJsuoL2HfYtC+tD3VLCb2P5eJnkCadrPU5kHofS0bQstjKiwJZydoeMIJECm5SgaD6QgqCOjGJRcFOUgEqAOCyssMpy001k8gxktFMIq+2lg7dIEuZBkD8+nIpJWRZNzbIws1FKuMargt3N3OjcSHZASlQdwoPViRE45rzBkpApJyEkyxrCwEVLNpqEieYxLOGcc3ulZv+HwCfoP8IIZ4B4I0A/i2AKwGsA/iNxvuH5d/+DYDfLMeEjI2IiNjl2CR3U+Y4so3uMx7alKXrp7zaEtOAgPNAzIsCqRCY6aVRbopocOACJSE4x6co5aYU9IRK7rrUEpktH1xJmVf90S34qtd9oPY3WvwMejvPJNLXT4RabNn6HZpM4g1XzOvXqz6JYTWJlNiimkSW3LHDghxQAccCs7552sY1g/J7kRw3BKZLKcBht4tym0lwjSbQrU+iyaQPsjSY8c+1uU53d1NWv0NDNsptr8I9/l1deiPqMBMQSWKft6yg2kLA3c7CGiQWRguMXRYkCiG+HcASgPcaL/8bAH8vpfyglHIVwGsB/GshxKIQYh7AywG8Vkq5KqX8MIC/gwoKvWOn9JUiIiK2ic5MYsnS8WpEqod9j2E3XRneZMwgUSJNBWZ6CUs2dKniYsk4P3JmHc/6yXdOMGM7BboueVJmCVEGROZntKEoDTiA8PovYjaUTbs9KLr/lDpWn3r4bG0fk0QlZXY6QVAYTGLqYBLHuUSvNK751uc9DouDDE8+vIDr9qu+iWqR1r6tTSNIzJKwwNLcB24rEXrvwkwZbAQGDtMOEula5DCJEz04GTWJNI8H13GhMoXJEhG8n3Qt6SQJU6Y919EVFeC2sijQT3nmUoAyvarM3EKTTZFJPB8w1ySpsM9bVtSCREcLDC03Pax+arlpCqTZ7pKbCiH2APhpAP+18adnAPgM/UdKeR8Uc/iU8t9YSnm38f7PlGPaxkZERFwE6F6TWLDlpnohWRrehGZbuzOJpdwuS2NNIrrb/08b77z9GFY2x/jTjz80le3pHnjMvm1p2c4BCA8Sx3nBllsXsrGQsWzr+U9QlR6fePCMfk21nEgw6PHumy6gfRRCKEbQsjmTSdw718P7f+hFePurv0y3EUmEvybo6NIGfuYf7tCN6Wf7KdJEsJis3GR7mLV0s8w2EV3qGLcDWuBuMqSt3ZlEaCadK9vNEp66gw43ya2HocFlwygtVALatW5ylEtkaaIMUEJbiRSKydItSKLcdKowExCpIwFnBclGAbfcdLylfs7uU/LSddO4prfr+iT+DIDflVIeaby+AGC58doygMXyb00vZfpb29gahBCvEkLcLIS4+eTJWA8TEbFbQLUyUvIcTvPSpIKX2VU/UyHQc/RSs4Gyz+yaRCnLBUkS5aaoLyZWGP2/po3FkrGZ1j7SYpLtbppUTGIom5UXkm0SYt43rno/WgifWh3W9jERYLH9XUG7lJQGELZA1qxJBICDCwNd0wnAaXhD+P4//SR+98MP4JaHFFs6kyWtY5ow++2FBunUS5DbuoeOuRDTqUnUjDjTEAaoSgBCg5RCKpa6lyRsuW+WqtYxoduqFvJgJSVz/dzgmcmY1wW3vCFLBHqJCK7t1I7fTHa71idxFyf8djvMBIRLJq/x6CeBT79Z/W7WJDqZxHIuTgfA3IG6cc1ukpsKIZ4D4KsA/Irlz6sA9jRe2wNgpeVvbWNrkFK+SUr5fCnl8w8dOsTa/4iIiJ2DmeFmMymCJ2WrpB2qnUUXd9NRLoPrBvJcWVvPZOmOG3dcDKi3X9i9C4uFQQ8AsLLZnmndLqSUVU0iq08iBURMJtEIUriyuSSBt94PAM6uG0FibjpC8q7/kytbrKRRkNzUYBJtEELAdxg//cgSAMUoAiowzhzbciEvCjZrRozjPLOVAp23xUE2FbkpbY8TkFIwkyQCvSQJbktEKo1emiAvwufkUV6glyi2jbMtALovL7cGfq7PdDfdRiuLLOUlQGkfB0y5b00SGxOgnWEmIFzzlsZvvxj4m+9Vv5NsFGh3N017wOz+hrtpBuS7JEgE8CIA1wN4WAhxDMB/B/ByIcQnAdwO4Nn0RiHEEwEMANxd/suEEE82PuvZ5Ri0jI2IiABw65Fldg/CacJcvPD6a6nG2F0yu2mS8Pq9NVxRgxfXmkmMxjXAxWObTnHENJhEc20b2v8OICYRup1CsEpJSnZPuprc1NVeorwnzq5XgbViEnmOkICqCX3B/34P3vTB+4PHmMY1iSOQVfJXd5CYeoxrzDn0odPrAJThTWhvRYIpGw1vyq7eN8s8bxS4Lwwy9vzz7juO48TKJmtMVVvLM2ACqAcng90rqLecOp+h8spxrgIpl0uvdR9rxjX8580ssyax3ieRF3BniUCWhNdp0j4OMp7c1Kyli8Y13ZFTkqSct6REe8JDvaldbqqZxL4RJBaqv+Iuk5u+CcCNAJ5T/vstAP8I4GsA/CmArxdCfFlpVPPTAN4qpVyRUq4BeCuAnxZCzAshvgTANwL44/JznWOn9L0iInY1PnLvKXz9r38Yf/iRBy/0rjhRt+RnMAeFWiSzHtqmbChNgmUyVQsMPgOTaLlpZBKHeW78vnsXFpTJn0aQaNaXcZhEYlKIGQuVm6oghdc2Qy8IKQBzsHSAaoVBKEpmg9sn8ZGzKgh7310ngsdUNYndmURfTeKSEfw+tryJfpboPpWsIDGXnYO9rrWkCzO8/q6jvMB3/9HN+I43fSx4DNDNgIkOXaqbiYd/N2VcUwaJDBOmLE06yk2ZfUK1uylTbmo6EDMTRwk32JbdakLpmpzrpcE1mhGTMK8tSmC1KhNG6w0mMQNkgYkmr9Yg0eiTuFvkplLKdSnlMfoHJRPdlFKelFLeDuB7oQK+E1D1hN9vDP9+ALPl394M4PvKMQgYGxFxWePossoEf/ZIs3R398BsKB1qyADUmxuzZXOl4UEenG2tZ/I5meQsERj00hgkolsj9wsBWoRPQ25qBhihi0ipAyKeu2nTpIIbbHgb1Zfn88xavSaR2tSw3E07CB8K4972M4nuZY+PFTyxslX7P80FSSlRDVVr5GZNIpPJ4rbOGBsyVY7clD7/vpNrwWOA6hrk1AjSGCFUz89R4NhxObdSTWloUDTKJXo6IA1k0k25KUOBQuPm2MY1JpMYft9Iw/E19BzQM5DtLmskLnazKmS3g45j1mZCZtYcbq1UBjRA9bNZl1iTm5Y1iVTLmITJTTPWtzlPkFL+ZOP/fwbgzxzvPQPgmzyf5RwbEXG5o89svnwhUGMSGb2dilJumorwoM2UzYX2RAPMB6KaMsObIqvM7kwW5abAxSM3pUXauakwifwg0ZR60cIipCarq0lFjUlMBGzryIpJHNXGJUyJXldUctMqcJvYx7xAOnAve0juZUNTerm8ob5nZizsTFMcF8ZFwQ4S6dhyW2cQI7EwyPDo2Y2gMQBvHrZtj8OsmnNyLxXhiYtybiVn2mAmMScmkZFcbLbA2HG5abeaxLyQGGQqAcr9bp2ZxH66q1Uhux3NBJz5Wg0rx6rfN89VjCCg5KNAKTk15rcak7hPuZsuXlm6m2a7Sm4aERGxTbzkl9+PN7z3HtaYgQ4Sdy+LZWZNQ+tK1LjSuKZLTaJHNufaFlBlhDmZZHI33c3nYFq4WIxryNAidMG6HZhsdqjctGabHipRQrX4mGG2YKj38rIHpLSwXd0a6/NMkth+lvIYkeB3VqjXTdoDlXEhtTzRBp9T6Ylzikl8w3c8FwB0Y3sK0kOYm6KQKCS0uyyXkSJzEe58N9NLWfdb10U/bY/lUm3MySwGrJQO9xKSmwYyiSSBZtY/mvsY3F6CTGGyFIngyE07StBlZQAU7BJL10jGlaCr981Mob3NpQzz2vKqQlaPV79vrSjWUBhyU2BSPmoGiXMHgPEGsLW6++SmERER28d9J9fwunfzPJn66e5nEmtyU0ZNIrEULLc57dLols25tgXwGRiqgYrGNQrmcdvN1yQFhxzXyq7owiSatukJQ27aZBK5Doi++8Z8bWljqF/jmn0A3YKUWp9ER00i7Y8LwlOTSHLTlzztMD7ymq/EW77vhQDqTGIbKtamlEiGzj+yed5485YKEsOv5a4JHNoe574xry0uA5YIU24aLq/M2HJT6H109eC0bqt8n7oHwh2uzeuCcy9IqRKnvSy8BYZuQZIx62Rzg0ncxXP5bkfeWJMAsF9fG2er37eWVZBotsAA2uWmALB+qjSuKVtgtNyrMUiMiLiEQQ/gXb0g79hgvZCVBXoo42MyMC7ZnG/cLJdJlNG4hnBiZRMPn1nX/+csWqcNYrc5srmuyDssCE0DJop5Qtblk/VHoayB+kkMvC0IMNmVs2tqcULmItyaRJLlCbTLNwm1PomeNh2+mkSfu+mp1S3M9lLMDzJcs28WT7tqjxrDYHKbjeND2R7trsxuOF+xRJxgY9tBIkduaiQ8siS8TrwoA36S+PKDS74kU7UpCP9+5rhBL/weoOtitpey2kvkJMFN+HX6WWmcwr225vpZDBK3AdPdN9WqBMvxrAWJVJNYzmUULDYdTpvGNYQkU+6mQCubeEFqEiMiIqYDWohPK0j8i088jFEu8covfkLwmJrclNOovpQNpY5Fq2sMQAvJsDouoFpczzGbIpvmCuNC6nqYyxFf8ysfrLVH2M0LC7pvQuXI24HZ3oC7QOP2SWwyUlxX4KTs5WUblxdSS7+pV+K4kJjpibKXaXiShN4rwmPEoD6JbUyiq5YRAM6uDXFgvj/xuj7+AcENMURUBhDKJGqZcMcgcbafBgekQPd7k7bHSQDVEx6MOnFZ1ggSkxgqAS0qc5e1rbCa4+b9Fvq8MQ1vegzmsuqLyZNpFyQ3TcOZRJMl7THcZc3EaaxJ7A5bfbn1+jKDxImaRBeT2JCbEqhPIlCxjQ5cnquViIiLDF37HNKDc1oL8h/+61vx439zG2uMaZLAWlyUWVOX/E1KiZseOFM7diH93qzb6rC4JifJRAjN3HD64F1qMANEYJfXJBo1dTuNKiOfBjPiUlaLTy03DZgjuvbb033iPIvkcS5xaGEAoGqDQeYigx5PbtolqVUZ11T9xprz5rgovH0Sfe6mZ9aHOLgwGSQG29ajYoh6aYJEMCSSHeXuZnBZyPDruXNNoqQgkZfsAwxXWkYAlgjopBtHXpkmvKBtwvCMWaZA7Q3y0F6O5fvmBxkruULHRCUl+SxpLxVsKfNcnxfIRtRRk/KLULlpsyaxDOW8clOTSUzddYwNxCAxIuIigPlMCn1AAdVEvptNU4Z5UWXWOYuL8mGfJPaFxVs/+She8caP4u8+c7QaEyCbs26rfPhq44iA/aTPzsqaRIBnQnApwSa13c1BIi2wCrnz+2k6V7LdRmt1LAy5Y0d3zSxJnIvkcVHgikUVJFJCIJdlC5hUSe1Ck12dgsRyn6hPIjAZFOV5e59EwJ6UO7M2xP65ySDRa1vfgD6OaVkTF7qQ72hc02Qug81dOkrBKyaRV0cHVNdy6ONNBfwJX25aVHLTLn1COUxibiRz0kQEM8eaSexnPHdTSRLcRJtvtY4pr8E0SVhMoimB5ngJRNRhrkm8Caf1M0BvDoAANpeA8RaQqfk2TG7aYBID5aYxSIyIuAhgZgXPMXq3abnpLjZNGReFlnGG9sgCKulY5nj4nlxVRhO3Gj0iqyJxtSgJXbSSAU0/DWcSzYJ0cjO8XJnEI2fXJ17bzdlnc5G80/tpSgJHuQy6JnMz+8xissogMWMa1zTuG1ejemISSW6aF9DmUmp7gUFih2RKrSbRcUzGhb9Nhc9d8MzaEActclOWcY0RbPcSvrlIL02Qdqgb48pUt1uTGHodm2MUk8io96Nri8kkFgaTyO6vSwoULgOvmUTeOC5LV1C9ZcJxblU/tbtsJ1Ok3TuX73ZUCT8j4WQ7BxtngbkrgJm9KmAcrgL9BfU3LTdtupsSk9iUm6ZRbhoRcSnBnLibsj3/ODV57+oF+Vhiruw/yGk5QPb6LmnZ/jmVKTvb6NsGVIwI56GdGotdTpCYJQK9rCxIv0wfpncdW514bTcvLMzzu9OGQ6ZLIBAWSBXGwo7jbkqMuzZg6tAnTt03k+8Z5xILgxQzvQRn1yhILJAK5ezI2V43uWkVyCYO2RYle1zQPScth/LM2hD7LUFiF3fZrKO7MtXgdXE3BcKD9K6tX7ZjwpQItyrEBhXsVUE6p50FNyCqmYtwFCgNozS2my03SCwqx1dusJcmiuHu0rtzXEiWwimiQlFjm9VrzprEuf0q2Ns4AwzXgP68+pvT3XQIQKi/92aBbEa9LqLcNCLikoL5cOEsWomZG+5iuekor5pLh9ZRABWT6JKWUeBJ9VFAwySB4W5Krog6SMwnj+ev//M9+JG3fhY3PXCmsS2BNGEaVRQS956YDKwuVrz/rhPYM1P3SdvNxjXmdchZpH3onpN49Z9/irWt5kKeI2VOk0paGbJurRZ2JbMX2DTdZHtctVXKSCrB/rl+JTdtJFdCGUI65hzjoJDF1jgvvO6mOrhsjNsc5Vgf5lbjGmImQ+5tYgiqmji+3LGX2o2DfOO4clPzGuzS81BtK3SuUz/TsiYr2LimDPaoJpHDCqZJR7kpM7gvmvdNcFCqfs70UharXkhox1d2exuhEhDhx7Eo97G8thjP7ogKNeMaX8JpuAr0F5VsdL0ZJJLctHEO8qFiEckBjCSnNblpZBIjIi56mJMGZ9FK2dXd3G5gmBcsFoVA7SXc0jL13c8YQaL50Ga5m5Y1iT4m8ZfedTfefNMjeMUbP4pRXtQWhBxJGgD8n/fdi6963Qdw57FzQe/f7fjEg2fwwhsP1l7bzUyiGTxxkjL/9ndvwt9++iiLMabrVN8DgaZIQCXRA3hyR65ssQhYJI9yZQqzZ6aHlU1qgYE6Ax/KJJbHnJNIqPVJdAR7eSG9xjUUXDbHkXzW7m6a6M9uA51rVZPIkJuaTGLGCy7NeatLTSLreWMGiYw2QUDlbhocgJXzP1duqssUGEG6aS7CYTvrwWXCShImQgX3HBOhvJAQpXENt96VEhehx9FkEgFej+OICrbSAev1Nd4Esj4wd9BgEkluShOXRW6aGnNWb1b9zPrKzAYA8sgkRkRc9DAXnZzMIj0ApmHl3xXjXLL7fwHVgs8lLaOF/pJFbsp2Ny1Zkl7JGrQFsx+7/3SDSSRJVNj2bn7oLADgseXNoPfvdqxu5Ti4MMA3Puca/dpuZhJHtfuNv5/rHe5RjnOlmf1nuZvmhgSaw6QYcrvEYS5CLWkWZjKslq0FxkVRNhInJpEnN+UskGmfEmHKTRtBYhlYuODK5J9eVUGizbjGV8fYxNiYfzJO0CDrC3lO65IsSXQgFd6Cofr8jSHPXdP2GW37CJTBfeJwdrSN00wizcmh26tqGcNlu+qnlpsGy0arcRknuDT7izLmn6p3ML/eNWEykLkRyAK7O+m3m2E6R2e+dcJ4qOSicweAtdMls9hgEm1y09RQ8KydUj8PPinKTSMiLiWYiwlOZpcegrs4RsTIYBJDH2xSStUTyuMIRpnU5Q0jSGwsrkMf2uOy1iN1MBQAcP3BOXz5Uw4BAD57ZHnC/hwIZxI1pnTeVLuOndvY5ijHbC/F67/tOXjg574WAILd97aLI2fXWQtdoG6gxHEGJlXP+lb4mHEzSGTUu3LdTatgI2EZd1TGNYqBdzOJCRYGGVY3x+W4UsbGZRLLY85dIAP1ptTN/Sykv/dixUDWXycm0dYCg9On0gzSs1QEy+vH25CpJgnYgZT5Pk6gbj6nuNcWnTcOS0c9AYFw07OikEgFOslNk7JMoZBhMtym4RMnKZCUtbxc4xo2S1qTMifBx5FKMLhy34g6bHJT6z2Qb1UupeeOAJDAoGQSE4dxjdlLEQC2ShO/w59nBIlRbhoRcdFju3LT0EJ7wj989ihe+HPv7Wy0wmrcnBe6frBLCwCXIxjJnUzmNUQ2Z99eoc0mzO3XtpdLXLHQx+HFAR44tTZhmw7wai6niSf+6Nvx3X90y458tpQSG2WQKISAoNqXKTGJX/r/vg///vdvYo0Z1YxrwveTkgjrw7Am3UDd3RQIW8gXFolSWJ/EKkjpMxtn03ZcvQSJ2V+YybBSMolK2ofKuCbwnFNwyDPtUD+FcDelluXi2wUiGZsB95k1D5PYwd00TRLlysxlewTJTRkKiDIhADBqEo3j3kXyq7bFl2Ry2hJVrBmvfdJ25KZpLVEYsC2DAeb0SdT9RbOE5SeQF+r67yX8foe6TpNR76qMlMLUNZcDRnmBL/7Z9+Lttz4WPKbZJgVwzCXU8mLO6HdITCK5mzZbYDSDxF75/gNPNOSmMUiMOE/43GPn2E5/m6Mcf3nzIzvKUlwOMB9mXYxrciZT9BN/ezseW95kOamaYGWfc1kZ13RwWyRHe5vdPVBvO9F0mwvvk1hnbWyT+Lgo0EsSXH9wHg+dXkOdSQyvW7pQeM/nju/I545yibyozjHAy+JvB3TNf7w0EwpFTW7KWKRRcLLOYC4nmMQQ4xqLu2lYn8RC72cvTRjGNVUA7DIXGRUSaSqwaDCJKrisDJ9CjyUFh6xG4nqxVe1rc00uZRUI2uCqCaIg0dsCIyhIr2oSOYwgfQ8ax+sJiA5y045JyQ5y00omzGtUT+1MMmYArNtElHLToJYzteRi/TUTR86u41t+8yO47+Rq7T26TyJD3pomAoNewjr+khxf04QVNAN8lnqcy1K2zu9xfKni3MYIx85t4kffdmvwGNO4yZXcAqCCxLQP7H189Vq/wSQ2jWtkUQWQAPDd7wW+5fdUgBj7JF482BrneN2772ZLoqaJ1a0xXvarH8IP/vmnWeN+9b334H+85bN45+07swC9XNCVSTQzl5xMHy1YOQGp+bDlyMRGeYF57W7Kz366AjdaSJkBct24RgTLcPOytsobJOZq0fKEg3N48PR6g+0E6/vpz9zFQWUoaF4jgwMALPON7aDr8RsVUgc23ZhETva/aVwzuc9SStxzfEVfx6ZtfRXYtG+rVpOY8RwQ6Rp2MfB5IdEjuWmDSaQgJXTu0nJT1gJZ/fS5mxZSQsAdJQpHfefZtSESAeyd7U2M0Qu7AJbIbIvDUTJQcKkcKHkyySxNtic3ZbZg4I4zW5ekjnpX17bMcgPOs8NkwIJcaWvMvTvh93P/dCdufugs/vAjD+p9BCrHUZYpjwAGqQoSg3tONgLg0DHVPobLTfOiQJoKNkt9OYCzbjKdqr1lKfmWqkk8+KTqNc0kknFN4xwUeRVAAsDhpwPPfLn63SVRbSAGibsAb7nlCN7w3nvwa/98z4XeFScoS/S+u06wxlG/LMrERnRDvSaRwVIYDwoOu0e21iub4bK5LvUoUkqMC4nZrnJTQ1rWzP6PLdnwurTJPhk/cGoNf/vpR+uf1TDJsWX6RnmBXprg6n2zOLmypR+a22ESpyHJ3GmWf6N8YM72TCZxOnLTrguX0bjA4kBdk5z7jQK2NYbcVDe4170LJ7f3mr++FV/9Kx/E++86CaBpXKPeEyR3bBqgMHvLAbC6O0op9eJ7caaH9WGOvJB63KAX3l8UqOaSLjWJ9T6Jjf1EGJPYvCVOrw2xf65vNb2pFnbt+1gzrmEsyLdjXJMI/kK+a01ipz6J5lzumJOt40oJNIdJp3FJwmMgtVN1Sy+7zx5ZAqCMywDjfAumu2n53QYMdQFAzHEpG2W6m7Idv6XUBlgAMAxUJVzKoGPJSSw2E9fm59QwHiq56cEnVq81g0Sr3DSFFVFuevGAFk9HlzYu8J64QVkpbpNjrvV2hB21gIfF0vEzu0BVH0WMQNi2DIle4D7S/s0ybbTp+aeMNOwTq7k/mtko30LBpW0yfuXvfByv/vNP17KB9ND2mYToRXIZXJwr2wDU3E2ZQSInQOmKrmzb2tYYr3jjR/G5x/xtOnSQ2K8eN/1sSkFix4XLKC+wUPZ15NxvFENwVCET7qaWff5Mufi8pXS9pWtzppc6kyS+bbFrEovKFdTm7kjXUK90NwXUPVcU9TYFoc8P+nxODa/ZAsPG+EspIWXFFtrgCriXN0ZWFhGAcW9zmMQEvUQwJIEoxwmWAUrekASGskvDjkzidlpgJAnPTCwvAuq4bNsr6rWMIcekVqbgeN5sjXM8elat4Y6VrtTmd8tYNfBVTSIQfg6krJKSUoYdEzMBwXX8To1ra7fW208TXZ6lNn8Fa6CujWvMmsQ2uWlel5uaiH0SLx7sL+scTu9itq3rBEATyG62u78Y0LW5tzmOFSSWC1bqdxYCc0EeGtzQInWml0AIfk2iz0zGfPhXbouGtMmxIKHj+9Dpdf3aOJe62TNgfxiMiqoFAFC5qmaJ6W4a9v1oHcvJSHYFN/FDuP3oOdz0wBm85q8/630fBUwmk5gxFrrbQVfHvVEhsbAdJpGRXKHjMOcxrqHPve2ocqcjOetcP+3UgkHXJAY3966Ma2wLycp9M9FJktWtsWYbuItd+vzQmjG1j+pnLXAwxtKvYe6m9W3mhdTPsiY4QUpNXZAygj1Dbpom4XV7xLZpB9DA42/O5TttXGOawnCCxKKUMuvrP3A6IVVInyHBrbE9joX8I2fWUUjghivmcW5zjHFeaDMnoIO7qXHfcJIriQB6mf+7PXJmXc9rzfrmYMfvvBlsxzVel16RVuOa5jkocsUKZgP1/2/7U+CpX6vko4AhN20yiXnduMaEq21G821B3yJiR0HPrFOruzhI7OhcpYPEOIFsC+YChGVc05FJpPoxDpNonuO2h9r6cIybHjijHyy9NEEvSYLbIowNAw7XIm1sZRLbs6aPP6AazpL5AFAtkpNEQDgkOeO80DVZQBUkmpM/9z6aBpPI6btpgoKazx1b8b5vYzRZk8gxDdoOzIULx1hhNC70eWTVJJbneaNDn8QZTwsMum5ue3QZUkodJM72U5a7aW7WJDJq28bGYlctJJt/p/vYYBI3x6p1TGK0wGAGiUB4sCH1YssuN6Xf/O6mdsMb+h6+MUG1bQaTmyUccxH1U89bjDYRJtsT7G5qSJ5t8mcXuhjX0NtonmTLTXU5VnhwyZabUlIydS/kHzilkorPfdw+AMDSxqjWl5PnbqqCtj4zSKTgspe4v9vmKMeX/cL78MNvUck9s70Hm0lMqz6VUW7ajUxpOq4DloTTeEv9pCDx6f838B1vBgaL6v/CwSQ2axJNUP/EKDfd/aDMzanVrQu8J250zRJxFwcXCnccPber3bm6us3lNQYy/GFPrM85Rk3iiBEkfs8f34JXvPGjeLSUWPcyZa4Qeg60I5gn+2buD9VWNqUdtqzp4w7MAQDuN4JEc5GcWmzai0L1bTSZxKXSGTYzHqTcmsSuLF/XbYQutIBq3mq7tzctNYlZIiZaluwEzGuA49Sbd2QSKWBY20afRNtcS4uPU6tDHD+3hY2Rup7n+hnP3bRjbRuZhKixtoRM9bkLmkkcaWkfJ5AF6p8fuvBqYxJN91MXXPtpMkKuMSGMp25BkjKZxIbcMZhJbAaJgeO6JheLQrJcemkMUPUgDM0d0TXpcqR1IS9bZ3gblzfHGEyi635b3VLzy/VXqDqxpfWhvv4BHpOYk3FN2TomNJFHzq2VbHHyPZT8/JtPH9VjaP84yTvqk9iPTKJGF/dys07ZqQrJy9ggHdg/xFWTKPPqb01EuenFA7q3Tu/iILGrNIwkHbuZSXzw1Bq+9g0fws//050XelecqLubdjOu4QQcxBKtdgwSfQuLopD40D2nAACfLGusegmzSbThCOZ6aJsLItNtEaj6XdkmdXroHTu3WW3PrMmyPOxHmkmp5HYmk8ixyQcqaRynHq4rzOuCZbgSOCdsGKwXgdMPbTswr6dzDOl0IZW7aSK6SX45fRLpup3xLK7HhcR1+xXDfdujy3W5qV4kt2/LrInjOMxSsAHYWeAq+El0kmRlc6zZHq5xk/n54W061PuEwSSa2zNrFl2gP02YYBnfvwlXuw3fPmZJgizh9DusZKrdmESe3NScv7nlDTNMk6J6ABw+R4aYiVm3V/gVKDY06/Zs26Nn7cEFVT50dn2kW1kAYNUkEtupZdpMgylXWygAuPfEau3/Zu/UdBsJiFiT2G2dbJqQuZnEUmWYTbbgUYNdTOLYLTcl45ooN939oAtiCiU6ndE1S0RzVOjD6UKAFlwUuOxGdK1JNAMlTqBOUhxOTWJ9YeGeeNaNrCgZcfTSpHRkC3xAGTVQTibR2B/6Hs3WGfZ+h+o105G3WVvSfJCanztfBonk7NtPE69tuvX7le+bitzU2AZHXhy6mLC5m3LqqrYDUwJFQXsISCY2yFLWOaB7jNUCo7xuKYh2yU2fec1eAIoJMANvl9mKDVXWGmybfM0kWhaSuv9fImpJEinVdrjGTUWHeUsaiy06JuaUEFKT6Ko3KzxMoiuwtKGqSeTJD+t1Y2EBqRrXrW6say17UfgZcesYoybRlbizgRJ3XHfTouwlyGEgzePvYnvoc65YUGzPmbWhbmUBqGdVcJ/EMrmi5aaBiapCtgfAZpA4zouJesvwIL2omSJFuWnHmkRT3eSoiQ5mEttaYJig16PcdPcjVCbRxPvvOoHv/qObz/Pe2FFnpDg1ceqi3ZzCYrcraCLmMA2Ayui/4o0fZdUIdoV5/DnbGweye03QxMVpgRFak7huBCI3lU3OZ3opepwGwBYm0ea4uH9OZctOl/W+hZQQQrEJQkxa3QPVNWsGiSaToBYyzTFVNpbkdo8uKSZyz2yPJW0CuvWJ6wpzAdK15YlPamerScwuQE3iOUaQSDKxmV7CYhLp3uxyr81ktLiePC6jvMC+uR56qcDSxqiqSeyl+loOeY5U9S8JqyaxKBrGNQ4WJUsqufXR8vpfGGQVk86ogSRwm7K7antol4NqEpuJ/LJPqn9M+/EnGfL8ICvl9bygOU2Z5iId5abmIeckF8dFoVu5cK4tQM3JLLmpbEiZmYGzYJy3muGZqwa+qAeJS+vDGgPPYhKles5ouWnAfFIFe1XvTtt3O7lSKdZOrw1rQYpoSUB87rFz+NTDKrE7wVLvYrXYtNCFTa3VKaeOa1nXJM7YP8QnN3Ua14TJTR2jI6aJrlLO//AHn4CUamFiLsB2AuYEMMolBoFXDhmRrDNqdKYNmkg5i0gA+Mm/ux03P3QWtz66jBdcfyB43CNn1rGyOcbnXbMneEy9TyLnoW1k5DuM2wmTHGKrskTgaGkVfnjPAFkqGPKrKvtJC9Dm/DzMC+yf72NrXOCxcjtmvzdbbSFQLXibTGKvlFElFgaAgttemmBRL5JVveXe2R7bpp3O8XSYxOq7sJoA1xbyEv3Mvoimz5zrN4xrpsAkmvMWl0lMmUyilFIfS86CieYfahEytGxvXCjn3L2zPf09ekYj6zYG5uzaULkHGwsSVp9EWS2OE6EW8lJKvdA2a+0oSULX/+JMhpTRuBxoXls8RspcJNtqEj1EojPhlBdSJxOb4Mh96dztne0pJjdwUVnvt8dryq4ax5dBIqMGdZCpRu6shIc0Wrkw53Jf71rXOBqjth0ecNdbJwVsyyY3tbDNAHCwdKtfLo1rTJk2h0kXArq/aMgcZDKyvqbs5hx/cmWr7q7ZkoB42a9+CADw4M9/nZb7RnfTCnljveWaM0w0W8AAlmBTB4kOuakOEi1MoqsFRuyTePGgq+yKHsZLDEOGrjAX7yyXwPK9nFqnaYNu7DWGRAyomBFOTzQA+LJfeB++9g0fYo0xs02cOrWuTCKNY0lbQ5nE8nh98RMP6teuXJxBLwmvkaKJNUtMKdtk4NZPE1y1dwbHy/pC022OKzclyaiNBTMXyfOaSVSL5D0zBpMYGiSW53gaNYnmoqELAwb4FzG2mkSOrGw7MIMgjglTUahFE4dJHOaFZkG6NCAn1sB2jYzzAlmSYM9sD8vrI2wM85p812c4sTHM8dyfeTe+/U0fq1opJLw+icokRP1uWySbSZv5vrr+KTGzONNjtelovo87JwhDEsh3N61/FmFcSOc4jtx3eWOEXiow20tZ5k16IZ/wnIFJkpkx2Z5cSq/82b29Qj8XQwNSs3ctR+5ITp5CS3AZUk4hQB1NOP1Fqb+ubRzdt8Skrw/zmuETT15MSarw+s7cEmzYrknTefn02nDCXTPkOs4LWTGJ5T52dcC/lBCqgHhseQM//JbP4vTqVl3K7GKA2+SmJB21tsBwGdfEFhgXDboulnSQuLHzrTNqNQpdgsRdzCR2Pf70MJyK3LQ8/nN9Xo3UuJCY74dLVsxxagyDSRyHBaTUQ+6FN1ZB4uE9g1JuGiij0jWJbmnNKFfsy9V7Z/DYsgrYTLc5l7spHeuz6yP9AFUMJPS4SblpySQmCXppgpleguWNEYRQTIpmNgIXCV3lpjc/eAZ/dfMjrDFbtVrSrkGie5yWm2b1msTpMInVNlhyU8NdMPQeMI9BKCMOVMeRMvKuxEWWVEzi+nCMuX4l5/AZTrzrjmMAgDuPrUwyiYyWFKbcFGgyN1WQmJSSa7rn9sxk7JrEXEotYwutdTLlpLZAtgoi3Z/hWqT53E190j7CfSdX8XP/9Dn81gfuw97ZHoRQgVuo/LPQ5y1hm4tkHYLEmkspa07g1yRKMwAWwild3xrntb/VVCHMwDlNKrkpx7jGx0DS5/SzBIMswcYwn7hvWH0SjVrSMLmp+uk1QAGwMSp0GcYpg0n0OX6rz69eP7q0gXGu3E17u9yc8AN3n8T3/+ktU9mWuX7xXf/vv+sk/uLmR/D9f/rJWgLIyW63Gde4WmB45aYUJEYmcdeja23ONJnEcY1JDN9fulE4fcOmja5yX3Jxm8Z3o2M+20/Zx3+uvE5Y/a7K88ZZINRrEj3GNSWz9Lwn7EeaCOyf62Gml5ZyU660zP3QHuUFemmCK/fM4Pi5Lf2eem2hW26aF1LXqY4NJlGNq2/MlEwBwFOuVP2LFgcqQGQziR3lpt/yWx/FD73F39x+clvbZxJ9iZKNUY5BltT6zE0tSDS+DydIpMUdi0k0g8QODchpseWSQGdpgn06SMxr8t00mexdCAD/fOdxvPrPPz2xX9ruPrSOyzCusfUSpG3T31SQWNYkzmRe+Zt1e4XUSbjwFhiG3NTieEnrJ5+7qbMmMa/uf9cY32P8u//wZrzxA/erzzICvlBVzoTclBMQiapvHud897MEQnBZ8crdlOOcC1TtJWzXyIOn1vCF//u9+K7f/4RuTVRz3GXUadI4zTYzmURiIG2SZHrPXD/F2nBcu2+yJDy4r4LE8OdG5cDqbuUCAJvDHNftV22eTq9t1Y1rPAqP04ay5oFTayVLDW9Pxt2A7/q9m/D2W49NNZkP+O8bUiktGYloxVKrv09cJ+PSaZ1bk1iMo9z0UoB5QXCknPNTlZtW+8UJUigLvJv7JG6XSewqCeTIjGkfZ3spqzh6nFdMYpeaRJ7cNIxZoprEg/N9PPnwAq7coya+LE0Yxgpm9rP+WrU/qrn94cUZnFjZhJSy5jaXlAvrZubavNbp3jLdDVMrk1gu/MqH+vOesB8ANNvTVpP4X//i0/jTjz+k/0/Hr0v7BS7M65fLUlfj3Pu5OcxrUlOAl/nfDrrWJJKUjcMkmvczZ8FEbyXZlm1eGBUFemVN4pGz6/iHzz6mWQZAsWO2a+tX33tv7f/HymRJlqjFbujCum5cU+63rd6vvLcWZjK9EFqc4dfkmkEi17im1jvPGCo12+n+jMSxn14mMUBuah4rSlZ0Ma4hto3lblomBNQ1wmCOhZIkcxNHJJvu0gLDlTz6i5sfwfLGCB+8+yRe9qsfwpm14WSQyJGbJqa0L2CMPv5uB0rze8z1My031fcNpy9m0Wwdw5CbCr/j6+Y4x8GFPgZZglOrw3oLDE/yjpQBgGISc1kyibtcbkpkCtdzoguadfounCjLX8ZFUVvL0PmeuE7yMkBvk5s253Ovuykxif4yjBgk7gKYDxBO1o4MMpaZctPbHl3GncfOscbUDFA6yE13a5YJ6B4kkqymK5O4zjGFKR8SM7002BAAUOdttgxUurBEXeoY28ZRD7n5QYYf/dqn44e+5qkAVE/N8DoWY2HheGiPS7np/rkeRrnEWlP+42ANzOuhYhILY5E8mbWmwJ0W7l90gzIyol6Lzsm/xFs/9Sh+7G236f9P8745L3JTTzC7MarXzwFTbIFRHr9EcPskqjEDBpPYdR6na6mf2tmeopCQUh2zvbM9nC0TF3cdX9HvsV2TAPDs6/bW/v/ImXUAlWwuOGiTZpBY7qcxD1VST/VzwXA2W5zJVJ0gx3ClJncMZ18AFajaA1n1029co342E0e5lNp8Z3JMOyM1yBI87sBsbT96aRIcNJjsY5owgm3jvGVcuWOiWjBw5wSqdw19TplMlstxmuaXL37iAWyNC3zmkaXGNRnGikup7iXaFu1z6z4GGNdUbZkEZvupkpvKbn0Sc1lvZREiX2+2slCfMzluo1QhXLEwwKnVrYkA2LWLJ85VrqjLGyPDOXd3y00XGn2LdxK1mkTPfXOidJhd3RrXjWss85Z6gYLEnv0DdQsMW01im7tpDBJ3PWo9oRgTMhkEcC/+//vXPoyXvp5nnFJjEhlMFo3bzUyi+X18Vv5NkKymq4xhjdGTTtvk91IW21xIqWVprJrEnM8kmhObj33RNvD9DF/+lEN4ydOvBFDKrxiZbqDMvqX2hzbJTffPlc2N14aNhQXs44qKfT23MdbvqS9IJgNS9R3Ue77kSVfU/h7KpBwzXFjpO3QBZ5x5rnbifK8PLUGiCF+wbge0uNoz22Mx/sSkKCaRd02q7fKD7cyxsBsZCYi9c1VNyg9+1ZP1766Aj+bdP3/VFwMAHjy9pt+feAJ1KSU2RzlOrZJM2+yTiIn9bDaq3zNbLWYomcmpyRoXki1brPdJtBjXGIsxF1wGO2b9WxMhNYmnV4d4/hPqDtjqeDCltAmPhR+3zFsuVNd/uAOu2k91HfczjgkZ9P65HKcLKbF3todf/JZnA1CunFvjAjMli5UIpmw08ZiEWMeV+2gY17jMy0huWhnX0PdTSYGQNYaUqgZeN6oPCRKNRI2uAbaM2xjlmMlSVd+8PmoEwO5n1MpWtc5c2hghpz6Ju1xuOj9Qz56pBImBNYk6SNwc16XMLgaYgj8XK+hyN5V59bcmkkT9LcpNdz+atrmhIHvd3V2TyA82pg3zOc1ZuJKspiuTyGlcrmsSeylrMh7nVZDI7XcFdK9RCzGumRvUJ7xexmjuber4HQu7Ua7ML/aVRfpL6yPkebVocvXJGucFDixUNuYASmmNe7GljWvKh/riTA//+rnX4odf+jQAVQBgu3fMoN9clAPhNvJNcJq5d2cSw8bZWvRMuwXGwiBj9Wolm/yZXoKtwPvbnEe6GNeQnf9Eo3ojAXH13qom5Qe/6in6d5fhxOrWGE+8Yh7Pedw+JAK4/eg5CKHmEdeC/LZHl3HDj7wdT3vtO/D8//UevQ/EGPh6EFIY9eKnHtJ/o3mS4+5YyEq2uB25ad24ptxHT01iNSfUX6fG4Ta4FAmEvJA4uz7EdfsVk/htz38cAKCXqJY/IUGDOd8Jj7lLE6bcMUvCmcu8qBxwOc8A6kPL6cFZ1SS6GXE6/gfLefnhM+uQsnISbQuA/+rmR1TfQpsChcEkJgmc9bX03ZNEBYlN4xrdqingFFBSpkqABshNC8t3s9UkjnLM9FNtgtUMgF0JCEqYCqGepeO8kjInYhfLTWfU8386TGJYTSL1qlwb5vr+8rHUmu1zsYLOmkQPkwgoNjEyibsf5r3VRe7FCTZMcORX5sXPCVI0k7hLs0xA9+9Gaw3OgtwEh0kca7lpuAMoUK/t4TIpAK9GzXwg+a7jtWGOfpbUaqoAWjQFLggNiYy7uXHJJJZ9q86WiwTTEa+534B62B0oGRu6R/LcaJ1hYW2axjUA8Lpvew6+70U36v101QSZ9wY1s9dMYsfkCqctS9c2KeapajOumahJZBhNbAdmkMi5/qlRN4tJNL4Pt0+iEKgkmZbrEVA1u084OGf9DBeTuLY1xvwgw0wvxfVXzAOozJRcC/Lbjy7X/r85yrE5rgJ9G3NmOosCwMufdx2e87h9+LInV4w6l0nkumSawYbVuIbYTs9nON1NjeRSE/Sy63peWh+ikKoG+4Gf+1r8v9/y+QDU+TT324dxIwAITbB0ZRJVf0WViGYFiUXlyskxIaPrXzjqLUnGOtfPMNdP8UDJiC+WAYCPXb33xCp+6C2fxX/7y8/UHECF5Rpxwcb2TD5vqkTiXD/D+qhuXONq1QQoI5MP3H1y4vvS54UknUym3Kdc2RwVmO1VQWKNpfbUdq6Uz8LH7Z/D8oaqCc2MxNE0asy7YKFMRk+DTAmtSVwx1t7HVzbRSxVr72S3teuWq77Q1QJj7GYfARVAxiBx96MmN+0QgHWVOz54ao2xrbCLf3Lc7pebmjdkF3OXrkE6py0IbWu2nwY3YAZKl7pU2VTzrq2SyeoYNLQxifP9yYmLY+RgFtvbFoT0niQR2u777PpQM0SAW1o2LgocXFAF4ucsTKIt29o0rrHBVRNkBi/08KDP7yrh4bDbdcOh8HGhTGKzpx/AM3HYDug6XJzJ2FJaYhJD59euihBTymgz4KjqXQWuPzhv/QyXu+naVq7lVk8tHXf3lveDa0HeZH2PLW9iY1gFibb7xlxoAqo36N/85y/BH/+nL9LvYdVkFVI3Eg+ubbMsks9nn0TXva3ZR8d3I1fIgwuDGovJMU4h2WKX2k46XxlT3poKwQ8Spbo+VHuV8HNdJe7sQZtpHHRwoa/XLlRv5jOuOXJW1eHeeWzFYBKN4x/w9epGafbzbfZEnO2nWN/KG0yuO3D7/j+9Bd/1ezdptkuWx5ESCSHnrWZc4wg2pJS6RnzvbK+UjRoBsCfYW9kcY5AlOLw4wNk1qklM9HGZRo15F1ywmkTPs3tzVGBPyYI/trSJPTM9fW83PweAITd1hGy+FhiuwBIA0izKTS8G5B2DFLq5uzogHjcKkdtgsg2cmriLwbjGDEy4WVOAxwiaYNUklvs400sxCnz4Ag0jgQ7XVhf5YZqIVndTkgmZ6KVJcACctywIgepBu69kBZfWR7WaxMSxSBgXEoulbb9mEot6LaMtsKTv4IJrcWceq5XNsTYqAbrfN2QOFIKuwU2ou+nGqJgIPDi93rYDCoAXBhmPFS/UYovDJJoSQFZNojQSF7Z6V2OBetUeuwW6sMhUgfJeKxdJJHdcHBD7Yl+QNxM1R5c3sDUudKBvcwDVNYkeni5lyR0NJjH4+KuftZpEY3NmiwwXfO6mLiaxLdg7vVoGifP1HmfCEZDaUJu3POYiTYyLQhvucGsSK+MaRuJIqrYIfUct46NLG/iW3/wIbnu0YqsLiVrizi43rQKwKxYGuP2oMt4z5aau4/jQaRUkrg+r+q/EaGURcvw3x3nZEsRtClNjEnuqJrFprkPva+LIWeUcSjJEOo6c1kl2trP+nlEuS3VRgn1zJDc1AmAhIKXdm+Hc5giLMz3sm1PBpZpbqsTRNJJ+XdDVu6MLajWJjnmLAvUrFlUi+ujypq7bdpXOdJebFlFueimg6yKN2gV0ZRK7LghD2xQAVRZ4NzOJeeBitwk6Jp3lpoyFPG1rhtkCgzKw3IwwBWu8IFH9nOv52wasbI70QtUES6LUyH4Ckw9tkjHtm62YxFrW2mLAAUA3Cd4z29N1GHXZVtJqXGODqybIPC+rW+OGbLHbg5clNy1kKf/1B/dNmEGJr25v0yY3nZI8SctNZ3psJjFNlLtp6CKZvs+AUVsL1NkeW52grndNVK/JX3j55+Nv//OX1N7jOp5rw7FulXR4cUa/V2/Lcj3S/PJn361YwKNLmzU22FbvRB/jIekUk8ioOd5On0Svu6kvSCz/OGEuKKV2KJ4cU99+E6fX1MKf1AkEl5LBhrYklQvE7AElk8hgZXULDEbCQ8qqv59tkXzXsXO4+aGz+IZf/3BtW3QMhSNIKQwm9+B8dRz3GItr126SWdPK5lgnuNOEJzfdMPqSuhby5jmaH2Q6KDX7JAKw3gNUN39ipTIuS4Tw1rI3IY3r2yU3JYXJTC/FntkehuMC68NxTe5uGwcA5zbH2DOTYe9sH8vrQ/UcL+W+06ox7wLaKyrl2EnkATWJ9By6opwPji5taKMvOv4TQToFf21y0+a4YuxmH4FSbhqZxF2PrnJTuiA3OwZgnObqo4AMiXVc+d5xIXetHKFrLdF2HSg5MtW8lBt1YQTTDkFilxYYdBxn+6l33MqmnUnkLGJsLnXNh5SUKIv/EyzOZKpxbYO1sY1TrqgCe2ayyrjGXKSJyQVh07jGBjeTWN2HK5ujetKoM5PIq0nMkpI1Y6gSgpnEYY7ZXv24pIyAYTsY5QUSUSYuOtQk9hh1dKYDMVembbLbTuOacpH8ihc8Ds9+3L7ae9pqEgHgUJm5puvNJZujuf5xZcPt4+c2a3Wl9vumYmhc4NQkFtJogREc2EDvg8/d1Gdc43Q3zaXzu7nYRwIxiQcaTCLPXdOQJHsSLFvjHG/71BHcXbZHMWWaacpkEjvKTX01ibTbhazmzLrc1F3vR+/5yW/4PP36woCCFPdxJCZxXEgsUY/KhGdcs7aVa0bKWbdqPCNm+yk2RnlZ20nH390GaW8ZJFCbCRrnYx+bCHkmEqEwWxrXAMCZtVHNlA2wB84rm2MszvZwxUIfJ1e3sDkqsDhoZ3IvNKqez92S+V22BbgTvPQcovl4eWNkYRIbg7TctIVJbNYktspNe0AemcRdj65yU7oIuUwiZe04ssWa3LRDCwxg95rXdF2UbzdIZBnJlJlsTq8roJQb0cOe6YoKqOMRGtzT++b6foneSpmRbKLHsE23Obm53OYAYP9cf4JJdNVtUEH+wYVBJf8p6u6mzWDWZlzThKsmqyk3rfUk7Wpcw5gTSCalrhFOTWJgkGjrk+hw1jzfGOYFsjRhMYLUS01l1hNIGeiAWB6CmV74dQzUmRSrcU35wZknAeFzN12YCBJLNsVVy1vuuzK8SbC8McLGKNc1grb7xgzQXMjScHfTWguMwHug3idxck5omuvY4JKA+moSXewj4fTaEEJA10ZX2+LVxNUkmY7r8e8+fRT/5S8+g+/6vZsgpayN47ibFgVK2Sg34VEmMx3PG3P7955YnfxuDumuGWxdt78yb9JyU4+ZDzGJAHCqnM9rZQqOQ/LXtxzBj//NrdgY5tgYjaskiWMhr9QH5G6dYZRLrG6Oa0wufd8mdJBYMomUpBIlmxhS4tNsZUH7ZEIHiT0zSNzS13DiuSbPbYywZybDjYcW9NqTghtOvfG0QXPONNRsdeMa+/bo2XzlYlU6sIcYWZcqoWsLjGLcIjeNTOJFgZpsi2Uc0S1IJNnMFqe2MCBDYh13EQSJXWsSaQLmTj60EOEGpEnCC6TUOJVB7qe82pJQK+fmPgKKSfEGiVuVTMUEWcIHbav2QPQziYBaoJ1dV3bfTeMaGyuYJQmu3TeLR5c2IKXEcFzoRbptIU/3R89jXJM4AnzzvJzbNOtm+AkIaovTJjf9uX/6HN55+zEAFBQnGGRJJwdcoN3ddKYhN1XypOBNdcY4l+glyjmO2+/Q7MEZlMmXBpPIvLfNerPmUNOkyQXbInmcF9gcFZoBoSCRzpWLAdPbSwUWZ1QvtaFRk2hbJNMzzCflDGUSqSZ3wHQ3tfVJtPZy9HxGCEvUBL3sSnqcXt3C/rn+RJDvkrvb0ExSucZ89P7TAIDHljdx66PL2Cpr6Wg/g5nEMihTzw1mwiNxM4nm9v/l3lMAyp6A5XdzBukOd1nNwDiOSV5IPHJmXZs2kYmQCsAm94nw7juO47/91WfwJx97GL//kQdKJpFqcu3jlAOu+v3afar+96Ez6/r9PndTWpMdW6akZJVEyDwmX2fXhnjJL78fv/bee2q9Sm1MOlCtVXppoueDx5Y3a1JmwMUkKsbrxsML+jUtN21x3H3RL74Pv/3B+51/30loVdQUHjh1g0f79mj+veFQZUJG17Eor8tJd1OSm7qMa3w1idHd9KJHVyaRsktsJjHpvi2A2wJj+6zITqOz3FSzbbwMGk3gXRwQOb211LhCW/l37XkYukigia2NSVzdrNgNE700CTZFMg0IXIxgIaVeEO6b62Npfajq44gRabEyv2bfLB5b3sDmqMC4kHqfbU5utN+uuiX1NzuTUmcSK7kptycmoOTIgF9uuro1xhs/cD++549vUfteFJUkmdVLs/2+yQsVYM/16uc7m5I8iViKmV6KzVEe1pMuIAHh2hYAzGS881Y3t5hc2IXUuyomsf4aXVfEyFENzP7SyMkVENE10EuUTPtk2btTB4mWRTL91lqTyAy2ge31SazLTcu/+0p0LIY3gL9PYuJINhHOrA0npKZqPxhy04Zxjctc5JaHzuJpV6mA6N4TqzUmWTGJ4fOrMm7izQnk8NlP7XW5NGccWhzgdz70gP5uuk1EQL2fCS0BdbCrR5c2MMolnvv4fQCqPrR1JnFy3MfuP43ZXoqnXbWID99zqqxJrI6jbZxZt/q4A4rtXFof6dd8TCIlCqm8QbmiQm/PVYZx/6lV3HdyDb/87rt10qZWp+9KACUCjy/38YFTazV3Zdc+qtYZGZ5UCxLb+1SO8gIPnl7H/37756x/32l0KZ3pvi0jue7YHvXrPTjf1+qCPUbS3MqKt8lNXS0wZEufxLSH6G56EcCcgzlZu0puyrv4adJiNWU3LlpOn75xwE1zPvFXNz+Cj9x3ijWmq3FNFyZRSqkfLmwZT5mhpf+HgAxX+gwmxRzH2U8d3PRTp5GJlFLVNthqEh0LC9+2zNqS5uU8ySQOsWrUaDndTXPFrF27fxajXOL+U0oWZdYNNDO7pgOlCy4mxTwvq1vj2nHkJASAisn0uZt+9shSfd9Nto1TtxcQJFY1MJM1iRyX5K4gmdogS1DIMEbQlCVW7oLt+yp1cMM3rjEXyU7jGp/cVFiCy8Y1eWC+j5/95mfhd77r+XoMYAmI8ooV3zPT0xK42YZxR11uKmt/syHU3ZSu/0HWsQWGKTdl72N9HwCas933dqvcdHU44WxqjguTMk/222sOk1Li6NIGnvv4/Xq7JpPM75NYBoncFhhJaVxjZRLVay952mEcO7eJta2xUndMfDdbAFYd/5/+xmfgaVct1pxDbd+NXEM//7p9ACq5aVpzwJ0cd3ZtiIMLfVy7bxbLGyOsDcfauIaukea1TGofoKrnBeqBlG0cUD0DyPHclNcqJtF+Dszef2dKltR1/dM+AurZd9WeGc0UT8h9Hfs46CXYO9vD4ZKFrDGJjhtg3Wj1xXmWnS/Q8Z7G+jOkJpFUPrO9VJtZmcoqW8KvcjftIDd1sY9AZBIvFnTt09dVbspd/AP1RSCrT18h9eQ6jZv0h97yWXznb3+cNaaru2yXmsS8qNobsDK05UODJEuhi9Ci6OZuOs6r88Z1d5ztZc7vRqycVW6aivAWGMYCOHFIZJT0Sf2+b66PpbUR1odjY9FkHzculHHNdaVkiEwgzMWWrf8U/c0FZ01iGZjtn+thxZCbDjJiUsIfrLR935jbH1X28ZRJzguJNC3Z5g6JI5+b54ZRA2OCY+O/HRADT8cyJFFiyn27MImDXoq8kCyTEK9xjSH/dMEmQaTPMRfX3/lFj9c1XU4m3XCAXJzJtJnGTOY2rtHOip7vGerKSfdWlhAjxWMSXXK7kNMhLIFDbjmOJrTc1LGBU2tbmsU14TMJacJsr+Da3tn1EUa5xI2H5iGEajcBQPfJ9MkWm6D7hm14VtaB9xwGa5SAoHYsjy1v1lgzV52mWbcIAP/uhdfjHT/45fr/rvlkeUMFTk8spX0nSxMhavdAn93EmXXF/lLD+Y1hjrlB3VykeZ8qSTCx9n095+1tOFf6ngHkeK6OY3stqRkkPlL2gzRZUludPlAGyYnAdQfUeahUAu5rcmuc68TNk69UbKIZALuSHatGwvJUefynCToGnCT5drcF+BKn6vVBL8HZMrB/4Y0H9d8Tr9zUFSSm9fcRitwvN01jC4yLAl2NU2hBPZUWGMYikMckmi514du798Qq3n3H8eD3bwf1G5v33dSYnZffarlpuVAMDaaIEeTKhsZFlYEO3c+acY2DkaJm8a4+iVLyFpJJIvSDOW98P/UxxCT2sbI1xvLGqGISLYuEoqhYg2vKIPGuY6u1fbYFe6bUzQU3k6ju3ysWBkpuSsF2nye3U6Ag0T3m+DnFDNGujsrFDbcnGhmu9D11spQ1bfZJzBhOi9sB1UiR6YqvVQfBlJuy+pR1lEnW5HaWYI/mW18CwlYT1MZuu1iDUSHRS5VphmISyyBR12RNLiQrKef2mURzv12tFGyoahK34cBqCRJpf1zfrc2l1Ck3dTC5Nph1vS6ZKjG+V+2dwd7Zng4STZk8y920gwRdloYrPcc42j7JMY8tb2qTFqCq07SaiXnl1vbjT/LNa/fNIkuEVW5qO21n14bYP9fH3jlVk7s2HGOuGUjZmMRyF4UQuHKPSgzsLSWFvpYnJEHUTGIha4Y3LtXFktH775Ez63o7Ptmu+R2I8dxfXp8+dntrXOj61icdUkEiySR9hnrrhov76tYYtzx0Br/6nnus790JTFNuGlSTOK6eib/ybc/Bf/vqp+ALbzig/26Xm5af1SY3tQWXbcY1UW66+2FeEJwATDOJzIufJgBu0KDd5ph1e7MdmMSvet0H8N1/dHPw+7eDrm6SRYfJxwzueD0IZblo4jv+kQEBNyitmMTwgBTw1ySulA8Mm7spMSUh1xe9pSY3nbh1qof2wQX1EDx+bktn1m2LOzo/vTTBNfuU+xgxiQtGcOnK0HrWMciSxNr2gc7LwYW+YhJzCjb49xsthH1STpIlURY6L+ut1IKclyTJksTL9piW6ybajA7OFyomsQwSA65luq+T0t2UPqd9nPo5k/HOW2EwiVYDGuOadMHGblduh/ZxzqbgpXETAOyZre7TiT6JNZYu5PoPczc1j38vC3fkNOuUbXNCxTS6P8Pm7tjGJFbs4+TfRnmBpfWRnn/s22r/futb41r9nblfBGJ8Dy/OYN9sT0st5wfu5JYLtT6JHVpgDBxzAp1LYhKPLm/UWDNbAoLGtQX3tu9GQeK+uR6u3T+LB0+t6ff7GODTZWC/b1YlF1c2x5gbNPokWhQoZk06JRWJSfS1StFMYinNNGtQs9TdGmp5vWLmKEhMEr9zN1Dd+yQbJTm0a04g8zZSZLzghgNYHGS4YrGvv5srSWK2+lofjvHy3/wofuU9d3d2hedCt8CYwvbysr4fcK+vNw256Zc/5RB+4CVPrv1dseLNIDFQbmrWJEqp5Ke+FhhJZBIvCpj6c1adoNGontODsItGe5RLXbjNYdty2Y1JnCbqfSr5DqAsJtE45l36HXLcFul9JDcNDfaklOp8D3hBIh3HfpY4F4PU0NZWk9hj1MrS5yvjmvr29f7I6oH+zGv36tdp0WRbbJkmIYszPeyZyXDXsXqQaMvI6/96FqBtNYlXLAywujnW11WX+0ZLoD3XBzn8nStNcsg5sJcmbCl5kqjgxRVcuuSmaRIms9suqAchR25ascLYJpMYGNzIRp9EB5PIdjfVC0L7GFeQMsqrdg+mLHxCkmYJEn03QAiTNc6Lmrw2S8KZLH3eEvucYNaaumCTrlfHsSVIt3w3kpMd9MhNQ4xr1oxm7q6FPDG+hxcH2DvXx6Ol/NCct8L7VKIys+rQAsM1J9D5v3afYrAeW9qsJUlc12RRuFuQAO4gZXljhDQRWBhkeOIV87inbLuRJu5gDzCYxDJJsm45/pNy0zrbTCZi+2bLAMxTA0kKjlXNJFb710s9ctOyx54QlZSzliRpYRLJ4bSN7aR5k5JtX/esq3Hza79Krwl9LUhME7X1Ya7nMWovtdPokswHgKX1oU4yhGJcyCpJ6HgmmkyiDbaSAyUjFe4MlxDq72ZNYpvZDQCksSbxokBuXlgdTWE6Ga6wAtLKAp1jODEutleTOI1C565MIh0Glmy3o7SYJGnEJoRsk6zkk4RnQEC7OMeUm1L209ZHkKDlpgN7TSIQdg+YkjTXosnsP/eMa/bo9803ZXNmkKgXqOo4X7t/rpJtmU5uE7KOisVwIXUwKbUgcVj1SeQGG0AVUPiYZmISpVS9r8aFRC8te3AylQxZkqCX2U0qgHqRvok0Scr63J29v6kutWISA+Smtmsr4LgU+rzxmMS8KKo+iZbFVohxjRCTSqNCfw8mk1gUeluLhgvxTNMV2JSblj/bmUT7cZRS4tvf9FH8q9d/sMYk9rcrN7Ua17g/ozKhqca1MYn0mbbFPyVkfMY1IezehhGkuAKp06WU8uBCH/tmezhXJuRoXFbecyEoDLnpuJBBSWh9/BPhnBNobpvtp9g/18PJ1c1aksRlyqPKJjxBuiNIWVofYe9sD0II3HiocuVMk8SQm9bHbY5yrA1zHJjvYd9cdd7mjJp0wGYKU3fApWfIvrn2mkSqUyPDsWbvVJ9xzYH5Phb6Gc6Vz1bT3XciSGw8p4hJpL12mbnRWoXmUWHUedM413RXZxJzLW09VpY97DQqUoRXlvWcn343nv1T72KNyQuJfqaurbaaRJpPm1CqkMaLRYtsFFBsolmTqNnHFuOaKDedLv7gXx7A5x47xxpTSKl7QrECMGPhwqlL7CaTlLquh2vU0kVuSphGsXHNOIi1SC7KMeH7OKwxibxzRjU6AI/Z4BrX0Pmd5xrXFCjrJt2M1KqHSaSHasg9QBPtbC91LraKopIx9dJES5yaTKL5rK9aWVDNxqz+m68FRsU+tQSJltO2ZVhiU+AGGEFihySE7/o4vbqlFxFn14e6bjVjmIQAdQm06x5YL+elZp/EKqsevLlO0HLTcu4KcYKu1bvq+y18HJ03jiuwySRONOk2mDUXbBKlNibRxRqM86r+6/Ou2aNfJ/OV1LKQlIFJEtd1+dDpdXzs/jO4/+SalqRniWD1hTXdS30OrG1sJ4DaOaBz76sJFQ53x9OrniCRxSSOtXGKKwAY6YV8qgMTwJjvGExiLiVSUfVdDXnGmXJfFwNMz8wsETi4MMCplWEtINISUItM0nP5l/eNnUkkuafZl67GJDZ2k+oCF2d6mmEDlBkNfT/AwiTK+jVCTCIlyHznu3I3zavvS3JTT/Juqfx+CzOZZr3M5NaEBL2Afg9Q1SJWdc/0XRpMojZbsbNfvpZGptP2+tYYB8rA+/jydIJEXZM4pT6JaZI43X0Bo04/czCJwsJuF2O/AQ2g/m4yiW1mN0ApN41B4lTxk39/B172qx9ijRnnUk8oPpnYxLgyawFUFHYI6ALkSVsL9OjiD9xHKZXD3yzTyMFEW1Pw8wFzAuY5uamfXcxuumzLrEkMCaRMu2uOAQGN4zKJxNr4Hmo+uSnnHiAZ4yBLjEVrfZxEXZ1B5hFVCwz1uk1aRgvyL35i5Tq2YASXzcVWCEvhYhKrmkS1CD9b1gpuR27qGiOlxOm1IW64Qi2YlJtqVZMYuoikbaWJQC/x1CQ6mcT6/u4UcjKuIblpQDLNdADs5G7KrEmstwCYXNjpYK8lAGvuYsWI2h/ztGhtrkdGudTzzIufehhfdMMB/KcvvQHXl9eMbSGpfRU8++hjEk224dGylq5qyh7IfhmJGttCvpKbuj+Ddt/mbuptbyOE1QDl9FrF7tnGmPvtw8Yw18Ypvro9QB3nq/dOJrdCa0IBw7gmZdTylrtDQYqNfTQVIFcs9HFqdavW3sPnHNrGJLrkpnvKIPHgfCX5NcsUXG0islTg2tK87KuefiW+6bnXqtcdEnSzHg2oXGXN+US9b3L/KVE4zAtVPiSr8+xzpd0sGeaFQaaTiyaTOLGPsn4t6/WEEeCbx6C5fzS3NZF4EhCrRguMtWGO/fPqfByfEpM4TeOavHRG9yVOW+WmwiY3baktBBSTaNYkhspNc7/ctIW/jOCAUxdogmR6PhcrG8Z5gYVBhjPjYXB/MymNFgxMd1OqEQndRzoc22ESN0Y59rNH8RDSANU3juzufYsIgrlw5C3+i/IaCc/smouGfpqyZKNAdd5C2VxibbKyhkIahgQEksQsWuSm2rgmYHtboxwzvUQ9SMu3Nx9SUtYXrZTNp8nZ9kDUC8Lyby95+mH89D/cAaCSbdlqBui/ze9rwiWJoppAyngvlWYEJEfpYozkukc3RwW2xgUef2AO955YxbnNka5B49zbQOWcq6Rl9rnP2QKDwaJsB+QSyKotrDEi4RJo+i6UuAuv//Ib15jMpgvCIndsXstNaNamySQWhb4Xk0Tgz1/1xbXrurpvqmuFtu0zhUk9TcHNuiUyXMlaWOomzH2wMYIhNYm2urGQIDER9ud/xSRO1iS6jr8Na0Z/18o4qP6evFDtJ5JE4DmP26tfrzGJjNZJpuFTUHlD4/jbmFWSbWeJwBULA9z26DIOzPctclNbkOjedpoI2PLJ5zZG2FsyVzS/Aio4qpQk7qTMU65cxMd/9CU4vDiYMNexJWXMa+SnvuGZOLgwwJc++YpyXPW+JrZGhepTOy6wPhzX2NXMk4QbFQUWehkWZjLcd1LVWybCF2zXWfFnlbX6L/+Ca2uvN49/syaxidRx/QMVMwsAG8OxLjU5uTqdmsRptsAggyWfmRvVKvZdAbfVuCZEbtpgEtvMbgCE9EmMQeJ5BMf0wUQlJeTJvUaFxD6SqTL7ywF8uWmWEo0e9qCpDDhKRqoDk9i1vcc4L7R8sQ3U20lKvpSWMMoLpG1yADTlpkxpnxDoZ+ViN+AcmEwCR25qtrLg7CdlnzO9QJs0GyDGwNYCQ8tNA67ljVFek/HYFsmFlDVh2f5ysUB1kbYHYnNB/oSD8/jFb/l8fOqRJaNv1eQCSAYtku21JRRs0TEh2RCXgacaVMB9fdDxv3qvcm6lvoz9XoqMcW8DZeJC+OetDYe7KSdo2w4qw6dwdk+zYgnP3ZQ+mljL0AW5ae9vM+AIMlwRPibRPs7tblpvN9BMfOiWM2YApt/r3EUvk7hmSNKOlIYrypXZLdtqwjxONtliSCDrSxz5WzA45KZrW7UEUHNMc1su1I1Tyv2yBDe0j899fJVaJYdaTtsZqoHnyE2bcl/bNF5nEgc4tTrEjYcmmURbLV3mYRKFcARf40L7PZjnYP9c372txn1z5Z6Z2t/pMvD1SQRUK5Kf/eZn6f+7jGuKQmKYF7hm7wyOLm9idWusn/eAqtV3nTe6VxcG2QSTa/9u9X153IE5PPjzXzexjxNM4qglSPTc22YLjLVhru/naTB7QLWe6Lq9UV5468FNmGt51/aGeV47R02klpIDJTdt2YcJuWn5e5Sb7h5wFlgmSErIX6RJwyQhfPIncI1resxAtpIt8hgpExsdg8R1xjgy7kgTwQ7cCKHHsm5cwznXqPUEDHMApYwotNw0hO2mcbPMmkRiRHwOrCubY8z3U+sE2WcY12wM8xo7ZZMbkWkP4SVPvxJA1ePJ9kCkjzD37luf/7jaw95W/xLEUjgepCT3JAkutaaY0X0SQ5My7dcjybdp4bOyOaoYwSQJTjap/UZrcsvVJ5Fj2rEdFNrwiSEb1ZIsM5gNuN/KcYMsPNmh9zGASfTpFGxMVluQ6HY39S+KbIxIUE1i6jbg2LAwiQmpEhjslxqnAtvmMaHf/O6mkyxRW79J+kwbKX6mdMm0scC2mugmTpzbxPL6qGYAJxznzWSyrtwzg9965RfgXf/ly3XSImUY19Dzps9iEqvv5XIvpn0UQuDQ4gCrW2OcXhtW7YU8TKK/B6ddbmoek32N+kJXkN41uWJLilrHNbZHc/WBUpK8Psy1cRCNc90DozIZbpZvCOFuC1WVoNj30XVMKrmpPeBwMceACgxneymEUAEjPSu6rpe5oK/SNUjkOJwW5Vrep65Rcn7fHGQxbJR5gNxUOOSmnnFpr1VuGoPE8wiOVMuE0uST1XG4bNQ0heFkrQmd5Kaenj2ubXWRm1ItRIjRhA2cWsa8zMb5io2t4zocS/r8mR63/5SS22SeQOoTD57Bc376XdpaWj/s0kQHYBzDm9kuBhxCeFtZrGyOrCwigKAAmCzlzebSAMq+e/X3FiVDTHjpM6/CTT/2EnxRWWdYOblNBoncnlzBNYmWw09BGi0Cie3jMonm3OG6R4mxuWpPxSSOc1VHkTIb3OelLLHvqRvbdLbAsC90zzdokVi1GGrfnsmIcGoS6bsMmE7VJmtgSySEJiAmFtaGcZVrjPk+wjhwsVtn4NXPzkyiwTZQHR/NyewWGOaxZDOJ5XutTKIncHYwWadWh9rwZGKMgxEkHD+3iS/82ffiP//ZJwGg1m4AsNSu5nUm66XPvBpPuXJR/9/X8LwJet700/BnAH1/ITzSeiNooz60dxw9p4McV52mybbb4NqeGSTWmERD4to8/M26vSZspki0rZAERPN80/xOrTJWt8a6TyUArxHcKC/QTxMdZNN+p6l9fi2k/1p2XVvDNrmp594e5QUGvQRzvRTrw1x/FichuR3QdkJdeptYMnpRtoFUaT6Z/HBc6PWtDYnNBOsCyk1jkHge0dU9SUuiGDUD2iY/45lbdGG/ACWl7aVJJyZxpoNxDWVauspN1zlBojTlvjwmlxC8kC8/f76fsdxNtdzUI5u7/dFlLK2PcNujy7X9y5iyOZq7uQxwc0Fu29bq1rjWe81E24L8de++G8/9mXfjnuMr2BzlNXcwW/atWZMIqEbTE9uzyk3t35HGTQaJ5X60MomTx5IWQBRIkbnPDNO4ZhxwPdJ9cWjPAEIA50q5qWISmUoGSW62Hie3UQ7TlZcwNbmprAxQ1PZC5KZVkMjpS1rVJPKcqk2WxBbshQQ3wio3Vdt3MTAuNneUF96AyMfAd3U3peuynyU4uzbS+8153jSPU9MAopKE8wLgyvmRz2SdWRtaTWto/wD3fPdXNz8CAPjwvacAYLJPoiUAaNtH30L+6a99B/6y3GZV3hDOJEojuLIl4NTnVm0iPu/qveqz80InDrVM2MOS2uByNzWb0s8ZScVemnidVOl7WLflYnJleyBrHVf+n2TB61u5Ntyi/XDKTcuEjvlMTQ0msXm/tToeO5nEMkh0tG1IHEE6UCkTZvtZTW7Kabe0HZjti7qs0clILgRUy9tPE6e3wigvnPWIgCPhUeTt7qbNFhgywLgmyaLcdJroLjeteuAFLwjzOksXbCZjvI3NJNJDO3BhRxNSlz6JPXJt7dDaA6hnptugF8ncFgCmdDfwu9EidW6QsiYsWgD4Ainqf3fPiZXatkzjjpAG5k0mkRsk+vodrmyOa1lPEz4zEykl3vDeewAA955YVTWJE0zi5KLJL9GbPJYmi+SCPUgMYSnsvaSoBxgd79WtRk1i6PE3jrfrHiU78oVBhoV+hpXNkZYsKWkfh0kvdL2f6/rfGBal1Kh+YKZlXKPqJquglCc3FUb9XcC4BpPIYm0CmMQ2BszW3BtoZxKbcfO4VQ5lYxLpvnHvo49JpCDxqj0zOnOvDLd4QaIQVRDYPJZVIOv+DFsPyBDjGluQDqh2MwcspjXm57l6hR5ttAiYa5Fkjht9+ppQTKL9WN5zXM2pv/COu9Rnl4kLrVwJkVsbyZXUchzVPlZB242H5vW90pSb2syUvO6+NrMP1Fn6iTmopSax9b5pbG6ct0tifdvbUwZ6q1tjFEW1f8q4xhEkluxxk0mkHI+t/hFwP99c11ZlXOOWm7rm8lHp3j8/SLE+HOvP2ukEIcG8BruUPJ1jyE1D1pLDsV/OT/4YNYTITZs1icQQ+sZFuel0welnZsLsgRfOJJJskYxrwsaZNwzLJIcWkkm4A2uzJpEVJJY3EacmsT4Z8Fi6LnJT81yFSwLLY9LL2EF6W5B4qgwS7z2hXM7Mnkh6HKMp+IAbJJbJDp8BjS+L5rMIf/jMuv792LlNR01ifYxEm9lH+T5jXMhtZKu/0CyFJyzNErstPMmdST5LvbIquWnYvT2qyU39TOJsL8XiTKaNa7JyQchqwVNek76F/OY4t0qUXAYJ5xtkJlFJmcODPZ+VvA1Nd1OO4oK2o6RG9b9LtCcu7H0SC+84twEKn0kM60GYeJjEMYQADi0OdOZeM4nj8GDb/K6paMpN1c+24wjU54Q22S5ty3ZvL22MsM9iWmNuy3UPnDi3iaddtYgXXL8fi4MMT7myWUtdf38b2+ZjpEh9cuUeFdBS4qLHUaDQ8TWYRFtARMcxSxM8sawPr5hEhwS0gJZQcr5b4TkmriDdvP9tcLGdRQuT6JOpAtCtOtZIblregsq4xs1K9VKhxwLAFYt95/zazpLSd6m/Tusp37PbzyQK/bypmMTpyE27llh1GWPWwLtrEluYRNu1HNIncaIFRrnfrXJTfxAc3U3PI7r0AQQqSUTGqEnUTCJTytm5JrFQ2eWMIck0M+tC8Kj+LjWJ9e8WvvikWgJfxs41jm7o0O3ReZsbpDixwmMtzf5f9sbNqpaHgkSzCTSnKbiZSe1nSbhxjSGbBuxykryQziyazyL8I/ed1r8fO7eJjVGBA/PV5CeE3d3UxxrYA+7ABXnjMIawFG3uplpuWrLggx4/2CC45abqs+cHGRZnepPGNR3Ybd8Dcex4IHJq/baDolDXlb7+A74fnUvzWg7pL1e5m4YvrIFKEkvbdLVXaat3ci0+XfWFrkXrMJeY6fEZEfWZzmEtNYk55vsZ9s72dGIwFQK9jMMkosY2NVvVhBoAAfXv1ibbpXFWJit313f65nIAOLGyhSv3zOB3v+v5KGS1QHf1GG260jbhq0m847FzAKqELq1JUs9c3kRlXuRupUCqCcKBsmcesWiuxEXewiQmid04yGQuAeBHXvY0bWCTeIJtwH3fCGF30x4XfibRJV2n/+8pA+X14Vg/7wG/cQ3JTa8yHFgPzg/cst0WpcxOuJsSwbB/ro+z60O9DuQkJLeDcaEMHjdHRSe5KU/xVZm5ucaZfWhtcLfAaAsSm+6m5bpN+GpnekAeg8SpYTs1idSTi8sakLtpsANcjUnksAYqu8yxJK+yVgn6HkmaDfRA5DCJ5ndjObeW2c0+Y0ECqAl3tpdidWvMqAkt5ab98L6FgArA+p7G8UDVk+ueE6va2AjwW2Jb99GQ2w0YrTNMl17Azr6oCdv/gJp0KZX4hXfciWdeuwdn10Y4tryJrYbc1CZ3kRJejZ5tkRayILc594WNs0vSyACmV7aYWd2sy02Dpcx5+71NTOJcP8We2QznNsZKXpgkyFK1f0XLYkdvr6gk6K7gy/VAnFaQmMvquwFhC5OKSQBrkazdTZkMsKpjQbnNyYV8qJR5kn1pY0Tsc8k4bzFW8MpN/de/6zrZGI0x209rLo1845q6UVWT8a9ku+0BsM2UxxekuOSmvjo1l3EK4XjJJDZbOfkYKT/bljiVJFSeQaZnKrlSzeWc50ZNbtoMUhqBLJnxaLmp77u1BOm2YNt0DgaA7/mKG2tjzP0mNBvL22CTt7aZ67TJW8lYZ2VrXKunbzOuyZIEV++brLW3BbKtiSPH+iJEbuq6RoZj9QzYO9vDkbMblXHNFJnEuX6GzdEQWx08LkJ7kNO2EqHWr6uOkqetFrmpNUiUAcY1SWJvgeFlEmMLjKmia00iZeT7WXgmn27I2W30SeS4S+mG2xy202SkGPWWQGVcw7mpa0wKMwBLU+Gt2XBtj2vKQ9fIXD9jHY9mZtf2QKSaxJXNMU6ubNVkUhyjELNugRr8hoBcekmqZruWfQ9SV+AwyiXOro/wNZ93Fa7dN4vHljfLPonV9NWsSTSz2i7YAu4gl1LLJB7WTNzPJAJKPk4Plx0xrtmqgsQrFgY4ubqltp9W5i6h/V7JcKWXJc52LsNSatSE7zo+nzBVAgCQh7SO0eZFvEVy092UMyfT8UgTmyOh+tlWk+gy4ODeb2MP+wXY5Y70VdsCWddhVExiqhkloJSbehqJN1EUdblpc3shvUw1S2TOCUXYXGJjEn3skovtAYC//MQjOH5ua6JHH23LNk4lbdxLuix1M4k0x58gZ+xSbqpdgUMMn4xgugo26u9pMnvEXFLCz90EvkVK65A7mjWJTVCblKbctM0BlPazi9zX/HxzHKDWBImojMvo/VkinME9SRep760JG3OvE8dOCbp9Xh62yE1dfUIBNQ/2U6GZRFoDTc24ppBVwrVDYLrFVNe0GW4pR1r/dWI1rmltgdGUmwYyiS2IQaIDeSHx6/98D06VEr4QmItiVzG6a1tkLhLcE6183wwza21KQDlZ/HFRqIw8Yx91JrsMgDvVJDJcSmumPEwmkZqCc2Wquk8lw9wFUA/HUR5uyUwLIB8Dc3Z9iCcemgeg2ES6RthNwWtMYjjjGWJcQ3VsNrgswmmx3csSXLd/FkfOrJdBYloba361UGavub2Qxa4oWRvzHg9xTnQ1mDYD59leitVykTDb50rJzZrENiYxw5V7ZnB8eRPkOOiTCdu3J1vNRUaOrKmPET+fCOndOTHGWEhxkit0b9FCiqPucLVtAKCppi7MBn2mDS6546goJtir2jiLJDCMSXTPP+vDMWb7mXZ4BEomMQuv098aFzX3xaQR7En9up8lbwaXVZDOl5uS26F1jCdR8vbbHgMAvOiph4PHbacmkeb49WGOtbKZOwXpAFi17EJAM+M22aiZgGg6aDvNXdrq/SwybWAyKJ0YZwkuq+emcxiSxMF2ttyj6n3113UyNxWYL83EACNI9NSKk8TYdO3W+2j5bpV7d8ucYElAmPtk+26uuZzcTffP9bC8MdJmhNOUm3bxxSBwe2drx2/HWrKtJrG5lgFQyk1bwjWn3LSlJrEFMUh04AN3n8Avvetu/MI77gweYwYmHBelqm4mPGuqW2B0rEkcZLz6O8oucySZzdo2zs1Gc21Xt1Fuv8M04dW/0Dh9/AMnPPp8PWkxzneWuGU8gDpHT796DwBVl1hlRLstdhNBNYlM45rEzaT4FjIui3CabLNE4AkH53F0eRNL66NGn0Q+I2h7IJJJSIgkrT7Ovy3af+t5K6o6nbl+irVh07iGz9y7Mv/rwzEGpWz5yj0zWNkaY3ljpMxdUl5wo2sZPRJ0V2N2l0X7+YZ+aLcY13zq4bP4b3/5GSxvjGoJBlbrGFnNrWpb3YxrutQkCksCoi1I9LqbtrA2atxkAOZlEj1swzBXcnrTyv/AfJ/l+D0cF7WaqWZQFDInAJOGNyGqBFcLAJq3XdsxP9/E0aUN/KvPuxLPe8L+4HHbcTc1686XSjdHk0nkGDf5yhuaQRsxpfSdKrlp/bODmERXkN4SXLoZeL95k43t9DHw2nHUxe4lAnODVDOJdC/Z5gRAnX9Vk1iVoTzz2j3VPm6DSXQpZVzH0lfvOhqr47Jvrg8pq0TltOSmRYcg0by3uCaIbUxim7upNeEUIjedaIERIDcNYBJjTaID959cA1Bp5kNgLkA2R7kOINpAdTMpwo1axo1gIzj7LynbnWJjGN4mghZ7vF6OVXawn/HkpvRWl4zNPsa8sTsEiR3kplpaxnZ8VdfVMC+CrhOafHxM4riQuGbvDBZnMtx7YhXPum4vADTGBciGyrdUNYk845rUW5Podk50LRAo4OlnCQ4tVnbyVxjW8k0mpZJ/8uQ/lQFNyLjqtaazog2J40FqMonmtcBVCZjqAl+fRJozrtpLToYqW10lEsLlfb1e4k1ukeFVEy73w/ONyfvGvp/f9qaPYTgu8LJnXoV5bcfP6+fYDBI5jtO1nmguKbPnM2yyuTZXTrdJSN1cZHKcJUkSynY6GZECvUTgwFzVU/CKxQGrBcbWuKjVTDWbUleMoP9zmrVcOkhvCTYmvCYMJY11jINZklLiyNkNfOmTDrHGhTCJhbTXHJvPS2pBkhqGT0EKFCO56Gql0Cw3+N6vuBGDLMW3PO+6ciys41oZwcTeXsjsk2gdJyxOqjogcg6buLaAStrugkvKSfN2lgjMDzIsle6+lNiyqgtQzS+U0Pnka796wvHb2QPSEcy62M4qUWX/bi4mF1BrnMVehv3z9YBkGi0wKJCeZQaJ5q5xyA0p1XPDV141ygv9jLHB2s6lGHdogUGyKJ/c1N7Dtfaxre+4TPFIablv03q7YEoOWa0bioqBCQ02JphExsIOUAsZzk1KGVEO22kyiewehOX34Yypm/Iw5aZJwrJbV/so2Qt5Yhy5mS2yJPf1l6PF3ZMOL+CeEyu1489iEo2HJIdJ1EYmiZuR8i1kXO6mdC57aYInHJzXr7/i+Y/Tv4uJ7D+97t5fa21VAGsgLAuZQrbL2FKLRAmoL4BMMx6SMnPkvjTOlcgxk1dmvRO1wKD9CUHtvsmllRFxZU0zz3V8PqGt/D0SaKBK8pxZG1ZZc8FLrlTupu1tiT732Dncd5Ja1Rh9Ei2MVEjiwrVoBdqDlEnmUvoXyJZzFxKAWQ0ZSpBS5br9s/q1xUGmr60QbDXarTSdYkMk4bZxYaoEe2ADuIN013x3dn2E9WGOa41jETLOx1qa+2ELOIa1ILFqQVIxieE1iYlH8dJ0N53ppfi+F91oOLdOjisKCSndLJYa55L7ticuJtk2Sm63SAIt903bttTnu1g61e/w9JoqcaL53yUT1sFlebMemO/Xewdb9rGNSXRdW20mWC4mF6CaxAT75uoByTSYRPoauudz8Pq6eh9Lbmr4iziZxFI14YJVlRDkbtqoSaSAMcpNdwZHzm4AaM86mjAvCk5RbmUl7zaAaKLZAoPLJLKDxFzJGjiZ3VpNItPdlMbymntX34fb26bqE8ebENgmFZoBzlj7ScGVr5cgyY2edGgB955Yq8lYWC6NxgNhkCXB7l5UtO1rNxDi9jex2DIyrU+/ehHf8YWPw9/+5y/B3rlebaw5LGRh7Qr2zL9Z99PysG86K9qQJfY64NyQic0ZD/ksSVi9Oysmy80kmkH6YYOVNYN7zvZSAV2Eb5tPXPUXSeIecz5B31eUAZ/rPqV59NTaVk1atS0m0XMcf/Rtt+In/+52tY8G2+FafAL+hLCtjqWrcU0hpbffp+36Dwpky320JRNGhUomXLd/Tr8myjrxvJDW+6aJrVG9JlExMNXfQ/aR/t5UCdD++MZw678qd9P6uGPLmwDcCWqXC3Q7k+iWTm+NCxyYV4t4ChJrNbnMFhghfRJtsCUgdNKSWZMLtEtw7a1jqs90bs9yvxUtgawrwVvV+6n5n1zKKZnnMuWhtYpNqQGU5Q0OdUGrBL2pZij841xMLqDkpr00qT1vgOkwiRPKLWbCFeCr0hIhvMmtUat79GQJAGQRIDd11ST6FjPRuKYziAnkBBsmvcyuiSuz3eFMonpf115q/dK4JtRgRz3EhdchzbWtqt8eJ3BTP7vKTblMIgWyrPOWV0wip44L6MIkomxSXG7bMonTQ+rJVy7g1OqWftjUGZHwxa5aJIcbHJnXMWCv08w9xjWuTCvdV/0swSBL8XP/+vPx7Mftq70nEZNBG+CX6NnMU0INaMxtqHHtCSVn3ZJxTGpyISYDbwYprgeUGZAcMOW6RpuI4Gs5r5hEwH4tjxy921z1p+cbdN8A/roZOt+nV4f6HAnmfVPVe7fPCadXhzoRabIdtoy8ZsU927bJTdus/F3tBkgy5YLV8EnfN55xDjk5UBlwXNUIjHoZMcDt98DWuL74SoS9Trkt79ucS0KZ3Ob3amUSXcZB5Xed6dlPgteV1isTru+Xia1xjisWyiBxY6j3j1gqjuGZ2QKDLRu1jGuTSAKlkmSCgZe1+9+1vUm2rW6iYx9neQa3rKXaG9yXTGIzSHQwiaRcczPVlsRFACNo3ceWQD2zBNt6P/MCvSzB1XtnG69PL0icbRgktcG8R7iEg35uO8YpdU1bAqKZgRj7s4SAmny7tMBoQQwSHaCTxAlSzIuekyWhDKBqL8ELNqoWGGHjKEMxYIzLS7lHliSlJNY95tzmCL/23nswyouaIxbXuIZu7u5yU87xLypJLEduajCJXHMRvnFNUTOumXiwGfVHTzq8AAC46/iKei3lGRCYkhSVFAhPQNSdVCfHUfNfG5yZVs0ktjmCGQs7ep1ZI6IlUy2MCFDP9smAmsQsddu00zGZsQaJgfd2+Taf1MV04KO+XLRv2riGcb6zxH9tOY1rGMHXdqC+r/rdVU8tpcR6WZ9dk5smhgkTg4En5tSnSji3OcLRpQ3dz5QOkS0jT2ZK3CCF5oi2Zu6TJhWBSRJbcsXHQDqkbEAlQ2yyzhx2e9ioSWwuroOZxETUAu4guWliqQkNDNJtkky1/+52A4CrlrT9vNmO/3Bc4IoFlTQy5aa81knVdpwupS3Mnk0p0yaRBCYlwkA1H7aNmzyO1d9csJrJyLDnhs9MxmyNNWsEia4yBUC5fttgl9Kqn77AEnAziT5W3EVwDMt64/1zjZrEKchN6VnG7Tlsuvl2cjfN3P1dW91NbdLdELlpkmInWmBE4xoHaGHGYqQ6Mom0kOol4dIyep+2yWc4UAKVJCovJNp8U2hbyt3Uv4//55/vxRs/eD+u3T+Lq8qapyxJMPA0F7XuZ4cgcbvGNVy56biQfJOKjvIHYhvcD98q2/qkQ4sAgLuOnVOvlcE9EFYDZj4QfLbpE+OkLBMJlP23B0RcJrGqSWxbJPOYDd9i17cgpN3g1iT6HBDnyvNjNhOnIDHYXZaYrF7qDGrM5tLmeZjppdoAIbjFjaz37rSxgsMyi9zENINEzSSm9prvYV7oBeWp1a2a3CxlGHfQtdNrYWSllDhXuqgurY9q7K6ttioocSE8wYaLNUgmF+S0fyEMvDmuSsq4x/nqqcdGP80/+o9fiIMlq9VWS2pia5xj/3xV9zRpXNM+JwCTbC4d1jYJrk3dAfiYRPWzeThaZcKOROG4KDDoeQwxPPfpVi1IJAWKea5DahKrudOX8PMFX7YSgDaJJP3N6VLa+tyovzYOYhLtvXK9zw3HMTHLQkxDE5NJdCXggCqRYtvepLmResEZ7HmYxPbjYf8brW/NxJPrO51v0GU7N2AGicY54ribUoLN2xbKkTglWI9lkLtpU24aaxJ3FHQxcbIIo1qQyGGyFJPQS/0sXXMMAHYLBpokOAyYzlilKrPuG0P79ejZjZrWnm9cww8SuxrXUPaHLTctpCEt4wX3zf5QQfuYtNc1ZInAtftnkSYCD51W5ks1K/MQRqRRk8Xpi0mBjWtbvobPrsDBNK5xQTknVv/XSosQJrEmSVM/fQtCWyY/pCYxTSaz/7R9WhCazcTTRKDfqSYxwagorFLysUP++fgDc+wWGLpO1sFs0GfZ6i98Y84nyLgGUPOXbWGyOayO7+nViknkups2g2bXmNWtsb7Oji5v1JrA27L/QQkPC9vQZlvvcjeVaA9Im+PaZGyAewEKkMJA7dCXP+UQnnHNXgAwrskwuanPuEbf2y33qWgs0mTA8W+OAVBT0tjgbhNRLuRbg/vJYKMtkALs99zWuMCe2Qy9VGB5o+rT50v4NVFrgeGonTdVE759NM9brpUkbcze5Lbob+5xduMmc19c+2lzAPVJW33HBFDB7MKgWtDP9hO9/1Ja5OR5Nc4GK7vdEuzZnLvp/35G1p1IG+dSy8YJL3naYZaTfFdMMolhAV/N34KzBi3Xab00QSHtx2QrpAXGxAkIcDedaIFxfpjEGCQ6QAszTtBgSlM5VPooN5isUPmhMXFmHqq/icqBL7zWgD47K+uWfItI+rhHzq7XtPZs4xqS+7LcRqvfOdsiCWTbdzNBMrEZXRMavrBORHX8OZmt+sPXlY1UPZMOLw7waFnzRNeWbZxrHwFox93gmsTyIVm5ZFqMazwLGVcATMfWN7EK0b1Gqm5uUWXDXbAzkO1MYprY64DNOp09pgQ04fXuLIx7WzoeUC4HvusPzunzFsqmkwTa5ZIJUNZ0cns+6dv5hHm9pQ65qelEfW5zVAt4uO6mqVAmOb45+dxmpag4tryp2Nby2rYZ1+iaxJZrsrn2p+/qvN8c560t4SGEsNT7te+jL0gZlZK0JnyOnE00W2BMskvtQYMaZ/9ubQknd7DR1vKHx4C5xrW5m3oZ//LY7Znp4azF3ZT73HBJi5vups59NIa1Bdvqbxb5rT7+7n22KWXGIUGpJQArWhh43Sdx4rxVSQGz5Rpdy5njHNC4zPEF7Y7H/mBPM7nNa7nwzwlpknh6oFbz2+//+xfgl7712dg722OZO3YF7VOXvtSEUOM+2p6ZKLc9u9vkplb1VlGEyU1tLTBiTeLOgBbvXNlo9Xv4DTAuCvS0lTzvItaBG1PuSBNQyH5Wi/SSbfMsmE6sKGe2+0+u1ditadQkdjWuoUw+zyRE/axqO0OZRMWk0SQROmnRProWWk2J0tV7VaN0AA12I1w2lCZKbsfpm5cKg32xMonumhRXplUnKVoy0OZDm37z14hU+62/g17s8rKtQUyiw7jDrNPZ05CbctjtkD59riD9cQfmWE6GQPncamESXdKaabbAqIxr7HMX1SPum+thZXNcY9LpnIW6m9I15ZuTz5VMDQA8dHodK5tj7SxpN64JZETYTKJ98RmS8MiSev08/catZSS4rsuEcU1ujfLa4qsp7w4J9ujvdVOq8vh7++a51R2uIMXXS1CNczNEalz99VYm0XMtU/uQxZkMy4a7qVaFBF3/6qcQ/gDYzwiW77Mk/LzBpbX+LuS+sbmU0vn2j7Mx8N7nhiMxRtvLEoEFi9zU5QSt12We56ntu4UxiZPHsjVId1wj5jPgxU87jG953nVlK7WdDxJput9WTWKntaRwjh051DUEa6sgGdoCgyk3TaPctDPo5HJq28y6QA6VTj2ifO57k2OqhXOvRQJqgi6+PodJNDJWiu10jzmxonr8nFkf1h52XYNEznE0byw2k1hmf9g96bRsNzRIL8razm5Momuh1ayjMJ3EzEbpYRlh9ZMs0EPZHsoS+wxQvEwiZTEbEyTdi206fpu7qY8RtAU3YUwiLOPCGArAlV1XYxdNuamgazLw2tJBojtrSmwv4auefiUAtSDRJi1MJtEnI3T1SeTIn7cD06in5zAOIibx8OIAK5uj2uIySYS13q91W5452QwSb3t0GQB0PZgti6wX355t2+pd2xgYl7tmSMIjadROcu4b26Ec5dLKiLQlE/7+M0fxlB/7J6xujTHM63LTRNTr/UJrEtWxNMdVr7sgbDVqhrrDhlb5YUsyzc4k+s29zM8393NU9m5bnOlV7qYJj0mXsrre3FLaQHdTY1x1P7q3Td+tZjjUchzVOH/phgv2fqZhNYku5jJNhK6dAyq/CVfg1uyT2IQQlnVCS02oa07IDdm+Da42HYC6t5tqkh4j+bwd5MZ6V4jw9Za5bzxX/qpPIjDpFZIXsvQBYQaJwXJTM0gMaIERmcTuqJhE/+Lg5MoWfvfDD0BK2WASeUFKL01YjeprdYIMmWTFJDJqEmvSVn/rjJNlkLi0PqoFiZwekEA1uXGb2xM42Z+qlq4DI8tsgUHSYnaQmDfqv1oWFmaPrUOLg9Y6KdtnJQmvwFzr8ctt2e4dnySqzd3Ua1yT2Hub+SZIW7Y7hEm0LWTaTAuAarFoy3hrJnG2yuwlTLmplPV723ZNEttLeOO/fR7u+l8vBdBuuNJEXjKJNrdXgm2BALiZhvONELnpZhkkXrlnBoUEVko5KJ3PJmvm21ZlkuOek28/ek7/fqsOEhWTaKstpP+2OSc2D2UbI0WvN+dyKf01ucDkorBKyrSzFPaaRLssuW3e+u9/9RkM8wIPn15XfRKD3E2du6j+3pASBiWcLDVx7Uxi/fOb41zHUuh7p/56KJPoSsINshR7ZjMtN00Fj0lvJlcAm+Klxd3U8gwIZfbMfTD3ue2Y2IJm8zOt27Pcb4Vsr1sVLYx/jUks53FXgrdKnrrvb665TuK4tgpjbrOO08+AyWNpC4raXPLPF8xz2U8TbDFbxQFME0RZqdKAyTWQ9lfI/PfAxO0W4m46UZMYIDeN7qbdQTdgm2voD7z5k/jY/WfwFU85VAuCWHLTvNBF4uGsDTFHPJmqmVkBwjLkpnGI6TbXt1zoZ9ZUFnJpfajH0XfjLAhpgmcFex2ZRNNwhX0cU5WhCsm00rZ6aaLlBsM8sJC6zOTZWCxgsv7ouv0Vk7g4yHSGOeR8N5uJ+ybzWx46g0ICL7j+gGY7Xb21ikK1UmnPrDsm1rZi7wazR6+7x0w+2Kp2A+5x9oWMP7BU49RP27mjY2Ia1wBgGdfoeuOe2+yjuZBUiYey9oXdAqNkEh3fiz7LKjfVNbJBm+qMQlbn2XV/rw/VPXiobPZsGnfQT1/N9xveew9eeOPBWhsU1c7IPub177kbADDfT3HPiVUAwBXltjsb11gWnzpIdAysFtb119sYEQATPdhMqaFvjHqv5Tpx9Phrq4mjBdzptS1Vk2j0FnS5m7Z1Spx0N6Xj72ekms98s07cOqZzTWK5XxY1SUgA1jyWVHM1yBIsDnqV3DSpmPSQBb3JuLodWFuCDcszQOf7PNs2VSG0qA0KLi3rkhAm0aYuCGmDZLu/zWB23qhJJCbR2Sql5bloUxe0JRJc11ar4Y3BQCbGmSJ5f3Mfe4zn2nbQVLOF1hd27pNYoBEk1sdqcsfD+NsY4CB30y4tMCKT2B0UHLYFKfefXAOgstHmQoKTJRkVSm7aZEOa2BjmeOi02t7IYPdYvdQaTGLIgnBsPLR8BblSSqxsjjDXT1FI4GxppU291DhmPvSQnkZNIk2cpJN3saS1MXn1AOolSbC77LgoGnKEUNZG7aPNNIL+DlQLixsOLei/mU3BuX0S0xYW5eW/+VF86299FMBk3aRrgmyr0ZkIEg3W3IV0oo6o/MwgZqN6jcMk1hcyftMCtb0QJrFXbkP9jVcnS/e2T27qXshwnAyBSjrmWsQodYVdWkNjdlpylBdVD0JXneDGkOSmin2nIFE7jiaTToaEe0+s4nXvvhuvfvOnagspV3JlbWuMc5tjfN+LbsQLbjigXz9Uyk3pGVCrrw0JUiwSpdDatkm5aUCbiKTD/eaRJY9LGX4ToTJ5MgDyuZsSWgNg0XQ3rV73jXHViTtbkDiOR6vc1BFsk9rEuY+OcWTx3y9rEmneMGt5Q2tyAXV83XOC3zjFto+hxx+oqxnajj+Nc9033JrEkERhkniuk4bcdCary01dwaW7xcrkejLU3XTymmy5tx3GeCOHCoijUNoOzPryQZYGkw70PVSZVHgLDHreuGoSzXWjC5OGW1ABX6vcNLUzid6axBgkdoZmElsuqnObakFxbmNUey+vJlEZ17iyOABw5Ow6XvRL78NX/OL7ta4ZoCbY4fpuujF5xjVlTaJZb2ZbAA1zFFLZ6QOq5xhQMVIcJ0MtN+0cJIZviybOvnblDAikjGJzJS0LPP5lCwIKEkPlD83+dhNsVCNrfcPB+drfq8VWuHFNkoiyjss+xux7eW6z6vfWcxzHtsy6a/FDCZvzXZNoY2XDGmfbFzLtWeRye5aHPT1kyYWNako5Mu3CeLAB9ns0L9wW9BwHXNqe2V7F5Uprc3JzjTnfyGv3jX2xu6HlpipQIzUEXW8qSLTfA++8/RgA4Lr9c7WFlCsgfWxZGXs99cpF/NK3Plu/rmsSLXIvifbAhlowmMFlXihG0LVwdbE9EnxGJLRNB+1XE67WLK7ESvO1R5eUk7PP3TREEkv72ZSSq3GeMbYFeWBSzD2ujYGsvz723NuAuwaS2NhBltTcled6pDBwX/8mTAWKy1yntZeg5buZLWmc4ywJj7YkCW2PG6TTZ1oTOe5d1J+ZOxjnpnFNs59t85lf9a92XCeWesuuiYTWekuXCsjx7M5Sf9nS+YIpNx0wfDFo7p7rp2y5qc/dVAetLcdysiYx998AgGIaC6MXeWyBsXOgDDjQTjVvlvT18saotpgLb5IuUUg1EZuUfRMv/qX34/i50hRmbVhvS9EiCWxuD+C1wCA51vwgreSmlocGGTI84WAZJK6UTXmJSWQEifReTrBnPthZxjV5XSYZ1juyyrZyegnSg3yQut228kLiZ/7hDtxbStHoNbo+VE8o/4PtWkNuCvCMQupMovu83XpkufY77aM780nXbFtmvf56m9U3QA/E6v960ep5bNtY2TDWhrZR317bQt6dpa1kYtfsncV3vfAJ+IP/8AIAYJkp0cf66o3zwh0A+JgeGyi4bZMJ2853lbQI2lRnFMZ903OoGagmkeSmx8+pQI6y+tbMbglKhPUyoWty1bbsDPBjyyqYuXrvDK5YGOCDP/Ri/MK3fL5hUqHe1wzAQoI2oG7Ukku/kYnregxlRGzGNW0N59XnTy5AzT6J9X1UP33NxAHodj9Nd9NasEeJ9VYm0V6n3OYuO9GTrjXYo/1yJPycNYn2ca01iQ7jLFoEE5NIMK9/nrupcJ5rZYrUPrdaExC+3rWWOSgkSLSpt0z2ybc9e71rQHLFU4N6o6EA0mNcz9OWWn1bsNFmQOOTQAcxkM1A1iU3ZSibtgPzXHLME+lYz/VS1lpSlte3i0nX16S3nddkfTNk0c4kJmmdStcX5fZaYMSaRAtMijiUnl4umUQqlg92KTUW98K4sHqN82oGISdXtmrjtlOTGDKOgr89Mz1vo3QyfHhCyWKdNJhEWxG1C+bDj8UkGuwey7ZYVu6mapsBD8Ty42kch8mttcCwTEC3PbqM3/3wA3j3Hcfxwf/xYkipEgmmlM0VgJl1VL/w8s/H06/eU3s9JAAwH64+Bvj02pb+/cjZdV3c7rT6Lr9qu7V7M9jwPwwB9XAzAwBdxxIQuDVdStXnecZYvl/IwpoWi7YaGDomSSLwU9/4TP23fsaoSdRyU/d17LNA99WM2UCN6p0yYU/NTDVmZ6NE89i6zGRoLqU2FMdKto+YFJ/cdLWc85bWR7h6b7UAc22LmERiih9/cA6PL5NqgP0cqGvL/z2rxEVVE6SMdDxjPKxB633jXCR7xrTI5mxW/j4m0XzGPnJ2HQAm5Ka1exu0jy0BcAeW1OZK29anz7WwpnsidS3+Heetzd3UdSzHxkLedFcmVitUBVSxNu5zLVuuZatKo/zZdvzNfQBCgz1LsN3SX5T207y9Q9hmGmczdwHUnDE/mFySu56nVdLV5W5qN+XxSh0dLLWvTAGw1/cD7me3qUhrrnXPJ3SrQAFWr24dJA4ynQgMHUeu8Ob2m5/rdYq1MMAqSGzh9JrGNSE1iQEtMGKQaIG5uPIt0LYMrfJSGSTO9VKsbI3D5YcGS0LXRdsa7cTKpmF/LJzSJhtMrbX5fx8o+Nsz2zPqlixMYim9fcY1KjC5+/iK2kdiO0P3UYYd/4lx5efPMLM/tJCsTHnCmcRUcN1li5rc1LafNz90FgDw8Jl1bI5yfczNQKKtTyIAvOIFj9O/6x54QRnhalHkq0k0j9PJlS1sjgvM9JJ2JtGT+bSN08FGCytiD/baF4Tcxtl2ual/Qa72Uf20yXBd7ConAVS5m7p7d5qM9MT+dWASzRYYzuDeJjd1sMbnE02XwixJsD4eT7yPvi8FiUeXNjDIKmm9CojsO7o2rIJEcwGm6rgmxxwvg8Qr9w6sn2c7BzIgAWG6SdJD3WUG49sWbS+EFee2iWhzL/a1wLBLVKsdePi0ChJNJmyylUV7sEfjzM2F9KkUwiY3pcQd17hG/fTVmgG24DKQSXTV4AlR69NKjd3TJMzzwJSb0rsne34Gss0WdUdIfXktuRLAJNpUApUk0LefTQdc9ZOblAQmmeP3/Ncvx6NLm7UxgC3gqP/dtq3mWrKtJpH23xZc+sZljhITU/FmwlSkzWLnokRTYt7PkmDygObuuX4abHYDVPdg5QHhkJv6kneW4D4oSGwa14TITSOT2A3mwt1nLLK2VZ0QYhJn+ypIDJUfmgY0dEE3J5FmIFFnEpNWcxETZiBlbr/5nj+76WFASvzznSfwFU85BEA9gH3GNZXcdB7X7pvFkVICpG4aFQS3ZbLMfXTtnwt0/GZ64cwebc+8scOypuqnYtvCjYOoBQb9s7mb3l7a4gPAxx84gy9+4gG9Lfrpc0izgVMDlte+m7ve0rw3Tq0OsTHMMdtLnVbfbfKfVlmNJdggNBdpoQvCJsMd5iQ5+dAupGxtG+DucVm5mzbBsQqn40YOj065KfP422A61brG0fb7lqSAi0U5nzCVBYC7TpCO76GFAYRQtdUUMNK+utYWK5pJHNZkoa5tbY0LbaJgg+24hLiN0vUqG/dAF4lY0LXcyHaHOrCq99Zf98nQfQZH5oLvaBl8k/kQUGbkLcFGO+PfnBNQjnOPSYRNblp+nmOgaz7IG6oQ5zjLcfQ7ctrvU1MVY9YkzpdyU8Uktj9PzWCTbvkJ1qzlWq4CYHNM/W82CEvg3CbbpXGTwb1i0luNa6xscwhLPbk9oDrfTzq8iCcdXtR/bw84XNeJXe4YMidMXMvSH2xXbVns65JmYlgnrafQJxfglzzRuNleuNkNAO2m7UqIVSy1r3TGorqTeQCT6DCu2WYLjFiTaIG5uPJdIGuGccfyxgjDsdTGE+G29dVCxjWJU43Mj3/d0wEoGafO0KRqQraZ3dhAN8lMz80kfurhs3jt39yG1/7t7XjfXSd1sLc4k+mb3RYUacZxJsOzrt2rX1f1fuFMVi1IZLWyUD/7qXthvbo1xk/+3e34D79/E+4/uaq3lyUJi0kx5Z0c4yAlJU70ftqYxPVhjscfmEM/S/Av954yJBNlkOgttncHG0BgTaKRSVULJvv1RffG4iDD8XOb2BjlmKXss2Uf29zYKLhsPqCGuXsRSWjeA8EmFY2HdlBtlSUjL9HOvrjuAR+TqBj4rjWJk+eMJKI2cOSmZkbUNc4nN9UByg5SiU2XQlcyx0ycHZhTwSHN47SvrmNCz4C1YY7NUVGx/bZsMLo1Ew8J2mxsLjkpu2ALLIGwa3lCbqo/s50lciWBrO6mqZ1FMceZIPMhoJuUnP5u7dPXwmQ5649akzL119uCm0Sft24BwORCvnqW7Z+rkiPEJIYqlcxgzic39bPN9D5eAqJiIKvXmve/fZy9ttP3rKHPtN3frTWJiX17gPvZ7Qw4ApIJ1trCANlo85pUzuXOYdbjT9uz7WMlN93ZcgO6/8k7grtOnh9kqnyMsZ5PE3cQHMIkppbEBWThD/aASeOaoBYYUW7aCebC3SdbXG0EieOi0BNrcE2i4VAloX5vTv4nygb1Nx5ewMIgw8mVLV07QO0lQiViekFE7qaWpy85xREeOrOOQZZgkKVe+Q/JTRdnerjhUOWu2U8TZwBs3ceOtYUVk5I6j/+H7zmFP/jIgwCAL3vySTzx0ALIzMPnvufaVsW2hR1/qlsFKACYHDfKCyzOZOhnc3jkzPrExGLt7dRSR+GyqLahMB6uJAtp9j+i/QSAawzWeLZkqP1W3y0upY7v5nM3bS7kq0Wrc0i5vaZstHy9RQ4CTNaNhQSkQFNKKL2LO+UsGHZtNVtguJhE5zXCkICa59I1buS5JiuTrvZtdYUpfwPgXCSYLPyhxQFOrw1r/cp8GWjzGXDs3KYO0F2BZVszcZvDbIj808Yu5UWL1M5xPYbKW7lsp7vFTfUMnNhHB4sCVPPC4kymE5SH91RMYhcpOe2nrd7SN0w4FuTmd5jYjmZWHeOcfRIdwXZLcOOsFTfuE5NBp0RJcE2iXpADKOyBjTKucX+Gr0+iN0ixJO7092oJ7m3Hv6u7b1ByxSX3dTxzXCZfIUz1BPvYmqQq32c5byFSZqeUvBkklv8PbR3WFVpyLIhJDAz2yv0mQ7FhXniN8/T2SjWJTxIOtK2BLOs0KQPlpmbGu/z9YmmBIYT4EyHEY0KIc0KIu4UQ/0/5+vVCCCmEWDX+vdYYNxBC/F457pgQ4r82PvclQog7hRDrQoj3CSGesN19JbevhUHmZQRNJnF1c6zlpkA4k2j2gHNN/hSozmQp9s6qZrd5mSUmJ6VQ2VbFJKr9bNoxA9AL/t965RcAAN59x3Fd6+GqowAqJnFxJsPVe2fK96v6Rz3RBexnYewjpyaxWiQnzszPyZVK60/BN/XoctVW2WBKPVjGQYXUgZetiB1QE1IvTXD13hkcXdqoyXiAFibR1d5AL7bCH/bUJ9H8fBNVkDiDh8+omiBaWKRi8ruFNClOLXKcUV7UzBBsaBbph9SxAJMMQMhC0sn2tDGJFuMaWy1pfUy4RGaiB6qDNWszDgq5R2sKCIdroi9Drk2KdnCR0DQJSB2Mf27IHcnh1OxXlljYBsLq5lgf7xPnNiuXUmFxqEM4k1hf7LZfx7ZaotbsvyVoCwmIgMn7u821ksbQe03oJJAvmWCbf8oDTO1DZnpJrYVAk0msXDL9aDIwQTVxNtliixywTZbvrEnUzFL1min/dkGPczC5aSJw0AgSzRYwvD6JJpNYf49EC9tsWSeESDltc3JbsE2faZu32pnEyXtUfZ53mPWZXyXF/bWrzbmrSubat0UqoNoY6Q+AyfHbxlIHyX2dbPpkCwzAvv48n2jKTTn19kBlXhbuMK7KOVwKiBDjGqvctAiRmzaMa85TTeI05aY/B+B6KeUeAN8A4H8JIZ5n/H2flHKh/Pczxus/CeDJAJ4A4MUA/ocQ4qUAIIS4AsBbAbwWwAEANwP4i+3uKC1+5wd+PTJlkef6KVa3xhiNJfqpqtEJZZbMwt7EMkECpvuYwL65nmItjb5SqkA5bHsk79ILSQeTuH+uh2v3Va57p1ardhaA/aG9OcohhPpscu8z6+jU9tv305TEFjKM/TL3qZ+5azRPrGwhEcBVe2ZwopTxFoVfImPdR+PByjEOonYbNNa2IB/n6jq6dt8sji5vGteIMW5CouSXnlTfjVFbkghvcElM0VV7Z3UD8lmPI2SbPEZt0yJbLAoviwioSbdej6V+ti52HQtJ/uI6IPtMxjXGPTBuWcikjJpE2h2qSbTNXT7jAlffPBvGxjXiWvxXD+jJ8Vr+vINBopZp033jkYAC6rxSTZvJJLpMaAD1DKCE2ImVLX39C2EPttsWoDaTikLK1sjGVkvkkxarfZwMUug3bnIlhO10za8+xs03J9Nz+ooFFdjMNmwSJ4K98mdIMFs//tXnudBUJKh9bp/vfLL8NgbSPNeu2q/athzri9wI7vbOTi4aVV10+3PDPE4uk5w2xpmOsTlMBhx/23USsiC3tYkYF+2+CV0SCbSfXCbRaVzTElwKCyOVF/5emoBdKt8WXDoTQI56Y18rtfMJ89ruUpNIbrMcV9TUYBJtTC7gl5vaWpx1M66R1esu7CYmUUp5u5SSvGRl+e/GgKHfBeBnpJRnpZSfA/DbAP59+bd/DeB2KeVfSSk3oQLKZwshnradfaULYn6QeWviyLjmqj0zWN0cKwaoZM1CmSVzcrf1ugLqTVP3zvawtDGqSUtc9S++7Q16ae3/Jh49u4Fr98/iwEJ/4m+uQBZAzbikYhKF/n5qewEPmwbbGXos60yiI0g8t4WDCwNcvW+mziQmTOMaQxKbOXqi2TA2Ah5bETugvm+WCly9dxYnV7Z0c2+SGFub5LY8EFM9aYV/t5qZj+V4EuNO7AtQyTNsi6ZwJrERJI5la5DYzOyGLCzo77ZaRt+q3CbtK4ow18T6NgKYRE69a0NuarsHKCFiA+f6N/fbNa66jjxMYmByqwuajYtdrCyxq0IIXdNW67dnSXgAamG4ujXGNftUQmxcyFqSxCVt9bE9rl65oVJmc5N5ILtnNeDwjppcJBcy3IG1U+2q7ViW1zcxiY87MFf7e9II9qqFvHc3JwL8kMSRvf5L/fSayVjYnra53NcTkBtImf/PUmENjnyS97WtMX7nQ/djlBe1FhguUx51nTh3sZI7Mq9JWwDcJvelv9nYtlYm0SFl5t5v5n66/QRc5EF7cNkkD8YtjKD6PPs1GVbvOjnO/DuB45GwHdQNBjk1iWogrWe2AoJEalVmJtdtcmu1P+FO7erDA4LEpnFNUE1iirbZfqrGNUKI3xBCrAO4E8BjAN5u/PkhIcQRIcTvlwwhhBD7AVwN4DPG+z4D4Bnl788w/yalXANwn/F3c9uvEkLcLIS4+eTJk979pIeWkpu6LyqSm165Z0YxiXmBfirQT8PdLivNdmKdINX+qP/XmcRKI93s2ePdnsHSmds3sbI5wr7ZvjZxAIDv+YonAvCzDRujXC+SriqDxMPloou1AJXdgkRdk5ilzoX1iZVNHF4c4MrFGRw/t1nrQchxXDSZlF5LC4xxXuhrxZSb2YrYAfV9e2mCq/epY3jPCWWwQ85znbLPibBr3UvcdWwFr3/P3WWNHPR2Mk/GT+2nwIG5KhtVWyQ7ZGV+JtH2EPUbcAC2RWvYgtAlQfEvCOvbAACJ9oevrd6sOm/uBUJoAqhqgeFWCVBhvQ0s4xrj+ncrINxZU267DQ7+4bNHcf1r/hFn1+vqB3/gpt7z1KuUqyD1MwTqztMmNkcFCln1PASAmb7BpNuYxNy/ALVJAtscIQHHNSn9tbW0PWtypWWDk0xi+z66ald9LJhfyUA1/Or/L7j+QGMfJ+W3QJi7qb29QUuw51BOcBnIcKfq6jWJ9vnOdc+1BZg+yfuPvPVW/K9//Bw+ct9pe3KxMa5NceGTQIfUiZvnzWSRXLCxbW2ScNrPZk0uEJBcsT0XC/+5c/WUNevtrOMsZUghjL+VFZf+OcEmdwfcieHKAHE6TGKalKqcwOeNdsrPOEGi+kn1j8Dk+tr3TCQ0W/CoDw+QmzaNa3RNYltvLj+bONUgUUr5/QAWAXwZlEx0C8ApAC+AkpM+r/z7n5ZDFsqfy8bHLJfvob+bf2v+3dz2m6SUz5dSPv/QoUPe/dRMYj/DMC+cUk6Sm161dwYrmyO9uOdk/yuW0G2cYhp37J3tYWm9ziRy3E21cY2HSSRJwqzh8PcjL1POqr5gb2OU6889ON/H/3jpU/GH/+ELy30MZ7Lo+85oK3/ed2uTmx5eHODwngGOn9usZbo45jqFMfn55GgA8Nq/vR3P+J/vxMfvP43huNBZNFsROwAMc8WckdPcQ2UPMJICefskeqQkmWeS/Ppf/zBe/557cHptWDMg8Mq9xup6328xO7Cx2yH7aAsuKYj3oQsjqPfTGlzyFjJBTIrlHjifNYlmkgSwS2R8clNfvbFrW7U+iYzFJydpxMUvvvMuAMBtZSsZ7W7qkIWbElDq8frgqTX998RxDqhHoumoqY2bbJIhtC9AtUyvcS23XVvCcg7aJGKAvbYwBLZm4iFtMwBbErQquZjYP0/igs7JN3/Btfier3gi/stXP2VibNOBGAhZJLvqm31jbOoO9dM739mkfQazbQO9bGvT0YVJNFUxrnGu+/Qfb30MgEosm/e7y7ijkG1B26TDNacm0Yw5Oj9vAoLESZaaXvcOczCJhfd8u5IrbUxpcx+BdgMa2t4EA1xI+FSqrvu0Ogf2Pok7WW4AGHWbpQQ6vHRJ/aT1TIjcNDfmibbj0WZcY5WbtrqbNo1rAphEoLUuceruplLKHMCHhRCvBPB9Uso3QNUSAsBxIcT/D8BjQohFAKvl63sAbBq/r5S/r5b/N2H+vRO2dE2iOjyjXKKfTd4hTSZxOKYgkcEkFhQAumt7TF333tk+zlFNYlplyIPlpjktJN0WxOOiqmX5+mdfgy+6ocrQuiZ/ANgaVcY9Qgh8/4uepP/WRco543Fp9I3zyU3XtsZYPLSAfbO9Wj9LM/sZEt+bNuVZKrAxcn+vzzyyBAB4x+3HsD7MsTCoHECtC8m8QD9TrDEAbQqzZ7ZqL+G20fY/EG3HvyikngQfObNekzv1PLVjlBTZZzDOxKT4MqZtcjvbIqYtQ9uUDYU+tJOk0VuO6thaFjK0X9X22pkUm3FNey2p6i/aJvdRn6t+9jP3OVNmJrzFiA2mKUe73HRye2SQsBNBIjU/vvu4egzQ93K2pTDqhG+4QuUlX/TUKpHoSsLRvHRwYTJIdDKJpUmWC7b5NST7b2OXCumvx6Jx9vumbSFZPyZhDMUk2wNU10DPclxcGXmgao+0Z6ank5jN7Vklga3BrL3nalsA5npu+1s+2OfJEHMjW3Dvl3I61hcNhcdHXvOVtfvE16u1V0pRT61saWf3JKmOsK1PYhsmE3fqp++s2ZIrQRJci0zYXP+497EZpJfbagsuE1utfrskVr3PFXC4gkS73DGol6PlHm2rraXPN+FixSu56c4yieYzyJcknxhXvq+Sm072s27CVNfoect1zphzSZjctGFcQ3LTtuCyhUm8kC0wMthrEnXCT0p5VgjxGIBnA3h3+fqzAdxe/n47VM0iAEAIMV9+Jv29EzaH6uDSonyUF7UaFcLqcIx+lmD/XA+FVO6evTRBLwmvSayK2xPrg15tnx6iCfbN9TDMC6xsjfSNZquHILzpg/fhSYcX8JVPuxKAenAJUS0kbRbE5oTwa9/x3NrffIGUYhIdsjlGC4Ym2xleNKx+9jN3jeCoDK73zPYgZdW2Qy12y88JeJAVxuTXS/1M4onSUfXWI8tY2xrr5IOrkHqUK7aRmMNHztSZRFuwF5KhcrXqIFkeADxydqP28PHVJA5ziX6WYJ9hdmC6m7prL3iLJol2lq4pGwpf7LqaInvGWLKEikn0bkozKeY5CKlJBKjnnX+yb7qbWltg+JhERp2gbgpssAbcFgCuQGo7WNsa40x5PX/yoSUA1TyS+QI3UmUkAjf96EtqTcWzJPHWxC3OZPqenK0x6ZP7184k2gKAEJaa3lu/ltuuyYn7JkC2SPvZZNJDTDuAyfnV2yrFp2QoX7MlcPU+2iSBbYn1iQCAXvcnjiZ6y3mSJNW2bAk/f5uUakFevaaVZUFMon8/qcbWHOd6vi0MMmyOhji1OsR1+6t6dGcyOeQ6mTiW7cGevS1R+/G3nrdCeh1R6TOb1z/QLjdNrX4CRWvQoN7XGNfy/VyqnPbEqYVJbAku3e6mduMa3QJjSu6mZFwTrLgrj9ssYw0aIrduMykCqJ2Omq+EotXLP3CNa2hS2F6QOBW5qRDisBDi24UQC0KIVAjxNQC+A8B7hRBfJIR4qhAiEUIcBPAGAO+XUi6Xw/8IwI8LIfaXhjTfDeAPyr+9DcAzhRAvF0LMAPgJAJ+VUt65nf3dLLMGe0qjENcFMhwXmMkSLJTtIc6sD9HPBHqeFgxN6AAwEU5dtylJ3V+yS2+/9VgrkyilxM++/U78xz+4GXcdU1n1cSHRSxIdYNqaWfuyRr5Aioxr7OPC3QyrIJHngFgZd9gXdfTZWSL0uSVTmCzhyU3NDJmvT+LGMNfOsLcdXcbZ9aG2aXfJTUel3JSCwocbQaItKRBiCqOymJPnm1qXACogpcWlMGoSbYsEVYOb1Bow+9xNQzLrttYBofVONokSuyar/OkNEnUmv7mP7Ysfc9+A9jpNX1/SJjST7pFp53m7u2nY9V/NSa7FZ6uZEuOhHYp33n4Mw3GBa/bO4KP3nwZQZYPTJLEmO5pmMof3zOjAElDXkDVINBgwuqdnetVC2VamYEpbbbAZ18gAJt3NbocwiZbFbgArOCHTDmQSJ8sp3MY1+jllk5t6ZKp6HzsmjmzBhp+lmzzfrh5xtW1ZEhdtTJZeJ9Tmrfbg3vXsbquBzFLhXMzT6ydXtmo1gG7jmpB+mk25KfTnumBblIcYB9l8AYKYxMZ9Q8e/m3FN+z4Ck+etjSm1KSfC54T6a21OyS7ywPV80y0wdkBJYqLZloVbumH2SQwdkwrhfJZW0u528zI9NMSABpg0rjlPctNp1SRKAN8H4AiAswB+CcAPSin/DsATAbwDSiJ6G1Sd4ncYY/8nlBnNQwA+AOAXpZTvAAAp5UkALwfwv8vP/SIA377dnd0YkoylYhJtIIaRFghSqpOfJcLbJPSmB87omhf9IElNJtH+EM2SBF/9eVfp132Ny4EqAAKA3/+XBwBUAaCLDjffY4Nr8gfqNYlNcBagXY1rKiYlxbiQ1kWa6omY6L6PprmFr/7FtY80zvW9Hl1SAd7LnnmVNrowmURXn8R+JmpBYpaIRgBmz9j5sqau+jYzSHy07Muoe8t5ghQlrxbYP28Y12i5qa8+wZcRttSxBDqH2nuiBSwIawvJ9qy1bZEWwvbY2PS2Y0LHPyTjOulu6mASPUFbc/9cqD9869vX22pjEkX4QzsUtx89h9leil81FBDUziJNPDXYzIU8UJ+Xib313aNAu7uprS5dSTnbmMTJRZrPyZbQXLSGWvnbHC9DmUROgkuz71bFRfu9Y5Vkevdykl0KCS5tCb8QCaLNpKKNybL1sgsJpFzP7rZgwyp/K0HP5lOrW7V9cEvQA+dy87zp/fOMsbDUIcZBdrYttAVG9f/QBIRNKZMXhXd7NF/Y6gQBfz/N5mkLYfxtz+BWualDheJ6vvkM8c4ntAlfyzqtCfoeWm46CmES1U8h3M/SEOOaiWMZakAzYVxDF2Ubk+gXlE4lSJRSnpRSfoWUcp+Uco+U8llSyt8u//ZmKeUNUsp5KeXVUsp/J6U8ZozdklL+x3LclVLK1zU++z1SyqdJKWellC+SUj7YZR9Pr27h+tf8I/75zuPYHJHctGQSXUHiWCJLqoADUNnQXupmEt9+62N4xRs/ihf/8vtx9/EVfZP4mrnTw7CfJjgw38c3PucaACrjDdhr1ADg+Lkt/fvnHjsHALq/om9BmEv3osk3bnPkYxLdjNTE9jWTyJWblscpc2epyPCHzu3SuiE35QSyRobMFaQDSr4JAN/6/Ov0a2aQaJexqVq/mV6qv8ve2Z4OQmxutkHtJRwPe5LcAkqulxsPSZ8shGoSqTUHAF2X4pObeuVXlsA5xDm0WUdEv7YtSFyyoZCsNd+BcvL6aqvT7DEyrnRqvXJTz8Pe1dybsDXO8TefehSbo7x2vTkXny2LZJuT7XYxygvM9BKtFACAuYHBJDoDN/8izSp3NFyn+zpINB2nOwSktmAvhEm3LNJC5KbNRWvo6ZhYyAey/cAk4+x3N3UrXuj67jtWXG7jmrZgthGABQQpwiobpe/gT4rZmKygFgxMtlMfS8e87DPPct2ntSDROE4VI15/f8hc3gy49aZ9LKllDjIDBBeEJbgPIMWRCkxc/0CATNvyXGw73y7Tv5B+mrbERUiQPlE3LP3JDi03DUwAaa+DnZab6mQ+Jcl5a0ktNw3pE2qcD2eSpOV5D1iku8FBYkobKX9eXEzirscdZRD1Wx+4HxujMLnpKC/QywQWBtVB7mXCK8/48L2nAKiJ6B23HdPBRpYIp67blHYBwKHSKOHwYtVewrYgOV42i7/x0DyOlb/nRYHUCEhdzdydCzvPuM1RXnNENaH7xoSYYugg0b3YtcE0rgEcrEGuAns6tyaTaLOfd+6jySQ6gnRA9ZwEgM+7eq9+bbEMEl21pKNyHwFoltrsRWgz0ggJwNLELotdMYLE9WFeOpkRk+gOUihIBICbfvQl+LXveK7eX58Da5tsheuIB0wutkIZkS6LLVvtcAjbY5dE+RdoXZIrut7Y1iexJUvuajgPAD/2ttvwg3/xafzxRx+y1602r8kWuZ2rtcR2MCpbAy0YiTuqk3XXJPobTDcXhOY4QN0jZF4za9TkdnM3nTzfISy1vSaLzyRSJMWXqQYYYjjcTc26fNt2gMlgAzCfi265aTPYBjowWeWvbfV+zUsrlMmyBW2+a6Tax+r/QQ6gzuPfFmy4y1lojjm1OtTrpH6WVPXNFiaxLQITom4mJgNqEm1zshkgOMdZ7tPwpKTtGvEOsybG2hxHXefNLAuxwWbKEzqX2IIbr7tpC0vdvLd1GctOG9cYLLmtBMaFZpAYZFxjrAnbelsGSXc1k8iQm5rvlwUAEZApj0FiEIhRyguJrVEOIerupjYMy0UyLYwBldX0NVe/9cgyvuRJB/Gsa/fiX+49ZTiXGnLTxtCmrIYWJLRdIezBFwWJz37cPlUzUEiMChWA0D1rW6MVAUxiW5/EiXGe2rYmdJCo3U3DFpKTi2RL9rl0FyT2l857jV21HJRHzqzjx952K37krbdinBcTi2QXk3jk7AZ6qcDhxYFerLYxicMy+QBUkuEf/KrK3t1mpGH223TB5loGAOdKuenhxQE2hjlMtzVfTSIZ1wCK1f76Z1+j/+ZzYPUukm0PqIBAomttVfMcyIBxtPtNeWtr9tlyfbW5m+o+cQH3gGllnyV28yxTSmyDjxX/5MNnAai6P/NcumrN2vqUcWpEQjHKJfqNObmSm6pzbWsw3YlJNJJ3V5eqDkqauOaENlMSW69KiRADGlviQrbW5DYXTl0ZEZUkad+WuQ2Cj3GrEhA2JrE9CWHOWyH3NuCuN/N9P5dEz7d/atyk3DSsJq5RA6mDe/cY1/OtzeDF1TrGfC6fXNnCemn4N9tL3c/SwGQat5ZUlwCYwX0Aa2OtvwuQaTcNh7QpUkBSxuYu6y8TmXTFBtrnctFIkpQ7GnSfNo9Ju9x0cv4BPEyilpue3/m/iYl1WiCTSMea0wLDDEhd7exCjGsmFG3EJLa2wKDMDAWJAb0VgVYm0StGFUL8MSqVhhNSyn/Xvie7G0eXFOOTFxKb4wIzWeoNNuj1fjopN+2nbsvo+06u4ttf8HicWdvCpx5ZqkmWXLpu2j5R9M0bzjbxAGriBoBnXbsXb/3kozi1uqWbOfuklb66GV8gtTF01yR2MeDg1iQ2a7Jc2X9TbkpBWK23k2Xc7/3LA/jTjz8MAPjer3jihNzONfccObuOa/bNIkkE5voZ1oc55gdmLenkmHF5XQHAa172NEgJvPSZVS1qknjqv3x9Ei11REBVk3jV3hmsD8c16ZjvvI3GhV/qZcsioyUAs7FLMsCAxlnH0p4RNs9BCANpk1fuNJMYdN8U1ULFtrCTUip2qSVItyWA8kLiyBk1R372yLK+J2tMYnPxGcBQnG/jmnGukkDzhqJhzmhwD0wyh61uki7jGm06luCqvSpIPL1azSe2OaFtQWiTZIbVJKqfTXav/fqfHAMEsA3JJNsWskAG3EyibV+r+Wfy88z+wdbtJXWXQJ66oPp/CJPoMxPz1iRaardD3DUnFRDV6y64jn+bbDFNEmftPKBULidXtnB8ZVMlydOq1YAt4RcWpNiuSc8YC5MewtoI4WbovPvYSLiGBLKAegZvjieTaSH1frZ2Cm3j7O6m/n1UpIPtvPGCdPV/exJ0Wi0wzEQlz7hG/eSUPFmZREfC25vMb5JFoXJTG5PYFlgC265JvBfKNOY+qCb13wQghTKgSQB8I4Cl9r3Y/aAg8ez6sAx2Eh0kbjnlpnKCSVR9Et3a561xgbl+irlBhrWtvCaZceq6czWx0sVDP0lW6WKktsaqSet1++cAAMeWN3XW3FuTWEinRMNfk1i0GteE3KT08GfLTQsKEu1yO5LHZImYMK7JUveNDdQniaX1UXCT1iNnN3BtaSlOwWHlbmqXZxSyWvh871fciO97Ub1TjM3wJqgm0SEbOreh2NRDCwOsD/Paw8dncDQyGM8mhJjMRoZYmbuYxJCFnSWxHiAt6+6kx63/sl1fbQs0ug5C7ptCVp/TSyfVDPQR7b00J18/fm4Tw7zAM6/dg2Fe4Egpoyajrub3Aqp5rEutU1fQ/W1KEE3m3twvggrc/GyDVZZvLIC+8mmHAQBPunKhfM3OgLdJW23SstBFK723GhcmLauzZvR6+/YmnVT9Y2wOrIC/dszPJJIrqvv6UmNluV31elAPSOZ3U7XU9deKlutfbcseXPoWkYBHbtqyj+Z79di2IFE45v/ymUgtMx45s244CU8m0mjbbWZiwhkAu8fY1iX6Gd0mN20cD4mwJEk9kdB+/AF7Yqwt2PMZDrWN6xqk29jmkAREqCmVXlfscE2ieW1znjdNosIVA9THqJ/mWr2TcQ0F3HQsg2sLyziEzGuKKTCJUsqfot+FEO8E8HVSyg8Zr30pgNe278Xux2PLSpr52NKmlk1qStzDJPZSoRchgHpgZWmCteGkhrkoJPJCBZbz/RRrW+OaTbZL1z0qHTkJ3/aCx+HOx87he79CBQ9W9gWVjIpqF5XkVGXafSYVuech5c4GSwzzotW4JsgUZoJJ5GV/XMY19N80SXTPSUoO+BzZABUAE86uD43JL/HKTU+ubOELbzgAoDJ16XuCe7PdiQv2Zrft7qYu45qVzTHm+ykWZjJsjPJaZtNldkD7atZ+1bdlz2LS/rtgazYckv1syr1M900fnH0SvduavE6k9B9717jcuI6s++dZJDeRGwsAW5DYJm1V+2ifEx46rVx6v+zJh3Dbo+dw30nlzpwk7sVnJa1xMIk7EiQWE8wSJY2cwWzR5m5qZ1LGhgrkhTcewk0/9hIcXlSMoquOa1xIzAXZn9evrfbsfyP7jMAFoeP6b4tKJw2f2hf/Lrmp77r0JRerudJRk2gkuLKUt5CfNOVpn39cC2TuQj6sJrEpSa4+z4VWJtEpC3cZN6njf+2+GXzmEeXCbfbJBSYTMhJdpMzleWt5bjS3F1rLOBEkhiQFGglezSSGyLuZcnen4ZBsLx3oUpOYWhK84XJT+zOgOZaT/NwO6i707tZoE+PK9/lMEJswiQMnk1gEXJNNszo9J4ca1xhMYluPROC81iR+MYCPNV77OIAXMj5j14Ikd8O8wLHlTeUsWZ4sr3FNWjGOgLqoeomw0uhmDcv8QC3IyUl1kCXOIGVc1tkQFgYZfvFbn43986o/nYshIhkVLeTXhmOMTJbIOc79UHTtIxX2msfChM3+3wVa6HSVm7pkws0A7AkH5vBA2YokSxKr+QNhs6xTBYDljVEtS2lKmZo4szbEgfI8/V83HgQA7QZqC/ZIwuOScQL24DK0INqWuVvdGmFhJsNcX7HbhXH+6XzbzsHWeHJBrrflyGICbaYwtuAyrN6vubAGAhaESXNBUr4esCCZkPYFLBCABpMY2CcxJFFiLmatcl8qbWi5Rmz3KNU3v/CJ6hq+/+RquX+JN3EE+Baf7uRKV9iCRNG4lm0ugX4JqH0x0zROoQARcCfu2gNSCyMSwCTSR3KDy4n9NLLh7eOMYTJs8Q9MSkd9NXFJIqzyN6Dep9KGrHGfBsa/E60DwpJUlgV5SJBouU7GLc3VbeMqqbl/DOCrk3IfR1ftPABcvVcxiQ+fWa+15TL3C1DBlwwJUizXFhAWANcdp9vHNdud0LhW5r4xd4UmJZsMMO2zv05Z/bSaybS0k2qetjDG38YA+2XTTtNFh1eCz+vgfCJU8dUEvc9ngugaY9bpuxxpQ/okTtQkBstNi+pnEJN4/lpgfArAzwohZgGg/Pm/AXya8Rm7FuRoCgAPnVnDoBdSkygnFiRZQi0wbJm3MohJE22mcLKsYZkfZEaQUh9HdTYuuBZ2tPghN82Vzf+PvT+NtmTbzsLALyL23qfLzJuZt3vvvr650tN7T3pCEtJTh1os0ckGWbRFQRmQjI1MW1AYYfCQGaYQrqrhYVcVyOAqFwUlMwYYsA1VBgRlG1OgKiMjGdGo19Nr7715sztnNxFRP1bMWE2s5ptxmnsyc88xcpyT++y1Y+1o1ppzft/85g5t24+1jSmRil2XPl4KNSht2DmVzNjxgXl9EuvKziHG4Qes8/Cuu8djmxCfgjv97LNtO4pTvPEoQBITwfbjzQ6n2xbP3zBB4h/8JR/Cf/ndX4P3vXAyHnNCGy3U2QCpAMz8zPdbSquprhY1jlcNTjc7T5I7W5PYpmsSY86P3eyTU4x+tx7lTTss0u+J8yHHi9a/ZFZG65Db1zRIit/La7iPUo6uogWGF9zHEIrRGc/PMbYmvDbU7n70Hc+hrgy1TD6r5HymaWwXjyTuuj6zBg3zbKfzLInJ5GoSo4IrGSSxFDQAmNQ7MegXEKtJzI+bIon+56XHhYEsQ9Eb3ju5T8zPvABN7Pxb0bfoHIOkQN/n1SDHeU6+G9c2oOt96jqVuKumNFVXOCx/PF1yK4X2lGixdeL8iz/z9qEet+/hqZuHawkbpIdBCoMAp5IrQImmGj8fWuEadhlr6un9v8sk5c2Y6Zog40r31pzSjZif0HYFddMSkhgMFh+UZYnNNbueGR801T87NHkP04Lqzcdb/A8//tqkdzYQCbYdcCFlk77DdAuMQLima8vQNnChSOJvBvDVAN6squrTMDWKXwPgiRetAUwQ8MLgzP/s66c4WtbjDVKim7p292RlWmBEMiQ7B8mS3l2ffWAy9EfLJpoNBoyKZEm1MnYPj9TWIUh8tN55TkpKpKLLbFLJbHDBIVwEG3bOLB88j+SGJjRJS88I6HajSqz5+3uePx7/Zh5s+zmhne1avDxshvdOt5MFIbaIiIjF8wOSuGhqfPQdz3nHDI9l62zyhc2T4xGOTKpwW2pgjlcNHm9bnG5bHErbgETAbebaJ5HjPJKYz0jG6T+ljW3qIAMEujEDSYwhZ0wgG0USWXVT6rmxnxOrLRwRgxxKmlgTXn+0RlNXuH20xN2TAye5Uhedz7QgxuXQTVP0w7QseVege6Xp/EA8wE99t6JIThQR4Rw78177mgluyoiUtrbNjnOfG279AabnfxSuSQUpiYB749B9s8cb3tcRwbaMUyOyw99DBBIoITDx85FLCsvxwmstn5ey1FpSosWm7n/Zl1+6dTius8dukBigZvIJlLqpMgCOJdjH3zOHiyHADNo59bnKaysQ3/O7rtCCJ3HdDHtFt5eyqHgs4VcSPAMwSXikahKvqgWGm6hcRNbI5LjBl5Rp5/bf7/hTfw+/7vv/Pj41lKzVlS0dmwAVY0Im788Dzh5wnhYYFN10lf0zHST2ff9Tfd9/FYAPAvg2AB/s+/6r5javv272eNPiPc+fjP8/XDajo54qWt1E6HavvnwjWg8EWHqGK3bzmftrHK8a1HW6Jm4XCUZdS6rvDQHh8apBVQEP1ztvA0qJVOToLnUikCoJp9h6LKYFhvk5pwWGywcPx9l2I+bvIugjr6UKxAGj3HqyWuDm4QL3Hm/H5s5CLYitIaKcevfkYPpHxB1y2XjzfdvmLf4lx/Vo1aDvgXuPNyNtqFSTmMs+TxBBMts9pW2Rvc0iQWLJLQzVTTUCEKHgDVP/CKRqEvOOLrOZtp111FOqie5npo6XSnjcOV6hriu8cGM19l1tqiqZOCqrJl6OcI2slW4SyBwvUdtDOGmp5AoQ3/BTawLbJzFMXDCKhECYKGGSJPraNmC6BvXkGCB2/s1PrcDRblh/Ug59mBRg+t8BEeGUjhH7GN7rBTekkmckaKNqEjvddUvtb0XhmjpRPjO8drioxz3OFa5LKecy6LY2AK4T598cL39O5om7TJ+10rHk79HrraTSAoLuFfbSyHdjUXHX+r7UbmOYUyIBFN5bueTzRdp4z2X865i1nTnvVSWCN/H999F6h3/2aVN68bf+yWfMsarK0uQTfnIO4JuUZtEtMES4RtsC4+Lopua4ff8zAP4BgJ+rqqquKmYW199Ot63nVBw5NYmpIMWoO/pf/z13jw09pkA3FRGTzzxYj7/nqJx5RbxET65B6a+qKtxYLfAwQBLryE0sMvklJJFtmiqmWRTks2TDYXnrQhsTJCG8BiG17+VbNngrLSJGubXGneMV7j3ejIGFIJCxMRIkCt00tBySqK1JnEMtExNZ/uPhfL/2cDNpG5BEIDM1iSlkKTfNON2UVzcVx4ChtprjzXe2QiSFcQjDcUwW331fzvo+X2/sot8pi9XJAoZuKoj4izftc3PjcBF10IBykX4si39e2zk1if/N7/46/Nj3fuv4t5SUPEP3igvX+Eknf0x8TShSWxO0UcaxA6Y1YGrhJvmduJen4i6FOSYpaekWGHKs9PqTu25+UqDry8kmIBakMEG6H5CacWUkN03t043j6r0LyZzM+c/VJK4W9bgmTJHE2BzLCQ9tbWGU3UEmJcMliKV3x79bflwUSez1iSPz/9JaHqtJZOqUI89oYS1J0StT95alm14RkljpgkRXYyC1/gAYe4MCwA/99OvD+83/YzT5rvCsAY5/oaabinDNzo6jWmBcEN20qqpXqqr6y1VVvQZgB2Dr/Hvi7WzT4vbRamxXcLjiahLFmb9zbE70oqmxXNTRwNKlm0ofr88+WNu+eREHQY6/LMDTMZ61GxDeOFzg4ZlRU5XPii3+LLKREk65iH5v8p6jlZJuOlAirGMdCNcEc3SFJlwkMUU3PVw2uHuywmuPNl6GLBWkj0jicTxIjBWx29rOPN00PI3GASJQs5Tj2lRjsuL1R5sxQLc1idNrYBTP4seK3VsUbaieUlao7xbQjRhlu9g8KWdrvE/cOXIOIZBCElPJFb4m0d3IY/ckiyTG6aabMdnxwg0bJD5/Y1UWrkkFwIm+necxl5q/WtQesiFBQyzBVaKAxmvi/KSTa0nFaaLdhpmTfW3O/S+/q4Vrgs9jxzFzLN0nub0jldzKCkAESQHmGQXm1yQCPt3UOOT5cVU17ZXLIYmhuEt5vZOPTK0LWeGayD0iLTBWTT2W6sgeIp8XC9qoQCpIdpTGpcTEgPw1CK81QCYlw/t/FAXLDosm78r3ceq5ydPko3vAzGRy2+Vp0zG6u8y5rqZjBWm77BYYsd6FDOjgJmoWdTWpYxfbOAv1Jx26qfxMtypTXG+2BUYoXHNBLTA0KOCfArAB8E0AHgL4EgB/FcC/rviMa2l93+PxtsXRyjZF/oK33RxpS3l1U/OeH/x9X49/8G9/EwBgWVfRwNKtN5M6wc8+tEhikrYVEchxLS2SYOmAJweLgW7q98BL0UZzsvVAJNNEqjSmnMKf+OzDcTOQOR0o6aaSkUuhljJHeUBfchCRXLExYJIIh8sGL908wGfurz2KVKq2U2jKyd6RkSJ2udey9OLYxtaXFUBTtSVG8bYe62Q/93A90k3lnKSSHqnFLqRxAny2eyKbTny3kO7FKHmauegFIOQr98E4Fkl0j8dQMt335cwNCmL3JCOkEcs+A75KrziEq0WNmweLtBPT+99heiy+uTFru7bDKtG7M1mTVQjc6hSSmEnopFDSYkAapfMzKJ35OQeBnEsJ1NYkJoXZCntOU9fRIKXk8IZJAWHWlCwMAPpC7Zc5lvmpFfOJ9crtiCAxhbblDldV1YSmCkhNej4AiJcbDPf/osaLN6Z001htJ4CiwNdElMd5PTnHSALCnhNlINWxdGv7f0lKUv0VI0mSvJBJPHnd9oWEXwQ8oER5In6C8a0yYxIJiFzPz+UgJHMZNrIHZG1RIoluDWYOSVw7gpeffWDq9MW3j9Hk2d6d3jxHJLFENw1bYPRkTeLF0U2/CsC/1vf9PwLQ933/wwB+C4Dfq/iMa2nb1vQvPFo24/L1pe+5O1JJ88I15j23j1d4aVC/XDR1gsMvTkU1oodt14+oYoq2lVMbNeOmympmnIMkHgjd1H5WLNNRUjpL91rK19LlnN1/+qkH+Mb/4O/i//x3f8LMYXiPugXGkP2RRSnMUm2DOT7vICJHyya5GAPA2c7QTV+6dYDPPDjzKFKxwMbMJy9KcpHCNT041Cx2/sdWKcPi1vWWNpRrXdJlNqmmmt6PTCY5ViPS9/lF1XymP0+a/hM6yR2RtU44JCyS6F6DNqiTDW0MbIhnwK2dyrEEcg5vChV/vNmN98fLwzonNRupnqvM/X/hdNOMU2JVWP1zWQrcUkhKqb9fsk680AMVmAYArHDKtCax7OzGHevssAjaw9HYgEhQVNhzUpl8N+GZGgfY563UV04sTLB0/Tx1WbomUUk/jI1jklsybhpsFERJEvvGpjXO6LKp8YGXbgAwyt9iKUpmMeExI3ERr+UlkpKJQKp0wUMEkj7/Vfz8M0ImsYCjWDowGQPiu+kp0Kl619wzumjita7ntf/wb/1zfODf/q+xbbsxme+CAKx4orx/0aT7KwqSePvYonHye0wVmBKuCe/l0XEqOUGSvdbWJF4cktjC0EwB4F5VVS8CeATgHYrPuJYm7S+OVgv8e7/yo/iOL30nvuy9d2yfREULDACDumks8zZFEgGbeUg9aJs2XfsFOHWCwSFbh8Zw8zCBJKbQhgKyMS1Qthmb7LjIeXntocnA/LUf/nlvDgeLGlWlaIExbHapHjwhtc/9jh99x3OFmsQWR8sGL908xBuPtzjbWuc+rIcTY8R8Ug5TSUksVv9FOSQxx3XIsEv/RsBKmY8BdwGpDi0a7M1sbqxRdxxp/MPramfXmX/pWK3SIYxt9sU+iYpaXndji230o9poISMfu0fcdePzXr4JwG8blKIo5Y53GcI1MTExMctm8F/fdV0+cEs4yWPSLyZck0jcFdVNI2uQribRvkbdk/V0jPt5ueO5p6Sj0P743sHsOdHkViGYCpMCXVdGBGVciBLxQbp9jVm3qpgjTyScUuqmVAAWCTZK92Tfx1gvw/3fVPi2j70CwF+n5iCCcjz/u5mfWropxQqJ7lPEeZTjhUnJ/LCJmjAw1EQTyY5YYj4buAXnEeDrlCclH4U5xlgygPUtYpZqbXNe+wv/4GcAAP/jz9wb15q6StdNxswNis36E/dB14Mf+M47R+Nrd4byohhzyyZq08cO+7taddPSTRkI11xQC4w8zujb/wfALwXwlwH8PwH8AIBTAD+k+IxraadD8enRssGH3nYL3/cdHwMA1JW5SAzd1LVVEkm0zZffdusQ73/xBD/x2UcjqpjcRNsOy+wDan6GWRsXSTxZLfDp+2dY1PXo+MdEKkq00VQge56axPtnJvfwyTdPvc+u6wrLpk4G6aFZJFHQF/9Ycv7d7/Y7vuGDeOX2kck0JTJ2fd+bthDLZizQH/nntU9jcJHUsSYrg65OawaGvxWClJhjwSz+cSSxx8Gyxs1DuxxMahIj16DNbBwxtFP+W6INzXOahjkN55N2dicOSdnZitUfMQ7hIrJJhWJK0zGKmkSHJpVDEks1iSkETOb/4VduTf6eqn/JHc/cjxebSd51aSVom0nWIYnpwDnNnnATd+6fi30SZQ0KnN0ySo3heH5wyTjkbhKO9dlCYR4KScwgIu7fY3OMIc5uX9CYRZFEJkgM9kXN+qNFgGPPAEOvryoEcxzTYtlxMQocq67Z9j1q5/PlvjlY1HjX3WP82d/8ZfjoK8/ZcUECgmV3TFE6GVeeo3otd5I51biu96gLzrU9njknY0Ba8MmjfRmJIB2IC9dkWSHOPTkqciN/PoBEW5YCCp96tttMAi7VBeC89pFXnsMn3zzD3/vxz43Jc1EpBfiEq5yzlBAlYAGkd905xo984j4AiyTGkluukE7K6nCe5xGuuWIk8TcC+LvD778LwA8C+BEAv17xGdfSLJLonw6BqBm6qWuLukbXTx8Yl25aVRV+9Ze9CwBw77HR/kk9aLu2rG4KxOleMu6lWwf4+XtnXtuCGLJk4fBSsOe/XhSpyDi79x4bisobw3kYi42ragi4Oc9F1L5S6FdMIOH3fcvn49d/xbsBRGD+wTZth77HWJMImIDWPY/uvHPHcy0aEHXsxjZ1yLWomZjUJLpB4qhumkGycs51Tt209N2mQWLZaQrpXkxAauY5o45FAtJgHHP+Af9cssg9s5ka52aYY52uCc07FolaOqduT4Rrvvhdt+08I4FUCSW9DCRxm1kr0xn5Mm0xKtyR+X6xGjX5P+MQTvskJocAsPdrKKbBIFL+HPnkylTJMz/HVCa/lGBMIQ4lumnoXLtJlJzVVVhvPE+5lT0nE7QHZUc+pEla1Kw8z5jiYg5JbxIlB2FpxDd+6OWx5EbmGOt3SNXtqRFBTObIJiXdY8g45v4H7J7PKrdGhWsKyY4Unb9UJ9jE1gQycRSj4DKofVSZP/VcN+ng6zwmh/vMg7WXGEq1QIqZJ1yTEVgTJPG9L9j2ea6eQ7oLAJHwCIPEklLppE9ie7U1iX3f3+v7/vXh99O+77+37/s/0Pf9J9nPuK72eGMi76Pl9GQ1EXoAYDaOHN0UmDp2YXuDb/6ClwAAP/rz98djmc/2P2/bpSlUQK5O0D4gH33Hc3i43uFffPbhuOg3EUeyVLcUIjbhuDk1iRIcAua8uo7zskkH6aGJbHGqUWuu+bU7x3ChE2rpwaLGK4P67c+8/tij9gGYUDRKAUCsiJ0JUqJtInpOXTO22AkFzqObTtRNp45F1+sCgPG/uSCxmt7/8nrOQoSbzloH81Q1BZ+Myw+MbfYhBTq0ZcJBi5mrbhoTxCjRP4ECkug8Nz/0Pd+MP//bviIYN50PkL52sfXnvJZK3AGRDO1gpcCtruN0u92Y9IvTTYG400Spm4ZIYnLEcLwkup0fF6J0fHJlWrfHjAGme0dJXdM8oxEmQ8HhDdcuU8OVnaKZZ/AMMEImMbopg65WVWRtJRz5MLhnAikgjsqWkMTUHlCqnw/3t76wHoxzrMJ7kksuuu8Nf0+Oi/gzc+jd475dOl40cMhT0IF4oqQtrCVhICvz1CeOygmnEbWM+JM54GB7wUwSAHgwMNMerXfoOrsvp1ogxcxtL7LICOxIXe6H327ZNePxIsyt1kE2UzbxL9RIYmfHMS0wLgpJrKpqWVXVv1tV1U9WVXVWVdVPDP+P6/s/QXY2IonTE2oc8rQIzWoxPYXLBPri0k0B4AMv3sCv+pJ34H//az4GIJ4NA/K8biCPZEm9zBe+4zkAZjORz6ojjmQpq5tTSDNzKdUDTc/lvVNb7H627Typfg0lQbI/qfM/StYn5phSl5X743DZ4B0D9/zn3jgdERW7QCYC58zxYkqe7mdGxyUCMCaLHBXgGO6vY0eZ7kgUd1OOtYP2po41WVcJCmicgsvXJMp5YTPrk6bglGMnDrluHDDd7C9a3dSto0jTTdOfEUMgzfF9ufUXbhz4cvexTHdhQ2wSzv95LKcEHaP7AkTglghu2q5DVcWvXaqd0RwkkauJs58/jiMDt5i4CJMo2XnHIhzrzPkvCgdF7v+icEfw7LDCNUbx2DkOgyQmUBsOSdQ55ECGJl+iO8YCgD5fbybfLVyDrBJ3Yn+boM3mJ5PwiLI7MiNTiXJ3/tFjRRN+c+jd5b1N5hnz03JIrnxuVBQmm3CdJo5YVHwCHpCoZQyoSLd3ungmCQA8WBvQ4eHZziCg456YRxL/3b/2o/h1f/rv4/FmNwIOZlx6nvIMvM9BEsWaJs7Uy4nWyPHkvQDAt8AIhGvYFhgXWJP4JwB8OYDvAvDTAN4D4A8DuAXgdys+59rZ6cZc6KNIq4IU1cVm0aZPnCyaIZLl0k0BsxD97371F49/T/XpK2aMQnh6MGmSDpiA1H6ndJ9EG6Dls91qamXG2b33yCKJ98+2Hm972dRjgXzJRKWtGemmIZKYV2BNqcvKQrBa1Lh1uMStwwXun+3wyu1D77sl24kkFuVYETuFJEYpSlxNXBxJNCiR6yhYJDGuFFust4xmyM3PkpDAVFiBQwSBGfSfCZJS3kRlXJh9ZsaF36+sbho//zEzWVN7nFSNYJ5+NV1HgHky+Yxq30WXpKTqxIFMwqP03Rw0190itplx8ebefZkiGRmnQbIm9yShChyiX+bz8uPcYLauK0pdWcbNUdeMrlt9nrYVJgVY4RqX7iXB2KXVhEbo3RyS5SeprHAKE1zqktCp5Eroz4QWa5Mic8jP0WflaPok+s8Nl3A1x/CPxyYF7H7jv547Xix5V0peJMdlg3v7PjEO8Y8JbhVqEhPMiTySyLPENPZwQBKNUKOLCKYTCQDwn/73PwUA+Hv/4jWfblpnhGsG3zAFMEWRxGLdqjxvwwt0C4xAuKbvObppnQ8DNUHidwD4WN/3rw3//6dVVf3/APwwnvAgUSDjGCoYywYAeaqFIIWh4EqJnmEXrBiSkp5/CurfdR0OBgrtalHj+aERvEUS030S8z1xYj3YynL3QNwBfeOxRRLvn269AERFNx0ebHm4Q8faIom8Y+f+X8a9884x/udP3sfbnzOoYlr+2dBI0kjKdFG1CqCpb5lGEufUQ5h5TpMQUp/b1NVAiUopxaYC7njGGshnkmNOZI8ylXMRLKzyESWXsAoCFeY8AuLc+eNYJNE9L7SacGKTevPxFvfPtnjX3WOvbqSpq4ngFkNJSyWO+oJDnkoclVTcGKU51oSqXmYKhOtCvil1blyp3YZ72UrPjDuu9e6tnpKtB6aBAxPchPWPxspriZmnEe7gkyTTfYoR7ki17mFqEvXCNcO8ehEl4YJtMycfkSodLlx/wjmk5xhXZS4il5E9oETbbSTpndoXc3TTGJJIBERugn1ctxgEXkmdHgOpkJKZnWGkvKErB7JAPEg3yTTinGivW/SccAGwNrjPCRqmvtvRqhlLeS7SRrqpIILD4VPCZaE9XO+8BE8OSZQgcdXU+H/97l/kXY/UnlhKCFjkPnRmtMI1bfmGBIAmTwbVCNekjkbM4nrbNhM8pJDETUAddU2USFNBSpLDn6A7GvpDev5p9St/Uxz7mzk1ienC2gKSWAikJmMSlBXAPtTAgCQ6VEY13bSuxu+XpH8WgvTYJur+/b0vHAOwAh6pcSVBjJSSJ1Di/8dpqkz2P5rwiNRE3DiwFITYM1CiF8cy5FSQkjgnxe8WLKxMuw1gGqgzyoJArJk1Ny4UjmgLiYvlWN8c36S+4T/4O/jaP/GD5rO6YGNLIYmFBFAqcZTt3ZmkQ5Wc/4tzEkrIRqrnJ0sBjTaKziDp4ZjxmcmJhESSaT14ZK/1EBgS2Qho0yCOFyI3XQ/KIYknGMv3STK5VVhL3DkyDhoQZyWwSK57i7AIZKwNklaVmVVzjtUOd5n7GMhTCd2/x8bFgg0mAIspt2aTixHfiaFOx8QCNfRuGcYG6dHawraMcMdoyW3huo1iVu456cqJoymVeXidedaCxzSXyDleLUY9kIs08ScfngUt3zKUZPe1MUh0EMhUuYcEiQfLGp/38k188CXL2GvqaX/XEvor4wDHL+lZumkoXEPWJBboppog8S8C+GtVVX1LVVVfUFXVtwL4L4bXn2jLChAk0BfbIysSWI50U3/cJkNRBazzFkNSGF59SVnq+RsmY3C4sOpLWtqojEsHDanvZmoZUw+o0Bvvn+7G99S1yCTHH9DQZHNN1RaONaGJOaabgss5MRfo2z5mWoPeGNRAYwXiAIY+lfnrluyTmE0KRBwLgpKWzMg7tORXh0Xuaz74gjcuWd+WOGQc7Rw27UJNXPjdTOBGLqwiJCCCYEp0tSfGAFNEkKljkXl2scAh89wAcRGGtuvx+tC8etd2HpoZpe0SlLTZimyJeySbfa6ntOnzmAScaaZGvCalmMyR5zuS9NO0/KHW1ghtlOptFtk7WNSgC+5jeT1/PP++ZJMrKaQ6GzgnGRB5dCNMCpRq78RioiTs+Q8TTlTibpLMYejFetQsdTxauCaRdMqtXV7SYpx7OeAORZFK42KlIjZwKz/bHgJP1ISGzzdD5Ze/971/vBKVH0ggwF0BSRwDWf/5pu6tCLsgN0U5/5Ne0W16bT1ZNXi8aaN/m2tn23b0sx+uW1/dNCMCd89hsz2SfuIEkihsnYMmQjet60TpWP78T/r5juqmSuEatibx7V+cn0/5E0b7/QC+B8B/DOAVAJ8A8P8A8L2Kz7iWlqtVS9ZxCQIQQxIl+x9kyYt00whlCChvGjmapHtDfuKe6UP45e+7AyAeAMu5KNEYJoFUQe5e/pZqyn73ZIVP3DvFm6dBTeJCjySmgm2LJOocklDK/1s+8jL+k//ll+HjH3h+HAP4GTvzvQq1NglEECDQthl1LLHrJvOUe/YHvusrUcHn2MfUvSwlOH4vh7VOgAJJjCCQLI9f7l+Nuqm3IXZ8TWIo3MGMC9cTuWdTTkmujuKff+bB+PtnHqynxfaTZJOxEithipjlkytAugYyHxCl60PEcmql0/em12Rg2jdPrJSRTyOJXZZqByCREMgpEto5iRlEKjnEjIvQvbjgJoHalNaSYM8pSeS742KIbBlxnt4nxRYAQVKARRLDgE+jdulft3JwXyWeG4Ze7Lc7Ia9b5FyWrl0uSQLkdAimVEcz9/IcPZSUKMGI3f+q2sKQFULsG3IM89P/vJS5weXCYTwx6FIs6coIN2kTR7E6faDMbgLKPqhrx6sFfub1x/nJKO3R2qCIh8t6VDeVueX20jcmQSIcJDHdhm29M0HuwTJSqlZHzkef1xcBIueSVTed2wLjPV+Z/XM2SKyq6huDl/7O8K+C9Tm+BsDfLs/k+ppFBeM1ifGiednwp58nTk0Y3PB0U10AkOrvF9bnfOPnv4Sf+OxP4mtefXGYe1xZDShnu5PUEyXaIPOWINETrqkrrBQ1iW1vzsWkz8xgWyKTH1MADRGAqqrwzR9+2flecvyI86k8HwwC5kry+01yyxtNqd/Y3ZMpPz2sEZExAO8gABxtKC7mw6ubdsGmzTi7YT0KLcChdMiBaWKGba4eu24PHZr2z9879c5TTBSGSUCkaKNA+dmOq4bmxtTZIPET907x1X/8b+NP/KtfNPaUzZltMZRANsb11a136um2FDFhsBiTBHASRxFHPssSSDq7OmRDjk3d/wGSbuZYQBsC5F5D5Ywh3FkBmqYa+5G5xtJNx5rEAvI4zjFAcxn0xfaptK9RQXrkeQM9zhsyzCM7bIISAXm0B5gm4MTkOUqd06lyLj/H+DgiUT4JiLj7OKRc08Glk0gwc8yPcxNO4nyX1kkZp6XJxxV3y89AmLigkruJRFquDvj4EpBEQRGfPznAJ+6dYuPUm4c1yq697ognPly3XgIqVxaxcWoSQ4vtb4a1lf8OU7qptgWGo25aEKVhrPQJfybx+rgmDb+//9wzeQtt16aRxJhCEWAXsdiDM2asg+zDNnMcIB3slTapmEMin+M+oH/gl3wIv/3rP4AbB4txXApJLGWoUgFATs1wkXAKd12P54f6vvun2zHbVVW6mkQjXBN3mMz/5bvl5jjlkY/npOB8aqX1s+IuhCMpohEyjsl2x6nTaQEOwCDjU3px580lNsfJfezMI2Xx4JKn/8g8+ZrESAuAsh+JJkBXmfMfO16pR1ZKWRCw9RAA8PNvngU1ibFaJ/OzKFzTh+tWOblixvmvuVnc+Jg8kvgTn30IAPgv/sdPUEHiroQkjnQjZ47D4RkKaIxiX1oTJvcWysE2EDq7evobQFLLQiR9zK5kh01qLruujPbLPCdIYiFIqRN7cIk+GqMEMqD0WF840k3LVNpU43IqaAufGwLtqaoUSqcPNkrBVEwABUBRcCX0E6xKaeGerFLjMmMi6ySDwFv2ln2NqUkMkXQbSOWPF1KZ5TOoIDHi35USfuGx2MSRmm4aOY9mbPqePDlYqILEXdvhB37oZ/Grv+xdSaBF9oDnjpb4xL1TPDjb2T0xAcIAGMs2gCnddNFUOEso7G92Rk07tg7FFd750oFxzWNbYITCNV3L1SQWLBsk9n3/vnMf4QmwEWGKBYkJ9Cu34aeQxLG3YkE4JRaAZbPPSSTRd0CXTT0GYwAmUtPuZ2gFV86LJB4tazR1ZfokOtmnRVPjEbmQWLpp/DyW6DFAnA5VRs3i57+o2hejVg4/WeRYJPkZhzDXAmNOvZn8LTXHZE1cYbOZCt4QTlqQmGEConGewfHYmsRQXIStSdQgibnsp1BdAOBnX3/sZcBjTgVDSYshkPZa54RrpkEpdV9F6M9zrVRzHENE2KQYMH2+c8mVmLopg4iMddEBksje/2pq2QzUwDueE4DFmDihRe+vEpKYW7cy8wxrEmm0MwyAGURq+LO6/isatHG1bTsPETc/S98uRgsv0a1TNG2tMJtmjuF5lNdzFq4nPZFcGa+1khVi6aYyhguAY6wj5r5M7cH59dWfm8yXqe8PEXGgxECxc3ItV75hkEReuOb/+9Nv4A/95R/Be+6e4GtefSH6HtkDbh8bMZY3T7eOL5neS4WmumwqPNxMhWtSycz1rsv683Oebdlnxz2AbYER0k27HbA4SL+fNI1wzVNrgiTGNrkU+uXWzU3GJBQJ2ZrEeGax7MTEgqJSrc1c4ZqpI1muW0r1mxFn62jZ4HTbeovfqqmw3XFIokhCl9TYcuckFtzQbQrC8084yX0fNmUvZ4RjyQS21iCF5OadhHRNYlrdMV5bCDBByjRwZpxdwK8jKh1Lxvkb4uXWJIbPXIkyVFXVRKRCzKXg/fhnHnrPTYw2yiQgYggkU5M4z4nJt8DQxo8j3TTSygiIZ5KZ9S5Vy5KjScacQVbdcRK4gb//tTVxde3vN3b9yR8v3HNKcvzjPCP3V/k+Se/BXBN4W6dM9UkMvpsJNvJj4kkBErWJJIWZpIB/3fx5ZMdF9jfGv5j0yi0hwHU8SJzF7gD3DPjqvlzjePcY4++lcUFQpAmA3XHye064CYgn5kv9RaNtWcCh1LHzn9839GvkycEC27aftGpK2eOtCX7ePN0m3yN78p1jUzZz3wkSU4wvwA0uVxHhmnRN4mbXpfebFGpfopuG142mmwZ9ErvdhSCJ+yARLk1pejPn6riA+KI8NsCOCNdUVTrYqIKFR6zrkF19UmqeRbpjbOHJfK9xXIQSGIq7xMflkazDZW2DxOE7LZualsnvhs/JBW1AnhKbC5xT2b7U4tN2HSeIEWQx3c+Mjos6hPrG8XaeMxqlE4HzlDbNBcBzJOGbIEvIBKRmLnrHWubp1rYxGUI7zh6v9IzKmDiSaI7/jttH+BeffTg4pdU4JtkCo0BRSqr75pIrMYSigBClqPxip4NTwAaLlhbLt7hhGRBAZD3JqJvGpfX9v6UsrMvV1FaF9UcUtS+y/hTRhuD7lajF3vEi91deuCZOEet6UpVTiSRWwXrOInsyJzEKSYwyJ8rXLeXIU4nCyLpQQnLdY4gxz3eUElvydYfkqR1nfpZbN8QSp+R1c10M4rqFa4KmvMEcj08UyripfkSZqQRM27IwVFovcU3oJAgDIhRdbLt0y43jQRyPRRMlKfpwnQ4SJdh7bkAS7z22QWIqkHXH3TlejkEihyS2OFjEA7Hks0bcx4Cz36hrEp0+iRdQk7gPEmFVSGMIX+gMio100wySGA7btnlKTkogASjXcblzEmOc/9jCD+iFaxhHclFX0YyMSEAfLhucbVsvQ6ZpgSGbVipoY4QjYnSoEgJpM8/Tcfr6I2KOkax1z2StI8EGI9yxqKfiQaUeWfG61eFvhSBxSpPk+k+Z94pjx23aYS1LR6AGcryw4TmFJAbPTqlNCpBG3M6GIOqj77iFf/GZh94GFK0JJbLdMeEmNpDS9kmMofauifPQg3v+LVMjfsxYn8RSn0ogvS7nnNAU2g9wiIgveKNXGwX4FgwxtJNFYMYArBAwjOMSdMd8kDKVkmfGhU5hCXkMx42JfCL7Lx+rrkmsp/sNe936yL3FJAUmDBtauEbvX0QRqUICoq4SCDzz3ISJ0/yQKOLPrOW2Bk+SJP7r6eNN9/ySuq+Mm/TdLq6vmByL/W5anyQ2DjB7TmqOJysTwLDlRFJe4fbVDk3O0e0jEyR+5sEZTla25RswTfYBwEbGHa+scI3spU1auCbH1gt1CwCWbhrsN2wLDOl32A5B9AUJ1+yDRORr1WKCDEAeSQlpLmKlzSZPN02Pi9EKAEOjvYzawvM4kqnNftE4QaKz+SybmqYjSDbbOgfB33tmjungMhVIhdQT73vlzmMki2mzpslh0UbdTNZa6K1hFhOYRyWUv8XnmBHlyczRIBv+az0IlHR85qxD6L5eGucqGfK1hQ6SmMmYTscFDkIpSEwgboIkvvf5EzzetKZIf7hFsz04S9n/VAJIicAzCEWuJvHRWqd8J+co3Sdx6uzaBveZ71ZNxwH5ICWF9gN6uh1z/8fqJlkELDbHsnCNHwQzfVqBTDJBuf4w42J9Ei+tJjGSKOTWZH3LKzPHON209O1iqEjXl4M9IF6+UfYTnDkOP5lgbw5NNQxSWCQXiCDw+Sk6TAEZwwWyYQK75Fu442JIIkO3trTpnqvTrKclGPJ6zkK6LyCU2Pj7pc3WqRJJzAaJnSCChm7a9YbWCnBI4u0jiySOtYwZJDHX47Kp4olFNuE37jc0kjgEiZ0EiXu66YWZ1CTGFrxFAUmM002nC4/8Pw/Zm58xZ2uuummx3UO4YTP9DjOOZIn+k6qJa4aaxLNt59ckLjQtMARJtP93jaGtpPp4yfxjFtto3O+VPFaubqmAtgExmmRyiBkXBEQyR/czY7Zo9DWJstH0weYLlGviYr0jmcw64COCMo+chc61prbQzewaR54b594nJUqyjIk9N5JZff6G2RBfe7QZqS+5mtDc94sFexSVfAZCUUeQbddON1q6KVfzra1JTAnXSMud3BgfEeQ8+bqahwhOjkeO8wWYhn2NRUScAIx9biYquCXaYh3P5DN0R8BPHLFoJxCyC7hgUa45QgAA3VBJREFUQ7smx9AXVhU1rDVz55EcF1lLaMZLJHmaP/++k8yUG8gcfYqkjMsOiyr1aoM2gFQ3DfqZ0gFwgGbZ/Tc/bhFpxVZUlw2+Gx9sY4LIAhzdN0Y3Taubmr2KTQYySKKwzoRuao5j1fxlTpNxQ8L1uaOlKXly1vZUuQeQX4NitdSadkbjWs6qm45Ioqib7rg+iQXbB4kw6qaLOt7QOgbzAzaDFAuKxox1Gy7+ZV53+IDKOG3QAOQl2mXuKbqpNrPL1vul6jsN3bTG6ab1guJFzbfAaIdsduo8slLasdpCmX/qe8n3iH2v5LGiFDH/b6k5Avr6iyZGtxvRF11wX2oMHquHwLBpF4P0WPaNUGRz58VQi91xruDNnNpCJmst40Ikq4gkpoLEre0JBQCffbAes7OpfpNAuSlySvFYS11nkls5uukjoZsqg8RU0C1rk4/kltVNk0m/zPMdYwmwTlp4Lqn7P0A2zO9ldHtKNzU/S3fyRLiGDsCm6zITpMTYXm0BvQyf7VxQ788xtibkx9j1Trcmp4S6tG0iaLpjbM8vBntp/6LILogGG9kpRurEh3HEHhAmXBkhHyCgZHZ8UsBF6dzXk8cLzqVlN5WRxFiilmkBI8Pm1q3SFPTYvZwJog6XUpPIBonlmsSQbgpgpJumBB4Bqxdy43BhfNCuHxlbOSQxJ94Uq6VmGBcTf5JVNxVqaTu089jTTS/OhO4YsxzVBYjThGNZXfk/k2maFrLnN6nUzX8eQZLc4p+iPgDIB6X1tAchYB7Qph7oprvWE4TQ1CSazKZzrCSSUpijFkmMbDQyjsnQansS5ahsOYuNKwV7Ms8UkpgW8xneFyCJ2hpBYAjAyAa07egQlpMdQGzTptokTqiSjCKhzCcM0ss1iVMkFzCbZlNXuHNiN8SjpdRfTNcDJgCIbWxSs11KOMXWkvPQTcV5ONtxToSsE6mERy5JwiCJsV6hyT6hMZYAys+2GRtJQBTFPszPWcIpsUCWfm7M/0tKi+O4xJ5Tuk9iSKK73sfHDQJy0hbHcfxKcwTsmsqdR/MzXJOZID18BChVziqOtjH+hTaZmWodYIKU/BzD+1FeL84x8twwqGDYA7WY7Igmc/iaRJtIADfH2j8eiyTG/MJizXdwT3bks50Ss2IC4Jh4WWrcwSLeKs61n37tEf7JJ+8DsEFiFknsrEqpmCCJKZVqwNQkLpt6bMvhIqBNnfZBc2yxWC01W6fszZOlmzbDd+72NYkXbtu2SwrKpOrocsI1qUJvZrOpovSTQmATySIzgiQh99x8BhGkZJHEXFAUd3YtktjgdBMI1ywqbEgkcdfZGsxYCwA2AJtTfwdMM+RtV6gJjWUxyUDWnRfA1ySGxxOqdakFQEi5Lp2TeI0U35R6EoCx321YzO19zAal5v894djJ8cJgg0FSwvuLUzed3luAKKvVuHFgg0RRjGuqary2YgwlLbbecYEUpghkX6Co1tMaWddEuObhmqtZ2ZF002hNIoGkTGuV08FbnH7o/y1lE5SIuP/DgEjGlZ3PKSPBzKE8DnAc0ILDKpYUrikwJ6KJ2gLdtA7myD6jMhUNlXZURHWmyQUbEbSBSqbF9w3GAQ393RwlELAJxFiJiQ5J5O4tEwDPCS6nCVc2uJ+qAufnGO7BmjkCTjJzpPKXFa61yZUYIg5wwbZ7KA3dN3SVc8hZqp+42CffPMXXfd/fwa/7/r8PAFgPQm25/UDWv+NVM7amuDEEiXVk/Rfbtqbf4fFqga43iUlf3TQ+x9waG++BSjC+wr2DDhIjdNN9TeLFWE6hKFdHB6TbZgCxxZ+jrWiLXcPN0P09r1Ian6P5zMKmPdloONpWDOoXWuzRssF613m1Dqumnji7KXM319iiyjhpMVVOK2zES+vLOGoRj2ykuesdQ6oZBb4YclkK9uRvYSatVJMYnSMUQZsSEQkD4I74XsDUSWDOIzD0jgwccorKNgNJjPWpBExm1QSJNlsoSGIsAcRQ0mLJldL9D8SDy1wjZSCeEHDt8VCr8pisWWFbYPg1oeXvlmomnq9HmR5rLtrT9wwiYufkHk8r9mHnWx7nvt+svYVJQqijOmc3tQeX2m6M9GIlJVbeMypXKpJUYQ02F7Tp9nsgxubhkmIxMY1Sn9w5wk3A9Ltp7i0vuCQS1zLPsL8onVx0nzeiJjEUKtIEwO7xGDV5IFWGUd633bmpgu3YusWo0ip83lKQ+A9/6g0Apo0FAJwNSOL9rLqpLTk4HILEULgmlpTctR2Wgw8KAI/Wu/G+XzTpmsQ8kqi/Zu489S0wpE/iXrjmwm3XdVhkFPFiNYl24YoEiQkOP5VFqGOS2ByS6D7YbOP4KYd8+Fv2ePGNxp1LdFydrklc1vVYk+jSNJdNja6PUwRinyPjYtQHxkmLtekYA6mUSEvC2WXovuG48wnXcItPDEnJ1iRGiuaF/pU6Zqq5N+P8AD4qRSGQwTkZ6aba4JI4j8CQyQ+RRGJcmChhaxJjyZX1tsPBosHNQydIHJDElIohUE5AJJHEUp/EyPGyTkyE/uma1CQ+ItXvxNlYLdIJP8BH29j+rkAcSdHc/8yzDUzrj5jkSqwO2wQp5WP1vZ1bP76eHTZ93joySTIJboiauNS+Ubq/ImsCVzcZrgmM82/nJEaJVASomRnH0oT9a+3OPXm82LpQYDOkNQ/SdGtgmvC2vkV2ihEE0vzkVDnD858/1vz+ovLe3vvJBqXy/nEfJfaA6Pkn1q2xTl8RyIZJKoBMbkV8rtQcJUjcJKicP/nZRwCA24MIzYgknqVrEjcjM6oer8Ux2QJjMdBNzTF24/tzNYmluvRZQFG434wtMAoBX1WZQFFaYOz7JF6cmf6F6YxwriYx9gCkkUSuaFtbyxg7HockxsUmgFLdUpz6UFf5xS4G2/d9PzoJR0NNYtdbh7uUber7Hv/4594c5zDSTSMZ69FJy3y7mBNTotLah9p/nVXfiy3IuYUkKdvNblBRJDGHpGTUTVMLZOSc9MT9H6/lKm9sYb3BmMQpIon+Oel6tibR1hv0fW8cSRKl2Hnnv6P6JMaRxBYHSx9JPHaFaybPtvmZZSVENjZG3CVVM1MSKZL3xex0EOZhW+DIPFOooKVA289j1snx3lIkgVK1tQDnJE9pc/kxMm4apJTHAC5tjgxkI8kVim5aR1goxDqZ2oNLSUnAr0mkEkBBoqrvy8JBsRYYbJAecyQ5P8EfA3COfFSFOzMu1l/U/L+8JkRFkYoJD1+siq3lnQTOhEhIbC+leg4H+8b43fLDpjXwwz3G7AETVeCScNNkb5PzWL6X+8i9xZxLjbrpWJOYWN9/8nMPAdhzytQk7py6dDlsSDeNIYlCN5Uk66ONpZumyqSAfKIkhSSy7bxGl3dEEolNoF4GSOI+SLwQ27VpJDHZyDfz4KSCxJ7ZNCKLeCmzGMuGsYIkc5DEWF1JSelM5plC6byaRA9JND9TdYnf/9/+BH7Ff/Tf4Yd+6nXPUckL16TnGA+AC6hZJLCR78YIYsT6JHI1ie44vt4vhiRedE1irJcj46TFa7n04xhaBzDNLvYob4Yybhc4CGxNlrtJlSjJcqx4TaKhm55E6KZx5dDyZp+iAwLlhFNsLWGc+BTdVDLHrLrxdjfMs6DU69//ZVGelHBNDgGzzqd9TYX2BE4aUycbQ5e0NG06kA1pcwQibsbFEdkS4pykm+bW12AN4pHE4fNdJLHE9Iom7jgkq+t9miqFJNZh3ao/95TFEk5tAUm0tVzhHpBv3xOKItH1roF/wSKJ8eemfCzA30vN+c+PG3tTj/sGH4CZ45n3j+sPhQAH578vCTdN90TG6ipExGXupXHxoCj1jFokMREkvvYYgA0OrbppuU/ioqnx3udPAPjsGvOeeJDo0k0B68PkkcS0nxFr8aRBt8drwLbAAIBm6dQk7pHEC7Ntp1c3zdU8pW5GKrM7A6KOblBdeUGOBaQsJU270QOFVgpNhYOhJtF1nEckMZFt+os/9HMAgAdBA9RQ6cx8N4x/S1ks0033SQy/W6vvk8ic/1ggxWxsseRFrkeoOy4Z3BdqEv1aD95pDTPCpQg4bG/QsujLJLgsOxbmeHbTbknnZxznXO82s/a4c4ypO5og0RboA8DRytZfpJDEueq+xfqj2LpVUD8E4pldwDoPXQ+qLlmU7VYZzyn8fmwAHJtnLnmRe7bLiMgUgWTuyZhQCIO+ADZRxQayMQd0juCTfEY5SRVP1Oac66qq/Oe0gDy6cwTcWi6FAMpkTeZQgxC5Kc0yTAhoqMzxvTs9JtUCZldI+oVKyfIbswdoaaPmc4PzTxwrpgqsKd0YnxuyBcmU8eJ/XnKegT9jGVh5YUL3WCCf7dAHZZHEWKmUSdzH3y8AQCoJKLRSGyQONeqbNrkfjArXdYWv/uDz4/uByPnwxnWDuqkNqtw+iW3XT1BSIE/5jWlwsOUsXmKebYEBmKDQRRKZwLI0l3N/wlNgu4K6aaqRr/w9NgaI00a5DKH/WmlcLBvWZebnjkshiaUgcSIHTyIiufYSY9HwxvLBLd007kj+888YSsLYX3F8sONOXfG7JTLdQBptSCHHRSQxGuyVF+TY/cU1AI4EiQySGK1JHM5J4pipXo4MHQqYokvsZu/STbnaQn+zZxxCGSeBsxyTFa7xauK6HseUst30dVE3dW0UrqlsrZlVXuQSEOk+iZngq9JviClpfTHpAwmYgDHF9hAbBXYy71vUfhseSt0083wXkcSIs1XKeISBFBNsAD4C0/c9xVwJg9lY7WvMQjoto6QKxFkoOUoaIEmSSJDY5RFgwE9wlZBHd44yL4Cnjcp7xbgg3fxs+x41bMDItCCJoj0U2jZdy5maxGnfZ6LFViRJUoqAqwgCOScBoauBd8cRtNEguKSVQ4P9zSJf5eAyVoOqYWpoVEoBu3ewSG5dYxJI5Z7t5bB3pcoJts7+um07bz94tG7x3PH0nrXCNTW++xtfxeGiwb/yxe8AkPbLzRxMCwxBHQF4rDSZR3idcgreZu3xvxtDgQYk6Tr8hxWuAQYkcd8C48Itp25qULPp66NjmKGbThdVhtcdC24KDbAj6qYdsR5H6aYsJW2yGOSLqIF4RtiVgD45MA/og7PdePxctsn9rAdnWy9THBOuYUVhYs6gzD9mMSQXGLJMhb6R4TgO7fHnBXCLTywAs4hgzkmYcvJLSYhUvSWTIQemznVpY5uvZAhvnGmkXBzmZQmZhExsnMyTqkeJIYnbbkQR5diTIv3g/AMluvU0QN+SaPPkuSmtWwUkce30RxQqac5knjkRppACRAXAqSAxQ1+ce/7N3+f14HTrsNmgIQyINMEGEDxvpCOvppsmWzDkhVMAn15cQh7FwvpCTd+8aZBSTgrHx5XmOA1IAa4mLob4UwJrysTwFO20r2fnGKxBDEtGPnc6Tr8n9sR1m9JN5fX8HENWQs6PDOfpghW23CM/xn3vGCQSqKU7ziaus8OiCaBcwmNVAABcn2+960ZEEQDuJ8RrXMHGw2WD7/6mV8fALwamuMdaLqxwDWDPX64sIuf3NhHApyWZSl7StVfQTeulQRCBfU3iRZqhm6ZlbKONfGciicwiEgtuSsheeDwmIKqrGGpp/5adY8RhopqCBwuCnNtlU40Fxm882oyO3irTcPWTb56Ovz84C+imEWekx7yFroQ2pILEUgCQUgAF8pt9TE1VhdJpkcTIM1Bqi5ASBGBU3IDIdysKRwzz0jqE4YaI8rFknrtgo2cd0LAmlEPgp69vu35E2l+8cQAAOFymldwYBb5cn9BSfe2UlVBogZHZfAG/VmXdlttgjFSjApIYr93mM/JiDJI4F+3R0hZlnBo1GOmOvkPIIjAeck8lZRJIYoHJAOhbMJixtVM3SaL9w1vcmsRicmu45cIWGKXDyfzdU8IGN/EERDkonZZF5BO8OeGmYuIo4pMUz0k1rbdkkcQwuUgjidrzHwR7DANI5gj4ZRFAWbgmZJhZ/zPP7nCPxSKC1p+E91NLU5Vjp75aSZTQCxK3Lc62dg9I1SVauun0vOSQRCNc49ckunRT+S6h5cSbYixElqnkPd+suikANIO6adcB6LkxBdsHiRC6aWKzjzg/gM1GxBzDEUmcOE3kIh7LxuScrRhqI59XQKRiWUWgQElLoG1lZzdO2TJ/s0Hip+6fjb/n6KY/+7ofJLpIbYwSy9YapIU7Sn0S/ddLAUAsi8xs9imUgt3YtDWJIUXP/YxkM3FZkANRnjlzNNnI7LDx2oz0N9JpDZ1k1pF0UfFxE1WOM8fj1E1jSKI79sWbJkiU5EpYawaQolTjdYskErK91KZOZEnxMrf5AgYplVPDKJxaJJFHxeW8zkFScuhZtLa2zz8z7thJv0OGaTTjngy/G7NvuONcNH2OcBNg7pvU/uvOJSqKQSCJcl+wlNgwACjRMb0xXrBBJLeGP2uR41Td2JwkdNfPpFtnkHRgSLh6czQ/S+ekqoK2LCSSPq1l5JhbgJ65kgqk6OTKME9Jtpae03DfsMmt8hy1iKB8h5ApU0w41b4qqozNBVFNXSXX9s2uG4M2QRIFNEgpnLp9EmPHM++Z7je71ggvHkfopmEdqWs5NkOMhVh61tyxNkiUm4tFErcWTdwHiRdjObppqIYnZiX2p2NSiyorJKARSDBzmGZImAc7JpPfE4tdrP6oVFcCxJViXSTrxtDvreuBG4fL8XUg7iT+7BuPx98tkjjMMfLdqCAlMk7mmDqXc9VNY/0tx80+t/gnqU3pMWaekSCRQRIjzWTtuFTgbH5qnR9bD2FfYzLJoXIrq2QYq9ugaqtqv9YJ4ChRiwBNp5HEyBrk0r2+6gOmSP9gIUiieU8UScwdK4KAcZTMerohdmXU0v380Na7bkwWpShJru3aDlVVcnjh1yQSfRKTfW8ziYjQiTS/iyNfclxjzjVxL1dukMgFDbFWFmYO5WMBNjHWEiwB+dzwcpcEvvJIVv54i8avHWYC2ZBK2BHHCccAw35DqqKGCV4tIjgmgAhEaprMzCeqUs41U3MfE9dhAzA3ccGgL1U1Q900siea/aZ0LPhzJBJw7vGsUFR5/5XP9ZOL/fh6box7DA0i6I9j1624z5sbt2yqJJK4abvRJ1zvOmx2He4erwAAD9dxuuk248/EEjLusZaBUrgkG1NJKnktqVVRTZFEVhgviiRqahKForqnm16MbbsumX1OOWhZ4ZpzZD5j1LKSkxwPGszPEm001UuwqIAY+W5znF2LJPr93uT3sUdT5MF+87FZKG4eLPBwvfUcldh36/q+6GvF1d/MJpq6Bkl100IGOl+3RCQFlI5F7HhcTWKcXux+5mSOCeeHbVLsnxMis97456RlC8SDebKOpEtbLJ0L18JNkapJjNB4xrHD9/5ff8vn4y/8to/jC9/5HIDE+dfcW2pKpj4pVkISN7sON4dkEYUkdn1SgEws7Plp7/+ykxxFUpJrgn2PmEVS8jat+Vb0SRwFmGQepEMYqJuWg0vz09JNFZTYGCLLICJhkEIEpou6HlVvNZRYwJ5DJuFkx/jrFrsm+zRVUgVdmQAC0u2McuclRdMr1SQ2k7pJ81NNd+xYpWpMAme2JneuCJxWuCZM3jFrq4zzNQjK40KatpaCrg2AY6U6XR9n24ktmzrZAmPb9rg5Boktdl2HOycmSMwhiaZH4vSYVVVFNT/MsQzd1EUSbx1ZpXAgEySm9oB62t6GiQGA4FyOLTCIh6BeGBRxRBL3QeKFmIGa4xcgJb+de7hzSGI5SAkXuvKDHc2GER5JCm0rDEsqsJbu4VhtmzjMi7oKgkSr0gjEH1BZXJ6/sTJ0U+eBjQb3PZfFjKu/zXAiC87PXAQ4WbfHZk2VAUDoWANA2+Zpeqk6WTqLPHGaOGfX9i7kHWvAz+xyjqQ9JxZJJILLAJUtoSgyJrlBDWMXTY2vHNBEM79pIoFVNzXjnOMUrrUcL0Y31ar0ivV9j/WuHZ2Eza7DG482Xh1yaNtdlxWtkWPGAuB5dFMks8jxxBF3n4RrV9tx2WcjZqJzCEOnlW2lEF67Us+2cY4RFgqtrhlm5YmEztJFEjNBvX88Oy85DktbnCJSXJDiUgJ7k00rzDGoSQw+jx0nx6aQxIg/UyqniNUksiidi4DNSUBQzJUom4dnrnTBc0MHpU5SUuaePV7AwmJqGacqvdyzHZaK8GtJFVU3zX23VVMnRQnbrsfNwSdcbzu0XY87xyZpmAwSu3y/7lTfc2mBUVXVeP9JgjJXO7/LPDsxmirvlzh7h6YFhiCJEiQyYwq2DxJhbpAUkhJriAk4mZxMxiIepOicGAYRjAUb498KdIS+n2Y/S+OayHdjsnZNna5ta2pLNwWAGwf+Axr7bqJ2dedkhYfrnZfxjTkjbE3ihFZDqLgB00Vk13bFtgGAX8tIXe8EcjwPSeQCgFDKeaTgpoLE2BwJtCHmXPfgKUqj01rYnOw481Ov0uigjwokcVHXaiQxpBqJ5Tao2MYmv+a+Xoym6vYyzc0xpsrMJFdi6+uu6w3tfHASNm2H7/krP4Kv/Pf/Nv6HH38t+nm7Li1AJhaWD7hMhtI8p3THfD2K+/mAju4V1vJS92SEbqp93sZ7hDgW4DugrLppLHlKBenh+ScQvkVTj8EluybImi1rHnOcuACKvnG2RW3K47TJRZlnOMfS3pFKkpQc8pDNQweyseCGSZJUYVCq2RPtayWhQMChF49zHF4vzDE8l3yQGGcAaRBgnl0Abxy7bsX2qa6Q4Fo2dVS5WvZIl266bXvcOc4jicaXz/nKccBh2/YTNuGtwzKS2GXWlLkJbwD4hs9/CR9+5Zb5j1bdtN1Y9PECkMR9n0SUswExeLr0cMfQF7YmMVqQnh0j7/WP5f4tZu7NLw8WG5TOqbdsIgG3m8m/OQSGgF0ccnVL612L1aLGzcMlXn+0Rt9bHnmKEks5aDORRK2THG9dMv2eyeNpUbrIudwSNVmxutxSLcVcaffowtqVJcnDupmWXIxjdFNOgKYenUj5ioyT7CIbwHBvET2y4vLb6e8YC7aZwCGWgBjXuoIjGUMSGdQyyhLY+U7CZtfhn33qAQDgT/+/f9xDTccxbbpsYDxm7dPtNEiipnVDVIF4RJyzU0RTVx4FixZhcq7B6LQqE0dMC6RwHNuTMZyjGK2uGWTkmSBg4ST9eJaAn7xgEkdxVggfEMkwTSAVS0AwfTGj5QYFJon7XndsKUiJUWIZH8h9v/tazpraF0Hh9ht/bgDXcmMagOmeG60ydni9mXH2uYE3V23iQlPfPC2Vyj87y0W8JlFeE59wvWvRdj1ODhos6ipZk7iLBHuupUo3Nju7d8itcOsoQBITycxikBgkypl18o9/+xfZ/4wBH4kkdjvdmILtkURIkJSqSTTBXgijl3rOuNQfdwyTjYlmCHOLcQJZks9LjktkOoCycMr0u+lRUnfOi6bG4dIeVOimYSNw1za7DgeLGjcPFvj0/TUA2ycutWAxmb4Ly3R3hZqszHcr1ZKaz/fnqHUI3d9z2bcY3bFEU419tx48shHW0hU3qOHvvtgE7xBqVRrNvYzxWADZX9FBNgCDRjHy51FFtszYKJIon8dQQCNrSQlN17ILFuOxpn8TloAVrunG8/vf/4vXook7qUfJWUxdFiggnpXv2Inl1rzceSyWHNTTRCGLJE4l+Qtjwvtf1NYLx3Pl61k0JJyjWAlNl73PfQbYY7r0bpYlIN/NFaYq95bD+F4xLimMcW4yxn09Oa72653o1iVB4MaxBPz3ihWvW8BUsoFseY5AUAJArK3ToLR8H8f8C015Q1jLy4j3ucdj9l/A+KFdp7v/baLWT2Zq6zTpALjCxE8u1Q2vmhrraJBoPkeShGfbzux3TY0bh4sM3TS/n6a6FWzbDquFP+6W0E0zycysemvUL+fuZc80IjQh3XRfk3gxlruxRkcmuD9KmZxQxVA+g3Hk3WMxFLFcbRuTyY/J5OdmmQqkSot/DJFyM/nuuZnQTROO5MGixs3DBT77YD2MEwRymvmngo16Wm9ZqplJCdeUMte5WlIWARbTZD/dcSWVUjNumigR2nAxSJmJJHr3JLjNvnFQorbnnVZzPOvIcJS0yqOxuXMvjdu29lwy6qZhbz+xXE1crgcndW8p15Kmjjv/zLFifWgFEXCFa8Qx2LQdPvdoPRmTU6l2jxm//xlnK+Ikp85/NEjnnS33erPKoe53Yx3C0ElmUQNXFENDt07WfOeSVJH9jT2m0LtHWiXzjDb+fcnUMsZaYDD7fXhvsXVj4fF4KmEVDzYy48K11R2rqdWn610l4HbuSQqljlBpi/tNIsFeOp78OUTbSgmgFJJYTrD7QTqz54TJZBoRnBkAR+mmhUDd0E3TSKL4c0a4xrTKuXm4wMMk3TSPJKb20m2kNIgRrmGQxC5I5jPrpGejcA2BCu5bYFyO5WqlUo5MaZOKoWZUjUI1df7N68xiMB2XVUWN1B8xjky8lyODZNWRmsR4Jn+kmybaSwDGcVw1virq8YF9sKfIBtHMvYo4gxlhI3fuWiQlpHUAOgRYXWwfOR5TkxhLlJSQxDoyhgnSU60b2EyyLzZRHhNK1/MiIfb+0tYkAva8UDWJkeSKGZtObqX6VALIOjLRmlAik5yim+aet1wt9XpnNsZRuKbtcP90i/c8fwwA+Pl7Z5MxDN00pLwzzlYsSJGxqXMiL8cSflpxEVY51GWh0GITgSM53iLFhJ+t22O/1zjHwCcsIXyx2lU2MSP07hENJ+Yo19u2zigHlzFEitvvq+G98H7S66QSgQyfU3btMvek/9ouU5PrfmZYb1m6AlO6Y/l7AeY951X8HgPZwrFSFPTSPC0F1JxMJkkLTBFg5rolzz8RkAIuu4C7t6JlSIV9eLWIC9fYJKEVrhGRtxsHS9zPqJuWlKqjNfAR3Ylbh2VdjFyiJBY7MOj2xLoWQGXrk3LWLIF2r2564cbQtqY9wPKOU1PHeqQQ2ZhaX5Aeb8pOjJtLU41ljDpmg5pSVnYBIvWxd90GEGsKHg8SD5bNiDYAwMnKqqLO6ZMYW+iKNYljoOG/XgpuQhRLxgCkuEhwvWkk0ZkoU5MYX+zM8dJtQez7/DmWs5FADIEsL6xulpwXrgmzpqy4hR+QunPPjhvua9kYmUbdqbrofBbT/PSeATLYC8cxa0LM+WfppjEF9JBuerZt8WjT4vNfvgkA+OS9qcrpri23wAgDsO24/jDqmkGQ2KcVPXPPNhM4zKEoudRKGpEK1hIW7VmO93HvoCHlOdZVJNju9Uk4tpbLaAO4lNjyHKX0xBPlKfY7xPheMVPeQJ7/wJFn9in3eHJqysczFNBxnSTWf0D2/AiSWBCzAuzayiLpMTElav0PkytMkF7Hg3SekmmPxYyb1M6TyY5wD2D2HLvfmwvAUtCTojzFc+L3NzZj8/vpsqmjPXCnSKKhmy6bAUlM9UksJPRjAmuAef7CUoWwJjGeqE0nuFKsHG2MiG7HI4L1wiCJooi6DxIvxnKZwjGrOFkgzc9cFiF0fihxlyoVJJYXA7Uq6uwgJYLSUb2F6mJt2/f/xi/Fb/z4e/Al777jvZ4Urhk46mLHK4skRumfyvNvjp3PTkn9Zqxulblu7uLDOGlx2W6+t1O0UTpB9woFVzjlVv+eZOcYCgkwC6sXuBHnwxzP/NSrm1pna0QpCC952fjXnEESTVPe+AaVRBLPkQCajis7F009RftLz5vMI083Nc/z6482AIAPvc0EiZ+IBInbtsNykT+XyZpEok9iVLim5CBEzj9DuQ6plcy95QaXemc3HJc/lgRSu67T000DZ7fvkU2UxIRrxtrJknPdGHo3U9sfHk/6K5ZUqoH49e77cvI/PP96BDgI7gvHswnN3vtZWoMWEX+mtHaFaytb72r3APN/tm3AVM9B0ZdXef7r8LuRz/bY99lZ/wEuSPeQdOK6hclrZv13x01rErPDJig1o5y7bKpon0R5TQCA9a4d0b6bB+maxG2BTRLzXQE/WfttH3sFgFO6lPFBc4mSdFmQMkrsWz7Ym9Qk7ummF2JZ2lbEaQLsQ5p6cGKZN27R0quWpYRMgHJtIRDQTYnFLuT+yzxL3y2m0jjSLYYH7aVbh/jef+WjOFwGfRIjUP9m1w3qpvYBOhkEb+L0N6BEJIktIjSSOAlKS3TfWJDOLcbh8ToikJpfkzgNZo2yXfpYdfS7lbNocbojt7A2jU0MsEFieLySYp/Ywnl2NEiKT9PrKcQzlvAA8ihkPHFUnmeOplpag2J1ypxIzvRvQjeVjfpzD02Q+M67x1jUFV4bgkbXtoXEhRxzF73/y8+3O27M5Kf2jWiyo5wAkrGu80/f//UMummwJrCO5BhItb0KSQ+ZMuH6Hx0TWV/HwLTklA/nkkUeZQzgCNcQ5z+t5kwG6SECTOxTwHwEchqkFJ6bZurP7Lr88x1eN74mzvx0A7fS+QCme/ecmkQ6kTPShHXnf1KTSCZYwv1U7s2s5kETv7fYNcGipP4cknNM+K6lmsRNrCZxaIvhC9eYpIRBEjN9EgsJv5RSuDz3f/I7PoZ/+Ie+eTwPOeEafaJwhnBN1/L9DmtRN933SbxQyzlqYeZHTLjWqU0ghiQyi1Zd+04Tw5GX9T1EX4ACIhVx5Ln6o1j9HUd3bLtAAGWsics7uyFKB5hsk6ibip0Mv8dpBRz9JFZ7pFU3ZbJvKXGLeQqgZYcklpFnGqUvA/oVMIiEKHvL9T1RjxJJCjCqtICfbdXSTT1qGensyjiWagTEaXpFJLHWI4k5xeOcw5WiqZbXrela0hbkvnP1xuutjyS+9tAI1dw6XOBgEXcsGHXT0JFk6HbR71bI5OfqxClxkdBBI+nW2mAvKXdfOJarbqpB0pNS/pmxiwB9Z8eZsabmaU7dsL+W5MdE1ZyJ4HIS7A2v0wm/1r9ufAAwBBvjeSyMi7AZ2H1xpI0Or2sThT2ROAUwqdtjzr+lm8ocyUTOzAA4bCfCqCubcfHnNFsTGiS3WAq6/Flb72rUbKdJydy9lVrLNyPd1AQ5p1uTNFw0puVZtk9iwS+J+a6uv7Ba1Hjx5oE3BkgEib12D+aS1551GiRxMSCJF9cncR8kIu9Qpm6QEgXI3Iz+zc9uGjFkLxtszKWIjRubfc06kmmL9bpisq2xIGVXcNLsYjz923rbjX0SxU4cuulkjoQARAwRYTOmMbn7nEOeogTOpWTOCS4ZCfRUTWLWsY45yRQlWc6lfa0H6SQ7AX7bc9SyMChlg0tLQ+9phxXwaXrMuZfPjQlF5eaaq1POUdJm35OR4L7v8851MzpMOSfBPNuCHN46XGKVcCxKVCM5ZvT+V7IgRvS4tG8okVwZGzpoTC2dm2Bk27KEtZPWkS/fk3Vl1m8Nkh46abuunKRq6mmSiqWPLoc6zTl1w9IHlVGXjbEtuBYY/nrXKymZE7pjCYEMgxsWSUwkT5l9w6Kd3DUI97euJ2sSg8Sw5vyradp1OE6SK7r7RPwaRrzMPR6z54TggRbttK1LuOAy9LnarjxuESlBAmxN4uGiwbKp8GhADpu6wslBWt3U9EnMB84TX75wLmP+FmCp8slStQjAxPZJ9A+0K/PWx8mugHazDxIv2nIB3yKy+ANlZ9I4Ff5r7KIVpYgRDnkMSSwhgkCcblqqW5pT71dHzmWpJi6rbtpO6abHB45wzZya0Ahq0xMJAfNd/DFmHvljybzcOfK0Ufsa+93MuKmTzKibhs4dlUXu/QWyvEGZn7PVTZ3eZiUqmjdPB4Hh2g1Yx7UlnlExl8p2HiSxuLHNXhPi9yT7bGuypjGavJhcx6NBiOre4834/4NFM9JRXdu26X63YtOaRPPdilSqOqGKmvh+ucQRk8wJnUFauENLPwwShWy/PWBA6bpOVe8XliowdWqxJChLHzWtqHS9HEPk0qwlbHJLl1yR6WhpwhO0Ddx1C+nkLJK4qKe9Wkv121MqLbg5TgK3fGmDmAlk7f8Zuu+0bo9MroyBFLyfpesWqptqkcSwdUbeB50KMDFzDBOnmrUk1k6t5DvFatIlSFwtahwsmjFIXDaVSRIO5RqhGb8k064skuwo9nx29uzYOJ0uQJmVMDFNTeLiENitsa9JvGDrOgbJUi6QESSRrVGIIlJK2iiz2J1HuCbWWHoO3ZF90JLqposazx1ZJPF4KTWJ0zHMHOOCN/kFUqYeVYTMLZARJ1mFCAbHO49wDRMEh82std9tTk2i1GRpnWQt3VSuF60k6dzLsllpGnVvWwdJVCpyAvzGFkNfcrOc2zcsHlwWnpuISq+YfL/DZY2qwliDslrUWSRxVcgM1NW0JrFUxwhME2Ml+qJ1/u1rMQn16LHqadDA3MtucGkDt8KYibqp/aySLYfAQVPvF5YqjEgig0hFgkRWuIZ9P+DWDQ9rSSFJCMxf72J0d0DfzohGiYK9iq1JTKl+a8owtCid+wwwNYlVFVm3CmPka09rCwvjgvPI+GnAFEksreNiY8CnUEWVP1m6qbxOJo6C/orMOQkFt0rjYnsbYIPEZVPjYFGP639Tm/8DcbXRbaFXbpgkBOyciz2fJ+y5/JoSUoRljJ5uuuNrCxeHwO50HyRetOX6/aRqEktOcizzZpym/FymdFPuAZ2MG35SEsnd9HhawRVVCwZnnrsxk5avSYwtJOtdh9WiGXunAZbOF6Ob9uA27XCcoA0pqypDvVIH6UIH8egImobz/vFKS08USRzu0VzrgFRNUL4BuX2fWA+F8xM4rcy66m44LbkYh5t9Kfkzjhs3+250DFVUtk6BJEYoMqWNLSqcIn8jEk6TetfsDBPBZeFetj0jp8+2fM6yqXG4aHD/1Gx6BwvjJKyjNYnlgG8RJO/arqPpxV4AIEFH4gvG11Zkx7hjw9pCVnF3ikhxwY0WyQLMWrtrlUhikMnX1CTGgsRSDepSWmAUnhfXmrpCVZlnmxUOqocx7r3FjgMcSqC8XtoDErTR4rigvpxdg0K6NUNTnYrCkHMM0W1ijIzz1hLm/CfnqBvHBESAEzi0/nUr19ba/cY/Xnpc6JdohYNcum/pWMA04GPOpatI7tpmZ9f/g0WNx5t2+H/l1PVH9oAuX3IQiuuYMflrkPJBiwBHJLnOJFwnpqlJXBwazvpuUP/e003PbyLTm75B4lmLUk1Wqo5IC9nTD2hAr2QRQQCT4JLeoJQZknCBBKZ9EkMrqps2Naqqwu/9xZ+Hr331BW9ciAiyKN2kJ2bP1aSoabvJ8885dqEDqg3AzO8dqqqAeEZqx4qKr7EghaEthlSX4PWcuQh3RyKJE0pUIfkjNjZY71xUozhsDGIMkshRjYyyoHJjSyAbQGFNqKbXjXm246qopSbp5me0ubFzbo5XDd48NX2xlk0GSew6LBeMSqObpCq3IAGmzJCSKmdVmaAhpm7KtEUYa2s7zrED/GSCFtmYjCOQm2VTYdv1dGsDeU9U3TSLiPgOsjuuuFYO11vulxXJ9RLnVUNTbapqsieWRoWlIiySGD5v9PUO9g45p0wAEFMFzp3O6RxlfGkPhjdHhiUjc5zQ3UuCPMEerH1uxrq9Li9kGI6bIInKcXJOc6iZjJtbE6oV5Zn0+CaenRhzC3DpphUOlo2DJFaWjbOL7BuFPokx5LJlfdAIUGQ+M36TjT6C0geaWNdyzgUALA/Nz80j8/MCgsTzf8ITbmxtj5ZumqJkMjUKWtl6wNxDUYckS5P0HWQ5nqZoe2B3DgW5+Tk2zTTgpouGE0jiwdJ85nd/06uTcdq+bWZcnFbABZe665YSHCovxpiMo5DcyPG2hJO8DDYo+QxGuEZDPwSm11uDbKyaGtvBGWRpHeGG2BYCm3Dc1kFSOLqpzS6eB0ksbmzRe2T4G0EBdQ9nkivZKU5obPIZVC115Nl2z83RqhmFa1YZJHHbduO9mrJYTWJJOAiYridUM+sqdFpRHDMea0TSFUFKZFx53wiSMuIQkgmPnaccWh6TVjct90mM7Ysl5HhZG7rpGCQWkgj2mOF3Y8+//T+TlAyTOTzabH7aZBp3vVO9C5m66LbVXbeUngB9T7p7ALH+T4IUct8G/PIGQKHCPZw/tpdpVVU+40XOI4GIA25wyQf3YQJIjW4r0FV3KWeOt2jiSGJIN328GWoS6xr94HPG+iuWxMuM6KL/mhWQ44M9wK2LTh/L/XzzGVzCw7Nup0MSAWD9cJjEHkk8t5U2AZvBmdYX5tGXOEWMojtGgg1GtSzmkGiRRAOHl+fozg0QKqcuiwmUM/JhzZhr612bzAzHKXpcpnUyruMyfVqqRbyXmiLTpwzAwkJ2+b2IZEVoEyUkMVW0zd5bE0l+YmGVgnYznqS/Bchl23HjlhHaqKYGctf1RWVfsVx/0dTGFkUECVTqvIq7muudo5K7SOnR0tZVrDJI4q5QjwJgIuXPIonh880ED6EKNFMTCviUqBGlViIpdEA6cZJBzREYHDxP3ZR43mrjSPa9//3yKriR9Yd9dgZK7FobJI6qqMO86fPvK0CzNaFTJLEwbkKTxDBOFxTRbIa69mvZCfrueamc4+FIxzrmA5XPh32ve8wy48X8tME2X2vmAghsPe+4VgYtT5ha2ZCSzN5barpppa8bLtUkLpoaB8sGj9bt+P6VU9cfWrFPYjVNSpaStSnhGhvgF4LLCQiTnF7cNMI1yyPzczMEiUy2r2D7ILHg4Lm0snBcqUdNLEhhsjgxRUIG6lejBnNpi0lHMj9Hq9Dl1gTJAxq/FatgMXZNhGtiVkdoDFyfyviDXQxuJlQjmX/+HgGmjnV5g0qMU4pUAINkdKmOKyrlTPbI6nX3VmrTZvbf5dATTebHqJuG341VH/P7xJU3w3Ccq7hYCmzqukLf+/cku7GFNaEAR4HWKu7OSXikBAHceS/qGscrGyQuB7W7uLop0wIjEKBpSYGjFAJWeL67yPmnxLOGN2uUc92glK7/Cu4Ttk8cYAL2jYukk+fRzM/8nxFvit2TbGJmMVBi1UFibQJgpkXHOM8qLPnQB21skBKeE2Zvc8dNkKxikBgEAEwz92COsu2XE4XDMZx7mXGsw4CDqqWOoZYoP29S7+cmO5j7H/DromnhGqnDG1VRh/kT/uQ0kZCfX/iM8my2hDJ/ZtyirpMCNIBhAhws6lHddNFUWC7MByYThVlWQj0BfMZESeLExNYfoLwHhH0qZcysFhga4RoAOL1nfkrQeA7bB4klZysoGLbjylzrMEikgpQAsufpJ/EHlMnk+7LFvNz9dByXDXPHsbVVsYBPWmCkxk2Ea4ggfW69ZRiUMnSvOW0DgDgFl0JJI05523VEn74pTdggiYxogX1NEwBPnSbSad3JJqpTN/UaZxPHcmsL2Qy5GWePx6qbxlTSSghASCME5lOg+wJrIjWuLVxvGklcTZHEON20LwaJIb2JVjetQ+Ea/zukxvhrOR+4tcH9T1GgnaDU1jKSQYoEpaTzCVgkUXP/N0GiiqFch88owCFZwCBc03bjunDA1iQ2tY8kMmtJ4yOJc8TcaHXT4Hlj9rbY8WjKe+DMU/0twzkOr9MUUC9IJJIkVQV3y+9RftbC2uExkCoezUf8u557ZgAfSezI8x+ygDStM6woEvecjijpDJQ6VnJTKsuKrf9usO4FiXXtJWhDM4nC9PHcXrLjsQpreWz9AcprUMxPY5/TyQS1dNPT1/3/n8P2QWKBKpOqSSwhNym6qRayZ6XMp1SL8oKQ6klXprbGxhF0x0jA3RY2m5Qj2XZGdS7lFNaBU2fmOLffW3kxriufEstsNnHUhs/0hSq42qwpwNHtbG8/HwHOixaYn+ECOTezyyyry0WNjUPH4WT8LbIn81XRTdte6VjbDY510GL3JJvFvJh2OoyUfDzhUULawjFicj0WdYXjld0gV0ONSjyLnHcQAN+xM8fm1E1DKiFD06tSaznhbIVOPI2kBMFG+d7y58buN+azB+XQwh7qH89f85jzGFu3WCdZAnVBnqWGvWQGSXRqEpnzP2GTKGrihmFsUixWt8fcI2ESjqEEAkOwEQnSS3TrcI6MTcTEuGGoK31yF4CniqpB0kPknvX93bpoFkl0a+ABJ5lDjJNjaO+taU1idtjk/mfWBSMQNV3L3f3tYNHg0cbSTcXni9Uk7rp8ojCmVVFqw5MUrimg6bHgkmUqedbtuAUZsMI1p28M/z8/krgXrhFHLXGDxHr7yf+LGZIokpWfT0gbZR2LKoFA5kal6KZ09jOYZ5lGMh23LdSWxGhsAFNLCsT6VNIonZJuF15vq2TIOMn2NYqSWQ/ZT/e6QYGSukEiQbeLO2kFJDGCZPXgnaY56qZzkMQY3ZRCBEcRJsdJpmiqNrhk64HCRsru76Va3gn9in1GldctrIFk+lumnm133k1jaxKXTYW6rrJI4qKEJNbnqEn0kkDE8x2yOxR0u4lwEzFHV5l5VP9UIsBsjRQwqJu2PYWqlo6XuwbR/rpkTaI8b6eDk7lqONqWIM6aeuMwMckkTuVjJ20KCseati7he8kCDpJIJhNMLe+0TCQb3AdzlMWcUQp3j8EqVU90AToy2HNowhrmSl3Z92vopi4qK8G9tsc0Kxblons0bXQM0hGMK/slMR90Tk2im7xwEzvLphrnsQ0VaGCC6Fz5RpgkdI9VLDlL+KClFhjn7pOoqUlcDEHhnm56cVZEElNBYoGCFUcSORpJ791U5meZSjhFbQBdzYAcT5tpYselONpABklMZXEK4xZ1HT3/JUv1e9Orm5qfeSdZ3us78hRqEM1aF8YkkcSCQuCMPonx88jRps17A6eJOCerRWUzrQRFEnBpo3bzZTZ726vJ0u2ooLSeBpdFtCdG5SxsbDF1WYbqkhKumdvfsqT+GR5LTO61ZV2PdFPJEJuaRD9I7PvetMAoOqD1pLazVBNqxgVICoEeh+wONuHhPtsa4ZRFXXk1uaX5AdO1XHUvN34PQkrddIIklo9XZ/YNRrgGwIhEqNRNu14VpIc9OOckTu2+rR1XZpK44yTIppMJtd8aignSk/V+bJAiARi5Jsdq4ph9w1WG16hpu883O0dguE+c869JZoY0VaZUQUsbTSngUsr80Wc0P79YTaK7N7q6Ey6SGBWuKZQcLIJ7BCi34UkL1wwKs4Xg0lUFZpM5ns2qSXxj+P8+SDy3sbziCR+50I8llFoH+D5xUUSqtNlEgobSuLktGJJ1SzODFPdvyTGJBzvnJIdrD+Mkx1FSjtYRng8zj8yYxPlnaVthc+/S4iPF9iFtq9xraaqKuuu6rAMaTyTokaxe4SS7SCJzrQFn8x2da25cTLhG0wJj2/ZFFH2cYwLJdf8Wmr2P7WuaRII2cRFeb6a5dIyiKuYGASJcIw6+oZu2k/f3fZp+LmaETMJ+n0RNYhJJSY9JCTmUbhMRKur7XhWALRcR1UQlkmgVENmgtHe+V3mMvGdEKYh5yjMaozuyVHmR0NcJ19hEDvNsu4gUIPR6LikzDVKUSRliDDBFRUqtdMZxjX//M3TmaQLCvF4+J/4xmAQ0ME3KuJ9VGhdSW7ng0j7f51E3VSUXg+BeJ1yjDdJ1idqQTcWVPNUTUTbAZ4odLBzhsqa2e2iiDVKpvjmpUprYB9LCNeanpsf3/D6JrLqpEyRWNdAslQeb2jMfJO5IXnEUScw5yZEFixVACSkrALGw1vGiYW39kaGkcdlnbXATU8lsO/NQp445kcOWcQUHO1RjM5+haK4bOOTa4F6GU+qOQUCqraMAFEFRIGXOZDJjdMfS5hZPJCjkt2cgia66qaGDl8fId9t6GWF+nNsCgHKsHZoq27tNJLbjSGJqYxveF9yTTCsd8/n2NQoBDsYxCEyKyg/YdXlRW7rpqrFBYogkWvptWd00PI+zWmAQmfwJksgGAM6zoxGFCe9/mXf2WME10CAiy6G9BItaAlOFawZJjDFQ2FouSRqIhD7fAqP26KaUcE0drskKoa4wkFIGidLMvWRh7za2D2Toz2iu20jlpHs5zv9uXe80uGcTrs7e3RN+kztPlzZNI4mOwJFZf8r3ZKjnMPZpJfyZ8LvRdbITdLs8Lt4rupwAmvQU7+zYCZK4iNck9n0/tMDI9Ems0khialgKKCr1qowlt1j/zrOuBeoZSOLiiHOcCvbMB4mljFistxxQ5snHmoQyN0hT24cZ0C2sbRA0AJxwil9/xKGWQIASEfz/tEpmLtg2P2NBOpDng4foIxuku58v4yjZ+ugCmR4TKqvZY2UPNR5PiwADZlMJa3uYRsrmvT6SkuX+j9k3+xpV2xbJkAMkkrjwaxIZx842N3aDS84hBwIkkcoID0Fp248OfarXp1i2v2ghi+nXrTKtLDA5FodA+uMoummCJWA+p0NVmftI6KbyfumH6a6TtvlyOeGhWX/GccF6ziB8TSLhx65BRl1zZpDIOv8hskT0hBWbU7c3qYkb72NlCwy6T6L5u6gjlp61cdyAJGpYAuG91fUcjRNwAikJUgrHClEK1vmc1LaR1y7s1cqMC9cSNgCe3pN8mxr3OOw5cRPszLol5l7vEmjgzTNAEpnYMl2TWL6/bLBtXmPZPPY8cj5oyN6Se7oEppj3Bv6dU+d86PTJXdRun8R4sJcrOYiVgVkRrIQIYmQvdedcKpUKhWvUSGKvCBKlBvH0DYsqntOe+SCRpTvG5G/zfPx6clMxjvwEkRof7HL22a9/KTsX8fojvSMv40rfLUqbKwQpSSS3hKQEWS0zR4UgQEAbYprdxoQt1NetJ6kuVYDSQV9HAXB0uzlIovxJm0Wzyq0yhtugAOMkS3axpKzpmvREs9lZLmgAMDjJ/txLcwRMcM4iibEWGCV1x7hwDU9jmyruktnnCW2OGBNDEh2ET+im8l0OFoai5DoJY1+tonCNGWud5Dw9yY6LI4m581lVfsJPQ9uS98sh2TpZQWCZ+QFxBJgW0hvo3ZZarA9SKETKQe3FWCdZqGoPzrYANEjiPOEadX/doC6dTYrZ2m1nPJlcBKZBIpMo9M4/MS4mZgXom7mzAVh4LjXnJAyImJ2jqW1tISuuA/hrSVtAvtxjAZg83wydPAwsyyKI8I7BJrdC9pZNnqbHxHpnm2MLSgecOC2QFk26BcbIPlGqm5ZooznxSgDJFmLhXsqIuUVtTk1i315IPSKwDxKLNRG5ICUvyjANLBknLaR10FmcOq6kx2Typw5h+VjhOGqO1XRBKGXyY2ibjAPyNVkTdVnoi7bl92Kj+iqk7crr5azplLPObIjTeid2XEj3LaIvEbrjroC4xVAixmmqhvPsUobMH8rf7WChVzcFBIFx6r+0SCJJ/QF82pAEtCXHdUS3HSdtV6glitVDMLStKE2YQCCnIhX+PPJjpn9zr9+NA1NXETZEd+lGY8uM4r3sr0GMui9ggkvXKWHQ4yS7Q3ENbLBXnKKhfw7oI4tuj8kced4K+5p/PBNIyffSIInW2SX67cWSiwQCCQA3Dkwtz+uPTZB4oKpJ1AnXxBJ+jCo5oEuuAPF9ii03AGJIop6mXRoXo40CRMI1TFyQa3kVrl3E+QeGhOvoyA+v0S1gJADj7n/AnDMZtyOftzG5GF43Jnkdnn8S3Q73YMYv9ND+Tsbpnm3AgjBVVeH4wNbjLerKqev3Nw6pNc/5MzEkke05PAGKCtcgXOs0CT/PNDWJbl/EPZJ4MVYqAE5RojoCSYzXJObn09RBQ1g2i5MILnPD5rZgSDdK5xw0TyWt68p1RFWEIlCoJa0rK/4gpqoRmYGuRs9//nATxJOlyEyPp6+jAC6vJjGGUuvuLbvRm8/LDgPg0+0MIkJmdocaEU39kfRXdIU7mOsmTup669QkEm0bgBBJ5JJbk36HSqoXQCa3gjlaByEzRjLWEbrptrW1Os/fWAGwaJCgQ+utFa/ZjHRTEhV3MvKMuqm5R2JB+sXXJNpaca6uR2xMXHRdMYkwOZaD2vAIfO2JuzCPW1iXzvR7GwOb3l+3zLj88SRIfOPRBoCGbmqUW0vJSNdcGiFA7vfBescyh2K12xSTJFjLWQGUMOHBnP/JmkD6MvJn755UJCDcgJs5J/E2EdyaMNYIEgnQcVxdeX152XsLsEkVFkl0a/BYsacwwaipZQz3DSB/b8V0Ksz/7bgbB433fkkSTurSiTUv6ksWnvFkCwwCqABcSji/TnqmqUlcHlnU8QLaXwD7ILH4sC2Ch9Mdl0dSpjc+U9tWV3HIvohk1QnBm5yTFqk/4lRKp+OY4MZuUEFtG+HITCgChQUvRYmdQ6WlEeAAkTVzzw6L1C2RtYWTBZl1EupJsMHWJLbhdStk7IAQXVUo4I4Lq3mdrUnseoyOq4ZuunUQEa0qKkt9AzDWV5xtWzqwqSPnf44qMIUIJino3Dhb21M+J6K2G6Obuk3uXxiCRHlbmFUHrIPAouKuSiClblpXHr11dBAKdbkhSwMo319uUkBT7+r24KRVMidBii654iLwnLhLiIiUe4VG62RJBOxkcDBfe7TBoq5U380TrrkkdkfY7kFLSbbIfdm38McFrVKIWl41khgGsiTjItw7WHR7ci/PSLhGlqKkuTWJnWK/cZMJdE308J5ta6+3fFZ2XDNVPGYEaNz3s+tWGIAx+2IKSXRp78crH0lcJemmwibJCNfU0zKk2SVnhfMZe0aBGXRTTU1iVQHHd83ve7rpxRibkQ9lc7suv9iFzjhAqjvWYbDB3Vih4A2ImsQ43bRXy3aP4wrfLdUUmWnkOy0aJmuyAgouvfkGgRQT3IQBEcAEl3rURo43RRKLw0zyIqAtzkcSyw5CGDhrldU0NSKWAmpqufgakToI9ogxQnnp9OIiTV3hbNeOSGKJAmefG/taad2KCtcoEjlzE0Bax8KlbLm26/ox6Hn+5MAfM7y+cTLJWzLgXgZ0UyZJIp/rI/Dl4CbJ7igcy1WP1gQptudnRyF04bEAHrUBDJq+6+apm4Y1ifl2UnG6e2kc4COJbD2ifK6pUzb/Z2sSQ+GaMnI/vDd4Bth10qVJUkhusJZoWiloaxKnwQYX2EyFU/jzD/h1msyd7Auu6J43CUw05Q1+TWJHjQtLPlh1X7d8SUNRBSwSqCt5sv9nEh4x3wIQv9B85xMXSaydmsQASRSF8lyiMBRgAlAUwUoK1yiBCk0S2jNNTSIAHL9gfu7pphdjpWxHiTOdsngLBi4bE23Knh2VQbJyQWKCEsiiPbvJOG7xmQQbxT59056HvLqjfc0gKbogBeCoiyEdxyK5xLjgWOzG5tOEuWzrtAVGV6zriSVKTE1iZn4RJJH5bmGdmoxmkUTABA+mb2RxCIAh29rqHHKhm3q91Egn4XBR42zLt8CI1fKWarJSSDqTpJL3qsYFTivvWExpPDLvEUm86QeJqwiSuCXon0CcbsdS2bZeDSThJNfhMzq8TqJ7rnANRYF2ajU16odyLPOTd2KWC4MksvexezxNqw75k79v5BtZi51ITaI2SJQWGJrEUV1NkHR6vVM+NxO0jQhIveNJkoRFpAKUtCT/DzgB8DCMFU6RqbjUdWZpbYJxTHmDzDNsQaJHIGeqm/YclXkx47mRv7sqscyY8fwHCT+GBQdMkeNSWZZ7LDGXvXLiIIlNbVtgTNRNBUnM7AFu38hxXGGesSStOy6JJCaSJKSbYE1TkwgAx8+bn3sk8WKMpptG+MjZ/i/nqEn0nSZ2YdUL3sQdQn2PJvkMdmMLM8Ilx66qpotIub+l+TlFssg5KtG9qvID2V6x2YfI8TxqE78hhrShothHpHVJCUmUOYbnkd1oRqepK2cjxVaCMA1Oskrd1EEEKWrfwkFthq/IHu9w2Xh0U1bd1K/lLSS3xqDNvsYmqQBMEhDsmhA2Sdeq+4q564Krbgc4KK4btHVyLvPHWzpoG2CcZQ5JjPeJy7duSKibFul2GObWqxyLlUM3ZWicwPR6sz3pAFMbunbuY0YUZoIkEsG9tKnpouefCxI3bUfXI8rn+vWWxJpcTWmLPN1UNy7cp3oyuRgiN+3oWJeP56GkogjJlBwEa/kcNgm7JwIucsMGl/qG84AVbpJj0khi4yOJbA9OOQ7gMCcUgkOsCFN4T9K+zCRR6H9ezFJIons+TxzhmuNVMyKFYZ/EMVGYuycj+418z9QaFCv3AOz9ybbP0yQg/APteLopYOmmeyTxYoylm8ZurJJwRzxI5IKNfsamEat/yQ2LI4m8kqG2/iLaAoNYXKeBs/tgx8fGhVP4GpFwjuUFMkTN/M/LHS+kBHK00crbDM1nlceFyQu31UByTDNdJKlaxmpab1maY1inpqFouKqXuk3b0OY0tYVujUhPOv9iJkjsRrpMiSKZquU1c0/c/xEaG3P+x2zwJEmSHxcmZeSwDN0xFiS61y8MNGMS6Fsii+zOx6VtcUhiPUmSAIWaxGqaJJHXc+auQSxFDEjQTVm6o4M2sM/N0bLB2a7D2SAgdLAsOzKLAAUenzmCTeIHKdyzesNxMDVI4sGixnqn64HqJuDYNTlFry9FfOE+xV632P1v5l4+/3Po1u6x2DUh9C/Y7ybfwfWdKHVTx79gewnKPEcBrJ5D+8242gsuKSQxaDq/a81aXrxuHt3UvpazEDxg65tj/S1L40JkW8xl6h07ScK7J6tJok9M7sncfhrex2Zc+RmP0VR3he8X1lLLTypG/LH/CvjeF4FP/yjQdzok8ei2+Xn4HD8mY1cWJFZV9eeqqvpkVVX3q6r6Z1VV/Vbnb99UVdWPVVX1uKqqH6yq6j3O3w6qqvqzw7hPVVX1e4LPTY5lrLQJp2oSSw93qIYHkCjdmMUZxow3YnZYUklPKz/cQ4M2+JnFMtowpRZs23ImP5b9YYuNp+qO2UNFA9lSQkCOp0Vy4+PIja2al6FyxwF8kA4EQiFdmYIbUglVAXCwQTHj3FoFlbppbWhz2tpCAB5NlUUSD5a1qUlsTcN4VjgoRvdS1eQS60+Kbjq3llTPnDAWJi/+3G/5Cvz13/m1AOBIoLvrSDloc/8u76drEusKfuseQnAlwe4oHc293poWDC4NixYJCa6bpin44dIknB6tTZDIIHXJZu4U4jwVbmKenaMheNUEiUerBU63rTpIn6Ao9LNt/k9TkkOHXIm2WVl+7jyGyUXmvKSDhvwcJwEwuZbHKO/MreyKwEl/aYaVI8lFAINwTflYgFlLXJVSTb2xUCq3hCq8mWM1ScjQa4L4oMrklte7E/nrnUQSHa0EN9FTVUZ8yuzZM9RN62npEtOGJ6w3BhwkMXHhQ1VmRszNHnAJtBtgezbUJCpCtXs/Y36+52v4MbmpXMincPbvA3hv3/e3AHwbgH+vqqovrarqBQB/CcAfBnAXwA8B+AFn3B8F8CqA9wD4BgC/v6qqbwUAYmzRShnhmIMm47J8/Ehgo1EODeknTAF82ABe5pEek3II83OM1ZsxCOScVgpyvLT8cKEmS+nspmu5ygvkHMGh8D7pe66ZdYxGwuxRYVBqgnRSOMUTLigH9xOUFNyG6I6T0RTdNEQSSWdXREk0SGJTm/6dWgQScGh6O0OBY6mcGuGIFJJeDFBiCSAmuRU8N7TgVopu2vqCDl/z6gv4grffAjB1mMzv5jPKwjWBAETLq5uqm4nX89RN3XPJ9LsVW47otr0nS8/2xLFWIImi1Pvm6dCaZMnXJI59KklE0Ih92P+PAQcxV6Gr3T5aFt8rdrRscLppnWCbWLdia3IxIDI/tQhkWCfFXrdwX5wjgOLOV4ckGh9BvZaQa3l4vB5knWblsnLMa1zg5iCJiufGXUt2Hd+CR94PmHVrSV7vMdgm2RbhPckr7g7jggRvviZxurfJZ8j1dPskii2b2hMuAzjxsiZI9rnHLt3LSVVUEknUJPNHqujuVF+T+Pm/1Pz8wDfyYzJ2ZUFi3/c/2vf9Wv47/PsAgF8F4Ef7vv+Lfd+fwQSFH6uq6kPDe38TgO/t+/6Nvu//CYDvB/Cbh7+VxhatBInH6rFkXAmeDm9GBiUKG8Kep7atNC7e71CxiLsoETHHlJT/nD6JtiYxcawgQw6QNXHRwJlERIJjufPIjZtTk+gGpRq0IdoCg6B6AfrgvpkEzizaOS2216B7p5sWXc83zm6GrKQWEVw2NTZtp0IgAYPAnG07rHedSuwj3qcsn9xqg3uSpQxNadr5OcbUFt3XUxaj/wB5GqhcZ7cmhUH23L+7AhAc3aueIOml403YHSNKkT+WFySOjlZxih4N19II82PChF/X88mOSZA4oyaRrYmrax9JZIJ0Memz9s47x8X3ih2taoMkahJHFdTBxpTapxtnBWhYmnxQJ8UG6Y3vzzB061jiSKOA6yJgGrqpTJOtSXRVObUJ153z3dj1369J1LXAsMktEkmsa48SC+jpplqa/GTvzvnJiT6Jbiue4wiNPUwaAQ67oFACELjl1L0cO14pUTKtSeR8eTN4EJ3ZnuprEr/8O4E/9Gngxov8mIxdaU1iVVX/x6qqHgP4MQCfBPBfA/gIgB+W9/R9/wjAjwP4SFVVdwC83f378PtHht+TY9k50YhUGCQWKBACa4fCBUywIe81P83rTLFxmP0HkG1nUQeZH4BDBGMohaYmMQw2GMpQ+ICWio2jgSxz/qOBc3lzSwXppfUg7D/V9dwGtWhcJT3zGkfl9K8bU5MlwhFz+ltO1E2pOdrrrakJkoDrwdkOAIdsAIMAQdurziMwUBDb3tZ6sM71wgjXbEkxjdgaVFy3ks8od6xpkkSX/WepZakgse36ZEbY7Qdo58gFDcswI9+V1ZXlc2PIZV5JT8/uMHOcqpQyiEiMbkohMM7a1ZLPKICRxilBouZenjRzZ/r0KZIkrr04qOO+8w6v9ne0bNB2Pc62ZRVPscahZNJ068CxpinJwT7FCg4lzz/xfEeFs1R0UxKhG6n8QuVkz7/56VJ+2RKMSQ08mZRxrzevblp76yT7jAL2vG+7PtvqQcwFK+ZS0NmSpzAxz6x3Yd9UMTcxIPfRb/rK99hxzUxEsPZ9QvfYpXs51isdyAjeVP7nq/okLt0gUYkkVtWFidYAgOLI57e+7/+Nqqq+G8BXAvh6AGsANwB8NnjrmwBuDn+T/4d/Q2GsZ1VVfSeA7wSAd7/73ePrpYxrCg4vUSBcp0kyFEaWv7AYT/jg5KZRT5urA5xwzdxeanNVUX2VunKfoKoKe0Aq1B2DAKycocVkXEtct5gAjft56eMF1w0Kiowy0wf4GxTAIymhcAQTXIaBM4PkAsOmHWQjmY30cBEiG1z2bTH0e2MoVN64xvTJ0kpbHy5rPFhvDd1UgyRGkKwkkl4bOqz6GU0kSTTol4xxX09ZSNMWY5DEWEuK8tol2V2duqlb2+OOLyEp7hxZZ8sNgjXBnkc3VdzLrsCUpim4iySuFmXaNOBk11v/+eaQxGmShJnrO24f4R/iDTx/46D4XrGjQXb/4XpLzQ8wDqha7CN43myiitynnHVShUg5SHpVEbWTle+UU1TCyXfjSilCaiWT3AKmyWtVUjIM0snAzWUkHBSUlcUWtV4V1bZcGsYR/Y2BeE0isyab95v/s+h2KlGYe0ZjGhDAdP3/qT/+yybjJjWCBMVe/B9XsZu5l6P9FQt7cKjKrPHTvCCxb3V9Ei/YrlzdtO/7tu/7/w7AOwH8dgAPAdwK3nYLwIPhbwj+Ln9DYWx43D/d9/2X9X3/ZS++aGHYovztcD0nN0iBApGiZJbuD/m7y6s3r5cX8VAkBMgv/sn6u/wUkzL5pTXrXEji5AHN05RC6gmg+27hudQGRHNrsjQUmTk0BpcSBRjUganJWtaVV5PIiPnEezkSc6yryUbDUGlFBe2NxxsAPN1UNlJtbeGyqbDterrWRkzUTTctGSRGEh5MfUns3iqyBIKaaDNOkQAKGBDMuLDWA8gHb6H4jHl/7/0tZTaQskgK61yHfULl9ZTVVUpxujBHJwhmHTTAIom7tqeDdACewJSmtupoZY735ulWRe0GIuqmhWOG518TBH/8/aZv2Es3FUHiEAA/HER52Ho/G9iY19hgb267Aa3gUB2ef0WS0GVGsUi6zE2OpelBu1XW+4VrEJPwBnwWlmVglc1ti6NTN7WsBPa7SdJP/J4t0d8YmNZNAnyi3KrEii9TnqN5P+hxsR7AAAfCtAFwY4GD9PFCEAZg7+Up44Wp+zbJFb2fhoVbk6ikm16wXSmSGDn2BwD8KEzdIQCgqqoTeb3v+zeqqvokgI8B+G+Gt3xsGIPcWHYSpRurqqqBEhjexCUYferYqVA65Y1VBQ45My5Wf8fMMYa2zaGkAWYjOFzqAimgTC2I9UnUOLtaml4YELHOXdhwm+4J5TigbNYasKiZGIukxJDEcnCPgG7Kop3zUFIJEu9JkEjSTWUj1dYWmnoPnUgO4PRJ3J2Dbtr7f4tZHSK5IJ7RuTTVYJyulnr6+i6TKZdz5t3HJN10EQjXaGoStcIdMeEm83rhWI6TXMpW++MkAO6KTAvXwj5xdG2tg9xrEjKAW5PYj3PIzjG4l8W5ZhIzv+YXvgvvunuMr/rA89QcARsAPxyo6yxLowvufzopGQQprCqqJ+6iQBI7ZeDmIj5uTV3uvowFslRN4oikd+NcqXr7CHWXuZXryu4zGgVKt5WFRt10tajHeupN2+HGIeeGL2qTlAQG4RpK8Kb27hEz73JyF/DXciYJKh8b+iVZhC5Rk1jW/KinSOL4/XJI4vTzx7Vc2V+RqfsOE3DADCSxa9/SIPFKkMSqql6qqurXVlV1o6qqpqqqbwHw6wD8LQB/GcBHq6r69qqqDgH8OwD+p77vf2wY/p8B+J6qqu4MgjS/DcD/ZfhbaWzRGMcwJn9rbrL056ZaKTBOEwDHSeZurJhDDuRrElMOIUst06qipgRQqNq2AEksLUDpusn8HOvg/MtnaM8/7yQH55Gsv/CRxOLbR1s0U0SEU1fzN5ueyJxOhWu4hs+uc22RhvK4oxFJlBopkm7a1J4iJI0kLkzrjG3bFVU1XRPhms2OGxevSSwLfoSKbKr1Z2Zyqw2uG9XfNYokpu/LRYRuym7AoXCNQRK5jPw22oIhr6QXCjcBZWdrtbBz1DitXi2jwiEJ1xK6tnblBoncs2b3AJ26aVi7ulMkZqqqwld/8AUa6QcskvhovaPmBxiWhovQMeNibRuAcnA5qfcjmB3ufNyaRCZJMkEgKWpfGGxwaNuY7HDOJXOtp6J/iqRkcN1oddNOhwgCQw/OodaV3QPM8ewevGNbYNSVt9YBXEIGcBFB8jxO6L7mdS2YYsbmfS6TqAj7JJa/XwwYYVghUV0MYg9whYMYdt9oy1C45q3D866KbtrDUEt/DsAbAP4kgN/V9/1f7fv+swC+HcAfG/72FQB+rTP2j8CI0fw0gL8L4Pv6vv8bAECMLRqz2S8i0HZpUZ4r7hIqRLES6Cm6Y+5+jFFiu15Tt+QGN0S9ZWRBmK1uWniwY4Es5ewG2c9xHOPERBxC5njaIF3GuSpuzLGAISBSBumAjyTSPcqaSJ0m891mbtrHQx3RG490dFOhDakyfTC0qG3b0bWFYgeLBuuhTyIzbhF5Til1zQlKXX62qypWy6hoi6Ndt6qpAAGQD95ifRJLIgLhWJeCRSGJdY2+j9TbFPaAOXRrq6jd0cE2YIWbvFpG8tmWNcQkxMpzBBwk8bECSQyTCSQiGAaJLVHLfh6zNYkSJJbHuMG27UlXToACjtjH8Lp2D1YjgkoqZ4hAMutPrE8ic8mklqtVBmCWhYXxuGxS0hVuktdK5vqFGgT+YNFg7SCJ7N7hBnzblmVA+CyBqirfk/I1XESQuW6pvphaMEX+X6r3ngI3ZYXraOkGM66eGZRW/nmU14omdNPtYwD9W1qTeCXh6RDMfV3m738TQLRtxdA2418b/qnGMsYoPsVq4rrCohyD0RknLdWQtMgHn1CbMIwrB7IhAqZ1CM248sIaSgKb34l+e5EsTslJOy9KqkUgqyqsPyKvWz2tJWX7JG6cugZ37jkzipw+IsIiKbvJ8fLjQkoIK4Eea+/BfLdJTSJJNxXakDxzvHCNQWU1Gz1g6KbrLR9cxtpStGMdBbdBAVxNIpBKXLBOqx0jc8hZ7NkGhkx5YnBUuIZYxwEfSen7nneSRzGNDk3djMfOZ59Ddkf5PAIOIrjTJS5cuumIis943tjaKkHuNff/eP6VNaHhPdl2nJjMXAuRRPb8h0kSVrnSojbccxMigkyNeGycNgAbx7V6h5xFOwG/lo5Gsibqpvx3k+dZlkt2TdgqzyNgkpebnWEJsArXgEm6jkgiyV5ZDInMcY4zEUFOcC7uuzJIYhjw7Ur+dT0FDmQ7YNqyRNsZlY7nH84m4nKtMxpb3sMCBwCM47g4AjaPhkFPP5J4bY1GEsMbcgaSSLVgiMg4u5+XHhcqSSqQRDfbzRxrLpVz+LteJdN3doFyTWK03xsUNaEu3ZTIEsaofWCOFzg/dMP5GVlrIEI3bfmaRDmeBKelmoimnrbNYDftztl8Ac7ZOljUqCpLN2UpcMvBSdBQW+Xz17sW621HIymA6du2aTs8XO9m9ZYDNEiiLpEDTGsZu56hv5mf+j6J02cbyNckjgJYs5BEB6UjEfHYMQUVKQmDhTXRjB+5dAJSex6ZcTZ4bjsONTCfbQN1TX3toZOE4ZFEX/K+63kmwwRJZIvAZpgVrlHQTeuYkmT5WHU1LS9hxY28Zu4kJbOuwsBNQXkPe+4V7n85BiD+D3fNlk09MgVMsFceM1E37fjgZspcKR/PpX+WWqK5JgmV9a6j69LleB5NmGyBoZ3jlCbMCs5hPA7A+UAx4EDG5u+taU2i+BpMUNp1/t5RWitjLTA4JHHazotmvS8PgfX94YOe8prE62zWwU6/Jw5tlzMd7ucDXEZs2muGu7Em2X8iAy3PxLSZe+FYUbSNUW6digBRNYnVtCaxVD+WqgllkcSdc/7ZmqzQIQS42pLwPHL8/ym1jxMFqMfaqq7r0fVlRUjAbNpjj6Zh1SuhB6EiIS1AEMusE+OqqsLxsrHCNRp1U0cRkq1dOlo2ON22WCuRxOeOVwCAT98/owJZqwDnb2wlml6Mgk5t9kHCA8z9H6xbHbGuyrjQQQDM90slIWw/wGlNYsmZd4M9tkef+7l+LVf+y4XsDjYjHwZ77vFztnL6JGqCPRfxbDsFkug0uabbzYwMm6FOipTyP09N4hwT4Zr7Z0MLDMKRd6+3RgTLHyev5ceYZ9+ex67jGCjAENwIJbDlArDQn2FqokNfhqXEAqI4bREwtrYQCOs0y8eqHZRIk3BtHHYNm4AD7L60aTts2x5LsnXGsqmw3dnnhkquOGgn295GSg5cdVP2Ppb3AxZ8YBIJUc0PJZJoOxXwiQs5VrF0JrJPsa0zQl+evU+wPAYev25+X51wYy7B9kEiIyVfT8UVSjdW7TgjYoyTFtJUZTSjkhkVrskMk6ziZBxxLPPeeQiYhyQSLRjqyANaQg5iAjTMQj7tteS/nhsXtttw55GysHWJqrdT6JAzaIMTuLGKkOHxtiOSWAgSm2kAzG1STjaSrG0TO1otLJKoppuWM4OuHa4anG512WAAuH20BAB87uEGd0+Wxfe7fVbFGAR+GqT0WSErsWktY7m/WUq4ptwCYJoAks9J1iQGEvnucctBokWyNEiiRW74OqkYu4NCKJyaS51ysYzrVMiGi1CwaCdg+yQC5YRROEdLd+RqC8O+aCyVcK7Jd3vjkVlL3IA4ZW4vNU1w3zjPALvfy/G2zvPGng93LWeSHWaMj/iwTAYzBuNPnm7qI4kadVOv3pVMuI4BkWIPmPQ7JG/Hg+FeGksOSIG1ZWNVUXdkC4yli3aqzr/fzkUVJAZ+SW6oTeZPuweU7q0Jklhgl8XmaI5NruVBWQRzvKaetsWhg8TFIfDoc+Z3EbJ5C2wfJA4XLp+1mELbpRsrRLIEkSoGYAFqQNcoVIFDMvykBAGUjky84TaXJQ9FgHK1R+4cJ3TTwiYVE6CZo9xqs0WlcSG12PxkMsJzkMQoRYZxtoYG8O44uiZRejTtzLhSkBhSQljhAhfJ0lJAj1cN3jxV0k2HrLXGsQOA42WD080O652Obnr72AaGd05Wxfc3wZoADM4182wH9ySzP9VVTLhGlzgaVTkL42IZYSCvumiFa6Y1icUg0ZHX3ynu/zAIZjL502eb7BPn9Unkn20XYW1JpAEIUBtFsHGwqMfkiLZPoh+k6AIpgEdS5pqIYL0+iGAdEgmn2tnbNErJcylpHt1Rg9LVbr0fi+San27LB/N6ziE3Pz26KblMLpuglyCZgAbMd+oUe2KsTyIrAucGiWxS5mCkmxrxMhZJXC1qX7iGZEC0nam/1iRWwiQ0MypE6Zh7JKxRFtsVkkfRtnQksufO0RyrnCiJCde0hG/urlsaKjMAExg+fm34/ZgcdPH2zAeJTPFpHQQAQDm7NeXjD59VQhKHm9UGKeZ1JiMfKukxx5sI3jBoW8A9l+NRAUAQlLZdX6R7xaD+UuF8jBJL0UaDAJilIMaofcw4l+pi5sifx0kgq8x+MuIb7vG0NYlhANCRG6m3QSloW4AVrwF0dVK7tlcp2wFGuON022Kza+mAFABuH9nA8O4xESRGkHvGua6r8J5kBSCmiQut2qIGgQ8TcPI5pWfbFWBi1TytAI0WSRwC0zG4KdfETQWA2CbdjkopkcQUk4BtMyCJLCK+bHxxC/b+r6oKL9ww9y/fk9SvSdTUKYc1qKxTPsdODszz/NqjNQCr5JozN1Gro5tOkysM4r9orOCKJgBw66to4SDxS0IkMfP9QqYSU9svZhIXEtzwwZ6Zo25P9Or7x+CSmGNtA1lWlA1wg0SDJB6QGdBVYwRvALP+MMI1S2e9KwVeroXsAja5CLjCNfJ6JmhL9UksXPNwPQA41fUYw49nhfivCQuiVPIRAj50Kx43SNzTTd8645SNEkhi4eaQ9wE8jWTM2LX+plEO9ux7AYVwSiTbXbqFR4fQddJIBzQMHHZdj2XJ2a2BLoT6C05h2H/KzLGMJMrmMK0RKTu7k3YPxLjG2UTtHOdtbKwim7aXFyDy235wWaJYToRryI3UrUHVontHM4LE5aIa60MA26eOOdbpRt8Cw0US7zJIYmRj65jkSh3ek2xz6VBxV9/f1TrJ5XGxPok5hkFVVVgFrVzYtixjkNJ2472pcZIFKWKC9JBuzdYtLRykVJN9HoPEXUcnZAD/2dbSOF+8eQCAR+0ntGQiiy/jvORif7lI4sGiMfdY22O1qLnklnO9NUiiRzeVfYMOUpxgW4MkOkm4OUgiK4zkXjfdHIcSAEWSxBVOUdUWVtV43jVq2ovG1M53Ha+SDNh96fG6BVBm5IitFjXW2prE2iacWrIHsxnn+xeqIL33n4E56qamfjJ9rHBtlXkCheAymKM5djl4jiGJnOjitN6YXrdWJ8DZPfP7Hkl864xZFMIbhMluhXRTXto6RBIVwV6AGgCk4I2ybm9UpHKeUVoUI6QgEjWJ4XeT45m55NGGzkNXufMITBW6ynRTfZ/KcZxHI2SFa+aJu7iS2HIdSohgOE+6JjGSgNCKVGjRPQ9JJOqIAIMSbHYdzrZm02Yd3iOHbqoTrpkXJGqRxDD72YNENuqwTpYQYAro3WxNYuzZBgg6vyPiYObI3ScukigOtg5JHBC3lhOu0QpnATbY82oSGSetNsHzetepaKMujU2DiABWhOkdt7mamZhK7GzhmksMEgGLJh6yVNpYCYCydOAq6I5uULojaOtmjNQkWsSZeW7c5GlPIoKARelskrA8xl2DNLXsdR3Z7xU1wO1A5eTppua+ejCIIrF7x2phkcQt2QLDVUo2CQHqUF55CZuQmZTqEAnelLppribdfKafJHQ/gxKu8XwuItiLsNk6Zg+u7HnUJCUBAMcv2N/3QeJbZ0zx6dTZNT9L0rfANEgsO03DvILsQxEBq6ZZa3ceyXF1RNxCibZJvSWDgDU1gprEMrc+JlxTrEmMUGIp5dbEdWOQxNg9QiGQc2m7o4Pgzz1ny8bPPpvPImoSnX4/Y5BY2NzC4nJaktwJbrSKYC6Vk0USRaTiwZmRu2c3bVE33ShrEm8e2J5HVE1iJNvKbGwu1QtQJHLCtYQQpQpFKuSWLs8xjiSWmkW7arsA6IDPFU4Rh4u53rFauiK1tQ4TcJwj6QrQaMWUVosa622nQjZ8REpBh4LtI/jBl25Q769rX5VTQ3f0HDtSFfU8duPQPKeHZLLJTXhoeq66SRmmzklsLt1xgkAq7kmvVYo24ddx6w8wqHArFafdZ1RTy+7eW/KTO56L0unppg+GZ4dFEg8WrnANX5M4zlFxj4QlHxrhGg0wkkIS20JAG6tJpJDESMKVSXgYRNB/jVFYNucR3jHpdevGS/b31T5IfMuMWZTDAIDJbk1USsmgIczYaZDEWJ++IpI4cWS4MUCs3pJDsrTOrtukeBxX6pMYIBsAp+4YCnDYIP0Sz7/yfABx4RpKytwJ9liKnrxnrEkchGtKdNMwucJKkrsUXEZG27V33DGIRlXxtA7ZtEXwhlUqPVo16HrTS02DJFZVhVeeOwQAvH34mbNY9pMvtg8QQbom0f6fCe7lVE97ZBHHSiKJ6e+3bKrRYTLv7yj6m0s3lfHMtZNxtnavKye3al+ki0FkAQx1LmaOrWJtBcy9vN61KqfVVU3UoA0AxnYz73+Rr5mZqEIq1x9AgsvLdV9OVvogse8H+qEmSKmsA6qpZQxLB2hRksbfO5hgwwrqOcE9yXhpnQCY75NoEBiNY+2WmGiQ3KaaBjbM8VyUTnP+Zb15qExKejWJZJJEWreIercGbXYTCRRqHPhOmqAtJgpTAm7CmkQNkqjv1e2XzgB8yYfb7sedQ9FOXrS/75HEt86Y4tOplH/55p+rUhpm7OhWCpGstTuP3Dw9wRsCNZiTMXLn6QZ8W0rdtE4WKac2qphjbeguhfklvltpH519/oNxfMNbPdoJSON4IwggWWhaOGI4nu2TqLtubLY7RjdlHVcJvlhkG7BO4P1TXesMkcW/93iraoEBAH/79309/ubv+UV4+3Nlml54T8rvDEoX3pNUTWIdUzfNjwlFKmSqFN20m75uhBlyTkLtCdewWfIokqigbWmRRNcZYdsEVVWFZV1jMzynAFejBgxow66DRu5+6SoeK2sS/61vehUAjyQC/vPNqFsD5l721Wzz98dF2M0BSWTaXwCOKm3XqYKUurLrnKYGe+kkXLuep3IaCpy9jzXtVdzgkkZJHcaRVoG1LezzrtkSk56iOtpxFknU9Bx2Ubqu1yRyzP30cEAS2b3DpZvuum5sBZQzu951qjresJZU14LE/J8BD8KWOGIl9DJWk8goXIe+q/yuLd2Q41FI4jBOWzrjIYlvYZC4KL/l6TZmMw0V+JiFK6VSygZgtpEsiseScX6fPvOzdDu6jZRlHEstCx1ClkrlFs33ffn8pxqn1hnkIC5cw6mNApEAjLhHoue/FFxWU8EbtkZkjmMhmcW2s83EmUyyew3m1CRqKMkuBVerbvqOO/rFVOTtpXG2BkkEgNNtSweW9pgNPvjSTeq9qewnR5EJkiRs9n/OOMexoIVrqiltCCg7octF5fVJZGmLdW2C2V3bjyIQGrqpHJNrgVGr1x8xaQGgCTYAU4e73pnEJx8kOsI1ZNAg9i9/8TvwL3/xO+j3A34PPDaYXTZTxsVlCtcAwMmBIInKHpAOTVIbSGkcSYP2uG0iqGn6VEK23mySJOnGvaR4LGefoinQg+LuWFtIJjIB85xp+4uGSUnmEXADHJbKD9gk5KyaxNaiUlq66U6BJIbnhE0kA5icS0rgMUQFC/dlSD93j8scz91yWCQx1nJDM24UrmEf1JM93fRaGNNvLEabAwoZi0CllKUf2sbZ8MYVna0aAWowzKMU8AVoA9VLMAjAYs2w0/P05bcBot9eM4X6S3S7MJAFuHq/ScaUrImoK/888PTiaUsQDpGdioRwfRLtxmbpGcxmX0/UTZnrNgp9KALZ86ibvu2WQRK/5N23qfcDLpJoMrus4I0rksM2RJ5jIUoHWAZEzsJ7i3VkQnSbFVxx6wvnqiuLlYLgpSPABPAqjYB1QNc7Xqho6SRXZH5lwa2QyaCtyepUKpmApZtqhF3kWIBe3XSOuXtASyKJrkgLYNYgZt06j0mQyK4HI7VPiYDFkmJswm+OcI3bX5GlLcYa1bMIsGVF8WjncqDS2kCjPEY+Wq1u2viJa0CfcNUEwHNrEl26qV64ph8UQ3kkcU6bGnk/wPm8oS8ptmvz93PI0nCPW6KphsfjRcj815hnJ2RNyGdRtkcSr4e1Xbl2aVLbQ2R3QySxV7RSAOwNRdNNg+w/G5SGwjUM2jNyz4OHlM9+6gKAGJJoNsX8cYCpcE2pJjFVb8nRCqbnv7S2hgikhtoxaVpL0U1tbZWGI+8Wim9aLriPZWjZzWa90wUbYh9+5RZ++9d/AL/pK99LvR+wSIG2JtGtVdLUJM6xsJaX2aCi6ppEVVyIbrNN4EORCnktO8faqvSOxxsZBrmaxDqgH/JO2tGAts0RrrHITZnuKNluQ/OthtpOaorm+w3nAeDvf6GkLeqaDkhXbp9EBSVwrrkOHnvdXLVFwNz/l/3M3TzQ1SSGSpIAj4CFlDQWXZ0jXBMGAFxNrh8AlISl7LHgJY7Ye9KooLfq5CLgq5vSdZOOkid7PMsu6FTqprNrEj26qa4FRqusm1zU9YjusfXNoe/EBNzC7IgxxUqIYNQnrPL+q2WK+XtHuZZ9KrDGIKyuumlJkX9iL36+M/HLS0KXbB8kdh1V77fZ+TcVkIeNJyqlLJI4UiYCZ0sRuNV1NdYfaSXoVeqafejIc+Nc+W2AC9LDrNGukP2Jcc97Yo4TKX+SNldXRrRgdAhJBDJEG9jNfm6fRDfbx55/wBdJ2JK1XNKkHtCJG7nqppoWAID5fn/gWz9EvVdMGmXfP9uiqriWIIBfq3TZDmtYy8ts+OEYQ3fkjhU+N9S4aromlDfRqYPArK+Lxhcu0NAPTeuSdlzTGWVaSYi46oKMgwCY895UfE2iOZ5p8SHfkfUrDoZeagcLDZLoIimKTPdMc+uJNMI17vXedj2OlXXAWhMk8Yikm7q0cE2w4bJQNPT6OWgPIOdfV4MaokS7lqSbOmuCSkypNgGwZv1356hTN3UbnpvXqPr+gJXDq5v6NYnsfuMFiW1PnX/pQS1KsZo+ifORRAmKhteLTL1EH/IikjgVuymKuQV1k2aeXOnG5HjEeVk0NuGtFq5Zcm2FLtv2QSJ5g3goEbGQhyqlMpqt9wvRNqYmDhiydah4Jb0J2qAZZ8e4c8hZqGwHzEMSS7QoW5/gXzcmaDZzs8cBOOEgM87UCsylm9K9BKt5dSxjv7fW1iSWFLqARE1iQbjGQxLJYBtAXN30Eh3XA0e4ZtXUdN3YrSPb71DTAmOOuQg8oFi33OemByqy31hInab7KzoIkcyhNCZZW5IZK0ibO4ZGEldD6xKFuqlcX3HSmKDUVbhuBsSUDxKN47RpWzR1RTmEZp7muxnnnxuzbOox8WPmSg2bba5TSCOJTe3XoLbd6ABflr148wAAcLaNKCtFzGVp6IRrqklSkkISnSScBslyNRa0AYB73ShV1NqnoNOU2CEJpGGSuDoEKpVYd46KfUpKDDa7TkWlleTiyFxRIInrYc3aksJNXuA8M5Gg8UnMsTAeE9ArvDPHTCKJhVMpf3fHsjWJIeOFFo8LgCJVEu7X/nng5/8R//5LsH2QSELN2prEpEop8cC476cz8g7UvwCftQ4bZ/PjpnPUohSy6VPqphO0IV/LEssYMc6ufKS2vUd4/nV0U9fZVbQpGLPP/hxyZiWxrSPDqKS5SqWamsTRGVHSeEKa6mWWH43CNadbFSLotq+4iiDRpchQWcyAAdH2PXmtpzRVLbuAdZJjCaAtgXAL0iamcYAOnf6WAEcvluu73vFIYkwFmvUPFkOLj/W2o5u5yzzvnW5Uwd6yqcaAW6tuOsdCWvKKoHMuG//+Z4U7zmNf9I7nAAD/7NMPqPeP9d5K4Rp/vRteY4KbpnJasuj6JLpMJU2jdHm+GeEmGefuU+w6vmhqTyVWrW6qOf+NPnEN2DXh8WZHzxEw+82qqfGZ+2sAfHnDQSPKxZzgH+Ao7g7tdOYkEvhepiGSWKZ/AvF2FqVjxmoSS+wyM84vA5P5zkYSFSCARihwtA/9MvPvLbS9cA2xSE6y+MTCZR0En4/MIll20ULxWO7xOgfdm6NkyDY8d8ex9ZaAT0G0C7Ku356MzbYgGT5y0iexMMVQJERDNzXHk2P5r6csjiTmjwVIhtb8rqHWuAp8+ppE835dTaLtvwYoMusz6i3n2ihcc7ajREzEXrhxMP5++TWJ/qZIbYjNtCeplu4L8DWJvkgFmwCa9kks9UAFBGkLgkTyHjla1jhzgkRGmXYVIIk7QjjFlZ8HeEQWEJSoM9RRsiZO5imOpKZPogQbQpe/TJMAGNAhWe4ezKprnse+8J0mSHRrX3PmJ+DMa7xwjfnd1jKWjzeXbhrqAnDr/8CMEnXfjhMOcv0ETQJiOcxxjrqpvk9iBO0hjif7xummHY5fHALA+Bi3j5f4zIMhSFQgiQBwtjXHY4RrfCSRE4kCpiwglv5s3m/+T9eyBwkg5piNUzMpxqmNmp9z6vtDEW66v2LICrzk9fWi7ZlHEpk+QZPaHmLhslQj838ZzkDvZly4aJXGmZ9uTRBzLxq6l/2/blwIozPjnLoGTU1isFGXMplh5hPgahJlrLq2KnL+AUI4KCIuom1SrAnAvMyiIrPlKsyOfRJLSGIdq/UoHsrLrGsywnNNNvuH6x2ecyikJXPn9J7n+WbicyxWg6elafO0oSC50oHioLsiFWwCIkTSATfjmr6/Fk2NR4NzBgzng60lXZmaxLUKSTT3yHrHBzcW2TD/1yCJ0uJjvWtVKLXUJKqofUHi7jITMoCv0sgiWcsBWRLbdf2l001vHi7xv/32L8TH3nWber/Mx1WOZoI9l5WjE65x6aa887loqpFCy7eOwfh+wLCAGLqju25pauIWQ+9OTQLUltzogr1FZL9n5ikMFFmH2OcNAO4cr/BPB4SaVjdd+K2amHUhVDPXiBu5e/ActLnt+PMf65OYRRKbCJJIKH6HmhNmnn0xURgteSIo142b8NYK11wTe+aDROZCh4W1zMI17XfIISKTZu5kABBSm/qeo3/W1bR1A+vIhzc/tyDUOG1bb67l8x9BEkuc9YhwjQYR0TYFn55/7ro1dUg35TL5EqT3TtaUo5vaTUOcLlo4QhyEndBN+eumUqmL0BYvE91w6XxzaaO/QNFyY44t6tBJ7nCwzC/fTbD5alTqwueNzsgr14QoktiVN1MRthArtcRx7WjZ4N7jrUrd1CKJZu1inGTLCrFCDpqaxG3b4WzbKYPEButtRwdfgAlItcjeeewgUGmcI1xjsv+XT4T6Nb/w3fR7XT0BFd2xmq6TLHLj0U3J07Fq6rHdj3HGGXVTn6Znau+5cTuHTaISbup0iKCc6q7rVUhuU9foe/04SRxp6aYA8NyxTUbeOODccElmSS0jo7or101QWZ7uW2EtiYRCOwqxkG6qEkGM+HclEGDKLlOUZblIYtfjqOTfxeitDN3UCWbVwjXXxJ55uilzoUNxBWbhSqmUagRQACcgJWmqEnD0LNQffDe2JtGnaJjX2Fo6l+vuzj05JpI1KjlBdXD+ZZ50vZ8SJQ3Pvz0n5XHud2P7vS2d+0QjXCObxrbtRroGU6fmSmJv2w5VxSzItYMk8omEpvLFDsxnXT6SCOhpo//Sh1/Gc0dL3DrkEcg5tpyJJLqBFFN/DQzodkCB5lgCrgCHnUPxWJGMMFCmm7o0wJacI+DUJM4Rrmm78WdpXJhZN04yOceFoJ0t3YIBMNTZTdtRDBkxobYCukB2rh0smrFHJdPvE7BJKkm+mT5x18vZirE0WKXqOX0Sl41P5eR7ENpnx/g/5TFhGcy25a7bsqlG7QEN3VT2YG1tJ2BFWsxr5WO5iVOWuQVYJPGxIImK5+aOEyTeOVlRY1YLv5/vERMkOm1ZdOff37upGtmAbsomJVPqpqU+idsJRbXc8zzGMKNEyAI2IUDSW6/Yl7kM2yOJxIWO0baA/MV2s4qArt8eEEES2eByzOTr679U45yHRjZu5tZ369QsYqCH+ku9bWJIorQFKVlUyl+5+GgEb7wianIhXy7EIenVjgUw1CQqEUh5/6btsSRUQN3rxp5HQNBt8/uVqJueA0n8U7/xSxHsHZdii6AGj+mTNUkA9Wxm3Re8UfVJHJNiXOPgEEk3Y8tI4oR+S9Roih0tG5wp6aYSEEp23dBA807aJOGnQOmOVw0++eYWN3Y6JHHV1FgP9ZY3D7ntfdnU6HqMTvllq5uuFvWIvmjUTQFBsCpaXfMqLR5sKJFExTrpOteaRuluK4WWRBJDlGjX9WOQlJ1j4yKJCkpsXc8KtgGzXs1SRe10qqjy/D8aWllonP87xyYwXDYVTlZcEkjWIEESj4hxrgYBW1so49x163DJn3+3BQbdJzSyB5T6JAr6K8dgawTl871jlVpn1PGSJyp2CIRrnrQgcY8kEhc6vImZhatxFiyAV2kcszHOOIqiF3Ct2fqX8Lt1fc/VH7nCNcEcsvN0aEMs/C5Zrb4PncIykuh/N7ZucipJztJNw6xREUmc1CTqags3Xt0Gn21162bYcfL+bdtRjrWMcSmxtHDKBIEsDptti6Yeg2ctklhVlaoWZa4t6sprAcBs+NJGYRzTlyXCgXjiSCtmxQR68vcYjQfI35erph5RPRlDS9CvrLrpasG1PFnUFarKQRKJ4C3GCmGdtOODBU63LdbbTiWmdLA0NYlnWx6BlOBGnPLLRhJXC3vtOiLZ4c7RUrc44ZSrNI+loQhu/D6VfHDp9orToESroW4VMDW2zJoXokQsvdtdt1hGgsxRmtQD/Ppj5qgLEl2fSxOku6rYACeAJXZ7CBJvH6/oUoqxJlGCRA3ddEwA8UiuK4qkOo9a4ZpgD+j7vhhgiv8TsrCYGkEzRx2S6IpLjeMooRynJlfhA10nu16r7FtgLGQcKukB+Zs4pGewTnIY3LQdn/0HfCSLuRWbwCEEGaSYAMD8rhGucTNUrHCNpe7a10p9wMIgHRiQROKsuI6rRQTzY6bnn7/eXW/fz1LSVoFjxxwLcBbXtrMCNKSTsHWEayjRAucZUKnUVb5Eu7x2mSZKpZetUjrXlk09rcEjauLaYBOdo27K1pa47AIZX+zvGqHxMAyDEElkxRUA41ydbg2V84CEzaqqGkVhAAwN6wtBYqS+nEYSlw0eb3Zmjgrn82DRYNf1eLzhg8SVQ5PUCN7MtYNFbeudSCRrWftO4a7jhFOu0mQ+Pt2RRARbfbA39hLsepVy7oETpG9IYaQQJTJBOrffjN9Ncf9L3aqmvZO7B2sToIBJPGuC9ANHFdvMmU/mvHzL7DchgpYzqZ1/4/HG/F9JN2XblgAB40sJVLhMMT4B7TJX7BxyY+QYYmzpmDmGO64rip4tmgTaWfJdI+1VnjThmuvpEV2hURB1M1UABTgkUavS6NIDgMFBo7L/Mjc44xiH0KrvyTw5h9B+JzmmlpLGNnMPBSCAcvbHDVAALjsl5tWIkNctPP/sOZF7aKRXsnTTwLFj5gj450UcBbYpr9A7ti0nP9+4TtM4x+KwaE3oZVM0Xrpleh5qNvqrtFDNjRGccJEGgL+3JuqmPdkD1UMSOVGkEEkHrHpuqSYxpN+ywc3hssHZtqNRFDFXlXO9LY8N0S9NAHC0avB406qFawTdeOPxhu6v6Pb3uxJ1UydIYQV2bPmGFdO47BYYWosJ11CIoFtbSCaFzbga27ZXMUkAvyZx03L3V7ifsn0q3ZpEjbrpwcJQoKV2VaVu2unPP2D8i67nz+NBQP9k6Ldin/fyTQDA64829BhR3v7Um2f08cZaalE8Js+/K9TCCMIAcZ+XBQ7C9jbu56XGuO+V4zH7jTtH+X1O7TxDU3UTQHI+r4J5dJF2vVbZt8CYbIBxZHyHBMgHN5MsslaAxkFSNLx6VzhFG7TJOOYWDushAM6RjCleloRTFvX0wS45hbHzAZCo7Ay1uRTdtIxAYjxO3/MZ4TFI3OkU2RZOcMm2sgB8J2FNOq7LgOoC6Otd7b11uQvr24bM7jFZH3LVtqx9oRa2JnEidjNHzIp0Ltx2OrRwTYCkyzyBfPJi6QRsAE9bBGwtz/3TrSpIPFhawRVNTaJLXafppisrXKPpk3gyKCU+ONvRSKKfcLp8J8YNttngfjkyJ8y53HbdpbfA0JovXGNeYwU/vECKVaAcEBgNagbY89/3PZ0oCe/lLdmncuEEpJp7a6z3U4jCWN9JV8vu1iRqBLAOFjWqygaJmgTjqy/foN8rJhTVT903QSJTk+i27tEgub6fVhaEAVwk1/xfQzeNtphTgDAAXzoGBH0SiX1xEfjJcuxSnsSjkvd7JPGJNMZxiilQAgUksfFvYra2bUJTJZWl5mZxwgwJq25aO2gDK9Ji5lnPqEmcPtilxrD2fJj/d2okS8aZn1pVWhlXrGV0kgIaRFaEazZtp2rA7ArXbMZWFooWAG2HM1JxMUrj0QbpCvTlPCab6YdfuXXpx5pjc/okhjWJHemQzxWzajx2AXe9QyQd4GoSlwGyyvTIEpNanjdPt3pRmF2H3RBMsXRTTyWQpZuuDG304XqnmqMrp88iG7ImCJX2spFEqZsEeCTRb1RvkmlX0QJDY15POkUt9aKufXEjhbiLtt0GYIVrdsN5pOrLg3uZvW7LwElmGcJy755ueFEYeYtL9+XOvwQ3vapNh1DQx5pExXP64lDewPbgBKZIIlOTaAW3WpUCrpso1NBGzft1QkVhXTrDOgqRbYBEEoNkh5lveZzbcswfR7B5xN9VJnOuiz3z6qaslHx4UwEcHG7rUVAc4/7drWNR9ajxKKDzsjiz20RQAdg0cGb6JAIYWzDI2Ny5HDeMoLaN60Fov5OtLcyPSdckFsY5Wcy64gNZryZR4SRIMLRxkMQlsbnJhnS6aWkkMZTfZufoF81fvtMKAJ99sAYAfOhtNy/9WHMsbB6/KyRJgCkiqEk4hWJWWropmwBaOMm0cO3L1yQGLTA6Xt1U0OLXH22USKIJbiTAKdUKRtVNyXv5aGW25jceb1UIxfHKDRJ1SKJ8r8v2YVZNE6hr8vvbru3H637t1E0d4RomkSzWNLbeuyX3e0B6CepEcgATOOy6Hmdbs54wNa9h0ntHqgl79ZaKAMz2IBzopsS4qjLiUl1vnXlNgl0Cbo0Tf7BoHCSRX0uqqsLf+998I24d8a2Tbg9tMz6pCBJlTutdp1LA9ZXJdaUsI5uELW8I96nRv85pTtTeewGeXSNzc4/HCt50PcZEh1m7ssMCdV8+UX6d7Hql4t4Co+imiUxH7mLXYeaNRLJCmupcdVOAbGQaIomkQ+j2UtNQCd3+Owz3HACaiJJVKZNZVZUJgINAlqvJuji6KYsct72ujmJuTy7ZNM627UhxYjLJ4rSeDq0DVEhi11MUErHVwqLNGvrVeewP/tIP4Svf/zw+/v7nL/9gMyxsHs8mt/w6Xr4m191EWQq0L1zDJUnqYL0DuABzOVD0eicJxAYNd4e+ZD/1uUeq/pZC02NbZ0wTfrxKrwSyjIqqaycH9rnk1U0FtWm9/1+WhS0YWEQK8FWZnxbhmmWQcNUoUHprKx1cmuv7cGjdoCk3kHnS4mVuTaIiAD4IexCy52TYu1vFXrrwrpvOiT9c1jZIVNDCAeCV20ce8l8+VoPVosanB7rpIUU3tTWJc/sksiyNULiG3bsXDrvMjBd/JjdmiiQyCZapn8wL0LhzA8weV0qUuPuUzHVPN33CjJWxjXGmGSRxWqOmQxLZRWuCJJLj3HYDgGlnQQWXXgBmXmOl5OVcyMLAqptOlKyI67YdF6zhNVrd0f9u9HVz1GXNuMKxIsX2zBxjwjXMhiiO43rXOXTT8rgRSdy2ONtyinieuikZNMi4sY5Fkf08j33RO2/jL3znxz0k5jpZSDfdEkp1YU0iq1LqNgAGeOp6KFzT1BWRJDE/w8wukEeKQgl0DUohQeKjTTv+zpgoLkpdYskpDNcEjZPm1saywR7g003Z4FJYCRI0aHuFak3UNbuup5QFAUfKv+2cfeN6uS/zhWtqj5I2W7iGXCbl+kp/vxWBVIdJb7ZP5bJ2kJSeRztljg/OZI7ctZa9W6P47X43TZsOwDybc5DEuXb7aDleg0Piui2aGk1dYb3rsN3xisAekqigjQJOiQ+5JqeRxPRYt5TFHcf6kmFNYmktiSUzmaDU7e+qUc69Tna9Vtm3wPiM/BRJZG7iSf+jwkNTVRXqyqebapS9tDWJYQuMOY2zWWqljAvVnlhFqlDdlLlusohYuikxx2qKQGoREXVw2ek2trFP4s7JWiuQxPW2HbPBTHAvTquR5efQDZcSosmsLxrbF1PTW+5ptkVTjwkPYJCgLywM7nkElPSfYE3gaNqBSqMq++xu2oS63djKxX43NkPrBoa6INEI10j7BnWfREUg61LJdEiinm4q1L4HZ8bZvew2MG598xwkUZ6D64ckDok7JQXURfw1bVJEuIdRA3ZtFQRgmoSf7Itsn0o3ucX2aTVzkvYSwz1Jotuyd+sUv81nd0NwqaOb2vraKwkSB8ppU1f0/W/m2NJaAvL5Lk2YeUbDNilsUsCIu/gqpe7npcYAvk+4I9bXKCJI+pKAn8xkSj7COuUnDUUE9kEi9QDUtZX/N2PK/f0k2Jv0eyMXLZfKqeHVyzPT9fraQjuuOMwTvBmRRLIHYUjlLAmnxJSs2KxRGKRrOfJs3eT0/HNBae0sPhra0GphF0lbpE8EiQON52xAEhnRGsAqqQmSSPVoqv0Fkp3j0hmnoSg9zbZqfErOlsjkh/1F2SClriqvLU5Prgluwkm/bk3pprnnWxwkaaXAKNuJzQ0ShSYpx2TVTV3qNI8kOoigQlr/ZEZNoji39xVBw3nMrZNikbOmtkmB8f64Zi0w3PZVmhpsL5BSBCny/SVpwa6TEnBpUDqZ09ZJ8LJ9El1WCF2TuJQ56tpLiOicRt00RIB1dNN5iP9cu31k1qujZUMrfksgy2oJAGE/a6XgjZOUpPaNBJKo7ZPYUXuiMLB0wd7op7m9eYlEqOsDac7jdbLrtcq+BcY4TmEWQaPKGdYkchRQvyaRC/bgHacHWVtYV56yYK8ILjvnWIACSXS47vJazsJ+YwDLI7dUF82m7ao7suje5Pxr1R07qGhDc/skjpLY225AEskg0RWuoZFEm1nUCAmIkI6I8jxpamCXYYvar0nctV2xdYxlM+hQCldcCuBrEl25bzZoiwkJcOqmln4I6Jxrl5KppZuKswWUnWsXoRjnSAvXWIfzWNUCw3VauWd7bAp+ejVIoqwdjzc79D1XyyV7wLazglvXLSvvthfSiFS47aQ0zInxPG4HBVBy3KQmkbjeouS5Vvap9BK1irVc9qk3T6VuknsGJDGvEdNzy1k6hQIoAK+m+SqQxJefM/18NQHpwaLB2XYGkuhdN+5Y3jhyTZ4w9YhnJ0UbLaqNNtYncY9XVK8f/hwiieXWGXaf0rRpuk62DxKJGzlUUmKdcrduT+4tGklUPmhjbZtTE8e1GwiyMbPqjwQ1m4nSEecRCNAGgkfuK3Sdd446zjpPNzU/XeEaSuzAo5vKsYrDRprKetdi0/a0Q2jppnokcdu6c+Q2DXfcnm4qdFN7T3Z9GYF3kQ3gfHRT5t5y5b5ZhzD2bDMMg1hNIuuAumuAFklcuzWJRbopJnNkHdCXbh6Mv7/jzjE9R0/dlFRFtUiivt/bHJtDd1y6SCLJ7rhqc4ONEclineRWl8gBLNr2aK0Td5Hz/1CJHK8W9ZggYdAXwK+31KmbDvfkKArD1yR2vbLlkpNM0yRyAOCOs35ohWvm2Cu3D72fjB0sazxat+h7PrgMfSC2/jcs1bm8mkS/3EDGlZaEsJWLjCv6oI0fA5jfUayndvu7auqNr5Ptg0QqSDQ/3aJtgAhuqspzEADOka+dwK3tdbU9fuNm4lgTuil3I9e1pVaywZ68Z0RkSQroXCUrz2lV0k/Ca11aI0dnd6L4mh/nCdcogu2ocA29ATc4G5BEttbj0BGu0SKJu1bXt8pFidia3Kfdlo11JNkWANO6aF7IYSpcwzmEWyWyF9u0uZpE8zcRX9q0XFNwsbcPGXlNkHi0bEYkHWCCxAFJdDPy5DP6yu2j8fd33+WDRPecsQ7h4YgkXg3ddBUEABq6o3HkBUm8XgtDtE8ik7hrXMYRX1t4uLB14gCPJI5BugJJBKQmtxtq/rggfdlU2LSGSdKRiWvAouAPznSiMKG6qSpRNcxRw1y5e3y1SOI7h3VBo8p8sKjV4jqun6YJ7he17THNJnhdJB3gWF8LZz0YxxFIYl2bMjDrF3LXPOw6YH4nkMRAuOZJpJteTym/KzRO3dTPIrA1YF42Rql25iKJLELkzZGkTYTCNW3H0lsrzyF055AfV4/1nSxKF+uJw2V/pnRfJuBwqbT0HBNIIt0CQ7mx2QyV05OLdS6WppCdlTEHLJJonOSWypoKbXTXOZRYVQCsrxF5Ws2VCZd7unTtlkH2syVpQ1MkkU1cVF7NEquu7M7R/T33fK8CJFGT8ACAv/o7vgZ/7u//NL78fXfpMUcrQ9vajH0SCzWJQQCsQTvd973zzlHmnWmj6aYTJPGy6aaDUI5CTXUUrmn7sZ7o2gnXBH0Sq4p8bhwnmd3vARvcj70ELxlJFHVfKxzEXDfHSVbQFq1wjV7dVARoAB1zZdf243VjzUUSr4JKePvYHI99tgFzLsdnm0YSfT+NvW4GdDD3R69hrrhJScKfSQvQlOcogm6A9Qtphf0+PB43Tkpn9nTTJ9CY2pmwBQOLnIXBHsA5yXWAQKpUAnt7vFmNsxXHC6mcmp5Eu64fkZG5SGJpXLj5yrxL5lFpycBNnAFL91UG90MWU45fMq9PoiIAAyySqBGuERqboZt2OCQ27VUQ7AG6e0S+2z5ItI2zAVuHV06u+NlWmiXg3P9SS8pcgWXjP2/MhtgEz42ZL+8kbEd0tafvZQB48eYBfvcv/jxVy5PjVYPHQ5IEmNEnsZ8nf36i6KUGAM8Pjit7rMMrrkmcI5wyqtl217cFhotStArUWPbgXqmu6dZ2yvEZk/P/cK2jF4tKJtu6CgjQVQ3ddBmgzQp1UwlIAZKFFSRqVUiiEySyQjLnsVdfvgEA+NaPvp0es1rUlrbLIokBKl5C6MZxtS9cw/pAoUopkPdnQpaMHI9S3HUCWQtwlBFIAJOWGxo9DU25wXWyZx5JZBynOnC2WJqkG+yNAQBJyZzD6wYsrZLpIwj4DbABXd2SRduG10gH1Izhm4u6AihiTE2EK+OsoWT6VFoukI2pm1JtA6J00+IwW5PY6vvvHHhIog5t0DQO9rJoiiDdlbvX1Og8zeYqIIq65rKw4bsZ8r7vdaJUY5BoXqNpQzPqH4EUkliuSRyDREXCY64drRY43bY43UqfRF2QyNTMuPbXf+fX4pNvnqrn+Z/8pi/Dv/NXfhQffOkG9f7RIb+imkQJSt98vKGP597Lkiy5bjWJgNOqRpEQWAYOOU/JNOdNahK1dFONcI28bzMo0gIk48VFVxWiMG4LjEVd0Uq2c9RN/X6+/HkEgDvHPF39IuxDb7uFH/qeb8YLNw7Kbx7sYFGPiKymJhGQ+lotkqhLijV1NQm+5LNStkiwy9jjbQNWTtmXHI7Rh0FpCeCwpTNsK5HrZs98kMg0hV0EAQBLr3SDvVYRAITKUlyQOMzNRRLJTH7YAkONtik2DZdLPo4jz39YpMw0Mg1rQlnH1VJp/Tmkxwzz8oSDiofykETNHEeUbqdXAJXaEo1wTV1XOFo2uDc6dgTVyOmH1isyu97CqqwReVpN6jb63rYAWBbvSX+jd18rjXNb8ADcvezSTWkGhKytanVTSUDYwHm5uNz75GgMbrisfIjkajPJX/D2W/iCt99Sz/MXvPsO/tp3fw39fqltk5rEy0YSRYH19Uc8uuEzUIRuer2QRABeb14eSbQiHJqkmFAOx5pE8nRMkFxFonC968bEK3P+Fw5NuCP3RDkWAJxtu7HUgbG69tVNWX8LGNg8Srqppqb5okwTIALzaxIBvZiPJxZIIscu+giAKk2JIYmsmNLSYfjJs1ouHZOgVKeK6iaA2BKM62bPfJDI3MhhM3fW4QqDPWaMvMeFw2cJ15D85xjdlFnI/cbZuu9mjmMRES1tS35neOQTtVEllZZFEmPnX4MkqmsSFy5Kp8t+HixqnG0NbUhTx3W8avD6oyFIJDKSY91Y2490RQ2VdjPU9uxjxGCzIfvEuQqgmnurquzzonlu3BYY7Lplqfz2NUunzQWJAZKorEmcY+KsyjNQoqraPpV2D7iO6nbLpkJVAQ/WV1OTKPTZN4aEE0U3dRAptkzhrTDpC1jXFT0/+2zrEn4Hi1BwiAumJuqydO1qY+imgr4QSO7CWcvbjqeEu/eg5n4UjQVNnf6ISrU6ui8AfOQVk8T52Dufo8dctR0smtGf0SKJUn/N0k0npVLnUTfN3F9237AbB9O3UI5nWYFcO51UyROPJD65rKhnPkhkgqkYbQjgaoJCARSW/iCgWauA7MM5sgGRc9/zNDG3l6BCFGbhbIjbHZcRjvVJZOi0LiKoQUTc68ZSayb1R4oF0ryf760ITNVNNeU5RrjGBGCaRt03Dhf43MM1AF32f9t24/fkqLRu9vnJXFgv2hZOwG2FI9h7shtZECxLwKW703OsHXVTsh6lDhJwAJwgOP0B4hBvdh3YliDnNeld+NoYJBaEawIGhNYBvSqTHngjQqpYE+aYnLc3FHRTd02QXn1XoSapNUHbDhY1ndwKVaC1CqBvKmtJpU/oa4/MWk4jicsaj9Y7mqIHWLaDiOuwc6yqaqwB1iDbkuBV9UUePl5L9wWMkMyPfe+3juvedTT3eeZFikJRJO5YbqmCKbkpj0n1SaSQxNb1Cctqo+PxQrqpks0mqqjFHutOf9fdE0o3vX6r7BVb2zK0RT8AYAprgTiSSAVuDpLYkXUsoXANn8Wx30vqlrS9beb0JGq7Hpu2RUNkXOeqmy6bCNpJOsnuYuDOO2XT889mtTCOm9NLcCPZTxWSKHRTXR3XneMVPvXmGQAuI+kFsprMriNSoXGanmYb6zudZuJ0n0TPaSofy6WbatrbLJ26ybblRATCWl4AlHqiODtSW1t6/0WYBDevPdygqni6qYskXlfhgsNlY5UkL/k8SpAyshIodVO7lpwNjqumofhV2eHSKOB2Cpr8wkH8NUmxsbZTSSUUiuTP3zNrOat4uWp8uiklEjJ8t0dr/b11+8i0edDUyM7pk+jWt7GKnK4dLhvcVLSkuGpz7wv2mZExUn/NrlsuwMH3yq2jNYl6ddNy6ZKMlXHj3lHquR0cj1dFdZDEa7z+52wfJBJI4qRROllLF2ZV3M/KmUuTpPuNDe/pe9242qs/8j+rNE7ezyKrgEvdNVLmzKYRg/p3BFLa1H5zb5l3yVzOulZcxxccKh7Kp5t2vCNfVRVWA7VJW+t0sKixHqT8dUHiEj8/BIk3Dni66bad195js9u3wBBbOkgiqy4YIhQA3yex781aorlupgbYQRKVSRIx5vtJdvxs21khn0sWMhmDxEdrHC0bur2Nln71VphH77vk4EtouhIkMkiRTQp0OBvUZY+uYZAoSKKGNroc7xNd/ddcwaHjVYPDZY3XH22wbCqckDV/BwMDRSiIJeEswD6Tgkhp0F9p96Clm86pwQasLsDTtt+4tHi6Lc5Y72quG4uAeQAHmShxyxQAuxfkrkOc/skiiTW24t8RrBXAqRsOQYcSAjkyIJ5c4ZpnPkhkgo2wRwodOFSW+6xVAHUzFqxj5x6HDi6rqbgOcx8vPF63BGDlcR6SuOP69MXUTRmJfSP2IYiseY2ici78puAA1xMTCJBcxQblFtuzm9SyqbDddWpK5uHSIIlbZQNyV8ntpZuHxfe7dNOxtk1BpR2dpidwYb1oc88li5y5NYka4SD3GdVk5Je1UY3re6m/KA6ZJOAAUDVn4hCvdy22ZHP785pk4V97uKHENKLqptf0XnYRhstGEleLGqumxj1SAAiw81vvTAse97XrZCOSqAg23GRO13H7KODWJOpowlVV4fkTI35y53hFt244WDTY7Lrx/DNBuiSOHw3iOpqk5O2hUb1mjxIV6DHhrWDltF1Hl/c8Sfa8I67DtzsZ6KYDAszeyyHAwapp+7oYw2dlfMMYu4xV9HdbYIw1iSwrJ+wNXvh+nnLxE5qAeOaDRCbYmNaWmBulKHhTV2PQ1ikCKROkWAroHHVTjQT9RMmQrWV02j3IZ5XMhe03bYeVRv7cocWaBaFMEZj2OyweDsumGtEJlm4XOrua2k4Zpw4SF/UoCKBBKI5XDR6udzSSK3bbCRJfvFlWWIvRTdkEBCD9xp6+TXuOuVLy8hyUHC43uaJBEucq7spGK+1tGLGDkJIJANuuH8RUckHigCxtO6e5+mXTTaWWazPWJ+Zs6VCNAF45+q0wOZ9VdTVN6o8PmrEmjkEuXbXLs63QTa+f+zIiiYqEQCgwpVU31dJNAUs51ahzGrppOyK5zPmX/f7xWleTCNikpOZ7HQx74qhuqkhcS6uga9hZ5Vz2grNX00ji2INTahJJJDHoscucSxdwAGzgpkUS6d68DsNs3DtYEGDiT5aBCjPPAUl8Am+u67fKXqGNwQZJG7IZEvM6E1xa6J13tlZzpOQDdU1WScmjlmnq9mo/Q86PsxviZtdhpUASXWcL4BSptiHdlEJELJK4I53rSf0RmTUaWwAoKTKAka439S86uumdkxXuPd7QSK7Y3RNbd/E84VwsXbqp4ru5weWWvEeednOl5AU50xTbt4oEkNc6QzHOFZjqSAchKkDQdkXqukWWeGT1vCbo4ZunWxwvy5pvrgIxIGv55c3vPCbnc9XUV9IU/GS1GBEpquSgqbGoK6x3tk/ldUYSNQIoYTKHHWeuFfCmUt0UsMGhps+f0E3PFOdf9hdBEjVB4nPH+prEg0WD9bZT+iTOeveEoj05c1tm8EjiECRudUFimJhnk5Jdj0lpVu6Ydt9wg0sSSXTorbxSuB+Ujm1uSj6o06rpSW2BcU23rKuxMdhgM/IjlbBDVXEUxF2QeWDpdlYlcJ66KRP8huM0gezSqT9SIYnO8Vi6Yyh3L8dlsjhzxHWWCxtcskiiRQQxjtOcj51z/tmA72jV4HSrRxLvHq+wbXu89mit2rRdJJFpbrxyrpv2/jfjBG1+ppcpANa52rbdWE/Bqpvuun5E/XX0K904D+1khWskueUiiW054+oK14w1iZd8n7j0OgpJDNYttk7zrTA5n1elGHri1DTzLRjqAUm8/uqmGrl7t+enpnRAVGltTSJ/Pp6/MQ9JdOmmh0TAIUGJticjYIVrNM+1CWRbXS11WJN4TZ/RufbCDXuNRTSqZILuC91UgySOYo0dmVyc+Nfm9dyeE0USyWdHeg4DViSNrUk8r3DNdS03yNn1W2Wv0DTBBgBPNpd1tlxkCeCd5I2jrjlX3VQVXPbWIWQyycthwwDsedHUO23bjhZOcYMGwHLWi6qoTTUuAlokS9Aadpz4w25bEH0ri2HetAT6kLUmlVTFxDHYtr1Kle3lW+U6RNfGLNqus+09VIhUN6DNz/QyBcA6Vxp1QRfZ06qbAj4CqWpvM4zT1iiL7bryuuDTTQWRutwN2HWwmJpEV4EY4NvivBUmiNJVoXOumAb7fJta6hbrbYuDxdUgnlqTNVnaYDDmOqDahN/hshn3YU0y7cNvN/39Hg8IH2NTJLF8vCMHfdfOUe5J2YupOTpBOqCj14/1/dfwvjqPuUgie/4ndFMFKu6pOVNskiAAI0qz4vvGjJrEkW5K1iRO5sghibvOJE73QeITZqxKoM30KSmgDvf5PEGKSgDFgewZfralqTo8a+I+XjbzUFJZpDYtL5ziNht2fzJ00zDzQ82xqb3gsq7KgfNcuq8bJGqEgwCzSVu6KTcG8LPHNw/5Vqlf//kv4ju+9J34nd/0KvV+27ahp7KDYhaRGijJ1xAxuGo78OiVXA2elXbXOU2eJP+4bnGUQMBkZ2m6e5BFBjCgkKXNt0ZTV77a4iUnE547Wo7fiRHtqKrKiEs5SOJ1dRLe/+INAMC77x5fyfE8JFHhuEpNIoPkvhXmzpENuF1RKi2SdbzUn0cA+IYPvQQAIwrPmDRll8CS+X4nQzLgzaEnpibh9+Xvu4uPves2/hcff49qjqYm1Pyfed5kbd0MiVrNXvokmOgHfOxdt+kxc1tgNIHPq2VTyTjzevpCuHsUYPytvueBCtlDx4SrouewP8dC7OAATNdZ3TpnvIf4FJptpJlfFdzABuB69AFSE2flgAHOSV4t/CbwWrEJgFNtNeMwjtOKVIxzVIwT5+psY7KtjGMn12ejRPcWdT0uWOKDMmudofva4FLT780KB5H1pwuLNlhxI5JuOmStN60ObbvjBYk8krhsanzfd3yMfr/XpmNEEonjOLVcrLjR024r5xmwNXjcxqatCbWbthXJoQSfHARy1/U41tBNnYzwtu2pdcE45FfXJ7GuK9w5XuJzDznhGpnTru1UPWjfCnv/CycAgBOSjnZeE+r6SoEIiipzXXFUx7fCDoY5apBEj96tRLJuHZm2RE1dUSUAYu9/4QR/7Fd+FL/o1RfpMeIHvalQUxXE/Y3HeiTxY++6jb/yb341/X7AtneyGgTlMYeOKNLTWJN4uGzwn3/XV+JDb79Jj5HAWfpb0kiiq+jfc+qmY6LQ8bmA/J6zCIM2kv4JmDVZgl+2dGPh7KXmuFzS1WNFtR1uKJLy18WevBlfoNHZgCBI4QOwCqdbvxiXUdtyaxJZHnMUyVK1zuhVlEAJpNxeaswDOgaJQxNsHZLYez/LQaLbgkSH5Ar15zzCQWxAChiqi6aOApAG2Fust51OtMCpLbx1yYvWYmjTMbZgUDQ33rV7uqmYOGTrXUvLdrt1jHNqdLT9FcfsbqsXrgnppowKnFDLNjsOWb0Iu3uywufIFhiAXSc15/GtsBdvGbThfUOweNn2toG6fqgIGlZDUqDC9VQ2Bcy81tsWZ9vWo9TmbOEwJ7RtUm6P4i6681FVFX7DV/AIHWD37tcfmYCPQRLlObk3g246x4QS2/U9KoIBBFhRJGHlXFe0/zz25e+7q3q/3E8P1zrBoUVTYb2zgVRJNRTwk5IAV5oV60EL8PodgiDypRtxSmxRPM6pNzZ+2vVct3L2TAeJbE2iXFgXyWKldsMehBTdzkWyyMxWTKKXnSMwqGuqKJn2IdU8oLKxnG5MAMBspG4gJXN1556yWAsMKgB2kCyWRz63J1qsJpF1JA2S2GG9a1Wb790b8+imc0wSHhon2RVyMEji07dpa81HEnXJrW1rg3TOabLPtk7MSujFfAuAaJBI0E0BoZZZJPEq7hOharMBgKkv71S1nW+Ffd2rL+KP/cqP4lf+gndcyfFeHoLSW0c8k0GQxArXU9kUsHTHs22Huye8Yw0Ikqhr+XP7SN8mYq7dOjL3/GfunwHgKNfHId30soPEkW6qr+08G9rpMMyhp90OAtSYfd7cFhi7tqfQ7Zjv5L4esxFJVAoMyntG4ZqWDPaCoJRVvV849ZabVpfMvy72bAeJM5wtQGpLOCpVWLfHBg4bh6aqlZ8HzMOjFa7RBLIuaqAZJxvL6bY1ffqITcOtbQMcmjCFJArdlJ/jygvclP0OB193lnCNsibxYFnjdKMTSQB8AQ4N3XSOLZt6qEnUCNdIvcEeSRSzap7duG6Vnp0RSdzpakJdJFe1JoT1F8r1R2zbcjR0QQ2uim4KWCGHD7zIIW7LAUkXsa3rqpxY13pk6TwmIlgsIgvYGmyA6634Vtjh0uzdp9uWdgjt/tZh13WqPn23Z7SJmGvPDQH9Zx6s0dQV9bwdLk2bjhFJvORn1LALeJZSOG6za59ItOeiTe6n+8oenH4AxrXYmqqbln3lEElkgzbABw8EKNL0HAYsM5AVj9u23Si49aTZkzfjCzQLGZM1iYIkkpnuxhFO0QhHTPokEpuGDWxsUKqhm3Zdr3JkRgquixIxSOLKFkSzffpEAGLXhtTR0oNdO0XU5jVtC4Zd15ECHOanVrhmRIiUdWOACbjXuyFInOk0XT6SaJxkTabPQxL3wjUA7Kbt1iSyglvuM0qplDobsC64txuilqYdqtQxdNPDoSfaVQaJP/6ZhwCAj7//eer9gqR3iiTVs2CiuHhEIrKA9MBrcbZpVTTVqzTXuWZbeyydhCvbNkDMre28bJMg8dP3z+jzX1UVjpcN3nhkkMTLfkYPFg22bY/HG51DLkjivuWSsWVToa70SOJq4feY1ug57CY1iennoKqqqH/NIYnOHEmgaIIkttx+6iZ3jZ/25N1bT96ML9BYRGrap4/Pko83sVY4xaG2aoI2G1yaFhDMHIEBSVRQosY6QccBYh7QsQn2VrJ9bLZ12uC+NE+jwOoHlgyTZI6zOxWuIemmDrVVQ/cFzLk83bTnylBdCZLYdiqZdlEEW+/2m7bYytlsxiCxlNwKEHFgXm0hwNLkneCSZVsI3T1AEhnnQnqiSYuJqwgS/w+/9hfga199AR986Qb1/mVTGSRdWW/8tNsrt48AAN/ykZfpMYfSgmHHK4detUmt5JunW5VjDZgEEFvKIiZIoptkuSy7dWiRRM35Pz5Y4P7QJ/GykRRxwu+f7VTo6sGyxtmufWLrxi7aTA/OZrxubA2w3xqNS7C7dGv3Z2nPcfuQjz4hJYRo/XI2wTgJZEmgYtXUqCs4bXGu57qVs2eabtqSNYmugwbwYjJNXakgdLGFU5PIqp01tcn82CCx48Y5mXyNI+mjbfx3G+mmA02SpZ8YKXk5l3Ldyg+2VTfV0X0B3aYdIiJsLalbb9krg8SjZYOzoQXA/CDxCpDEgY9fVVwioa4r3Dxc4N7jDdqux6p58hbWizZbF92Oz1sJhY+1V9Gqm4qxTYoBS1OlhGvG58a+tmt7imEg7QYkoXYVtORf/OGX8Ys/zAc2kvDTMEmeBXvfCyf4b3//N+Cdd47oMQeLZhQXua7CNeIE7rpe1doDwNgEXiVcM6B7QsO9TBMk8c3TLd5xm79uLqX48msShyBRgeQClpWwT0paO1jWVsmWDG4MkmgDN2YdFz9ubGdB6ke4/Q41ZRGx4LJck+jPkRVrrKoKR5LMV2pHXBd78mZ8gWb7jRWCxIDKuVMI17TOjc+qba2aCptBbEKjdubWMmp6OQKmT6Kql5rUUbQ6B2g5KImdjkgi/90kABY1w1Lz7EVTY9f5Cqxsn0RgEK5RCge5fSo1Drlx5P3PKtnh0qiwPlzrsqYA8Od/61fgV3zsFdy8ZMl7cZKltpCVu3/uaInPPlgDuBoq1XU3D0nccYpsbiJHI9w0V7jGVXIzgk/l6xbStM1xSSQxEK5ZXkOBI6Ffaankz4K96+4xvR4AFkm8f7obUa3rZkcre9+yaJtLJe/I/Ubs7UOw9tpA57xMc0WGNAGYK/J0FcI1AHD/bKtKnI6shH0N/GgHi3qsSdQgieudpXIywjVuCxgZ576eMjfY0yjsLxzwgFc39WsS5Seznx6tGjza7LBt+cTRdbJnHEkkIeOJummnkNp11C7JxX+sURjUztiNdNXU2DrywxzaaX76dFMikHLl9dXBjcP/JxfkReM82B35YI9UNr6vDRCcf7I+ygrX6K639BLctDq6L2CdkDeVWVMA+KoPvoCv+uALqjFzTIL7tbK28PaxDRKZbOTTbu4aJKhsGUmsxjGdItPqCtDII61B4HedUdxl7skwQwuYIPNwyVDXa7z+qBudkuvo3JleubogfW9xEyTxbNuNqNZ1s+dPDsbf2V6Oq7BuSZHw+9oPvoB/9UvfiVeeO9RNdIYdLhusFoZOqOlT6SGJVyBcAxgkkVUgBsy1Oht0EvZJSWMmCbcef+fG2GT+tuuoFhhWhMYXheGQRCvUyIwBLHgA8EDRtOWGnUPJjlYN7j3WIbLXyZ7pIJGtSZxSOTkkcVFX4w3f9TzVaOkEYAaRooZh6TygLG3FpUmqeqK5vZ0UjWuBoZZu22K741QMAR9JZGWLbTPxDlLypJHy3+w6uv7UIrJSSM3VP8rx3DYFmppEAGp106s0Uxcq8s/8HJ87WuJnXz8FcDXy7tfdFsMaZOT1Wxwtm2LyyCYgbHsVDSLoijZp2AW7tsfZtqMk8msnSSW267h14Xi1wKPNDo82pm7mqhrBa0zYHcLc3QvXzLfjVYN7p1v0Pa5tkPg2J1hjE3cu3ZRNrojVdYU/+R0f003yHCYMD835lyCxqi4fSXdrEu84/YBLdris8ZkHW+w6TnH9WTB3PeWRxGos0+n7MgADTJFEvibRaRWnRBIFCWR7DoctN2Qcsy8eLd0g8cm7t568GV+gsTWJgMn2aamcLhze9b0iaHACMBUCaVVRu05Hrdx18wIpgyQaZ5JFPI9WRspcw/+XVgpyTHfupTn6ATBxLA8l5c9/XVmBIk1tyXKh7yUI+H2qrmuGajEUsmtpPLePVnu6qWNVVY1rkEa4I1SXZW4tV8mtU7AE3BrIs21LORbybHl0U1I9+sbhAo/WOzxa79DU1bXcgFeL2tRoXvM+iU+CvXDjYNyjRLDlupm09gBAK4DKfft4Y9pCaVC6q7a3Dd/vfWQLGMAq2WrKDebaHHVZGfdgFNe5vuf/Ks3VK9DUJG7azgm+NEgir24KhDWJvC/vMvzYnsMj4OCAAAD3/Y6WzdgCZq9u+oQZi0gBgWqTIkjsnOwIG2ysnACsI9VNAVEAtZkOrt2ACKcoAylPFEOXIT9aNng8cLR5JNG2wBg560VFKkubm1eTqKsJDYWK2GBvNaCkVlaZr9sTu44OMjCIi0iQqEESj5c4HcQY9kGiMWkBcLrhUDrAJiA0KqWLyHNDtc4Y1q2zAYFnnN2wkTIwqJsSa/KNgwUenO3waN3iZFVGVt8KWw4iZHvhmvPbCzctMnTrmiKJtw5d9IVU7h4UEO+f6pQk3woTwZr3v8AHiSJOdKToiTnX3JYDmmDvcFnj/tnQy3G/3wDw72XWv1g2RidBfGWuT6L57JA6WvKDouqmpM8btrIo+aG25YaPQDLr+eGywZuPTc3wk5iAeKafBtu7jRFJmIEkVk5hrSLYcwMwViQHsCIJfW9qGanWGVLr5LZgUNUf9SqUFDAPjWyIbGbFbYGxJbNUI9rZdbPUTQXdYxxW+WxXqIimFzc1Nrse650Jiljn4s6JdZqua4bqZLXA6WanDxIdJ3CvbmrMRxL5TVvbg9Mt0tf1d7X1QAB3H480bY9uyvXXunGwwHrX4c3TLW5cQ6opYNkde+Ga89uLNyxKd13ppm6iQotkvalsXP5WmNBpNedfAsvLVtIG/DVH2ydR1q19kGhM2mOtmpr2XeXcnW6ML3OuPomFPWfptLLQrK8muLTBHkuDXgTMQHmtZMerBm88fnLvreu5s16RabMPbu9CTt20Hp2sXhk0AAbd01EyqwE1MP/XNS63yCOFNsi4sU2EbkH+zIMzAKDVNZeutHIr6qYFwSGvlYV5jROuGWoShyBdIzgkGTRW3RSwwb0IcLDOxV0nSLyOoh2AqWt4tNZRiwEr7Q48mQvrZdjBYugTt+HppoJSq9RNx1reHota0d5mZYWUAA4RCetRAFHFKx9PamY+ff8Mx9c0SFwMNYn7PonntxdvWlGY6xokAqa9x09+7pEKNV4tLJJ1XXtAAsDv+uZXUVXAL/+iV+gx0hPz5sHlX7NbR3r0CzDnXJagg2u6l161SVCvSXaIH/JIgkRNr+6RysntVZ66qUKYbTmIifV9b9hspO+6qCtbk6hgfR2tmpEVdZ0TQCl78mZ8gSbQMQOJuzWJfFsEn2etqVEDgNNti7braYhaxF12mlpLr+G2zFuBtg31fhrf59bhEp+4Z0RJbpDZRfNgi3ANiyQ6iODoJBPHcnoXaoI9V9mrJWtCzfEqP0gkF5K7xy6SeD0di5MDI/+srkk83geJoa2GIPF0EK5hbEwcadRNG0v/0dC0ZU6vD3L8zD0pn+urm3bUxn3TCRKvo2gNYIP0Pd30/PbCDbve3VaIkly1/Y5v+CAAqNp0+O0GrudaDpjz/kd+xUdU1NF33T0GAHzLR952WdMazT3nGmqfu+deV1bOVdsYJCrOo+zVjwcxMRWSKPWFdPuwegzaxiCR6a87PF+mVRNX2iDzDJFEZp5z0e3rYtdzZ70i2yqyAa66Ztf11ELijtEEDVKT+HBtHjSNuMumtWITqmbure1Nxkxz5QRSmro9AHj+ZIWzrZkkm110W2CMQaKidYnGSXaFg0y/Nx5JdO8RWpVW2kRsW1QVjwrenFEzcNV2vFrg8VovLe4iBfsWGMZWA1J9tm3poEjuLRXd1FEFPuhqepxshm8M9ReMsxv2FwVAU7zlHHzm/tpTlbxOZoSDdO2F9hY3V63ybbeu5/UGgG//0nfii999W1W35zcuv55r+Vx73wsn+Nu/9+vw3uf58zHXLqSX4x5JBGDppr1TClAy8Z1OFUjipE8iyd5yaaMaJFGer7NdqyrnWgz1ljJHmUPJ3BYwT2JN4jMdJGpqEleNL1xzzIxZmALZdui3pwkaAOCRBInkwNVAidXIAcuxNrseBwsN2mCzPxqUFPBr6WgksanxYGvOhy02zh/T7T/VKRARX7lVFySOvTQ1yPEQ3EsrC1aAw6VjXFfH4mTVYNN2eLTZ4fkbB+UBgz135KCk1/S7XbUdLE0vr9Nth7snCrW5Xa+6/21NYk+3CQLsdRK5b0bdMewvCgxIIrHmydrxYL3DiaIn2lWaEUnQKxfvbWp1XeFv/p6vw92T1ZWIoJzHPvDiDdX7V009qmteZyRxrr1feT7m2smqGbUBNPvGnZM9cyU0SUKLT8OY+KqPhyCRSfCGdNOWLDdYNJUj1Kjfp9bbjt5rZJ6ToJShm7pI4hOIUj95M75AU9UkLowjD4hSafnzJWuwGYIUbU2iIInsjbVcDCIJisaiSzfYU9ZoAhiQS12QeNdZkNlidnG2AIsklh7uEUl020uovpsJgNl6y5VTN9lp1U1nNFJ27bpmqKRW7N7j7Wy66XWuP7pKu3W4wMP1zvRJJJ1kQRIFqGNuZVfum21sDBjRjqNlo0IS66H/oyR+ANDZ3RsH9vOvK91UEkeaViJ7S9sHX7rh1WI/LXawsMIpT6IjeV2sqqrRp9AE2y5KvQ8SjQmSKGVWjC0DuinVJ7Hxg0R2/V+4QoEK31V8pfWupevfAVPyJPuUBM6MT3P0hNNNn7wZX6BpahIPmhqbQX3StMDgFFGBQTjlHEEi61xLL0GrDsUfy5XJVwWXSnEXwF+QWbrp0qWbStaohCQGtYUAuYgsLQK5U6rSjgq4qhpUqUls1YvIb/6q9wKwMuPXzcSRf+PxRvXd3MDwbc9dz+921XbrcIk3T7cmSCQdSWFAsBRtAGM9YOvSVOkeqA3efKyrrVo09ahYDIhwDaNuau+Rk4PrmSRZDtnufZ/EveXsYFnjwXrfp+8iTFgFmv3mSRCBu2p730AP/g1f8R56zARJVJQ32HYWHbX+L5zyHg3g4/p3266jQYDGUVMVMIBJKNx06mQ1dcrXxa5n+vWKTFOTuFrUo0JRR2Y6LN2xVaFtchNrJZlFgdUW8RIOoTSOV1LSvOBSEUgBwPOOAAGLJC6cAEz6JZbELVwkcRTlUQhwnG1a+loDppZ04yjgalRRH57tsN526izyH/22j+D3fcvnX9sWAFLr8XjT6tRNHSTxun63q7ZbR0vcP91h13V0ALZcVFhvO6yHGmCqwX1jN21t6wYfSSTXLSdDC5iWNUziznXsrjOSaHqg8kH63p49cwOT69wn8UkwCQ41wba731xXEbirti9853P4x3/0X/KCnJIdLPwgkQn2mqBP4q7lfK5lU43aFpqab7kvzrYGSWQ1Dxa17a/IstkA4O23bf30y9e4ljplz/RqpKlJXDoBwLbrOBUlpyau7XlHSzJhb4wNONkgMejJpWz3IKwCVQuMIUuuqkk81jt3riM5PqCF8+K3wDBjmbhNHPCzbTugxmSQuPCFa3QIZD+bbnqdgygX4dFkaFn1zmfJnjta4v7pFqcbjbppPaLUAIfuSfJlp6SbAibB9cYMJFGCqLbr0ffcmuy2RPjgFdU8aU3q0sVpehLpRnu7fHMDk6exJvEqTRx5TcJ1jyTGTRMgAucTrtk5KB0TfC1qZ99QAD4ukni25dtJuX2wbZBYPp60gAGeTCrzkzfjCzQNRO0GAJtdR/XSCYVTWEamqCGJs6VtgaGhNrktMGzdnn6chm76Pkf1TYWSji0wuCLlqLopWZPY1BXOdi3arpvVJ7Ht+XOyGqjMZ1s93fS6m6cap/hurHjPs2S3jhbYDK1SaCRxSEBIxpW5v2xzY13iCPCD+0N63apGCjnb3ia0j7//edX7r8rsWs63Bdnbs2fuc7kPEs9nv+jzXgAAfPn77tJj9jWJF2Ny7h6NLTA0wjW2wT2z/i8jwjUckmiFa0QskLGF04Zto0AS33H7yS6Xub4QxBVYq8gGuAEAK+fvFsh2ikDqZBT7MI6FLpDqnYCIQUhtsNcrIPtFGCQqkMTbx6ux4TBri8aKwlh10/z3cwVoNHRTwCgznm6GRYSlzTX1qEjbdjz6crxq8HjTqpz/J8VOZgaJAPBrf+G78OrLNy96Sk+suXWa7H2yCpBEJuHkZnY1/UWBIEhUPDfbnV9bwlKA/qNf/wvwN37kU2MvtutmRysr3ATskcS9xc1dG/f3yPnsD//yD+N7ftmHVXup+16XobA3ncm6PdJNGeGasCaRpJsa+ufA3Op5VqBc6/WuNToQc5DEHeeDAsALClX362jPdJCoRRI3ThaBChKXFsnS0BaFoidNqXV9Ejvne3FjAHjiCkxNoifKowwSAeCv/86vHSW/GTtYuMJBHaqqfN1C4SCAo5sCRoDjbED3WERk5Sjgdj3f8uTm4RIPznazhGuuu7m1Htog8Y9/+xdd9HSeaHOL3tnWMcKAWO861BUXfLmKo5r+ogA81VV28100leMg6Gr3fvkXvYJf/kWvUO99K+w46B35tD3fe7sYc/eYpy1ReNU2V/jnr/ybX407x6u9mvY5TPZ4UTed0wJj13FtKdze2Rqf1y0DO9t2Kl0Ml/HS1BXl9zZ1ha943118w4deoo5z3WwfJELfJ3Gz6yjeulBS17vOUFRJB2HV1FjUlTr7vGqqgSKm7wno1u2xwjWLusLptlW19xA7XDaqzfBgUWO9s0E6s4h4wjVdj7riaYwHC9OT7mzb0YiI0EYBnXDNzaG1weNNi5duPl2P5NueO0RVAX2/r/U4r7nOy8tktvtgUeN0I1Tmhr7/F42ppdOskYDv4LK1sst6SiVnkcTrbpLwG9fyfQCwt4i9/TkraMH0F93bxdvH3nX7rZ7CE2+huinFSpMaeIcpxpYFiSq2hj3nCtesdx1eZEs36mpMYpr+ivwe9QPf9ZX0e6+bPdOr0ShcQ1xsD0lk6aZLP0hkkZSqqnC8amYhidu2V0HvVVWNgjeaNhGAoZadbuYhiVo7WDZY7wwldtf2lLSyK1zTKcV1Dpc11ltdYbPLkdcI10gm6/VHm6dO/nzZ1JA+6S/cePr6m12luXUzrErajQOTgNDQpgFDAdq1tpaXpZvKsyJNraljeRlhqUl8Oramo5kiZHt7tkxaGDV19dTc+3t79mxEEtdDCwxG3TTok7jtuBZIizqCJCpYcOtdh7VCB2I1A6h4GuzZ+JYJkxuMUwE1dTPdkF3X1CRudh1NURU7OViMjgXdJ3EIZMfvRR5uOaAGnVKk4nDV4FSpADrXDt3ehS3XR2ds7zGI+WjEUA6XDR5vdqo6QVfcSCNcIzTCzz1cP9WNlL/kPXfe6ik80fbeF2zdHRsk3jxc4vGmxaM1T5sGhg3Y7blKJ47M/cvSYQFflGpHilI9KTYVIXt6n++9zbd33jHP9v7+2NuTbFJucP/MrHdz1E13bcf1V3R0KkT0huo64PiSGv/OlDxZJPFZYUY9G98yYbvO1OkwiI8giYImMgGf2yeRpaiKHa+a8QFgKUoirqOhjXrjlHV7Bm1r1SjdHHMpAhtSItlDEpUKrEfLBm+e6qT8PXVTReAsSOK27Z9KJ+HzXjbtCT70tltv8UyebHPlyFlUVu6t1x7pEhCGbqpfS6TBvaYtS1jrAXAZ6CfBRMjn3ogkPl1Mgb1djL0y9FLbK2vu7Um2m8P6L/R6hs0me8uobtr2tLqpME82ijKFUbhmq1OUX7lB4o7zQZ8Ge7oKoJS263q61kaonNKUmqpJdKR2NXRTwHey2OBS0DYpGmZl5CWTr2kTAQx0022rboExx0IkkVOktfWWnaJPpTleg5+/d+odu3w8S0nueg3d1Gnk+xQ6kX/ht30cn3u4ufREwrNkLCXt1lDH+NkHa1UCYjEouWnXhOeH4FWzgbq1HjtFCcCTYG4LjIoUDtrbs2fvunuMX/jeO/i3vunVt3oqe9vbbDtcmvZhkmDnVEqDPoldhxvLcmhi+iT6gmcqv3zXqXpTrxbN6N9t2w7LxbOxlj/TQWLbcRkLwN5Y0v9FgyQKArlSBABz+suJkp6ohjJFvIARvPH7K+qCxB2J7J3HDh0kcUdet6qqDI+8NYGltibxnhJJPHDppkrhGrETBQLzpNjzNw7w/BMuA31d7C/9G181Ji8Yk3vrcw/XNEUVMEHe2mEXsPfy80NTasm4MubWJI59EtkiyGtuso7fe7TFwaLe9//cW9SWTY2/+K9/1Vs9jb3t7VxWVRVOVs1YKsX4aXVdoaqs+AzLwhItDcDtr8szzNZb0wJDJ0y4r0l8pmzbahqlm/c9HPrgcRkLC2tr6aaiimc+hxsnfPAxuGEFbxZ+f0WWWnawbIxy4q4dM+aXZUKVO9t2JotDB8DmwTbcc/78HyybkSKmQhIHcZ2u5/skukHiy7f2wdTe0vYl776javkg95YWSRThJitcw93Ld4cgca0IEl2Vut1Tpm4qa/KD9e6pZAnsbW9725trUgcP8IySRV05JQccw89tnbRV1LJXVYWDRY3Hm3Yo8eE1J9b7msTLsaqqDqqq+jNVVf10VVUPqqr6R1VV/ZLhb++tqqqvquqh8+8PB2P/bFVV96uq+lRVVb8n+Oxvqqrqx6qqelxV1Q9WVfWe0nz+ySfv4/7Z1rSlUGQRACdIpIRrfFhbQzd9/sQGC+zNaBs3D/Uvmlo6p+E8C7gdLU2biNNNi8NLDhIFSVzv2kF+mOeRS584zfk/Wjbj+ThSnMeutwsWm4C47ahWvk2B9uxtbyUTUaSu11GZDxYN1rvWCDApEHihm6qDxJFu+nSpm7rJs6ex3nhve9vb3lxzS6XYNU+EIQHQ5USLukbb9ej7Xl3LfrRqRjExFgQwbdhM8Lu9AvbcdbGr4rYtAPwsgK8D8DMAfimA/7yqqi903nO77/tYd/U/CuBVAO8B8DYAP1hV1f/c9/3fqKrqBQB/CcBvBfDXAHwvgB8A8PHcZHZdj7NNq+Iji1LmI0WQONJNdx02uxYrRXb81UHsA+Cz+EczGzcv6gpbR/BGQzf91LbD6aalA6m5JpTPs21HFzYDFkncKK61OZ49d2ywLdf7bCc9grhj3XEazr/83D5I3NvFmYtSa5HEs22nVi6+OyS3pF8oY66U+dgn8SmpX1029dga52lWLt7b3va2N8BXtqZ75XqJQq4FhgSS29a0Rasr3nd97miJzzw4A8Dvi6G66dPCdinZlexafd8/6vv+j/Z9/1N933d93/+XAH4SwJcSw38TgO/t+/6Nvu//CYDvB/Cbh7/9KgA/2vf9X+z7/gwmoPxYVVUfKn3o4zFI1CGJjxR000Vdoa6GPonKFhif9/JNAMAthZS8DRJ1tXSCtkmfRDYoPVzWON22ON1efpBo6aYtNmQLDMAqUq13vIoV4KOHbOsAWTTOtsZBZs+jW6ekqRvb295K5ooiseuBvPds26pVgYVuyt77QKIFxlOUpRVHaU833dve9va0m6x3R8tG56e5ojBkCwzAsE+2na5G8LmjJT5zfw1A5ydvWlNOtNntaxIv1aqqehnA5wH4Uefln66q6ueqqvpPB4QQVVXdAfB2AD/svO+HAXxk+P0j7t/6vn8E4Medv7vH/M6qqn6oqqofAoDTbYv1tqUDN3mfiMIw46qqwtGyweNNq1Y3/fy3mSDxO77sXfSYsSZRiSSuBrrpiCSSTuHR0CfxdNuOx74ss3TTDuttN/ZjK44bEBEt3fS5I9e51t0jZ5uhZ4/Cuf7AiycAgJdu7msS93Zx9tzRcsyuapIkB4saZ7sWbadTBb51uMB3fd378ed+y1fQY7zakpFu+vRkafc98Pa2t709KyZB4k0FwGEYX6JUyjHFpP5w2/bqlhQekqgoOet7g3RulaDPk2xXLqVYVdUSwP8dwP+17/sfq6rqBoBfCOAfAXgewH88/P1bAAjn8k3nI94EcHP4/QaAzwaHcP8+Wt/3fxrAnwaAg7e/2p9uW12j9BBJJG+Qm4dL3DvdoOuBVcMHUi/fOsQP/r6vx7vvHpffPNiIJD7SNW4+EJGKsSaRRRIbPF7vcLblz+NcO3SQxMfbHV66ySFuJwcLPNrsVKgx4AeJbAAs98jpVuimvKP7A9/1lfhnn3rwzGSn9nY11tQVXr55gJ9/80xVN3y4bIY1oadrlAGTGPuDv+QLVHP061GEbvr0PAfvfeEE//gTb+6DxL3tbW9Pvc0KEh0k0ZQ4MHTTAUlsO+w6Hf3zuaOlZdwphGsAUz62r0m8JKuqqgbwfwOwAfA7AKDv+4cAfmh4y6erqvodAD5ZVdVNAA+H128BOHN+fzD8/nD4v2vu35N2utE10pQbQoRr2HG3jhb43EOD7GkzD+974UT1frcnF8DX0h0uTON4Szfljne0bPBoULG6dHVTpwXGY0UN5MlqgUfrHdoeuO0EfiW75SKJ5CIigbK0SWGDbQB44cYBXvjgHkXc28WbJDneo0g4HS6bAUnU1STOsWVjle127dOHJL73eXPe931C97a3vT3tdutIgkTe31q5iUIy4JM9QpA9TYmCCwLQSKIXJO5rEi/cKlN49WcAvAzg2/u+3ybeOuBZqPu+fwPAJwF8zPn7x2Bpqj/q/q2qqhMAH4BPY43aqdQkKkVJHq5NUMSigjcPl3jt4dr7jMsycQbfVLbAOBgomVq6qYseXr5wjVWKPdvw9NbjlaH7aqjFQEg31QWJj9d6JHFve7ssEznyD750o/BOaweLYU1QqpvOMdMUeahH6Z6uFhgA8OpQX86KOOxtb3vb25Nqb3/uCIBVqmZsuagskki2wBC2ybYdkD3FPuX6d666fM7EfxSNkT2SePH2fwLwBQC+ue/7sRt0VVVfAeAegH8O4A6A/xDA3+n7Xiim/xmA7xlqCV8G8NsA/K+Gv/1lAN9XVdW3A/ivAPw7AP6nvu9/rDQZoZvqkUQTgLEBx63DBT7xxqlqzFw7cpDEpq7ozMrhIHe/2XWqcR4l89KFaxwkccv3ZRS66bKpVXQvd+F44Qa3iMj5F7RZI96xt71dlsn9qAkSDd20RdteQZDYWHXTEUl8iuimv/Sjb8NL3/nxUYxsb3vb296eVnvnHRMk3nucwoGm5jaqZ1G6EUlsDZK4nAkCvHiDY3BJOZEgifs+iRdoQ+/C7wLwxQA+5fRD/A0A3g/gb8BQRH8EwBrAr3OG/xEYMZqfBvB3AXxf3/d/A///9u48SLKrOtD4d2rprVq9S4LWOpKQQGhAAiSBxmYZCTBbMCAQCCFAWGaRwQ4CDAQDAsxiBk/gGcIsBssaEGI1iw3YCkMYEZ4AwshmMfLIgEBiES20dXepu7q7ljN/vKVSRS+Z1ZX5KjO/X0RFV2W+l3kqO+vdPO+cdy+QmXcAFwLvAO4BzgWe205MRSWx/XbTKsHbVVUSO7gm8a5dRSVxZZffVKtblonoaJKK8dFycpfZjt74W1r+uLq9TmLrmpOdLLmxZsUou/fOsne6syUwWg8i7Sfb921JbmdhV6nb/uL5D+f8Bx5VT6DSjpXjI+yZmWPPzGzXrzceHx2pJ6yZn910cP52xkZHeORJm+uZXyVpUFXjzM6p9pPEaq1uqJbA6Gx206L62P6YsaFl2bEj25wssCpU7Jud7XiinH7Wk0piZt4KHOx/8BMH2Xcv8OLya3/3fxU45JIXCxWzm7afOFTJUzW7abvtUEesGqvX/up2JXF8dKRYc2wuO5/JsKqsdrCWV2uFreuVxLHid9u5Z5q9M3Ntt5tWlcSIWHS7absWtvs6UYWWg/NO2cJ5p2zpaJ9VY6PsK0/ItHtN7mJV6wjC/OymwzIAS9IgOaasJE7u3d+y5/u3YmyEyT0zZCazc+22m87Pbtpp++fxm+bn++h08sq63XRscE5kHszQXiRRtJvOdry8weSeztYgbJ0ApRdT5q5ZMcrOPTMdr4m2d7pacL6DJLHlDEy3J66JCNa1rG3TdrvpijH2TM8xGjMd/W6drE9ZqRLlHeXEQd2uwEjdUp0s2jE13fYxcrHGRkaYnUsyc76SaBVekvrO+tXjXHzOcTztIVvb3mfl2Ah3z87VSyG1c/yvK4mzyUyHSeLpWxfOd9lejFC0m+6Z7v7J0+ViaJPEYjKT9iuJVeXwznISmnVtztzUOg1wL3qYN02sYOeezhKiVeNFqX/3vtmOWjLv027ag4Ro3aoxbt9ZTHLb9uymK6sZR2c7qpKOjY7wR088jd/qoAJTvQbbrSSqz1UD4I6p6fuc6OqG6tg6XV5bAu23eEuSlpc/eeZDOtp+vLwmcf5yg0Mf/6uW1Om5IrnsdAmMTrVOXNOLtcGXi6FMEkciOm6vrBKAbTv2sGbFaAcT1/S2krhl7UpuuWt3R8lete3knumOYmyttvVi5r51q8fZViWJK9p7vjUt23V6TejvP+6Ujrav3iPV+jud/B9Iy0n1Xt4xNd32NRuLdZ9rSwZwdlNJ0oFV6yTOX25w6ON/NbvpzGyyb6azJTAArr7sbNZ0UNyoVzjYM0Pm8HSKDWWSGFFMLrJvtv32ymrSgV37Zrn/+vYWcgfYumF+204WF12sqrrXSdWsaifrtAIZETzqpM2sWz3GqUe3P3PiYq1bNc5P7tgFdNBuunJ+u3aXO1ms6szS9nqdSqsh6k/VcWD77umeTFwDMD2TAzm7qSTpwMbLdRI7udxgfnbT4uRip5dFPO60ozravh4Tpzq75KzfDWWSOBLBjg6rPavGR1m7cox79850VKo+vmUB65O2dD+R2nJEkcx20i/dWjXo9Fq8T7zkkR1tfzjWrR6rZw5tf3bTlkpilyu51eymO+t1KofjIKLBUx0Tpqa7P7vp/MzFs/UENl6TKEnDoaokznRwuUHrjPfTs3NdL8JMlN1yd5erFXT7Wv3lYjh+ywVGI7ijvLawk8RhczmbZyfX6LROO79+TXev7YH5SmInJ+Kr12DHVGftpr3W2rrbbj/45pYZWLudJI6NjrBidGT+msQhOYho8LRW4Fd1+e+m6grYvW+Wmbk5RsI1RiVpWFTrJE53cLlB9Rlwaro4udjt7pPqkqq77i06xbo9o/9yMZSfYkdHop4ApZMP8pvLltMNHSSJvS5JV2fgT+tg4eYqxp1T08v6OrrW5LzdayBbK7m9SIBXjY/Ui8g6cY361REtJ2S6fQyrBtvd+2aL9a6ctEaShkZVSdw3M1f/fCjVuDG1b7ZY3L7LS1JUJzOrAtOwJIlD2W46OhL8akeRJHbSErhpoqjSdToz0juecQabJ7o7+UPlv511DL/asYfX/k77S0dWZfO9HS6B0WutrbAnH9le6+7mlgWsjzqi/WtJF2vV+Ci/ntxbfy/1o/Wr5//Wut1WM39GeIbp2azXv5IkDb6qklgniaOH/uxUJWl7ZmaZmZ3reiVxYsV9K4nD8vluKJPEsdGo34wbJ9pP+KqEo9Mk8ZJzT+ho+8Nx7MY1vOMZ/7mjfVqrh92e3OVwHNdSFWy33TRi/gPn2f9p05LHtFBrXMs54ZYOppeVxOq64arddNy/G0kaGuOjI8xl0ToK7VUSV61orSRmR+skLsbISLBmxWi9DJ5J4gAbbTlT3UmF74LTj+Znd+/mqQ9tf5HQftBaKejFWo6L9YTT7wfASVsmOtrvokccy0/v3NWTZTpaWxCWc+uudDCtkwB0P0mcH+yHaZFiSdJ8UrirnJiwk3bTPdNFu2kvlk2aWDnWUklcvp+Vl9LQJ4lbOlgD7PGnH83jTz+6GyE16j4zgC7jN/7qFaP8w6se3XEl993PemiXIvpNrbFZSVS/uu/Jjl61m3a2dq0kqf9VSeHkniJJbGudxNERxkaCqelZZuayXhKjm9auHOPnd+8G2u9m63dDmSSORTBbft96zdqw2jTRuxlAD9epHUzI04SNa4rXcsXoiDM0qm+1tmn3qpK4e98se6fnrCRK0hBZUSZ4VSWx3c+hq8ZHmdo3x/TMXNfbTaGY9XumnIF1WMap5Z0RdMnoaO8+APWDDS1LcyznJTD6wcYy4V7uybbUrl7ObrpnZtZKoiQNkerSnMk9xczw7UxcA2WSWHag9OKz60RL192wVBKHcjRuba9U8Qc6Ub7hvY7u8GwqJ0Iy2dagmOjyYFi3m+6bsZIoSUOmGgN2TLV/TWKx3wiTe6bZNzvH2h58rm+d12JYxqmh/CQ7NhI882HHcPE5xzUdyrIxUb75rYAdnqrddN/sXMORSIfnggcV118/+tQju/o8K0ZHGB2Jot3USqIkDZWqm2T7VDEpTNtJ4vgod+8q9lnTg4kJ167qj/k7ltLQltTec9GZTYewrGT5by9mAB1kVZI4tW/2EFtKy9v7L3kYc5ldbzeNCNaMjxbtptNzbJoYjsFXkjR/XfqO3WW7aQdJYjXbaLc7XgCO2bAaKD4nD0tBxYxAANxRLgD/8BM2NhxJf6sqsse3rOko9aNetkyvXjHKVF1JHI42HklSa7tpdU1i+xPX/HL7FNCbSuIpR60Fio671sndBtlwpMI6pOrNf/r91zUcSX87+8SNXPCgo/jIi89pOhSpb0ysHGPXvhn2TM8NzRlaSdJ8kri9wyRx9YpR7uxhJbH6nDxMM9dbSRQAn3rJI5ncMzNUb/5u2Lx2JX/5wrObDkPqK+tWjbFzzwx7Z+accVqShsia8SIVqSuJHbSb1o/Rg4lrqiTx1Y8/tevPtVyYJAookpvNa1c2HYakIbRu9Tg7pqaLdlMriZI0NOpKYofXJLYu3zaxsvsnF9esGOOWdz2l68+znDgaS5IatX71ODunptk7PecyPJI0RKokcefUNKMjwWibHW3VRIHg0nbdYpIoSWrU+tXj3LN7H/tm51g1JFOLS5Lm20b3zc61fT0iwKaJ+SSxF5XEYeRoLElq1PrV43WrkZVESRoeoyNRt5h2Mqu2lcTuM0mUJDVq/er5a0u8JlGShku1VmInSeKmta1JoicXu8HRWJLUqNYk0dlNJWm4rCmP+x21m7ZUEsc72E/t81WVJDXKSqIkDa9Vi6gkVu2mR69zZv5usYlXktSoo1oG+fuvX9VgJJKkXts8sYKf3LGro5OEx25czSv/6ylc9IjjuhjZcDNJlCQ16qQta+vvT9gy0WAkkqReu9/61cA93K+Dk4QjI8Grn3Ba94KS7aaSpGZtbJnK/P7rrCRK0jDZWiaHx25c3XAkamWSKElaNkbaXEhZkjQYqiUs1q4cP8SW6iXbTSVJjfvcFeexZ3q26TAkSQ3pZOIadZ9JoiSpcQ87fmPTIUiSGnDpo07gh7dPctl5JzYdilqYJEqSJElqxKaJFbzvkoc1HYYWsK4rSZIkSaqZJEqSJEmSaiaJkiRJkqSaSaIkSZIkqWaSKEmSJEmqmSRKkiRJkmomiZIkSZKkmkmiJEmSJKlmkihJkiRJqpkkSpIkSZJqJomSJEmSpJpJoiRJkiSpZpIoSZIkSaqZJEqSJEmSaiaJkiRJkqSaSaIkSZIkqWaSKEmSJEmqmSRKkiRJkmqRmU3H0HMRMQn8xyJ2XQ/sWOb7GWOz+/VDjIvdzxib3a8fYlzsfv0Q42L32wLc2aPnWux+/fA6Lna/fohxsfsZY7P79UOMi92vH2Jc7H7GeF+nZeYR+70nM4fuC7hhkft9aLnvZ4z+bsP8u/VDjP5u/RnjYfxuy3686YfX0d/NGJfbfv0Qo7+bMbaxzwHHKNtNO/PFPtjPGJvdrx9iXOx+xtjsfv0Q42L364cYD2e/Xj6Xr39zz9Xr/Yyx2f36IcbF7tcPMS52P2Ns07C2m96QmY9oOg5J0mBzvJEkLVcHG6OGtZL4oaYDkCQNBccbSdJydcAxaigriZIkSZKk/RvWSmJXRMSmiPh8ROyKiFsj4nnl7Y+LiH+LiO0RcVe5zTFNxztoIuIVEXFDROyNiP+z4L7zI+KmiNgdEV+LiBMaCnNgHej1j4hLIuLelq/dEZER8fAGwx0oEbEyIq4qjzuTEfHdiHjSfra7snztL2giTqlbDjT+lve9MiJ+GhE7y2PUbzUZ6yA6yPH/xPKY0zoGvKnBUAfSwcaAiHhkRHwlIu6OiDsi4jMRcf+mYx4khxqDI+LyiPhx+f6/LiK2Nhlvu0wSl9b7gH3A0cAlwAci4sHAvwNPzMwNwFbgR8AHmgpygN0GvB34q9YbI2IL8DngTcAm4AbgUz2PbvDt9/XPzGszc231BVwB/AT41wZiHFRjwM+Bx1BMgf1G4NMRcWK1QUScDDwb+FUTAUpdtt/xNyLOBd4FPIvib+Mq4PMRMdpYpINpv8f/FhtaxoG39TCuYXGwMWAjRUvhicAJwCRwdSNRDq4Dvv4R8VjgncDTKT6D/hT4RDNhdsZ20yUSERPAPcAZmfnD8rZrgF9m5utbtlsJvAV4emae3kSsgy4i3g4cm5kvKn9+CfCizDyv/HmCYt2yszLzpsYCHVALX//93P814PrMfGtPAxsyEfF94K2Z+dny5+uA9wLvBy7PzK82GZ+0VA42/gLfAV6dmee0bHsvsDUzPWGyxPYz/p5I8aF4PDNnGgxt6CwcA1pufxjw9TzQ2nhaEtXrDzwKWJ2Zv1/evpXi2HRKZt7cYIiHZCVx6ZwKzFQDVOl7wIMBIuL4iNgOTAGvAd7d8wiH14Mp/i8AyMxdwM3l7eqhss330cBHm45lkEXE0RTHpBvLn58N7M3Mv2s0MKk7Djb+/j0wGhHnltXDFwPfBbb1PMrhdmtE/CIiri67e9RFC8eABR59gNu1RPbz+kfr3eW/Z/Q0qEUYazqAAbIW2Lngth3AEQCZ+TNgQ0RsAn4PsILVO2uBOxbcVv/fqKdeAPxTZv606UAGVUSMA9cCH8nMmyLiCIpWl8c3G5nUNQcbfyeBzwL/l+LD2XbgSWkbVa/cCZxNkZhvpmgLvhZ4YoMxDbSFY8CC+x4CXEnR+qgu2M8YfB3wyYj4IMXlZlcCCaxpMMy2WElcOvcC6xbcto5igKpl5t3AR4C/iQiT9N5o6/9GPfECive/uiAiRoBrKK7NekV581uAazLzlobCkrrtYMf43wUuo6gqrgCeD3ypXyaO6HeZeW9m3pCZM5l5O8Vx6QnlySstsQOMAdV9p1BU1v8wM/+pgfAG3v5e//LSjjdTnKy6pfyaBH7RSJAdMElcOj8ExiLiAS23PZT9l/THgKP4zUFN3XEjxf8FUF+TcjK2W/RURPwXiomb/rrpWAZRRATFpBxHAxdm5nR51/nAH0TEtojYBhxHcUH96xoKVVpqBxt/zwS+lJk/zMy5zLyOYvKm83ofpigqKODnzyV3kDGgutTjq8DbMvOahkIcaAd7/TPzfZn5gMw8miJZHAN+0Eyk7fOPdImU17l9DvjjiJgoPxA/HbgmIp4ZEadFxEhEHAm8B/hOWVXUEomIsYhYBYxSXIOyqqzWfh44IyIuLO+/Evi+k9YsrYO8/pUXAp/NTCu43fEB4EHA0zJzquX28ymufTiz/LoNeClF25fU9w42/gLfBp4SESdF4fEU1wot+w9o/eRAx//yWtDq889mismzrs/MHc1GPJD2OwZEseTaPwJ/npkfbCq4IXCg139VRJxRHn+Op5hp9n9n5j1NBdouk8SldQWwGvg1xfS2L8/MG4FjgOsoysv/BswBz2gqyAH2RoqJgV5P0VI0BbwxM+8ALgTeQTED3rnAc5sKcoDt9/WH4iAJXIStpl1RniV+KUUSuC3m1yO7JDPvysxt1RcwC9yTmfc2GbO0xA40/n4U+CRwPcV1i+8FXupJwiV3oOP/Scx//vkBsBe4uKEYB9bBxgDgcor/h7e03O7xfwkd4vVfBXycoi3+n4FvUizJtuy5BIYkSZIkqWYlUZIkSZJUM0mUJEmSJNVMEiVJkiRJNZNESZIkSVLNJFGSJEmSVDNJlCRJkiTVTBIlSZIkSTWTREmSJElSzSRRkiRJklQzSZQkSZIk1UwSJUmSJEk1k0RJkiRJUs0kUZIkSZJUM0mUJEmSJNVMEiVJkiRJNZNESZIkSVLNJFGSJEmSVDNJlCRJkiTVTBIlSZIkSTWTREmSJElSzSRRkiRJklQzSZQkSZIk1QYqSYyIWyLi1xEx0XLb5RFxfYNhSZIGTDneTEXEZERsj4hvRMTLImKgxlVJ0nAaxMFsFPjDpoOQJA28p2XmEcAJwLuA1wFXNRuSJEmHbxCTxD8FXhMRGxbeERHnRcS3I2JH+e955e3PiYgbFmz7qoj4296ELEnqV5m5IzP/FngO8MKIOCMiVkbE/4yIn0XE7RHxwYhYXe0TEU+PiO9GxM6IuDkifqe530CSpPsaxCTxBuB64DWtN0bEJuDLwHuBzcB7gC9HxGbgi8BpEfGAll2eB3y8FwFLkvpfZv4z8Avgtykqi6cCZwKnAMcAVwJExDnAR4E/AjYAjwZu6XW8kiQdyCAmiVAMxK+MiCNbbnsK8KPMvCYzZzLzE8BNFO1Cu4G/AS4GKJPFBwJWEiVJnbgN2AS8BHhVZt6dmZPAO4Hnltv8LvBXmfmVzJzLzF9m5k0NxStJ0m8YyCQxM38AfAl4fcvNW4FbF2x6K8XZXSiqhheX3z8P+EKZPEqS1K5jgDFgDfAv5aQ224HrgOrE5XHAzc2EJ0nSoQ1kklh6M/B7zCeBt1FMLtDqeOCX5fdfAY6MiDMpkkVbTSVJbYuIsynGnC8AU8CDM3ND+bU+M9eWm/4cOLmhMCVJOqSBTRIz88fAp4A/KG/6O+DUiHheRIxFxHOA0ykqjmTmNPAZiolvNlEkjZIkHVRErIuIpwKfBD6Wmd8DPgz8WUQcVW5zTEQ8sdzlKuCyiDg/IkbK+x7YTPSSJP2mgU0SS38MTABk5l3AU4FXA3cBrwWempl3tmz/ceAC4DOZOdPjWCVJ/eWLETFJURn87xQTol1W3vc64MfAtyJiJ/BV4DSoJ7i5DPgzYAfwdX6z00WSpMZEZjYdgyRJkiRpmRj0SqIkSZIkqQMmiZIkSZKkmkmiJEmSJKlmkihJkiRJqpkkSpIkSZJqfZ0kRsTKiLgqIm6NiMmI+G5EPKnl/vMj4qaI2B0RX4uIE1ruuygivlHed/1BnuMFEZERcXmXfx1JkiRJalxfJ4nAGMX6VI8B1gNvBD4dESdGxBbgc8CbgE3ADcCnWva9G/hfwLsO9OARsRF4A3BjN4KXJEmSpOVm4NZJjIjvA28FNgMvyszzytsngDuBszLzppbtLween5mP3c9jfRD4PnAR8LHM/Mvu/waSJEmS1Jx+ryTeR0QcDZxKUfl7MPC96r7M3AXcXN7ezmOdAzwC+ODSRypJkiRJy9PAJIkRMQ5cC3ykrBSuBXYs2GwHcEQbjzUKvB94RWbOLXWskiRJkrRcDUSSGBEjwDXAPuAV5c33AusWbLoOmGzjIa8Avp+Z31qyICVJkiSpD4w1HcDhiogArgKOBp6cmdPlXTcCL2zZbgI4mfYmoTkfeExEPLn8eRNwVkScmZmvOMh+kiRJktTX+j5JBD4APAi4IDOnWm7/PPCnEXEh8GXgSorq4E1Qt5SOU7wGIxGxCpgtk8wXAataHutzwF9TJKOSJEmSNLD6ut20XPfwpcCZwLaIuLf8uiQz7wAuBN4B3AOcCzy3ZfdLgSmKJPO3y+8/DJCZ2zNzW/VF0ca6MzMXXuMoSZIkSQNl4JbAkCRJkiQtXl9XEiVJkiRJS8skUZIkSZJUM0mUJEmSJNVMEiVJkiRJNZNESZIkSVLNJFGSJEmSVDNJlCQJiIjjy7V2R5uORZKkJpkkSpKGVkTcEhEXAGTmzzJzbWbO9vD5HxsRv+jV80mS1A6TREmSJElSzSRRkjSUIuIa4Hjgi2Wb6WsjIiNirLz/+oh4e0R8o7z/ixGxOSKujYidEfHtiDix5fEeGBFfiYi7I+I/IuKilvueHBH/HhGTEfHLiHhNREwAfw9sLR//3ojYGhHnRMQ3I2J7RPwqIv48Ila0PFZGxBUR8aPy8d4WESeXce6MiE9X21eVyoh4Q0TcWVZOL+nRSyxJ6lMmiZKkoZSZlwI/A56WmWuBT+9ns+cClwLHACcD3wSuBjYB/w94M0CZ8H0F+DhwVLnf+yPi9PJxrgJemplHAGcA/5iZu4AnAbeVba5rM/M2YBZ4FbAFeBRwPnDFgrieCDwceCTwWuBDwPOB48rHv7hl2/uVj3UM8ELgQxFxWkcvliRpqJgkSpJ0YFdn5s2ZuYOi6ndzZn41M2eAzwBnlds9FbglM6/OzJnM/A7wWeDZ5f3TwOkRsS4z78nMfz3QE2bmv2Tmt8rHuQX4C+AxCzZ7d2buzMwbgR8A/5CZP2mJ86wF278pM/dm5teBLwMXIUnSAZgkSpJ0YLe3fD+1n5/Xlt+fAJxbtohuj4jtwCUUVTyAC4EnA7dGxNcj4lEHesKIODUivhQR2yJiJ/BOikrgYuICuKesWlZuBbYe6PklSTJJlCQNs1yix/k58PXM3NDytTYzXw6Qmd/OzKdTtKJ+gfnW1v09/weAm4AHZOY64A1AHEZsG8t22MrxwG2H8XiSpAFnkihJGma3AyctweN8CTg1Ii6NiPHy6+yIeFBErIiISyJifWZOAzuBuZbn3xwR61se64hym3sj4oHAy5cgvreWcfw2RWvsZ5bgMSVJA8okUZI0zP4EeGPZHvqsxT5IZk4CT6CYsOY2YBvwP4CV5SaXAreU7aMvo2hFJTNvAj4B/KRsU90KvAZ4HjAJfBj41GLjKm0D7injuhZ4Wfm8kiTtV2QuVaeNJElaTiLiscDHMvPYhkORJPURK4mSJEmSpJpJoiRJkiSpZrupJEmSJKlmJVGSJEmSVDNJlCRJkiTVTBIlSZIkSTWTREmSJElSzSRRkiRJklQzSZQkSZIk1f4/WCe+dKm1/scAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \\\n", + " .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \\\n", + " .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)\n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XbFTqBw6G1Ch" + }, + "source": [ + "### ការរៀបចំទិន្នន័យសម្រាប់ការបណ្តុះបណ្តាល\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ឥឡូវនេះ អ្នកត្រូវតែត្រៀមបរិមាណទិន្នន័យសម្រាប់ការបណ្តុះបណ្តាល ដោយអនុវត្តការចម្រាញ់ និងការប្រមាណទិន្នន័យរបស់អ្នក។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cYivRdQpHDj3", + "outputId": "a138f746-461c-4fd6-bfa6-0cee094c4aa1" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Training data shape: (1416, 1)\n", + "Test data shape: (48, 1)\n" + ] + } + ], + "source": [ + "train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]\n", + "test = energy.copy()[energy.index >= test_start_dt][['load']]\n", + "\n", + "print('Training data shape: ', train.shape)\n", + "print('Test data shape: ', test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ពង្រីកទិន្នន័យឲ្យមានចន្លោះនៅក្នុង (0, 1)។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 363 + }, + "id": "3DNntGQnZX8G", + "outputId": "210046bc-7a66-4ccd-d70d-aa4a7309949c" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
load
2014-11-01 00:00:000.101611
2014-11-01 01:00:000.065801
2014-11-01 02:00:000.046106
2014-11-01 03:00:000.042525
2014-11-01 04:00:000.059087
\n", + "
" + ], + "text/plain": [ + " load\n", + "2014-11-01 00:00:00 0.101611\n", + "2014-11-01 01:00:00 0.065801\n", + "2014-11-01 02:00:00 0.046106\n", + "2014-11-01 03:00:00 0.042525\n", + "2014-11-01 04:00:00 0.059087" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "scaler = MinMaxScaler()\n", + "train['load'] = scaler.fit_transform(train)\n", + "train.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "26Yht-rzZexe", + "outputId": "20326077-a38a-4e78-cc5b-6fd7af95d301" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
load
2014-12-30 00:00:000.329454
2014-12-30 01:00:000.290063
2014-12-30 02:00:000.273948
2014-12-30 03:00:000.268129
2014-12-30 04:00:000.302596
\n", + "
" + ], + "text/plain": [ + " load\n", + "2014-12-30 00:00:00 0.329454\n", + "2014-12-30 01:00:00 0.290063\n", + "2014-12-30 02:00:00 0.273948\n", + "2014-12-30 03:00:00 0.268129\n", + "2014-12-30 04:00:00 0.302596" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "test['load'] = scaler.transform(test)\n", + "test.head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "x0n6jqxOQ41Z" + }, + "source": [ + "### ការបង្កើតទិន្នន័យជាមួយជំហាន​ពេលវេលា\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fdmxTZtOQ8xs" + }, + "source": [ + "សម្រាប់ SVR របស់យើង យើងបម្លែងទិន្នន័យបញ្ចូលឲ្យមានទ្រង់ទ្រាយជា `[batch, timesteps]`។ ដូចនេះ យើងកំណត់ឡើងវិញទ្រង់ទ្រាយ `train_data` និង `test_data` ដែលមានជំហានថ្មីមួយដែលបង្ហាញពី timesteps។ សម្រាប់ឧទាហរណ៍របស់យើង យើងកំណត់ `timesteps = 5`។ ដូចនេះ ទិន្នន័យបញ្ចូលទៅម៉ូឌែលគឺគឺទិន្នន័យសម្រាប់ 4 timesteps ដំបូង ហើយលទ្ធផលចេញនឹងមានទិន្នន័យសម្រាប់ timestep ទី 5។\n" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "id": "Rpju-Sc2HFm0" + }, + "outputs": [], + "source": [ + "# Converting to numpy arrays\n", + "\n", + "train_data = train.values\n", + "test_data = test.values" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "# Selecting the timesteps\n", + "\n", + "timesteps=5" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "O-JrsrsVJhUQ", + "outputId": "c90dbe71-bacc-4ec4-b452-f82fe5aefaef" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(1412, 5)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Converting data to 2D tensor\n", + "\n", + "train_data_timesteps=np.array([[j for j in train_data[i:i+timesteps]] for i in range(0,len(train_data)-timesteps+1)])[:,:,0]\n", + "train_data_timesteps.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "exJD8AI7KE4g", + "outputId": "ce90260c-f327-427d-80f2-77307b5a6318" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(44, 5)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Converting test data to 2D tensor\n", + "\n", + "test_data_timesteps=np.array([[j for j in test_data[i:i+timesteps]] for i in range(0,len(test_data)-timesteps+1)])[:,:,0]\n", + "test_data_timesteps.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "id": "2u0R2sIsLuq5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1412, 4) (1412, 1)\n", + "(44, 4) (44, 1)\n" + ] + } + ], + "source": [ + "x_train, y_train = train_data_timesteps[:,:timesteps-1],train_data_timesteps[:,[timesteps-1]]\n", + "x_test, y_test = test_data_timesteps[:,:timesteps-1],test_data_timesteps[:,[timesteps-1]]\n", + "\n", + "print(x_train.shape, y_train.shape)\n", + "print(x_test.shape, y_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8wIPOtAGLZlh" + }, + "source": [ + "## ការបង្កើតម៉ូដែល SVR\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "id": "EhA403BEPEiD" + }, + "outputs": [], + "source": [ + "# Create model using RBF kernel\n", + "\n", + "model = SVR(kernel='rbf',gamma=0.5, C=10, epsilon = 0.05)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "GS0UA3csMbqp", + "outputId": "d86b6f05-5742-4c1d-c2db-c40510bd4f0d" + }, + "outputs": [ + { + "data": { + "text/plain": [ + "SVR(C=10, cache_size=200, coef0=0.0, degree=3, epsilon=0.05, gamma=0.5,\n", + " kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Fit model on training data\n", + "\n", + "model.fit(x_train, y_train[:,0])" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Rz_x8S3UrlcF" + }, + "source": [ + "### ធ្វើការព្យាករណ៍ម៉ូឌែល\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XR0gnt3MnuYS", + "outputId": "157e40ab-9a23-4b66-a885-0d52a24b2364" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(1412, 1) (44, 1)\n" + ] + } + ], + "source": [ + "# Making predictions\n", + "\n", + "y_train_pred = model.predict(x_train).reshape(-1,1)\n", + "y_test_pred = model.predict(x_test).reshape(-1,1)\n", + "\n", + "print(y_train_pred.shape, y_test_pred.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_2epncg-SGzr" + }, + "source": [ + "## វិភាគការសមត្ថភាពម៉ូឌែល\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1412 44\n" + ] + } + ], + "source": [ + "# Scaling the predictions\n", + "\n", + "y_train_pred = scaler.inverse_transform(y_train_pred)\n", + "y_test_pred = scaler.inverse_transform(y_test_pred)\n", + "\n", + "print(len(y_train_pred), len(y_test_pred))" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xmm_YLXhq7gV", + "outputId": "18392f64-4029-49ac-c71a-a4e2411152a1" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1412 44\n" + ] + } + ], + "source": [ + "# Scaling the original values\n", + "\n", + "y_train = scaler.inverse_transform(y_train)\n", + "y_test = scaler.inverse_transform(y_test)\n", + "\n", + "print(len(y_train), len(y_test))" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "u3LBj93coHEi", + "outputId": "d4fd49e8-8c6e-4bb0-8ef9-ca0b26d725b4" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1412 44\n" + ] + } + ], + "source": [ + "# Extract the timesteps for x-axis\n", + "\n", + "train_timestamps = energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)].index[timesteps-1:]\n", + "test_timestamps = energy[test_start_dt:].index[timesteps-1:]\n", + "\n", + "print(len(train_timestamps), len(test_timestamps))" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(25,6))\n", + "plt.plot(train_timestamps, y_train, color = 'red', linewidth=2.0, alpha = 0.6)\n", + "plt.plot(train_timestamps, y_train_pred, color = 'blue', linewidth=0.8)\n", + "plt.legend(['Actual','Predicted'])\n", + "plt.xlabel('Timestamp')\n", + "plt.title(\"Training data prediction\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "LnhzcnYtXHCm", + "outputId": "f5f0d711-f18b-4788-ad21-d4470ea2c02b" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAPE for training data: 1.7195710200875551 %\n" + ] + } + ], + "source": [ + "print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 225 + }, + "id": "53Q02FoqQH4V", + "outputId": "53e2d59b-5075-4765-ad9e-aed56c966583" + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10,3))\n", + "plt.plot(test_timestamps, y_test, color = 'red', linewidth=2.0, alpha = 0.6)\n", + "plt.plot(test_timestamps, y_test_pred, color = 'blue', linewidth=0.8)\n", + "plt.legend(['Actual','Predicted'])\n", + "plt.xlabel('Timestamp')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "clOAUH-SXCJG", + "outputId": "a3aa85ff-126a-4a4a-cd9e-90b9cc465ef5" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAPE for testing data: 1.2623790187854018 %\n" + ] + } + ], + "source": [ + "print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DHlKvVCId5ue" + }, + "source": [ + "## ការព្យាករណ៍ទិន្នន័យពេញលេញ\n" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cOFJ45vreO0N", + "outputId": "35628e33-ecf9-4966-8036-f7ea86db6f16" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tensor shape: (26300, 5)\n", + "X shape: (26300, 4) \n", + "Y shape: (26300, 1)\n" + ] + } + ], + "source": [ + "# Extracting load values as numpy array\n", + "data = energy.copy().values\n", + "\n", + "# Scaling\n", + "data = scaler.transform(data)\n", + "\n", + "# Transforming to 2D tensor as per model input requirement\n", + "data_timesteps=np.array([[j for j in data[i:i+timesteps]] for i in range(0,len(data)-timesteps+1)])[:,:,0]\n", + "print(\"Tensor shape: \", data_timesteps.shape)\n", + "\n", + "# Selecting inputs and outputs from data\n", + "X, Y = data_timesteps[:,:timesteps-1],data_timesteps[:,[timesteps-1]]\n", + "print(\"X shape: \", X.shape,\"\\nY shape: \", Y.shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "id": "ESSAdQgwexIi" + }, + "outputs": [], + "source": [ + "# Make model predictions\n", + "Y_pred = model.predict(X).reshape(-1,1)\n", + "\n", + "# Inverse scale and reshape\n", + "Y_pred = scaler.inverse_transform(Y_pred)\n", + "Y = scaler.inverse_transform(Y)" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 328 + }, + "id": "M_qhihN0RVVX", + "outputId": "a89cb23e-1d35-437f-9d63-8b8907e12f80" + }, + "outputs": [ + { + "data": { + "image/png": "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/vvvj1/96ldYt25duq5TTjkFEydOBAAMHjwYRx55JA4//HCcfvrpWLp0KXr16oXnnnsOPXv2xJgxY7B+/XpccsklOProo3H00Ufjhx9+AABUV1fjzDPPxMEHH4zrr78eQgglv7WdkloIIYQQQgghhESX2lpg8mTghBMy2zZvDq8/hBBCCCGEEOXEYjF88803OPvsswEAkydPxsyZM9GjRw/06dMH22yzDSZMmICWlhYcf/zxOPPMMzFlyhTMmzcPs2fPRlVVFQ466CD88Y9/zKp3/fr1uOGGGzB69Gj06NEDNTU16NatG26++WZ06dIFd955JwDgyiuvxN/+9jeccMIJWL58Oc466yzMmTMH//73v3HCCSfggQcewNdff42+ffsq+b1UcBFCCCGEEEJIqfPMM0B1NfDxx2H3hBBCCCGEkJJG09TX6ebwtHnzZvTs2RNAwoPruuuuw9ixY3HMMcegR48eAIAhQ4Zg+vTp6fxadXV1WLBgAUaPHo3f/e53qKysxC677ILTTjstp/5x48bhpJNOStfVrVs3y3589913WTm76uvrsWnTJowePRqfJSNInHvuuejataun328HFVyEEEIIIYQQUupUV4fdA0IIIYQQQsoCRdH3PJHKwWVmyy23TH8WQuDFF1/EWWedlVVm0KBByvqh6zrGjRuHTp06KavTCebgIoQQQgghhBBCCCGEEEIIKWHOOussvPrqq2hrawMAzJ8/H42NjTjppJPw0UcfIR6PY82aNRgxYkTOsccddxxGjx6NJUuWAABqamoAAFtttRUaGhrS5c4880y8+OKL6e8ppdtJJ52EDz74AADwzTffoLa2VslvooKLEEIIIYQQQgghhBBCCCGkhLn++utx0EEH4cgjj8QhhxyCm266CbFYDBdddBH2228/HHTQQbj66qvxi1/8IufYHXbYAX369MHFF1+Mww8/HJdffjkA4De/+Q0GDBiAnj17YsyYMXjhhRcwceJEHHbYYTjooIPQq1cvAMCDDz6I0aNH4+CDD8Znn32GPfbYQ8lv0kQY/nKSHHXUUWLixIlhd4MQQgghhBBCipubbnLe37t3YfpBCCGEEEJIiTFnzhwceOCBYXejJLA6l5qmTRJCHGVVnh5chBBCCCGEEFLuRNjwkRBCCCGEEEKsoIKLEEIIIYQQQgghhBBCCCGEFBVUcBFCCCGE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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(30,8))\n", + "plt.plot(Y, color = 'red', linewidth=2.0, alpha = 0.6)\n", + "plt.plot(Y_pred, color = 'blue', linewidth=1)\n", + "plt.legend(['Actual','Predicted'])\n", + "plt.xlabel('Timestamp')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "AcN7pMYXVGTK", + "outputId": "7e1c2161-47ce-496c-9d86-7ad9ae0df770" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "MAPE: 2.0572089029888656 %\n" + ] + } + ], + "source": [ + "print('MAPE: ', mape(Y_pred, Y)*100, '%')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនច្បាស់លាស់។ ឯកសារដើមដែលប្រើភាសាម៉ាត្រដ្ឋានគួរត្រូវបានទុកជាទូទៅម្ខាង។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវសម្រាប់ការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "collapsed_sections": [], + "name": "Recurrent_Neural_Networks.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/translations/km/7-TimeSeries/3-SVR/working/notebook.ipynb b/translations/km/7-TimeSeries/3-SVR/working/notebook.ipynb new file mode 100644 index 000000000..0b60824d6 --- /dev/null +++ b/translations/km/7-TimeSeries/3-SVR/working/notebook.ipynb @@ -0,0 +1,705 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "fv9OoQsMFk5A" + }, + "source": [ + "# ការព្យាករណ៍ស៊េរីពេលវេលា​​ដោយប្រើ Support Vector Regressor\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ក្នុងសៀវភៅកំណត់ត្រានេះ យើងបង្ហាញពីរបៀប៖\n", + "\n", + "- រៀបចំទិន្នន័យប្រេកង់ពេលវេលា 2D សម្រាប់បង្រៀនម៉ូឌែលប៉ាន់ស្មាន SVM\n", + "- អនុវត្ត SVR ដោយប្រើកណ្នែល RBF\n", + "- វាយតម្លៃម៉ូឌែលដោយប្រើក្រាល និង MAPE\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## ការនាំចូលម៉ូឌុល\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.append('../../')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "id": "M687KNlQFp0-" + }, + "outputs": [], + "source": [ + "import os\n", + "import warnings\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import pandas as pd\n", + "import datetime as dt\n", + "import math\n", + "\n", + "from sklearn.svm import SVR\n", + "from sklearn.preprocessing import MinMaxScaler\n", + "from common.utils import load_data, mape" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Cj-kfVdMGjWP" + }, + "source": [ + "## ការរៀបចំទិន្នន័យ\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8fywSjC6GsRz" + }, + "source": [ + "### បញ្ជូលទិន្នន័យ\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 363 + }, + "id": "aBDkEB11Fumg", + "outputId": "99cf7987-0509-4b73-8cc2-75d7da0d2740" + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
load
2012-01-01 00:00:002698.0
2012-01-01 01:00:002558.0
2012-01-01 02:00:002444.0
2012-01-01 03:00:002402.0
2012-01-01 04:00:002403.0
\n", + "
" + ], + "text/plain": [ + " load\n", + "2012-01-01 00:00:00 2698.0\n", + "2012-01-01 01:00:00 2558.0\n", + "2012-01-01 02:00:00 2444.0\n", + "2012-01-01 03:00:00 2402.0\n", + "2012-01-01 04:00:00 2403.0" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "energy = load_data('../../data')[['load']]\n", + "energy.head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "O0BWP13rGnh4" + }, + "source": [ + "### គូរតាងទិន្នន័យ\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 486 + }, + "id": "hGaNPKu_Gidk", + "outputId": "7f89b326-9057-4f49-efbe-cb100ebdf76d" + }, + "outputs": [], + "source": [ + "energy.plot(y='load', subplots=True, figsize=(15, 8), fontsize=12)\n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "IPuNor4eGwYY" + }, + "source": [ + "### បង្កើតទិន្នន័យបណ្តុះបណ្តាល និងតេស្ត\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ysvsNyONGt0Q" + }, + "outputs": [], + "source": [ + "train_start_dt = '2014-11-01 00:00:00'\n", + "test_start_dt = '2014-12-30 00:00:00'" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 548 + }, + "id": "SsfdLoPyGy9w", + "outputId": "d6d6c25b-b1f4-47e5-91d1-707e043237d7" + }, + "outputs": [], + "source": [ + "energy[(energy.index < test_start_dt) & (energy.index >= train_start_dt)][['load']].rename(columns={'load':'train'}) \\\n", + " .join(energy[test_start_dt:][['load']].rename(columns={'load':'test'}), how='outer') \\\n", + " .plot(y=['train', 'test'], figsize=(15, 8), fontsize=12)\n", + "plt.xlabel('timestamp', fontsize=12)\n", + "plt.ylabel('load', fontsize=12)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "XbFTqBw6G1Ch" + }, + "source": [ + "### ការរៀបចំទិន្នន័យសម្រាប់ការបណ្តុះបណ្តាល\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "ឥឡូវនេះ អ្នកត្រូវតែរៀបចំទិន្នន័យសម្រាប់ការបណ្តុះបណ្តាលដោយធ្វើការចំរូងនិងការវាស់ទីទិន្នន័យរបស់អ្នក។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cYivRdQpHDj3", + "outputId": "a138f746-461c-4fd6-bfa6-0cee094c4aa1" + }, + "outputs": [], + "source": [ + "train = energy.copy()[(energy.index >= train_start_dt) & (energy.index < test_start_dt)][['load']]\n", + "test = energy.copy()[energy.index >= test_start_dt][['load']]\n", + "\n", + "print('Training data shape: ', train.shape)\n", + "print('Test data shape: ', test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "វិមាត្រទិន្នន័យឲ្យមានជួរតម្លៃនៅក្នុងចន្លោះ (0, 1)។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 363 + }, + "id": "3DNntGQnZX8G", + "outputId": "210046bc-7a66-4ccd-d70d-aa4a7309949c" + }, + "outputs": [], + "source": [ + "scaler = MinMaxScaler()\n", + "train['load'] = scaler.fit_transform(train)\n", + "train.head(5)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 206 + }, + "id": "26Yht-rzZexe", + "outputId": "20326077-a38a-4e78-cc5b-6fd7af95d301" + }, + "outputs": [], + "source": [ + "test['load'] = scaler.transform(test)\n", + "test.head(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "x0n6jqxOQ41Z" + }, + "source": [ + "### ការបង្កើតទិន្នន័យជាមួយជំហានពេលវេលា\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "fdmxTZtOQ8xs" + }, + "source": [ + "សម្រាប់ SVR របស់យើង យើងបម្លែងទិន្នន័យចូលឲ្យមានទ្រង់ទ្រាយជា `[batch, timesteps]`។ ដូច្នេះ យើងបម្លែងទ្រង់ទ្រាយ `train_data` និង `test_data` ដែលមានស្រាប់ ដើម្បីបង្កើតមាត្រថ្មីមួយដែលយោងទៅកាន់ខ្ទង់ពេល (timesteps)។ សម្រាប់ឧទាហរណ៍របស់យើង យើងកំណត់ `timesteps = 5`។ ដូច្នេះ ទិន្នន័យចូលទៅម៉ូដែលគឺសម្រាប់សម័យពេល 4 ដំបូង ហើយទិន្នន័យចេញនឹងជាសម្រាប់សម័យពេលទី 5។\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "Rpju-Sc2HFm0" + }, + "outputs": [], + "source": [ + "# Converting to numpy arrays\n", + "\n", + "train_data = train.values\n", + "test_data = test.values" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Selecting the timesteps\n", + "\n", + "timesteps=None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "O-JrsrsVJhUQ", + "outputId": "c90dbe71-bacc-4ec4-b452-f82fe5aefaef" + }, + "outputs": [], + "source": [ + "# Converting data to 2D tensor\n", + "\n", + "train_data_timesteps=None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "exJD8AI7KE4g", + "outputId": "ce90260c-f327-427d-80f2-77307b5a6318" + }, + "outputs": [], + "source": [ + "# Converting test data to 2D tensor\n", + "\n", + "test_data_timesteps=None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "2u0R2sIsLuq5" + }, + "outputs": [], + "source": [ + "x_train, y_train = None\n", + "x_test, y_test = None\n", + "\n", + "print(x_train.shape, y_train.shape)\n", + "print(x_test.shape, y_test.shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "8wIPOtAGLZlh" + }, + "source": [ + "## ការបង្កើតម៉ូដែល SVR\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "EhA403BEPEiD" + }, + "outputs": [], + "source": [ + "# Create model using RBF kernel\n", + "\n", + "model = None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "GS0UA3csMbqp", + "outputId": "d86b6f05-5742-4c1d-c2db-c40510bd4f0d" + }, + "outputs": [], + "source": [ + "# Fit model on training data" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "Rz_x8S3UrlcF" + }, + "source": [ + "### ធ្វើការព្យាករណ៍ម៉ូដែល\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XR0gnt3MnuYS", + "outputId": "157e40ab-9a23-4b66-a885-0d52a24b2364" + }, + "outputs": [], + "source": [ + "# Making predictions\n", + "\n", + "y_train_pred = None\n", + "y_test_pred = None" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "_2epncg-SGzr" + }, + "source": [ + "## វិភាគកម្រិតប្រតិបត្តិការរបស់ម៉ូដែល\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Scaling the predictions\n", + "\n", + "y_train_pred = scaler.inverse_transform(y_train_pred)\n", + "y_test_pred = scaler.inverse_transform(y_test_pred)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xmm_YLXhq7gV", + "outputId": "18392f64-4029-49ac-c71a-a4e2411152a1" + }, + "outputs": [], + "source": [ + "# Scaling the original values\n", + "\n", + "y_train = scaler.inverse_transform(y_train)\n", + "y_test = scaler.inverse_transform(y_test)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "u3LBj93coHEi", + "outputId": "d4fd49e8-8c6e-4bb0-8ef9-ca0b26d725b4" + }, + "outputs": [], + "source": [ + "# Extract the timesteps for x-axis\n", + "\n", + "train_timestamps = None\n", + "test_timestamps = None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(25,6))\n", + "# plot original output\n", + "# plot predicted output\n", + "plt.legend(['Actual','Predicted'])\n", + "plt.xlabel('Timestamp')\n", + "plt.title(\"Training data prediction\")\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "LnhzcnYtXHCm", + "outputId": "f5f0d711-f18b-4788-ad21-d4470ea2c02b" + }, + "outputs": [], + "source": [ + "print('MAPE for training data: ', mape(y_train_pred, y_train)*100, '%')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 225 + }, + "id": "53Q02FoqQH4V", + "outputId": "53e2d59b-5075-4765-ad9e-aed56c966583" + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(10,3))\n", + "# plot original output\n", + "# plot predicted output\n", + "plt.legend(['Actual','Predicted'])\n", + "plt.xlabel('Timestamp')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "clOAUH-SXCJG", + "outputId": "a3aa85ff-126a-4a4a-cd9e-90b9cc465ef5" + }, + "outputs": [], + "source": [ + "print('MAPE for testing data: ', mape(y_test_pred, y_test)*100, '%')" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "DHlKvVCId5ue" + }, + "source": [ + "## ការព្យាករណ៍ទិន្នន័យពេញលេញ\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cOFJ45vreO0N", + "outputId": "35628e33-ecf9-4966-8036-f7ea86db6f16" + }, + "outputs": [], + "source": [ + "# Extracting load values as numpy array\n", + "data = None\n", + "\n", + "# Scaling\n", + "data = None\n", + "\n", + "# Transforming to 2D tensor as per model input requirement\n", + "data_timesteps=None\n", + "\n", + "# Selecting inputs and outputs from data\n", + "X, Y = None, None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ESSAdQgwexIi" + }, + "outputs": [], + "source": [ + "# Make model predictions\n", + "\n", + "# Inverse scale and reshape\n", + "Y_pred = None\n", + "Y = None" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 328 + }, + "id": "M_qhihN0RVVX", + "outputId": "a89cb23e-1d35-437f-9d63-8b8907e12f80" + }, + "outputs": [], + "source": [ + "plt.figure(figsize=(30,8))\n", + "# plot original output\n", + "# plot predicted output\n", + "plt.legend(['Actual','Predicted'])\n", + "plt.xlabel('Timestamp')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "AcN7pMYXVGTK", + "outputId": "7e1c2161-47ce-496c-9d86-7ad9ae0df770" + }, + "outputs": [], + "source": [ + "print('MAPE: ', mape(Y_pred, Y)*100, '%')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ចំណាំ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមចំណាំថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុសឬការខ្វះភាពត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមក្នុងភាសាតិជនដើមគួរត្រូវបានចាត់ទុកថាជា ប្រភពត្រឹមត្រូវមួយគត់។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សគឺត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសៗដែលខុសពីនេះអាចកើតមានពីការប្រើប្រាស់ការបកប្រែក្នុងរូបមន្តនេះឡើយ។\n\n" + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "collapsed_sections": [], + "name": "Recurrent_Neural_Networks.ipynb", + "provenance": [] + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} \ No newline at end of file diff --git a/translations/km/7-TimeSeries/README.md b/translations/km/7-TimeSeries/README.md new file mode 100644 index 000000000..edd25ecb5 --- /dev/null +++ b/translations/km/7-TimeSeries/README.md @@ -0,0 +1,30 @@ +# មូលដ្ឋាននៃការព្យាករណ៍រយៈពេល + +តើការព្យាករណ៍រយៈពេលជាអ្វី? វាគឺជាការព្យាករណ៍ព្រឹត្តិការណ៍អនាគតដោយវិភាគនិន្នាការរបស់អតីតកាល។ + +## ប្រធានបទតំបន់៖ ការប្រើប្រាស់អគ្គិសនីជាសកល ✨ + +នៅក្នុងមេរៀនទាំងពីរនេះ អ្នកនឹងត្រូវបានណែនាំអំពីការព្យាករណ៍រយៈពេល ដែលជាផ្នែកដែលមិនធ្លាប់បានគ្រប់គ្រាន់ក្នុងការសិក្សាគ្រឿងចក្ររស់ ដែលយ៉ាងណាមិញមានតម្លៃខ្ពស់សម្រាប់ឧស្សាហកម្ម និងអាជីវកម្ម និងដំណាក់កាលផ្សេងៗ។ ខណៈដែលបណ្ដាញប្រសាទអាចត្រូវបានប្រើដើម្បីបង្កើនប្រយោជន៍នៃគំរូទាំងនេះ យើងនឹងសិក្សាវានៅក្នុងបរិបទនៃគំរូគ្រឿងចក្រប្រពៃណី ព្រោះគំរូជួយព្យាករណ៍លទ្ធផលអនាគតជាផ្អែកលើអតីតកាល។ + +ការផ្តោតលើតំបន់របស់យើងគឺការប្រើប្រាស់អគ្គិសនីនៅលើពិភពលោក ដែលជាតារាងទិន្នន័យគួរឱ្យចាប់អារម្មណ៍ក្នុងការរៀនពីការព្យាករណ៍ការប្រើប្រាស់ថាមពលនៅអនាគតដោយផ្អែកលើគំរូនៃការតមLoadអតីតកាល។ អ្នកអាចមើលឃើញថាប្រភេទការព្យាករណ៍នេះអាចមានប្រយោជន៍ខ្ពស់នៅក្នុងបរិបទអាជីវកម្ម។ + +![electric grid](../../../translated_images/km/electric-grid.0c21d5214db09ffa.webp) + +រូបថតដោយ [Peddi Sai hrithik](https://unsplash.com/@shutter_log?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) នៃបណ្តោយខ្សែអគ្គិសនីនៅលើផ្លូវនៅ Rajasthan នៅលើ [Unsplash](https://unsplash.com/s/photos/electric-india?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) + +## មេរៀន + +1. [មូលដ្ឋាននៃការព្យាករណ៍រយៈពេល](1-Introduction/README.md) +2. [ការកសាងគំរូរយៈពេល ARIMA](2-ARIMA/README.md) +3. [ការកសាង Support Vector Regressor សម្រាប់ការព្យាករណ៍រយៈពេល](3-SVR/README.md) + +## ឥណទាន + +"មូលដ្ឋាននៃការព្យាករណ៍រយៈពេល" ត្រូវបានសរសេរជាផ្លូវការ⚡️ ដោយ [Francesca Lazzeri](https://twitter.com/frlazzeri) និង [Jen Looper](https://twitter.com/jenlooper)។ សៀវភៅកំណត់ត្រានេះបានបង្ហាញលើអ៊ីនធឺណិតជាលើកដំបូងនៅក្នុង [Azure "Deep Learning For Time Series" repo](https://github.com/Azure/DeepLearningForTimeSeriesForecasting) ដែលបានសរសេរដំបូងដោយ Francesca Lazzeri។ មេរៀន SVR ត្រូវបានសរសេរដោយ [Anirban Mukherjee](https://github.com/AnirbanMukherjeeXD)។ + +--- + + +**ការបដិសេធ aansprakelijkheid**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ខណៈពេលយើងខំប្រឹងរកភាពត្រឹមត្រូវ សូមយល់ឲ្យបានថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមដែលសរសេរជាភាសាមនុស្សដើមគួរត្រូវបានពិចារណាថាជាហូរ​ញាតិ​ផ្លូវការ។ សម្រាប់ព័ត៍មានសំខាន់ៗ​ សូមណែនាំឲ្យបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/1-QLearning/README.md b/translations/km/8-Reinforcement/1-QLearning/README.md new file mode 100644 index 000000000..c6e0a2f31 --- /dev/null +++ b/translations/km/8-Reinforcement/1-QLearning/README.md @@ -0,0 +1,328 @@ +# ណែនាំអំពីការរៀន​តាម​ការ​បន្សំ​ឡើងវិញ និង Q-Learning + +![សង្ខេបអំពីការ​បន្សំ​ឡើងវិញ​ក្នុង​ការសិក្សា​ម៉ាស៊ីន​ជា​រូប​រចនាសម្ព័ន្ធ](../../../../translated_images/km/ml-reinforcement.94024374d63348db.webp) +> រូប​រចនាសម្ព័ន្ធ​ដោយ [Tomomi Imura](https://www.twitter.com/girlie_mac) + +ការ​បន្សំ​ឡើងវិញ​ (Reinforcement learning) មានទិដ្ឋភាពសំខាន់បីយ៉ាង៖ តំណាងក្រុមហ៊ុន (agent), ស្ថានភាពមួយចំនួន (states), និងសំណុំសកម្មភាពក្នុងមួយស្ថានភាព។ ដោយអនុវត្តសកម្មភាពមួយក្នុងស្ថានភាពដែលបានកំណត់ នោះតំណាងក្រុមហ៊ុននឹងទទួលបានរង្វាន់មួយ។ ម្ដងទៀតគិតពីហ្គេមកុំព្យូទ័រ Super Mario។ អ្នកគឺ Mario អ្នកកំពុងនៅក្នុងកម្រិតហ្គេមមួយ ឈរនៅជាប់ស្នាមថ្ម។ លើអ្នកមានកញ្ចប់ព្រៃ។ អ្នកជេMario នៅកម្រិតហ្គេម មួយ នៅទីតាំងជាក់លាក់... វាគឺជាស្ថានភាពរបស់អ្នក។ ជំហានមួយទៅស្ដាំ (សកម្មភាព) នឹងធ្វើឲ្យអ្នកធ្លាក់ចុះពីស្នាមថ្ម និងនឹងផ្តល់ពិន្ទុខ្មាស់ៗទាបមួយ។ ទោះជាយ៉ាងណាក៏ដោយ ការចុចប៊ូតុងលោតនឹងឲ្យអ្នកពិន្ទុ ហើយអ្នកនឹងរស់រានមានជីវិត។ វា​ជា​លទ្ធផលវិជ្ជមាន ហើយវាគួរត្រូវបានផ្តល់ពិន្ទុជាលេខវិជ្ជមាន។ + +ដោយប្រើកម្មវិធីបន្សំឡើងវិញ និងម៉ាស៊ីមួយ (ហ្គេម) អ្នកអាចរៀនលេងហ្គេម ដើម្បីបង្កើនរង្វាន់ដែលមានន័យថារស់រានមានជីវិត និងពិន្ទុច្រើនបំផុត។ + +[![ផ្ដើម​នៃ​ការរៀន​តាម​ការ​បន្សំ​ឡើងវិញ](https://img.youtube.com/vi/lDq_en8RNOo/0.jpg)](https://www.youtube.com/watch?v=lDq_en8RNOo) + +> 🎥 ចុចរូបភាពខាងលើដើម្បីស្តាប់ Dmitry ពិភាក្សាអំពីការរៀនតាមការបន្សំឡើងវិញ + +## [សំណួរតេស្តមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ទាមទារ និងការតំឡើង + +ក្នុងមេរៀននេះ យើងនឹងសាកល្បងកូដមួយចំនួននៅក្នុង Python។ អ្នកគួរតែអាចរត់កូដ Jupyter Notebook នៃមេរៀននេះបាន មើលវាណាមួយនៅលើកុំព្យូទ័រឬនៅបណ្តាញផ្សព្វផ្សាយ។ + +អ្នកអាចបើក [សៀវភៅមេរៀន](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/notebook.ipynb) ហើយដើរតាមមេរៀននេះដើម្បីឱ្យបានល្អ។ + +> **សម្គាល់៖** បើអ្នកបើកកូដនេះពីពពក អ្នកត្រូវយកផងដែរ​ឯកសារ [`rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py) ដែលប្រើក្នុងកូដសៀវភៅមេរៀន។ ដាក់វា​ទៅក្នុងថត​ដដែលនឹង​សៀវភៅនេះ។ + +## ណែនាំ + +ក្នុងមេរៀននេះ យើងនឹងសំដែងពីពិភពលោករបស់ **[Peter and the Wolf](https://en.wikipedia.org/wiki/Peter_and_the_Wolf)** ដែលមានការបញ្ចេញបែបបទពីរឿងនិទានតន្រ្តីដោយអ្នកតន្រ្តីរុស្ស៊ី [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev)។ យើងនឹងប្រើ **ការ​បន្សំ​ឡើងវិញ** ដើម្បីឲ្យ Peter ស្វែងរកបរិស្ថានរបស់គាត់ ប្រមូលផ្លែប៉ោមឆ្អិន ហើយចៀសវាងការជួបព្រៃ។ + +**ការ​បន្សំ​ឡើងវិញ** (RL) គឺជាបច្ចេកទេសសិក្សាដែលអាចឲ្យយើងរៀនបានអាកប្បកិរិយាសមរម្យរបស់ **តំណាង (agent)** ក្នុង **បរិស្ថាន** មួយដោយធ្វើតេស្តជាពេលវេលាជាច្រើន។ តំណាងក្នុងបរិស្ថាននេះគួរតែមាន**គោលដៅ**មួយ ដែលកំណត់ដោយ **មុខងាររង្វាន់**។ + +## បរិស្ថាន + +សម្រាប់ភាពងាយស្រួល អោយយើងគិតពីពិភពលោករបស់ Peter ជាផ្ទៃតុរង្វង់ប្រភេទ​ `width` x `height`, ដូចនេះ៖ + +![បរិស្ថានរបស់ Peter](../../../../translated_images/km/environment.40ba3cb66256c93f.webp) + +មុខងារម្ខាងនៃផ្ទៃតូនេះអាចមាន៖ + +* **ដី** ដែល Peter និងសត្វផ្សេងទៀតអាចដើរបាន។ +* **ទឹក** ដែលអ្នកមិនអាចដើរបានច្បាស់។ +* **ដើមឈើ** ឬ **ស្មៅ**, ជាទីកន្លែងដែលអ្នកអាចសម្រាកបាន។ +* **ផ្លែប៉ោម** ដែលតំណាងឲ្យរឿងដែល Peter សប្បាយចិត្តក្នុងការបង្ហាត់ខ្លួន។ +* **ព្រៃ** ដែលគឺគ្រោះថ្នាក់ និងគួរតែចៀសវាង។ + +មានម៉ូឌុល Python មួយផ្សេង [ `rlboard.py`](https://github.com/microsoft/ML-For-Beginners/blob/main/8-Reinforcement/1-QLearning/rlboard.py) ដែលមានកូដសម្រាប់ធ្វើការ​ជាមួយ​បរិស្ថាននេះ។ ដោយសារតែ​កូដនេះមិនសំខាន់សម្រាប់ការយល់ដឹងគ្រប់យ៉ាង យើងនឹងនាំចេញម៉ូឌុលហើយប្រើវាជាឧទាហរណ៍សម្រាប់បង្កើតផ្ទៃតុ (code block 1): + +```python +from rlboard import * + +width, height = 8,8 +m = Board(width,height) +m.randomize(seed=13) +m.plot() +``` + +កូដនេះគួរតែបោះពុម្ពផ្សាយរូបភាពបរិស្ថានដូចខាងលើ។ + +## សកម្មភាព និង គោលការណ៍ + +ក្នុងឧទាហរណ៍របស់យើង គោលដៅរបស់ Peter គឺត្រូវ​រកផ្លែប៉ោម មិនឲ្យជួបប្រទៈព្រៃ និងឧបសគ្គផ្សេងទៀត។ ដើម្បីធ្វើបានបែបនេះ គាត់អាចដើរជុំវិញរហូតដល់ពេលរកឃើញផ្លែប៉ោម។ + +ដូច្នេះ នៅតំណាងតំបន់ណាមួយ គាត់អាចជ្រើសរើសមួយក្នុងចំណោមសកម្មភាពខាងក្រោម៖ ឡើងលើ ចុះក្រោម ឆ្វេង និងស្ដាំ។ + +យើងនឹងកំណត់សកម្មភាពទាំងនោះជាថតសន្ទស្សន៍ និងបម្រុងជាគូសមរម្យនៃបញ្ច្រាស់ទីតាំង។ ឧទាហរណ៍ ការរត់ទៅស្ដាំ (`R`) នឹងផ្គូរផ្គងជាគូ `(1,0)`។ (code block 2): + +```python +actions = { "U" : (0,-1), "D" : (0,1), "L" : (-1,0), "R" : (1,0) } +action_idx = { a : i for i,a in enumerate(actions.keys()) } +``` + +សេចក្ដីសង្ខេប នយោបាយ និងគោលដៅរបស់ស្ថានការណ៍នេះមានដូចខាងក្រោម៖ + +- **នយោបាយ** របស់តំណាងយើង (Peter) ត្រូវបានកំណត់ដោយហៅថា **policy**។ គោលការណ៍គឺជាមុខងារដែលត្រឡប់តម្លៃសកម្មភាពនៅក្នុងស្ថានភាពណាមួយ។ ក្នុងរឿងរបស់យើង ស្ថានភាពមានន័យថា ផ្ទៃតុដែលមានទីតាំងបច្ចុប្បន្នរបស់អ្នកលេង។ + +- **គោលដៅ** របស់ការរៀនបន្សំឡើងវិញ​គឺដើម្បីរៀននយោបាយល្អ ដើម្បីអាចដោះស្រាយបញ្ហារបស់យើងបានយ៉ាងមានប្រសិទ្ធភាព។ ទោះបីជាយ៉ាងណា ជាមូលដ្ឋាន យើងនឹងគិតពីនយោបាយសាមញ្ញមួយហៅថា **random walk**។ + +## Random walk + +មុនដំបូង ចាប់ផ្តើមដោះស្រាយបញ្ហារបស់យើងដោយអនុវត្តន៍នយោបាយ random walk។ ជាមួយ random walk យើងនឹងជ្រើសរើសសកម្មភាពបន្ទាប់ដោយចៃដន្យពីសកម្មភាពដែលមានស្រាប់ រហូតដល់យើងឈានដល់ផ្លែប៉ោម (code block 3)។ + +1. អនុវត្តន៍ random walk ជាមួយកូដខាងក្រោម៖ + + ```python + def random_policy(m): + return random.choice(list(actions)) + + def walk(m,policy,start_position=None): + n = 0 # ចំនួនជំហាន + # កំណត់ទីតាំងដើម + if start_position: + m.human = start_position + else: + m.random_start() + while True: + if m.at() == Board.Cell.apple: + return n # ជោគជ័យ! + if m.at() in [Board.Cell.wolf, Board.Cell.water]: + return -1 # ត្រូវបានខ្មៅបុក ឬ ចុះទឹក + while True: + a = actions[policy(m)] + new_pos = m.move_pos(m.human,a) + if m.is_valid(new_pos) and m.at(new_pos)!=Board.Cell.water: + m.move(a) # អនុវត្តចលនាក្នុងពិតប្រាកដ + break + n+=1 + + walk(m,random_policy) + ``` + + ការហៅទៅម៉ethode `walk` គួរតែបង្រួមវាយតម្លៃរយៈពេលនៃផ្លូវដែលអាចមានប្រែប្រួលពីរប្រតិបត្តិការមួយទៅមួយ។ + +1. រត់បទពិសោធន៍ walk ជាច្រើនដង (ប្រហែល 100 ដង) ហើយបោះពុម្ពផ្សាយព័ត៌មានស Estadística (code block 4): + + ```python + def print_statistics(policy): + s,w,n = 0,0,0 + for _ in range(100): + z = walk(m,policy) + if z<0: + w+=1 + else: + s += z + n += 1 + print(f"Average path length = {s/n}, eaten by wolf: {w} times") + + print_statistics(random_policy) + ``` + + សូមចំណាំថា មធ្យមភាពរយៈពេលផ្លូវស្នាក់នៅប្រហែល 30-40 ជំហាន ដែលច្រើនខ្លាំង បើគិតពីចម្ងាយទៅផ្លែប៉ោមឆាប់ៗប្រហែល 5-6 ជំហានប៉ុណ្ណោះ។ + + អ្នកក៏អាចមើលឃើញចលនារបស់ Peter ខណៈពេល random walk បានដូចក្នុងរូបនេះ៖ + + ![ការដើរចៃដន្យរបស់ Peter](../../../../8-Reinforcement/1-QLearning/images/random_walk.gif) + +## មុខងាររង្វាន់ + +ដើម្បីធ្វើឲ្យនយោបាយយើងមានប្រាជ្ញាធំឡើង យើងត្រូវយល់ពីចលនាណាដែល "ល្អ" ជាងផ្សេងទៀត។ ដើម្បីធ្វើបាននេះ យើងត្រូវកំណត់គោលដៅរបស់យើង។ + +គោលដៅអាចកំណត់ជាមុខងារ **reward function** ដែលនឹងត្រឡប់តម្លៃពិន្ទុមួយសម្រាប់ស្ថានភាពនីមួយៗ។ ចំនួនដែលខ្ពស់ជាងនឹងមានមុខងាររង្វាន់ល្អប្រសើរជាង។ (code block 5) + +```python +move_reward = -0.1 +goal_reward = 10 +end_reward = -10 + +def reward(m,pos=None): + pos = pos or m.human + if not m.is_valid(pos): + return end_reward + x = m.at(pos) + if x==Board.Cell.water or x == Board.Cell.wolf: + return end_reward + if x==Board.Cell.apple: + return goal_reward + return move_reward +``` + +រឿងគួរឲ្យចាប់អារម្មណ៍​អំពីមុខងាររង្វាន់ គឺថា នៅភាគច្រើន *យើងត្រូវបានផ្តល់រង្វាន់ដ៏សំខាន់នៅចុងបញ្ចប់ហ្គេមប៉ុណ្ណោះ*។ នេះមានន័យថា អាល់ហ្គរីធម៍របស់យើងគួរតែចងចាំ "ជំហានល្អ" ដែលនាំឲ្យមានរង្វាន់វិជ្ជមាននៅចុងបញ្ចប់ ហើយបង្កើនសារៈសំខាន់របស់វា។ ស្រដៀងគ្នា ចលនាទាំងអស់ដែលនាំឲ្យមានលទ្ធផលអាក្រក់ គួរតែត្រូវបានទប់ស្កាត់។ + +## Q-Learning + +អាល់ហ្គរីធម៍មួយដែលយើងនឹងពិភាក្សានៅទីនេះហៅថា **Q-Learning**។ នៅក្នុងអាល់ហ្គរីធម៍នេះ នយោបាយត្រូវបានកំណត់ដោយមុខងារ (ឬរចនាសម្ព័ន្ធទិន្នន័យ)ហៅថា **Q-Table**។ វាកត់ត្រា "ភាពល្អ" នៃសកម្មភាពនីមួយៗក្នុងស្ថានភាពណាមួយ។ + +វាហៅថា Q-Table ព្រោះវាមានការសម្របសម្រួលក្នុងការតំណាងជាតារាង ឬ អារ៉េពហុវិមាត្រ។ ពីព្រោះផ្ទៃតុរបស់យើងមានវិមាត្រ `width` x `height` យើងអាចតំណាង Q-Table ដោយប្រើ numpy array ដែលមានទំហំ `width` x `height` x `len(actions)`: (code block 6) + +```python +Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions) +``` + +ចំណាំថា យើងចាប់ផ្តើមជាមួយតម្លៃស្មើគ្នា ទាំងអស់នៅក្នុង Q-Table ក្នុងករណីនេះ - 0.25។ វាសមរាប់នឹង "នយោបាយដើរចៃដន្យ" ព្រោះចលនាទាំងអស់ក្នុងស្ថានភាពនីមួយៗស្មើគ្នាទាំងមូល។ យើងអាចផ្តល់បន្ទាត់ Q ទៅម៉ethode `plot` ដើម្បីបង្ហាញតារាងលើផ្ទៃតុ `m.plot(Q)`។ + +![បរិស្ថានរបស់ Peter](../../../../translated_images/km/env_init.04e8f26d2d60089e.webp) + +នៅជិតមជ្ឈមណ្ឌលនៃកោណនីមួយៗ មាន "ប្រតិកម្ម" ដែលបង្ហាញទិសដៅចលនារបស់ក្រុមហ៊ុន។ ពីព្រោះទិសដៅទាំងអស់ស្មើគ្នា មានរង្វង់តូចបង្ហាញ។ + +ឥឡូវនេះ យើងត្រូវបើកចលនា ស្វែងរកបរិស្ថាន ហើយរៀនចែកចាយតម្លៃ Q-Table ឲ្យប្រសើរជាងមុន ដែលនឹងអនុញ្ញាតឲ្យរកបានផ្លូវទៅផ្លែប៉ោមយ៉ាងលឿន។ + +## សារសំខាន់នៃ Q-Learning៖ សមីការបែលមែន + +ពេលដែលយើងចាប់ផ្តើមចលនា សកម្មភាពនីមួយៗនឹងមានរង្វាន់ផ្សេងៗគ្នា ឧ. យើងអាចជ្រើសរើសសកម្មភាពបន្ទាប់ដោយផ្អែកលើរង្វាន់ភ្លាមៗខ្ពស់បំផុត។ ទោះបីយ៉ាងណា នៅភាគច្រើនស្ថានភាព ការផ្លាស់ទីមួយនឹងមិនអាចសម្រេចបានគោលដៅបំផុតក្នុងការទៅដល់ផ្លែប៉ោម ហើយហេតុនេះយើងមិនអាចសម្រេចចិត្តភ្លាមថាទិសណាដែលល្អជាង។ + +> ចងចាំថា មិនមែនលទ្ធផលភ្លាមៗជារឿងសំខាន់ទេ តែជារឿងសំខាន់ជាងគេគឺលទ្ធផលចុងក្រោយ ដែលយើងនឹងទទួលក្រោយបញ្ចប់ការវាយតម្លៃ។ + +ដើម្បីគិតគូរប្រព័ន្ធរង្វាន់យឺតនេះ យើងត្រូវប្រើគោលការណ៍ **[កម្មវិធីដំណើរការជាថ្មី](https://en.wikipedia.org/wiki/Dynamic_programming)** ដែលអនុញ្ញាតឲ្យយើងគិតបញ្ហារបស់យើងវិញជាថ្មី (recursively)។ + +សន្យាថា ឥឡូវនេះយើងនៅស្ថានភាព *s* ហើយយើងចង់ចាកចេញទៅស្ថានភាពបន្ទាប់ *s'*។ ដោយធ្វើដូចនេះ យើងនឹងទទួលរង្វាន់ភ្លាមៗ *r(s,a)* ដែលកំណត់ដោយមុខងាររង្វាន់ បូកបន្ថែមរង្វាន់នៅអនាគត។ ប្រសិនបើយើងសន្យាថា Q-Table របស់យើងបង្ហាញបរិមាណល្អនៃសកម្មភាពនីមួយៗ ក្នុងស្ថានភាព *s'* យើងនឹងជ្រើសរើសសកម្មភាព *a* ដែលផ្គូរផ្គងតម្លៃអតិបរមា *Q(s',a')*។ ដូចនេះ រង្វាន់ល្អបំផុតនៅស្ថានភាព *s* នឹងកំណត់ជាទម្រង់ `max`a'*Q(s',a')* (អតិបរមានេះគិតលើសកម្មភាពទាំងអស់ *a'* ក្នុងស្ថានភាព *s'*)។ + +នេះផ្តល់រូបមន្ត **Bellman** សម្រាប់គណនាតម្លៃ Q-Table នៅស្ថានភាព *s*, ក្រោមសកម្មភាព *a*: + + + +នៅទីនេះ γ គឺជាតួអក្សរ​ឈ្មោះ​ថា **discount factor** ដែលកំណត់ថា តើអ្នកគួរតែពេញចិត្តរង្វាន់ចាស់ (បច្ចុប្បន្ន) ឬរង្វាន់អនាគតច្រើនប៉ុណ្ណា។ + +## អាល់ហ្គរីធម៍រៀន + +ដោយគោលវិធីខាងលើ យើងអាចសរសេរកូដ pseudo-code សម្រាប់អាល់ហ្គរីធម៍រៀន: + +* ចាប់ផ្តើម Q-Table Q ជាមួយតម្លៃស្មើគ្នាសម្រាប់ស្ថានភាព និងសកម្មភាពទាំងអស់ +* កំណត់អត្រាសិក្សា α ← 1 +* ធ្វើការផ្តូរសម្លេងជាច្រើនដង + 1. ចាប់ផ្តើមពីទីតាំងចៃដន្យ + 1. អនុវត្ត + 1. ជ្រើសសកម្មភាព *a* នៅស្ថានភាព *s* + 2. អនុវត្តសកម្មភាព ដើម្បីចាកចេញទៅស្ថានភាពថ្មី *s'* + 3. ប្រសិនបើយើងជួបស្ថានភាពបញ្ចប់ហ្គេម ឬ រង្វាន់សរុបតូចពេក - បញ្ឈប់ការវាយតម្លៃ + 4. គណនារង្វាន់ *r* នៅស្ថានភាពថ្មី + 5. បន្ទាន់សម័យមុខងារ Q តាមរូបមន្ត Bellman: *Q(s,a)* ← *(1-α)Q(s,a)+α(r+γ maxa'Q(s',a'))* + 6. *s* ← *s'* + 7. បន្ទាន់សម័យរង្វាន់សរុប និងបន្ថយ α។ + +## ប្រើប្រាស់​ប្រយោជន៍ និង​ស្វែងរក + +ក្នុងអាល់ហ្គរីធម៍ខាងលើ យើងមិនបានបញ្ជាក់របៀបជាក់លាក់សម្រាប់ជ្រើសរើសសកម្មភាពនៅជំហាន 2.1 ទេ។ ប្រសិនបើយើងជ្រើសរើសសកម្មភាពជាចៃដន្យ យើងនឹង **ស្វែងរក** បរិស្ថាន ដោយចៃដន្យ ហើយយើងមានហានិភ័យគេងស្លាប់ជាញឹកញាប់ និងស្វែងរកតំបន់ដែលធម្មតាមិនទៅ។ ជម្រើសមួយផ្សេងគឺ **ប្រើប្រាស់** តម្លៃ Q-Table ដែលយើងបានស្គាល់ ហើយក៏ជ្រើសរើសសកម្មភាពល្អបំផុត (ដែលមានតម្លៃ Q-High) នៅស្ថានភាព *s*។ ទោះជាយ៉ាងណា វានឹងខកខានឱ្យយើងមិនបានស្វែងរកបរិស្ថានផ្សេងទៀត ហើយវាអាចធ្វើឱ្យយើងមិនរកបានដំណោះស្រាយល្អបំផុត។ + +ដូច្នេះ វិធីល្អបំផុតគឺត្រូវរកតុល្យភាពចំពោះការស្វែងរក និងការប្រើប្រាស់។ វានេះអាចធ្វើបានដោយជ្រើសរើសសកម្មភាពនៅស្ថានភាព *s* ជាមួយប្រូបាបាប្រាច្រើនដែលសមាមាត្រដោយតម្លៃនៅក្នុង Q-Table។ នៅដំបូង ពេលតម្លៃ Q-Table ស្មើគ្នា វានឹងស្មើនឹងជ្រើសរើសចៃដន្យ ប៉ុន្តែពេលយើងរៀនពីបរិស្ថាន វានឹងនាំឲ្យយើងជ្រើសតាមផ្លូវល្អបំផុត ខណៈដែលអនុញ្ញាតឲ្យតំណាងបានជ្រើសផ្លូវមិនបានស្វែងរកម្តងម្ដង។ + +## អនុវត្តក្នុង Python + +ឥឡូវនេះយើងរួចរាល់ក្នុងការអនុវត្តន៍អាល់ហ្គរីធម៍រៀន។ មុននឹងធ្វើបេះដូង យើងត្រូវការមុខងារមួយដែលកំណត់លេខចៃដន្យនៅក្នុង Q-Table ទៅជា vector នៃប្រូបាបាប្រកបដោយតម្លៃសកម្មភាព។ + +1. បង្កើតមុខងារ `probs()`៖ + + ```python + def probs(v,eps=1e-4): + v = v-v.min()+eps + v = v/v.sum() + return v + ``` + + យើងបន្ថែម `eps` ទៅ vector ដើម ដើម្បីជៀសវាងការបែងចែកដោយ 0 ក្នុងករណីដំបូង ដែលគ្រប់ធាតុក្នុងវេកទ័រត្រូវគ្នា។ + +រត់អាល់ហ្គរីធម៍រៀន ៥០០០ ដង ដែលហៅថា **epochs**: (code block 8) + +```python + for epoch in range(5000): + + # ជ្រើសចំណុចដំបូង + m.random_start() + + # ចាប់ផ្តើមធ្វើដំណើរ + n=0 + cum_reward = 0 + while True: + x,y = m.human + v = probs(Q[x,y]) + a = random.choices(list(actions),weights=v)[0] + dpos = actions[a] + m.move(dpos,check_correctness=False) # យើងអនុញ្ញាតឲ្យអ្នកលេងចេញក្រៅផ្ទៃក្តារដែលបញ្ចប់វគ្គនេះ + r = reward(m) + cum_reward += r + if r==end_reward or cum_reward < -1000: + lpath.append(n) + break + alpha = np.exp(-n / 10e5) + gamma = 0.5 + 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 +``` + +បន្ទាប់ពីអនុវត្តអាល់ហ្គរីធម៍នេះ Q-Table គួរតែត្រូវបានបន្ទាន់សម័យដោយតម្លៃណែនាំភាពនៃសកម្មភាពនានា នៅគ្រប់ជំហាន។ យើងអាចព្យាយាមបង្ហាញ Q-Table ដោយគូរវ៉ិចទ័រមួយនៅគ្រប់កោណដែលបង្ហាញទិសដៅចលនា។ សម្រាប់ភាពងាយស្រួល យើងគូររង្វង់តូចជំនួសមួកសូមបង្ហាញសញ្ញាបារម្ភ។ + + + +## ពិនិត្យនយោបាយ + +ដោយសារតែ Q-Table បង្ហាញភាពល្អនៃសកម្មភាពនីមួយៗនៅលើស្ថានភាពនីមួយៗ វាជារឿងងាយស្រួលក្នុងការប្រើវាសម្រាប់កំណត់វិធីធ្វើដំណើរដោយមានប្រសិទ្ធភាពក្នុងពិភពលោករបស់យើង។ ជាទូទៅ យើងអាចជ្រើសសកម្មភាពដែលផ្គូរភាគតូចជាមួយតម្លៃ Q-Table ខ្ពស់បំផុត៖ (code block 9) + +```python +def qpolicy_strict(m): + x,y = m.human + v = probs(Q[x,y]) + a = list(actions)[np.argmax(v)] + return a + +walk(m,qpolicy_strict) +``` + +> បើអ្នកព្យាយាមកូដខាងលើជាច្រើនដង អ្នកអាចទទួលស្គាល់ថា ពេលខ្លះវា "អាប់" ហើយអ្នកត្រូវចុចប៊ូតុង STOP ក្នុងសៀវភៅកំណត់ត្រាដើម្បីរំខានវា។ វានេះកើតឡើងពីព្រោះអាចមានស្ថានភាពពេលពីរដែល "បញ្ចេញ" ទៅគ្នាជាមួយនឹងតម្លៃ Q-Value ផ្ទុះតម្លៃល្អបំផុត ដែលក្នុងករណីនេះភ្នាក់ងារនៅចុងក្រោយបានចុះចតរវាងស្ថានភាពទាំងនោះដោយមិនចប់។ + +## 🚀ការ​បញ្ចេញ​បញ្ហា + +> **បញ្ហា 1:** ផ្លាស់ប្ដូរ​មុខងារ `walk` ដើម្បីកំណត់កម្រាស់ផ្លូវអតិបរមារពីរំលងជំហានមួយចំនួន (ឧ. 100), ហើយមើលកូដខាងលើត្រឡប់តម្លៃនេះពេលឱ្យពេល។ + +> **បញ្ហា 2:** ផ្លាស់ប្ដូរ​មុខងារ `walk` ដូច្នេះវាមិនត្រឡប់ទៅកន្លែងដែលវាធ្លាប់បានទៅមុនទេ។ វានឹងការពារឲ្យ​`walk` មិនស្ទឹងច្រវាក់ ប៉ុន្តែភ្នាក់ងារអាចនៅតែត្រូវចាប់ខ្ទប់នៅកន្លែងមួយដែលវាមិនអាចគេចពីបានទេ។ + +## ការរុករកផ្លូវ + +គោលការណ៍រាវណាវល្អជាងគេសម្រាប់នាវាពីរបៀបដែលយើងបានប្រើនៅពេលហ្វឹកហាត់ ដែលបញ្ចូលទាំងការប្រើប្រាស់ និងការរុករក។ ក្នុងគោលការណ៍នេះ យើងនឹងជ្រើសរើសសកម្មភាពមួយចំនួនជាមួយនឹងប្រហាក់ប្រហែលតម្លៃ។ វីធីសាស្រ្តនេះនៅតែអាចបណ្តាលឲ្យភ្នាក់ងារត្រឡប់ទៅកន្លែងដែលវាធ្លាប់បានរុករកមកហើយទេ ប៉ុន្តែដូចដែលអ្នកអាចមើលពីកូដខាងក្រោម វាបង្វិលទៅផ្លូវមធ្យមខ្លីទៅកាន់ទីតាំងដែលចង់បាន (ចងចាំថា `print_statistics` ដំណើរការសមហèlement 100 ដង): (ប្លុកកូដ 10) + +```python +def qpolicy(m): + x,y = m.human + v = probs(Q[x,y]) + a = random.choices(list(actions),weights=v)[0] + return a + +print_statistics(qpolicy) +``` + +បន្ទាប់ពីរត់កូដនេះ អ្នកគួរតែទទួលបានប្លង់មធ្យមខ្លីជាងមុន នៅក្នុងចន្លោះ 3-6។ + +## ការស្រាវជ្រាវដំណើរការសិក្សា + +ដូចដែលយើងបានបញ្ជាក់ ដំណើរការសិក្សាគឺជាការបង្កើតតុល្យភាពចន្លោះការរុករក និងការរួមបញ្ចូលចំណេះដឹងដែលទទួលបានអំពីរចនាសម្ព័ន្ធនៃលំហប្រព័ន្ធបញ្ហា។ យើងបានឃើញថាលទ្ធផលនៃការសិក្សា (សមត្ថភាពជួយភ្នាក់ងារស្វែងរកផ្លូវខ្លីទៅគោលដៅ) បានកែលម្អឡើង ប៉ុន្តែវាក៏គួរឱ្យចាប់អារម្មណ៍ក្នុងការពិនិត្យមើលថាពេលណាគន្លងផ្លូវមធ្យមបង្ហាញភាពយ៉ាងដូចម្តេចក្នុងដំណើរការសិក្សា៖ + + + +ការសិក្សាអាចសង្ខេបបានជា៖ + +- **ប្រវែងផ្លូវមធ្យមកើនឡើង**។ ដែលយើងឃើញនៅទីនេះគឺ នៅដំបូងប្រវែងផ្លូវមធ្យមកើនឡើង។ អាចជាហេតុថា ពេលដែលយើងមិនបានដឹងអ្វីពីបរិស្ថាន យើងមានឱកាសចាប់ខ្ទប់ក្នុងស្ថានភាពអាក្រក់ទឹកឬខ្មោចទឹក។ ពេលដែលយើងរៀនបានច្រើន និងចាប់ផ្តើមប្រើប្រាស់ចំណេះដឹងនេះ យើងអាចរុករកបរិស្ថានរយះពេលវែងជាងមុន ប៉ុន្តែយើងមិនបានដឹងថាផ្លែប៉ោមនៅឯណាកាន់តែច្បាស់។ + +- **ប្រវែងផ្លូវកាត់បន្ថយ ពេលដែលយើងរៀនច្រើនឡើង**។ ពេលដែលយើងរៀនបានគ្រប់គ្រាន់ វាលែងមានភាពងាយស្រួលសម្រាប់ភ្នាក់ងារដើម្បីសម្រេចគោលដៅ ហើយប្រវែងផ្លូវចាប់ផ្តើមកាត់បន្ថយ។ ទោះជាយ៉ាងណា យើងនៅតែបើកចំហសម្រាប់ការរុករក ដូច្នេះយើងអាចបែកចេញពីផ្លូវល្អបំផុត ហើយស្វែងរកជម្រើសថ្មីដែលធ្វើឲ្យប្រវែងផ្លូវវែងជាងតម្លៃអតិបរមា។ + +- **ប្រវែងកើនឡើងយ៉ាងខ្លាំង**។ អ្វីដែលយើងក៏សង្កេតឃើញលើក្រាបនេះ គឺនៅពេលមួយ ប្រវែងឡើងយ៉ាងក្លាម។ វាសម្ដីថាដំណើរការនេះមានលក្ខណៈចៃដន្យ ហើយយើងអាច "បំផ្លាញ" តម្លៃក្នុងតារាង Q-Table តាមរយៈការលိုតត្រង់ពួកវាដោយតម្លៃថ្មីៗ។ លទ្ធផលនេះគួរត្រូវបានកាត់បន្ថយដោយការកាត់បន្ថយអត្រាសិក្សា (ឧ. នៅចុងការហ្វឹកហាត់ យើងកែតម្រូវតម្លៃ Q-Table ដោយតម្លៃតិចតួច)។ + +សរុបគឺ វាអឺសមួយយ៉ាងសំខាន់ក្នុងការចាំបាច់ថា ជោគជ័យ និងគុណភាពនៃដំណើរការសិក្សាអាស្រ័យយ៉ាងខ្លាំងលើប៉ារ៉ាម៉ែត្រ ដូចជា អត្រាសិក្សា ការបន្ដអត្រាសិក្សា និងអត្រាបញ្ចុះតម្លៃ។ ពួកវាត្រូវបានហៅថា **hyperparameters** ដើម្បីបំបែកពួកវាពី **parameters** ដែលយើងបង្កើតក្នុងដំណើរការហ្វឹកហាត់ (ឧ. តម្លៃ Q-Table)។ ដំណើរការស្វែងរកតម្លៃ hyperparameter ល្អបំផុត​ត្រូវបានហៅថា **hyperparameter optimization** ហើយវាគួរឱ្យមានប្រធានបទដាច់ដោយឡែក។ + +## [ការប្រលងក្រោយមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការចាត់ចែង +[ពិភពលោកមានភាពជាក់ស្តែងបន្ថែម](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការមិនត្រឹមត្រូវមួយចំនូន។ ឯកសារដើមជាភាសាតំបន់របស់វាគួរត្រូវបានចាត់ទុកថាជារបស់ផ្លូវការសម្រាប់ព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ ប្រសិនបើមានការបកប្រែដោយមនុស្សជំនាញមានកិច្ចសម្របសម្រួល។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/1-QLearning/assignment.md b/translations/km/8-Reinforcement/1-QLearning/assignment.md new file mode 100644 index 000000000..514d029a8 --- /dev/null +++ b/translations/km/8-Reinforcement/1-QLearning/assignment.md @@ -0,0 +1,34 @@ +# ពិភពវិជ្ជមានជាងមុន + +នៅក្នុងស្ថានភាពរបស់យើង Peter អាចផ្លាស់ទីជុំវិញប្រហែលមិនត្រូវបានសំបូរឬអស់កំលាំងទេ។ ក្នុងពិភពដែលមានភាពយ៉ាងជាក់ស្តែងជាងនេះ យើងត្រូវតែអង្គុយនិងសម្រាកពីពេលទៅពេល និងផ្គត់ផ្គង់អាហារ ដើម្បីផ្គត់ផ្គង់ខ្លួនគាត់ផងដែរ។ យើងនឹងបង្កើតពិភពរបស់យើងឲ្យមានភាពយ៉ាងជាក់ស្តែងជាងនេះ ដោយអនុវត្តបញ្ជាទាំងនេះ៖ + +1. ដោយផ្លាស់ទីពីកន្លែងមួយទៅកន្លែងមួយទៀត Peter នឹងបាត់បង់ **ថាមពល** និងទទួលបាន **ភាពអស់កំលាំង**។ +2. Peter អាចទទួលថាមពលបន្ថែមដោយការញាំផ្លែប៉ោម។ +3. Peter អាចលុបបំបាត់ភាពអស់កំលាំងដោយការសម្រាកនៅក្រោមដើមឈើឬលើឱកាសស្មៅ (ឧទាហរណ៍ដើរចូលទៅកន្លែងលើក្តារដែលមានដើមឈើឬស្មៅ - សួនបៃតង) +4. Peter ត្រូវតែស្វែងរក និងសម្លាប់ខ្លា +5. ដើម្បីសម្លាប់ខ្លា Peter ត្រូវតែមានកម្រិតថាមពល និងភាពអស់កំលាំងជាមួយគ្នា ប្រសិនបើមិនដូចនេះគាត់នឹងបាត់បង់ក្នុងការប្រយុទ្ធ។ + +## សេចក្ដីណែនាំ + +ប្រើបណ្ដុំ​សៀវភៅ [notebook.ipynb](notebook.ipynb) ដើមជាចំណុចចាប់ផ្តើមសម្រាប់ដំណោះស្រាយរបស់អ្នក។ + +កែប្រែកម្មវិធី​ផ្តល់រង្វាន់​ខាងលើ​តាមតាមច្បាប់នៃហ្គេម រត់ជាលំហាត់កំរើកចរន្តការ​ស្វែងយល់​ដើម្បីរៀនយុទ្ធសាស្រ្តល្អបំផុតសម្រាប់ឈ្នះហ្គេម ហើយប្រៀបធៀបទិន្នន័យរបស់រត់ចៃដន្យជាមួយនឹងគណនីរបស់អ្នកដោយសារជាផ្នែកចំនួនហ្គេមដែលឈ្នះ និងបាត់។ + +> **សម្គាល់**៖ ក្នុងពិភពថ្មីរបស់អ្នក ស្ថានភាពកាន់តែស្មុគស្មាញ ហើយក្រៅពីទីតាំងមនុស្ស ហើយវាក៏រួមបញ្ចូលទាំងកម្រិតភាពអស់កម្លាំង និងថាមពលផងដែរ។ អ្នកអាចជ្រើសរើសតំណាងស្ថានភាពជាតុំ (Board,energy,fatigue) ឬកំណត់ថ្នាក់សម្រាប់ស្ថានភាព (អ្នកក៏អាចចង់ដកថ្នាក់ពី `Board`) ឬកែប្រែថ្នាក់ `Board` ដើមនៅក្នុង [rlboard.py](../../../../8-Reinforcement/1-QLearning/rlboard.py) ។ + +ក្នុងដំណោះស្រាយរបស់អ្នក សូមរក្សាកូដដែលទទួលខុសត្រូវសម្រាប់យុទ្ធសាស្រ្តចៃដន្យ ហើយប្រៀបធៀបទិន្នន័យរបស់គណនីរបស់អ្នកជាមួយចៃដន្យនៅចុងបញ្ចប់។ + +> **សម្គាល់**៖ អ្នកប្រហែលជាត្រូវតែបត់បែនពាក្យផ្គុំកូដដើម្បីឲ្យវាដំណើរការ បានពិសេសគឺចំនួនវគ្គ។ ព្រោះការ​ជោគជ័យរបស់ហ្គេម​ (ប្រយុទ្ធនឹងខ្លា) គឺជាព្រឹត្តិការណ៍កាន់តែខ្សោយ អ្នកអាចរំពឹងថេលំហរការបណ្តុះបណ្តាលត្រូវបានវែងជាងនេះ។ + +## មាតិកាគន្លងវាយតម្លៃ + +| មាតិកា | ល្អបំផុត | គ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| | សៀវភៅត្រូវបានបង្ហាញជាមួយនឹងការបញ្ចាក់ច្បាប់ពិភពថ្មី កាលីគូស្វែងយល់ Q-Learning និងការពិពណ៌នាផ្នែកអត្ថបទខ្លះ. Q-Learning អាចធ្វើបានល្អឥតខ្ចោះបរិមាណលទ្ធផលបើប្រៀបធៀបនឹងចៃដន្យ។ | សៀវភៅត្រូវបានបង្ហាញ កាលីគូស្វែងយល់ Q-Learning ត្រូវបានអនុវត្តន៏ និងធ្វើឲ្យលទ្ធផលប្រសើរឡើងបើប្រៀបធៀបនឹងចៃដន្យ ប៉ុន្ដែមិនយ៉ាងសំខាន់ទេ; ឬសៀវភៅបង្ហាញការពិពណ៌នាអន់និងកូដមិនមានរចនាសម្ព័ន្ធល្អ | មានកិច្ចខិតខំខ្លះក្នុងការកំណត់ច្បាប់ពិភពឡើងវិញ ប៉ុន្តែកលីគូស្វែងយល់ Q-Learning មិនដំណើរការឬមិនបានកំណត់គោលការណ៍ផ្តល់រង្វាន់ឲ្យពេញលេញ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់អោយដឹងថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចផ្ទុកកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានគេចាត់ទុកជារៀបចំអំណាចផ្លូវការជាភាសារបស់វា ប្រសិនបើមានព័ត៌មានសំខាន់ គួរត្រូវបានបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុស ណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/1-QLearning/notebook.ipynb b/translations/km/8-Reinforcement/1-QLearning/notebook.ipynb new file mode 100644 index 000000000..807f22aa9 --- /dev/null +++ b/translations/km/8-Reinforcement/1-QLearning/notebook.ipynb @@ -0,0 +1,407 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# Peter and the Wolf: មូលដ្ឋានរៀនវិធីជំរុញ\n", + "\n", + "នៅក្នុងមេរៀននេះ យើងនឹងរៀនពីរបៀបដាក់អនុវត្តវិធីជំរុញទៅលើបញ្ហាស្វែងរកផ្លូវ។ ការតាំងបាតអនុគឺបានលើកគំនិតពីរឿងភាគតន្ត្រី [Peter and the Wolf](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) ដែលចងកទុក្ខដោយអ្នកបង្កើតតន្ត្រីរុស្ស៊ី [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev)។ វាជារឿងនិទានអំពីក្មេងពាយកូនថ្មី Peter ដែលមានទៀងទាត់ និងចូលទៅក្រៅផ្ទះរបស់គាត់ក្នុងចន្លោះព្រៃដើម្បីចាប់ច្យួរឆ្កែព្រៃមួយ។ យើងនឹងបណ្តុះបណ្តាល算法ម៉ាស៊ីនដែលនឹងជួយឲ្យ Peter ស្វែងរកទីតាំងជុំវិញ និងបង្កើតផែនទីរុករកអោយល្អបំផុត។\n", + "\n", + "ដំបូង យើងមកនាំចូលបណ្ណាល័យមានប្រយោជន៍មួយចំនួន៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import random\n", + "import math" + ] + }, + { + "source": [ + "## គម្របការសិក្សាការបង្រៀនតាមការបញ្ជោត\n", + "\n", + "**ការបង្រៀនតាមការបញ្ជោត** (RL) គឺជាបច្ចេកវិទ្យាសិក្សាដែលអនុញ្ញាតឲ្យយើងសិក្សាលទ្ធផលបែបបទល្អបំផុតរបស់ **ភាគីភាគីAgent** មួយនៅក្នុង **បរិស្ថាន** មួយដោយប្រតិបត្តិការសាកល្បងជាច្រើន។ ភាគីAgent នៅក្នុងបរិស្ថាននេះគួរតែមាន **គោលបំណង** ខ្លះ ដែលបានកំណត់ដោយ **មុខងារប្រាក់រង្វាន់**។\n", + "\n", + "## បរិស្ថាន\n", + "\n", + "សម្រាប់ភាពសាមញ្ញ យើងនឹងនិយាយពីពិភព Peter ជាក្តារបួនជ្រុងទំហំ `width` x `height`។ រៀងរាល់ក្រឡាចាននៅលើក្តារនេះអាចមានតែ៖\n", + "* **ដី**, ដែល Peter និងសត្វផ្សេងទៀតអាចដើរពីលើ\n", + "* **ទឹក**, ដែលអ្នកមិនអាចដើរពីលើបានច្បាស់លាស់\n", + "* **ដើមឈើ** ឬ **ស្មៅ** - ជាទីកន្លែងដែលអ្នកអាចសម្រាកបាន\n", + "* **ផ្លែប៉ោម**, ដែលតំណាងឲ្យអ្វីដែល Peter នឹងរីករាយក្នុងការស្វែងរកដើម្បីបរិភោគខ្លួន\n", + "* **ខ្លាឆ្កែព្រៃ**, ដែលគួរតែចៀសវាងព្រោះវាអន្ដរាយ\n", + "\n", + "ដើម្បីអនុវត្តការងារជាមួយបរិស្ថាននេះ យើងនឹងកំណត់ថ្នាក់មួយហៅថា `Board`។ ដើម្បីមិនធ្វើឲ្យកំណត់ត្រានេះរុំរឿងពេក យើងបានផ្ទេរកូដទាំងអស់ដែលទាក់ទងនឹងការប្រើប្រាស់ក្តារនេះទៅក្នុងម៉ូឌុល `rlboard` ដែលយើងនឹងនាំចូលឥឡូវនេះ។ អ្នកអាចមើលក្នុងម៉ូឌុលនេះដើម្បីទទួលបានព័ត៌មានលម្អិតបន្ថែមអំពីចំណុចក្នុងការអនុវត្ត។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "ឥឡូវនេះយើងចាប់ផ្តើមបង្កើតក្រុមហ៊ុនចៃដន្យមួយ ហើយមើលថាវាហាក់ដូចម្តេច៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "# code block 1" + ] + }, + { + "source": [ + "## សកម្មភាព និងគោលនយោបាយ\n", + "\n", + "ក្នុងឧទាហរណ៍របស់យើង គោលបំណងរបស់ Peter គឺរកមើលផ្លែប៉ោមមួយ ខណៈដែលជៀសវាងខ្លាឆ្កែក្នុងនិងឧបសគ្គផ្សេងទៀត។ កំណត់សកម្មភាពទាំងនោះជាថតសម្រាប់ហើយផ្គូផ្គងពួកវាជាមួយគូជួរម៉ោងតាមបម្លែងកូអរដោនេដែលត្រូវគ្នា។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "# code block 2" + ] + }, + { + "source": [ + "យុទ្ធសាស្ត្រ​របស់ភ្នាក់ងារយើង (Peter) ត្រូវ​បាន​កំណត់​ដោយ​អ្វី​ដែលហៅ​ថា **គោលនយោបាយ**។ តោះ​ចាប់​ផ្តើម​ពិចារណា​គោល​នយោបាយ​ដែលសាមញ្ញបំផុតហៅ​ថា **ដើរជុំវិញ​ដោយចៃដន្យ**។\n", + "\n", + "## ដើរជុំវិញ​ដោយចៃដន្យ\n", + "\n", + "មុន​ផង ដើម្បី​ដោះស្រាយ​បញ្ហារ​របស់​យើង យើង​នឹង​អនុវត្ត​យុទ្ធសាស្ត្រ​ដើរជុំវិញ​ដោយចៃដន្យ។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "# Let's run a random walk experiment several times and see the average number of steps taken: code block 3" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "# code block 4" + ] + }, + { + "source": [ + "## អ្នកផ្ដល់រង្វាន់\n", + "\n", + "ដើម្បីធ្វើឱ្យគោលនយោបាយរបស់យើងមានការចេះដឹងច្រើនជាងមុន អ្នកត្រូវការយល់ដឹងថា ចលនាណាខ្លះ \"ល្អជាង\" ចលនាថ្មីៗផ្សេងទៀត។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "#code block 5" + ] + }, + { + "source": [ + "## ការរៀន Q\n", + "\n", + "សង់តារាង Q ឬអារេប៉ុស្តិ៍ច្រើនវិមាត្រ។ ពីព្រោះក្តាររបស់យើងមានវិមាត្រ `width` x `height` យើងអាចបង្ហាញតារាង Q ដោយប្រើអារេ numpy មានរាងជា `width` x `height` x `len(actions)`:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "# code block 6" + ] + }, + { + "source": [ + "ផ្ញើ Q-តារាងទៅមុខងារ `plot` ដើម្បីបង្ហាញតារាងលើបន្ទះ៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "output_type": "error", + "ename": "NameError", + "evalue": "name 'm' is not defined", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mm\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mQ\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'm' is not defined" + ] + } + ], + "source": [ + "m.plot(Q)" + ] + }, + { + "source": [ + "## សារៈសំខាន់នៃ Q-Learning: សមីការបែលម៉ែន និង អាល់ហ្គរីធិមរៀន\n", + "\n", + "សូមសរសេរកូដពូស៊ូសម្រាប់អាល់ហ្គរីធិមរៀនរបស់យើង៖\n", + "\n", + "* ចាប់ផ្តើម Q-តារាង Q ជាមួយលេខស្មើសម្រាប់រាល់ស្ថានភាព និងសកម្មភាពទាំងអស់\n", + "* កំណត់អត្រាបង្រៀន $\\alpha\\leftarrow 1$\n", + "* ដំណើរការស្ត្រីមូសេរៀងរាល់ពេលច្រើនដង\n", + " 1. ចាប់ផ្តើមនៅទីតាំងចៃដន្យ\n", + " 1. ត្រលប់\n", + " 1. ជ្រើសរើសសកម្មភាព $a$ នៅស្ថានភាព $s$\n", + " 2. ដំណើរការសកម្មភាពដោយផ្លាស់ទីទៅស្ថានភាពថ្មី $s'$\n", + " 3. បើករណីជួបប្រទៈលក្ខខណ្ឌបញ្ចប់ហ្គេម ឬរង្វាន់សរុបតិចពេក - ចាកចេញពីការសតិកម្ម \n", + " 4. គណនារង្វាន់ $r$ នៅស្ថានភាពថ្មី\n", + " 5. បច្ចុប្បន្នភាពអនុគមន៍ Q យោងទៅតាមសមីការបែលម៉ែន៖ $Q(s,a)\\leftarrow (1-\\alpha)Q(s,a)+\\alpha(r+\\gamma\\max_{a'}Q(s',a'))$\n", + " 6. $s\\leftarrow s'$\n", + " 7. អាប់ដេតរង្វាន់សរុប និងបន្ថយ $\\alpha$។\n", + "\n", + "## ប្រើប្រាស់ និង ស្វែងរក\n", + "\n", + "វិធីសាស្រ្តល្អបំផុតគឺផ្គូរផ្គងរវាងការស្វែងរក និងការប្រើប្រាស់។ នៅពេលយើងបានរៀនច្រើនអំពីបរិយាកាសរបស់យើង យើងនឹងមានលទ្ធភាពធ្វើតាមផ្លូវល្អបំផុតប៉ុន្តែជ្រើសរើសផ្លូវដែលមិនបានស្វែងរកម្តងម្កាល។\n", + "\n", + "## ការអនុវត្ត Python\n", + "\n", + "ឥឡូវនេះយើងរៀបចំជាស្រេចសម្រាប់អនុវត្តអាល់ហ្គរីធិមរៀន។ មុននោះ យើងចាំបាច់ត្រូវការមុខងារមួយដែលនឹងបម្លែងចំនួនចៃដន្យនៅក្នុង Q-តារាងទៅជាវ៉ិចទ័ររបស់ប្រវត្តិភាពសម្រាប់សកម្មភាពត្រូវគ្នា៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# code block 7" + ] + }, + { + "source": [ + "យើងបន្ថែម​បរិមាណ​តិចតួច​របស់ `eps` ទៅក្នុងវ៉ិចទ័រដើម​ដើម្បីចៀសវាងការបម្រែបម្រួលដោយលេខសូន្យ​នៅក្នុងករណីដើម ពេលដែលធាតុទាំងអស់នៃវ៉ិចទ័រមានតម្លៃដូចគ្នា។\n", + "\n", + "អាល់គរិមចំណេះដឹងពិតប្រាកដដែលយើងនឹងដំណើរការសម្រាប់ការសាកល្បង ៥០០០ ដង ក៏ហៅថា **epochs**: \n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "" + ] + } + ], + "source": [ + "\n", + "from IPython.display import clear_output\n", + "\n", + "lpath = []\n", + "\n", + "# code block 8" + ] + }, + { + "source": [ + "បន្ទាប់ពីដំណើរការអាល់ហ្គូរិធមនេះ តារាង Q ត្រូវបានធ្វើបច្ចុប្បន្នភាពជាមួយតម្លៃដែលកំណត់កម្រិតទាក់ទាញនៃសកម្មភាពនានា នៅក្នុងគ្រប់ជំហាន។ បង្ហាញតារាងនៅទីនេះ៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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Tz9N/fr1mTRpEuecc47RkY4gpWTOnDmcd9553HHHHSxdupS8vLyIt6sKt6KcBCkl2dnZfPjhh8yaNYusrKyoK47BYJD9+/fz6KOPsnz5cnJzc42OdMqZPn069957L02bNmXKlCm8+eabjB8/Hl3XI9quKtyKcpK6dOlCVlYWVquVTp064ff7jY50hOzsbLp160b37t1ZuHAhV1111fG/SflbxowZw4wZM/jss8/YtGkTt956K5MnT474jShU4VaUkzBr1iwef/xxLr74Ylq3bs20adOYMWOG0bHKSSmZPXs2s2fPxuVyMWbMGAYNGsT8+fONjnbKGTVqFEVFRbjdbq699loyMjIi3qYq3LXEU089Rc+ePfH5fDXmRrCBQIDvvvuO9957j0AgEFVDEb1792bRokU0atSIzz//nOnTp9O7d2+jYx3h4osv5scff+Scc87h3nvvZcWKFVG9e2RNdcMNNzB48GDatWvH6NGjq2XjKlW4a4nx48fz2Wef0aNHD5544gl+/fVXgsGg0bEqJKWkZcuWfPfdd2RlZdGgQYOoGopo2bIlubm5TJw4EQCfz8fTTz/N/v37DU4WIoSgbdu2LFq0iIULF6LrOpmZmcyaNYuioiKj4ymVpAp3LVG2peovv/xC9+7dee2113j11Vf55ptvjI52VF9++SW33nord911Fw6HgyFDhvDpp58aHaucEIIff/yR22+/nauvvpoNGzYwbdo0XnvtNXbs2GF0PADq16/PunXrqF+/Pq+88grr16/niiuuYObMmZSWlhodT6kEVbhrocsuu4xXXnmFRo0a8ccffzBo0CB27txpdKwjxMfH43Q6sdlspKSk4HQ6mTp1qtGx/uLss8+mZ8+eADRu3JjBgwczc+ZM8vPzjQ12mAEDBtC4cehWsD179uTCCy/koYceiqqhJ+XvUQtwaikhBNdffz0ul4vrr7+ecePGsWPHDq655hruu+8+EhIS/nLT3urUo0cP7rzzTnRdp27duvznP//hnXfeoWPHjkyYMIHevXuTmJgYdYsxWrduzfjx4xk4cCDNmjXj5ZdfJjY21uhYR+jevTupqal06tSJ2267jREjRmCxqFJQGdX9c6h63LWcw+GgWbNmfPzxx6xfv55zzz2X/v37s3DhQtatW2dYLiEEW7dupX///rRt25asrCx69+7N+vXr2bJlCzff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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "m.plot(Q)" + ] + }, + { + "source": [ + "## ការត្រួតពិនិត្យគោលនយោបាយ\n", + "\n", + "ដោយសារតែ Q-តារាងបញ្ជាក់ពី \"ភាពទាក់ទាញ\" នៃសកម្មភាពនីមួយៗនៅក្នុងនីមួយរដ្ឋ វាមានភាពងាយស្រួលខ្លាំងក្នុងការប្រើវាដើម្បីកំណត់ការរុករកប្រសិទ្ធភាពនៅក្នុងពិភពលោករបស់យើង។ ក្នុងករណីសាមញ្ញបំផុត អ្នកអាចជ្រើសរើសសកម្មភាពដែលបរិច្ឆេទទៅនឹងតម្លៃ Q-តារាងខ្ពស់បំផុតបាន:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2" + ] + }, + "metadata": {}, + "execution_count": 13 + } + ], + "source": [ + "# code block 9" + ] + }, + { + "source": [ + "ប្រសិនបើអ្នកព្យាយាមកូដខាងលើជាច្រើនដង អ្នកអាច១០តជួបជាមួយស្ថានភាព \"រំខាន\" ហើយអ្នកត្រូវចុចប៊ូតុង STOP ក្នុងសៀវភៅកំណត់ត្រាដើម្បីបញ្ឈប់វា។\n", + "\n", + "> **ភារកិច្ច ១៖** ផ្លាស់ប្តូរ function `walk` ដើម្បីកំណត់កម្ពស់អតិបរមានៃផ្លូវដោយចំនួនជំហានមួយចំនួន (ឧ. ១០០) ហើយប្រើកូដខាងលើដើម្បីបញ្ចូនតម្លៃនេះតាមពេលវេលា។\n", + "\n", + "> **ភារកិច្ច ២៖** ផ្លាស់ប្តូរ function `walk` ដើម្បីមិនឲ្យវត្រឡប់ទៅកាន់កន្លែងដែលវាបានហូរហែលរួចមកហើយទេ។ វានឹងជួយកុម្ម៉ង់ការរុំ, ទោះជាយ៉ាងណាក៏ដោយ អ្នកតំណាងអាចនៅក្នុងទីតាំងមួយដែលមិនអាចគេចពីបាន។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Average path length = 5.31, eaten by wolf: 0 times\n" + ] + } + ], + "source": [ + "\n", + "# code block 10" + ] + }, + { + "source": [ + "## ការស៊ើបការពារជម្រះការរៀន\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[]" + ] + }, + "metadata": {}, + "execution_count": 57 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD4CAYAAAAAczaOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de5wU5Z3v8c8vEk1islETkuPtlcFdT3LMvjbRsF5iTnajibdkQ5KjOeRKjKsnWT3rms1mwVw8q/EWL6gJXlAwxBsqQSWCIgJeuDPc5TrDfQBhhoFhYBiYgef80U8PPT19qe7p7qrp+r5fL5jup6qrnuqq/tVTTz31POacQ0RE4uE9YWdAREQqR0FfRCRGFPRFRGJEQV9EJEYU9EVEYqRf2BnI5aMf/airqakJOxsiIn3KggULmpxz/TNNi3TQr6mpoba2NuxsiIj0KWa2Mds0Ve+IiMSIgr6ISIwo6IuIxIiCvohIjCjoi4jEiIK+iEiMKOiLiMSIgr5IlXr1nW007T0QdjYkYhT0RapQy/4OfvLkQn78x/lhZ0UiRkFfpAp1HjoMQMOu/SHnRKJGQV9EJEYU9EVEYkRBX0QkRhT0RURiREFfRCRGFPRFRGJEQV9EJEYU9EVEYkRBX0QkRhT0RURiREFfRCRGFPRFRGJEQV9EJEYU9EVEYkRBX0QkRhT0RURiREFfRCRGFPRFRGJEQV9EJEYU9EVEYkRBX0QkRhT0RURiREFfRCRGFPRFRGJEQV9EJEYCBX0zu8HMlpvZO2b2jJm9z8wGmNlcM6szs2fN7Gg/7zH+fb2fXpOynGE+fbWZXVyeTRIRkWzyBn0zOxn4V2Cgc+5vgaOAwcCdwHDn3OnALuAq/5GrgF3Oub8Bhvv5MLMz/Oc+DVwCPGhmR5V2c0REJJeg1Tv9gPebWT/gA8A24AJgnJ8+BviGfz3Iv8dPv9DMzKePdc4dcM6tB+qBs3u/CSIiElTeoO+c2wLcDWwiEexbgAXAbudcp5+tATjZvz4Z2Ow/2+nn/0hqeobPdDGza8ys1sxqGxsbi9kmERHJIkj1zvEkSukDgJOAY4FLM8zqkh/JMi1bevcE50Y65wY65wb2798/X/ZEpACz1+7k0bfWhZ0NCVG/APN8GVjvnGsEMLPxwOeB48ysny/NnwJs9fM3AKcCDb466MNAc0p6UupnRKQCvvPoHACu/uJpIedEwhKkTn8TcK6ZfcDXzV8IrACmA5f7eYYAL/nXE/x7/PRpzjnn0wf71j0DgNOBeaXZDBERCSJvSd85N9fMxgELgU5gETASmAiMNbPf+rRR/iOjgCfMrJ5ECX+wX85yM3uOxAmjE7jWOXeoxNsjIiI5BKnewTl3E3BTWvI6MrS+cc61A1dkWc6twK0F5lFEREpET+SKiMSIgr6ISIwo6IuIxEigOn0R6du27t7PrLU7w86GRICCvkgMDB45h03NbWFnQyKgqqt3duxp56xbprBme2vYWREJVWPrgbCzIAENHjmb+1+vK9vyqzroT1m5neZ9B3l85oawsyIiEsicdc0Mf31N2ZZf1UFfRES6U9AXEYkRBX0RkRhR0BcRiREFfZEq1GOgChFPQV+kimUauUjiTUFfpIqpxC/pFPRFqpBK+JJNTIL+kfLOV+59k/ELG0LMi4hIeKo66FuG8k7djr387LklIeRGRCR8VR30RUSkOwV9EZEYUdAXEYkRBX2RGHBqvCmegr6ISIwo6IuIxIiCvohIjMQq6Dunek2Jp0zPrEg8xSLoK9aLiCRUddA3FW5ERLqp6qAvIiLdVXXQV7WOiEh3VR30k1TNIyJRc+iw47/+spyGXW0VXW8sgr6ISNQs3ryLx2du4IZnF1d0vQr6IiIhSFY/H65wNbSCvkiVeLuukUfeXBt2NiTiAgV9MzvOzMaZ2SozW2lm55nZCWY2xczq/N/j/bxmZg+YWb2ZLTWzs1KWM8TPX2dmQ8q1USJx9INR87j9lVVhZ0MiLmhJ/37gVefcp4DPACuBocBU59zpwFT/HuBS4HT/7xrgIQAzOwG4CTgHOBu4KXmiqBS15hGRuMsb9M3sr4AvAqMAnHMHnXO7gUHAGD/bGOAb/vUg4E8uYQ5wnJmdCFwMTHHONTvndgFTgEtKujVZKNhL3OiQl2yClPRPAxqBx81skZk9ZmbHAh93zm0D8H8/5uc/Gdic8vkGn5YtvRszu8bMas2strGxseAN6r6sXn1cpM9L/gTUn74kBQn6/YCzgIecc2cC+zhSlZNJplDrcqR3T3BupHNuoHNuYP/+/QNkT0REggoS9BuABufcXP9+HImTwHZfbYP/uyNl/lNTPn8KsDVHuoiUicr3ki5v0HfOvQtsNrNP+qQLgRXABCDZAmcI8JJ/PQH4oW/Fcy7Q4qt/JgMXmdnx/gbuRT5NREpMNZuSTb+A8/1f4CkzOxpYB1xJ4oTxnJldBWwCrvDzTgIuA+qBNj8vzrlmM7sFmO/nu9k511ySrRARkUACBX3n3GJgYIZJF2aY1wHXZlnOaGB0IRkUEZHS0RO5IiIxEqugr5taIhJVlRrONRZBXw9nSdxpjNxo++sbJ/Gth2ZVZF1VHfR1mItIVKWWRQ8ddizatLsi663qoC8iIt0p6IuIhCCsmggFfRGRGFHQFxGJkaoO+mq0IyLSXVUH/SR1sSxx5Zzj91Pr2N9xKOysSETEIugnVerhB5Go2NXWwT1T1oSdDYmQWAV9kUrae6CTZQ0trNy2hzteWaVCh0RC0F42+zT91iQMV4+pZfa6nRzT7z0c6DzMtV/6az70vveGnS2Juaou6asqX8K0cNMuADoPJ0odpptLEgFVHfRFRKQ7BX2REL2xegf7D5a2ZY3uHUguCvoiIVn9bis/enw+v3rxnZIu97ZJK0u6PKkuCvoiIWlt7wBgw859JV3uk3M26cFEyUpBX0SkAhpbD1AzdCK1GxJDg4d1Yo5V0FfpRyopebwl2+yorj3e5q1PBPvRM9d3S690m65YBX2RMKilpkSJgr6ISIgqff0Xi6DvVLEjMaOLi+jTICploMtqEZHuqjroi4hIdwr6ImWmRjsSJQr6IiIxEqugf+iwilxSebq3JFESq6B/9+TVYWdBpAc9tCWVFKug/+ryd8POgkgXXQFIGKo66KsAJVFWruNTJ5PqsHPvgbIst6qDfpLpURWpgB2t7cxZt7Pgz5V6RC0VdqIt1/7pPHS463W5bkHGIujriVyphG+OmMXgkXPCzob0YXe+uqrs6wgc9M3sKDNbZGYv+/cDzGyumdWZ2bNmdrRPP8a/r/fTa1KWMcynrzazi0u9MT3zXO41iByxZff+nNNV9BA4EpcyHQ9zfU+cienlOWIKKelfD6QOyXMnMNw5dzqwC7jKp18F7HLO/Q0w3M+HmZ0BDAY+DVwCPGhmR/Uu+yIR5n+zql6UXCLZtbKZnQJ8FXjMvzfgAmCcn2UM8A3/epB/j59+oZ9/EDDWOXfAObceqAfOLsVGBKWSv4RCx50UI+Q6/fuAXwDJuwwfAXY75zr9+wbgZP/6ZGAzgJ/e4ufvSs/wmS5mdo2Z1ZpZbWNjYwGbIiIi+eQN+mb2NWCHc25BanKGWdMHCkqfluszRxKcG+mcG+icG9i/f/982SuIWjVI2DoOHWZWfVPY2ZAIyRqWynSFGKSkfz7wdTPbAIwlUa1zH3CcmfXz85wCbPWvG4BTAfz0DwPNqekZPiNSvVJ+1fdOWcN3H5vbNU5qqbR3HCrp8qT88sb0sKp3nHPDnHOnOOdqSNyIneac+x4wHbjczzYEeMm/nuDf46dPc4nnzCcAg33rngHA6cC8km1JACrpS5gMWLtjLwBNew+WdNnN+0q7PCmf1vbOrNMqcfunN+30/xP4mZnVk6izH+XTRwEf8ek/A4YCOOeWA88BK4BXgWudcyqexMg9r61mWUNL2NkI7K7Jq3hhUUPJlucobeHtF+OWUDN0YgmXKJXwdl336r0FG3dVdP398s9yhHPuDeAN/3odGVrfOOfagSuyfP5W4NZCM9lbyRK+Wu+E6/fT6vn9tHo23PHVsLMSyIjpawH45pmn9G5BeY67Yjtce642+wkp6BI7Dh3m1y++w79eeDonHff+ovIh5VGuiomqfiJX7aMlalKPyPRCyN4DnSzc1PtSXyGFm7frGhk7fzM3vrCs1+uVvqGqg75I1OQqvV371EK+9eAs9rR3VCw/SSoeRUPq8VGufaKgLxICs54NC5ZtSdzv6Og8nOET0tcVWr2s6h2RKpIa8EvRy6buV1WHqLfeEYmFGXVN7G7rO00inVN1TRRFpcm4gr5IHt8fNZerxtT2ejmpP/rmfQfZvKut18sslYjEo9hbktKkuVwnCQV9kQDWbG8t+rOZSt03vrCMG55dknH+Yn7rqQFif4Cncy9/aJbPm64JwhLWiVZBXySICvxCexN+t+bpyz9dbYUfCJLCles+jYK+VESxDyBFRVGl7wqW5fIN4CJ9j6p3eiH53fXxuBOqhZt20XGo+psSjphezx2v9ByyrvNwdW67hhINx4qte3hyzsZQ1l1QNwx9jqorS2Lltj1868FZXP0/B/DLr54RdnbK6q7JqwEYeumnuqW3dwQP+sPGL2XHngNd74OGVYXf+LjsgbdDW3d1B/20X5HaMhenaW8igK3cVvzNzGp36PCRg+2ZeZszzpPt+OvrVV9SHlEYI7fPUqyXchs2fmmg+XLF9zCO02ufWhTCWiVMsQj65eacU2kt5nL1eJkUtUPkzTWNgZp3SjjK1Zw2VkG/HD+6toOdDBg2iT9Mqy/9wiNGN/2KU4qf7oqte/iHu6bT0pa5M7b0Y3vKiu15l7moBD16SnCF972j6p1I2u1/hE/P2xRyTnqvdkMzO/ce6JGuB3h6pxQ/3Qem1rFxZxuz1gYbX/eXL76Td577Xq/reh21qxApHwX9Eho+ZQ33vLY67GwU7fKHZ3PFI7NLvtz7X69jwLBJJV9utSpFAFZ1o2QTq6Bf7tY790+t4/d9vJpnXeO+ki9zzOwNJV9mNUn2sqnWZZJKD2dJn1Xtpc69B7IPdF1q2b5J3W+Jvqj8DGIR9CPyXcdWNX//k5Zt429vmlySZeVszlnmATh0lRE96nunGClf2uHDrixn2moOaNLTo2+t4+a/rOh6/9aaxuAfDniwhBGAo1IKlSMmLXu3LMut7qCf4rQbJ2XslOqRN9fy0uItgZbxz2Pm89mbX8s4bVtLe6/yJ6WxoWkfNUMnsrRhd1mWf+uklYyeuR6APe0dge6BFBrDcwXgbNPS0xXE+75bXl6Rf6YixCboZ3P7K6u4fuziQPO+vnJHVxPNOEoGknELGlj17p6M83QeOsySzd0DbiUD0LRVOwAYvzDYiTyb1G4Vsvn2w7OZt6G5wCVnX25qCb9ue2ugtvYihYp90O+tOFSFplc3/Pz5JVxyX+YOo+5+bQ2DRsxk+daWjNP7iuZ9+YdHXPVusL6IijnnfWX4W1z9p56jdanuXXpLQT/mWto6WNu4t6jPDhk9r0fVWDLYN+3tO2PKVox1/ddNtbdukmhR0I+5r4+YwYX3vFlU4HlzTWPgqrFstu9pp2V/6arMol8S7l2AL9f5Qaed+FDQ76W+/mPZuDP44NzFBpxcJ5RzbpvKF+6cVtyCC9TecYimvQdoj3gnY+lt7mfUNfUYo7fQ4RFFkqq7P/0y29kHAkhQ5axhyLfo1vbgDzftbjvIuAUNXPWFAV1PsmZcZ4YN+tSvXwXg7075MBOu+0LgdZaMSzQGyC7z9nx/1NweaZ+/o/uJUjVE0fDtR2bzoWP6MepHf99jWlSuQhX0e+Fzv32dE449OuxsVEwUDtrP3jwl8ffU4xhYc0KP6UGyuLShuJvM/3DX9KI+F4GvLa++kMe+YN76QltzVV4sqnfKWQoK0sqjL0j9ivpC1cHBEMbrLaQqLFXwwy//nOpuQXqrqoO+Si+5ZRvoPL3qIKnok2c54lQBy2xsPcDztZmHMIyChZt2d6uzT+3KumboxIrkQaeS+FD1Toz95qUjfa7nutlazMkzSs0Q/88TtSzcVJ4ndEvlouFv8dEPJqoKc5Xms41tEJ1vW6Kuqkv6kluuJz63tezPWHUVpWCeS2oud7T2HBgmmvKfXh2OXwcYIEUSxs7bxKvvlKcPm0JF5aeTN+ib2almNt3MVprZcjO73qefYGZTzKzO/z3ep5uZPWBm9Wa21MzOSlnWED9/nZkNKd9mJUTkO+4T0r+r826fxlm3TOkx33MBq0neWH2kI7JK1u7katFTDa57ehFPzNkYdjb6jKHjl/GTJxeEnY1ICVLS7wT+3Tn3P4BzgWvN7AxgKDDVOXc6MNW/B7gUON3/uwZ4CBInCeAm4BzgbOCm5Imi3MKIA+ffMa3qSmQOR932zE/vvrx0K7tSrgz+OGtDhXIVfQc7E/dOdBNWoiBv0HfObXPOLfSvW4GVwMnAIGCMn20M8A3/ehDwJ5cwBzjOzE4ELgamOOeanXO7gCnAJSXdmgppyjCObLotu/cXVCL77csrutWxl0vDrjbWbG/11TRHzoa9ufTc1rKf655exE+fCl6iembeJs7M0mNpKaRuT5UX/gGYsGRrrz7fm2q78++Yxr1T1hT12T3tHRVvLfbKsm1sbk60xNqyez81QyeyMEaDxBdUp29mNcCZwFzg4865bZA4MQAf87OdDKTWATT4tGzp6eu4xsxqzay2sbGAvsorKFlyK6XHZqznT7PLf9n+hTunc9Hwt3hm3mYKrXgxLGMATX4fW3cH71562Phl7Cqwx9Ig33scAnwmBfXrX2Jbdu/ngal1+WfM4OLhb2VtLVYuP31qIZfdn+gwcEZd4nsbO29TSdfR0tbB6BnrI3kPLHDQN7MPAn8G/s05l7lfXT9rhjSXI717gnMjnXMDnXMD+/fvHzR7FRW93RjM9FVHngZNDxLlrHoo1YG/cluuwy65rpKsiu17QhwfIYQDLKx7IWGNQ9Fa5iEuh72wlJtfXkHtxuhdQQQK+mb2XhIB/ynn3HifvN1X2+D/JiNKA3BqysdPAbbmSC+7CJ5sQzFtVXoXAIX90B2uqOBQlhu5Zd6nC8rwY83W3DLdna+uLvm6o6alrYPdbdXxYGMmyaveYh/oK6cgrXcMGAWsdM7dmzJpApBsgTMEeCkl/Ye+Fc+5QIuv/pkMXGRmx/sbuBf5tLJJ/sTmbdjZq+V0HjrMw2+u7XofxUu2pBcWNXDFw7MK/lzOTUqJVZm2PUpfRzVU7/x5YUPF17k6y6A45fKZm1/r6lIjTOU6dhf7gYTumryqKy0qx2aQh7POB34ALDOzZD+6NwJ3AM+Z2VXAJuAKP20ScBlQD7QBVwI455rN7BZgvp/vZudcRTqq2Nxc/I2izkOHOfu2qX2mu4Ubnl2SdVpqFc6ry4O1XT4cYASpsI2esZ7jj30v3zzzlK601G3NVsLuOHSY68cu4voL/zuf/G8fKns+o2z7nr7yLEPpjJm1gZsmLC/rOqJUIErKG/SdczPIXg9wYYb5HXBtlmWNBkYXksGwvbmmMWPAzzZcYLVJ7+MmU/VOvhJM+oH/qxeX9TZb3dzsxxL95pmn8Nry4EMMrti6h0nL3qVh1/6K9Lp54FDuHlmDtAqrViOm1/P9cz7Bhz/w3oqt8+m5pb15m0lUSvep9ERuHpnGSnWOijzl19rewYqtxZ1cnHPM39DM7LW9q9pKDdj5Si2bmttYmFYXvqe9g/1p3U8/Oafnj62zRB2ozahv6vb+3ZZ2NjX3rFd1zvGbHKW8Fxf3bozdTK4e03P4w1LoC1djSTv3HmBHa8+bt3dNXs2vKtBkWRT08ypFq4ZtLfsZMb2+4HsBVz4+n8seyDwWbT7OwRUPz+Y7j84JPH82qdUj+b6NfQe7B/gfPz4/y5zdFTp6Vr7WRsnt+drvZ2Sc/lzt5h4DuKdaVIa+epYU2aVzPoWMR1Col5duZUPTvkDzBjn5fO63r3P2rVMzTmsrc4uaMESxekdBv0hBW2IA/PTJhdw1eTV1Owobi7Y3zb0OpRxt+w/2bqCXoAE2k8U5AmsQW3bv59aJK4ouzWarMvnPP5e2iilMo2asK9uyr3t6ERfd91bZlp8qzPhYyO+5EBGM+fEN+hOXbqvYupJB93CRp/1iWgulVkt9+5HZrGvcmzM4z12fvxrIrPCD+D0Br5Q6DmVe8vXPLOLRt9ezpKH7yeOFhVtwzmUthT5V5vraJ2ZvKOvyC/HAtPqyLr8cDyNWQiGNL54tU9fbhVSPVkpsg/61Ty+s+DorudNTb8Au29LCBfe8yZYcj7v/KEA1jHMw8q2epcpccf09AY+wc2/vfsm/o7Wd7Xva6chSwh+/aAuTl7/LzLVNGaeX269fKm+rj76ot4f37raD1AydyMtLjzy+s2Z7K/uKrPZpzNC76gV3v1Fs9qpGbIN+ujezPMZeiou+Qm4LzN/QsxVr0JPFz58/0lwzU510as+XhejNpW/Qkn6q1vYOzr51KufclrnuN6llf0dkSk/VYH3Auvtsevv8yjq//lEz1nct76Lhb3HVmGD3hQpZRy6z1jbxwqLKPytRKQr63pDR8zI+hZkpZjlXmqZYre0dfOvBmaxrPFLXf8XDs3uUyA8eOsyNLyzLe7k6bsGRA/W495em6Vtqff7qlNGdgiom6N82aVX+maTkdgZsMvrioi3UDJ3Yo6O0XCF/4859jJheWDVU8hwyZ11xj/PkuxeV7Xj+7qNzuz3v8vLSrTya4Qq3r6rqoF9oy5v/9dCswKWVl3I06UvvtyVZJ/r4zPXd0qet2sHCTbsZ/nr3zqrOT+uAasLirTw9dxO3T1oZKG8Ag0bMDDxvLtv3HGCXf1x+d5YO0nK2/Cni5Higo+eN50zNLqF7oPl/RT5ok8zijLpwqoqiImg5PfnEcCENE74/ai53Tc7dvUSxFwqz1jZ161eq1K57ehG3FvDb6y56l6JVG/Snr97BnHWFt1F/fkH+yzqHY21j9svE9GqJPe2JYPlcbXGXjMkbwNkasMysb6LtYHmau33p7jf4l6eKv/9RTEk/U23S9WMX93hQbOe+g7yR8mNP78O/vsDWUoti1L1uPqve3ZO1yjOb13OMxBakBVl6s90g4XJ90z6+++hcrvxjzyqgYk4iuQpzNUMnsnFn4ne/YGMzNUMnUuevFkZMr+ebD5amoFVuVTtG7pUB24enW76lBQaemn/GgvSMYm0HO3lweqI/n3yllGxx0znHym2tfO+xuXz9Myf1OpfFSg/G5XLFw7O7vf9dno7Jvnzvm+XMTlW75L78z4ekH5Y/fWohG+74Kks272bnvgNc8KmP9yoPQa66v5RyY3b+hmb+vuYEnHNFD5F5/djFOacvbWjhEx85lr8sSbT+e6uuidM//qG8VzEQnadzq7akXyrFPhGbz/Apa7rqFPfmaZ2Q7dj/3eTVXQ9vFfoMQCllC77rGvcW9NDVlBXbmVvE1VmpRO9CvLJyxdgOf2Lfvqedt/NUgw0aMZMf/zHx9PH6pn28sXpHUaXu9I+s3LYnY0OHpCsens3m5jYeeWsd59w2tceN6VJ0lJhcwtKGYM+fpK4yW/VopVVtSb9YyX00d91OTj3hA9yTYUSgH4ya16t17G47yMz63gW3WfVNPPTGkZ4/g/Q1Xy6vr8x8WX/BPYWVtK/+UyJQfOusI2Pr5HpqtpSmrNjeZ9ujV8L3HpvLoM+elHW4zKT2tPsxXyphE8lL/cAntwz6ND84rybjPHvaO7ruzWxOuQ/0wqIGBn2mx5hNef3kicyjwS30reMKOZFsbO5d66hSUdDP4n+PzN59Qbabipn8/PklPZ4KHTxyDqveLbwljMOxo7WdptaDLNtSnkf6o6C3TQcLtaShpeuEE2cz6xNNFedv6HlvY976Zuat717KzlRd8alfv1qSvHz/sbl8+qS/yjjtpgnL+d45n+A97+mZgQUbd3XlMzUc3/DsEv7p7wqvAg3SG+2yMnWvUS4K+mlKXe02Lu3G8KX3vx0o4Kc2H92YcpL5x7veoO3gIf7j4k+WLpMRU45+byS/sfM3RaaL5Rn1Td06z0ttrnzYwR2vrmJthirN3+R4aK5c1Xf/9IfM/TtBorEBJJrD5rtKqhQF/TRjZm8sawdWQathxqS0REmtxmnzrSCC3DgSKUSh3RuVq7+aTM66pfuAK5meDM9nXY4Wd5DorqRQnQG/tC/f+2bBY0KXS6xv5KaXwpPGLyp9t7oiUVfojc58fUlNydGEsxLS85evSW569VUmvxy/jJqhE7veBy18RSXgQ8yDfmq3BVGT2v9Il7g3L5Gyatpb2Ohw/zEu9++n2PskpareS29VVujPZ1tLz76q0gdUzzTeRtTFOuhHWR88liRmolL/H1ShLTbPu31a/pn6IAX9PkTVTiLFu/GFcMZQuPkvK0JZbzYK+iJStFINc1nNRqf1uRU2BX0RKdq/R/i+mGSmoC8iRXtpcYYGBxJpCvoiIjGioC8iEiMK+iIiMaKgLyISIwr6IiIxoqAvIhIjCvoiIjGioC8iEiMK+iIiMaKgLyISIwr6IiIxUvGgb2aXmNlqM6s3s6GVXr+ISJxVNOib2VHACOBS4AzgO2Z2RqnX07I/OkOTiYhESaVL+mcD9c65dc65g8BYYFCpV7KuMRqjzouIRE2lg/7JwOaU9w0+rYuZXWNmtWZW29jYWNRKPnvqccXnUEQkAp695tyyLLdfWZaanWVI6zZypXNuJDASYODAgUWNFGtmbLjjq8V8VESkqlW6pN8AnJry/hRAozCIiFRIpYP+fOB0MxtgZkcDg4EJFc6DiEhsVbR6xznXaWbXAZOBo4DRzrnllcyDiEicVbpOH+fcJGBSpdcrIiJ6IldEJFYU9EVEYkRBX0QkRhT0RURixJwr6vmnijCzRmBjLxbxUaCpRNnpC+K2vaBtjgttc2E+4Zzrn2lCpIN+b5lZrXNuYNj5qJS4bS9om+NC21w6qt4REYkRBX0RkRip9qA/MuwMVFjcthe0zXGhbS6Rqq7TFxGR7qq9pC8iIikU9EVEYqQqg341Db5uZqea2XQzW2lmy83sep9+gplNMbM6/y+8XRcAAAQhSURBVPd4n25m9oDf9qVmdlbKsob4+evMbEhY2xSEmR1lZovM7GX/foCZzfV5f9Z3zY2ZHePf1/vpNSnLGObTV5vZxeFsSTBmdpyZjTOzVX5fnxeDfXyDP6bfMbNnzOx91bafzWy0me0ws3dS0kq2X83sc2a2zH/mATPLNFBVd865qvpHosvmtcBpwNHAEuCMsPPVi+05ETjLv/4QsIbEoPK/A4b69KHAnf71ZcArJEYpOxeY69NPANb5v8f718eHvX05tvtnwNPAy/79c8Bg//ph4Kf+9b8AD/vXg4Fn/esz/L4/Bhjgj4mjwt6uHNs7Bvhn//po4Lhq3sckhkldD7w/Zf/+qNr2M/BF4CzgnZS0ku1XYB5wnv/MK8ClefMU9pdShi/5PGByyvthwLCw81XC7XsJ+AqwGjjRp50IrPavHwG+kzL/aj/9O8AjKend5ovSPxIjqk0FLgBe9gd0E9AvfR+TGJvhPP+6n5/P0vd76nxR+wf8lQ+AlpZezfs4OV72CX6/vQxcXI37GahJC/ol2a9+2qqU9G7zZftXjdU7eQdf76v8Je2ZwFzg4865bQD+78f8bNm2vy99L/cBvwAO+/cfAXY75zr9+9S8d22Xn97i5+9L23sa0Ag87qu0HjOzY6nifeyc2wLcDWwCtpHYbwuo7v2cVKr9erJ/nZ6eUzUG/byDr/dFZvZB4M/Avznn9uSaNUOay5EeKWb2NWCHc25BanKGWV2eaX1ie71+JKoAHnLOnQnsI3HZn02f32Zfjz2IRJXMScCxwKUZZq2m/ZxPodtY1LZXY9CvusHXzey9JAL+U8658T55u5md6KefCOzw6dm2v698L+cDXzezDcBYElU89wHHmVlypLfUvHdtl5/+YaCZvrO9kMhrg3Nurn8/jsRJoFr3McCXgfXOuUbnXAcwHvg81b2fk0q1Xxv86/T0nKox6FfV4Ov+bvwoYKVz7t6USROA5F38ISTq+pPpP/QtAc4FWvwl5GTgIjM73peyLvJpkeKcG+acO8U5V0Ni301zzn0PmA5c7mdL397k93C5n9/59MG+1ccA4HQSN70ixzn3LrDZzD7pky4EVlCl+9jbBJxrZh/wx3hym6t2P6coyX7101rN7Fz/Hf4wZVnZhX2To0w3Ti4j0cplLfDLsPPTy235AolLtqXAYv/vMhL1mVOBOv/3BD+/ASP8ti8DBqYs68dAvf93ZdjbFmDb/5EjrXdOI/FjrgeeB47x6e/z7+v99NNSPv9L/z2sJkCrhpC39bNArd/PL5JopVHV+xj4L2AV8A7wBIkWOFW1n4FnSNyz6CBRMr+qlPsVGOi/v7XAH0hrDJDpn7phEBGJkWqs3hERkSwU9EVEYkRBX0QkRhT0RURiREFfRCRGFPRFRGJEQV9EJEb+P5qkdQkuhnG4AAAAAElFTkSuQmCC\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "plt.plot(lpath)" + ] + }, + { + "source": [ + "## កិច្ចហាត់ប្រាណ\n", + "## ពិភពលោកល្អប្រសើរជាងមុនរបស់ Peter and the Wolf\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបំលែងជាភាសា​ដោយប្រើសេវាកម្មបំលែង​ភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមស្គាល់ថាការប្រែសម្រួលដោយស្វ័យប្រវត្តិអាចមានកំហុសឬការខុសគ្នាផ្នែកតាមអក្សរ។ ឯកសារដើមជាភាសាតំណាងរបស់វាគួរត្រូវបានចាត់ទុកជាជំរើសពិតប្រាកដ។ សម្រាប់ព័ត៌មានសំខាន់ៗ រក្សាសិទ្ធិការប្រែសម្រួលដោយមនុស្សដែលមានជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកផ្សព្វផ្សាយខុសពីការប្រើប្រាស់ការប្រែសម្រួលនេះទោះបីមានករណីណា។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/8-Reinforcement/1-QLearning/solution/Julia/README.md b/translations/km/8-Reinforcement/1-QLearning/solution/Julia/README.md new file mode 100644 index 000000000..5a3cff487 --- /dev/null +++ b/translations/km/8-Reinforcement/1-QLearning/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងទុកទិន្នន័យបណ្តោះអាសន្ន + +--- + + +**ការបញ្ជាក់**៖ +ឯកសារ​នេះ​ត្រូវ​បាន​បកប្រែ​ដោយ​ប្រើ​សេវាកម្ម​បកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេល​យើង​ព្យាយាម​សម្រាប់ភាព​ត្រឹមត្រូវ សូមដឹងថា​ការ​បកប្រែ​ដោយស្វ័យ​ប្រវត្តិ​អាច​មាន​កំហុស ឬ​ភាព​មិន​ត្រឹមត្រូវ។ ឯកសារ​ដើម​នៅ​ក្នុង​ភាសា​ដើម​គួរត្រូវ​បាន​គេ​ពិចារណា​ជា​ប្រភព​មានសិទ្ធិ​ចម្បង។ សម្រាប់​ព័ត៌មាន​សំខាន់ៗ ការបកប្រែ​ដោយមនុស្ស​ដែលមានជំនាញ​ត្រូវ​បាន​អوص្យូន។ យើង​មិនទទួល​បន្ទុក​ចំពោះ​ការ​យល់ច្រឡំ ឬ​ការ​បកប្រែ​ខុសៗ​ដែល​ប្រហែល​ធ្វើឡើង​ពី​ការ​ប្រើ​ប្រាស់​ការ​បកប្រែ​នេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/1-QLearning/solution/R/README.md b/translations/km/8-Reinforcement/1-QLearning/solution/R/README.md new file mode 100644 index 000000000..9bad99fe9 --- /dev/null +++ b/translations/km/8-Reinforcement/1-QLearning/solution/R/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងកៃទុំបណ្តោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខិតខំប្រឹងប្រែងដើម្បីច្បាស់លាស់ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬការមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមក្នុងភាសាទីធ្លាចរបស់វាត្រូវបានគិតថាជា ប្រភពដែលមានអឡិការរួមរាប់។ សម្រាប់ព័ត៍មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយជំនាញមនុស្សវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/1-QLearning/solution/assignment-solution.ipynb b/translations/km/8-Reinforcement/1-QLearning/solution/assignment-solution.ipynb new file mode 100644 index 000000000..2023aec29 --- /dev/null +++ b/translations/km/8-Reinforcement/1-QLearning/solution/assignment-solution.ipynb @@ -0,0 +1,420 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# Peter and the Wolf: បរិយាកាសពិតប្រាកដ\n", + "\n", + "នៅក្នុងស្ថានភាពរបស់យើង Peter អាចរđកដំណើរការបានជាងគ្មានការខ្លះឬអស់កម្លាំង ឬឃ្លាន។ ក្នុងពិភពឈុតឆាកពិតប្រាកដ លើយើងត្រូវអង្គុយនិងសម្រាកពេលវេលា ព្រមទាំងផ្តល់អាហារឱ្យខ្លួនឯងផងដែរ។ អូរអោយពិភពរបស់យើងមានភាពពិតប្រាកដជាងនេះ ដោយអនុវត្តន៍ច្បាប់ដូចខាងក្រោម៖\n", + "\n", + "1. ដំណើរផ្លាស់ទីពីកន្លែងមួយទៅកន្លែងមួយ Peter នឹងបាត់បង់ **ថាមពល** ហើយមាន **ភាពហត់នឿយ** កើតឡើង។\n", + "2. Peter អាចទទួលបានថាមពលបន្ថែមតាមរយៈការញ៉ាំផ្លែប៉ោម។\n", + "3. Peter អាចបំបាត់ភាពហត់នឿយដោយសម្រាកនៅក្រោមដើមឈើ ឬលើស្មៅ (ឧទាហរណ៍ ដើរចូលទៅកន្លែងលើក្តារដែលមានឈើឬស្មៅ - វាលពណ៌បៃតង)\n", + "4. Peter ត្រូវរកនិងសម្លាប់ ទល្លា\n", + "5. ដើម្បីសម្លាប់ទល្លា Peter ត្រូវមានកម្រិតថាមពល និងភាពហត់នឿយជាក់លាក់ បើមិនដូច្នោះ នោះយើងនឹងបាត់បង់សង្គ្រាម។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import random\n", + "import math\n", + "from rlboard import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "width, height = 8,8\n", + "m = Board(width,height)\n", + "m.randomize(seed=13)\n", + "m.plot()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "actions = { \"U\" : (0,-1), \"D\" : (0,1), \"L\" : (-1,0), \"R\" : (1,0) }\n", + "action_idx = { a : i for i,a in enumerate(actions.keys()) }" + ] + }, + { + "source": [ + "## ការកំណត់ស្ថានភាព\n", + "\n", + "ក្នុងច្បាប់ហ្គេមថ្មីរបស់យើង យើងត្រូវតែរក្សាទុកថាមពល និងការភប់នឿយនៅក្នុងស្ថានភាព​ផ្ទាំងចំការនីមួយៗ។ ដូចនេះ យើងនឹងបង្កើតវត្ថុ `state` ដែលនឹងផ្ទុកព័ត៌មានទាំងអស់ដែលចាំបាច់អំពីស្ថានភាពបញ្ហាបច្ចុប្បន្ន រួមទាំងស្ថានភាពផ្ទាំងចំការ កម្រិតថាមពល និងការភប់នឿយបច្ចុប្បន្ន និងថាតើយើងអាចឈ្នះអង្គរឱ្យបាននៅពេលស្ថានភាពបញ្ចប់ឬទេ:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "class state:\n", + " def __init__(self,board,energy=10,fatigue=0,init=True):\n", + " self.board = board\n", + " self.energy = energy\n", + " self.fatigue = fatigue\n", + " self.dead = False\n", + " if init:\n", + " self.board.random_start()\n", + " self.update()\n", + "\n", + " def at(self):\n", + " return self.board.at()\n", + "\n", + " def update(self):\n", + " if self.at() == Board.Cell.water:\n", + " self.dead = True\n", + " return\n", + " if self.at() == Board.Cell.tree:\n", + " self.fatigue = 0\n", + " if self.at() == Board.Cell.apple:\n", + " self.energy = 10\n", + "\n", + " def move(self,a):\n", + " self.board.move(a)\n", + " self.energy -= 1\n", + " self.fatigue += 1\n", + " self.update()\n", + "\n", + " def is_winning(self):\n", + " return self.energy > self.fatigue" + ] + }, + { + "source": [ + "យើងត្រូវព្យាយាមដោះស្រាយបញ្ហានេះដោយប្រើការដើរជាចៃដន្យ ហើយមើលថាតើយើងជោគជ័យឬរឺ:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ], + "source": [ + "def random_policy(state):\n", + " return random.choice(list(actions))\n", + "\n", + "def walk(board,policy):\n", + " n = 0 # number of steps\n", + " s = state(board)\n", + " while True:\n", + " if s.at() == Board.Cell.wolf:\n", + " if s.is_winning():\n", + " return n # success!\n", + " else:\n", + " return -n # failure!\n", + " if s.at() == Board.Cell.water:\n", + " return 0 # died\n", + " a = actions[policy(m)]\n", + " s.move(a)\n", + " n+=1\n", + "\n", + "walk(m,random_policy)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Killed by wolf = 5, won: 1 times, drown: 94 times\n" + ] + } + ], + "source": [ + "def print_statistics(policy):\n", + " s,w,n = 0,0,0\n", + " for _ in range(100):\n", + " z = walk(m,policy)\n", + " if z<0:\n", + " w+=1\n", + " elif z==0:\n", + " n+=1\n", + " else:\n", + " s+=1\n", + " print(f\"Killed by wolf = {w}, won: {s} times, drown: {n} times\")\n", + "\n", + "print_statistics(random_policy)" + ] + }, + { + "source": [ + "## មុខងារ​រង្វាន់\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "def reward(s):\n", + " r = s.energy-s.fatigue\n", + " if s.at()==Board.Cell.wolf:\n", + " return 100 if s.is_winning() else -100\n", + " if s.at()==Board.Cell.water:\n", + " return -100\n", + " return r" + ] + }, + { + "source": [ + "## អាល់គូរីធម์ Q-Learning\n", + "\n", + "អាល់គូរីធម៍សិក្សាតែមួយគត់នៅតើមិនប្រែប្រួលច្រើនទេ ដោយយើងប្រើ `state` ជំនួសទីតាំងក្រុមហ៊ុនតែប៉ុណ្ណោះ។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def probs(v,eps=1e-4):\n", + " v = v-v.min()+eps\n", + " v = v/v.sum()\n", + " return v" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "" + ] + } + ], + "source": [ + "\n", + "from IPython.display import clear_output\n", + "\n", + "lpath = []\n", + "\n", + "for epoch in range(10000):\n", + " clear_output(wait=True)\n", + " print(f\"Epoch = {epoch}\",end='')\n", + "\n", + " # Pick initial point\n", + " s = state(m)\n", + " \n", + " # Start travelling\n", + " n=0\n", + " cum_reward = 0\n", + " while True:\n", + " x,y = s.board.human\n", + " v = probs(Q[x,y])\n", + " while True:\n", + " a = random.choices(list(actions),weights=v)[0]\n", + " dpos = actions[a]\n", + " if s.board.is_valid(s.board.move_pos(s.board.human,dpos)):\n", + " break \n", + " s.move(dpos)\n", + " r = reward(s)\n", + " if abs(r)==100: # end of game\n", + " print(f\" {n} steps\",end='\\r')\n", + " lpath.append(n)\n", + " break\n", + " alpha = np.exp(-n / 3000)\n", + " gamma = 0.5\n", + " ai = action_idx[a]\n", + " Q[x,y,ai] = (1 - alpha) * Q[x,y,ai] + alpha * (r + gamma * Q[x+dpos[0], y+dpos[1]].max())\n", + " n+=1" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "m.plot(Q)" + ] + }, + { + "source": [ + "## លទ្ធផល\n", + "\n", + "សូមឱ្យពិនិត្យមើលថាយើងបានជោគជ័យក្នុងការបង្វឹក Peter ដើម្បីប្រយុទ្ធនឹងខ្លាស្មើរឬអត់!\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Killed by wolf = 1, won: 9 times, drown: 90 times\n" + ] + } + ], + "source": [ + "def qpolicy(m):\n", + " x,y = m.human\n", + " v = probs(Q[x,y])\n", + " a = random.choices(list(actions),weights=v)[0]\n", + " return a\n", + "\n", + "print_statistics(qpolicy)" + ] + }, + { + "source": [ + "ឥឡូវនេះយើងឃើញករណីលិក្លាលទឹកតិចជាងមុនណាស់ ប៉ុន្តែពីទើរនៅតែមិនអាចសម្លាប់ឆ្កែព្រៃបានរាល់ពេលទេ។ ព្យាយាមធ្វើតេស្តនិងមើលថាតើអ្នកអាចបង្កើនលទ្ធផលនេះដោយលេងជាមួយប៉ារ៉ាម៉ែត្រខ្ពស់ៗបានទេ។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[]" + ] + }, + "metadata": {}, + "execution_count": 13 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "plt.plot(lpath)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ចំណាំ**៖ \nឯកសារនេះត្រូវបានបំលែងភាសា​ដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំផ្តោតលើភាពត្រឹមត្រូវក៏ដោយ សូមយោគយល់ថាចម្លើយបកប្រែដោយម៉ាស៊ីនអាចមានកំហុស ឬភាពខុសគ្នា។ ឯកសារដើមក្នុងភាសាមាតុភូមិនេះគួរត្រូវបានចាត់ទុកជាឯកសារដើមដែលមានអាជ្ញាសិទ្ធិ។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមប្រើប្រាស់ការបកប្រែដោយមនុស្សជំនាញផងដែរ។ យើងមិនទទួលខុសត្រូវចំពោះចំណេះដឹងដែលខុស ឬការបកប្រែច្រឡំដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/8-Reinforcement/1-QLearning/solution/notebook.ipynb b/translations/km/8-Reinforcement/1-QLearning/solution/notebook.ipynb new file mode 100644 index 000000000..76cf5715a --- /dev/null +++ b/translations/km/8-Reinforcement/1-QLearning/solution/notebook.ipynb @@ -0,0 +1,573 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 2, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "# Peter និងខ្មាសពីង: មេរៀនបឋមអំពីការរៀនបង្រៀន\n", + "\n", + "នៅក្នុងមេរៀននេះ យើងនឹងរៀនពីវិធីអនុវត្តការរៀនបង្រៀនទៅលើបញ្ហាការស្វែងរកផ្លូវ។ បរិបទនេះបានបង្កើតមូលហេតុចេញពីរឿងតន្រ្តី [Peter and the Wolf](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) ដែលឯកទេសដោយអ្នកចម្រៀងរុស្សី [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev)។ វាជារឿងអំពីក្មេងស្រីថ្នាក់ទ័ៈ Peter ដែលប្រឹងប្រែងចេញពីផ្ទះដើម្បីទៅភូមិព្រៃដើម្បីបណ្ដេញខ្មាសពីង។ យើងនឹងហ្វឹកហាត់algorithm​ machine learning ដែលនឹងជួយឲ្យPeter ស្វែងរកតំបន់ជុំវិញ និងកសាងផែនទីផ្លូវដែលល្អបំផុត។\n", + "\n", + "សិនមុន យើងចាប់ផ្តើមនាំចូលបណ្ណាល័យអាចប្រើបានជាច្រើន៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import random\n", + "import math" + ] + }, + { + "source": [ + "## ទិដ្ឋភាពទូទៅនៃការរៀនបង្កើតកម្លាំង\n", + "\n", + "**ការរៀនបង្កើតកម្លាំង** (RL) គឺជាវិធីសាស្រ្តរៀនមួយដែលអនុញ្ញាតឱ្យយើងរៀនអំពីអាកប្បកិរិយាដែលល្អបំផុតរបស់ **ភ្នាក់ងារ** ក្នុង **បរិតា្រស** មួយ ដោយរត់ការប្រតិបត្តិការច្រើន។ ភ្នាក់ងារនៅក្នុងបរិតា្រសនេះគួរតែមានគោលបំណងខ្លះ ដែលកំណត់ដោយ **មុខងារប្រាក់រង្វាន់**។\n", + "\n", + "## បរិតា្រស\n", + "\n", + "សម្រាប់ភាពសាមញ្ញ យើងនឹងចាត់ថា ពិភពលោករបស់ Peter គឺជាប្រដាប់អក្សរមួយដែលមានទំហំ `width` x `height`។ ក្រឡាចត្រង្គក្នុងប្រដាប់អក្សរនេះអាចជារបស់ដូចខាងក្រោម៖\n", + "* **ដី** ដែល Peter និងសត្វផ្សេងទៀតអាចដើរ\n", + "* **ទឹក** ដែលអ្នកមិនអាចដើរបានច្បាស់លាស់\n", + "* **ដើមឈើ** ឬ **ស្មៅ** ដែលជាទីកន្លែងដែលអ្នកអាចសម្រាកបាន\n", + "* **ផ្លែប៉ោម** ដែលតំណាងឱ្យអ្វីដែល Peter នឹងរីករាយនៅពេលបានរកឃើញ ដើម្បីអាហារផ្ល្ទះខ្លួន\n", + "* **ខ្លា** ដែលគឺគ្រោះថ្នាក់ ហើយគួរតែជៀសវាង\n", + "\n", + "ដើម្បីធ្វើការជាមួយបរិតា្រសនេះ យើងនឹងកំណត់ថា មានចំណាត់ថ្នាក់មួយឈ្មោះ `Board`។ ដើម្បីមិនឲ្យសៀវភៅកំណត់ត្រានេះក្លាយទៅជារញ្ជួយច្រើនពេក យើងបានផ្លាស់ប្តូរកូដទាំងអស់សម្រាប់ការប្រើប្រាស់ប្រដាប់អក្សរទៅក្នុងមូឌុល `rlboard` ដែលយើងនឹងនាំចូលឥឡូវនេះ។ អ្នកអាចមើលមូលដ្ឋានមុខងារនៃមូឌុលនេះដើម្បីទទួលបានព័ត៌មានលម្អិតបន្ថែមអំពីការអនុវត្តក្នុងខាងក្នុង។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from rlboard import *" + ] + }, + { + "source": [ + "យើងចុងក្រោយនេះសូមបង្កើតក្តារចៃដន្យមួយ និងមើលថាវានៅដូចម្តេច:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "width, height = 8,8\n", + "m = Board(width,height)\n", + "m.randomize(seed=13)\n", + "m.plot()" + ] + }, + { + "source": [ + "## សកម្មភាព និង​នយោបាយ\n", + "\n", + "នៅក្នុងឧទាហរណ៍របស់យើង គោលបំណងរបស់ Peter គឺរកលម្អៀង មិនឲ្យសត្វចចៀន និងឧបសគ្គផ្សេងទៀតផ្ទុះ។ ដើម្បីធ្វើបានចំណុចដែលគេអាចដើរជុំវិញរហូតដល់រកបានលម្អៀង។ ដូច្នេះ នៅក្នុងទីតាំងណាមួយ គេអាចជ្រើសរើសចេញពីសកម្មភាពខាងក្រោមមួយ៖ ឡើង, ចុះ, ឆ្វេង និងស្ដាំ។ យើងនឹងកំណត់សកម្មភាពទាំងនេះជាថតគ្រប់គ្រង និងផ្គូរផ្គងពួកវាជាគូរទីតាំងផ្លាស់ប្តូរឱ្យសមស្រប។ ឧទាហរណ៍ ការរត់ទៅស្ដាំ (`R`) នឹងផ្គូរផ្គងជាគូ `(1,0)`។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "actions = { \"U\" : (0,-1), \"D\" : (0,1), \"L\" : (-1,0), \"R\" : (1,0) }\n", + "action_idx = { a : i for i,a in enumerate(actions.keys()) }" + ] + }, + { + "source": [ + "យុទ្ធសាស្ត្រ​របស់ភ្នាក់ងាររបស់​យើង (Peter) ត្រូវបានកំណត់​ដោយអ្វីដែលហៅថា **គោលនយោបាយ**។ ចូរយើងពិចារណាគោលនយោបាយ​ដែល​ទាបស្មើប មួយហៅថា **ដំណើរកំរាស់ដោយចៃដន្យ**។\n", + "\n", + "## ដំណើរកំរាស់ដោយចៃដន្យ\n", + "\n", + "ចូរយើងដោះស្រាយបញ្ហារបស់យើងដោយអនុវត្តយុទ្ធសាស្ត្រដំណើរកំរាស់ដោយចៃដន្យមួយជាលើកដំបូង។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "tags": [] + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "18" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ], + "source": [ + "def random_policy(m):\n", + " return random.choice(list(actions))\n", + "\n", + "def walk(m,policy,start_position=None):\n", + " n = 0 # number of steps\n", + " # set initial position\n", + " if start_position:\n", + " m.human = start_position \n", + " else:\n", + " m.random_start()\n", + " while True:\n", + " if m.at() == Board.Cell.apple:\n", + " return n # success!\n", + " if m.at() in [Board.Cell.wolf, Board.Cell.water]:\n", + " return -1 # eaten by wolf or drowned\n", + " while True:\n", + " a = actions[policy(m)]\n", + " new_pos = m.move_pos(m.human,a)\n", + " if m.is_valid(new_pos) and m.at(new_pos)!=Board.Cell.water:\n", + " m.move(a) # do the actual move\n", + " break\n", + " n+=1\n", + "\n", + "walk(m,random_policy)" + ] + }, + { + "source": [ + "ចូរយើងធ្វើតេស្តចលនាមិនកំណត់ចំនួនជាច្រើនដង ហើយមើលចំនួនជំហានមធ្យមដែលបានធ្វើ:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Average path length = 32.87096774193548, eaten by wolf: 7 times\n" + ] + } + ], + "source": [ + "def print_statistics(policy):\n", + " s,w,n = 0,0,0\n", + " for _ in range(100):\n", + " z = walk(m,policy)\n", + " if z<0:\n", + " w+=1\n", + " else:\n", + " s += z\n", + " n += 1\n", + " print(f\"Average path length = {s/n}, eaten by wolf: {w} times\")\n", + "\n", + "print_statistics(random_policy)" + ] + }, + { + "source": [ + "## Reward Function\n", + "\n", + "ដើម្បីធ្វើឱ្យគោលនយោបាយរបស់យើងមានការច្បាស់លាស់ជាងមុន យើងត្រូវការយល់ដឹងថាចលនាណាខ្លះដែល \"ល្អ\" ជាងចលនាផ្សេងទៀត។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "move_reward = -0.1\n", + "goal_reward = 10\n", + "end_reward = -10\n", + "\n", + "def reward(m,pos=None):\n", + " pos = pos or m.human\n", + " if not m.is_valid(pos):\n", + " return end_reward\n", + " x = m.at(pos)\n", + " if x==Board.Cell.water or x == Board.Cell.wolf:\n", + " return end_reward\n", + " if x==Board.Cell.apple:\n", + " return goal_reward\n", + " return move_reward" + ] + }, + { + "source": [ + "## Q-Learning\n", + "\n", + "សាងតារាង Q ឬអារេម​មានរាប​ច្រើនវិមាត្រ។ ពីព្រោះក្តាររបស់​យើងមានវិមាត្រជា `width` x `height` យើងអាច​តំណាងឱ្យតារាង Q ដោយអារេ numpy ដែលមានរាង `width` x `height` x `len(actions)`:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "Q = np.ones((width,height,len(actions)),dtype=np.float)*1.0/len(actions)" + ] + }, + { + "source": [ + "ផ្ទេរតារាង Q ទៅកាន់មុខងារ plot ដើម្បីបង្ហាញតារាងលើផ្ទៃក្តារប្រដាប់ហ្គេម:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "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1fB4PKxatYoRI0bw4YcfMn/+fDp27Mj69eutjlZjx44d2O12rrrqKv71r3+xcOFCCgoKOHDggNXRanz66acMGjSIDh064Ha7efHFF1m0aFFY/QX42muv8bvf/Q6n08mll17Kn/70J1577bVGXacUtzhC586d2b59O/369aNNmzZs2bKF7Oxsq2PVkp2dzY8//kj//v1JTU3l+++/p0uXLlbHqhEVFUXr1q1RStG/f38CgQCHDh2iVatWVkerkZaWhmmatGnThvPOO4+ioiKSkpKIj4+3OlqNdu3asWfPHs4//3zOPPNMtm/fTufOneudj/Fky87OJjc3l/79+9OiRQs2btzY6O8XKW5xhO7du1NQUMD8+fN57733eP/99znvvPOsjlXLeeedx5dffsn69eu55557yMvLo3v37lbHquFwOOjcuTNvvvkmLpeLoUOHopQiKyvL6mg1MjIySElJYebMmXi9XiZNmkRWVhaJiYlWR6vRsWNHXC4Xf/vb31i7di0vv/wy55xzTlgVd69evdi4cSPLly/nmWeeYc2aNY0+dBcms7yLcPPFF1/w3Xff8cMPP4TdmCJAcnIyubm5vPfee1x99dVhVdrV+vfvz9atW8nJyWHlypVhtSVb7b777uPee+9lypQpfP/991bHOaq3336bwsJClixZwrZt26yOcwSbzcaWLVv4/PPPUUoxY8aMRl+nFLeoU7du3ejWrZvVMeo1ZMgQqyMc09SpU62OUC+lFH/5y1+sjlGvVq1aceedd1odo14XX3zxSVuXDJUIIUSEkeIWQogII8UthBARRopbCCEijBS3EEJEGCluIYSIMMcsbqXU6Uqpz5RS3yulvlNK/SG0PF0p9YlSKjf0OS20XCmlnldK7VBKbVJKndvY/wghhDiVHM8WdxC4T2vdFbgA+L1SqivwELBCa90JWBH6GuBXQKfQx3jgxQZPLYQQp7BjFrfWulBr/Z/Q7UrgByALuA6YF3rYPOD60O3rgPm6yv8BqUqp8LlAgxBCRLifNcatlGoHnAOsBVporQtDd+0HWoRuZwE/Hva0vaFlP32t8Uqp9Uqp9YGA52fGFkKIU9dxF7dSKhFYBEzSWte6ar2uumr4z7pyuNZ6tta6t9a6t8MR93OeKoQQp7TjKm6llIOq0l6otX4/tLioeggk9Ln6Ir4FwOmHPb11aJkQQogG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1r+LXq+XioqKsM5Y3/tEhcObKD09Xd9///1Wx6iTy+Xi4MGDtGvXzuoodSosLCQmJob09HSro9Rp27ZttG/fPqyHUTZu3MjZZ59tdYw6BQIBvv56F4cONf7F+n+p2NhSzjnHR6tGmv2oIeTl5ZGZmdnoM9WciGeeeYbS0tKj7yTSWlv+kZmZqcNZbm6unj17ttUx6vXBBx/o1atXWx2jXo8//rguLS21OkadTNPUEyZMsDpGvUpKSnSvXjm66pJg4fnRsuXXevHixVZ/q+o1a9YsnZuba3WMeoV68aidKWPcQggRYaS4hRAiwkhxCyFEhJHiFkKICCPFLYQQEUaKWwghIowUtxBCRBgpbiGEiDBS3EIIEWGkuIUQIsJIcQshRISR4hZCiAgjxS2EEBFGilsIISKMFLcQQkQYKW4hhIgwTba4V69eHdZTZAWDQdatW2d1jHqVlJSQm5trdYx67dixg5KSEqtj1Oubb74hGAxaHSOiuVwuNm/ebHWMeu3du5eCgoKTsq4wmXOy4axfv54PPviA2NhY/vWvf3HxxRdz2WWXWR2rlnfffZeNGzcSHR3NkiVLGD16NGeeeabVsWp55plnqKiowGazEQgEeOSRR4iLi7M6Vg2Px8O0adNwOByYpklSUhKTJ0+2OlYtO3bsYO7cucTExLBkyRKys7MZNmyY1bEizssvv8zu3btxOBy89dZbTJo0iebNm1sdq4Zpmjz22GM1G4pKKf70pz9hszXednGT2uLWWrNhwwZM0+QPf/gDLVu25PPPPw+rLW+tNf/85z/p3r07d999N0VFRezatSvsMs6bN48bbriB3/72t3zyySe43W6rY9Xi9Xr597//zejRo7nxxhuZP39+2H0Pd+3axf79+5kwYQJnn302H374YVhljARaaxYuXMill17K+PHj2bhxI8XFxWH1fTRNk7fffpvhw4dz8803884772CaZqOus0kVd35+Pps2baKyspJf/epXjB49mtjYWFavXm11tBrvv/8+F1xwAXPnzmXy5MlMmzaNhQsXUlFRYXW0GlOnTiUnJ4fbbruN5cuX88YbbzB+/HirY9Uybtw4Jk2axI033ojP5+P5559nypQpVseqUVlZyfz588nKymLw4MEMHjyYiy66iEWLFlkdLaL87W9/48477+Shhx7ixRdf5B//+AdTp05t9GL8OcaP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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "m.plot(Q)" + ] + }, + { + "source": [ + "## សារសំខាន់នៃ Q-Learning: សមីការបែលមែន និង អាល់គរីទึមន៍រៀន\n", + "\n", + "សរសេរកូដខ្ទង់ប្លង់សម្រាប់អាល់គរីទឹមរៀនរបស់យើង៖\n", + "\n", + "* កំណត់តារាង Q-Table Q ជាមួយលេខស្មើគ្នាសម្រាប់ស្ថានភាព និងសកម្មភាពទាំងអស់\n", + "* កំណត់អត្រារីនការរៀន $\\alpha\\leftarrow 1$\n", + "* ធ្វើការស្ទង់មតិជាច្រើនដង\n", + " 1. ចាប់ផ្តើមនៅទីតាំងចៃដន្យមួយ\n", + " 1. ដំណើរការ\n", + " 1. ជ្រើសរើសសកម្មភាព $a$ នៅស្ថានភាព $s$\n", + " 2. បំពេញសកម្មភាពដោយចង់ទៅស្ថានភាពថ្មី $s'$\n", + " 3. ប្រសិនបើយើងជួបស្ថានភាពចុងក្រោយនៃហ្គេម ឬរង្វាន់សរុបតូចពេក - ផ្អាកការស្ទង់មតិ \n", + " 4. គណនារង្វាន់ $r$ នៅស្ថានភាពថ្មី\n", + " 5. បន្ទាន់សម័យអនុគមន៍ Q ដោយផ្អែកលើសមីការបែលមែន៖ $Q(s,a)\\leftarrow (1-\\alpha)Q(s,a)+\\alpha(r+\\gamma\\max_{a'}Q(s',a'))$\n", + " 6. $s\\leftarrow s'$\n", + " 7. បន្ទាន់បន្ថែមរង្វាន់សរុប និងបន្ថយ $\\alpha$។\n", + "\n", + "## ប្រើប្រាស់ប្រៀបធៀបនិងស្វែងរក\n", + "\n", + "វិធីល្អបំផុតគឺត្រូវតែធ្វើតុល្យភាពរវាងការស្វែងរក និងការប្រើប្រាស់។ នៅពេលយើងរៀនច្រើនអំពីបរិស្ថាននៃយើង ការធ្វើដំណើរតាមផ្លូវប最佳 នឹងកើនឡើង ប៉ុន្តែ នៅពេលខ្លះយើងក៏ត្រូវជ្រើសរើសផ្លូវដែលមិនទាន់បានស្វែងរកផងដែរ។\n", + "\n", + "## ការអនុវត្តដោយ Python\n", + "\n", + "ឥឡូវនេះ យើងមានភាពត្រៀមខ្លួនដើម្បីអនុវត្តអាល់គរីទឹមរៀន។ មុននោះ យើងត្រូវការទាំងអស់នូវមុខងារដែលនឹងបម្លែងលេខចៃដន្យក្នុង Q-Table ទៅជាវេកទ័រនៃប្រហែលប៊ីតសម្រាប់សកម្មភាពដែលសមរម្យ៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def probs(v,eps=1e-4):\n", + " v = v-v.min()+eps\n", + " v = v/v.sum()\n", + " return v" + ] + }, + { + "source": [ + "យើងបន្ថែមបរិមាណតូចមួយនៃ `eps` ទៅក្នុងវ៉ិចទ័រដើម ដើម្បីជៀសវាងការចែកដោយសូន្យនៅករណីដើម ពេលដែលធាតុទាំងអស់នៃវ៉ិចទ័រត្រូវគ្នាគ្នា។\n", + "\n", + "algorithm សិក្សាដែលយើងនឹងដំណើរការសម្រាប់ការពិសោធន៍ចំនួន 5000 ដង ក៏ហៅថា **epochs**: \n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "" + ] + } + ], + "source": [ + "\n", + "from IPython.display import clear_output\n", + "\n", + "lpath = []\n", + "\n", + "for epoch in range(10000):\n", + " clear_output(wait=True)\n", + " print(f\"Epoch = {epoch}\",end='')\n", + "\n", + " # Pick initial point\n", + " m.random_start()\n", + " \n", + " # Start travelling\n", + " n=0\n", + " cum_reward = 0\n", + " while True:\n", + " x,y = m.human\n", + " v = probs(Q[x,y])\n", + " a = random.choices(list(actions),weights=v)[0]\n", + " dpos = actions[a]\n", + " m.move(dpos,check_correctness=False) # we allow player to move outside the board, which terminates episode\n", + " r = reward(m)\n", + " cum_reward += r\n", + " if r==end_reward or cum_reward < -1000:\n", + " print(f\" {n} steps\",end='\\r')\n", + " lpath.append(n)\n", + " break\n", + " alpha = np.exp(-n / 3000)\n", + " gamma = 0.5\n", + " ai = action_idx[a]\n", + " Q[x,y,ai] = (1 - alpha) * Q[x,y,ai] + alpha * (r + gamma * Q[x+dpos[0], y+dpos[1]].max())\n", + " n+=1" + ] + }, + { + "source": [ + "បន្ទាប់ពីបញ្ចប់ការប្រតិបត្តិអាល់ហ្គរីធម៍នេះ តារាង Q-Table គួរត្រូវបានធ្វើបច្ចុប្បន្នភាពជាមួយតម្លៃដែលកំណត់ភាពទាក់ទាញនៃសកម្មភាពផ្សេងៗនៅក្នុងរាល់ជំហាន។ សូមបង្ហាញតារាងនៅទីនេះ៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAFpCAYAAAC8p8I3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nOzdeXwURd7H8U/NmUzug4Rb7kMRQW4RFRFFlwVdXFRUdlFRQTxQ8FgUFVRQ1xMeZBE8F0VXF1R0PUCUS+VQhKDcoCQkQO7MPdNdzx+ZzMJKAMlMepLUm1deyXSa7u8M5Jea6qpqIaVEURRFqTtMRgdQFEVRfh9VuBVFUeoYVbgVRVHqGFW4FUVR6hhVuBVFUeoYVbgVRVHqmKgVbiHEECHEdiHELiHE/dE6j6IoSkMjojGOWwhhBnYAg4FcYD1wjZTyp4ifTFEUpYGJVou7N7BLSrlHSukHFgHDo3QuRVGUBiVahbsZsP+Ix7mhbYqiKEoNWYw6sRDiZuBmAKvV2qNr165GRTkhn89HRUUFmZmZRkepVmlpKVarlYSEBKOjVCs/P5+srCzMZrPRUar166+/0rJlS6NjVCsYDHL48GGaNGlidJRqOZ1OgsEgqampRkep1uHDh0lOTsZutxsdpVpbt27F4/GIY35TShnxD6Af8NkRjx8AHqhu/6ysLBnLdu7cKefNm2d0jONavHixXLt2rdExjmv69OmyuLjY6BjV0nVdTpgwwegYx1VUVCQff/xxo2Mc1+rVq+WSJUuMjnFcc+fOlTt37jQ6xnGF6uIxa2a0ukrWA+2FEK2FEDbgauDDKJ1LURSlQYlKV4mUMiiEmAB8BpiBV6SUW6NxLkVRlIYman3cUspPgE+idXxFUZSGSs2cVJQo0HWd9evX8/rrr6PretW1HkWJCFW4FSUKunbtyrx58yguLqZJkyZUVFQYHekomqZx4MABo2Mop8iw4YCKUl99/fXXDB48mMmTJ1NYWIjP5+PTTz9l5MiRRkcDKvPt2rWLnJwcunfvzsUXX0zjxo2NjqX8DnWuxb1nzx7effddo2MoSrWCwSAWi4WcnBw++OADrFYrgUDA6Fhhs2fPxul0cvfdd/POO++wfft2oyMpv1OdanEPGzaMuLg4+vTpw5lnnsmKFStielKM0jANGjSICRMmsGTJElwuF4FAgN27dxsdC4BFixYxePBgrrjiCqZMmcK8efOYPHkyPXv2jOnJW0eSUuL1elm4cCGtWrWif//+xMfHGx2rVtWZFveePXuIi4tj7ty5jBgxgksuuYScnByjYynKMeXk5DBr1ixuueUW8vPzSUpKMjoSACNHjmTZsmUsX74cv9/P1KlTGTt2LA6Hw+hoJ83j8dC8eXN8Ph+fffYZnTt3NjpSraszhXvjxo307t2b8vJyXn31VRo3bsyqVavU1XolJpnNZkwmEyaTCYvFghDHnrlc20wmE0OHDuX777/HarWyfft2WrZsGTP5Tsbbb7/No48+Sq9evbj11lu58cYbWbx4sdGxalWd6Sr585//zJlnnklBQQFNmjRh0qRJ5Ofn16n/cErD0q1bN9asWcOWLVs488wzjY4TNnr0aPx+P0888QSnnXYabdu2NTrS79K8eXNeeuklCgoKmDBhAnl5eVx88cVGx6pVdabFDbBixQqGDh2Ky+WioKCAW2+9ldLSUqNjKcoxZWVloes6hYWFRkf5DZvNxvnnn4+UEr/fb3Sc32XAgAF8+umnBINBpk6dyjfffEOfPn2MjlWr6lThzszM5IILLuChhx4iOzub1157jYceeohdu3YZHU1R6pyBAwfi8/n45ptvjI7yu/Xq1YtevXpx0003sWnTJqPj1Lo6VbirVHWPpKamcuedd/Lmm2+yb98+Y0MpilIr5syZw6233sqIESPo3bt3g+wurZOF+0jt2rVjzJgxTJ06FbfbbXQc5RQsXbqUAQMGcPHFFxMIBNA0DU3T1IXnWmAymerUlPwZM2bQoUMHRo0aZXQUQ9X5wg3QqlUr5s6dy+jRo8nPz4/qufbu3RvT/8mDwSD79+8/8Y4xZMiQIXz22We89dZb9OvXj169etG7d282bNjAtm3b2LZtGx6Px+iY9dKDDz7IjBkzcDqdRkc5obKyMg4cOECXLl0aZCv7SHVmVMmJOBwOZs2axaxZsxgzZgzt27eP+DmWL1/OBx98QNeuXenVqxdnnXVWxM9RU2+99RabN2+mU6dODB06tE5MZbZYLFgsFhwOBxs2bAAqJ1lMnDgxXFDOPPPM8ASRgQMH1rmRELHKZrPF1KzO6pSVlTFnzhxGjhxJmzZtDMuxZcsWkpKSaNWq1Unt/9lnn7F//35atWrFRRddFLEc9aZwAzRp0oQxY8awYMECJk6cSHZ2dkSPbzKZeOSRR3jsscc4fPhwjQq3x+Nh3LhxEWm9t23blqpbv6WmpnLXXXdxyy230KlTpxoV7p9++oknn3yyxvmgslX9ewgheP7558OPly5dSlFREQD/+Mc/OHjwIABXXHEFl19+eUQyKrHr4MGDbNu2jQceeMCQ8wcCAW655RaaNm2K1+vF6/Uya9aso1r+q1atYv78+Uf9vbPOOouMjIyI366vXhVugPbt2zNx4kTGjRvHm2++GdFpvAMHDuTiiy9m9+7deDyeGq2ZEh8fz2uvvRaRt3xxcXFs3LgRqBwqdeGFF3LgwAFuuOGGGj3/Ll26MHXq1BrnA0hLS6vRtO+hQ4eGvy4oKAivtvevf/2LRx99FICLLroonNdsNh93NmBVK9NqtZ5yppNR9Uu0Z8+eMTN78n+98cYbXHPNNSxdutToKMek6zp33nknr732mmEZKioq2LFjB4899hgul4sBAwawbNmyo6baDxw4kAcffPCov9e0adOoLCVQ7wo3QHZ2Nm+++SYTJkxg6tSptG7dOiLH/emnn3j//feZM2cOmqZx//331+h4QoiI9dVVFe49e/bwxRdfcMcddzBu3Dj69+9fo+OaTLF3GaRx48bhdxIPPPBA+N9h+fLl/PGPfwQqf2BuvfVWoLI49+3bFyEEUkrWrl3Lhg0b0HWdXr160b9//6j1mWZkZFBSUoKu61E5fiQ0a9aMvLw8o2NUa/PmzWRnZ0f8HfTvcd999/H888+zevVq5syZg9PpZPTo0cycOfOo/Wrr56VeFm6AhIQEpk6dyuuvv871118fkT7RTZs28f777+P1ern44otjsqgtW7YMn89H69atadmyZUxmjKQjf/kNHjyYwYMHA5CXl8ecOXPC+3z55ZdAZd/57NmzmT17NmazmVGjRrF3796YvvN8Q7ZixQpWrFjBP/7xD0NzzJo1i06dOjF//nwmTJjAvffey5NPPmnYRdJ6W7gBWrduzfXXX8/TTz/Nk08+SUpKSo2ON2rUKFavXh3VFlpNTZw4kc2bN9OzZ0+joxiqWbNmPP744wD4/X6WL18OwL333ktFRQULFiwIv/2+9957eeaZZ4yMayghBFOmTOHvf/87kyZNMjpOmJSSzz//nEsvvRS73W5oFqvVyty5c1m3bh3Jycm8/PLLhuap14UbKi/cPfXUU4wePZoFCxaQkZFRo+Ode+65EUoWHTabrcEX7f9ls9m49NJLAejbty/9+/fnxRdfJCkpiT//+c988MEHBic0lhCCbt268eGHHxodJUzTND766COaNm1Kv379jI6D2WxmyJAhnH/++ZhMJsN/kdT7wg2QnJzMK6+8wvTp0xk/fnxUhgoqdUNKSgrdu3dn3rx5CCFo0aIFqampRsdS/kdJSQnz5s3jk09i637jsbLud4Mo3ADp6encdtttvPHGG9x00020bNnS6EiKAUwmEwsXLuSnn35CSskZZ5xhdKSYkJmZSceOHfnmm29iooU7e/ZsbrnlFqNjxKz6feXqf7Rr146xY8dy//33q+nxDdzpp59ea0XbbDajaVqtnOtUpaam0qJFi5i4OUkwGOTDDz9k2LBhRkeJWQ2qcAO0aNGCBQsWMGbMGHJzc42OozQAS5cu5ZJLLjE6Rp3x4IMP8tFHH8XsAIBY0OAKN1T2Uz377LOsXr3a6ChKA2CxWOrEtPKOHTty6NAhiouLDc0xc+ZMmjVrZmiGWNcgCzdUDhe7+uqrjY6hKDGjT58+7Nu3j4KCAqOjKCfQYC5OKopyYjNmzCA5OdnoGMoJqMKtKFEmhKgzt9bKzMw0OoJyEhpsV4mi1BYhhOFTtpX6RRVuRVGUOqZGXSVCiH1ABaABQSllTyFEOvAO0ArYB4yUUpbULKaiKIpSJRIt7oFSym5SyqoFMu4Hlksp2wPLQ48VRVGUCIlGV8lw4PXQ168D6vYkiqIoEVTTwi2Bz4UQG4UQN4e2ZUspq+7YWwAYt/q5oihKPVTT4YDnSinzhBBZwBdCiG1HflNKKYUQx7ypYqjQ3wyQmJjIzp07axglenJzcyktLY3pjIWFhei6HtMZXS4Xe/fupbCw0Ogo1fL7/TH9GpaXl+NyuWI6Y0FBQcz/vJSWlrJ///6I3PM1Wo5316QaFW4pZV7o8yEhxGKgN3BQCNFESpkvhGgCHKrm784D5gFkZGTIr776qiZRoqq0tJTc3FxiOePu3btxOBzhG+rGosLCQtauXWv4WsbH43Q6Y/rf2ev18s3hb/jgq9hdQ9yR72CQZ1BM364tLy+PjRs3smvXLqOjVOu4r5+U8pQ+gAQg6Yiv1wJDgKeB+0Pb7weeOtGxsrKyZCzbuXOnnDdvntExjmvx4sVy7dq1Rsc4runTp8vi4mKjY1RL13U5YcIEo2McV1FRkezxeA9JDP9pvLqxXLJkidEv1XHNnTtX7ty50+gYxxWqi8esmTXp484GVgshfgTWAR9LKT8FZgKDhRA7gYtCj5X/4XQ6ufLKK42OoShKBOzevZu777671s53yl0lUso9wFnH2F4EDKpJqIZAShnT3RqKopy8QCBAaWlprZ1PzZxUFEWpY1ThVhRFqWNU4VYURaljVOFWFEWpY+pV4c7Pz+e1114zOoaiKEpU1avCXVZWpu4jGSFOp5MxY8YYHaNeCwQCBINBo2ModZC6A45yTJqm8euvvxodo17SdZ1vv/2WVatWkZaWRrdu3ejVq5e6q3kdVtv/dvWqxZ2enk7Tpk3JyckxOoqiVMvv93PVVVdxxhlnEBcXx1VXXWV0JKWGZC2veVKvCndWVhYtW7Zk48aNRkdRlGrdd999LFy4kGAwSPv27XnhhReYNm2a0bGUOqReFW5FqQvuv/9+rr76atasWUPr1q156qmnuPPOO42OpdQhqnArSi1LS0sjEAhgs9l44oknaNOmDSkpKUbHUuoQdXFSUWrZ7Nmzef755+nYsSMpKSm0b9/e6EhKHVPvWtzDhg1j48aN7N+/3+goSh2gaVqtXVjSdZ0nn3ySDh06MGrUKHr27KmKtnJK6l3hzsrKoqysDK/Xa3QUJYaVlpaydetWRo4cSU5ODgUFBVE9n9/vZ8GCBbRq1YqhQ4eqoX/1jBoOqCi14IMPPmDcuHE8++yzTJ06leeeey6q56u6g9JVV12FyaR+7Oqb2h4OqPq4lQbj3Xff5aOPPgJgz5496LrO9OnTmTt3LvPmzWPTpk1ROa+UkhdeeIFx48ZF5fh10cyZM9m6dWv4sdVqZd68eVgskSlJK1aswGq1cu6550bkeLGmXhbu+Ph4vF4vUsqYfUvqdruJj483Oka1hBDY7XZ8Pl+t3yPS5/Ph9/tPat9XXnnlpNenGTVqFA8//DAA//73v3G5XFx33XXs3LkTt9tNhw4dTjVytXw+H+PHj2fSpEl07tw54sevq0aPHo3b7Q4/DgaD9O3bF03Tjrl/8+bNeeutt6o9nsViIT4+Hk3T6NatG0OGDMHv93P77bezcePGqL/LMZlMmM1mAoEAVqs1queCelq4X3rpJXr06MGGDRtitnBfeumlrF+/3ugY1UpKSuKee+7hiSee4NFHH43KOaSUrFq16jc3RV21ahUrVqw4qWOMHj36pCdcCSHC/x+6du3Kk08+SadOnZg/fz4jR47E4XD8vidwAsXFxbzwwgvcdtttdOrUKaLHruuaNm161GMpJevWrat2/7y8PIYPH17t9zt27MhVV12Fpmn4/X4uu+wyOnXqRHl5OT/++CPdu3ePWPZjad++Pf369WPhwoX89a9/jeq5oJ4WbiFErfc5/V6x/G4A/lvkovk6SilZsWIFgUDgqO3nn38+Dz30UNTOCzBkyBCGDBnCnDlz+OKLLzCZTBF9rh6Ph9mzZ3PBBRdw9tlnR+y49dWRv1SPpUWLFnz55ZfVfv/nn39m4cKF6LpOeXk5y5cvJy0tjZ49e7Jx48aoF+6q7LVVd+pl4VbqBpPJFO66MMr48eOjclyPx8Pq1auZOnVqVI6vHK1z58489thjBINBXn75ZTIzM/n888955plnyM/PNzpexKnL24oSYYWFhdx444289957RkdpcMxmM9u3byc9PZ2WLVuybdu2mH5ne6rqbYv7wgsv5KuvvuLCCy80OorSgOzcuZO5c+fy8ssvk5ycbHScBkcIQXp6OqNHjzY6SlTV2xb3I488olZcU2pVbm4ub7zxBrfeeiuZmZlGx1HqsXpbuBWlNkkpKSgooLy8XE1jV6Ku3naVKEpt+vnnn5k1axYLFiwwOorSAKgWt6JEwCeffMKCBQsiNvNPUY6n3v4vi4uLY+TIkSxatIirr77a6Dh1zu23386WLVs4fPgw27dvZ8GCBSQmJhodK2ZNmjTJ6AhKA1JvC/dFF11EXl4eFRUVTJkyhfXr15Oenm50rDrB5XKxceNGbr/9dr777jt27NhBcXGxKtyKEiPqZeHesmULrVu35tFHH+WLL74AYN26dQwZMsTgZHXD7NmzmTRpEq1btyYQCHDdddcxbdo05s+fb3Q0RVGop4V7z549tGvXjlatWnHRRRexf/9+fv75Z1W4T9J9991H586dmTx5Mq1bt+aqq65iw4YNRsdSFCXkhBcnhRCvCCEOCSFyjtiWLoT4QgixM/Q5LbRdCCFeFELsEkJsFkIYskjD8OHDWbhwIc8//zx5eXncfffdXH/99UZEqbNeeeUVAL7++mvmz5+vukkUJYacTIv7NWA28MYR2+4HlkspZwoh7g89vg+4FGgf+ugDvBT6XOvWrVvHpk2bWLduHbt37yYpKcmIGHVWv3796NWrF8FgkLi4OKPjKHVMfZxmHktOWLillCuFEK3+Z/Nw4ILQ168DX1FZuIcDb8jKJbK+FUKkCiGaSClrfZWXpKQkBgwYwIABA2r71PWGxWJRw9uUUxLrq3PWdaf6U5l9RDEuALJDXzcDjrxLb25oW/1bnusUrVq1in/+85/s37+fcePGcdlllx13nWFFUWKbruvceeedbNmyBYDvv/+eF154Iao3b6jxkUOt69/961UIcbMQYoMQYoPH46lpjDpB13W2bt1K27ZtyczMpF+/fqxfv77au34oihL7fD4fq1evZtCgQVx00UWsXr0an88X1XOeauE+KIRoAhD6fCi0PQ9occR+zUPbfkNKOU9K2VNK2TOWb+EVSfv27WPHjh389a9/pVevXlx++eXYbLaYvhOOoijHd8899zB37ly6detGt27dmDt3Lvfcc09Uz3mqXSUfAn8BZoY+f3DE9glCiEVUXpQsO5n+bU3TWLJkySlGib7CwkJ2794dkYw2m41Zs2YxYsQIFixYQF5eHgUFBTU+dk5ODr/88gsHDx6sccZoKSgo4NNPP43pe22Wl5fH9P9Ft9tNQn4CbZa0MTpKtZL2JZHjyonpfu49e/ZgsVjIyck58c4nMHjwYCZPnszdd98NwOTJk5k4cWKN/x8d7534CQu3EOJtKi9EZgohcoGHqSzY7wohbgR+AUaGdv8EuAzYBbiBMScT0O8XjBuXfeIdDeJw6PzlLw6ys2ue8cj+7OzsbM4555waHxPgl19+Ye7cFEpLY/d1bNfOzuWXNyIhIcHoKNWyWCwR+XeOFqfTSS97L2ZmzzQ6SrW2lWyjwlQR06+jw+HgifQncGe7T7zzyXgSxjEu/PV4an5nJb+o/obZJzOq5JpqvjXoGPtK4LaTThb+eyYKCvr93r9Wa1JSdtGkSRH9+sVuxoMHD1Jamh3Tr2Pz5svp0aMHNpuNiooK0tJTOVhygKSEFMoDh/i85A32uLdiCliwi0SEbia/4gB904Zwceur8bt9NG/UkvLychISEigpKcHhcBAIBNA0jYSEBKSUxMfHh6foV1RUkJKSEn7s8/lISUnB5/MhpSQuLg6TyRS+v+Zbb70VsX9nv99PIBCI6C+q4uJi1q9fX+OMuq7z6aefkpuby8iRIykvL+fFF19k+vTpNX5HpOs6hYWFMf3zsnnzZorOLKKsXZnRUaqVaKp+7oQa66XUKil1igIH2OPaigmdD/Pn0C7hbPy6HxvxdLD14YDvV8o8pXRK7c5pGV1JtqYxecW1JFkzuK37gzSyNcEWsGEymcJ3iDeZTGiahpQSn8+HEAJN0xBCEAgEwt8XQuD3+8NvQ4PBIDabLeLPc/ny5ezcuZODBw/So0cPLrnkEqxWa8TPc6pcLhcfffQRd999N1dccQVvv/02TZs2ZeXKlVxyySVGx1NOQC3rqtQqieSHQ98xbcMDvLThRczOZpSVBfh280+88ekS1uz4mtxf89j43Y+s3ruCX4p/IefgFuwymXiRzNubXuGzXR/i9FZgs9kQQmA2m4+6S3sgEMBqtaJpGhaLBU3TsNvtCCGwWCwEg8HKLFL+5g7zkTJ+/HhSU1O58MILueuuu3C7I/SWPEKSkpIYPnw4N954I3v27OGBBx5g06ZNdaJo+/1+5s6da3QMQ6nCrdQqkzDTM/NCmgR6sHV7MZu3HuaHzfmUH7BhdzfGtd9B3g4/W384zHc//MDWPetZ+f1XeFxB1u7+hkMVRcxd+38U+wqpqKgAKt+aezweLBYLJpPA4YjH6/VgtVrx+XzExcXhcrnCre2EhIRwEXc4HBF/jg8//DDPP/88bdq0YdeuXbz//vvcfvvtET9PTfXp04cZM2aQkZHBqFGjeOihh4yOdEIzZ85kyJAhJCUlce6557J69WqjIxlCdZUotUrXdRLMDl7844vcsHgM/8n5BN0H8TIOm7Tx/S6NP/cewY2De1HmKsXmsZHr/g/e8iIKi0vYqe0mGDAz/KU/8sXtK4DKkTpxcXF4PW5yls9k1/p/EgxqdO73F3oMnUZFRQUZGRl4vV7i4+MpLCzEbrcTDAZxu91kZGRE9Dn+7W9/o3///owfP54ff/yR119/nXfeeSei54iEtLQ0+vfvT0pKCn379o35ZSHKysrIzc3lxRdfJCEhgbKyMvbu3Uvfvn0b3Axf1eJWapXJZMJut+N1evjHiLlc1ukPWMxm2jRqQ992fenaqgu/HP6FrXk5FFUUk1+UT0LRabi2p3Bmcmc8ZYWge9HKBDe9eBNCCLxeL8XFRVQc3MruraspKffSrMswUpt2o6K8nMTERA4fPowQApfLRWZmZng6f2pqasSfo91uZ+DAgbz77rusXr2atm3bqju+R0BOTg5NmzYN38X93HPP5ccff4y5bqja0LB+TSmGk1Li9/tJS0sjEAjw0og5PBj/EP/e+G9KnaUkmBNwiHh8ws+hom2UlZSRZE1meL/hOCucxJNO0eFDmNIO4D8YQNOCWK1WVix+nkP71lCSv5/uF05kwLCJBIOV3/N4PKSlpaFpGg6Hg7KyMsxmM1JKnE4nKSkpEX+eTz/9NJ9//jnfffddneiCqAv69+/Pq6++yq233sqOHTu44YYbePjhhxvkL0VVuJVaZzKZwhcT0+LTmXbJNKzCzr/WvcvB4kMQABEAoQm6N+9OvDmePfl7iLfEk2TNoG3LTrz9+eu0ubiAV5fMZ/TQv7D+q/fJbtKc4be8QnarruHjVw3zM5vN4VElR04MUavY1S2PPfYY/fv3p23btrz66qs0a9bM6EiGUIVbqXUmkwmn00lCQgIul4tkezIz//AE0y59mCv+70+UlJewa/8espIyKXYWkWhNwuv2QkBy+HARidYEBvcYRm7uDlbJxXw77lXSNMmQgddxWud+WK1W3G43drs9fHHS6XRis9nw+/04HA40TUPX9agO0UtNTUXXdUpLS6PSJdMQNW7cmJSUFL7++uuYGl5Z21ThVmpV1TjrjIwMiouLSU1NxeVyYbPa8Dv9LL1tKfuK9/HRxo9weV2YgiYSbA7KS8tBCjxuL3azjasuuoqeZ/Vk5ebPeXntVM7/w1Wc1XcomqbhdDpJT0+nvLyclJQUSktLyczMpKKigvj4eIqKinA4HEgpcblcUZvh17t3bz766CN++OEHBg4cGJVzNFTRXHmvLlCFW6lVQgjsdjvFxcXEx8dTVlaG1WolGAySmJiIlJJ2We24ffDtSCmxWcwUrF5Gwbp/47DHkTHwUlL7DcJqt1NSUkKgIIinVND/ohHYbDaklKSmplK4bx/rF8ymOPdX0tp2psdfxpKa1Sjc363rOrqux/S6KcpvvfDCC0yePFkVbqMDKA1LVYs7JSWFsrIykpOTcbvdWCyW8Fhs/F5MPi/bpt6O9HtpfsW19HxgBrowYTWb2DvvSYp+3EhQ09lVWIr98CF8OevZsGYlhzZ/T0DT6HzVDXT/09X4fV40r4+3b74eZ7mTYVMfJbl1W7JbtMRkMuFyubDb7Ua/LMpJ2rJlC5MmTWrw1yZU4VZqndlsJhAIhGcxVl1INJvNaBVlHJj3NK5fd9H57mlYk5IJlJbg3bMTBPgkNPvTdZw2+jaCrgqafb2cnjt+pmjNSloNuJAzR91EMOjHVVKCv6IMTYKOZNiURwhqOqsWvsHm1au5Zf5rtDm7B2az2eiXQ1F+N1W4lVolhDhqHZGqNUOklBAM8stLM9AOHqDNtbfiP1xA8HABAklVA0tI8P+6F6+U6EByx86kduuB5g/iKS2i/JfdaFKiSdCkRJcSTQddSoK65OyhwwjoOgsn3c3VM56ifR9DbomqnIJ169Zx2mmnkZWVZXQUw6nCrdQqKSXBYJC0tLSjLk5aLBb2L/4nnl0/0/q6W5oHB38AACAASURBVCHgReggROjjqGNUFnCQaG4Xfikri3WoQGu6RJeEi3dQk2hSJxjap8t5A/F5/cwddwsT3/kXnc8+26BXQ/k9fv75Z5o0aUJ6errRUQynCrdSq0wmE3FxceTn55ORkUFhYSEJCQn43C6Kl31Ix2tvQ3OXIU2AEJhCLXRTqHJLKStb55LKCl5VpHWJrkuCUkfTJZoGwVDhDug6QQlBXUfTBZqu0/mc/hzKzcVTWGjky6Eop0QVbqVWVbW44+PjCQQC4QuDRauXYUtIxFuYh9kkMJkrRw0IM5iPKNy6rGxVS12ApqNLHSlB6qGWtl5VoCUBvbJ7JKhLgpLKAq5XdqMEgjoZzU9jzp138PLWnxCqrzumlZaWkpeXx/nnn290lJjQsMfUxKiHH344vPRofVQ1IqDqs5SSiu/X4mjVDs3jQve4kG4XeF3gcSO8bsw+D2afB+GtfCy9LqTXje5xo7vd6G4XutuF5naiud0E3K4jPpz4Xf/98FZU4HVV0LR9WzSf18iXQjlJhw4dYvv27fTv39/oKDFBFe4Y8vHHH9O5c2fOOeccevXqxdSpU42OFHFV62d7vV4sFgt+vz+0zYTU/OHCrXtcSI8L6XFDqFgLb+XXeDxwxH6610XQE/pwuwm6nQRDRdvvduFzOvG7KvC5nHidbrxOJ16nE09ZWfhGDIpSl6iukig7fPgwW7ZsOal9v/vuOy666CJsNhvvvPMO8+fP5+DBgzF9777fS9d1fD4fqampuN1ukpOT8fv9+H1+ZNFB7KF1TIRZYDIJhFkgTCYq2xiSIKDpOkFdJ6hVdoMEQl8HpCSghT50iT+oE9ShvLwMsyMBvybx60d8PzQJJ5ratGnD3r17GTBgQMwuPdq9e3c2btzIBRdcYHSUY5JSsnXrVk4//XSjo8SM2PyfVI8UFRXx1VdfndS+P/30Ey6Xi5UrV3LTTTfhcDg4fPhwvSrcJpMJm81GUVERjRo1oqSkhKSkJOKSU8j/+lNsJhOkpkKoeGOqHFIS9PsQ9nh0qvqtweeqwF14GL+m4wvq+HWJT9PxBSWayYIlM5sAgrIDuTgaN8Ov6wQ08GkaQR0O5xfg90a3q2TMmDEMGjSIESNGRGUVwkj4+9//To8ePfjhhx+MjnJMUkqmTZsWs/mMoAp3lHXq1Ilp06ad1L7vvvsuDz/8MM8++yzXXHMNXbt2pUuXLlFOWLt0Xcfv99OoUeX089TUVPx+P03+NJrDa5ZTun0LWrOWJGRmoZsEukkQFBDcvxtri7ZIwHPwAIHyMrw+X2W3R1DDr0k8QYkvqOHVdPwI9P2/4sdMfIuWlOXnIxISCGjg1XTKiovZs/Unug29HBr4LDyl7lGFO4ZcfvnlDB48mPHjx/Pee++RmFj9XZ7rMl3XMZvN6LoeXmbV3rQlusVGwOWGvTtB07AlJhKQGmbAX16G2Lyucqy2phHQdPyajl/7b/dIUOqhsdsQ0DS8pcX4gjpFhYV4Ahp+BMktWlFSUsKhvAK8/iBDx41r8NOnY92hQ4fq1bvOSFCFO4bYbDZsNhtvv/220VGiRgiBzWajoqICu92Ox+MJF3HNHo9fl8iAhrm8jKAWQDuwPzQcUCAADRmeZOPXdYKawK8f2Xeth/u8g3rlhJugFkDTIBDU8DidFOcfRJeAMBGfmGD0S6KcwNVXX83SpUuNjhFT1KgSpVZV3QEnNTUVj8dDUlISuq5jsVhode1N+EL91K7iYtzOCnyajlfT8Wg6bk3HG9TxBCsf+zXwhVrdR7W8db1yxqRedfGycpsuoby4BF3XkSYTvUb8CRGnVgdU6h7V4lZqVdWyroWFhSQmJlJaWorNZiMQCNC0/2B+0EGXOroMoFe4IahXXp8UlW0MKfXQJBwIhibb+EMXK/161WgRiV+r/H6gqoBLiYiLw+vxVe6jBel2wQW0bNPG4FdEOZ5gMKgWAjsG1eJWapWUkkAgQGZmJm63m5SUlPCdaCpcbpJ6nVfZyg5qOCucuAOVLWx3QA99LStb3EEdT1DDExpR4g1q+IIaPk3DH5T4NQ2/phMIFfNAUMfldOP3+Ulq1IhLbr0Fc1w8xcXFRr8kynE88sgjPPjggyQkqC6tI6nCrdSqqgk4brcbq9WK1+sNrxIYn5REh1E34g3KUIHW8IZGi3iDGt6gdkTRruxC8QZluHvFp0l8oe4Svybw6+DX5FHjvQNSkt2+PeXFJfT74zB1I4UYp2kaZrNZXUD+H6pwK7VOShle1rVqAoyUEovFQlq7jjS/eFioUIda1cHKvu3/9m9LPIHK7/tC+/lCo0wCoeJd2V2iVRZxXeLXIajpnH7eBWjCwjkjrsRisTTo+xYqdZcq3EqtqiraDoeDQCBAfHx8+CYKHo8HU0IiGV264cdU2erWKrtG3EENd7iIBysvVoYfV7bGvVrlGG6fLvEGKyfb+HUNX6i1rQsTac2aUVFRzpnnnYemabhcLqNfEqUaX375JUlJSfRRa6b/hircSq2qWtb10KFDJCQkUFRUFL4jTmpqKvHx8XS4ajTZfQdUdo34NdwBDXdQr/wI6Lj9El9Q4g3KUHdJZSvcGwSPJvEFK4cEekPdJwFNQ1qsdLlwMOuXf8WMxUuwx8VhtVrJyMiI+nPu2bMn69ati/p56puqbjR1a7nfUqNKlFpVdXEyMTERn89HQkJCeEKO1+tFSolJCDoPu5I936wh4HUf0br472qCOqGbJoQm3ISXbz1iCKA/tCZJEBOtunYngGDAlSPQrDaCwSBSSpxOJ0lJSVF9zjNmzODss89m06ZNUT2P0nCcsMUthHhFCHFICJFzxLZHhBB5QohNoY/LjvjeA0KIXUKI7UKIS6IVXKm7zGYzmqZhtVoJBALh2ZMWiyU89KvlhZfg6HQG3qDEHZThFnf4wmRoe1X/ty9Q2d/tC1+0/G+/d1a7DjjS0tm39SfOHDiQhMRETKHFrGJ14aeGrqysjMWLF3PttdcaHSUmnUxXyWvAkGNsf05K2S308QmAEOJ04GrgjNDfmSOEUIMwlbCqe05WLedadZFSShkuplA5Lf4P0/+OKS3jiIJd1WUicYUuSnoD/y3mHg08oaLt1TR0i5Xk5qdhSUyirLiYP915Bx179w6PUhBCqIuTMSoQCJCXl0fLli2NjhKTTli4pZQrgZMd7DocWCSl9Ekp9wK7gN41yKfUM//bVeJwONB1HZPJhMfjIRAIAJXT/5u2a8/Vc14hqWUrPAE99FF5IdJXNb473Meth0ei+IKVfeB+KfD6A5QXl9D9osFcNGYMcfHxVFRUoGmaujgZw+x2O4MGDTI6RsyqycXJCUKIzaGulLTQtmbA/iP2yQ1t+w0hxM1CiA1CiA2BgKcGMZS6pOpiU2lpKXFxcZSXlwOVM+QSEhKw2+1IKfF6vVRUVNCud1+GTptB9z+NxCdFeJSJ32yh9YALwkMEvUGNuMwsEhs3xatpldPhfQFsDgdX3H47g2+4ASEEXq+X1NRUzGYzFosl6v3byqlJSkrinnvuMTpGzDrVDr6XgOlU3rJ1OvAMcMPvOYCUch4wDyApKVv6fKeYRKlzbDYbWVlZmM1mGjVqFJ5cUdVNYrFYcDgc4W09Bg+hS79z+ePk+4HQXd5NAkdqKs4jZj5abHYQ4qg1tm1xcWS1bIkeGnIYHx+PECI88aY2JnYIIXj//fejfh6l4Tilwi2lPFj1tRDiZaBq6a48oMURuzYPbVOUsCP7sqs+H+l/16YwmUxY09JITEv7zb5p2Y1P6pxVR6w6X23OxBNC0LZt21o7n1L/nVJXiRCiyREPrwCqRpx8CFwthLALIVoD7QE1gFVRYpgQgtGjRxsdQ/kdhJTy+DsI8TZwAZAJHAQeDj3uRmVXyT7gFillfmj/KVR2mwSBu6SU/zlRiJSUdNmhw92n+hyizmp1ccYZhZx22mlGR6lWQUEBP/5ox+v9bas0VqSl7aBfv9YxPZJjy5YtnHnmmUbHqFYgEGDfvn20b9/e6CjVKi4uxu/307jxyb0bMsK+ffv4qdFPBBICRkep1o5nd1BWXHbMt4YnLNy1ISkpS/r9242OUa3k5H08/PCaGo8pPXTo0FGPrVYracd4+38qPv30Uxo1akSPHj0icrxoeP755xkzZkzM3nsRYMqUKTz++OMROZbf7ycQCJCQkBAewZKcnFyjY5aWlvLGG29wxx13RCRjNGzYsIGioiIuuSR2p3G8+eabnHfeeTHdGOvYsSOHDh06ZuGOkdkHAr8/dluKgUARdru9RkX266+/ZvDgweHhbgBnnHEG7733Hp06dapxxvj4eBISEiL2iyAQCLB+/XrOOeeciBwPKn9RpaSkRCxjpFWtmRKJfH6/n0WLFpGenk6LFi1o2bIlL7zwAnfccQetWrWqUcZI/sKPBofDgdvtjumMdrudxMTEiGV0Op3s3LmT7t27R+R4cPzrMGqtkigLBoN8+OGHXHvttUcVbYCtW7cyduxYtmzZQiy88zmS2+3moYceMjpGnaXrOsXFxWRkZPDQQw+FW96lpaVGR1OiIDc3l1mzZtXa+VThjiIpJV9++SW33noreXnHHlyzZs0a/vznP/+mG0Wp2+Li4ujduzdjx45l48aNjBgxgn379tGtWzejoyn1QIx0ldRPUkpKS0uPW5SllOzZs+c3rXGl7rvwwgvZunUrl112GYsWLYrprgOlblEt7ijy+XysWbMGTdOOu18gEGDZsmW1lEqpLWazGYfDEZ74o5YnVSJFFe4oslgstGvX7oSTPcxmM6effnotpVIUpa5ThTuKzGYzTZo0OeFdqi0WC82aHXNJF0VRlN9QhTuKhBAMHjyYUaNGHXe/5557juzs7FpKpShKXacKdxQJIUhKSuJPf/oTN9xww29mDDZp0oRx48Zx3nnnnbBVrig1oWkar732mtExjuk///kPBw8ePPGOSpgq3FEkpUQIwdChQytvtxW6o3kVt9vNmWeeSefOnQ1KqDQEc+bMYfjw4UgpufTSS1m1apXRkQA4ePAgl156KVu2bGHSpEkxPRs01qjhgFFWXl7Oo48+yptvvvmb0SVlZWVMmjSJjIwMhg4dGl7KVFEixe12s2PHDh544AFat26N0+lk79699OvXz9Dbtkkpyc3NpXnz5owePRpN07jxxhspLS0lNTXVsFx1hWpxR4mu6+zbt4/x48fz/PPPEwwGj7mf2+3mmmuu4bnnnqO4uDjmZlAqddsPP/xAdnY2HTt2ZPr06TRp0oQffvghJmZwzp8/n7Fjx/Lhhx/yn//8hxEjRrB48WKjY9UJqsUdYVVdIvPmzWPp0qV89tlnJyzGuq7z5JNPkpOTw9ixY7ngggvC90RUlJro378/b7/9NhMnTuT222+nT58+vPvuu2RmZhqaSwjBfffdxyWXXMKCBQsYP348NpuNDRs2GJqrrlCFO4KqivYrr7zC/fffH74t18moqKhg0aJFrF69mo8++oiuXbuqwn2EYDAYvsmv8vvce++95Ofn89xzz3HvvfcipQxffzFSkyZNWLhwIe+88w6PPfYYmqbxzDPPMHHixGPeYEP5L1W4I0jXdV599VXGjRt3wtmS1cnNzeWcc85h7dq1al0LKpcx3bdvHzNnzmTSpEk0btyY5s2bGx2rTmnZsiUtWrTg9ddfx2w288ADD9C4cWMGDBhgaPG22+307NmTbt26hQv1W2+9xWuvvUbv3r0544wzDP/lEqvUr7UIevPNN7n55ptPuWhX8Xg8XHPNNaxcuTJCyequZcuWMWHCBGbMmMFzzz3HE088YXSkOkkIgc1mw2w289RTT7Fs2TKWLl164r9YCywWS/h2dtdddx2apjFv3jw+/vhjo6PFLFW4I2TBggXcddddR/VnCyFwOBwnbDUIIUhISDhq27Zt27j55pv57rvvopK3LiguLmbt2rUsWLCAl19+mcTERFq0aMHatWuNjlbnTZkyhT179sTkxcCxY8fy9NNPs3v3bj744AOj48QkVbhrSNM03n77bSZPnkxZWdlR32vVqhWzZ88+YX+d1WplyZIlpKSkHDVJZ/v27Vx55ZXs2LGjQY42SU5O5qyzzmLZsmWMGzeOyy67jBdffJFdu3ZRVlbWIF+TSLHb7XTp0oWcnJxqRzwZyW63M3bsWDZv3szKlStj/t+6trt0VOGuASklK1eu5Prrr6ekpCS8vXHjxvTv359vv/2WzMzMk/pHPfvss/n111+55557jmp95+bm0q9fP/Lz86PyHGKZxWKhdevWLF68mBUrVjBnzhzuv/9+9u/fz7XXXsvy5cvZs2eP0THrrAsvvJDmzZvz5ptvxmTxdjgcPPjggyxZsiTmuw1r+xeLKtw1oOs6f//734/q027atCnTpk3jk08+oVGjRid9rKrp8ZMmTeK22247agnQiooK5s6dG/Otjmg477zzWLZsGX6/n48//pg777yTKVOm8N5777FmzRreeOMNHnnkEbxer9FRj+nLL7/kvPPOi8klXYUQjBkzBiEE//d//2d0nGMSQvDMM8+wZs2amOzWqZKZmUnLli354YcfauV8qnDXgBCCVq1ahdcZsVqtTJ8+nVGjRpGcnPy73z4JIcjIyOC+++5j/Pjx4e12u73WR1IkJCQwatSomFnf4qabbjpqpl9cXBwPP/wwo0eP5txzz+XKK6/kiSeeCA91ixUrVqzgvPPOIy4uzugo1frLX/5Cy5YtefLJJ2PqtasihOCuu+7il19+4ZNPPonJjFWFe9OmTbVyPlW4a0AIwfTp05k8eTJt27Zl/fr1jB49+jcXGn/vf7S0tDRmzJjByy+/TJs2bZg9e3a4ZVRbqropYr0rok2bNgwaNIi33nqLjh070r17d7766isOHDhgdLQ6QwjBsGHDaNSoEW+88YbRcY7J4XAwfvx41qxZw9q1a2OyeNcmVbhrQAhBWloajz/+ONu2baNr165HtQqllAQCgZOaOXnkrcuEENjtdm644Qa2b9/O6NGjDV1XItYJIUhOTmbEiBFs2rSJzz77LGbf+scqs9lM+/btyc/P/81F9lhhs9l4/PHH+fDDD/n888+NjmMoVbhrSAiByWTCYrEcs0Xctm1bevTocdxjXHHFFcfsAz3yuGoiwsmbOXMmjz/+uNEx6pwBAwbQt29fHn/88d+sZBlLHnvsMbZu3cq4cePYvHmz0XEMoQp3FAkhaN269QlvSzZo0KDfdK8oihEuuOACRo8ezU033RSTI02g8lrSLbfcwrhx43jxxRcpKCgwOlKtU4U7yk6mtaxa1EosOeOMM7jpppv429/+ZnSUaiUkJNC1a1fmzp3LXXfdxc6dO42OVKtU4VYU5ShCCJo2bUpcXBy7d+82Os5xWSwW5s2bx6uvvsrGjRuNjlNrVOFWFOU3WrVqxXXXXceLL74YE2t3H09ycjITJkxg8eLF7Nixw+g4tUINVVAU5Zg6dOjA1KlTSUpKMjrKCTVt2pTJkycTHx9vdJRaoQq3oijVysjIMDrCSUtJSTE6Qq05YVeJEKKFEGKFEOInIcRWIcSdoe3pQogvhBA7Q5/TQtuFEOJFIcQuIcRmIcTZ0X4SiqIoDcnJ9HEHgXuklKcDfYHbhBCnA/cDy6WU7YHloccAlwLtQx83Ay9FPLWiKEoDdsLCLaXMl1J+H/q6AvgZaAYMB14P7fY6cHno6+HAG7LSt0CqEKJJxJMriqI0UL9rVIkQohXQHfgOyJZSVq01WgBkh75uBuw/4q/lhrb977FuFkJsEEJsCAQ8vzN23XEyix7put7g115QFOXknXThFkIkAu8Dd0kpj7oLrqysOr+r8kgp50kpe0ope1qt9fdKcFxc3FGzIs1mM/Hx8UdNuMnIyFA3R1UU5aSdVLUQQlipLNoLpZT/Dm0+WNUFEvp8KLQ9D2hxxF9vHtrWIFksFrKzs0lOTiYxMZG//vWvbNq0ibPOOguHw0FGRgYZGRlq5qSi1FFSStxuN36/H7/fj9vtjvo76BMOBxSVFWUB8LOU8tkjvvUh8BdgZujzB0dsnyCEWAT0AcqO6FJpcIQQPPjgg0yZMiX82GQysWHDhvA+sdja3rhxIzk5Oezfv581a9bQp08ftUKhohyDruu0atWK1NRUhBA89NBD5Ofnh9fpj4aT+UnsD1wPbBFCVK0S/jcqC/a7QogbgV+AkaHvfQJcBuwC3MCYiCauY6pbhySa/6iRcO2119KtWzf279/Pddddx/fff09aWprRsRQl5ixatIh7772X9PR0hBAUFRWxaNEirr322qid84SFW0q5GqjuffygY+wvgdt+f5TYvzhXFy4gRiLjs88+y7Rp08jIyODrr7/m0ksv5W9/+xtz5syJQMLYfx0jme/aa68lMzMz4s851l9DaDgZTzvtNL799ltGjhyJEIKnnnqKvn37RvX5i1h4cVNS0mS3btcZHaNaZrOfJk2cpKenGx2lWuXl5VgsFhwOR0SOlZCQgKZpBAIBEhISKC4urvHzP3ToEBkZGTH9biM39wAWS1OjYxyHRsB0AGuW1egg1dLdOonBRJKTk42OUq3i4mISExOx2WwRO17Vz0ckflYA/vnPf1JSUnLMRnNMFO6kpGzpdB40Oka1UlJ28fTTKxg7dqzRUaq1ZMkSsrOz6dOnDz6fD6vV+t/F8E06Bb5fKAkeROoSCzZA4Am4cZiTaZt8BkI3Y7NZ0TQNIQTBYDDcHx8MBrHZbOHPVccPBoOYzeaj9q3qGgoGg1itlcWlqqvoscce47bbbovZLhcpJSNH3sF7780yOkq17PZiuky9mI1/i92V8BqvaczcwrkMHz7c6CjV+sc//sGgQYNo166d0VGqlZ2dzcGDB49ZuNXVpnpG0zSKioqIS7KxrmQpWXGnETR52e38kXz/L1R4nVR4y2ga3xaP30OWtTk7435mb9EuJvSZgt8XQAiB0+kM30LN6XSSmZmJ01n5rqOsrIz09PRwy7y0tBSr1YrNZsNms2GxWHA6nTFboBUlGtatW4cQgl69ekX9XKpwG8TlcjF58uSI9RtX2VX6I++XPIcoExT4fsEq4wgGJQmkkWlvRipplLpdePQA6fbmoFv5z+5/E29JYvqX93J1lxtp6mhBUlISUkqCwSAZGRm4XC7sdjuFhYUkJiZSXl5OfHw8Pp+P1NRUpJRomobb7QYq7w9YVFREamqqGo2iNAg5OTmqcNd3uq7z888/R/y4jRynsWj5D6THpdO1UVfaZHViz4F9vL76bdp1SKFRQiI7N+djbhak/+nnYQ7GEW9JpbiiELsjiVfWvcQfOl/OGWlnYbFYsVqtHD58mKysLFwuF+kZGRQXFZGSkkJZWRkJCQmUl5djtVbum5CQgMlkwuVykZaWFpNDHRWlrlOFu56Jx8G8P7zCvZ9P5uOf/sNnOcuw6zay0xrjP2zHV5FJ+6zTOFC6F61U55tN39C8Szq7Cg7QLsNPqbsMr0+j7fmdSLVUzvBMTEzE7/fjq8hnx7YPqSivID2rKZltBqFpGnFxceF+bL/fD1SOTfd6vb+ZJaooSs2p5lA9YzKZ6JDejgcvnILJIthdtJsSTwmJcQm4/W7cARctslrQObMbyZ52tEo+nYodEuHXMePj10MH+GzLch5f+hhQecFO13WQGnk/fcZXi+5i4ycPsvHzZxCh69q6rh+13orJZDqpNVoURTk1qnDXM1arlYA/QL/m/Xh/1PtkJmZgMpsp9ZZhtVnwaX5+yt3K4YrDbP91G6s2fMNpji4My76eH5dvp1enFjgqzPzrP/8iEAwAUFFeyqFf1rPy41mUuu30unIBg29YSECrHFXi9/vDI1iqLlLquh7x1ramaVRUVDBp0iR27twZ7k9XlIZGFe56pqysjKysLIQUdG58OmvuWE1qQir5FQUUlB/kQFk++0ty+WbHN6zatorMtEZoUuPgoUKGnX0VCT+3J8VuISslnt37dyCl5OvFf2f+zBuIS23PoOv+jy69hxIkAYfDgdfrJT09HYfDER6NUlpais1mo7CwEE3TIvbctm7dSufOncMTgmJ5uJmiRJMq3PVM1cVCIQRer5dsR2NeueYVxp8/Hr8eYF/RPrblb8Ov+2nfrAOZ6ZkcKj1EibOYvMMHcHvdJBW3Ij5Z8OgHd/Hvj+az4+fNpDY+nT/e+AJdel+G1+vF4XDg9/uxWq3hBXYA4uPjcTgcaJpGUlJSxC5OaprG0qVLeemllygvL2fWrFmcc845rFy5MiLHV5S6RF2crGeqLggGAoHwJJyOjTrQYeBEejfrxUHXQZ547wnyCg+w5+Bu0uMysGGjqLAQnzuA1+lh3OXjuP2cCZQ5cnntuSdJO6Rxz/SXSWvUArfbTXx8PF6vF7vdHp6UU9XPXVXAqwq63W6PyPMSQtC6dWv27dvH2rVrad++PQcOHKBZs98s9a4o9Z4q3PWMrutYLBb8fv9RFwmlhH5t+hEXH8eQ04dgtVlxVjixmQV5e3bQKCUDnwRHeiPibHGkpaZRXl7C9tabGHjDH2jVvhtCCDRNw2Qy4Sw8TMBiJqDpZDRthslkChdvILxvpC5QmkwmunXrxrBhwygsLOTTTz9lyJAhtG3bNiLHV5S6RBXueiYuLi48rtrn8wH/XYnQbrfj9/tJikuicMNa4gIeKg4dJOnAL5SXlpB6ZneSu/XFuW8Xez0e9hccYsuqNfQ9+1wCeb9yYOc24uLjKU9M45dVy/k150cSGzXB0aYDiRmZNDvjDLLbdwxPg09JSYnoOO7OnTuzc+dOXnjhBZ566ineeuutiB1bUeoSVbjrGZfLRUZGBk6nk7i4OHRdx+fzIYTA4/EQ56lg78K5JKRl4I93kNKoMcnnnI8UAgF4cn9BlhVj14Mk7N3BOT43cvlSDuTtQ5gslAT8xGc1o8OgIbQddAlS09m+ZiUFOT/y6w8bqfB4ufxvD5GWmUlZ2Fk8WgAAIABJREFUWVlU7u5z55138uqrr0b0mEr9smbNGqxWK7179zY6SlSowl3PJCcnV65VEheH2+3GZDJhtVqRUpJgNbPp9rGktGlP2nkXYzJbQGr4836tXLhXSsxmCyntOqFLSUKLtrT709Vomo7PXY4lPhFN6gQCQTxlxegSNF3SvMtZNJGSsqIiPnzhWRaMv4UJr/2T1NTUqK0EWNWqr1rISlGg8iL2gAED6NevH4FAgEmTJvHVV1/Vuxm89evZKJSXl4fXf3Y4HJXjugMBvCVFfHfT5TiaNqPJpSPQK8rQy4qRFWUIrxPhcYLXhXSVoxUfJlh8GN1VQbCsCK2iBOH34y8tJlBSQrCinKDLRdDtIuB24XdW4HNWds8Mv+senAX5zP7raPbv3h3R4YBH+vTTTxk2bFhUjq3UXTt37iQrK4trrrmGBx98kKysLHbt2mV0rIhThbueiYuL+3/2zjs+qir9/+9zpyaTmRRClw6KgFJl7QUUddfG7irY145tXQUEf2tdtwgK2MWGuigKVlx1LevqV3HXgqAUhSU0qSGkTDJzp9xyfn/MzDVR0AAJMwnn/XrNa+6ce+fcZ24yn3nuc55zHqLRKEIIDMPAsixcLhcV/5hHSZdedD5xNMb2LRDXEXEdLa4j4jFEIo4WjyFiUUQstY9YBKlHsPQ6zJiOqUcwYxHsWFq0IxHMSIRENEIyGiERjWLE4hw+9hzK165m+Qf/brbp7pkfJIWiPhdffDGHHXYYTz/9NOvWrePUU0/lrbfeyrZZTY4S7lZGfn4+NTU1AMRisVSWRyJG3f+WUNR3AOb2rRDXU8KdiKIldFxJHVdCR0vGEAkdkdAhFkXGdWQ8itR1ZCyKFdMx9ShmNIoRrcOIRkjqEcxolGQkSjJaR0KvQwO6HzSQz+bPJ1xRkd0Lotgn+OKLLxgzZgznnnsu99xzDwcffDCff/45kydP5ve//322zWtylHC3MsLhMO3bt0dKSUFBAW63my0fvgOJJLZlYMWiyFhKmFMedxRXQsediKLFo4hEWqzjMaSuY0d17FgUK1aHrafE24h9HyYxohESeoREtI5kNEI8EiUWqaVD797UVVURqa5uls8ZCoW46qqrmDFjRrP0r8htTNOkurqaK6+8koEDB/L4449z9913c+mll7Jo0SKEEASDQWeN7NaGGpxsZRQWFlJeXk4wGCQajeJyucj3eajzurCTcWwTpKaBBlIToAk0l4YQIG0QtgRbIm2JbVnYdmoA0rJtLBtMS2JISdKWmJbEtG0MGwzbxki/Tto2pi2wTQOaaaEpTdMIhULU1tY2S/+K3GT58uVs3LiRLVu28Pzzz3PHHXc4a9pnBLpLly5ceumlDdpaG0q4WxmxWIxgMAjgzFqMx+PYiXjKc9bApbmwNbBdAlvTsDWBhsCWacG2bSxbYlvSEW3TlimBtlLbppUS7KRlp8VaYlhg2DIt4jaWikErmojKykruvfde3G43mqax33778c477+z0+NYq2BmUcGeJ6667jmnTpjV5vy6Xy6lOkxmYdLs81K36lrxgISIvD9OlIVwpr1toAoQLAdikRNe0wbItDEumHrbEkDaGCUnLwpQpwU5asG39WvLbdcDQXBgWKU/chqRpNfvg4ZAhQ1iwYAGLFi1iyJAhzXouxd6l/rLAN9xwA5s2beKqq67igAMOoFOn3Cvm/N1337F06VJuvPHGvXI+JdxZYvHixQwaNKjJ+83kTQshnLW0faVtweOl9tuliF59kD4fUtOQLoEUkmS0DuHLB48HyzQxkiaJuE7NiuUkTZO4KUnYkrhpEbdsEhYE+wzA8nrx5OcTj+qYQmBYkoSVCpls/m494YoKRDNWdC8pKUFKSVVVVbOdQ7F77InHW15eztatW7nwwgsBeOCBBxg0aJBzJ5mL6LpOOBymY8eOe+V8SrhbGZllXevq6ggEApimCQcPp81hIyj/50tYsShF3Xth5edjaQKXkFjlmxBuH3i9JOvCJLZvI2ml4tgJy8a0JElTYlgWpikxLJtNS74gYYK7tD0Jw4RAAXj9JKWgZnsV61et4tiLL6NkL/0jK3KLXV2jxrIs5s6di23bfPXVV0SjURYvXtzqQx67ixLuVkZ+fj7hcBiXy0U8HgdSXngskcS0JQk9Sl35ZvLbtiNWU4VL2qn0wGQCm9RApC3Tgm2DYUmS6UFH05aYtsSS3w9YRjdvImFJYpaNr01bookkleUV2Db0POhg8goKmvXznnrqqcydO5fDDz+c/Pz8Zj2XonmYM2cOH330EYMGpRYyu+qqq+jZs2e2zcpplHC3MpLJJAUFBcRiMbxeL5ZlYVkWeZ07Y7o8YBqIujqk14usrMAlbYTQUjPeAUumBiaNTKzaliTTGSOGDYa005klpGLhUmKRGsRMxOPEIjFsIfAVhIgnEti23azTjYcNG8bkyZNJJpNKuFsQyWSSTZs2ceaZZ3LBBRdw7bXX0q9fP+VhNxIl3K2QzG1q/dvVnuddxYa3/4G+aR2WHsdyhxGGhUtKhABE6ngLmU4BpEG2SOo5lS1i2GCZ33vhScvGRhCvjRJLJDBNm6GjT+Loc8/J0hVQ5DoTJkxg48aNfPrpp2ia1urWEmlulHC3MrxeL7FYDE3TUvFtvi/eqxW1xfxuLVJaWBEdzbJxCYlAQmYwE7CldIQ743kn0qKdtFMDlYZtY8iUoFs2mIBFKoTS94ijcaGR78/bK1/I3/zmN8ybN4/LL7+82c+laBruv//+bJvQolE/c62MeDxOKBQCUuuWuN3uVF62ZdH9gitJWIK4aROLJ4kZNjEz/TAs4qadyhwx0s+WJGFJ4pZN0rRJpJ9NU5JMx79NO5UymDRM4vE4Lr8PzefhpMuvoLa2ttkWmarPuHHjnEkYCsW+gPK4WxnBYJDt27fj9/uJRCIIIfB4PLhcLnr84gg+yy8gWRdGE+DWBJotEEJmVnXFkimP2yblcVs2mOmZkqm8bkjakLQtEhYYVjqkYkmk28PhZ45l5eKv6DZgAIFAALdb/YspFE3Nz3rcQoguQogPhBDfCCGWCyGuS7ffLoTYJIT4Kv34Zb333CSEKBNCrBRCnNicH0DRkEgkQmFhIVJK/H4/Ho8Hy7KwbRvdMBhx31NOPrZu2eimTcyw0Y30tmURM616HrhN3LBImlZq0k06RTBpZqa3WyRsMC2bvocfyZcffMA1jz6G1+slEok4pcyam2HDhrFo0aK9ci6FIts0JlRiAuOllP2AQ4GrhRD90vtmSCkHpR9vAaT3jQX6AycBDwshmm8WhqIBXq+XeDzu1HzMZHUIIfB6vfjatafDESPSgpwKk+imRcw0iaWFOhMeiZvfT7pJPdJhEyvlYSes1LGGbeELFRKLJ/nFL39Jh27dsCwLj8ezV7IEhBDcfPPN3HPPPc1+LoUiF/hZ4ZZSbpFSLkpv1wHfAj9VWvt04AUpZUJKuRYoA1pn/aAcxO/3U1dXhxCCZDKJbdu4XK7UYlP5+biLSug0/HASpiRmfO9Zx0yZejZsJ/adsKy0WJN+fC/WCVumQyU2tnDTf8TxxJJJDj/tDIKhEJZlEQgE9mp6l8pMUGSLvZ3GuEv/6UKI7sBg4LN00zVCiCVCiFlCiOJ0W2dgQ723beSnhV7RhNTW1tK2bVts204JtduNYRgYhkF1dTWB/Hz6j72Q/Y4bRcxOedhRwyKatNANKxU2SYdKomkBjxsWcdMkYVgkMgOXZsrztlweDjjyGKq2VzLk+BPoPGAANTU1eDwetm/fvlcGJwG6du3Kk08+uVfOpVD8kF2dKbqnNFq4hRAFwMvAH6SUtcAjQC9gELAF2KUVk4QQlwshFgohFhpGbFfeqvgJQqEQVVVVaJqGrusYhoHH48Hj8VBUVISu67g8Hrqe8EtMT14qrm1KYpZEN1Nx75gp04/vs07ipiRuSWKZGLctwe+nXa/eSLcLvTZM5759CRUWUlRUhGEYlJSUNFvNyR+iaZqzGqJC0dpp1JC/EMJDSrSfk1K+AiClLK+3/3HgjfTLTUCXem/fL93WACnlY8BjAMFge5lI7I75ih+i6zqhdKgiU+U9k8+dTCbx+/1YlsXw0WcSq6rkjdtvpuFd3vf53Knp7zhT3E2ZngZv20jhoiBUDF4fW9au4/K776b/UUcRi8UQQuB2u6mrqyMUCu018VYo9hUak1UigCeBb6WU0+u11189aDSwLL39OjBWCOETQvQA+gCfN53JLRvDMIhEIliWRTQaJZlMNmn/eXl51NbWIqUkHo9jmqYzMy0QCBCPx5FSUltbyzEXX8Gom2/HdHlS3nQ6nztm2iSFi1i9trhlk5QacdMiYUoSCPRYnK3rvuP82+6gzy9+kVqJ0OfD7/djmuZej3ErFPsKjfG4jwDOB5YKIb5Kt/0/4GwhxCBSS1ysA64AkFIuF0LMA74hlZFytZRy7wQ6WwBPP/0006dPZ8OGDRx55JGcdtpp3HnnnU3Wv8vlwu1243a7nbhbZrv+Prfbjdfn47Bzf0fvoYfy3iMPUrs9VR9SAoedcy4fP/csUoJtS9x5+XQ56CC+/e9/sSVIBCUdO3Du//t/lHTpgtvjcfrNnNPtdivhVrR6lixZwrJlyygvL2fBggUMGTKk2dfN+VnhllIuAHb07dtp6WQp5V+Av+yBXa2SiooKtmzZwnPPPccll1zCSy+9xOzZs1mzZk2TrYamaRqlpaU73V9YWAhAIBAAoF27drRr147+Rx/9o2NHXXTpbtvh8Xh2+70KRUvi6quvpnfv3mzYsIErr7ySF198kb59+zbrOVX+1F7E7/eTl5dHTU0N999/P7quY9t2Ti8Qr1Aods5TTz3F7373OyZMmMCwYcN49tlnufvuu5t94lmOzEeW+Hy5W8XE660lHo83SaUVn8/HmDFjmD9/PqNGjeKCCy7A5XLtcd+6rhOJRHK6GoxhGNTU1Oz11Kldw8rp/0WfrwaX4cJXlbsZNN6IF13Xc/p/MR6PU1tbu8c2Hn/88YwbN44TTjiB2267jalTp3LOOedQU1Ozxzb+1PdE5MKXqKSkRE6YMCHbZuyUaDRKRUUF3bt3z7YpO2XLli34fD5KSkqybcpOWblyJT179szpMMrXX3/NwIEDs23GTjEMgwUL1lBdfUC2Tdkpfn8Vgwcn9loZr91h7dq1tGvXzgkZ5iL33HMPVVVVOx4kyhTlzOajXbt2MpdZtWqVfOyxx7Jtxk/y6quvyv/85z/ZNuMnufPOO2VVVVW2zdgptm3La665Jttm/CSVlZVy6NC/yNSSYLn56NBhgXzttdeyfal+kpkzZ8pVq1Zl24yfJK2LO9TMVhnjvuOOO9iwYcPPH6hQKBQtkFYp3GvWrHHqLSoUCkVro1UKt0KhUOxtVqxYwYoVK/bKuXIkq0ShUChaJrZtc+mll9K2bVsgNV/jiSeeaNbVKpVwKxQKxR4QiUT45ptveOWVVwD49a9/TSQScUoINgcqVKJQKBR7wK233srUqVN55513ePfdd5k6dSq33nprs55TedwKhUKxB0ybNo2ePXsyePBghBAsWrSINWvWNOs5lcetyDkyuarjxo1zthWKXEXTNGbNmkXv3r3p1asXs2bNavZqTEq4FTnH9OnT6du3L5deein7778/M2fOzLZJCsVOEUIwcuRI+vXrR//+/Rk5cmSzr4qphFuRU2zbto1oNMrcuXPZvn07zz77LFVVVTm97oVCsbdRwq3IKUzTREqJx+Nh/fr1zJ49u0EVH4VCoYRbkWN06tQJn8/Hb3/7Ww499FAef/xxCgoKfnKNcYViX0MJtyLnmDhxIl9//TVTp06lrq4O27Z5/fXXm32N4+Zg8+bN1NXVZdsMRStDCbci53C5XHi9Xp577jm8Xi/jx4+nrKyMOXPmZNu0XeaRRx5h4cKF2TZD0cpQwq1oEdxwww0kk0meeOKJbJuiUGQdJdyKFoGmaZx33nmYpsmLL76IZan604p9FyXcu8gnn3yS0xNCkskkX375ZbbNaBa8Xi9XXHEFq1ev5vXXX8/pv4PixxiGwdtvv+08DMPItkktFjXlfReYM2cOq1ev5q233mLUqFEcc8wx2TbpR8yYMYNEIsErr7zC5ZdfTrdu3bJtUpMihGDy5Mk8+OCDPPXUU1x88cXZNknRSCzLauBULFiwYIc/vmeffTYDBgzYm6a1OJRw7wIDBw7k1FNP5aGHHuKTTz7hqKOOyrZJDpkvwMiRI+nevTu///3v+e677+jSpctu97l48WKaqhboWWed1ST9ZBg3bhyzZ8/m6aef5sILL2z2mWqKPcfv9/PHP/4RSP2//uc//9lhfv7DDz/Mt99+26Ctc+fO/P3vf//RsUKInf7tpZREo1Fuvvlmpk+f/pPH7imZ79/e+j9slcLdvn17ysvL6d27d5NeyP79+zNq1ChWr15NLBbjxRdfbLK+95SCggKmTp1Kr169GDFiBJs3b+aLL76goKBgt/scMmQIr7/+epPY5/F4uOeee5qkLwC3283555/PQw89xGuvvcZpp52Gy+Vqsv6bipKSEqqqqrBtu9nXr2hJCCE44ogjdrhv+PDhPxL0DRs2MHTo0B8dO3ny5B22h0Ihbr75Zr766ivuueceevbsyRNPPMHxxx/fNB/gB6xatYr//ve/PPzww83S/w9plcI9depUBg8ezJdfftmkwv3hhx8yd+5c/vznP1NaWspNN93UZH3vKa+99hqQuv38xz/+wbhx45g8eTJHHnlkli1rPtxuN9dddx1TpkzhpZdeYsyYMdk26Udcf/31jBw5kuOPP57CwsJsm9MiyMvL+1Fbv379WLx48Y/aZ8yYwZtvvvmj9s6dO7N8+XLOPPNMYrEY9913H0uXLuWoo47C5/M1uc22bWNZFh6Pp8n73hGtUribC9M0uf322xkwYACHHHJIts3ZIVVVVdx3332cfvrp9O7dO9vm7BVuvPFGHn/8cR5//HEuu+yybJuj2Itcf/31O2xfsWIFH374IYZhYBgGbre7VWUiKeHeBY4//nh69OhBz549czameu6557J582a6du2abVP2GkIIfve73zF79mzmzJnD2LFjVVhiH6dv377069eP+fPnc8wxx3DOOefwxBNPNIu3nQ3Uf/cu0qtXr5wVbUiFD/Yl0c7g9Xq56KKL2LRpU85Mj6+pqeHTTz8lHA6zcOFCysrKsm3SPsVjjz3Ge++9x/PPP8/q1aubLb6dDZRwK1oNmqYxceJE1qxZw7PPPpttc/j888+ZMGEC27Zt4+9//zu33XZbtk3ap3C5XIRCIR588EHcbndOO1y7ihJuRavjuuuuw7KsrE6Pj0QivPbaazz55JP06dOHu+66i6FDh/LOO+9kzSZF6+FnhVsI4RdCfC6E+FoIsVwIcUe6vYcQ4jMhRJkQYq4Qwptu96Vfl6X3d2/ej6BQNMTlcnHeeedhGAYvvfRSVgal8vPzGTVqFHPnzmXOnDls3ryZZcuW5VTuv6Ll0hiPOwGMkFIOBAYBJwkhDgWmADOklL2BauCS9PGXANXp9hnp4xSKvYrH42HcuHGUlZUxf/78vT49XtM0unXrxsKFC3n11Vf529/+Rv/+/cnPz9+rdihaJz8r3DJFJP3Sk35IYATwUrr9GeCM9Pbp6dek948UrSm4pGgxZKbH19bWZuX8gwcP5vXXX6e4uJjnnnuO8ePHZ8UOReujUTFuIYRLCPEVsA14D1gN1EgpM9ObNgKd09udgQ0A6f1hoE1TGq1Q7Aq/+93vsjowNWbMmFaThqbIDRol3FJKS0o5CNgPGA703dMTCyEuF0IsFEIsjMVie9qdQqFQ7DPsUlaJlLIG+AA4DCgSQmQm8OwHbEpvbwK6AKT3FwKVO+jrMSnlMCnlsB1NcVUoFArFjmlMVklbIURRejsPOAH4lpSA/zZ92IXA/PT26+nXpPf/W6qFkxUKhaLJaMyU947AM0IIFymhnyelfEMI8Q3wghDiz8Bi4Mn08U8Cs4UQZUAVMLYZ7FYoFIqcoWfPnvztb3/ba+f7WeGWUi4BBu+gfQ2pePcP2+PAmU1inUKhULQAvF4v7du332vnUzMnFQqFooXR6oT77bff5uSTT2b16tX86le/4plnnvn5NykUCkULolUJt2EYrFmzhrPOOotu3bpx3XXXsWrVKuLxeLZNUygUiiYjJ9bjtm2bTz75ZI/72bRpE//5z3+48sorCQaDFBQUEIvFePLJJxk0aNBu97t161a2bNnSJDY2F+vWraO6ujonljPdGVVVVXzxxRcEAoFsm7JTdF3P6b9zJBLB76+iQ4fctbG4eCXr1tXl9HXcsmULS5Ysoby8PNum7JSf+i7nhHBLKams/FGq9y7j9/s566yzqKysZPLkyVRVVTmV2Pek/3A4TCwWaxIbm4toNMpTT2nU1eWujV27JvnFL6pz+g6outrk/PNz9xq63TodT/qCvBtfybYpO8W7NkQ0elZOf1/i8Tg319xM3J27/4sJmdjpvpwQbpfLxWmnnZZtM3ZKWVkZlmXltI22bbNtW3u2bj0s26bslDZtljBq1CiKi4uzbcoOkVIye/Z7rF2bu39nn6+KUId7WHva2mybslM6fNKB/tv75/T3ZcuWLWw+ejPh3uFsm7JTClw7L/TdqmLcCoVCsS+ghFuhUChaGEq4FQqFooWhhFuhUChaGEq4FQqFooWhhFuhUChaGEq4FQqFooWhhFuhUChaGEq4FQqFooWhhFuhUChaGEq4s4SUkkQiwWOPPcZHH31EIrHzdQkUCoWiPkq4s0QkEqFTp05YlsXLL7/MgAEDsm2SQqFoIeTEIlP7Ii+++CK33347Q4YM4eSTTyYUCvHmm2/yq1/9KtumKRSKHCcnPe7Fixfz0ksvZduMZqVt27ZUVFTw3nvvsWLFCrZv306bNm2ybZZCoWgB5JxwDx8+nAceeIBVq1bRo0cPIpFItk1qFo477jgeffRRqqurefbZZ/n000859NBDs22WQqFoAeSUcC9atIiDDjqIKVOmMHDgQILBIB9//HG2zWoWAoEA8+bNY/78+Vx//fUsWrQo2yYpFK2eWCzG4sWLs23GHpNTMe7169fTo0cP6urq+Prrr4lEIpxzzjmMGzfOOaZLly5cddVVWbSyaUgmk/zrX/9i1qxZDB06NNvmtDo2btzIV199xSmnnJJtUxQ5wqxZsygrK8Pv97NmzRoYmW2Ldp+cEu7Ro0czYcIEwuEwBxxwAOFwmOeff578/HznmI0bN3Lsscc2eN8VV1zBmDFjGrQJIRBC7A2zd4tkMsmCBQu48847s21Kq+Oiiy4ikUgwcOBA7r77bl5++WVKS0uzbZZiD5BSIqXcoz7mzZvHDTfcwKBBg3jooYeayLLskFPCDbBkyRI+/fRTVq5cyfr16wkEAg0EeEclxB555JEfea333XcfHTp0cF673W569uzZvMbvAhs2bKBz587ZNqPF8N133zW6VuXChQt5+umn6dixI+vWrWPt2rW0adMmp3/IWyNSSsrKyvZYcCFVsPu6667boz5Wr17N5s2bOemkk+jVq9ce25RNck64A4EAI0eOZOTIHd/HuFwuCgoa1mKbOHEiEydObNB24403Nqjg7PP5OOKIIxocc8ABB2RtQPDcc8/lyy+/zMq5WyKzZs1i7drG1VncsmUL9913HyeeeCJnnXUWL7zwAsOGDWtmCxU/xLIspkyZgmEYe9xXhw4d9jg2fdJJJzF27FiOPfZY7r33XhUqyUWmTp3a4HU0GuWFF15o0Pb+++/z+OOPN2gbP348/fr1a3b7FLvG7bff3uhjBw8eTM+ePWnXrh0XX3wxCxYsUN52FnC73TzxxBPZNsPh+uuvZ82aNTz88MNNcheQTVqtcP+QQCDAJZdc0qCturq6gVcO8Ne//pVly5Zx0kkn8de//rVZbJk0aRL33nuvEpNm4pVXXuHbb7/lww8/5J///Cft2rXLtkmKHODEE0/EMAy2bdvGG2+8kW1z9oh9Rrh3RHFxMcXFxQ3ann76aaSUzSqqmzdvpnPnzkq4m4kePXrQvXt3TjrpJDQtpzJeFVnG4/G0irGlfVq4d0Rzf9G/+uorunfv/qMfDEXTkutZRQrFnvCzKiWE8AshPhdCfC2EWC6EuCPd/rQQYq0Q4qv0Y1C6XQgh7hdClAkhlgghhjT3h2hJfP755+y///5qertCodhtGuNxJ4ARUsqIEMIDLBBC/DO9b6KU8oeLipwM9Ek/fgE8kn5WAOeff362TVAoFC2cnxVumRp+zSwY4kk/fmpI9nTg7+n3fSqEKBJCdJRSbtlja1sBeXl52TZBoVC0cBoV0BVCuIQQXwHbgPeklJ+ld/0lHQ6ZIYTwpds6AxvqvX1juk2hUCgUTUCjhFtKaUkpBwH7AcOFEAOAm4C+wCFACTBpV04shLhcCLFQCLEwFovtotkKhUKx77JLKRRSyhrgA+AkKeUWmSIBPAUMTx+2CehS7237pdt+2NdjUsphUsphKnygUCgUjacxWSVthRBF6e084ARghRCiY7pNAGcAy9JveR24IJ1dcigQVvFthUKhaDoak1XSEXhGCOEiJfTzpJRvCCH+LYRoCwjgKyCz9upbwC+BMkAHLmp6sxUKhWLfpTFZJUuAwTtoH7GT4yVw9Z6bplAoFIodoeYDKxQKRQtDCbdCoVC0MJRwKxQKRQtDCbdCoVC0MJRwKxQKRQsjJ5Z1NU2TRx99NNtm7JRwOMzGjRtz2sY1a9bQtWs+paVLsm3KTgmF1jF79mx8Pt/PH5wlTLOKAQNy9+/scsUpXFvIgEcHZNuUnZK/JZ//xv/L1q1bs23KTlm2bBm9wr1IFiazbcpO+c78bqf7ckK4XS7XTmtM5gIbN25E07ScttHtdnPooSUcdNBB2TZlpzz55DruvPMoDCOYbVN2ygknLOKNcU+HAAAgAElEQVTVV3P371xbW8vLL2/jopE7nh4hkUjsVDEQhNMGoAmX09acLFmyhJqaGo4++ugm6c+yLFwu14+294RwOMy04dPYb7/99riv5uIw7bCd7ssJ4RZC0Lt372yb8ZOsWrUqp21ctmwZ7du3z2kbA4EAdXXdSSRytYiERNO8TXoNt2zZQkFBAcFg0/xYVVVVEQgE6NGjB5WVlanGPIPaaA2FhUV8ve0DPtHfoC5ejW0KAloJ0UQUPRHlkp534Pfk0bFgP4oDbQiHw3g8HiKRCKWlpWzfvp1QKISu65SWlhKNRnG5XBiG4QhmNBp19hUWFlJRUUFpaSnwfRGS8vJyXC5Xk1zHzZs3M2nSJO6//35qa2uZO3cuw4YNY9SoUXtUKKOwsJD99tuPLl26EIlEyMvLIxqN4vF4cLvdxGIxgsGgsy+RSCCEwOPxoOs6oVCIuro68vLyMAwDn8/n1LH0er1EIhEKCgqIRqPk5+djmia2bePz+airqyMYDKLrOn6/H9u2MU0Tt9uN3+93PtdPFXXJCeFWKForDz/8MCNGjOC4445r0n5jZoSlsQ+JmGE21i6nMr4Vf1UQYbtpp/Wgc95BfLP9C9yuIAOCg9AKXHxd9V/eKJvLid3OZGS3U2jv74yUEr/fTyKRcEQkI062bTtilBGRzLFCCHRdx+v1Os9er7dJPyPAF198wcEHH8yWLVuYMmUKF154Ie+++y4nnHBCk1Q4ikQiFBYWEolEKC4uxjRNDMOgpKSE6upqiouLHRGWUpJIJCgtLaW6upqSkhJ0XSc/P59YLIYQAtu2nT4rKyspLCwkHA7jdrvRNI2qqiqKioqorKwkFApRW1uLEAKfz0csFsPn8zXqcynhVihaIJrQuP/zhzCsBPuF9qNncU98rgBP/3s2oaCX/bt1pHJ9lMrEcgYOqKHE2w7DsumY14vlW5eA6aatrz0n7n8agCM6mW1N07BtG03TME2zwbkzZeEyYq5pWrOViTv99NM55phjeO+991i1ahUff/wxb731VpOVGMzLyyMSieB2u6mtrcXlcqFpGuFwmGuvvZZhw4ZxxRVXoOu685lramrw+/3U1tbidruJx+O43Skp1TTN+XErLCwkmUwSCASwbZtnnnmG999/n0cffZTCwkIMw3D2SSkbLdqghFuhaJH4XPn8+ZCHOWPu6WzzWpS5q8gX+ZSIbuTHfejrCti+KcaKrdvw5S/FX1lCdcl2Au4S3JqXcG2ceDLJofsdjVt6CAQCRKNRhBCpW3+PJBmP4nG7QPixpcTlcpFIJAgEApimicfjIRqNEgwGm7W+57x581ixYgUPPPAA06dPp2PHjk3WdzQapbi4mNraWgoKCrAsC8MwCIVCvPXWW8yfPx/LsrjgggsoKioikUgQCoUcjzsSieD1eonH4wCOx11UVERNTQ2FhYVs2rSJ999/n0mTJpFIJHjqqaeoqakhFAoRiaRq1GTEPi8vT3ncCkVrJR6P07Ntd+adNY+zXxzDl+u+xGO6aeMtQSbBTtr87ey7+HTpf+ka6so7y9+hc5di1n1XgS9YwJaKSuJJk7+991duO+UOotEooVCIRCKBR8Z59pah2GYchOTXExeTV9QB27YpKioiGo3idrsJh8Pk5+dTXV1Nfn4++fn5zfJZ27dvTzgcJhAI0LVr1ybt2+PxYJomLpcLy7JSg7r1Ck3HYjEmTZrELbfcwrvvvsvgwYOdeLRpmmiahpTSuevIhD2klHi9XpYsWcJJJ51EOBwGUkkELpfLCSt5PB7g+7sc5XErFK2Y/Px8Kioq6BzoxCO/nsm1865lW/U2erfpg0u6sJMWL34yl4ArQCyu43V7KP/cTd9uw9i8bTW1bbZRanTh+XfmMqr7SfzyF7+koqICvxe+fOc+whGDdl2H0WfQ8QhPPolEApfLRVVVlTM4WVJSQkVFBW3atGlWj7s5cbvdGIaBpmkYhuF8jlmzZjleNEAymeScc87h/PPPZ/To0XTv3p0pU6YgpcSyLEeAPR4Pl112GeXl5cyZM4cXXnjBEW1IZcU89thjXHbZZdi2jdvtdsYRdiVbRgm3QtEC0XWdgoICAIb5h/H8+XM4/fEzWLFtJUF3kDyRR0IkqEhsZ2vFFqq2V/GrQ06h1NsJGxcHFwzj3a//SYnPjU/zUFdXR3hbGf94/V62rV9Iu85DOOqsaRS1644mBC6XC9u2adOmjeNxV1ZWEgwGm93jbk5isRglJSXU1tYSCoUwTZNkMsmcOXNIJhvmeG/evJkpU6bw5ptvEggEWLhwIZZlNThG0zTefPNNpJQsXrz4R+eTUvLYY48xduxYioqKiEQiCCHw+/0kk0nH4/851MxJhaIFkvHOpJRoQqN3SR/eH/c+vTvsT228lpVb/8fC9YtYsmEJwYIQh/Q/hJgR47vy9Qi3Ru2mJMf2OpmCfDe3PHsNazeX8V3ZMlYs/ZKjTruJ31wzmzYdeiJI3cZnBCWTFiiEwO12Y9s2LpfrR95iS/HAMz88Pp+PqqoqdF0HwDAM55jp06c3mMOxbNkyPvvssx+JNqRi3IsWLWog2u3bt+eZZ55xXrvdbtq2bYthGBQWFhIIBIDUXZQKlSgUrRhN04jH44i0N2wYBh0KO/D2FW/w5tI3eWPpW/x3+X/YWlmOnoxSabtIuJLYSRtM+HblN4w65ESOLv0t7Q4TXDv9bA6ocDFo2Ej2H3oy+QWFjkhnsh6EECSTSTweD5Zl4fV6nUHKHwpO5vY/18mkAdbW1lJSUuJ43JnQB6RE/NVXX6W4uHiHYv1zjBw5ssEPgWmabN++naKiIsLhsONxq3RAhaKVE4/HndBELBYjEAhQU1NDMBhkRO+R/OaQ3/L2orfZWreVZDxJ0F9ATI+RiCVBCszjTLq278KI4SMoKS4htLWEDf/5mhN+fTWl7TpRWVlJIBDAMAzcbrcj0pn8ZL/fT01NjTNxJxgMNksed3OTSQf0eFLhoswAYX2BzsvLY3cLml988cVMnTqVd99912lzuVyEQqEG6YCQmrijPG6FohWTn59PbW0tkPrCZ2bjZWK20WiUEwefSLimhnyvl1hNJd898yDxsm/xd+xM3+vvJOnx4AK2b93C1sWb8QXa0aVrb2qrqigOBkkaBmX/eIUvX5yN8Pjpe9pZ9Dp2BMVt2mBZFqWlpUQiEdq0aePkMbc0EokEBQUF6LpOXl6eM4vR7/c7xySTSXw+n5N5siucfvrpAA0GOqWURKNRAoGA0+71eht45T9Hy7zaCsU+TjQadWbzxWIxCgoKnLzhzHP54s8QG9ey7s15ePICHHzHDNA8CJeGtX0r394yGUto2HEb+9ultDt4COteepoNH32AXldLQZceHHDG2Zz6p2nYpsE3/36PZy86G29hMSN+fwMFHTrRrU8fwuEweXl5zmBpS6J+/F5K6YR4XnvtNTp06EBdXR3r169n0aJFP5qI1BjKysoYOnQoZWVlzvlGjx7tjAnUTz3clXGBFi3cf//73zn//PNbzECIQtFU+Hy+BjHuZDKJ3+/HMAz8fj/bP3qH9dNuocvYS+l/418RAqIrvyXzVZFCMOCW6UgB8a1bKP50AclkEpfQGHbNjeD2kIjpJGM6euU2bCnpNvQQug4dTriqipdv/SOhLl258J57yQuFWqzH7fF4SCQSaJrmTOUXQjTwkB944AEeeOCB3ep//PjxbN68mWnTpgGpsYk//OEP+Hw+bNvG6/U6Pxa7cg1bZFbJ/PnzGT16NKZp8utf/5rXXnst2ya1OnRd57bbbsu2GYqdkMnmqD8BxLZthBBUfPg2q+69ne7nXEGo5/4kNq0jsXE9Ih5FxKMQj0IsSmz1CvRV32LW1dBu+GF0OvIYCrv2IFaxleimDcQrt2NGo5gxHUPXSdRFiNeGcblcHHP+BdRu2MATV13ppLG1RDJplZl4c0ZIp02btttx7R+SEW1I/d1uueUWwuHUdYxEIsRiMWcdlMZexxb3M2kYBv/73/8488wzOf744/H7/axcuRLDMBqMBCv2DMMwWLBgQbbNUOyETFaHEMKZyafrOqKynPLXnqXrGefiKynFDleioSFEekYgIAAbCXZqG1uS1CNYUmLaYNkSW0psmdo2M8+2xMLGsMDry+PIc85j/n0zePDii5gw5/nsXpDdJDN93e/3U11djZSShx56iHvuuadBaKS4uBiXy9UgLbK6unqHfRYWFuLxeJwfUtu2nWOllDzxxBO4XC5uu+02J1PFsqxdSgdscR73mjVrqKmpYcSIEdx8883O8oqZGJJCsS+QiWlnVp4Lh8MUFRaydeliQqUdCBS1wY7UQFxHJCJoCR1XIoqW0FOPjPcdi0I8ArEoth5F6hEsPYKpRzCjdSSjEYxIHclIHcloHYm61HM8UottGpxwyaVUb9xI3bZt2b4ku0VdXR1FRUUkk0mCwSCPPvoof/rTnxpMvunXrx+LFi1i48aNrF69mm3btrFw4UIOOeSQH/V34IEH8u9//5uNGzeydOlSNm7cyOeff87AgQOdYyzL4uGHH2bq1Kls3ryZaDQKpLz/xnrcLU64DzjgAEpKSrj66quZNGkSp556Kp988kmLnLWlUOwumQWJfD4flmWl0trCNdT839toeX6MumqI68iYDvGUUGsJHXciiiuhI+I6JHTnGEuPImM6diyKHdOxdR1T1zH1CIYeJZl5jkZJRiMkoxES0QhGPIknUMCHL7RMjzsvLw9d13G73ZSXl3Prrbc22N+/f39mzpxJSUmJEwuvra2lbdu2TJs2jT59+jjH+nw+JkyYQJ8+fUgkEgSDQQzDoH379jz55JMMHz68Qd/Tpk0jGo06FaFafTrg2LFjOfTQQ7npppuc2/k//vGPQGrAsqmWfMx1bNsmkUhwww03MGrUqGybo9iLZEIjkPrCJ5NJfJogvuYb2ow8BTsWxdI0XJpIuWcauDQXmga2BGFLsCXSlkjbRloS2wbLtrFtMG2JYUsMaWNYqRCKadupNltiWultCR26d8Noonjw3sYwDPLz84nH44wbN87JLsmwZcsWbrzxRizLom/fvjz44IP4/X50XWfw4MGMGjWKVatWATBq1CiOO+44ksmk84Nw++23s3jxYmzbZv369Q3OLYTg6quv5pVXXsHr9e5SqmGLFO7OnTvTuXNnhgwZQl5eHgBDhgxh7dq1TJw4kcsuu4yePXu2yAkBu8J1113HggULmDlzJhMnTmTKlCnZNkmxl6ifvuaktGkCaVvYcR1TA01zYWsCqQnQBNIlICNMNkhbYts2tpV6Nm0wLRtTgmHamDIV105adkrILRvTtknaAsOSGLaNYdnEo5FsX47dJlPAwO128+STT/J///d/nHPOOc7+qqoqPv30U3r16sVdd92Fy+VC13V8Ph+JRKJBJkgwGKRt27ZOlk8gEODWW2/l5JNPZtGiRT869/3338/ZZ5/doIBFY2mRwp0hI9qZ7X79+nH66adz9913M2TIELp3786vfvWrJj3n888/73g62Wbp0qWMHj2a8vJybrjhhmybo9iLJJNJxzGxLAu/3088XIMV1YmXbyYvVIiludBcAqGBcAkQGjYaNhJTSiw7JcimlfGqJaa0SVpgZDxqKzUYGYvFSBgG+PJI2jIt3GDYFgldpzlzSqSUfPDBB01Ww/KHfWfCEy6Xi48++uhHxxx44IHMnTuXgoIC3G437733Htu2baOoqIiBAwdy4YUXYpomv/jFL/jss89Yt24deXl5nHHGGfj9fubPn88pp5zC119/3aDfL774gjPPPNPx8HclM6dFC/eOOProozn66KN5+eWXWbVqFS+//DK/+c1vmqx/TdNyKhSTsSczbbapyMvL49RTT+XVV19l9OjRTdr3vsTo0aOZPXs2hx56aANHY0/x+/1s27YNIQSBQCBVBzFYgC2hdsVyXH36IvL8oGlpTzudSWKYCJ8fS9op4TVNops3EI9GiVs2SUuSMCUJ2yJhgqdNewiGiOsxEskkwrRIpo8zbEnStFi/bBm9Dxn+80bvJlJKZs6cucPV9pqCTKWfSCTCzJkzOe2001i5ciUrV650zj9t2jTuvvtuhBBUVlZyww03cPjhh/PSSy8xevRoZ3nWK664gpdeeonp06cDqXVJbrnllgai3LlzZ0aOHMmzzz7LpEmTyM/Pb/SqgBlanXBn+M1vfoOu6zzwwAMMGTKEN954g06dOu1xv2PGjGkC65qGxYsX8/LLL3P88cdz4403NmmoxOv1cvDBB/Phhx8q4d4DhgwZwsSJE524Z1ORKdabmSwSDAapi9TRb9JfWH7HH7CWRik9YADS58XSBJYAkdCxa6pxte+EbVrUlS3HMiXxRIKEYZCwbBImxEyLhGkTt2yMrZsxcCEDhbgKi5B6HNPlxrAgadmULV2C5s2n35FHNdln25tkCvv6/X78fj+ff/45paWlnHfeec4xK1asYOXKlXz00UeMGTOGSy65hJKSEifdz7Isp3iCZVkUFBRw6qmnMmvWLGbMmMG6desaOFZFRUXMmDGDa6+9lh49ejhVh3ZlAk6rFW5IrecwceJEJkyYwAUXXMCVV15Jjx496Ny5c7ZNaxLuvfdeEokE48eP5/rrr8+2OYq9jGVZzt1fymt0IYLFGKaNFo1S9c1XFPbui2aZuGwLYSQwKjbBlo2pXG0bDNsmaac86KSZ8qIt0rnbEpKJJHHDIh6uI7FhA3HLxvT4CHToxOZ166mr0+k+fH8GNEMYY2+QKeybSCQoKSmhuLiYDRs2EI/HG9zJSilZu3Ytd911F8uXL+f111/nqaeeQkpJXl6ekz44YMAAJkyYwOTJk5k7d+6Pwh+aphGLxdiyZQsHHnigM8nH4/EQj8edDJOfo9HCLYRwAQuBTVLKU4QQPYAXgDbAl8D5UsqkEMIH/B0YClQCY6SU6xp7nqYm84/9yCOP8Ne//pW8vDyuuOIKOnTokC2TmgxN08jLy+Phhx9Ws0f3MTJTtTPinVleNQLYfj/JRBwMk2hNNURrEZE6NE2gIZBILGljy5RwmzbpmPX3sWszE/+2U/Fw25ZYUmLZYBkGkeoa4noMl8+PlC1n/e0fUlBQ4FRjr6mpwev1snr1ag4//HBOPPFEamtrnQHMmTNnIqXkH//4B4cddhiTJk1yqt0HAgGklIwfP57Zs2c3EO1rrrnG8cgzi4OVlZXRqVMnQqEQlmXt8h3Zrnjc1wHfAqH06ynADCnlC0KImcAlwCPp52opZW8hxNj0cVmPL4RCIe666y6++eabJr1lba1ccsklLF++nMrKSr788ktncEaRGyQSCWcFO13Xyc/PTy2zeuBBFB85ivJ3XsPGRFZW4hY2mmkjNIFIC7ct6wmxlKnYtiUbCLhZb/DSlKkBS0tKTEOSqA5jS3D5/Zx640RnjZSWRibklEwmKSwsRErJUUcdxYgRI4jH405lGk3T6NOnj5MEcO+993L99dc76YTJZNKZJTl9+nRHtG+77TauvPJK/H6/M8vV7/cTj8edVR0Bp1p8YzPhGjXKJoTYD/gV8ET6tQBGAC+lD3kGOCO9fXr6Nen9I0UO/Rz369ePwsLCbJuR01RXV7N69WpuvPFGTj/9dPx+P1u3bs22WYp6BAIBIpFIg7WkCwsLSQgXoW69MW1IGDYxPUYslkS3bGKmjW6mnmOmTdxMiXXMkKmBSdsmmU7/M6QkYUtMS2JKQTLtcRu2jRYoSIUSvHkYpslhJ5zYYifA5efnN7iGmZBHbW0teXl51NbWOtXtDzzwQOd9pmk6tSTj8Tgej6dBEeAMffr0obi4GI/Hg6ZphEIhYrEYhYWFzvooGUdyV9KXG+tx3wvcCATTr9sANVLKzGT+jUAmcNwZ2AAgpTSFEOH08dsbbZUiqzzzzDNcfvnl9O7dm2QyyRlnnMF999232yukKZoeXdcJBoMNtsPhMMFgEK17H7S2nYhv3Yghk7gQuDTSKwOmfDUpG3rdmck1TraIZWFYKfFO2pl8bolpQby6BlvAwSOPw1/ShoqKCoqKihx7WhKZdV4yedSZ0Krb7XaKAEspcblcDQYPhRBO3nVmDZP6jwyZavCZNsMwnDzvTIgrE0fflcywn/W4hRCnANuklF82utdGIIS4XAixUAixsKlW4VI0DX/4wx/405/+xMcff0xxcTHnnXcef/rTn7JtlqIembhrLBZzBrwyt/XdjjgWf+euxCybeDo7JOVh28RNk7hpEjMtYqb1/X5HpNMDlZZM5XNnxDyd523YqRBKafcerFm2nFOuuoZQKNRiJ7tlUgEz4lw/pzuzAmNm9cUePXo0KIzwr3/9C8AJkWTi35WVlUCqZNmAAQOcfZmsE03TsCyrwfug6fO4jwBOE0L8EvCTinHfBxQJIdxpr3s/YFP6+E1AF2CjEMINFJIapGyAlPIx4DGA9u3bt8w1IVsxc+fOZdmyZXz66afMmzevRXpTrZnMFz/z5c9kQGQEZ9jEP/GP804lFovgEiI1MClTXrcEbMDOrAKIxDRTmSQpcbYxLUjaKTE3bDudfZIScF8wRLveB9C2d29KOnZ0yn21RDJFgkOhEOFwGK/Xi8fjcSoJVVVVEQwG0XWdoqIijjrqKObPn080GuWaa66hS5cujrADbNy40VkJcOjQoXTs2NFZJz2zpkx1dbVTWT5TuiyZTDZtOqCU8ibgJgAhxLHABCnluUKIF4HfksosuRCYn37L6+nX/03v/7dsqYv17sMMHDjQ8RbUcrl7RnP8+1uW5XzRM7f0uq7j9XqJxWIU9exFftcebFv+FZrQcDlLutpINKRIe4DpwUnLluklXDPrkQjH0zZsm7iVCpkkbYtgqAjN66XHwIEEi4qora1F07QW6XVnVgeMx+MUFRVh2zaWZVFSUuKUZYvFYgSDQaSUDWZNV1RUUFFRsdO+M3dBmbW3NU2jurqaQCBAVVWVE0PPhF0yxYIbw55MAZwE3CCEKCMVw34y3f4k0CbdfgMweQ/OocgiLpdLiXYT0BzeaCAQoK6ujkgkgtvtdvKRdV2nTZs26LrOyQ89RcKwSZgWMcNKh0dk6jlpEzNS4ZNEJoxiSWIWxE1B3LRJWjYJK9VuWDZJ06K4c1f6HHEU/vwAo8aOpa6ujtLS0hY7OBkMBqmursbr9VJdXe3kVWcKIG/fvh2Xy0VtbS26rnPIIYfQpUuXn+23Q4cOHHfccc4Pgs/nQ9M0px5oaWmpk8kSCAQAduka7pJwSyk/lFKekt5eI6UcLqXsLaU8U0qZSLfH0697p/ev2ZVzKBSKnycWi5Gfn09eXp6zCH9mBmA4HMbv9yPdXgaef2lKqK2UcOvG97HtVHaJlYp/W7KeiKemtSdMm4QT75aEOnSm57DhbF63juMvuohwXYS8vDxqamoalPpqSei67lRcD4VCTkpjUVGREx6xLItAIIDf7+eII47gmWeeoaioaKd9er1ennjiCY499lh8Ph91dXUYhoGU0slWqa6uTuXdpyvgALt0DXNn0Q2FQtFofD4fhmE4WQqxWMyZwVdQUJAqDFBcQulhR6O17UjMlOimjW6lUgK/TwuU329bNnHDSnnZZipFMGFZJG2JN1RIu959qNxWjl4XoeegQQSDQRKJBIFAoMXemfn9fqLRKG63m2g06qQDZn4E6+rqcLlcxONxpyblgQceyOLFi3n66acJhUIEg0FCoRChUIgZM2awcuVKDjvsMILBIMlkkvz8fNxut7OuTGaJAtM0yc/Pb7Aed2Np1VPeFYrWSv2p2JmMiPprZ2QGLXsMP4xhF1zKv2fcjaFHnffL9EQcKVODlBaZeDep5VydCTg2/pJSCtp3RI/F8Pn8THnvXceG+oOiLZH65cUy1C9PVn9fZvlcTdNo164dJ598Mt999x2maTozIwFnvCGzvrZt2072SP2/EaTGJ+pnnTQWJdwKRQvEsiwnVS0jnKZpomkahmE4z16vl6MuGYclJW/8+Q5kA4FKZZhYklROd2Zau/x+XW5TCjRLEq6upnvHjlx6991o6ZXwEomEk5MshGiRld7ri25mdiOkPPHMcrnQ0BvO7Ks/caZ+Sl+m/m0mU8QwDOe9yWTS2Zf5m9X/oWgsKlSiULRAMjnb8XjcWdw/05apWp651dc0jeHnXMBv77mf/QYfkopnpx+dhw3H374DcctOPyR9jj6WhE1qCrwNcT3GkBOO56K//Y384mJ8Ph+2bVNQUEAikaCgoKBFZpQAjrBmJsNkxLO+6Gamqmc88MxKfpmwSiY3WwiBpml4PB6nmLNt27jdbme/x+PBNM0G+zI/eLty19LyfiIVihZCLBajoqKCeDzOxo0bMQyD0tLSJuu/pKQESN3C5+XlIYRw2oqLixFC0KlTJ2f/iAt+x1FnjsGq5wG6PB5s28K2vvfE3V4vRr1iuQBevx+v3+94h6FQCCEEbdq0abE53JD6AfT5fA2uIXwfLsnsq0+mGvuO9mX4qbj17sS0f4gSboWimfj4448ZP34827ZtY/z48bRp04bnnnuuyfqvX9AjIyA/9+xq5EJh/nSK2g/ZWb8tlcwkpsx2/fYftjVm395ChUoUimZA13Xef/99Zs2axYABA3j88cfp37+/U9xaodgTRC5MaiwuLpbnn39+ts3YKYlEwplFlauEw2HcbreTzJ+LlJeXU15eipS5m4FQVLSJbt32vNCGZVmsX7+enj17snr1arp3705tbS22be/R/5FlWVRWVtKuXbs9trG5iEajWJZFKBT6+YMbyf/+9z/233//JuuvsrKSgoKCRs9UzAazZ8+murp6h259Tgi3EKICiJK7KwiWomzbHZRtu4eybfdobbZ1k1K23dGOnBBuACHEQinlsGzbsSOUbbuHsm33ULbtHvuSbSrGrVAoFC0MJdwKhULRwsgl4X4s2wb8BMq23UPZtnso23aPfca2nIlxKxQKheV94zkAAATgSURBVKJx5JLHrVAoFIpGkHXhFkKcJIRYKYQoE0JkveiCEGKdEGKpEOIrIcTCdFuJEOI9IcSq9HPxXrJllhBimxBiWb22HdoiUtyfvo5LhBBDsmTf7UKITenr91W65F1m301p+1YKIU5sRru6CCE+EEJ8I4RYLoS4Lt2e9Wv3E7Zl/bqlz+UXQnwuhPg6bd8d6fYeQojP0nbMFUJ40+2+9Ouy9P7uWbDtaSHE2nrXblC6PRvfCZcQYrEQ4o306+a5bj+sTrw3H4ALWA30BLzA10C/LNu0Dij9QdtUYHJ6ezIwZS/ZcjQwBFj2c7YAvwT+CQjgUOCzLNl3O6nydj88tl/67+sDeqT/7q5msqsjMCS9HQT+lz5/1q/dT9iW9euWPp8ACtLbHuCz9DWZB4xNt88ErkxvXwXMTG+PBeZmwbangd/u4PhsfCduAOYAb6RfN8t1y7bHPRwok6lqOklS9StPz7JNO+J04Jn09jPAGf+/vbMJsaoM4/jvWdgHJYkRMngXqQgtQlQUikRkRGk0kmAWQaCLoE0uWgkiuHNpH4toUSloodCY6NKPEVqFYY02MlaCQg2jA4qjbaSPf4v3OTOHy9xLszjnPQeeH1zu+bhwfvzvPc+97/Pee08dB5X0HXD/f7rsAo4p8T3pYs4DGfx6sQs4KemxpFvATdLzX4XXlKQfffkRMAEspwHZ9XHrRW25uZMk/emri/wmYBAY8e3d2RWZjgBbzar5E48+br2o9Zwwsw6wE/jC142KcstduJcDv5fW/6D/i7gOBJwzsytm9p5vWyZpypfvAMvyqPV1aVKWe31oeqTUVsri50PQdaRPZ43KrssNGpKbD/fHgGngPOlT/gNJf8/jMOvn+2dI16CtxU1Skd0hz+4jMyt+x153dh8D+4Dirxafp6LcchfuJrJJ0npgCHjfzDaXdyqNbRrxVZwmuZT4DFgFrAWmgMO5RMzsWeAU8IGkh+V9ubObx60xuUn6R9JaoEP6dP9SLpduut3M7GVgP8lxI7CUdCHzWjGzN4BpSVfqOF7uwj0JlC+Z3PFt2ZA06ffTwGnSC/duMcTy++l8hj1dGpGlpLt+cv0LfM7csL5WPzNbRCqMX0v61jc3Irv53JqSWxlJD4BLwKukNkPxN9Blh1k/3/8ccK9Gt9e9/SSlC5YfJU92rwFvmtltUst3EPiEinLLXbh/AFb7zOsTpCb92VwyZvaMmS0uloHtwLg77fGH7QHO5DGEPi5ngd0+k/4KMFNqC9RGVw/xLVJ+hd/bPpu+AlgNXK7IwYAvgQlJH5Z2Zc+ul1sTcnOPF8xsiS8/DWwj9eEvAcP+sO7sikyHgVEfzdTldqP0ZmykHnI5u1qeV0n7JXUkvUiqY6OS3qGq3KqYWV3IjTTz+yupj3Ygs8tK0gz+VeB64UPqPV0EfgMuAEtr8jlBGjb/ReqPvdvLhTRz/qnn+DOwIZPfcT/+NX9xDpQef8D9fgGGKvTaRGqDXAPG/LajCdn1ccuemx9rDfCTe4wDB0vnxmXS5Og3wJO+/Slfv+n7V2ZwG/XsxoGvmPvmSe3nhB93C3PfKqkkt/jlZBAEQcvI3SoJgiAIFkgU7iAIgpYRhTsIgqBlROEOgiBoGVG4gyAIWkYU7iAIgpYRhTsIgqBlROEOgiBoGf8BWrDWh9zMdxMAAAAASUVORK5CYII=\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "m.plot(Q)" + ] + }, + { + "source": [ + "## ការត្រួតពិនិត្យគោលនយោបាយ\n", + "\n", + "ដោយសារតែតារាង Q បញ្ជាក់ពី \"ភាពទាក់ទាញ\" នៃចលនាមួយៗនៅរាជធានីនីមួយៗ វាពិតជាងាយស្រួលក្នុងការប្រើវាដើម្បីកំណត់ការស្វែងរកដែលមានប្រសិទ្ធភាពនៅក្នុងពិភពលោករបស់យើង។ ក្នុងករណីសាមញ្ញបំផុត យើងអាចជ្រើសរើសចលនាដែលមានតម្លៃ Q-Table ខ្ពស់ជាងគេបានទេ៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2" + ] + }, + "metadata": {}, + "execution_count": 13 + } + ], + "source": [ + "def qpolicy_strict(m):\n", + " x,y = m.human\n", + " v = probs(Q[x,y])\n", + " a = list(actions)[np.argmax(v)]\n", + " return a\n", + "\n", + "walk(m,qpolicy_strict)" + ] + }, + { + "source": [ + "បើអ្នកព្យាយាមកូដខាងលើជាច្រើនដង អ្នកអាចសង្កេតឃើញថា នៅពេលខ្លះវាទើបតែ \"ប្រមល់\" ហើយអ្នកត្រូវចុចប៊ូតុង STOP នៅក្នុងសៀវភៅដើម្បីឈប់វា។ \n", + "\n", + "> **ភារកិច្ច 1:** កែប្រែមុខងារ `walk` ដើម្បីកំណត់កម្រិតប្រវែងខ្សែផ្លូវអតិបរមាដោយចំនួនជំហានកំណត់មួយ (ចំពោះឧទាហរណ៍ ១០០ ជំហាន) ហើយត្រូវត្រូវសង្កេតមើលកូដខាងលើត្រឡប់តម្លៃនេះពីពេលមួយទៅមួយ។ \n", + "\n", + "> **ភារកិច្ច 2:** កែប្រែមុខងារ `walk` ដើម្បីមិនឲ្យវាត្រឡប់ទៅកន្លែងដែលវាធ្លាប់បានទៅមុននោះទេ។ វានឹងរារាំងមិនឲ្យ `walk` ការប្រមល់ឡើងវិញ ប៉ុន្តែភ្នាក់ងារអាចនឹងនៅតែចប់នៅក្នុងទីតាំងមួយដែលវាមិនអាចរត់គេចបានទេ។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Average path length = 3.45, eaten by wolf: 0 times\n" + ] + } + ], + "source": [ + "\n", + "def qpolicy(m):\n", + " x,y = m.human\n", + " v = probs(Q[x,y])\n", + " a = random.choices(list(actions),weights=v)[0]\n", + " return a\n", + "\n", + "print_statistics(qpolicy)" + ] + }, + { + "source": [ + "## ស្រាវជ្រាវដំណើរការសិក្សា\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[]" + ] + }, + "metadata": {}, + "execution_count": 15 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\n\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX0AAAD4CAYAAAAAczaOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjAsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+17YcXAAAgAElEQVR4nO3de3xcdZ3/8deHVlBxf1ykPxYBN3XF9Yd3rAKL666i3HdxFRV+/rCrII+foj9FH6th2ZW7UAEREAqFVoHl0gqVFgK9t/RCL6T3W9qm1zSkbdqkSZu0uX5/f8x3kkkykzmTzMyZzHk/H488cuZ7zsx8z5yZz/me7+2Ycw4REYmGY8LOgIiI5I+CvohIhCjoi4hEiIK+iEiEKOiLiETI8LAz0J9TTjnFlZSUhJ0NEZEhZfny5fudcyOSrSvooF9SUkJ5eXnY2RARGVLMbGeqdareERGJEAV9EZEIUdAXEYkQBX0RkQhR0BcRiRAFfRGRCFHQFxGJEAV9EQlswZZadh5oCjsbMggFPThLRArLteOXAbDj3stDzokMlEr6IiIRoqAvIhIhCvoiIhGioC8iEiEK+iIiEaKgLyISIYGCvpndZGbrzWydmb1gZu82s5FmttTMKs1sopkd67c9zj+u9OtLEl7nZp++ycwuzs0uiYhIKmmDvpmdDvw/YJRz7uPAMOBqYAzwoHPuw0A9cJ1/ynVAvU9/0G+HmZ3tn/cx4BLgMTMblt3dERGR/gSt3hkOvMfMhgPvBWqALwMv+fVPA1/zy1f6x/j1F5qZ+fQXnXMtzrntQCXw+cHvgoiIBJU26DvnqoH7gV3Egn0DsBw46Jxr95vtBk73y6cDVf657X779yemJ3lOFzO7wczKzay8trZ2IPskIiIpBKneOYlYKX0k8AHgeGLVMznhnBvnnBvlnBs1YkTS+/qKiMgABane+Qqw3TlX65xrAyYDFwAn+uoegDOAar9cDZwJ4NefABxITE/yHBERyYMgQX8XcJ6ZvdfXzV8IbADmAlf5bUYDU/zyVP8Yv36Oc8759Kt9756RwFnAsuzshoiIBJF2lk3n3FIzewlYAbQDK4FxQBnwopnd5dPG+6eMB541s0qgjliPHZxz681sErETRjtwo3OuI8v7IyIi/Qg0tbJz7lbg1l7J20jS+8Y5dxT4ZorXuRu4O8M8iohIlmhErohIhCjoi4hEiIK+iEiEKOiLiESIgr6ISIQo6IuIRIiCvohIhCjoi8iAHG3r4NDRtrCzIRlS0BeRAbnwgTf5xG0zws6GZEhBX0QGpPrgkbCzIAOgoC8iEiEK+iIiEaKgLyISIQr6IiIRoqAvEhGfu3sW4+ZvDTsbEjIFfZGIqD3Uwm9erwg7GxIyBX0RkQgp2qD/y5dW8/Ly3WFnQ0SkoBRt0J9Uvptf/Hl12NkQESkoRRv0RUSkLwV9EZEIUdAXkUHp7HTc8eoGquqaw86KBKCgLyKDsqGmkQmLtnPj8yvCzooEoKAvIoPiXOx/Z3xBCpqCvohIhCjoi4hEiIK+iEiEKOiLiESIgr6IdGlqaef6p9+mpkG3QixWCvoi0qVsbQ2zNu7jgRmbw86K5IiCvohIhCjoi4hEiIK+iGSFxmYNDQr6IjIoZmHnQDKhoC8iEiEK+iIRN2vDXta/0xB2NiRPFPRFIu76Z8q5/OGFg36d9e80crilPQs5klxS0BeRrHl9bU3YWZA0AgV9MzvRzF4yswoz22hm55vZyWY208y2+P8n+W3NzB42s0ozW2Nm5yS8zmi//RYzG52rnRKR/FGvnaElaEn/IWCac+6jwKeAjUApMNs5dxYw2z8GuBQ4y//dAIwFMLOTgVuBc4HPA7fGTxQiIpIfaYO+mZ0AfBEYD+Cca3XOHQSuBJ72mz0NfM0vXwk842KWACea2WnAxcBM51ydc64emAlcktW9ERGRfgUp6Y8EaoE/mtlKM3vKzI4HTnXOxSvw9gCn+uXTgaqE5+/2aanSezCzG8ys3MzKa2trM9sbERHpV5CgPxw4BxjrnPsM0ER3VQ4AzjkHZKVmzzk3zjk3yjk3asSIEdl4SRER8YIE/d3AbufcUv/4JWIngb2+2gb/f59fXw2cmfD8M3xaqnQREcmTtEHfObcHqDKzv/NJFwIbgKlAvAfOaGCKX54KfNf34jkPaPDVQNOBi8zsJN+Ae5FPE5EhTNMwDC3DA273E+A5MzsW2AZ8j9gJY5KZXQfsBL7lt30duAyoBJr9tjjn6szsTuBtv90dzrm6rOyFiIgEEijoO+dWAaOSrLowybYOuDHF60wAJmSSQREZvLqm1vy8kfrsFzyNyBWJgB88Ux52FqRAKOiLRMDu+uawsyAFQkFfRLJqxa56Gprbws6GpKCgLyJZ9fXH3uI745eEnQ1JQUFfJAKM/ParXFfdmNf3k+AU9EVEIkRBX0QkQhT0RSJAo2YlTkFfRCRCFPRFJJCfvbgy7TZOQ3ILnoK+SAQMtHZnwZZafvJCLNi/suqd7GVIQqOgLyIpXTt+Ga+uVrAvJgr6IhFgaskVT0FfRCRCFPRFJGuc2nELnoK+iAxK4xFNrjaUKOiLSMZmrN/TtVw6eW2IOZFMKeiLSMZueHZ51/Kuuu65+lW7U/gU9EWkj5b2TqrqdOOVYhT0xugiEiGvrn5H/fOLlEr6IpI1ib13Nu05FF5GJCUFfZEICGNs1hWPLMj/m0paCvoikhNtHWrWLUQK+iIiEaKgLxIBmnpH4hT0RUQiREFfRLJGN1EpfAr6IhFgA76NSozTTGpFQ0FfRCRCFPRFRCJEQV8kAtR7R+IU9EUka1T1X/gU9EVEIkRBX0QkQhT0RUQiREFfRNIKWlevKv3Cp6AvEgF567yjltyCp6AvIt1SxOw9jUfzmw/JmcBB38yGmdlKM3vNPx5pZkvNrNLMJprZsT79OP+40q8vSXiNm336JjO7ONs7IyK58ff3zgk7C5IlmZT0fwpsTHg8BnjQOfdhoB64zqdfB9T79Af9dpjZ2cDVwMeAS4DHzGzY4LIvIkFY0NFZGsRV9AIFfTM7A7gceMo/NuDLwEt+k6eBr/nlK/1j/PoL/fZXAi8651qcc9uBSuDz2dgJEREJJmhJ//fAL4FO//j9wEHnXLt/vBs43S+fDlQB+PUNfvuu9CTP6WJmN5hZuZmV19bWZrArIiKSTtqgb2ZXAPucc8vzkB+cc+Occ6Occ6NGjBgx6Nc72NyahVyJDG35qrWZWF6VfiMJVZCS/gXAv5jZDuBFYtU6DwEnmtlwv80ZQLVfrgbOBPDrTwAOJKYneU7OrKw6mOu3EBFvXXVj2FmQNNIGfefczc65M5xzJcQaYuc4574DzAWu8puNBqb45an+MX79HBe7A8NU4Grfu2ckcBawLGt7IiIiaQ1Pv0lKvwJeNLO7gJXAeJ8+HnjWzCqBOmInCpxz681sErABaAdudM51DOL9RSQo9coRL6Og75ybB8zzy9tI0vvGOXcU+GaK598N3J1pJkUk90pKy/i///i3YWdDckwjckWky9pqtYEVOwV9kQhQ7Y7EKeiLiESIgr6ISIQo6ItIl/2HNJix2Cnoi0iXTXsPhZ0FybGiD/pqwBLJYJZNKXpFH/R1Hx8RkW6DGZErIkPYC8t2cYwuACJHQV8kApLF9psnr817PiR8RV+9IyIi3RT0RYpce0cn2/c3hZ0NKRAK+iJF7rfTN9HeqS4NEqOgL1Lkxs3f1ietpuFICDmRQqCgLxIx9U2tnH/PnLCzISFR0BeJmMajbWFnQUJU9EFf3ZBFRLoVfdAXEZFuRR/01WdBRKRb0Qd9ERHppqAvEjGmlq5IU9AXiZjaw0fDzoKESEFfJGK+MXZx2FmQECnoi4hEiIK+iEiEKOiLiERI0Qd99VMQEelW9EFfRES6KeiLiESIgr6ISIQUfdDX3Dsi4SkpLWPmhr1hZ0MSFH3QF5Fw3Tx5TdhZkAQK+iJSMK54ZAGvrKwOOxtFTUFfRArGuupGfjZxVdjZKGoK+iIiEaKgLyI5piGShaTog76+biJhUx+6QlL0QV+kmIydt5XyHXVhZ0OGsLRB38zONLO5ZrbBzNab2U99+slmNtPMtvj/J/l0M7OHzazSzNaY2TkJrzXab7/FzEbnbrdEitOYaRVc9bjmw5eBC1LSbwd+4Zw7GzgPuNHMzgZKgdnOubOA2f4xwKXAWf7vBmAsxE4SwK3AucDngVvjJwoRKWaqZC0kaYO+c67GObfCLx8CNgKnA1cCT/vNnga+5pevBJ5xMUuAE83sNOBiYKZzrs45Vw/MBC7J6t6IiEi/MqrTN7MS4DPAUuBU51yNX7UHONUvnw5UJTxtt09Lld77PW4ws3IzK6+trc0ke0mpCUlEpFvgoG9m7wNeBn7mnGtMXOecc2QpvjrnxjnnRjnnRo0YMSIbLykiIl6goG9m7yIW8J9zzk32yXt9tQ3+/z6fXg2cmfD0M3xaqnQJ2a4DzextPBp2NmQA5lbso76pNexsyBASpPeOAeOBjc653yWsmgrEe+CMBqYkpH/X9+I5D2jw1UDTgYvM7CTfgHuRT5OQffG+uZz7m9lhZ2PIOHC4hY/c8gbLd9aHmo+GI218709vc/0z5aHmQ4aWICX9C4BrgS+b2Sr/dxlwL/BVM9sCfMU/Bngd2AZUAk8CPwJwztUBdwJv+787fJrIkLJsex2tHZ08OX9bqPlo7+gEYPv+plDzIUPL8HQbOOcWkrrP1YVJtnfAjSleawIwIZMMDpY6i4kUp4o9jXz0r/9H2NkYcjQiV2SAXIH0DYuVswqX5aDkNW1dDZf8fgGvrn4n+y9e5BT0RRK0dXRy8+Q1vHPwSMptchHEBsIKJSMh2Lz3sP9/KOScDD0K+iIJFlbu54VlVZROXpt227AL2IVewk9Ue6iF+6ZX0Nk5dPJcrBT0RZKIbhk6N0pfXsOjc7eyeNuBlNsM5CQ2hM57BUNBXySJoRBLhlL1Tkt7rKdRZ5ai9NDZ88KTtveOyFBV03CEdw8fxknHHxto+zte3cDra2vSb1hgIWconKDislUyP9rekZ0XiqCiL+kPpR+EZNf598zh3HuCDzqbsGg7e4bQyOTCOvWkVnuoJeuN34/O3ZrdFywADUfaKCktY/KK3Tl9n6IP+ku2pq5DlOLX6qsV0mkZQMmxd4Gis9PRoYbKotbW0Unj0bYBPW9pP+0ZAFV1zQA8tWD7gPIWVNEH/flb9oedBRkCWgKeHHbXN6dscPw/45fyt//x+oDev2xNDWOmVQzoub2t3FUf+hQR+ZLvsRI3PreCT942I+PnPTBjM98et4RVVQdzkKvMFH3QHyqXwEFtqz3MjPV7eHPz4KedHgp2hDTFQLLAXlXXzBfGzOXBWZuTPuetQVxV3vj8CsbOy06Vxb8+9hbfGPtWVl4r2/oL0YXQE2f5znpKSsvYdyh5Nd+MDXsBOHS0jYbm4CX+LX48wf5DLYPP5CAVfdAvNl9+4E1ueHY5oycsY9Oe4ANTnHM8MGMTW2sP5zB3PTU0t/GRW97gra0Du9qasqqaf7p/XsGc4Pb5H2x8YFCuTHq7ig3vNKbfMI343DyFqqbhCCWlZazYlf2rkpLSMq5/OvOJ6CYsilWtLNnWc1qwlvYO5id8Dz9zx0w+dUfmJf4COK8Vf9AvhA85Vw5lULdYe7iFR+ZUcu1TS3OYo57WVB+ktaOTR+dWDuj5a3c3ALA5g5NbEB2djvumV3DgcOpS1xr/3v3JVcn0ly+v4bKHFwTePlU+CqlRuq2jb5fNBb7q9fmluwb12gcOt9BwpO9vYdbGvUxZVU1JaVngm8nHawZ6X+nd/uoGvjthWdfj9iHcdlP0QV88/x1t7cjfl9X8T2iwwTFZvW1bRydH2wbWbW9h5X4enbuV//hL6lG38SCyac8hLnxgHg3NbRn3QIn3xphbEbvVREt7BzN99UBQN09ew6i7ZiZdly4/zsGsDN8vV+Il55fK+/ZMSfX9aO/opLqf6TDiPnvXLM65M/ln9PNJqwEC30z+mBQf6vo0V15XjX0ra9VzuVb0QX9jzeAvk4tCnho3nHNdpaT472egQb+/oHbxg/P56H9Ny+j1SkrLKCkt66r2SGy8TZXHh+dsYWttE/M27+Prj2VWTx6vfntsXuxKZ8wbm/jBM+Us2x58RvEXllWx/3Dym6QE+VyXpOkxkm+JJfJ0X8k7X9vABffO6feKLP4ZDLTX1KGjbT16bsW/cw/P3pLR65TvrO+3Ib6QxtEVfdCX/Lr0oQV85D/fALp/1Iu3HehRH5oN2wbRwJvs0vxIa/KrhncPHwZAS9vg6sedc131xfXNrextPNrVRS+I3fU9tx1K8+4kSnbV9vKK3Un3J96W03i0fcDvly7WfuK2GVw1tvsqIL791tqe369sxexddc2hF0QV9CWrKvYcoq3D0dreSVtCcE2sDy00zjn+9NaOPul/mLOF494V+4mk68e/Jclsj4mBrLVXo+q5v5nNP/x2Lm+sraEuwO0Oxy/czrZejfDJSo/J6raHghW76lO2v8U/x6q6ZtZV92xraU5xsu56bpK0zk7X4yS6NuE1X1mV+VTN//lK+sn54u58bQOXPhS8vSYXFPSLRF1TKyWlZUxZle62w/kpIZ5z50xGZynQ57JQe8G9c/jof03j8Tf71sfeP2NzmhJed8a++uD8wO+5NKFnyA+fW8H1T7/d9ThVT6U/LtrRI1ik+kxqE7oaPrlgG0OlvfHWqetZVdWzF0/vuYX+4bdzueKRhT3SEk/W2/c3sbhXt9lk1T6Pz9/KF8bMpXJf/72w9h9uCdRu9N9LBtcQvXjrAfb3U4WVbQr6Q1ji1zleCnxm8c5+n7P/cCt3l21Iuu7f/7w6W1njcMvAL8lTmblhL+ffMzvQKNsgU/g6B9UHj/Q7MOtQvGphAJWyiUHLEk4f8WqeuMTGyv5OlIn5vPyRhXz6jljjpXOO7fub+lwxPLN4Z5/3ClviySrx81lX3cg3xqZubA1SnfWl++dxzZNL+p0/6WhbB1NWxkrz6RqJR901i+//6W2f17RvD8SutJLnNfULXPPkEr71xOKuE8xARvxmQkF/CHs2SYAP8uN4MsUw7z8v7+5Z8Vbl/gH3jgni7F9P46kFmd1j9rap66lpOJpy4EyilVka+Tg1fmemJJ9rPCnV55TLevfe9cJfun8eX/ztXAp9OGLQj+QXk7oLII5YQ2lQyX4XcT/87+Vs8lVxQY5PpgPuPnX7DMYmuWpMJd7Yv622iReWVQGwuz59j6XBUNAP2Z/Lq3qMADx0NNbN7y8r00+6NDXhVnHpSiKWQTCo2NPI/35qKXe8lvyKIG5ddQMlpWVU7Mm8Yaq5tYO7yjb2SX9m8Y6uElj85NT7pxkscKTeKNux+N43evbaONjcmlFj3d7G7Fza5+LqKiwvr9jddcP3xiNtVGTweaaavrmj0zF3U3Y7FCQb7Pj62hpeXf0Ozjne3FzLj59fweyKnl1ndx5oYuy8rfwhYQxLR2f3ldwbgWZ7HRgF/ZBNKo+d3edv3k9JaRlPvBkr/T4+L7NScDLlO+oC1PH3ddAPL09X5zlt3R4AZq7PTl/w/Ydb+PWU9fzbhGVZv8roWbebedQ/mqT3jhlcPW5xn0bgrz26iEsfWjDo+e57108Xg4F8JKUvr+XY4cFDVaqj+9XfvZnyOQP9rL/9RN8qqXXVjfzkhZXc/uoGRk9YxmtravoUNK4dv4wx03oOEEzc5IfPrRhQfoJQ0A9ZvAQeH3Y/ZXUsSMd/HLVp5uroXXed+Oiqxxfz0xdXJX3ehnca09ZpLtte1+/8Isf4PAZtLDzgG8ZSXVbHA3PDkTb+/aU1XekT367qdyqGICXcB2Zs6loeSEl/x4G+XUSd6ztcP7ZtrGfI7xPm6Pn62EUZv+c1Ty7J+DmF1B88mR51+gGfU9fcyruGdYeq/u5fHHuT5Mm9u/kmbpbus06V11RjKAC27Es9knxXku66+Tp0kQ76902v6Cqthq3dX9ol/ijmVOzlc3fP6jfg9a6CWbkrWF32ZQ8v4IJ756Td7kfPL2f5zjqfN9czYPsI8+CszYG6HX72rllcO35pj32ctWFv12CpxPTVCXXy2/c3pWzg3LTnEB+/dTpXj1tMSWlZV5fFHz+/ssd2Cyu75/8ZyF2ckp3YZvuRtqkk1gevq85P3+yFBT6rbKdzTCqv4puPv9U1l1E6HZ2OYcd0h8S/T/O9zdbdufIhjJN0pO+cFb8Rw457Lwdi9emfuG0GY77xCb79uQ/mJQ/L/JwgvXvd1DW18vLyWKl/1a6D/ONHRiR9/p/e2sEFHz6Fk49/V1eac65P1UImX67EYLWo8gCLKhez497LueeNCsbN38bW31zGsGOMhN8h5TvquuZS6c/bO+p7/Civf6acn154FjsPNHGMf0Gz5PlNlhZvT4iXuG+auIpLPvbX1DT0bOwdnpDZ219dDxAov73fpxAlhrhbp64PLR9BLN1ex1I/IvntHcEaZ48x65rKIoigIb8+QEFlMIKcexZVdv/W+rZd9f0dZ0OkS/q9xQNFupsYHDjcQklpGTPWd18lHGzu7iff2t5Jc+vgGtX2HWqhLGBjzg+eKSfx4vCuso18NmEukoPNrSlHnCaTagj6hIWxzyVeDdN7npJnl/TfXTSu95e7qr6ZV1a9w+QVvmorgwvd3tVXcyr28cuX1/RIe2T2lh4/nvoMpsSNC3oFJdl3jGU2aCrovQR+Pil7XZSTybTnT++TRK4uWBT0gR8/v4LW9s7AH3KF72b1u5nddbbxngYTFm7n2+MWc/avpw8oLwM90A1Hukst4xdu50BCKebTd8zkn/+wMNnTAnt0bmWfkvZAyyB9Bsz0ehhkIrFMPDAz3SCr3Eo3anSwDg1imoKhIGg1UC7l4yb0fUr6OXqfyAb9xMag19bUUL6zrmtekKDHtyJhyt/EL0W2S4VB7g70/T/1P3f4wRSl29518akGhvxx0Y6u5U/ePp3New91VcfE8hjczyf1LJ33fm5Nw9GkQbrQGylTSTdDoxSG+6YnnzDtD3O2hHInslyN84hs0D/ST5dAw7i7bENXcFr/TgOXPbSAppZ2rnx0Ed9JMid91zzcad73wOEW7nljI3sakg8wStYItauuOdAI04HoPSVtqlvB7T/cQpuflvloWyfP9arKGTc/eBfT19f2bDwP2vAW78Y8kFvkZTK4R6Ip1c3W75+R/E5p2fbq6p5VWLkq6UeqIXfsvK3s2N/EmKs+2e/lfuPRtq6BQb/71qe5/OFY1cijcyt79CpJFHQa4V+9vJZZG/fyxJvbWPirL/VZ37sBEmDyimr+5uTj+fQHT+z/xfMssU5/MCWhZJ9ZssvpeLXQr6cUdmOlSDaoTj8LxkyrYKIfDJVM/ENOFngBHgtwk4T+SqGdnY5ZG7sHMn1hzNy0rxe3dPuBrE1glg2O7M3VHvS7He/WWii3TxTJpVzd9D0SQT9I3VjZmuQ9ZUpKy/p9XlNLO00t7fxrkhts3DRxFfdNr8A5R0enY9r6gY8JGMxNt3NhTsW+rAXfPQ19B9tsTzJf/kBvlCEyFOWqpB+p6p24+Ztr+wSV55buYuQpx2f8WjdNXMU1536wKyAlDsL5y8pYF8QPnPgebvnLuiHbEJlMNieFCtpfeyBdLUWkp0gE/abWDt53XPeuprqhR7IJwNLZuKcxbXfAW/6yDsjtvPAiUlxyNbI4EkH/47dO54pPnpaT166qy+00qCISTWrIHaTXUtTZZ8OOQdyvVUQkmVyV9CMT9HPptlf7n3deRCRTN01MPkPuYCnoi4gUoFkbg08ylwkFfRGRCMl70DezS8xsk5lVmllpvt9fRCTK8hr0zWwY8ChwKXA2cI2ZnZ3PPIiIRFm+S/qfByqdc9ucc63Ai8CV2X6T3fV9b0UmIiL5D/qnA4mT3+z2aV3M7AYzKzez8tragQ3zz/ZNtUVE8u0r/+vUnLxuwQ3Ocs6NA8YBjBo1akAdVT/8P/+q6xaIIiLSLd8l/WrgzITHZ/g0ERHJg3wH/beBs8xspJkdC1wNTM1zHkREIiuv1TvOuXYz+zEwHRgGTHDO6Y4YIiJ5kvc6fefc68Dr+X5fERHRiFwRkUhR0BcRiRAFfRGRCFHQFxGJEAty0/CwmFktsHMQL3EKsD9L2RkKora/oH2OCu1zZv7GOTci2YqCDvqDZWblzrlRYecjX6K2v6B9jgrtc/aoekdEJEIU9EVEIqTYg/64sDOQZ1HbX9A+R4X2OUuKuk5fRER6KvaSvoiIJFDQFxGJkKIM+sV083UzO9PM5prZBjNbb2Y/9eknm9lMM9vi/5/k083MHvb7vsbMzkl4rdF++y1mNjqsfQrCzIaZ2Uoze80/HmlmS/1+TfRTc2Nmx/nHlX59ScJr3OzTN5nZxeHsSTBmdqKZvWRmFWa20czOj8Axvsl/p9eZ2Qtm9u5iO85mNsHM9pnZuoS0rB1XM/usma31z3nYzCxtppxzRfVHbMrmrcCHgGOB1cDZYedrEPtzGnCOX/4rYDOxm8r/Fij16aXAGL98GfAGYMB5wFKffjKwzf8/yS+fFPb+9bPfPweeB17zjycBV/vlx4Ef+uUfAY/75auBiX75bH/sjwNG+u/EsLD3q5/9fRq43i8fC5xYzMeY2G1StwPvSTi+/1Zsxxn4InAOsC4hLWvHFVjmtzX/3EvT5insDyUHH/L5wPSExzcDN4edryzu3xTgq8Am4DSfdhqwyS8/AVyTsP0mv/4a4ImE9B7bFdIfsTuqzQa+DLzmv9D7geG9jzGxezOc75eH++2s93FP3K7Q/oATfAC0XunFfIzj98s+2R+314CLi/E4AyW9gn5WjqtfV5GQ3mO7VH/FWL2T9ubrQ5W/pP0MsBQ41TlX41ftAeJ3UU61/0Ppc/k98Eug0z9+P3DQOdfuHyfmvWu//PoGv/1Q2t+RQC3wR1+l9ZSZHU8RH2PnXDVwP7ALqCF23JZT3Mc5LlvH9XS/3Du9X8UY9IuSmb0PeBn4mXOuMXGdi53mi6LvrZldAexzzi0POy95NJxYFcBY59xngCZil/1diukYA/h67CuJnfA+ABwPXBJqpuR29Y8AAAHSSURBVEIQxnEtxqBfdDdfN7N3EQv4zznnJvvkvWZ2ml9/GrDPp6fa/6HyuVwA/IuZ7QBeJFbF8xBwopnF7/SWmPeu/fLrTwAOMHT2F2IltN3OuaX+8UvETgLFeowBvgJsd87VOufagMnEjn0xH+e4bB3Xar/cO71fxRj0i+rm6741fjyw0Tn3u4RVU4F4K/5oYnX98fTv+p4A5wEN/lJyOnCRmZ3kS1kX+bSC4py72Tl3hnOuhNixm+Oc+w4wF7jKb9Z7f+Ofw1V+e+fTr/a9PkYCZxFr9Co4zrk9QJWZ/Z1PuhDYQJEeY28XcJ6Zvdd/x+P7XLTHOUFWjqtf12hm5/nP8LsJr5Va2I0cOWo4uYxYL5etwC1h52eQ+/IFYpd/a4BV/u8yYvWZs4EtwCzgZL+9AY/6fV8LjEp4re8Dlf7ve2HvW4B9/ye6e+98iNiPuRL4M3CcT3+3f1zp138o4fm3+M9hEwF6NYS8r58Gyv1xfoVYL42iPsbA7UAFsA54llgPnKI6zsALxNos2ohd0V2XzeMKjPKf31bgD/TqDJDsT9MwiIhESDFW74iISAoK+iIiEaKgLyISIQr6IiIRoqAvIhIhCvoiIhGioC8iEiH/H6G+/rPuz7xgAAAAAElFTkSuQmCC\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "plt.plot(lpath)" + ] + }, + { + "source": [ + "អ្វីដែលយើងឃើញនៅទីនេះគឺលើកដំបូង ប្រវែងផ្លូវមធ្យមបានកើនឡើង។ នេះប្រហែលជាដំណើរទៅនឹងការពិតថា ពេលដែលយើងមិនដឹងអំពីបរិយាកាសអ្វីទេ - យើងមានសក្តានុពលរុករកចូលទៅក្នុងអង្គភាពអាក្រក់ ដូចជា ទឹក ឬខ្លា។ ពេលយើងរៀនបន្ថែម ហើយចាប់ផ្តើមប្រើចំណេះដឹងនេះ យើងអាចស៊ើបអង្កេតបរិយាកាសបានយូរជាងមុន ប៉ុន្តែក៏នៅតែមិនដឹងច្បាស់ពីកន្លែងមានផ្លែប៉ោមទេ។\n", + "\n", + "ពេលយើងរៀនបានគ្រប់គ្រាន់ វាក្លាយជាងាយស្រួលសម្រាប់ភ្នាក់ងារដើម្បីសម្រេចគោលដៅ ហើយប្រវែងផ្លូវចាប់ផ្តើមត្រួតយកចុះ។ ទោះយ៉ាងណា យើងនៅតែបើកចំហសម្រាប់ការស៊ើបអង្កេត ដូច្នេះយើងតែងតែបែកផ្លូវ ពោលគ្រាន់តែចេញពីផ្លូវល្អបំផុត ហើយស៊ើបអង្កេតជម្រើសថ្មីៗ ដែលធ្វើឲ្យប្រវែងផ្លូវវែងជាងអតិបរមា។\n", + "\n", + "អ្វីដែលយើងបានសង្កេតក្នុងក្រាហ្វនេះផង គឺនៅពេលមួយប្រវែងបានកើនឡើងយ៉ាងចាក់ចេញ។ នេះសញ្ញាបង្ហាញពីធម្មជាតិស្ទុកស្តុកនៃដំណើរការ ហើយថា នៅពេលមួយ យើងអាច \"ធ្វើឲ្យខូច\" លេខសមាសធាតុ Q-Table ដោយការសរសេរលើវាដោយតម្លៃថ្មីៗ។ ក្នុងគោលបំណងនេះ គួរត្រូវបានបន្ថយដោយការកាត់បន្ថយអត្រាការរៀន (ឧ. ទៅកាន់ចំណុចចុងក្រោយនៃការបណ្តុះបណ្តាល យើងគ្រាន់តែបន្ថែមតម្លៃតូចទៅលើតម្លៃ Q-Table)។\n", + "\n", + "ជាទូទៅ វាសំខាន់ក្នុងការចងចាំថា ជោគជ័យ និងគុណភាពនៃដំណើរការរៀនពាក់ព័ន្ធយ៉ាងខ្លាំងទៅលើប៉ារ៉ាម៉ែត្រ ដូចជា អត្រាការរៀន ការវិលត្រឡប់អត្រាការរៀន និងអត្រាផ្សាភាគ។ អ្វីទាំងនេះតែងតែត្រូវបានហៅថា **hyperparameters** ដើម្បីបំបែកពី **parameters** ដែលយើងធ្វើសម្រួលនៅពេលបណ្តុះបណ្តាល (ឧ. លេខសមាសធាតុ Q-Table)។ ដំណើរការស្វែងរកតម្លៃ hyperparameter ល្អបំផុតត្រូវបានហៅថា **hyperparameter optimization** ហើយវាសមណឹងមានប្រធានបទផ្សេងទៀតផ្ទាល់ខ្លួន។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "## ហាត់ប្រាណ\n", + "#### ពិភព Peter និងសត្វចចកដែលមានភាពជាក់ស្តែងច្រើនជាងមុន\n", + "\n", + "នៅក្នុងស្ថានការណ៍របស់យើង Peter អាចចេញរុករកបានជាងគ្នា ដោយប្រហែលជា គ្មានការខ្សោយខ្លួន ឬឃ្លាន។ នៅក្នុងពិភពដែលមានភាពជាក់ស្តែងច្រើនជាងនេះ គេត្រូវតែអង្គុយសម្រាកពីពេលទៅពេល ហើយត្រូវតែបរិភោគអាហារផងដែរ។ យើងចូរបង្កើតពិភពរបស់យើងឱ្យមានភាពជាក់ស្តែងជាងមុន ដោយអនុវត្តតាមច្បាប់ខាងក្រោម៖\n", + "\n", + "1. ការផ្លាស់ទីពីកន្លែងមួយទៅកន្លែងមួយផ្សេង ទើប Peter ផ្តាច់ថាមពល **energy** ហើយទទួលបានភាពស្មុគស្មាញខ្លះៗ **fatigue**។\n", + "2. Peter អាចទទួលបានថាមពលបន្ថែមដោយការបរិភោគផ្លែប៉ោម។\n", + "3. Peter អាចដកភាពស្មុគស្មាញរបស់ខ្លួនដោយសម្រាកក្រោមដើមឈើ ឬលើស្មៅ (គឺជាការដើរ​ចូល​ទីតាំងផ្ទាំងទូតមានដើមឈើ ឬស្មៅ - ដីស្រោចស្រង់)។\n", + "4. Peter ត្រូវតែស្វែងរក និងសម្លាប់សត្វចចក។\n", + "5. ដើម្បីសម្លាប់សត្វចចក Peter ត្រូវការទំនាក់ទំនងថាមពល និងភាពស្មុគស្មាញជា​លក្ខខណ្ឌ មិនដូច្នោះគេនឹងចាញ់ក្នុងសង្រ្គាម។\n", + "\n", + "កែប្រែអនុគមន៍រង្វាន់ខាងលើឲ្យសម្របសម្រួលទៅតាមច្បាប់នៃហ្គេម បញ្ចេញកម្មវិធីសិក្សាពីលទ្ធផលការរៀនបំព្រីង ដើម្បីស្វែងរកយុទ្ធសាស្ត្រល្អបំផុតសម្រាប់ឈ្នះហ្គេម ហើយប្រៀបធៀបលទ្ធផលនៃការដើរពារព្រRandom walk ជាមួយនឹងឧបករណ៍របស់អ្នកក្នុងរោងចំនួនហ្គេមដែលឈ្នះ និងបរាជ័យ។\n", + "\n", + "> **ចំណាំ**៖ អ្នកប្រហែលជាចាំបាច់កែសម្រួលតម្លៃ hyperparameters ដើម្បីឲ្យវាធ្វើការ ប្រសិនបើវាចាំបាច់ ដោយជាពិសេសចំនួនអ៊ែផុច (epochs)។ ព្រោះការជោគជ័យក្នុងហ្គេម (ការប្រយុទ្ធប្រឆាំងសត្វចចក) គឺជាព្រឹត្តិការណ៍មានកម្រិតទាប អ្នកអាចរំពឹងថារយៈពេលបណ្តុះបណ្តាលវែងជាងមុនបាន។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបោះពុម្ពផ្សាយចេញពីការព្រមាន**៖ \nឯកសារនេះបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬ មិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាជាតិរបស់វាគឺជារាយហេតុនៃព័ត៌មានដែលគួរឱ្យទុកចិត្ត។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អាទិភាពដល់ការបកប្រែក្នុងមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការប្រាប់ជាសាកល្បងអ្វីៗដែលកើតឡើងពីការប្រើប្រាស់បកប្រែនេះទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/8-Reinforcement/2-Gym/README.md b/translations/km/8-Reinforcement/2-Gym/README.md new file mode 100644 index 000000000..f9e63d4e4 --- /dev/null +++ b/translations/km/8-Reinforcement/2-Gym/README.md @@ -0,0 +1,345 @@ +# CartPole Skating + +បញ្ហាដែលយើងបានដោះស្រាយនៅមេរៀនមុនអាចនិយាយថាជាបញ្ហា​គន្លងលេង មិនពិតជាអាចប្រើប្រាស់បានសម្រាប់សេណារីយ៉ូជីវិតពិតទេ។ វាមិនមែនបែបនោះទេ ព្រោះបញ្ហាជីវិតពិតជាច្រើនក៍មានស្ថានភាពដូចគ្នានេះ សូម្បីតែការលេង Chess ឬ Go។ ពួកវាស្រដៀងគ្នា ព្រោះយើងក៏មានក្តារដូកជាមួយនឹងច្បាប់ផ្តល់ជូនហើយមាន **ស្ថានភាពប្រភេទដាច់**។ + +## [Pre-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) + +## មុខជំនួញ + +នៅមេរៀននេះ យើងនឹងអនុវត្តគោលការណ៍ Q-Learning ដូចគ្នាទៅលើបញ្ហាមួយ ដែលមាន **ស្ថានភាពតាប់បន្ត** មានន័យថា ស្ថានភាពត្រូវបានផ្តល់ដោយចំនួនពិតមួយឬច្រើនជាងមួយ។ យើងនឹងដោះស្រាយបញ្ហាតទៅនេះ៖ + +> **បញ្ហា**៖ ប្រសិនបើ Peter ចង់គេចចេញពីខ្លា គាត់ត្រូវតែអាចចល័តបានលឿនជាងមុន។ យើងនឹងមើលថា Peter អាចរៀនលេងស្គេតបានយ៉ាងដូចម្តេច ជាពិសេស ដើម្បីរក្សាសមតុល្យ ដោយប្រើ Q-Learning។ + +![The great escape!](../../../../translated_images/km/escape.18862db9930337e3.webp) + +> Peter និងមិត្តភក្តិរបស់គាត់បានប្រើិតច្នៃប្រឌិតដើម្បីគេចខ្លាចខ្លា! រូបភាពដោយ [Jen Looper](https://twitter.com/jenlooper) + +យើងនឹងប្រើកំណែមួយសាមញ្ញនៃការរក្សាសមតុល្យដែលហៅថា **បញ្ហា CartPole**។ នៅក្នុងពិភព cartpole យើងមានស្លាយទ្រនិចមួយអាចផ្លាស់ទីទៅឆ្វេង ឬស្ដាំ ហើយគោលបំណងគឺរក្សាដើមដេកបញ្ឈរត្រង់លើស្លាយ។ + +a cartpole + +## ការត្រៀមមុន + +នៅមេរៀននេះ យើងនឹងប្រើបណ្ណាល័យមួយហៅថា **OpenAI Gym** ដើម្បីសម្រួលបរិយាកាសផ្សេងៗគ្នា។ អ្នកអាចរត់កូដមេរៀននេះនៅលើគ្រឿងរបស់អ្នក (ឧ. ពី Visual Studio Code) ដែលក្នុងករណីនេះការសម្រួលនឹងបើកក្នុងបង្អួចថ្មី។ នៅពេលរត់កូដតាមអ៊ីនធឺណិត អ្នកប្រហែលជាត្រូវតែធ្វើការកែប្រែបន្តិចទៅកូដ ដូចបានពិពណ៌នានៅ [ទីនេះ](https://towardsdatascience.com/rendering-openai-gym-envs-on-binder-and-google-colab-536f99391cc7)។ + +## OpenAI Gym + +នៅមេរៀនមុន ច្បាប់ល្បែង និងស្ថានភាពត្រូវបានផ្តល់ដោយថ្នាក់ `Board` ដែលយើងកំណត់ដោយខ្លួនឯង។ នៅទីនេះ យើងនឹងប្រើ **បរិយាកាសសម្រួលពិសេសមួយ** ដែលនឹងសម្រួលរូបវិទ្យាលើខ្សែដេកកំពង់ផ្លាស់ទី។ មួយក្នុងចំណោមបរិយាកាសសម្រួលពេញនិយមជាងគេសម្រាប់ហ្វឹកហាត់អាល់ហ្គរីធម Q-Learning គឺហៅថា [Gym](https://gym.openai.com/) ដែលត្រូវបានគ្រប់គ្រងដោយ [OpenAI](https://openai.com/។) ដោយប្រើ យើងអាចបង្កើតបរិយាកាសផ្សេងៗចាប់ពីការសម្រួល cartpole ដល់ហ្គេម Atari។ + +> **Note**: អ្នកអាចមើលបរិយាកាសផ្សេងទៀតដែលអាចប្រើបានពី OpenAI Gym នៅ [ទីនេះ](https://gym.openai.com/envs/#classic_control)។ + +ជាដំបូង មកដំឡើង gym ហើយនាំចូលបណ្ណាល័យដែលត្រូវការ (ប្លុកកូដ ១)៖ + +```python +import sys +!{sys.executable} -m pip install gym + +import gym +import matplotlib.pyplot as plt +import numpy as np +import random +``` + +## វិចារណកម្ម - កំណត់បរិយាកាស cartpole + +ដើម្បីដំណើរការជាមួយបញ្ហារក្សាសមតុល្យ cartpole យើងត្រូវតែបង្កើតបរិយាកាសឆ្លើយតប។ បរិយាកាសមួយៗភ្ជាប់នឹងៈ + +- **ចន្លោះសំគាល់** សំគាល់រចនាសម្ព័ន្ធនៃព័ត៌មានដែលយើងទទួលពីបរិយាកាស។ សម្រាប់បញ្ហា cartpole យើងទទួលបានទីតាំងខ្សែដេក ល្បឿន និងតម្លៃផ្សេងៗ។ + +- **ចន្លោះសកម្មភាព** កំណត់សកម្មភាពដែលអាចធ្វើបាន។ នៅក្នុងករណីនេះ សកម្មភាពមានប្រភេទដាច់ ហើយមានពីរជម្រើស - **ឆ្វេង** និង **ស្ដាំ**។ (ប្លុកកូដ ២) + +១. ដើម្បី initialize សូមវាយកូដដូចតទៅ៖ + + ```python + env = gym.make("CartPole-v1") + print(env.action_space) + print(env.observation_space) + print(env.action_space.sample()) + ``` + +ដើម្បីមើលពីរបៀបដែលបរិយាកាសដំណើរការ អ្នកអាចរត់សម្រួលខ្លីមួយចំនួនសម្រាប់ជំហាន ១០០។ នៅជំហាននីមួយៗ យើងផ្តល់សកម្មភាពមួយសម្រាប់​យកអនុវត្ត - នៅក្នុងសម្រួលនេះយើងគ្រាន់តែជ្រើសសកម្មភាពដោយចៃដន្យពី `action_space`។ + +១. រត់កូដខាងក្រោម ហើយមើលផលប៉ះពាល់។ + + ✅ ចងចាំថា ល្អជាងក្នុងការរត់កូដនេះនៅនៅលើ Python local ដើម្បីបានប្រសិទ្ធភាពល្អ! (ប្លុកកូដ ៣) + + ```python + env.reset() + + for i in range(100): + env.render() + env.step(env.action_space.sample()) + env.close() + ``` + + អ្នកគួរតែឃើញរូបភាពដូចបង្ហាញខាងក្រោម៖ + + ![non-balancing cartpole](../../../../8-Reinforcement/2-Gym/images/cartpole-nobalance.gif) + +១. នៅពេលសម្រួល យើងត្រូវទទួលបានស្ថានភាពសម្រាប់ជ្រើសរើសសកម្មភាព។ តាមពិត មុខងារ step ធ្វើការត្រលប់នូវស្ថានភាពបច្ចុប្បន្ន មុខងារទទួលរង្ស័យមួយ និង ទង្វើតួអក្សរ done ដែលសញ្ញាថាតើត្រូវបន្តសម្រួលឬអត់៖ (ប្លុកកូដ 4) + + ```python + env.reset() + + done = False + while not done: + env.render() + obs, rew, done, info = env.step(env.action_space.sample()) + print(f"{obs} -> {rew}") + env.close() + ``` + + អ្នកនឹងឃើញលទ្ធផលតែឯកទេសនៅក្នុង notebook ផ្ទៃនិចន៍៖ + + ```text + [ 0.03403272 -0.24301182 0.02669811 0.2895829 ] -> 1.0 + [ 0.02917248 -0.04828055 0.03248977 0.00543839] -> 1.0 + [ 0.02820687 0.14636075 0.03259854 -0.27681916] -> 1.0 + [ 0.03113408 0.34100283 0.02706215 -0.55904489] -> 1.0 + [ 0.03795414 0.53573468 0.01588125 -0.84308041] -> 1.0 + ... + [ 0.17299878 0.15868546 -0.20754175 -0.55975453] -> 1.0 + [ 0.17617249 0.35602306 -0.21873684 -0.90998894] -> 1.0 + ``` + + ចំណុចដែលត្រឡប់មកវិញនៅរៀងរាល់ជំហានមានតម្លៃដូចខាងក្រោម៖ + - ទីតាំងរបស់ cart + - ល្បឿនរបស់ cart + - មុំនៃខ្សែដេក + - អត្រាបង្វិលនៃខ្សែដេក + +១. រកតម្លៃអប្បបរមា និងអតិបរមានៃចំនួនទាំងនេះ៖ (ប្លុកកូដ ៥) + + ```python + print(env.observation_space.low) + print(env.observation_space.high) + ``` + + អ្នកអាចចាប់អារម្មណ៍ថាតម្លៃទទួលរង្ស័យនៅរៀងរាល់ជំហានតែងតែ ១។ នេះគឺព្រោះគោលបំណងរបស់យើងគឺរស់រានមួយរយះពេលយូរ ប #ប្រែទៅមុខវីជ័យដទៃមួយដែលហៅថា CartPole ដែលគេពិចារណាថាសម្រេចបាន ប្រសិនបើយើងទទួលបានផលចង់បានមធ្យម ១៩៥ នៅលើ ១០០ ជំលោះជាប់គ្នា។ + +## ស្ថានភាពប្រភេទដាច់ + +ក្នុង Q-Learning យើងត្រូវតែរៀបចំតារាង Q ដែលកំណត់តើត្រូវធ្វើអ្វីនៅក្នុងស្ថានភាពនីមួយៗ។ ដើម្បីអាចធ្វើបានអ្វីនេះ យើងត្រូវការឲ្យស្ថានភាពមានលក្ខណ: **ប្រភេទដាច់** បុណ្យទៅលម្អិតគឺ មានតម្លៃប្រភេទដាច់កំណត់ចំនួនកំណត់។ ដូច្នេះយើងត្រូវធ្វើអ្វីមួយដើម្បី **ធ្វើស្ថានភាពជាប្រភេទដាច់** ដោយផែនទីវាទៅក្បាលសំណុំស្ថានភាពកំណត់មួយ។ + +មានវិធីភាគច្រើនក្នុងការធ្វើនេះ៖ + +- **ចែកចេញទៅក្នុងកន្ត្រក**។ ប្រសិនបើយើងដឹងចន្លោះតម្លៃមួយ យើងអាចចែកចន្លោះនេះទៅជាចំនួនកន្ត្រក ហើយបន្ទាប់មកបម្លែងតម្លៃទៅជាលេខកន្ត្រកដែលវាចូលរួម។ វាអាចធ្វើបានដោយប្រើវិធី numpy [`digitize`](https://numpy.org/doc/stable/reference/generated/numpy.digitize.html)។ ក្នុងករណីនេះ យើងនឹងដឹងពីទំហំស្ថានភាពយ៉ាងច្បាស់ ពីព្រោះវាអាស្រ័យលើចំនួនកន្ត្រកដែលយើងជ្រើសរើសសម្រាប់ធ្វើ digitization។ + +✅ យើងអាចប្រើការប្រព្រឹត្តតាមសនិទ្ទេសផ្សេងៗដើម្បីយកតម្លៃទៅចន្លោះកំណត់ (ឧ. ពី -20 ទៅ 20) ហើយបន្ទាប់មកបម្លែងតម្លៃហ្នឹងទៅជាចំនួនគត់ដោយបូកបន្ថយ។ វាបានផ្តល់ឧបត្ថម្ភល្អវាង និង មានកំណត់តិចលើទំហំស្ថានភាព ដោយពិសេសប្រសិនបើយើងមិនដឹងពីសមាមាត្រពិតនៃតម្លៃចូល។ ឧ. ក្នុងករណីរបស់យើង ២ តម្លៃក្នុងចំនួន ៤ មិនមានព្រំដែនលើឬក្រោម ភាគច្រើននាំឲ្យមានចំនួនស្ថានភាពអនੰਤ។ + +ក្នុងឧទាហរណ៍របស់យើង យើងនឹងប្រើវិធីទីពីរ។ ដូចដែលអ្នកអាចមើលឃើញក្រោយនេះ ទោះបីចន្លោះលើ/ក្រោមមិនបានកំណត់ តម្លៃទាំងនេះក៍ឃើញបន្ថយក្នុងចន្លោះកំណត់មួយ ដូច្នេះស្ថានភាពដែលមានតម្លៃខ្ពស់ទាំងនេះស្ថិតនៅក្នុងករណីកាច្រើនតិច។ + +១. នេះជាផ្នែកមុខងារណាមួយ ដែលទទួលការសម្គាល់ពីម៉ូដែលរបស់យើង ហើយបង្កើតជាស៊ុមក្រុម ៤ ពីតម្លៃعددគត់៖ (ប្លុកកូដ ៦) + + ```python + def discretize(x): + return tuple((x/np.array([0.25, 0.25, 0.01, 0.1])).astype(np.int)) + ``` + +១. យើងមកសាកល្បងវិធីផ្សេងមួយផ្សេងទៀតសម្រាប់ការបម្លែងប្រភេទដោយប្រើ bin៖ (ប្លុកកូដ ៧) + + ```python + def create_bins(i,num): + return np.arange(num+1)*(i[1]-i[0])/num+i[0] + + print("Sample bins for interval (-5,5) with 10 bins\n",create_bins((-5,5),10)) + + ints = [(-5,5),(-2,2),(-0.5,0.5),(-2,2)] # ប្រើរយៈពេលនៃតម្លៃសម្រាប់ប៉ារ៉ាម៉ែត្រនីមួយៗ + nbins = [20,20,10,10] # ចំនួនប្រអប់សម្រាប់ប៉ារ៉ាម៉ែត្រនីមួយៗ + bins = [create_bins(ints[i],nbins[i]) for i in range(4)] + + def discretize_bins(x): + return tuple(np.digitize(x[i],bins[i]) for i in range(4)) + ``` + +១. យើងចាប់ផ្តើមរត់សម្រួលខ្លី ហើយមើលតម្លៃបរិយាកាសប្រភេទដាច់ទាំងនេះ។ អ្នកអាចសាកល្បងទាំង `discretize` និង `discretize_bins` ដើម្បីមើលថាតើមានភាពខុសគ្នាឬអត់។ + + ✅ discretize_bins បង្ហាញលេខ bin ដែលគិតចាប់ពី 0 ។ ដូច្នេះចំពោះតម្លៃនៅចន្លោះនៅជុំវិញ 0 វាក៏បញ្ចេញលេខពីចន្លោះកណ្តាលនៃចន្លោះ (10)។ នៅក្នុង discretize យើងមិនគិតពីជួរតម្លៃនៃលទ្ធផល ដែលអនុញ្ញាតឲ្យវា អាចមានតម្លៃអវិជ្ជមាន ហ្នឹងស្ថានភាពមិនត្រូវបានផ្លាស់ទី ហើយ 0 ត្រូវនឹង 0។ (ប្លុកកូដ ៨) + + ```python + env.reset() + + done = False + while not done: + #env.render() + obs, rew, done, info = env.step(env.action_space.sample()) + #បោះពុម្ភ discretize_bins(obs) + print(discretize(obs)) + env.close() + ``` + + ✅ អាចដកចេញបន្ទាត់ដែលចាប់ផ្តើមជាមួយ env.render បើអ្នកចង់មើលពីរបៀបដែលបរិយាកាសដំណើរការ។ បើមិនដូច្នេះ អ្នកអាចរត់វាក្រោមផ្ទាំងក្រោយបន្ទប់ ដែលរហ័សជាង។ យើងនឹងប្រើការជាអាថ៍កំបាំងនេះក្នុងដំណាក់កាល Q-Learning របស់យើង។ + +## រចនាសម្ព័ន្ធ Q-Table + +នៅមេរៀនមុន ស្ថានភាពគឺជាគូលេខសាមញ្ញ 0 ដល់ 8 ដូច្នោះវាស្រួលក្នុងការបង្ហាញ Q-Table ជារូបភាព numpy tensor ទំហំ 8x8x2។ ប្រសិនបើយើងប្រើ bin discretization ទំហំវ៉ិចទ័រស្ថានភាពក៏ត្រូវបានកំណត់ហើយ ដូច្នេះយើងអាចប្រើវិធីដូចគ្នា ទំនាក់ទំនងស្ថានភាពជាអារេ 20x20x10x10x2 (2 គឺជាមាត្រដ្ឋានសកម្មភាព ហើយទំហំដំបូងបង្ហាញពីចំនួន bin ដែលយើងបានជ្រើស សម្រាប់ប៉ារ៉ា៉ម៉ែត្រនៅចន្លោះសំគាល់)។ + +ប៉ុន្ដែពេលខ្លះ បរិមាណត្រឹមត្រូវរបស់ចន្លោះសម្រួលមិនត្រូវបានស្គាល់។ ក្នុងករណីមុខងារ `discretize` យើងមិនអាចប្រាកដថាស្ថានភាពនៅក្នុងដែនកំណត់មួយ ព្រោះតម្លៃដើមខ្លះមិនមានព្រំដែន។ ដូច្នេះ យើងនឹងប្រើវិធីខុសបន្តិច ដោយបង្ហាញ Q-Table ជាថតកំនត់ឈ្មោះ (dictionary)។ + +១. ប្រើគូ *(state,action)* ជារឹងគន្លង key តាម(dictionary) ហើយតម្លៃនឹងត្រូវបង្ហាញ Q-Table នៅចំណុចនោះ (ប្លុកកូដ ៩) + + ```python + Q = {} + actions = (0,1) + + def qvalues(state): + return [Q.get((state,a),0) for a in actions] + ``` + + នៅទីនេះ យើងកំណត់មុខងារ `qvalues()`, ដែលត្រឡប់បញ្ជីតម្លៃតារាង Q សម្រាប់ស្ថានភាពមួយសម្រាប់ឥរិយាបថដែលអាចកើតមាន។ បើមិនមាន ចំណុចនៅក្នុង Q-Table គឺត្រឡប់ទៅ 0 ជាមានប្រយោជន៍។ + +## ចាប់ផ្តើម Q-Learning + +ឥឡូវនេះ យើងត្រៀមខ្លួនសម្រាប់បង្រៀន Peter រក្សាសមតុល្យ! + +១. ជាមុន សូមកំណត់​ភាពផ្តោតចិត្តខ្លះៗ៖ (ប្លុកកូដ ១០) + + ```python + # ប៉ារ៉ាម៉ែត្រខ្ពស់ + alpha = 0.3 + gamma = 0.9 + epsilon = 0.90 + ``` + + នៅទីនេះ `alpha` គឺជា **អត្រានៃការរៀន** ដែលកំណត់ថាយើងត្រូវកែប្រែតម្លៃ Q-Table បច្ចុប្បន្នប៉ុន្មាន នៅរៀងរាល់ជំហាន។ នៅមេរៀនមុនយើងចាប់ផ្តើមពី 1 បន្ទាប់មកកាត់បន្ថយ `alpha` ទៅតម្លៃតិចៗក្នុងដំណាក់កាលហ្វឹកហាត់។ នៅឧទាហរណ៍នេះ យើងនឹងរក្សាវាជាពិសេស សម្រាប់ភាពសាមញ្ញ ហើយអ្នកអាចសាកល្បងកំណត់តម្លៃ alpha ពីក្រោយបាន។ + + `gamma` គឺជា **តែវាដែលបញ្ចុះតម្លៃ** បង្ហាញពីការបញ្ញើសំរាប់កម្រិតការប្រមូលរង្ស័យក្នុងអនាគត ក្រែងលើរង្ស័យបច្ចុប្បន្ន។ + + `epsilon` គឺជា **មូលហេតុសម្រាប់ការទេសត/ប្រើប្រាស់** ដែលកំណត់ថាតើយើងធ្វើការស្វែងរក (exploration) ឬប្រើប្រាស់តម្លៃដែលយើងបានរៀនមកហើយ (exploitation)។ ក្នុងអាល់ហ្គរីធមីរបស់យើង នៅ `epsilon` ភាគរយនៃករណី យើងជ្រើសសកម្មភាពតាមតារាង Q និងនៅករណីសល់ យើងជ្រើសសកម្មភាពដោយចៃដន្យ។ វានឹងអនុញ្ញាតឲ្យយើងស្វែងរកតំបន់នៅលើលំហរកំណត់ដែលមិនដែលបានឃើញពីមុន។ + + ✅ សម្រាប់ការរក្សាសមតុល្យ - ជ្រើសសកម្មភាពចៃដន្យ (exploration) គឺអាចដូចជាការវាយចៃដន្យទៅខ្យល់ខុស គ្នា ហើយខ្សែគួរតែរៀនវិធីកំណត់សមតុល្យពីកង្វះខាតទាំងនេះ។ + +### ពង្រឹងអាល់ហ្គរីធមី + +យើងក៏អាចធ្វើការកែលម្អពីរយ៉ាងចំរូងមកលើអាល់ហ្គរីធមីពីមេរៀនមុន៖ + +- **គណនាភាពមធ្យមរង្ស័យចងក្រង** អំពីរ៉ាចំនួនជាច្រើននៃការសម្រួល។ យើងនឹងបោះពុម្ពវាថា ទៅជារឿយៗរៀងរាល់ ៥០០០ ជំលោះ ហើយយើងនឹងទទួលបានរង្ស័យមធ្យមចងក្រងលើរយៈពេលនោះ។ មានន័យថាបើយើងទទួលបានជាង ១៩៥ ពិន្ទុ យើងអាចគិតថាបញ្ហាទទួលបានការដោះស្រាយ បទពិសោធអាចខ្ពស់ជាងគេដែលត្រូវបានដាក់ស្នើ។ + +- **គណនាពិន្ទុមធ្យមចងក្រងអតិបរមា** `Qmax`, ហើយយើងនឹងរក្សាទុក Q-Table ដែលទាក់ទងនឹងលទ្ធផលនោះ។ នៅពេលអ្នករត់ហ្វឹកហាត់ អ្នកនឹងកត់សម្គាល់ថា ពេលខ្លះលទ្ធផលមធ្យមចងក្រងចាប់ផ្តើមធ្លាក់ចុះ ហើយយើងចង់រក្សាតម្លៃ Q-Table ដែលពាក់ព័ន្ធនឹងម៉ូដែលល្អបំផុតដែលបានសង្កេតឃើញក្នុងដំណាក់កាលហ្វឹកហាត់។ + +១. សូមប្រមូលរង្ស័យចងក្រងទាំងអស់នៅរៀងរាល់ជំហានសម្រួលទៅក្នុងវ៉ិចទ័រ `rewards` សម្រាប់ការគូរជាបន្ទាប់។ (ប្លុកកូដ ១១) + + ```python + def probs(v,eps=1e-4): + v = v-v.min()+eps + v = v/v.sum() + return v + + Qmax = 0 + cum_rewards = [] + rewards = [] + for epoch in range(100000): + obs = env.reset() + done = False + cum_reward=0 + # == ចាប់ផ្តើមសមួង == + while not done: + s = discretize(obs) + if random.random() Qmax: + Qmax = np.average(cum_rewards) + Qbest = Q + cum_rewards=[] + ``` + +អ្វីដែលអ្នកអាចគិតស្រមៃពីលទ្ធផលទាំងនេះ៖ + +- **ជិតដល់គោលបំណង**។ យើងជិតដល់គោលបំណងក្នុងការទទួលបាន ១៩៥ រង្ស័យចងក្រងលើការប្រតិបត្តិ ១០០+ ផ្តាច់មុខឬយើងប្រហែលជាទទួលបានហើយ! ទោះបីជាលទ្ធផលតិចក៏ដោយ យើងមិនដឹងទេ ពីព្រោះយើងគណនាមធ្យមលើការរត់ ៥០០០ ហើយត្រូវការប្រតិបត្តិ ១០០ ។ ។ + +- **រង្ស័យចាប់ផ្តើមចុះ**។ ពេលខ្លះ រង្ស័យចាប់ផ្តើមធ្លាក់ បង្ហាញថាយើងអាច "បំផ្លាញ" តម្លៃដែលបានរៀនហើយនៅក្នុង Q-Table ជាមួយតម្លៃដែលធ្វើឲ្យស្ថានភាពកាន់តែអាក្រក់។ + +ការសង្កេតនេះមានភាពច្បាស់ជាង នៅពេលយើងគូរអភិវឌ្ឍន៍នៃការហ្វឹកហាត់។ + +## រូបភាពអភិវឌ្ឍន៍ការហ្វឹកហាត់ + +ខណៈពេលហ្វឹកហាត់ យើងបានយកតម្លៃរង្ស័យចងក្រងនៅរៀងរាល់ជំលោះទៅក្នុងវ៉ិចទ័រ `rewards`។ នេះជារូបភាពនៃវាដែលធ្វើជាក្រាបជាមួយលេខជំលោះ៖ + +```python +plt.plot(rewards) +``` + +![raw progress](../../../../translated_images/km/train_progress_raw.2adfdf2daea09c59.webp) + +ពីក្រាបនេះ មិនអាចប្រាប់អ្វីបានទេ ព្រោះដោយសារតែធម្មជាតិនៃដំណើរការហ្វឹកហាត់ stochastic ប្រវែងរបស់វគ្គហ្វឹកហាត់ផ្សេងគ្នា។ ដើម្បី​ធ្វើឲ្យមាន​អារម្មណ៍ល្អជាងនេះ យើងអាចគណនាមធ្យមរត់ជាមួយនឹងករណីជាច្រើន ដូចជា១០០។ វាអាចធ្វើបានដោយងាយស្រួលជាមួយ `np.convolve`: (ប្លុកកូដ ១២) + +```python +def running_average(x,window): + return np.convolve(x,np.ones(window)/window,mode='valid') + +plt.plot(running_average(rewards,100)) +``` + +![training progress](../../../../translated_images/km/train_progress_runav.c71694a8fa9ab359.webp) + +## ការផ្លាស់ប្តូរពណ៌អំបូង + +ដើម្បីធ្វើឲ្យការរៀនមានស្ថេរភាព ចំនុចមួយМаЕнហចាំត្រូវបានប្តូរបន្តិចក្នុងដំណាក់កាលហ្វឹកហាត់។ ជាពិសេសៈ + +- **សម្រាប់អត្រារៀន** `alpha` អាចចាប់ផ្តើមជាមួយតម្លៃជិត 1 ហើយបន្តការកាត់បន្ថយជាបន្តបន្ទាប់។ ជាមួយពេលវេលា យើងនឹងទទួលបានតម្លៃប្រតិបត្តិល្អក្នុង Q-Table ហើយគួរតែធ្វើការកែប្រែតិចតួច មិនមែនលុបទាំងស្រុងជាមួយតម្លៃថ្មីទេ។ + +- **បន្ថែម epsilon**។ យើងអាចចង់បន្ថែម `epsilon` យឺតៗ ដើម្បីស្វែងរកតិច និងប្រើប្រាស់ច្រើនជាងមុន។ វាហាក់ដូចជាងសមស្របចាប់ផ្តើមជាមួយតម្លៃតិចនៃ `epsilon` ហើយលេចមកដល់ប្រហែល 1។ + +> **Task 1**: លេងជាមួយតម្លៃ hyperparameter ហើយមើលថាតើអ្នកអាចទទួលបានរង្ស័យចងក្រងខ្ពស់ជាងមុន។ តើអ្នកទទួលបានលើស ១៩៥ ទេ? +> **Task 2**: ដើម្បីដោះស្រាយបញ្ហាផ្លូវការយ៉ាងត្រឹមត្រូវ អ្នកត្រូវការទទួលបានរង្វាន់មធ្យម ១៩៥ ក្នុងចន្លោះ ១០០ ដងរត់ជាប់គ្នា។ វាស់វែងវាក្នុងអំឡុងពេលបណ្តុះបណ្តាល ហើយធ្វើអោយប្រាកដថាអ្នកបានដោះស្រាយបញ្ហាផ្លូវការយ៉ាងត្រឹមត្រូវ! + +## មើលលទ្ឋផលក្នុងសកម្មភាព + +វានឹងគួរឲ្យចាប់អារម្មណ៍ក្នុងការមើលការប្រព្រឹត្តទៅរបស់គំរូដែលបានបណ្តុះបណ្តាល។ ចាប់ផ្តើមរត់សកម្មភាពពិត និងអនុវត្តយុទ្ធសាស្រ្តជ្រើសរើសសកម្មភាពដូចក្នុងអំឡុងបណ្តុះបណ្តាល ដោយសេងតាមចែកចាយប្រតិបត្តិការជាប្រាក់ប្រមាណនៅក្នុងតារាង Q: (khối mã 13) + +```python +obs = env.reset() +done = False +while not done: + s = discretize(obs) + env.render() + v = probs(np.array(qvalues(s))) + a = random.choices(actions,weights=v)[0] + obs,_,done,_ = env.step(a) +env.close() +``` + +អ្នកគួរតែឃើញអ្វីមួយដូចខាងក្រោមនេះ៖ + +![a balancing cartpole](../../../../8-Reinforcement/2-Gym/images/cartpole-balance.gif) + +--- + +## 🚀បញ្ហាប្រឈម + +> **Task 3**: នៅទីនេះ យើងកំពុងប្រើច្បាប់ចុងក្រោយនៃតារាង Q ដែលប្រហែលជាមិនមែនល្អបំផុតឡើយ។ ចាំថាយើងបានរក្សាទុកតារាង Q ដែលមានប្រសិទ្ធភាពល្អបំផុតនៅក្នុងអថេរ `Qbest`! សាកល្បងឧទាហរណ៍ដដែលនេះជាមួយតារាង Q ដែលមានប្រសិទ្ធភាពល្អបំផុតដោយចម្លង `Qbest` ទៅ `Q` ហើយមើលថាអ្នកតើយល់ឃើញខុសគ្នាឬទេ។ + +> **Task 4**: នៅទីនេះ យើងមិនបានជ្រើសរើសសកម្មភាពល្អបំផុតក្នុងជំហាននិមួយៗទេ ប៉ុន្តែបញ្ចូលការសេងតាមចែកចាយប្រតិបត្តិការដែលបានផ្គូរផ្គង។ តើវានឹងមានហេតុផលប្រសើរជាងមុនក្នុងការជ្រើសរើសសកម្មភាពល្អបំផុតជានិច្ច ដែលមានតម្លៃ Q-Table ខ្ពស់បំផុតមែនទេ? អាចធ្វើបានដោយប្រើមុខងារ `np.argmax` ដើម្បីរកលេខសកម្មភាពដែលសមស្របនឹងតម្លៃ Q-Table ខ្ពស់បំផុត។ អនុវត្តយុទ្ធសាស្រ្តនេះ និងមើលថាវាបង្កើនលទ្ធផលការរក្សាសមតុល្យរបស់យើងទេ។ + +## [ប្រលងក្រោយមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ការងារ +[បណ្តុះបណ្តាលរថយន្តភ្នំ](assignment.md) + +## សេចក្ដីសន្និដ្ឋាន + +ឥឡូវនេះយើងបានរៀនពីវិធីបណ្ដុះបណ្តាលភ្នាក់ងារដើម្បីទទួលបានលទ្ធផលល្អ ដោយផ្តល់មុខងាររង្វាន់ដែលកំណត់រដ្ឋភាពដែលចង់បាន សម្រាប់ហ្គេម និងផ្តល់ឱកាសឲ្យពួកគេចុះសូមតាមដានការស្រាវជ្រាវក្នុងលំហស្វែងរកយ៉ាងមានឆន្ទៈ។ យើងបានអនុវត្តអាល់ហ្គរីធម Q-Learning ដោយជោគជ័យក្នុងករណីបរិយាកាសជាបន្ត និងបញ្ឈរ ដែលមានសកម្មភាពបញ្ឈរប៉ុណ្ណោះ។ + +វាសំខាន់ផងដែរដើម្បីសិក្សា ស្ថានភាពដែលរដ្ឋភាពសកម្មភាពក៏ជាបន្ត និងពេលដែលលំហសំឡេងសង្កត់មានភាពស្មុគស្មាញជាងនេះ ដូចជារូបភាពពីអេក្រង់ហ្គេម Atari។ ក្នុងបញ្ហាទាំងនោះ យើងតែងតែត្រូវការប្រើបច្ចេកទេសខ្លាំងជាងក្នុងការសិក្សាគ្រឿងម៉ាស៊ីន ដូចជា បណ្តាញសារធាតុកោសិកា neural networks ដើម្បីទទួលបានលទ្ធផលល្អ។ បញ្ហាស្មុគស្មាញជាងនេះជាគោលបំណងនៃវគ្គសិក្សា AI លំដាប់ខ្ពស់ជាងមួយដែលយើងនឹងបើកសិក្សាផ្សេងទៀត។ + +--- + + +**ការព្រមាន**: +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខំប្រឹងប្រែងរកការត្រឹមត្រូវ ប៉ុន្តែសូមយល់ថាការបកប្រែដោយម៉ាស៊ីនអាចមានកំហុស ឬការខ្វះខាតខ្លះៗ។ ឯកសារដើមដែលមានភាសាតំណើរការដើមគួរត្រូវបានទទួលស្គាល់ជាផ្នែកដើមដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ មេរៀនបកប្រែដោយអ្នកជំនាញផ្នែកមនុស្សគឺត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសពីការប្រើប្រាស់បកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/2-Gym/assignment.md b/translations/km/8-Reinforcement/2-Gym/assignment.md new file mode 100644 index 000000000..774b408ac --- /dev/null +++ b/translations/km/8-Reinforcement/2-Gym/assignment.md @@ -0,0 +1,50 @@ +# បង្រៀន gaរថយន្តភ្នំ + +[OpenAI Gym](http://gym.openai.com) ត្រូវបានបង្កើតឡើងនូវរបៀបដែលបរិយាកាសទាំងអស់ផ្តល់នូវ API ដូចគ្នា - នេះគឺមានន័យថាវិធីសាស្រ្តដូចគ្នា `reset`, `step` និង `render` និង abstractions ដូចគ្នានៃ **action space** និង **observation space** ។ ដូច្នេះគួរតែអាចធ្វើការ​កែប្រែ algorithm ការរៀនបង្រៀនជាប្រព័ន្ធ reinforcement ដើម្បីសម្របសម្រួលជាមួយបរិយាកាសផ្សេងៗបានដោយផ្លាស់ប្តូរកូដតិចតួចបំផុត។ + +## បរិយាកាសកាប្រាក់ភ្នំ + +[បរិយាកាសកាប្រាក់ភ្នំ](https://gym.openai.com/envs/MountainCar-v0/) មានរថយន្តមួយរុះរទេះចងក្នុងទូកចុះជល់៖ + + + +គោលបំណងគឺត្រូវចេញពីទូកចុះជល់ និងចាប់ទង់ជោគ ជាមួយធ្វើសកម្មភាពមួយក្នុងចំណោមចុះនៅហើយក្នុងនីតិវិធី៖ + +| តម្លៃ | អត្ថន័យ | +|---|---| +| 0 | ជំរុញទៅខាងឆ្វេង | +| 1 | មិនជំរុញទេ | +| 2 | ជំរុញទៅខាងស្ដាំ | + +ល្បិចសំខាន់របស់បញ្ហានេះគឺ ម៉ាស៊ីនរថយន្តមិនមានកម្លាំងគ្រប់គ្រាន់ដើម្បីឡើងភ្នំក្នុងលើកតែមួយទេ។ ដូច្នេះ វិធីតែម្ដងត្រូវបើកបរទៅមកដើម្បីបង្កើតចលនា momentum។ + +ផាសពិចារណា observation មានតែក្នុង 2 តម្លៃប៉ុណ្ណោះ៖ + +| លេខ | ការសង្កេត | ទាបបំផុត | អតិបរមា | +|-----|--------------|-----|-----| +| 0 | ទីតាំងរថយន្ត | -1.2| 0.6 | +| 1 | ល្បឿនរថយន្ត | -0.07 | 0.07 | + +ប្រព័ន្ធរង្វាន់សម្រាប់រថយន្តភ្នំនេះពិបាកខ្លាំង៖ + + * រង្វាន់ 0 នឹងផ្ដល់ប្រសិនបើភ្នាក់ងារមកដល់ទង់ជោគ (ទីតាំង = 0.5) នៅលើយូរភ្នំ។ + * រង្វាន់ -1 នឹងផ្ដល់ប្រសិនបើទីតាំងនៃភ្នាក់ងារតិចជាង 0.5។ + +ករណីចប់នៃ episode គឺប្រសិនបើទីតាំងរថយន្តលើស 0.5 ឬរយៈពេល episode ធំជាង 200។ +## សេចក្តីណែនាំ + +កែប្រែ algorithm ការរៀនបង្រៀនរបស់យើងដើម្បីដោះស្រាយបញ្ហារថយន្តភ្នំ។ ចាប់ផ្តើមពីកូដបច្ចុប្បន្ន [notebook.ipynb](notebook.ipynb) ប្តូរបរិយាកាសថ្មី ប្ដូរមុខងារដែលបំបែកស្ថានភាព ហើយព្យាយាមធ្វើឱ្យ algorithm មានសមត្ថភាពហ្វឹកហាត់ជាមួយកូដកែប្រែតិចតួច។ បង្កើតជាប្រសើរឡើងដោយកែប៉ារ៉ាម៉ែត្រ hyperparameters។ + +> **ចំណាំ**: ចំណាត់ថ្នាក់ hyperparameters គឺយ៉ាងហោចណាស់ត្រូវការដើម្បីឱ្យ algorithm ធ្វើការ convergence។ +## ប្រភេទពិន្ទុ + +| លេខសម្គាល់ | ល្អឆ្នើម | ធ្វើបាន | ត្រូវកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| | algorithm Q-Learning ត្រូវបានអនុវត្តដោយជោគជ័យពីឧទាហរណ៍ CartPole ដោយកាត់បន្ថយកូដ ត្រូវបានអាចដោះស្រាយបញ្ហាចាប់ទង់ក្រោម 200 ជំហាន។ | អនុវត្ត algorithm ថ្មី Q-Learning ពីអ៊ីនធឺណិត ដែលមានឯកសារល្អ; ឬ algorithm បច្ចុប្បន្នត្រូវបានចំណាយ ប៉ុន្តែគ្មានលទ្ធផលដែលចង់បាន | និស្សិតមិនអាចអនុវត្ត algorithm ផ្សេងទេ ប៉ុន្តែបានធ្វើជំហាន់សំខាន់ទៅកាន់ដំណោះស្រាយ (អនុវត្តបំបែកស្ថានភាព, សង់រចនាសម្ព័ន្ធទិន្នន័យ Q-Table, ល។) | + +--- + + +**ការបោះហេតុ**៖ +ឯកសារនេះត្រូវបានបកប្រែក្នុងការប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំខិតខំដើម្បីមានភាពត្រឹមត្រូវ ក៏ដោយសូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងពេលខ្លះអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាមាតុភាគគួរត្រូវបានយល់ព្រមជាក្រុមហ៊ុនស្របច្បាប់។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សវិជ្ជាជីវៈត្រូវបានផ្តល់អនុសាសន៍។ យើងខ្ញុំមិនទទួលបន្ទុកចំពោះការយល់ច្រឡំនឹង ឬការបកស្រាយខុសៗអ្វីដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/2-Gym/notebook.ipynb b/translations/km/8-Reinforcement/2-Gym/notebook.ipynb new file mode 100644 index 000000000..396fb36a5 --- /dev/null +++ b/translations/km/8-Reinforcement/2-Gym/notebook.ipynb @@ -0,0 +1,394 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.4" + }, + "orig_nbformat": 4, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.4 64-bit ('base': conda)" + }, + "interpreter": { + "hash": "86193a1ab0ba47eac1c69c1756090baa3b420b3eea7d4aafab8b85f8b312f0c5" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "## ការស្គេត CartPole\n", + "\n", + "> **បញ្ហា**: ប្រសិនបើ Peter ចង់រត់រួចពីខ្លាឃ្រចិះ គាត់ត្រូវតែចេះផ្លាស់ទីឲ្យលឿនជាងវា។ យើងនឹងមើលថា Peter អាចរៀនស្គេតបានយ៉ាងដូចម្តេច ជាពិសេស ការរក្សាសមតុល្យ ដោយប្រើ Q-Learning។\n", + "\n", + "ចាច់ដំបូង សូមដំឡើង gym និងនាំចូលបណ្ណាល័យដែលត្រូវការ៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "#code block 1" + ] + }, + { + "source": [ + "## បង្កើតបរិយាកាស cartpole\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "#code block 2" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "source": [ + "ដើម្បីមើលថាស្ថានភាពបរិស្ថានដំណើរការ​ដូចម្តេច សូមយើងរត់ការសម្តែងខ្លីសម្រាប់ជំហាន ១០០។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "#code block 3" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "source": [ + "ក្នុងពេលធ្វើការសម្រួល យើងត្រូវការទទួលបានការប្រើប្រាស់ដើម្បីសម្រេចចិត្តពីរបៀបប្រតិបត្តិ។ ជាការពិតមួយហើយ ការងារចុះជំហាន (`step` function) ផ្តល់ជូនយើងវិញនូវការប្រើប្រាស់បច្ចុប្បន្ន, មុខងាររង្វាន់, និងទង់ `done` ដែលបង្ហាញថាតើវាមានអត្ថន័យក្នុងការបន្តការសម្រួលឬទេ។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "#code block 4" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": null, + "outputs": [] + }, + { + "source": [ + "យើងអាចទទួលបានតម្លៃអប្បបរមា និងអតិបរមានៃលេខទាំងនោះបាន៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[-4.8000002e+00 -3.4028235e+38 -4.1887903e-01 -3.4028235e+38]\n[4.8000002e+00 3.4028235e+38 4.1887903e-01 3.4028235e+38]\n" + ] + } + ], + "source": [ + "#code block 5" + ] + }, + { + "source": [ + "## ការបំបែករដ្ឋ\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "#code block 6" + ] + }, + { + "source": [ + "តោះវិញយើងស្វែងរកវិធីបំបែកគណនាផ្សេងទៀតដោយប្រើធុង៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Sample bins for interval (-5,5) with 10 bins\n [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]\n" + ] + } + ], + "source": [ + "#code block 7" + ] + }, + { + "source": [ + "ឥឡូវនេះយើងចុះដំណើរការតាការសម្ដែងសង្ខេបមួយហើយមើលតម្លៃបរិយាកាសតែមួយៗទាំងនោះ។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(0, 0, -2, -2)\n(0, 1, -2, -5)\n(0, 2, -3, -8)\n(0, 3, -5, -11)\n(0, 3, -7, -14)\n(0, 4, -10, -17)\n(0, 3, -14, -15)\n(0, 3, -17, -12)\n(0, 3, -20, -16)\n(0, 4, -23, -19)\n" + ] + } + ], + "source": [ + "#code block 8" + ] + }, + { + "source": [ + "## រចនាសម្ព័ន្ធតារាង Q\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "#code block 9" + ] + }, + { + "source": [ + "## យើងចាប់ផ្តើមរៀន Q-Learning!\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [], + "source": [ + "#code block 10" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0: 22.0, alpha=0.3, epsilon=0.9\n", + "5000: 70.1384, alpha=0.3, epsilon=0.9\n", + "10000: 121.8586, alpha=0.3, epsilon=0.9\n", + "15000: 149.6368, alpha=0.3, epsilon=0.9\n", + "20000: 168.2782, alpha=0.3, epsilon=0.9\n", + "25000: 196.7356, alpha=0.3, epsilon=0.9\n", + "30000: 220.7614, alpha=0.3, epsilon=0.9\n", + "35000: 233.2138, alpha=0.3, epsilon=0.9\n", + "40000: 248.22, alpha=0.3, epsilon=0.9\n", + "45000: 264.636, alpha=0.3, epsilon=0.9\n", + "50000: 276.926, alpha=0.3, epsilon=0.9\n", + "55000: 277.9438, alpha=0.3, epsilon=0.9\n", + "60000: 248.881, alpha=0.3, epsilon=0.9\n", + "65000: 272.529, alpha=0.3, epsilon=0.9\n", + "70000: 281.7972, alpha=0.3, epsilon=0.9\n", + "75000: 284.2844, alpha=0.3, epsilon=0.9\n", + "80000: 269.667, alpha=0.3, epsilon=0.9\n", + "85000: 273.8652, alpha=0.3, epsilon=0.9\n", + "90000: 278.2466, alpha=0.3, epsilon=0.9\n", + "95000: 269.1736, alpha=0.3, epsilon=0.9\n" + ] + } + ], + "source": [ + "#code block 11" + ] + }, + { + "source": [ + "## ការចម្រាញ់ដំណើរការបណ្ដុះបណ្ដាល\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[]" + ] + }, + "metadata": {}, + "execution_count": 20 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "plt.plot(rewards)" + ] + }, + { + "source": [ + "ពីក្រាហ្វនេះ មិនអាចប្រាប់អ្វីបានទេ ព្រោះដោយសារតែធម្មជាតិនៃដំណើរកំសាន្តបណ្តុះបណ្តាលប្រជត្ថិភាព ការយូររយៈពេលនៃសម័យបណ្តុះបណ្តាលមានការបម្លែងយ៉ាងច្រើន។ ដើម្បីធ្វើឲ្យក្រាហ្វនេះមានន័យច្រើនឡើង យើងអាចគណនា **មធ្យមរត់** លើបណ្តុំការប្រឡង បាទ/ចាស ១០០ ដង។ នេះអាចធ្វើបានយ៉ាងងាយស្រួលដោយប្រើ `np.convolve`៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[]" + ] + }, + "metadata": {}, + "execution_count": 22 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "#code block 12" + ] + }, + { + "source": [ + "## ការប្រែប្រួលអ៉ីផ៉ារម៉ែត្រ និងមើលលទ្ធផលនៅក្នុងសកម្មភាព\n", + "\n", + "ឥឡូវនេះវានឹងគួរអោយចាប់អារម្មណ៍ក្នុងការមើលពីរបៀបដែលម៉ូដែលដែលបានបណ្តុះបណ្តាលធ្វើអាកប្បកិរិយា។ យើងសូមដំណើរការ simulation ហើយយើងនឹងអនុវត្តយុទ្ធសាស្ត្រជ្រើសរើសសកម្មភាពដដែលដូចជាពេលបណ្តុះបណ្តាល៖ ការដកសំណិតទៅតាមការចែកចាយប្រហាក់ប្រហែលក្នុងតារាង Q-Table៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# code block 13" + ] + }, + { + "source": [ + "## ការរក្សាទុកលទ្ធផលទៅជា GIF ភាពចលនា\n", + "\n", + "បើអ្នកចង់ធ្វើអោយមិត្តភក្តិរបស់អ្នកភ្ញាក់ផ្អើល អ្នកអាចចង់ផ្ញើរូបភាព GIF ភាពចលនានៃកាំបិតតុល្យភាពទៅពួកគេ។ ដើម្បីធ្វើបែបនេះ យើងអាចហៅ `env.render` ដើម្បីបង្កើតស៊ុមរូបភាព ហើយបន្ទាប់មករក្សាទុកទាំងនោះជា GIF ភាពចលនាជាមួយបណ្ណាល័យ PIL៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "360\n" + ] + } + ], + "source": [ + "from PIL import Image\n", + "obs = env.reset()\n", + "done = False\n", + "i=0\n", + "ims = []\n", + "while not done:\n", + " s = discretize(obs)\n", + " img=env.render(mode='rgb_array')\n", + " ims.append(Image.fromarray(img))\n", + " v = probs(np.array([Qbest.get((s,a),0) for a in actions]))\n", + " a = random.choices(actions,weights=v)[0]\n", + " obs,_,done,_ = env.step(a)\n", + " i+=1\n", + "env.close()\n", + "ims[0].save('images/cartpole-balance.gif',save_all=True,append_images=ims[1::2],loop=0,duration=5)\n", + "print(i)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងមានការខិតខំសម្រាប់ភាពត្រឹមត្រូវក៏ដោយ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬខុសឆ្គងបាន។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានពិចារណាជាឯកសារដើមដែលទុកចិត្តបាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់សួរឬការបកអត្ថន័យខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/8-Reinforcement/2-Gym/solution/Julia/README.md b/translations/km/8-Reinforcement/2-Gym/solution/Julia/README.md new file mode 100644 index 000000000..2217004e7 --- /dev/null +++ b/translations/km/8-Reinforcement/2-Gym/solution/Julia/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងសម្រាប់ដាក់ជាអំណានបណ្តោះអាសន្ន + +--- + + +**ការបដិស្ង៌**៖ +ឯកសារនេះត្រូវបានបកប្រែជាភាសាដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានការខិតខំដើម្បីរកភាពត្រឹមត្រូវ ក៏សូមជ្រាបថាសេចក្តីបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមក្នុងភាសាមួយដែលមានដើមដើមគួរត្រូវបានទទួលស្គាល់ជាទ្រឹស្ដីដ៏មានសិទ្ធិ។ សម្រាប់ព័ត៌មានដែលមានសារៈសំខាន់ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានណែនាំ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/2-Gym/solution/R/README.md b/translations/km/8-Reinforcement/2-Gym/solution/R/README.md new file mode 100644 index 000000000..0c50506f1 --- /dev/null +++ b/translations/km/8-Reinforcement/2-Gym/solution/R/README.md @@ -0,0 +1,8 @@ +នេះគឺជាកន្លែងចំណតបណ្ដោះអាសន្ន + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងខ្លួនវាអាចមានកំហុស ឬកំហុសខ្លះៗបាន។ ឯកសារដើមនៅភាសាដើម គួរត្រូវបានចាត់ទុកជាផ្ទះហេតុពិត។ សម្រាប់ព័ត៌មានចំរូងចំរាស់ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសឆ្គងណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/8-Reinforcement/2-Gym/solution/notebook.ipynb b/translations/km/8-Reinforcement/2-Gym/solution/notebook.ipynb new file mode 100644 index 000000000..53768bc16 --- /dev/null +++ b/translations/km/8-Reinforcement/2-Gym/solution/notebook.ipynb @@ -0,0 +1,526 @@ +{ + "metadata": { + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.0" + }, + "orig_nbformat": 4, + "kernelspec": { + "name": "python3", + "display_name": "Python 3.7.0 64-bit ('3.7')" + }, + "interpreter": { + "hash": "70b38d7a306a849643e446cd70466270a13445e5987dfa1344ef2b127438fa4d" + } + }, + "nbformat": 4, + "nbformat_minor": 2, + "cells": [ + { + "source": [ + "## ការស្គីត CartPole\n", + "\n", + "> **បញ្ហា**: ប្រសិនបើ Peter ចង់ចេញពីច្រោះឆ្កែ ខ្សោយរបស់គាត់ ត្រូវតែលឿនជាងវា។ យើង​នឹងមើលពីរបៀបដែល Peter អាចរៀនស្គី ដោយជាក់លាក់ទៅលើការរក្សាសមតុល្យ ដោយប្រើ Q-Learning។\n", + "\n", + "ដំបូង មកដំឡើង gym ហើយនាំចូលបណ្ណាល័យដែលត្រូវការ៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: gym in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (0.18.3)\n", + "Requirement already satisfied: Pillow<=8.2.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from gym) (7.0.0)\n", + "Requirement already satisfied: scipy in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from gym) (1.4.1)\n", + "Requirement already satisfied: numpy>=1.10.4 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from gym) (1.19.2)\n", + "Requirement already satisfied: cloudpickle<1.7.0,>=1.2.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from gym) (1.6.0)\n", + "Requirement already satisfied: pyglet<=1.5.15,>=1.4.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from gym) (1.5.15)\n", + "\u001b[33mWARNING: You are using pip version 20.2.3; however, version 21.1.2 is available.\n", + "You should consider upgrading via the '/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7 -m pip install --upgrade pip' command.\u001b[0m\n" + ] + } + ], + "source": [ + "import sys\n", + "!pip install gym \n", + "\n", + "import gym\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import random" + ] + }, + { + "source": [ + "## បង្កើតបរិយាកាស cartpole\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "env = gym.make(\"CartPole-v1\")\n", + "print(env.action_space)\n", + "print(env.observation_space)\n", + "print(env.action_space.sample())" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Discrete(2)\nBox(-3.4028234663852886e+38, 3.4028234663852886e+38, (4,), float32)\n0\n" + ] + } + ] + }, + { + "source": [ + "ដើម្បីមើលថាម៉ាស៊ីនបរិស្ថានដំណើរការ​យ៉ាងដូចម្តេច ចូរយើងរត់ឧទាហរណ៍ខ្លីមួយសម្រាប់ជំហ៊ាន១០០កំហួង។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "env.reset()\n", + "\n", + "for i in range(100):\n", + " env.render()\n", + " env.step(env.action_space.sample())\n", + "env.close()" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": 3, + "outputs": [ + { + "output_type": "stream", + "name": "stderr", + "text": [ + "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gym/logger.py:30: UserWarning: \u001b[33mWARN: You are calling 'step()' even though this environment has already returned done = True. You should always call 'reset()' once you receive 'done = True' -- any further steps are undefined behavior.\u001b[0m\n warnings.warn(colorize('%s: %s'%('WARN', msg % args), 'yellow'))\n" + ] + } + ] + }, + { + "source": [ + "ក្នុងអំឡុងគំរូសំណុំ, យើងត្រូវការទទួលបានការសង្កេតដើម្បីសម្រេចចិត្តថាតើត្រូវធ្វើការប្រព្រឹត្តយ៉ាងដូចម្តេច។ ជាក់ស្តែងហើយ, មុខងារ `step` ប្រគល់វិញឲ្យយើងនូវការសង្កេតបច្ចុប្បន្ន, មុខងារ​រង្វាន់, និងសញ្ញា `done` ដែលបង្ហាញថាតើវាមានអត្ថន័យក្នុងការបន្តការស៊ុមបច្ចុប្បន្នឬអត់៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "source": [ + "env.reset()\n", + "\n", + "done = False\n", + "while not done:\n", + " env.render()\n", + " obs, rew, done, info = env.step(env.action_space.sample())\n", + " print(f\"{obs} -> {rew}\")\n", + "env.close()" + ], + "cell_type": "code", + "metadata": {}, + "execution_count": 4, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[ 0.03044442 -0.19543914 -0.04496216 0.28125618] -> 1.0\n", + "[ 0.02653564 -0.38989186 -0.03933704 0.55942606] -> 1.0\n", + "[ 0.0187378 -0.19424049 -0.02814852 0.25461393] -> 1.0\n", + "[ 0.01485299 -0.38894946 -0.02305624 0.53828712] -> 1.0\n", + "[ 0.007074 -0.19351108 -0.0122905 0.23842953] -> 1.0\n", + "[ 0.00320378 0.00178427 -0.00752191 -0.05810469] -> 1.0\n", + "[ 0.00323946 0.19701326 -0.008684 -0.35315131] -> 1.0\n", + "[ 0.00717973 0.00201587 -0.01574703 -0.06321931] -> 1.0\n", + "[ 0.00722005 0.19736001 -0.01701141 -0.36082863] -> 1.0\n", + "[ 0.01116725 0.39271958 -0.02422798 -0.65882671] -> 1.0\n", + "[ 0.01902164 0.19794307 -0.03740452 -0.37387001] -> 1.0\n", + "[ 0.0229805 0.39357584 -0.04488192 -0.67810827] -> 1.0\n", + "[ 0.03085202 0.58929164 -0.05844408 -0.98457719] -> 1.0\n", + "[ 0.04263785 0.78514572 -0.07813563 -1.2950295 ] -> 1.0\n", + "[ 0.05834076 0.98116859 -0.10403622 -1.61111521] -> 1.0\n", + "[ 0.07796413 0.78741784 -0.13625852 -1.35259196] -> 1.0\n", + "[ 0.09371249 0.98396202 -0.16331036 -1.68461179] -> 1.0\n", + "[ 0.11339173 0.79106371 -0.1970026 -1.44691436] -> 1.0\n", + "[ 0.12921301 0.59883361 -0.22594088 -1.22169133] -> 1.0\n" + ] + } + ] + }, + { + "source": [ + "យើងអាចទទួលបានតម្លៃតិចបំផុត និងតម្លៃអតិបរមារបស់លេខទាំងនោះ៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[-4.8000002e+00 -3.4028235e+38 -4.1887903e-01 -3.4028235e+38]\n[4.8000002e+00 3.4028235e+38 4.1887903e-01 3.4028235e+38]\n" + ] + } + ], + "source": [ + "print(env.observation_space.low)\n", + "print(env.observation_space.high)" + ] + }, + { + "source": [ + "## ការបែកបាក់ស្ថានភាព\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def discretize(x):\n", + " return tuple((x/np.array([0.25, 0.25, 0.01, 0.1])).astype(np.int))" + ] + }, + { + "source": [ + "មកយើងស្ទូចជ្រាបពីវិធីចែកចំរូងផ្សេងទៀតដែលប្រើប៊៊ីន:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Sample bins for interval (-5,5) with 10 bins\n [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]\n" + ] + } + ], + "source": [ + "def create_bins(i,num):\n", + " return np.arange(num+1)*(i[1]-i[0])/num+i[0]\n", + "\n", + "print(\"Sample bins for interval (-5,5) with 10 bins\\n\",create_bins((-5,5),10))\n", + "\n", + "ints = [(-5,5),(-2,2),(-0.5,0.5),(-2,2)] # intervals of values for each parameter\n", + "nbins = [20,20,10,10] # number of bins for each parameter\n", + "bins = [create_bins(ints[i],nbins[i]) for i in range(4)]\n", + "\n", + "def discretize_bins(x):\n", + " return tuple(np.digitize(x[i],bins[i]) for i in range(4))" + ] + }, + { + "source": [ + "យើងចាំបើកការតាក់តែងខ្លីមួយឥឡូវនេះ ហើយសង្កេតតម្លៃបរិស្ថានបំបែកទាំងនោះ។\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "(0, 0, -1, -3)\n(0, 0, -2, 0)\n(0, 0, -2, -3)\n(0, 1, -3, -6)\n(0, 2, -4, -9)\n(0, 3, -6, -12)\n(0, 2, -8, -9)\n(0, 3, -10, -13)\n(0, 4, -13, -16)\n(0, 4, -16, -19)\n(0, 4, -20, -17)\n(0, 4, -24, -20)\n" + ] + } + ], + "source": [ + "env.reset()\n", + "\n", + "done = False\n", + "while not done:\n", + " #env.render()\n", + " obs, rew, done, info = env.step(env.action_space.sample())\n", + " #print(discretize_bins(obs))\n", + " print(discretize(obs))\n", + "env.close()" + ] + }, + { + "source": [ + "## រចនាសម្ព័ន្ធតារាង Q\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "Q = {}\n", + "actions = (0,1)\n", + "\n", + "def qvalues(state):\n", + " return [Q.get((state,a),0) for a in actions]" + ] + }, + { + "source": [ + "## ចាប់ផ្តើមរៀន Q!\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# hyperparameters\n", + "alpha = 0.3\n", + "gamma = 0.9\n", + "epsilon = 0.90" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "0: 108.0, alpha=0.3, epsilon=0.9\n" + ] + } + ], + "source": [ + "def probs(v,eps=1e-4):\n", + " v = v-v.min()+eps\n", + " v = v/v.sum()\n", + " return v\n", + "\n", + "Qmax = 0\n", + "cum_rewards = []\n", + "rewards = []\n", + "for epoch in range(100000):\n", + " obs = env.reset()\n", + " done = False\n", + " cum_reward=0\n", + " # == do the simulation ==\n", + " while not done:\n", + " s = discretize(obs)\n", + " if random.random() Qmax:\n", + " Qmax = np.average(cum_rewards)\n", + " Qbest = Q\n", + " cum_rewards=[]" + ] + }, + { + "source": [ + "## ការគូរជាប់ជាមួយការបណ្តុះបណ្តាល\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[]" + ] + }, + "metadata": {}, + "execution_count": 20 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "plt.plot(rewards)" + ] + }, + { + "source": [ + "ពីក្រាបនេះ មិនអាចនិយាយអ្វីបានទេ ពីព្រោះដោយសារតម្លាភាពនៃដំណើរការបណ្តុះបណ្តាល stochastic កំរាស់រយៈពេលនៃសម័យបណ្តុះបណ្តាលផ្លាស់ប្តូរយ៉ាងខ្លាំង។ ដើម្បីឲ្យមានន័យច្បាស់ជាងនេះចំពោះក្រាបនេះ យើងអាចគណនារ **មធ្យមរត់** លើស៊េរីនៃការប្រឡងឧទាហរណ៍ ជាឧទាហរណ៍ ១០០។ វាអាចធ្វើបានយ៉ាងងាយស្រួលដោយប្រើ `np.convolve`:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[]" + ] + }, + "metadata": {}, + "execution_count": 22 + }, + { + "output_type": "display_data", + "data": { + "text/plain": "
", + "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", + "image/png": "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\n" + }, + "metadata": { + "needs_background": "light" + } + } + ], + "source": [ + "def running_average(x,window):\n", + " return np.convolve(x,np.ones(window)/window,mode='valid')\n", + "\n", + "plt.plot(running_average(rewards,100))" + ] + }, + { + "source": [ + "## ការប្រែប្រួលប៉ារ៉ាម៉ែត្រដៃគូ និងមើលលទ្ធផលក្នុងសកម្មភាព\n", + "\n", + "ឥលូវនេះវានឹងគួរឱ្យចាប់អារម្មណ៍ក្នុងការមើលថាតើម៉ូដែលដែលបានបណ្តុះបណ្តាលមានឥរិយាបថយ៉ាងដូចម្តេច។ យើងចាំបាច់ដំណើរការការស្ទង់មតិ ហើយយើងនឹងអនុវត្តយុទ្ធសាស្ត្រជ្រើសរើសសកម្មភាពដូចពេលបណ្តុះបណ្តាល៖ ការទាញយកតាមការចែកចាយប្រូបាប៊ីលីតេនៅក្នុងតារាង Q-Table៖\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "obs = env.reset()\n", + "done = False\n", + "while not done:\n", + " s = discretize(obs)\n", + " env.render()\n", + " v = probs(np.array(qvalues(s)))\n", + " a = random.choices(actions,weights=v)[0]\n", + " obs,_,done,_ = env.step(a)\n", + "env.close()" + ] + }, + { + "source": [ + "## ការរក្សាផលលទ្ធផលទៅជា GIF រូបភាពចល័ត\n", + "\n", + "ប្រសិនបើអ្នកចង់បង្ហាញភាពអស្ចារ្យដល់មិត្តភក្តិរបស់អ្នក អ្នកអាចចង់ផ្ញើរូបភាព GIF រូបចល័តនៃដាបទម្លាក់សមតុល្យ។ ដើម្បីធ្វើនេះ យើងអាចហៅ `env.render` ដើម្បីបង្កើតរូបភាពប៊ិចមួយ ហើយបន្ទាប់មករក្សាទុកវាទៅជា GIF រូបភាពចល័តដោយប្រើបណ្ណាល័យ PIL:\n" + ], + "cell_type": "markdown", + "metadata": {} + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "360\n" + ] + } + ], + "source": [ + "from PIL import Image\n", + "obs = env.reset()\n", + "done = False\n", + "i=0\n", + "ims = []\n", + "while not done:\n", + " s = discretize(obs)\n", + " img=env.render(mode='rgb_array')\n", + " ims.append(Image.fromarray(img))\n", + " v = probs(np.array([Qbest.get((s,a),0) for a in actions]))\n", + " a = random.choices(actions,weights=v)[0]\n", + " obs,_,done,_ = env.step(a)\n", + " i+=1\n", + "env.close()\n", + "ims[0].save('images/cartpole-balance.gif',save_all=True,append_images=ims[1::2],loop=0,duration=5)\n", + "print(i)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបដិសេធ**៖ \nឯកសារ​នេះ​ត្រូវបាន​បកប្រែ​ដោយ​ប្រើ​សេវាកម្ម​បកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែល​យើង​ព្យាយាម​ដើម្បីភាពត្រឹមត្រូវ សូម​យល់ថា​ការ​បកប្រែ​ស្វ័យ​ប្រវត្តិកម្ម​អាច​មានកំហុស ឬ​ភាពមិនត្រឹមត្រូវ។ ឯកសារ​ដើម​នៅ​ក្នុង​ភាសា​ដើម​គួរត្រូវបាន​គិត​ជា​ប្រភព​សុពលភាព។ សម្រាប់​ព័ត៌មាន​សំខាន់ៗ ការបកប្រែ​ដោយ​មនុស្ស​អ្នកជំនាញ​ត្រូវបាន​ផ្ដល់អនុសាសន៍។ យើង​មិនទទួលខុសត្រូវ​ចំពោះ​ការយល់ច្រឡំ ឬ​ការបកស្រាយ​ខុសៗ ដែលបណ្តាលមកពីការប្រើប្រាស់​បកប្រែ​នេះ​ទេ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/8-Reinforcement/README.md b/translations/km/8-Reinforcement/README.md new file mode 100644 index 000000000..0371452f6 --- /dev/null +++ b/translations/km/8-Reinforcement/README.md @@ -0,0 +1,60 @@ +# ការណែនាំអំពីការរៀនបង្រៀនវិញ + +ការរៀនបង្រៀនវិញ (Reinforcement learning, RL) ត្រូវបានគេឃើញថា ជាម៉ូដែលមួយមូលដ្ឋាននៃការសិក្សា機械មួយចំនួន ហើយវាស្ថិតនៅជាប់ជាមួយការរៀនគ្រប់គ្រង (supervised learning) និងការរៀនអតិផរណា (unsupervised learning)។ RL គឺផ្តោតលើការសម្រេចចិត្ត៖ ផ្តល់នូវការសម្រេចចិត្តត្រឹមត្រូវ ឬយ៉ាងហោចណាស់ រៀនពីការសម្រេចចិត្តទាំងនោះ។ + +ស្រមៃថាអ្នកមានបរិយាកាសសម្រួលមួយ ដូចជា​ទីផ្សារហ៊ុន។ តើតើមានអ្វីកើតឡើងបើអ្នកកំណត់ច្បាប់ណាមួយ? តើវាមានផលវិបាកវិជ្ជមាន ឬអវិជ្ជមាន? ប្រសិនបើមានអ្វីមិនល្អកើតឡើង អ្នកត្រូវប្រើប្រាស់ _ការចាត់វិជ្ជមានអវិជ្ជមាន_ នោះ រៀនពីវា និងផ្លាស់ប្តូរតាមស្ថានភាព។ ប្រសិនបើវាមានលទ្ធផលវិជ្ជមាន អ្នកត្រូវតែសាងសង់លើ _ការចាត់វិជ្ជមានវិជ្ជមាន_ នោះ។ + +![peter and the wolf](../../../translated_images/km/peter.779730f9ba3a8a8d.webp) + +> ពីតែរ និងមិត្តភក្តិរបស់គាត់ត្រូវរត់រួចពីខ្យងឃ្លាន! រូបភាពដោយ [Jen Looper](https://twitter.com/jenlooper) + +## ប្រធានបទតំបន់៖ ពីតែរ និងខ្យង (រុស្ស៊ី) + +[Peter and the Wolf](https://en.wikipedia.org/wiki/Peter_and_the_Wolf) គឺជាការប្រលោមលោកតន្ត្រីដែលបានសរសេរដោយអ្នកនិពន្ធតន្ត្រីរុស្ស៊ី [Sergei Prokofiev](https://en.wikipedia.org/wiki/Sergei_Prokofiev)។ វាជា​រឿងដែលពាក់ព័ន្ធនឹងពីតែរ​ចម្លាក់ម្នាក់ ដែលវាយតំ់ដង់ចេញពីផ្ទះដើម្បីចុចខ្យងនៅក្នុងព្រៃចំការ។ នៅក្នុងផ្នែកនេះ យើងនឹងបង្រៀន​អាល់ហ្គោរីធម៌​សិក្សា機械 ដែលនឹងជួយពីតែរ៖ + +- **ស្វែងរក** ទីតាំងជុំវិញនិងបង្កើតផែនទីផ្លូវវាលល្អបំផុត +- **រៀន** របៀបប្រើស្គេតប៊ត់ និងតម្រូវតុល្យភាពលើវា ដើម្បីអាចធ្វើចលនាបានរហ័សជាងមុន។ + +[![Peter and the Wolf](https://img.youtube.com/vi/Fmi5zHg4QSM/0.jpg)](https://www.youtube.com/watch?v=Fmi5zHg4QSM) + +> 🎥 ចុចរូបភាពខាងលើដើម្បីស្តាប់ពី Peter and the Wolf ដោយ Prokofiev + +## ការរៀនបង្រៀនវិញ + +នៅក្នុងផ្នែកមុនៗ អ្នកបានឃើញឧទាហរណ៍ពីបញ្ហាសិក្សា機械ពីរប្រភេទ៖ + +- **គ្រប់គ្រង (Supervised)** ដែលយើងមានឌាតាសែតដែលផ្ដល់ដំណោះស្រាយសំណុំដែលយើងចង់​ដោះស្រាយ។ [ការ​ចែងចម្រាស់​ប្រភេទ](../4-Classification/README.md) និង [ការ​ប៉ាន់ប្រមាណ](../2-Regression/README.md) គឺជាការងារ​សិក្សាគ្រប់គ្រង។ +- **អតិផរណា (Unsupervised)** ដែលយើងមិនមានទិន្នន័យបង្ហាញមុខទេ។ ឧទាហរណ៍ដ៏សំខាន់របស់ការរៀនអតិផរណាគឺ [ការច្នៃ](../5-Clustering/README.md)។ + +នៅក្នុងផ្នែកនេះ យើងនឹងណែនាំអ្នកអំពីបញ្ហារបៀបសិក្សា​ថ្មីមួយ ដែលមិនត្រូវការទិន្នន័យបង្ហាញមុខ។ មានបញ្ហាច្រើនប្រភេទដូចជា៖ + +- **[ការរៀនបង្រៀនបែកកន្លះ (Semi-supervised learning)](https://wikipedia.org/wiki/Semi-supervised_learning)** ដែលយើងមានទិន្នន័យមិនបានបង្ហាញមុខច្រើន ដែលអាចប្រើសម្រាប់បណ្តុះម៉ូដែលជាមុន។ +- **[ការរៀនបង្រៀនវិញ (Reinforcement learning)](https://wikipedia.org/wiki/Reinforcement_learning)** ដែលភ្នាក់ងារសិក្សារបៀបធ្វើឱ្យបានល្អតាមរយៈការធ្វើតេស្តនៅក្នុងបរិយាកាសសម្រួលមួយ។ + +### ឧទាហរណ៍ - លេងហ្គេមកុំព្យូទ័រ + +ស giảថាអ្នកចង់បង្រៀនកុំព្យូទ័រឱ្យលេងហ្គេមមួយ ដូចជា ឡូកហ្គេមខ្មែរ, ឬ [Super Mario](https://wikipedia.org/wiki/Super_Mario)។ ក្នុងការឲ្យកុំព្យូទ័រលេងហ្គេមមួយ អ្នកត្រូវអោយវាព្យាករណ៍ថាដំណកដើម្បីធ្វើនៅក្នុងស្ថានភាពហ្គេមមួយម្ដងៗ។ ខណៈពេលវាព្យាយាមទៅដូចជាបញ្ហាចែងចម្រាស់ ប្រសិនបើយើងមិនមានឌាតាសែតជាមួយស្ថានភាព និងសកម្មភាពផ្តល់ទេ។ ខណៈពេលយើង​ទំនងមានទិន្នន័យពីការប្រកួតហ្គេមឡាចថ្មីឬក៏វីដេអួបញ្ញើ Super Mario ក៏ប៉ុន្តែ ទិន្នន័យនោះខណៈពេលមិនគ្របដណ្តប់បានគ្រប់ស្ថានភាព។ + +ផ្ទុយទៅវិញក្នុងករណីនេះ **ការរៀនបង្រៀនវិញ** (RL) អាស្រ័យលើគំនិតថា *ធ្វើឱ្យកុំព្យូទ័រលេង* ជាញឹកញាប់ និងមើលលទ្ធផល។ ដូច្នេះ ដើម្បីអនុវត្តការរៀនបង្រៀនវិញ យើងត្រូវការចាំបាច់ពីររបស់៖ + +- **បរិយាកាសមួយ** និង **ម៉ូដែលសម្រួលមួយ** ដែលអនុញ្ញាតឱ្យយើងលេងហ្គេមបានជាច្រើនដង។ ម៉ូដែលនេះនឹងកំណត់ច្បាប់ហ្គេមទាំងអស់ ព្រមទាំងស្ថានភាព និងសកម្មភាពដែលអាចកើតមាន។ + +- **មុខងារប្រាក់រង្វាន់**, ដែលនឹងប្រាប់យើងថាយើងបានធ្វើបានល្អប៉ុនណាក្នុងមួយចលនា ឬមួយហ្គេម។ + +ភាពខុសគ្នាចម្បងរវាងប្រភេទសិក្សា機械ផ្សេងទៀត និង RL គឺថា នៅក្នុង RL យើងមិនស្គាល់ទេថាយើងឈ្នះ ឬ ខាតរហូតដល់ចប់ហ្គេម។ ដូចនេះ យើងមិនអាចពិចារណាថាចលនាមួយឯងមានលក្ខណៈល្អ ឬ មិនល្អទេ - យើងទទួលបានរង្វាន់នៅចុងហ្គេមតែប៉ុណ្ណោះ។ គោលបំណងរបស់យើងគឺបង្កើតអាល់ហ្គោរីធម៌ដែលអាចបណ្តុះម៉ូដែលជ្រាបនៅក្នុងលក្ខខណ្ឌមិនប្រាកដ។ យើងនឹងរៀនអំពី​អាល់ហ្គោរីធម៌ RL មួយហៅថា **Q-learning**។ + +## មេរៀន + +1. [ការណែនាំអំពីការរៀនបង្រៀនវិញ និង Q-Learning](1-QLearning/README.md) +2. [ការប្រើប្រាស់បរិយាកាសម៉ូដែលសម្រួល Gym](2-Gym/README.md) + +## ការ​រិទិ្ធ + +"Introduction to Reinforcement Learning" ត្រូវបានសរសេរដោយ ♥️ ពី [Dmitry Soshnikov](http://soshnikov.com) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខំប្រឹងប្រែងដើម្បីបានភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិនេះអាចមានកំហុស ឬមិនត្រឹមត្រូវបាន។ ឯកសារដើមក្នុងភាសាតំណើររបស់ខ្លួនគួរត្រូវបានទទួលស្គាល់ថាជាឧទាហរណ៍ដ៏មានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការ​បកប្រែ​ដោយ​អ្នកជំនាញ​មនុស្ស​ត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/9-Real-World/1-Applications/README.md b/translations/km/9-Real-World/1-Applications/README.md new file mode 100644 index 000000000..fc60510e0 --- /dev/null +++ b/translations/km/9-Real-World/1-Applications/README.md @@ -0,0 +1,152 @@ +# ការបញ្ចប់៖ ការរៀនម៉ាស៊ីននៅក្នុងពិភពយ៉ាងពិតប្រាកដ + +![សង្ខេបទាំងមូលអំពីការរៀនម៉ាស៊ីននៅក្នុងពិភពយ៉ាងពិតប្រាកដក្នុងស្គេតណូត](../../../../translated_images/km/ml-realworld.26ee274671615577.webp) +> ស្គេតណូតដោយ [Tomomi Imura](https://www.twitter.com/girlie_mac) + +ក្នុងកម្មវិធីសិក្សានេះ អ្នកបានរៀនរបៀបជាច្រើនក្នុងការរៀបចំទិន្នន័យសម្រាប់ហ្វឹកហាត់ ហើយបង្កើតម៉ូដែលការរៀនម៉ាស៊ីន។ អ្នកបានបង្កើតម៉ូដែលនៃការត្រួតពិនិត្យស្រដៀងបែបបុរាណ សារ៉ែនជCluster, ការបែងចែក, ការពិចារណាភាសាប្រពៃណី និងម៉ូដែលស៊េរីពេលវេលា មួយរយៈ។ សូមអបអរសាទរ! ឥឡូវនេះ អ្នកអាចកំពុងសួរថា ទាំងអស់នេះមានប្រយោជន៍យ៉ាងដូចម្តេច... កើតហេតុអ្វីជាការប្រើប្រាស់ពិតប្រាកដសម្រាប់ម៉ូដែលទាំងនេះ? + +ក្នុងពេលដែលភាពចាប់អារម្មណ៍ជាច្រើនក្នុងឧស្សាហកម្មត្រូវបានទាក់ទាញដោយ AI ដែលភាគច្រើនប្រើប្រាស់ការរៀនជ្រៅ ប៉ុន្តែនៅតែក៏មានការប្រើប្រាស់មានតម្លៃសម្រាប់ម៉ូដែលការរៀនម៉ាស៊ីនបែបបុរាណ។ អ្នកអាចត្រូវបានប្រើប្រាស់ករណីការប្រើប្រាស់មួយចំនួននៅថ្ងៃនេះផងដែរ! នៅក្នុងមេរៀននេះ អ្នកនឹងស្វែងយល់ពីរបៀបដែលឧស្សាហកម្មប្រាំបាញ់និងវិស័យជំនាញផ្សេងៗប្រើម៉ូដែលទាំងនេះដើម្បីធ្វើឱ្យកម្មវិធីរបស់ពួកគេចេញលទ្ធផលល្អប្រសើរ ប្រកបដោយទុកចិត្ត ច្បាស់លាស់ ហើយមានតម្លៃសម្រាប់អ្នកប្រើប្រាស់។ + +## [វីវរប្រលងមុនវីដេអូ](https://ff-quizzes.netlify.app/en/ml/) + +## 💰 ហិរញ្ញវត្ថុ + +វិស័យហិរញ្ញវត្ថុផ្តល់ឱកាសជាច្រើនសម្រាប់ការរៀនម៉ាស៊ីន។ បញ្ហាជាច្រើនក្នុងតំបន់នេះអាចត្រូវបានគំរូ និងដោះស្រាយដោយប្រើ ML។ + +### ការរកឃើញការបោសបង់កាតឥណទាន + +យើងបានរៀនអំពី [ការបែងចែកក្រុម k-means](../../5-Clustering/2-K-Means/README.md) មុននេះក្នុងវគ្គបង្រៀន ប៉ុន្តែរបៀបណាដែលវាអាចត្រូវបានប្រើដើម្បីដោះស្រាយបញ្ហាអំពីការបោកប្រាស់កាតឥណទាន? + +ការបែងចែកក្រុម k-means មកមានប្រយោជន៍ក្នុងបច្ចេកទេសរកឃើញការបោកប្រាស់កាតឥណទានមួយដែលហៅថា **ការរកឃើញភាគចេញក្រៅសធម្មតា (outlier detection)**។ ភាគចេញក្រៅ ឬការប្រែប្រួលក្នុងការបង្កើតទិន្នន័យអាចប្រាប់យើងថា តើកាតឥណទានកំពុងប្រើតាមរបៀបធម្មតា ឬមានអ្វីមួយមិនធម្មតាកំពុងកើតឡើង។ ដូចបានបង្ហាញក្នុងអត្ថបទភ្ជាប់ខាងក្រោម អ្នកអាចចាត់តម្រៀបទិន្នន័យកាតឥណទានដោយប្រើកាលដ្ឋានបែងចែកក្រុម k-means ហើយតែងតាមប្រតិបត្ដិការតាមក្រុមមួយផ្អែកលើភាពជាភាគចេញក្រៅរបស់វា។ បន្ទាប់មក អ្នកអាចវាយតម្លៃក្រុមដែលមានហានិភ័យបំផុតសម្រាប់ប្រតិបត្ដិការល្បែង versus ដែលត្រឹមត្រូវបាន។ +[យោង](https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.680.1195&rep=rep1&type=pdf) + +### គ្រប់គ្រងទ្រព្យសម្បត្តិ + +ក្នុងការគ្រប់គ្រងទ្រព្យសម្បត្តិ វិទ្យុបុគ្គលឬក្រុមហ៊ុនមួយទទួលខុសត្រូវក្នុងការវិនិយោគជំនួសអតិថិជនរបស់ពួកគេ។ ភារកិច្ចរបស់ពួកគឺផ្ដល់ការរឹតបន្តឹងនិងបង្កើតទ្រព្យសម្បត្តិអនាគត ដូច្នេះវាម្រើបត្រូវជ្រើសរើសវិនិយោគដែលមានលទ្ធផលល្អ។ + +វិធីមួយក្នុងការវាយតម្លៃភាពអនុវត្តន៍វិនិយោគជាក់លាក់គឺតាមរយៈវិធីសាស្ត្រគណិតវិទ្យាស្ថិតិ [ការ៉េស្ស៊ីយ៉ុងបន្ទាត់](../../2-Regression/1-Tools/README.md) គឺជាឧបករណ៍មានតម្លៃសម្រាប់ការយល់ដឹងមើលថាហិរញ្ញវត្ថុមួយអនុវត្តទៅប្រៀបធៀបនឹងសំរុងការណាមួយ។ យើងក៏អាចបញ្ជាក់ថា តើលទ្ធផលនៃការត្រឡប់តាមស្ថិតិមានសំខាន់ ឬប៉ុន្មានទៅលើវិនិយោគរបស់អតិថិជន។ អ្នកអាចបន្តពង្រីកការវិភាគរបស់អ្នកដោយប្រើការត្រឡប់ច្រើន ដែលមានហានិភ័យបន្ថែមអាចគិតចូលក្នុងគណនា។ សម្រាប់ឧទាហរណ៍ពីរបៀបដែលវានឹងដើរដល់មូលទុនជាក់លាក់មួយ សូមមើលសៀវភៅខាងក្រោមអំពីការវាយតម្លៃសមត្ថភាពមូលទុនដោយប្រើការត្រឡប់។ +[យោង](http://www.brightwoodventures.com/evaluating-fund-performance-using-regression/) + +## 🎓 ការអប់រំ + +វិស័យការអប់រំក៏ជាតំបន់ចំណាប់អារម្មណ៍មួយដែលអាចប្រើប្រាស់ ML។ មានបញ្ហាវិសេសដែលត្រូវបានដោះស្រាយដូចជាការស្គាល់ការតស៊ូមតិលើសម្រង់ឬអត្ថបទ ឬការគ្រប់គ្រងការសំអាតចម្រូងចម្រាស់ អ្នកមិនបានបំណងឬមិនអាក្រក់។ + +### ការប៉ាន់ស្មានអាកប្បកិរិយានិស្សិត + +[Coursera](https://coursera.com) អ្នកផ្គត់ផ្គង់វគ្គបណ្ដុះបណ្ដាលអនឡាញ មានប្លុកបច្ចេកទេសដ៏ល្អដែលពិភាក្សាអំពីការសម្រេចចិត្តវិស្វកម្មជាច្រើន។ នៅក្នុងករណីសិក្សានេះ ពួកគេបានគូសបន្ទាត់ត្រឡប់សម្រាប់ព្យាយាមស្វែងរកភាពទាក់ទង בין លទ្ធផល NPS ទាប និងការរក្សាថ្នាក់ ឬការដកចេញពីវគ្គសិក្សា។ +[យោង](https://medium.com/coursera-engineering/controlled-regression-quantifying-the-impact-of-course-quality-on-learner-retention-31f956bd592a) + +### ការជៀសវាងការបំភាន់បុគ្គលិកលក្ខណៈ + +[Grammarly](https://grammarly.com), ជាជំនួយការសរសេរដែលពិនិត្យកំហុសអក្សរ និងវេយ្យាករណ៍ ប្រើប្រាស់ប្រព័ន្ធ [ពិចារណាភាសា](../../6-NLP/README.md) មួយចំនួនដ៏ស្មុគស្មាញនៅក្នុងផលិតផលរបស់ខ្លួន។ ពួកគេសម្រង់ករណីសិក្សាអំពីរបៀបពួកគេដោះស្រាយការបំពានលើជាតិស្រីប្រុសក្នុងការរៀនម៉ាស៊ីន ដែលអ្នកបានរៀនក្នុងមេរៀន [ស្តីពីភាពយុត្តិធម៌មូលដ្ឋាន](../../1-Introduction/3-fairness/README.md)។ +[យោង](https://www.grammarly.com/blog/engineering/mitigating-gender-bias-in-autocorrect/) + +## 👜 លក់រាយ + +វិស័យលក់រាយអាចទទួលបានអត្ថប្រយោជន៍យ៉ាងច្រើនពីការប្រើប្រាស់ ML ពីការបង្កើតដំណើរការអតិថិជនល្អប្រសើរឡើង ដល់ការស្តុកឃ្លាំងយ៉ាងមានប្រសិទ្ធភាព។ + +### ការប្តូរតាមបំណងដំណើរអតិថិជន + +នៅក្រុមហ៊ុន Wayfair ដែលជាក្រុមហ៊ុនលក់ផលិតផលផ្ទះដូចជាគ្រឿងម៉ូដ ត្រូវការជួយអតិថិជនរកផលិតផលសមស្របសម្រាប់រសជាតិ និងតម្រូវការរបស់ពួកគេគឺមានសារៈសំខាន់។ ក្នុងអត្ថបទនេះ វិស្វករពីក្រុមហ៊ុនបានពិពណ៌នាថាអ្នកប្រើប្រាស់ ML និង NLP ដើម្បី "បង្ហាញលទ្ធផលត្រឹមត្រូវសម្រាប់អតិថិជន"។ ជាពិសេសម៉ាស៊ីនចេតនា Query Intent បានត្រូវបង្កើតដើម្បីប្រើការដកស្រង់អង្គភាព, ការហ្វឹកហាត់អ្នកចាត់ថ្នាក់, ការដកស្រង់ទ្រព្យសម្បត្តិ និងមតិយោបល់, និងការបញ្ចុះសញ្ញាហានិភ័យលើការវាយតម្លៃរបស់អតិថិជន។ នេះគឺជាករណីប្រើប្រាស់ក្លាស៊ីកមួយនៃវិធីសាស្រ្ត NLP នៅក្នុងការលក់រាយអនឡាញ។ +[យោង](https://www.aboutwayfair.com/tech-innovation/how-we-use-machine-learning-and-natural-language-processing-to-empower-search) + +### ការគ្រប់គ្រងស្តុកឃ្លាំង + +ក្រុមហ៊ុនច្នៃប្រឌិត និងបត់បែនដូចជា [StitchFix](https://stitchfix.com) ក្រុមហ៊ុនផ្តល់សេវាបញ្ចូនសម្លៀកបំពាក់ទៅអតិថិជន អាស្រ័យយ៉ាងខ្លាំងលើ ML សម្រាប់ការផ្តល់អនុសាសន៍ និងការគ្រប់គ្រងស្តុក។ ក្រុមទីមរចនាសត្វនិងក្រុមទីមពាណិជ្ជកម្មធ្វើការជារួមគ្នា ជាពិត៖ "មនុស្សវិទ្យាសាស្ត្រទិន្នន័យរបស់យើងបានសាកល្បងអាល់ហ្គորিদមជីណេទីក ហើយអនុវត្តវាលើសម្លៀកបំពាក់ដើម្បីទស្សនាវិជ្ជាជីវៈថា អ្វីទៅជាសម្លៀកបំពាក់ដែលមានជោគជ័យមិនទាន់មាននៅថ្ងៃនេះ។ យើងយកវាទៅឲ្យក្រុមទីមពាណិជ្ជកម្ម ហើយឥឡូវនេះពួកគេអាចប្រើវាជាឧបករណ៍មួយបាន។" +[យោង](https://www.zdnet.com/article/how-stitch-fix-uses-machine-learning-to-master-the-science-of-styling/) + +## 🏥 សុខាភិបាល + +វិស័យសុខាភិបាលអាចប្រើរបៀបរៀនម៉ាស៊ីនដើម្បីបង្កើនលទ្ធភាពស្រាវជ្រាវ និងដោះស្រាយបញ្ហាតំបន់ដូចជាការដាក់ព្យាបាលជំងឺម្ដងទៀតឬការទប់ស្កាត់ជំងឺរាតត្បាត។ + +### ការគ្រប់គ្រងការសាកល្បងគ្លីនិក + +ភាពពុលនៅក្នុងការសាកល្បងគ្លីនិកគឺជាបញ្ហាសំខាន់សម្រាប់អ្នកផលិតថ្នាំ។ តើភាពពុលប៉ុន្មានដែលអាចទ្រាំបាន? នៅក្នុងការសិក្សានេះ ការវិភាគវិធីសាស្ត្រសាកល្បងគ្លីនិកផ្សេងៗនាំឱ្យមានការកែច្នៃវិធីសាស្ត្រថ្មីសម្រាប់ព្យាយាមទំនាក់ផ្នត់លទ្ធផលសាកល្បងគ្លីនិក។ ជាពិសេស ពួកគេបានប្រើដើមព្រៃចៃដន្យ ដើម្បីបង្កើត [អ្នកចាត់ថ្នាក់](../../4-Classification/README.md) ដែលអាចបំបែកចំណាត់ថ្នាក់ថ្នាំដោយក្រុម។ +[យោង](https://www.sciencedirect.com/science/article/pii/S2451945616302914) + +### ការគ្រប់គ្រងការចូលមន្ទីរពេទ្យម្ដងទៀត + +ការថែទាំមន្ទីរពេទ្យមានតម្លៃខ្ពស់ ជាពិសេសពេលអ្នកជំងឺត្រូវបញ្ចូលមន្ទីរពេទ្យម្តងទៀត។ អត្ថបទនេះពិភាក្សា​អំពី​ក្រុមហ៊ុន​មួយដែលប្រើ ML ក្នុងការព្យាករណ៍ពីឱកាសចូលមន្ទីរពេទ្យម្តងទៀតដោយប្រើ[អាល់ហ្គរីធម៍ clustering](../../5-Clustering/README.md)។ ក្រុមនេះជួយអ្នកវិភាគ "រកឃើញក្រុមនៃការចូលមន្ទីរពេទ្យម្តងទៀតដែលអាចមានមូលហេតុរួម"។ +[យោង](https://healthmanagement.org/c/healthmanagement/issuearticle/hospital-readmissions-and-machine-learning) + +### ការគ្រប់គ្រងជំងឺ + +ការរីករាលដាលនៃជំងឺកូវីដថ្មីៗបានបង្ហាញពីរបៀបដែលការរៀនម៉ាស៊ីនអាចជួយទប់ស្កាត់ការរីករាលដាលជំងឺ។ នៅក្នុងអត្ថបទនេះ អ្នកនឹងមើលឃើញការប្រើប្រាស់ ARIMA, វង់ឡូកីស្ទិច, ការត្រឡប់បន្ទាត់ និង SARIMA។ "ការងារនេះជាការព្យាយាមគណនាអត្រារីកលូតលាស់នៃវីរុសនេះ ហើយធ្វើការព្យាករណ៍ពីការស្លាប់ ការស្ដារឡើងវិញ និងករណីដែលបានបញ្ជាក់ ដើម្បីជួយយើងរៀបចំបានល្អប្រសើរ និងរស់រានមានជីវិត។" +[យោង](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7979218/) + +## 🌲 បរិស្ថាន និងបច្ចេកវិទ្យាបៃតង + +ធម្មជាតិនិងបរិស្ថានមានប្រព័ន្ធអារម្មណ៍យ៉ាងហោចណាស់ដែលការបង្រួមរវាងសត្វនិងធម្មជាតិនាំឲ្យកើតមានភាពសំខាន់។ វាសំខាន់ក្នុងការវាស់វែងប្រព័ន្ធទាំងនេះយ៉ាងត្រឹមត្រូវ ហើយធ្វើសកម្មភាពតាមតម្រូវការបើមានអ្វីមួយកើតឡើងដូចជាអគ្គិភ័យព្រៃឬការធ្លាក់ចុះនៃប្រជាជនសត្វ។ + +### ការគ្រប់គ្រងព្រៃឈើ + +អ្នកបានរៀនពី [ការរៀនអនុគមន៍បន្សំ](../../8-Reinforcement/README.md) នៅមេរៀនមុន។ វា​អាចមានប្រយោជន៍ខ្លាំងពេលព្យាករណ៍លំនាំធម្មជាតិ។ ជាពិសេស វាអាចប្រើសម្រាប់តាមដានបញ្ហាបរិស្ថានដូចជាអគ្គិភ័យព្រៃឈើ និងការរាលដាលរបស់សត្វចម្លែក។ នៅប្រទេសកាណាដា ក្រុមអ្នកស្រាវជ្រាវមួយបានប្រើការរៀនអនុគមន៍បន្សំ ដើម្បីបង្កើតម៉ូដែលនៃបញ្ហាអគ្គិភ័យព្រៃឈើពីរូបភាពផ្កាយសsputnik។ ដោយប្រើ "ដំណើរការរីករាលដាលក្នុងអាកាសធាតុ (SSP)", ពួកគេបានគិតឲ្យអគ្គិភ័យព្រៃស្មើនឹង "ភ្នាក់ងារនៅក្នុងកោសិកាមួយណាមួយក្នុងផែនដី"។ "ដំណើរការដែលភ្លើងអាចធ្វើពីទីតាំងណាមួយ វា រួមមាន ការរីករាលដាលទៅខាងជើង, ត្បូង, ក្រោមទិសខាងកើត ឬខាងលិច ឬមិនរីករាលដាលឡើយ។ + +វិធីសាស្ត្រនេះផ្ទុយពីការរៀនអនុគមន៍បន្សំធម្មតា ព្រោះដំណើរការ Markov Decision Process (MDP) ដែលផ្តល់អនុគមន៍ការរីករាលដាលភ្លើងនៅភ្លាមៗគឺជាអនុគមន៍ដែលស្គាល់។" អានបន្ថែមអំពីអាល់ហ្គរីធម៍បែបបុរាណដែលក្រុមនេះបានប្រើនៅតំណភ្ជាប់ខាងក្រោម។ +[យោង](https://www.frontiersin.org/articles/10.3389/fict.2018.00006/full) + +### ការកំណត់ចលនារបស់សត្វ + +នៅពេលការរៀនជ្រៅបានបង្កើតបម្លែងនៅក្នុងការតាមដានចលនារបស់សត្វតាមវិស្វកម្មគ្រប់គ្រាន់ (អ្នកអាចបង្កើត[ឧបករណ៍តាមដានខ្លាឃ្មុំកកស្មៅ](https://docs.microsoft.com/learn/modules/build-ml-model-with-azure-stream-analytics/?WT.mc_id=academic-77952-leestott) ដោយខ្លួនឯងនៅទីនេះ) ក៏ប៉ុន្តែ ML បែបបុរាណនៅតែមានការរកដំណើរនារូបការងារនេះ។ + +ឧបករណ៍សម្រង់ចលនាភាពសត្វកសិកម្ម និង IoT ប្រើប្រភេទនៃការពិចារណារូបភាពនេះ ប៉ុន្តែបច្ចេកទេស ML មានមូលដ្ឋានក៏មានប្រយោជន៍សម្រាប់ការដំណើរការទិន្នន័យជាប់នៅមុន។ ឧទាហរណ៍ក្នុងអត្ថបទនេះ អង្គភាពនៃការត្រួតពិនិត្យទ្រង់ទ្រាយទាំងឡាយត្រូវបានត្រួតពិនិត្យនិងវិភាគតាមរយៈអាល់ហ្គរីធម៍ចាត់ថ្នាក់ផ្សេងៗ។ អ្នកអាចស្គាល់​ការគូសបក្សសនិទាន ROC នៅទំព័រ 335។ +[យោង](https://druckhaus-hofmann.de/gallery/31-wj-feb-2020.pdf) + +### ⚡️ ការគ្រប់គ្រងថាមពល + +នៅក្នុងមេរៀនរបស់យើងពី [ការព្យាករណ៍ស៊េរីពេលវេលា](../../7-TimeSeries/README.md) យើងបានយកឧទាហរណ៍គិតពីម៉ូដែលទីតាំងចតយានយន្តឆ្លាត ដើម្បីចំណូលសម្រាប់ទីរួមមួយផ្អែកលើការយល់ដឹងពីផ្គត់ផ្គង់និងទាមទារ។ អត្ថបទនេះពិភាក្សារយៈពេលវែងពីរបៀបដែលការបែងចែកក្រុម, ការត្រឡប់, និងស៊េរីពេលវេលាបានរួមបញ្ចូលគ្នា ដើម្បីជួយព្យាករណ៍ការប្រើថាមពលអនាគតនៅអៀរឡង់ ដោយសារតែការវាស់តម្រុយឆ្លាត។ +[យោង](https://www-cdn.knime.com/sites/default/files/inline-images/knime_bigdata_energy_timeseries_whitepaper.pdf) + +## 💼 ធានារ៉ាប់រស់ + +វិស័យធានារ៉ាប់រស់គឺជាវិស័យមួយទៀតដែលប្រើ ML ក្នុងការបង្កើត និងបង្កើនប្រសិទ្ធភាពម៉ូដែលហិរញ្ញវត្ថុ និងម៉ូដែលធានារ៉ាប់រស់។ + +### ការគ្រប់គ្រងអត្រារអ៊ូរ៉ា + +MetLife ដែលជាអ្នកផ្គត់ផ្គង់ធានារ៉ាប់រស់មួយបានបង្ហាញរបៀបពិចារណា និងកាត់បន្ថយអត្រារអ៊ូរ៉ារនៅក្នុងម៉ូដែលហិរញ្ញវត្ថុរបស់ពួកគេ។ ក្នុងអត្ថបទនេះ អ្នកនិងឃើញការបង្ហាញការបែងចែកពីរប្រភេទ និងការបែងចែកតាមលំដាប់តូចធំ។ អ្នកនឹងជ្រាបពីការបង្ហាញព្យាករណ៍ផងដែរ។ +[យោង](https://investments.metlife.com/content/dam/metlifecom/us/investments/insights/research-topics/macro-strategy/pdf/MetLifeInvestmentManagement_MachineLearnedRanking_070920.pdf) + +## 🎨 សិល្បៈ, វប្បធម៌ និងអក្សរសាស្ត្រ + +ក្នុងសិល្បៈ ឧទាហរណ៍ក្នុងសារព័ត៌មាន មានបញ្ហាច្រើនដែលគួរឲ្យមានចំណាប់អារម្មណ៍។ ការរកឃើញព័ត៌មានក្លែងក្លាយគឺជាបញ្ហាធំ ដែលបានបង្ហាញថាស្ថានភាពនេះមានឥទ្ធិពលលើមតិរបស់មនុស្ស និងធ្វើឱ្យប្រជាធិបតេយ្យជ្រុលរើងបាន។ សារមន្ទីរពិសេសៗក៏អាចទទួលផលបត់ពីការប្រើប្រាស់ ML ចាប់ពីការស្វែងរកចំណុចភ្ជាប់រវាងឥស្សរិយយសទៅដល់ការធ្វើផែនការប្រាក់វិភាគ។ + +### ការបោះពុម្ពព័ត៌មានក្លែងក្លាយ + +ការរកឃើញព័ត៌មានក្លែងក្លាយបានក្លាយជាការលេងល្បែងកណ្តេញក្នុងការផ្សាយពាណិជ្ជកម្មនៅសព្វថ្ងៃ។ អត្ថបទនេះ អ្នកស្រាវជ្រាវបានណែនាំថា ប្រព័ន្ទដែលបញ្ចូលវិធីសាស្ត្ររៀនម៉ាស៊ីនជាច្រើនដែលយើងបានសិក្សា អាចត្រូវបានសាកល្បង ហើយម៉ូដែលល្អបំផុតត្រូវបានដាក់ឲ្យដំណើរការ៖ "ប្រព័ន្ធនេះផ្អែកលើការចាប់យកលក្ខណៈពិសេសពីទិន្នន័យដោយប្រព័ន្ធពិចារណាភាសាប្រពៃណី និងលក្ខណៈពិសេសទាំងនោះត្រូវបានប្រើសម្រាប់ហ្វឹកហាត់ម៉ាស៊ីនចាត់ថ្នាក់ដូចជា Naive Bayes, Support Vector Machine (SVM), Random Forest (RF), Stochastic Gradient Descent (SGD), និង Logistic Regression (LR)।" +[យោង](https://www.irjet.net/archives/V7/i6/IRJET-V7I6688.pdf) + +អត្ថបទនេះបង្ហាញពីរបៀបរួមបញ្ចូលដែនការរៀនម៉ាស៊ីនផ្សេងៗគ្នាដើម្បីបង្កើតលទ្ធផលច្នៃប្រឌិត ដែលអាចជួយបញ្ឈប់ការរាលដាលព័ត៌មានក្លែងក្លាយ និងបង្កើតនូវគ្រោះថ្នាក់ចាស់ៗ; ក្នុងករណីនេះ មូលហេតុគឺការរាលដាលនូវអាថ៌កំបាំងអំពីការព្យាបាល COVID ដែលបណ្តាលឲ្យមានអំពើហិង្សាមនុស្សជាអក្សរ។ + +### ការបង្ហាញ ML នៅសារមន្ទីរ + +សារមន្ទីរនៅកំពូលនៃអភិវឌ្ឍ AI ដែលការធ្វើបញ្ជី និងជាតុលេខផ្តល់សមត្ថភាពក្នុងការស្វែងរកចំណុចភ្ជាប់រវាងឥស្សរិយយសកាន់តែងាយស្រួលជាងមុនទៅនឹងអភិវឌ្ឍន៍បច្ចេកវិទ្យា។ គម្រោងដូចជា [In Codice Ratio](https://www.sciencedirect.com/science/article/abs/pii/S0306457321001035#:~:text=1.,studies%20over%20large%20historical%20sources.) កំពុងជួយដោះសោរការស៊ើបអង្កេតពីឯកសារសារមន្ទីរ មិនអាចចូលដំណើរការបាន ដូចជាឯកសារសារមន្ទីរវាទិកង់។ ប៉ុន្តែផ្នែកអាជីវកម្មសារមន្ទីរនៅតែទទួលបានអត្ថប្រយោជន៍ពីម៉ូដែល ML។ + +ឧទាហរណ៍ ស្ថាប័នសិល្បៈ Chicago បានបង្កើតម៉ូដែលដើម្បីព្យាករណ៍ថា តើមហាជនមានចំណាប់អារម្មណ៍ហើយពេលណាដែលពួកគេចូលរួមក្នុងពិព័រណ៍។ គោលបំណងគឺបង្កើតបទពិសោធន៍អតិថិជនឯកជននិងមានប្រសិទ្ធភាពរៀងរាល់ពេលអ្នកប្រើប្រាស់ធ្វើដំណើរទៅសារមន្ទីរ។ "នៅក្នុងរយៈពេលហិរញ្ញវត្ថុឆ្នាំ 2017 ម៉ូដែលនេះបានព្យាករណ៍ការចូលរួមនិងការចូលទស្សនាក្នុងកម្រិតត្រឹមត្រូវក្នុង 1 ភាគរយ និយាយដោយ Andrew Simnick, សេន្យ័រនាយកដ្ឋានក្រុមប្រឹក្សា នៅស្ថាប័នសិល្បៈ។" +[យោង](https://www.chicagobusiness.com/article/20180518/ISSUE01/180519840/art-institute-of-chicago-uses-data-to-make-exhibit-choices) + +## 🏷 ទីផ្សារ + +### ការបែងចែកអតិថិជន + +យុទ្ធសាស្ត្រទីផ្សារដែលមានប្រសិទ្ធភាពបំផុត គឺផ្តោតទៅលើអតិថិជនម្ខាងៗ ដោយផ្អែកលើការបែងចែកក្រុមផ្សេងៗគ្នា។ នៅក្នុងអត្ថបទនេះ ការប្រើប្រាស់អាល់ហ្គរីធម៍ Clustering ត្រូវបានពិភាក្សាដើម្បីគាំទ្រយុទ្ធសាស្ត្រទីផ្សារបែងចែករបស់ក្រុមហ៊ុន។ ការបែងចែកទីផ្សារដូចនេះជួយក្រុមហ៊ុនក្នុងការកែលម្អការទទួលស្គាល់ម៉ាក ឈានដល់អតិថិជនច្រើន និងធ្វើប្រាក់ច្រើនជាងមុន។ +[យោង](https://ai.inqline.com/machine-learning-for-marketing-customer-segmentation/) + +## 🚀 챌린지(បច្ចួប) + +សូមកំណត់វិស័យផ្សេងទៀតមួយដែលទទួលបានអត្ថប្រយោជន៍ពីបច្ចេកទេសមួយចំនួនដែលអ្នកបានរៀនក្នុងកម្មវិធីសិក្សានេះ ហើយស្វែងរកពីរបៀបដែលវាប្រើ ML។ +## [ប្រកួតប្រជែងក្រោយមេរៀន](https://ff-quizzes.netlify.app/en/ml/) + +## ពិនិត្យឡើងវិញ & សិក្សាឯករាជ្យ + +ក្រុមវិទ្យាសាស្ត្រទិន្នន័យ Wayfair មានវីដេអូច្រើនដែលគួរឱ្យចាប់អារម្មណ៍អំពីរបៀបដែលពួកគេស្តារខ្នាតប្រើ ML នៅក្រុមហ៊ុនរបស់ពួកគេ។ វាមានតំលៃក្នុងការមើល [សូមមើល](https://www.youtube.com/channel/UCe2PjkQXqOuwkW1gw6Ameuw/videos)! + +## ការបញ្ជាក់ + +[ការ​ស្វែងរក ML](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសម្រេចភាពត្រឹមត្រូវ សូមយល់ព្រមថាការបកប្រែដោយស្វ័យម៉ាស៊ីនអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ អ្នកគួរត្រូវយកឯកសារជនជាតិដើមជា ប្រភពត្រឹមត្រូវផ្លូវការជានិច្ច។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកអត្ថន័យខុសបានបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/9-Real-World/1-Applications/assignment.md b/translations/km/9-Real-World/1-Applications/assignment.md new file mode 100644 index 000000000..488cbb0eb --- /dev/null +++ b/translations/km/9-Real-World/1-Applications/assignment.md @@ -0,0 +1,20 @@ +# ប្រកួតស្វែងរក ML + +## សេចក្ដីណែនាំ + +នៅក្នុងមេរៀននេះ អ្នកបានរៀនអំពីករណីការប្រើប្រាស់ជាក់ស្តែងជាច្រើនដែលត្រូវបានដោះស្រាយដោយប្រើ ML សាមញ្ញ។ ខណៈពេលដែលការប្រើប្រាស់ deep learning បច្ចេកវិទ្យាថ្មីៗ និងឧបករណ៍នៅក្នុង AI ហើយការចូលប្រើបណ្តាញច្រើនជាន់បានជួយអោយដំណើរការផលិតឧបករណ៍រហ័សឡើងដើម្បីជួយនៅវិស័យទាំងនេះ ML សាមញ្ញដោយប្រើបច្ចេកទេសក្នុងវគ្គសិក្សានេះនៅតែមានតំលៃខ្ពស់។ + +ក្នុងការងារផ្ដល់នេះ សូមសន្យាថាអ្នកកំពុងចូលរួមក្នុងការប្រកួត hackathon។ ប្រើអ្វីដែលអ្នកបានរៀនក្នុងវគ្គសិក្សា ដើម្បីផ្ដល់យោបល់ដំណោះស្រាយដោយប្រើ ML សាមញ្ញសម្រាប់ដោះស្រាយបញ្ហាមួយ នៅក្នុងវិស័យដែលបានពិភាក្សានៅក្នុងមេរៀននេះ។ បង្កើតសេចក្ដីបង្ហាញដែលអ្នកពិភាក្សាអំពីរបៀបដែលអ្នកនឹងអនុវត្តគំនិតរបស់អ្នក។ ពិន្ទុបន្ថែមប្រសិនបើអ្នកអាចចងក្រងទិន្នន័យគំរូ និងកសាងម៉ូដែល ML ដើម្បីគាំទ្រគំនិតរបស់អ្នក! + +## វិសាលភាពការវាយតម្លៃ + +| លក្ខណៈពិសេស | ល្អឧត្តម | គ្រប់គ្រាន់ | ត្រូវប្រសើរឡើង | +| -------- | ------------------------------------------------------------------- | ------------------------------------------------- | ---------------------- | +| | ផ្ទាំង PowerPoint ត្រូវបានបង្ហាញ - ពិន្ទុបន្ថែមសម្រាប់ការបង្កើតម៉ូដែល | ផ្ទាំងបង្ហាញមិនច្នៃប្រឌិត និងមូលដ្ឋានត្រូវបានបង្ហាញ | ការងារមិនបញ្ចប់មែនទេ | + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំសំរាប់ភាពត្រឹមត្រូវ សូមយល់ឲ្យបានថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមនៅក្នុងភាសាម្ចាស់គួរត្រូវបានគិតថាជាដើមប្រភពដែលមានអំណាច។ សម្រាប់ព័ត៌មានសំខាន់សូមផ្តល់អាទិភាពការបកប្រែដោយមនុស្សជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសប្រព្រឹត្តដែលបណ្ដាលមកពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/9-Real-World/2-Debugging-ML-Models/README.md b/translations/km/9-Real-World/2-Debugging-ML-Models/README.md new file mode 100644 index 000000000..dec5feffe --- /dev/null +++ b/translations/km/9-Real-World/2-Debugging-ML-Models/README.md @@ -0,0 +1,174 @@ +# Postscript: ការបញ្ឆែកគំរូនៅក្នុងការរៀនម៉ាស៊ីនដោយប្រើឧបករណ៍ផ្ទាំងគ្រប់គ្រង AI ទទួលខុសត្រូវ + + +## [កម្រងសំនួរមុនវគ្គសិក្សា](https://ff-quizzes.netlify.app/en/ml/) + +## ការណែនាំ + +ការរៀនម៉ាស៊ីនមានឥទ្ឋិពលលើជីវិតប្រចាំថ្ងៃរបស់យើង។ AI កំពុងបញ្ចូលទៅក្នុងប្រព័ន្ធសំខាន់ៗបំផុតដែលប៉ះពាល់ដល់យើងជាផ្ទាល់ និងសង្គមរបស់យើង ពីសុខាភិបាល សេដ្ឋកិច្ច ការអប់រំ និងការងារ។ ឧទាហរណ៍ ប្រព័ន្ធ និងគំរូរួមចំណែកក្នុងការសម្រេចចិត្តប្រចាំថ្ងៃដូចជាការធ្វើវេជ្ជបណ្ឌិតករណីជំងឺឬការចាប់ស្ដុកប្រាក់ជាប់សុហេង។ ដូច្នេះ ការវិវឌ្ឍន៍ក្នុង AI និងការទទួលយកលឿនបានជួបប្រទះការរំពឹងទុកពីសង្គមដែលកំពុងលូតលាស់ និងការគ្រប់គ្រងកាន់តែរឹងមាំ។ យើងតែងតែឃើញតំបន់ដែលប្រព័ន្ធ AI ធ្លាប់បរាជ័យក្នុងការបំពេញចំណាប់អារម្មណ៍; ពួកវាបង្កើតបញ្ហាថ្មីៗ; ហើយរដ្ឋាភិបាលកំពុងចាប់ផ្តើមគ្រប់គ្រងដំណោះស្រាយ AI។ ដូច្នេះ វាសារៈសំខាន់ដែលគំរូទាំងនេះត្រូវបានវិភាគដើម្បីផ្តល់លទ្ធផលដែលមានភាពយុត្តិធម៌ ជឿជាក់ បញ្ចូលគ្នា ស្វែងយល់បានច្បាស់ និងអាចទទួលខុសត្រូវសម្រាប់មនុស្សគ្រប់រូប។ + +ក្នុងមេរៀននេះ យើងនឹងមើលឧបករណ៍អ practicallyដែលអាចប្រើបានដើម្បីវាយតម្លៃថាគំរូមានបញ្ហា AI ទទួលខុសត្រូវឬដូចម្តេច។ បច្ចេកទេសបញ្ឆែកគំរូបុរាណភាគច្រើនត្រូវបានបង្កើតយោងលើគណនាប្រកួតពិន្ទុចំនួនបរិមាណដូចជាការគណនាបរិមាណភាពត្រឹមត្រូវឬកម្រិតបាត់បង់កំហុសមធ្យម។ សូមនឹកឃើញអ្វីដែលអាចកើតឡើងពេលទិន្នន័យដែលអ្នកប្រើសម្រាប់បង្កើតគំរូទាំងនេះខ្វះខាតប្រភេទប្រជាជនខ្លះ ដូចជាជាតិ ភេទ ទស្សនវិជ្ជា អំពីនយោបាយ ឬសាសនា ឬតំណាងមិនសមស្របសម្រាប់ប្រភេទប្រជាជនទាំងនេះ។ តើកើតអ្វីឡើងបើលទ្ធផលគំរូត្រូវបានបកស្រាយដើម្បីគាំទ្រក្រុមប្រជាជនមួយ? វាអាចបញ្ចូនចេញនូវការជាងលើ ឬខ្វះខាតនៃក្រុមលក្ខណៈសំខាន់ទំនងជាអំពើមិនសមស្រប ភ្ជាប់ទាក់ទិននឹងភាពយុត្តិធម៌ ការបញ្ចូលរួម ឬភាពជឿជាក់ពីគំរូ។ ម្យ៉ាងទៀត គំរូរៀនម៉ាស៊ីនត្រូវបានគេគិតថាជាប្រអប់ខ្មៅ ដែលធ្វើឱ្យពិបាកយល់នឹងពន្យល់ថាអ្វីជាគោលបំណងនៃការព្យាករណ៍ពីគំរូមួយ។ ឥឡូវនេះគឺជាបញ្ហាដែលអ្នកវិទ្យាសាស្ត្រ​ទិន្នន័យនិងអ្នកអភិវឌ្ឍ AI កំពុងប្រឈមមុខពេលពួកគេច្រើនពេលគ្មានឧបករណ៍គ្រប់គ្រាន់សម្រាប់បញ្ឆែកគំរូ និងវាយតម្លៃភាពយុត្តិធម៌ ឬភាពទុកចិត្តចំពោះគំរូមួយ។ + +ក្នុងមេរៀននេះ អ្នកនឹងសិក្សាអំពីការបញ្ឆែកគំរូរបស់អ្នកដោយប្រើ: + +- **វិភាគកំហុស**: កំណត់ថាតើយ៉ាងណានៅក្នុងចំណែកទិន្នន័យដែលគំរូមានអត្រាកំហុសខ្ពស់។ +- **ទិដ្ឋភាពគំរូ**: បញ្ឆែកប្រៀបធៀបទិន្នន័យក្នុងក្រុមផ្សេងៗដើម្បីស្វែងរកភាពខុសគ្នានៅលើគោលបំណងសមត្ថភាពនៃគំរូរបស់អ្នក។ +- **វិភាគទិន្នន័យ**: ស៊ើបអង្កេតថាតើមានការជាងលើឬខ្វះខាតនៃទិន្នន័យដែលអាចបំភាន់គំរូអ្នកឲ្យគាំទ្រក្រុមប្រជាជនមួយទៀតផ្សេងពីមួយ។ +- **សារសំខាន់លក្ខណៈ**: ទទួលយល់ថាលក្ខណៈណាដែលបញ្ជាបកស្រាយការព្យាករណ៍របស់គំរូនៅលើកម្រិតសាកលឬកម្រិតតំបន់។ + +## តម្រូវការមុន + +ដើម្បីត្រៀមខ្លួន សូមពិនិត្យមើលការពិនិត្យម្តងទៀត [ឧបករណ៍ AI ទទួលខុសត្រូវសម្រាប់អ្នកអភិវឌ្ឍ](https://www.microsoft.com/ai/ai-lab-responsible-ai-dashboard) + +> ![Gif on Responsible AI Tools](../../../../9-Real-World/2-Debugging-ML-Models/images/rai-overview.gif) + +## វិភាគកំហុស + +គោលវិធីវាយតម្លៃសមត្ថភាពគំរូបុរាណភាគច្រើនមានមូលដ្ឋានលើការគណនា​ពីការព្យាករណ៍ត្រឹមត្រូវប្រៀបធៀបនឹងមិនត្រឹមត្រូវ។ ឧទាហរណ៍ ការកំណត់ថាគំរូមានភាពត្រឹមត្រូវ ៨៩% ជាមួយនឹងកម្រិតបាត់បង់កំហុស ០.០០១ អាចគិតថាជាសមត្ថភាពល្អ។ កំហុសតែងលែងមិនត្រូវបានចែករំលែកស្មើគ្នានៅក្នុងទិន្នន័យមូលដ្ឋានរបស់អ្នកទេ។ អ្នកអាចមានពិន្ទុភាពត្រឹមត្រូវគំរូ ៨៩% ប៉ុន្តែរកឃើញថាមានតំបន់ទិន្នន័យខុសៗគ្នាដែលគំរូបរាជ័យ ៤២% នៃពេលវេលា។ ស្ថានការណ៍បរាជ័យនេះជាមួយក្រុមទិន្នន័យខុសៗអាចនាំឲ្យមានបញ្ហាផ្នែកភាពយុត្តិធម៌ ឬភាពជឿជាក់។ វាសមហើយត្រូវយល់ពីតំបន់ដែលគំរូមានសមត្ថភាពល្អឬមិនល្អ។ តំបន់ទិន្នន័យដែលកើតមានកំហុសច្រើនលើគំរូរបស់អ្នកអាចជាក្រុមប្រជាជនទិន្នន័យសំខាន់។ + +![Analyze and debug model errors](../../../../translated_images/km/ea-error-distribution.117452e1177c1dd8.webp) + +ឧបករណ៍វិភាគកំហុសនៅក្នុងផ្ទាំងគ្រប់គ្រង RAI បង្ហាញពីវិធីដែលកំហុសគំរូចែកចាយនៅលើក្រុមផ្សេងៗដោយមានការមើលទស្សនៈដូចដើមឈើ។ វាជាប្រយោជន៍ក្នុងការកំណត់លក្ខណៈឬតំបន់ដែលមានអត្រាកំហុសខ្ពស់ជាមួយទិន្នន័យរបស់អ្នក។ ដឹងពីទីតាំងដែលភាគច្រើននៃកំហុសគំរូមកពី អ្នកអាចចាប់ផ្តើមស្ទង់មូលហេតុ។ អ្នកក៏អាចបង្កើតក្រុមទិន្នន័យសម្រាប់គោលបំណងវិភាគផងដែរ។ ក្រុមទិន្នន័យទាំងនេះជួយក្នុងដំណើរការបញ្ឆែកគំរូ ដើម្បីទទួលបានមូលហេតុថាហេតុអ្វីគំរូមានសមត្ថភាពល្អនៅក្នុងក្រុមមួយ ប៉ុន្តែមិនល្អនៅក្រុមម្ខាងទៀត។ + +![Error Analysis](../../../../translated_images/km/ea-error-cohort.6886209ea5d438c4.webp) + +សញ្ញាផ្ទៃពណ៌លើផែនទីដើមឈើជួយសម្គាល់តំបន់បញ្ហាឲ្យឆាប់រហ័ស។ ឧទាហរណ៍ ពណ៌ក្រហមចម្ងាយជ្រៅជាងកុំផ្លែឈើ កើតមានអត្រាកំហុសខ្ពស់ជាង។ + +ផែនទីកម្តៅគឺជាឧបករណ៍មើលទស្សនៈមួយទៀតដែលអ្នកប្រើអាចប្រើពិនិត្យអត្រាកំហុសដោយប្រើលក្ខណៈមួយឬពីរនៅក្នុងការស្វែងរកមូលហេតុខ្លះៗនៃកំហុសនៃគំរូរបស់អ្នកក្នុងទិន្នន័យទាំងមូលឬក្រុម។ + +![Error Analysis Heatmap](../../../../translated_images/km/ea-heatmap.8d27185e28cee383.webp) + +ប្រើវិភាគកំហុសនៅពេលដែលអ្នកត្រូវការក្នុងការប្រមូលចំណេះដឹងជ្រាលជ្រៅអំពីរបៀបដែលកំហុសគំរូចែកចាយទិន្នន័យ និងសម្រុងនៅលើចំនួនវិនដូតំហែនិងលក្ខណៈផ្សេងៗ។ ផ្ទុះលទ្ធផលសមត្ថភាពសរុបដើម្បីរកក្រុមដែលមានកំហុសដោយស្វ័យប្រវត្តិក្នុងគោលបំណងនាំឲ្យគ្រប់គ្រងការបញ្ច្រាសញ័រ។ + +## ទិដ្ឋភាពគំរូ + +ការវាយតម្លៃសមត្ថភាពគំរូរៀនម៉ាស៊ីនតម្រូវឱ្យយល់ទូលំទូលាយពីការបង្ហាញលក្ខណៈរបស់វា។ វាអាចសម្រេចបានដោយពិនិត្យមើលមេត្រិកមួយចំណោមជាច្រើនដូចជា អត្រាកំហុស ភាពត្រឹមត្រូវ ការចងចាំ ការត្រឹមត្រូវនៃការជ្រើសរើស ឬ MAE (កំហុសខុសផាត់មធ្យម) ដើម្បីរកភាពខុសគ្នានៅលើមេត្រិកសមត្ថភាព។ មេត្រិកមួយអាចមើលទៅល្អ ប៉ុន្តែអាចមានកំហុសបង្ហាញនៅមេត្រិកមួយផ្សេងទៀត។ បន្ថែមពីនេះ ការប្រៀបធៀបមេត្រិកសម្រាប់ភាពខុសគ្នាទូទាំងទិន្នន័យឬក្រុម ជួយបំភ្លឺពីទីតាំងដែលគំរូមានសមត្ថភាពល្អ ឬមិនល្អ។ នេះមានសារៈសំខាន់ជាពិសេសក្នុងការមើលសមត្ថភាពគំរូក្រោមលក្ខណ: ទៅលើលក្ខណៈសំខាន់នឹងមិនសំខាន់ (ឧ. ជាតិ ប្រែប្រួលភេទ ឬអាយុ) ដើម្បីរកភាពមិនយុត្តិធម៌ប្រហែលដែលគំរូពិបាកមាន។ ឧទាហរណ៍ ការស្វែងរកថាគំរូមានកំហុសច្រើននៅក្រុម ដែលមានលក្ខណៈសំខាន់ សប្បាយបានបង្ហាញភាពមិនយុត្តិធម៌។ + +ឧបករណ៍ទិដ្ឋភាពគំរូក្នុងផ្ទាំងគ្រប់គ្រង RAI ជួយមិនត្រឹមតែវិភាគមេត្រិកសមត្ថភាពនៃការបង្ហាញទិន្នន័យនៅក្រុមមួយទេ ប៉ុន្តែដែលផ្តល់ភាពអាចប្រៀបធៀបទំនោរនៃសមត្តភាពគំរូក្នុងក្រុមផ្សេងៗ។ + +![Dataset cohorts - model overview in RAI dashboard](../../../../translated_images/km/model-overview-dataset-cohorts.dfa463fb527a35a0.webp) + +មុខងារវិភាគលក្ខណៈជាផ្លូវក្នុងឧបករណ៍នេះអនុញ្ញាតឲ្យអ្នកដាក់ខ្ជិលនៅក្នុងក្រុមតូចដើម្បីសម្គាល់លក្ខណៈកំហុសលំអិត។ ឧទាហរណ៍ ផ្ទាំងគ្រប់គ្រងមានឆន្ទៈបញ្ញាស្វ័យប្រវត្តិបង្កើតក្រុមសម្រាប់លក្ខណៈមួយដែលអ្នកជ្រើស (ឧ. *"time_in_hospital < 3"* ឬ *"time_in_hospital >= 7"*)។ វាអនុញ្ញាតអោយអ្នកដកចេញលក្ខណៈមួយចេញពីក្រុមទិន្នន័យធំដើម្បីមើលថា វាអាចជាអ្នកមានឥទ្ធិពលនាំឲ្យមានលទ្ធផលកំហុសលើគំរូ។ + +![Feature cohorts - model overview in RAI dashboard](../../../../translated_images/km/model-overview-feature-cohorts.c5104d575ffd0c80.webp) + +ឧបករណ៍ទិដ្ឋភាពគំរូគាំទ្រមេត្រិកភាពខុសគ្នាពីពីរប្រភេទ៖ + +**ភាពខុសគ្នានៅសមត្ថភាពគំរូ**៖ ក្រុមមេត្រិកទាំងនេះគណនាភាពខុសគ្នា (ភាពខុសប្លែក) នៃតម្លៃមេត្រិកសមត្ថភាពដែលបានជ្រើសនៅក្នុងក្រុមតូចៗនៃទិន្នន័យ។ ឧទាហរណ៍រួមមាន៖ + +* ភាពខុសគ្នានៅអត្រាពិតប្រាកដ +* ភាពខុសគ្នានៅអត្រាកំហុស +* ភាពខុសគ្នានៅភាពត្រឹមត្រូវនៃការជ្រើសរើស +* ភាពខុសគ្នានៅការចងចាំ +* ភាពខុសគ្នានៅកំហុសខុសផាត់មធ្យម (MAE) + +**ភាពខុសគ្នានៅអត្រាជ្រើសរើស**៖ មេត្រិកនេះមានភាពខុសគ្នានៃអត្រាជ្រើស (ការព្យាករណ៍ល្អ) រវាងក្រុមតូចៗ។ ឧទាហរណ៍ម៉ឺនុយនេះគឺភាពខុសគ្នានៅអត្រាអនុម័តខ្ចីប្រាក់។ អត្រាជ្រើសមានន័យថាជាសមាគមនៃចំនួនចំណុចទិន្នន័យក្នុងម្នាក់ៗនៃលក្ខណៈត្រូវបានចាត់ថាជា ១ (នៅក្នុងការជម្រះចំណាត់ថ្នាក់ពីរប្រភេទ) ឬការចែកចាយតម្លៃព្យាករណ៍ (នៅក្នុងការស្មើបាក់លើតម្លៃ)។ + +## វិភាគទិន្នន័យ + +> "បើអ្នកឈឺចាប់រយៈពេលយូរជាមួយទិន្នន័យ វានឹងទទួលស្គាល់អ្វីៗគ្រប់យ៉ាង" - Ronald Coase + +ពាក្យនេះហាក់ដូចជាការគួរអោយភ្ញាក់ផ្អើល ប៉ុន្តែវាពិតណាស់ថាទិន្នន័យអាចត្រូវបានគេបង្ខំប្រើដើម្បីគាំទ្រសេចក្ដីសន្និដ្ឋានណាមួយ។ ការប្រើប្រាស់បែបនេះអាចកើតឡើងដោយចៃដន្យផងដែរ។ ជាមនុស្ស យើងទាំងអស់គ្នាមានការរើសអើង ហើយវាជារឿងពិបាកដើម្បីយល់បានយ៉ាងដឹងច្បាស់ពេលដែលអ្នកបញ្ចូលភាពរើសអើងក្នុងទិន្នន័យ។ ការធានាភាពយុត្តិធម៌ក្នុង AI និងការរៀនម៉ាស៊ីននៅតែជាបញ្ហាស្មុគស្មាញ។ + +ទិន្នន័យគឺជាចំណុចងងឹតធំមួយសម្រាប់មេត្រិកសមត្ថភាពម៉ូដែលបុរាណ។ អ្នកអាចមានពិន្ទុភាពត្រឹមត្រូវខ្ពស់ ប៉ុន្តែមិនបានបង្ហាញពីការរើសអើងទិន្នន័យដែលផ្នែកក្រោមអាចមានក្នុងទិន្នន័យរបស់អ្នក។ ឧទាហរណ៍ ប្រសិនបើទិន្នន័យនៃនិយោជក មានទំងន់ ២៧% ភេទស្រីនៅតំណែងការងារគ្រប់គ្រង ក្នុងក្រុមហ៊ុនមួយ ហើយ ៧៣% ជាបុរសនៅតំណែងដដែល គំរូ AI ផ្សព្វផ្សាយការងារដែលបានបណ្តុះបណ្តាលលើទិន្នន័យនេះអាចផ្តោតទៅលើបុរសជាភាគច្រើនសម្រាប់ការងារកម្រិតជាន់ខ្ពស់។ ការរើសអើងក្នុងទិន្នន័យនេះបានបំភាន់នូវការព្យាករណ៍របស់គំរូឲ្យគាំទ្រភេទភេទមួយ។ វាបង្ហាញបញ្ហាប្រភេទភាពយុត្តិធម៌ដែលមានជំនាន់ភេទក្នុងម៉ូដែល AI។ + +ឧបករណ៍វិភាគទិន្នន័យនៅក្នុងផ្ទាំងគ្រប់គ្រង RAI ជួយកំណត់តំបន់ដែលមានការជាងលើ និងខ្វះខាតតំណាងក្នុងទិន្នន័យ។ វាជួយអ្នកក្នុងការវិភាគមូលហេតុនៃកំហុស និងបញ្ហាផ្នែកភាពយុត្តិធម៌ដែលបង្កឡើងពីការប្រកួតប្រជែងក្នុងទិន្នន័យ ឬខ្វះអ្នកតំណាងក្រុមនៃទិន្នន័យជាក់លាក់។ វាផ្តល់ឱកាសឲ្យអ្នកមើលទិន្នន័យដោយផ្អែកលើលទ្ធផលព្យាករណ៍និងលទ្ធផលពិត ក្រុមកំហុស និងលក្ខណៈពិសេស។ ប៉ុន្មានពេលនៃការរកឃើញក្រុមទិន្នន័យដែលបានតំណាងខ្វះផ្សាំអាចបង្ហាញថាគំរូមិនបានរៀនល្អហើយ ដូច្នេះមានកំហុសខ្ពស់។ មានគំរូដែលមានការរើសអើងទិន្នន័យមិនមែនគ្រាន់តែជាបញ្ហាព័ត៌មានត្រង់ទេ ប៉ុន្តែការបង្ហាញថាគំរូមិនបានបញ្ចូលគ្នានឹងមិនទុកចិត្តបាន។ + +![Data Analysis component on RAI Dashboard](../../../../translated_images/km/dataanalysis-cover.8d6d0683a70a5c1e.webp) + + +ប្រើវិភាគទិន្នន័យពេលដែលអ្នកត្រូវការ៖ + +* ស្វែងយល់ស្ថិតិទិន្នន័យដោយជ្រើសតម្រងផ្សេងៗដើម្បីបំបែកទិន្នន័យទៅកាន់វិមាត្រផ្សេងៗ (ហៅថាក្រុម)។ +* យល់ផលចែកចាយទិន្នន័យរបស់អ្នកនៅលើក្រុមនិងលក្ខណៈផ្សេងៗ។ +* កំណត់ថារកឃើញខាងមុខបានដែលពាក់ព័ន្ធនឹងភាពយុត្តិធម៌ វិភាគកំហុស និងសមាសធាតុហេតុផល (ទាញយកពីផ្ទាំងគ្រប់គ្រងផ្សេងៗ) គឺមានមូលហេតុពីការចែកចាយទិន្នន័យឬយ៉ាងដូចម្តេច។ +* សម្រេចថាតើយ៉ាងណាត្រូវប្រមូលទិន្នន័យបន្ថែមនៅតំបន់ណា ដើម្បីកាត់បន្ថយកំហុសដែលមានបណ្តាលមកពីបញ្ហា​តំណាង ទំនូល ចាប់សំឡេងលក្ខណៈ និងការរើសអើងលើស្លាក។ + +## ការបកស្រាយគំរូ + +គំរូរៀនម៉ាស៊ីនភាគច្រើនត្រូវបានគេគិតថាជាប្រអប់ខ្មៅ។ ការយល់ថាលក្ខណៈទិន្នន័យសំខាន់ណៃដែលបញ្ជាថាគំរូព្យាករណ៍វាទើបជាពិបាក។ វាសំខាន់ណាស់ក្នុងការផ្តល់ភាពច្បាស់ថាហេតុអ្វីបានជា គំរូបានធ្វើការព្យាករណ៍មិចមួយ។ ​ឧទាហរណ៍ ប្រសិនបើប្រព័ន្ធ AI ព្យាករថា អ្នកជម្ងឺជាតិស្ករ មានហានិភ័យនៃការត្រូវើតបញ្ចូលវិញទៅមន្ទីរពេទ្យក្នុងកំឡុងពេលតិចជាង ៣០ ថ្ងៃ វាគួរតែមានទិន្នន័យគាំទ្រដែលអាចបង្ហាញពីការព្យាករណ៍។ ការមានសញ្ញាទិន្នន័យគាំទ្រនេះយកមកភ្លឺថាជួយឲ្យគ្រូពេទ្យឬមន្ទីរពេទ្យអាចធ្វើការសម្រេចចិត្តឲ្យបានល្អបំផុត។ បន្ថែមពីនេះ ការអាចពន្យល់បានថាហេតុអ្វីបានជា គំរូបានព្យាករណ៍សម្រាប់អ្នកជម្ងឺម្នាក់នោះអាចធ្វើឲ្យមានការទទួលខុសត្រូវចំពោះបទបញ្ញត្តិសុខាភិបាល។ ពេលដែលអ្នកប្រើគំរូរៀនម៉ាស៊ីនដែលមានឥទ្ឋិពលលើជីវិតមនុស្ស វាប្រហែលជាចាំបាច់យល់និងពន្យល់អំពីអ្វីដែលជាចំណុចដឹកនាំឲ្យមានន័យក្នុងបង្កើតលទ្ធផលមួយ។ ការពន្យល់និងកំណត់អត្ថន័យគំរូជួយឆ្លើយសំណួរនៅស្ថានការណ៍ដូចជា៖ + +* ការបញ្ឆែកគំរូ៖ ហេតុអ្វីបានជា គំរូរបស់ខ្ញុំបានធ្វើកំហុសនេះ? តើធ្វើដូចម្តេចដើម្បីធ្វើឱ្យគំរូខ្ញុំប្រសើរឡើង? +* ការសហការមនុស្ស-AI៖ តើធ្វើដូចម្តេចដើម្បីយល់ និងទុកចិត្តចំពោះការសម្រេចចិត្តរបស់គំរូ? +* ការអនុវត្តតាមបទបញ្ជា៖ តើគំរូរបស់ខ្ញុំបានបំពេញលក្ខខណ្ឌច្បាប់ទេ? + +ឧបករណ៍សារសំខាន់លក្ខណៈរបស់ផ្ទាំងគ្រប់គ្រង RAI ជួយអ្នកបញ្ឆែកនិងយល់ដឹងយ៉ាងទូលំទូលាយថាគំរូធ្វើការព្យាករណ៍យ៉ាងដូចម្តេច។ វាជាឧបករណ៍មានប្រយោជន៍សម្រាប់អ្នកជំនាញរៀនម៉ាស៊ីន និងអ្នកសម្រេចចិត្តក្នុងការពន្យល់ និងបង្ហាញភស្តុតាងអំពីលក្ខណៈដែលកំពុងបញ្ជារប្រព្រឹត្តិការការប៉ាន់ស្មាននៃគំរូ ដើម្បីអនុវត្តតាមបទបញ្ជា។ បន្ទាប់ពីនេះ អ្នកប្រើអាចស្វែងយល់ពីការពន្យល់ទាំងសកល និងតំបន់ ដើម្បីបញ្ជាក់ថាលក្ខណៈណាដែលជាអ្នកបញ្ជាព្យាករណ៍គំរូ។ ការពន្យល់សកលបញ្ជីលក្ខណៈសំខាន់ខ្ពស់ដែលមានឥទ្ឋិពលលើការព្យាករណ៍ទូទៅរបស់គំរូ។ ការពន្យល់តំបន់បង្ហាញថាលក្ខណៈណាដែលបង្កការព្យាករណ៍សម្រាប់ករណីមួយនាក់។ សមត្ថភាពក្នុងការវាយតម្លៃការពន្យល់តំបន់ក៏មានប្រយោជន៍ក្នុងការបញ្ឆែកឬត្រួតពិនិត្យករណីជាក់លាក់ ដើម្បីយល់ និងពន្យល់ថាហេតុអ្វីបានជា គំរូបានធ្វើការព្យាករណ៍ត្រឹមត្រូវឬមិនត្រឹមត្រូវ។ + +![Feature Importance component of the RAI dashboard](../../../../translated_images/km/9-feature-importance.cd3193b4bba3fd4b.webp) + +* ការពន្យល់សកល៖ ឧទាហរណ៍ តើលក្ខណៈណាខ្លះដែលប៉ះពាល់ដល់ការព្យាករណ៍ទូទៅនៃគំរូការត្រឡប់មន្ទីរពេទ្យនៃជម្ងឺទឹកនោមផ្អែម? +* ការពន្យល់តំបន់៖ ឧទាហរណ៍ តើហេតុអ្វីបានជាអ្នកជម្ងឺជាតិស្ករចាស់ជាង ៦០ ឆ្នាំ ដែលមានការចូលមន្ទីរពេទ្យមុននេះ បានព្យាករណ៍ថាត្រូវត្រលប់មកវិញ ឬមិនត្រលប់មកវិញក្នុងរយៈពេល ៣០ ថ្ងៃ? + +ក្នុងដំណើរការបញ្ឆែកគំរូក្នុងការពិនិត្យសមត្ថភាពរបស់គំរូនៅក្រោមក្រុមផ្សេងៗ ទិដ្ឋភាពសារសំខាន់បង្ហាញថាលក្ខណៈណាដែលមានឥទ្ឋិពលក្នុងក្រុមបានយ៉ាងដូចម្តេច។ វាជួយបង្ហាញភាពខុសប្លែកនៅពេលប្រៀបធៀបកម្រិតឥទ្ធិពលដែលលក្ខណៈមានលើព្យាករណ៍កំហុសនៃគំរូ។ ឧបករណ៍សារសំខាន់អាចបង្ហាញថា តម្លៃណាខ្លះនៅក្នុងលក្ខណៈដែលមានឥទ្ឋិពលសរីរាង្គ ឬអវិជ្ជមានលើលទ្ធផលគំរូ។ ឧទាហរណ៍ ប្រសិនបើគំរូបានធ្វើការព្យាករណ៍មិនត្រឹមត្រូវ ឧបករណ៍ផ្តល់ឱកាសឲ្យអ្នករុករកកាន់តែជ្រាលជ្រៅ ទំនាក់ទំនងលក្ខណៈដែលបញ្ជាឲ្យមានការព្យាករណ៍។ កម្រិតព័ត៌មាននេះជួយមិនត្រឹមតែបញ្ឆែកគំរូ តែផ្តល់ភាពច្បាស់លាស់ និងទទួលខុសត្រូវក្នុងការត្រួតពិនិត្យ។ ចុងក្រោយ ឧបករណ៍អាចជួយរកឃើញបញ្ហាផ្នែកភាពយុត្តិធម៌។ ឧទាហរណ៍ ប្រសិនបើលក្ខណៈសំខាន់ដូចជាជាតិសាសន៍ ឬភេទមានឥទ្ធិពលខ្លាំងលើការព្យាករណ៍ គឺលក្ខណៈនេះអាចជារឿងមិនសមស្របក្នុងគំរូ។ + +![Feature importance](../../../../translated_images/km/9-features-influence.3ead3d3f68a84029.webp) + +ប្រើការបកស្រាយនៅពេលដែលអ្នកត្រូវការ៖ + +* កំណត់ថាតើការព្យាករណ៍នៃប្រព័ន្ធ AI របស់អ្នកអាចទុកចិត្តបានយ៉ាងណា ដោយការយល់ថាលក្ខណៈណាដែលមានសារៈសំខាន់បំផុតសម្រាប់ការព្យាករណ៍។ +* បង្ហាញដំណើរការបញ្ឆែកគំរូរបស់អ្នកដោយការយល់គំរូជាលើកដំបូង ហើយកំណត់ថាគំរូកំពុងប្រើលក្ខណៈដែលមានសុខភាពល្អ ឬត្រឹមតែទំនាក់ទំនងក្លែងក្លាយប៉ុណ្ណោះ។ +* រកដំណាក់កាលនៃភាពមិនយុត្តិធម៌ក្នុងការព្យាករណ៍ ដោយយល់ថាគំរូកំពុងផ្អែកលើលក្ខណៈសំខាន់ឬលក្ខណៈដែលមានទំនាក់ទំនង់ខ្លាំងជាមួយពួកវា។ +* បង្កើតការជឿទុកចិត្តរបស់អ្នកប្រើលើការសម្រេចចិត្តនៃគំរូដោយបង្កើតការពន្យល់តំបន់ដើម្បីបង្ហាញលទ្ធផល។ +* បញ្ចប់ការត្រួតពិនិត្យតាមបទបញ្ជានៃប្រព័ន្ធ AI ដើម្បីផ្ទៀងផ្ទាត់គំរូនិងតាមដានឥទ្ឋិពលនៃការសម្រេចចិត្តតាមគំរូលើមនុស្ស។ + +## សារសង្ខេប + +ឧបករណ៍គ្រប់គ្រង RAI ទាំងអស់គឺជាឧបករណ៍អប្រយោជន៍ក្នុងការជួយអ្នកកសាងគំរូរៀនម៉ាស៊ីនដែលប៉ះពាល់តិច និងអាចទុកចិត្តបានចំពោះសង្គម។ វាជួយពង្រឹងការការពារជំនួសសម្រាប់សិទ្ធិមនុស្ស; ការរើសអើងឬដាក់ទណ្ឌកម្មក្រុមមួយចំនួនចំពោះឱកាសជីវិត; និងហានិភ័យនៃការ២រងគ្រោះផ្នែករាងកាយឬផ្នែកផ្លូវចិត្ត។ វាក៏ជួយកសាងការជឿទុកចិត្តលើការសម្រេចចិត្តរបស់គំរូដោយបង្កើតការពន្យល់តំបន់ដើម្បីបង្ហាញលទ្ធផល។ ខ្លះនៃបញ្ហាដែលអាចមានអំពេីលើកបានក្នុងចំណោម៖ +- **ការបែងចែក** ប្រសិនបើភេទ ឬជនជាតិមួយ ត្រូវបានស្វាគមន៍ពិសេសជាងមួយផ្សេងទៀត។ +- **គុណភាពសេវាកម្ម**។ ប្រសិនបើអ្នកបណ្តុះបណ្តាលទិន្នន័យសម្រាប់ស្ថានការណ៍មួយជាក់លាក់ តែលទ្ធផលជាក់ស្តែងមានភាពស្មុគស្មាញជាងនេះ បណ្ដាលឲ្យមានសេវាកម្មដែលមានប្រសិទ្ធភាពខ្សោយ។ +- **ការបង្កបំភាន់ដោយស្ទេរ**។ ការតភ្ជាប់ក្រុមណាមួយជាមួយលក្ខណៈដែលបានកំណត់ជាមុន។ +- **ការរិះគន់ចាញ់អំពើ**។ ការរិះគន់មិនយុត្តិធម៌ និងដាក់ស្លាកអ្វីមួយ ឬមនុស្សម្នាក់។ +- **ការតំណាងលើស ឬ ខ្វះតំណាង**។ គំនិតគឺថាក្រុមជាក់លាក់មួយមិនត្រូវបានគេឃើញនៅក្នុងវិជ្ជាជីវៈណាមួយ ហើយសេវាកម្ម ឬមុខងារណាមួយដែលបន្តផ្សព្វផ្សាយនោះ កំពុងរួមចំណែកបំប៉នការខូចខាត។ + +### ផ្ទាំងគ្រប់គ្រង Azure RAI + +[ផ្ទាំងគ្រប់គ្រង Azure RAI](https://learn.microsoft.com/en-us/azure/machine-learning/concept-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) ត្រូវបានកសាងលើឧបករណ៍ប្រភពបើកដែលបានអភិវឌ្ឍដោយស្ថាប័នសិក្សាថ្នាក់ខ្ពស់ និងអង្គការដឹកនាំរួមបញ្ចូល Microsoft ដែលជួយស្រាវជ្រាវទិន្នន័យ និងអ្នកអភិវឌ្ឍ AI ក្នុងការយល់ដឹងល្អប្រសើរអំពីអាកប្បកិរិយាម៉ូដែល រកឃើញ ហើយកាត់បន្ថយបញ្ហាដែលមិនចង់បានពីម៉ូដែល AI ។ + +- រៀនរបៀបប្រើផ្នែកផ្សេងៗដោយពិនិត្យឯកសារ [docs.](https://learn.microsoft.com/en-us/azure/machine-learning/how-to-responsible-ai-dashboard?WT.mc_id=aiml-90525-ruyakubu) + +- ពិនិត្យមើលសៀវភៅកំណត់ត្រាទៅលើ [notebooks ឧទាហរណ៍](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) សម្រាប់វាយតម្លៃស្ថានការណ៍ AI មានការទទួលខុសត្រូវច្រើនជាងមុននៅក្នុង Azure Machine Learning។ + +--- +## 🚀 ការប្រឈម + +ដើម្បីទប់ស្កាត់ការរក មិនត្រឹមត្រូវឬការមិនល្មមតាមស្ថិតិ ឬទិន្នន័យពីដើម គួរតែ៖ + +- មានភាពចម្រុះនៃដើមកំណើត និងទស្សនៈក្នុងមនុស្សដែលធ្វើការលើប្រព័ន្ធ +- វិនិយោគទៅលើសំណុំទិន្នន័យដែលបញ្ចេញភាពចម្រុះនៃសង្គមយើង +- អភិវឌ្ឍវិធីសាស្ត្រល្អប្រសើរជាងមុនសម្រាប់រកឃើញ និងកែលម្អការសំដៅមិនល្អនៅពេលវាចេញវេទិកា + +គិតពីស្ថានភាពជាច្រើនក្នុងជីវិតពិត ដែលមិនយុត្តិធម៌ច្បាស់លាស់ក្នុងការសាងសង់និងប្រើមូដែល។ តើយើងគួរកត់សម្គាល់អ្វីបន្ថែមទៀត? + +## [ប្រលងបន្ទាប់បន្ទាប់ពីមេរៀន](https://ff-quizzes.netlify.app/en/ml/) +## ការត្រួតពិនិត្យ & យល់ដឹងផ្ទាល់ខ្លួន + +ក្នុងមេរៀននេះ អ្នកបានរៀនឧបករណ៍ជាក់ស្តែងមួយចំនួនសម្រាប់បញ្ចូលការទទួលខុសត្រូវទាក់ទង AI ក្នុងក្របខ័ណ្ឌការរៀនម៉ាស៊ីន។ + +មើលវគ្គសិក្សានេះដើម្បីរំលាយជ្រៅទៅលើប្រធានបទ៖ + +- ផ្ទាំងគ្រប់គ្រង Responsible AI: ហាងមួយនៃការប្រតិបត្តិការ RAI ពី Besmira Nushi និង Mehrnoosh Sameki + +[![ផ្ទាំងគ្រប់គ្រង Responsible AI: ហាងមួយនៃការប្រតិបត្តិការ RAI](https://img.youtube.com/vi/f1oaDNl3djg/0.jpg)](https://www.youtube.com/watch?v=f1oaDNl3djg "Responsible AI Dashboard: One-stop shop for operationalizing RAI in practice") + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូៈ ផ្ទាំងគ្រប់គ្រង Responsible AI: ហាងមួយនៃការប្រតិបត្តិការ RAI ពី Besmira Nushi និង Mehrnoosh Sameki + +យោងទៅកាន់សំភារៈដូចខាងក្រោមដើម្បីរៀនបន្ថែមអំពី AI មានការទទួលខុសត្រូវ និងរបៀបសាងសង់ម៉ូដែលដែលទុកចិត្តបានច្រើនជាងមុនៈ + +- ឧបករណ៍ផ្ទាំងគ្រប់គ្រង RAI របស់ Microsoft សម្រាប់វាយតម្លៃម៉ូដែល ML: [ទំនាក់ទំនងឧបករណ៍ Responsible AI](https://aka.ms/rai-dashboard) + +- ស្វែងរកឧបករណ៍កញ្ចប់Responsible AI៖ [Github](https://github.com/microsoft/responsible-ai-toolbox) + +- មជ្ឈមណ្ឌលធនធាន RAI របស់ Microsoft៖ [Resources Responsible AI – Microsoft AI](https://www.microsoft.com/ai/responsible-ai-resources?activetab=pivot1%3aprimaryr4) + +- ក្រុមស្រាវជ្រាវ FATE របស់ Microsoft៖ [FATE: ព្រមព្រៀង ភាពទទួលខុសត្រូវ ភាពបង្ហាញបាន និងទ្រឹស្តីសីលធម៌ក្នុង AI - Microsoft Research](https://www.microsoft.com/research/theme/fate/) + +## កិច្ចការ + +[ស្វែងយល់ផ្ទាំងគ្រប់គ្រង RAI](assignment.md) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមនៅក្នុងភាសាទីខ្លួនត្រូវបានគិតថាជា​ប្រភពដែលមានអាជ្ញាធរនៃព័ត៌មាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជាអ្នកជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/9-Real-World/2-Debugging-ML-Models/assignment.md b/translations/km/9-Real-World/2-Debugging-ML-Models/assignment.md new file mode 100644 index 000000000..d1c855cde --- /dev/null +++ b/translations/km/9-Real-World/2-Debugging-ML-Models/assignment.md @@ -0,0 +1,18 @@ +# ស្វែងយល់អំពីផ្ទាំងគ្រប់គ្រង AI ឆ្លើយតប (RAI) + +## សេចក្ដីណែនាំ + +នៅក្នុងមេរៀននេះ អ្នកបានរៀនអំពីផ្ទាំងគ្រប់គ្រង RAI ដែលជាកញ្ចប់ឧបករណ៍មួយ ស្ថិតលើឧបករណ៍ "ឧបករណ៍មូលដ្ឋានកូដចំហ" ដើម្បីជួយអ្នកវិទ្យាសាស្ត្រទិន្នន័យអនុវត្តវិភាគកំហុស ការស្វែងយល់ទិន្នន័យ ការវាយតម្លៃគុណតម្លៃភាពសមរាំ ការពន្យល់ម៉ូដែល ការវាយតម្លៃហេតុផល/អ្វី-បើនិងការវិភាគហេតុផលលើប្រព័ន្ធ AI។ សម្រាប់កិច្ចការនេះ សូមស្វែងយល់ពី [សៀវភៅកំណត់ត្រា](https://github.com/Azure/RAI-vNext-Preview/tree/main/examples/notebooks) ពីផ្ទាំងគ្រប់គ្រង RAI រួចរាយការណ៍លទ្ធផលរបស់អ្នកតាមរបាយការណ៍ឬការនិយាយបង្ហាញ។ + +## វិថីវាយតម្លៃ + +| កសិកម្ម | ល្អឧត្តម | ល្អគ្រប់គ្រាន់ | ត្រូវការកែលម្អ | +| -------- | --------- | -------- | ----------------- | +| | មានរបាយការណ៍ឬការនិយាយបង្ហាញ PowerPoint ពិភាក្សាអំពីសមាសធាតុផ្ទាំងគ្រប់គ្រង RAI សៀវភៅកំណត់ត្រាដែលបានរត់ និងកាលបរិច្ឆេទដែលបានទទួលពីការរត់ | មានរបាយការណ៍ទៀងទាត់ដោយគ្មានកាលបរិច្ឆេទ | គ្មានរបាយការណ៍ត្រូវបានបង្ហាញ | + +--- + + +**ការ​ថ្លែងការណ៍​មិន​ទទួល​ខុសត្រូវ**៖ +ឯកសារ​នេះ​ត្រូវ​បាន​ប្រែ​សម្រួល​ដោយ​ប្រើ​សេវាកម្ម​ប្រែ​សម្រួល AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ក្នុង​ពេល​យើង​ព្យាយាម​រក្សា​ភាព​ត្រឹមត្រូវ សូម​កត់ចំណាំ​ថា​ការ​ប្រែ​សម្រួល​ស្វ័យ​ប្រវត្តិ​អាច​មាន​កំហុស​ឬ​មិន​ត្រឹមត្រូវ។ ឯកសារ​ដើម​នៅ​ភាសា​មួយ​គួរ​ត្រូវ​ត្រូវ​បាន​និយម​ថា​ជា​ប្រភព​មាន​អំណាច។ សម្រាប់​ព័ត៌មាន​សំខាន់ ព្យាយាម​ប្រើ​ការ​ប្រែ​សម្រួល​ដោយ​មនុស្ស​ជំនាញ​ពិត​ជា​ត្រូវ​បាន​ផ្ដល់​ណែនាំ។ យើង​មិន​ទទួល​បន្ទុក​ចំពោះ​ការ​យល់ច្រឡំ ឬ​ការ​បកស្រាយ​ខុស​ណាមួយ​ដែល​កើត​មាន​ពី​ការ​ប្រើប្រាស់​ការ​ប្រែ​សម្រួល​នេះ​ទេ។ + \ No newline at end of file diff --git a/translations/km/9-Real-World/README.md b/translations/km/9-Real-World/README.md new file mode 100644 index 000000000..9c7a71854 --- /dev/null +++ b/translations/km/9-Real-World/README.md @@ -0,0 +1,25 @@ +# បន្ទាប់បន្សំ៖ ការប្រើប្រាស់ពិភពរបស់ការសិក្សា​គ្រូបង្រៀន​គ្រប់គ្រង​នៃម៉ាស៊ីន + +នៅផ្នែកនេះនៃកម្រងមេរៀន អ្នកនឹងត្រូវបានណែនាំអំពីការប្រើប្រាស់ពិភពជាក់ស្តែងរបស់ ML ដើម។ យើងបានរកស្វែងបណ្តាញអ៊ីនធឺណិតដើម្បីរកឯកសារពណ៌ស និងអត្ថបទអំពីកម្មវិធីដែលបានប្រើយុទ្ធសាស្រ្តទាំងនេះ ដោយជៀសវាងបណ្តាញ​អនុវត្តិកម្ម​សុីនុត ឡឺននិងAI ឱ្យច្រើនបំផុត។ សូមស្វែងយល់អំពីរបៀបដែល ML ត្រូវបានប្រើក្នុងប្រព័ន្ធអាជីវកម្ម កម្មវិធីអេកូឡូស៊ី ប្រាក់វិនិយោគ សិល្បៈ និងវប្បធម៍ ហើយនិងច្រើនទៀត។ + +![chess](../../../translated_images/km/chess.e704a268781bdad8.webp) + +> រូបថតដោយ Alexis Fauvet នៅ Unsplash + +## មេរៀន + +1. [កម្មវិធីពិភពជាក់ស្តែងសម្រាប់ ML](1-Applications/README.md) +2. [ការវិភាគលម្អិតម៉ូដែលនៅក្នុងការសិក្សាម៉ាស៊ីនដោយប្រើក្រុមផ្នែកផ្ទាំងគ្រប់គ្រង AI ដែលមានការទទួលខុសត្រូវ](2-Debugging-ML-Models/README.md) + +## ការដាក់ឲ្យទទួលស្គាល់ + +"កម្មវិធីពិភពជាក់ស្តែង" ត្រូវបានសរសេរដោយក្រុមមនុស្សមួយ រួមមាន [Jen Looper](https://twitter.com/jenlooper) និង [Ornella Altunyan](https://twitter.com/ornelladotcom)។ + +"ការវិភាគលម្អិតម៉ូដែលនៅក្នុងការសិក្សាម៉ាស៊ីនដោយប្រើក្រុមផ្នែកផ្ទាំងគ្រប់គ្រង AI ដែលមានការទទួលខុសត្រូវ" ត្រូវបានសរសេរដោយ [Ruth Yakubu](https://twitter.com/ruthieyakubu) + +--- + + +**ការបដិសេធ**ៈ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខំប្រឹងប្រយ័ត្នភាពលទ្ធភាពខ្ពស់ សូមបានជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិសាកល្បងអាចមានកំហុសឬការមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាដើម គួរត្រូវបានគិតថាជាមួយប្រភពផ្លូវការបំផុត។ សម្រាប់ព័ត៌មានដែលមានសារៈសំខាន់ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានផ្ដល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការបញ្ចោញ ឬការបកប្រែខុសប្រក្រតីណាមួយដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/AGENTS.md b/translations/km/AGENTS.md new file mode 100644 index 000000000..594edabeb --- /dev/null +++ b/translations/km/AGENTS.md @@ -0,0 +1,339 @@ +# AGENTS.md + +## Project Overview + +នេះគឺជាឯកសារ **ការសិក្សា ម៉ាស៊ីនរៀនសម្រាប់អ្នកចាប់ផ្តើម** ដែលមានកម្មវិធីសិក្សាប្រមាណ ១២ សប្ដាហ៍ មានមេរៀន ២៦ មេរៀនគ្របដណ្តប់គំនិតម៉ាស៊ីនរៀនបុរាណ ដោយប្រើ Python (ជាសំខាន់ជាមួយ Scikit-learn) និង R។ ឃ្លាំងទាក់ទងនេះត្រូវបានរចនាឡើងជាឋានសិក្សាដោយខ្លួនឯង មានគម្រោងដៃ អ្នកសាកល្បង និងការងារសិក្សា រៀងរាល់មេរៀនស្វែងយល់ពីមូលដ្ឋាន ML តាមរយៈទិន្នន័យពិតពីវប្បធម៌ និងតំបន់ផ្សេងៗជុំវិញពិភពលោក។ + +ធាតុសំខាន់ៗ៖ +- **មាតិកាសិក្សា**៖ ២៦ មេរៀនគ្របដណ្តប់ការណែនាំអំពី ML, ការត្រួតពិនិត្យទំនាក់ទំនង, ការបែងចែកចំណាត់ថ្នាក់, ការបែងចែកក្រុម, NLP, លំដាប់ពេលវេលា និងការរៀនពង្រឹង +- **កម្មវិធីសាកល្បង**៖ កម្មវិធីសាកល្បងមួយបង្កើតជាមួយ Vue.js មានការវាស់ថ្នាក់មុន និងក្រោយមេរៀន +- **គាំទ្រភាសាច្រើន**៖ បម្លែងភាសាឡើងវិញដោយស្វ័យប្រវត្តិទៅជាភាសាបានជាង ៤០ ភាសាតាមរយៈ GitHub Actions +- **គាំទ្រភាសាគូ**៖ មេរៀនអាចប្រើបានទាំង Python (សៀវភៅកិច្ចការលើ Jupyter) និង R (ឯកសារ R Markdown) +- **ការសិក្សាដើមឯកសារ**៖ រៀងរាល់ប្រធានបទមានគម្រោង និងការងារអនុវត្ត + +## Repository Structure + +``` +ML-For-Beginners/ +├── 1-Introduction/ # ML basics, history, fairness, techniques +├── 2-Regression/ # Regression models with Python/R +├── 3-Web-App/ # Flask web app for ML model deployment +├── 4-Classification/ # Classification algorithms +├── 5-Clustering/ # Clustering techniques +├── 6-NLP/ # Natural Language Processing +├── 7-TimeSeries/ # Time series forecasting +├── 8-Reinforcement/ # Reinforcement learning +├── 9-Real-World/ # Real-world ML applications +├── quiz-app/ # Vue.js quiz application +├── translations/ # Auto-generated translations +└── sketchnotes/ # Visual learning aids +``` + +ថតមេរៀនរៀងរាល់មេរៀនធម្មតានឹងមាន៖ +- `README.md` - មាតិកាមេរៀនសំខាន់ +- `notebook.ipynb` - សៀវភៅកិច្ចការចេញពី Jupyter Python +- `solution/` - កូដដំណោះស្រាយ (Python និង R) +- `assignment.md` - លំហាត់អនុវត្ត +- `images/` - ឯកសារទ្រព្យសម្បត្តិរូបភាព + +## Setup Commands + +### For Python Lessons + +មេរៀនភាគច្រើនប្រើសៀវភៅកិច្ចការជាមួយ Jupyter។ តំឡើងអ្វីដែលត្រូវការ៖ + +```bash +# តំឡើង Python 3.8+ ប្រសិនបើមិនបានតំឡើងរួចជាមុន +python --version + +# តំឡើង Jupyter +pip install jupyter + +# តំឡើងបណ្ណាល័យ ML រួមៗ +pip install scikit-learn pandas numpy matplotlib seaborn + +# សម្រាប់មេរៀនជាក់លាក់ សូមពិនិត្យតម្រូវការជាក់លាក់សម្រាប់មេរៀននោះ +# ឧទាហរណ៍៖ មេរៀនកម្មវិធីវេប +pip install flask +``` + +### For R Lessons + +មេរៀន R ស្ថិតក្នុងថត `solution/R/` ជាឯកសារ `.rmd` ឬ `.ipynb`៖ + +```bash +# ដំឡើង R និងកញ្ចប់ដែលត្រូវការ +# នៅក្នុងកុងសូល R: +install.packages(c("tidyverse", "tidymodels", "caret")) +``` + +### For Quiz Application + +កម្មវិធីសាកល្បងគឺនូវកម្មវិធី Vue.js ដែលស្ថិតនៅថត `quiz-app/`៖ + +```bash +cd quiz-app +npm install +``` + +### For Documentation Site + +ដើម្បីរត់គេហទំព័រឯកសារនៅក្នុងម៉ាស៊ីនកុំព្យូទ័រ៖ + +```bash +# ដំឡើង Docsify +npm install -g docsify-cli + +# សេវាកម្មពីឫសហាងស្តុក +docsify serve + +# ចូលប្រើនៅ http://localhost:3000 +``` + +## Development Workflow + +### Working with Lesson Notebooks + +១. ទៅកាន់ថតមេរៀន (ឧ. `2-Regression/1-Tools/`) +២. បើកសៀវភៅកិច្ចការជា Jupyter: + ```bash + jupyter notebook notebook.ipynb + ``` + +៣. ធ្វើខ្សែសំរាប់កម្រិតមេរៀននិងលំហាត់ +៤. ពិនិត្យដំណោះស្រាយក្នុងថត `solution/` ប្រសិនបើចាំបាច់ + +### Python Development + +- មេរៀនប្រើបណ្ណាល័យវិទ្យាសាស្ដ្រទិន្នន័យ Python ស្តង់ដារ +- សៀវភៅកិច្ចការជា Jupyter សម្រាប់សិក្សាផ្ទាល់ +- កូដដំណោះស្រាយមានក្នុងថត `solution/` រាល់មេរៀន + +### R Development + +- មេរៀន R មានទ្រង់ទ្រាយ `.rmd` (R Markdown) +- ដំណោះស្រាយស្ថិតនៅក្នុងថត `solution/R/` +- ប្រើ RStudio ឬ Jupyter ជាមួយកឺណែល R ដើម្បីរត់សៀវភៅ R + +### Quiz Application Development + +```bash +cd quiz-app + +# ចាប់ផ្តើមម៉ាស៊ីនមេអភិវឌ្ឍន៍ +npm run serve +# ចូលប្រើនៅ http://localhost:8080 + +# សាងសង់សម្រាប់ផលិតកម្ម +npm run build + +# ពិនិត្យនិងជួសជុលឯកសារ +npm run lint +``` + +## Testing Instructions + +### Quiz Application Testing + +```bash +cd quiz-app + +# ពិនិត្យកូដ +npm run lint + +# សង់ដើម្បីផ្ទៀងផ្ទាត់ថាមិនមានកំហុសណាមួយ +npm run build +``` + +**Note**: នេះគឺជាឃ្លាំងមេរៀនសំរាប់ការអប់រំបំផុត។ គ្មានការធ្វើតេស្តស្វ័យប្រវត្តិសម្រាប់មាតិកាមេរៀនទេ។ ការផ្ទៀងផ្ទាត់ត្រូវបានធ្វើតាម៖ +- បញ្ចប់លំហាត់មេរៀន +- រត់កោដ្ឋ Jupyter ឲ្យបានជោគជ័យ +- ពិនិត្យលទ្ធផលអោយទៅតាមការរំពឹងទុកក្នុងដំណោះស្រាយ + +## Code Style Guidelines + +### Python Code +- បន្ទាប់បន្សាំនូវគន្លង PEP 8 +- ប្រើឈ្មោះអថេរបញ្ជាក់ច្បាស់ +- កំណត់សំគាល់សម្រាប់ដំណើរការលំបាក +- សៀវភៅ Jupyter ត្រូវមានកោដ្ឋ markdown សំរាប់ពន្យល់គំនិត + +### JavaScript/Vue.js (Quiz App) +- គោរពតាមម៉ូដែល Vue.js +- ការកំណត់ ESLint នៅក្នុង `quiz-app/package.json` +- រត់ `npm run lint` ដើម្បីពិនិត្យ និងជួសជុលបញ្ហា + +### Documentation +- ឯកសារ markdown គួរតែល្អ និងមានរចនាសម្ព័ន្ធល្អ +- រួមបញ្ចូលខេនដេមកូដនៅក្នុងប្រអប់បិទបើក +- ប្រើតំណភ្ជាប់ទាក់ទងសម្រាប់យោងខាងក្នុង +- គោរពទ្រង់ទ្រាយដែលមានរួចជាមុន + +## Build and Deployment + +### Quiz Application Deployment + +កម្មវិធីសាកល្បងអាចប្រើបានក្នុង Azure Static Web Apps៖ + +១. **លក្ខខណ្ឌមុន**៖ + - គណនី Azure + - ឃ្លាំង GitHub (បាន fork រួច) + +២. **បញ្ចូនទៅ Azure**៖ + - បង្កើតធនធាន Azure Static Web App + - ភ្ជាប់ទៅឃ្លាំង GitHub + - កំណត់ទីតាំងកម្មវិធី: `/quiz-app` + - កំណត់ទីតាំងលទ្ធផល: `dist` + - Azure បង្កើត GitHub Actions workflow ដោយស្វ័យប្រវត្តិ + +៣. **GitHub Actions Workflow**៖ + - គំនិតកម្មវិធី workflow នៅ `.github/workflows/azure-static-web-apps-*.yml` + - បង្កើត និងដាក់ចេញស្វ័យប្រវត្តិពេល push ទៅផ្នែក main + +### Documentation PDF + +បង្កើត PDF ពីឯកសារអ្នកតាំង៖ + +```bash +npm install +npm run convert +``` + +## Translation Workflow + +**សំខាន់**៖ ការប្រែបកបម្លែងនៅតែបន្តដោយស្វ័យប្រវត្តិតាមរយៈ GitHub Actions ប្រើកម្មវិធី Co-op Translator។ + +- ការប្រែបកបម្លែងបានបង្កើតឡើងដោយស្វ័យប្រវត្តិពេលមានការផ្លាស់ប្តូរនៅផ្នែក `main` +- **សូមមិន​ប្រែទាំងអស់ដោយដៃ** - ប្រព័ន្ធបានដោះស្រាយនេះ +- កម្មវិធី workflow មាននៅ `.github/workflows/co-op-translator.yml` +- ប្រើសេវា AI/OpenAI របស់ Azure សម្រាប់បកប្រែ +- គាំទ្រភាសាជាង ៤០ + +## Contributing Guidelines + +### For Content Contributors + +១. **ធ្វើ fork** ឃ្លាំងហើយបង្កើតសាខាកំណត់ឡើងវិញ +២. **បង្កើតការផ្លាស់ប្តូរមេរៀន** ប្រសិនបើបន្ថែម/ធ្វើបច្ចុប្បន្នភាពមេរៀន +៣. **កុំដូរ ឯកសារប្រែ** - ពួកវាត្រូវបានបង្កើតស្វ័យប្រវត្តិ +៤. **ធ្វើតេស្តកូដ** - បញ្ចប់ការរត់នៃកោដ្ឋឲ្យបានជោគជ័យ +៥. **ពិនិត្យតំណភ្ជាប់ និងរូបភាព** ឲ្យបានត្រឹមត្រូវ +៦. **ដាក់ស្នើ pull request** ជាមួយការពិពណ៌នាច្បាស់លាស់ + +### Pull Request Guidelines + +- **ទ្រង់ទ្រាយចំណងជើង**៖ `[ផ្នែក] សេចក្ដីពិពណ៌នាខ្លីអំពីការផ្លាស់ប្តូរ` + - ឧ.៖ `[Regression] កែសម្រួលកំហុសពាក្យនៅមេរៀនលេខ ៥` + - ឧ.៖ `[Quiz-App] បច្ចុប្បន្នភាពអស់កល្បជំនួយ` +- **មុនដាក់ស្នើ**៖ + - ឆែកថាឲ្យកោដ្ឋ Jupyter រត់បានទាំងអស់ដោយគ្មានកំហុស + - រត់ `npm run lint` ប្រសិនបើកែប្រែកម្មវិធីសាកល្បង + - ពិនិត្យទ្រង់ទ្រាយ markdown + - សាកល្បងឧទាហរណ៍កូដថ្មីៗ +- **PR ត្រូវមាន**៖ + - ពិពណ៌នាអំពីការផ្លាស់ប្តូរ + - ហេតុផលនៃការផ្លាស់ប្តូរ + - រូបថតផ្ទាំងពេល UI ផ្លាស់ប្តូរ +- **Code of Conduct**៖ គោរពតាម [Microsoft Open Source Code of Conduct](CODE_OF_CONDUCT.md) +- **CLA**៖ អ្នកត្រូវចុះហត្ថបទ Contributor License Agreement + +## Lesson Structure + +រៀងរាល់មេរៀនមានលំនាំដូចតទៅ៖ + +១. **សាកល្បងមុនបង្ហាញមេរៀន** - តេស្តចំណេះដឹងមូលដ្ឋាន +២. **មាតិកាមេរៀន** - វិធានការនិងពណ៌នាច្បាស់លាស់ +៣. **ការបង្ហាញកូដ** - ឧទាហរណ៍អនុវត្តក្នុងសៀវភៅកិច្ចការចេញពីសៀវភៅ +៤. **ការត្រួតពិនិត្យចំណេះដឹង** - បញ្ជាក់ការយល់ដឹងរបស់អ្នកសិក្សា +៥. **សកម្មភាពប défi** - អនុវត្តគំនិតដោយឯករាជ្យ +៦. **ការងារសិក្សា** - លំហាត់បន្ថែម +៧. **សាកល្បងក្រោយបង្ហាញមេរៀន** - វាស់តម្លៃលទ្ធផលការសិក្សា + +## Common Commands Reference + +```bash +# Python/Jupyter +jupyter notebook # ចាប់ផ្តើមម៉ាស៊ីនបម្រើ Jupyter +jupyter notebook notebook.ipynb # បើកសៀវភៅកំណត់សម្រាប់ជាក់លាក់ +pip install -r requirements.txt # ដំឡើង依赖项 (នៅពេលមាន) + +# កម្មវិធីសំណួរ +cd quiz-app +npm install # ដំឡើង依赖项 +npm run serve # ម៉ាស៊ីនបម្រើអភិវឌ្ឍន៍ +npm run build # សង់ការផលិត +npm run lint # ពិនិត្យនិងជួសជុលកូដ + +# ឯកសារ +docsify serve # បម្រើឯកសារនៅលើម៉ាស៊ីនដំណើរការផ្ទាល់ +npm run convert # បង្កើតឯកសារ PDF + +# ដំណើរការការងារ Git +git checkout -b feature/my-change # បង្កើតសាខាឯកសារ +git add . # រៀបចំការផ្លាស់ប្ដូរ +git commit -m "Description" # ប្តឹងការផ្លាស់ប្ដូរ +git push origin feature/my-change # ទំនាក់ទំនងទៅពីចម្ងាយ +``` + +## Additional Resources + +- **Microsoft Learn Collection**: [ម៉ូឌុល ML សម្រាប់អ្នកចាប់ផ្តើម](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- **កម្មវិធីសាកល្បង**: [ការសាកល្បងអនឡាញ](https://ff-quizzes.netlify.app/en/ml/) +- **ពិភាក្សាជួយគ្នា**: [GitHub Discussions](https://github.com/microsoft/ML-For-Beginners/discussions) +- **វីដេអូមើលឆ្លងកាត់**: [Playlists YouTube](https://aka.ms/ml-beginners-videos) + +## Key Technologies + +- **Python**: ភាសាសំខាន់សម្រាប់មេរៀន ML (Scikit-learn, Pandas, NumPy, Matplotlib) +- **R**: ជម្រើសផ្សេងក្នុងការប្រើ tidyverse, tidymodels, caret +- **Jupyter**: សៀវភៅកិច្ចការផ្លូវចូលសម្រាប់មេរៀន Python +- **R Markdown**: ឯកសារសម្រាប់មេរៀន R +- **Vue.js 3**: ស៊ុមកម្មវិធីសាកល្បង +- **Flask**: ស៊ុមកម្មវិធីតំបន់វេបសម្រាប់ដាក់ម៉ូដែល ML +- **Docsify**: កម្មវិធីបង្កើតគេហទំព័រកម្រងឯកសារ +- **GitHub Actions**: CI/CD និងការប្រែបកស្វ័យប្រវត្តិ + +## Security Considerations + +- **គ្មានសម្ងាត់ក្នុងកូដ**: មិនបណ្តេញ API key ឬស្នាក់ហេតុវិញ +- **ការពឹងផ្អែក**: រក្សាឲ្យ npm និង pip ឡើងវិញជានិច្ច +- **ការបញ្ចូលអ្នកប្រើ**: ឧទាហរណ៍វេប Flask មានការត្រួតពិនិត្យ input មូលដ្ឋាន +- **ទិន្នន័យរបស់អ្នកប្រើ**: ឧទាហរណ៍ទិន្នន័យពេញចិត្ត និងមិនសំខាន់ + +## Troubleshooting + +### Jupyter Notebooks + +- **បញ្ហាគឺណែល**: ចាប់ផ្តើមឡើងវិញ kernel ប្រសិនបើកោដ្ឋអង្គភាពផ្អាក: Kernel → Restart +- **បញ្ហានាំចូល**: ច្បាស់ថាមិនខ្វះការដំឡើងបណ្ណាល័យជាមួយ pip +- **បញ្ហាផ្លូវការដំណើរការ**: រត់សៀវភៅពីថតមេរបស់វា + +### Quiz Application + +- **npm install បរាជ័យ**: សម្អាត cache npm: `npm cache clean --force` +- **ប្រហោង port ប្រកែក**: ផ្លាស់ប្តូរប្រហោងជាមួយ: `npm run serve -- --port 8081` +- **បញ្ហាការសង់**: លុប `node_modules` ហើយដំឡើងឡើងវិញ: `rm -rf node_modules && npm install` + +### R Lessons + +- **កញ្ចប់មិនមានជារៀងរាល់ថ្ងៃ**: ដំឡើងជាមួយ: `install.packages("package-name")` +- **ការបម្រុង RMarkdown**: ប្រាកដថាកញ្ចប់ rmarkdown ត្រូវបានដំឡើង +- **បញ្ហាគឺណែល**: អាចត្រូវដំឡើង IRkernel សម្រាប់ Jupyter + +## Project-Specific Notes + +- នេះជាកម្មវិធីសិក្សាទូទៅ មិនមែនគឺកូដផលិតកម្ម +- ផ្តោតលើការយល់ដឹងគំនិត ML តាមការអនុវត្តទាំងអស់ +- ឧទាហរណ៍កូដផ្តោតលើភាពវចនាធិប្បាយល្អ +- មេរៀនភាគច្រើនមានតែម្ដង ហើយអាចបញ្ចប់ដោយខ្លួនឯង +- បានផ្តល់ដំណោះស្រាយ ប៉ុន្តែអ្នកសិក្សាគួរព្យាយាមលំហាត់ជាមុន +- ឃ្លាំងប្រើ Docsify សម្រាប់បង្កើតគេហទំព័រឯកសារដោយគ្មានដំណើរការសង់ +- សេចក្ដីសង្ខេបជារូបភាព (Sketchnotes) ផ្តល់ការពន្យល់យ៉ាងច្បាស់អំពីគំនិត +- គាំទ្រភាសាច្រើនធ្វើឲ្យមាតិកាដំណើរការជាសកល + +--- + + +**ការជម្រាបជូន**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមកត់សម្គាល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុសឬភាពមិនត្រឹមត្រូវខ្លះ។ ឯកសារដើមក្នុងភាសាម្ចាស់ដើមគួរត្រូវបានគេយកសម្រាប់ប្រភពត្រឹមត្រូវជាចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមផ្តល់អនុសាសន៍ការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសៗណាមួយ ដែលបណ្តាលមកពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/CODE_OF_CONDUCT.md b/translations/km/CODE_OF_CONDUCT.md new file mode 100644 index 000000000..da598eac6 --- /dev/null +++ b/translations/km/CODE_OF_CONDUCT.md @@ -0,0 +1,16 @@ +# លក្ខខណ្ឌការប្រើប្រាស់កូដបើកធ្វើការដោយ Microsoft + +គម្រោងនេះ​បានអនុម័តលក្ខខណ្ឌការប្រើប្រាស់កូដបើកធ្វើការដោយ Microsoft [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)។ + +ធនធាន៖ + +- [លក្ខខណ្ឌការប្រើប្រាស់កូដបើកធ្វើការដោយ Microsoft](https://opensource.microsoft.com/codeofconduct/) +- [សំណួរញឹកញាប់អំពីលក្ខខណ្ឌការប្រើប្រាស់កូដ Microsoft](https://opensource.microsoft.com/codeofconduct/faq/) +- តំណក់បញ្ហា ឬសំណួរទៅ [opencode@microsoft.com](mailto:opencode@microsoft.com) + +--- + + +**ការបញ្ចេញយោបល់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំឲ្យបានភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលមានភាសាដើមគឺត្រូវបានគេពិចារណាថាជាផ្លូវការ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុស ដោយសារ​ការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/CONTRIBUTING.md b/translations/km/CONTRIBUTING.md new file mode 100644 index 000000000..66ab9b02d --- /dev/null +++ b/translations/km/CONTRIBUTING.md @@ -0,0 +1,18 @@ +# ការរួមចំណែក + +គម្រោងនេះស្វាគមន៍ការចូលរួម និងការផ្ដល់យោបល់។ ការចូលរួមភាគច្រើនតម្រូវឱ្យអ្នកយល់ព្រមលើសន្ធិសញ្ញាអ្នករួមចំណែក (CLA) ដែលប្រកាសថាអ្នកមានសិទ្ធិ ហើយពិតប្រាកដថា អ្នកផ្ដល់សិទ្ធិឱ្យយើងប្រើប្រាស់ការរួមចំណែករបស់អ្នក។ សម្រាប់ព័ត៌មានលម្អិត ទៅកាន់ https://cla.microsoft.com។ + +> សំខាន់៖ ពេលបកប្រែអត្ថបទនៅក្នុងហាងសម្រង់នេះ សូមប្រាកដថា អ្នកមិនប្រើការបកប្រែដោយម៉ាស៊ីនទេ។ យើងនឹងបញ្ជាក់ការបកប្រែតាមសហគមន៍ ដូច្នេះសូមចូលរួមបកប្រែតែភាសាដែលអ្នកមានជំនាញប៉ុណ្ណោះ។ + +ពេលអ្នកដាក់សំណើ pull request មួយ CLA-bot នឹងកំណត់ដោយស្វ័យប្រវត្តិនិងកំណត់ថាតើអ្នកត្រូវផ្ដល់ CLA ឬអត់ ហើយតុបតែង PR តាមដែលសមរម្យ (ឧ. ស្លាក, មតិ)។ គ្រាន់តែតាមដានសេចក្តីណែនាំដែលប៉ុស្តិ៍ផ្ដល់ឱ្យ។ អ្នកត្រូវធ្វើបែបនេះតែមួយដងតែមួយសម្រាប់គ្រប់ហាងសម្រង់ដែលប្រើ CLA របស់យើង។ + +គម្រោងនេះបានទទួលយក [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)។ +សម្រាប់ព័ត៌មានបន្ថែម សូមមើល [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +ឬទំនាក់ទំនង [opencode@microsoft.com](mailto:opencode@microsoft.com) សំរាប់សំណួរឬមតិយោបល់បន្ថែម។ + +--- + + +**ពាក្យប្រកាស**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវក៏ដោយ សូមយល់ឲ្យបានជាក់លាក់ថា ការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមដែលមានភាសាដើមគឺជាផ្នែកមូលដ្ឋានដែលត្រូវទុកចិត្ត។ សម្រាប់ព័ត៌មានសំខាន់ សូមប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសដែលកើតមានដោយសារការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/PyTorch_Fundamentals.ipynb b/translations/km/PyTorch_Fundamentals.ipynb new file mode 100644 index 000000000..beda54acd --- /dev/null +++ b/translations/km/PyTorch_Fundamentals.ipynb @@ -0,0 +1,2834 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [], + "gpuType": "T4", + "authorship_tag": "ABX9TyOgv0AozH1FKQBD+RkgT2bV", + "include_colab_link": true + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "accelerator": "GPU" + }, + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "view-in-github", + "colab_type": "text" + }, + "source": [ + "\"បើក\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "EHh5JllMh1rG", + "outputId": "f55755ad-c369-414c-85ec-6e9d4f061a02", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } + }, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'2.2.1+cu121'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 1 + } + ], + "source": [ + "import torch\n", + "torch.__version__" + ] + }, + { + "cell_type": "code", + "source": [ + "print(\"I am excited to run this\")" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "UPlb-duwXAfz", + "outputId": "cfd687e4-1238-49f4-ab6b-ee1305b740d2" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "I am excited to run this\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import torch\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "print(torch.__version__)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "byWVlJ9wXDSk", + "outputId": "fd74a5c4-4d4a-41b2-ef3c-562ea3e4811f" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "2.2.1+cu121\n" + ] + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# **ការណែនាំអំពីតែនស័រ**\n" + ], + "metadata": { + "id": "Osm80zoEYklS" + } + }, + { + "cell_type": "code", + "source": [ + "# scalar\n", + "scalar = torch.tensor(7)\n", + "scalar" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "-o8wvJ-VXZmI", + "outputId": "558816f5-1205-4de1-fe1f-2f96e9bd79e6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(7)" + ] + }, + "metadata": {}, + "execution_count": 4 + } + ] + }, + { + "cell_type": "code", + "source": [ + "scalar.ndim" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "mCZ2tXC4Y_Sg", + "outputId": "2d86dbdc-56e1-45c6-d3dd-14515f2a457a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ] + }, + { + "cell_type": "code", + "source": [ + "scalar.item()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ssN00By0ZQgS", + "outputId": "490f40d1-5135-4969-a6d3-c8c902cdc473" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "7" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# vector\n", + "vector = torch.tensor([7, 7])\n", + "vector\n", + "#vector.ndim\n", + "#vector.item()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Bws__5wlZnmF", + "outputId": "944e38f9-5ba1-4ddc-a9c6-cfb6a19bb488" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([7, 7])" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ] + }, + { + "cell_type": "code", + "source": [ + "vector.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9pjCvnsZZzNG", + "outputId": "e030a4da-8f81-4858-fbce-86da2aaafe52" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.Size([2])" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Matrix\n", + "MATRIX = torch.tensor([[7, 8],[9, 10]])\n", + "MATRIX" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "a747hI9SaBGW", + "outputId": "af835ddb-81ff-4981-badb-441567194d15" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[ 7, 8],\n", + " [ 9, 10]])" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ] + }, + { + "cell_type": "code", + "source": [ + "MATRIX.ndim" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XdTfFa7vaRUj", + "outputId": "0fbbab9c-8263-4cad-a380-0d2a16ca499e" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "source": [ + "MATRIX[0]\n", + "MATRIX[1]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "TFeD3jSDafm7", + "outputId": "69b44ab3-5ba7-451a-c6b2-f019a03d0c96" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([ 9, 10])" + ] + }, + "metadata": {}, + "execution_count": 11 + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Tensor\n", + "TENSOR = torch.tensor([[[1, 2, 3],[3,6,9], [2,4,5]]])\n", + "TENSOR" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ic3cE47tah42", + "outputId": "f250e295-91de-43ec-9d80-588a6fe0abde" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[[1, 2, 3],\n", + " [3, 6, 9],\n", + " [2, 4, 5]]])" + ] + }, + "metadata": {}, + "execution_count": 12 + } + ] + }, + { + "cell_type": "code", + "source": [ + "TENSOR.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Wvjf5fczbAM1", + "outputId": "9c72b5b8-bafe-4ae7-9883-b051e209eada" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.Size([1, 3, 3])" + ] + }, + "metadata": {}, + "execution_count": 13 + } + ] + }, + { + "cell_type": "code", + "source": [ + "TENSOR.ndim" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "mwtXZwiMbN3m", + "outputId": "331a5e36-b1b0-4a5f-a9b8-e7049cbaa8f9" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "3" + ] + }, + "metadata": {}, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "source": [ + "TENSOR[0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vzdZu_IfbP3J", + "outputId": "e24e7e71-e365-412d-ff50-fc094b56d2f3" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[1, 2, 3],\n", + " [3, 6, 9],\n", + " [2, 4, 5]])" + ] + }, + "metadata": {}, + "execution_count": 15 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# តង់ស័រប្រហោង\n" + ], + "metadata": { + "id": "A8OL9eWfcRrJ" + } + }, + { + "cell_type": "code", + "source": [ + "random_tensor = torch.rand(3,4)\n", + "random_tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hAqSDE1EcVS_", + "outputId": "946171c3-d054-400c-f893-79110356888c" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[0.4414, 0.7681, 0.8385, 0.3166],\n", + " [0.0468, 0.5812, 0.0670, 0.9173],\n", + " [0.2959, 0.3276, 0.7411, 0.4643]])" + ] + }, + "metadata": {}, + "execution_count": 16 + } + ] + }, + { + "cell_type": "code", + "source": [ + "random_tensor.ndim" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "g4fvPE5GcwzP", + "outputId": "8737f36b-6864-4059-eaed-6f9156c22306" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "2" + ] + }, + "metadata": {}, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "source": [ + "random_tensor.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XsAg99QmdAU6", + "outputId": "35467c11-257c-4f16-99aa-eca930bcbc36" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.Size([3, 4])" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "source": [ + "random_tensor.size()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cii1pNdVdB68", + "outputId": "fc8d2de6-9215-43de-99f7-7b0d7f7d20fa" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.Size([3, 4])" + ] + }, + "metadata": {}, + "execution_count": 19 + } + ] + }, + { + "cell_type": "code", + "source": [ + "random_image_tensor = torch.rand(size=(3, 224, 224)) #color channels, height, width\n", + "random_image_tensor.ndim, random_image_tensor.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "aTKq2j0cdDjb", + "outputId": "6be42057-20b9-4faf-d79d-8b65c42cc27e" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(3, torch.Size([3, 224, 224]))" + ] + }, + "metadata": {}, + "execution_count": 20 + } + ] + }, + { + "cell_type": "code", + "source": [ + "random_tensor_ofownsize = torch.rand(size=(5,10,10))\n", + "random_tensor_ofownsize.ndim, random_tensor_ofownsize.shape\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "IyhDdj-Pd6nC", + "outputId": "43e5e334-6d4d-4b67-f87d-7d364c6d8c67" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(3, torch.Size([5, 10, 10]))" + ] + }, + "metadata": {}, + "execution_count": 21 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "តង់ស័រលេខសូន្យ និងមួយ\n" + ], + "metadata": { + "id": "UOJW08uOert_" + } + }, + { + "cell_type": "code", + "source": [ + "zero = torch.zeros(size=(3, 4))\n", + "zero" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uGvXtaXyefie", + "outputId": "d40d3e28-8667-4d2f-8b62-f0829c6162ad" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[0., 0., 0., 0.],\n", + " [0., 0., 0., 0.],\n", + " [0., 0., 0., 0.]])" + ] + }, + "metadata": {}, + "execution_count": 22 + } + ] + }, + { + "cell_type": "code", + "source": [ + "zero*random_tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "OyUkUPkDe0uH", + "outputId": "26c2e4be-36ba-4c6c-9a90-2704ec135828" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[0., 0., 0., 0.],\n", + " [0., 0., 0., 0.],\n", + " [0., 0., 0., 0.]])" + ] + }, + "metadata": {}, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "source": [ + "ones = torch.ones(size=(3, 4))\n", + "ones\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "y_Ac62Aqe82G", + "outputId": "291de5d9-b9df-49de-c9d1-d098e3e9f4d8" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[1., 1., 1., 1.],\n", + " [1., 1., 1., 1.],\n", + " [1., 1., 1., 1.]])" + ] + }, + "metadata": {}, + "execution_count": 24 + } + ] + }, + { + "cell_type": "code", + "source": [ + "ones.dtype" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "TvGOA9odfIEO", + "outputId": "45949ef4-6649-4b6c-d6af-2d4bfb8de832" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.float32" + ] + }, + "metadata": {}, + "execution_count": 25 + } + ] + }, + { + "cell_type": "code", + "source": [ + "ones*zero" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "--pTyge-fI-8", + "outputId": "c4d9bb7e-829b-43db-e2db-b1a2d64e61f0" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[0., 0., 0., 0.],\n", + " [0., 0., 0., 0.],\n", + " [0., 0., 0., 0.]])" + ] + }, + "metadata": {}, + "execution_count": 26 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "ជួររវាងតង់ស័រ, ដូចតង់ស័រ\n" + ], + "metadata": { + "id": "qDcc7Z36fSJF" + } + }, + { + "cell_type": "code", + "source": [ + "one_to_ten = torch.arange(start = 1, end = 11, step = 1)\n", + "one_to_ten" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "w3CZB4zUfR1s", + "outputId": "197fcba1-da0a-4b4a-ed11-3974bd6c01aa" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])" + ] + }, + "metadata": {}, + "execution_count": 27 + } + ] + }, + { + "cell_type": "code", + "source": [ + "ten_zeros = torch.zeros_like(one_to_ten)\n", + "ten_zeros" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "WZh99BwVfRy8", + "outputId": "51ef8bfb-6fa0-4099-ff66-b97d65b2ddea" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])" + ] + }, + "metadata": {}, + "execution_count": 28 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "ប្រភេទទិន្នន័យ Tensor\n" + ], + "metadata": { + "id": "pGGhgsbUgqbW" + } + }, + { + "cell_type": "code", + "source": [ + "float_32_tensor = torch.tensor([3.0, 6.0,9.0], dtype = None, device = None, requires_grad = False)\n", + "float_32_tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JORJl4XkfRsx", + "outputId": "71114171-0f49-481f-b6fc-6cb48e2fb895" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([3., 6., 9.])" + ] + }, + "metadata": {}, + "execution_count": 29 + } + ] + }, + { + "cell_type": "code", + "source": [ + "float_32_tensor.dtype" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "6wOPPwGyfRLn", + "outputId": "f23776a1-b682-404a-9f67-d5bcb0402666" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.float32" + ] + }, + "metadata": {}, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "source": [ + "float_16_tensor = float_32_tensor.type(torch.float16)\n", + "float_16_tensor.dtype" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "tFsHCvmZfOYe", + "outputId": "d3aa305a-7591-47f5-97fd-61bff60b44bd" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.float16" + ] + }, + "metadata": {}, + "execution_count": 31 + } + ] + }, + { + "cell_type": "code", + "source": [ + "float_16_tensor*float_32_tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "TQiCGTPuwq0q", + "outputId": "98750fce-1ca3-4889-e269-8b753efdea96" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([ 9., 36., 81.])" + ] + }, + "metadata": {}, + "execution_count": 32 + } + ] + }, + { + "cell_type": "code", + "source": [ + "int_32_tensor = torch.tensor([3, 6, 9], dtype = torch.int32)\n", + "int_32_tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "5hlrLvGUw5D_", + "outputId": "41d890a0-9aee-446c-d906-631ce2ab0995" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([3, 6, 9], dtype=torch.int32)" + ] + }, + "metadata": {}, + "execution_count": 33 + } + ] + }, + { + "cell_type": "code", + "source": [ + "int_32_tensor*float_32_tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ihApD9u3xTNW", + "outputId": "d295eed0-6996-4e0f-8502-ff4b55cd1373" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([ 9., 36., 81.])" + ] + }, + "metadata": {}, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x = torch.arange(0,100,10)" + ], + "metadata": { + "id": "utKhlb_KxWDQ" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "x" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "p78D74E9Rj7Y", + "outputId": "781a1614-a900-41f5-9e5d-358f0b2390aa" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])" + ] + }, + "metadata": {}, + "execution_count": 36 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x.min()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "4BcSs5NeRkcj", + "outputId": "3f24a8dc-58e9-4a5f-9834-e85856a34f9d" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(0)" + ] + }, + "metadata": {}, + "execution_count": 37 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x.max()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hinqvXVLRm4q", + "outputId": "5c7d8a53-3913-4ac1-bba3-5ba8ff68250a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(90)" + ] + }, + "metadata": {}, + "execution_count": 38 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.mean(x.type(torch.float32))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "k7okc0_vRpnB", + "outputId": "91e5494f-dc57-417c-ea4d-25dbc547c893" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(45.)" + ] + }, + "metadata": {}, + "execution_count": 39 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x.type(torch.float32).mean()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "29QcDTjHRq10", + "outputId": "62937c6c-78e0-49f2-dde3-1543ee8f7907" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(45.)" + ] + }, + "metadata": {}, + "execution_count": 40 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x.sum()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "wlpY_G_sbdKF", + "outputId": "475d8258-af65-4011-a258-b93d4d8142d4" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(450)" + ] + }, + "metadata": {}, + "execution_count": 41 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x.argmax()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "GT6HJzwhbk4n", + "outputId": "2e455c20-c322-4bcf-d07c-1259d3ccefc6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(9)" + ] + }, + "metadata": {}, + "execution_count": 42 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x.argmin()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "egL3oi2Mb19P", + "outputId": "f71fb32f-6338-44a3-b377-75bea0a3ab54" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(0)" + ] + }, + "metadata": {}, + "execution_count": 43 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "p2U8DZKib3DP", + "outputId": "b9f613b9-74e9-45f4-ed01-05babb6a6793" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(0)" + ] + }, + "metadata": {}, + "execution_count": 44 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[9]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "24qBFlGYcABe", + "outputId": "5813cfcb-7f63-4bd7-ee46-f95ccbfda939" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(90)" + ] + }, + "metadata": {}, + "execution_count": 45 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x = torch.arange(1, 10)\n", + "x.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "0GPOxEzkcBHO", + "outputId": "aefbd903-4f4c-4d2c-c90f-eccd682fe018" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "torch.Size([9])" + ] + }, + "metadata": {}, + "execution_count": 46 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_reshaped = x.reshape(1,9)\n", + "x_reshaped, x_reshaped.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "spmRgQjwddgp", + "outputId": "85a7c55c-2909-4ea2-fc68-386dddc65742" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(tensor([[1, 2, 3, 4, 5, 6, 7, 8, 9]]), torch.Size([1, 9]))" + ] + }, + "metadata": {}, + "execution_count": 47 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_reshaped.view(1,9)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "tH2ahWGydqqP", + "outputId": "65d92263-4fc4-434a-c06d-c5e08436f7fe" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[1, 2, 3, 4, 5, 6, 7, 8, 9]])" + ] + }, + "metadata": {}, + "execution_count": 48 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_stacked = torch.stack([x, x, x, x], dim = 1)\n", + "x_stacked" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "jgCeJcaud_-1", + "outputId": "7f293a37-6ef1-43b6-aee5-9d6d91c94f9e" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[1, 1, 1, 1],\n", + " [2, 2, 2, 2],\n", + " [3, 3, 3, 3],\n", + " [4, 4, 4, 4],\n", + " [5, 5, 5, 5],\n", + " [6, 6, 6, 6],\n", + " [7, 7, 7, 7],\n", + " [8, 8, 8, 8],\n", + " [9, 9, 9, 9]])" + ] + }, + "metadata": {}, + "execution_count": 49 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_stacked.squeeze()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "XhJHIK6cfPse", + "outputId": "06c47b89-3a9e-453e-bcc3-00cbcb0b8b49" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[1, 1, 1, 1],\n", + " [2, 2, 2, 2],\n", + " [3, 3, 3, 3],\n", + " [4, 4, 4, 4],\n", + " [5, 5, 5, 5],\n", + " [6, 6, 6, 6],\n", + " [7, 7, 7, 7],\n", + " [8, 8, 8, 8],\n", + " [9, 9, 9, 9]])" + ] + }, + "metadata": {}, + "execution_count": 50 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_stacked.unsqueeze(dim=1)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ej2c3Xxzf0tq", + "outputId": "94024061-eb37-446d-c4a8-e4d16cb6de81" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[[1, 1, 1, 1]],\n", + "\n", + " [[2, 2, 2, 2]],\n", + "\n", + " [[3, 3, 3, 3]],\n", + "\n", + " [[4, 4, 4, 4]],\n", + "\n", + " [[5, 5, 5, 5]],\n", + "\n", + " [[6, 6, 6, 6]],\n", + "\n", + " [[7, 7, 7, 7]],\n", + "\n", + " [[8, 8, 8, 8]],\n", + "\n", + " [[9, 9, 9, 9]]])" + ] + }, + "metadata": {}, + "execution_count": 52 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_stacked.squeeze()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "4DJYo1a0f5M0", + "outputId": "efca2b47-1b14-44de-9a9a-2c83629d153f" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[1, 1, 1, 1],\n", + " [2, 2, 2, 2],\n", + " [3, 3, 3, 3],\n", + " [4, 4, 4, 4],\n", + " [5, 5, 5, 5],\n", + " [6, 6, 6, 6],\n", + " [7, 7, 7, 7],\n", + " [8, 8, 8, 8],\n", + " [9, 9, 9, 9]])" + ] + }, + "metadata": {}, + "execution_count": 53 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_stacked.unsqueeze(dim=-2)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "J4iEjn2ah2HL", + "outputId": "22395593-7c16-4162-beae-dd2bbe7bda35" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[[1, 1, 1, 1]],\n", + "\n", + " [[2, 2, 2, 2]],\n", + "\n", + " [[3, 3, 3, 3]],\n", + "\n", + " [[4, 4, 4, 4]],\n", + "\n", + " [[5, 5, 5, 5]],\n", + "\n", + " [[6, 6, 6, 6]],\n", + "\n", + " [[7, 7, 7, 7]],\n", + "\n", + " [[8, 8, 8, 8]],\n", + "\n", + " [[9, 9, 9, 9]]])" + ] + }, + "metadata": {}, + "execution_count": 55 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import torch\n", + "tensor = torch.tensor([1, 2, 3])\n", + "tensor = tensor - 10\n", + "tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cFfiD7Nth7Z_", + "outputId": "1139e1f8-fc1a-46ca-d636-f2bc4fd2eef6" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([-9, -8, -7])" + ] + }, + "metadata": {}, + "execution_count": 7 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.mul(tensor, 10)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dyA7BM_GHhqE", + "outputId": "0e3b9671-d9e8-4a32-87bb-59bc05986142" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([-90, -80, -70])" + ] + }, + "metadata": {}, + "execution_count": 9 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.sub(tensor, 100)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "owtUsZ1KNegI", + "outputId": "189b7b23-0041-4e09-b991-cd209a48506a" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([-109, -108, -107])" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.add(tensor, 100)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "K5STXlQONsyc", + "outputId": "00cbb79a-0a1d-4e21-86ec-5c91c37a2d01" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([91, 92, 93])" + ] + }, + "metadata": {}, + "execution_count": 11 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.divide(tensor, 2)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xqMGnzIUNvp0", + "outputId": "c894cf3e-f148-45f8-cfc8-d78740735306" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([-4.5000, -4.0000, -3.5000])" + ] + }, + "metadata": {}, + "execution_count": 13 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.matmul(tensor, tensor)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "ruGzKpV8NyBc", + "outputId": "fddb63bf-006f-48b6-ae28-287fbcda8bc5" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(194)" + ] + }, + "metadata": {}, + "execution_count": 15 + } + ] + }, + { + "cell_type": "code", + "source": [ + "tensor@tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "8GS3r9yTeGfD", + "outputId": "c80b12ac-30b5-4f3d-c38c-9e41ba511b0e" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(194)" + ] + }, + "metadata": {}, + "execution_count": 16 + } + ] + }, + { + "cell_type": "code", + "source": [ + "%%time\n", + "tensor@tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "QmuYHqXTemC0", + "outputId": "402fe3ba-70b5-4bb2-c83b-254db84ff810" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "CPU times: user 622 µs, sys: 0 ns, total: 622 µs\n", + "Wall time: 516 µs\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(194)" + ] + }, + "metadata": {}, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "source": [ + "%%time\n", + "torch.matmul(tensor,tensor)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dGr1fzdNepd8", + "outputId": "97bd6c91-bc25-4b38-cdf5-f22dcdef243e" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "CPU times: user 424 µs, sys: 998 µs, total: 1.42 ms\n", + "Wall time: 1.43 ms\n" + ] + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(194)" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.rand(3,2)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "pGYDoK2gevfo", + "outputId": "2c8783d5-0453-47c5-c7ed-af10d25d6989" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[0.5999, 0.0073],\n", + " [0.9321, 0.3026],\n", + " [0.3463, 0.3872]])" + ] + }, + "metadata": {}, + "execution_count": 20 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.matmul(torch.rand(3,2), torch.rand(2,3))" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "KGBGQoB8e2DP", + "outputId": "4c2ef361-a2d0-41ee-c328-3992cbbc138d" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[0.3528, 0.1893, 0.0714],\n", + " [1.2791, 0.7110, 0.2563],\n", + " [0.8812, 0.4553, 0.1803]])" + ] + }, + "metadata": {}, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import torch" + ], + "metadata": { + "id": "ib8DMtkBe_LJ" + }, + "execution_count": 1, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "x = torch.rand(2,9)" + ], + "metadata": { + "id": "nJo8ZBdrQY1b" + }, + "execution_count": 2, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "x" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "wi6oRv4MQfgf", + "outputId": "55c99f55-31f6-4cf5-ba4e-19a47c3a0167" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[0.5894, 0.4391, 0.2018, 0.5417, 0.3844, 0.3592, 0.9209, 0.9269, 0.0681],\n", + " [0.0746, 0.1740, 0.6821, 0.6890, 0.0999, 0.7444, 0.2391, 0.4625, 0.8302]])" + ] + }, + "metadata": {}, + "execution_count": 3 + } + ] + }, + { + "cell_type": "code", + "source": [ + "y=torch.randn(2,3,5)\n", + "y" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Zpx8myAUQgoc", + "outputId": "07756d70-56bd-437c-c74e-9aecc1a77311" + }, + "execution_count": 5, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[[ 1.5552, -0.4877, 0.5175, -1.7958, -0.6187],\n", + " [-0.3359, -1.9710, 0.0112, -1.7578, -1.5295],\n", + " [ 0.0932, 1.4079, 0.9108, 0.3328, -0.6978]],\n", + "\n", + " [[-0.9406, -1.0809, -0.2595, 0.1282, 1.6605],\n", + " [ 1.1624, 1.0902, 1.7092, -0.2842, -1.3780],\n", + " [-0.1534, -1.2795, -0.5495, 0.9902, 0.1822]]])" + ] + }, + "metadata": {}, + "execution_count": 5 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_original = torch.rand(size=(224,224,3))\n", + "x_original" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "s4U-X9bJQnWe", + "outputId": "657a7a76-962c-4b41-a76b-902d0482266c" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[[0.4549, 0.6809, 0.2118],\n", + " [0.4824, 0.9008, 0.8741],\n", + " [0.1715, 0.1757, 0.1845],\n", + " ...,\n", + " [0.8741, 0.6594, 0.2610],\n", + " [0.0092, 0.1984, 0.1955],\n", + " [0.4236, 0.4182, 0.0251]],\n", + "\n", + " [[0.9174, 0.1661, 0.5852],\n", + " [0.1837, 0.2351, 0.3810],\n", + " [0.3726, 0.4808, 0.8732],\n", + " ...,\n", + " [0.6794, 0.0554, 0.9202],\n", + " [0.0864, 0.8750, 0.3558],\n", + " [0.8445, 0.9759, 0.4934]],\n", + "\n", + " [[0.1600, 0.2635, 0.7194],\n", + " [0.9488, 0.3405, 0.3647],\n", + " [0.6683, 0.5168, 0.9592],\n", + " ...,\n", + " [0.0521, 0.0140, 0.2445],\n", + " [0.3596, 0.3999, 0.2730],\n", + " [0.5926, 0.9877, 0.7784]],\n", + "\n", + " ...,\n", + "\n", + " [[0.4794, 0.5635, 0.3764],\n", + " [0.9124, 0.6094, 0.5059],\n", + " [0.4528, 0.4447, 0.5021],\n", + " ...,\n", + " [0.0089, 0.4816, 0.8727],\n", + " [0.2173, 0.6296, 0.2347],\n", + " [0.2028, 0.9931, 0.7201]],\n", + "\n", + " [[0.3116, 0.6459, 0.4703],\n", + " [0.0148, 0.2345, 0.7149],\n", + " [0.8393, 0.5804, 0.6691],\n", + " ...,\n", + " [0.2105, 0.9460, 0.2696],\n", + " [0.5918, 0.9295, 0.2616],\n", + " [0.2537, 0.7819, 0.4700]],\n", + "\n", + " [[0.6654, 0.1200, 0.5841],\n", + " [0.9147, 0.5522, 0.6529],\n", + " [0.1799, 0.5276, 0.5415],\n", + " ...,\n", + " [0.7536, 0.4346, 0.8793],\n", + " [0.3793, 0.1750, 0.7792],\n", + " [0.9266, 0.8325, 0.9974]]])" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_permuted=x_original.permute(2, 0, 1)\n", + "print(x_original.shape)\n", + "print(x_permuted.shape)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "DD19_zvbQzHo", + "outputId": "1d64ce1b-eb48-47e3-90b6-7f1340e7f2b2" + }, + "execution_count": 9, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "torch.Size([224, 224, 3])\n", + "torch.Size([3, 224, 224])\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_original[0,0,0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "NnPmMk4ZRF7w", + "outputId": "2cd5da7f-4a23-4a76-8c4a-bb982113f2a4" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(0.4549)" + ] + }, + "metadata": {}, + "execution_count": 10 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_permuted[0,0,0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Z0ylNoAARgTo", + "outputId": "ddca0298-cddf-4048-9b71-a791655e5bed" + }, + "execution_count": 11, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(0.4549)" + ] + }, + "metadata": {}, + "execution_count": 11 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_original[0,0,0]=0.989" + ], + "metadata": { + "id": "RXw0xXsDRi4L" + }, + "execution_count": 13, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "x_original[0,0,0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "1sFdV6wzRo3f", + "outputId": "1cf87d2c-6d88-453a-d136-0f625a2800f1" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(0.9890)" + ] + }, + "metadata": {}, + "execution_count": 14 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x_permuted[0,0,0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xTX-hx2SR1wp", + "outputId": "0d4908c4-c3bc-44e3-8ec6-1487104cc209" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(0.9890)" + ] + }, + "metadata": {}, + "execution_count": 15 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x=torch.arange(1,10).reshape(1,3,3)\n", + "x, x.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "mZomOe7gR4Q8", + "outputId": "0b3c922f-ec11-46de-b8a5-9f9533d866ad" + }, + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(tensor([[[1, 2, 3],\n", + " [4, 5, 6],\n", + " [7, 8, 9]]]),\n", + " torch.Size([1, 3, 3]))" + ] + }, + "metadata": {}, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "3y7v4SQvSBs1", + "outputId": "8c53307d-e628-404d-db66-56c6bdffab7c" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([[1, 2, 3],\n", + " [4, 5, 6],\n", + " [7, 8, 9]])" + ] + }, + "metadata": {}, + "execution_count": 19 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[0][0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "hf9uG4xLSNya", + "outputId": "3075bc42-9ffa-426b-8a86-95628ffcd824" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([1, 2, 3])" + ] + }, + "metadata": {}, + "execution_count": 21 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[0][0][0]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "zA4G2Se4SRB3", + "outputId": "324312d2-ed0a-49eb-f81f-e904e53992fe" + }, + "execution_count": 22, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(1)" + ] + }, + "metadata": {}, + "execution_count": 22 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[0][2][2]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Mwy3zmKKSdbk", + "outputId": "d35172c3-b099-40a6-ddf1-a453c2adfa44" + }, + "execution_count": 23, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor(9)" + ] + }, + "metadata": {}, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[:,1,1]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "fE3nCM1KS7XT", + "outputId": "01f5d755-9737-4235-9f73-dce89ff6ba16" + }, + "execution_count": 24, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([5])" + ] + }, + "metadata": {}, + "execution_count": 24 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[0,0,:]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "luNDINKNTTxp", + "outputId": "091195ef-2f71-4602-e95f-529a69193150" + }, + "execution_count": 25, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([1, 2, 3])" + ] + }, + "metadata": {}, + "execution_count": 25 + } + ] + }, + { + "cell_type": "code", + "source": [ + "x[0,:,2]" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "KG8A4xbfThCL", + "outputId": "5866bc41-9241-4619-be7b-e9206b3f80ab" + }, + "execution_count": 26, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([3, 6, 9])" + ] + }, + "metadata": {}, + "execution_count": 26 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import numpy as np" + ], + "metadata": { + "id": "CZ3PX0qlTwHJ" + }, + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "array = np.arange(1.0, 8.0)" + ], + "metadata": { + "id": "UOBeTumiT3Lf" + }, + "execution_count": 28, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "array" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "RzcO32E9UCQl", + "outputId": "430def24-c42c-461f-e5e7-398544c695d3" + }, + "execution_count": 29, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([1., 2., 3., 4., 5., 6., 7.])" + ] + }, + "metadata": {}, + "execution_count": 29 + } + ] + }, + { + "cell_type": "code", + "source": [ + "tensor = torch.from_numpy(array)\n", + "tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JJIL0q1DUC6O", + "outputId": "8a3b1d7c-4482-4d32-f34f-9212d9d3a177" + }, + "execution_count": 32, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([1., 2., 3., 4., 5., 6., 7.], dtype=torch.float64)" + ] + }, + "metadata": {}, + "execution_count": 32 + } + ] + }, + { + "cell_type": "code", + "source": [ + "array[3]=11.0" + ], + "metadata": { + "id": "j3Ce6q3DUIEK" + }, + "execution_count": 33, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "array" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "dc_BCVdjUsCc", + "outputId": "65537325-8b11-4f36-fc73-e56f30d6a036" + }, + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([ 1., 2., 3., 11., 5., 6., 7.])" + ] + }, + "metadata": {}, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "source": [ + "tensor" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "VG1e_eITUta2", + "outputId": "a26c5198-23b6-4a6d-d73a-ba20cd9782b8" + }, + "execution_count": 35, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([ 1., 2., 3., 11., 5., 6., 7.], dtype=torch.float64)" + ] + }, + "metadata": {}, + "execution_count": 35 + } + ] + }, + { + "cell_type": "code", + "source": [ + "tensor = torch.ones(7)\n", + "tensor, tensor.dtype\n", + "numpy_tensor = tensor.numpy()\n", + "numpy_tensor, numpy_tensor.dtype" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Swt8JF8vUuev", + "outputId": "c9e5bf6a-6d2c-41d6-8327-366867ffdd2d" + }, + "execution_count": 37, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(array([1., 1., 1., 1., 1., 1., 1.], dtype=float32), dtype('float32'))" + ] + }, + "metadata": {}, + "execution_count": 37 + } + ] + }, + { + "cell_type": "code", + "source": [ + "import torch\n", + "random_tensor_A = torch.rand(3,4)\n", + "random_tensor_B = torch.rand(3,4)\n", + "print(random_tensor_A)\n", + "print(random_tensor_B)\n", + "print(random_tensor_A == random_tensor_B)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uGcagTteVFTD", + "outputId": "49405790-08e7-4210-b7f1-f00b904c7eb9" + }, + "execution_count": 38, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tensor([[0.9870, 0.6636, 0.6873, 0.8863],\n", + " [0.8386, 0.4169, 0.3587, 0.0265],\n", + " [0.2981, 0.6025, 0.5652, 0.5840]])\n", + "tensor([[0.9821, 0.3481, 0.0913, 0.4940],\n", + " [0.7495, 0.4387, 0.9582, 0.8659],\n", + " [0.5064, 0.6919, 0.0809, 0.9771]])\n", + "tensor([[False, False, False, False],\n", + " [False, False, False, False],\n", + " [False, False, False, False]])\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "RANDOM_SEED = 42\n", + "torch.manual_seed(RANDOM_SEED)\n", + "random_tensor_C = torch.rand(3,4)\n", + "torch.manual_seed(RANDOM_SEED)\n", + "random_tensor_D = torch.rand(3,4)\n", + "print(random_tensor_C)\n", + "print(random_tensor_D)\n", + "print(random_tensor_C == random_tensor_D)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "HznyXyEaWjLM", + "outputId": "25956434-01b6-4059-9054-c9978884ddc1" + }, + "execution_count": 46, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tensor([[0.8823, 0.9150, 0.3829, 0.9593],\n", + " [0.3904, 0.6009, 0.2566, 0.7936],\n", + " [0.9408, 0.1332, 0.9346, 0.5936]])\n", + "tensor([[0.8823, 0.9150, 0.3829, 0.9593],\n", + " [0.3904, 0.6009, 0.2566, 0.7936],\n", + " [0.9408, 0.1332, 0.9346, 0.5936]])\n", + "tensor([[True, True, True, True],\n", + " [True, True, True, True],\n", + " [True, True, True, True]])\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "!nvidia-smi" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vltPTh0YXJSt", + "outputId": "807af6dc-a9ca-4301-ec32-b688dbde8be8" + }, + "execution_count": 2, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Thu May 23 02:57:59 2024 \n", + "+---------------------------------------------------------------------------------------+\n", + "| NVIDIA-SMI 535.104.05 Driver Version: 535.104.05 CUDA Version: 12.2 |\n", + "|-----------------------------------------+----------------------+----------------------+\n", + "| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |\n", + "| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |\n", + "| | | MIG M. |\n", + "|=========================================+======================+======================|\n", + "| 0 Tesla T4 Off | 00000000:00:04.0 Off | 0 |\n", + "| N/A 60C P8 11W / 70W | 0MiB / 15360MiB | 0% Default |\n", + "| | | N/A |\n", + "+-----------------------------------------+----------------------+----------------------+\n", + " \n", + "+---------------------------------------------------------------------------------------+\n", + "| Processes: |\n", + "| GPU GI CI PID Type Process name GPU Memory |\n", + "| ID ID Usage |\n", + "|=======================================================================================|\n", + "| No running processes found |\n", + "+---------------------------------------------------------------------------------------+\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import torch\n", + "torch.cuda.is_available()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "L6mMyPDyYh1j", + "outputId": "279c5dd8-c2a8-4fbd-f321-2f5d7c6e90e6" + }, + "execution_count": 3, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "True" + ] + }, + "metadata": {}, + "execution_count": 3 + } + ] + }, + { + "cell_type": "code", + "source": [ + "device = \"cuda\" if torch.cuda.is_available() else \"cpu\"\n", + "device" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + }, + "id": "oOdiYa7ZYytx", + "outputId": "d73b04fc-8963-4826-9722-08d118d5ab91" + }, + "execution_count": 5, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "'cuda'" + ], + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + } + }, + "metadata": {}, + "execution_count": 5 + } + ] + }, + { + "cell_type": "code", + "source": [ + "torch.cuda.device_count()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "vOdsazLqZFM5", + "outputId": "8189cd6a-9017-4663-a652-3e15c517d9c3" + }, + "execution_count": 6, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "1" + ] + }, + "metadata": {}, + "execution_count": 6 + } + ] + }, + { + "cell_type": "code", + "source": [ + "tensor = torch.tensor([1,2,3], device = \"cpu\")\n", + "print(tensor, tensor.device)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "cdik9Vw3ZMv0", + "outputId": "044a68fd-83a1-409d-8e3b-655142ca0270" + }, + "execution_count": 7, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "tensor([1, 2, 3]) cpu\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "tensor_on_gpu = tensor.to(device)\n", + "tensor_on_gpu" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "Zmp835rrZp-z", + "outputId": "37fa3413-18a3-47bf-ae51-5b36ff85a3ef" + }, + "execution_count": 8, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "tensor([1, 2, 3], device='cuda:0')" + ] + }, + "metadata": {}, + "execution_count": 8 + } + ] + }, + { + "cell_type": "code", + "source": [ + "tensor_on_gpu.numpy()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 159 + }, + "id": "jhriaa8uZ1yM", + "outputId": "bc5a3226-1a12-4fea-8769-a44f21cdc323" + }, + "execution_count": 10, + "outputs": [ + { + "output_type": "error", + "ename": "TypeError", + "evalue": "can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first.", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mtensor_on_gpu\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m: can't convert cuda:0 device type tensor to numpy. Use Tensor.cpu() to copy the tensor to host memory first." + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "tensor_on_cpu = tensor_on_gpu.cpu().numpy()" + ], + "metadata": { + "id": "LHGXK3GgaOzL" + }, + "execution_count": 12, + "outputs": [] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "j-El4LlCajfq" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "---\n\n\n**ការបញ្ជាក់**៖ \nឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈ​ពេល​ដែល​យើង​ព្យាយាម​ឲ្យ​បាន​ការត្រឹមត្រូវ​ខ្ពស់ សូមចំណាំថា​ការ​បកប្រែ​ដោយ​ស្វ័យប្រវត្តិ​អាច​មាន​កំហុស ឬ​ការ​យល់បញ្ច្រាសបាន។ ឯកសារដើមនៅក្នុងភាសាដើមរបស់ខ្លួនគួរត្រូវបានគេចាត់ទុកជាបរិញ្ញាបត្រចម្បង។ សម្រាប់ព័ត៌មានសំខាន់ៗ យើងសូមណែនាំឱ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការយល់ព្រមខុស​ពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។\n\n" + ] + } + ] +} \ No newline at end of file diff --git a/translations/km/README.md b/translations/km/README.md new file mode 100644 index 000000000..4ed9c4ec3 --- /dev/null +++ b/translations/km/README.md @@ -0,0 +1,216 @@ +[![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/) + +### 🌐 ការគាំទ្រភាសាច្រើន + +#### គាំទ្រដោយ GitHub Action (ស្វ័យប្រវត្តិ និងតែងតែទាន់សម័យ) + + +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](./README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) + +> **ចង់ Clone នៅក្នុងកុំព្យូទ័ររបស់អ្នក?** +> +> តំបន់រក្សាទុកនេះមានការប្រែសម្រួលជាភាសាច្រើនជាង 50 ដែលធ្វើឲ្យទំហំទាញយកធំជាងមុន។ ដើម្បី clone ដោយមិនមានការប្រែសម្រួល សូមប្រើ sparse checkout: +> +> **Bash / macOS / Linux:** +> ```bash +> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git +> cd ML-For-Beginners +> git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' +> ``` +> +> **CMD (Windows):** +> ```cmd +> git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git +> cd ML-For-Beginners +> git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" +> ``` +> +> នេះនឹងផ្តល់អ្វីដែលអ្នកត្រូវការរៀនវគ្គនេះបានលឿនជាងមុន។ + + +#### ចូលរួមជាជនរួមចំណេះដឹងរបស់យើង + +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) + +យើងមានស៊េរី Discord សម្រាប់រៀនជាមួយ AI ទៅមុខ កុំភ្លេចបន្ទាប់ពីស្វែងយល់ និងចូលរួមជាមួយយើងនៅ [Learn with AI Series](https://aka.ms/learnwithai/discord) ចាប់ពីថ្ងៃទី ១៨ ដល់ ៣០ ខែកញ្ញា ឆ្នាំ ២០២៥។ អ្នកនឹងទទួលបានគន្លឹះ និងយុទ្ធសាស្រ្តក្នុងការប្រើ GitHub Copilot សម្រាប់វិទ្យាសាស្រ្តទិន្នន័យ។ + +![Learn with AI series](../../translated_images/km/3.9b58fd8d6c373c20.webp) + +# ការសិក្សាពី Machine Learning សម្រាប់អ្នកថ្មី - មេរៀនមួយជាថ្នាក់សិក្សា + +> 🌍 ស្មើរតាមការធ្វើដំណើរជុំវិញពិភពលោក ខណៈពេលដែលយើងសិក្សាពី Machine Learning តាមរយៈវប្បធម៌ពិភពលោក 🌍 + +អ្នកផ្សព្វផ្សាយ Cloud នៅ Microsoft មានមោទនភាពក្នុងការផ្តល់ជូនមេរៀនមួយរយៈពេល ១២ សប្ដាហ៍ មាន ២៦ មេរៀន ដែលទាក់ទងទៅនឹង **Machine Learning**។ ក្នុងមេរៀននេះ អ្នកនឹងរៀនអំពីអ្វីដែលហៅថា **machine learning ជាទំនើប**, ប្រើសាកល្បង Scikit-learn ជាផ្នែកសំខាន់ ដោយលែងប្រើ deep learning ដែលបានគ្របដណ្តប់ក្នុងមេរៀន [AI សម្រាប់អ្នកថ្មី](https://aka.ms/ai4beginners) របស់យើង។ អ្នកអាចផ្គូផ្គងមេរៀនទាំងនេះជាមួយ [Data Science សម្រាប់អ្នកថ្មី](https://aka.ms/ds4beginners) ដែរ។ + +ធ្វើដំណើរជុំវិញពិភពលោករួមជាមួយយើង ខណៈពេល ដែលយើងអនុវត្តបច្ចេកទេសបុរាណទាំងនេះទៅលើយោងតាមទិន្នន័យពីតំបន់នានារបស់ពិភពលោក។ មេរៀននីមួយៗមានការធ្វើតេស្តមុននិងក្រោយមេរៀន, ការណែនាំអត្ថបទដើម្បីបញ្ចប់មេរៀន, ដំណោះស្រាយ, ការចាត់តាំងមុខងារ, និងផ្សេងៗទៀត។ វិធីសាស្រ្តបង្រៀនផ្អែកលើគម្រោង អនុញ្ញាតឲ្យអ្នករៀនដោយប្រើការសាងសង់គម្រោង ការាមួយមានកំណត់អានុភាពសម្រាប់ជំនាញថ្មីៗ។ + +**✍️ អរគុណក្នុងពីរនាក់អ្នកនិពន្ធ** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu និង 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 + +**🤩 ការគោរពបន្ថែមចំពោះ Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, និង Vidushi Gupta សម្រាប់មេរៀន R របស់យើង!** + +# ចាប់ផ្តើម + +អនុវត្តតាមជំហានទាំងនេះ៖ +1. **Fork Repository**: ចុចប៊ូតុង "Fork" នៅមុខតំណខាងលើ-ស្ដាំទំព័រនេះ។ +2. **Clone Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` + +> [ស្វែងរកធនធានបន្ថែមទាំងអស់សម្រាប់វគ្គសិក្សានេះនៅក្នុងមហាសគររបស់ Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +> 🔧 **តើអ្នកត្រូវការជំនួយទេ?** សូមពិនិត្យមើល [មេរៀនដោះស្រាយបញ្ហា](TROUBLESHOOTING.md) សម្រាប់រកដំណោះស្រាយបញ្ហាទូទៅនៅពេលដំឡើង កំណត់ និងរត់មេរៀន។ + + +**[សិស្ស](https://aka.ms/student-page)** សម្រាប់ប្រើមេរៀននេះ សូម fork សារពើភ័ណ្ឌទាំងមូលទៅគណនី GitHub ផ្ទាល់ខ្លួនរបស់អ្នក ហើយបញ្ចប់លំហាត់ដោយខ្លួនឯង ឬជាក្រុម៖ + +- ចាប់ផ្តើមដោយសំនួរប្រឡងមុនមេរៀន។ +- អានមេរៀន និងបញ្ចប់សកម្មភាព ជាប់ជាមួយការបញ្ឈប់ និងគិតពិចារណានៅកម្រិតរាល់ការត្រួតពិនិត្យចំណេះដឹង។ +- ព្យាយាមបង្កើតគម្រោងដោយយល់ដឹងល្អពីមេរៀន ជំនួសការរត់កូដដំណោះស្រាយ។ ទោះយ៉ាងណាកូដសម្រាប់ដំណោះស្រាយមានក្នុងថត `/solution` នៅមេរៀនផ្អែកលើគម្រោង។ +- ធ្វើតេស្តក្រោយមេរៀន។ +- បញ្ចប់ការប្រកួតប្រជែង។ +- បញ្ចប់ការចាត់តាំងមុខងារ។ +- បន្ទាប់ពីបញ្ចប់មេរៀនក្នុងកញ្ចប់ មកមើល [ក្រុមហ៊ុនប្រជុំ](https://github.com/microsoft/ML-For-Beginners/discussions) ហើយ "រៀនចេញកាយ" ដោយបំពេញប័ណ្ណ PAT ដែលសាកសម។ PAT គឺជា Progress Assessment Tool ជាប័ណ្ណសម្រាប់អ្នកបំពេញដើម្បីពង្រីកការសិក្សារបស់អ្នក។ អ្នកក៏អាចឆ្លើយតបជាមួយ PAT ផ្សេងទៀត ដើម្បីឲ្យយើងអាចរៀនរួមគ្នា។ + +> សម្រាប់ការសិក្សាបន្ថែម យើងសូមផ្តល់អនុសាសន៍ឲ្យតាមដានវគ្គសិក្សា និងផ្លូវការសិក្សា [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) លើសពីនេះ។ + +**អ្នកសិក្សា**, យើងមានការផ្ដល់អនុសាសន៍មួយចំនួនក្នុង [របៀបប្រើប្រាស់មេរៀននេះ](for-teachers.md)។ + +--- + +## វីដេអូបង្ហាញ + +មេរៀនខ្លះមានវីដេអូខ្លីសម្រាប់សម្រួលក្នុងការសិក្សា។ អ្នកអាចរកឃើញវីដេអូទាំងនេះក្នុងមេរៀន ឬនៅលើ [បញ្ចីភាគី ML សម្រាប់អ្នកថ្មី នៅ លើប៉ុស្តិ៍ YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) ដោយចុចលើរូបភាពខាងក្រោម។ + +[![ML for beginners banner](../../translated_images/km/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) + +--- + +## ជួបមក្រុមការងារ + +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) + +**Gif ដោយ** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) + +> 🎥 ចុចរូបភាពខាងលើសម្រាប់មើលវីដេអូអំពីគម្រោង និងមនុស្សដែលបានបង្កើតវា! + +--- + +## វិធានសិក្សា + +យើងបានជ្រើសរើសគោលការណ៍បង្រៀនពីរដើម្បីកសាងមេរៀននេះ៖ លើកទឹកចិត្តឲ្យមានការអនុវត្តគម្រោង **ផ្អែកលើគម្រោង** និងមាន **ការប្រឡងឆាប់ៗជាញឹកញាប់**។ លើសពីនេះ មេរៀននេះមានប្រធានបទរួម មួយ ដើម្បីធ្វើឲ្យមានភាពរួមគ្នា។ + +ដោយធានាថាមាតិកាត្រូវនឹងគម្រោង នេះធ្វើឲ្យដំណើរការមានភាពពិសេសសម្រាប់សិស្ស និងរក្សាប្រយោជន៍ភាគពាក់នៃគំនិតស្វែងយល់។ លើសពីនេះ ការប្រឡងមានភាពតិចតួចមុនវគ្គសិក្សា កំណត់គោលបំណងរបស់សិស្សចំពោះការរៀនមុខវិជ្ជា មួយ ចំណែកការប្រឡងទីពីរបន្ទាប់ពីវគ្គសិក្សាសម្រេចថាមានការរក្សារយៈពេលយូរ។ មេរៀននេះត្រូវបានរចនាឡើងឲ្យមានភាពបត់បែន និងរីករាយ ហើយអាចរៀនបានទាំងមូល ឬផ្នែកខ្លះតាមបំណង។ គម្រោងចាប់ផ្តើមពីតូចទៅធំឡើង តាមរយៈរយៈពេល ១២ សប្ដាហ៍។ មេរៀននេះក៏មានផ្នែកបន្ថែមអំពីការអនុវត្តជាក់ស្តែងនៃ ML ដែលអាចប្រើសម្រាប់ក្រឡេកឥណទានបន្ថែម ឬជាជម្រើសសម្រាប់ការពិភាក្សា។ + +> សូមស្វែងរក [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), និង [Troubleshooting](TROUBLESHOOTING.md) ដំណឹងផ្លូវការ។ យើងសូមស្វាគមន៍មតិយោបល់របស់អ្នកយ៉ាងសម្បូរបែប! + +## មេរៀននីមួយៗមាន + +- សេចក្តីសង្ខេបសំណៀងជាជម្រើស +- វីដេអូបន្ថែមជាជម្រើស +- វីដេអូបង្ហាញ (សម្រាប់មេរៀនខ្លះៗ) +- [សំនួរប្រឡងមុនមេរៀន](https://ff-quizzes.netlify.app/en/ml/) +- មេរៀនអត្ថបទ +- សម្រាប់មេរៀនផ្អែកលើគម្រោង មេរៀននិម្មិតពីជំហានដល់ជំហានអំពីរបៀបបង្កើតគម្រោង +- ការត្រួតពិនិត្យចំណេះដឹង +- ការប្រកួតប្រជែង +- ការអានបន្ថែម +- ការចាត់តាំងមុខងារ +- [សំនួរប្រឡងក្រោយមេរៀន](https://ff-quizzes.netlify.app/en/ml/) +> **យំណាំអំពីភាសា**: មេរៀនទាំងនេះភាគច្រើនត្រូវបានសរសេរជាភាសា Python ប៉ុន្តែមានជាច្រើនផងដែលអាចរកបានជាភាសា R។ ដើម្បីបញ្ចប់មេរៀន R មួយ ចូលទៅក្នុងថត `/solution` ហើយស្វែងរកមេរៀន R។ វាមានទ្រង់ទ្រាយ .rmd ដែលផ្ទាល់ទៅជាឯកសារ **R Markdown** ដែលអាចកំណត់បានដោយសាមញ្ញថាជាការបញ្ចូល `code chunks` (នៃ R ឬភាសាផ្សេងទៀត) និង `YAML header` (ដែលណែនាំពីរបៀបរៀបចំលទ្ធផលដូចជា PDF) ក្នុង `ឯកសារ Markdown`។ ដូច្នេះ វាជា枠架ការសរសេររួមដ៏ល្អសម្រាប់វិទ្យាសាស្ត្រទិន្នន័យ ព្រោះវាអនុញ្ញាតឲ្យអ្នកបញ្ចូលកូដរបស់អ្នក លទ្ធផលរបស់វា និងគំនិតរបស់អ្នកដោយអនុញ្ញាតឲ្យអ្នកសរសេរពួកវាក្នុង Markdown។ លើសពីនេះ រួចហើយឯកសារ R Markdown អាចត្រូវបានបម្លែងទៅទ្រង់ទ្រាយលទ្ធផលដូចជា PDF, HTML ឬ Word។ + +> **យំណាំអំពីសំនួរផ្សងព្រេង**: សំនួរផ្សងព្រេងទាំងអស់ត្រូវបានរក្សាទុកក្នុងថត [Quiz App folder](../../quiz-app), សម្រាប់សំនួរផ្សងព្រេងសរុប 52 ដង មានសំណួរបីសំណួរនៅក្នុងមួយ។ ពួកវាត្រូវបានភ្ជាប់ពីក្នុងមេរៀន ប៉ុន្តែកម្មវិធីសំនួរផ្សងព្រេងអាចរត់នៅលើកុំព្យូទ័រផ្ទាល់ខ្លួន; អ្នកត្រូវតែអនុវត្តការណែនាំនៅក្នុងថត `quiz-app` ដើម្បីផ្តល់សេវាកម្មក្នុងស្រុក ឬផ្សាយនៅលើ Azure។ + +| លេខមេរៀន | ប្រធានបទ | ការតម្រៀបមេរៀន | គោលបំណងការរៀន | មេរៀនភ្ជាប់ | អ្នកនិពន្ធ | +| :---------: | :-----------------------------------------------------------------: | :---------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | +| 01 | ណែនាំអំពីការសិក្សា machine learning | [Introduction](1-Introduction/README.md) | រៀនគំនិតមូលដ្ឋានពីក្រោយ machine learning | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | ប្រវត្តិសាស្ត្រការសិក្សា machine learning | [Introduction](1-Introduction/README.md) | រៀនប្រវត្តិសាស្ត្រចម្បងនៃវិស័យនេះ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen និង Amy | +| 03 | ភាពយុត្តិធម៌ និង machine learning | [Introduction](1-Introduction/README.md) | តើបញ្ហាសុទ្ធសាធខាងទ្រឹស្តីទាក់ទងនឹងភាពយុត្តិធម៌ជាអ្វីខ្លះដែលនិស្សិតគួរតែពិចារណាពេលបង្កើតនិងអនុវត្តម៉ូដែល ML? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | បច្ចេកវិទ្យាសម្រាប់ machine learning | [Introduction](1-Introduction/README.md) | តើបច្ចេកវិទ្យាអ្វីខ្លះដែលអ្នកស្រាវជ្រាវ ML ប្រើប្រាស់ដើម្បីតាំងម៉ូដែល ML? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris និង Jen | +| 05 | ណែនាំអំពី regression | [Regression](2-Regression/README.md) | ចាប់ផ្តើមជាមួយ Python និង Scikit-learn សម្រាប់ម៉ូដែល regression | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | តម្លៃផ្លែភាគអាមេរិកខាងជើង 🎃 | [Regression](2-Regression/README.md) | មើលធ្វើឱ្យទិន្នន័យស្អាតក្នុងការត្រៀមសម្រាប់ ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | តម្លៃផ្លែភាគអាមេរិកខាងជើង 🎃 | [Regression](2-Regression/README.md) | បង្កើតម៉ូដែលការវិភាគរូបធរណី និងហែលទ្វេ | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen និង Dmitry • Eric Wanjau | +| 08 | តម្លៃផ្លែភាគអាមេរិកខាងជើង 🎃 | [Regression](2-Regression/README.md) | បង្កើតម៉ូដែល logistic regression | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | កម្មវិធីបណ្តាញ Web App 🔌 | [Web App](3-Web-App/README.md) | បង្កើតកម្មវិធីបណ្តាញដើម្បីប្រើម៉ូដែលដែលបានបណ្តុះបណ្តាល | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | ណែនាំអំពីការ ចាត់ចែង Classification | [Classification](4-Classification/README.md) | សម្អាត, ត្រៀម និងមើលទិន្នន័យរបស់អ្នក; ណែនាំពីការ ចាត់ចែង | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen និង Cassie • Eric Wanjau | +| 11 | រសជាតិម្ហូបអាស៊ីនិងឥណ្ឌា ឆ្ងាញ់ៗ 🍜 | [Classification](4-Classification/README.md) | ណែនាំអំពីអ្នកចាត់ចែង | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen និង Cassie • Eric Wanjau | +| 12 | រសជាតិម្ហូបអាស៊ីនិងឥណ្ឌា ឆ្ងាញ់ៗ 🍜 | [Classification](4-Classification/README.md) | អ្នកចាត់ចែងបន្ថែម | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen និង Cassie • Eric Wanjau | +| 13 | រសជាតិម្ហូបអាស៊ីនិងឥណ្ឌា ឆ្ងាញ់ៗ 🍜 | [Classification](4-Classification/README.md) | បង្កើតកម្មវិធីបណ្តាញសម្រាប់ផ្តល់អនុសាសន៍ដោយប្រើម៉ូដែលរបស់អ្នក | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | ណែនាំអំពី clustering | [Clustering](5-Clustering/README.md) | សម្អាត, ត្រៀម និងមើលទិន្នន័យរបស់អ្នក; ណែនាំអំពី clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | ស្វែងយល់ពីរសជាតិតន្ត្រីនានាក្នុងប្រទេសនីជេរីយ៉ា 🎧 | [Clustering](5-Clustering/README.md) | ស្វែងយល់ពីវិធីសាស្រ្ត clustering ប្រភេទ K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | ណែនាំអំពីការបំពេញដំណើរការភាសាបានធម្មជាតិ ☕️ | [Natural language processing](6-NLP/README.md) | រៀនមូលដ្ឋានអំពី NLP ដោយបង្កើត bot មួយដោយសាមញ្ញ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | ការងារពេញនិយមនៅ NLP ☕️ | [Natural language processing](6-NLP/README.md) | ជ្រាបជ្រាលច្បាស់បន្ថែមពីចំណេះដឹង NLP ដោយយល់ពីការងារពេញនិយមដែលត្រូវការពេលគ្រប់គ្រងរចនាសម្ព័ន្ធភាសា | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | ការបកប្រែ និងវិភាគអារម្មណ៍ ♥️ | [Natural language processing](6-NLP/README.md) | ការបកប្រែ និងវិភាគអារម្មណ៍ជាមួយ Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | ទីលានសណ្ឋាគារព្រហ្មលាភនៅអឺโรប ♥️ | [Natural language processing](6-NLP/README.md) | វិភាគអារម្មណ៍ជាមួយការវាយតម្លៃសណ្ឋាគារថ្មី ១ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | ទីលានសណ្ឋាគារព្រហ្មលាភនៅអឺโรប ♥️ | [Natural language processing](6-NLP/README.md) | វិភាគអារម្មណ៍ជាមួយការវាយតម្លៃសណ្ឋាគារថ្មី ២ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | ណែនាំអំពីការវាយតម្លៃទិន្នន័យលំដាប់ពេល | [Time series](7-TimeSeries/README.md) | ណែនាំអំពីការវាយតម្លៃទិន្នន័យលំដាប់ពេល | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ ការប្រើប្រាស់ថាមពលពិភពលោក ⚡️ - វាយតម្លៃលំដាប់ពេលជាមួយ ARIMA | [Time series](7-TimeSeries/README.md) | វាយតម្លៃលំដាប់ពេលជាមួយ ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ ការប្រើប្រាស់ថាមពលពិភពលោក ⚡️ - វាយតម្លៃលំដាប់ពេលជាមួយ SVR | [Time series](7-TimeSeries/README.md) | វាយតម្លៃលំដាប់ពេលជាមួយ Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | ណែនាំអំពីការរៀនបន្ថែមតាមការបង្រៀនផ្ទុកពីរបៀប | [Reinforcement learning](8-Reinforcement/README.md) | ណែនាំអំពីការរៀនបន្ថែមតាមការបង្រៀនផ្ទុកជាមួយ Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | ជួយ Peter មិនឲ្យជួបចោរជ្រូក! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | ការរៀនបន្ថែមតាមការបង្រៀនផ្ទុក Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| បន្ទាប់មក | ករណីនិងកម្មវិធី ML ក្នុងពិភពជាក់ស្តែង | [ML in the Wild](9-Real-World/README.md) | កម្មវិធី ML គួរឱ្យចាប់អារម្មណ៍និងបង្ហាញពីកម្មវិធី ML ប្រកបដោយភូត្នកម្ម | [Lesson](9-Real-World/1-Applications/README.md) | ក្រុម | +| បន្ទាប់មក | ការសម្អាតកំហុសម៉ូដែល ML ដោយប្រើផ្ទាំងគ្រប់គ្រង RAI | [ML in the Wild](9-Real-World/README.md) | ការសម្អាតកំហុស ម៉ូដែល Machine Learning ដោយប្រើផ្ទាំងគ្រប់គ្រង Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [ស្វែងរកធនធានបន្ថែមទាំងអស់សម្រាប់វគ្គសិក្សានេះនៅក្នុងព្រឹទ្ធិការណ៍ Microsoft Learn របស់យើង](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## ការចូលប្រើដោយមិនត្រូវការបណ្ដាញអ៊ីនធឺណិត + +អ្នកអាចរត់ឯកសារពត៌មាននេះដោយមិនត្រូវការបណ្ដាញអ៊ីនធឺណិត ដោយប្រើ [Docsify](https://docsify.js.org/#/)។ ស្ដុកកូដនេះ ចូលទៅក្នុងចំលងស្ថានីយ៍របស់អ្នក, [ដំឡើង Docsify](https://docsify.js.org/#/quickstart) នៅលើកុំព្យូទ័រផ្ទាល់ខ្លួន រួចបញ្ចូល `docsify serve` នៅក្នុងថតគោលរបស់ធនធាននេះ។ វេបសាយនឹងត្រូវផ្តល់សេវាកម្មនៅលើកំពង់ផែ 3000 នៅលើ localhost របស់អ្នក៖ `localhost:3000`។ + +## PDF + +ស្វែងរកឯកសារ pdf ទាំងមូលនៃនិម្មិតកម្មវិធីនេះជាមួយតំណភ្ជាប់ [នៅទីនេះ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)។ + +## 🎒 វគ្គសិក្សាផ្សេងទៀត + +ក្រុមរបស់យើងផលិតវគ្គសិក្សាផ្សេងទៀត! សូមពិនិត្យ: + + +### LangChain +[![LangChain4j សម្រាប់អ្នកចាប់ផ្តើម](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js សម្រាប់អ្នកចាប់ផ្តើម](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain សម្រាប់អ្នកចាប់ផ្តើម](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +--- + +### Azure / Edge / MCP / Agents +[![AZD សម្រាប់អ្នកចាប់ផ្តើម](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI សម្រាប់អ្នកចាប់ផ្តើម](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +### Generative AI Series +### ស៊េរី AI បង្កើត +### Core Learning +### ការសិក្សាដើម +### Copilot Series +### ស៊េរី Copilot + +## Getting Help +## ទទួលបានជំនួយ + +If you get stuck or have any questions about building AI apps. Join fellow learners and experienced developers in discussions about MCP. It's a supportive community where questions are welcome and knowledge is shared freely. +បើអ្នកជួបលំបាកឬមានសំនួរអំពីការបង្កើតកម្មវិធី AI សូមចូលរួមជាមួយអ្នករៀនផ្សេងទៀត និងអ្នកអភិវឌ្ឍន៍ដែលមានបទពិសោធន៍ ក្នុងការពិភាក្សាអំពី MCP ។ វាជាសហគមន៍មួយដែលគាំទ្រដល់គ្នា ដែលសំណួរនឹងត្រូវបានស្វាគមន៍ និងចំណេះដឹងត្រូវបានចែករំលែកដោយសេរី។ + +If you have product feedback or errors while building visit: +បើអ្នកមានមតិយោបល់អំពីផលិតផល ឬកំហុសអំឡុងពេលកំពុងបង្កើត សូមចូលទៅកាន់៖ + +## Additional Learning Tips +## ការផ្តល់ជំនួយបន្ថែមសម្រាប់ការសិក្សា + +- Review notebooks after each lesson for better understanding. +- ហ្វឹកហាត់អនុវត្តន៍អាលហ្គរីឌីមដោយខ្លួនឯង។ +- Practice implementing algorithms on your own. +- ស្វែងរកទិន្នន័យពិតដោយប្រើគន្លឹះដែលបានរៀន។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈដែលយើងខិតខំរកការរីកចម្រើននៃភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវខ្លះៗ។ ឯកសារដើមក្នុងភាសាតំណាងរបស់វាគួរត្រូវបានទុកក្នុងជារបស់ប្រភពផ្លូវការជាដើម។ ចំពោះព័ត៌មានសំខាន់ៗ របស់ការបកប្រែដោយមនុស្សដែលមានជំនាញគឺជាការផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសដែលកើតមានពីការប្រើប្រាស់បកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/SECURITY.md b/translations/km/SECURITY.md new file mode 100644 index 000000000..25a122f9a --- /dev/null +++ b/translations/km/SECURITY.md @@ -0,0 +1,44 @@ +## សុវត្ថិភាព + +Microsoft យកចិត្តទុកដាក់យ៉ាងខ្លាំងលើសុវត្ថិភាពនៃផលិតផលនិងសេវាកម្មកម្មវិធីរបស់យើង ដែលរួមមានឃ្លាំងកូដប្រភពទាំងអស់ដែលគ្រប់គ្រងតាមរយៈអង្គការទេសGitHub របស់យើង ដែលរួមមាន [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), និង [អង្គការទេសGitHubរបស់យើង](https://opensource.microsoft.com/)។ + +បើអ្នកជឿថាអ្នកបានរកឃើញចំណុចងាយរងច្បាប់សុវត្ថិភាពក្នុងឃ្លាំងដែលកាន់ដោយ Microsoft ណាមួយ ដែលបំពេញតាម [និយមន័យចំពោះចំណុចងាយរងច្បាប់សុវត្ថិភាពរបស់ Microsoft](https://docs.microsoft.com/previous-versions/tn-archive/cc751383(v=technet.10)?WT.mc_id=academic-77952-leestott) សូមរាយការណ៍មកយើងដោយតាមរយៈវិធីដែលបានពិពណ៌នាខាងក្រោម។ + +## រាយការណ៍បញ្ហាសុវត្ថិភាព + +**សូមកុំរាយការណ៍ចំណុចងាយរងច្បាប់សុវត្ថិភាពតាមរយៈបញ្ហាសាធារណៈGitHub។** + +តែប៉ុណ្ណោះ សូមរាយការណ៍មកកាន់មជ្ឈមណ្ឌលការឆ្លើយតបសុវត្ថិភាព Microsoft (MSRC) តាមរយៈ [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report)។ + +បើអ្នកចូលចិត្តដាក់ស្នើដោយមិនចូលគណនី អ្នកអាចផ្ញើអ៊ីមែលទៅ [secure@microsoft.com](mailto:secure@microsoft.com)។ បើអាច សូមបញ្ចូលសាររបស់អ្នកជារបារយៈលេខ PGP របស់យើង; សូមទាញយកពីទំព័រ [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc)។ + +អ្នកគួរបានទទួលការឆ្លើយសួរនៅក្នុង 24 ម៉ោង។ ប្រសិនបើដោយហេតុផលណាមួយអ្នកមិនបានទទួល សូមតាមដានតាមរយៈអ៊ីមែល ដើម្បីប្រាកដថាយើងបានទទួលសារដើមរបស់អ្នក។ ព័ត៌មានបន្ថែមអាចស្វែងរកបាននៅ [microsoft.com/msrc](https://www.microsoft.com/msrc)។ + +សូមបញ្ចូលព័ត៌មានដែលបានស្នើនៅខាងក្រោម (ប៉ុន្មានដែលអ្នកអាចផ្គត់ផ្គង់បាន) ដើម្បីជួយឲ្យយើងយល់ច្បាស់ពីធម្មជាតិនិងវិសាលភាពនៃបញ្ហាអាចកើតមាន៖ + + * ប្រភេទបញ្ហា (ឧ. buffer overflow, SQL injection, cross-site scripting, ល។) + * ផ្លូវពេញលេញនៃឯកសារដ្ឋានដែលពាក់ព័ន្ធនឹងបញ្ហា + * ទីតាំងនៃកូដប្រភពដែលរងផលប៉ះពាល់ (ស្លាក/សាខា/ការបញ្ជCommit ឬ URL ផ្ទាល់) + * ការកំណត់ពិសេសណាមួយដែលត្រូវការដើម្បីធ្វើឡើងវិញបញ្ហា + * ជំហាន-ជំហានដើម្បីធ្វើឡើងវិញបញ្ហា + * កូដបង្ហាញទ្រឹស្តីឬកូដប្រើប្រាស់ (បើអាចបាន) + * ផលប៉ះពាល់នៃបញ្ហា រួមមានរបៀបដែលអ្នកប្រហារអាចប្រើប្រាស់បញ្ហានេះ + +ព័ត៌មាននេះនឹងជួយឲ្យយើងអាចដោះស្រាយរបាយការណ៍របស់អ្នកបានលឿនជាងមុន។ + +បើអ្នកកំពុងរាយការណ៍សម្រាប់ទទួលបានរង្វាន់ bug bounty របាយការណ៍ពេញលេញជាងនេះអាចជួយឲ្យអ្នកទទួលបានរង្វាន់ខ្ពស់ជាងមុន។ សូមចូលទៅកាន់ទំព័រ [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) របស់យើងសម្រាប់ព័ត៌មានលម្អិតអំពីកម្មវិធីដែលកំពុងដំណើរការ។ + +## ភាសាមួយចាប់អារម្មណ៍ + +យើងចាប់អារម្មណ៍ឲ្យការទំនាក់ទំនងទាំងអស់ធ្វើឡើងជាភាសាអង់គ្លេស។ + +## គោលនយោបាយ + +Microsoft បន្តតាមគោលការណ៍ [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd)។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាម្ដងទៀតគួរត្រូវបានចាត់ទុកជារបៀបតំណាងដែលមានស្ថិតិភាពខ្ពស់។ សម្រាប់ព័ត៌មានសំខាន់ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវលើការយល់ច្រឡំ ឬការបកស្រាយខុសដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/SUPPORT.md b/translations/km/SUPPORT.md new file mode 100644 index 000000000..67b65d573 --- /dev/null +++ b/translations/km/SUPPORT.md @@ -0,0 +1,22 @@ +# គាំទ្រ +## របៀបដាក់បញ្ហា និងទទួលបានជំនួយ + +មុនពេលដាក់បញ្ហា សូមពិនិត្យមើល [មគ្គុទេសក៍ដោះស្រាយបញ្ហា](TROUBLESHOOTING.md) សម្រាប់ដំណោះស្រាយនៃបញ្ហាទូទៅដែលទាក់ទងនឹងការដំឡើង ការកំណត់ និងការប្រតិបត្ដិបង្រៀន។ + +គម្រោងនេះប្រើប្រាស់ GitHub Issues ដើម្បីតាមដានកំហុស និងសំណើលក្ខណៈពិសេស។ សូមស្វែងរកបញ្ហាដែលមានស្រាប់មុនពេលដាក់បញ្ហាថ្មីដើម្បីគោរពការផ្ទុះ។ សម្រាប់បញ្ហាថ្មី សូមដាក់កំហុសរបស់អ្នក ឬសំណើលក្ខណៈពិសេសជាបញ្ហា Issue ថ្មី។ + +សម្រាប់ជំនួយ និងសំណួរអំពីការប្រើប្រាស់គម្រោងនេះ អ្នកក៏អាច៖ +- ពិនិត្យមើល [មគ្គុទេសក៍ដោះស្រាយបញ្ហា](TROUBLESHOOTING.md) +- បូមជាមួយកម្មវិធី [Discord Discussions #ml-for-beginners channel](https://aka.ms/foundry/discord) +- ដាក់បញ្ហា Issue + +## គោលនយោបាយគាំទ្ររបស់ Microsoft + +ការគាំទ្រសម្រាប់ឃ្លាំងនេះមានកំណត់ត្រឹមតែធនធានដែលបានរាយនាមខាងលើតែប៉ុណ្ណោះ។ + +--- + + +**ការប្រាប់អោយដឹង**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះបីយើងខិតខំប្រឹងប្រែងដើម្បីបានភាពត្រឹមត្រូវ ក៏សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬភាពខុសឆ្គង។ ឯកសារដើមនៅក្នុងភាសាម្ចាស់ក should consider ជាឈើងប្រភពត្រឹមត្រូវ។ សម្រាប់ព័ត៌មានសំខាន់ណាស់ សូមផ្ដល់ការបកប្រែដោយមនុស្សជំនាញ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ឃើញខុស ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/TROUBLESHOOTING.md b/translations/km/TROUBLESHOOTING.md new file mode 100644 index 000000000..8344a124c --- /dev/null +++ b/translations/km/TROUBLESHOOTING.md @@ -0,0 +1,603 @@ +# សៀវភៅ​ជួយ​ដោះស្រាយ​បញ្ហា + +សៀវភៅ​នេះ​ជួយ​អ្នក​ដោះស្រាយ​បញ្ហាទូទៅ​ពេលធ្វើការជាមួយ​មេរៀន Machine Learning សម្រាប់​អ្នក​ចាប់ផ្ដើម។ ប្រសិន​បើ​អ្នក​មិន​ស្វែងរក​ដំណោះស្រាយ​នៅទីនេះ​បាន សូម​ពិនិត្យមើល [ការពិភាក្សា Discord](https://aka.ms/foundry/discord) របស់យើង ឬ [បើកបញ្ហា](https://github.com/microsoft/ML-For-Beginners/issues)។ + +## តារាង​ខ្លឹម​សារ + +- [បញ្ហា​ដំឡើងកម្មវិធី](#បញ្ហា​ដំឡើងកម្មវិធី) +- [បញ្ហា Jupyter Notebook](#ដំណោះស្រាយ-codeblock4) +- [បញ្ហា​កញ្ចប់ Python](#បញ្ហា​ក្រឡាចត្រង្គ-notebook) +- [បញ្ហា​បរិយាកាស R](#បញ្ហា​បញ្ចូលទិន្នន័យ) +- [បញ្ហា​កម្មវិធី Quiz](#ការដំឡើង​កញ្ចប់) +- [បញ្ហា​ទិន្នន័យ និង ផ្លូវ​ឯកសារ](#បញ្ហា​កម្មវិធី-quiz) +- [សារ​ខុស​ប្លែកៗ](#ដំណោះស្រាយ-codeblock18) +- [បញ្ហា​ប្រតិបត្តិការ](#កំហុស​អង្គចងចាំ) +- [បរិយាកាស និង ការកំណត់​រចនា](#កំហុស-unicodeencoding) + +--- + +## បញ្ហា​ដំឡើងកម្មវិធី + +### ការដំឡើង Python + +**បញ្ហា**: `python: command not found` + +**ដំណោះស្រាយ**: +1. ដំឡើង Python 3.8 ឬ​ខ្ពស់ជាង​ពី [python.org](https://www.python.org/downloads/) +2. ពិនិត្យ​ការ​ដំឡើង៖ `python --version` ឬ `python3 --version` +3. នៅលើ macOS/Linux អ្នកប្រហែលជា​ត្រូវប្រើ `python3` ជំនួស `python` + +**បញ្ហា**: កំណែក Python ច្រើនបង្កប្រឈម + +**ដំណោះស្រាយ**: +```bash +# ប្រើបរិយាកាសវីរុចជាចរាចរ ដើម្បីបំបែកគម្រោង +python -m venv ml-env + +# បើកបរិយាកាសវីរុច +# លើ Windows: +ml-env\Scripts\activate +# លើ macOS/Linux: +source ml-env/bin/activate +``` + +### ការដំឡើង Jupyter + +**បញ្ហា**: `jupyter: command not found` + +**ដំណោះស្រាយ**: +```bash +# តំឡើង Jupyter +pip install jupyter + +# ឬជាមួយ pip3 +pip3 install jupyter + +# ពិនិត្យការតំឡើង +jupyter --version +``` + +**បញ្ហា**: Jupyter មិនចាប់ផ្ដើម​ក្នុង​កម្មវិធីរុករក + +**ដំណោះស្រាយ**: +```bash +# ព្យាយាមបញ្ជាក់កម្មវិធីរកមើលវេបសាយ +jupyter notebook --browser=chrome + +# ឬចម្លង URL ជាមួយនឹង token ពី terminal ហើយបិទវាទៅកម្មវិធីរកមើលវេបសាយដោយដៃ +# ស្វែងរកៈ http://localhost:8888/?token=... +``` + +### ការដំឡើង R + +**បញ្ហា**: កញ្ចប់ R មិនអាចដំឡើងបាន + +**ដំណោះស្រាយ**: +```r +# ធ្វើឲ្យប្រាកដថាអ្នកមានកំណែ R ថ្មីបំផុត +# ដំឡើងកញ្ចប់ជាមួយនឹងការពឹងផ្អែក +install.packages(c("tidyverse", "tidymodels", "caret"), dependencies = TRUE) + +# ប្រសិនបើការប្រមូលកូដបរាជ័យ សូមព្យាយាមដំឡើងកំណែប៊ីនុារី +install.packages("package-name", type = "binary") +``` + +**បញ្ហា**: IRkernel មិនមាន​ក្នុង Jupyter + +**ដំណោះស្រាយ**: +```r +# នៅក្នុងកុងសូល R +install.packages('IRkernel') +IRkernel::installspec(user = TRUE) +``` + +--- + +## បញ្ហា Jupyter Notebook + +### បញ្ហា Kernel + +**បញ្ហា**: Kernel បន្តស្លាប់ឬចាប់ផ្ដើមឡើងវិញ + +**ដំណោះស្រាយ**: +1. ចាប់ផ្ដើម kernel ថ្មី៖ `Kernel → Restart` +2. ខ្លះលទ្ធផលនិងចាប់ផ្ដើមឡើងវិញ៖ `Kernel → Restart & Clear Output` +3. ពិនិត្យបញ្ហា​អង្គចងចាំ (មើល [បញ្ហាប្រតិបត្តិការ](#កំហុស​អង្គចងចាំ)) +4. ព្យាយាម​រត់ក្រឡាចត្រង្គ​តែបន្ទាត់ដើម្បីរកកូដបញ្ហា + +**បញ្ហា**: ជ្រើស kernel Python មិនត្រឹមត្រូវ + +**ដំណោះស្រាយ**: +1. ពិនិត្យ kernel បច្ចុប្បន្ន៖ `Kernel → Change Kernel` +2. ជ្រើសកំណែ Python ត្រឹមត្រូវ +3. ប្រសិន kernel មិនមាន បង្កើតវា៖ +```bash +python -m ipykernel install --user --name=ml-env +``` + +**បញ្ហា**: Kernel មិនចាប់ផ្ដើម + +**ដំណោះស្រាយ**: +```bash +# ធ្វើការដំឡើង ipykernel ម្តងទៀត +pip uninstall ipykernel +pip install ipykernel + +# ចុះបញ្ជី kernel ម្តងទៀត +python -m ipykernel install --user +``` + +### បញ្ហា​ក្រឡាចត្រង្គ Notebook + +**បញ្ហា**: ក្រឡាចត្រង្គ​កំពុងរត់ប៉ុន្តែមិនបង្ហាញលទ្ធផល + +**ដំណោះស្រាយ**: +1. ពិនិត្យមើលថា​ក្រឡាចត្រង្គ​នៅតែ​រត់ (មើលបំណែក `[*]`) +2. ចាប់ផ្ដើម kernel ថ្មីនិង​រត់​ក្រឡាចត្រង្គ​ទាំងអស់៖ `Kernel → Restart & Run All` +3. ពិនិត្យ console របស់ក្រុមហ៊ុន​រុករកសម្រាប់កំហុស JavaScript (F12) + +**បញ្ហា**: មិនអាច​រត់​ក្រឡាចត្រង្គ​បាន - មិនមាន ප්ទិសការឆ្លើយតបពេលចុច "Run" + +**ដំណោះស្រាយ**: +1. ពិនិត្យមើលថា​សេវាកម្ម Jupyter នៅតែ​ដំណើរការ​នៅក្នុង terminal +2. ហៅទំព័ររុករកឡើងវិញ +3. បិទហើយបើកឡើងវិញ notebook +4. ចាប់ផ្ដើម​សេវាកម្ម Jupyter ថ្មី + +--- + +## បញ្ហា​កញ្ចប់ Python + +### កំហុស Import + +**បញ្ហា**: `ModuleNotFoundError: No module named 'sklearn'` + +**ដំណោះស្រាយ**: +```bash +pip install scikit-learn + +# កញ្ចប់ ML ទូទៅសម្រាប់វគ្គនេះ +pip install scikit-learn pandas numpy matplotlib seaborn +``` + +**បញ្ហា**: `ImportError: cannot import name 'X' from 'sklearn'` + +**ដំណោះស្រាយ**: +```bash +# ធ្វើបច្ចុប្បន្នភាព scikit-learn ទៅកំណែក្រឡាប់ថ្មីបំផុត +pip install --upgrade scikit-learn + +# ពិនិត្យកំណែ +python -c "import sklearn; print(sklearn.__version__)" +``` + +### បញ្ហា​កំណែ​រំខាន + +**បញ្ហា**: កំហុស​អត្រាកញ្ចប់​កំណែ​មិនសម + +**ដំណោះស្រាយ**: +```bash +# បង្កើតបរិយាកាសប្រព័ន្ធមេនវីឌួ +python -m venv fresh-env +source fresh-env/bin/activate # ឬ fresh-env\Scripts\activate នៅលើ Windows + +# ដំឡើងកញ្ចប់ថ្មី +pip install jupyter scikit-learn pandas numpy matplotlib seaborn + +# ប្រសិនបើត្រូវការកំណែជាក់លាក់ +pip install scikit-learn==1.3.0 +``` + +**បញ្ហា**: `pip install` បរាជ័យដោយកំហុស​សិទ្ធិ + +**ដំណោះស្រាយ**: +```bash +# ដំឡើងសម្រាប់អ្នកប្រើបច្ចុប្បន្នតែប៉ុណ្ណោះ +pip install --user package-name + +# ឬប្រើបរិយាកាសវឌ្ឍនបត Virtual (សំណូមពរ) +python -m venv venv +source venv/bin/activate +pip install package-name +``` + +### បញ្ហា​បញ្ចូលទិន្នន័យ + +**បញ្ហា**: កំហុស `FileNotFoundError` ពេល​បញ្ចូល​ឯកសារ CSV + +**ដំណោះស្រាយ**: +```python +import os +# ពិនិត្យទីតាំងការងារបច្ចុប្បន្ន +print(os.getcwd()) + +# ប្រើផ្លូវបញ្ជាមួយទាក់ទងពីទីតាំងសៀវភៅកំណត់ហេតុនេះ +df = pd.read_csv('../../data/filename.csv') + +# ឬប្រើផ្លូវបញ្ជាពេញលេញ +df = pd.read_csv('/full/path/to/data/filename.csv') +``` + +--- + +## បញ្ហា​បរិយាកាស R + +### ការដំឡើង​កញ្ចប់ + +**បញ្ហា**: ការដំឡើង​កញ្ចប់​បរាជ័យដោយកំហុស​កម្មង់ + +**ដំណោះស្រាយ**: +```r +# តំឡើងជាកំណែទ្វាពីរប្រព័ន្ធ (Windows/macOS) +install.packages("package-name", type = "binary") + +# ធ្វើបច្ចុប្បន្នភាព R ទៅកំណែចុងក្រោយ ប្រសិនបើកញ្ចប់ត្រូវការ +# ពិនិត្យកំណែ R +R.version.string + +# តំឡើងភាពពឹងផ្អែករបស់ប្រព័ន្ធ (Linux) +# សម្រាប់ Ubuntu/Debian, នៅក្នុងផ្ទាំងពាក្យបញ្ជា: +# sudo apt-get install r-base-dev +``` + +**បញ្ហា**: `tidyverse` មិនដំឡើង + +**ដំណោះស្រាយ**: +```r +# ដំឡើងការពឹងផ្អែកជាដំបូង +install.packages(c("rlang", "vctrs", "pillar")) + +# បន្ទាប់មកដំឡើង tidyverse +install.packages("tidyverse") + +# រឺដំឡើងធាតុផ្សំម្នាក់ៗ +install.packages(c("dplyr", "ggplot2", "tidyr", "readr")) +``` + +### បញ្ហា RMarkdown + +**បញ្ហា**: RMarkdown មិនបង្ហាញលទ្ធផល + +**ដំណោះស្រាយ**: +```r +# ដំឡើង/បន្ទាន់សម័យ rmarkdown +install.packages("rmarkdown") + +# ដំឡើង pandoc ប្រសិនបើចាំបាច់ +install.packages("pandoc") + +# សម្រាប់លទ្ធផល PDF, ដំឡើង tinytex +install.packages("tinytex") +tinytex::install_tinytex() +``` + +--- + +## បញ្ហា​កម្មវិធី Quiz + +### ការសាងសង់ និង ដំឡើង + +**បញ្ហា**: `npm install` បរាជ័យ + +**ដំណោះស្រាយ**: +```bash +# លុបឃ្លាំង npm +npm cache clean --force + +# លុប node_modules និង package-lock.json +rm -rf node_modules package-lock.json + +# ដំឡើងឡើងវិញ +npm install + +# ប្រសិនបើមិនបានសូមព្យាយាមជាមួយ legacy peer deps +npm install --legacy-peer-deps +``` + +**បញ្ហា**: ស្វ័យប្រវត្តិ Port 8080 កំពុងប្រើ + +**ដំណោះស្រាយ**: +```bash +# ប្រើពួតផ្សេង +npm run serve -- --port 8081 + +# រឺស្វែងរកនិងបញ្ឈប់ដំណើរការប្រើពួត 8080 +# នៅលើ Linux/macOS: +lsof -ti:8080 | xargs kill -9 + +# នៅលើ Windows: +netstat -ano | findstr :8080 +taskkill /PID /F +``` + +### កំហុសសាងសង់ + +**បញ្ហា**: `npm run build` បរាជ័យ + +**ដំណោះស្រាយ**: +```bash +# ពិនិត្យជំនាន់ Node.js (គួរតែលើស 14) +node --version + +# បន្ទាន់សម័យ Node.js ប្រសិនបើចាំបាច់ +# បន្ទាប់មកធ្វើការតម្លើងថ្មី +rm -rf node_modules package-lock.json +npm install +npm run build +``` + +**បញ្ហា**: កំហុស linting បង្កការពិបាកសាងសង់ + +**ដំណោះស្រាយ**: +```bash +# ដោះស្រាយបញ្ហាដែលអាចជួសជុលដោយស្វ័យប្រវត្តិ +npm run lint -- --fix + +# ឬបិទសកម្មភាពលីនថ៍បណ្ដោះអាសន្ននៅក្នុងការចាក់បញ្ចាំង +# (មិនផ្ដល់អនុសាសន៍សម្រាប់ផលិតកម្ម) +``` + +--- + +## បញ្ហា​ទិន្នន័យ និង ផ្លូវ​ឯកសារ + +### បញ្ហាផ្លូវ + +**បញ្ហា**: ឯកសារទិន្នន័យមិនត្រូវបានរកឃើញពេល​រត់ notebook + +**ដំណោះស្រាយ**: +1. **តែងតែ​រត់ notebook ពីថត​ដែលវាស្ថិត​នៅក្នុង** + ```bash + cd /path/to/lesson/folder + jupyter notebook + ``` + +2. **ពិនិត្យ​ផ្លូវទ relatif នៅក្នុងកូដ** + ```python + # ផ្លូវត្រឹមត្រូវពីទីតាំងសៀវភៅកំណត់ត្រា + df = pd.read_csv('../data/filename.csv') + + # មិនមកពីទីតាំងប្រដាប់បញ្ជារបស់អ្នកទេ + ``` + +3. **ប្រើផ្លូវ​លេខស្មើ (absolute paths) ប្រសិនបើចាំបាច់** + ```python + import os + base_path = os.path.dirname(os.path.abspath(__file__)) + data_path = os.path.join(base_path, 'data', 'filename.csv') + ``` + +### ឯកសារ​ទិន្នន័យ​អវសាន + +**បញ្ហា**: ឯកសារតំណាងទិន្នន័យបាត់បង់ + +**ដំណោះស្រាយ**: +1. ពិនិត្យមើលថាតើទិន្នន័យ​គួរតែ​មាន​ក្នុង repository ​- រាល់ទិន្នន័យភាគច្រើនបានរួមបញ្ចូល +2. មេរៀនខ្លះត្រូវការទាញយកទិន្នន័យ - ពិនិត្យមើល README មេរៀន +3. ​ប្រាកដថាអ្នកបានទាញយកការផ្លាស់ប្តូរថ្មីៗ៖ + ```bash + git pull origin main + ``` + +--- + +## សារ​ខុស​ប្លែកៗ + +### កំហុស​អង្គចងចាំ + +**កំហុស**: `MemoryError` ឬ kernel ស្លាប់ពេល​ដំណើរការ​ទិន្នន័យ + +**ដំណោះស្រាយ**: +```python +# បញ្ចូលទិន្នន័យជាមួយប្លុក +for chunk in pd.read_csv('large_file.csv', chunksize=10000): + process(chunk) + +# ឬអានព្រឹត្តិការណ៍តែលេខ្វាងទេ +df = pd.read_csv('file.csv', usecols=['col1', 'col2']) + +# សម្លឹងចេញពីម៉ឺម៉ូរីពេលបញ្ចប់ +del large_dataframe +import gc +gc.collect() +``` + +### ការព្រមាន Convergence + +**ព្រមាន**: `ConvergenceWarning: Maximum number of iterations reached` + +**ដំណោះស្រាយ**: +```python +from sklearn.linear_model import LogisticRegression + +# បង្កើនចំនួន iteration អតិបរមា +model = LogisticRegression(max_iter=1000) + +# ឬបង្ហាញលក្ខណៈរបស់អ្នកជាមុនសិន +from sklearn.preprocessing import StandardScaler +scaler = StandardScaler() +X_scaled = scaler.fit_transform(X) +``` + +### បញ្ហាផ្ទាំងក្រាហ្វិក + +**បញ្ហា**: ផ្ទាំងក្រាហ្វិកមិនបង្ហាញក្នុង Jupyter + +**ដំណោះស្រាយ**: +```python +# បើកការរៀបចំគំនូសបន្ទាត់ +%matplotlib inline + +# នាំចូល pyplot +import matplotlib.pyplot as plt + +# បង្ហាញគំនូសយ៉ាងច្បាស់ +plt.plot(data) +plt.show() +``` + +**បញ្ហា**: ផ្ទាំងក្រាហ្វិក Seaborn មើលខុសឬបង្ហាញកំហុស + +**ដំណោះស្រាយ**: +```python +import warnings +warnings.filterwarnings('ignore', category=UserWarning) + +# បន្ទាន់សម័យទៅកំណែសមត្ថភាព +# pip install --upgrade seaborn matplotlib +``` + +### កំហុស Unicode/Encoding + +**បញ្ហា**: `UnicodeDecodeError` ពេល​អានឯកសារ + +**ដំណោះស្រាយ**: +```python +# បញ្ជាក់កូដបញ្ចូលឲ្យច្បាស់ +df = pd.read_csv('file.csv', encoding='utf-8') + +# ឬសាកល្បងកូដបញ្ចូលផ្សេងទៀត +df = pd.read_csv('file.csv', encoding='latin-1') + +# សម្រាប់ errors='ignore' ដើម្បីរំលងតួអក្សរដែលមានបញ្ហា +df = pd.read_csv('file.csv', encoding='utf-8', errors='ignore') +``` + +--- + +## បញ្ហា​ប្រតិបត្តិការ + +### ការរត់ notebook យឺត + +**បញ្ហា**: Notebook រត់យឺតខ្លាំង + +**ដំណោះស្រាយ**: +1. **ចាប់ផ្ដើម kernel ថ្មី ដើម្បីធ្វើអង្គចងចាំមូល**៖ `Kernel → Restart` +2. **បិទ notebook មិនប្រើ** ដើម្បីសង្រ្គោះធនធាន +3. **ប្រើតំណាងទិន្នន័យតូចសម្រាប់សាកល្បង**: + ```python + # ធ្វើការ​ជាមួយ​ផ្នែក​តូច​ក្នុងអំឡុងពេលអភិវឌ្ឍន៍ + df_sample = df.sample(n=1000) + ``` +4. **រាយការណ៍កម្មវិធីរបស់អ្នក** ដើម្បីរកកន្លែងដាក់ពេលយឺត: + ```python + %time operation() # ពេលវេលាសម្រាប់ប្រតិបត្តិការតែមួយ + %timeit operation() # ពេលវេលាជាមួយការរត់ច្រើនដង + ``` + +### ការប្រើប្រាស់អង្គចងចាំខ្ពស់ + +**បញ្ហា**: ប្រព័ន្ធ​ប្រើអង្គចងចាំ​ច្រើនពេក + +**ដំណោះស្រាយ**: +```python +# ពិនិត្យមើលការប្រើប្រាស់អង្គចងចាំ +df.info(memory_usage='deep') + +# បង្កើនប្រសិទ្ធភាពប្រភេទទិន្នន័យ +df['column'] = df['column'].astype('int32') # ជំនួស int64 + +# ទម្លាក់ជួរឈរដែលមិនចាំបាច់ +df = df[['col1', 'col2']] # រក្សាទុកតែជួរឈរដែលចាំបាច់ប៉ុណ្ណោះ + +# ដំណើរការជាក្រុម +for batch in np.array_split(df, 10): + process(batch) +``` + +--- + +## បរិយាកាស និង ការកំណត់​រចនា + +### បញ្ហាបរិយាកាស Virtual + +**បញ្ហា**: បរិយាកាស Virtual មិនដំណើរការ + +**ដំណោះស្រាយ**: +```bash +# Windows +python -m venv venv +venv\Scripts\activate.bat + +# macOS/Linux +python3 -m venv venv +source venv/bin/activate + +# ពិនិត្យ​មើល​ថា​តើ​បានបើក​ប្រើ​ហើយ​ឬនៅ (គួរ​តែបង្ហាញឈ្មោះ venv នៅក្នុង prompt) +which python # គួរតែបង្ហាញ python របស់ venv +``` + +**បញ្ហា**: កញ្ចប់​ដំឡើងហើយប៉ុន្តែមិនរកឃើញ​ក្នុង notebook + +**ដំណោះស្រាយ**: +```bash +# ប្រាកដថា notebook ប្រើ kernel ត្រឹមត្រូវ +# តំឡើង ipykernel នៅក្នុង venv របស់អ្នក +pip install ipykernel +python -m ipykernel install --user --name=ml-env --display-name="Python (ml-env)" + +# នៅក្នុង Jupyter: Kernel → ប្ដូរ Kernel → Python (ml-env) +``` + +### បញ្ហា Git + +**បញ្ហា**: មិនអាចទាញយកកំណែថ្មី - ប្រឈមមុខកំហុសបញ្ចូល​ (merge conflicts) + +**ដំណោះស្រាយ**: +```bash +# រក្សាទុកការផ្លាស់ប្តូររបស់អ្នក +git stash + +# ទាញយកចុងក្រោយ +git pull origin main + +# អនុវត្តបម្លែងរបស់អ្នកម្តងទៀត +git stash pop + +# ប្រសិនបើមានជម្លោះ សូមដោះស្រាយដោយដៃ ឬ៖ +git checkout --theirs path/to/file # ទទួលយកកំណែពីចម្ងាយ +git checkout --ours path/to/file # រក្សាកំណែរបស់អ្នក +``` + +### ការបញ្ចូល VS Code + +**បញ្ហា**: Jupyter notebook មិនបើកក្នុង VS Code + +**ដំណោះស្រាយ**: +1. ដំឡើង ផ្នែកបន្ថែម Python ក្នុង VS Code +2. ដំឡើង ផ្នែកបន្ថែម Jupyter ក្នុង VS Code +3. ជ្រើសកំណែ Python ត្រឹមត្រូវ៖ `Ctrl+Shift+P` → "Python: Select Interpreter" +4. ចាប់ផ្ដើម VS Code ថ្មី + +--- + +## ឯកសារជំនួយ​បន្ថែម + +- **Discord Discussions**: [សួរជម្លើយ និងចែករំលែកដំណោះស្រាយនៅក្នុងបន្ទប់ #ml-for-beginners](https://aka.ms/foundry/discord) +- **Microsoft Learn**: [ម៉ូឌុល ML សម្រាប់អ្នកចាប់ផ្ដើម](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- **មេរៀន​វីដេអូ**: [បញ្ជីផ្តល់មេរៀន YouTube](https://aka.ms/ml-beginners-videos) +- **តាមដានបញ្ហា**: [រាយការណ៍កំហុស](https://github.com/microsoft/ML-For-Beginners/issues) + +--- + +## តើ​អ្នកនៅតែ​មាន​បញ្ហា? + +បើអ្នកបាន​ព្យាយាមដំណោះស្រាយខាងលើហើយក៏នៅតែ​មានបញ្ហា៖ + +1. **ស្វែងរកបញ្ហាមុនមានរួច**៖ [GitHub Issues](https://github.com/microsoft/ML-For-Beginners/issues) +2. **ពិនិត្យការពិភាក្សា​នៅ Discord**៖ [Discord Discussions](https://aka.ms/foundry/discord) +3. **បើកបញ្ហាថ្មី**៖ រួមបញ្ចូល៖ + - ប្រព័ន្ធ​ប្រតិបត្តិការ និងកំណែ​របស់អ្នក + - កំណែ Python/R + - សារខុស (តាមការតាមដានពេញលេញ) + - ជំហាន​ផលិតបញ្ហា + - អ្វីដែលអ្នកបានព្យាយាម​រួចហើយ + +យើងនៅទីនេះដើម្បីជួយអ្នក! 🚀 + +--- + + +**ការបដិសេធ** ៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ដល់ថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងមួយពេលអាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមដែលនៅក្នុងភាសាមាតុភូមិគួរត្រូវបានពិចារណាថាជា ប្រភពតែមួយដែលមានសុពលភាព។ សម្រាប់ព័ត៌មានសំខាន់ៗ គឺត្រូវបានណែនាំឲ្យប្រើការបកប្រែដោយមនុស្សអ្នកជំនាញ។ យើងមិនមានកាតព្វកិច្ចរំលោភចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសក្នុងការប្រើប្រាស់បកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/docs/_sidebar.md b/translations/km/docs/_sidebar.md new file mode 100644 index 000000000..7acb17b03 --- /dev/null +++ b/translations/km/docs/_sidebar.md @@ -0,0 +1,50 @@ +- ការណែនាំ + - [ការណែនាំទាក់ទងនឹងការសិក្សាស្វ័យប្រវត្តិកម្ម](../1-Introduction/1-intro-to-ML/README.md) + - [ប្រវត្តិនៃការសិក្សាស្វ័យប្រវត្តិកម្ម](../1-Introduction/2-history-of-ML/README.md) + - [ការសិក្សាស្វ័យប្រវត្តិកម្ម និងភាពយុត្តិធម៌](../1-Introduction/3-fairness/README.md) + - [បច្ចេកទេសនៃការសិក្សាស្វ័យប្រវត្តិកម្ម](../1-Introduction/4-techniques-of-ML/README.md) + +- ការត្រួតពិនិត្យបង្រួម + - [ឧបករណ៍នៃការជំនួញ](../2-Regression/1-Tools/README.md) + - [ទិន្នន័យ](../2-Regression/2-Data/README.md) + - [ការត្រួតពិនិត្យបង្រួមបន្ទាត់](../2-Regression/3-Linear/README.md) + - [ការត្រួតពិនិត្យបង្រួមលូជីស្ទិច](../2-Regression/4-Logistic/README.md) + +- បង្កើតកម្មវិធីបណ្ដាញ + - [កម្មវិធីបណ្ដាញ](../3-Web-App/1-Web-App/README.md) + +- ការធ្វើចំណាត់ថ្នាក់ + - [ការណែនាំទៅការធ្វើចំណាត់ថ្នាក់](../4-Classification/1-Introduction/README.md) + - [អ្នកចាត់ថ្នាក់ 1](../4-Classification/2-Classifiers-1/README.md) + - [អ្នកចាត់ថ្នាក់ 2](../4-Classification/3-Classifiers-2/README.md) + - [ការអនុវត្តន៍ការសិក្សាស្វ័យប្រវត្តិកម្ម](../4-Classification/4-Applied/README.md) + +- ការបែងចែកក្រុម + - [មើលទិន្នន័យរបស់អ្នក](../5-Clustering/1-Visualize/README.md) + - [K-Means](../5-Clustering/2-K-Means/README.md) + +- ភាសាស៊ាម៉ាស៊ីន + - [ការណែនាំទៅភាសាស៊ាម៉ាស៊ីន](../6-NLP/1-Introduction-to-NLP/README.md) + - [ភារកិច្ចភាសាស៊ាម៉ាស៊ីន](../6-NLP/2-Tasks/README.md) + - [ការបកប្រែ និងអារម្មណ៍](../6-NLP/3-Translation-Sentiment/README.md) + - [ការពិនិត្យហូតែល 1](../6-NLP/4-Hotel-Reviews-1/README.md) + - [ការពិនិត្យហូតែល 2](../6-NLP/5-Hotel-Reviews-2/README.md) + +- ការព្យាករណ៍ថ្នាក់ពេលវេលា + - [ការណែនាំទៅការព្យាករណ៍ថ្នាក់ពេលវេលា](../7-TimeSeries/1-Introduction/README.md) + - [ARIMA](../7-TimeSeries/2-ARIMA/README.md) + - [SVR](../7-TimeSeries/3-SVR/README.md) + +- ការសិក្សាស្វ័យប្រវត្តិជំរុញ + - [Q-Learning](../8-Reinforcement/1-QLearning/README.md) + - [ហ្គីម](../8-Reinforcement/2-Gym/README.md) + +- ការសិក្សាស្វ័យប្រវត្តិពិភពលោកពិត + - [កម្មវិធី](../9-Real-World/1-Applications/README.md) + +--- + + +**ការត្រូវបញ្ជាក់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំរកឱ្យបានភាពត្រឹមត្រូវ សូមជ្រាបថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងប្រព័ន្ធនេះអាចមានកំហុសឬភាពមិនច្បាស់លាស់ខ្លះ។ ឯកសារដើមក្នុងភាសាតំណាងរបស់វាគួរត្រូវបានគេយកជាប្រភពផ្លូវការសម្រាប់ការពិចារណា។ សម្រាប់ព័ត៌មានសំខាន់ៗ និយោជន៍ក៏សូមអនុវត្តន៍ការ​បកប្រែដោយមនុស្សដែលមានជំនាញវិជ្ជាជីវៈ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការពន្យល់ខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/for-teachers.md b/translations/km/for-teachers.md new file mode 100644 index 000000000..68ecdafe4 --- /dev/null +++ b/translations/km/for-teachers.md @@ -0,0 +1,30 @@ +## សម្រាប់គ្រូបង្រៀន + +តើអ្នកចង់ប្រើវគ្គសិក្សានេះនៅក្នុងថ្នាក់របស់អ្នកទេ? សូមមិនអៀនអោន! + +ជាក់ស្ដែង អ្នកអាចប្រើវានៅក្នុង GitHub ដោយប្រើ GitHub Classroom ផងដែរ។ + +ដើម្បីធ្វើបែបនេះ សូម fork ហាងទំនិញនេះ។ អ្នកត្រូវតែបង្កើតហាងទំនិញមួយសម្រាប់មេរៀនរាល់មួយ ដូច្នេះអ្នកត្រូវចែកFolderរាល់មួយទៅជាហាងទំនិញផ្សេងៗគ្នា។ វាមានន័យថា [GitHub Classroom](https://classroom.github.com/classrooms) អាចយកមេរៀននីមួយៗយកចេញឯករៈបាន។ + +ការណែនាំ [ពេញលេញនេះ](https://github.blog/2020-03-18-set-up-your-digital-classroom-with-github-classroom/) នឹងផ្តល់ឱ្យអ្នកគំនិតពីរបៀបដើម្បីរៀបចំថ្នាក់របស់អ្នក។ + +## ការប្រើប្រាស់ហាងទំនិញដូចដែលវាជា + +បើអ្នកចង់ប្រើប្រាស់ហាងទំនិញនេះដោយស្ថិតនៅក្នុងសភាពបច្ចុប្បន្ន ដោយមិនប្រើ GitHub Classroom នោះគឺអាចធ្វើបានដែរ។ អ្នកត្រូវគ្មានទំនាក់ទំនងជាមួយសិស្សរបស់អ្នកដោយប្រាប់ពួកគេថាទៅរួមគ្នាដំណើរការមេរៀនណា។ + +នៅក្នុងទ្រង់ទ្រាយអនឡាញ (Zoom, Teams, ឬផ្សេងទៀត) អ្នកអាចបង្កើតបន្ទប់នៅខាងក្រៅសម្រាប់ប្រលង និងគ្រូបណ្ដុះបណ្ដាលសិស្ស ដើម្បីជួយពួកគេចាំបាច់សម្រាប់រៀន។ បន្ទាប់មកអញ្ជើញសិស្សឲ្យចូលរួមប្រលងហើយដាក់ចម្លើយជា 'issues' នៅពេលកំណត់មួយ។ អ្នកគួរបានធ្វើដូចគ្នាមួយរួចទៅ assignments ប្រសិនបើអ្នកចង់ឲ្យសិស្សធ្វើការជាក្រុមនៅក្នុងទីសាធារណៈ។ + +បើអ្នកចូលចិត្តទ្រង់ទ្រាយឯកជនជាងនេះ សូមស្នើសុំឲ្យសិស្សរបស់អ្នក fork វគ្គសិក្សា មេរៀនមួយមេរៀន ទៅឲ្យហាងទំនិញ GitHub ផ្ទាល់ខ្លួនជាហាងទំនិញឯកជន ហើយផ្តល់សិទ្ធិចូលប្រើដល់អ្នក។ រួចពួកគេសម្រួលការប្រលង និងកិច្ចការជាឯកជន ហើយដាក់ជូនអ្នកតាមរយៈ issues នៅលើហាងទំនិញថ្នាក់របស់អ្នក។ + +មានវិធីជាច្រើនក្នុងការធ្វើឲ្យវាដំណើរការតាមទ្រង់ទ្រាយថ្នាក់អនឡាញ។ សូមប្រាប់យើងពីអ្វីដែលល្អបំផុតសម្រាប់អ្នក! + +## សូមផ្តល់មតិយោបល់មកយើង! + +យើងចង់ឲ្យវគ្គសិក្សានេះដំណើរការបានល្អសម្រាប់អ្នក និងសិស្សរបស់អ្នក។ សូមផ្តល់យោបល់មកយើង [feedback](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR2humCsRZhxNuI79cm6n0hRUQzRVVU9VVlU5UlFLWTRLWlkyQUxORTg5WS4u)។ + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះបានបកប្រែដោយប្រើសេវាបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬកង្វល់ខុសត្រូវប្លែកៗ។ ឯកសារដើមជាភាសាមាតុភាគគួរត្រូវបានគេយកជា ប្រភពដែលទុកចិត្តបាន។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឲ្យបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការពន្យល់ខុសៗពីការប្រើប្រាស់ការបកប្រែនេះទេ។ + \ No newline at end of file diff --git a/translations/km/quiz-app/README.md b/translations/km/quiz-app/README.md new file mode 100644 index 000000000..16eb1ebaf --- /dev/null +++ b/translations/km/quiz-app/README.md @@ -0,0 +1,119 @@ +# សំណួរប្រកួតប្រជែង + +សំណួរប្រកួតប្រជែងទាំងនេះគឺជាសំណួរមុននិងក្រោយម៉ោងរៀនសម្រាប់មុខវិជ្ជា ML នៅ https://aka.ms/ml-beginners + +## ការតំឡើងគម្រោង + +``` +npm install +``` + +### សមាសភាព និងបញ្ចូលឡើងវិញទាន់ពេលសម្រាប់ការអភិវឌ្ឍ + +``` +npm run serve +``` + +### សមាសភាព និងបង្ហាប់សម្រាប់ការផលិត + +``` +npm run build +``` + +### ពិនិត្យកំហុស និងជួសជុលឯកសារ + +``` +npm run lint +``` + +### ការប្តូរតំរៀបរចនាសម្ព័ន្ធ + +មើល [ឯកសារយោង Configuration Reference](https://cli.vuejs.org/config/)។ + +អនុគ្រោះៈ អរគុណចំពោះកំណែដើមនៃកម្មវិធីសំណួរប្រកួតប្រជែងនេះ៖ https://github.com/arpan45/simple-quiz-vue + +## ការចែកចាយទៅ Azure + +នេះជាមគ្គុទេសក៍ជំហាន​ដើម្បីជួយអ្នកចាប់ផ្តើម៖ + +1. Fork ប្រភព GitHub +ធានាថា​កូដកម្មវិធីបណ្ដាញស្តាទិច​របស់អ្នកមាននៅក្នុងផ្ទាំងចែករំលែក GitHub របស់អ្នក។ Fork ប្រភពនេះ។ + +2. បង្កើតកម្មវិធីបណ្ដាញស្តាទិច Azure +- បង្កើត និង [គណនី Azure](http://azure.microsoft.com) +- ទៅកាន់ [ផតថល Azure](https://portal.azure.com) +- ចុច “Create a resource” និងស្វែងរក “Static Web App”។ +- ចុច “Create”។ + +3. កំណត់រចនាសម្ព័ន្ធកម្មវិធីបណ្ដាញស្តាទិច +- Basics: Subscription: ជ្រើសរើសកម្មវិធីជាវ Azure របស់អ្នក។ +- Resource Group: បង្កើតក្រុមធនធានថ្មីឬប្រើក្រុមមានរួចហើយ។ +- Name: ផ្ដល់ឈ្មោះសម្រាប់កម្មវិធីបណ្ដាញស្តាទិចរបស់អ្នក។ +- Region: ជ្រើសរើសតំបន់ជិតអ្នកប្រើប្រាស់បំផុត។ + +- #### ព័ត៌មាន​អំពីការចែកចាយ: +- Source: ជ្រើសរើស “GitHub”។ +- GitHub Account: អនុញ្ញាត​ឲ្យ Azureចូលប្រើគណនី GitHub របស់អ្នក។ +- Organization: ជ្រើសរើសអង្គការរបស់ GitHub របស់អ្នក។ +- Repository: ជ្រើសរើសប្រភពដែលមានកម្មវិធីបណ្ដាញស្តាទិចរបស់អ្នក។ +- Branch: ជ្រើសរើសសាខាដែលអ្នកចង់ចែកចាយពី។ + +- #### ព័ត៌មាន​អំពីការបង្កើត: +- Build Presets: ជ្រើសរើសសែវភ្លើងដែលកម្មវិធីរបស់អ្នកត្រូវបានកសាងជាមួយ (ឧ. React, Angular, Vue, ល។)។ +- App Location: បញ្ជាក់ថតឯកសារដែលមានកូដកម្មវិធីរបស់អ្នក (ឧ. / ប្រសិនបើវាជារបស់បឋម)។ +- API Location: ប្រសិនបើមាន API, បញ្ជាក់ទីតាំងរបស់វា (ជាការជ្រើសរើស)។ +- Output Location: បញ្ជាក់ថតឯកសារដែលផលិតផលសាងសង់ត្រូវបានបង្កើត (ឧ. build ឬ dist)។ + +4. ពិនិត្យឡើងវិញ និងបង្កើត +ពិនិត្យកំណត់រចនាសម្ព័ន្ធរបស់អ្នក ហើយចុច “Create”។ Azure នឹងតំឡើងធនធានដែលចាំបាច់ទាំងអស់ និងបង្កើតកម្មវិធីប្រតិបត្តិ GitHub ក្នុងប្រភពរបស់អ្នក។ + +5. កម្មវិធីប្រតិបត្តិ GitHub Actions +Azure នឹងបង្កើតជា៉វិញឯកសារកម្មវិធីប្រតិបត្តិ GitHub Actions ក្នុងប្រភពរបស់អ្នក (.github/workflows/azure-static-web-apps-.yml)។ កម្មវិធីនេះនឹងគ្រប់គ្រងដំណើរការសាងសង់ និងចែកចាយ។ + +6. ការត្រួតពិនិត្យការចែកចាយ +ទៅកាន់ផ្ទាំង “Actions” ក្នុងប្រភព GitHub របស់អ្នក។ +អ្នកគួរតែឃើញកម្មវិធីប្រតិបត្តិកំពុងរត់។ កម្មវិធីនេះនឹងសាងសង់ និងចែកចាយកម្មវិធីបណ្ដាញស្តាទិចរបស់អ្នកទៅ Azure។ +ពេលកម្មវិធីសម្រេចចប់ កម្មវិធីរបស់អ្នកនឹងមានបញ្ចាំងនៅលើ URL Azure ដែលផ្តល់ឲ្យ។ + +### ឧទាហរណ៍ឯកសារកម្មវិធីប្រតិបត្តិ + +នេះជាឧទាហរណ៍នៃអ្វីដែលឯកសារកម្មវិធីប្រតិបត្តិ GitHub Actions អាចមានដូចខាងក្រោម៖ +name: Azure Static Web Apps CI/CD +``` +on: + push: + branches: + - main + pull_request: + types: [opened, synchronize, reopened, closed] + branches: + - main + +jobs: + build_and_deploy_job: + runs-on: ubuntu-latest + name: Build and Deploy Job + steps: + - uses: actions/checkout@v2 + - name: Build And Deploy + id: builddeploy + uses: Azure/static-web-apps-deploy@v1 + with: + azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }} + repo_token: ${{ secrets.GITHUB_TOKEN }} + action: "upload" + app_location: "/quiz-app" # App source code path + api_location: ""API source code path optional + output_location: "dist" #Built app content directory - optional +``` + +### ឯកសារជំនួយបន្ថែម +- [ឯកសារពី Azure Static Web Apps](https://learn.microsoft.com/azure/static-web-apps/getting-started) +- [ឯកសារពី GitHub Actions](https://docs.github.com/actions/use-cases-and-examples/deploying/deploying-to-azure-static-web-app) + +--- + + +**ការផ្តល់ដាច់ខាត**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ នៅពេលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយល់ថាការបកប្រែដោយស្វ័យប្រវត្តិប្រហែលជាអាចមានកំហុស ឬការខកចិត្តខ្លះៗ។ ឯកសារដើមនៅក្នុងភាសាដើមគួរត្រូវបានចាត់ទុកថាជា מקורអនុញ្ញាត។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើការបកប្រែដោយអ្នកជំនាញមនុស្ស។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែខុសពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/sketchnotes/LICENSE.md b/translations/km/sketchnotes/LICENSE.md new file mode 100644 index 000000000..9e5e6693b --- /dev/null +++ b/translations/km/sketchnotes/LICENSE.md @@ -0,0 +1,243 @@ +Attribution-ShareAlike 4.0 អន្ដរជាតិ + +======================================================================= + +Creative Commons Corporation ("Creative Commons") មិនមែនជាក្រុមហ៊ុនច្បាប់នោះទេ ហើយមិនផ្តល់សេវាជំនួយច្បាប់ ឬការប្រឹក្សាប្រកបដោយច្បាស់លាស់ទេ។ ការចែកចាយអាជ្ញាបណ្ណសាធារណៈ Creative Commons មិនបង្កើតទំនាក់ទំនងម្នាក់ពីរវាងអ្នកច្បាប់ និងអតិថិជន ឬទំនាក់ទំនងផ្សេងទៀតឡើយ។ Creative Commons ផ្ដល់អាជ្ញាបណ្ណ និងព័ត៌មានទាក់ទងគ្នាជាការផ្តល់នៅលើមូលដ្ឋាន "ដូចដែលគេមាន"។ Creative Commons មិនផ្ដល់ការធានាអំពីអាជ្ញាបណ្ណ របស់ខ្លួន ឯកសារណាមួយដែលមានអាជ្ញាបណ្ណនៅក្រោមលក្ខខណ្ឌនានា ឬព័ត៌មានទាក់ទងណាមួយឡើយ។ Creative Commons ព្រមានអំពីការមិនទទួលខុសត្រូវទាំងស្រុង សម្រាប់រងការខូចខាតដែលកើតឡើងពីការប្រើប្រាស់របស់ពួកគេ។ + +ការប្រើប្រាស់អាជ្ញាបណ្ណសាធារណៈ Creative Commons + +អាជ្ញាបណ្ណសាធារណៈ Creative Commons ផ្ដល់នូវលក្ខខណ្ឌនានាជាស្ដង់ដារដែលបង្កើតឡើងសម្រាប់អ្នកបង្កើត និងអ្នកកាន់កាប់សិទ្ធិផ្សេងៗ ប្រើប្រាស់ដើម្បីចែករំលែកស្នាដៃដើមនៃការនិពន្ធ និងសារធាតុផ្សេងទៀតដែលមានសិទ្ធិចម្លង និងសិទ្ធិផ្សេងទៀតដែលបានបញ្ជាក់នៅក្នុងអាជ្ញាបណ្ណសាធារណៈខាងក្រោម។ ការត្រូវកត់សម្គាល់ខាងក្រោមគឺសម្រាប់ព័ត៌មានប៉ុណ្ណោះ មិនផ្តោតលម្អិតទាំងស្រុង ហើយមិនមាននៅក្នុងអាជ្ញាបណ្ណរបស់យើងទេ។ + + ការពិចារណាសម្រាប់អ្នកផ្ដល់អាជ្ញាបណ្ណ៖ អាជ្ញាបណ្ណសាធារណៈរបស់យើងត្រូវបានរៀបចំសម្រាប់អ្នកដែលមានសិទ្ធិផ្ដល់ការអនុញ្ញាតសាធារណៈក្នុងការប្រើប្រាស់សារធាតុ ដែលមិនអាចប្រើប្រាស់ដោយផ្លូវការដោយព្រោះសិទ្ធិចម្លង និងសិទ្ធិផ្សេងទៀត។ អាជ្ញាបណ្ណរបស់យើងមិនអាចលុបបំបាត់បាន។ អ្នកផ្ដល់អាជ្ញាបណ្ណគួរអាន និងយល់យ៉ាងចំលើយពីលក្ខខណ្ឌនៃអាជ្ញាបណ្ណដែលខ្លួនជ្រើសរើស មុនពេលប្រើប្រាស់។ អ្នកផ្ដល់អាជ្ញាបណ្ណគួរធានាថាអ្នកមានសិទ្ធិក្នុងការផ្ដល់ជូនសាធារណៈគ្រប់យ៉ាង មុនប្រើដើម្បីឲ្យសាធារណៈអាចប្រើបន្តបានយ៉ាងជឿជាក់។ អ្នកផ្ដល់អាជ្ញាបណ្ណគួរតែដាក់សម្គាល់យ៉ាងច្បាស់ចំពោះសារធាតុណាមួយដែលមិនស្ថិតនៅក្រោមអាជ្ញាបណ្ណនេះ។ នេះរួមមានសារធាតុមានអាជ្ញាបណ្ណ CC ផ្សេងទៀត ឬសារធាតុដែលប្រើប្រាស់ក្រោមការបញ្ចុះបញ្ចាលឬដែនកំណត់ទៅលើសិទ្ធិចម្លង។ ព័ត៌មានបន្ថែមសម្រាប់អ្នកផ្ដល់អាជ្ញាបណ្ណ៖ + wiki.creativecommons.org/Considerations_for_licensors + + ការពិចារណាសម្រាប់សាធារណៈ៖ ដោយប្រើប្រាស់អាជ្ញាបណ្ណសាធារណៈមួយក្នុងចំណោមរបស់យើង អ្នកផ្ដល់អាជ្ញាបណ្ណផ្ដល់សិទ្ធិឲ្យសាធារណៈប្រើប្រាស់សារធាតុដែលមានអាជ្ញាបណ្ណ នៅក្រោមលក្ខខណ្ឌ និងលក្ខខណ្ឌដែលបានបញ្ជាក់។ ប្រសិនបើការអនុញ្ញាតរបស់អ្នកផ្ដល់អាជ្ញាបណ្ណមិនទាមទារសម្រាប់មូលហេតុនោះទេ—ឧទាហរណ៍ ដោយសារបញ្ចុះបញ្ចាលឬដែនកំណត់ណាមួយដែលអាចអនុវត្តបានចំពោះសិទ្ធិចម្លង—ដូច្នេះការប្រើប្រាស់នោះមិនត្រូវបានគ្រប់គ្រងដោយអាជ្ញាបណ្ណទេ។ អាជ្ញាបណ្ណរបស់យើងផ្ដល់តែសិទ្ធិដែលមានប្រភពពីសិទ្ធិចម្លង និងសិទ្ធិផ្សេងទៀត ដែលអ្នកផ្ដល់អាជ្ញាបណ្ណមានអំណាចផ្ដល់បាន។ ការប្រើប្រាស់សារធាតុដែលមានអាជ្ញាបណ្ណអាចនៅតែមានការត្រូវបានដាក់កំណត់ពីមូលហេតុផ្សេងៗ រួមមានការដែលអ្នកដទៃកាន់កាប់សិទ្ធិចម្លង ឬសិទ្ធិផ្សេងទៀតនៅលើសារធាតុនោះ។ អ្នកផ្ដល់អាជ្ញាបណ្ណអាចធ្វើសំណើពិសេសៗ ឧទាហរណ៍ ដាក់ស្នើអោយសូចនាបទបំរែបំរួលទាំងអស់ត្រូវបានគេកត់សម្គាល់ ឬពិព័រណា។ ទោះបីជាមិនមានការទាមទារពីអាជ្ញាបណ្ណរបស់យើងក៏ដោយ អ្នកត្រូវបានលើកទឹកចិត្តឲ្យគោរពការស្នើសុំនោះ ប្រសិនបើវាអាចទទួលយកបានល្អ។ ព័ត៌មានបន្ថែមសម្រាប់សាធារណៈ៖ + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +អាជ្ញាបណ្ណសាធារណៈ Creative Commons Attribution-ShareAlike 4.0 អន្ដរជាតិ + +ដោយអនុវត្តសិទ្ធិដែលមានអាជ្ញាបណ្ណ (ដែលបានកំណត់ខាងក្រោម) អ្នកទទួលព្រមព្រៀង និងយល់ព្រមធ្វើតាមលក្ខខណ្ឌនៃអាជ្ញាបណ្ណសាធារណៈ Creative Commons Attribution-ShareAlike 4.0 អន្ដរជាតិ ("អាជ្ញាបណ្ណសាធារណៈ")។ ក្នុងកម្រិតដែលអាចរបួលបានប្រក្រតីជាកិច្ចសន្យា អ្នកត្រូវបានផ្ដល់សិទ្ធិដែលមានអាជ្ញាបណ្ណ ដោយផ្អែកលើការទទួលយកលក្ខខណ្ឌទាំងនេះ ហើយអ្នកផ្ដល់អាជ្ញាបណ្ណផ្ដល់សិទ្ធិជូនអ្នកនូវការផ្គត់ផ្គង់នេះ ដោយមានកាតព្វកិច្ចទទួលបានអត្ថប្រយោជន៍ពីការធ្វើឲ្យសារធាតុដែលមានអាជ្ញាបណ្ណអាចប្រើបាននៅក្រោមលក្ខខណ្ឌទាំងនេះ។ + + +ភាគទី 1 -- និយមន័យ។ + + ក. សារធាតុផ្លាស់ប្តូរ មានន័យជាសារធាតុដែលមានសិទ្ធិចម្លង និងសិទ្ធិស្រដៀង ដែលមានចេញមកពី ឬផ្អែកលើសារធាតុដែលមានអាជ្ញាបណ្ណ ហើយក្នុងនោះសារធាតុដែលមានអាជ្ញាបណ្ណត្រូវបានបកប្រែ បំលែង រៀបចំ បម្លែង ឬផ្លាស់ប្តូរជាប្រភេទណាមួយដែលត្រូវការជំនួយក្នុងការអនុញ្ញាត ភាគីដែលមានសិទ្ធិចម្លង និងសិទ្ធិស្រដៀង។ សម្រាប់អ្នកប្រើប្រាស់អាជ្ញាបណ្ណនេះ ប្រសិនបើសារធាតុដែលមានអាជ្ញាបណ្ណជាការចម្រៀង ការសម្តែង ឬការថតសំឡេង សារធាតុផ្លាស់ប្តូរនៅតែត្រូវបានផលិតនៅពេលដែលការតម្លើងសារធាតុដូចខាងលើ ស្ថិតនៅក្នុងទ្រង់ទ្រាយជាមួយរូបភាពចល័តតាមម៉ោង។ + + ខ. អាជ្ញាបណ្ណនៃអ្នកផ្លាស់ប្តូរ មានន័យជាអាជ្ញាបណ្ណដែលអ្នកអនុវត្តចំពោះសិទ្ធិចម្លង និងសិទ្ធិស្រដៀងលើការរួមចំណែករបស់អ្នកក្នុងសារធាតុផ្លាស់ប្តូរតាមលក្ខខណ្ឌនៃអាជ្ញាបណ្ណ សាធារណៈនេះ។ + + គ. អាជ្ញាបណ្ណសមហេតុ BY-SA មានន័យជាអាជ្ញាបណ្ណដែលបានបញ្ជីនៅ creativecommons.org/compatiblelicenses ដែលបានគេអនុម័តដោយ Creative Commons ថាជាអាជ្ញាបណ្ណស្តង់ដារដូចគ្នានឹងអាជ្ញាបណ្ណសាធារណៈនេះ។ + + ឃ. សិទ្ធិចម្លង និងសិទ្ធិស្រដៀង មានន័យជាសិទ្ធិចម្លង និង/ឬសិទ្ធិស្រដៀងក្បែរប្រដាប់ជាមួយនឹងសិទ្ធិចម្លង រួមមាន ការសម្តែង បញ្ជូនផ្សាយ ការថតសំឡេង និងសិទ្ធិមូលដ្ឋានទិន្នន័យ Sui Generis ដោយមិនគិតទៅលើរបៀបដែលសិទ្ធិទាំងនេះត្រូវបានចាត់ថ្នាក់ឬបែងចែក។ សម្រាប់អាជ្ញាបណ្ណសាធារណៈនេះ សិទ្ធិដូចបានបញ្ជាក់ក្នុង ភាគទី 2(ខ)(1)-(2) មិនមែនជាសិទ្ធិចម្លង និងសិទ្ធិស្រដៀងទេ។ + + ង. វិធានការបច្ចេកទេសមានប្រសិទ្ធភាព មានន័យជាវិធានការដែលក្នុងករណីគ្មានអំណាចត្រឹមត្រូវ មិនអាចបំភ្លឺតាមច្បាប់ដែលបំពេញកាតព្វកិច្ចនៅក្រោមអត្ថបទ 11 នៃពិធីសារសិទ្ធិចម្លង WIPO ដែលទទួលយកនៅថ្ងៃទី 20 ធ្នូ 1996 និង/ឬកិច្ចព្រមព្រៀងអន្តរជាតិដូចគ្នា។ + + ច. ការពិចារណា និងដែនកំណត់ មានន័យជាការប្រើប្រាស់យ៉ាងត្រឹមត្រូវ ការបោលម្រេច ឬដែនកំណត់ផ្សេងទៀតចំពោះសិទ្ធិចម្លង និងសិទ្ធិស្រដៀង ដែលអាចអនុវត្តចំពោះការប្រើប្រាស់សារធាតុដែលមានអាជ្ញាបណ្ណរបស់អ្នក។ + + ឆ. ធាតុអាជ្ញាបណ្ណ មានន័យជាលក្ខណៈទុកសម្រាប់ក្នុងឈ្មោះនៃអាជ្ញាបណ្ណសាធារណៈ Creative Commons។ ធាតុអាជ្ញាបណ្ណនៃអាជ្ញាបណ្ណសាធារណៈនេះគឺការចាត់ទុក និងចែករំលែកដោយស្រប។ + + ជ. សារធាតុដែលមានអាជ្ញាបណ្ណ មានន័យជាស្នាដៃសិល្បៈ ឬអក្សរស៍យ ចំណតទិន្នន័យ ឬសារធាតុផ្សេងទៀតដែលអ្នកផ្ដល់អាជ្ញាបណ្ណបានអនុវត្តអាជ្ញាបណ្ណសាធារណៈនេះ។ + + ដ. សិទ្ធិដែលមានអាជ្ញាបណ្ណ មានន័យជាសិទ្ធិដែលផ្ដល់ជូនអ្នកដោយមានលក្ខខណ្ឌនៃអាជ្ញាបណ្ណសាធារណៈនេះ ដែលត្រឹមត្រូវសម្រាប់សិទ្ធិចម្លង និងសិទ្ធិស្រដៀងទាំងអស់ដែលអនុវត្តចំពោះការប្រើប្រាស់សារធាតុដែលមានអាជ្ញាបណ្ណ និងដែលអ្នកផ្ដល់អាជ្ញាបណ្ណមានសិទ្ធិផ្ដល់សិទ្ធិនោះ។ + + ត. អ្នកផ្ដល់អាជ្ញាបណ្ណ មានន័យជាបុគ្គល ឬអង្គការដែលផ្ដល់សិទ្ធិដោយឡែកនៅក្រោមអាជ្ញាបណ្ណសាធារណៈនេះ។ + + ថ. ចែករំលែក មានន័យជាការផ្ដល់សារធាតុទៅដល់សាធារណៈដោយវិធីណាមួយ ឬដំណើរការណាមួយដែលត្រូវការអานុភាពនៅក្រោមសិទ្ធដែលមានអាជ្ញាបណ្ណ ដូចជា ការចម្លង ការបង្ហាញសាធារណៈ ការសម្តែងសាធារណៈ ការចែកចាយ ការចេញផ្សាយ ការប្រាស្រ័យទាក់ទង ឬការនាំចូល ហើយធ្វើឲ្យសារធាតុមានភាពអាចចូលដល់សាធារណៈ រួមទាំងវិធីដែលសមាជិកសាធារណៈអាចចូលដល់សារធាតុ ពីកន្លែងណាមួយ និងម៉ោងណាមួយ ដែលពួកគេចង់បាន។ + + ឌ. សិទ្ធិទិន្នន័យ Sui Generis មានន័យជាសិទ្ធិផ្សេងទៀតក្រៅសិទ្ធិចម្លង ដែលដើមមកពីកិច្ចវិធាន 96/9/EC នៃសភាអឺរ៉ុប និងក្រុមប្រឹក្សានៅថ្ងៃទី 11 មីនា 1996 ស្តីពីការការពារតាមច្បាប់លើទិន្នន័យ ដែលត្រូវបានកែប្រែ និង/ឬជំនួស ព្រមទាំងសិទ្ធិដូចគ្នានៅគ្រប់ទីកន្លែងនៅលើពិភពលោក។ + + ណ. អ្នក មានន័យជាបុគ្គល ឬអង្គការដែលអនុវត្តសិទ្ធិដែលមានអាជ្ញាបណ្ណនៅក្រោមអាជ្ញាបណ្ណសាធារណៈនេះ។ "អ្នក" មានន័យដូចគ្នា។ + +ភាគទី 2 -- វិសាលភាព។ + + ក. ការផ្ដល់អាជ្ញាបណ្ណ។ + + 1. ក្នុងលក្ខខណ្ឌនិងលក្ខខណ្ឌនៃអាជ្ញាបណ្ណសាធារណៈនេះ អ្នកផ្ដល់អាជ្ញាបណ្ណដោយរឹតបន្តឹង ផ្ដល់សិទ្ធិឲ្យអ្នកមានសិទ្ធិអនុវត្តជាសកលមិនទាមទារដើម្បីទទួលបានប្រាក់បៀវត្ស មិនអាចផ្តល់សិទ្ធិរងចាំឬអាចលុបបំបាត់បន្ថយចោលបាន នៅក្នុងសារធាតុដែលមានអាជ្ញាបណ្ណដូចខាងក្រោម៖ + + ក. ចម្លង និងចែករំលែកសារធាតុដែលមានអាជ្ញាបណ្ណ ទាំងស្រុង ឬពាក់កណ្តាល; និង + + ខ. ផលិត ឆ្លាស់ប្តូរ និងចែករំលែកសារធាតុផ្លាស់ប្តូរ។ + + 2. ការពិចារណា និងដែនកំណត់។ ដើម្បីចៀសវាងករណីចំលែកភស្តុតាងនៅពេលច្បាស់លាស់ ប្រសិនបើការពិចារណា និងដែនកំណត់នេះអនុវត្តទៅលើការប្រើប្រាស់របស់អ្នក អាជ្ញាបណ្ណសាធារណៈនេះមិនអនុវត្ត ហើយអ្នកមិនត្រូវធ្វើតាមលក្ខខណ្ឌនានានោះទេ។ + + 3. គម្លាត។ រយៈពេលនៃអាជ្ញាបណ្ណសាធារណៈនេះបានបញ្ជាក់នៅភាគទី 6(ក)។ + + 4. មេឌា និងទ្រង់ទ្រាយ; អនុញ្ញាតឱ្យបំលែងបច្ចេកទេស។ អ្នកផ្ដល់អាជ្ញាបណ្ណអនុញ្ញាតឲ្យអ្នកអនុវត្តសិទ្ធិក្នុងពុំមេឌា និងទ្រង់ទ្រាយទាំងអស់ មិនថាឥឡូវនេះមានឬផលិតនៅពេលក្រោយ ហើយអនុញ្ញាតឲ្យបំលែងបច្ចេកទេសដែលចាំបាច់ដើម្បីអនុវត្ត។ អ្នកផ្ដល់អាជ្ញាបណ្ណបដិសេធ និង/ឬយល់ព្រមមិនប្រើយកសិទ្ធិ ឬអំណាចណាមួយដើម្បីហាមឃាត់អ្នកពីការបំលែងបច្ចេកទេសណាមួយដែលចាំបាច់សម្រាប់អនុវត្តសិទ្ធិដែលមានអាជ្ញាបណ្ណ រួមទាំងការបំលែងបច្ចេកទេសដែលចាំបាច់ដើម្បីរំលោភវិធានការបច្ចេកទេសមានប្រសិទ្ធភាព។ សម្រាប់អាជ្ញាបណ្ណសាធារណៈនេះ ការធ្វើបំលែងដោយសេចក្ដីអនុញ្ញាតដោយភាគទី 2(ក)(4) មិនបង្កើតសារធាតុផ្លាស់ប្តូរឡើយ។ + + 5. អ្នកទទួលចុះក្រោម។ + + ក. សំណើពីអ្នកផ្ដល់អាជ្ញាបណ្ណ -- សារធាតុដែលមានអាជ្ញាបណ្ណ។ អ្នកទទួលគ្រប់រូបនៃសារធាតុដែលមានអាជ្ញាបណ្ណដោយស្វ័យប្រវត្តិទទួលបានសំណើពីអ្នកផ្ដល់អាជ្ញាបណ្ណក្នុងការអនុវត្តសិទ្ធិដែលមានអាជ្ញាបណ្ណនៅក្រោមលក្ខខណ្ឌនៃអាជ្ញាបណ្ណសាធារណៈនេះ។ + + ខ. សំណើបន្ថែមពីអ្នកផ្ដល់អាជ្ញាបណ្ណ -- សារធាតុផ្លាស់ប្តូរ។ អ្នកទទួលគ្រប់រូបនៃសារធាតុផ្លាស់ប្តូរពីអ្នក ស្វ័យប្រវត្តិទទួលបានសំណើពីអ្នកផ្ដល់អាជ្ញាបណ្ណក្នុងការអនុវត្តសិទ្ធិដែលមានអាជ្ញាបណ្ណ នៅក្នុងសារធាតុផ្លាស់ប្តូរនោះនៅក្រោមលក្ខខណ្ឌនៃអាជ្ញាបណ្ណអ្នកផ្លាស់ប្តូរដែលអ្នកអនុវត្ត។ + + គ. គ្មានការកំណត់ពីក្រោម។ អ្នកមិនអាចផ្ដល់ ឬកំណត់លក្ខខណ្ឌបន្ថែម ឬខុសគ្នា ទៅលើសារធាតុដែលមានអាជ្ញាបណ្ណ ឬប្រើវិធានការបច្ចេកទេសមានប្រសិទ្ធភាពណាមួយ សម្រាប់សារធាតុនោះ ប្រសិនបើវាមានផលប៉ះពាល់ដល់សិទ្ធិដែលមានអាជ្ញាបណ្ណរបស់អ្នកទទួលទាំងឡាយ។ + + 6. គ្មានការគាំទ្រ។ គ្មានអ្វីៗក្នុងអាជ្ញាបណ្ណសាធារណៈនេះ ដែលមានន័យថាអ្នកមានសិទ្ធិ ឬអាចសន្និដ្ឋានថាអ្នកប្រើប្រាស់សារធាតុដែលមានអាជ្ញាបណ្ណ នោះទាក់ទង គាំទ្រ ឬមានស្ថានភាពផ្លូវការពីអ្នកផ្ដល់អាជ្ញាបណ្ណ ឬអ្នកផ្សេងទៀតដែលត្រូវបានបញ្ជាក់ឲ្យទទួលការចាត់ទុកដូចបានបញ្ជាក់ក្នុងភាគទី 3(ក)(1)(ក)(i)។ + + ខ. សិទ្ធិផ្សេងទៀត។ + + 1. សិទ្ធិនៃភាពស្អាតចិត្ត ដូចជាសិទ្ធិដើម្បីការទំនុកចិត្ត គ្មានការផ្ដល់អាជ្ញាបណ្ណនៅក្រោមអាជ្ញាបណ្ណសាធារណៈនេះ និងគ្មានសិទ្ធិនៃការផ្សព្វផ្សាយ ផ្នែកជនរួម និងសិទ្ធិផ្សេងទៀត; ទោះបីជាយ៉ាងណា នៅក្នុងកម្រិតដែលអាចអនុវត្តបាន អ្នកផ្ដល់អាជ្ញាបណ្ណបដិសេធ និង/ឬយល់ព្រមមិនប្រើសិទ្ធិនេះ ដែលអ្នកផ្ដល់អាជ្ញាបណ្ណកាន់កាប់ ដើម្បីអោយអ្នកអាចអនុវត្តបន្តសិទ្ធិដែលមានអាជ្ញាបណ្ណ តែកុំអោយប៉ះពាល់ផ្លូវច្បាប់ផ្សេងទៀត។ + + 2. សិទ្ធិប៉ೇಟង់ និងសិទ្ធិម៉ាកពាណិជ្ជកម្ម គ្មានការផ្ដល់អាជ្ញាបណ្ណនៅក្រោមអាជ្ញាបណ្ណសាធារណៈនេះ។ + + 3. ក្នុងកម្រិតដែលអាចអនុវត្តបាន អ្នកផ្ដល់អាជ្ញាបណ្ណបដិសេធសិទ្ធិប្រមូលបរិច្ចាគពីអ្នក សម្រាប់ការអនុវត្តសិទ្ធិដែលមានអាជ្ញាបណ្ណ មិនថាតាមផ្លូវផ្ទាល់ ឬតាមរយៈសង្គមប្រមូលបរិច្ចាគក្នុងក្របខណ្ឌច្បាប់ចុះហត្ថលេខាទូរទៅឬអាជ្ញាគុណច្បាប់។ ក្នុងករណីផ្សេងទៀត អ្នកផ្ដល់អាជ្ញាបណ្ណរក្សាសិទ្ធិយ៉ាងច្បាស់ក្នុងការប្រមូលរដ្ឋបាលបរិច្ចាគ។ + +ភាគទី 3 -- លក្ខខណ្ឌនៃអាជ្ញាបណ្ណ។ + +ការអនុវត្តសិទ្ធិដែលមានអាជ្ញាបណ្ណរបស់អ្នក ត្រូវបានកំណត់យ៉ាងច្បាស់ជាការដល់ភាពជាផ្លូវការដោយលក្ខខណ្ឌដូចខាងក្រោម៖ + + ក. ការចាត់ទុកអ្នកបង្កើត។ + + 1. ប្រសិនបើអ្នកចែករំលែកសារធាតុដែលមានអាជ្ញាបណ្ណ (រួមទាំងនិងការបម្លែង) អ្នកត្រូវ៖ + + ក. រក្សាទុកដូចខាងក្រោម ប្រសិនបើវាត្រូវបានផ្ដល់ដោយអ្នកផ្ដល់អាជ្ញាបណ្ណ ជាមួយសារធាតុដែលមានអាជ្ញាបណ្ណ៖ + + i. ការទទួលស្គាល់អ្នកបង្កើតសារធាតុដែលមានអាជ្ញាបណ្ណ និងអ្នកផ្សេងទៀតដែលត្រូវបានគេរៀបចំសម្រាប់ការចាត់ទុក តាមរបៀបមួយណាមួយដែលអ្នកផ្ដល់អាជ្ញាបណ្ណស្នើសុំ (រួមមានឈ្មោះក្លែងក្លាយ ប្រសិនបើបានកំណត់); + + ii. សេចក្ដីជូនដំណឹងសិទ្ធិចម្លង; + + iii. សេចក្ដីជូនដំណឹងដែលយោងទៅអាជ្ញាបណ្ណសាធារណៈនេះ; + + iv. សេចក្ដីជូនដំណឹងដែលយោងទៅការពន្យល់ថាមិនមានការធានា; + + v. តំណ URI ឬហ្កីបបំភ្លឺទៅសារធាតុដែលមានអាជ្ញាបណ្ណ ដល់កម្រិតសមហេតុផលនៃការអនុវត្ត; + + ខ. សម្គាល់ថាអ្នកបានបម្លែងសារធាតុដែលមានអាជ្ញាបណ្ណ ហើយរក្សាសម្គាល់ចំពោះការផ្លាស់ប្តូរមុនៗ; + + គ. សម្គាល់ថាសារធាតុដែលមានអាជ្ញាបណ្ណនេះ មានអាជ្ញាបណ្ណឯកភាពនៅក្រោមអាជ្ញាបណ្ណសាធារណៈនេះ ហើយរួមបញ្ចូលអត្ថបទ ឬតំណ URI ឬហ្កីបបំភ្លឺទៅអាជ្ញាបណ្ណសាធារណៈនេះ។ + + 2. អ្នកអាចបំពេញលក្ខខណ្ឌនៅក្នុងភាគទី 3(ក)(1) តាមរបៀបណាមួយដែលសមនឹងមធ្យោបាយ វិធី និងបរិបទដែលអ្នកចែកសារធាតុនោះ។ ឧទាហរណ៍ វាអាចមានតុល្យភាពក្នុងការហៅផ្ដល់តំណ URI ឬហ្កីបទៅមធ្យោបាយដែលមានព័ត៌មានត្រូវការ។ + + 3. ប្រសិនបើអ្នកផ្ដល់អាជ្ញាបណ្ណស្នើសុំ អ្នកត្រូវលុបឯកសារណាមួយដែលត្រូវការតាមភាគទី 3(ក)(1)(ក) ដល់កម្រិតដែលអាចអនុវត្តបាន។ + + ខ. ចែករំលែកតាមរួម។ + + លើសលប់លក្ខខណ្ឌនៅក្នុងភាគទី 3(ក) ប្រសិនបើអ្នកចែករំលែកសារធាតុផ្លាស់ប្តូរដែលអ្នកផលិត លក្ខខណ្ឌខាងក្រោមក៏អនុវត្តដែរ។ + + 1. អាជ្ញាបណ្ណអ្នកផ្លាស់ប្តូរដែលអ្នកប្រើ ត្រូវជាអាជ្ញាបណ្ណ Creative Commons ដែលមានធាតុអាជ្ញាបណ្ណដូចគ្នា រួមមានកំណែនេះ ឬកំណែក្រោយ ឬអាជ្ញាបណ្ណ BY-SA មានសមត្ថភាពសមហេតុផល។ + + 2. អ្នកត្រូវរួមបញ្ចូលអត្ថបទ ឬតំណ URI ឬហ្កីបបំភ្លឺទៅអាជ្ញាបណ្ណអ្នកផ្លាស់ប្តូរដែលអ្នកប្រើ។ អ្នកអាចបំពេញលក្ខខណ្ឌនេះបានតាមរបៀបណាមួយ ដែលសមនឹងមធ្យោបាយ វិធី និងបរិបទដែលអ្នកចែករំលែកសារធាតុផ្លាស់ប្តូរនោះ។ + + 3. អ្នកមិនអាចផ្ដល់ ឬអនុវត្តលក្ខខណ្ឌ បន្ថែម ឬខុសគ្នា ដោយប្រើវិធានការបច្ចេកទេសមានប្រសិទ្ធភាព លើសារធាតុផ្លាស់ប្តូរ ដែលបង្ខំឱ្យត្រូវតែការពារ សិទ្ធិស្រោចស្រង់ក្រោមអាជ្ញាបណ្ណអ្នកផ្លាស់ប្តូរដែលអ្នកប្រើ។ + +ភាគទី 4 -- សិទ្ធិទិន្នន័យ Sui Generis។ + +នៅពេលដែលសិទ្ធិដែលមានអាជ្ញាបណ្ណរួមបញ្ចូលសិទ្ធិទិន្នន័យ Sui Generis ដែលអនុវត្តចំពោះការប្រើប្រាស់សារធាតុដែលមានអាជ្ញាបណ្ណរបស់អ្នក៖ + + ក. ដើម្បីចៀសវាងការសង្ស័យ ភាគទី 2(ក)(1) ផ្ដល់សិទ្ធិអោយអ្នកក្នុងការដកយក ប្រើបន្ត ចម្លង និងចែករំលែក មាតិកាដ៏សំខាន់ចម្បងរបស់មូលដ្ឋានទិន្នន័យ; + + ខ. ប្រសិនបើអ្នកបញ្ចូលមាតិកាសំខាន់ចំពេញរបស់មូលដ្ឋានទិន្នន័យក្នុងមូលដ្ឋានទិន្នន័យដែលអ្នកមានសិទ្ធិទិន្នន័យ Sui Generis... + សិទ្ធិ រួចមកធនាគារទិន្នន័យដែលអ្នកមានសិទ្ធិឃ្លាំងទិន្នន័យ Sui Generis + (ប៉ុន្តែមិនមែនមាតិកាពីរបៀបបុគ្គលនីយ្យទេ) គឺជាវត្ថុ តម្លើង, + + រួមទាំងសម្រាប់គោលបំណងផ្នែកផ្នត់ 3(b); ហើយ + c. អ្នកត្រូវតែគោរពតាមលក្ខខណ្ឌក្នុងផ្នត់ 3(a) ប្រសិនបើអ្នកចែករំលែក + ទាំងមូល ឬបរិមាណធំមួយនៃមាតិកាធនាគារទិន្នន័យ។ + +ដើម្បីជៀសវាងការប្រកាន់ខុស, ផ្នត់ទី 4 នេះជាផ្នែកបន្ថែម ហើយមិន +ជំនួសភារកិច្ចរបស់អ្នកក្រោមអាជ្ញាប័ណ្ណសាធារណៈនេះដែលសិទ្ធិទីបញ្ជីរួមមាន +សិទ្ធិកំពូលបិទកិច្ចផ្សេងទៀត។ + +ផ្នត់ទី 5 -- ការមិនទទួលខុសត្រូវនៃការធានា និងការចំនេញកំណត់បន្ទាប់ពីការមិន +ផ្នត់ទី 5 -- ការពន្យល់ពីការមិនធានារ៉ាប់រងនិងកំណត់ការទទួលខុសត្រូវ។ + + a. លើកលែងត្រូវបានធ្វើឡើងដោយអ្នកផ្តល់អាជ្ញាប័ណ្ណដោយដាច់ខាត, ក្នុង + ពេលដែលទៅបាន, អ្នកផ្តល់អាជ្ញាប័ណ្ណផ្ដល់មាតិកាដោយមិនមានការធានា + ឬការបង្ហាញទៅកាន់អ្នកក្នុងរូបភាពណាមួយ ទាក់ទងនឹងមាតិកាដែលបានផ្ដល់អាជ្ញាប័ណ្ណ, + មិនថាជាការបញ្ជាក់ដោយផ្ទាល់, ជាវិជ្ជមាន, ឬដោយច្បាប់។ នេះរួមមាន, + ដោយគ្មានការកំណត់, ការធានាបំពាន, លក្ខណៈល្អ ភាពសមស្របសម្រាប់គោលបំណងពិសេស, + មិនបំពាន, គ្មានកោសល្យ ឬកង្វះកំហុសផ្សេងទៀត, ភាពត្រឹមត្រូវ ឬមានកំហុស + ឬគ្មានកំហុស ទោះបីជាត្រូវបានដឹងឬរកឃើញ។ នៅកន្លែងដែលការមិនទទួលខុសត្រូវ + នៃការធានាត្រូវបានអនុញ្ញាតិនៅលទ្ធផលពេញលេញឬផ្នែក, + សេចក្តីផ្តល់ការមិនទទួលខុសត្រូវនេះប្រហែលជានឹងមិនអនុវត្តជូនអ្នក។ + + b. ក្នុងការចាំបាច់ ខ្ញុំមិនទទួលខុសត្រូវចំពោះអ្នកក្នុងគោលការណ៍ច្បាប់ណាមួយ + (រួមមកពីការមិនប្រុងប្រយ័ត្ន) ឬដោយសារប្រកបដោយមូលហេត្វសម្រាប់ការខូចខាត + ឬការខាតបង់ដោយផ្ទាល់, ពិសេស, បឋម, ទទួលបាន ឬបណ្តាលមកពីអាជ្ញាប័ណ្ណសាធារណៈនេះ + ឬការប្រើប្រាស់វត្ថុដែលបានផ្ដល់អាជ្ញាប័ណ្ណ ក៏ទោះបីជាត្រូវបានជូនដំណឹងពី + បញ្ហាដែលអាចត្រូវបានបាត់បង់ ប្រើប្រាស់ឬរងគ្រោះ។ នៅកន្លែងដែលមានការកំណត់ + ការទទួលខុសត្រូវមិនអនុញ្ញាតនៅពេញលេញឬផ្នែក, + ការកំណត់នេះប្រហែលជានឹងមិនអនុវត្តជូនអ្នក។ + + c. ការមិនទទួលខុសត្រូវនៃការធានា និងកំណត់ការទទួលខុសត្រូវដែលបានផ្ដល់ខាងលើ + គួរត្រូវបានពន្យល់ក្នុងរបៀបដែលយ៉ាងទៅបានគួរតែឆាប់ជិតស្រដៀងនឹង + ការបដិសេធបានអស់សន្ធិភាព និងបដិសេធនូវការទទួលខុសត្រូវទាំងមូល។ + +ផ្នត់ទី 6 -- រយៈពេល និងការបញ្ចប់។ + + a. អាជ្ញាប័ណ្ណសាធារណៈនេះប្រើសម្រាប់រយៈពេលនៃសិទ្ធិកំពូលបិទកិច្ចនិងសិទ្ធិ + ស្រដៀងគ្នាដែលបានអោយតាមនេះ។ ទោះបីជាយ៉ាងណា ប្រសិនបើអ្នកមិនគោរពតាម + អាជ្ញាប័ណ្ណសាធារណៈនេះ អ្នកនឹងបញ្ឈប់សិទ្ធិរបស់អ្នកដោយស្វ័យប្រវត្តិ។ + + b. នៅកន្លែងដែលសិទ្ធិរបស់អ្នកក្នុងការប្រើវត្ថុដែលបានអោយតាមអាជ្ញាប័ណ្ណបានបញ្ឈប់ + តាមផ្នត់ 6(a) វាត្រូវបានសងឡើងវិញ៖ + + 1. ដោយស្វ័យប្រវត្តិនៅថ្ងៃដែលការរំលោភត្រូវបានដោះស្រាយ, + ប្រសិនបើបានដោះស្រាយក្នុងរយៈពេល 30 ថ្ងៃនៃការរកឃើញរបស់អ្នក; + ឬ + + 2. តាមការសង់ឡើងវិញដោយច្បាស់ពីអ្នកផ្តល់អាជ្ញាប័ណ្ណ។ + + ដើម្បីជៀសវាងការប្រកាន់ខុស ផ្នត់ទី 6(b) នេះមិនប៉ះពាល់សិទ្ធិដែល + អ្នកផ្តល់អាជ្ញាប័ណ្ណអាចមានក្នុងការស្វែងរកវិធានការសម្រាប់ការរំលោភរបស់អ្នក + នៃអាជ្ញាប័ណ្ណសាធារណៈនេះ។ + + c. ដើម្បីជៀសវាងការប្រកាន់ខុស អ្នកផ្តល់អាជ្ញាប័ណ្ណអាចផ្តល់វត្ថុមានជាតិ + តាមលក្ខខណ្ឌផ្សេង ឬបញ្ឈប់ការចែកចាយវត្ថុនោះណាមួយពេលណាមួយ; + ប៉ុន្តែលំនាំនេះមិនបញ្ឈប់អាជ្ញាប័ណ្ណសាធារណៈនេះទេ។ + + d. ផ្នត់១, ៥, ៦, ៧, និង ៨ នៅតែមានសុពុលភាពបន្ទាប់ពីការបញ្ចប់ + អាជ្ញាប័ណ្ណសាធារណៈ។ + +ផ្នត់ទី 7 -- លក្ខខណ្ឌ និងលក្ខណៈផ្សេងទៀត។ + + a. អ្នកផ្តល់អាជ្ញាប័ណ្ណមិនត្រូវចាំបាច់ត្រូវបានចងក្រងដោយលក្ខខណ្ឌ + បន្ថែម ឬខុសពីលក្ខខណ្ឌដែលអ្នកផ្សាយមកទេ លុះត្រាតែបានឲ្យការយល់ព្រមបញ្ជាក់។ + + b. ការរៀបចំ ការយល់ព្រម ឬកិច្ចព្រមព្រៀងណាមួយទាក់ទងវត្ថុដែលបានផ្ដល់អាជ្ញាប័ណ្ណ + មិនបានបញ្ជាក់នៅទីនេះ គឺជាលក្ខខណ្ឌផ្សេង ហើយឯករាជ្យពីលក្ខខណ្ឌនៃឯកសារនេះ។ + +ផ្នត់ទី 8 -- ការបកស្រាយ។ + + a. ដើម្បីជៀសវាងការប្រកាន់ខុស អាជ្ញាប័ណ្ណនេះមិនដែលនិងមិនត្រូវបាន + បកស្រាយថា ដើម្បីកាត់បន្ថយ កំណត់ ឬដាក់លក្ខខណ្ឌលើការប្រើប្រាស់វត្ថុដែល + អាចធ្វើបានដោយបទច្បាប់ដោយគ្មានការអនុញ្ញាតក្រោមអាជ្ញាប័ណ្ណសាធារណៈនេះ។ + + b. ខណៈដែលទៅបាន ប្រសិនបើការអនុវត្តផ្នែកណាមួយនៃអាជ្ញាប័ណ្ណនេះគឺមិនអាចអនុវត្តបាន, + វាត្រូវត្រូវបានកែប្រែដោយស្វ័យប្រវត្តិទៅកម្រិតតិចតួចសម្រាប់ + ធ្វើឲ្យអាចអនុវត្តបាន។ ប្រសិនបើមិនអាចកែប្រែ បាន វានឹងត្រូវបានដកចេញ + ដោយមិនប៉ះពាល់ដល់ការអនុវត្តបាននៃលក្ខខណ្ឌនៅសល់ទៀត។ + + c. គ្មានលក្ខខណ្ឌណាមួយនៃអាជ្ញាប័ណ្ណនេះនឹងត្រូវបដិសេធន៍ ហើយគ្មានការបរាជ័យ + ក្នុងការអនុវត្តត្រូវបានយល់ព្រម លុះត្រាតែមានការយល់ព្រមច្បាស់ពីអ្នកផ្តល់អាជ្ញាប័ណ្ណ។ + + d. គ្មានអ្វីនៅក្នុងអាជ្ញាប័ណ្ណនេះដែលបង្កើត ឬអាចបកស្រាយថា + ការកំណត់ ឬការបដិសេធនូវអនុសិទ្ធិ និងការពារដែលអាចប្រើប្រាស់បាន + ទៅលើអ្នកផ្តល់អាជ្ញាប័ណ្ណ ឬអ្នកដទៃ រួមទាំងពីរប្រព័ន្ធច្បាប់ណាមួយ។ + +======================================================================= + +Creative Commons ទទួលខុសត្រូវមិនមែនជាភាគីនៃអាជ្ញាប័ណ្ណសាធារណៈរបស់ខ្លួនទេ។ ទោះជា +យ៉ាងណា Creative Commons អាចជ្រើសរើសអោយអនុវត្តអាជ្ញាប័ណ្ណសាធារណៈមួយថែមទៀត +លើវត្ថុដែលវាបោះពុម្ពផ្សាយ ហើយនៅក្នុងករណីទាំងនោះ វានឹងត្រូវបានគេពិចារណា +ថាជា "អ្នកផ្តល់អាជ្ញាប័ណ្ណ។" អត្ថបទអាជ្ញាប័ណ្ណសាធារណៈ Creative Commons នេះ +ត្រូវបានប្ដេជ្ញាចិត្តដើម្បីប្រើនៅក្នុងដែនសាធារណៈក្រោមការផ្ដល់អង្គជំនួយដែនសាធារណៈ +CC0។ លើកលែងតែមានគោលបំណងកំណត់តែលម្អិតថាវត្ថុក៏ត្រូវបានចែករំលែក +ក្រោមអាជ្ញាប័ណ្ណសាធារណៈ Creative Commons ឬដូចដែលបានអនុញ្ញាតដោយគោលការណ៍ +Creative Commons ដែលបានផ្សព្វផ្សាយនៅ creativecommons.org/policies, +Creative Commons មិនមានសិទ្ធិក្នុងការអនុញ្ញាតឲ្យប្រើឈ្មោះពាណិជ្ជកម្ម +"Creative Commons" ឬសញ្ញាផ្សេងទៀតរបស់ Creative Commons លុះត្រាតែមានការយល់ព្រម +ជាលាយលក្ខណ៍ជាមុនរួចហើយ រួមបញ្ចូល ដោយមិនកំណត់ សម្រាប់ការកែប្រែដែលមិនបានអនុញ្ញាត +ទៅលើអាជ្ញាប័ណ្ណសាធារណៈ ឬលក្ខខណ្ឌ ឬកិច្ចព្រមព្រៀងផ្សេងៗណាមួយ +ទាក់ទងនឹងការប្រើប្រាស់វត្ថុដែលបានបានផ្ដល់អាជ្ញាប័ណ្ណ។ ដើម្បីជៀសវាងការប្រកាន់ខុស +អត្ថបទនេះមិនជាផ្នែកនៃអាជ្ញាប័ណ្ណទេ។ + +Creative Commons អាចត្រូវបានទំនាក់ទំនងតាមគេហទំព័រ creativecommons.org។ + +--- + + +**ការបញ្ចាក់**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែដោយ AI ដែលមានឈ្មោះ [Co-op Translator](https://github.com/Azure/co-op-translator)។ ខណៈពេលដែលយើងខិតខំប្រឹងប្រែងសម្រាប់ភាពត្រឹមត្រូវ សូមយល់ដឹងថាការបកប្រែដោយស្វ័យប្រវត្តិអាចមានកំហុស ឬខុសឆ្គងបាន។ ឯកសារដើមដែលមានភាសាតាមដើមគួរត្រូវបានពិចារណាថាជាដើមទុនផ្លូវការជាក់លាក់។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយអ្នកជំនាញមនុស្សត្រូវបានផ្តល់អនុសាសន៍។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រូបមិនត្រឹមត្រូវណាមួយ ដែលកើតមានពីការប្រើប្រាស់ការបកប្រែនេះឡើយ។ + \ No newline at end of file diff --git a/translations/km/sketchnotes/README.md b/translations/km/sketchnotes/README.md new file mode 100644 index 000000000..782e55944 --- /dev/null +++ b/translations/km/sketchnotes/README.md @@ -0,0 +1,14 @@ +អាចទាញយកកំណត់ត្រាអប់រំទាំងអស់នៅទីនេះ។ + +🖨 សម្រាប់ព្រីនក្នុងកម្រិតដែនកំណត់ខ្ពស់ គំរូ TIFF មានស្រាប់នៅ [this repo](https://github.com/girliemac/a-picture-is-worth-a-1000-words/tree/main/ml/tiff)។ + +🎨 បង្កើតដោយ៖ [Tomomi Imura](https://github.com/girliemac) (Twitter: [@girlie_mac](https://twitter.com/girlie_mac)) + +[![CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-sa/4.0/) + +--- + + +**ការបដិសេធ**៖ +ឯកសារនេះត្រូវបានបកប្រែដោយប្រើសេវាកម្មបកប្រែ AI [Co-op Translator](https://github.com/Azure/co-op-translator) ។ ខណៈពេលដែលយើងខិតខំរកភាពត្រឹមត្រូវ សូមយកចិត្តទុកដាក់ថាការបកប្រែដោយស្វ័យប្រវត្តិក្នុងប្រហែលមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមក្នុងភាសាតិភាគរបស់វាគួរត្រូវបានគិតថាជាឈុតឯកសារដែលមានសិទ្ធិ។ សម្រាប់ព័ត៌មានសំខាន់ៗ ការបកប្រែដោយមនុស្សជំនាញត្រូវបានណែនាំ។ យើងមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកប្រែដែលមិនត្រឹមត្រូវណាមួយដែលកើតឡើងពីការប្រើប្រាស់ការបកប្រែមួយនេះទេ។ + \ No newline at end of file diff --git a/translations/kn/.co-op-translator.json b/translations/kn/.co-op-translator.json index 3bd275a9e..aed00ceb1 100644 --- a/translations/kn/.co-op-translator.json +++ b/translations/kn/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "kn" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:53:41+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:52:30+00:00", "source_file": "README.md", "language_code": "kn" }, diff --git a/translations/kn/README.md b/translations/kn/README.md index 6eccaff70..13259b6c2 100644 --- a/translations/kn/README.md +++ b/translations/kn/README.md @@ -10,14 +10,14 @@ ### 🌐 ಬಹುಭಾಷಾ ಬೆಂಬಲ -#### GitHub ಕ್ರಿಯೆಯಿಂದ (ಸ್ವಯಂಚಾಲಿತ ಮತ್ತು ಯಾವಾಗಲೂ ನವೀಕೃತವಾಗಿದೆ) ಬೆಂಬಲಿತವಾಗಿದೆ +#### GitHub ಕ್ರಮದ ಮೂಲಕ ಬೆಂಬಲಿಸಲಾಗಿದೆ (ಸ್ವಯಂಚಾಲಿತ ಮತ್ತು ಸದಾ ನವೀಕರಿಸಲಾಗುತ್ತದೆ) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](./README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](./README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **ಸ್ಥಳೀಯವಾಗಿ ಕ್ಲೋನ್ ಮಾಡಬೇಕೇ?** +> **ಸ್ಥಳೀಯವಾಗಿ ಕ್ಲೋನ್ ಮಾಡಲು ಇಚ್ಛಿಸುತ್ತೀರಾ?** > -> ಈ ಸಂಗ್ರಹವು 50+ ಭಾಷಾ ಅನುವಾದಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ಡೌನ್‌ಲೋಡ್ ಗಾತ್ರವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಿಸುತ್ತದೆ. ಅನುವಾದಗಳಿಲ್ಲದೇ ಕ್ಲೋನ್ ಮಾಡಲು sparse checkout ಬಳಸಿ: +> ಈ ರೆಪೊಸಿಟರಿ 50+ ಭಾಷಾ ಅನುವಾದಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ಡೌನ್‌ಲೋಡ್ ಗಾತ್ರವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಿಸುತ್ತದೆ. ಅನುವಾದಗಳಿಲ್ಲದೆ ಕ್ಲೋನ್ ಮಾಡಲು, ಸ್ಪಾರ್ಸ್ ಚೆಕ್ಔಟ್ ಬಳಸಿ: > > **Bash / macOS / Linux:** > ```bash @@ -33,205 +33,204 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> ಇದು ಕರ್ಸನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಬೇಕಾದ ಎಲ್ಲವನ್ನೂ ಬಹು ವೇಗದ ಡೌನ್‌ಲೋಡ್‌ಗೆ ಒದಗಿಸುತ್ತದೆ. +> ಇದು ನಿಮಗೆ ಪಾಠವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಅಗತ್ಯವಿರುವ ಎಲ್ಲವನ್ನೂ ಸರಿಯಾದ ವೇಗದಲ್ಲಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ. -#### ನಮ್ಮ ಸಮುದಾಯಕ್ಕೆ ಸೇರಿ +#### ನಮ್ಮ ಸಮುದಾಯದಲ್ಲಿ ಸೇರಿ [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -ನಮ್ಮ ಬಳಿ ಡಿಸ್ಕೋರ್ಡ್ AI ಘಟಕ ಸರಣಿಯಿದೆ, ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ ಮತ್ತು ಸೇರಿಕೊಳ್ಳಲು [Learn with AI Series](https://aka.ms/learnwithai/discord) 18 - 30 ಸೆಪ್ಟೆಂಬರ್, 2025 ರಲ್ಲಿ. ನೀವು ಗಿಟ್‌ಹಬ್ ಕೋಪೈಲಟ್ ಅನ್ನು ಡೇಟಾ ವಿಜ್ಞಾನಕ್ಕಾಗಿ ಹೇಗೆ ಬಳಸುವುದು ಎಂಬ ಸಲಹೆಗಳು ಮತ್ತು ಪುಟಗಳನ್ನೂ ಪಡೆಯುತ್ತೀರಿ. +ನಾವು Discord ನಲ್ಲಿ AI ಸರಣಿಯನ್ನು ಕಲಿಯುತ್ತಿರುವುದು ನಡೆಯುತ್ತಿದೆ, ಇನ್ನಷ್ಟು ತಿಳಿಯಲು ಮತ್ತು ನಮಗೆ ಸೇರಿಸಲು [Learn with AI Series](https://aka.ms/learnwithai/discord) ಐತಿಹಾಸ 18 - 30 ಸೆಪ್ಟಂಬರ್, 2025. ನೀವು GitHub Copilot ಅನ್ನು ಡೇಟಾ ವಿಜ್ಞಾನಕ್ಕಾಗಿ ಬಳಸುವ ಸಲಹೆಗಳು ಮತ್ತು ಸುಪಾಚಾರಗಳನ್ನು ಪಡೆಯುತ್ತೀರಿ. ![Learn with AI series](../../translated_images/kn/3.9b58fd8d6c373c20.webp) -# ಆರಂಭಿಕರಿಗಾಗಿ ಮೆಷಿನ್ ಲರ್ನಿಂಗ್ - ಒಂದು ಪಠ್ಯಕ್ರಮ +# ಪ್ರಾರಂಭಿಕರಿಗೆ ಯಂತ್ರ ಕಲಿಕೆ - ಪಾಠಕ್ರಮ -> 🌍 ಜಗತ್ತಿನ ಸಂಸ್ಕೃತಿಗಳ ಮೂಲಕ ಮೆಷಿನ್ ಲರ್ನಿಂಗ್ ಅನ್ನು ಅನ್ವೇಷಿಸಿ ಜಗತ್ತನ್ನು ಸುತ್ತಿ ಓರೆಯಾಗಿರಿ 🌍 +> 🌍 ಜಗತ್ತಿನ ಸಂಸ್ಕೃತಿಗಳ ಮೂಲಕ ಯಂತ್ರ ಕಲಿಕೆಯನ್ನು ಅನ್ವೇಷಿಸುವಾಗ ಜಗತ್ತಿನ ಸುತ್ತ ಮುಂದುವರೆಯಿರಿ 🌍 -ಮೈಕ್ರೋಸಾಫ್ಟ್‌ನ ಕ್ಲೌಡ್ ಪರಿಷ್ಕಾರಿಗಳು 12 ವಾರಗಳ, 26 ಪಾಠಗಳ ಪಠ್ಯಕ್ರಮವನ್ನು ನಿಮಗೆ ನೀಡಲು ಸಂತೋಷಪಡುತ್ತಾರೆ, ಇದು **ಮೆಷಿನ್ ಲರ್ನಿಂಗ್** ಬಗ್ಗೆ ಸಂಪೂರ್ಣವಾಗಿದೆ. ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ನೀವು ಕೆಲವೊಮ್ಮೆ **ಪ್ರಾಚೀನ ಮೆಷಿನ್ ಲರ್ನಿಂಗ್** ಎಂದು ಕರೆಸಿಕೊಳ್ಳುವದರ ಬಗ್ಗೆ ತಿಳಿಯುತ್ತೀರಿ, ಮುಖ್ಯವಾಗಿ ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸಿ ಮತ್ತು ಗಾಢ ಅಭ್ಯಾಸವನ್ನು ತಪ್ಪಿಸಿ, ಅದು ನಮ್ಮ [ಮೂಲತಃ AI ಆರಂಭಿಕರ ಪಠ್ಯಕ್ರಮ](https://aka.ms/ai4beginners) ನಲ್ಲಿ ಕಾಣಬಹುದು. ಈ ಪಾಠಗಳನ್ನು ನಮ್ಮ ['ಡೇಟಾ ಸೈನ್ಸ್ ಆರಂಭಿಕರ ಪಠ್ಯಕ್ರಮ'](https://aka.ms/ds4beginners) ಜೊತೆಗೆ ಕೂಡ ಸಂಪರ್ಕಿಸಬಹುದು. +Microsoft ನಲ್ಲಿ ಕ್ಲೌಡ್ ಸಲಹೆಗಾರರು 12 ವಾರಗಳ, 26 ಪಾಠಗಳ ಪಾಠಕ್ರಮವನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲು ಸಂತೋಷ ಪಡುತ್ತಾರೆ ಇದು **ಯಂತ್ರ ಕಲಿಕೆ** ಬಗ್ಗೆ ಸಂಪೂರ್ಣವಾಗಿದೆ. ಈ ಪಾಠಕ್ರಮದಲ್ಲಿ, ನೀವು ಕೆಲವೊಮ್ಮೆ **ಪಾರಂಪರಿಕ ಯಂತ್ರ ಕಲಿಕೆ** ಎಂದು ಕರೆಯಲ್ಪಡುವುದನ್ನು ಕುರಿತು, ಮುಖ್ಯವಾಗಿ Scikit-learn ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸಿ ಮತ್ತು ಡೀಪ್ ಲರ್ನಿಂಗ್ (ನಮ್ಮ [AI for Beginners' curriculum](https://aka.ms/ai4beginners) ನಲ್ಲಿ ವಿವರಣೆ ನೀಡಲ್ಪಟ್ಟಿದೆ) ದನ್ನು ತಪ್ಪಿಸುತ್ತೀರಾ. ಈ ಪಾಠಗಳನ್ನು ನಮ್ಮ ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) ಜೊತೆಗೆ ಜೋಡಿಸಬಹುದು. -ನಾವು ಜಗತ್ತಿನ ವಿವಿಧ ಭಾಗಗಳ ಡೇಟಾವನ್ನು ಬಳಸಿ ಈ ಕ್ಲಾಸಿಕ್ ತಂತ್ರಗಳನ್ನು ಅನ್ವಯಿಸುವಾಗ ಜಗತ್ತನ್ನು ಸುತ್ತಿ ನೋಡಿ. ಪ್ರತಿ ಪಾಠವು ಪೂರ್ವ ಮತ್ತು ನಂತರದ ಪ್ರಶ್ನೋತ್ತರಗಳು, ಪಾಠವನ್ನು ಪೂರ್ಣಗೊಳಿಸುವ ಯುಕ್ತಿವTIM, ಪರಿಹಾರ, ಕಾರ್ಯನಿರ್ವಹಣೆ ಮತ್ತು ಇನ್ನಷ್ಟು ಒಳಗೊಂಡಿದೆ. ನಮ್ಮ ಯೋಜನೆ-ಆಧಾರಿತ ಪಠ್ಯಶಿಕ್ಷಣವು ನೀವು ಕಲಿಯುವಾಗ ನಿರ್ಮಿಸುವುದು ಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಇದು ಹೊಸ ಕೌಶಲ್ಯಗಳಿಗೆ ' ಒತ್ತಿಗೆ ಹಾಕುವ ' ಒಂದು ಸಾಬೀತಾದ ವಿಧಾನ. +ನಾವು ಜಗತ್ತಿನ ವಿವಿಧ ಭಾಗಗಳಿಂದ ಡೇಟಾ ಪಡೆಯುವ ಈ ಪಾರಂಪರಿಕ ತಂತ್ರಗಳನ್ನು ಅನ್ವಯಿಸುವಾಗ ಜಗತ್ತಿನ ಸುತ್ತ ಪ್ರಯಾಣ ಮಾಡಿ. ಪ್ರತಿಯೊಂದು ಪಾಠವೂ ಪೂರ್ವ ಮತ್ತು ನಂತರದ ಪ್ರಶ್ನೋತ್ತರಗಳನ್ನು, ಪಾಠವನ್ನು ಪೂರ್ಣಗೊಳಿಸುವ ಬರಹದ ಕಾರ್ಯವಿಧಾನವನ್ನು, ಪರಿಹಾರವನ್ನು, ಅವಲೋಕನವನ್ನು ಮತ್ತು ಇನ್ನಷ್ಟು ಹೊಂದಿದೆ. ನಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ಆಧಾರಿತ ಪಠಾನದ ಮೂಲಕ ನೀವು ಕಲಿಯುವಾಗ ನಿರ್ಮಿಸುವ ಮೂಲಕ ಕಲಿತಿರಿ, ಇದು ಹೊಸ ಕೌಶಲ್ಯಗಳಿಗೆ 'ಜೃಂಭಣೀಯ'ವಾಗಲು ಪರೀಕ್ಷಿತ ಮಾರ್ಗವಾಗಿದೆ. -**✍️ ನಮ್ಮ ಲೇಖಕರಿಗೆ ಹೃತ್ಪೂರ್ವಕ ಧನ್ಯವಾದಗಳು** ಜೆನ್ ಲೂಪರ್, ಸ್ಟೀಫನ್ ಹಾವೆಲ್, ಫ್ರಾನ್ಸೆಸ್ಕಾ ಲಾಜ್ಜೇರಿ, ಟೊಮೊಮಿ ಇಮುರಾ, ಕ್ಯಾಸ್ ಬ್ರೇವಿಯೂ, ದ್ಮಿತ್ರಿ ಸೋಷ್ನಿಕೋವ್, ಕ್ರಿಸ್ ನೊರಿಂಗ್, ಅನಿರ್ಬಾನ್ ಮುಖರ್ಜಿ, ಒರ್ನೆಲಾ ಅಲ್ಷನ್ಯಾನ್, ರೂತ್ ಯಕುಬು ಮತ್ತು ಎಮಿ ಬಾಯ್ಡ್ +**✍️ ನಮ್ಮ ಲೇಖಕರಿಗೆ ಹೃತ್ಪೂರ್ವಕ ಧನ್ಯವಾದಗಳು** ಜೆನ್ ಲೂಪರ್, ಸ್ಟೀಫನ್ ಹೋವಲ್, ಫ್ರಾನ್ಸೆಸ್ಕಾ ಲಾಜ್ಜೆರಿ, ತೊಮೊಮಿ ಇಮುರಾ, ಕ್ಯಾಶಿ ಬ್ರೇವಿಯು, ದ್ಮಿತ್ರಿ ಸೋಶ್ನಿಕೋವ್, ಕ್ರಿಸ್ ನೋರಿಂಗ್, ಅನಿರ್ಬಾನ್ ಮುಖರ್ಜೀ, ಓರ್ನೇಲ್ಲಾ ಅಲ್ಪುನ್ಯಾನ್, ರೂತ್ ಯಾಕುಬು ಮತ್ತು ಎಮೀ ಬಾಯ್ಡ್ -**🎨 ನಮ್ಮ ಚಿತ್ರಕಾರರಿಗೆ ಕೂಡ ಧನ್ಯವಾದಗಳು** ಟೊಮೊಮಿ ಇಮುರಾ, ದಾಸನಿ ಮಾದಿಪಳ್ಳಿ, ಮತ್ತು ಜೆನ್ ಲೂಪರ್ +**🎨 ನಮ್ಮ ಚಿತ್ರಕಾರರಿಗೆ ಸಹ ಧನ್ಯವಾದಗಳು** ತೊಮೊಮಿ ಇಮುರಾ, ದಾಸನಿ ಮಡಿಪಳ್ಳಿ, ಮತ್ತು ಜೆನ್ ಲೂಪರ್ -**🙏 ವಿಶೇಷ ಧನ್ಯವಾದಗಳು 🙏 ನಮ್ಮ ಮೈಕ್ರೋಸಾಫ್ಟ್ ವಿದ್ಯಾರ್ಥಿ ಆಂಬಾಸಿಡರ್ ಲೇಖಕರು, ಪರಿಶೀಲಕರು, ಮತ್ತು ವಿಷಯದ ಸಹಾಯಕರಿಗೆ**, ವಿಶೇಷವಾಗಿ ರಿಷಿತ್ ಡಾಗ್ಲಿ, ಮುಹಮ್ಮದ್ ಸಕಿಬ್ ಖಾನ್ ಇನಾನ್, ರೋಹನ್ ರಾಜ್, ಅಲೆಕ್ಷಾಂಡ್ರು ಪೆಟ್ರೆಸ್ಕು, ಅಭಿಶೇಕ್ ಜೈಸ್ವಾಲ್, ನವ್ರಿನ್ ತಬಸ್ಸುಮ್, ಇವಸ್ಥಿ ಸಮುಯಿಲಾ ಮತ್ತು ಸ್ನಿಗ್ಧಾಗರ್ ಅಗರ್ವಾಲ್ +**🙏 ವಿಶೇಷ ಧನ್ಯವಾದಗಳು 🙏 ನಮ್ಮ Microsoft ವಿದ್ಯಾರ್ಥಿ ಅಗვისಕರಿಗೆ, ವಿಮರ್ಶಕರಿಗೆ ಮತ್ತು ವಿಷಯ ಕೊಡುಗೆದಾರರಿಗೆ**, ವಿಶೇಷವಾಗಿ ರಿಷಿತ್ ಡಾಗ್ಲಿ, ಮುಹಮ್ಮದ್ ಸಕೀಬ್ ಖಾನ್ ಇನಾನ್, ರೋಹನ್ ರಾಜ್, ಅಲೆಕ್ಸಾಂಡ್ರು ಪೆಟ್ರೆಸ್ಕು, ಅಭಿಷೇಕ್ ಜೈಸ್ವಾಲ್, ನವ್ರೀನ್ ಥಬಸ್ಸುಮ್, ಐವಾನ್ ಸಾಮುಯಿಲಾ, ಮತ್ತು ಸ್ನಿಗ್ಧಾ ಅಗರ್ವಾಲ್ -**🤩 Microsoft ವಿದ್ಯಾರ್ಥಿ ಆಂಬಾಸಿಡರ್‌ಗಳು ಏರಿಕ್ ವಾಂಜೌ, ಜಸ್‌ಲೀನ್ ಸೋಂಧಿ ಮತ್ತು ವಿದ್ಯುಷಿ Гуп्ता ಅವರಿಗೆ ನಮ್ಮ R ಪಾಠಗಳಿಗಾಗಿ ಹೆಚ್ಚಿನ ಕೃತಜ್ಞತೆ!** +**🤩 Microsoft ವಿದ್ಯಾರ್ಥಿ ಅಗವಿಸಕರಾದ ಎರಿಕ್ ವಾಂಜೌ, ಜಸ್‌ಲೀನ್ ಸೊಂಡಿ, ಮತ್ತು ವಿದ್ಯುಷಿ ಗುಪ್ತಾಗೆ ನಮ್ಮ R ಪಾಠಗಳಿಗೆ ಹೆಚ್ಚಿನ ಧನ್ಯವಾದಗಳು!** -# ಪ್ರಾರಂಭಿಸುವುದು +# ಪ್ರಾರಂಭಿಸೋಣ ಈ ಹಂತಗಳನ್ನು ಅನುಸರಿಸಿ: -1. **ಗ್ರಂಥಾಲಯ Fork ಮಾಡಿ**: ಈ ಪುಟದ ಮೇಲೆ-ಬಲ ಭಾಗದಲ್ಲಿರುವ "Fork" ಬಟನ್‌పై ಕ್ಲಿಕ್ ಮಾಡಿ. -2. **ಗ್ರಂಥಾಲಯ Clone ಮಾಡಿ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **ರೆಪೊಸಿಟರಿಯನ್ನು ಫೋರ್ಕ್ ಮಾಡಿ**: ಈ ಪುಟದ ಮೇಲೆ-ಬಲ ಭಾಗದಲ್ಲಿ ಇರುವ "Fork" ಬಟನನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ. +2. **ರೆಪೊಸಿಟರಿಯನ್ನು ಕ್ಲೋನ್ ಮಾಡಿ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [ಈ ಪಠ್ಯಕ್ರಮದ ಎಲ್ಲಾ ಹೆಚ್ಚುವರಿ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಮ್ಮ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಲರ್ನ್ ಸಂಗ್ರಹದಲ್ಲಿ ಹುಡುಕಿ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [ಈ ಕೋರ್ಸ್‌ಗಾಗಿ ಎಲ್ಲಾ ಹೆಚ್ಚುವರಿ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಮ್ಮ Microsoft Learn ಸಂಗ್ರಹದಲ್ಲಿ ಹುಡುಕಿ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **ಸಹಾಯ ಬೇಕಾದರೆ?** ಸ್ಥಾಪನೆ, ಸೆಟ್‌ಅಪ್ ಹಾಗೂ ಪಾಠಗಳನ್ನು ರನ್ ಮಾಡುವ ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳ ಪರಿಹಾರಕ್ಕಾಗಿ ನಮ್ಮ [ಸಮಸ್ಯೆ ಪರಿಹಾರ ಮಾರ್ಗದರ್ಶಿ](TROUBLESHOOTING.md) ನೋಡಿ. +> 🔧 **ಸಹಾಯ ಬೇಕಾ?** ಸ್ಥಾಪನೆ, ಸೆಟ್ ಅಪ್ ಮತ್ತು ಪಾಠಗಳನ್ನು ಚಲಿಸಲು ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳ ಪರಿಹಾರಗಳಿಗೆ ನಮ್ಮ [Troubleshooting Guide](TROUBLESHOOTING.md) ಪರಿಶೀಲಿಸಿ. -**[ವಿದ್ಯಾರ್ಥಿಗಳು](https://aka.ms/student-page)**, ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ಬಳಸಲು, ಸಂಪೂರ್ಣ ರೆಪ್ ಅನ್ನು ನಿಮ್ಮ ಸ್ವಂತ GitHub ಖಾತೆಗೆ Fork ಮಾಡಿ ಮತ್ತು ವ್ಯಾಯಾಮಗಳನ್ನು ನಿಮ್ಮದೇ ಅಥವಾ ಗುಂಪಿನೊಂದಿಗೆ ಪೂರ್ಣಗೊಳಿಸಿ: +**[ವಿದ್ಯಾರ್ಥಿಗಳು](https://aka.ms/student-page)**, ಈ ಪಾಠಕ್ರಮವನ್ನು ಬಳಸಲು, ಸಂಪೂರ್ಣ ರೆಪೊವನ್ನು ನಿಮ್ಮ ಸ್ವಂತ GitHub ಖಾತೆಗೆ ಫೋರ್ಕ್ ಮಾಡಿ ಮತ್ತು ಅಭ್ಯಾಸಗಳನ್ನು ನಿಮ್ಮ ತಾನೇ ಅಥವಾ ಗುಂಪಿನಲ್ಲಿ ಪೂರ್ಣಗೊಳಿಸಿ: -- ಪೂರ್ವ ಉಪನ್ಯಾಸ ಪ್ರಶ್ನೋತ್ತರದಿಂದ ಪ್ರಾರಂಭಿಸಿ. -- ಉಪನ್ಯಾಸ ಓದಿ ಮತ್ತು ಚಟುವಟಿಕೆಗಳನ್ನು ನಿರ್ವಹಿಸಿ, ಪ್ರತಿಯೊಬ್ಬ ಜ್ಞಾನ ಪರಿಶೀಲನೆಗೆ ವಿರಾಮ ಕೊಡಿ ಮತ್ತು ಪರಿಗಣಿಸಿ. -- ಯೋಜನೆಗಳನ್ನು ರಚಿಸಲು ಪಾಠಗಳನ್ನು ತಲಪಿಸಿ, ಪರಿಹಾರ ಕೋಡ್ ಅನ್ನು ನೇರವಾಗಿ ರನ್ ಮಾಡುವದಕ್ಕೆ ಬದಲು ಪಾಠಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ; ಆದರೆ ಆ ಕೋಡ್ ಪ್ರತಿ ಯೋಜನೆಗೆ ಸಂಬಂಧಿಸಿದ `/solution` ಫೋಲ್ಡರ್ಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ. -- ಉಪನ್ಯಾಸದ ನಂತರದ ಪ್ರಶ್ನೋತ್ತರವನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ. -- ಸವಾಲನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ. -- ಕಾರ್ಯನಿರ್ವಹಣೆಯನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ. -- ಪಾಠ ಗುಂಪನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರ, [ಚರ್ಚಾ ಫಲಕ](https://github.com/microsoft/ML-For-Beginners/discussions) ಗೆ ಭೇಟಿ ನೀಡಿ ಮತ್ತು ಸರಿಯಾದ PAT ರೂಪವನ್ನು ತುಂಬಿ "ಬಳಿಕಲಿಕೆಯಿಂದ" ಕಲಿಯೋಿರಿ. 'PAT' ಎಂದರೆ ಪ್ರಗತಿ ಮೌಲ್ಯಮಾಪನ ಉಪಕರಣ, ಇದನ್ನು ನೀವು ನಿಮ್ಮ ಪಠ್ಯಂಶವನ್ನು ಮುಂದುವರೆಸಲು ತುಂಬುತ್ತೀರಿ. ನೀವು ಇತರ PAT ಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡಬಹುದು ಮತ್ತು ನಮ್ಮೆ ಜೊತೆ ಕಲಿಯಬಹುದು. +- ಪೂರ್ವ ಉಪನ್ಯಾಸ ಪ್ರಶ್ನೋತ್ತರಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ. +- ಉಪನ್ಯಾಸ ಓದಿ ಮತ್ತು ಚಟುವಟಿಕೆಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ, ಪ್ರತಿ ಜ್ಞಾನದ ಪರೀಕ್ಷೆಯಲ್ಲಿ ವಿರಾಮ ನೀಡಿ ಮತ್ತು ಪರಿಗಣಿಸಿ. +- ಪರಿಹಾರ ಕೋಡ್ ಚಲಿಸುವದಕ್ಕಿಂತ ಪಾಠಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದರ ಮೂಲಕ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳನ್ನು ಸೃಷ್ಟಿಸಲು ಯತ್ನಿಸಿ; ಆ ಕೋಡ್ ಪ್ರತಿ ಪ್ರಾಜೆಕ್ಟ್ ಆಧರಿತ ಪಾಠದಲ್ಲಿ `/solution` ಫೋಲ್ಡರ್‌ಗಳಲ್ಲಿ ಲಭ್ಯವಿದೆ. +- ನಂತರ ಉಪನ್ಯಾಸ ಪ್ರಶ್ನೋತ್ತರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ. +- ಸವಾಲುಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ. +- ನೇಮಕವನ್ನು ಪೂರ್ಣಗೊಳಿಸಿ. +- ಪಾಠ ಗುಂಪನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರ, [ಚರ್ಚಾ ಮಂಡಳಿ](https://github.com/microsoft/ML-For-Beginners/discussions) ಭೇಟಿ ನೀಡಿ ಮತ್ತು ಸೂಕ್ತ PAT ರೂಬ್ರಿಕ್ ಅನ್ನು ತುಂಬಿ "ಉಚ್ಛರಿಸಿ". 'PAT' ಎಂದರೆ ಪ್ರಗತಿ ಅಂದಾಜು ಸಾಧನ, ಇದನ್ನು ನಿಮ್ಮ ಕಲಿಕೆಯನ್ನು ಮುಂದುವರಿಸಲು ನೀವು ತುಂಬಬಹುದು. ನೀವು ಇತರ PAT ಗಳಿಗೆ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡಬಹುದು ಆದ್ದರಿಂದ ನಾವು ಒಟ್ಟಿಗೆ ಕಲಿಯಬಹುದು. -> ಹೆಚ್ಚಿನ ಅಧ್ಯಯನಕ್ಕಾಗಿ, ಈ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ಮಾಡ್ಯೂಲ್‌ಗಳು ಮತ್ತು ಕಲಿಕೆ ಮಾರ್ಗಗಳನ್ನು ಅನುಸರಿಸುವುದು ಸಲಹೆ. +> ಮುಂದುವರಿದ ಅಧ್ಯಯನಕ್ಕಾಗಿ, ನಾವು ಈ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ಘಟಕಗಳು ಮತ್ತು ಕಲಿಕೆ ಮಾರ್ಗಗಳನ್ನು ಅನುಸರಿಸುವಂತೆ ಶಿಫಾರಸು ಮಾಡುತ್ತೇವೆ. -**ಶಿಕ್ಷಕರು**, ನಾವು ಈ [ಪಠ್ಯಕ್ರಮವನ್ನು ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬ ಸಲಹೆಗಳನ್ನು ಸೇರಿಸಿದ್ದೇವೆ](for-teachers.md). +**ಶಿಕ್ಷಕರು**, ಈ ಪಾಠಕ್ರಮವನ್ನು ಹೇಗೆ ಬಳಸಬೇಕೆಂದು [ಕೆಲವು ಸಲಹೆಗಳನ್ನು](for-teachers.md) ನಾವು ಸೇರಿಸಿದ್ದೇವೆ. --- -## ವಿಡಿಯೋ ನಿರ್ವಹಣೆಗಳು +## ವೀಡಿಯೋ ವಾಕ್‌ಥ್ರೂಗಳು -ಕೆಲವು ಪಾಠಗಳು ಚಿಕ್ಕ ವೀಡಿಯೋ ರೂಪದಲ್ಲಿವೆ. ನೀವು ಇವನ್ನು ಪಾಠಗಳಲ್ಲಿ ಸಾದಾರಣವಾಗಿ ಅಥವಾ [ಮೈಕ್ರೋಸಾಫ್ಟ್ ಡೆವಲಪರ್ YouTube ಚಾನಲ್ ನಲ್ಲಿ 'ML for Beginners' ಪ್ಲೇಲಿಸ್ಟ್‌ನಲ್ಲಿ](https://aka.ms/ml-beginners-videos) ಕೆಳಗಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಕಾಣಬಹುದು. +ಕೆಲವು ಪಾಠಗಳು ಚುಟುಕು ವೀಡಿಯೋ ರೂಪದಲ್ಲಿ ಲಭ್ಯವಿದ್ದು. ನೀವು ಈ ಎಲ್ಲವನ್ನೂ ಪಾಠಗಳೊಳಗೆ_inline_ ಅಥವಾ Microsoft ವಿಕಸಕ YouTube ಚಾನೆಲ್‌ನ [ML for Beginners ಪ್ಲೇಲಿಸ್ಟ್](https://aka.ms/ml-beginners-videos) ನಲ್ಲಿ ಚಿತ್ರ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿ ಕಾಣಬಹುದು. [![ML for beginners banner](../../translated_images/kn/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## ತಂಡವನ್ನು ಭೇಟಿ ಮಾಡಿ +## ತಂಡವನ್ನು ಪರಿಚಯಿಸುವುದು -[![ಪರಿಚಯ ವೀಡಿಯೋ](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**ಗಿಫ್ ಮಾರ್ಪಟ್ಟವರು** [ಮೊಹಿತ್ ಜೈಸಲ್](https://linkedin.com/in/mohitjaisal) +**ಗಿಫ್ ಸೃಷ್ಟಿಕರ್ತ** [ಮೊಹಿತ್ ಜೈಸಲ್](https://linkedin.com/in/mohitjaisal) -> 🎥 ಈ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಈ ಯೋಜನೆಯ ಮತ್ತು ಅದನ್ನು ರಚಿಸಿದವರ ಕುರಿತಾಗಿ ವೀಡಿಯೋ ನೋಡಿ! +> 🎥 ಈ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಯೋಜನೆ ಮತ್ತು ಅದನ್ನು ರಚಿಸಿದವರ ಬಗ್ಗೆ ವೀಡಿಯೋ ನೋಡಿ! --- -## ಪಾಠಶಾಸ್ತ್ರ +## ಪಠ್ಯದ ತತ್ತ್ವಶಾಸ್ತ್ರ -ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ರಚಿಸುವಾಗ ನಾವು ಎರಡು ಪಾಠಶಾಸ್ತ್ರೀಯ ಸಿದ್ದಾಂತಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಿದ್ದೇವೆ: ಪ್ರಾಯೋಗಿಕ **ಯೋಜನೆ-ಆಧಾರಿತ**ವಾಗಿರಬೇಕು ಮತ್ತು **ಸಮಾನಾಂತರ ಪ್ರಶ್ನೋತ್ತರಗಳೆಡೆ ಇದ್ದಾರೆ**. ಜೊತೆಗೆ, ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲೊಂದು ಸಾಮಾನ್ಯ **ಥೀಮ್** ಇದೆಯೆಂದು ತಾಳಮೇಳ ಕಲ್ಪಿಸಲಾಗಿದೆ. +ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ರಚಿಸುವಾಗ ನಾವು ಎರಡು ಪಠ್ಯತಾಂತ್ರಿಕ ತತ್ವಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿದ್ದು: ಇದು ಕೈಯಿಂದ ಚಟುವಟಿಕೆ ಮಾಡಬಹುದಾಗಿರುವ **ಪ್ರಾಜೆಕ್ಟ್ ಆಧಾರಿತ** ಆಗಿರಲಿ ಮತ್ತು **ಸತತ ಪ್ರಶ್ನೋತ್ತರಗಳು** ಇರಲಿ ಎಂಬುದನ್ನು ಖಾತರಿಪಡಿಸುವುದು. ಜೊತೆಗೆ, ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ಸಾಮಾನ್ಯ **ಥೀಮ್** ಒಂದನ್ನು ಹೊಂದಿದೆ ಇದರ ಮೂಲಕ ಸಸಂಬಂಧ ಸೃಷ್ಟಿ. -ವಿಷಯವಸ್ತು ಯೋಜನೆಗಳೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವುದನ್ನು ಖಚಿತಪಡಿಸುವ ಮೂಲಕ, ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಆಸಕ್ತಿ ಮೂಡುವಂತೆ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಕಲಿಕೆಯ ಕೆಲವೆತ್ತಿಗೆದ ಹತ್ತಿರ ಬರುತ್ತದೆ. ತರಗತಿಯ ಮುಂಚೆಯಾಗಿ ಕಡಿಮೆ-ಐತಿಹಾಸಿಕ ಪ್ರಶ್ನೋತ್ತರವು ವಿದ್ಯಾರ್ಥಿಯ ಕಲಿಕೆಯ ಆದ್ಯತೆಯನ್ನು ನಿರ್ಧರಿಸುವಂತಾಗಿದೆ, ಮತ್ತು ತರಗತಿದ್ ನಂತರದ ಎರಡನೇ ಪ್ರಶ್ನೋತ್ತರವು ಅಧ್ಯಯನವನ್ನು ತೀವ್ರಗೊಳಿಸುತ್ತದೆ. ಈ ಪಠ್ಯಕ್ರಮವು ನಿಗಮೃತಮ್ ಮತ್ತು ಸುಂದರವಿದ್ದಂತೆ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಸಂಪೂರ್ಣ ಅಥವಾ ಭಾಗಾಂತರವಾಗಿ ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಯೋಜನೆಗಳು ಸಣ್ಣದಾಗಿಡುತ್ತವೆ ಮತ್ತು 12 ವಾರಗಳ ಸೈಕಲ್ ಮುಟ್ಟುವವರೆಗೆ ಏರಿಕೆಯಾಗುತ್ತವೆ. ಈ ಪಠ್ಯಕ್ರಮವು ಮೆಷಿನ್ ಲರ್ನಿಂಗ್ ನ ನೈಜ ಜಗತ್ತಿನ ಅನ್ವಯಗಳ ಕುರಿತು ನಂತರದ ಚರ್ಚೆಗೆ ಅಥವಾ ಹೆಚ್ಚುವರಿ ಕ್ರೆಡಿಟ್ ಕಲಿಸಲು ಉಪಯುಕ್ತವಾದ ಪ್ರಕಟಣೆಯನ್ನು ಸಹ ಒಳಗೊಂಡಿದೆ. +ವಿಷಯವು ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳುವಂತೆ ಖಚಿತಪಡಿಸುವ ಮೂಲಕ, ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ಹೆಚ್ಚು ಆಕರ್ಷಕವಾಗುತ್ತದೆ ಮತ್ತು ಕಲಿಕೆಯ ಉಳಿವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಜೊತೆಗೆ, ತರಗತಿಗೆ ಮೊದಲು ಮಾಡುವ ಕಡಿಮೆ ಅಂಕಗಳ ಪ್ರಶ್ನೋತ್ತರವು ವಿದ್ಯಾರ್ಥಿಯು ವಿವರಣೆ ಕಲಿಯಲು ತೊಡಗಿಸಿಕೊಳ್ಳುವ ಪ್ರೇರಣೆಯನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ, ಮತ್ತು ತರಗತಿಗೆ ನಂತರದ ಮತ್ತೊಂದು ಪ್ರಶ್ನೋತ್ತರವು ಹೆಚ್ಚುವರಿ ಉಳಿವಿನ ಖಾತರಿಯನ್ನು ಕೊಡುತ್ತದೆ. ಈ ಪಠ್ಯಕ್ರಮವು ಲವಚಿಕವಾಗಿದೆ ಮತ್ತು ಮೋಜಿನದು, ಇದನ್ನು ಸಂಪೂರ್ಣ ಅಥವಾ ಭಾಗವಾಗಿ ತೆಗೆದುಕೊಳ್ಳಬಹುದು. ಪ್ರಾಜೆಕ್ಟುಗಳು ಚಿಕ್ಕದರಿಂದ ಪ್ರಾರಂಭಿಸಿ 12 ವಾರಗಳ ವ್ಯವಸ್ಥೆಯ ಕೊನೆಯಲ್ಲಿ ಜಟಿಲವಾಗಿ ಬದಲಾಗುತ್ತವೆ. ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ಯಂತ್ರ ಕಲಿಕೆಯ ನೈಜ ಜಗತ್ತಿನ ಅನ್ವಯಿಕೆಗಳ ಕುರಿತು ಒಂದು ನಂತರದ ಟಿಪ್ಪಣಿಯೂ ಇದೆ, ಇದನ್ನು ಹೆಚ್ಚುವರಿ ಕ್ರೆಡಿಟ್ ಅಥವಾ ಚರ್ಚೆಯ ಮೂಲಭೂತವಾಗಿ ಬಳಸಬಹುದು. -> ನಮ್ಮ [ನಡತ ನಿಯಮಕ](CODE_OF_CONDUCT.md), [ ಸಹಕಾರಿಕೆ](CONTRIBUTING.md), [ಅನುವಾದಗಳು](..), ಮತ್ತು [ಸಮಸ್ಯೆ ಪರಿಹಾರ](TROUBLESHOOTING.md) ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ನೋಡಿ. ನಿಮ್ಮ ನಿರ್ಮಾಣಾತ್ಮಕ ಅಭಿಪ್ರಾಯಕ್ಕೆ ನಾವು ಸಿದ್ಧರಾಗಿದ್ದೇವೆ! +> ನಮ್ಮ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), ಮತ್ತು [Troubleshooting](TROUBLESHOOTING.md) ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ನೋಡಿ. ನಿಮ್ಮ ರಚನಾತ್ಮಕ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಹಾರ್ದಿಕ स्वागत. -## ಪ್ರತಿ ಪಾಠವು ಒಳಗೊಂಡಿದೆ +## ಪ್ರತಿಯೊಂದು ಪಾಠದಲ್ಲಿ ಒಳಗೊಂಡದ್ದು -- ಐಚ್ಛಿಕ ಸ್ಕೆಚ್ನೋಟ್ -- ಐಚ್ಛಿಕ ಪೂರಕ ವೀಡಿಯೋ -- ವೀಡಿಯೋ ನಿರ್ವಾಹಣೆ (ಕೆಲವು ಪಾಠಗಳಿಗಷ್ಟೇ) -- [ಪೂರ್ವ ಉಪನ್ಯಾಸ ಪೂರ್ವಭಾವಿ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/) -- ಬರಹದ ಪಾಠ -- ಯೋಜನೆ-ಆಧಾರಿತ ಪಾಠಗಳಿಗಾಗಿ, ಯೋಜನೆಯನ್ನು ರಚಿಸುವ ಕುರಿತು ಹಂತ-ಹಂತದ ಮಾರ್ಗದರ್ಶಿಗಳು +- ಐಚ್ಛಿಕ ಸ್ಕೆಚ್‌ನೋಟು +- ಐಚ್ಛಿಕ ಪೂರ್ಣಗೊಂಡ ವೀಡಿಯೋ +- ವೀಡಿಯೋ ವಾಕ್‌ಥ್ರು (ಕೆಲವು ಪಾಠಗಳಲ್ಲಿ ಮಾತ್ರ) +- [ಪೂರ್ವ ಉಪನ್ಯಾಸ ವ್ಯಾಯಾಮ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/) +- ಬರಹ ಪಾಠ +- ಪ್ರಾಜೆಕ್ಟ್ ಆಧಾರಿತ ಪಾಠಗಳಿಗೆ, ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ನಿರ್ಮಿಸುವ ಹಂತ-ಬದ್ಧ ಮಾರ್ಗದರ್ಶನ - ಜ್ಞಾನ ಪರಿಶೀಲನೆಗಳು - ಸವಾಲು -- ಪೂರಕ ಓದಿನ ವಿಷಯಗಳು -- ಕಾರ್ಯನಿರ್ವಹಣೆ +- ಪೂರಕ ಓದು +- ನೇಮಕ - [ಪೋಸ್ಟ್-ಉಪನ್ಯಾಸ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/) - -> **ಭಾಷೆಗಳ ಬಗ್ಗೆ ಟಿಪ್ಪಣಿ**: ಈ ಪಾಠಗಳು ಪ್ರಮುಖವಾಗಿ Python ನಲ್ಲಿ ಬರೆಯಲ್ಪಟ್ಟಿವೆ, ಆದರೆ ಬಹುಮಾನದವು R ನಲ್ಲಿ ಸಹ ಲಭ್ಯವಿವೆ. R ಪಾಠವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು, `/solution` ಫೋಲ್ಡರ್‌ಗೆ ಹೋಗಿ R ಪಾಠಗಳನ್ನು ಹುಡುಕಿ. ಅವು .rmd ವಿಸ್ತರಣೆ ಹೊಂದಿವೆ, ಇದು ಒಂದು **R ಮಾರ್ಕ್‌ಡೌನ್** ಕಡತವಾಗಿದೆ, ಅದು `ಕೋಡ್ ಚಂಕ್‌ಗಳು` (R ಅಥವಾ ಇತರ ಭಾಷೆಗಳ) ಮತ್ತು `YAML ಹೆಡರ್` (PDF ಗಳು ಮೊದಲಾದ ಫಾರ್ಮಾಟ್ ಔಟ್ಪುಟ್ ಹೇಗೆ ಮಾಡಬೇಕು ಎಂಬುದನ್ನು ಕಳುಹಿಸುವಂತೆ) ಅನ್ನು ಬೆರಸುವ ಪ್ರಕ್ರಿಯೆ. ಆದಕ್ಕೆ, ಇದು ಡೇಟಾ ಸೈನ್ಸ್‌ಗೆ ಅತ್ಯುತ್ತಮ ಲೇಖನ ಚಟುವಟಿಕೆಯಾಗಿ ಸೇವಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ನೀವು ನಿಮ್ಮ ಕೋಡ್, ಅದರ ಔಟ್ಪುಟ್ ಮತ್ತು ನಿಮ್ಮ ಯೋಚನೆಗಳನ್ನು Markdown ನಲ್ಲಿ ಬರೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. R Markdown ದಾಖಲೆಗಳನ್ನು PDF, HTML ಅಥವಾ Word ಆಟ್ಪುಟ್ ರೂಪಗಳಲ್ಲಿ ರೆಂಡರ್ ಮಾಡಬಹುದು. -> **ಕ್ವಿಜ್‌ಗಳ ಬಗ್ಗೆ ಒಂದು ಟಿಪ್ಪಣಿ**: ಎಲ್ಲ ಕ್ವಿಜ್‌ಗಳು [ಕ್ವಿಜ್ ಆ್ಯಪ್ ಫೋಲ್ಡರ್](../../quiz-app)ನಲ್ಲಿ ಇರುತ್ತವೆ, ಪ್ರತಿಯೊಂದು ಪ್ರಶ್ನೆಯಲ್ಲಿ ಮೂರು ಪ್ರಶ್ನೆಗಳಿವೆ ಒಟ್ಟು 52 ಕ್ವಿಜ್‌ಗಳಿವೆ. ಅವುಗಳನ್ನು ಪಾಠಗಳಲ್ಲಿ ಒಳಗೊಂಡಿದೆ ಆದರೆ ಕ್ವಿಜ್ ಆ್ಯಪ್ ಸ್ಥಳೀಯವಾಗಿ ನಿರ್ವಹಿಸಬಹುದಾಗಿದೆ; ಸ್ಥಳೀಯವಾಗಿ ಹೋಸ್ಟ್ ಅಥವಾ ಅಜೂರ್‌ಗೆ ನಿಯೋಜಿಸಲು `quiz-app` ಫೋಲ್ಡರ್‌ನಲ್ಲಿ ಸೂಚನೆಯನ್ನು ಅನುಸರಿಸಿ. - -| ಪಾಠ ಸಂಖ್ಯಾ | ವಿಷಯ | ಪಾಠ ಗುಂಪು | ಕಲಿಕೆ ಗುರಿಗಳು | ಲಿಂಕ್ ಮಾಡಿದ ಪಾಠ | ಲೇಖಕ | -| :---------: | :----------------------------------------------------------: | :---------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------: | -| 01 | ಯಂತ್ರ ಕಲಿಕೆಯ ಪರಿಚಯ | [ಪರಿಚಯ](1-Introduction/README.md) | ಯಂತ್ರ ಕಲಿಕೆಯ ಮೂಲ ಆಲೋಚನೆಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ | [ಪಾಠ](1-Introduction/1-intro-to-ML/README.md) | ಮುಹಮ್ಮದ್ | -| 02 | ಯಂತ್ರ ಕಲಿಕೆಯ ಇತಿಹಾಸ | [ಪರಿಚಯ](1-Introduction/README.md) | ಈ ಕ್ಷೇತ್ರದ ಹಿಂದಿರುವ ಇತಿಹಾಸವನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ | [ಪಾಠ](1-Introduction/2-history-of-ML/README.md) | ಜೆನ್ ಮತ್ತು ಅಮಿ | -| 03 | ಯಂತ್ರ ಕಲಿಕೆಯ ನ್ಯಾಯತೀರ್ಮಾನ | [ಪರಿಚಯ](1-Introduction/README.md) | ನ್ಯಾಯತೀರ್ಮಾನದ ಸಿದ್ದಾಂತ ಸಂಬಂಧಿಸಿದ ಮುಖ್ಯ ತತ್ವಗಳು ಯಾವವು? ವಿದ್ಯಾರ್ಥಿಗಳು ML ಮಾದರಿಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಅನ್ವಯಿಸಲು ಗಮನಿಸುವ ಪ್ರಮುಖ ತತ್ವಗಳು ಯಾವುವು? | [ಪಾಠ](1-Introduction/3-fairness/README.md) | ಟೊಮೊಮಿ | -| 04 | ಯಂತ್ರ ಕಲಿಕೆಯ ತಂತ್ರಗಳು | [ಪರಿಚಯ](1-Introduction/README.md) | ML ಸಂಶೋಧಕರು ML ಮಾದರಿಗಳನ್ನು ರಚಿಸಲು ಯಾವ ತಂತ್ರಗಳನ್ನು ಬಳಸುತ್ತಾರೆ? | [ಪಾಠ](1-Introduction/4-techniques-of-ML/README.md) | ಕ್ರಿಸ್ ಮತ್ತು ಜೆನ್ | -| 05 | ರೆಗ್ರೆಶನ್‌ನ ಪರಿಚಯ | [ರೆಗ್ರೆಶನ್](2-Regression/README.md) | ರೆಗ್ರೆಶನ್ ಮಾದರಿಗಳಿಗಾಗಿ ಪೈಥಾನ್ ಮತ್ತು ಸ್ಕೈಕಟ್ಲೀನ್ ಬಳಸಲು ಪ್ರಾರಂಭಿಸಿ | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ಜೆನ್ • ಎರಿಕ್ ವಾಂಜಾವು | -| 06 | ಉತ್ತರ ಅಮೆರಿಕದ ಕಂಬಳ ಬೆಲೆಗಳು 🎃 | [ರೆಗ್ರೆಶನ್](2-Regression/README.md) | ML ಗೆ ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸಿ ಮತ್ತು ಸ್ವಚ್ಛಗೊಳಿಸಿ | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ಜೆನ್ • ಎರಿಕ್ ವಾಂಜಾವು | -| 07 | ಉತ್ತರ ಅಮೆರಿಕದ ಕಂಬಳ ಬೆಲೆಗಳು 🎃 | [ರೆಗ್ರೆಶನ್](2-Regression/README.md) | ರೇಖೀಯ ಮತ್ತು ಪೌಲಿನೋಮಿಯಲ್ ರೆಗ್ರೆಶನ್ ಮಾದರಿಗಳನ್ನು ರಚಿಸಿ | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ಜೆನ್ ಮತ್ತು ದ್ಮಿತ್ರೀ • ಎರಿಕ್ ವಾಂಜಾವು | -| 08 | ಉತ್ತರ ಅಮೆರಿಕದ ಕಂಬಳ ಬೆಲೆಗಳು 🎃 | [ರೆಗ್ರೆಶನ್](2-Regression/README.md) | ಲોજಿಸ್ಟಿಕ್ ರೆಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ಜೆನ್ • ಎರಿಕ್ ವಾಂಜಾವು | -| 09 | ವೆಬ್ ಆಪ್ 🔌 | [ವೆಬ್ ಆಪ್](3-Web-App/README.md) | ನಿಮ್ಮ ತರಬೇತಿ ಪಡೆಯಲಾದ ಮಾದರಿಯನ್ನು ಉಪಯೋಗಿಸಲು ವೆಬ್ ಆಪ್ ನಿರ್ಮಿಸಿ | [Python](3-Web-App/1-Web-App/README.md) | ಜೆನ್ | -| 10 | ವರ್ಗೀಕರಣದ ಪರಿಚಯ | [ವರ್ಗೀಕರಣ](4-Classification/README.md) | ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ, ಸಜ್ಜುಗೊಳಿಸಿ ಮತ್ತು ದೃಶ್ಯೀಕರಿಸಿ; ವರ್ಗೀಕರಣಕ್ಕೆ ಪರಿಚಯ | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ಜೆನ್ ಮತ್ತು ಕ್ಯಾಸಿ • ಎರಿಕ್ ವಾಂಜಾವು | -| 11 | ರುಚಿಯಾದ ಏಷಿಯನ್ ಮತ್ತು ಭಾರತದ ಆಹಾರಗಳು 🍜 | [ವರ್ಗೀಕರಣ](4-Classification/README.md) | ವರ್ಗೀಕರಣಕર્તೆಗಳಿಗೆ ಪರಿಚಯ | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ಜೆನ್ ಮತ್ತು ಕ್ಯಾಸಿ • ಎರಿಕ್ ವಾಂಜಾವು | -| 12 | ರುಚಿಯಾದ ಏಷಿಯನ್ ಮತ್ತು ಭಾರತದ ಆಹಾರಗಳು 🍜 | [ವರ್ಗೀಕರಣ](4-Classification/README.md) | ಹೆಚ್ಚು ವರ್ಗೀಕರಣಕರ | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ಜೆನ್ ಮತ್ತು ಕ್ಯಾಸಿ • ಎರಿಕ್ ವಾಂಜಾವು | -| 13 | ರುಚಿಯಾದ ಏಷಿಯನ್ ಮತ್ತು ಭಾರತದ ಆಹಾರಗಳು 🍜 | [ವರ್ಗೀಕರಣ](4-Classification/README.md) | ನಿಮ್ಮ ಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಶಿಫಾರಸು ವೆಬ್ ಆಪ್ ರಚಿಸಿ | [Python](4-Classification/4-Applied/README.md) | ಜೆನ್ | -| 14 | ಕ್ಲಸ್ಟರಿಂಗ್‌ನ ಪರಿಚಯ | [ಕ್ಲಸ್ಟರಿಂಗ್](5-Clustering/README.md)| ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ, ಸಜ್ಜುಗೊಳಿಸಿ ಮತ್ತು ದೃಶ್ಯೀಕರಿಸಿ; ಕ್ಲಸ್ಟರಿಂಗ್‌ಗೆ ಪರಿಚಯ | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ಜೆನ್ • ಎరిక್ ವಾಂಜವು | -| 15 | ನೈಗೇರಿಯನ್ ಸಂಗೀತ ರುಚಿಗಳ ಆಯ್ಕೆ 🎧 | [ಕ್ಲಸ್ಟರಿಂಗ್](5-Clustering/README.md)| ಕೆ-ಮೀನ್ ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಧಾನವನ್ನು ಅನ್ವೇಷಿಸಿ | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ಜೆನ್ • ಎरिक್ ವಾಂಜವು | -| 16 | ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ ಪರಿಚಯ ☕️ | [ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ](6-NLP/README.md)| ಸರಳ ಬಾಟ್ ರಚಿಸುವ ಮೂಲಕ NLP ಮೂಲಭೂತಗಳನ್ನು ಕಲಿಯಿರಿ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | ಸ್ಟೀಫನ್ | -| 17 | ಸಾಮಾನ್ಯ NLP ಕಾರ್ಯಗಳು ☕️ | [ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ](6-NLP/README.md)| ಭಾಷಾ ರಚನೆಗಳೊಂದಿಗೆ ನಿಭಾಯಿಸುವಾಗ ಅವಶ್ಯಕ ಸಾಮಾನ್ಯ ಕಾರ್ಯಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ | [Python](6-NLP/2-Tasks/README.md) | ಸ್ಟೀಫನ್ | -| 18 | ಅನುವಾದ ಮತ್ತು ಭಾವುಕ تحليل ♥️ | [ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ](6-NLP/README.md)| ಜೇನ್ ಆಸ್ಟಿನ್ ಅವರೊಂದಿಗೆ ಅನುವಾದ ಮತ್ತು ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆ | [Python](6-NLP/3-Translation-Sentiment/README.md) | ಸ್ಟೀಫನ್ | -| 19 | ಯುರೋಪಿಯನ್ ಪ್ರೇಮಕೋಟೆಲ್‌ಗಳು ♥️ | [ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ](6-NLP/README.md)| ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳ ಮೂಲಕ ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | ಸ್ಟೀಫನ್ | -| 20 | ಯುರೋಪಿಯನ್ ಪ್ರೇಮಕೋಟೆಲ್‌ಗಳು ♥️ | [ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ](6-NLP/README.md)| ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳ ಮೂಲಕ ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | ಸ್ಟೀಫನ್ | -| 21 | ಕಾಲ ಸರಣಿ ಪೂರ್ವಪ್ರತಿಷ್ಠಾಪನೆಗೆ ಪರಿಚಯ | [ಕಾಲ ಸರಣಿ](7-TimeSeries/README.md) | ಕಾಲ ಸರಣಿ ಪೂರ್ವಪ್ರತಿಷ್ಠಾಪನೆಗೆ ಪರಿಚಯ | [Python](7-TimeSeries/1-Introduction/README.md) | ಫ್ರಾನ್ಸೆಸ್ಕಾ | -| 22 | ⚡️ ವಿಶ್ವ ವಿದ್ಯುತ್ ಬಳಕೆ ⚡️ - ARIMA ಬಳಸಿ ಕಾಲ ಸರಣಿ ಪೂರ್ವಪ್ರತಿಷ್ಠಾಪನೆ | [ಕಾಲ ಸರಣಿ](7-TimeSeries/README.md) | ARIMA ಬಳಸಿ ಕಾಲ ಸರಣಿ ಪೂರ್ವಪ್ರತಿಷ್ಠಾಪನೆ | [Python](7-TimeSeries/2-ARIMA/README.md) | ಫ್ರಾನ್ಸೆಸ್ಕಾ | -| 23 | ⚡️ ವಿಶ್ವ ವಿದ್ಯುತ್ ಬಳಕೆ ⚡️ - SVR ಬಳಸಿ ಕಾಲ ಸರಣಿ ಪೂರ್ವಪ್ರತಿಷ್ಠಾಪನೆ | [ಕಾಲ ಸರಣಿ](7-TimeSeries/README.md) | Support Vector Regressor ಬಳಸಿ ಕಾಲ ಸರಣಿ ಪೂರ್ವಪ್ರತಿಷ್ಠಾಪನೆ | [Python](7-TimeSeries/3-SVR/README.md) | ಅನಿರ್ಬಾನ್ | -| 24 | ಪ್ರಬಲವರ್ಧನಾ ಕಲಿಕೆಯ ಪರಿಚಯ | [ಪ್ರಬಲವರ್ಧನಾ ಕಲಿಕೆ](8-Reinforcement/README.md) | Q-ಕಲಿಕೆ ಬಳಸಿ ಪ್ರಬಲವರ್ಧನಾ ಕಲಿಕೆಯ ಪರಿಚಯ | [Python](8-Reinforcement/1-QLearning/README.md) | ದ್ಮಿತ್ರೀ | -| 25 | ಪೀಟರ್ ಕುರುವ ನಾಯಿ ತಪ್ಪಿಸಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡಿ! 🐺 | [ಪ್ರಬಲವರ್ಧನಾ ಕಲಿಕೆ](8-Reinforcement/README.md) | ಪ್ರಬಲವರ್ಧನಾ ಕಲಿಕೆಯ ಜಿಮ್ | [Python](8-Reinforcement/2-Gym/README.md) | ದ್ಮಿತ್ರೀ | -| ನಂತರವನ್ನು | ವಾಸ್ತವಿಕ ಜಗತ್ತಿನ ML ಘಟನಗಳು ಮತ್ತು ಅನ್ವಯಿಕೆಗಳು | [ಜಂಗಲದಲ್ಲಿ ML](9-Real-World/README.md) | ಪರಂಪರागत ML ನ ಆಸಕ್ತಿದಾಯಕ ಮತ್ತು ಅನಾವೃತ ವಾಸ್ತವಿಕ ಅನ್ವಯಿಕೆಗಳು | [ಪಾಠ](9-Real-World/1-Applications/README.md) | ತಂಡ | -| ನಂತರವನ್ನು | RAI ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಬಳಸಿ ML ನಲ್ಲಿ ಮಾದರಿ ದೋಷಪರೀಕ್ಷೆ | [ಜಂಗಲದಲ್ಲಿ ML](9-Real-World/README.md) | ಜವಾಬ್ದಾರಿಯುತ AI ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಘಟಕಗಳನ್ನು ಬಳಸಿ ಯಂತ್ರ ಕಲಿಕೆಯಲ್ಲಿ ಮಾದರಿಗಳ ದೋಷಪರೀಕ್ಷೆ | [ಪಾಠ](9-Real-World/2-Debugging-ML-Models/README.md) | ರೂತ್ ಯಾಕುಬು | - -> [ಈ کورس್ಗೆ ಸಂಬಂಧಿಸಿದ ಎಲ್ಲಾ ಹೆಚ್ಚುವರಿ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಮ್ಮ Microsoft Learn ಸಂಗ್ರಹದಲ್ಲಿ ಹುಡುಕಿ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## ಆಫ್‌ಲೈನ್ ಆಕ್ಸೆಸ್ - -ನೀವು [Docsify](https://docsify.js.org/#/) ಬಳಸಿ ಈ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಅನ್ನು ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಚಾಲನೆ ಮಾಡಬಹುದು. ಈ ರೆಪೋವನ್ನು ಫೋರ್ಕ್ ಮಾಡಿ, ನಿಮ್ಮ ಸ್ಥಳೀಯ ಯಂತ್ರದಲ್ಲಿ [Docsify ಅನ್ನು ಇನ್ಸ್ಟಾಲ್](https://docsify.js.org/#/quickstart) ಮಾಡಿ, ನಂತರ ಈ ರೆಪೋದ ಮೂಲ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ `docsify serve` ಟೈಪ್ ಮಾಡಿ. ವೆಬ್‌ಸೈಟ್ ನಿಮ್ಮ ಸ್ಥಳೀಯಹೋಸ್ಟ್‌ನಲ್ಲಿ 3000 ಪೋರ್ಟ್‌ನಲ್ಲಿ ನೀಡಲಾಗುತ್ತದೆ: `localhost:3000`. +> **ಭಾಷೆಗಳ ಬಗ್ಗೆ ಒಂದು ಟಿಪ್ಪಣಿ**: ಈ ಪಾಠಗಳು ಮುಖ್ಯವಾಗಿ Python ನಲ್ಲಿ ಬರೆಯಲ್ಪಟ್ಟಿವೆ, ಆದರೆ ಅನೇಕವು R ನಲ್ಲಿ ಕೂಡ ಲಭ್ಯವಿರುವುವು. R ಪಾಠವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು, `/solution` ಫೋಲ್ಡರ್ಗೆ ಹೋಗಿ R ಪಾಠಗಳನ್ನು ಹುಡುಕಿ. ಅವು .rmd ವಿಸ್ತರಣೆ ಹೊಂದಿವೆ, ಇದು ಒಂದು **R Markdown** ಫೈಲ್ ಆಗಿದ್ದು, ಅದು `code chunks` (R ಅಥವಾ ಇತರೆ ಭಾಷೆಗಳ) ಹಾಗೂ `YAML header` (PDF ಮುಂತಾದ ನಂತರಸಾರಗಳನ್ನು ಹೇಗೆ ಅಳವಡಿಸುವುದೆಂದು ಮಾರ್ಗದರ್ಶನ ಮಾಡುತ್ತದೆ) ಅನ್ನು `Markdown ಡಾಕ್ಯುಮೆಂಟ್` ನಲ್ಲಿ ಸೇರಿಸಿರುವುದಾಗಿ ಸರಳವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು. ಆದ್ದರಿಂದ, ಇದು ಡೇಟಾ ಸೈನ್ಸ್ ಗೆ ಅತ್ಯುತ್ತಮ ಆವೃತ್ತಿ ರೂಪೋದ್ಯಮವಾಗಿದೆ ಏಕೆಂದರೆ ಇದು ನಿಮ್ಮ ಕೋಡ್, ಅದರ ಔಟ್‌ಪುಟ್ ಮತ್ತು ನಿಮ್ಮ ಭಾವನೆಗಳನ್ನು Markdown ನಲ್ಲಿ ಬರೆಯಲು ಅವಕಾಶವನ್ನು ನೀಡುತ್ತದೆ. ಮತ್ತೊಂದು, R Markdown ಡಾಕ್ಯುಮೆಂಟುಗಳನ್ನು PDF, HTML ಅಥವಾ Word ಮುಂತಾದ ಔಟ್‌ಪುಟ್ ರೂಪಗಳಲ್ಲಿ ಪ್ರದರ್ಶಿಸಬಹುದು. + +> **ಪ್ರಶ್ನೋತ್ತರಗಳ ಬಗ್ಗೆ ಒಂದು ಟಿಪ್ಪಣಿ**: ಎಲ್ಲಾ ಪ್ರಶ್ನೋತ್ತರಗಳು [Quiz App folder](../../quiz-app) ನಲ್ಲಿ ಇವೆ, ಒಟ್ಟು 52 ಪ್ರಶ್ನೋತ್ತರಗಳು, ಪ್ರತಿ ಒಂದು ಮೂರು ಪ್ರಶ್ನೆಗಳ ಪಟ್ಟಿಯಾಗಿವೆ. ಅವು ಪಾಠಗಳಲ್ಲಿ ಲಿಂಕ್ ಮಾಡಲ್ಪಟ್ಟಿದ್ದರೂ ಪ್ರಶ್ನೋತ್ತರ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಳೀಯವಾಗಿ ಚಾಲನೆ ಮಾಡಬಹುದು; ಸ್ಥಳೀಯವಾಗಿ ಹೋಸ್ಟ್ ಅಥವಾ Azure ಗೆ ನಿಯೋಜಿಸಲು `quiz-app` ಫೋಲ್ಡರಿನ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ. + +| ಪಾಠ ಸಂಖ್ಯೆ | ವಿಷಯ | ಪಾಠ ಗುಂಪು | ಕಲಿಕಾ ಉದ್ದೇಶಗಳು | ಲಿಂಕ್ ಪಾಠ | ಲೇಖಕ | +| :--------: | :--------------------------------------------------------: | :------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------: | +| 01 | ಯಂತ್ರ ಕಲಿಕೆಗೆ ಪರಿಚಯ | [Introduction](1-Introduction/README.md) | ಯಂತ್ರ ಕಲಿಕೆಯ ಮೂಲಭೂತ ಸಾಮಾಜಿಕ ಅಂಶಗಳನ್ನು ಕಲಿಕೊಳ್‌ಗೊಳ್ಳಿ | [Lesson](1-Introduction/1-intro-to-ML/README.md) | ಮುಖಮ್ಮದ್ | +| 02 | ಯಂತ್ರ ಕಲಿಕೆಯ ಇತಿಹಾಸ | [Introduction](1-Introduction/README.md) | ಈ ಕ್ಷೇತ್ರದ ಇತಿಹಾಸವನ್ನು ಕಲಿಯಿರಿ | [Lesson](1-Introduction/2-history-of-ML/README.md) | ಜೆನ್ ಮತ್ತು ಈಮಿ | +| 03 | ನ್ಯಾಯತಾಂತ್ರಿಕತೆ ಮತ್ತು ಯಂತ್ರ ಕಲಿಕೆ | [Introduction](1-Introduction/README.md) | ನ್ಯಾಯತಾಂತ್ರಿಕತೆಯ ಸುತ್ತಲಿನ ಪ್ರಮುಖ ತತ್ವಜ್ಞಾನ ಸಮಸ್ಯೆಗಳು ಯಾವುವು? ವಿದ್ಯಾರ್ಥಿಗಳು ML ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸಲೂ, ಅನ್ವಯಿಸಲೂ ಪರಿಗಣಿಸಬೇಕಾದವು? | [Lesson](1-Introduction/3-fairness/README.md) | ಟೊಮೊಮಿ | +| 04 | ಯಂತ್ರ ಕಲಿಕೆಯ ತಂತ್ರಗಳು | [Introduction](1-Introduction/README.md) | ML ಸಂಶೋಧಕರು ML ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸಲು ಯಾವ ತಂತ್ರಗಳನ್ನು ಬಳಸುತ್ತಾರೆ? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | ಕ್ರಿಸ್ ಮತ್ತು ಜೆನ್ | +| 05 | Regression ಗೆ ಪರಿಚಯ | [Regression](2-Regression/README.md) | Regression ಮಾದರಿಗಳಿಗಾಗಿ Python ಮತ್ತು Scikit-learn ನಿಂದ ಪ್ರಾರಂಭಿಸಿ | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ಜೆನ್ •Eric Wanjau | +| 06 | ನಾರ್ತ್ ಅಮೆರಿಕಾ ಕಂಬಳದ ಬೆಲೆಗಳು 🎃 | [Regression](2-Regression/README.md) | ML ಗೆ ಸಿದ್ಧತೆಗಾಗಿ ಡೇಟಾವನ್ನು ದೃಷ್ಯರೂಪಗೊಳಿಸಿ ಮತ್ತು ಸ್ವಚ್ಛಗೊಳಿಸಿ | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ಜೆನ್ •Eric Wanjau | +| 07 | ನಾರ್ತ್ ಅಮೆರಿಕಾ ಕಂಬಳದ ಬೆಲೆಗಳು 🎃 | [Regression](2-Regression/README.md) | ರೇಖೀಯ ಮತ್ತು ಬಹುಪಡಿಯ Regression ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸಿ | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ಜೆನ್ ಮತ್ತು ದಿಮಿತ್ರಿ •Eric Wanjau | +| 08 | ನಾರ್ತ್ ಅಮೆರಿಕಾ ಕಂಬಳದ ಬೆಲೆಗಳು 🎃 | [Regression](2-Regression/README.md) | ಲಾಜಿಸ್ಟಿಕ್ Regression ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ಜೆನ್ •Eric Wanjau | +| 09 | ವೆಬ್ ಆಪ್ 🔌 | [Web App](3-Web-App/README.md) | ತರಬೇತಿ ಪಡೆದ ಮodel ಬಳಕೆಗೆ ವೆಬ್ ಆಪ್ ನಿರ್ಮಿಸಿ | [Python](3-Web-App/1-Web-App/README.md) | ಜೆನ್ | +| 10 | ವರ್ಗೀಕರಣಕ್ಕೆ ಪರಿಚಯ | [Classification](4-Classification/README.md) | ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ, ಸಿದ್ಧಪಡಿಸಿ ಮತ್ತು ದೃಶ್ಯಗೊಳಿಸಿ; ವರ್ಗೀಕರಣಕ್ಕೆ ಪರಿಚಯ | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ಜೆನ್ ಮತ್ತು ಕ್ಯಾಸಿ •Eric Wanjau | +| 11 | ರುಚಿಕರ ಏಶಿಯ ಮತ್ತು ಭಾರತೀಯ ಆಹಾರ 🍜 | [Classification](4-Classification/README.md) | ವರ್ಗೀಕರಿಸುವಿಕೆಗೆ ಪರಿಚಯ | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ಜೆನ್ ಮತ್ತು ಕ್ಯಾಸಿ •Eric Wanjau | +| 12 | ರುಚಿಕರ ಏಶಿಯ ಮತ್ತು ಭಾರತೀಯ ಆಹಾರ 🍜 | [Classification](4-Classification/README.md) | ಇನ್ನಷ್ಟು ವರ್ಗೀಕರಿಸುವಿಕೆಗಳು | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ಜೆನ್ ಮತ್ತು ಕ್ಯಾಸಿ •Eric Wanjau | +| 13 | ರುಚಿಕರ ಏಶಿಯ ಮತ್ತು ಭಾರತೀಯ ಆಹಾರ 🍜 | [Classification](4-Classification/README.md) | ನಿಮ್ಮ ಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಶಿಫಾರಸ್ಸು ಮಾಡುವ ವೆಬ್ ಆಪ್ ನಿರ್ಮಿಸಿ | [Python](4-Classification/4-Applied/README.md) | ಜೆನ್ | +| 14 | ಕ್ಲಸ್ಟರಿಂಗ್ ಗೆ ಪರಿಚಯ | [Clustering](5-Clustering/README.md) | ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ, ಸಿದ್ಧಪಡಿಸಿ ಮತ್ತು ದೃಶ್ಯಗೊಳಿಸಿ; ಕ್ಲಸ್ಟರಿಂಗ್ ಗೆ ಪರಿಚಯ | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ಜೆನ್ •Eric Wanjau | +| 15 | ನೈಜೀರಿಯಾದ ಸಂಗೀತ ರುಚಿಗಳನ್ನು ಅನ್ವೇಷಿಸಿ 🎧 | [Clustering](5-Clustering/README.md) | K-Means ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಧಾನವನ್ನು ಅನ್ವೇಷಿಸಿ | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ಜೆನ್ •Eric Wanjau | +| 16 | ಪ್ರಕೃತಿಪ್ರಭಾಷೆ ಸಂಸ್ಕರಣೆಗೆ ಪರಿಚಯ ☕️ | [Natural language processing](6-NLP/README.md) | ಸರಳ ಬಾಟ್ ನಿರ್ಮಿಸುವ ಮೂಲಕ NLP ನ ಮೂಲಭೂತಗಳನ್ನು ಕಲಿಯಿರಿ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | ಸ್ಟೀಫನ್ | +| 17 | ಸಾಮಾನ್ಯ NLP ಕಾರ್ಯಗಳು ☕️ | [Natural language processing](6-NLP/README.md) | ಭಾಷಾ ರಚನೆಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ ಅಗತ್ಯವಿರುವ ಸಾಮಾನ್ಯ ಕಾರ್ಯಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ | [Python](6-NLP/2-Tasks/README.md) | ಸ್ಟೀಫನ್ | +| 18 | ಅನುವಾದ ಮತ್ತು ಮನೋಭಾವ ವಿಶ್ಲೇಷಣೆ ♥️ | [Natural language processing](6-NLP/README.md) | ಜೇನ್ ಆಸ್ಟಿನ್ ಜೊತೆ ಅನುವಾದ ಮತ್ತು ಮನೋಭಾವ ವಿಶ್ಲೇಷಣೆ | [Python](6-NLP/3-Translation-Sentiment/README.md) | ಸ್ಟೀಫನ್ | +| 19 | ಯೂರೋಪಿನ ಪ್ರಣಯ ಹೋಟೆಲ್ ಗಳು ♥️ | [Natural language processing](6-NLP/README.md) | ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳೊಂದಿಗೆ ಮನೋಭಾವ ವಿಶ್ಲೇಷಣೆ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | ಸ್ಟೀಫನ್ | +| 20 | ಯೂರೋಪಿನ ಪ್ರಣಯ ಹೋಟೆಲ್ ಗಳು ♥️ | [Natural language processing](6-NLP/README.md) | ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳೊಂದಿಗೆ ಮನೋಭಾವ ವಿಶ್ಲೇಷಣೆ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | ಸ್ಟೀಫನ್ | +| 21 | ಕಾಲ ಸರಣಿಯ ನಿರೀಕ್ಷಣೆಗೆ ಪರಿಚಯ | [Time series](7-TimeSeries/README.md) | ಕಾಲ ಸರಣಿ ನಿರೀಕ್ಷಣೆಗೆ ಪರಿಚಯ | [Python](7-TimeSeries/1-Introduction/README.md) | ಫ್ರಾನ್ಸೆಸ್ಕಾ | +| 22 | ⚡️ ವಿಶ್ವ ವಿದ್ಯುತ್ ಬಳಕೆ ⚡️ - ARIMA ನೇತೃತ್ವದ ಕಾಲ ಸರಣಿ | [Time series](7-TimeSeries/README.md) | ARIMA ಮಾದರಿಯೊಂದಿಗೆ ಕಾಲ ಸರಣಿ ನಿರೀಕ್ಷಣೆ | [Python](7-TimeSeries/2-ARIMA/README.md) | ಫ್ರಾನ್ಸೆಸ್ಕಾ | +| 23 | ⚡️ ವಿಶ್ವ ವಿದ್ಯುತ್ ಬಳಕೆ ⚡️ - SVR ನೇತೃತ್ವದ ಕಾಲ ಸರಣಿ | [Time series](7-TimeSeries/README.md) | Support Vector Regressor ಮೂಲಕ ಕಾಲ ಸರಣಿ ನಿರೀಕ್ಷಣೆ | [Python](7-TimeSeries/3-SVR/README.md) | ಅನಿರ್ಬನ್ | +| 24 | ಬಲವರ್ಧನೆ ಕಲಿಕೆಯ ಪರಿಚಯ | [Reinforcement learning](8-Reinforcement/README.md) | Q-ಕಲಿಕೆ ಮೂಲಕ ಬಲವರ್ಧನೆ ಕಲಿಕೆಯ ಪರಿಚಯ | [Python](8-Reinforcement/1-QLearning/README.md) | ದಿಮಿತ್ರಿ | +| 25 | ಪಿಟರ್ ನಾಯಿಯನ್ನು ತಪ್ಪಿಸಲು ಸಹಾಯ ಮಾಡಿ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | ಬಲವರ್ಧನೆ ಕಲಿಕೆಯ ಜಿಮ್ | [Python](8-Reinforcement/2-Gym/README.md) | ದಿಮಿತ್ರಿ | +| Postscript | ನಿಜಜೀವ ML ಸನ್ನಿವೇಶಗಳು ಮತ್ತು ಅನ್ವಯಗಳು | [ML in the Wild](9-Real-World/README.md) | ಶ್ರೇಷ್ಠ ಮತ್ತು ಅನಾವರಣ ಯುಕ್ತ ನೈಜ ಜಾಗತಿಕ ML ಅನ್ವಯಗಳು | [Lesson](9-Real-World/1-Applications/README.md) | ತಂಡ | +| Postscript | RAI ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಬಳಸಿ ML ಮಾದರಿ ಡಿಬಗಿಂಗ್ | [ML in the Wild](9-Real-World/README.md) | ಜವಾಬ್ದಾರಿಯುತ AI ಡ್ಯಾಶ್ಬೋರ್ಡ್ ಘಟಕಗಳ ಬಳಕೆ ಮೂಲಕ ಯಂತ್ರ ಕಲಿಕೆಯ ಮಾದರಿ ಡಿಬಗಿಂಗ್ | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | ರುತ್ ಯಶುಕು | + +> [ಈ ಪಾಠಕ್ರಮಕ್ಕೆ ಸಂಬಂಧಿಸಿದ ಎಲ್ಲಾ ಹೆಚ್ಚುವರಿ ಸಂಪನ್ಮೂಲಗಳನ್ನು ನಮ್ಮ Microsoft Learn ಸಂಗ್ರಹದಲ್ಲಿ ಹುಡುಕಿ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## ಆಫ್‌ಲೈನ್ ಪ್ರವೇಶ + +ನೀವು [Docsify](https://docsify.js.org/#/) ಬಳಸಿ ಈ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಅನ್ನು ಆಫ್‌ಲೈನ್‌ನಲ್ಲಿ ಚಾಲನೆ ಮಾಡಬಹುದು. ಈ ಸಂಗ್ರಹವನ್ನು ಫೋರ್ಕ್ ಮಾಡಿ, [Docsify ಅನ್ನು ಸ್ಥಾಪಿಸಿ](https://docsify.js.org/#/quickstart) ನಿಮ್ಮ ಸ್ಥಳೀಯ ಯಂತ್ರದಲ್ಲಿ, ಮತ್ತು ನಂತರ ಈ ಸಂಗ್ರಹದ ರೂಟ್ ಫೋಲ್ಡರ್‌ನಲ್ಲಿ `docsify serve` ಟೈಪ್ ಮಾಡಿ. ವೆಬ್‌ಸೈಟ್ ನಿಮ್ಮ ಲೋಕಲ್‌ಹೋಸ್ಟ್‌ನಲ್ಲಿ 3000 ಪೋರ್ಟ್‌ನಲ್ಲಿ ಸೇವ್ ಆಗುತ್ತದೆ: `localhost:3000`. ## PDF ಗಳು -ಕರೆ큳್ಯುಲಮ್‌ನ PDF ಅನ್ನು ಲಿಂಕ್‌ಗಳೊಂದಿಗೆ [ಇಲ್ಲಿ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) ನೋಡಿ. - +ಪಾಠಕ್ರಮದ ಪಿಡಿಎಫ್ ನ್ನು ಇಲ್ಲಿ ಲಿಂಕ್‌ಗಳ ಮೂಲಕ ಪಡೆದುಕೊಳ್ಳಿ [ಅಲ್ಲಿ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 ಇತರೆ ಕೋರ್ಸ್‌ಗಳು +## 🎒 ಇತರೆ ಕೋರ್ಸುಗಳು -ನಮ್ಮ ತಂಡ ಇತರ ಕೋರ್ಸ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ! ಪರಿಶೀಲಿಸಿ: +ನಮ್ಮ ತಂಡ ಇತರೆ ಕೋರ್ಸುಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತಿದೆ! ಪರಿಶೀಲಿಸಿ: ### LangChain -[![LangChain4j ಅಭ್ಯಾಸಕ್ಕಾಗಿ](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js ಅಭ್ಯಾಸಕ್ಕಾಗಿ](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain ಅಭ್ಯಾಸಕ್ಕಾಗಿ](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### ಅಜೂರ್ / ಎಡ್ಜ್ / MCP / ಏಜೆಂಟ್‌ಗಳು -[![ಅಜ್‌ಡಿ ಅಭ್ಯಾಸಕ್ಕಾಗಿ](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![ಎಡ್ಜ್ AI ಅಭ್ಯಾಸಕ್ಕಾಗಿ](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP ಅಭ್ಯಾಸಕ್ಕಾಗಿ](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI ಏಜೆಂಟ್‌ಗಳು ಅಭ್ಯಾಸಕ್ಕಾಗಿ](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agents +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ಆರಂಭಿಕರಿಗಾಗಿ MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ಆರಂಭಿಕರಿಗಾಗಿ AI ಏಜೆಂಟ್ಗಳು](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### ರಚನಾತ್ಮಕ AI ಸರಣಿ -[![ಹೆಸರಿನ ಕಲಿಕೆಗಾಗಿ ಜನರೇಟಿವ್ AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![ಜೆನರೇಟಿವ್ AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![ಜೆನರೇಟಿವ್ AI (ಜಾವಾ)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![ಜೆನರೇಟಿವ್ AI (ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### ರಚನಾತ್ಮಕ AI ಸರಣಿಗಳು +[![ಆರಂಭಿಕರಿಗಾಗಿ ರಚನಾತ್ಮಕ AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ರಚನಾತ್ಮಕ AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![ರಚನಾತ್ಮಕ AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![ರಚನಾತ್ಮಕ AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- - -### ಮೂಲ ಅಧ್ಯಯನ -[![ಶಿಕ್ಷಣಾರ್ಥಿಗಳಿಗಾಗಿ ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![ಶಿಕ್ಷಣಾರ್ಥಿಗಳಿಗಾಗಿ ಡೇಟಾ ವಿಜ್ಞಾನ](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![ಶಿಕ್ಷಣಾರ್ಥಿಗಳಿಗಾಗಿ AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![ಶಿಕ್ಷಣಾರ್ಥಿಗಳಿಗಾಗಿ ಸೈಬರ್ ಸೆಕ್ಯುರಿಟಿ](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![ಶಿಕ್ಷಣಾರ್ಥಿಗಳಿಗಾಗಿ ವೆಬ್ ಡೆವ್](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![ಶಿಕ್ಷಣಾರ್ಥಿಗಳಿಗಾಗಿ ಐಒಟಿ](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![ಶಿಕ್ಷಣಾರ್ಥಿಗಳಿಗಾಗಿ XR ಡೆವಲಪ್‌ಮೆಂಟ್](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) + +### ಮೂಲ ಕಲಿಕೆ +[![ಆರಂಭಿಕರಿಗಾಗಿ ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![ಆರಂಭಿಕರಿಗಾಗಿ ಡೇಟಾ ವಿಜ್ಞಾನ](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![ಆರಂಭಿಕರಿಗಾಗಿ AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![ಆರಂಭಿಕರಿಗಾಗಿ ಸೈಬರ್‌ಸುರಕ್ಷತೆ](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![ಆರಂಭಿಕರಿಗಾಗಿ ವೆಬ್ ಅಭಿವೃದ್ಧಿ](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![ಆರಂಭಿಕರಿಗಾಗಿ IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![ಆರಂಭಿಕರಿಗಾಗಿ XR ಅಭಿವೃದ್ಧಿ](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- + +### ಸಹಪಯೋಗಿ ಸರಣಿಗಳು +[![AI ಜೊತೆಯ ಕಾರ್ಯಕ್ರಮಕ್ಕಾಗಿ ಸಹಪಯೋಗಿ](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![C#/.NETಗಾಗಿ ಸಹಪಯೋಗಿ](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![ಸಹಪಯೋಗಿ ಸಾಹಸ](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) + -### ಕೋಪೈಲಟ್ ಸರಣಿ -[![AI ಜೊತೆಗೆ ಪೇರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್‌ಗಾಗಿ ಕೋಪೈಲಟ್](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET ಗಾಗಿ ಕೋಪೈಲಟ್](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![ಕೋಪೈಲಟ್ ಸಾಹಸ](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - - -## ನೆರವು ಪಡೆಯುವುದು +## ಸಹಾಯ ಪಡೆಯುವುದು -ನೀವು ಅಡಚಣೆಗಳಿಗೆ ಸಿಕ್ಕಿದ್ದೀರಾ ಅಥವಾ AI ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವ ಬಗ್ಗೆ ಯಾವುದೇ ಪ್ರಶ್ನೆ ಇದ್ದರೆ, MCP ಬಗ್ಗೆ ಚರ್ಚೆಗಳಲ್ಲಿ ಭಾಗವಹಿಸುವ ಸಹಪಾಠಿಗಳ ಮತ್ತು ಅನುಭವಿ ಡೆವಲಪರ್‌ಗಳ ಜೊತೆಗೆ ಸೇರಿ. ಇದು ಪ್ರಶ್ನೆಗಳಿಗೆ ಸ್ವಾಗತ ನೀಡುವ ಮತ್ತು ಜ್ಞಾನವನ್ನು ಮುಕ್ತವಾಗಿ ಹಂಚುವ ಸಹಾಯಕ ಸಮುದಾಯವಾಗಿದೆ. +ನೀವು ಅಡಗಿ ಹೋದೆರೆ ಅಥವಾ AI ಅನ್ವಯಿಕೆಗಳನ್ನು ನಿರ್ಮಿಸುವ ಬಗ್ಗೆ ಯಾವುದೇ ಪ್ರಶ್ನೆಗಳಿದ್ದರೆ. MCP ಬಗ್ಗೆ ಚರ್ಚೆಗಳಲ್ಲಿ ಇತರ ಕಲಿಯುವವರು ಮತ್ತು ಅನುಭವಸಂಪನ್ಮೂಲದ ಡೆವಲಪರ್‌ಗಳ ಜೊತೆಯಲ್ಲಿ ಸೇರಿ. ಇದು ಸಹಾಯಕ ಸಮುದಾಯವಾಗಿದ್ದು, ಪ್ರಶ್ನೆಗಳಿಗೆ ಸ್ವಾಗತ ಇದೆ ಮತ್ತು ಜ್ಞಾನವನ್ನು ಮುಕ್ತವಾಗಿ ಹಂಚಿಕೊಳ್ಳಲಾಗುತ್ತದೆ. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -ಉತ್ಪನ್ನ ಸಂಬಂಧಿಸಿದ ಪ್ರತಿಕ್ರಿಯೆಗಳಿದ್ದರೆ ಅಥವಾ ತಪ್ಪುಗಳು ಇದ್ದರೆ ಕೆಳಗಿನ ವಿಳಾಸಕ್ಕೆ ಭೇಟಿ ನೀಡಿ: +ನೀವು ನಿರ್ಮಿಸುವಾಗ ಉತ್ಪನ್ನ ಪ್ರತಿಕ್ರಿಯೆಗಳು ಅಥವಾ ದೋಷಗಳಿದ್ದರೆ, ಈ ಸ್ಥಳಕ್ಕೆ ಭೇಟಿ ನೀಡಿ: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## ಹೆಚ್ಚುವರಿಯ ಅಧ್ಯಯನ ಸಲಹೆಗಳು +## ಹೆಚ್ಚುವರಿ ಕಲಿಕೆಯ ಸಲಹೆಗಳು -- ಉತ್ತಮ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರತಿ ಪಾಠದ ನಂತರ ನೋಟ್ಬುಕ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. -- ತಮ್ಮದೇ ಆದ ಅಲ್ಗೋರಿದಮ್‌ಗಳನ್ನು ಅನುಷ್ಠಾನ ಮಾಡುವುದು ಅಭ್ಯಾಸ ಮಾಡಿ. -- ಕಲಿತ ತತ್ವಗಳನ್ನು ಬಳಸಿ ನಿಜವಾದ ಜಗತ್ತಿನ ಡೇಟಾಸೆಟ್‌ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ. +- ಪ್ರತಿ ಪಾಠದ ನಂತರ ನೋಟ್‌ಬುಕ್‌ಗಳನ್ನು ವಿಮರ್ಶಿಸಿ ಉತ್ತಮ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು. +- ಸ್ವತಃ ಅಲ್ಪಾಗಿ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಅಭ್ಯಾಸ ಮಾಡಿ. +- ಕಲಿತ ತತ್ವಗಳನ್ನು ಬಳಸಿ ನಿಜ ಜೀವನದ ಡೇಟಾಸೆಟ್‌ಗಳನ್ನು ಅನ್ವೇಷಿಸಿ. --- -**ನಿರಾಕರಣಾ ಪ್ರಕಟಣೆ**: -ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಗೆ ಪ್ರಯತ್ನಿಸುವಾಗ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂಬುದು ಗಮನದಲ್ಲಿಟ್ಟಿಕೊಳ್ಳಿ. ಮೂಲಸ್ಥ ಭಾಷೆಯ ಮೌಲಿಕ ದಾಖಲೆವೇ ಅಧಿಕೃತ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಜ್ಞ ಮಾನವ ಅನುವಾದನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆ ಕಾರಣದಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಲುವಿಕೆಗೆ ನಾವು ಜವಾಬ್ದಾರಿಯಾಗುವುದಿಲ್ಲ. +**ಅಸ್ವೀಕಾರ**: +ಈ ನ್ಯೂಗಡೆಯನ್ನು AI ಭಾಷಾಂತರ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಭಾಷಾಂತರಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯನ್ನು ಸಾಧಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಭಾಷಾಂತರಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಕುರತಿಗಳು ಇರುವಂತೆ ಇರುವುದು ಸಹಜ. ಮೂಲ ಭಾಷೆಯ ಮೌಲಿಕ ದಾಖಲೆ ಅಧೀನ ಮೂಲ ಎಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವಪೂರ್ಣ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಭಾಷಾಂತರವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಭಾಷಾಂತರದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ಕಲಹಗಳು ಅಥವಾ ತಪ್ಪು ಅರ್ಥಗ್ರಹಣೆಗಳಿಗೆ ನಾವು ಜವಾಬ್ದಾರರಾಗುವುದಿಲ್ಲ. \ No newline at end of file diff --git a/translations/ko/.co-op-translator.json b/translations/ko/.co-op-translator.json index e5a182a09..105932b8e 100644 --- a/translations/ko/.co-op-translator.json +++ b/translations/ko/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ko" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:01:24+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:58:33+00:00", "source_file": "README.md", "language_code": "ko" }, diff --git a/translations/ko/README.md b/translations/ko/README.md index 552f9de9b..52de6cb75 100644 --- a/translations/ko/README.md +++ b/translations/ko/README.md @@ -10,14 +10,14 @@ ### 🌐 다국어 지원 -#### GitHub 액션(자동화 및 항상 최신 상태)으로 지원 +#### GitHub Action을 통한 지원 (자동화 및 항상 최신 상태 유지) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](./README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](./README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **로컬로 복제하시겠습니까?** +> **로컬 복제를 선호하시나요?** > -> 이 저장소는 50개 이상의 언어 번역을 포함하고 있어 다운로드 크기가 크게 증가합니다. 번역 없이 클론하려면 스패어 체크아웃을 사용하세요: +> 이 저장소에는 50개 이상의 언어 번역본이 포함되어 있어 다운로드 크기가 상당히 커집니다. 번역 없이 복제하려면 sparse checkout을 사용하세요: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,62 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> 이렇게 하면 훨씬 빠른 다운로드로 코스를 완료하는 데 필요한 모든 것을 얻을 수 있습니다. +> 이렇게 하면 훨씬 더 빠른 다운로드로 코스 완료에 필요한 모든 것을 받을 수 있습니다. -#### 우리 커뮤니티에 참여하세요 +#### 커뮤니티에 참여하세요 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -우리는 Discord에서 AI 시리즈와 함께 학습 중입니다. 자세한 내용과 참여는 [Learn with AI Series](https://aka.ms/learnwithai/discord)에서 2025년 9월 18일부터 30일까지 확인하세요. GitHub Copilot을 데이터 과학에 활용하는 유용한 팁과 노하우를 얻을 수 있습니다. +우리는 Discord에서 AI와 함께 배우는 시리즈를 진행 중이며, 2025년 9월 18일부터 30일까지 [Learn with AI Series](https://aka.ms/learnwithai/discord)에서 자세히 알아보고 참여할 수 있습니다. 여기서 GitHub Copilot을 데이터 과학에 활용하는 팁과 요령을 얻을 수 있습니다. ![Learn with AI series](../../translated_images/ko/3.9b58fd8d6c373c20.webp) -# 초심자를 위한 머신러닝 - 교육 과정 +# 초보자를 위한 머신러닝 - 교과 과정 -> 🌍 세계 문화를 통해 머신러닝을 탐험하며 세계 여행을 떠나요 🌍 +> 🌍 세계 문화를 통해 머신러닝을 탐구하며 전 세계를 여행해요 🌍 -Microsoft의 클라우드 전도사들이 12주, 26개의 강의로 구성된 **머신러닝** 교육 과정을 제공합니다. 이 교육 과정에서는 주로 Scikit-learn 라이브러리를 사용하며, 때때로 '고전적 머신러닝'이라 불리는 내용을 다룹니다. 딥러닝은 우리의 [AI for Beginners 교육 과정](https://aka.ms/ai4beginners)에서 다룹니다. 이 강의들을 ['Data Science for Beginners' 교육 과정](https://aka.ms/ds4beginners)과 함께 학습할 수도 있습니다! +Microsoft의 Cloud Advocates는 머신러닝에 관한 12주간 26개 강의의 커리큘럼을 기쁘게 제공합니다. 이 커리큘럼에서는 주로 Scikit-learn 라이브러리를 사용하여, 때로는 고전적 머신러닝이라 불리는 내용을 배우고, 심층 학습은 [AI for Beginners 커리큘럼](https://aka.ms/ai4beginners)에서 다룹니다. 이 강의를 ['데이터 과학 초보자' 커리큘럼](https://aka.ms/ds4beginners)과 함께 진행하세요! -세계 각지의 데이터를 활용하여 이 고전적인 기법들을 적용하며 여행하세요. 각 강의에는 사전 및 사후 퀴즈, 강의 완료를 위한 서면 지침, 해답, 과제 등이 포함되어 있습니다. 프로젝트 기반 교육법은 여러분이 구축하면서 배우도록 하여 새로운 기술이 '단단히' 자리잡도록 도와줍니다. +전 세계를 여행하면서 이러한 고전 기술을 세계 여러 지역의 데이터를 다루는 데 적용해봅니다. 각 강의에는 강의 전 및 후 퀴즈, 완성 지침서, 해답, 과제 등이 포함되어 있습니다. 프로젝트 기반 교육법으로 학습하는 동안 직접 만들어 봄으로써 새로운 기술을 확실히 익힐 수 있습니다. -**✍️ 저자 분들께 진심으로 감사드립니다** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu, Amy Boyd +**✍️ 저자분들께 진심으로 감사드립니다** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu, Amy Boyd -**🎨 일러스트레이터 분들께도 감사드립니다** Tomomi Imura, Dasani Madipalli, Jen Looper +**🎨 일러스트 작업을 해주신 분들께도 감사드립니다** 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 +**🙏 Microsoft 학생 홍보대사 저자, 리뷰어 및 콘텐츠 기여자분들께 특별 감사드립니다.** Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, Snigdha Agarwal 님. -**🤩 특별 감사 Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, Vidushi Gupta에게 R 강의 제공에 대하여!** +**🤩 R 강의를 위해 도움 주신 Microsoft 학생 홍보대사 Eric Wanjau, Jasleen Sondhi, Vidushi Gupta 님께도 감사드립니다!** # 시작하기 -다음 단계를 따르세요: -1. **저장소를 포크하세요**: 이 페이지 우측 상단에 있는 "Fork" 버튼을 클릭합니다. -2. **저장소를 클론하세요**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +다음 단계를 따라 주세요: +1. **저장소 포크하기**: 이 페이지 오른쪽 상단의 "Fork" 버튼을 클릭하세요. +2. **저장소 복제하기**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [이 과정을 위한 모든 추가 자료는 Microsoft Learn 컬렉션에서 찾으실 수 있습니다](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [이 코스의 모든 추가 자료는 Microsoft Learn 컬렉션에서 찾을 수 있습니다](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **도움이 필요하신가요?** 설치, 설정, 강의 실행 관련 일반적인 문제 해결책은 [문제 해결 가이드](TROUBLESHOOTING.md)를 참고하세요. +> 🔧 **도움이 필요하신가요?** 설치, 설정, 강의 실행 시 발생하는 일반적인 문제 해결책은 [문제 해결 가이드](TROUBLESHOOTING.md)를 확인하세요. +**[학생](https://aka.ms/student-page) 여러분**, 이 커리큘럼을 사용하려면 저장소 전체를 본인 GitHub 계정으로 포크하여 혼자 또는 그룹과 함께 연습문제를 완료하세요: -**[학생 여러분](https://aka.ms/student-page)**, 이 교육 과정을 사용하려면 전체 저장소를 자신의 GitHub 계정에 포크하고 개인 또는 그룹으로 연습 문제를 수행하세요: +- 강의 전 퀴즈부터 시작하세요. +- 강의를 읽고 활동을 완료하며 각 지식 점검에서 잠시 멈추고 성찰하십시오. +- 강의 내용을 이해하여 프로젝트를 직접 만들려고 시도하세요. 해결 코드가 필요하면 각 프로젝트 지향 강의의 `/solution` 폴더에 있습니다. +- 강의 후 퀴즈를 풀어보세요. +- 도전을 완료하세요. +- 과제를 제출하세요. +- 한 강의 그룹을 마친 후 [토론 게시판](https://github.com/microsoft/ML-For-Beginners/discussions)에 방문해 "큰 소리로 배우기"를 위해 적절한 PAT 루브릭을 작성하세요. 'PAT'은 학습을 더욱 심화시키기 위한 평가 도구입니다. 다른 PAT에도 반응하여 함께 배울 수 있습니다. -- 강의 전 퀴즈부터 시작합니다. -- 강의를 읽고 활동을 수행하며 각 지식 점검에서 잠시 멈추고 생각해 보세요. -- 강의를 이해하며 코드를 실행하기보다는 프로젝트를 직접 만들어 보세요. 다만 각 프로젝트별로 `/solution` 폴더에 해답 코드는 제공됩니다. -- 강의 후 퀴즈를 풉니다. -- 챌린지를 완료합니다. -- 과제를 완수합니다. -- 강의 그룹을 마친 후, [토론 게시판](https://github.com/microsoft/ML-For-Beginners/discussions)을 방문해 관련 PAT 루브릭을 작성하며 '큰 소리로 배우기'를 실천하세요. 'PAT'는 학습 진척 평가 도구로, 여러분이 작성하며 학습을 더욱 발전시킬 수 있는 루브릭입니다. 다른 PAT에 반응하는 것도 함께 배우는 데 도움이 됩니다. +> 추가 학습을 위해 다음 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 모듈과 학습 경로를 추천합니다. -> 추가 학습을 원한다면, 이 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 모듈과 학습 경로를 추천합니다. - -**교사 분들께**는 이 교육 과정을 활용하는 방법에 대한 [제안 사항](for-teachers.md)을 포함했습니다. +**교사 여러분**, 이 커리큘럼을 활용하는 방법에 관한 [제안 사항](for-teachers.md)도 포함되어 있습니다. --- -## 비디오 강의 +## 비디오 안내 -몇몇 강의는 짧은 동영상 형태로 제공됩니다. 이 영상들은 강의 내에 인라인으로 포함되어 있거나, 아래 이미지를 클릭하면 Microsoft Developer YouTube 채널의 [ML for Beginners 재생목록](https://aka.ms/ml-beginners-videos)에서 모두 보실 수 있습니다. +일부 강의는 짧은 영상으로 제공됩니다. 강의 내에서 직접 보거나, 이미지 클릭 시 [Microsoft Developer YouTube 채널의 ML for Beginners 재생목록](https://aka.ms/ml-beginners-videos)에서 모두 확인할 수 있습니다. [![ML for beginners banner](../../translated_images/ko/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -99,81 +98,81 @@ Microsoft의 클라우드 전도사들이 12주, 26개의 강의로 구성된 ** [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**동영상 제작자:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**GIF 제작자** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 위 이미지를 클릭하여 프로젝트와 그 제작자들에 관한 동영상을 시청하세요! +> 🎥 위 이미지를 클릭하여 프로젝트와 제작진에 대한 영상을 시청하세요! --- ## 교육 철학 -이 교육 과정을 만들면서 두 가지 교육적 원칙을 선택했습니다: 직접 체험하는 **프로젝트 기반 학습**과 **빈번한 퀴즈** 포함입니다. 또한 전체 교육 과정에 통일감을 주는 **주제**를 가지고 있습니다. +이 커리큘럼을 만들면서 두 가지 교육 원칙을 선택했습니다: 실습 중심의 프로젝트 기반 학습과 **빈번한 퀴즈** 포함입니다. 또한 일관된 주제를 설정해 통일감을 갖도록 했습니다. -내용이 실제 프로젝트와 연계되도록 하여 학생들이 더 몰입할 수 있고 개념의 기억이 강화됩니다. 수업 전에 부담 없는 퀴즈를 봄으로써 학생들이 배우려는 의도를 확립하고, 수업 후 두 번째 퀴즈를 통해 더 깊은 이해와 기억을 돕습니다. 이 교육 과정은 유연하고 재미있게 진행될 수 있도록 설계되었으며, 전체 또는 일부만 수강할 수도 있습니다. 프로젝트는 작게 시작해서 12주 과정이 끝날 때쯤 점점 복잡해집니다. 또한 머신러닝의 실제 적용 사례를 다룬 부록도 포함되어 있어 추가 학점이나 토론 주제로 활용할 수 있습니다. +내용을 프로젝트와 일치시키면 학생들의 참여도가 높아지고 개념 이해가 더 잘 유지됩니다. 수업 전 간단한 퀴즈는 학습 의도를 다지게 하며, 수업 후 퀴즈는 이해도를 높입니다. 이 커리큘럼은 유연하고 재미있게 설계돼 전체 또는 일부만 진행할 수 있습니다. 프로젝트는 작게 시작하여 12주 사이클이 끝날 때쯤 점차 복잡해집니다. 추가 학점이나 토론 주제로 쓸 수 있는 실제 ML 적용 후문도 포함되어 있습니다. -> 우리의 [행동 강령](CODE_OF_CONDUCT.md), [기여 가이드](CONTRIBUTING.md), [번역](..), [문제 해결](TROUBLESHOOTING.md) 가이드라인을 참고하세요. 건설적인 피드백을 환영합니다! +> [행동 강령](CODE_OF_CONDUCT.md), [기여 가이드](CONTRIBUTING.md), [번역](..), [문제 해결](TROUBLESHOOTING.md) 지침을 확인하세요. 여러분의 건설적인 피드백을 환영합니다! -## 각 강의에는 +## 각 강의 구성 요소 - 선택적 스케치노트 -- 선택적 보조 영상 -- 영상 강의(일부 강의만) -- [강의 전 준비 퀴즈](https://ff-quizzes.netlify.app/en/ml/) +- 선택적 보조 비디오 +- 비디오 안내 (일부 강의만) +- [강의 전 워밍업 퀴즈](https://ff-quizzes.netlify.app/en/ml/) - 서면 강의 자료 -- 프로젝트 기반 강의의 경우 단계별 프로젝트 구축 가이드 +- 프로젝트 기반 강의의 경우 프로젝트 만드는 단계별 가이드 - 지식 점검 -- 챌린지 -- 보충 읽기 자료 +- 도전 과제 +- 보조 읽기 자료 - 과제 - [강의 후 퀴즈](https://ff-quizzes.netlify.app/en/ml/) - -> **언어 관련 참고**: 이 강의들은 주로 Python으로 작성되었지만, 많은 강의는 R로도 제공됩니다. R 강의를 완료하려면 `/solution` 폴더의 R 강의를 찾아보세요. `.rmd` 확장자는 R Markdown 파일을 의미하며, 코드 청크(코드 조각)와 `YAML 헤더`(PDF 등 출력 형식 설정을 안내)로 구성된 마크다운 문서입니다. 이는 코드를 실행한 결과와 생각을 마크다운 내에서 함께 작성할 수 있어 데이터 과학 작성을 위한 훌륭한 프레임워크 역할을 합니다. 또한 R Markdown 문서는 PDF, HTML, Word 등 다양한 출력 형식으로 렌더링할 수 있습니다. -> **퀴즈 관련 참고 사항**: 모든 퀴즈는 [Quiz App 폴더](../../quiz-app)에 포함되어 있으며, 각 퀴즈는 3개의 질문으로 구성된 총 52개의 퀴즈가 있습니다. 수업 내에서 링크되어 있지만, 퀴즈 앱은 로컬에서 실행할 수 있습니다. `quiz-app` 폴더에 있는 지침을 따라 로컬에서 호스트하거나 Azure에 배포하십시오. - -| 수업 번호 | 주제 | 수업 그룹 | 학습 목표 | 연결된 수업 | 저자 | -| :-------: | :------------------------------------------------------------: | :------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| 01 | 머신러닝 소개 | [Introduction](1-Introduction/README.md) | 머신러닝의 기본 개념 학습 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | 머신러닝의 역사 | [Introduction](1-Introduction/README.md) | 이 분야의 역사를 학습 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | 공정성과 머신러닝 | [Introduction](1-Introduction/README.md) | 학생들이 ML 모델을 구축하고 적용할 때 고려해야 할 중요한 공정성 관련 철학적 이슈는 무엇인가? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | 머신러닝 기법 | [Introduction](1-Introduction/README.md) | ML 연구자들이 ML 모델을 구축할 때 사용하는 기법은 무엇인가? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | 회귀 소개 | [Regression](2-Regression/README.md) | 회귀 모델을 위한 Python과 Scikit-learn 시작하기 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | 북미 호박 가격 🎃 | [Regression](2-Regression/README.md) | ML 준비를 위한 데이터 시각화 및 정제 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | 북미 호박 가격 🎃 | [Regression](2-Regression/README.md) | 선형 및 다항 회귀 모델 구축 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | 북미 호박 가격 🎃 | [Regression](2-Regression/README.md) | 로지스틱 회귀 모델 구축 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | 웹 앱 🔌 | [Web App](3-Web-App/README.md) | 훈련된 모델을 사용할 웹 앱 구축 | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 분류 소개 | [Classification](4-Classification/README.md) | 데이터 정제, 준비 및 시각화; 분류 소개 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | 맛있는 아시아 및 인도 요리 🍜 | [Classification](4-Classification/README.md) | 분류기 소개 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | 맛있는 아시아 및 인도 요리 🍜 | [Classification](4-Classification/README.md) | 추가 분류기 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | 맛있는 아시아 및 인도 요리 🍜 | [Classification](4-Classification/README.md) | 모델을 사용해 추천 웹 앱 구축 | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | 군집화 소개 | [Clustering](5-Clustering/README.md) | 데이터 정제, 준비 및 시각화; 군집화 소개 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | 나이지리아 음악 취향 탐방 🎧 | [Clustering](5-Clustering/README.md) | K-평균 군집화 방법 탐색 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | 자연어 처리 소개 ☕️ | [Natural language processing](6-NLP/README.md) | 간단한 봇 만들기로 NLP의 기본 학습 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 일반적인 NLP 작업 ☕️ | [Natural language processing](6-NLP/README.md) | 언어 구조를 다룰 때 필요한 일반 작업을 이해하여 NLP 지식 심화 | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 번역 및 감정 분석 ♥️ | [Natural language processing](6-NLP/README.md) | Jane Austen과 함께하는 번역 및 감정 분석 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | 유럽의 로맨틱 호텔 ♥️ | [Natural language processing](6-NLP/README.md) | 호텔 리뷰 감정 분석 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | 유럽의 로맨틱 호텔 ♥️ | [Natural language processing](6-NLP/README.md) | 호텔 리뷰 감정 분석 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 시계열 예측 소개 | [Time series](7-TimeSeries/README.md) | 시계열 예측 소개 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 세계 전력 사용량 ⚡️ - ARIMA를 이용한 시계열 예측 | [Time series](7-TimeSeries/README.md) | ARIMA를 사용한 시계열 예측 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ 세계 전력 사용량 ⚡️ - SVR을 이용한 시계열 예측 | [Time series](7-TimeSeries/README.md) | 서포트 벡터 회귀를 이용한 시계열 예측 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | 강화 학습 소개 | [Reinforcement learning](8-Reinforcement/README.md) | Q-러닝을 이용한 강화 학습 소개 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | 피터가 늑대를 피하도록 도와주세요! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 강화 학습 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| 후기 | 실제 머신러닝 사례 및 응용 | [ML in the Wild](9-Real-World/README.md) | 고전적인 ML의 흥미롭고 유익한 실제 응용 사례 | [Lesson](9-Real-World/1-Applications/README.md) | 팀 | -| 후기 | RAI 대시보드를 사용한 ML 모델 디버깅 | [ML in the Wild](9-Real-World/README.md) | 책임 있는 AI 대시보드 구성요소를 사용한 머신러닝 모델 디버깅 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [이 과정의 모든 추가 리소스는 Microsoft Learn 컬렉션에서 찾을 수 있습니다](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> **언어에 대한 참고 사항**: 이 강의들은 주로 Python으로 작성되었지만, 많은 강의가 R로도 제공됩니다. R 강의를 완료하려면 `/solution` 폴더로 이동하여 R 강의를 찾아보세요. 이 강의들은 `.rmd` 확장자를 가지고 있으며, 이는 `코드 청크`(R 또는 다른 언어)와 `YAML 헤더`(PDF와 같은 출력 형식을 안내하는)를 `Markdown 문서`에 포함한 **R Markdown** 파일을 의미합니다. 따라서 R Markdown은 코드, 출력 결과, 그리고 생각을 Markdown으로 작성할 수 있게 해줘 데이터 과학에 적합한 저작 프레임워크로 활용됩니다. 또한, R Markdown 문서는 PDF, HTML, Word와 같은 출력 형식으로 렌더링할 수 있습니다. + +> **퀴즈에 대한 참고 사항**: 모든 퀴즈는 [Quiz App 폴더](../../quiz-app)에 포함되어 있으며, 총 52개의 퀴즈가 각기 세 개의 질문으로 구성되어 있습니다. 이 퀴즈들은 강의 내에서 연결되어 있지만, 퀴즈 앱은 로컬에서 실행할 수 있습니다; `quiz-app` 폴더 내 지침을 따라 로컬로 호스트하거나 Azure에 배포할 수 있습니다. + +| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | +| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | 머신러닝 소개 | [Introduction](1-Introduction/README.md) | 머신러닝의 기본 개념을 학습하세요 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | 머신러닝의 역사 | [Introduction](1-Introduction/README.md) | 이 분야의 역사를 학습하세요 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | 공정성과 머신러닝 | [Introduction](1-Introduction/README.md) | 학생들이 ML 모델을 구축하고 적용할 때 고려해야 할 공정성과 관련된 중요한 철학적 문제는 무엇인가? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | 머신러닝 기법 | [Introduction](1-Introduction/README.md) | ML 연구자들이 ML 모델을 구축하는 데 사용하는 기법은 무엇인가? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | 회귀 분석 소개 | [Regression](2-Regression/README.md) | Python과 Scikit-learn으로 회귀 모델 시작하기 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | 북미 호박 가격 🎃 | [Regression](2-Regression/README.md) | 머신러닝 준비를 위한 데이터 시각화 및 정제 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | 북미 호박 가격 🎃 | [Regression](2-Regression/README.md) | 선형 및 다항 회귀 모델 구축 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | 북미 호박 가격 🎃 | [Regression](2-Regression/README.md) | 로지스틱 회귀 모델 구축 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | 웹 앱 🔌 | [Web App](3-Web-App/README.md) | 훈련된 모델을 사용하기 위한 웹 앱 구축 | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 분류 소개 | [Classification](4-Classification/README.md) | 데이터 정제, 준비 및 시각화; 분류 소개 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | 맛있는 아시아 및 인도 요리 🍜 | [Classification](4-Classification/README.md) | 분류기 소개 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | 맛있는 아시아 및 인도 요리 🍜 | [Classification](4-Classification/README.md) | 추가 분류기 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | 맛있는 아시아 및 인도 요리 🍜 | [Classification](4-Classification/README.md) | 모델을 사용해 추천 웹 앱 구축 | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | 군집화 소개 | [Clustering](5-Clustering/README.md) | 데이터 정제, 준비 및 시각화; 군집화 소개 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | 나이지리아 음악 취향 탐색 🎧 | [Clustering](5-Clustering/README.md) | K-평균 군집화 방법 탐구 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | 자연어 처리 소개 ☕️ | [Natural language processing](6-NLP/README.md) | 간단한 봇을 만들어 NLP 기본 배우기 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 일반적인 NLP 작업 ☕️ | [Natural language processing](6-NLP/README.md) | 언어 구조를 다룰 때 필요한 일반적인 작업 이해로 NLP 지식 심화 | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 번역 및 감성 분석 ♥️ | [Natural language processing](6-NLP/README.md) | 제인 오스틴과 함께하는 번역 및 감성 분석 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | 유럽의 낭만적인 호텔들 ♥️ | [Natural language processing](6-NLP/README.md) | 호텔 리뷰 감성 분석 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | 유럽의 낭만적인 호텔들 ♥️ | [Natural language processing](6-NLP/README.md) | 호텔 리뷰 감성 분석 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 시계열 예측 소개 | [Time series](7-TimeSeries/README.md) | 시계열 예측 소개 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 세계 전력 사용량 ⚡️ - ARIMA를 이용한 시계열 예측 | [Time series](7-TimeSeries/README.md) | ARIMA를 이용한 시계열 예측 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ 세계 전력 사용량 ⚡️ - SVR을 이용한 시계열 예측 | [Time series](7-TimeSeries/README.md) | 서포트 벡터 회귀(SVR)를 이용한 시계열 예측 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | 강화 학습 소개 | [Reinforcement learning](8-Reinforcement/README.md) | Q-러닝을 통한 강화 학습 소개 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | 피터가 늑대를 피하도록 도와주세요! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 강화 학습 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | 실제 ML 시나리오 및 응용 사례 | [ML in the Wild](9-Real-World/README.md) | 고전적인 ML의 흥미롭고 드러나는 실제 응용 사례 | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| Postscript | RAI 대시보드를 활용한 ML 모델 디버깅 | [ML in the Wild](9-Real-World/README.md) | Responsible AI 대시보드 구성 요소를 활용한 머신러닝 모델 디버깅 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [이 과정의 모든 추가 자료는 Microsoft Learn 컬렉션에서 확인하세요](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## 오프라인 접근 -[Docsify](https://docsify.js.org/#/)를 사용하여 이 문서를 오프라인에서 실행할 수 있습니다. 이 저장소를 포크하고, 로컬 머신에 [Docsify를 설치](https://docsify.js.org/#/quickstart)한 다음, 이 저장소의 루트 폴더에서 `docsify serve`를 입력하십시오. 웹사이트는 로컬호스트 포트 3000에서 제공됩니다: `localhost:3000`. +[Docsify](https://docsify.js.org/#/)를 사용하여 이 문서를 오프라인에서 실행할 수 있습니다. 이 저장소를 포크하고, 로컬 컴퓨터에 [Docsify를 설치](https://docsify.js.org/#/quickstart)한 다음, 이 저장소의 루트 폴더에서 `docsify serve`를 입력하세요. 웹사이트는 로컬호스트의 3000번 포트에서 제공됩니다: `localhost:3000`. ## PDF -링크가 포함된 커리큘럼 PDF는 [여기](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)에서 확인하세요. +링크된 PDF 교육 과정은 [여기](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)에서 찾으실 수 있습니다. -## 🎒 다른 강좌들 +## 🎒 기타 강좌 -우리 팀은 다른 강좌도 제작합니다! 확인해 보세요: +우리 팀은 다른 강좌들도 제작합니다! 확인해 보세요: ### LangChain @@ -191,48 +190,48 @@ Microsoft의 클라우드 전도사들이 12주, 26개의 강의로 구성된 ** --- ### 생성 AI 시리즈 -[![초보자를 위한 생성형 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![생성형 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![생성형 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![생성형 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### 핵심 학습 -[![초보자를 위한 ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![초보자를 위한 데이터 과학](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![초보자를 위한 AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![초보자를 위한 사이버보안](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![초보자를 위한 웹 개발](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![초보자를 위한 IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![초보자를 위한 XR 개발](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### 코파일럿 시리즈 -[![AI 페어 프로그래밍을 위한 코파일럿](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET용 코파일럿](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![코파일럿 어드벤처](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## 도움 받기 -AI 앱 개발에 어려움이 있거나 질문이 있으면 MCP에 대해 다른 학습자 및 경험 있는 개발자들과 함께 토론에 참여하세요. 질문이 환영받고 지식이 자유롭게 공유되는 지원 커뮤니티입니다. +AI 앱 개발 중 막히거나 궁금한 점이 있다면, MCP에 대해 함께 배우는 학습자와 경험이 풍부한 개발자들과 토론에 참여하세요. 질문을 환영하고 지식을 자유롭게 공유하는 지원 커뮤니티입니다. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -제품 피드백이나 빌드 중 오류가 발생하면 다음을 방문하세요: +제품 피드백이 있거나 개발 중 오류가 발생하면 다음을 방문하세요: -[![Microsoft Foundry 개발자 포럼](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## 추가 학습 팁 -- 각 수업 후 노트북을 검토하여 이해도를 높이세요. -- 알고리즘을 직접 구현해 보며 연습하세요. -- 학습한 개념을 사용하여 실제 데이터셋을 탐색해 보세요. +- 각 강의 후 노트북을 검토하여 이해도를 높이세요. +- 알고리즘 구현을 직접 연습해 보세요. +- 배운 개념을 활용하여 실제 데이터셋을 탐색해 보세요. --- **면책 조항**: -이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있지만, 자동 번역은 오류나 부정확한 표현을 포함할 수 있음을 알려드립니다. 원문은 해당 언어의 원본 문서가 권위 있는 자료로 간주되어야 합니다. 중요한 정보에 대해서는 전문적인 인간 번역을 권장합니다. 본 번역 사용으로 인한 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. +이 문서는 AI 번역 서비스 [Co-op Translator](https://github.com/Azure/co-op-translator)를 사용하여 번역되었습니다. 정확성을 위해 노력하고 있으나, 자동 번역에는 오류나 부정확성이 포함될 수 있음을 유의하시기 바랍니다. 원문 문서는 해당 원어로 된 문서가 권위 있는 출처임을 인정해 주십시오. 중요한 정보의 경우 전문가의 인간 번역을 권장합니다. 본 번역 사용으로 인해 발생하는 오해나 잘못된 해석에 대해 당사는 책임을 지지 않습니다. \ No newline at end of file diff --git a/translations/lt/.co-op-translator.json b/translations/lt/.co-op-translator.json index 24e9e8625..1917517bf 100644 --- a/translations/lt/.co-op-translator.json +++ b/translations/lt/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "lt" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:39:47+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:36:44+00:00", "source_file": "README.md", "language_code": "lt" }, diff --git a/translations/lt/README.md b/translations/lt/README.md index f17b29fd5..ceb654f3d 100644 --- a/translations/lt/README.md +++ b/translations/lt/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Daugiakalbė parama +### 🌐 Daugiakalbė palaikymas -#### Palaikoma per GitHub Action (automatiškai ir visada atnaujinta) +#### Palaikoma per GitHub Action (automatizuota ir visuomet atnaujinama) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](./README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](./README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Norite kopijuoti lokaliai?** +> **Norite klonuoti vietoje?** > -> Ši saugykla turi daugiau nei 50 kalbų vertimų, dėl ko žymiai padidėja atsisiuntimo dydis. Norėdami kopijuoti be vertimų, naudokite sparse checkout: +> Šis saugykla apima daugiau nei 50 kalbų vertimų, kurie žymiai padidina atsisiuntimo dydį. Norėdami klonuoti be vertimų, naudokite riboto ištraukimo funkciją (sparse checkout): > > **Bash / macOS / Linux:** > ```bash @@ -33,206 +33,206 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Tai suteiks jums viską, ko reikia kursui baigti, su daug greitesniu atsisiuntimu. +> Tai suteiks jums viską, ko reikia kursui užbaigti, daug greičiau atsisiunčiant. #### Prisijunkite prie mūsų bendruomenės [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Mes vykdome Discord „mokymosi su AI“ seriją, sužinokite daugiau ir prisijunkite prie mūsų adresu [Learn with AI Series](https://aka.ms/learnwithai/discord) nuo 2025 m. rugsėjo 18 iki 30 d. Gaunate patarimų ir triukų, kaip naudoti GitHub Copilot Duomenų moksle. +Mes turime Discord mokymosi su dirbtiniu intelektu ciklą, sužinokite daugiau ir prisijunkite prie mūsų [Learn with AI Series](https://aka.ms/learnwithai/discord) nuo 2025 m. rugsėjo 18 - 30 dienos. Gaunate patarimų ir gudrybių kaip naudoti GitHub Copilot duomenų mokslui. ![Learn with AI series](../../translated_images/lt/3.9b58fd8d6c373c20.webp) -# Mašininis mokymasis pradedantiesiems – mokymo programa +# Mašinų mokymasis pradedantiesiems - mokymo programa -> 🌍 Keliaukime po pasaulį tyrinėdami mašininį mokymąsi per pasaulio kultūras 🌍 +> 🌍 Keliaukite po pasaulį tyrinėdami mašinų mokymąsi per pasaulio kultūras 🌍 -„Microsoft“ „Cloud Advocates“ džiaugiasi galėdami pasiūlyti 12 savaičių, 26 pamokų programą, skirtą **mašininio mokymosi** studijoms. Šioje programoje sužinosite apie tai, ką kartais vadina **klasikiniu mašininiu mokymusi**, daugiausiai naudojant Scikit-learn biblioteką ir vengiant giluminio mokymosi, kuris aprašytas mūsų [AI pradedantiesiems programoje](https://aka.ms/ai4beginners). Taip pat derinkite šias pamokas su mūsų ['Duomenų mokslas pradedantiesiems' programa](https://aka.ms/ds4beginners). +„Microsoft“ debesų platformos šalininkai džiaugiasi galėdami pasiūlyti 12 savaičių, 26 pamokų mokymo programą apie **Mašinų mokymąsi**. Šioje programoje sužinosite apie tai, kas kartais vadinama **klasikiniu mašinų mokymusi**, daugiausia naudojant Scikit-learn biblioteką ir vengiant giluminio mokymosi, kuris aprašytas mūsų [AI pradedantiesiems programoje](https://aka.ms/ai4beginners). Derinkite šias pamokas su mūsų ['Duomenų mokslas pradedantiesiems' programa](https://aka.ms/ds4beginners). -Keliaukite su mumis po pasaulį, taikydami šias klasikines technikas duomenims iš įvairių pasaulio sričių. Kiekvienoje pamokoje yra priešpamokinis ir postpamokinis testai, rašytinės instrukcijos pamokos atlikimui, sprendimas, užduotis ir daugiau. Mūsų projektinė pedagogika leidžia mokytis kuriant – tai patikrintas būdas įsisavinti naujus įgūdžius. +Keliaukite kartu su mumis po pasaulį, pritaikydami šias klasikines technikas duomenims iš įvairių pasaulio sričių. Kiekviena pamoka apima priešpamokinius ir po pamokinių testus, rašytines nurodas, kaip atlikti pamoką, sprendimą, užduotį ir daugiau. Mūsų projektinis mokymosi metodas leidžia mokytis kuriant, tai įrodyta kaip sėkmingas būdas įsisavinti naujus įgūdžius. -**✍️ Nuoširdžiai dėkojame mūsų autoriams** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ir Amy Boyd +**✍️ Širdingas ačiū mūsų autoriams** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ir Amy Boyd -**🎨 Taip pat dėkojame mūsų iliustratoriams** Tomomi Imura, Dasani Madipalli ir Jen Looper +**🎨 Ačiū taip pat mūsų iliustratoriams** Tomomi Imura, Dasani Madipalli ir Jen Looper -**🙏 Specialus ačiū 🙏 mūsų Microsoft Studentų Ambasadorių autoriams, vertintojams ir turinio bendradarbiams**, ypač Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ir Snigdha Agarwal +**🙏 Specialus ačiū 🙏 mūsų Microsoft Studentų Ambasadoriams autoriams, recenzentams ir turinio bendradarbiams**, ypač Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ir Snigdha Agarwal -**🤩 Ypač dėkojame Microsoft Studentų Ambasadoriams Eric Wanjau, Jasleen Sondhi ir Vidushi Gupta už mūsų R pamokas!** +**🤩 Papildomas dėkingumas Microsoft Studentų Ambasadoriams Eric Wanjau, Jasleen Sondhi ir Vidushi Gupta už mūsų R pamokas!** # Pradžia -Laikykitės šių žingsnių: -1. **Padarykite fork'ą**: Spustelėkite mygtuką „Fork“ šio puslapio dešiniajame viršutiniame kampe. -2. **Klonuokite saugyklą**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +Sekite šiuos žingsnius: +1. **Daryti šaką (Fork)**: Spauskite mygtuką „Fork“ šio puslapio viršutiniame dešiniajame kampe. +2. **Klonuoti saugyklą**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [suraskite visus papildomus šio kurso išteklius mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [rasite visus papildomus išteklius šiam kursui mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Reikia pagalbos?** Peržiūrėkite mūsų [Gedimų šalinimo vadovą](TROUBLESHOOTING.md) – sprendimus dažniausiai pasitaikančioms problemoms diegiant, nustatant ir vykdant pamokas. +> 🔧 **Reikia pagalbos?** Patikrinkite mūsų [Trikčių šalinimo vadovą](TROUBLESHOOTING.md) dėl dažniausiai pasitaikančių problemų su diegimu, konfigūracija ir pamokų vykdymu. -**[Studentams](https://aka.ms/student-page)**, norėdami naudotis šia programa, fork'inkite visą kodą į savo GitHub paskyrą ir atlikite pratimus savarankiškai arba grupėje: +**[Studentams](https://aka.ms/student-page)**, norėdami naudotis šia programa, padarykite šaką visam repozitorijui į savo GitHub paskyrą ir mokykitės patys arba grupėje: -- Pradėkite nuo priešpaskaitinio testo. -- Perskaitykite paskaitą ir atlikite veiklas, sustodami ir apmąstydami kiekvieną žinių patikrinimą. -- Stenkitės kurti projektus suprasdami pamokas, o ne vien paleisdami sprendimo kodą; tačiau šis kodas yra prieinamas kiekvienos projektinės pamokos `/solution` aplankuose. +- Pradėkite nuo priešpamokinio testo. +- Perskaitykite paskaitą ir atlikite veiklas, sustokite ir apmąstykite kiekvieną žinių patikrinimą. +- Stenkitės kurti projektus suprasdami pamokas, o ne tik paleisdami sprendimo kodą; kodas prieinamas kiekvienos projektinės pamokos `/solution` aplankuose. - Atlikite po paskaitos testą. -- Atlikite iššūkį. +- Įvykdykite iššūkį. - Atlikite užduotį. -- Baigę pamokų ciklą, aplankykite [Diskusijų forumą](https://github.com/microsoft/ML-For-Beginners/discussions) ir „mokykitės garsiai“ užpildydami atitinkamą PAT rubriką. PAT – tai Progreso Vertinimo Priemonė, kurią užpildote tolesniam mokymuisi. Taip pat galite reaguoti į kitų PAT, kad mokytumėmės kartu. +- Baigę pamokų grupę apsilankykite [Diskusijų lentoje](https://github.com/microsoft/ML-For-Beginners/discussions) ir „mokykitės garsiai“, užpildydami tinkamą PAT įvertinimo šabloną. „PAT“ yra pažangos vertinimo įrankis, kurį pildote gilindamiesi į mokymosi procesą. Taip pat galite reaguoti į kitų PAT, kad galėtume mokytis kartu. -> Tolimesnėms studijoms rekomenduojame šiuos [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulius ir mokymosi kelius. +> Dėl tolimesnio mokymosi rekomenduojame sekti šiuos [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulius ir mokymosi kelius. -**Mokytojams**, mes pateikėme [keletą rekomendacijų](for-teachers.md), kaip naudoti šią programą. +**Mokytojams**, mes pateikėme [kelias rekomendacijas](for-teachers.md), kaip naudotis šia programa. --- -## Vaizdo įrašų peržiūros +## Vaizdo įrašų apžvalgos -Kai kurios pamokos pateikiamos trumpais vaizdo įrašais. Juos rasite įterptus pamokose arba [ML pradedantiesiems grojaraštyje Microsoft Developer YouTube kanale](https://aka.ms/ml-beginners-videos) spustelėję paveikslėlį žemiau. +Kai kurios pamokos pateikiamos trumpais vaizdo įrašais. Visus juos galite rasti tiesiogiai pamokose arba [ML pradedantiesiems grojaraštyje Microsoft Developer YouTube kanale](https://aka.ms/ml-beginners-videos), spustelėję žemiau esančią nuotrauką. [![ML for beginners banner](../../translated_images/lt/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Susipažinkite su Komanda +## Susipažinkite su komanda [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif sukūrė** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Spustelėkite paveikslėlį aukščiau, kad pamatytumėte vaizdo įrašą apie projektą ir jį sukūrusius žmones! +> 🎥 Spustelėkite paveikslėlį aukščiau, norėdami peržiūrėti vaizdo įrašą apie projektą ir jo kūrėjus! --- ## Pedagogika -Kurdami šią programą pasirinkome du pedagoginius principus: užtikrinti, kad ji būtų praktiška, **projektinė**, ir kad būtų **dažni testai**. Be to, ši programa turi bendrą **temą**, suteikiančią jai darną. +Kurdami šią programą pasirinkome du pagrindinius ugdymo principus: užtikrinti, kad ji būtų praktiškai orientuota ir paremta **projektų principais**, ir kad ji apimtų **dažnus testus**. Be to, programa turi bendrą **temą**, kad būtų vientisa. -Užtikrinus, kad turinys atitinka projektus, procesas tampa patrauklesnis mokiniams, o sąvokos geriau įsimenamos. Taip pat žemo pasirinkimo laipsnio testas prieš paskaitą orientuoja mokinį į temos mokymąsi, o antras testas po paskaitos užtikrina tolesnį įsisavinimą. Ši programa sukurta būti lanksti ir smagi, ją galima naudoti visą arba atskiras dalis. Projektai prasideda nuo mažų ir pabaigoje tampa vis sudėtingesni per 12 savaičių ciklą. Ši programa taip pat apima priedą apie mašininio mokymosi taikymą realiame pasaulyje, kurį galima naudoti kaip papildomą užduotį arba diskusijos pagrindą. +Užtikrinant turinio suderinamumą su projektais, procesas tampa įdomesnis studentams, o koncepcijų išlaikymas bus pagerintas. Taip pat, mažo spaudimo testas prieš pamoką padeda studentui susikoncentruoti į mokymąsi, o antras testas po pamokos užtikrina papildomą įsisavinimą. Ši programa yra lanksti ir smagi, ją galima atlikti pilnai arba dalinai. Projektai prasideda nuo paprastų užduočių ir baigiasi sudėtingesniais ciklo pabaigoje. Programa taip pat apima pastabą apie realaus gyvenimo ML taikymą, kuri gali būti naudojama kaip papildomi kreditai ar diskusijų pagrindas. -> Raskite mūsų [Elgesio kodeksą](CODE_OF_CONDUCT.md), [Indėlio gairės](CONTRIBUTING.md), [Vertimus](..) ir [Gedimų šalinimą](TROUBLESHOOTING.md). Laukiame jūsų konstruktyvių atsiliepimų! +> Raskite mūsų [Elgesio kodeksą](CODE_OF_CONDUCT.md), [Prisidėjimo gairės](CONTRIBUTING.md), [Vertimus](..) ir [Trikčių šalinimo](TROUBLESHOOTING.md) taisykles. Laukiame jūsų konstruktyvios grįžtamosios informacijos! ## Kiekviena pamoka apima -- pasirenkamą piešinių užrašą -- pasirenkamą papildomą vaizdo įrašą +- neprivalomą eskizo pastabą +- neprivalomą papildomą vaizdo įrašą - vaizdo įrašo peržiūrą (tik kai kurios pamokos) -- [priešpaskaitinį apšilimo testą](https://ff-quizzes.netlify.app/en/ml/) +- [priešpamokinį apšilimo testą](https://ff-quizzes.netlify.app/en/ml/) - rašytinę pamoką -- projektinėms pamokoms – žingsnis po žingsnio vadovus, kaip kurti projektą +- projektinių pamokų atveju, žingsnis po žingsnio gaires, kaip sukurti projektą - žinių patikrinimus - iššūkį - papildomą skaitymą - užduotį -- [po paskaitos testą](https://ff-quizzes.netlify.app/en/ml/) - -> **Pastaba apie kalbas**: Šios pamokos pagrinde parašytos Python kalba, bet daugelis taip pat prieinamos R kalba. Norėdami atlikti R pamoką, eikite į `/solution` katalogą ir ieškokite R pamokų. Jos turi .rmd plėtinį, kuris reiškia **R Markdown** failą – tai dokumentas, kuriame jungiamas `kodo blokai` (R ar kitų kalbų) ir `YAML antraštė` (nurodanti, kaip formatuoti išvestį, pvz., PDF) `Markdown` dokumente. Tokiu būdu tai puiki autorystės sistema duomenų mokslui, leidžianti kartu sujungti kodą, jo rezultatą ir mintis, rašant jas Markdown formatu. Be to, R Markdown dokumentai gali būti konvertuojami į formatus, tokius kaip PDF, HTML ar Word. -> **Pastaba apie quizus**: Visi quizai yra [Quiz App aplanke](../../quiz-app), iš viso 52 quizai po tris klausimus. Jie yra susieti pamokų viduje, tačiau quizų programą galima paleisti lokaliai; laikykitės instrukcijų `quiz-app` aplanke, kad ją paleistumėte vietoje arba patalpintumėte Azure. - -| Pamokos numeris | Tema | Pamokų grupavimas | Mokymosi tikslai | Susieta pamoka | Autorius | -| :-------------: | :--------------------------------------------------------------: | :----------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------: | -| 01 | Įvadas į mašininį mokymąsi | [Introduction](1-Introduction/README.md) | Sužinokite pagrindines mašininio mokymosi sąvokas | [Pamoka](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Mašininio mokymosi istorija | [Introduction](1-Introduction/README.md) | Sužinokite šios srities istoriją | [Pamoka](1-Introduction/2-history-of-ML/README.md) | Jen ir Amy | -| 03 | Teisingumas ir mašininis mokymasis | [Introduction](1-Introduction/README.md) | Kokios svarbios filosofinės teisingumo problemos, kuriomis turėtų domėtis studentai kurdami ir taikydami MM modelius? | [Pamoka](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Mašininio mokymosi technikos | [Introduction](1-Introduction/README.md) | Kokias technikas MM tyrėjai naudoja mokydami MM modelius? | [Pamoka](1-Introduction/4-techniques-of-ML/README.md) | Chris ir Jen | -| 05 | Įvadas į regresiją | [Regression](2-Regression/README.md) | Pradėkite dirbti su Python ir Scikit-learn regresijos modeliams | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regression](2-Regression/README.md) | Vizualizuokite ir išvalykite duomenis ruošdamiesi MM | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regression](2-Regression/README.md) | Kurkite tiesinės ir polinominės regresijos modelius | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ir Dmitry • Eric Wanjau | -| 08 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regression](2-Regression/README.md) | Kurkite logistinės regresijos modelį | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Interneto programa 🔌 | [Web App](3-Web-App/README.md) | Sukurkite interneto programą, kad naudotumėte savo apmokytą modelį | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Įvadas į klasifikaciją | [Classification](4-Classification/README.md) | Valykite, paruoškite ir vizualizuokite savo duomenis; įvadas į klasifikaciją | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ir Cassie • Eric Wanjau | -| 11 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](4-Classification/README.md) | Įvadas į klasifikatorius | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ir Cassie • Eric Wanjau | -| 12 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](4-Classification/README.md) | Daugiau klasifikatorių | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ir Cassie • Eric Wanjau | -| 13 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](4-Classification/README.md) | Sukurkite rekomendacinę interneto programą naudodami savo modelį | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Įvadas į klasterizavimą | [Clustering](5-Clustering/README.md) | Valykite, ruoškitės ir vizualizuokite savo duomenis; įvadas į klasterizavimą | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Nigerijos muzikos skonio tyrinėjimas 🎧 | [Clustering](5-Clustering/README.md) | Tyrinėkite K-Means klasterizavimo metodą | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Įvadas į natūralios kalbos apdorojimą ☕️ | [Natural language processing](6-NLP/README.md) | Išmokite NLP pagrindus kurdami paprastą botą | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Įprasti NLP uždaviniai ☕️ | [Natural language processing](6-NLP/README.md) | Gilinkite NLP žinias suprasdami įprastus uždavinius, susijusius su kalbos struktūromis | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Vertimas ir nuotaikų analizė ♥️ | [Natural language processing](6-NLP/README.md) | Vertimas ir nuotaikų analizė su Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantiški Europos viešbučiai ♥️ | [Natural language processing](6-NLP/README.md) | Nuotaikų analizė su viešbučių atsiliepimais 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantiški Europos viešbučiai ♥️ | [Natural language processing](6-NLP/README.md) | Nuotaikų analizė su viešbučių atsiliepimais 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Laiko eilių prognozavimo įvadas | [Time series](7-TimeSeries/README.md) | Įvadas į laiko eilių prognozavimą | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Pasaulio energijos naudojimas ⚡️ - ARIMA prognozės | [Time series](7-TimeSeries/README.md) | Laiko eilių prognozavimas su ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Pasaulio energijos naudojimas ⚡️ - SVR prognozės | [Time series](7-TimeSeries/README.md) | Laiko eilių prognozavimas su paramos vektorių regresoriumi (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Įvadas į stiprinamąjį mokymąsi | [Reinforcement learning](8-Reinforcement/README.md) | Įvadas į stiprinamąjį mokymąsi su Q-Mokymusi | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Padėkite Petrui išvengti vilko! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Stiprinamojo mokymosi Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Realūs MM scenarijai ir taikymai | [ML in the Wild](9-Real-World/README.md) | Įdomios ir atskleidžiančios realaus pasaulio klasikinių MM taikymų | [Pamoka](9-Real-World/1-Applications/README.md) | Komanda | -| Postscript | Modelių klaidų paieška ML su RAI prietaisu | [ML in the Wild](9-Real-World/README.md) | Modelių klaidų paieška mašininio mokymosi modeliuose naudojant atsakingo AI valdymo skydelio komponentus | [Pamoka](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [raskite visus papildomus šio kurso išteklius mūsų Microsoft Learn rinkinyje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## Veikia be interneto - -Galite naudoti šią dokumentaciją be interneto naudodami [Docsify](https://docsify.js.org/#/). Padarykite šio repozitorijaus šaką („fork“), [įdiekite Docsify](https://docsify.js.org/#/quickstart) savo vietiniame kompiuteryje ir tada šio repozitorijaus pagrindiniame aplanke įveskite `docsify serve`. Svetainė bus pristatyta 3000 prievade jūsų lokaliame kompiuteryje: `localhost:3000`. +- [po pamokos testą](https://ff-quizzes.netlify.app/en/ml/) +> **Pastaba apie kalbas**: Šios pamokos daugiausia parašytos Python kalba, bet dauguma jų taip pat yra prieinamos R kalba. Norėdami baigti R pamoką, eikite į `/solution` katalogą ir ieškokite R pamokų. Jos turi .rmd plėtinį, kuris reiškia **R Markdown** failą, kuris gali būti apibrėžiamas kaip `kodo blokų` (R ar kitų kalbų) ir `YAML antraštės` (nurodančios, kaip formatuoti rezultatus, pvz., PDF) įterpimas į `Markdown dokumentą`. Tokiu būdu tai tarnauja kaip pavyzdinė autorystės sistema duomenų mokslui, nes leidžia jums sujungti savo kodą, jo rezultatą ir mintis, leidžiant jas užrašyti Markdown formatu. Be to, R Markdown dokumentai gali būti atvaizduojami į įvairius išvesties formatus, tokius kaip PDF, HTML ar Word. + +> **Pastaba apie testus**: Visi testai yra laikomi [Quiz App kataloge](../../quiz-app), iš viso 52 testai, kiekviename po tris klausimus. Jie susieti su pamokomis, bet testų programėlę galima paleisti vietoje; vadovaukitės nurodymais `quiz-app` kataloge, kad ją paleistumėte vietoje arba išdėstytumėte Azure. + +| Pamokos numeris | Tema | Pamokų grupė | Mokymosi tikslai | Susieta pamoka | Autorius | +| :-------------: | :--------------------------------------------------------: | :-----------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------: | +| 01 | Įvadas į mašininį mokymąsi | [Introduction](1-Introduction/README.md) | Sužinoti pagrindines mašininio mokymosi sąvokas | [Pamoka](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Mašininio mokymosi istorija | [Introduction](1-Introduction/README.md) | Sužinoti šio srities istoriją | [Pamoka](1-Introduction/2-history-of-ML/README.md) | Jen ir Amy | +| 03 | Teisingumas ir mašininis mokymasis | [Introduction](1-Introduction/README.md) | Kokie svarbūs filosofiniai klausimai dėl teisingumo, kuriuos turėtų apsvarstyti mokiniai kurdami ir taikydami MM modelius? | [Pamoka](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Mašininio mokymosi technikos | [Introduction](1-Introduction/README.md) | Kokias technikas MM tyrėjai naudoja kurdami MM modelius? | [Pamoka](1-Introduction/4-techniques-of-ML/README.md) | Chris ir Jen | +| 05 | Įvadas į regresiją | [Regression](2-Regression/README.md) | Pradėti dirbti su Python ir Scikit-learn regresijos modeliams | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regression](2-Regression/README.md) | Vizualizuoti ir išvalyti duomenis, ruošiantis MM | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regression](2-Regression/README.md) | Kurti tiesinės ir polinominės regresijos modelius | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ir Dmitry • Eric Wanjau | +| 08 | Šiaurės Amerikos moliūgų kainos 🎃 | [Regression](2-Regression/README.md) | Kurti logistinės regresijos modelį | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Internetinė programa 🔌 | [Web App](3-Web-App/README.md) | Kurti internetinę programą, kad naudotumėte savo apmokytą modelį | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Įvadas į klasifikaciją | [Classification](4-Classification/README.md) | Išvalyti, paruošti ir vizualizuoti duomenis; įvadas į klasifikaciją | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ir Cassie • Eric Wanjau | +| 11 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](4-Classification/README.md) | Įvadas į klasifikatorius | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ir Cassie • Eric Wanjau | +| 12 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](4-Classification/README.md) | Daugiau klasifikatorių | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ir Cassie • Eric Wanjau | +| 13 | Skani Azijos ir Indijos virtuvė 🍜 | [Classification](4-Classification/README.md) | Kurti rekomendacijų internetinę programėlę naudodami savo modelį | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Įvadas į klasterizaciją | [Clustering](5-Clustering/README.md) | Išvalyti, paruošti ir vizualizuoti duomenis; įvadas į klasterizaciją | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Nigerijos muzikos skonių tyrinėjimas 🎧 | [Clustering](5-Clustering/README.md) | Tyrinėti K-Means klasterizacijos metodą | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Įvadas į natūralios kalbos apdorojimą ☕️ | [Natural language processing](6-NLP/README.md) | Sužinoti NLP pagrindus kuriant paprastą botą | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Bendros NLP užduotys ☕️ | [Natural language processing](6-NLP/README.md) | Gilinti NLP žinias suprantant bendras užduotis, susijusias su kalbos struktūra | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Vertimas ir nuotaikų analizė ♥️ | [Natural language processing](6-NLP/README.md) | Vertimas ir nuotaikų analizė su Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantiški viešbučiai Europoje ♥️ | [Natural language processing](6-NLP/README.md) | Nuotaikų analizė su viešbučių atsiliepimais 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantiški viešbučiai Europoje ♥️ | [Natural language processing](6-NLP/README.md) | Nuotaikų analizė su viešbučių atsiliepimais 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Įvadas į laiko eilių prognozavimą | [Time series](7-TimeSeries/README.md) | Įvadas į laiko eilių prognozavimą | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Pasaulinis energijos suvartojimas ⚡️ - laiko eilių prognozavimas su ARIMA | [Time series](7-TimeSeries/README.md) | Laiko eilių prognozavimas su ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Pasaulinis energijos suvartojimas ⚡️ - laiko eilių prognozavimas su SVR | [Time series](7-TimeSeries/README.md) | Laiko eilių prognozavimas su parama vektoriniais regresoriais | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Įvadas į stiprinamąjį mokymą | [Reinforcement learning](8-Reinforcement/README.md) | Įvadas į stiprinamąjį mokymą su Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Padėkite Peteriui išvengti vilko! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Stiprinamojo mokymosi sporto salė | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Pasakažas | Realaus pasaulio MM scenarijai ir programos | [ML in the Wild](9-Real-World/README.md) | Įdomios ir atskleidžiančios realaus pasaulio klasikinio MM taikymo programos | [Pamoka](9-Real-World/1-Applications/README.md) | Komanda | +| Pasakažas | Modelių derinimas MM su RAI prietaisų skydeliu | [ML in the Wild](9-Real-World/README.md) | Modelių derinimas mašininio mokymosi srityje naudojant Responsible AI prietaisų skydelio komponentus | [Pamoka](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [raskite visus papildomus šio kurso išteklius mūsų Microsoft Learn kolekcijoje](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## Offline prieiga + +Šią dokumentaciją galite naudoti neprisijungę, naudodamiesi [Docsify](https://docsify.js.org/#/). Šakninėje katalogo vietoje padarykite šaką (`fork`) arba klonuokite šį repo, [įdiekite Docsify](https://docsify.js.org/#/quickstart) savo vietiniame įrenginyje, tada terminale šio repo šakniniame kataloge įveskite `docsify serve`. Svetainė bus patiekiama 3000 prievade jūsų localhost: `localhost:3000`. ## PDF failai -Raskite mokymo programos pdf su nuorodomis [čia](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Raskite kurso programos PDF su nuorodomis [čia](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Kiti kursai -Mūsų komanda kuria ir kitus kursus! Pažiūrėkite: +Mūsų komanda kuria ir kitus kursus! Pažvelkite: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j pradedantiesiems](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js pradedantiesiems](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain pradedantiesiems](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agentai -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD pradedantiesiems](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI pradedantiesiems](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP pradedantiesiems](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI agentai pradedantiesiems](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- - -### Generatyvioji AI serija -[![Generatyvinis DI pradedantiesiems](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generatyvinis DI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generatyvinis DI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generatyvinis DI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) + +### Generatyvinio AI serija +[![Generatyvinis AI pradedantiesiems](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generatyvinis AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generatyvinis AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generatyvinis AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- - + ### Pagrindinis mokymasis [![ML pradedantiesiems](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Duomenų mokslas pradedantiesiems](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![DI pradedantiesiems](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![AI pradedantiesiems](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![Kibernetinis saugumas pradedantiesiems](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Tinklapių kūrimas pradedantiesiems](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT pradedantiesiems](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Tinklalapių kūrimas pradedantiesiems](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![Daiktų internetas pradedantiesiems](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) [![XR kūrimas pradedantiesiems](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- - + ### Copilot serija -[![Copilot DI poroje programuojant](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot dirbant su AI kartu programavimu](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot nuotykiai](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Pagalba +## Pagalbos gavimas -Jei įstringate ar turite klausimų apie DI programų kūrimą. Prisijunkite prie kitų besimokančių ir patyrusių kūrėjų diskusijose apie MCP. Tai palaikanti bendruomenė, kurioje klausimai yra laukiami, o žinios dalijamasi laisvai. +Jei užstrigote arba turite klausimų apie AI programų kūrimą. Prisijunkite prie kitų mokinių ir patyrusių kūrėjų diskusijose apie MCP. Tai palaikanti bendruomenė, kurioje klausimai yra laukiami ir žinios dalijamos laisvai. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Jei turite produktų atsiliepimų ar klaidų kūrimo metu, apsilankykite: +Jei turite produktų atsiliepimų arba klaidų kūrimo metu, apsilankykite: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Papildomi mokymosi patarimai -- Peržiūrėkite užrašų knygutes po kiekvienos pamokos, kad geriau suprastumėte. +- Peržiūrėkite užrašų knygeles po kiekvienos pamokos geresniam supratimui. - Praktikuokite algoritmų įgyvendinimą savarankiškai. -- Tyrinėkite realių duomenų rinkinius naudodami įgytas žinias. +- Tyrinėkite realius duomenų rinkinius naudodami įgytas žinias. --- -**Atsakomybės apribojimas**: -Šis dokumentas buvo išverstas naudojant dirbtinio intelekto vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors siekiame tikslumo, atkreipkite dėmesį, kad automatiniai vertimai gali turėti klaidų ar netikslumų. Originalus dokumentas jo gimtąja kalba laikomas autoritetingu šaltiniu. Svarbiai informacijai rekomenduojama naudoti profesionalų vertimą, atliekamą žmogaus. Mes neatsakome už bet kokius nesusipratimus ar klaidingas interpretacijas, kylančias naudojant šį vertimą. +**Atsakomybės apribojimas**: +Šis dokumentas buvo išverstas naudojant AI vertimo paslaugą [Co-op Translator](https://github.com/Azure/co-op-translator). Nors stengiamės užtikrinti tikslumą, prašome atkreipti dėmesį, kad automatizuoti vertimai gali turėti klaidų arba netikslumų. Originalus dokumentas jo gimtąja kalba laikomas autoritetingu šaltiniu. Kritinei informacijai rekomenduojame naudotis profesionaliu žmogišku vertimu. Mes neatsakome už jokius nesusipratimus ar klaidingas interpretacijas, kylančias dėl šio vertimo naudojimo. \ No newline at end of file diff --git a/translations/ml/.co-op-translator.json b/translations/ml/.co-op-translator.json index 297fd744b..4d06a164f 100644 --- a/translations/ml/.co-op-translator.json +++ b/translations/ml/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ml" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:51:35+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:50:09+00:00", "source_file": "README.md", "language_code": "ml" }, diff --git a/translations/ml/README.md b/translations/ml/README.md index 12f53e703..42af3599a 100644 --- a/translations/ml/README.md +++ b/translations/ml/README.md @@ -10,169 +10,169 @@ ### 🌐 ബഹുഭാഷാ പിന്തുണ -#### GitHub ആക്ഷൻ വഴി പിന്തുണ (സ്വയം ആരാഞ്ഞ് എപ്പോഴും അപ്ഡേറ്റ് ചെയ്യുന്നതാണ്) +#### GitHub ആക്ടനിലൂടെ പിന്തുണ (സ്വയമേവയും എല്ലായ്പ്പോഴും പുതുക്കപ്പെട്ടും) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](./README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](./README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **പ്രാദേശികമായി ക്ലോൺ ചെയ്യാൻ ആഗ്രഹിക്കുന്നവർക്ക്?** +> **അതോ പ്രാദേശികമായി ക്ലോൺ ചെയ്യണമെന്നോ?** > -> ഈ റിപോസിറ്ററിയിൽ 50ത്തിലധികം ഭാഷകൾ ഉൾപ്പെടുന്ന തർജ്ജമകൾ ഉണ്ടാകുന്നതുകൊണ്ട് ഡൗൺലോഡ് വലുതാകും. തർജ്മകൾ ഇല്ലാതെ ക്ലോൺ ചെയ്യാൻ sparse checkout ഉപയോഗിക്കുക: +> ഈ റീപ്പോസിറ്ററിയിൽ 50-ത്തിലധികം ഭാഷാ പരിഭാഷകൾ ഉൾപ്പെടുത്തിയിട്ടുള്ളതിനാൽ ഡൗൺലോഡ് വലുതാകുന്നു. പരിഭാഷകൾ ഇല്ലാതെ ക്ലോൺ ചെയ്യാൻ sparse checkout ഉപയോഗിക്കുക: > -> **ബാഷ് / മാക്‌ഓഎസ് / ലിനക്ഷ്:** +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` > -> **സിഎംഡി (വിൻഡോസ്):** +> **CMD (Windows):** > ```cmd > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> ഇതിലൂടെ നിങ്ങൾക്ക് കോഴ്‌സ് പൂർത്തിയാക്കാൻ ആവശ്യമായ എല്ലാ ഫയലുകളും വേഗത്തിലുള്ള ഡൗൺലോഡുമായി കിട്ടുമെന്ന് ഉറപ്പാക്കാം. +> ഇത് കോഴ്സ് പൂർത്തിയാക്കാൻ വേണ്ടിയുള്ള എല്ലാ സാധനങ്ങളും വളരെ വേഗം ഡൗൺലോഡ് ചെയ്യാൻ സഹായിക്കും. -#### ഞങ്ങളുടെ കമ്മ്യൂണിറ്റിയിലേക്ക് ചേരുക +#### നമ്മുടെ കമ്മ്യൂണിറ്റിയിൽ ചേരുക [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -നിങ്ങൾക്ക് AI ൽ പഠിക്കാൻ ഞങ്ങൾ നടത്തുന്ന Discord സീരീസിൽ പങ്കെടുത്ത് കൂടുതൽ അറിയാൻ [Learn with AI Series](https://aka.ms/learnwithai/discord) സന്ദർശിക്കൂ, 2025 സെപ്റ്റംബർ 18 - 30. GitHub Copilot ഉപയോഗിച്ച് ഡാറ്റ സയൻസിനുള്ള വഴிகள் നിങ്ങൾക്ക് ലഭിക്കും. +നമുക്ക് Discord-ൽ ഒരു learn with AI സീരിസ് തുടരുകയാണ്, കൂടുതൽ പഠിക്കാനും ഞങ്ങളോടൊപ്പം ചേരാനും [Learn with AI Series](https://aka.ms/learnwithai/discord) സന്ദർശിക്കുക 2025 സെപ്റ്റംബർ 18 മുതൽ 30 വരെ. GitHub Copilot ഡാറ്റാ സയൻസിനായി ഉപയോഗിക്കുന്ന ടിപ്സും ട്രിക്കുകളും ലഭിക്കും. ![Learn with AI series](../../translated_images/ml/3.9b58fd8d6c373c20.webp) -# ആരംഭക്കാർക്കായി മെഷീൻ ലേണിംഗ് - ഒരു പാഠ്യക്രമം +# തുടക്കക്കാർക്കുള്ള മെഷീൻ ലേണിംഗ് - ഒരു പാഠ്യപദ്ധതി -> 🌍 ലോക സംസ്കാരങ്ങളിലൂടെ നമ്മൾ മെഷീൻ ലേണിംഗ് പഠിക്കുന്നതിൽ ഒരു ലോകയാത്ര 🌍 +> 🌍 ലോകം മുഴുവൻ നിന്നുമുള്ള സംസ്കാരങ്ങളിലൂടെ മെഷീൻ ലേണിംഗ് അന്വേഷിക്കുമ്പോൾ ലോകത്തൂടെ സഞ്ചരിക്കുക 🌍 -Microsoftയിലെ Cloud Advocates നിങ്ങൾക്കായി 12 ആഴ്‌ച്ചകളുള്ള, 26 പാഠങ്ങളുള്ള മെഷീൻ ലേണിംഗ് പാഠ്യക്രമം ഒരുക്കിയിരിക്കുന്നു. ഈ പാഠ്യക്രമത്തിൽ നിങ്ങള്‍ അവയവപശ്ചാത്തല മെഷീൻ ലേണിംഗ് എന്നറിയാവുന്ന കാര്യം പഠിക്കും, പ്രധാനമായും Scikit-learn ലൈബ്രറി ഉപയോഗിച്ച്, ഡീപ്പ് ലേണിംഗ് ഒഴിവാക്കി, അതിനെ കുറിച്ച് ഞങ്ങളുടെ [എഐ ആരംഭക്കാർക്കായി പാഠ്യക്രമം](https://aka.ms/ai4beginners) ഉൾക്കൊള്ളുന്നു. ഈ പാഠങ്ങളോടൊപ്പം ഞങ്ങളുടെ ['ഡാറ്റ സയൻസ് ആരംഭക്കാർക്കായി' പാഠ്യക്രമം](https://aka.ms/ds4beginners) കൂടെ പഠിക്കാം. +Microsoft ലെ ക്ലൗഡ് അഡ്വക്കേറ്റ്‌സുകൾ 12 ആഴ്ചകളുള്ള, 26 പാഠങ്ങളുള്ള **Machine Learning** പാഠ്യപദ്ധതിയുമായി എത്തി. ഈ പാഠ്യപദ്ധതിയിൽ നിങ്ങൾക്ക് ചിലപ്പോഴൊക്കെ പറഞ്ഞുതരുന്ന **പാരമ്പര്യ മെഷീൻ ലേണിംഗ്** എന്താണെന്ന് അറിയാം, പ്രധാനമായും Scikit-learn ലൈബ്രറി ഉപയോഗിച്ച് പഠിക്കും, ഡീപ്പ് ലേണിംഗ് ഒഴിവാക്കും, അത് നമ്മുടെ [AI for Beginners' curriculum](https://aka.ms/ai4beginners) ൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഈ പാഠങ്ങൾ ഞങ്ങളുടെ ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) യുമായി കൂടെ കൂട്ടി പാരായണം ചെയ്യുക. -ലോകത്തിന്റെ വിവിധ ഭാഗങ്ങളിൽ നിന്നുള്ള ഡാറ്റ പരിഗണിച്ച് ഈ ക്ലാസിക് സാങ്കേതിക വിദ്യകൾ ഞങ്ങളോടൊപ്പം പഠിക്കൂ. ഓരോ പാഠത്തിനും മുൻകൂട്ടി-ശ്രമ, പാഠ ശേഷമുള്ള ക്വിസുകൾ, നിർദേശിക്കൽ, പരിഹാരം, അസൈൻമെന്റ് എന്നിവ ഉൾപ്പെടുന്നു. ഞങ്ങളുടെ പ്രോജക്ട് അടിസ്ഥാനമന്ത്രി പഠനരീതി നിങ്ങൾക്ക് നിർമ്മിക്കുമ്പോൾ പഠിക്കാനുള്ള സൗകര്യം നൽകുന്നു, പുതിയ കഴിവുകൾ പൊറുതിക്കപ്പെടുന്നതിനുള്ള തെളിയിച്ച മാർഗമാണ്. +ലോകത്തിനാകമാനം നിന്നുള്ള ഡാറ്റയിൽ ഈ പാരമ്പര്യ സാങ്കേതിക വിദ്യകൾ പ്രയോഗിക്കുമ്പോൾ നമ്മുക്ക് അനുഭാവം കൂടും. ഓരോ പാഠത്തിനും മുൻപും ശേഷവും ക്വിസ് ഉണ്ടായിരിക്കും, എഴുത്തുപ്രകാരം നിർദേശങ്ങൾ, പരിഹാരങ്ങൾ, അസൈൻമെന്റ് എന്നിവയും ഉണ്ടാകും. നമ്മുടെ പ്രോജക്റ്റ്-ആധാരിത പഠനരീതിയും നിങ്ങൾക്ക് നിർമ്മിക്കുമ്പോഴും പഠിക്കുന്നതിനായ ഒരു തെളിവാണ്. -**✍️ നമ്മുടെ എഴുത്തുകാരെ ഹൃദയം നിറഞ്ഞ നന്ദി**: Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu, 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 +**🙏 പ്രത്യേക നന്ദി 🙏 മൈക്രോസോഫ്റ്റ് സ്റ്റുഡന്റ് അംബാസഡർ ആയ ലേഖകര്ക്ക്, പരിഷ്കാരകർക്ക്, ഉള്ളടക്ക പ്രവർത്തകർക്കും**, പ്രത്യേകിച്ച് റിഷിത് ദഗ്‌ലി, മുഹമ്മദ് സകിബ് ഖാൻ ഇൻ, റോഹൻ രാജ്, അലക്‌സാൻഡ്രു പേട്രസ്കു, അഭിഷേക് ജയസ്വൽ, നൗറിൻ ടബസുമ, ഇവാൻ സമുഇല, സ്നിഗ്ധ അഗർവാൾ -**🤩 Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, Vidushi Gupta - നമുക്ക് R പാഠങ്ങൾക്കായുള്ള പ്രത്യേക നന്ദി!** +**🤩 റ്റ്യുൾ പാഠങ്ങൾക്ക് Microsoft Student Ambassadors ആയ എറിക് വാർജാവ്, ജാസ്ലീൻ സോന്ധി, വിദുഷി ഗുപ്തയ്കും പ്രത്യേക നന്ദി!** -# ആരംഭിക്കൽ +# തുടങ്ങാൻ -ഈ ചുവടുവയ്പ്പുകൾ പിന്തുടരുക: -1. **റിപോസിറ്ററി ഫോർക്ക് ചെയ്യുക**: ഈ പേജിന്റെ മുകളിൽ വലത് കോണിലെ "Fork" ബട്ടൺ ക്ലിക്ക് ചെയ്യുക. -2. **റിപോസിറ്ററി ക്ലോൺ ചെയ്യുക**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +ഈ ഘട്ടങ്ങൾ പാലിക്കുക: +1. **റീപ്പോസിറ്ററി ഫോർക്കുചെയ്യുക**: ഈ പേജിൻറെ മുകളിൽ വലതു ഭാഗത്ത് ഉള്ള "Fork" ബട്ടൺ ക്ലിക്കുചെയ്യുക. +2. **റീപ്പോസിറ്ററി ക്ലോൺ ചെയ്യുക**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [ഈ കോഴ്‌സിനുള്ള എല്ലാ അധിക വിഭവങ്ങളും Microsoft Learn ശേഖരത്തിൽ കാണുക](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [ഈ കോഴ്സിനുള്ള എല്ലാ അധിക വസ്തുക്കളും Microsoft Learn ശേഖരത്തിൽ കാണാം](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **സഹായം വേണമോ?** ഇൻസ്റ്റാളേഷൻ, ക്രമീകരണം, പാഠങ്ങൾ റൺ ചെയ്യൽ എന്നിവയുമായി ബന്ധപ്പെട്ട സാധാരണ പ്രശ്നങ്ങൾക്ക് [തൊഴിലാളി കൈപുസ്തകം](TROUBLESHOOTING.md) പരിശോധിക്കുക. +> 🔧 **സഹായം വേണോ?** ഇൻസ്റ്റലേഷൻ, സജ്ജീകരണം, പാഠങ്ങൾ നടത്തലിൽ സാധാരണ പ്രശ്നങ്ങൾക്ക് പരിഹാരങ്ങൾ കാണാൻ [Troubleshooting Guide](TROUBLESHOOTING.md) കാണുക. +**[വിദ്യാർത്ഥികൾ](https://aka.ms/student-page)**, ഈ പാഠ്യപദ്ധതി ഉപയോഗിക്കാൻ, മുഴുവൻ റീപ്പോ നിങ്ങളുടെ GitHub അക്കൗണ്ടിലേക്ക് ഫോർക്കുചെയ്യൂവും കോട്ടിപ്പോരവും ഒറ്റക്ക് അല്ലെങ്കിൽ കൂട്ടുകാർക്കൊപ്പം പൂർത്തിയാക്കുക: -**[സർവ്വത്ര വിദ്യാർത്ഥികൾ](https://aka.ms/student-page)**, ഈ പാഠ്യക്രമം ഉപയോഗിക്കാൻ, റിപോ മുഴുവനായി നിങ്ങളുടെ GitHub അക്കൗണ്ടിലേക്ക് ഫോർക്ക് ചെയ്ത് സ്വയം അല്ലെങ്കിൽ കൂട്ടായ്മയോടെ ആസൂത്രണം പൂർത്തിയാക്കുക: - -- പ്രീ-ലെക്ചർ ക്വിസ് നിറയ്ക്കുക. -- പാഠം വായിച്ച് പ്രവർത്തനങ്ങൾ പൂർത്തിയാക്കുക, ഓരോ അറിവ് പരിശോധിക്കുന്നിടത്തും ഒന്ന് നിൽക്കുകയും ചിന്തിക്കുകയും ചെയ്യുക. -- പരിഹാര കോഡ് ഓടിക്കുന്നതിന് പകരം പാഠം മനസ്സിലാക്കി പ്രോജക്ടുകൾ നിർമ്മിക്കാൻ ശ്രമിക്കുക; എന്നാൽ പരിഹാര കോഡ് ഓരോ പ്രോജക്ട് അധിഷ്ഠിത പാഠത്തിന്റെയും `/solution` ഫോൾഡറുകളിൽ ലഭ്യമാണ്. -- പോസ്റ്റ്-ലെക്ചർ ക്വിസ് നൽകുക. +- പ്രീ-ലെക്ചർ ക്വിസ് തുടങ്ങുക. +- ലെക്ചർ വായിച്ച് പ്രവർത്തനങ്ങൾ പൂർത്തിയാക്കുക, ഓരോ അറിവ് പരിശോധിച്ചും ചിന്തിച്ച്. +- പരിഹാരകോഡ് റൺ ചെയ്യുന്നതിന് പകരം പാഠങ്ങൾ മനസ്സിലാക്കി പ്രോജക്റ്റുകൾ നിർമ്മിക്കാൻ ശ്രമിക്കുക; എന്നാൽ ഓരോ പ്രോജക്റ്റിനും‍റെ `/solution` ഫോൾഡറിൽ പരിഹാരകോഡ് ലഭ്യമാണ്. +- പോസ്റ്റ്-ലെക്ചർ ക്വിസ് എടുക്കുക. - ചലഞ്ച് പൂർത്തിയാക്കുക. - അസൈൻമെന്റ് പൂർത്തിയാക്കുക. -- ഒരു പാഠ സമൂഹം പൂർത്തിയാക്കിയശേഷം, [ചർച്ച ബോർഡ്](https://github.com/microsoft/ML-For-Beginners/discussions) സന്ദർശിച്ച് അനുയോജ്യമായ PAT റൂബ്രിക് പൂരിപ്പിച്ച് "ലേണ്അව්ട്ട് ലൗഡ്" ചെയ്യുക. PAT (പ്രോഗ്രസ് അസ്സസ്‌മെന്റ് ടൂൾ) ഒരു റൂബ്രിക് ആണ്, നിങ്ങൾക്ക് പഠനങ്ങൾ മെച്ചപ്പെടുത്താൻ സഹായിക്കുന്നതാണ്. മറ്റു PAT-കളിലേക്കും പ്രതികരിക്കാനാകും, ഒത്തുകൂടി പഠിക്കാം. +- ഒരു പാഠ ഘടകം പൂർത്തിയാക്കിയശേഷം, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) സന്ദർശിച്ച് അനുയോജ്യമായ PAT റൂബ്രിക് പൂരിപ്പിച്ച് "learn out loud" ചെയ്യുക. 'PAT' അഥവാ പ്രോഗ്രസ് അസസ്മെന്റ ടൂള്‍ പഠനത്തിന് സഹായിക്കുന്ന ഒരു റൂബ്രികാണ്. മറ്റുള്ള PAT-കളിലും പ്രതികരിക്കുക, ഒരുമിച്ച് പഠിക്കാം. -> കൂടുതല്‍ പഠനത്തിനായി, ഈ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) മോഡ്യൂളുകളും ലേണിംഗ് പാത്തുകളും പിന്തുടരാൻ ഞങ്ങൾ ശുപാർശ ചെയ്യുന്നു. +> കൂടുതൽ പഠനത്തിനായി, ഈ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) മോഡ്യൂളുകളും പഠന പാതകളും പിന്തുടരാൻ ഞങ്ങൾ ശിപാർശ ചെയ്യുന്നു. -**അദ്ധ്യാപകർ**, ഈ പാഠ്യക്രമം ഉപയോഗിക്കുന്നതിന് ഞങ്ങൾ [ചടങ്ങുകൾ](for-teachers.md) ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. +**അധ്യാപകർ**, ഈ പാഠ്യപദ്ധതി എങ്ങനെ ഉപയോഗിക്കാമെന്ന് കുറച്ച് നിർദ്ദേശങ്ങൾ [for-teachers.md](for-teachers.md) ನಲ್ಲಿകാണാം. --- -## വിഡിയോ നടത്തിപ്പുകൾ +## വീഡിയോകളിലൂടെ വഴി കാണിക്കല്‍ -ചില പാഠങ്ങൾ സ്വല്പ ദൈർഘ്യമുള്ള വിഡിയോ രൂപത്തിലാണ് ലഭിക്കുന്നത്. നിങ്ങൾക്ക് ഈ എല്ലാം പാഠങ്ങളിൽ ലൈൻ ആയി കാണാമോ, അല്ലെങ്കിൽ [Microsoft Developer YouTube ചാനലിലെ ML for Beginners പ്ലേലിസ്റ്റിൽ](https://aka.ms/ml-beginners-videos) താഴെയുള്ള ചിത്രത്തിൽ ക്ലിക്ക് ചെയ്ത് ലഭിക്കാം. +ചില പാഠങ്ങൾ ചെറുതായി വീഡിയോകളാണ്. പാഠങ്ങളിൽ തന്നെ ഇവ കാണാനാകും, അല്ലെങ്കിൽ [ML for Beginners YouTube പ്ലേലിസ്റ്റിൽ](https://aka.ms/ml-beginners-videos) വീക്ഷിക്കാം താഴെയുള്ള ചിത്രത്തിൽ ക്ലിക്കുചെയ്യുകയോ. [![ML for beginners banner](../../translated_images/ml/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## ടീം കാണുക +## ടീം അംഗങ്ങളെ പരിചയപ്പെടുക [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**ഗിഫ്** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**ഗിഫ്** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) tarafından -> 🎥 ഈ ചിത്രത്തിൽ ക്ലിക്ക് ചെയ്ത് പ്രോജക്ടും സൃഷ്ടിച്ചവരും സംബന്ധിച്ച വീഡിയോ കാണുക! +> 🎥 പന്തകം കുറിക്കുന്നവരും ഈ പ്രൊജക്റ്റും നിർമിച്ചവരും ഉള്ള വീഡിയോ കാണാൻ മേൽചിത്രത്തിൽ ക്ലിക്കുചെയ്യുക! --- -## പഠനരീതി +## പഠനരീതികൾ -ഈ പാഠ്യക്രമം നിർമ്മിക്കുന്നപ്പോൾ ഞങ്ങൾ രണ്ട് പ്രധാനം പരിഗണനകൾ സ്വീകരിച്ചു: പ്രോജക്ട് അടിസ്ഥാനമാക്കിയുള്ള കൈകാര്യം ഉറപ്പാക്കുക, കൂടാതെ తరവാറുള്ള ക്വിസുകൾ ഉൾപ്പെടുത്തുക. കൂടാതെ, ഇതിന് ഒരു പൊതു **തീം** നൽകിയത് ഏകീകരണത്തിനായി. +ഈ പാഠ്യപദ്ധതി നിർമ്മിക്കുമ്പോൾ കാൽ കുറ്റികളായി രണ്ട് അക്കാദമിക സിദ്ധാന്തങ്ങൾ തിരഞ്ഞെടുത്തു: ഹാൻഡ്‌സ് ഓൺ **പ്രോജക്റ്റ് ആധാരിതം**, കൂടാതെ **സാധാരണയായി ക്വിസുകൾ** ഉൾപ്പെടുത്തുക. കൂടാതെ, ഈ പാഠ്യപദ്ധതിക്ക് ഒരു സാധാരണമുള്ള **തീം** എല്ലാം ചേർത്ത് കൂട്ടാറുണ്ട്. -ഉള്ളടക്കം പ്രോജക്ടുകളുമായി ചേർന്നിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുന്നത്, വിദ്യാർത്ഥികൾക്ക് ഉല്ലാസകരമായ അനുഭവമുണ്ടാക്കുകയും ആശയങ്ങളുടെ പിന്തുടർച്ച മെച്ചപ്പെടുത്തുകയും ചെയ്യും. ഒരു ക്ലാസിനുമുൻപ് നടത്തുന്ന ഒരു ചെറിയ മത്സരം പഠന ദിശ നിര്‍ത്തുന്നു; ക്ലാസിനു ശേഷം രണ്ടാം മത്സരം അറിവ് ഉറപ്പാക്കുന്നു. ഈ പാഠ്യക്രമം സൗകര്യപ്രദവും രസകരവുമാണ്, മുഴുവനായി ಅಥವಾ ഭാഗികമായി പഠിക്കാവുന്നതാണ്. പ്രോജക്ടുകൾ ചെറിയവയിൽ തുടങ്ങുകയും 12 ആഴ്ചകളിൽ പതിവുപോലെ സങ്കീര്‍ണ്ണമായിത്തീരും. പാഠ്യക്രമം മെഷീൻ ലേണിംഗിന്റെ യാഥാർത്ഥ്യ പ്രയോഗങ്ങളെ കുറിച്ചുള്ള ഒരു പോസ്റ്റ്‌സ്‌ക്രിപ്റ്റും ഉൾക്കൊള്ളിക്കുന്നു, ഇത് കൂടുതൽ ക്രഡിറ്റ് ക്ക് ഉപയോഗിക്കാവുന്നതും ചർച്ചയ്ക്കായി അടിസ്ഥാനമായി ഉപയോഗിക്കാവുന്നതും ആകാം. +ഉള്ളടക്കം പ്രോജക്റ്റുകളുമായി അനുബന്ധിപ്പിച്ചു പഠനം ആകർഷകവും കർശനമാക്കുന്നു. ക്ലാസ് ആരംഭിക്കുന്ന മുന്നോടിയായി കുറഞ്ഞ സമ്മർദം ഉള്ള ഒരു ക്വിസ് വിദ്യാർത്ഥിയുടെ പഠന ഉദ്ദേശ്യം ക്രിസ്റ്റലൈസ് ചെയ്യുന്നു, ക്ലാസ് കഴിഞ്ഞ് രണ്ടാമത് ക്വിസ് മെച്ചപ്പെട്ട അറിവ് ഉറപ്പാക്കുന്നു. ഈ പാഠ്യപദ്ധതി സ്ഥിരതയുള്ളതും രസകരവുമായിട്ടാണ് രൂപകല്പന ചെയ്തിരിക്കുന്നത്, മുഴുവനോ ഭാഗികമായോ സ്വീകരിക്കാവുന്നതാണ്. 12- ആഴ്ചകളിലായി പ്രോജക്റ്റുകൾ ചെറിയതായും ശേഷം കൂടുതൽ സങ്കീർണ്ണമായിത്തീരും. ഈ പാഠ്യപദ്ധതിക്ക് മെഷീൻ ലേണിങ്ങിന്റെ യാഥാർത്ഥ്യ പ്രയോഗങ്ങൾക്കുള്ള പോസ്റ്റ്‌സ്‌ക്രിപ്റ്റും ഉൾപ്പെടുന്നു, അത് അധിക മാർക്ക് ലഭിക്കാനോ ചർച്ചയ്ക്കൊരു അധിഷ്ഠാനമായി ഉപയോഗിക്കാനോ കഴിയും. -> നമ്മുടെ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), [Troubleshooting](TROUBLESHOOTING.md) മാർഗനിർദേശങ്ങൾ കാണുക. നിങ്ങളുടെ നിർമാണപരമായ അഭിപ്രായങ്ങൾ സ്വാഗതം ചെയ്യുന്നു! +> നമ്മുടെ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), [Troubleshooting](TROUBLESHOOTING.md) മാർഗ്ഗനിർദേശങ്ങൾ കാണുക. നിങ്ങളുടെ നിർമ്മാണപരമായ പ്രതികരണങ്ങൾ ഞങ്ങൾ സ്വാഗതം ചെയ്യുന്നു! -## ഓരോ പാഠവും ഉൾപ്പെടുന്നതെല്ലാം +## ഓരോ പാഠത്തിലും ഉൾപ്പെടുന്നു -- എറിഞ്ഞെടുക്കാനുള്ള സ്കെച്ച്നോട്ട് (ഐച്ഛികം) -- ഐച്ഛിക സഹകരിക്കുന്ന വീഡിയോ -- വിഡിയോ നടത്തിപ്പ് (ചില പാഠങ്ങൾക്കു മാത്രം) -- [പ്രീ-ലെക്ചർ വോർംഅപ് ക്വിസ്](https://ff-quizzes.netlify.app/en/ml/) -- എഴുതി തരുമാത്രം പാഠം -- പ്രോജക്ട് അധിഷ്ഠിത പാഠങ്ങൾക്കായി, പ്രോജക്ട് നിർമ്മിക്കുന്നതിന് ടിപ്പുകൾ ചുവടുകൾ -- അറിവ് പരിശോധിക്കലുകൾ +- ഐഷ്ടിക സ്‌കെച്ച്‌ നോട്ട് +- ഐഷ്ടിക സഹായവീഡിയോ +- വീഡിയോകളിലൂടെ വഴി കാണിക്കല്‍ (ചില പാഠങ്ങൾക്ക് മാത്രം) +- [പ്രി-ലെക്ചർ വാംപ് ക്വിസ്](https://ff-quizzes.netlify.app/en/ml/) +- എഴുത്തുപാഠം +- പ്രോജക്റ്റ്-ആധാരിത പാഠങ്ങള്‍ക്ക്, പ്രോജക്റ്റ് നിർമ്മാണത്തിനുള്ള ഘട്ടംഘട്ടമായ മാർഗ്ഗനിർദ്ദേശങ്ങൾ +- അറിവ് പരിശോധിക്കൽ - ഒരു ചലഞ്ച് -- സഹായകമായ വായന +- സഹായക വായന - അസൈൻമെന്റ് - [പോസ്റ്റ്-ലെക്ചർ ക്വിസ്](https://ff-quizzes.netlify.app/en/ml/) - -> **ഭാഷകൾക്കുറിച്ച് ഒരു കുറിപ്പ്**: ഈ പാഠങ്ങൾ പ്രധാനമായും Python ൽ എഴുതപ്പെട്ടിരിക്കുന്നു, എന്നാൽ പലത് R ൽ ലഭ്യമാണ്. R പാഠം പൂർത്തിയാക്കാൻ, `/solution` ഫോൾഡറിൽ പോയി R പാഠങ്ങൾ അന്വേഷിക്കൂ. അവയിൽ `.rmd` എന്ന് ഒരു എക്സ്റ്റൻഷൻ ഉണ്ടു, ഇത് ഒരു **R മാർക്ക്ഡൗൺ** ഫയലിനെ സൂചിപ്പിക്കുന്നു; ഇതിൽ R അല്ലെങ്കിൽ മറ്റു ഭാഷകളിലെ `code chunks` നും PDF പോലുള്ള ഔട്ട്പുട്ടുകൾ എങ്ങനെ ഫോർമാറ്റ് ചെയ്യാമെന്ന് നിർദ്ദേശിക്കുന്ന `YAML ഹെഡർ` നും സംയോജിതമാണ്. അതിനാൽ, നിങ്ങളുടെ കോഡ്, അതിന്റെ ഔട്ട്‌പുട്ടുകൾ, നിങ്ങളുടെ ചിന്തകൾ എന്നിവ മറൈക്കക്കുള്ള മികച്ച ഒരു രചനാരീതിയാണ് ഇത്. കൂടാതെ, R മാർക്ക്ഡൗൺ ഡോക്യുമെന്റുകൾ PDF, HTML, അല്ലെങ്കിൽ Word പോലുള്ള ഔട്ട്പുട്ട് ഫോർമാറ്റുകളിൽ മാറ്റാവുന്നതാണ്. -> **ക്വിസുകൾക്കെ 관한 ഒരു കുറിപ്പ്**: സംഖ്യ 52 എണ്ണം, ഓരോന്നിലും മൂന്ന് ചോദ്യങ്ങളുള്ള ക്വിസുകൾ എല്ലാമുള്ളത് [Quiz App ഫോൾഡറിൽ](../../quiz-app). ക്വിസുകൾ പാഠങ്ങളിൽനിന്ന് ലിങ്കുചെയ്യപ്പെട്ടിട്ടുണ്ടെങ്കിലും ക്വിസ് ആപ്പ് പ്രാദേശികമായി ഓടിക്കാം; പ്രാദേശികമായി ഹോസ്റ്റ് ചെയ്യാനോ Azure ലേക്ക് ഡിപ്പ്ലോയ്ചെയ്യാനോ `quiz-app` ഫോൾഡറിൽ നിർദ്ദേശങ്ങൾ പാലിക്കുക. - -| പാഠം നമ്പർ | വിഷയം | പാഠം ഗ്രൂപ്പിംഗ് | പഠന ലക്ഷ്യങ്ങൾ | ലിങ്കുചെയ്ത പാഠം | എഴുത്തുകാരൻ | -| :---------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------: | -| 01 | മെഷീൻ ലേണിംഗിലേക്ക് പരിചയം | [Introduction](1-Introduction/README.md) | മെഷീൻ ലേണിംഗിന്റെ അടിസ്ഥാന ആശയങ്ങൾ പഠിക്കുക | [Lesson](1-Introduction/1-intro-to-ML/README.md) | മുഹമ്മദ് | -| 02 | മെഷീൻ ലേണിംഗിന്റെ ചരിത്രം | [Introduction](1-Introduction/README.md) | ഈ മേഖലയെ പൊരുത്തപ്പെടുത്തുന്ന ചരിത്രം മനസിലാക്കുക | [Lesson](1-Introduction/2-history-of-ML/README.md) | ജെൻ & ആമി | -| 03 | നീതിയും മെഷീൻ ലേണിംഗും | [Introduction](1-Introduction/README.md) | ML മോഡലുകൾ രൂപീകരിക്കുമ്പോൾ പരിഗണിക്കേണ്ട നീതിയുമായി ബന്ധപ്പെട്ട ദാർശനിക പ്രശ്നങ്ങൾ എന്തെല്ലാമാണ്? | [Lesson](1-Introduction/3-fairness/README.md) | ടോമോമി | -| 04 | മെഷീൻ ലേണിംഗ് സാങ്കേതികവിദ്യകൾ | [Introduction](1-Introduction/README.md) | ML ഗവേഷകർ ML മോഡലുകൾ സൃഷ്ടിക്കാൻ ഉപയോഗിക്കുന്ന സാങ്കേതികവिधികൾ | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | ക്രിസ് & ജെൻ | -| 05 | റെഗ്രഷൻ പരിചയം | [Regression](2-Regression/README.md) | Python, Scikit-learn ഉപയോഗിച്ച് റെഗ്രഷൻ മോഡലുകൾ ആരംഭിക്കുക | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ജെൻ • എറിക് വഞ്ജാവ് | -| 06 | നോർത്ത് അമേരിക്കൻ പമ്പ്കിൻ വിലകൾ 🎃 | [Regression](2-Regression/README.md) | ML-ക്കായി ഡാറ്റ വിസ്വലൈസ് ചെയ്ത് ശുചിത്വം വരുത്തുക | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ജെൻ • എറിക് വഞ്ജാവ് | -| 07 | നോർത്ത് അമേരിക്കൻ പമ്പ്കിൻ വിലകൾ 🎃 | [Regression](2-Regression/README.md) | രേഖീയവും പോളിനോമിയൽ റെഗ്രഷൻ മോഡലുകളും നിർമ്മിക്കുക | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ജെൻ & ഡിമിത്രി • എറിക് വഞ്ജാവ് | -| 08 | നോർത്ത് അമേരിക്കൻ പമ്പ്കിൻ വിലകൾ 🎃 | [Regression](2-Regression/README.md) | ലോജിസ്റ്റിക് റെഗ്രഷൻ മോഡൽ നിർമ്മിക്കുക | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ജെൻ • എറിക് വഞ്ജാവ് | -| 09 | ഒരു വെബ് ആപ്പ് 🔌 | [Web App](3-Web-App/README.md) | പരിശീലിപ്പിച്ച മോഡൽ ഉപയോഗിച്ച് ഒരു വെബ് ആപ്പ് നിർമ്മിക്കുക | [Python](3-Web-App/1-Web-App/README.md) | ജെൻ | -| 10 | ക്ലാസിഫിക്കേഷനിലേക്ക് പരിചയം | [Classification](4-Classification/README.md) | ഡാറ്റ ശുചീകരണം, തയ്യാറാക്കൽ, വിസ്വലൈസ്; ക്ലാസിഫിക്കേഷനിലേക്ക് പരിചയം | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ജെൻ & കാസ്സി • എറിക് വഞ്ജാവ് | -| 11 | രുചികരമായ ഏഷ്യൻ, ഇന്ത്യൻ വിഭവങ്ങൾ 🍜 | [Classification](4-Classification/README.md) | ക്ലാസിഫയറുകളെ പരിചയപ്പെടുക | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ജെൻ & കാസ്സി • എറിക് വഞ്ജാവ് | -| 12 | രുചികരമായ ഏഷ്യൻ, ഇന്ത്യൻ വിഭവങ്ങൾ 🍜 | [Classification](4-Classification/README.md) | കൂടുതൽ ക്ലാസിഫയറുകൾ | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ജെൻ & കാസ്സി • എറിക് വഞ്ജാവ് | -| 13 | രുചികരമായ ഏഷ്യൻ, ഇന്ത്യൻ വിഭവങ്ങൾ 🍜 | [Classification](4-Classification/README.md) | നിങ്ങളുടെ മോഡൽ ഉപയോഗിച്ച് ഒരു ശിപാർശക വെബ് ആപ്പ് നിർമ്മിക്കുക | [Python](4-Classification/4-Applied/README.md) | ജെൻ | -| 14 | ക്ലസ്റ്ററിങ്ങിലേക്ക് പരിചയം | [Clustering](5-Clustering/README.md) | ഡാറ്റ ശുചീകരണം, തയ്യാറാക്കൽ, വിസ്വലൈസ്; ക്ലസ്റ്ററിങ്ങിലേക്ക് പരിചയം | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ജെൻ • എറിക് വഞ്ജാവ് | -| 15 | നൈജീരിയൻ സംഗീതാശയങളുടെ പര്യവേക്ഷണം 🎧 | [Clustering](5-Clustering/README.md) | K-മീൻസ് ക്ലസ്റ്ററിങ്ങ് രീതി പരീക്ഷിക്കുക | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ജെൻ • എറിക് വഞ്ജാവ് | -| 16 | സ്വാഭാവിക ഭാഷാ പ്രോസസ്സിങ്ങിലേക്ക് പരിചയം ☕️ | [Natural language processing](6-NLP/README.md) | ലളിതമായ ബോട്ട് നിർമ്മിച്ച് NLP അടിസ്ഥാനങ്ങൾ പഠിക്കുക | [Python](6-NLP/1-Introduction-to-NLP/README.md) | സ്റ്റെഫൻ | -| 17 | സാധാരണ NLP പ്രവർത്തനങ്ങൾ ☕️ | [Natural language processing](6-NLP/README.md) | ഭാഷാ ഘടനകളെ കൈകാര്യം ചെയ്യുമ്പോൾ ആവശ്യമായ സാധാരണ പ്രവർത്തനങ്ങൾ മനസ്സിലാക്കുക | [Python](6-NLP/2-Tasks/README.md) | സ്റ്റെഫൻ | -| 18 | വിവർത്തനവും ആത്മീയ വിശകലനവും ♥️ | [Natural language processing](6-NLP/README.md) | ജെയ്ൻ ഓസ്റ്റ്ന് ഉപയോഗിച്ച് വിവർത്തനവും ആത്മീയ വിശകലനവും | [Python](6-NLP/3-Translation-Sentiment/README.md) | സ്റ്റെഫൻ | -| 19 | യൂറോപ്യൻ പ്രണയ ഹോട്ടലുകൾ ♥️ | [Natural language processing](6-NLP/README.md) | ഹോട്ടൽ റിവ്യൂകളാൽ ആത്മീയ വിശകലനം 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | സ്റ്റെഫൻ | -| 20 | യൂറോപ്യൻ പ്രണയ ഹോട്ടലുകൾ ♥️ | [Natural language processing](6-NLP/README.md) | ഹോട്ടൽ റിവ്യൂകളാൽ ആത്മീയ വിശകലനം 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | സ്റ്റെഫൻ | -| 21 | ടൈം സീരീസ് പ്രവചനത്തിന് പരിചയം | [Time series](7-TimeSeries/README.md) | ടൈം സീരീസ് പ്രവചനത്തിൽ അടിസ്ഥാനപരിചയം | [Python](7-TimeSeries/1-Introduction/README.md) | ഫ്രാൻസെസ്ക | -| 22 | ⚡️ ലോക വൈദ്യുതി ഉപയോഗം ⚡️ - ARIMA ഉപയോഗിച്ചുള്ള ടൈം സീരീസ് പ്രവചന | [Time series](7-TimeSeries/README.md) | ARIMA ഉപയോഗിച്ച് ടൈം സീരീസ് പ്രവചന | [Python](7-TimeSeries/2-ARIMA/README.md) | ഫ്രാൻസെസ്ക | -| 23 | ⚡️ ലോക വൈദ്യുതി ഉപയോഗം ⚡️ - SVR ഉപയോഗിച്ചുള്ള ടൈിം സീരീസ് പ്രവചന | [Time series](7-TimeSeries/README.md) | Support Vector Regressor ഉപയോഗിച്ചുള്ള ടൈം സീരീസ് പ്രവചന | [Python](7-TimeSeries/3-SVR/README.md) | അനിർബൻ | -| 24 | ശക്തിവർദ്ധക പഠനത്തിലെ പരിചയം | [Reinforcement learning](8-Reinforcement/README.md) | Q-ലേണിംഗ് ഉപയോഗിച്ച് ശക്തിവർദ്ധക പഠനത്തിൽ പരിചയം | [Python](8-Reinforcement/1-QLearning/README.md) | ഡിമിത്രി | -| 25 | പീറ്ററിന് നീരാളൻ തടയാൻ സഹായിക്കുക! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | റീൻഫോർസ്‌മെന്റ് ലേണിംഗ് ജിം | [Python](8-Reinforcement/2-Gym/README.md) | ഡിമിത്രി | -| അപസ്മാരം | യഥാർത്ഥ ലോക ML സ്ഥിതികളും പ്രയോഗങ്ങളും | [ML in the Wild](9-Real-World/README.md) | ക്ലാസിക്കൽ ML-ന്റെ അത്ഭുതകരവും വെളിപ്പെടുത്തലുകളും നിറഞ്ഞ യഥാർത്ഥ ലോക പ്രയോഗങ്ങൾ | [Lesson](9-Real-World/1-Applications/README.md) | ടീം | -| അപസ്മാരം | RAI ഡാഷ്ബോർഡ് ഉപയോഗിച്ച് ML മോഡൽ ഡീബഗിങ് | [ML in the Wild](9-Real-World/README.md) | Machine Learning മോഡൽ ഡീബഗിംഗ് RAI ഡാഷ്ബോർഡ് ഘടകങ്ങൾ ഉപയോഗിച്ച് | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Рുത് യാകുബു | - -> [ഈ കോഴ്സിന് ആവശ്യമായ എല്ലാ അധിക സ്രോതസ്സുകളും Microsoft Learn ശേഖരത്തിൽ കണ്ടെത്തുക](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> **ഭാഷകൾക്കുറിച്ചുള്ള ഒരു കുറിപ്പ്**: ഈ പാഠങ്ങൾ പ്രധാനമായും പൈതോണിലുള്ളതാണ്, പക്ഷെ പലതും R-ലും ലഭ്യമാണ്. ഒരു R പാഠം പൂർത്തിയാക്കാൻ, `/solution` ഫോൾഡറിൽ പോയി R പാഠങ്ങൾ കണ്ടെത്തുക. അവക്ക് .rmd എക്സ്‌റ്റൻഷൻ ഉണ്ട്, ഇത് **R മാർക്ക്ഡൗൺ** ഫയലിനെയാണ് സൂചിപ്പിക്കുന്നത്, ഇത് `കോഡ് ചങ്കുകൾ` (R അല്ലെങ്കിൽ മറ്റ് ഭാഷകളിൽ) ഒപ്പം `YAML ഹെഡർ` (PDF പോലുള്ള output ഫോർമാറ്റുകൾ ക്രമീകരിക്കുന്നതിനുള്ള മാർഗ്ഗനിർദ്ദേശം) അടങ്ങിയ ഒരു `Markdown ഡോക്യുമെന്റ്` എളുപ്പത്തിൽ കലർത്തി നിർമ്മിച്ചിരിക്കുന്നു. അതിനാൽ, നിങ്ങൾക്ക് നിങ്ങളുടെ കോഡ്, അതിന്റെ output, നിങ്ങളുടെ ചിന്തകൾ എന്നിവ Markdown-ൽ എഴുതിക്കൊണ്ട് ചേർക്കാൻ കഴിയുന്ന ഒരു മികച്ച ഉള്ളടക്ക രചനാ ഘടന എന്ന നിലയിൽ ഇത് പ്രവർത്തിക്കുന്നു. കൂടാതെ, R Markdown ഡോക്യുമെന്റുകൾ PDF, HTML, അല്ലെങ്കിൽ Word പോലുള്ള output ഫോർമാറ്റുകളിലേക്ക് രൂപാന്തരപ്പെടാവുന്നതാണ്. + +> **ക്വിസുകൾക്കുറിച്ചുള്ള ഒരു കുറിപ്പ്**: എല്ലാ ക്വിസുകളും [Quiz App folder](../../quiz-app) ൽ അടങ്ങിയിട്ടുണ്ട്, ആകെ 52 ക്വിസുകൾ, ഓരോന്നിലും മൂന്ന് ചോദ്യങ്ങൾ ഉണ്ട്. അവ പാഠങ്ങളിൽ ലിങ്ക് ചെയ്തിട്ടുണ്ട്, പക്ഷെ ക്വിസ് ആപ്പ് ലൊക്കലിയായി പ്രവർത്തിപ്പിക്കാം; `quiz-app` ഫോൾഡറിൽ നൽകിയ നിർദ്ദേശങ്ങൾ പാലിച്ച് ലൊക്കൽ ഹോസ്റ്റ് ചെയ്യുകയോ Azure-ൽ ഡിപ്ലോയ് ചെയ്യുകയോ ചെയ്യുക. + +| പാഠ സംഖ്യ | വിഷയം | പാഠ ഗ്രൂപ്പിംഗ് | പഠന ലക്ഷ്യങ്ങൾ | ലിങ്ക് ചെയ്ത പാഠം | രചയിതാവ് | +| :-------: | :------------------------------------------------------------: | :-------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | +| 01 | മെഷീൻ ലേണിങ്ങിലേക്കുള്ള പരിചയം | [ಪರಿಚಯം](1-Introduction/README.md) | മെഷീൻ ലേണിങ്ങിന്റെ അടിസ്ഥാന ആശയങ്ങൾ പഠിക്കുക | [പാഠം](1-Introduction/1-intro-to-ML/README.md) | മുഹമ്മദ് | +| 02 | മെഷീൻ ലേണിങ്ങിന്റെ ചരിത്രം | [പരിചയം](1-Introduction/README.md) | ഈ മേഖലയെ പറ്റി ചരിത്രം മനസിലാക്കുക | [പാഠം](1-Introduction/2-history-of-ML/README.md) | ജെൻ ആൻഡ് എമി | +| 03 | നീതിമാന്മാരും മെഷീൻ ലേണിങ്ങും | [പരിചയം](1-Introduction/README.md) | നീതിമാനം സംബന്ധിച്ച വിശേഷപ്പെട്ട ദാർശനിക പ്രശ്നങ്ങൾ മെഷീൻ ലേണിംഗ് മോഡലുകൾ നിർമ്മിക്കുന്നപ്പോൾ ശ്രദ്ധിക്കേണ്ടതെന്താണെന്ന് പഠിക്കുക | [പാഠം](1-Introduction/3-fairness/README.md) | ടൊമോമി | +| 04 | മെഷീൻ ലേണിംഗിനുള്ള സാങ്കേതിക വിദ്യകൾ | [പരിചയം](1-Introduction/README.md) | മെഷീൻ ലേണിംഗ് ഗവേഷകർ മോഡലുകൾ നിർമ്മിക്കാൻ ഉപയോഗിക്കുന്ന സാങ്കേതിക വിദ്യകൾ എന്തെല്ലാമാണ്? | [പാഠം](1-Introduction/4-techniques-of-ML/README.md) | ക്രിസ് അൻഡ് ജെൻ | +| 05 | റിപ്പ്രഷനിലേക്ക് പരിചയം | [റിപ്രഷൻ](2-Regression/README.md) | Python, Scikit-learn ഉപയോഗിച്ച് റിപ്പ്രഷൻ മോഡലുകൾ ആരംഭിക്കുക | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ജെൻ • എറിക് വഞ്ചൗ | +| 06 | നോർത്ത് അമേരിക്കൻ പംപ്കിൻ വിലകൾ 🎃 | [റിപ്രഷൻ](2-Regression/README.md) | മെഷീൻ ലേണിങ്ങിനായി ഡാറ്റ കാണിക്കുക, ശുദ്ധീകരിക്കുക | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ജെൻ • എറിക് വഞ്ചൗ | +| 07 | നോർത്ത് അമേരിക്കൻ പംപ്കിൻ വിലകൾ 🎃 | [റിപ്രഷൻ](2-Regression/README.md) | ലിനിയർ, പോളിനോമിയൽ റിപ്പ്രഷൻ മോഡലുകൾ നിർമ്മിക്കുക | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ജെൻ, ഡിമിത്രി • എറിക് വഞ്ചൗ | +| 08 | നോർത്ത് അമേരിക്കൻ പംപ്കിൻ വിലകൾ 🎃 | [റിപ്രഷൻ](2-Regression/README.md) | ലോജിസ്റ്റിക് റിപ്പ്രഷൻ മോഡൽ നിർമ്മിക്കുക | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ജെൻ • എറിക് വഞ്ചൗ | +| 09 | ഒരു വെബ് ആപ്പ് 🔌 | [വെബ് ആപ്പ്](3-Web-App/README.md) | പരിശീലിപ്പിച്ച മോഡൽ ഉപയോഗിച്ച് ഒരു വെബ് ആപ്പ് നിർമ്മിക്കുക | [Python](3-Web-App/1-Web-App/README.md) | ജെൻ | +| 10 | ക്ലാസിഫിക്കേഷനിലേക്കുള്ള പരിചയം | [ക്ലാസിഫിക്കേഷൻ](4-Classification/README.md) | ഡാറ്റ ശുദ്ധിയാക്കൽ, തയ്യാറാക്കൽ, കണ്ടതിരിക്കൽ; ക്ലാസിഫിക്കേഷനിലേക്ക് പരിചയം | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ജെൻ, കാസ്സി • എറിക് വഞ്ചൗ | +| 11 | ആസ്യൻ, ഇന്ത്യന്‍ വിഭവങ്ങൾ 🍜 | [ക്ലാസിഫിക്കേഷൻ](4-Classification/README.md) | ക്ലാസിഫയർമാരെക്കുറിച്ച് പരിചയം | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ജെൻ, കാസ്സി • എറിക് വഞ്ചൗ | +| 12 | ആസ്യൻ, ഇന്ത്യന്‍ വിഭവങ്ങൾ 🍜 | [ക്ലാസിഫിക്കേഷൻ](4-Classification/README.md) | കൂടുതൽ ക്ലാസിഫയർമാർ | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ജെൻ, കാസ്സി • എറിക് വഞ്ചൗ | +| 13 | ആസ്യൻ, ഇന്ത്യന്‍ വിഭവങ്ങൾ 🍜 | [ക്ലാസിഫിക്കേഷൻ](4-Classification/README.md) | നിങ്ങളുടെ മോഡൽ ഉപയോഗിച്ച് ഒരു ശുപാർശ വെബ് ആപ്പ് നിർമ്മിക്കുക | [Python](4-Classification/4-Applied/README.md) | ജെൻ | +| 14 | ക്ലസ്റ്ററിങ്ങിലേക്കുള്ള പരിചയം | [ക്ലസ്റ്ററിംഗ്](5-Clustering/README.md) | ഡാറ്റ ശുദ്ധിയാക്കൽ, തയ്യാറാക്കൽ, കണ്ടതിരിക്കൽ; ക്ലസ്റ്ററിംഗിന്റെ പരിചയം | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ജെൻ • എറിക് വഞ്ചൗ | +| 15 | നൈജീരിയന്‍ സംഗീത രുചികൾ പരിശോധിക്കൽ 🎧 | [ക്ലസ്റ്ററിംഗ്](5-Clustering/README.md) | കെ-മീൻസ് ക്ലസ്റ്ററിംഗിപ്രക്രിയ പഠിക്കുക | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ജെൻ • എറിക് വഞ്ചൗ | +| 16 | പ്രകൃതി ഭാഷാ പ്രോസസ്സിംഗ് പരിചയം ☕️ | [പ്രകൃതി ഭാഷാ പ്രോസസ്സിംഗ്](6-NLP/README.md) | ഒരു ലളിതമായ ബോട്ട് നിർമ്മിച്ചുകൊണ്ട് NLPയുടെ അടിസ്ഥാനങ്ങൾ പഠിക്കുക | [Python](6-NLP/1-Introduction-to-NLP/README.md) | സ്റ്റീഫൻ | +| 17 | സാധാരണ NLP പ്രവൃത്തികൾ ☕️ | [പ്രകൃതി ഭാഷാ പ്രോസസ്സിംഗ്](6-NLP/README.md) | ഭാഷാപാരമ്പര്യ ഘടനകളുമായി പ്രവർത്തിക്കുന്നപ്പോൾ ആവശ്യമായ സാധാരണയുടെ കാര്യങ്ങൾ മനസിലാക്കുക | [Python](6-NLP/2-Tasks/README.md) | സ്റ്റീഫൻ | +| 18 | വിവർത്തനവും മനോഭാവ വിശകലനവും ♥️ | [പ്രകൃതി ഭാഷാ പ്രോസസ്സിംഗ്](6-NLP/README.md) | ജെയിന്‍ ഓസ്റ്റിനോടൊപ്പം വിവർത്തനവും മനോഭാവ വിശകലനവും | [Python](6-NLP/3-Translation-Sentiment/README.md) | സ്റ്റീഫൻ | +| 19 | യൂറോപ്പിലെ റോമാന്റിക് ഹോട്ടലുകൾ ♥️ | [പ്രകൃതി ഭാഷാ പ്രോസസ്സിംഗ്](6-NLP/README.md) | ഹോട്ടൽ പുനർവിമർശനങ്ങളിലെ മനോഭാവ വിശകലനം 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | സ്റ്റീഫൻ | +| 20 | യൂറോപ്പിലെ റോമാന്റിക് ഹോട്ടലുകൾ ♥️ | [പ്രകൃതി ഭാഷാ പ്രോസസ്സിംഗ്](6-NLP/README.md) | ഹോട്ടൽ പുനർവിമർശനങ്ങളിലെ മനോഭാവ വിശകലനം 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | സ്റ്റീഫൻ | +| 21 | ടൈം സീരീസ് ഫോറ്കാസ്റ്റിങ്ങിലേക്കുള്ള പരിചയം | [ടൈം സീരീസ്](7-TimeSeries/README.md) | ടൈം സീരീസ് ഫോറ്കാസ്റ്റിങ്ങിന്റെ പരിചയം | [Python](7-TimeSeries/1-Introduction/README.md) | ഫ്രാൻസെസ്ക | +| 22 | ⚡️ ലോക വൈദ്യുതി ഉപയോഗം ⚡️ - ARIMA ഉപയോഗിച്ചുള്ള ടൈം സീരീസ് ഫോറ്കാസ്റ്റിംഗ് | [ടൈം സീരീസ്](7-TimeSeries/README.md) | ARIMA ഉപയോഗിച്ച് ടൈം സീരീസ് ഫോറ്കാസ്റ്റിംഗ് | [Python](7-TimeSeries/2-ARIMA/README.md) | ഫ്രാൻസെസ്ക | +| 23 | ⚡️ ലോക വൈദ്യുതി ഉപയോഗം ⚡️ - SVR ഉപയോഗിച്ചുള്ള ടൈം സീരീസ് ഫോറ്കാസ്റ്റിംഗ് | [ടൈം സീരീസ്](7-TimeSeries/README.md) | Support Vector Regressor ഉപയോഗിച്ചുള്ള ടൈം സീരീസ് ഫോറ്കാസ്റ്റിംഗ് | [Python](7-TimeSeries/3-SVR/README.md) | അനിർബാൻ | +| 24 | റീഇൻഫോഴ്സ്മെന്റ് ലേണിംഗിലേക്കുള്ള പരിചയം | [റീഇൻഫോഴ്സ്മെന്റ് ലേണിംഗ്](8-Reinforcement/README.md) | Q-ലേണിംഗ് ഉപയോഗിച്ചുള്ള റീഇൻഫോഴ്സ്മെന്റ് ലേണിംഗിന്റെ പരിചയം | [Python](8-Reinforcement/1-QLearning/README.md) | ഡിമിത്രി | +| 25 | പീറ്റർ കരടിയെ വഴിപറയുക! 🐺 | [റീഇൻഫോഴ്സ്മെന്റ് ലേണിംഗ്](8-Reinforcement/README.md) | റീഇൻഫോഴ്സ്മെന്റ് ലേണിങ് ജിം | [Python](8-Reinforcement/2-Gym/README.md) | ഡിമിത്രി | +| Postscript | യഥാർത്ഥ ലോകം ML സാഹചര്യങ്ങളും പ്രയോഗങ്ങളും | [ML in the Wild](9-Real-World/README.md) | ക്ലാസിക്കൽ ML ന്റെ രസകരവും വെളിപ്പെടുത്തലുള്ള യഥാർത്ഥ ലോക പ്രയോഗങ്ങൾ | [പാഠം](9-Real-World/1-Applications/README.md) | ടീം | +| Postscript | RAI ഡാഷ്‌ബോർഡ് ഉപയോഗിച്ച് ML മോഡൽ ഡഗ്ഗിംഗ് | [ML in the Wild](9-Real-World/README.md) | Responsible AI ഡാഷ്‌ബോർഡ് ഘടകങ്ങൾ ഉപയോഗിച്ച് മെഷീൻ ലേണിംഗ് മോഡൽ ഡഗ്ഗിംഗ് | [പാഠം](9-Real-World/2-Debugging-ML-Models/README.md) | രுத் യാക്കുബു | + +> [ഈ കോഴ്സിന്റെ എല്ലാ അധിക വിഭവങ്ങളും Microsoft Learn ശേഖരത്തിൽ കണ്ടെത്തുക](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## ഓഫ്‌ലൈൻ ആക്‌സസ് -[Docsify](https://docsify.js.org/#/) ഉപയോഗിച്ച് നിങ്ങൾ ഈ ഡോക്യുമെന്റേഷൻ ഓഫ്‌ലൈൻ ഓടിക്കാം. ഈ റെപ്പോ ഫോർക്ക് ചെയ്ത്, നിങ്ങളുടെ ലൊക്കൽ മെഷീനിൽ [Docsify ഇൻസ്റ്റാൾ](https://docsify.js.org/#/quickstart)ചെയ്യുക, ശേഷം ഈ റെപ്പോയുടെ റൂട്ട് ഫോൾഡറിൽ `docsify serve` ടൈപ്പ് ചെയ്യുക. വെബ്സൈറ്റ് പോർട്ട് 3000-ൽ പ്രാദേശികമായി `localhost:3000`-ൽ സർവ് ചെയ്യപ്പെടും. +[Docsify](https://docsify.js.org/#/) ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഈ ഡോക്യുമെന്റേഷൻ ഓഫ്‌ലൈൻ ഓടിക്കാമെന്ന് അറിയാം. ഈ റിപൊ ഫോർക്കുചെയ്‌തു, [Docsify ഇൻസ്റ്റാൾ ചെയ്യുക](https://docsify.js.org/#/quickstart) നിങ്ങളുടെ ലോക്കൽ മെഷീനിൽ, തുടർന്ന് ഈ റിപൊയുടെ റൂട്ട് ഫോൾഡറിൽ പോയി `docsify serve` എന്നത് ടൈപ്പ് ചെയ്യുക. വെബ്‌സൈറ്റ് നിങ്ങളുടെ ലോക്കൽഹോസ്റ്റിലെ 3000 പോർട്ടിൽ ലഭ്യമായിരിക്കും: `localhost:3000`. -## PDFs +## PDF-കൾ -പാഠക്രമത്തിന്റെ PDF ലിങ്കുകൾ [ഇവിടെയുണ്ട്](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +പഠനപദ്ധതിയുടെ PDF [ഇവിടെ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) ലഭ്യമാണ്. -## 🎒 മറ്റു കോഴ്സുകൾ -ഞങ്ങളുടെ ടീം മറ്റ് കോഴ്സുകളും ഒരുക്കുന്നു! നോക്കൂ: +## 🎒 മറ്റ് കോഴ്സുകൾ + +നമ്മുടെ ടീം മറ്റ് കോഴ്സുകളും പ്രസിദ്ധീകരിക്കുന്നു! അവയെല്ലാം പരിശോധിക്കുക: ### LangChain @@ -184,55 +184,54 @@ Microsoftയിലെ Cloud Advocates നിങ്ങൾക്കായി 12 ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ആരംഭകർക്കായി MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ആരംഭകർക്കായി AI ഏജൻറ്സ്](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series -[![ആരംഭക്കാര്‍ക്കായി ജനറേറ്റീവ് AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![ജെനറേറ്റീവ് AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![ജെനറേറ്റീവ് AI (ജാവ)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![ജെനറേറ്റീവ് AI (ജാവാസ്ക്രിപ്റ്റ്)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### ജനറേറ്റീവ് AI പരമ്പര +[![ആരംഭകർക്കായി ജനറേറ്റീവ് AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ജനറേറ്റീവ് AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![ജനറേറ്റീവ് AI (ജാവ)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![ജനറേറ്റീവ് AI (ജാവാസ്ക്രിപ്റ്റ്)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- - -### മുഖ്യ പഠനം -[![ആരംഭക്കാര്‍ക്കായി എംഎൽ](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![ആരംഭക്കാര്‍ക്കായി ഡാറ്റാ സയൻസ്](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![ആരംഭക്കാര്‍ക്കായി എ.ഐ.](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![ആരംഭക്കാര്‍ക്കായി സൈബർസെക്യൂരിറ്റി](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![ആരംഭക്കാര്‍ക്കായി വെബ് ഡെവലപ്പ്മെന്റ്](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![ആരംഭക്കാര്‍ക്കായി IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![ആരംഭക്കാര്‍ക്കായി XR ഡെവലപ്പ്മെന്റ്](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) + +### കോർ പഠനം +[![ആരംഭകർക്കായി മെഷീൻ ലേണിംഗ്](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![ആരംഭകർക്കായി ഡാറ്റ സയൻസ്](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![ആരംഭകർക്കായി AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![ആരംഭകർക്കായി സൈബർസെക്യൂരിറ്റി](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![ആരംഭകർക്കായി വെബ് ഡെവ്](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![ആരംഭകർക്കായി IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![ആരംഭകർക്കായി XR ഡെവലപ്മെന്റ്](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- - -### കോപൈലറ്റ് സീരീസ് -[![എ.ഐ. ഉപയോഗിച്ചുള്ള Copilot for Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET കോപൈലറ്റിന്](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![കോപൈലറ്റ് സാഹസം](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) + +### കോപ്പൈലറ്റ് പരമ്പര +[![AI പങ്ക് പ്രോഗ്രാമിങ്ങിനായുള്ള കോപ്പൈലറ്റ്](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![C#/.NET-ന് വേണ്ടി കോപ്പൈലറ്റ്](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![കോപ്പൈലറ്റ് അഡ്വഞ്ചർ](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## സഹായം നേടുക +## സഹായം ലഭിക്കുന്നത് -എ.ഐ. ആപ്പുകൾ നിർമ്മിക്കുമ്പോൾ നിങ്ങള്ക്ക് തടസം ഉണ്ടാകുകയോ ചോദ്യങ്ങളുണ്ടായിരിക്കുകയോ ചെയ്താൽ, MCP-യിലെവരുടെ കൂടെ ചർച്ചകളിൽ ചേരുക. ചോദ്യങ്ങൾ സ്വാഗതം ചെയ്യുന്ന, അറിവ് സ്വതന്ത്രമായി പങ്കുവെക്കുന്ന സഹായപരമായ ഒരു സമൂഹമാണ് ഇത്. +AI ആപ്ലിക്കേഷനുകൾ നിർമ്മിക്കുന്നതിൽ നിങ്ങൾക്ക് തടസം നേരിടുകയാണെങ്കിൽ അല്ലെങ്കിൽ എന്തെങ്കിലും ചോദിക്കാനുണ്ടെങ്കിൽ, MCP സംവാദങ്ങളിൽ അധ്യാപകരും പരിചയസമ്പത്തുള്ള ഡെവലപ്പർമാരും ചേർന്നുള്ള കൂട്ടായ്മയിൽ ചേരുക. ഇവിടെ ചോദ്യങ്ങൾ സ്വാഗതം ചെയ്യപ്പെടുന്നു, അറിവ് സ്വതന്ത്രമായി പങ്കുവെക്കുന്നു. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -നിങ്ങൾക്കു ഉത്പന്ന അഭിപ്രായമോ പിഴവുകളോ ഉണ്ടെങ്കിൽ, നിർമ്മാണ സമയത്ത് സന്ദർശിക്കുക: +ഉൽപ്പന്ന ഫീഡ്‌ബാക്ക് അല്ലെങ്കിൽ നിർമ്മിക്കുന്നതിനിടെ പിഴവ് ഉണ്ടാകുകയാണെങ്കിൽ സന്ദർശിക്കുക: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +## അധിക പഠന ടിപുകൾ -## അധിക പഠന ടിപ്പുകൾ - -- ഓരോ പാഠത്തിനും ശേഷം നോട്ട്‌ബുക്കുകൾ അവലോകനം ചെയ്യുക നല്ലൊരു മനസ്സിലാക്കലിനായി. -- ആല്‍ഗോറിതം സ്വയം പ്രയോഗിച്ച് അഭ്യാസം നടത്തുക. -- പഠിച്ച ആശയങ്ങൾ ഉപയോഗിച്ച് യാഥാർഥ ശേഖരങ്ങൾ അന്വേഷിക്കുക. +- ഓരോ പാഠത്തിനും ശേഷം നോട്ട്‌ബുക്കുകൾ കണ്ടുപിടിക്കൂ നല്ല മനസ്സിലാക്കലിന്. +- വളരെത്തന്നെ ആൾഗോരിതങ്ങൾ സ്വയം നടപ്പിലാക്കാൻ പ്രാക്ടീസ് ചെയ്യുക. +- പഠിച്ച ആശയങ്ങൾ ഉപയോഗിച്ച് യഥാർത്ഥ ഡേറ്റാസെറ്റുകൾ എക്സ്പ്ലോർ ചെയ്യുക. --- -**അസൂയാനിർദേശം**: -ഈ രേഖ [Co-op Translator](https://github.com/Azure/co-op-translator) എന്ന AI പരിഭാഷാ സേവനം ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നെങ്കിലും, യന്ത്രപരിഭാഷകളിൽ പിശകുകളും അകൃത്യതകളും ഉണ്ടാകാമെന്ന് ശ്രദ്ധിക്കുക. മൂല രേഖ അതിന്റെ സ്വദേശീയ ഭാഷയിൽ അവകാശവിശ്വാസീയമായ സ്രോതസായി പരിഗണിക്കേണ്ടതാണ്. നിർണായക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷാ സേവനം ശിപാർശ ചെയ്യപ്പെടുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ചുപിന്നിലുണ്ടാകാവുന്ന യാതൊരു തെറ്റിദ്ധാരണകൾക്കും പ്രശ്‌നങ്ങൾക്കും ഞങ്ങൾ ഉത്തരവാദികളല്ല. +**അസംബന്ധപ്പെട്ട പരാമർശം**: +ഈ പ്രമാണം AI പരിഭാഷ സേവനം [Co-op Translator](https://github.com/Azure/co-op-translator) ഉപയോഗിച്ച് വിവർത്തനം ചെയ്‌തിരിക്കുന്നു. നൂതനമായ നിശ്ചയത്വത്തിനായി നാം പരിശ്രമിച്ചെങ്കിലും, സ്വയം പ്രവർത്തിക്കുന്ന വിവർത്തനങ്ങളിൽ പിശകുകൾ അല്ലെങ്കിൽ കൃത്യതക്കുറവുകൾ ഉണ്ടാകാം എന്ന് ദയവായി മനസ്സിലാക്കുക. പ്രാഥമിക ഭാഷയിലുള്ള അവകാശപ്രമാണം --- അതായത് യഥാർത്ഥ പ്രമാണം --- ആത്മാർത്ഥമായ സ്രോതസ്സായി പരിഗണിക്കപ്പെടണം. ആധികാരിക വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ നിർദ്ദേശിക്കുന്നു. ഈ വിവർത്തനത്തിൽ നിന്നു ഉണ്ടാകാവുന്ന ആരും തെറ്റിദ്ധാരണകൾക്കും വ്യാഖ്യാനക്കുറവുകൾക്കും ഞങ്ങൾ ഉത്തരവാദിത്വം ഏറ്റെടുക്കുകയില്ല. \ No newline at end of file diff --git a/translations/mr/.co-op-translator.json b/translations/mr/.co-op-translator.json index 1744884aa..9ddbb4971 100644 --- a/translations/mr/.co-op-translator.json +++ b/translations/mr/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "mr" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:08:26+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:14:13+00:00", "source_file": "README.md", "language_code": "mr" }, diff --git a/translations/mr/README.md b/translations/mr/README.md index 53fbb7499..773459da0 100644 --- a/translations/mr/README.md +++ b/translations/mr/README.md @@ -10,14 +10,14 @@ ### 🌐 बहुभाषिक समर्थन -#### GitHub Action द्वारे समर्थित (स्वयंचलित आणि नेहमी अद्ययावत) +#### GitHub अ‍ॅक्शनद्वारे समर्थित (स्वयंचलित आणि नेहमी अद्ययावत) -[अरबी](../ar/README.md) | [बंगाली](../bn/README.md) | [बुल्गेरियन](../bg/README.md) | [बर्मी (म्यानमार)](../my/README.md) | [चिनी (सोपे)](../zh-CN/README.md) | [चिनी (परंपरागत, हॉंगकॉंग)](../zh-HK/README.md) | [चिनी (परंपरागत, मकाऊ)](../zh-MO/README.md) | [चिनी (परंपरागत, तैवान)](../zh-TW/README.md) | [क्रोएशियन](../hr/README.md) | [चेक](../cs/README.md) | [डॅनिश](../da/README.md) | [डच](../nl/README.md) | [एस्टोनियन](../et/README.md) | [फिनिश](../fi/README.md) | [फ्रेंच](../fr/README.md) | [जर्मन](../de/README.md) | [ग्रीक](../el/README.md) | [हिब्रू](../he/README.md) | [हिंदी](../hi/README.md) | [हंगेरीयन](../hu/README.md) | [इंडोनेशियन](../id/README.md) | [इटालियन](../it/README.md) | [जपानी](../ja/README.md) | [कन्नड](../kn/README.md) | [कोरियन](../ko/README.md) | [लिथुआनियन](../lt/README.md) | [मलय](../ms/README.md) | [मलयाळम](../ml/README.md) | [मराठी](./README.md) | [नेपाली](../ne/README.md) | [नायजेरियन पिड्गिन](../pcm/README.md) | [नॉर्वेजियन](../no/README.md) | [पर्शियन (फारसी)](../fa/README.md) | [पोलिश](../pl/README.md) | [पोर्तुगीज (ब्राझील)](../pt-BR/README.md) | [पोर्तुगीज (पोर्तुगाल)](../pt-PT/README.md) | [पंजाबी (गुरमुखी)](../pa/README.md) | [रोमानियन](../ro/README.md) | [रशियन](../ru/README.md) | [सर्बियन (सिरिलिक)](../sr/README.md) | [स्लोव्हाक](../sk/README.md) | [स्लोव्हेनियन](../sl/README.md) | [स्पॅनिश](../es/README.md) | [स्वाहिली](../sw/README.md) | [स्वीडिश](../sv/README.md) | [टागालॉग (फिलिपिनो)](../tl/README.md) | [तामिळ](../ta/README.md) | [तेलुगू](../te/README.md) | [थाई](../th/README.md) | [टर्किश](../tr/README.md) | [युक्रेनीयन](../uk/README.md) | [उर्दू](../ur/README.md) | [व्हिएतनामीस](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](./README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **स्थानिक कॉपी करायला प्राधान्य द्यायचे का?** +> **स्थानिक पद्धतीने क्लोन करायचे आहे का?** > -> या रेपॉझिटरीमध्ये ५०+ भाषा अनुवाद आहेत ज्यामुळे डाउनलोड आकार मोठा होतो. अनुवादांशिवाय क्लोन करण्यासाठी, sparse checkout वापरा: +> या रेपॉझिटरीमध्ये ५०+ भाषांतील अनुवादांचा समावेश आहे ज्यामुळे डाउनलोड आकार लक्षणीय वाढतो. अनुवादांशिवाय क्लोन करण्यासाठी sparse checkout वापरा: > > **Bash / macOS / Linux:** > ```bash @@ -33,147 +33,146 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> यामुळे तुम्हाला कोर्स पूर्ण करण्यासाठी सर्व आवश्यक गोष्टी खूप वेगवान डाउनलोडसह मिळतात. +> यामुळे तुम्हाला कोर्स पूर्ण करण्यासाठी आवश्यक बाबी बऱ्यापैकी लवकर डाउनलोड करता येतील. #### आमच्या समुदायात सामील व्हा [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -आपल्याकडे AI सह शिकण्याच्या सिरीजसाठी Discord सुरू आहे, अधिक जाणून घेण्यासाठी आणि सहभागी होण्यासाठी [Learn with AI Series](https://aka.ms/learnwithai/discord) येथे १८ - ३० सप्टेंबर, २०२५ दरम्यान. तुम्हाला GitHub Copilot चा वापर करून डेटा सायन्सचे टिप्स आणि ट्रिक्स मिळतील. +आमच्याकडे Discord वर AI सोबत शिकण्याचा सिरीज चालू आहे, अधिक जाणून घेण्यासाठी आणि आमच्यासोबत सामील होण्यासाठी [Learn with AI Series](https://aka.ms/learnwithai/discord) येथे १८ ते ३० सप्टेंबर २०२५ दरम्यान भेट द्या. तुम्हाला GitHub Copilot च्या वापरासंबंधी टिप्स आणि ट्रिक्स मिळतील. ![Learn with AI series](../../translated_images/mr/3.9b58fd8d6c373c20.webp) -# नवशिक्यांसाठी मशीन लर्निंग - अभ्यासक्रम +# नवशिक्यांसाठी मशीन लर्निंग - एक अभ्यासक्रम -> 🌍 जगभर फिरत मशीन लर्निंगचा अभ्यास करताना जगाच्या संस्कृतींचा शोध घेऊया 🌍 +> 🌍 जगभर प्रवास करा आणि जगाच्या संस्कृतींमार्फत मशीन लर्निंगचा अभ्यास करा 🌍 -Microsoft कडील Cloud Advocates आनंदाने १२ आठवड्यांचा, २६ धड्यांचा अभ्यासक्रम उपलब्ध करून देत आहेत जो पूर्णपणे **मशीन लर्निंग** विषयी आहे. या अभ्यासक्रमात, आपण कधीकधी "क्लासिक मशीन लर्निंग" म्हणतात ती शिका, ज्यासाठी मुख्यतः Scikit-learn लायब्ररी वापरली जाते आणि डीप लर्निंग टाळली जाते, जी आमच्या [AI for Beginners' curriculum](https://aka.ms/ai4beginners) मध्ये समाविष्ट आहे. तसेच, या धड्यांसह आमचा ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) वापरा. +Microsoft मधील Cloud Advocates १२ आठवड्यांचा, २६ धड्यांचा असा **मशीन लर्निंग** विषयी अभ्यासक्रम आनंदाने ऑफर करीत आहेत. या अभ्यासक्रमात तुम्हाला जेव्हा कधी **शास्त्रीय मशीन लर्निंग** म्हटले जाते ते समजेल, मुख्यत्वे Scikit-learn या लायब्ररीचा वापर करून आणि डीप लर्निंग टाळून, जे आमच्या [AI for Beginners' curriculum](https://aka.ms/ai4beginners) मध्ये समाविष्ट आहे. या धड्यांना आमच्या ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) सोबत जोडा! -जगभर फिरून आपण या क्लासिक तंत्रांचा वापर विविध प्रदेशांच्या डेटावर करतो. प्रत्येक धड्यामध्ये पूर्व-आणि पश्चात-धडा क्विझेस, लेखी सूचना, सोल्यूशन, असाइनमेंट इत्यादी असतात. आमची प्रकल्पाधारित शिकवणी पद्धत आपल्याला शिकत असतानाच तयार होण्यास मदत करते, जी नवीन कौशल्ये शिकण्याचा सिद्ध मार्ग आहे. +जगभर प्रवास करा आणि वेगवेगळ्या जागांच्या डेटा वर या शास्त्रीय तंत्रांचा वापर करा. प्रत्येक धड्यात पूर्व-म्हणून आणि पाठपुरावा चाचण्या, लिहिलेल्या सूचना धडा पूर्ण करण्यासाठी, सोल्युशन, असाइनमेंट आणि अजून बरेच काही आहे. आमचा प्रोजेक्ट-आधारित शिक्षण पद्धत तुम्हाला बांधणी करताना शिकण्याची संधी देते, जी नवीन कौशल्ये दीर्घकाळ टिकवण्यासाठी सिद्ध आहे. -**✍️ आमच्या लेखकांचे मनःपूर्वक आभार:** जेन लूपर, स्टीव्हन हावेल, फ्रान्सेस्का लाझ़ेरि, टोमॉमी इमुरा, कॅस्सी ब्रेव्हियू, दिमित्री सॉश्निकोव्ह, क्रिस नोरिंग, अनिर्बान मुखर्जी, ऑर्नेला अल्टुन्यन, रूथ यकुबू आणि एमी बॉयड +**✍️ आमच्या लेखकांचे मनापासून आभार** जेन लूपर, स्टीफन हावेल, फ्रान्सेस्का लाझेरी, टोमॉमी इमूरा, कॅसी ब्रेव्हियू, दिमित्री सोश्किनोव्ह, क्रिस नॉरिंग, अनिर्बान मुखर्जी, ऑर्नेला अल्टुन्यान, रुथ याकुबू आणि एमी बॉयड यांना -**🎨 आमच्या चित्रकारांचे देखील आभार:** टोमॉमी इमुरा, दसानी माधिपल्ली, आणि जेन लूपर +**🎨 आमच्या चित्रकारांना देखील धन्यवाद** टोमॉमी इमूरा, दासानी माडीपल्ली, आणि जेन लूपर यांना -**🙏 खास आभार 🙏 आमच्या Microsoft Student Ambassador लेखक, समीक्षक आणि सामग्री पुरवठादारांना, विशेषतः ऋषित दागली, मोहम्मद साकिब खान इनान, रोहन राज, अलेक्झांडरु पेट्रेस्कू, अभिषेक जैनवाल, नवरीन ताबस्सुम, इओन सामुइला, आणि स्निग्धा अग्रवाल यांना +**🙏 खास आभार 🙏 आमच्या Microsoft Student Ambassador लेखक, पुनरावलोकक आणि मजकूर योगदानकर्त्यांना**, विशेषतः ऋषित डाग्ली, मुहम्मद साकिब खान इनान, रोहन राज, अलेक्झांड्रू पेट्रेस्कू, अभिषेक जैनवाल, नवरिन तबस्सुम, इओआन सामुइला, आणि स्निग्धा अग्रवाल यांना -**🤩 Microsoft Student Ambassadors एरिक वांजाऊ, जसलीन सोंधी, आणि विदुषी गुप्ता यांना आमच्या R धड्यांसाठी विशेष आभार!** +**🤩 थोडे अधिक धन्यवाद Microsoft Student Ambassadors एरिक वांजाऊ, जसलीन सोंधी, आणि विदुषी गुप्ता यांना आमच्या R धड्यांसाठी!** # सुरुवात कशी करावी -या टप्प्यांचे पालन करा: -1. **रिपॉझिटरी फोर्क करा**: या पृष्ठाच्या वरच्या उजव्या कोपऱ्यातील "Fork" बटण क्लिक करा. -2. **रिपॉझिटरी क्लोन करा**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +हे पावले अनुसरा: +1. **रेपॉझिटरी फॉर्क करा**: या पृष्ठाच्या वरच्या उजव्या कोपर्‍यातील "Fork" बटणावर क्लिक करा. +2. **रेपॉझिटरी क्लोन करा**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [या कोर्ससाठी सर्व अतिरिक्त साधने आमच्या Microsoft Learn कलेक्शन मध्ये शोधा](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [या कोर्ससाठी सर्व अतिरिक्त संसाधने आम्हाला Microsoft Learn संग्रहात आढळतील](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **मदत हवी आहे का?** आमच्या [Troubleshooting Guide](TROUBLESHOOTING.md) मध्ये इन्स्टॉलेशन, सेटअप, आणि धडे चालवण्याच्या सामान्य समस्यांसाठी उपाय तपासा. +> 🔧 **मदतीची गरज आहे?** इन्स्टॉलेशन, सेटअप, आणि धडे चालवण्याच्या सामान्य समस्यांसाठी आमचा [Troubleshooting Guide](TROUBLESHOOTING.md) पहा. +**[विद्यार्थी](https://aka.ms/student-page)**, या अभ्यासक्रमाचा उपयोग करण्यासाठी, संपूर्ण रेपॉझिटरी आपल्या GitHub खात्यात फॉर्क करा आणि स्वतः किंवा समूहाबरोबर व्यायाम पूर्ण करा: -**[विद्यार्थी](https://aka.ms/student-page)**, हा अभ्यासक्रम वापरण्यासाठी, संपूर्ण रेपॉ फोर्क करून आपल्या GitHub खात्यावर नेऊन स्वतः किंवा गटाबरोबर व्यायाम पूर्ण करा: - -- पूर्व-व्याख्यान क्विझपासून प्रारंभ करा. -- व्याख्यान वाचा आणि क्रिया पूर्ण करा, प्रत्येक ज्ञान तपासणीत थांबा आणि विचार करा. -- सोल्यूशन कोड चालवण्याऐवजी धडे समजून प्रोजेक्ट्स तयार करण्याचा प्रयत्न करा; परंतु तो कोड प्रत्येक प्रकल्प-आधारित धड्यातील `/solution` फोल्डरमध्ये उपलब्ध आहे. -- पोस्ट-व्याख्यान क्विझ घ्या. -- आव्हान पूर्ण करा. +- प्री-लेक्चर क्विझपासून सुरुवात करा. +- लेक्चर वाचा आणि क्रियाकलाप पूर्ण करा, प्रत्येक ज्ञान तपासणीवर थांबा आणि विचार करा. +- धडे समजून घेऊन प्रोजेक्ट्स तयार करण्याचा प्रयत्न करा, फक्त सोल्युशन कोड चालवण्यावर अवलंबून राहू नका; तथापि तो कोड `/solution` फोल्डरमध्ये प्रत्येक प्रोजेक्ट-आधारित धड्यात उपलब्ध आहे. +- पोस्ट-लेक्चर क्विझ द्या. +- चॅलेंज पूर्ण करा. - असाइनमेंट पूर्ण करा. -- धडा गट पूर्ण केल्यावर, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) येथे भेट द्या आणि योग्य PAT रब्रीक भरून "जोरात शिकणे" करा. 'PAT' म्हणजे प्रगती मूल्यांकन साधन-ज्यामध्ये आपण आपली प्रगती भरता. तुम्ही इतर PAT ला प्रतिक्रिया देऊन एकत्र शिकू शकता. +- धडा समूह पूर्ण केल्यावर, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) वर जा आणि संबंधित PAT रूब्रिक भरून "लर्न आउट लाउड" करा. 'PAT' म्हणजे प्रगती मूल्यांकन साधन जे तुम्ही भरता जेणेकरून तुमचं शिक्षण पुढे जाईल. तुम्ही इतर PATs वर प्रतिक्रिया देऊ शकता जेणेकरून आपण एकत्र शिकू शकू. -> पुढील अभ्यासासाठी, आम्ही खालील [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मॉड्यूल्स आणि शिक्षण मार्गांचे अनुसरण करण्याचा सल्ला देतो. +> पुढील अभ्यासासाठी, आम्ही या [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मॉड्यूल आणि शिक्षण मार्गांचा अनुकरण करण्याचा सल्ला देतो. -**शिक्षक**, आम्ही हा अभ्यासक्रम कसा वापरावा याबाबत काही [सूचना](for-teachers.md) दिल्या आहेत. +**शिक्षक**, आपणांसाठी हा अभ्यासक्रम कसा वापरावा याबाबत काही [सूचना](for-teachers.md) दिल्या आहेत. --- -## व्हिडिओ मार्गदर्शक +## व्हिडिओ परिचय -काही धडे लहान स्वरूपाच्या व्हिडिओ स्वरूपात उपलब्ध आहेत. तुम्ही हे सर्व धड्यांमध्ये इन-लाइन किंवा [Microsoft Developer YouTube चॅनेलवरील ML for Beginners प्लेलिस्ट](https://aka.ms/ml-beginners-videos) मध्ये खालील प्रतिमेवर क्लिक करून पाहू शकता. +काही धडे लघु व्हिडिओ स्वरूपात उपलब्ध आहेत. तुम्ही हे सर्व धड्यात बाजूला पाहू शकता, किंवा [ML for Beginners प्लेलिस्ट Microsoft Developer YouTube चॅनेलवर](https://aka.ms/ml-beginners-videos) खालील प्रतिमा क्लिक करून पाहू शकता. [![ML for beginners banner](../../translated_images/mr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## टीमला भेटा +## टीमचा परिचय -[![प्रमो व्हिडिओ](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif बनवलेले** [मोहित जैसल](https://linkedin.com/in/mohitjaisal) +**Gif द्वारे** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 प्रोजेक्ट आणि त्यामागील लोकांबद्दल व्हिडिओसाठी वरील प्रतिमेवर क्लिक करा! +> 🎥 प्रकल्प आणि त्या प्रकल्पामध्ये सहभागी लोकांबद्दल व्हिडिओ पाहण्यासाठी वरची प्रतिमा क्लिक करा! --- ## शिक्षण पद्धती -आम्ही या अभ्यासक्रमाची रचना करताना दोन शैक्षणिक तत्त्वे निवडली: प्रामुख्याने **प्रकल्प-आधारित** आणि **वारंवार क्विझसह** असणे आवश्यक. याशिवाय, अभ्यासक्रमाला एकसंधता देण्यासाठी एक समान **थीम** ठेवली आहे. +हा अभ्यासक्रम तयार करताना आम्ही दोन शैक्षणिक तत्त्व निवडले: हा पूर्णपणे हॅण्ड्स-ऑन **प्रोजेक्ट-आधारित** असावा आणि त्यामध्ये **बारंबार क्विझ** असाव्या. तसेच, हा अभ्यासक्रम एकसंधतेसाठी एक सामान्य **थीम** देखील प्रदान करतो. -सामग्री प्रकल्पांशी सुसंगत असल्यामुळे विद्यार्थी अधिक गुंतलेले राहतात आणि संकल्पना अधिक चांगल्याप्रकारे लक्षात राहतात. वर्गापूर्वी कमी जोखमीचा क्विझ विद्यार्थ्यांच्या मनात विषय शिकण्याचा उद्देश निर्माण करतो, तर वर्गानंतरचा क्विझ अधिक चांगला ध्यास देतो. हा अभ्यासक्रम लवचिक आणि मजेदार बनविण्यासाठी डिझाइन केला गेला आहे आणि तो पूर्ण किंवा भागांमध्ये पूर्ण केला जाऊ शकतो. प्रकल्प सुरुवातीला सोपे आहेत आणि १२ आठवड्यांच्या समाप्तीपर्यंत अधिक क्लिष्ट होतात. हा अभ्यासक्रम वास्तविक जगात ML च्या उपयोगांवर पोस्टस्क्रिप्ट देखील समाविष्ट करतो, जो अतिरिक्त क्रेडिट किंवा चर्चेसाठी आधार म्हणून वापरता येतो. +सामग्री प्रोजेक्टसोबत संरेखित असल्याने, विद्यार्थ्यांसाठी प्रक्रिया अधिक आकर्षक होते आणि संकल्पनांचा अधिक चांगला टिकाव राहतो. वर्गाच्या आधीचा कमी-दाबाचा क्विझ विद्यार्थ्यांच्या मनात विषय शिकण्याचे उद्दिष्ट ठेवतो, तर वर्गानंतरचा दुसरा क्विझ अधिक टिकाव सुनिश्चित करतो. हा अभ्यासक्रम लवचिक आणि मजेशीर असावा आणि त्याचा पूर्ण किंवा भागअंश पद्धतीने वापर करता येईल. प्रोजेक्ट्स छोटे पासून सुरू होऊन १२ आठवड्यांच्या शेवटी अधिक गुंतागुंतीचे होतात. हा अभ्यासक्रम वास्तविक जीवनातील ML च्या वापरावर एक पोस्टस्क्रिप्ट सुद्धा समाविष्ट करतो, जी अतिरिक्त क्रेडिटसाठी किंवा चर्चेच्या आधारासाठी वापरता येईल. -> आमचा [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), आणि [Troubleshooting](TROUBLESHOOTING.md) मार्गदर्शक पहा. आम्ही तुमच्या रचनात्मक अभिप्रायाचे स्वागत करतो! +> आमचा [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), आणि [Troubleshooting](TROUBLESHOOTING.md) मार्गदर्शक तत्त्वे पहा. तुमच्या रचनात्मक अभिप्रायासाठी आम्ही स्वागत करतो! -## प्रत्येक धड्यात समाविष्ट +## प्रत्येक धड्यामध्ये समाविष्ट आहे -- ऐच्छिक स्केचनोट +- ऐच्छिक स्केच नोट - ऐच्छिक पूरक व्हिडिओ -- व्हिडिओ मार्गदर्शन (केवळ काही धड्यांसाठी) -- [पूर्व-व्याख्यान उबदार क्विझ](https://ff-quizzes.netlify.app/en/ml/) -- लेखी धडा -- प्रकल्प-आधारित धड्यांसाठी प्रकल्प कसा बांधायचा यावर तपशीलवार मार्गदर्शक -- ज्ञान तपासणी -- आव्हान +- व्हिडिओ परिचय (काही धड्यांसाठी) +- [पूर्व लेक्चर वार्मअप क्विझ](https://ff-quizzes.netlify.app/en/ml/) +- लिहिलेला धडा +- प्रोजेक्ट-आधारित धड्यांसाठी प्रोजेक्ट बनवण्याचे पाऊल-त्याप्रमाणे मार्गदर्शन +- ज्ञान तपासण्या +- एक आव्हान - पूरक वाचन - असाइनमेंट -- [पोस्ट-व्याख्यान क्विझ](https://ff-quizzes.netlify.app/en/ml/) - -> **भाषांबाबत एक नोंद**: हे धडे मुख्यत्वे Python मध्ये लिहिलेले आहेत, पण अनेक R मध्ये सुद्धा उपलब्ध आहेत. R धडा पूर्ण करण्यासाठी, `/solution` फोल्डरमध्ये जा आणि R धडे शोधा. त्यांना .rmd विस्तार आहे, जो **R Markdown** फाईल दर्शवितो, जो `code chunks` (R किंवा इतर भाषांच्या) आणि `YAML हेडर` (ज्यामुळे PDF सारखे आउटपुट स्वरूप कसे करायचे हे मार्गदर्शन होते) या Markdown दस्तऐवजामध्ये एम्बेडिंग आहे. त्यामुळे, हा डेटा सायन्ससाठी एक उदाहरणीय लेखक फ्रेमवर्क आहे कारण यामुळे आपला कोड, त्याचे आउटपुट आणि आपले विचार Markdown मध्ये लिहून एकत्र करता येतात. शिवाय, R Markdown दस्तऐवज PDF, HTML किंवा Word सारख्या आउटपुट स्वरूपात रुपांतरित केले जाऊ शकतात. -> **प्रश्नमंजुषांबद्दल एक टीप**: सर्व प्रश्नमंजुषा [Quiz App फोल्डर](../../quiz-app) मध्ये आहेत, ज्यात प्रत्येकी तीन प्रश्न असलेल्या 52 एकूण प्रश्नमंजुषा आहेत. त्या धड्यांमधून लिंक केल्या आहेत परंतु प्रश्नमंजुषा अॅप लोकलपणे सुरू केला जाऊ शकतो; `quiz-app` फोल्डरमधील सूचनांचे अनुसरण करून स्थानिकपणे होस्ट किंवा Azure वर तैनात करा. - -| धडा क्रमांक | विषय | धडा गट | शिक्षण उद्दिष्टे | लिंक्ड धडा | लेखक | -| :----------: | :------------------------------------------------------------: | :---------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------: | -| 01 | मशीन लर्निंगची ओळख | [परिचय](1-Introduction/README.md) | मशीन लर्निंगच्या मूलभूत संकल्पना शिका | [धडा](1-Introduction/1-intro-to-ML/README.md) | मुहम्मद | -| 02 | मशीन लर्निंगचा इतिहास | [परिचय](1-Introduction/README.md) | या क्षेत्राचा मुळ इतिहास शिका | [धडा](1-Introduction/2-history-of-ML/README.md) | जेन आणि एमी | -| 03 | न्यायसंगतता आणि मशीन लर्निंग | [परिचय](1-Introduction/README.md) | मशीन लर्निंग मॉडेल तयार करताना आणि वापरताना विद्यार्थ्यांनी विचारात घ्यावयाच्या न्यायसंगततेसंबंधी महत्त्वाच्या तात्त्विक प्रश्नांवर चर्चा | [धडा](1-Introduction/3-fairness/README.md) | टोमोमी | -| 04 | मशीन लर्निंगसाठी तंत्रे | [परिचय](1-Introduction/README.md) | मशीन लर्निंग संशोधक कोणती तंत्रे वापरतात हे जाणून घ्या | [धडा](1-Introduction/4-techniques-of-ML/README.md) | क्रिस आणि जेन | -| 05 | पुनर्रचना परिचय | [पुनर्रचना](2-Regression/README.md) | पुनर्रचना मॉडेलसाठी पाइथन आणि स्किकिट-लर्नचा उपयोग कसा करायचा ते शिका | [पायथन](2-Regression/1-Tools/README.md) • [आर](../../2-Regression/1-Tools/solution/R/lesson_1.html) | जेन • इरिक वांजाऊ | -| 06 | उत्तर अमेरिकेतील भोपळा किमती 🎃 | [पुनर्रचना](2-Regression/README.md) | मशीन लर्निंगसाठी डेटा कसा साफ व दृश्यमान बनवायचा ते शिका | [पायथन](2-Regression/2-Data/README.md) • [आर](../../2-Regression/2-Data/solution/R/lesson_2.html) | जेन • इरिक वांजाऊ | -| 07 | उत्तर अमेरिकेतील भोपळा किमती 🎃 | [पुनर्रचना](2-Regression/README.md) | रेषीय आणि बहुपदी पुनर्रचना मॉडेल तयार करा | [पायथन](2-Regression/3-Linear/README.md) • [आर](../../2-Regression/3-Linear/solution/R/lesson_3.html) | जेन आणि दिमित्री • इरिक वांजाऊ | -| 08 | उत्तर अमेरिकेतील भोपळा किमती 🎃 | [पुनर्रचना](2-Regression/README.md) | लॉजिस्टिक पुनर्रचना मॉडेल तयार करा | [पायथन](2-Regression/4-Logistic/README.md) • [आर](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | जेन • इरिक वांजाऊ | -| 09 | वेब अॅप 🔌 | [वेब अॅप](3-Web-App/README.md) | तुमचा प्रशिक्षित मॉडेल वापरण्यासाठी वेब अॅप तयार करा | [पायथन](3-Web-App/1-Web-App/README.md) | जेन | -| 10 | वर्गवारीची ओळख | [वर्गवारी](4-Classification/README.md) | तुमचा डेटा साफ, तयार व दृश्यमान करा; वर्गवारीची ओळख | [पायथन](4-Classification/1-Introduction/README.md) • [आर](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | जेन आणि कॅसी • इरिक वांजाऊ | -| 11 | चवदार आशियाई आणि भारतीय पदार्थ 🍜 | [वर्गवारी](4-Classification/README.md) | वर्गीकारकांची ओळख | [पायथन](4-Classification/2-Classifiers-1/README.md) • [आर](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | जेन आणि कॅसी • इरिक वांजाऊ | -| 12 | चवदार आशियाई आणि भारतीय पदार्थ 🍜 | [वर्गवारी](4-Classification/README.md) | अधिक वर्गीकारक | [पायथन](4-Classification/3-Classifiers-2/README.md) • [आर](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | जेन आणि कॅसी • इरिक वांजाऊ | -| 13 | चवदार आशियाई आणि भारतीय पदार्थ 🍜 | [वर्गवारी](4-Classification/README.md) | तुमचा मॉडेल वापरून शिफारस करणारा वेब अॅप तयार करा | [पायथन](4-Classification/4-Applied/README.md) | जेन | -| 14 | क्लस्टरिंगची ओळख | [क्लस्टरिंग](5-Clustering/README.md) | तुमचा डेटा साफ, तयार व दृश्यमान करा; क्लस्टरिंगची ओळख | [पायथन](5-Clustering/1-Visualize/README.md) • [आर](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | जेन • इरिक वांजाऊ | -| 15 | नायजेरियन संगीत आवडींचा अभ्यास 🎧 | [क्लस्टरिंग](5-Clustering/README.md) | K-मीन क्लस्टरिंग पद्धत एक्सप्लोर करा | [पायथन](5-Clustering/2-K-Means/README.md) • [आर](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | जेन • इरिक वांजाऊ | -| 16 | नैसर्गिक भाषा प्रक्रिया परिचय ☕️ | [नैसर्गिक भाषा प्रक्रिया](6-NLP/README.md) | एक सोपा बॉट बनवून NLP च्या बेसिक्स शिका | [पायथन](6-NLP/1-Introduction-to-NLP/README.md) | स्टीफन | -| 17 | सामान्य NLP कार्ये ☕️ | [नैसर्गिक भाषा प्रक्रिया](6-NLP/README.md) | भाषा संरचनांसोबत काम करताना आवश्यक सामान्य कार्ये समजून NLP ज्ञान वाढवा | [पायथन](6-NLP/2-Tasks/README.md) | स्टीफन | -| 18 | भाषांतर आणि भावना विश्लेषण ♥️ | [नैसर्गिक भाषा प्रक्रिया](6-NLP/README.md) | जेन ऑस्टिन सहित भाषांतर आणि भावना विश्लेषण | [पायथन](6-NLP/3-Translation-Sentiment/README.md) | स्टीफन | -| 19 | युरोप मधील रोमँटिक हॉटेल्स ♥️ | [नैसर्गिक भाषा प्रक्रिया](6-NLP/README.md) | हॉटेल पुनरावलोकनांसह भावना विश्लेषण १ | [पायथन](6-NLP/4-Hotel-Reviews-1/README.md) | स्टीफन | -| 20 | युरोप मधील रोमँटिक हॉटेल्स ♥️ | [नैसर्गिक भाषा प्रक्रिया](6-NLP/README.md) | हॉटेल पुनरावलोकनांसह भावना विश्लेषण २ | [पायथन](6-NLP/5-Hotel-Reviews-2/README.md) | स्टीफन | -| 21 | टाइम सिरीज फोरकास्टिंगची ओळख | [टाइम सिरीज](7-TimeSeries/README.md) | टाइम सिरीज फोरकास्टिंगची ओळख | [पायथन](7-TimeSeries/1-Introduction/README.md) | फ्रान्सेस्का | -| 22 | ⚡️ वर्ल्ड पॉवर युसेज ⚡️ - ARIMA सह टाइम सिरीज फोरकास्टिंग | [टाइम सिरीज](7-TimeSeries/README.md) | ARIMA सह टाइम सिरीज फोरकास्टिंग | [पायथन](7-TimeSeries/2-ARIMA/README.md) | फ्रान्सेस्का | -| 23 | ⚡️ वर्ल्ड पॉवर युसेज ⚡️ - SVR सह टाइम सिरीज फोरकास्टिंग | [टाइम सिरीज](7-TimeSeries/README.md) | सपोर्ट व्हेक्टर रिग्रेशनसह टाइम सिरीज फोरकास्टिंग | [पायथन](7-TimeSeries/3-SVR/README.md) | अनिर्बान | -| 24 | पुनरावृत्ती शिक्षण परिचय | [पुनरावृत्ती शिक्षण](8-Reinforcement/README.md) | Q-शिकण्यासह पुनरावृत्ती शिक्षणची ओळख | [पायथन](8-Reinforcement/1-QLearning/README.md) | दिमित्री | -| 25 | पीटरला लांडगा टाळण्यात मदत करा! 🐺 | [पुनरावृत्ती शिक्षण](8-Reinforcement/README.md) | पुनरावृत्ती शिक्षण जिम | [पायथन](8-Reinforcement/2-Gym/README.md) | दिमित्री | -| उपसंहार | वास्तविक जगातील ML परिस्थिती आणि अनुप्रयोग | [ML इन द वाइल्ड](9-Real-World/README.md) | क्लासिकल ML चे मनोरंजक आणि प्रकाश टाकणारे वास्तविक जगातील अनुप्रयोग | [धडा](9-Real-World/1-Applications/README.md) | टीम | -| उपसंहार | RAI डॅशबोर्ड वापरून ML मध्ये मॉडेल डीबगिंग | [ML इन द वाइल्ड](9-Real-World/README.md) | रेस्पॉन्सिबल AI डॅशबोर्ड घटकांद्वारे मशीन लर्निंगमधील मॉडेल डीबगिंग | [धडा](9-Real-World/2-Debugging-ML-Models/README.md) | रुथ याकुबू | - -> [या कोर्ससाठी सर्व अतिरिक्त संसाधने आमच्या Microsoft Learn संग्रहात शोधा](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- [पोस्ट-लेक्चर क्विझ](https://ff-quizzes.netlify.app/en/ml/) +> **भाषांबद्दल एक नोंद**: हे धडे मुख्यतः Python मध्ये लिहिलेले आहेत, पण बरेच धडे R मध्येही उपलब्ध आहेत. R चे धडे पूर्ण करण्यासाठी, `/solution` फोल्डरमध्ये जा आणि R ची धडे शोधा. त्यात .rmd एक्सटेंशन असते जे **R Markdown** फाईलचे प्रतिनिधित्व करते, जी सोप्या भाषेत सांगायची तर `code chunks` (R किंवा इतर भाषा) आणि `YAML header` (जी आउटपुट्स जसे PDF कसे फॉरमॅट करायचे हे मार्गदर्शित करते) च्या एम्बेडिंगसाठी वापरली जाते `Markdown document` मध्ये. त्यामुळे, डेटा सायन्ससाठी हे एक आदर्श लेखक फ्रेमवर्क म्हणून काम करते कारण हे तुम्हाला तुमचा कोड, त्याचा आउटपुट आणि तुमचे विचार Markdown मध्ये लिहून जोडण्याची परवानगी देते. शिवाय, R Markdown दस्तऐवज PDF, HTML, किंवा Word सारख्या आउटपुट फॉरमॅट्समध्ये रूपांतरित केले जाऊ शकतात. + +> **क्विझ बद्दल एक नोंद**: सर्व क्विझ [Quiz App folder](../../quiz-app) मध्ये आहेत, एकूण ५२ क्विझ ज्यात प्रत्येकी तीन प्रश्न आहेत. हे धड्यांतून लिंक केलेले आहेत पण क्विझ अ‍ॅप लोकली चालवता येतो; `quiz-app` फोल्डरमधील सूचनांचे पालन करा जेणेकरून तुम्ही ते लोकली होस्ट किंवा Azure वर डिप्लॉय करू शकता. + +| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | +| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | मशीन लर्निंगची ओळख | [Introduction](1-Introduction/README.md) | मशीन लर्निंगमागील मूलभूत संकल्पना शिकणे | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | मशीन लर्निंगचा इतिहास | [Introduction](1-Introduction/README.md) | या क्षेत्राचा इतिहास शिकणे | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | निष्पक्षता आणि मशीन लर्निंग | [Introduction](1-Introduction/README.md) | निष्पक्षतेबाबत महत्त्वाच्या तत्त्वज्ञानिक प्रश्नांचा विचार जे व्हावा जे ML मॉडेल बनवताना आणि वापरताना | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | मशीन लर्निंगसाठी तंत्रे | [Introduction](1-Introduction/README.md) | मशीन लर्निंग संशोधक कोणती तंत्रे वापरतात ML मॉडेल तयार करण्यासाठी? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | रिग्रेशनची ओळख | [Regression](2-Regression/README.md) | Python आणि Scikit-learn वापरून रिग्रेशन मॉडेलसाठी सुरुवात करा | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | नॉर्थ अमेरिकेतील भोपळ्यांचे भाव 🎃 | [Regression](2-Regression/README.md) | ML साठी डेटा पाहणे व स्वच्छ करणे | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | नॉर्थ अमेरिकेतील भोपळ्यांचे भाव 🎃 | [Regression](2-Regression/README.md) | रेषीय आणि बहुपदीय रिग्रेशन मॉडेल बांधा | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | नॉर्थ अमेरिकेतील भोपळ्यांचे भाव 🎃 | [Regression](2-Regression/README.md) | लॉजिस्टिक रिग्रेशन मॉडेल तयार करा | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | वेब अ‍ॅप 🔌 | [Web App](3-Web-App/README.md) | तुमच्या प्रशिक्षित मॉडेलसाठी वेब अ‍ॅप तयार करा | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | वर्गीकरणाची ओळख | [Classification](4-Classification/README.md) | तुमचा डेटा स्वच्छ करा, तयार करा आणि दृश्य करा; वर्गीकरणाची ओळख | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | स्वादिष्ट आशियाई आणि भारतीय स्वयंपाक 🍜 | [Classification](4-Classification/README.md) | वर्गीकरणकर्त्यांची ओळख | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | स्वादिष्ट आशियाई आणि भारतीय स्वयंपाक 🍜 | [Classification](4-Classification/README.md) | अधिक वर्गीकरणकर्ते | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | स्वादिष्ट आशियाई आणि भारतीय स्वयंपाक 🍜 | [Classification](4-Classification/README.md) | तुमचा मॉडेल वापरून शिफारस करणारा वेब अ‍ॅप तयार करा | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | क्लस्टरिंगची ओळख | [Clustering](5-Clustering/README.md) | तुमचा डेटा स्वच्छ करा, तयार करा आणि दृश्य करा; क्लस्टरिंगची ओळख | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | नायजेरियन संगीत आवड शोधा 🎧 | [Clustering](5-Clustering/README.md) | K-Means क्लस्टरिंग पद्धतीचा अभ्यास करा | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | नैसर्गिक भाषा प्रक्रिया (NLP) ची ओळख ☕️ | [Natural language processing](6-NLP/README.md) | सोपा बॉट बनवून NLP च्या मूलभूत गोष्टी शिका | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | सामान्य NLP कामे ☕️ | [Natural language processing](6-NLP/README.md) | भाषा रचनांशी संबंधित सामान्य कामे समजून NLP ज्ञान वाढवा | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | भाषांतर आणि भावना विश्लेषण ♥️ | [Natural language processing](6-NLP/README.md) | Jane Austen सोबत भाषांतर आणि भावना विश्लेषण | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | युरोपचे रोमँटिक हॉटेल ♥️ | [Natural language processing](6-NLP/README.md) | हॉटेल पुनरावलोकनांसह भावना विश्लेषण 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | युरोपचे रोमँटिक हॉटेल ♥️ | [Natural language processing](6-NLP/README.md) | हॉटेल पुनरावलोकनांसह भावना विश्लेषण 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | टाइम सिरीज भाकीताची ओळख | [Time series](7-TimeSeries/README.md) | टाइम सिरीज भाकीताची ओळख | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ जागतिक विजेचा वापर ⚡️ - ARIMA सह टाइम सिरीज भाकीत | [Time series](7-TimeSeries/README.md) | ARIMA सह टाइम सिरीज भाकीत | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ जागतिक विजेचा वापर ⚡️ - SVR सह टाइम सिरीज भाकीत | [Time series](7-TimeSeries/README.md) | Support Vector Regressor सह टाइम सिरीज भाकीत | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | रिइन्फोर्समेंट लर्निंगची ओळख | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning सह रिइन्फोर्समेंट लर्निंगची ओळख | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | पीटरला लांडगा टाळायला मदत करा! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | रिइन्फोर्समेंट लर्निंग जिम | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | वास्तविक जगातील ML परिस्थिती आणि अनुप्रयोग | [ML in the Wild](9-Real-World/README.md) | क्लासिक ML चे मनोरंजक आणि खोलवर जाणून घेणारे वास्तविक जगातील अनुप्रयोग | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| Postscript | RAI डॅशबोर्ड वापरून ML मध्ये मॉडेल डीबगिंग | [ML in the Wild](9-Real-World/README.md) | जबाबदार AI डॅशबोर्ड घटक वापरून मशीन लर्निंगमधील मॉडेल डीबगिंग | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [या कोर्ससाठी सर्व अतिरिक्त संसाधने शोधा आमच्या Microsoft Learn संग्रहामध्ये](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## ऑफलाइन प्रवेश -आपण [Docsify](https://docsify.js.org/#/) वापरून ही माहिती ऑफलाइन चालवू शकता. या रेपॉ फोर्क करा, स्थानिक संगणकावर [Docsify इन्स्टॉल करा](https://docsify.js.org/#/quickstart), आणि नंतर या रेपॉच्या रूट फोल्डरमध्ये `docsify serve` टाइप करा. वेबसाइट तुमच्या लोकलहोस्टवर पोर्ट 3000 वर `localhost:3000` चालेल. +तुम्ही हा दस्तऐवज ऑफलाइन पाहू शकता Docsify वापरून. हा रेपो Fork करा, [Docsify install करा](https://docsify.js.org/#/quickstart) तुमच्या स्थानिक मशीनवर, आणि मग या रेपोच्या मूळ फोल्डरमध्ये `docsify serve` टाइप करा. वेबसाइट तुमच्या लोकलहोस्टवर पोर्ट ३००० वर चालवली जाईल: `localhost:3000`. ## PDF -लिंकसह अभ्यासक्रमाचा PDF [इथे](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) मिळवा. +अभ्यासक्रमाचा PDF आवृत्ती लिंकसह शोधा [इथे](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 इतर कोर्सस +## 🎒 इतर कोर्सेस -आमची टीम इतर कोर्सही तयार करते! पाहा: +आमचा टीम इतरही कोर्सेस तयार करतो! खाली तपासा: ### LangChain @@ -191,48 +190,48 @@ Microsoft कडील Cloud Advocates आनंदाने १२ आठवड --- ### Generative AI Series -[![सुरुवातीसाठी जनरेटिव्ह AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![जनरेटिव्ह AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![जनरेटिव्ह AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![जनरेटिव्ह AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### मुख्य शिक्षण -[![सुरुवातीसाठी ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![सुरुवातीसाठी डेटा सायन्स](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![सुरुवातीसाठी AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![सुरुवातीसाठी सायबरसुरक्षा](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![सुरुवातीसाठी वेब डेव्हलपमेंट](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![सुरुवातीसाठी आयओटी](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![सुरुवातीसाठी XR डेव्हलपमेंट](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Core Learning +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Copilot मालिका -[![AI जोडलेले प्रोग्रामिंगसाठी Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET साठी Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot साहस](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### Copilot Series +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## मदत घेणे +## मदतीसाठी -जर तुम्ही अडकले असाल किंवा AI अॅप्स तयार करताना काही प्रश्न असतील तर. MCP संदर्भातच्या चर्चेत इतर शिकणाऱ्या आणि अनुभवी डेव्हलपर्ससोबत सामील व्हा. ही एक सहायक समुदाय आहे जिथे प्रश्न विचारले जातात आणि ज्ञान मोकळेपणाने शेअर केले जाते. +जर तुम्हाला अडचण आल्यास किंवा AI अॅप्स तयार करण्याबाबत काही प्रश्न असतील. एकत्र शिकणाऱ्या विद्यार्थ्यांशी आणि अनुभवी विकसकांशी MCP बद्दल चर्चा करा. ही एक सहायक समुदाय आहे जिथे प्रश्न विचारणे स्वागतार्ह आहे आणि ज्ञान मुक्तपणे शेअर केले जाते. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -उत्पादन फीडबॅक किंवा चुका आढळल्यास खालील ठिकाणी भेट द्या: +जर तुम्हाला उत्पादनाबाबत प्रतिक्रिया द्यायची असेल किंवा तयार करताना त्रुटी आढळल्या तर येथे भेट द्या: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## अतिरिक्त शिकण्याच्या टिपा +## अतिरिक्त शिकण्याचे टिप्स -- प्रत्येक धड्याच्या नंतर नोटबुक पुनरावलोकन करा ज्यामुळे चांगले समजेल. -- अल्गोरिदम स्वतः अंमलात आणण्याचा सराव करा. -- शिकलेल्या संकल्पनांचा वापर करून प्रत्यक्ष डेटासेट्स अन्वेषण करा. +- प्रत्येक धड्यांनंतर नोटबुक पुनरावलोकन करा जास्त चांगल्या समजेसाठी. +- अल्गोरिदम स्वतः अमलात आणण्याचा सराव करा. +- शिकलेल्या संकल्पनांचा वापर करून वास्तव जगातील डेटासेट्स एक्सप्लोर करा. --- -**अस्वीकरण**: -हा दस्तऐवज AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी, कृपया लक्षात घ्या की स्वयंचलित अनुवादांमध्ये चुका किंवा अचूकतेच्या अभाव असू शकतात. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाच्या माहिती साठी व्यावसायिक मानवी अनुवाद करणे शिफारसीय आहे. या अनुवादाच्या वापराबाबत उद्भवलेल्या कोणत्याही गैरसमजुती किंवा चुकीच्या समजुतींसाठी आम्ही जबाबदार नाही. +**सूचना**: +हा दस्तऐवज AI भाषांतर सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) वापरून अनुवादित केला आहे. जरी आम्ही अचूकतेसाठी प्रयत्न करत असलो तरी, कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये चुका किंवा अचूकतेचा अभाव असू शकतो. मूळ दस्तऐवज त्याच्या स्थानिक भाषेत अधिकृत स्रोत मानला पाहिजे. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतर शिफारस केले आहे. या भाषांतराचा वापर केल्यामुळे होणाऱ्या कोणत्याही गैरसमजुती किंवा चुकीच्या अर्थसंग्रहणासाठी आम्ही जबाबदार नाही. \ No newline at end of file diff --git a/translations/ms/.co-op-translator.json b/translations/ms/.co-op-translator.json index 0b42cb0c5..0a03f0cbc 100644 --- a/translations/ms/.co-op-translator.json +++ b/translations/ms/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ms" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:30:48+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:13:12+00:00", "source_file": "README.md", "language_code": "ms" }, diff --git a/translations/ms/README.md b/translations/ms/README.md index 7b02e2b72..a0a1307b4 100644 --- a/translations/ms/README.md +++ b/translations/ms/README.md @@ -2,22 +2,22 @@ [![Penyumbang GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) [![Isu GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![Permintaan tarik GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![Permintaan tarik dialu-alukan](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) -[![Pemerhati GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![Cabang GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![Penonton GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![Fork GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) [![Bintang GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) ### 🌐 Sokongan Pelbagai Bahasa -#### Disokong melalui GitHub Action (Automatik & Sentiasa Dikemas Kini) +#### Disokong melalui Tindakan GitHub (Automatik & Sentiasa Dikemaskini) -[Arab](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgaria](../bg/README.md) | [Bahasa Burma (Myanmar)](../my/README.md) | [Bahasa Cina (Dipermudahkan)](../zh-CN/README.md) | [Bahasa Cina (Tradisional, Hong Kong)](../zh-HK/README.md) | [Bahasa Cina (Tradisional, Macau)](../zh-MO/README.md) | [Bahasa Cina (Tradisional, Taiwan)](../zh-TW/README.md) | [Bahasa Croatia](../hr/README.md) | [Bahasa Czech](../cs/README.md) | [Bahasa Denmark](../da/README.md) | [Belanda](../nl/README.md) | [Bahasa Estonia](../et/README.md) | [Bahasa Finland](../fi/README.md) | [Bahasa Perancis](../fr/README.md) | [Bahasa Jerman](../de/README.md) | [Bahasa Greek](../el/README.md) | [Bahasa Ibrani](../he/README.md) | [Bahasa Hindi](../hi/README.md) | [Bahasa Hungary](../hu/README.md) | [Bahasa Indonesia](../id/README.md) | [Bahasa Itali](../it/README.md) | [Bahasa Jepun](../ja/README.md) | [Bahasa Kannada](../kn/README.md) | [Bahasa Korea](../ko/README.md) | [Bahasa Lithuania](../lt/README.md) | [Bahasa Melayu](./README.md) | [Bahasa Malayalam](../ml/README.md) | [Bahasa Marathi](../mr/README.md) | [Bahasa Nepali](../ne/README.md) | [Bahasa Pidgin Nigeria](../pcm/README.md) | [Bahasa Norway](../no/README.md) | [Bahasa Parsi (Farsi)](../fa/README.md) | [Bahasa Poland](../pl/README.md) | [Bahasa Portugis (Brazil)](../pt-BR/README.md) | [Bahasa Portugis (Portugal)](../pt-PT/README.md) | [Bahasa Punjabi (Gurmukhi)](../pa/README.md) | [Bahasa Romania](../ro/README.md) | [Bahasa Rusia](../ru/README.md) | [Bahasa Serbia (Sirilik)](../sr/README.md) | [Bahasa Slovakia](../sk/README.md) | [Bahasa Slovenia](../sl/README.md) | [Bahasa Sepanyol](../es/README.md) | [Bahasa Swahili](../sw/README.md) | [Bahasa Sweden](../sv/README.md) | [Bahasa Tagalog (Filipino)](../tl/README.md) | [Bahasa Tamil](../ta/README.md) | [Bahasa Telugu](../te/README.md) | [Bahasa Thai](../th/README.md) | [Bahasa Turki](../tr/README.md) | [Bahasa Ukraine](../uk/README.md) | [Bahasa Urdu](../ur/README.md) | [Bahasa Vietnam](../vi/README.md) +[Arab](../ar/README.md) | [Benggali](../bn/README.md) | [Bulgaria](../bg/README.md) | [Burma (Myanmar)](../my/README.md) | [Cina (Ringkas)](../zh-CN/README.md) | [Cina (Tradisional, Hong Kong)](../zh-HK/README.md) | [Cina (Tradisional, Macau)](../zh-MO/README.md) | [Cina (Tradisional, Taiwan)](../zh-TW/README.md) | [Kroasia](../hr/README.md) | [Czech](../cs/README.md) | [Denmark](../da/README.md) | [Belanda](../nl/README.md) | [Estonia](../et/README.md) | [Finland](../fi/README.md) | [Perancis](../fr/README.md) | [Jerman](../de/README.md) | [Yunani](../el/README.md) | [Ibrani](../he/README.md) | [Hindi](../hi/README.md) | [Hungary](../hu/README.md) | [Indonesia](../id/README.md) | [Itali](../it/README.md) | [Jepun](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korea](../ko/README.md) | [Lituania](../lt/README.md) | [Melayu](./README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Pidgin Nigeria](../pcm/README.md) | [Norway](../no/README.md) | [Parsi (Farsi)](../fa/README.md) | [Poland](../pl/README.md) | [Portugis (Brazil)](../pt-BR/README.md) | [Portugis (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romania](../ro/README.md) | [Rusia](../ru/README.md) | [Serbia (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Sepanyol](../es/README.md) | [Swahili](../sw/README.md) | [Sweden](../sv/README.md) | [Tagalog (Filipina)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turki](../tr/README.md) | [Ukraine](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnam](../vi/README.md) -> **Lebih suka Klon Secara Tempatan?** +> **Lebih suka Klon secara Tempatan?** > -> Repositori ini termasuk lebih dari 50 terjemahan bahasa yang secara signifikan meningkatkan saiz muat turun. Untuk mengklon tanpa terjemahan, gunakan sparse checkout: +> Repositori ini termasuk lebih 50+ terjemahan bahasa yang secara ketara meningkatkan saiz muat turun. Untuk klon tanpa terjemahan, gunakan sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,147 +33,147 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Ini memberikan anda segala yang anda perlukan untuk menyelesaikan kursus dengan muat turun yang jauh lebih cepat. +> Ini memberikan anda semua keperluan untuk melengkapkan kursus dengan muat turun yang lebih pantas. #### Sertai Komuniti Kami [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Kami sedang menjalankan siri belajar dengan AI di Discord, ketahui lebih lanjut dan sertai kami di [Siri Belajar dengan AI](https://aka.ms/learnwithai/discord) dari 18 - 30 September, 2025. Anda akan mendapat petua dan trik menggunakan GitHub Copilot untuk Sains Data. +Kami mempunyai siri pembelajaran Discord dengan AI yang sedang berlangsung, ketahui lebih lanjut dan sertai kami di [Siri Pembelajaran dengan AI](https://aka.ms/learnwithai/discord) dari 18 - 30 September, 2025. Anda akan mendapat petua dan trik menggunakan GitHub Copilot untuk Sains Data. -![Siri belajar dengan AI](../../translated_images/ms/3.9b58fd8d6c373c20.webp) +![Siri Pembelajaran dengan AI](../../translated_images/ms/3.9b58fd8d6c373c20.webp) # Pembelajaran Mesin untuk Pemula - Kurikulum -> 🌍 Jelajahi dunia sambil kami menyelami Pembelajaran Mesin melalui budaya dunia 🌍 +> 🌍 Melancong ke seluruh dunia sambil meneroka Pembelajaran Mesin melalui budaya dunia 🌍 -Advokat Awan di Microsoft dengan sukacitanya menawarkan kurikulum 12 minggu, 26 pelajaran tentang **Pembelajaran Mesin**. Dalam kurikulum ini, anda akan belajar apa yang kadang-kadang dipanggil **pembelajaran mesin klasik**, menggunakan terutamanya Scikit-learn sebagai perpustakaan dan mengelak pembelajaran mendalam, yang diliputi dalam [kurikulum AI untuk Pemula](https://aka.ms/ai4beginners). Padankan pelajaran ini dengan ['Kurikulum Sains Data untuk Pemula'](https://aka.ms/ds4beginners), juga! +Pengelola Awan di Microsoft dengan sukacitanya menawarkan kurikulum 12 minggu, 26 pelajaran semua tentang **Pembelajaran Mesin**. Dalam kurikulum ini, anda akan belajar tentang apa yang kadangkala dipanggil **pembelajaran mesin klasik**, menggunakan terutamanya Scikit-learn sebagai perpustakaan dan mengelakkan pembelajaran mendalam, yang diliputi dalam [kurikulum AI untuk Pemula](https://aka.ms/ai4beginners) kami. Padankan pelajaran ini dengan ['Kurikulum Sains Data untuk Pemula'](https://aka.ms/ds4beginners) kami juga! -Jelajahi dunia bersama kami sambil kami menerapkan teknik klasik ini pada data dari pelbagai kawasan dunia. Setiap pelajaran merangkumi kuiz pra-dan pasca pelajaran, arahan bertulis untuk menyelesaikan pelajaran, penyelesaian, tugasan, dan banyak lagi. Pedagogi berasaskan projek kami membolehkan anda belajar sambil membina, cara yang terbukti supaya kemahiran baru 'melekat'. +Melancong bersama kami ke seluruh dunia sambil menerapkan teknik klasik ini kepada data dari pelbagai kawasan di dunia. Setiap pelajaran merangkumi kuiz sebelum dan selepas pelajaran, arahan bertulis untuk melengkapkan pelajaran, penyelesaian, tugasan, dan banyak lagi. Pedagogi berasaskan projek kami membolehkan anda belajar sambil membina, cara terbukti supaya kemahiran baru 'melekat'. -**✍️ Terima kasih yang setulusnya kepada penulis kami** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu dan Amy Boyd +**✍️ Terima kasih ikhlas kepada pengarang kami** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu dan Amy Boyd **🎨 Terima kasih juga kepada pelukis ilustrasi kami** Tomomi Imura, Dasani Madipalli, dan Jen Looper -**🙏 Terima kasih istimewa 🙏 kepada penulis, penyemak, dan penyumbang kandungan Microsoft Student Ambassador**, khususnya Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, dan Snigdha Agarwal +**🙏 Terima kasih khas 🙏 kepada penulis, penyemak, dan penyumbang kandungan Duta Pelajar Microsoft kami**, terutamanya Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, dan Snigdha Agarwal -**🤩 Syukur tambahan kepada Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, dan Vidushi Gupta untuk pelajaran R kami!** +**🤩 Terima kasih tambahan kepada Duta Pelajar Microsoft Eric Wanjau, Jasleen Sondhi, dan Vidushi Gupta untuk pelajaran R kami!** -# Memulakan +# Mula -Ikuti langkah ini: -1. **Fork Repositori**: Klik butang "Fork" di sudut kanan atas halaman ini. +Ikuti langkah-langkah ini: +1. **Fork Repositori**: Klik pada butang "Fork" di penjuru kanan atas halaman ini. 2. **Klon Repositori**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [cari semua sumber tambahan untuk kursus ini dalam koleksi Microsoft Learn kami](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [temukan semua sumber tambahan untuk kursus ini dalam koleksi Microsoft Learn kami](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Perlu bantuan?** Semak [Panduan Penyelesaian Masalah](TROUBLESHOOTING.md) untuk penyelesaian isu biasa berkaitan pemasangan, penyediaan, dan pelaksanaan pelajaran. +> 🔧 **Perlukan bantuan?** Semak [Panduan Penyelesaian Masalah](TROUBLESHOOTING.md) kami untuk penyelesaian isu biasa tentang pemasangan, penetapan, dan menjalankan pelajaran. -**[Pelajar](https://aka.ms/student-page)**, untuk menggunakan kurikulum ini, fork seluruh repositori ke akaun GitHub anda dan lengkapkan latihan sendiri atau bersama kumpulan: +**[Pelajar](https://aka.ms/student-page)**, untuk menggunakan kurikulum ini, buat fork keseluruhan repo ke akaun GitHub anda sendiri dan lengkapkan latihan secara sendiri atau dalam kumpulan: - Mulakan dengan kuiz sebelum kuliah. -- Baca kuliah dan lengkapkan aktiviti, berhenti dan renungkan setiap pemeriksaan pengetahuan. -- Cuba cipta projek dengan memahami pelajaran dan bukannya hanya menjalankan kod penyelesaian; namun kod tersebut tersedia dalam folder `/solution` untuk setiap pelajaran berorientasikan projek. +- Baca kuliah dan lengkapkan aktiviti, berhenti sebentar dan merenung pada setiap pemeriksaan pengetahuan. +- Cuba buat projek dengan memahami pelajaran dan bukannya hanya menjalankan kod penyelesaian; walau bagaimana pun, kod tersebut tersedia dalam folder `/solution` pada setiap pelajaran berfokus projek. - Ambil kuiz selepas kuliah. - Lengkapkan cabaran. - Lengkapkan tugasan. -- Selepas menyelesaikan kumpulan pelajaran, lawati [Papan Perbincangan](https://github.com/microsoft/ML-For-Beginners/discussions) dan "belajar dengan lantang" dengan mengisi rubrik PAT yang sesuai. 'PAT' ialah Alat Penilaian Kemajuan yang merupakan rubrik yang anda isi untuk memperkayakan pembelajaran. Anda juga boleh beri reaksi kepada PAT lain supaya kita boleh belajar bersama. +- Selepas melengkapkan satu kumpulan pelajaran, lawati [Papan Perbincangan](https://github.com/microsoft/ML-For-Beginners/discussions) dan "belajar secara terbuka" dengan mengisi rubrik PAT yang sesuai. 'PAT' adalah Alat Penilaian Kemajuan yang merupakan rubrik yang anda isi untuk meningkatkan pembelajaran. Anda juga boleh memberi reaksi kepada PAT lain supaya kita boleh belajar bersama. -> Untuk pembelajaran lanjut, kami mengesyorkan mengikuti modul dan laluan pembelajaran [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Untuk kajian lanjut, kami mengesyorkan mengikuti modul dan laluan pembelajaran [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ini. -**Guru**, kami telah [menyediakan beberapa cadangan](for-teachers.md) tentang cara menggunakan kurikulum ini. +**Guru**, kami telah [menyediakan beberapa cadangan](for-teachers.md) mengenai cara menggunakan kurikulum ini. --- ## Video panduan -Sesetengah pelajaran tersedia dalam bentuk video pendek. Anda boleh dapati semua ini di dalam pelajaran, atau di [senarai main ML untuk Pemula di saluran YouTube Pembangun Microsoft](https://aka.ms/ml-beginners-videos) dengan mengklik imej di bawah. +Beberapa pelajaran tersedia dalam video pendek. Anda boleh menjumpai semuanya dalam pelajaran tersebut, atau di [senarai main ML for Beginners di saluran YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) dengan mengklik imej di bawah. [![Banner ML untuk pemula](../../translated_images/ms/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Kenali Pasukan +## Temui Pasukan -[![Video Promo](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Video promosi](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif oleh** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klik imej di atas untuk video tentang projek dan orang yang menciptakannya! +> 🎥 Klik imej di atas untuk video tentang projek dan orang-orang yang menciptanya! --- ## Pedagogi -Kami memilih dua prinsip pedagogi semasa membina kurikulum ini: memastikan ia berasaskan projek **hands-on** dan termasuk **kuiz kerap**. Selain itu, kurikulum ini mempunyai **tema** yang sama untuk memberikan kesinambungan. +Kami memilih dua prinsip pedagogi semasa membina kurikulum ini: memastikan ia adalah berasaskan projek yang **praktikal** dan bahawa ia termasuk **kuiz kerap**. Tambahan, kurikulum ini mempunyai **tema** yang sama untuk memberikan kesepaduan. -Dengan memastikan kandungan selaras dengan projek, proses menjadi lebih menarik bagi pelajar dan ingatan konsep akan dipertingkatkan. Tambahan pula, kuiz rendah risiko sebelum kelas menetapkan niat pelajar untuk mempelajari topik, manakala kuiz kedua selepas kelas memastikan ingatan lebih baik. Kurikulum ini direka supaya fleksibel dan menyeronokkan dan boleh diambil secara keseluruhan atau sebahagian. Projek bermula dari kecil dan menjadi semakin kompleks pada penghujung kitaran 12 minggu. Kurikulum ini juga merangkumi posskrip tentang aplikasi sebenar ML, yang boleh digunakan sebagai kredit tambahan atau asas perbincangan. +Dengan memastikan kandungan sejajar dengan projek, proses menjadi lebih menarik untuk pelajar dan memori konsep akan bertambah baik. Tambahan pula, kuiz berisiko rendah sebelum kelas menetapkan niat pelajar untuk mempelajari topik, manakala kuiz kedua selepas kelas memastikan pemahaman makin kukuh. Kurikulum ini direka agar fleksibel dan menyeronokkan dan boleh diambil secara menyeluruh atau sebahagian. Projek bermula kecil dan menjadi semakin kompleks menjelang akhir kitaran 12 minggu. Kurikulum ini juga termasuk posskrip tentang aplikasi dunia sebenar bagi pembelajaran mesin, yang boleh digunakan sebagai kredit tambahan atau sebagai asas perbincangan. -> Cari [Kod Etika](CODE_OF_CONDUCT.md), [Sumbangan](CONTRIBUTING.md), [Terjemahan](..), dan panduan [Penyelesaian Masalah](TROUBLESHOOTING.md). Kami mengalu-alukan maklum balas membina anda! +> Temui [Kod Etika kami](CODE_OF_CONDUCT.md), [Menyumbang](CONTRIBUTING.md), [Terjemahan](..), dan garis panduan [Penyelesaian Masalah](TROUBLESHOOTING.md). Kami mengalu-alukan maklum balas membina anda! -## Setiap pelajaran mengandungi +## Setiap pelajaran termasuk - sketchnote pilihan - video tambahan pilihan -- panduan video (sesetengah pelajaran sahaja) -- [kuiz pemanasan pra-kuliah](https://ff-quizzes.netlify.app/en/ml/) +- video panduan (sebahagian pelajaran sahaja) +- [kuiz pemanasan sebelum kuliah](https://ff-quizzes.netlify.app/en/ml/) - pelajaran bertulis -- bagi pelajaran projek, panduan langkah demi langkah cara membina projek +- untuk pelajaran berasaskan projek, panduan langkah demi langkah untuk membina projek - pemeriksaan pengetahuan - cabaran - bacaan tambahan - tugasan -- [kuiz pasca kuliah](https://ff-quizzes.netlify.app/en/ml/) - -> **Nota tentang bahasa**: Pelajaran ini terutamanya ditulis dalam Python, tetapi banyak juga tersedia dalam R. Untuk menyelesaikan pelajaran R, pergi ke folder `/solution` dan cari pelajaran R. Ia mengandungi sambungan .rmd yang merupakan fail **R Markdown** yang boleh difahami sebagai penyatuan `potongan kod` (R atau bahasa lain) dan `header YAML` (yang mengarah bagaimana memformat output seperti PDF) dalam dokumen `Markdown`. Oleh demikian, ia berfungsi sebagai rangka kerja penulisan yang cemerlang untuk sains data kerana membolehkan anda menggabungkan kod, output, dan pemikiran anda dengan menulis dalam Markdown. Selain itu, dokumen R Markdown boleh dihasilkan dalam format output seperti PDF, HTML, atau Word. -> **Catatan mengenai kuiz**: Semua kuiz terkandung dalam [folder Aplikasi Kuiz](../../quiz-app), untuk 52 kuiz keseluruhan dengan tiga soalan setiap satu. Ia dipautkan dari dalam pelajaran tetapi aplikasi kuiz boleh dijalankan secara tempatan; ikut arahan di dalam folder `quiz-app` untuk hos tempatan atau penerapan ke Azure. - -| Nombor Pelajaran | Topik | Kumpulan Pelajaran | Objektif Pembelajaran | Pelajaran Dipautkan | Penulis | -| :---------------: | :------------------------------------------------------------: | :----------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Pengenalan kepada pembelajaran mesin | [Pengenalan](1-Introduction/README.md) | Pelajari konsep asas di sebalik pembelajaran mesin | [Pelajaran](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Sejarah pembelajaran mesin | [Pengenalan](1-Introduction/README.md) | Pelajari sejarah yang mendasari bidang ini | [Pelajaran](1-Introduction/2-history-of-ML/README.md) | Jen dan Amy | -| 03 | Keadilan dan pembelajaran mesin | [Pengenalan](1-Introduction/README.md) | Apakah isu falsafah penting mengenai keadilan yang perlu dipertimbangkan oleh pelajar semasa membina dan menggunakan model ML? | [Pelajaran](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Teknik untuk pembelajaran mesin | [Pengenalan](1-Introduction/README.md) | Apakah teknik yang digunakan oleh penyelidik ML untuk membina model ML? | [Pelajaran](1-Introduction/4-techniques-of-ML/README.md) | Chris dan Jen | -| 05 | Pengenalan kepada regresi | [Regresi](2-Regression/README.md) | Mula menggunakan Python dan Scikit-learn untuk model regresi | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Harga labu Amerika Utara 🎃 | [Regresi](2-Regression/README.md) | Visualisasikan dan bersihkan data sebagai persediaan untuk ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Harga labu Amerika Utara 🎃 | [Regresi](2-Regression/README.md) | Bina model regresi linear dan polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen dan Dmitry • Eric Wanjau | -| 08 | Harga labu Amerika Utara 🎃 | [Regresi](2-Regression/README.md) | Bina model regresi logistik | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Aplikasi Web 🔌 | [Aplikasi Web](3-Web-App/README.md) | Bina aplikasi web untuk menggunakan model terlatih anda | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Pengenalan kepada klasifikasi | [Klasifikasi](4-Classification/README.md) | Bersihkan, persiapkan, dan visualisasikan data anda; pengenalan kepada klasifikasi | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen dan Cassie • Eric Wanjau | -| 11 | Masakan Asia dan India yang lazat 🍜 | [Klasifikasi](4-Classification/README.md) | Pengenalan kepada pengelas | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen dan Cassie • Eric Wanjau | -| 12 | Masakan Asia dan India yang lazat 🍜 | [Klasifikasi](4-Classification/README.md) | Lebih banyak pengelas | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen dan Cassie • Eric Wanjau | -| 13 | Masakan Asia dan India yang lazat 🍜 | [Klasifikasi](4-Classification/README.md) | Bina aplikasi web recommender menggunakan model anda | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Pengenalan kepada pengelompokan | [Pengelompokan](5-Clustering/README.md) | Bersihkan, persiapkan, dan visualisasikan data anda; Pengenalan kepada pengelompokan | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Meneroka Selera Muzik Nigeria 🎧 | [Pengelompokan](5-Clustering/README.md) | Terokai kaedah pengelompokan K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Pengenalan kepada pemprosesan bahasa semula jadi ☕️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Pelajari asas mengenai NLP dengan membina bot mudah | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Tugasan NLP biasa ☕️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Mendalami pengetahuan NLP dengan memahami tugasan biasa yang diperlukan dalam mengendalikan struktur bahasa | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Penterjemahan dan analisis sentimen ♥️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Penterjemahan dan analisis sentimen dengan Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hotel romantik di Eropah ♥️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hotel romantik di Eropah ♥️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Pengenalan kepada peramalan siri masa | [Siri masa](7-TimeSeries/README.md) | Pengenalan kepada peramalan siri masa | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Penggunaan Kuasa Dunia ⚡️ - peramalan siri masa dengan ARIMA | [Siri masa](7-TimeSeries/README.md) | Peramalan siri masa dengan ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Penggunaan Kuasa Dunia ⚡️ - peramalan siri masa dengan SVR | [Siri masa](7-TimeSeries/README.md) | Peramalan siri masa dengan Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Pengenalan kepada pembelajaran penguatan | [Pembelajaran penguatan](8-Reinforcement/README.md) | Pengenalan kepada pembelajaran penguatan dengan Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Bantu Peter elak serigala! 🐺 | [Pembelajaran penguatan](8-Reinforcement/README.md) | Pembelajaran penguatan Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Catatan Akhir | Senario dan aplikasi ML dunia sebenar | [ML di Alam Liar](9-Real-World/README.md) | Aplikasi dunia sebenar yang menarik dan mendedahkan ML klasik | [Pelajaran](9-Real-World/1-Applications/README.md) | Pasukan | -| Catatan Akhir | Pengesanan Debug Model dalam ML menggunakan papan pemuka RAI | [ML di Alam Liar](9-Real-World/README.md) | Pengesanan Debug Model dalam Pembelajaran Mesin menggunakan komponen papan pemuka Responsible AI | [Pelajaran](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [kuiz selepas kuliah](https://ff-quizzes.netlify.app/en/ml/) +> **Satu nota tentang bahasa**: Pelajaran ini terutamanya ditulis dalam Python, tetapi banyak juga tersedia dalam R. Untuk menyelesaikan pelajaran R, pergi ke folder `/solution` dan cari pelajaran R. Mereka termasuk sambungan .rmd yang mewakili fail **R Markdown** yang boleh ditakrifkan dengan mudah sebagai penyisipan `code chunks` (dari R atau bahasa lain) dan `YAML header` (yang mengarah cara memformat output seperti PDF) dalam `dokumen Markdown`. Oleh itu, ia berfungsi sebagai rangka kerja pengarang yang terbaik untuk sains data kerana ia membenarkan anda menggabungkan kod anda, outputnya, dan pemikiran anda dengan membenarkan anda menulisnya dalam Markdown. Tambahan pula, dokumen R Markdown boleh dihasilkan ke format output seperti PDF, HTML, atau Word. + +> **Satu nota tentang kuiz**: Semua kuiz terdapat dalam [folder Aplikasi Kuiz](../../quiz-app), dengan jumlah 52 kuiz yang mengandungi tiga soalan setiap satu. Ia dipautkan dari dalam pelajaran tetapi aplikasi kuiz boleh dijalankan secara tempatan; ikut arahan dalam folder `quiz-app` untuk hoskan secara tempatan atau deploy ke Azure. + +| Nombor Pelajaran | Topik | Kumpulan Pelajaran | Objektif Pembelajaran | Pelajaran Berkaitan | Penulis | +| :--------------: | :------------------------------------------------------------: | :----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | Pengenalan kepada pembelajaran mesin | [Pengenalan](1-Introduction/README.md) | Pelajari konsep asas di sebalik pembelajaran mesin | [Pelajaran](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Sejarah pembelajaran mesin | [Pengenalan](1-Introduction/README.md) | Pelajari sejarah di sebalik bidang ini | [Pelajaran](1-Introduction/2-history-of-ML/README.md) | Jen dan Amy | +| 03 | Keadilan dan pembelajaran mesin | [Pengenalan](1-Introduction/README.md) | Apakah isu falsafah penting tentang keadilan yang pelajar harus pertimbangkan apabila membina dan menggunakan model ML? | [Pelajaran](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Teknik-teknik untuk pembelajaran mesin | [Pengenalan](1-Introduction/README.md) | Apakah teknik yang digunakan para penyelidik ML untuk membina model ML? | [Pelajaran](1-Introduction/4-techniques-of-ML/README.md) | Chris dan Jen | +| 05 | Pengenalan kepada regresi | [Regresi](2-Regression/README.md) | Mulakan dengan Python dan Scikit-learn untuk model regresi | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Harga labu Amerika Utara 🎃 | [Regresi](2-Regression/README.md) | Visualisasikan dan bersihkan data sebagai persediaan untuk ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Harga labu Amerika Utara 🎃 | [Regresi](2-Regression/README.md) | Bina model regresi linear dan polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen dan Dmitry • Eric Wanjau | +| 08 | Harga labu Amerika Utara 🎃 | [Regresi](2-Regression/README.md) | Bina model regresi logistik | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Aplikasi Web 🔌 | [Aplikasi Web](3-Web-App/README.md) | Bina aplikasi web untuk menggunakan model yang telah dilatih | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Pengenalan kepada pengelasan | [Pengelasan](4-Classification/README.md) | Bersihkan, sediakan, dan visualisasikan data anda; pengenalan kepada pengelasan | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen dan Cassie • Eric Wanjau | +| 11 | Masakan Asia dan India yang lazat 🍜 | [Pengelasan](4-Classification/README.md) | Pengenalan kepada pengelasan | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen dan Cassie • Eric Wanjau | +| 12 | Masakan Asia dan India yang lazat 🍜 | [Pengelasan](4-Classification/README.md) | Lebih banyak pengelasan | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen dan Cassie • Eric Wanjau | +| 13 | Masakan Asia dan India yang lazat 🍜 | [Pengelasan](4-Classification/README.md) | Bina aplikasi web pembesan menggunakan model anda | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Pengenalan kepada pengelompokan | [Pengelompokan](5-Clustering/README.md) | Bersihkan, sediakan, dan visualisasikan data anda; Pengenalan kepada pengelompokan | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Menerokai citarasa muzik Nigeria 🎧 | [Pengelompokan](5-Clustering/README.md) | Terokai kaedah pengelompokan K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Pengenalan kepada pemprosesan bahasa semula jadi ☕️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Pelajari asas NLP dengan membina bot mudah | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Tugas NLP biasa ☕️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Memperdalam pengetahuan NLP anda dengan memahami tugas biasa yang diperlukan apabila berurusan dengan struktur bahasa | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Terjemahan dan analisis sentimen ♥️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Terjemahan dan analisis sentimen dengan Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hotel romantik di Eropah ♥️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hotel romantik di Eropah ♥️ | [Pemprosesan bahasa semula jadi](6-NLP/README.md) | Analisis sentimen dengan ulasan hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Pengenalan kepada ramalan siri masa | [Siri masa](7-TimeSeries/README.md) | Pengenalan kepada ramalan siri masa | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Penggunaan Kuasa Dunia ⚡️ - ramalan siri masa dengan ARIMA | [Siri masa](7-TimeSeries/README.md) | Ramalan siri masa dengan ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Penggunaan Kuasa Dunia ⚡️ - ramalan siri masa dengan SVR | [Siri masa](7-TimeSeries/README.md) | Ramalan siri masa dengan Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Pengenalan kepada pembelajaran pengukuhan | [Pembelajaran pengukuhan](8-Reinforcement/README.md) | Pengenalan kepada pembelajaran pengukuhan dengan Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Bantu Peter elak serigala! 🐺 | [Pembelajaran pengukuhan](8-Reinforcement/README.md) | Gim pembelajaran pengukuhan | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Posskrip | Senario dan aplikasi ML dunia sebenar | [ML di Alam Liar](9-Real-World/README.md) | Aplikasi dunia sebenar yang menarik dan memberitahu dalam ML klasik | [Pelajaran](9-Real-World/1-Applications/README.md) | Pasukan | +| Posskrip | Penyahpepijatan Model dalam ML menggunakan papan pemuka RAI | [ML di Alam Liar](9-Real-World/README.md) | Penyahpepijatan Model dalam Pembelajaran Mesin menggunakan komponen papan pemuka Responsible AI | [Pelajaran](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [cari semua sumber tambahan untuk kursus ini dalam koleksi Microsoft Learn kami](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Akses luar talian -Anda boleh menjalankan dokumentasi ini secara luar talian dengan menggunakan [Docsify](https://docsify.js.org/#/). Fork repositori ini, [pasang Docsify](https://docsify.js.org/#/quickstart) pada komputer tempatan anda, kemudian di folder root repositori ini, taip `docsify serve`. Laman web akan dihidangkan pada port 3000 di localhost anda: `localhost:3000`. +Anda boleh menjalankan dokumentasi ini luar talian dengan menggunakan [Docsify](https://docsify.js.org/#/). Garapkan repo ini, [pasang Docsify](https://docsify.js.org/#/quickstart) pada mesin tempatan anda, dan kemudian di folder root repo ini, taip `docsify serve`. Laman web akan dihidangkan di port 3000 di localhost anda: `localhost:3000`. ## PDF -Cari pdf kurikulum dengan pautan [di sini](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Dapatkan pdf kurikulum dengan pautan [di sini](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Kursus Lain +## 🎒 Kursus Lain -Pasukan kami menghasilkan kursus lain! Lihat: +Pasukan kami menghasilkan kursus lain! Semak: ### LangChain @@ -182,16 +182,16 @@ Pasukan kami menghasilkan kursus lain! Lihat: [![LangChain untuk Pemula](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Ejen +### Azure / Edge / MCP / Agents [![AZD untuk Pemula](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI untuk Pemula](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP untuk Pemula](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Ejen AI untuk Pemula](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Siri AI Generatif -[![Generative AI untuk Pemula](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +### Siri Generatif AI +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) @@ -199,40 +199,40 @@ Pasukan kami menghasilkan kursus lain! Lihat: --- ### Pembelajaran Teras -[![ML untuk Pemula](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Sains Data untuk Pemula](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI untuk Pemula](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Keselamatan Siber untuk Pemula](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Pembangunan Web untuk Pemula](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT untuk Pemula](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![Pembangunan XR untuk Pemula](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Siri Copilot -[![Copilot untuk Pemrograman Berpasangan AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot untuk C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Pengembaraan Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Mendapatkan Bantuan -Jika anda tersekat atau mempunyai sebarang soalan tentang membina aplikasi AI. Sertai pembelajar lain dan pembangun berpengalaman dalam perbincangan mengenai MCP. Ia adalah komuniti yang menyokong di mana soalan dialu-alukan dan pengetahuan dikongsi dengan bebas. +Jika anda tersekat atau mempunyai sebarang soalan tentang membina aplikasi AI. Sertai pelajar lain dan pembangun berpengalaman dalam perbincangan mengenai MCP. Ia adalah komuniti yang menyokong di mana soalan dialu-alukan dan pengetahuan dikongsi dengan bebas. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Jika anda mempunyai maklum balas produk atau menemui ralat semasa membina, lawati: +Jika anda mempunyai maklum balas tentang produk atau ralat semasa membina, lawati: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Petua Pembelajaran Tambahan -- Semak buku nota selepas setiap pelajaran untuk pemahaman yang lebih baik. -- Amalkan melaksanakan algoritma sendiri. -- Terokai set data dunia nyata menggunakan konsep yang telah dipelajari. +- Semak semula buku nota selepas setiap pelajaran untuk pemahaman yang lebih baik. +- Latih melaksanakan algoritma sendiri. +- Terokai set data dunia sebenar menggunakan konsep yang dipelajari. --- **Penafian**: -Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk mencapai ketepatan, sila ambil perhatian bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sah. Untuk maklumat kritikal, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggungjawab atas sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. +Dokumen ini telah diterjemahkan menggunakan perkhidmatan terjemahan AI [Co-op Translator](https://github.com/Azure/co-op-translator). Walaupun kami berusaha untuk ketepatan, sila ambil maklum bahawa terjemahan automatik mungkin mengandungi kesilapan atau ketidaktepatan. Dokumen asal dalam bahasa asalnya harus dianggap sebagai sumber yang sahih. Untuk maklumat kritikal, terjemahan profesional oleh manusia adalah disyorkan. Kami tidak bertanggungjawab terhadap sebarang salah faham atau salah tafsir yang timbul daripada penggunaan terjemahan ini. \ No newline at end of file diff --git a/translations/my/.co-op-translator.json b/translations/my/.co-op-translator.json index 6574f822c..4f68fbbfd 100644 --- a/translations/my/.co-op-translator.json +++ b/translations/my/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "my" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:34:57+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:33:23+00:00", "source_file": "README.md", "language_code": "my" }, diff --git a/translations/my/README.md b/translations/my/README.md index 840e8eae3..3a56fcab2 100644 --- a/translations/my/README.md +++ b/translations/my/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 ဘာသာစကားများစွာအထောက်အပံ့ +### 🌐 ဘာသာစကားပေါင်းများစွာ အထောက်အပံ့ -#### GitHub Action မှတဆင့်ထောက်ခံသည် (အလိုအလျောက်နှင့် အမြဲတမ်းအသစ်ရှိသော) +#### GitHub Action ဖြင့် ထောက်ပံ့ထားပြီး (အလိုအလျောက်နှင့် အမြဲအသစ်ဖြစ်နေသော) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](./README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](./README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **တည်နေရာတွင် ရှာဖွေရန်ဥလိုပါသလား?** +> **ဒေသဆိုင်ရာနေရာတွင်ကလုန်းချင်ပါသလား?** > -> ဒီ repository မှာ ဘာသာစကား ၅၀ ကျော် ပါဝင်ပြီး ဒေါင်းလုပ်အရွယ်အစားကို တဖြည်းဖြည်း တိုးပြောသွားပါတယ်။ ဘာသာစကားများမပါဘဲ clone လုပ်ချင်ရင် sparse checkout ကို အသုံးပြုပါ။ +> ဤ repository တွင် ဘာသာစကား ၅၀ ကျော်၏ ဘာသာပြန်ထားမှုများပါရှိပြီး ဒေါင်းလုပ်အရွယ်အစားကို အလွန်တက်ကြွစေပါသည်။ ဘာသာပြန်မှုများမပါဘဲ ကလုန်းချင်ပါက sparse checkout ကို အသုံးပြုပါ: > > **Bash / macOS / Linux:** > ```bash @@ -33,145 +33,145 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> ဒါထက် ပိုပြီး လျင်မြန်စွာ ဒေါင်းလုပ်ပြီး ကိုယ့်တန်းမမြန်လုပ်တော့မယ့် အရာအားလုံး ရရှိလိမ့်မယ်။ +> ၎င်းသည် သင်တန်းကို အလျင်အမြန်ပြီး အဆင်ပြေစွာ ပြီးမြောက်စေရန် လိုအပ်သမျှအားလုံးကို ပေးပါသည်။ -#### ကျွန်ုပ်တို့ရဲ့အသိုင်းအဝိုင်းကို ဝင်ပါ +#### ကျွန်ုပ်တို့၏အသိုင်းအဝိုင်းတွင် ပါဝင်ဆောင်ရွက်ခြင်း [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -AI နဲ့ သင်ယူဖို့ Discord လေ့လာမှု ဆက်တိုက်ပြုလုပ်နေပြီး၊ ၂၀၂၅ ခုနှစ် စက်တင်ဘာလ ၁၈ ရက်မှ ၃၀ ရက်အထိ [Learn with AI Series](https://aka.ms/learnwithai/discord) မှာ ပိုမိုသိရှိပြီး GitHub Copilot ကို Data Science အတွက် အသုံးချနည်းအကြံဉာဏ်များ ရယူနိုင်ပါသည်။ +ကျွန်ုပ်တို့တွင် Discord တွင် AI နဲ့ လေ့လာခြင်း များ ဆက်လက် လုပ်ဆောင်နေသည်။ ပိုမိုသိရှိလိုပါက [Learn with AI Series](https://aka.ms/learnwithai/discord) တွင် ၂၀၂၅ ခုနှစ် စက်တင်ဘာလ ၁၈ ရက်မှ ၃၀ ရက်အထိ စိတ်ဝင်စားဖိတ်ကြားပါသည်။ GitHub Copilot ကို Data Science အတွက် အသုံးပြုနည်းများကို သင်ယူခွင့်ရပါမည်။ ![Learn with AI series](../../translated_images/my/3.9b58fd8d6c373c20.webp) -# Machine Learning for Beginners - သင်ရိုး +# စက်လေ့လာမှု (Machine Learning) စတင်သင်ယူခြင်း - သင်တန်းအစီအစဉ် -> 🌍 ကမ္ဘာတစ်ဝှမ်း စူးစမ်းလေ့လာရင်း Machine Learning ကို ကမ္ဘာ့ယဉ်ကျေးမှုများမှတဆင့် သိရှိသွားကြမယ် 🌍 +> 🌍 ကမ္ဘာတဝှမ်း လှည့်လည် သင်ကြားသည့် စက်လေ့လာမှုနှင့် ကမ္ဘာ့ယဉ်ကျေးမှုများ 🌍 -Microsoft ၏ Cloud Advocates တွေက ၁၂ အပတ်ကြာ ၂၆ အပိုင်း သင်ရိုးအစီအစဉ် ‌**Machine Learning** အကြောင်း တစ်ခုပေးနေပါတယ်။ ဒီသင်ရိုးတွင် မကြာခဏ "classic machine learning" လို့ခေါ်တဲ့ ယဉ်ကျေးမှုနှင့်နီးစပ်တဲ့ နည်းလမ်းတွေကို Scikit-learn library ကို အနှစ်သာရအဖြစ် အသုံးပြု သင်ကြားပါမယ်။ ထို့အပြင် နက်နဲတဲ့လေ့လာမှု (deep learning) ကိုတော့ ကျွန်ုပ်တို့ရဲ့ [AI for Beginners' curriculum](https://aka.ms/ai4beginners) မှာ ပါဝင်သည်။ ဒီသင်ရိုးကို ကျွန်ုပ်တို့ရဲ့ ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) နဲ့ ဖက်တူ အသုံးပြုနိုင်ပါတယ်။ +Microsoft ၏ Cloud Advocates မှ စက်လေ့လာမှုနှင့် ပတ်သက်သော အပတ် ၁၂ ကြာ၊ သင်ခန်းစာ ၂၆ ခုပါသော သင်တန်းအစီအစဉ်အား ပူဇော်ဂုဏ်ပြု၍ တင်ဆက်လိုက်ပါသည်။ ဤသင်တန်းအစီအစဉ်တွင် ရိုးရာစက်လေ့လာမှုကို ကျယ်ပြန့်စွာ သိရှိမှာဖြစ်ပြီး Scikit-learn ကို အသုံးပြုကာ အခြားလုပ်ဆောင်နည်းများထက် နက္ခတ်ရန်လေ့လာမှုများ(Deep Learning) မပါဝင်ပါ၊ ၎င်းကို ကျွန်ုပ်တို့၏ [AI for Beginners' curriculum](https://aka.ms/ai4beginners) တွင် ပါဝင်သည်။ ထို့အပြင် ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) နှင့် တွဲဖက်၍ သင်ယူနိုင်ပါသည်။ -ကမ္ဘာတစ်ဝှမ်း ပတ်ပြီး Classic နည်းလမ်းတွေကို ကမ္ဘာတစ်ဝှမ်းမှ ဒေတာများနှင့်အတူ ပြုလုပ်ကြမယ်။ အပိုင်းတိုင်းတွင် လေ့လာခွင့် စမ်းသပ်မှုများ၊ အညွှန်းရေး၊ ဖြေရှင်းချက်၊ လုပ်ငန်းတာဝန်များ ပါဝင်ပါသည်။ ကြောင်းဖြင့် သင်ယူခြင်းကို လုပ်ငန်းပေါ်တွင် အခြေခံပြီး သင်ကြားပေးသောနည်းလမ်းဖြစ်သည်။ +ကမ္ဘာတစ်ဝှမ်း လှည့်လည် ဘာသာရပ်ကြီးများမှ ရရှိသော ဒေတာများကို အသုံးပြု၍ ရိုးရာ စက်လေ့လာမှုနည်းများကို အသုံးပြုရာတွင် ဤသင်ခန်းစာများ လေ့လာသွားပါမည်။ လူကြိုက်များသော သင်ခန်းစာအပိုင်းများတွင် သင်ခန်းစာ မတိုင်မီနှင့်ပြီးသော အမြင်အာရုံ စစ်ဆေးမှုများ၊ ရေးသားချက်နဲ့ လေ့လာမည့်အတိုင်းဆောင်ရွက်ရမည့် အပိုင်းများ၊ ဖြေရှင်းချက်များ၊ တာဝန်ပေးအပ်ချက်များ ပါဝင်သည်။ ပရောဂျက်အခြေပြု သင်ကြားပုံစံက အသစ်သင်ယူသူများအတွက် စွဲမက်စေခြင်းအတွက် ထိရောက်သော နည်းလမ်းဖြစ်သည်။ -**✍️ စာရေးသားသူများအား ကျေးဇူးအထူးတင်ပါသည်** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu, Amy Boyd +**✍️ ကျွန်ုပ်တို့၏ မူရင်းစာရေးသူများအား အထူးကျေးဇူးတင်ရှိပါသည်** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu နှင့် Amy Boyd -**🎨 ပုံဖော်သူများကိုလည်း ကျေးဇူးတင်ပါသည်** Tomomi Imura, Dasani Madipalli, နှင့် Jen Looper +**🎨 ပုံဖော်သူများအားလည်း ကျေးဇူးအထူးတင်ရှိပါသည်** 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 တို့အား ကျေးဇူးအထူးတင်ပါသည် 🙏** +**🙏 Microsoft Student Ambassador များဖြစ်သော စာရေးသူများ၊ ပြန်လည်သုံးသပ်သူများ၊ အကြောင်းအရာထောက်ပံ့သူများ အထူးကျေးဇူးတင်ရှိပါသည်** Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, နှင့် Snigdha Agarwal ဒီလူတွေ အထူးပါဝင်သည်။ -**🤩 Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi နှင့် Vidushi Gupta တို့လည်း R သင်ခန်းစာများအတွက် ကျေးဇူးအထူးတင်ရှိပါသည်!** +**🤩 ကျွန်ုပ်တို့၏ R သင်ခန်းစာများအတွက် Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, နှင့် Vidushi Gupta တို့အား ထပ်မံကျေးဇူးအများကြီးတင်ရှိပါသည်!** -# စတင်ရန် +# စတင်အသုံးပြုခြင်း -အဆင့်ဆင့် လုပ်ဆောင်နိုင်ရန် -1. **Repository ကို Fork လုပ်ရန်**: ဒီစာမျက်နှာ၏ညာဘက်အပေါ်တန်းရှိ "Fork" ခလုတ်ကို နှိပ်ပါ။ -2. **Repository ကို Clone လုပ်ရန်**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +အောက်ပါအဆင့်များကို လိုက်နာပါ။ +1. **Repository ကို Fork လုပ်ခြင်း**: ဤစာမျက်နှာ၏ အပေါ်ယံညာဘက်ရှိ "Fork" ခလုတ်ကို နှိပ်ပါ။ +2. **Repository ကို Clone လုပ်ခြင်း**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [ဒီသင်ခန်းစာအတွက် ထပ်ဆောင်းအရင်းအမြစ်များအားလုံးကို Microsoft Learn collection မှာရှာပါ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [ဤသင်တန်းနှင့်ပတ်သက်သည့် အပိုဆောင်းရင်းမြစ်များအား Microsoft Learn ခုံကြပ်မှုတွင် တွေ့ရှိနိုင်ပါသည်](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **ကူညီမှုလိုပါသလား?** ထည့်သွင်းခြင်း၊ အဆင်သင့်ပြင်ဆင်ခြင်း၊ သင်ခန်းစာများ ဆောင်ရွက်ရာတွင် ဖြစ်တတ်သော ပြဿနာများအတွက် [Troubleshooting Guide](TROUBLESHOOTING.md) ကို စစ်ဆေးပါ။ +> 🔧 **ကူညီရန်လိုအပ်ပါသလား?** ထည့်သွင်းခြင်း၊ ဆက်တင်အတည်ပြုခြင်းနှင့် သင်ခန်းစာများ ဆောင်ရွက်ရာတွင် တွေ့ကြုံနေရသော ပြဿနာများအတွက် [ပြဿနာဖြေရှင်းလမ်းညွှန်](TROUBLESHOOTING.md) ကို ကြည့်ရှုပါ။ -**[ကျောင်းသားများ](https://aka.ms/student-page)**၊ ဒီသင်ရိုးကို အသုံးပြုပြီး သင်ကြားမှုများ ပြုလုပ်ရန် ရွေးချယ်ထားသော GitHub အကောင့်သို့ စာရင်းပါသော သင်ရိုးတစ်ခုလုံးကို fork လုပ်ပြီး ကိုယ်တိုင် သို့မဟုတ် အုပ်စုဖြင့် လေ့လာနိုင်ပါသည်။ +**[ကျောင်းသားများ](https://aka.ms/student-page)**၊ ဤသင်တန်းအစီအစဉ်ကို အသုံးပြုလိုပါက တပတ်လုံးကို ကိုယ့် GitHub အကောင့်သို့ fork လုပ်ပြီး လေ့ကျင့်ခန်းများကို ကိုယ့်အဖွဲ့သို့မဟုတ် တစ်ယောက်တည်း ပြီးမြောက်စေပါ။ -- သင်ခန်းစာမတိုင်မီ စမ်းသပ်ချက်ဖြင့် စတင်ပါ။ -- သင်ခန်းစာကို ဖတ်၍ လေ့လာမှုများပြီး knowledge check ရပ်ကြောင်းများတွင် ထိုင်ပြီး သဘောပေါက်မှုရှိစေရန်ဖြစ်ပါသည်။ -- သင်ခန်းစာများကို နားလည်မှုပေါ်မူတည်၍ ကိုယ့်အဖန်ဖြင့် project များ ဖန်တီးကြည့်ပါ၊ သို့သော် solution code ကိုလည်း project များမှ /solution ဖိုလ်ဒါတွင် ရနိုင်ပါသည်။ -- သင်ခန်းစာပြီးလျင် post-lecture စမ်းသပ်ချက်ကို ဖြေဆိုပါ။ -- စိန်ခေါ်မှုများကို ပြီးမြောက်ပါ။ -- လုပ်ငန်းတာဝန်များကို ပြီးမြောက်ပါ။ -- သင်ခန်းစာအုပ်စုတစ်ခု သင်ယူပြီးသည့်နောက် [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) ကို သွားရောက်ပြီး PAT rubric ကို ဖြည့်၍ “learn out loud” လုပ်ပါ။ 'PAT' ဆိုသည်မှာ သင်၏တိုးတက်မှုကို အကဲဖြတ်ရန် အသုံးပြုသော ဖွဲ့စည်းထားသော စံနှုန်းဖြစ်သည်။ အခြား PAT များကိုလည်း တုံ့ပြန်မှု ပေးနိုင်၍ နှစ်ဦးနှစ်ဖက် သင်ယူနိုင်ပါသည်။ +- หลักสูตรก่อนการบรรยาย အသေးစိတ်စစ်ဆေးမှုကို စတင်ပါ။ +- သင်ခန်းစာကို ဖတ်ပြီး လုပ်ဆောင်ချက်များကို ကိုင်တွယ်ပြီး တစ်ခုချင်းစီမှာ သင်ယူမှုကို ပြန်လည်စဉ်းစားပါ။ +- လုပ်ငန်းစီမံကိန်း များကို ဖြေရှင်းချက်ကုဒ်ကို မပြောင်းဘဲ သင်ကြားမှုများကို နားလည်ရင်း စမ်းသပ်ဖန်တီးကြည့်ပါ; သို့သော် အဆိုပါကုဒ်များကို /solution ဖိုလ်ဒါများတွင် တွေ့နိုင်ပါသည်။ +- သင်ခန်းစာပြီးဆုံးပြီးလျှင် သတ်မှတ်ခေါင်းစဉ်အရ စစ်ဆေးမှုကို ဖြေဆိုပါ။ +- စိန်ခေါ်မှုကို ပြီးမြောက်ပါ။ +- တာဝန်ပေးအပ်ချက်ကို ပြီးစီးပါ။ +- သင်ခန်းစာအုပ်အုပ်စုပြီးပါက [ဆွေးနွေးခန်း](https://github.com/microsoft/ML-For-Beginners/discussions) သို့ သွား၍ လေ့လာမှုကိန်းဂဏန်း(PAT) ကို ဖြည့်စွက်ပြီး အသံထွက်၍ "learn out loud" လုပ်ပါ။ 'PAT' သည် သင်၏လေ့လာမှုကို ပိုမိုကောင်းမွန်စေသော တိုးတက်မှုအကဲဖြတ်ကိရိယာတစ်ခုဖြစ်ပြီး အခြား PAT များအားလည်း တုံ့ပြန်နိုင်သည်။ -> ပိုပြီး သင်ယူချင်လျှင်၊ ကျွန်ုပ်တို့၏ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) သင်ခန်းစာများနှင့် သင်ယူမည့်လမ်းကြောင်းများကို လိုက်နာပါ။ +> ပိုပြီးလေ့လာလိုပါက [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ၏ module များနှင့် သင်ယူခရီးများကို လိုက်နာရန် အကြံပြုပါသည်။ -**ဆရာ၊ ဆရာမများအတွက်** ဒီသင်ရိုးကို အသုံးပြုရာတွင် [အကြံဉာဏ်အချို့](for-teachers.md) ပါဝင်သည်။ +**ဆရာ/ဆရာမများအတွက်** ဤသင်တန်းအစီအစဉ်ကို မည်သို့ အသုံးပြုရမည်ကို [အကြံပြုချက်များ](for-teachers.md) ပါဝင်ပါသည်။ --- -## ဗီဒီယိုဖြင့် လေ့လာမည် +## ဗီဒီယို လေ့လာရေး -သင်ခန်းစာအချို့သည် အတိုချုံး ဗီဒီယိုအဖြစ် ရနိုင်ပါသည်။ သင်ခန်းစာများထဲတွင် inline အဖြစ် ရှာတွေ့နိုင်ပြီး၊ ဒါမှမဟုတ် [ML for Beginners playlist on the Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) တွင် ဗီဒီယိုများကိုကြည့်ရှုနိုင်ပါသည်။ +အချို့သော သင်ခန်းစာများကို မိနစ်တိုအတွင်း ဗီဒီယိုအနေနှင့် ရရှိနိုင်သည်။ ၎င်းတို့အားစာအုပ်အတွင်းတွင်မှတစ်ဆင့် သို့မဟုတ် [ML for Beginners playlist on the Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) တွင် အောက်ပါပုံကိုႏွိပ်၍ ရှာဖွေကြည့်ရှုနိုင်ပါသည်။ [![ML for beginners banner](../../translated_images/my/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## အသင်းဝင်များကို မိတ်ဆက်ခြင်း +## အဖွဲ့သားများကို တွေ့ဆုံခြင်း [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif ကိုဖန်တီးသူ** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 ပုံပြင်ပုံတူအား နှိပ်လျှင် စီမံကိန်းနှင့် ဖန်တီးသူများအကြောင်း ဗီဒီယိုကို ကြည့်ရှုနိုင်သည်။ +> 🎥 ပရောဂျက်နှင့် ဖန်တီးသူများအကြောင်း ဗီဒီယိုကို အပေါ်ဖော်ပြထားသော ပုံကို နှိပ်ပြီး ကြည့်ရှုပါ။ --- -## သင်ယူနိယာမများ +## သင်ကြားပုံရပ် -ဒီသင်ရိုးကို ဖန်တီးရာတွင် နှစ်ခုသော သင်ယူနိယာမများကို ရွေးချယ်ခဲ့သည် - လက်တွေ့ လုပ်ငန်းပေါ်တွင် အခြေခံသည့် **project-based** သင်ကြားမှုနှင့် အကြိမ်ကြိမ် စမ်းသပ်မှုများပါဝင်သော **frequent quizzes**။ ထို့အပြင် ဒီသင်ရိုးတွင် ဆိုင်းဘာအသင်းတစ်ခုရှိသည်။ +ဤသင်တန်းအစီအစဉ်ကို ဖန်တီးရာတွင် နှစ်ခုသော သင်ကြားပုံရပ်များကို ရွေးကောက်ထားပါသည်။ ၎င်းမှာ လုပ်ငန်းအခြေပြု **ပရောဂျက်အခြေပြု** ဖြစ်ရမည်နှင့် **အကြိမ်ကြိမ်စစ်ဆေးမှုများ** ပါဝင်ရမည်ဖြစ်သည်။ ထို့ပြင် သင်တန်းကို တစ်ခုတည်းသော **ခေါင်းစဉ်** ရှိအောင် ပြင်ဆင်ထားပါသည်။ -အကြောင်းအရာသည် လုပ်ငန်းများနှင့် ကိုက်ညီမှုရှိရမည်ဟု သေချာရနိုင်ခြင်းကြောင့် ကျောင်းသားများအတွက် စိတ်ဝင်စားမှုများ တိုးတက်ပြီး အကြောင်းအရာကို ပိုမိုမသေရာခံနိုင်ပါသည်။ သင်တန်းမတိုင်မီ သက်ဆိုင်ရာစမ်းသပ်မှုက သင်ယူရန် ရည်ရွယ်ချက်သတ်မှတ်ပေးပြီး၊ သင်တန်းပြီးလျင် နောက်တစ်ခုဖြေဆိုခြင်းက ပိုမိုသိရှိမှုအစဉ်ကို ဖန်တီးပေးသည်။ ဒီသင်ရိုးသည် ရွေးချယ်ပြီး အပိုင်းဖြင့် သို့မဟုတ် တစ်စုတည်း အပြီးသတ်လေ့လာနိုင်တဲ့ သင်ရိုးဖြစ်ပါသည်။ ၁၂ အပတ် သာမာန် ၀ါကျအတွင်းတွင် လုပ်ငန်းများသည် စတုတျပွေဆုံးရောက်ခြင်းဟာ ပိုမိုရှုပ်ထွေးလာလိမ့်မည်။ ဒီသင်ရိုးတွင် ML ၏ လက်တွေ့ အသုံးချမှုတစ်ခု အချိန်ကုန်မှုအနည်းငယ် အနင့်အဆုံးမှ ပြန်လည်ဆန်းစစ်လေ့လာခြင်းအတွက် ပိုမိုကောင်းမွန်သော အကြောင်းအရာ ပါရှိသည်။ +အကြောင်းအရာကို ပရောဂျက်များနှင့် ကိုက်ညီစေခြင်းအားဖြင့် ကျောင်းသားများ အတွက် ရင်ဘတ်စိတ်ဝင်စားမှုမြင့်မားပြီး အသိပညာ ကြားချိတ်ဆက်မှု တိုးမြင့်စေပါသည်။ ထို့အပြင် စာသင်ခန်းတစ်ခန်းမတိုင်မီ လေးနက်မှုမရှိသော စစ်ဆေးမှုတစ်ခုက ကျောင်းသား၏ သင်ယူလိုရှိမှု ရည်ရွယ်ချက်ကို သတ်မှတ်ပေးပြီး၊ စာသင်ခန်းပြီးနောက် စစ်ဆေးမှုတစ်ခုက ဆက်လက်သိရှိမှုကို အတည်ပြုသည်။ ဤသင်တန်းအစီအစဉ်ကို အကြံပြုမှုပြုထားပြီး ပျော်ရွှင်ဖွယ်ဖြစ်သောပုံစံဖြစ်၍ အစိတ်အပိုင်းများ သို့မဟုတ် ပြည့်စုံစွာ သင်ယူနိုင်ပါသည်။ ပရောဂျက်များမှာ တဖြည်းဖြည်း ကြီးမားမှုတက်ပြီး ၁၂ ပတ်ကြာ ခရီးစဉ်၏ အဆုံးမှာ ရှင်းလင်းပြတ်သားလာသည်။ ဤသင်တန်းအစီအစဉ်တွင် နောက်ပိုင်းတွင် စက်လေ့လာမှု၏ အမှန်တကယ် အသုံးချမှုများကိုပါ ပါဝင်သည်၊ ၎င်းကို ထပ်မံအတတ်ပညာရရှိရန် သို့မဟုတ် ဆွေးနွေးခြင်းအခြေခံအဖြစ် အသုံးပြုနိုင်ပါသည်။ -> ကျွန်ုပ်တို့၏ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), နှင့် [Troubleshooting](TROUBLESHOOTING.md) လမ်းညွှန်ချက်များကို တွေ့ကြုံနိုင်ပါသည်။ သင့်ရဲ့ ပြန်လည်တုံ့ပြန်မှုကို ကြိုဆိုပါတယ်! +> ကျွန်ုပ်တို့၏ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), နှင့် [Troubleshooting](TROUBLESHOOTING.md) လမ်းညွှန်ချက်များကို ရှာဖွေလိုက်ပါ။ သင်၏ တန်ဖိုးထားသော တုံ့ပြန်ချက်ကို ကြိုဆိုပါသည်။ -## အပိုင်းတိုင်းတွင် ပါဝင်သောအရာများ +## သင်ခန်းစာတစ်ခုစီတွင် ပါဝင်သည် -- စိတ်အားထက်သန်စေသော sketchnote ကို ရွေးချယ် လေ့လာနိုင်ခြင်း -- ပေါင်းစပ် အသေးစိတ် ဗီဒီယို ရွေးချယ်မှု -- ဗီဒီယို လမ်းညွှန်မှု (အပိုင်းအချို့သာ) -- [သင်ခန်းစာမတိုင်မီ စမ်းသပ်မှု](https://ff-quizzes.netlify.app/en/ml/) +- ရွေးချယ်စရာ စကက်ချ်မှာ (sketchnote) +- ရွေးချယ်စရာ ပေါင်းစပ်ဗီဒီယို +- ဗီဒီယို လမ်းညွှန် (အချို့သင်ခန်းစာများသာ) +- [သင်ခန်းစာမတိုင်မီ အပူပေး စစ်ဆေးမှု](https://ff-quizzes.netlify.app/en/ml/) - ရေးသားထားသော သင်ခန်းစာ -- project များအတွက် တစ်ဆင့်ချင်း လမ်းညွှန်ချက်များ -- သိမြင်မှု စစ်ဆေးမှုများ -- စိန်ခေါ်မှု -- ပူဇော်မှု ဆက်လက်ဖတ်ရှုရန် -- လုပ်ငန်းတာဝန်များ -- [သင်ခန်းစာပြီးနောက် စမ်းသပ်မှု](https://ff-quizzes.netlify.app/en/ml/) - -> **ဘာသာစကားများအကြောင်း မှတ်ချက်** - ဒီသင်ခန်းစာများမှာ အခြေခံအားဖြင့် Python ဖြင့်ရေးသားထားပြီး R ဖြင့်လည်း ရနိုင်ပါတယ်။ R သင်ခန်းစာတစ်ခု ပြီးမြောက်ရန် /solution ဖိုလ်ဒါတွင် R သင်ခန်းစာများ ရှာဖွေပါ။ ၎င်းများတွင် .rmd တဲ့ extension ရှိပြီး ဒီဟာသည် **R Markdown** ဖိုင်တစ်မျိုးဖြစ်သည်။ ၎င်းသည် `code chunks` (R သို့မဟုတ် အခြားဘာသာစကားများ) နှင့် `YAML header` (PDF စသည့် output များပုံစံစစ်ဆေးရန် လမ်းညွန်ချက်များ) ကို Markdown စာရွက်စာတမ်းထဲ တစ်စိတ်တစ်ပိုင်းအဖြစ် ထည့်သွင်းထားသော ဖိုင်ဖြစ်သည်။ ဒါကြောင့် ရှင်းလင်း လက်တွေ့အသုံးပြုမှု ရရှိရန် တိုင်ကြားရေးနည်းလမ်း တစ်ခုအဖြစ် အသုံးပြုနိုင်ပြီး သင့်ကိုယ်ရေးအချက်အလက်၊ output, နှင့် စိတ်ကူးစိတ်သန်းတို့ကို Markdown ဖြင့် ကိုက်ညီစွာ ရေးသားနိုင်ပါတယ်။ ထို့အပြင် R Markdown စာရွက်စာတမ်းများကို PDF, HTML, သို့မဟုတ် Word ကဲ့သို့ output ဖိုင်များအဖြစ် ပြောင်းလဲ ထုတ်ပေးနိုင်ပါသည်။ -> **စစ်ဆေးမေးခွန်းများအတွက် မှတ်ချက်**: စစ်ဆေးမေးခွန်းများအားလုံးကို [Quiz App folder](../../quiz-app) တွင် ထည့်သွင်းထားပြီး မေးခွန်း ၃ မေးခွန်းပါဝင်သည့် စစ်ဆေးမေးခွန်း ၅၂ ခုပါဝင်သည်။ သင်ခန်းစာများမှ ဆက်သွယ်ထားသော်လည်း quiz app ကို ဒေသဆိုင်ရာတွင် ပြေးနိုင်ပြီး `quiz-app` ဖိုလ်ဒါအတွင်း လမ်းညွှန်ချက်များအတိုင်း ဒေသတွင်း တာနယ်မောင်းခိုင်းခြင်း သို့မဟုတ် Azure သို့ ဖြန့်ချိနိုင်သည်။ - -| သင်ခန်းစာနံပါတ် | ခေါင်းစဥ် | သင်ခန်းစာအုပ်စု | သင်ယူရမည့် ရည်ရွယ်ချက်များ | ဆက်သွယ်ထားသည့် သင်ခန်းစာ | စာရေးသူ | -| :---------------: | :------------------------------------------------------------: | :-------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | -| 01 | ကွန်ပျူတာလေ့လာမှု အတ္ထုပညာမိတ်ဆက် | [Introduction](1-Introduction/README.md) | စက်မှုသင်ယူမှု၏ အခြေခံအကြောင်းအရာများကို လေ့လာပါ | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | စက်မှုသင်ယူမှု အတိတ်သမိုင်း | [Introduction](1-Introduction/README.md) | ဤကွင်းဆက်အတွင်း သမိုင်းကို လေ့လာပါ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | တရားမျှတမှုနှင့် စက်မှုသင်ယူမှု | [Introduction](1-Introduction/README.md) | လေ့လာသူများသည် ML မော်ဒယ်များ တည်ဆောက်ခြင်းနှင့် လုပ်ဆောင်ရာတွင် ထည့်သွင်းစဉ်းစားရန် တရားမျှတမှုနှင့် ပတ်သက်သည့် အရေးကြီးသော ပညာရပ်ဆိုင်ရာ ပြဿနာများက မည်သည်များလဲ? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | စက်မှုသင်ယူမှုနည်းလမ်းများ | [Introduction](1-Introduction/README.md) | ML သုတေသနသူများက မော်ဒယ်များ တည်ဆောက်ရာ တွင် အသုံးပြုသော နည်းလမ်းများက ဘာများလဲ? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Regression မိတ်ဆက် | [Regression](2-Regression/README.md) | regression မော်ဒယ်များအတွက် Python နှင့် Scikit-learn ဖြင့် စတင်ပါ | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | ရွှေ့လျားမှု မြောက်အမေရိက မုန့်ဖုတ် ဈေးနှုန်းများ 🎃 | [Regression](2-Regression/README.md) | ML အတွက် ဒေတာကို ကြည့်ရှုခြင်းနှင့် သန့်ရှင်းစင်ကြယ်အောင် ပြုလုပ်ခြင်း | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | ရွှေ့လျားမှု မြောက်အမေရိက မုန့်ဖုတ် ဈေးနှုန်းများ 🎃 | [Regression](2-Regression/README.md) | ရောနှောစပ်လျှင် regression မော်ဒယ်များကို တည်ဆောက်ခြင်း | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | ရွှေ့လျားမှု မြောက်အမေရိက မုန့်ဖုတ် ဈေးနှုန်းများ 🎃 | [Regression](2-Regression/README.md) | logistic regression မော်ဒယ်တစ်ခု တည်ဆောက်ခြင်း | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | ဝဘ် အက်ပ် 🔌 | [Web App](3-Web-App/README.md) | သင်၏လေ့ကျင့်ခဲ့သော မော်ဒယ်ကို အသုံးပြုရန် ဝဘ်အက်ပ်တစ်ခု တည်ဆောက်ပါ | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | အမျိုးအစားသတ်မှတ်မှု မိတ်ဆက် | [Classification](4-Classification/README.md) | ဒေတာများကို သန့်စင်၊ ပြင်ဆင်၊ ကြည့်ရှုခြင်းနှင့် အမျိုးအစားသတ်မှတ်မှုမိတ်ဆက် | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | အရသာရှိသော အာရှနှင့် အိန္ဒိယ ဟင်းလျာများ 🍜 | [Classification](4-Classification/README.md) | အမျိုးအစားသတ်မှတ်သူများ မိတ်ဆက်ခြင်း | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | အရသာရှိသော အာရှနှင့် အိန္ဒိယ ဟင်းလျာများ 🍜 | [Classification](4-Classification/README.md) | အမျိုးအစားသတ်မှတ်သူများ ပိုမိုလေ့လာခြင်း | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | အရသာရှိသော အာရှနှင့် အိန္ဒိယ ဟင်းလျာများ 🍜 | [Classification](4-Classification/README.md) | မော်ဒယ်ကို အသုံးပြုပြီး အကြံပေး ဝဘ်အက်ပ် တည်ဆောက်ခြင်း | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Clustering မိတ်ဆက် | [Clustering](5-Clustering/README.md) | ဒေတာကို သန့်စင်၊ ပြင်ဆင်၍ ကြည့်ရှုခြင်းနှင့် Clustering မိတ်ဆက် | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Nigerian တေးဂီတအဆင့်သုံးစွဲမှု ရှာဖွေခြင်း 🎧 | [Clustering](5-Clustering/README.md) | K-Means clustering နည်းပညာကို ရှာဖွေပါ | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | သဘာ၀ဘာသာစကား စီမံခန့်ခွဲမှု မိတ်ဆက် ☕️ | [Natural language processing](6-NLP/README.md) | တစ်ချက်တည်းသော bot တည်ဆောက်ခြင်းဖြင့် NLP အခြေခံများကို လေ့လာပါ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | အခြေပြု NLP တာဝန်များ ☕️ | [Natural language processing](6-NLP/README.md) | ဘာသာစကားဖွဲ့စည်းမှုများနှင့် ဆက်စပ်သော အခြေပြု NLP တာဝန်များကို နက်နဲစွာ အသိပညာရရှိပါ | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | ဘာသာပြန်ခြင်းနှင့် စိတ်ခံစားချက် ခွဲခြမ်းစိတ်ဖြာမှု ♥️ | [Natural language processing](6-NLP/README.md) | Jane Austen နှင့် ပြုလုပ်သော ဘာသာပြန်ခြင်းနှင့် စိတ်ခံစားချက် ခွဲခြမ်းစိတ်ဖြာမှု | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | ဥရောပက အချစ်ဆုံ ဟိုတယ်များ ♥️ | [Natural language processing](6-NLP/README.md) | ဟိုတယ်သုံးသပ်ချက်များ DRM1 ဖြင့် စိတ်ခံစားချက် ခွဲခြမ်းစိတ်ဖြာမှု | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | ဥရောပက အချစ်ဆုံ ဟိုတယ်များ ♥️ | [Natural language processing](6-NLP/README.md) | ဟိုတယ်သုံးသပ်ချက်များ DRM2 ဖြင့် စိတ်ခံစားချက် ခွဲခြမ်းစိတ်ဖြာမှု | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | အချိန်စီးရီးခန့်မှန်းမှု မိတ်ဆက် | [Time series](7-TimeSeries/README.md) | အချိန်စီးရီး ခန့်မှန်းမှု မိတ်ဆက် | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ ကမ္ဘာ့လျှပ်စစ်သုံးစွဲမှု ⚡️ - ARIMA ဖြင့် အချိန်စီးရီးခန့်မှန်းခြင်း | [Time series](7-TimeSeries/README.md) | ARIMA ဖြင့် အချိန်စီးရီး ခန့်မှန်းခြင်း | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ ကမ္ဘာ့လျှပ်စစ်သုံးစွဲမှု ⚡️ - SVR ဖြင့် အချိန်စီးရီးခန့်မှန်းခြင်း | [Time series](7-TimeSeries/README.md) | Support Vector Regressor ဖြင့် အချိန်စီးရီး ခန့်မှန်းခြင်း | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | အားကောင်းခြင်း သင်ယူမှု မိတ်ဆက် | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning ဖြင့် အားကောင်းခြင်း သင်ယူမှု မိတ်ဆက် | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Peter ကို ခ Wolf ကိုရှောင်ရန် ကူညီပါ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| အပြီးသတ် စာတမ်း | အမှန်တကယ် လုပ်ဆောင်နေသော ML အခြေအနေများနှင့် လျှောက်လွှာများ | [ML in the Wild](9-Real-World/README.md) | ရိုးရာ ML ၏ စိတ်ဝင်စားဖွယ်ရာနှင့် ဖော်ပြချက်များ | [Lesson](9-Real-World/1-Applications/README.md) | Team | -| အပြီးသတ် စာတမ်း | RAI dashboard ကို အသုံးပြု၍ ML မော်ဒယ်များ Debugging | [ML in the Wild](9-Real-World/README.md) | Responsible AI dashboard အစိတ်အပိုင်းများဖြင့် Machine Learning မော်ဒယ်များ Debugging | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [ဤသင်တန်းအတွက် အပိုဆောင်းအရင်းအမြစ်များအားလုံးကို Microsoft Learn စုစည်းမှုတွင် ရှာဖွေပါ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## အော့ဖ်လိုင်း မျက်နှာဖုံး - -[Docsify](https://docsify.js.org/#/) ကို အသုံးပြု၍ ဤစာတမ်းကို အော့ဖ်လိုင်းတွင် အသုံးပြုနိုင်သည်။ ဤ repo ကို fork လုပ်ပြီး၊ သက်ဆိုင်ရာ ဒေသထဲမှ [Docsify ကိုติดตั้ง](https://docsify.js.org/#/quickstart) ပြုလုပ်ရန်၊ ထို့နောက် ဒီ repo ၏ root ဖိုလ်ဒါတွင် `docsify serve` ဟု ရိုက်ထည့်ပါ။ ဝဘ်ဆိုဒ်ကို သင်၏ localhost ၏ port 3000 တွင် ထည့်သွင်းပါမည်- `localhost:3000`။ - -## PDF များ - -သင်ကြားမှု အစီအစဉ်ကို PDF ပုံစံဖြင့် [ဒီမှာ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) တွင် ရှာဖွေနိုင်ပါသည်။ +- ပရောဂျက်အခြေပြု သင်ခန်းစာများအတွက် ပရောဂျက် ဖန်တီးနည်း အဆင့်ဆင့် လမ်းညွန်ချက်များ +- နားလည်မှု စစ်ဆေးမှုများ +- စိန်ခေါ်မှုတစ်ခု +- ပေါင်းစပ် ဖတ်ရှုရန် +- တာဝန်ပေးအပ်ချက် +- [သင်ခန်းစာပြီးနောက် စစ်ဆေးမှု](https://ff-quizzes.netlify.app/en/ml/) +> **ဘာသာစကားများအကြောင်း မှတ်ချက်** - ဒီသင်ခန်းစာများကို အဓိကအားဖြင့် Python ဖြင့်ရေးသားထားပြီး၊ အများအပြားကို R ဖြင့်လည်းရနိုင်ပါသည်။ R သင်ခန်းစာ တစ်ခု ပြီးစီးရန်အတွက် `/solution` ဖိုလ်ဒါသို့ သွားပြီး R သင်ခန်းစာများကို ရှာဖွေပါ။ ၎င်းတို့တွင် **R Markdown** ဖိုင်ကို ဆိုလိုသည့် .rmd extension ပါဝင်ပြီး၊ ၎င်းမှာ `code chunks` (R သို့မဟုတ် အခြားဘာသာစကားများကို) နှင့် `YAML header` (PDF ကဲ့သို့သော ထွက်ရရှိမှုများကို ဖော်ပြရာတွင် လမ်းညွှန်သည်) ကို `Markdown စာတမ်း` အတွင်း ထည့်သွင်းထားသည့် ပုံစံတစ်မျိုးအဖြစ် သတ်မှတ်နိုင်သည်။ ထို့ကြောင့်၊ အချက်အလက် သိပ္ပံအတွက် သင်ရေးသူစနစ်တစ်ခုအဖြစ် အကောင်းဆုံးဖြစ်ပြီး သင့်ကုဒ်၊ ၎င်း၏ထွက်ရှိမှုနှင့် သင့်အတွေးများကို Markdown ဖြင့်ရေးသား နိုင်စေသည့် ပုံစံဟု ဆိုနိုင်သည်။ ထို့အပြင် R Markdown စာတမ်းများကို PDF, HTML သို့မဟုတ် Word ကဲ့သို့သော ထွက်ရှိမှု ပုံစံများသို့ ပြုလုပ်နိုင်သည်။ + +> **မေးဝန်းခြင်းများအကြောင်း မှတ်ချက်** - မေးဝန်းခြင်းများအားလုံးကို [Quiz App folder](../../quiz-app) တွင် ပါဝင်ပြီး၊ မေးခွန်းသုံးခုပါသော မေးဝန်းခြင်း ၅၂ ခု ပါဝင်ပါသည်။ ၎င်းတို့ကို သင်ခန်းစာများအတွင်းမှ ချိတ်ဆက်ထားသော်လည်း quiz app ကို ကိုယ့်တြင် အလိုအလျောက်စမ်းသပ်နိုင်သည်။ `quiz-app` ဖိုလ်ဒါတွင်ပါတဲ့ ညွှန်ကြားချက်များ လိုက်နာကာ ကိုယ့်စက်တွင် မဟုတ်မဖြစ် တည်ဆောက်၍ သို့မဟုတ် Azure တွင် ဖြန့်ချိနိုင်သည်။ + +| သင်ခန်းစာနံပါတ် | အကြောင်းအရာ | သင်ခန်းစာအုပ်စု | သင်ယူရမည့် ရည်မှန်းချက်များ | ချိတ်ဆက်ထားသော သင်ခန်းစာ | တာဝန်ရှိသူ | +| :--------------: | :-------------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------: | +| ၀၁ | ကွန်ပျူတာသင်္ချာသင်ခန်းစာ မိတ်ဆက် | [Introduction](1-Introduction/README.md) | ကွန်ပျူတာသင်္ချာ၏ အခြေခံအယူအဆများ ကို သင်ယူပါ | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| ၀၂ | ကွန်ပျူတာသင်္ချာ၏ သမိုင်းကြောင်း | [Introduction](1-Introduction/README.md) | ဤအကျဉ်းပိုင်း၏ သမိုင်းကြောင်းကို သင်ယူပါ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| ၀၃ | တရားမျှတမှုနှင့် ကွန်ပျူတာသင်္ချာ | [Introduction](1-Introduction/README.md) | ကွန်ပျူတာသင်္ချာ မော်ဒယ်များ တည်ဆောက်ခြင်းနှင့် အကောင်အထည်ဖော်ရာတွင် ကျောင်းသားများ ရေးသားစဉ်တွင် စဉ်းစားသင့်သည့် တရားမျှတမှု အရေးကြီးသော ဒဿနိက ဟူသော ခြိမ်းခြောက်မှုများမှာ ဘာတွေရှိသနည်း? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| ၀၄ | ကွန်ပျူတာသင်္ချာနည်းပညာများ | [Introduction](1-Introduction/README.md) | ကွန်ပျူတာသင်္ချာ သုတေသန မိသားစုများက မော်ဒယ်များ တည်ဆောက်ရာတွင် ယူသည့် နည်းပညာများမှာ မည်သို့ပါသနည်း? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| ၀၅ | ရည်ညွှန်းမှု မိတ်ဆက် | [Regression](2-Regression/README.md) | ရည်ညွှန်းမှု မော်ဒယ်များအတွက် Python နှင့် Scikit-learn ဖြင့် စတင်ဆောင်ရွက်ခြင်း | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| ၀၆ | မြောက်အမေရိကန် ဖရဲသရက်ဈေးနှုန်း 🎃 | [Regression](2-Regression/README.md) | ကွန်ပျူတာသင်္ချာသို့ ပြင်ဆင်ရန် အချက်အလက်များ ကြည့်ရှုနှင့် သန့်ရှင်းရေးလုပ်ဆောင်ခြင်း | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| ၀၇ | မြောက်အမေရိကန် ဖရဲသရက်ဈေးနှုန်း 🎃 | [Regression](2-Regression/README.md) | စောင်းတန်းနှင့် ပိုလီနော့မီယယ် ရည်ညွှန်းမှု မော်ဒယ်များ တည်ဆောက်ခြင်း | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| ၀၈ | မြောက်အမေရိကန် ဖရဲသရက်ဈေးနှုန်း 🎃 | [Regression](2-Regression/README.md) | လော့ဂျစ်စတစ် ရည်ညွှန်းမှု မော်ဒယ် တည်ဆောက်ခြင်း | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| ၀၉ | ဝက်ဘ် အက်ပ် 🔌 | [Web App](3-Web-App/README.md) | သင် သင်ယူထားသော မော်ဒယ်ကို အသုံးပြုရန် ဝက်ဘ် အက်ပ် တစ်ခုတည်ဆောက်ပါ | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| ၁၀ | ခွဲခြားခြင်း မိတ်ဆက် | [Classification](4-Classification/README.md) | သင့်ဒေတာ အရှင်းပြု၊ ပြင်ဆင်၊ မြင်သာဖော်ပြခြင်း၊ ခွဲခြားခြင်းမိတ်ဆက် | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| ၁၁ | အာရှနှင့်အိန္ဒိယ အရသာများ 🍜 | [Classification](4-Classification/README.md) | ခွဲခြားစနစ်များ မိတ်ဆက် | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| ၁၂ | အာရှနှင့်အိန္ဒိယ အရသာများ 🍜 | [Classification](4-Classification/README.md) | ခွဲခြားစနစ်များ ပိုမိုလေ့လာခြင်း | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| ၁၃ | အာရှနှင့်အိန္ဒိယ အရသာများ 🍜 | [Classification](4-Classification/README.md) | သင့်မော်ဒယ်ကို အသုံးပြု၍ အကြံပြုထောက်ခံရေး ဝက်ဘ် အက်ပ် တည်ဆောက်ခြင်း | [Python](4-Classification/4-Applied/README.md) | Jen | +| ၁၄ | အုပ်စုဖွဲ့ခြင်း မိတ်ဆက် | [Clustering](5-Clustering/README.md) | သင့်ဒေတာ အရှင်းပြု၊ ပြင်ဆင်၊ မြင်သာဖော်ပြခြင်း၊ အုပ်စုဖွဲ့ခြင်း မိတ်ဆက် | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| ၁၅ | Nigeria ရဲ့ ဂီတ စတိုင်များ စူးစမ်းခြင်း 🎧 | [Clustering](5-Clustering/README.md) | K-Means အုပ်စုဖွဲ့နည်း ကို စူးစမ်းလေ့လာခြင်း | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| ၁၆ | သဘာဝဘာသာစကား လုပ်ထုံးလုပ်နည်း မိတ်ဆက် ☕️ | [Natural language processing](6-NLP/README.md) | ရိုးရှင်းသော ဘော့တစ်ခု ဖန်တီးခြင်းအားဖြင့် NLP အခြေခံတွေကို သင်ယူပါ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| ၁၇ | အထွေထွေ NLP အလုပ်များ ☕️ | [Natural language processing](6-NLP/README.md) | ဘာသာစကားဖွဲ့စည်းမှုနှင့်ဆိုင်သော အလုပ်များကို စာလုံးပေါင်းအဆင့် စနစ်တကျ နားလည်၍ NLP ဗဟုသုတ ပိုမိုမြှင့်တင်ပါ | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| ၁၈ | ဘာသာပြန်ခြင်းနှင့်ခံစားချက် စစ်တမ်း ♥️ | [Natural language processing](6-NLP/README.md) | Jane Austen ၏ စာများဖြင့် ဘာသာပြန်ခြင်းနှင့်ခံစားချက် စစ်တမ်းများ | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| ၁၉ | ဥရောပရဲ့ ရင်ခုန်စေသော ဟိုတယ်များ ♥️ | [Natural language processing](6-NLP/README.md) | ဟိုတယ်သုံးသပ်ချက်များဖြင့် ခံစားချက် စစ်တမ်း ၁ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| ၂၀ | ဥရောပရဲ့ ရင်ခုန်စေသော ဟိုတယ်များ ♥️ | [Natural language processing](6-NLP/README.md) | ဟိုတယ်သုံးသပ်ချက်များ ဖြင့် ခံစားချက် စစ်တမ်း ၂ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| ၂၁ | အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း မိတ်ဆက် | [Time series](7-TimeSeries/README.md) | အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း မိတ်ဆက် | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| ၂၂ | ⚡️ ကမ္ဘာလုံးဆိုင်ရာ လျှပ်စစ်အသုံး ပြုမှု ⚡️ - ARIMA ဖြင့် အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း | [Time series](7-TimeSeries/README.md) | ARIMA ဖြင့် အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| ၂၃ | ⚡️ ကမ္ဘာလုံးဆိုင်ရာ လျှပ်စစ်အသုံး ပြုမှု ⚡️ - SVR ဖြင့် အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း | [Time series](7-TimeSeries/README.md) | Support Vector Regressor ဖြင့် အချိန်အဆက်တွဲ ခန့်မှန်းခြင်း | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| ၂၄ | ပြန်လည်အားဖြည့်သင်ယူခြင်း မိတ်ဆက် | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning ဖြင့် ပြန်လည်အားဖြည့်သင်ယူခြင်း မိတ်ဆက် | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| ၂၅ | Peter ကို ကျားမှ ကာကွယ်ရန် အကူအညီ ပေးပါ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| အပေါ်ဆုံး မှတ်ချက် | ML အကွယ်တဝင် အခြေအနေများနှင့် အသုံးချမှုများ | [ML in the Wild](9-Real-World/README.md) | ရိုးရာ ML ၏ စိတ်ဝင်စားဖွယ်နှင့် ထင်ဟပ်ဖော်ပြနိုင်သော အပြင်ပန်း လိုက်စားမှုများ | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| အပေါ်ဆုံး မှတ်ချက် | RAI dashboard အသုံးပြုပြီး ML မော်ဒယ်များ ပြင်ဆင်ခြင်း | [ML in the Wild](9-Real-World/README.md) | Responsible AI dashboard ပစ္စည်းများကို အသုံးပြု၍ ကွန်ပျူတာသင်္ချာ မော်ဒယ်များ ပြင်ဆင်ခြင်း | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [ဤသင်ရိုးရာအတွက် Microsoft Learn စုစည်းမှုထဲမှ အပိုဆောင်း ရင်းမြစ်များအားလုံးကို ရှာဖွေပါ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## အော့ဖ်လိုင်း ခွင့်ရယူခြင်း + +[Docsify](https://docsify.js.org/#/) ကို အသုံးပြု၍ ဒီစာတမ်းကို အော့ဖ်လိုင်းတွင် ပြေးနိုင်ပါတယ်။ ဒီ repo ကို ဖောက်ပြီး၊ ကိုယ့်စက်မှာ [Docsify](https://docsify.js.org/#/quickstart) ကို တပ်ဆင်ပါ၊ ထို့နောက် ဒီ repo ၏ မူလဖိုလ်ဒါထဲမှာ `docsify serve` ဟု ရိုက်ထည့်ပါ။ ဝဘ်ဆိုက်သည် ကိုယ့် localhost တွင် ပေါက် ၃၀၀၀ မှာ ဝန်ဆောင်မှုပေးမည်ဖြစ်ပြီး `localhost:3000` ဖြစ်ပါသည်။ + +## PDFs + +သင်ရိုးညွှန်ကြားစာအုပ်၏ PDF ကို [ဤနေရာတွင်](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) ရှာဖွေပါ။ ## 🎒 အခြားသင်တန်းများ -ကျွန်ုပ်တို့ အသင်းသည် အခြားသင်တန်းများကို ထုတ်လုပ်နေပါသည်! စစ်ဆေးကြည့်ပါ: +ကျွန်ုပ်တို့အသင်းသည် အခြားသင်တန်းများကို ထုတ်လုပ်နေပါသည်။ စစ်ဆေးကြည့်ပါ။ ### LangChain @@ -188,7 +188,7 @@ Microsoft ၏ Cloud Advocates တွေက ၁၂ အပတ်ကြာ ၂၆ --- -### Generative AI Series +### စီးရီး အနုပညာ AI [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) @@ -196,7 +196,7 @@ Microsoft ၏ Cloud Advocates တွေက ၁၂ အပတ်ကြာ ၂၆ --- -### အခြေခံသင်ယူမှုများ +### အခြေခံ သင်ယူမှု [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -207,30 +207,30 @@ Microsoft ၏ Cloud Advocates တွေက ၁၂ အပတ်ကြာ ၂၆ --- -### Copilot စီးရီးများ +### Copilot စီးရီး [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## အကူအညီ ရယူခြင်း +## စီစဉ်သော ကူညီမှု -AI အက်ပ်များ တည်ဆောက်ရာတွင် ကြုံတွေ့သည့် အခက်အခဲများ သို့မဟုတ် မေးခွန်းရှိပါက MCP တွင် သင်ယူသူများနှင့် အတွေ့အကြုံရှိ developer များနှင့် ဆွေးနွေးမှုများ ပြုလုပ်နိုင်သည်။ ၎င်းသည် မေးခွန်းများအား ကြိုဆိုပြီး သိပ္ပံအချက်အလက်များကို လွတ်လပ်စွာ မျှဝေသည့် ကျင်းပရာလူမှုအသိုင်းအဝိုင်း ဖြစ်သည်။ +AI အပ်ပလီကေးရှင်း များ တည်ဆောက်ရာတွင် တင့်ဆိုင်သော မေးခွန်းများ ကျရောက်ပါက MCP သင်ယူသူများနှင့် အတွေ့အကြုံရှိ Developer များဖြင့် ဆွေးနွေးပွဲများတွင် ပါဝင်ဆွေးနွေးပါ။ ၎င်းသည် မေးခွန်းများအား ကြိုဆိုပြီး အသိပညာများကို အခမဲ့ မျှဝေသော ပံ့ပိုးမှုပိုင်း ကွန်ယက်တခု ဖြစ်ပါသည်။ [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -ထုတ်ကုန်အကြောင်းအရာ သို့မဟုတ် အမှားများအတွက် တည်ဆောက်စဉ် တွေ့ရှိပါက ဤနေရာတွင် လာရောက်ကြည့်ရှုနိုင်ပါသည်။ +ထုတ်ကုန် တုံ့ပြန်ချက် သို့မဟုတ် တည်ဆောက်သည်အထိ အမှားများ ရှိပါက: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## အပိုဆောင်း သင်ယူရေး အကြံဉာဏ်များ +## ထပ်မံသင်ယူသော အကြံပြုချက်များ -- သင်ခန်းစာတိုင်းပြီးနောက် notebook များ ပြန်လည်သုံးသပ်ပါ။ -- ကိုယ်တိုင် အယ်လိုဂိုရစ်မွ နည်းပြုလုပ်ပုံကို လေ့ကျင့်ပါ။ -- သင်ယူထားသောအကြောင်းအရာများဖြင့် အမှန်တကယ် အသုံးပြုသော ဒေတာစုစည်းမှုများကို ရှာဖွေပါ။ +- သင်ခန်းစာတိုင်းပြီးစီးပြီးနောက် စာအုပ်များကို ပြန်လည်ကြည့်ရှုပါ။ +- ကိုယ်တိုင် အယ်လ်ဂိုရစ်သမ်များကို လေ့ကျင့်ပါ။ +- သင်ယူထားသော သဘောတရားများဖြင့် တကယ့်ကမ္ဘာဒေတာများကို ရှာဖွေပါ။ --- -**စကားပုံကြားချက်** -ဤစာရွက်သားကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှုအပေါ်ကြိုးစားအားထုတ်သော်လည်း၊ အလိုအလျောက်ဘာသာပြန်မှုများတွင် အမှားများ သို့မဟုတ် အတိအကျမရှိမှုများ ဖြစ်ပေါ်နိုင်ကြောင်း ကျေးဇူးပြု၍ သတိပြုပါ။ မူရင်းစာရွက်သားကို နိုင်ငံ့ဘာသာဖြင့်သာ အထောက်အထားအဖြစ် ယူဆသင့်ပါသည်။ အရေးကြီးသော သတင်းအချက်အလက်များအတွက် ပညာရှင်လူသားများ၏ ဘာသာပြန်မှုကိုသာ အကြံပြုပါသည်။ ဤဘာသာပြန်မှုကို အသုံးပြုမှုကြောင့် ဖြစ်ပေါ်လာသော နားမလည်မှု သို့မဟုတ် အဓိပ္ပာယ်လွဲမှားမှုများအတွက် ကျွန်ုပ်တို့ ဝန်ခံမှုမရှိပါ။ +**အကြောင်းကြားချက်** +ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ဖြင့် ဘာသာပြန်ထားသည်။ ကျွန်ုပ်တို့သည်တိကျမှန်ကန်မှုအတွက် ကြိုးစားသော်လည်း၊ စက်မှုအလိုအလျောက် ဘာသာပြန်ချက်များတွင် အမှားများ သို့မဟုတ် မှားယွင်းမှုများ ရှိနိုင်ကြောင်း သတိပေးအပ်ပါသည်။ မူလစာရွက်စာတမ်းကို သူ၏ မူလဘာသာဖြင့်သာ တရားဝင်ရင်းမြစ်အဖြစ် တွက်ချက်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် သေချာမှန်ကန်သော လူ့ဘာသာပြန်ဝန်ဆောင်မှုကို အကြံပြုပါသည်။ ဤဘာသာပြန်ချက်ကို အသုံးပြုမှုဖြင့် ဖြစ်ပေါ်လာသော နားလည်မှုမှားယွင်းမှုများနှင့် အဓိပ္ပါယ်ပြောင်းလဲမှုများအတွက် ကျွန်ုပ်တို့၏ တာဝန်မရှိပါ။ \ No newline at end of file diff --git a/translations/ne/.co-op-translator.json b/translations/ne/.co-op-translator.json index 67bd9a6dd..217c984f9 100644 --- a/translations/ne/.co-op-translator.json +++ b/translations/ne/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ne" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:10:38+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:17:14+00:00", "source_file": "README.md", "language_code": "ne" }, diff --git a/translations/ne/README.md b/translations/ne/README.md index e1e496b20..10383267a 100644 --- a/translations/ne/README.md +++ b/translations/ne/README.md @@ -1,23 +1,10 @@ -[![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/) - ### 🌐 बहुभाषी समर्थन -#### GitHub Action मार्फत समर्थित (स्वचालित र सँधै अद्यावधिक) - - -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](./README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +#### GitHub क्रियापदमार्फत समर्थन गरिएको (स्वचालित र सँधै अद्यावधिक) > **स्थानीय रूपमा क्लोन गर्न चाहनुहुन्छ?** > -> यस रिपोजिटरीमा ५०+ भाषा अनुवादहरू समावेश छन् जसले डाउनलोड साइजलाई उल्लेखनीय रूपमा बढाउँछ। अनुवादहरू बिना क्लोन गर्न, sparse checkout प्रयोग गर्नुहोस्: +> यो रिपोजिटरीले ५० भन्दा बढी भाषा अनुवादहरू समावेश गर्दछ जसले डाउनलोड आकारलाई उल्लेखनीय रूपमा बढाउँछ। अनुवाद बिना क्लोन गर्न, sparse checkout प्रयोग गर्नुहोस्: > > **Bash / macOS / Linux:** > ```bash @@ -33,143 +20,115 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> यसले तपाईंलाई कोर्स पूरा गर्न आवश्यक सबै कुरा छिटो डाउनलोडको साथ दिन्छ। - +> यसले तपाईंलाई कोर्स पूरा गर्न आवश्यक सबै कुरा धेरै छिटो डाउनलोडको साथ उपलब्ध गराउँछ। #### हाम्रो समुदायमा सहभागी हुनुहोस् -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) - -हामीसँग Discord मा AI सिक्ने श्रृंखला चलिरहेको छ, थप जान्न र सामेल हुनुभयो [AI सिक्ने श्रृंखला](https://aka.ms/learnwithai/discord) १८ - ३० सेप्टेम्बर, २०२५ बाट। तपाईंले GitHub Copilot लाई Data Science मा प्रयोग गर्ने सुझाव र तरिका पाउनु हुनेछ। - -![Learn with AI series](../../translated_images/ne/3.9b58fd8d6c373c20.webp) - -# सुरु गर्न सिक्ने मेसिन लर्निङ - एक पाठ्यक्रम - -> 🌍 संसारभर यात्रा गरी मेसिन लर्निङलाई विश्वका संस्कृतिहरू मार्फत अन्वेषण गरौं 🌍 - -Microsoft का क्लाउड अधिवक्ताहरूले १२ हप्ता, २६ पाठहरू पनि समेटिएको **मेसिन लर्निङ** सम्बन्धी पाठ्यक्रम प्रस्तुत गरेका छन्। यस पाठ्यक्रममा तपाईंले कहिलेकाहीं भनिने **क्लासिक मेसिन लर्निङ** बारे सिक्नुहुनेछ, मुख्य रूपमा Scikit-learn लाई पुस्तकालयको रूपमा उपयोग गर्दै, र डिप लर्निङबाट टाढा रहँदै जुन हाम्रो [AI for Beginners' पाठ्यक्रम](https://aka.ms/ai4beginners) मा समेटिएको छ। यी पाठहरूलाई हाम्रो ['Data Science for Beginners' पाठ्यक्रम](https://aka.ms/ds4beginners) सँग पनि जोड्न सक्नुहुन्छ। - -हामीसँग संसारभर यात्रा गर्दै यी क्लासिक प्रविधिहरू विश्वका विभिन्न क्षेत्रका डेटामा लागू गर्छौं। प्रत्येक पाठमा पहिले र पछि क्विजहरू, पाठ पूरा गर्ने लिखित निर्देशनहरू, समाधान, असाइनमेन्ट र थप समावेश हुन्छ। हाम्रो परियोजना-आधारित शिक्षण शैलीले तपाईलाई सिक्दै निर्माण गर्न अनुमति दिन्छ, जुन नयाँ सीपहरूलाई 'टिकाउन' प्रमाणित तरिका हो। - -**✍️ हाम्रा लेखकहरूलाई हार्दिक धन्यवाद** जेन् लूपर, स्टेफन होवेल, फ्रान्सेस्का लाज्जरी, टोमومی इमुरा, क्यासी ब्रेभिउ, दिमित्रि सोष्निकोव, क्रिस नोरिङ, अनिर्बान मुखर्जी, ओरनेला अल्टुनयान, रूथ याकुबु र एमि बोयड - -**🎨 धन्यवाद हाम्रा चित्रकारहरूलाई पनि** टोमومی इमुरा, दासानी मडिपली, र जेन् लूपर +हामीसँग एउटा Discord सिकाईसँगै AI श्रृंखला चलिरहेको छ, थप जान्न र हामीसँग जोडिनुहोस् [Learn with AI Series](https://aka.ms/learnwithai/discord) सेप्टेम्बर १८ - ३०, २०२५। तपाईं GitHub Copilot लाई डाटा विज्ञानका लागि प्रयोग गर्ने सुझाव र तरिकाहरू पाउनुहुनेछ। -**🙏 विशेष धन्यवाद 🙏 हाम्रा Microsoft Student Ambassador लेखकहरू, समीक्षकहरू, र सामग्री योगदानकर्ताहरूलाई**, विशेष गरी रिजीत डाग्ली, मुहम्मद साकिब खान इनान, रोहन राज, अलेक्जान्ड्रु पेट्रेस्कु, अभिषेक जायसवाल, नवरिन तबस्सुम, इओन सामुइला, र स्निग्धा अग्रवाल +# शुरुवात गर्दै -**🤩 अतिरिक्त कृतज्ञता Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, र Vidushi Gupta लाई हाम्रा R पाठहरूको लागि!** +यी चरणहरू पछ्याउनुहोस्: +1. **रिपोजिटरी फोर्क गर्नुहोस्**: यस पृष्ठको दायाँ माथि कुनामा रहेको "Fork" बटन थिच्नुहोस्। +2. **रिपोजिटरी क्लोन गर्नुहोस्**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -# सुरुवात +> [यो कोर्सका लागि सबै अतिरिक्त स्रोतहरू हाम्रो Microsoft Learn संग्रहमा फेला पार्नुहोस्](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -यी चरणहरू अनुसरण गर्नुहोस्: -1. **रिपोजिटरी Fork गर्नुहोस्**: यस पृष्ठको माथि-दायाँ कुनामा रहेको "Fork" बटनमा क्लिक गर्नुहोस्। -2. **रिपोजिटरी Clone गर्नुहोस्**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +> 🔧 **मद्दत चाहिन्छ?** सामान्य स्थापना, सेटअप, र पाठ चलाउने समस्याहरू समाधानका लागि हाम्रो [समस्या समाधान मार्गदर्शिका](TROUBLESHOOTING.md) हेर्नुहोस्। -> [यस कोर्सका थप स्रोतहरू हाम्रो Microsoft Learn सङ्कलनमा पाउनुहोस्](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +**[विद्यार्थीहरू](https://aka.ms/student-page)**, यो पाठ्यक्रम प्रयोग गर्न, पूरै रिपो तपाईंको GitHub खातामा फोर्क गर्नुहोस् र व्यायामहरू आफैंले वा समूहसँग पूरा गर्नुहोस्: -> 🔧 **सहायता चाहिन्छ?** सामान्य समस्याहरूको समाधानका लागि हाम्रा [समस्या समाधान मार्गदर्शन](TROUBLESHOOTING.md) हेर्नुहोस्। - -**[विद्यार्थीहरू](https://aka.ms/student-page)**, यो पाठ्यक्रम प्रयोग गर्न, सम्पूर्ण रिपोजिटरीलाई आफ्नो GitHub खातामा fork गर्नुहोस् र अभ्यासहरू आफैं वा समूहसँग पूरा गर्नुहोस्: - -- प्रि-लेक्चर क्विजबाट शुरू गर्नुहोस्। -- लेक्चर पढ्नुहोस् र गतिविधिहरू पूरा गर्नुहोस्, प्रत्येक ज्ञान जाँचमा रोकिएर विचार गर्नुहोस्। -- समाधान कोड चलाउनभन्दा पाठलाई बुझेर परियोजना सिर्जना गर्न प्रयास गर्नुहोस्; तथापि त्यो कोड प्रत्येक परियोजना-केन्द्रित पाठको `/solution` फोल्डरमा उपलब्ध छ। -- पोस्ट-लेक्चर क्विज लिनुहोस्। +- पूर्व-वक्ता क्विजबाट सुरु गर्नुहोस्। +- व्याख्यान पढ्नुहोस् र गतिविधिहरू पूरा गर्नुहोस्, प्रत्येक ज्ञान जाँचमा रोक्नुहोस् र विचार गर्नुहोस्। +- समाधान कोड चलाउनुभन्दा पाठहरू बुझेर परियोजनाहरू बनाउन प्रयास गर्नुहोस्; तथापि त्यो कोड प्रत्येक परियोजना-केन्द्रित पाठका `/solution` फोल्डरहरूमा उपलब्ध छ। +- पश्च-वक्ता क्विज लिनुहोस्। - चुनौती पूरा गर्नुहोस्। - असाइनमेन्ट पूरा गर्नुहोस्। -- एक पाठ समूह पूरा गरेपछि, [चर्चा बोर्ड](https://github.com/microsoft/ML-For-Beginners/discussions) मा जानुहोस् र उपयुक्त PAT रुबरिक भर्दै "ठूलो स्वरमा सिक्नुहोस्"। 'PAT' प्रगति मूल्यांकन उपकरण हो, जसलाई तपाईंले भर्दा आफ्नो सिकाइलाई बढावा दिन्छ। तपाईंले अरू PAT हरूमा प्रतिक्रिया दिन पनि सक्नुहुन्छ त्यसरी हामी सँगै सिक्न सक्छौं। +- एक पाठ समूह पूरा गरेपछि, [चर्चा बोर्ड](https://github.com/microsoft/ML-For-Beginners/discussions) मा जानुहोस् र "उच्चारण गरेर सिक्नुहोस्" उपयुक्त PAT रुब्रिक भरि। 'PAT' भनेको प्रगति मूल्यांकन उपकरण हो जुन तपाईंको सिकाइलाई अगाडि बढाउनको लागि रुब्रिक हो। तपाईंले अरू PAT हरूसँग प्रतिक्रिया दिन सक्नुहुन्छ जसबाट हामी सँगै सिक्न सक्छौँ। -> थप अध्ययनको लागि, हामी यी [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मोड्युलहरू र सिकाइ मार्गहरू अनुसरण गर्न सिफारिस गर्छौं। +> थप अध्ययनका लागि, यी [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) मोड्युल र सिकाइ मार्गहरू पछ्याउन सिफारिस गरिन्छ। -**शिक्षकहरू**, यस पाठ्यक्रम प्रयोग गर्ने केही सुझावहरू हामीले [समेटेका छौं](for-teachers.md)। +**शिक्षकहरू**, हामीले यस पाठ्यक्रम प्रयोग गर्ने केही सुझावहरू [सहित गरेका छौं](for-teachers.md)। --- -## भिडियो हिडाइडाइ - -केही पाठहरू छोटो भिडियोको रूपमा उपलब्ध छन्। यी सबैलाई तपाईं पाठहरू भित्र पाउनुहुन्छ, वा [ML for Beginners प्लेलिस्ट Microsoft Developer YouTube च्यानलमा](https://aka.ms/ml-beginners-videos) तलको तस्वीरमा क्लिक गरेर हेर्न सक्नुहुन्छ। +## भिडियो वाकथ्रुहरू -[![ML for beginners banner](../../translated_images/ne/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +केही पाठहरू छोटो फर्म भिडियोको रूपमा उपलब्ध छन्। तपाईं यी सबैलाई पाठहरूमा इनलाइन वा [Microsoft Developer YouTube च्यानलको ML for Beginners प्लेलिस्ट](https://aka.ms/ml-beginners-videos) मा हेर्न सक्नुहुन्छ तल चित्रमा क्लिक गरेर। --- -## टोलीसँग भेटघाट - -[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) - -**Gif द्वारा** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) - -> 🎥 माथिको तस्वीरमा क्लिक गर्दा परियोजना र यसलाई सिर्जना गर्ने मानिसहरूको भिडियो हेर्न सकिन्छ! +## टोलीसँग परिचय --- -## शिक्षण विधि +## पेडागोकी -हामीले यो पाठ्यक्रम तयार पार्दा दुई शैक्षिक सिद्धान्तहरू छनौट गरेका छौं: यसलाई हातमा लिई **परियोजना-आधारित** बनाउनु र यसमा **बारम्बार क्विजहरू** समावेश गर्नु। थप रूपमा, यो पाठ्यक्रमसँग एउटा साझा **थीम** छ जसले यसलाई एकता दिन्छ। +हामीले यो पाठ्यक्रम निर्माण गर्दा दुई शैक्षिक सिद्धान्तहरू छानेका छौं: यो हातमा काम गर्ने **प्रोजेक्ट-आधारित** हुनुपर्छ र यसमा **लगातार क्विजहरू** समावेश हुनुपर्छ। साथै, यस पाठ्यक्रमलाई एक साझा **थीम** दिन तयार गरिएको छ। -सामग्रीलाई परियोजनासँग मिलाएर, विद्यार्थीहरूको लागि प्रक्रिया रमाइलो बनाइन्छ र अवधारणाको अवधारण क्षमता वृद्धि हुन्छ। कक्षाको अघि कम जोखिमको क्विजले विद्यार्थीलाई विषय सिक्ने चाहना जगाउँछ भने कक्षाको पछि दोस्रो क्विजले थप सम्झना सुनिश्चित गर्दछ। यो पाठ्यक्रम लचिलो र रमाइलो बनाइएको छ र पुरा वा भागमा लिन सकिन्छ। परियोजनाहरू सुरुमा साना हुन्छन् र १२ हप्ताको अन्त्यतिर झनै जटिल बन्दै जान्छन्। यसमा ML को वास्तविक संसारका अनुप्रयोगहरू समावेश गरिएको छ, जुन अतिरिक्त क्रेडिट वा छलफलको आधारको रूपमा प्रयोग गर्न सकिन्छ। +सामग्री प्रोजेक्टहरूसँग मेल खाने सुनिश्चित गरेर, विद्यार्थीहरूलाई थप संलग्न गरिन्छ र अवधारणाहरूको स्मरण बढ्छ। कक्षाको अघि सानो क्विज विद्यार्थीको मनस्थितिलाई विषय सिक्न प्रेरित गर्छ, जबकि कक्षापछि दोस्रो क्विज यसलाई थप स्मरणीय बनाउँछ। यो पाठ्यक्रम लचिलो र रमाइलो बनाउन डिजाइन गरिएको छ र पूरै वा भागमा लिन सकिन्छ। परियोजनाहरू शुरूमा साना हुन्छन् र १२ हप्ताको अन्त्यतिर जटिल बन्दै जान्छन्। यस पाठ्यक्रममा वास्तविक विश्वका ML आवेदकोंको पोस्टस्क्रिप्ट पनि समावेश छ, जुन अतिरिक्त क्रेडिट वा छलफलको आधारका रूपमा प्रयोग गर्न सकिन्छ। -> हाम्रो [आचरण संहिता](CODE_OF_CONDUCT.md), [योगदान गर्ने तरिका](CONTRIBUTING.md), [अनुवादहरू](..), र [समस्या समाधान](TROUBLESHOOTING.md) निर्देशनहरू पाउनसक्नुहुन्छ। तपाईका रचनात्मक प्रतिक्रिया स्वागत छ! +> हाम्रो [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), र [Troubleshooting](TROUBLESHOOTING.md) दिशानिर्देशहरू फेला पार्नुहोस्। हामी तपाईंको रचनात्मक प्रतिक्रिया स्वागत गर्दछौं! -## प्रत्येक पाठमा समावेश छन् +## प्रत्येक पाठले समावेश गर्दछ - वैकल्पिक स्केचनोट - वैकल्पिक पूरक भिडियो -- भिडियो हिडाइडाइ (केही पाठहरूमा मात्र) -- [प्री-लेक्चर वार्मअप क्विज](https://ff-quizzes.netlify.app/en/ml/) -- लिखित पाठ -- परियोजना-आधारित पाठहरूमा परियोजना निर्माणका चरण-द्वारा-चरण निर्देशनहरू -- ज्ञान जाँचहरू +- भिडियो वाकथ्रु (केही पाठहरूमा मात्र) +- [पूर्व-वक्ता वार्मअप क्विज](https://ff-quizzes.netlify.app/en/ml/) +- लेखिएको पाठ +- परियोजना-आधारित पाठहरूका लागि, परियोजना निर्माण गर्ने चरण-दर-चरण मार्गनिर्देशन +- ज्ञान परीक्षणहरू - चुनौती - पूरक पढाइ - असाइनमेन्ट -- [पोस्ट-लेक्चर क्विज](https://ff-quizzes.netlify.app/en/ml/) - -> **भाषाहरूको लागि एउटा नोट**: यी पाठहरू मुख्य रूपमा Python मा लेखिएका छन्, तर धेरै पाठहरू R मा पनि उपलब्ध छन्। R पाठ पूरा गर्न, `/solution` फोल्डरमा गई R पाठहरू खोज्नुहोस्। तिनीहरूमा .rmd विस्तार हुन्छ जुन **R Markdown** फाइल हो, जसलाई सरल रूपमा `code chunks` (R वा अन्य भाषाहरूका) र `YAML header` (PDF जस्ता आउटपुट कसरी फर्म्याट गर्ने निर्देश दिने)लाई `Markdown कागजात` मा एकीकृत गर्ने रूपले व्याख्या गर्न सकिन्छ। यसले तपाईंलाई कोड, यसको आउटपुट, र तपाईंका विचारहरू Markdown मा लेख्न अनुमति दिँदै डेटा विज्ञानका लागि उत्कृष्ट लेखन फ्रेमवर्कको रूपमा काम गर्दछ। अझ, R Markdown कागजातहरू PDF, HTML, वा Word जस्ता आउटपुट स्वरूपहरूमा रूपान्तरित गर्न सकिन्छ। -> **क्विजहरू सम्बन्धमा एउटा नोट**: सबै क्विजहरू [Quiz App फोल्डर](../../quiz-app) भित्र छन्, जुनमा प्रत्येकमा तीन प्रश्नहरूको ५२ कुल क्विजहरू छन्। तिनीहरू पाठहरू भित्रबाट लिंक गरिएका छन् तर क्विज एप स्थानीय रूपमा चलाउन सकिन्छ; स्थानीय रूपमा होस्ट वा Azure मा डिप्लोय गर्न `quiz-app` फोल्डरमा निर्देशनहरू पालना गर्नुहोस्। - -| पाठ संख्या | विषय | पाठ समूह | सिकाइ उद्देश्यहरू | लिंक गरिएको पाठ | लेखक | -| :---------: | :------------------------------------------------------------: | :-------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| ०१ | मेशिन लर्निङ्गमा परिचय | [परिचय](1-Introduction/README.md) | मेशिन लर्निङ्गको आधारभूत सिद्धान्तहरू सिक्नुहोस् | [पाठ](1-Introduction/1-intro-to-ML/README.md) | मुहम्मद | -| ०२ | मेशिन लर्निङ्गको इतिहास | [परिचय](1-Introduction/README.md) | यो क्षेत्रको इतिहास सिक्नुहोस् | [पाठ](1-Introduction/2-history-of-ML/README.md) | जेन र एमी | -| ०३ | निष्पक्षता र मेशिन लर्निङ्ग | [परिचय](1-Introduction/README.md) | मेशिन लर्निङ्ग मोडेलहरू बनाउँदा र लागू गर्दा विद्यार्थीहरूले विचार गर्नुपर्ने निष्पक्षता सम्बन्धी महत्वपूर्ण दार्शनिक मुद्दाहरू के हुन्? | [पाठ](1-Introduction/3-fairness/README.md) | तोमोमी | -| ०४ | मेशिन लर्निङ्गका प्रविधिहरू | [परिचय](1-Introduction/README.md) | मेशिन लर्निङ्ग मोडेलहरू बनाउन शोधकर्ताहरूले कस्ता प्रविधिहरू प्रयोग गर्छन्? | [पाठ](1-Introduction/4-techniques-of-ML/README.md) | क्रिस र जेन | -| ०५ | रिग्रेसनमा परिचय | [रिग्रेसन](2-Regression/README.md) | पेथन र स्किकिट-लर्नसँग रिग्रेसन मोडेलहरू प्रयोग गर्न सुरु गर्नुहोस् | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | जेन • एरिक वन्जाउ | -| ०६ | उत्तर अमेरिकी कद्दू मूल्यहरू 🎃 | [रिग्रेसन](2-Regression/README.md) | एमएल को तयारीका लागि डाटा भिजुअलाइज र सफा गर्नुहोस् | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | जेन • एरिक वन्जाउ | -| ०७ | उत्तर अमेरिकी कद्दू मूल्यहरू 🎃 | [रिग्रेसन](2-Regression/README.md) | रेखीय र बहुपदीय रिग्रेसन मोडेलहरू बनाउनुहोस् | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | जेन र डिमिटी • एरिक वन्जाउ | -| ०८ | उत्तर अमेरिकी कद्दू मूल्यहरू 🎃 | [रिग्रेसन](2-Regression/README.md) | एक Logistic regression मोडेल बनाउनुहोस् | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | जेन • एरिक वन्जाउ | -| ०९ | वेब एप्लिकेसन 🔌 | [वेब एप](3-Web-App/README.md) | तपाईंको प्रशिक्षित मोडेल प्रयोग गर्न वेब एप्लिकेसन बनाउनुहोस् | [Python](3-Web-App/1-Web-App/README.md) | जेन | -| १० | वर्गीकरणमा परिचय | [वर्गीकरण](4-Classification/README.md) | आफ्नो डाटा सफा, तयारी र भिजुअलाइज गर्नुहोस्; वर्गीकरणमा परिचय | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | जेन र क्यासी • एरिक वन्जाउ | -| ११ | स्वादिष्ट एशियाली र भारतीय भोजनहरूको परिचय 🍜 | [वर्गीकरण](4-Classification/README.md) | वर्गीकर्ताहरूमा परिचय | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | जेन र क्यासी • एरिक वन्जाउ | -| १२ | स्वादिष्ट एशियाली र भारतीय भोजनहरूको परिचय 🍜 | [वर्गीकरण](4-Classification/README.md) | थप वर्गीकर्ताहरू | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | जेन र क्यासी • एरिक वन्जाउ | -| १३ | स्वादिष्ट एशियाली र भारतीय भोजनहरूको परिचय 🍜 | [वर्गीकरण](4-Classification/README.md) | आफ्नो मोडेल प्रयोग गरी सिफारिस गर्ने वेब एप बनाउनुहोस् | [Python](4-Classification/4-Applied/README.md) | जेन | -| १४ | क्लस्टरिङमा परिचय | [क्लस्टरिङ](5-Clustering/README.md) | आफ्नो डाटा सफा, तयारी र भिजुअलाइज गर्नुहोस्; क्लस्टरिङमा परिचय | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | जेन • एरिक वन्जाउ | -| १५ | नाइजेरियन संगीत रुचिहरूको अन्वेषण 🎧 | [क्लस्टरिङ](5-Clustering/README.md) | K-Means क्लस्टरिङ विधि अन्वेषण गर्नुहोस् | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | जेन • एरिक वन्जाउ | -| १६ | प्राकृतिक भाषा प्रशोधनमा परिचय ☕️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | एउटा सजिलो बोट बनाएर NLP का आधारभूत कुरा सिक्नुहोस् | [Python](6-NLP/1-Introduction-to-NLP/README.md) | स्टिफेन | -| १७ | सामान्य NLP कार्यहरू ☕️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | भाषा संरचनाहरूमा काम गर्दा आवश्यक सामान्य कार्यहरू बुझेर आफ्नो NLP ज्ञानलाई गहिराइमा पुर्याउनुहोस् | [Python](6-NLP/2-Tasks/README.md) | स्टिफेन | -| १८ | अनुवाद र भावना विश्लेषण ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | Jane Austen का साथ अनुवाद र भावना विश्लेषण | [Python](6-NLP/3-Translation-Sentiment/README.md) | स्टिफेन | -| १९ | युरोपका रोमान्टिक होटेलहरू ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | होटेल समीक्षा १ संग भावना विश्लेषण | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | स्टिफेन | -| २० | युरोपका रोमान्टिक होटेलहरू ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | होटेल समीक्षा २ संग भावना विश्लेषण | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | स्टिफेन | -| २१ | समय श्रृंखला भविष्यवाणीमा परिचय | [समय श्रृंखला](7-TimeSeries/README.md) | समय श्रृंखला भविष्यवाणीमा परिचय | [Python](7-TimeSeries/1-Introduction/README.md) | फ्रान्चेस्का | -| २२ | ⚡️ विश्व विद्युत प्रयोग ⚡️ - ARIMA सँग समय श्रृंखला भविष्यवाणी | [समय श्रृंखला](7-TimeSeries/README.md) | ARIMA सँग समय श्रृंखला भविष्यवाणी | [Python](7-TimeSeries/2-ARIMA/README.md) | फ्रान्चेस्का | -| २३ | ⚡️ विश्व विद्युत प्रयोग ⚡️ - SVR सँग समय श्रृंखला भविष्यवाणी | [समय श्रृंखला](7-TimeSeries/README.md) | Support Vector Regressor सँग समय श्रृंखला भविष्यवाणी | [Python](7-TimeSeries/3-SVR/README.md) | अनिर्बान | -| २४ | प्रतिस्थापन शिक्षामा परिचय | [प्रतिस्थापन शिक्षा](8-Reinforcement/README.md) | Q-Learning सँग प्रतिस्थापन शिक्षामा परिचय | [Python](8-Reinforcement/1-QLearning/README.md) | डिमिटी | -| २५ | पिटरलाई बाघबाट बचाउनुहोस्! 🐺 | [प्रतिस्थापन शिक्षा](8-Reinforcement/README.md) | प्रतिस्थापन शिक्षाको जिम | [Python](8-Reinforcement/2-Gym/README.md) | डिमिटी | -| उपसंहार | वास्तविक संसारका ML परिदृश्यहरू र अनुप्रयोगहरू | [ML वाइल्डमा](9-Real-World/README.md) | शास्त्रीय ML का रोचक र खुलासात्मक वास्तविक संसारका अनुप्रयोगहरू | [पाठ](9-Real-World/1-Applications/README.md) | टोली | -| उपसंहार | RAI ड्यासबोर्ड प्रयोग गरी ML मा मोडेल डिबगिङ | [ML वाइल्डमा](9-Real-World/README.md) | जिम्मेवार AI ड्यासबोर्ड कम्पोनेन्टहरू प्रयोग गरी मेशिन लर्निङ्गमा मोडेल डिबगिङ | [पाठ](9-Real-World/2-Debugging-ML-Models/README.md) | रुथ याकुवु | +- [पश्च-वक्ता क्विज](https://ff-quizzes.netlify.app/en/ml/) +> **भाषाहरूको बारेमा एउटा नोट**: यी पाठहरू मुख्य रूपमा Python मा लेखिएका हुन्, तर धेरै R मा पनि उपलब्ध छन्। R पाठ पूरा गर्न, `/solution` फोल्डरमा जानुहोस् र R पाठहरूको खोजी गर्नुहोस्। तिनीहरूमा `.rmd` विस्तार हुन्छ जुन एक **R Markdown** फाइल प्रतिनिधित्व गर्छ, जसलाई साधारण रूपमा `code chunks` (R वा अन्य भाषाहरूका) र `YAML header` (जसले PDF जस्ता आउटपुटलाई कसरी फर्म्याट गर्ने दिशानिर्देशन गर्छ) को समावेशीकरणको रूपमा परिभाषित गर्न सकिन्छ `Markdown document` मा। यसकारण, यो डेटा विज्ञानको लागि एउटा उत्कृष्ट लेखन फ्रेमवर्कको रूपमा काम गर्छ किनकि यसले तपाईंलाई तपाईंको कोड, यसको आउटपुट, र तपाईंका विचारहरू Markdown मा लेख्न अनुमति दिँदै तिनीहरूलाई संयोजन गर्न अनुमति दिन्छ। थप रूपमा, R Markdown कागजातहरू PDF, HTML, वा Word जस्ता आउटपुट स्वरूपहरूमा रेंडर गर्न सकिन्छ। + +> **कुइजहरूको बारेमा एउटा नोट**: सबै कुइजहरू [Quiz App folder](../../quiz-app) मा समावेश छन्, जम्मा ५२ कुइजहरू जसमा प्रत्येकमा तीन प्रश्नहरू हुन्छन्। ती पाठहरूबाट लिंक गरिएको छ तर कुइज एप्लिकेशन स्थानीय रूपमा चलाउन सकिन्छ; स्थानीय रूपमा होस्ट वा Azure मा वितरण गर्न `quiz-app` फोल्डरमा निर्देशनहरू पालना गर्नुहोस्। + +| पाठ संख्या | विषय | पाठ समूह | सिकाइ उद्देश्य | लिंक गरिएको पाठ | लेखक | +| :--------: | :------------------------------------------------------------: | :----------------------------------------: | ---------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------: | +| ०१ | मेशिन लर्निंग परिचय | [परिचय](1-Introduction/README.md) | मेशिन लर्निंगका आधारभूत अवधारणाहरू सिक्नुहोस् | [पाठ](1-Introduction/1-intro-to-ML/README.md) | मुहम्मद | +| ०२ | मेशिन लर्निंगको इतिहास | [परिचय](1-Introduction/README.md) | यस क्षेत्रको इतिहास सिक्नुहोस् | [पाठ](1-Introduction/2-history-of-ML/README.md) | जेन र एमी | +| ०३ | निष्पक्षता र मेशिन लर्निंग | [परिचय](1-Introduction/README.md) | मेशिन लर्निंग मोडेलहरू बनाउने र लागू गर्ने क्रममा विद्यार्थीले विचार गर्नुपर्ने महत्वपूर्ण दार्शनिक मुद्दाहरू के छन्? | [पाठ](1-Introduction/3-fairness/README.md) | तोमोमी | +| ०४ | मेशिन लर्निंगका प्रविधिहरू | [परिचय](1-Introduction/README.md) | मेशिन लर्निंग अनुसन्धानकर्ताहरूले मेशिन लर्निंग मोडेलहरू बनाउन कुन प्रविधिहरू प्रयोग गर्छन्? | [पाठ](1-Introduction/4-techniques-of-ML/README.md) | क्रिस र जेन | +| ०५ | रिग्रेसन परिचय | [रिग्रेसन](2-Regression/README.md) | Python र Scikit-learn सँग रिग्रेसन मोडेलहरू बनाउन सुरु गर्नुहोस् | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | जेन • एरिक वान्जाउ | +| ०६ | उत्तर अमेरिका कुम्हडा मूल्य 🎃 | [रिग्रेसन](2-Regression/README.md) | मेशिन लर्निंगका लागि डेटा भिजुअलाइज र सफा गर्नुहोस् | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | जेन • एरिक वान्जाउ | +| ०७ | उत्तर अमेरिका कुम्हडा मूल्य 🎃 | [रिग्रेसन](2-Regression/README.md) | रेखीय र बहुपद रिग्रेसन मोडेलहरू बनाउनुहोस् | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | जेन र दिमित्री • एरिक वान्जाउ | +| ०८ | उत्तर अमेरिका कुम्हडा मूल्य 🎃 | [रिग्रेसन](2-Regression/README.md) | एक लॉजिस्टिक रिग्रेसन मोडेल बनाउनुहोस् | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | जेन • एरिक वान्जाउ | +| ०९ | वेब एप्लिकेसन 🔌 | [वेब एप](3-Web-App/README.md) | तपाईंको प्रशिक्षित मोडेल प्रयोग गर्न वेब एप बनाउनुहोस् | [Python](3-Web-App/1-Web-App/README.md) | जेन | +| १० | वर्गीकरण परिचय | [वर्गीकरण](4-Classification/README.md) | तपाईंको डेटा सफा, तयार, र भिजुअलाइज गर्नुहोस्; वर्गीकरण परिचय | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | जेन र क्यासी • एरिक वान्जाउ | +| ११ | स्वादिष्ट एशियाली र भारतीय भान्सा 🍜 | [वर्गीकरण](4-Classification/README.md) | वर्गीकर्ताहरूको परिचय | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | जेन र क्यासी • एरिक वान्जाउ | +| १२ | स्वादिष्ट एशियाली र भारतीय भान्सा 🍜 | [वर्गीकरण](4-Classification/README.md) | थप वर्गीकर्ताहरू | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | जेन र क्यासी • एरिक वान्जाउ | +| १३ | स्वादिष्ट एशियाली र भारतीय भान्सा 🍜 | [वर्गीकरण](4-Classification/README.md) | तपाईंको मोडेल प्रयोग गरी सिफारिस गर्ने वेब एप बनाउनुहोस् | [Python](4-Classification/4-Applied/README.md) | जेन | +| १४ | क्लस्टरिङ्ग परिचय | [क्लस्टरिङ्ग](5-Clustering/README.md) | तपाईंको डेटा सफा, तयार, र भिजुअलाइज गर्नुहोस्; क्लस्टरिङ्ग परिचय | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | जेन • एरिक वान्जाउ | +| १५ | नाइजेरियाली संगीतिक रुचिहरू अन्वेषण 🎧 | [क्लस्टरिङ्ग](5-Clustering/README.md) | K-Means क्लस्टरिङ्ग विधि अन्वेषण गर्नुहोस् | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | जेन • एरिक वान्जाउ | +| १६ | प्राकृतिक भाषा प्रशोधन परिचय ☕️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | सानो बोट निर्माण गरेर NLP का आधारभूत कुरा सिक्नुहोस् | [Python](6-NLP/1-Introduction-to-NLP/README.md) | स्टिफेन | +| १७ | सामान्य NLP कार्यहरू ☕️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | भाषा संरचनासँग व्यवहार गर्दा आवश्यक सामान्य कार्य बुझेर तपाईंको NLP ज्ञान गहिरो बनाउनुहोस् | [Python](6-NLP/2-Tasks/README.md) | स्टिफेन | +| १८ | अनुवाद र भावना विश्लेषण ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | जेन ऑस्टेनसँग गरिएको अनुवाद र भावना विश्लेषण | [Python](6-NLP/3-Translation-Sentiment/README.md) | स्टिफेन | +| १९ | युरोपका रोमान्टिक होटलहरू ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | होटल समीक्षासँग भावना विश्लेषण १ | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | स्टिफेन | +| २० | युरोपका रोमान्टिक होटलहरू ♥️ | [प्राकृतिक भाषा प्रशोधन](6-NLP/README.md) | होटल समीक्षासँग भावना विश्लेषण २ | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | स्टिफेन | +| २१ | समय श्रृंखला पूर्वानुमान परिचय | [समय श्रृंखला](7-TimeSeries/README.md) | समय श्रृंखला पूर्वानुमान परिचय | [Python](7-TimeSeries/1-Introduction/README.md) | फ्रान्सेस्का | +| २२ | ⚡️ विश्व ऊर्जा प्रयोग ⚡️ - ARIMA सँग समय श्रृंखला पूर्वानुमान | [समय श्रृंखला](7-TimeSeries/README.md) | ARIMA सँग समय श्रृंखला पूर्वानुमान | [Python](7-TimeSeries/2-ARIMA/README.md) | फ्रान्सेस्का | +| २३ | ⚡️ विश्व ऊर्जा प्रयोग ⚡️ - SVR सँग समय श्रृंखला पूर्वानुमान | [समय श्रृंखला](7-TimeSeries/README.md) | Support Vector Regressor सँग समय श्रृंखला पूर्वानुमान | [Python](7-TimeSeries/3-SVR/README.md) | अनिर्बान | +| २४ | सुदृढीकरण शिक्षण परिचय | [सुदृढीकरण शिक्षण](8-Reinforcement/README.md) | Q-Learning सँग सुदृढीकरण शिक्षण परिचय | [Python](8-Reinforcement/1-QLearning/README.md) | दिमित्री | +| २५ | पिटरलाई बाघबाट बचाउन मद्दत गर्नुहोस्! 🐺 | [सुदृढीकरण शिक्षण](8-Reinforcement/README.md) | सुदृढीकरण शिक्षण जिम | [Python](8-Reinforcement/2-Gym/README.md) | दिमित्री | +| पोस्टस्क्रिप्ट | वास्तविक जीवनका ML परिदृश्य र अनुप्रयोगहरू | [जंगली ML](9-Real-World/README.md) | क्लासिकल ML का रोचक र प्रकट गर्ने वास्तविक जीवनका अनुप्रयोगहरू | [पाठ](9-Real-World/1-Applications/README.md) | टिम | +| पोस्टस्क्रिप्ट | RAI ड्यासबोर्डको प्रयोग गरेर ML मा मोडेल डिबगिङ | [जंगली ML](9-Real-World/README.md) | जिम्मेवार AI ड्यासबोर्ड कम्पोनेन्टहरू प्रयोग गरेर मेशिन लर्निंगमा मोडेल डिबगिङ | [पाठ](9-Real-World/2-Debugging-ML-Models/README.md) | रुथ याकुबु | > [यस कोर्सका लागि सबै अतिरिक्त स्रोतहरू हाम्रो Microsoft Learn संग्रहमा खोज्नुहोस्](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## अफलाइन पहुँच -तपाईं [Docsify](https://docsify.js.org/#/) प्रयोग गरेर यो दस्तावेजीकरण अफलाइन चलाउन सक्नुहुन्छ। यो रेपो फोर्क गर्नुहोस्, आफ्नो स्थानीय मेसिनमा [Docsify स्थापना गर्नुहोस्](https://docsify.js.org/#/quickstart), र त्यसपछि यस रेपोको रूट फोल्डरमा `docsify serve` टाइप गर्नुहोस्। वेबसाइट तपाईंको लोकलहोस्टमा पोर्ट 3000 मा सेवा गरिनेछ: `localhost:3000`। +तपाईं यस दस्तावेजलाई अफलाइन [Docsify](https://docsify.js.org/#/) प्रयोग गरेर चलाउन सक्नुहुन्छ। यो रिपो फोर्क गर्नुहोस्, तपाईँको स्थानीय मेसिनमा [Docsify स्थापना गर्नुहोस्](https://docsify.js.org/#/quickstart), अनि यो रिपोको मूल फोल्डरमा जानुहोस् र `docsify serve` टाइप गर्नुहोस्। यो वेबसाइट तपाईंको स्थानीयहोस्टमा पोर्ट 3000 मा सेवा दिनेछ: `localhost:3000`. + +## PDFहरू -## PDF हरू +पाठ्यक्रमको PDF लिंकसहितको फाइल [यहाँ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) पाउनुहोस्। -क्युरिकुलमको PDF यहाँ लिंक सहित पाउनुहोस् [यहाँ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)। -## 🎒 अन्य कोर्सहरू +## 🎒 अन्य कोर्सहरू हाम्रो टोलीले अन्य कोर्सहरू उत्पादन गर्दछ! जाँच गर्नुहोस्: @@ -183,54 +142,31 @@ Microsoft का क्लाउड अधिवक्ताहरूले १ ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) - --- -### जनरेटिभ AI शृंखला -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### जेनेरेटिभ एआई सिरिज --- -### मुख्य सिकाइ -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### कोर सिकाइ --- -### कोपाइलट श्रृंखला -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) - - -## मद्दत पाउनुहोस् - -यदि तपाईं अड्किनुभयो वा AI अनुप्रयोग निर्माण गर्ने बारे कुनै प्रश्नहरू छन् भने। MCP सम्बन्धी छलफलमा साथी सिक्नेहरू र अनुभवी विकासकर्ताहरू सँग सामेल हुनुहोस्। यो एक सहयोगी समुदाय हो जहाँ प्रश्नहरू स्वागतयोग्य छन् र ज्ञान स्वतन्त्र रूपमा साझा गरिन्छ। +### कोपिलट सिरिज -[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +## मद्दत प्राप्त गर्दै -यदि तपाईंसँग उत्पादन सम्बन्धी प्रतिक्रिया वा निर्माण गर्दा त्रुटिहरू छन् भने भ्रमण गर्नुहोस्: +यदि तपाईं अड्किनुहुन्छ वा एआई एपहरू बनाउनका बारेमा कुनै प्रश्नहरू छन् भने। सहपाठीहरू र अनुभवी विकासकर्ताहरूसँग MCP सम्बन्धी छलफलहरूमा सहभागी हुनुहोस्। यो एउटा सहायक समुदाय हो जहाँ प्रश्नहरू स्वागतयोग्य छन् र ज्ञान स्वतन्त्र रूपमा साझा गरिन्छ। -[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## थप सिकाइ सुझावहरू -- प्रत्येक पाठ पछिको नोटबुकहरू अवलोकन गर्नुहोस् राम्रो बुझाइका लागि। -- आफैँले एल्गोरिदमहरू कार्यान्वयन गर्ने अभ्यास गर्नुहोस्। -- सिकेका अवधारणाहरू प्रयोग गरेर वास्तविक संसारका डेटा सेटहरू अन्वेषण गर्नुहोस्। +- हरेक पाठपछि नोटबुकहरू पुनरावृत्ति गर्नुहोस् राम्रो बुझाइका लागि। +- आफैंले एल्गोरिदमहरू अभ्यास गरेर कार्यान्वयन गर्नुहोस्। +- सिकेका अवधारणाहरू प्रयोग गर्दै वास्तविक-विश्वका डाटासेटहरू अन्वेषण गर्नुहोस्। --- -**अस्वीकरण**: -यस दस्तावेजलाई AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) प्रयोग गरी अनुवाद गरिएको हो। हामी सटीकता तर्फ प्रयासरत छौं, तर कृपया यो बुझ्नुस् कि स्वचालित अनुवादमा त्रुटि वा अशुद्धता हुन सक्छ। मूल दस्तावेज यसको मूल भाषामा नै अधिकारिक स्रोत मानिनुपर्छ। महत्वपूर्ण सूचनाका लागि पेशेवर मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न कुनै पनि बुझाइको गलतफहमी वा व्याख्यामा हामी जिम्मेवार हुने छैनौं। +**अस्वीकरण**: +यस दस्तावेजलाई AI अनुवाद सेवा [Co-op Translator](https://github.com/Azure/co-op-translator) को प्रयोग गरी अनुवाद गरिएको छ। हामी सटीकता को लागि प्रयासरत छौं, तर कृपया जानकार हुनुहोस् कि स्वचालित अनुवादहरूमा त्रुटिहरू वा गलतिहरू हुनसक्छन्। मूल दस्तावेज यसको स्वदेशी भाषामा अधिकारिक स्रोत मानिनु पर्छ। महत्वपूर्ण जानकारीको लागि, पेशेवर मानव अनुवाद सिफारिस गरिन्छ। यस अनुवादको प्रयोगबाट उत्पन्न हुने कुनै पनि गलतफहमी वा गलत व्याख्याका लागि हामी जिम्मेवार होइनौं। \ No newline at end of file diff --git a/translations/nl/.co-op-translator.json b/translations/nl/.co-op-translator.json index b4f68a953..2ccf25de9 100644 --- a/translations/nl/.co-op-translator.json +++ b/translations/nl/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "nl" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:07:16+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:03:54+00:00", "source_file": "README.md", "language_code": "nl" }, diff --git a/translations/nl/README.md b/translations/nl/README.md index b6d1338d1..b408ab39f 100644 --- a/translations/nl/README.md +++ b/translations/nl/README.md @@ -10,14 +10,14 @@ ### 🌐 Meertalige ondersteuning -#### Ondersteund via GitHub Action (Geautomatiseerd & Altijd Up-to-Date) +#### Ondersteund via GitHub Action (Automatisch & Altijd Up-to-Date) -[Arabisch](../ar/README.md) | [Bengaals](../bn/README.md) | [Bulgaars](../bg/README.md) | [Birmaans (Myanmar)](../my/README.md) | [Chinees (Vereenvoudigd)](../zh-CN/README.md) | [Chinees (Traditioneel, Hong Kong)](../zh-HK/README.md) | [Chinees (Traditioneel, Macau)](../zh-MO/README.md) | [Chinees (Traditioneel, Taiwan)](../zh-TW/README.md) | [Kroatisch](../hr/README.md) | [Tsjechisch](../cs/README.md) | [Deens](../da/README.md) | [Nederlands](./README.md) | [Ests](../et/README.md) | [Fins](../fi/README.md) | [Frans](../fr/README.md) | [Duits](../de/README.md) | [Grieks](../el/README.md) | [Hebreeuws](../he/README.md) | [Hindi](../hi/README.md) | [Hongaars](../hu/README.md) | [Indonesisch](../id/README.md) | [Italiaans](../it/README.md) | [Japans](../ja/README.md) | [Kannada](../kn/README.md) | [Koreaans](../ko/README.md) | [Litouws](../lt/README.md) | [Maleis](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalees](../ne/README.md) | [Nigeriaans Pidgin](../pcm/README.md) | [Noors](../no/README.md) | [Perzisch (Farsi)](../fa/README.md) | [Pools](../pl/README.md) | [Portugees (Brazilië)](../pt-BR/README.md) | [Portugees (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Roemeens](../ro/README.md) | [Russisch](../ru/README.md) | [Servisch (Cyrillisch)](../sr/README.md) | [Slowaaks](../sk/README.md) | [Sloveens](../sl/README.md) | [Spaans](../es/README.md) | [Swahili](../sw/README.md) | [Zweeds](../sv/README.md) | [Tagalog (Filipijns)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turks](../tr/README.md) | [Oekraïens](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamees](../vi/README.md) +[Arabisch](../ar/README.md) | [Bengaals](../bn/README.md) | [Bulgaars](../bg/README.md) | [Birmaans (Myanmar)](../my/README.md) | [Chinees (Vereenvoudigd)](../zh-CN/README.md) | [Chinees (Traditioneel, Hong Kong)](../zh-HK/README.md) | [Chinees (Traditioneel, Macau)](../zh-MO/README.md) | [Chinees (Traditioneel, Taiwan)](../zh-TW/README.md) | [Kroatisch](../hr/README.md) | [Tsjechisch](../cs/README.md) | [Deens](../da/README.md) | [Nederlands](./README.md) | [Ests](../et/README.md) | [Fins](../fi/README.md) | [Frans](../fr/README.md) | [Duits](../de/README.md) | [Grieks](../el/README.md) | [Hebreeuws](../he/README.md) | [Hindi](../hi/README.md) | [Hongaars](../hu/README.md) | [Indonesisch](../id/README.md) | [Italiaans](../it/README.md) | [Japans](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Koreaans](../ko/README.md) | [Litouws](../lt/README.md) | [Maleis](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalees](../ne/README.md) | [Nigeriaans Pidgin](../pcm/README.md) | [Noors](../no/README.md) | [Perzisch (Farsi)](../fa/README.md) | [Pools](../pl/README.md) | [Portugees (Brazilië)](../pt-BR/README.md) | [Portugees (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Roemeens](../ro/README.md) | [Russisch](../ru/README.md) | [Servisch (Cyrillisch)](../sr/README.md) | [Slowaaks](../sk/README.md) | [Sloveens](../sl/README.md) | [Spaans](../es/README.md) | [Swahili](../sw/README.md) | [Zweeds](../sv/README.md) | [Tagalog (Filipijns)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turks](../tr/README.md) | [ Oekraïens](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamees](../vi/README.md) -> **Liever lokaal klonen?** +> **Lieferen om lokaal te klonen?** > -> Deze repository bevat meer dan 50 taalvertalingen, wat de downloadgrootte aanzienlijk vergroot. Om zonder vertalingen te klonen, gebruik je sparse checkout: +> Deze repository bevat meer dan 50 vertalingen wat de downloadgrootte aanzienlijk verhoogt. Om zonder vertalingen te klonen, gebruik sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Dit geeft je alles wat je nodig hebt om de cursus af te ronden met een veel snellere download. +> Dit geeft je alles wat je nodig hebt om de cursus te voltooien met een veel snellere download. -#### Sluit je aan bij onze community +#### Word lid van onze community [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -We hebben een Discord leer met AI-serie lopen, leer meer en sluit je aan bij ons op [Learn with AI Series](https://aka.ms/learnwithai/discord) van 18 - 30 september 2025. Je krijgt tips en trucs over het gebruik van GitHub Copilot voor Data Science. +We hebben een lopende Discord-serie ‘Learn with AI’, leer er meer over en doe mee via [Learn with AI Series](https://aka.ms/learnwithai/discord) van 18 - 30 september 2025. Je krijgt tips en trucs over het gebruik van GitHub Copilot voor Data Science. ![Learn with AI series](../../translated_images/nl/3.9b58fd8d6c373c20.webp) # Machine Learning voor Beginners - Een Curriculum -> 🌍 Reizen over de hele wereld terwijl we Machine Learning verkennen door middel van wereldculturen 🌍 +> 🌍 Reis de wereld rond terwijl we Machine Learning verkennen via wereldculturen 🌍 -Cloud Advocates bij Microsoft bieden met plezier een 12-weekse, 26-lessen curriculum aan over **Machine Learning**. In dit curriculum leer je over wat soms **klassieke machine learning** wordt genoemd, met hoofdzakelijk Scikit-learn als bibliotheek en waarbij deep learning wordt vermeden, wat behandeld wordt in ons [AI voor Beginners-curriculum](https://aka.ms/ai4beginners). Combineer deze lessen ook met onze ['Data Science voor Beginners-curriculum'](https://aka.ms/ds4beginners)! +Cloud Advocates bij Microsoft bieden met plezier een 12-weken durend curriculum aan met 26 lessen over **Machine Learning**. In dit curriculum leer je over wat soms wordt genoemd **klassieke machine learning**, met voornamelijk Scikit-learn als bibliotheek en zonder diepgaand leren, dat aan bod komt in ons [AI for Beginners curriculum](https://aka.ms/ai4beginners). Combineer deze lessen ook met ons ['Data Science for Beginners curriculum'](https://aka.ms/ds4beginners)! -Reis met ons de wereld rond terwijl we deze klassieke technieken toepassen op data uit vele regio's van de wereld. Elke les bevat voor- en na-les quizzen, geschreven instructies om de les te voltooien, een oplossing, een opdracht, en meer. Onze projectgerichte pedagogiek stelt je in staat te leren terwijl je bouwt, een bewezen manier om nieuwe vaardigheden te laten beklijven. +Reis met ons mee over de wereld terwijl we deze klassieke technieken toepassen op data uit vele gebieden wereldwijd. Elke les bevat vooraf- en na-lessen quizzen, geschreven instructies om de les te voltooien, een oplossing, een opdracht en meer. Onze projectgebaseerde didactiek stelt je in staat te leren terwijl je bouwt, een bewezen manier om nieuwe vaardigheden ‘te laten beklijven’. **✍️ Hartelijke dank aan onze auteurs** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu en Amy Boyd -**🎨 Dank ook aan onze illustratoren** Tomomi Imura, Dasani Madipalli, en Jen Looper +**🎨 Tevens dank aan onze illustratoren** Tomomi Imura, Dasani Madipalli en Jen Looper -**🙏 Speciale dank 🙏 aan onze Microsoft Student Ambassador-auteurs, beoordelaars en contentbijdragers**, met name Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila en Snigdha Agarwal +**🙏 Speciale dank 🙏 aan onze Microsoft Student Ambassador auteurs, reviewers en inhoudsbijdragers**, met name Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila en Snigdha Agarwal -**🤩 Extra dankbaarheid aan Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi en Vidushi Gupta voor onze R-lessen!** +**🤩 Extra waardering voor Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi en Vidushi Gupta voor onze R-lessen!** # Aan de slag Volg deze stappen: -1. **Fork de repository**: Klik op de knop "Fork" rechtsboven op deze pagina. -2. **Clone de repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Fork de repository**: Klik op de "Fork" knop rechtsboven op deze pagina. +2. **Clone de repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [vind alle aanvullende bronnen voor deze cursus in onze Microsoft Learn-collectie](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [vind alle aanvullende middelen voor deze cursus in onze Microsoft Learn collectie](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Hulp nodig?** Bekijk onze [Probleemoplossingsgids](TROUBLESHOOTING.md) voor oplossingen voor veelvoorkomende problemen met installatie, setup en het uitvoeren van lessen. +> 🔧 **Hulp nodig?** Bekijk onze [Probleemoplossingsgids](TROUBLESHOOTING.md) voor oplossingen bij installatie, setup en het draaien van lessen. -**[Studenten](https://aka.ms/student-page)**, om dit curriculum te gebruiken, fork je de hele repo naar je eigen GitHub-account en voltooi je de oefeningen alleen of in een groep: +**[Studenten](https://aka.ms/student-page)**, om dit curriculum te gebruiken, fork je de hele repo naar je eigen GitHub-account en maak je de oefeningen zelfstandig of in een groep: - Begin met een pre-lecture quiz. -- Lees de les en voer de activiteiten uit, pauzeer en reflecteer bij elke kennischeck. -- Probeer de projecten te maken door de lessen te begrijpen in plaats van simpelweg de oplossingscode uit te voeren; die code is echter beschikbaar in de `/solution` mappen in elke projectgerichte les. +- Lees de les en voltooi de activiteiten, pauzeer en reflecteer bij elke kennischeck. +- Probeer de projecten zelf te maken door de lessen te begrijpen in plaats van direct de oplossing te gebruiken; die code staat echter beschikbaar in de `/solution` mappen van elke projectgerichte les. - Maak de post-lecture quiz. - Voltooi de challenge. -- Voltooi de opdracht. -- Nadat je een lesgroep hebt afgerond, bezoek je het [Discussiebord](https://github.com/microsoft/ML-For-Beginners/discussions) en "leer hardop" door het invullen van de passende PAT-rubriek. Een 'PAT' is een Vooruitgangsbeoordelingsinstrument (Progress Assessment Tool) dat je invult om je leerproces te bevorderen. Je kunt ook reageren op andere PAT's zodat we samen kunnen leren. +- Maak de opdracht. +- Na het voltooien van een lesgroep, bezoek het [Discussiebord](https://github.com/microsoft/ML-For-Beginners/discussions) en "leer hardop" door de juiste PAT rubric in te vullen. Een ‘PAT’ is een Progress Assessment Tool die je invult om je leren te verdiepen. Je kunt ook reageren op andere PATs zodat we samen kunnen leren. -> Voor verdere studie raden we aan deze [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules en leerpaden te volgen. +> Voor verdere studie bevelen we deze [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules en leerpaden aan. -**Docenten**, we hebben [enkele suggesties opgenomen](for-teachers.md) over het gebruik van dit curriculum. +**Docenten**, we hebben [enkele suggesties](for-teachers.md) opgenomen over hoe dit curriculum te gebruiken. --- -## Video walkthroughs +## Videowandelingen -Sommige van de lessen zijn beschikbaar als korte video's. Je vindt ze inline in de lessen, of op de [ML for Beginners-afspeellijst op het Microsoft Developer YouTube-kanaal](https://aka.ms/ml-beginners-videos) door op de afbeelding hieronder te klikken. +Een aantal lessen is beschikbaar als korte video’s. Je kunt ze in de lessen zelf vinden of op de [ML for Beginners afspeellijst op het Microsoft Developer YouTube-kanaal](https://aka.ms/ml-beginners-videos) door te klikken op de afbeelding hieronder. [![ML for beginners banner](../../translated_images/nl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -101,96 +101,96 @@ Sommige van de lessen zijn beschikbaar als korte video's. Je vindt ze inline in **Gif door** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klik op de afbeelding hierboven voor een video over het project en de mensen die het hebben gemaakt! +> 🎥 Klik op de afbeelding hierboven voor een video over het project en de mensen die het gemaakt hebben! --- ## Pedagogiek -We hebben twee pedagogische principes gekozen bij het samenstellen van dit curriculum: het waarborgen dat het hands-on **projectgebaseerd** is en dat het **frequente quizzen** bevat. Bovendien heeft dit curriculum een gemeenschappelijk **thema** om het samenhang te geven. +We hebben twee didactische principes gekozen bij het bouwen van dit curriculum: zorgen dat het hands-on en **projectgebaseerd** is en dat het **frequente quizzen** bevat. Daarnaast heeft dit curriculum een gemeenschappelijk **thema** voor samenhang. -Door ervoor te zorgen dat de inhoud aansluit bij projecten wordt het proces boeiender voor studenten en wordt de conceptretentie vergroot. Bovendien stelt een quiz met lage inzet voorafgaand aan een les de intentie van de student voor het leren van een onderwerp, terwijl een tweede quiz na de les verdere retentie waarborgt. Dit curriculum is bedoeld om flexibel en leuk te zijn en kan geheel of gedeeltelijk worden gevolgd. De projecten beginnen klein en worden geleidelijk complexer aan het einde van de 12-weekse cyclus. Dit curriculum bevat ook een naschrift over de toepassingen van ML in de echte wereld, dat kan worden gebruikt als extra krediet of als basis voor discussie. +Door te zorgen dat de inhoud aansluit bij projecten wordt het leerproces boeiender voor studenten en wordt het vasthouden van concepten vergroot. Bovendien stelt een quiz met lage inzet voor de les de intentie om een onderwerp te leren, terwijl een tweede quiz na de les zorgt voor verdere retentie. Dit curriculum is ontworpen om flexibel en leuk te zijn en kan geheel of gedeeltelijk gevolgd worden. De projecten starten klein en worden steeds complexer aan het einde van de 12 weken. Dit curriculum bevat ook een naschrift over echte wereldtoepassingen van ML, dat kan worden gebruikt als extra opdracht of als basis voor discussie. -> Vind onze [Gedragscode](CODE_OF_CONDUCT.md), [Bijdragen](CONTRIBUTING.md), [Vertalingen](..), en [Probleemoplossing](TROUBLESHOOTING.md) richtlijnen. We verwelkomen je opbouwende feedback! +> Vind onze [Gedragsregels](CODE_OF_CONDUCT.md), [Bijdragen](CONTRIBUTING.md), [Vertalingen](..) en [Probleemoplossing](TROUBLESHOOTING.md) richtlijnen. We verwelkomen je constructieve feedback! ## Elke les bevat -- optionele schetsnotitie +- optionele sketchnote - optionele aanvullende video -- video walkthrough (sommige lessen) +- video walkthrough (sommige lessen alleen) - [pre-lecture warming-up quiz](https://ff-quizzes.netlify.app/en/ml/) - geschreven les -- voor projectgebaseerde lessen, stapsgewijze gidsen over hoe je het project bouwt +- voor projectgebaseerde lessen, stapsgewijze handleidingen om het project te bouwen - kenniscontroles - een uitdaging -- aanvullende literatuur +- aanvullende lectuur - opdracht - [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) - -> **Een opmerking over talen**: Deze lessen zijn voornamelijk geschreven in Python, maar veel zijn ook beschikbaar in R. Om een R-les te voltooien, ga naar de `/solution` map en zoek naar R-lessen. Ze bevatten een .rmd extensie die staat voor een **R Markdown** bestand, wat simpelweg kan worden gedefinieerd als een insluiting van `codeblokjes` (van R of andere talen) en een `YAML-header` (die bepaald hoe uitvoerformaten zoals PDF worden opgemaakt) in een `Markdown-document`. Het dient daarmee als een voorbeeld van een auteurssysteem voor datawetenschap omdat het je in staat stelt je code, de uitvoer ervan en je gedachten te combineren door ze in Markdown op te schrijven. Bovendien kunnen R Markdown documenten worden gerenderd naar uitvoerformaten zoals PDF, HTML of Word. -> **Een opmerking over quizzen**: Alle quizzen zijn te vinden in de [Quiz App-map](../../quiz-app), met in totaal 52 quizzen van elk drie vragen. Ze zijn gelinkt vanuit de lessen, maar de quiz-app kan ook lokaal worden uitgevoerd; volg de instructies in de `quiz-app`-map om lokaal te hosten of te implementeren naar Azure. - -| Lesnummer | Onderwerp | Les Groepering | Leerdoelen | Gelinkte Les | Auteur | -| :-------: | :---------------------------------------------------------------: | :------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | -| 01 | Introductie tot machine learning | [Inleiding](1-Introduction/README.md) | Leer de basisconcepten achter machine learning | [Les](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | De geschiedenis van machine learning | [Inleiding](1-Introduction/README.md) | Leer de geschiedenis achter dit vakgebied | [Les](1-Introduction/2-history-of-ML/README.md) | Jen en Amy | -| 03 | Rechtvaardigheid en machine learning | [Inleiding](1-Introduction/README.md) | Wat zijn de belangrijke filosofische kwesties rond rechtvaardigheid die studenten moeten overwegen bij het bouwen en toepassen van ML modellen? | [Les](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Technieken voor machine learning | [Inleiding](1-Introduction/README.md) | Welke technieken gebruiken ML-onderzoekers om ML-modellen te bouwen? | [Les](1-Introduction/4-techniques-of-ML/README.md) | Chris en Jen | -| 05 | Introductie tot regressie | [Regressie](2-Regression/README.md) | Begin met Python en Scikit-learn voor regressiemodellen | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Visualiseer en reinig data ter voorbereiding op ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Bouw lineaire en polynomiale regressiemodellen | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen en Dmitry • Eric Wanjau | -| 08 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Bouw een logistiek regressiemodel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Een Web App 🔌 | [Web App](3-Web-App/README.md) | Bouw een webapplicatie om je getrainde model te gebruiken | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introductie tot classificatie | [Classificatie](4-Classification/README.md) | Reinig, bereid voor, en visualiseer je data; introductie tot classificatie | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen en Cassie • Eric Wanjau | -| 11 | Verrukkelijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Introductie tot classifiers | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen en Cassie • Eric Wanjau | -| 12 | Verrukkelijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Meer classifiers | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen en Cassie • Eric Wanjau | -| 13 | Verrukkelijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Bouw een recommender-webapp met je model | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introductie tot clustering | [Clustering](5-Clustering/README.md) | Reinig, bereid voor, en visualiseer je data; introductie tot clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Verkenning van Nigeriaanse muziekvoorkeuren 🎧 | [Clustering](5-Clustering/README.md) | Verken de K-Means clusteringmethode | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introductie tot natuurlijke taalverwerking ☕️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Leer de basis van NLP door een eenvoudige bot te bouwen | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Veelvoorkomende NLP-taken ☕️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Verdiep je NLP-kennis door de veelvoorkomende taken te begrijpen die nodig zijn bij het omgaan met taalstructuren | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Vertaling en sentimentanalyse ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Vertaling en sentimentanalyse met Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantische hotels van Europa ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Sentimentanalyse met hotel beoordelingen 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantische hotels van Europa ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Sentimentanalyse met hotel beoordelingen 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introductie tot tijdreeksvoorspelling | [Tijdreeksen](7-TimeSeries/README.md) | Introductie tot tijdreeksvoorspelling | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Wereldwijde energieverbruik ⚡️ - tijdreeksvoorspelling met ARIMA | [Tijdreeksen](7-TimeSeries/README.md) | Tijdreeksvoorspelling met ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Wereldwijde energieverbruik ⚡️ - tijdreeksvoorspelling met SVR | [Tijdreeksen](7-TimeSeries/README.md) | Tijdreeksvoorspelling met Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introductie tot reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introductie tot reinforcement learning met Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Help Peter de wolf te ontwijken! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Nawoord | Echte ML-scenario's en toepassingen | [ML in het Wild](9-Real-World/README.md) | Interessante en onthullende toepassingen van klassieke ML in de echte wereld | [Les](9-Real-World/1-Applications/README.md) | Team | -| Nawoord | Model Debugging in ML met de RAI-dashboard | [ML in het Wild](9-Real-World/README.md) | Model Debugging in Machine Learning met Responsible AI dashboardcomponenten | [Les](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +> **Een opmerking over talen**: Deze lessen zijn voornamelijk in Python geschreven, maar veel zijn ook beschikbaar in R. Om een R-les te voltooien, ga je naar de map `/solution` en zoek je naar R-lessen. Deze bevatten een .rmd-extensie die een **R Markdown**-bestand vertegenwoordigt, wat eenvoudig kan worden gedefinieerd als een insluiting van `code chunks` (van R of andere talen) en een `YAML-koptekst` (die aangeeft hoe outputs zoals PDF worden opgemaakt) in een `Markdown-document`. Als zodanig dient het als een voorbeeld van een auteursraamwerk voor datawetenschap, omdat het je in staat stelt je code, output en gedachten te combineren door ze in Markdown te schrijven. Bovendien kunnen R Markdown-documenten worden gerenderd naar outputformaten zoals PDF, HTML of Word. + +> **Een opmerking over quizzes**: Alle quizzes bevinden zich in de [Quiz App-map](../../quiz-app), met in totaal 52 quizzes van elk drie vragen. Ze zijn gekoppeld vanuit de lessen, maar de quiz-app kan lokaal worden uitgevoerd; volg de instructies in de `quiz-app`-map om lokaal te hosten of te implementeren op Azure. + +| Lesnummer | Onderwerp | Les Groepering | Leerdoelen | Gekoppelde Les | Auteur | +| :--------: | :----------------------------------------------------------------: | :------------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | +| 01 | Introductie tot machine learning | [Introductie](1-Introduction/README.md) | Leer de basisconcepten achter machine learning | [Les](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | De geschiedenis van machine learning | [Introductie](1-Introduction/README.md) | Leer de geschiedenis achter dit vakgebied | [Les](1-Introduction/2-history-of-ML/README.md) | Jen en Amy | +| 03 | Rechtvaardigheid en machine learning | [Introductie](1-Introduction/README.md) | Wat zijn de belangrijke filosofische kwesties rondom rechtvaardigheid waar studenten rekening mee moeten houden bij het bouwen en toepassen van ML-modellen? | [Les](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Technieken voor machine learning | [Introductie](1-Introduction/README.md) | Welke technieken gebruiken ML-onderzoekers om ML-modellen te bouwen? | [Les](1-Introduction/4-techniques-of-ML/README.md) | Chris en Jen | +| 05 | Introductie tot regressie | [Regressie](2-Regression/README.md) | Begin met Python en Scikit-learn voor regressiemodellen | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Visualiseer en reinig data ter voorbereiding op ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Bouw lineaire en polynomiale regressiemodellen | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen en Dmitry • Eric Wanjau | +| 08 | Noord-Amerikaanse pompoenprijzen 🎃 | [Regressie](2-Regression/README.md) | Bouw een logistiek regressiemodel | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Een webapp 🔌 | [Web App](3-Web-App/README.md) | Bouw een webapp om je getrainde model te gebruiken | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introductie tot classificatie | [Classificatie](4-Classification/README.md) | Reinig, bereid voor en visualiseer je data; introductie tot classificatie | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen en Cassie • Eric Wanjau | +| 11 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Introductie tot classifiers | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen en Cassie • Eric Wanjau | +| 12 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Meer classifiers | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen en Cassie • Eric Wanjau | +| 13 | Heerlijke Aziatische en Indiase keukens 🍜 | [Classificatie](4-Classification/README.md) | Bouw een aanbevelings-webapp met je model | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introductie tot clustering | [Clustering](5-Clustering/README.md) | Reinig, bereid voor en visualiseer je data; introductie tot clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Verkenning van Nigeriaanse muzieksmaken 🎧 | [Clustering](5-Clustering/README.md) | Verken de K-Means clusteringmethode | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introductie tot natuurlijke taalverwerking ☕️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Leer de basis van NLP door het bouwen van een eenvoudige bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Veelvoorkomende NLP-taken ☕️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Verdiep je NLP-kennis door veelvoorkomende taken te begrijpen die nodig zijn bij het omgaan met taalstructuren | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Vertaling en sentimentanalyse ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Vertaling en sentimentanalyse met Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantische hotels in Europa ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Sentimentanalyse met hotelbeoordelingen 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantische hotels in Europa ♥️ | [Natuurlijke taalverwerking](6-NLP/README.md) | Sentimentanalyse met hotelbeoordelingen 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introductie tot tijdreeksvoorspelling | [Tijdreeks](7-TimeSeries/README.md) | Introductie tot tijdreeksvoorspelling | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Werelduitgaven aan elektriciteit ⚡️ - tijdreeksvoorspelling met ARIMA | [Tijdreeks](7-TimeSeries/README.md) | Tijdreeksvoorspelling met ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Werelduitgaven aan elektriciteit ⚡️ - tijdreeksvoorspelling met SVR | [Tijdreeks](7-TimeSeries/README.md) | Tijdreeksvoorspelling met Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introductie tot reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introductie tot reinforcement learning met Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Help Peter de wolf te ontwijken! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Napr. | Praktijkvoorbeelden en -toepassingen van ML | [ML in het wild](9-Real-World/README.md) | Interessante en onthullende praktijkvoorbeelden van klassieke ML | [Les](9-Real-World/1-Applications/README.md) | Team | +| Napr. | Model debugging in ML met behulp van de RAI-dashboard | [ML in het wild](9-Real-World/README.md) | Model debugging in Machine Learning met Responsible AI-dashboardcomponenten | [Les](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [vind alle aanvullende bronnen voor deze cursus in onze Microsoft Learn-collectie](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offline toegang -Je kunt deze documentatie offline gebruiken met [Docsify](https://docsify.js.org/#/). Fork deze repo, [installeer Docsify](https://docsify.js.org/#/quickstart) op je lokale machine, en typ dan in de hoofdmap van deze repo `docsify serve`. De website wordt geserveerd op poort 3000 op je localhost: `localhost:3000`. +Je kunt deze documentatie offline gebruiken met [Docsify](https://docsify.js.org/#/). Fork deze repo, [installeer Docsify](https://docsify.js.org/#/quickstart) op je lokale machine en typ vervolgens in de hoofdmap van deze repo `docsify serve`. De website wordt dan lokaal geserveerd op poort 3000: `localhost:3000`. -## PDFs +## PDF's -Vind een pdf van het curriculum met links [hier](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Vind hier een pdf van het curriculum met links [hier](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Andere Cursussen +## 🎒 Andere cursussen Ons team produceert ook andere cursussen! Bekijk: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j voor beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js voor beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain voor beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD voor beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI voor beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP voor Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI-agenten voor Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- - -### Generatieve AI Series + +### Generatieve AI-serie [![Generatieve AI voor Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generatieve AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generatieve AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) @@ -209,15 +209,15 @@ Ons team produceert ook andere cursussen! Bekijk: --- -### Copilot-reeks +### Copilot-serie [![Copilot voor AI-gepaarde programmering](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot voor C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot-avontuur](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot Avontuur](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Hulp krijgen -Als je vastloopt of vragen hebt over het bouwen van AI-apps. Doe mee met mede-leerlingen en ervaren ontwikkelaars in discussies over MCP. Het is een ondersteunende gemeenschap waar vragen welkom zijn en kennis vrij gedeeld wordt. +Als je vastloopt of vragen hebt over het maken van AI-apps, sluit je dan aan bij mede-leerlingen en ervaren ontwikkelaars in discussies over MCP. Het is een ondersteunende community waar vragen welkom zijn en kennis vrij gedeeld wordt. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) @@ -226,13 +226,13 @@ Als je productfeedback hebt of fouten tegenkomt tijdens het bouwen, bezoek dan: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Aanvullende leertips -- Bekijk notitieboeken na elke les voor een beter begrip. +- Bekijk notitieboeken na elke les voor beter begrip. - Oefen met het zelf implementeren van algoritmen. -- Verken echte datasets met de geleerde concepten. +- Verken real-world datasets met behulp van geleerde concepten. --- -**Disclaimer**: -Dit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u zich ervan bewust te zijn dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het oorspronkelijke document in de oorspronkelijke taal moet als de gezaghebbende bron worden beschouwd. Voor cruciale informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor misverstanden of verkeerd geïnterpreteerde informatie voortvloeiend uit het gebruik van deze vertaling. +**Disclaimer**: +Dit document is vertaald met behulp van de AI vertaaldienst [Co-op Translator](https://github.com/Azure/co-op-translator). Hoewel we streven naar nauwkeurigheid, dient u er rekening mee te houden dat geautomatiseerde vertalingen fouten of onnauwkeurigheden kunnen bevatten. Het originele document in de oorspronkelijke taal geldt als de gezaghebbende bron. Voor kritieke informatie wordt professionele menselijke vertaling aanbevolen. Wij zijn niet aansprakelijk voor enige misverstanden of verkeerde interpretaties die voortvloeien uit het gebruik van deze vertaling. \ No newline at end of file diff --git a/translations/no/.co-op-translator.json b/translations/no/.co-op-translator.json index f952b83fb..381f74e82 100644 --- a/translations/no/.co-op-translator.json +++ b/translations/no/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "no" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:58:54+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:36:41+00:00", "source_file": "README.md", "language_code": "no" }, diff --git a/translations/no/README.md b/translations/no/README.md index eaa10e3a9..40d13293e 100644 --- a/translations/no/README.md +++ b/translations/no/README.md @@ -1,23 +1,23 @@ -[![GitHub-lisens](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![GitHub-bidragsytere](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 Velkommen](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![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-tilskuere](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![GitHub-forker](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) -[![GitHub-stjerner](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) +[![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/) -### 🌐 Flerspråklig støtte +### 🌐 Støtte for flere språk -#### Støttet via GitHub Action (Automatisk & Alltid Oppdatert) +#### Støttes via GitHub Action (Automatisert og alltid oppdatert) -[Arabisk](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarsk](../bg/README.md) | [Burmesisk (Myanmar)](../my/README.md) | [Kinesisk (Forenklet)](../zh-CN/README.md) | [Kinesisk (Tradisjonell, Hong Kong)](../zh-HK/README.md) | [Kinesisk (Tradisjonell, Macau)](../zh-MO/README.md) | [Kinesisk (Tradisjonell, Taiwan)](../zh-TW/README.md) | [Kroatisk](../hr/README.md) | [Tsjekkisk](../cs/README.md) | [Dansk](../da/README.md) | [Nederlandsk](../nl/README.md) | [Estisk](../et/README.md) | [Finsk](../fi/README.md) | [Fransk](../fr/README.md) | [Tysk](../de/README.md) | [Gresk](../el/README.md) | [Hebraisk](../he/README.md) | [Hindi](../hi/README.md) | [Ungarsk](../hu/README.md) | [Indonesisk](../id/README.md) | [Italiensk](../it/README.md) | [Japansk](../ja/README.md) | [Kannada](../kn/README.md) | [Koreansk](../ko/README.md) | [Litauisk](../lt/README.md) | [Malayisk](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalsk](../ne/README.md) | [Nigeriansk Pidgin](../pcm/README.md) | [Norsk](./README.md) | [Persisk (Farsi)](../fa/README.md) | [Polsk](../pl/README.md) | [Portugisisk (Brasil)](../pt-BR/README.md) | [Portugisisk (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumensk](../ro/README.md) | [Russisk](../ru/README.md) | [Serbisk (Kyrillisk)](../sr/README.md) | [Slovakisk](../sk/README.md) | [Slovensk](../sl/README.md) | [Spansk](../es/README.md) | [Swahili](../sw/README.md) | [Svensk](../sv/README.md) | [Tagalog (Filippinsk)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Tyrkisk](../tr/README.md) | [Ukrainsk](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamesisk](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](./README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Foretrekker du å klone lokalt?** > -> Dette depotet inneholder over 50 språkoversettelser som betydelig øker nedlastingsstørrelsen. For å klone uten oversettelser, bruk sparsommelig utsjekking: +> Dette depotet inkluderer 50+ språkoversettelser som øker nedlastingsstørrelsen betydelig. For å klone uten oversettelser, bruk sparsjekontroll: > > **Bash / macOS / Linux:** > ```bash @@ -33,28 +33,28 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Dette gir deg alt du trenger for å fullføre kurset med en mye raskere nedlasting. +> Dette gir deg alt du trenger for å fullføre kurset med mye raskere nedlasting. -#### Bli med i vår fellesskap +#### Bli med i fellesskapet vårt [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Vi har en Discord-serie for å lære med AI pågående, lær mer og bli med oss på [Learn with AI Series](https://aka.ms/learnwithai/discord) fra 18. til 30. september 2025. Du vil få tips og triks for å bruke GitHub Copilot for Data Science. +Vi har en Discord-lær med AI-serie pågående, lær mer og bli med oss på [Learn with AI Series](https://aka.ms/learnwithai/discord) fra 18. - 30. september 2025. Du vil få tips og triks for å bruke GitHub Copilot for Data Science. -![Lær med AI-serien](../../translated_images/no/3.9b58fd8d6c373c20.webp) +![Learn with AI series](../../translated_images/no/3.9b58fd8d6c373c20.webp) # Maskinlæring for nybegynnere - En læreplan -> 🌍 Reis rundt i verden mens vi utforsker maskinlæring gjennom verdens kulturer 🌍 +> 🌍 Reis rundt i verden mens vi utforsker Maskinlæring gjennom verdens kulturer 🌍 -Cloud Advocates hos Microsoft gleder seg til å tilby en 12-ukers, 26-leksjons læreplan som handler om **maskinlæring**. I denne læreplanen vil du lære om det som noen ganger kalles **klassisk maskinlæring**, ved å bruke primært Scikit-learn som bibliotek og unngå dyp læring, som dekkes i vår [AI for Beginners-læreplan](https://aka.ms/ai4beginners). Kombiner gjerne disse leksjonene med vår ['Data Science for Beginners'-læreplan](https://aka.ms/ds4beginners)! +Cloud Advocates hos Microsoft er glade for å tilby en 12-ukers, 26-leksjons læreplan som handler om **Maskinlæring**. I denne læreplanen vil du lære det som noen ganger kalles **klassisk maskinlæring**, med hovedvekt på Scikit-learn som et bibliotek og unngår dyp læring, som dekkes i vår [AI for Beginners-læreplan](https://aka.ms/ai4beginners). Kombiner disse leksjonene med vår ['Data Science for Beginners'-læreplan](https://aka.ms/ds4beginners), også! -Reis med oss rundt om i verden mens vi anvender disse klassiske teknikkene på data fra mange områder i verden. Hver leksjon inkluderer tester før og etter leksjonen, skriftlige instruksjoner for å fullføre leksjonen, en løsning, en oppgave og mer. Vår prosjektbaserte pedagogikk lar deg lære mens du bygger, en bevist måte for nye ferdigheter å "sette seg". +Reis med oss rundt i verden mens vi bruker disse klassiske teknikkene på data fra mange verdensdeler. Hver leksjon inkluderer quiz før og etter leksjonen, skriftlige instruksjoner for å fullføre leksjonen, en løsning, en oppgave, og mer. Vår prosjektbaserte pedagogikk lar deg lære mens du bygger, en bevist metode for at nye ferdigheter skal 'feste seg'. **✍️ Hjertelig takk til våre forfattere** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu og Amy Boyd -**🎨 Takk også til våre illustratører** Tomomi Imura, Dasani Madipalli og Jen Looper +**🎨 Takk også til våre illustratører** Tomomi Imura, Dasani Madipalli, og Jen Looper **🙏 Spesiell takk 🙏 til våre Microsoft Student Ambassador-forfattere, anmeldere og innholdsbidragsytere**, spesielt Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila og Snigdha Agarwal @@ -63,33 +63,33 @@ Reis med oss rundt om i verden mens vi anvender disse klassiske teknikkene på d # Komme i gang Følg disse trinnene: -1. **Fork depotet**: Klikk på knappen "Fork" øverst til høyre på denne siden. -2. **Klon depotet**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Gaffel depotet**: Klikk på "Fork" knappen øverst til høyre på denne siden. +2. **Klone depotet**: `git clone https://github.com/microsoft/ML-For-Beginners.git` > [finn alle tilleggsmaterialer for dette kurset i vår Microsoft Learn-samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Trenger du hjelp?** Sjekk vår [Feilsøkingsguide](TROUBLESHOOTING.md) for løsninger på vanlige problemer med installasjon, oppsett og kjøring av leksjoner. +> 🔧 **Trenger du hjelp?** Sjekk vår [Veiledning for feilsøking](TROUBLESHOOTING.md) for løsninger på vanlige problemer med installasjon, oppsett og kjøring av leksjoner. -**[Studenter](https://aka.ms/student-page)**, for å bruke denne læreplanen, fork hele repoet til din egen GitHub-konto og fullfør oppgavene på egenhånd eller i gruppe: +**[Studenter](https://aka.ms/student-page)**, for å bruke denne læreplanen, lag en gaffel av hele repositoriet til din egen GitHub-konto og fullfør øvelsene alene eller i gruppe: - Start med en quiz før forelesningen. -- Les forelesningen og fullfør aktivitetene, ta pause og reflekter på hvert kunnskapssjekkpunkt. -- Prøv å lage prosjektene ved å forstå leksjonene i stedet for å bare kjøre løsningskoden; koden er imidlertid tilgjengelig i `/solution`-mappene i hver prosjektorienterte leksjon. +- Les forelesningen og fullfør aktivitetene, stopp opp og reflekter ved hver kunnskapskontroll. +- Prøv å lage prosjektene ved å forstå leksjonene fremfor å bare kjøre løsningskoden; denne koden er imidlertid tilgjengelig i `/solution`-mappene i hver prosjektorienterte leksjon. - Ta quizen etter forelesningen. - Fullfør utfordringen. - Fullfør oppgaven. -- Etter å ha fullført en leksjonsgruppe, besøk [Diskusjonsforumet](https://github.com/microsoft/ML-For-Beginners/discussions) og "lær høyt" ved å fylle ut passende PAT-vurderingsskjema. En 'PAT' er et fremdriftsvurderingsverktøy som er en rubrikk du fyller ut for å fremme læringen din. Du kan også reagere på andres PAT-er slik at vi kan lære sammen. +- Etter å ha fullført en leksjonsgruppe, besøk [Diskusjonstavlen](https://github.com/microsoft/ML-For-Beginners/discussions) og "lær høyt" ved å fylle ut den passende PAT-rubrikken. En 'PAT' er et fremdriftsvurderingsverktøy som er et vurderingsskjema du fyller ut for å fremme læringen din. Du kan også reagere på andres PAT-er slik at vi kan lære sammen. -> For videre studier anbefaler vi å følge disse [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott)-modulene og læringsløpene. +> For videre studier anbefaler vi å følge disse [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulene og læringsløpene. -**Lærere**, vi har [inkludert noen forslag](for-teachers.md) om hvordan du kan bruke denne læreplanen. +**Lærere**, vi har [inkludert noen forslag](for-teachers.md) om hvordan man bruker denne læreplanen. --- -## Video-gjennomganger +## Videogjennomganger -Noen av leksjonene er tilgjengelige som korte videoer. Du finner alle disse innbakt i leksjonene, eller på [ML for Beginners-spillelisten på Microsoft Developer YouTube-kanalen](https://aka.ms/ml-beginners-videos) ved å klikke på bildet nedenfor. +Noen av leksjonene er tilgjengelige som korte videoer. Du kan finne alle disse integrert i leksjonene, eller på [ML for Beginners playlisten på Microsoft Developer YouTube-kanal](https://aka.ms/ml-beginners-videos) ved å klikke på bildet nedenfor. [![ML for beginners banner](../../translated_images/no/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -97,81 +97,81 @@ Noen av leksjonene er tilgjengelige som korte videoer. Du finner alle disse innb ## Møt teamet -[![Promo-video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif av** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klikk på bildet over for en video om prosjektet og folka som skapte det! +> 🎥 Klikk på bildet over for en video om prosjektet og folka som laget det! --- ## Pedagogikk -Vi har valgt to pedagogiske prinsipper mens vi bygget denne læreplanen: å sikre at den er praktisk **prosjektbasert** og at den inkluderer **hyppige quizer**. I tillegg har denne læreplanen et felles **tema** for å gi den sammenheng. +Vi har valgt to pedagogiske prinsipper under byggingen av denne læreplanen: å sikre at det er praktisk **prosjektbasert** og at det inneholder **hyppige quizer**. I tillegg har denne læreplanen et felles **tema** for å gi den sammenheng. -Ved å sikre at innholdet er tilpasset prosjekter, blir prosessen mer engasjerende for studentene og bedre bevaring av konsepter vil bli styrket. I tillegg setter en lavterskel-quiz før en time intensjonen for studenten mot å lære et tema, mens en andre quiz etter timen sikrer ytterligere innlæring. Denne læreplanen er utformet for å være fleksibel og morsom og kan tas i sin helhet eller delvis. Prosjektene starter smått og blir gradvis mer komplekse mot slutten av 12-ukerssyklusen. Denne læreplanen inkluderer også et etterspill om virkelige anvendelser av ML, som kan brukes som ekstra poeng eller som grunnlag for diskusjon. +Ved å sikre at innholdet samsvarer med prosjekter, blir prosessen mer engasjerende for studentene og forståelsen av konsepter vil bli styrket. I tillegg setter en lavterskelquiz før en klasse studentens intensjon mot å lære et emne, mens en andre quiz etter klassen sikrer ytterligere forståelse. Denne læreplanen er designet for å være fleksibel og morsom og kan gjennomføres i sin helhet eller delvis. Prosjektene starter smått og blir gradvis mer komplekse mot slutten av den 12-ukers syklusen. Denne læreplanen inkluderer også et etterord om reelle anvendelser av ML, som kan brukes som ekstra poeng eller som grunnlag for diskusjon. -> Finn våre retningslinjer for [Atferdskodeks](CODE_OF_CONDUCT.md), [Bidrag](CONTRIBUTING.md), [Oversettelser](..) og [Feilsøking](TROUBLESHOOTING.md). Vi ønsker dine konstruktive tilbakemeldinger velkommen! +> Finn våre [Regler for oppførsel](CODE_OF_CONDUCT.md), [Bidragsretningslinjer](CONTRIBUTING.md), [Oversettelser](..), og [Feilsøking](TROUBLESHOOTING.md). Vi ønsker din konstruktive tilbakemelding velkommen! ## Hver leksjon inkluderer -- valgfri skisse -- valgfri supplerende video -- video-gjennomgang (kun noen leksjoner) -- [quiz før forelesningen](https://ff-quizzes.netlify.app/en/ml/) +- valgfri sketchnote +- valgfri supplementvideo +- videogjennomgang (kun noen leksjoner) +- [quiz før forelesning](https://ff-quizzes.netlify.app/en/ml/) - skriftlig leksjon -- for prosjektbaserte leksjoner, trinnvise veiledninger for å bygge prosjektet -- kunnskapssjekker +- for prosjektbaserte leksjoner, trinnvise guider for hvordan bygge prosjektet +- kunnskapskontroller - en utfordring -- supplerende lesing +- tilleggslitteratur - oppgave -- [quiz etter forelesningen](https://ff-quizzes.netlify.app/en/ml/) - -> **En merknad om språk**: Disse leksjonene er primært skrevet i Python, men mange er også tilgjengelige i R. For å fullføre en R-leksjon, gå til `/solution`-mappen og se etter R-leksjoner. De inkluderer en .rmd-utvidelse som representerer en **R Markdown**-fil som enkelt kan defineres som en innbygging av `kodebiter` (av R eller andre språk) og en `YAML-header` (som styrer hvordan man formaterer utdata som PDF) i et `Markdown-dokument`. Som sådan fungerer det som en eksemplarisk forfatterramme for data science siden det lar deg kombinere koden din, dens utdata og tankene dine ved at du kan skrive dem ned i Markdown. Dessuten kan R Markdown-dokumenter renderes til utdataformater som PDF, HTML eller Word. -> **En merknad om quizzer**: Alle quizzer er samlet i [Quiz App-mappen](../../quiz-app), totalt 52 quizzer med tre spørsmål hver. De er lenket fra leksjonene, men quiz-appen kan kjøres lokalt; følg instruksjonene i `quiz-app`-mappen for å være vert lokalt eller distribuere til Azure. - -| Leksjonsnummer | Emne | Leksjonsgruppe | Læringsmål | Lenket leksjon | Forfatter | -| :------------: | :------------------------------------------------------------: | :------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | -| 01 | Introduksjon til maskinlæring | [Introduksjon](1-Introduction/README.md) | Lær de grunnleggende konseptene bak maskinlæring | [Leksjon](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Historien til maskinlæring | [Introduksjon](1-Introduction/README.md) | Lær historien bak dette fagfeltet | [Leksjon](1-Introduction/2-history-of-ML/README.md) | Jen og Amy | -| 03 | Rettferdighet og maskinlæring | [Introduksjon](1-Introduction/README.md) | Hva er de viktige filosofiske spørsmålene rundt rettferdighet som studenter bør vurdere når de bygger og bruker ML-modeller? | [Leksjon](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Teknikker for maskinlæring | [Introduksjon](1-Introduction/README.md) | Hvilke teknikker bruker ML-forskere for å bygge ML-modeller? | [Leksjon](1-Introduction/4-techniques-of-ML/README.md) | Chris og Jen | -| 05 | Introduksjon til regresjon | [Regresjon](2-Regression/README.md) | Kom i gang med Python og Scikit-learn for regresjonsmodeller | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Nordamerikanske gresskarpriser 🎃 | [Regresjon](2-Regression/README.md) | Visualiser og rens data som forberedelse til ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Nordamerikanske gresskarpriser 🎃 | [Regresjon](2-Regression/README.md) | Bygg lineære og polynomregresjonsmodeller | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen og Dmitry • Eric Wanjau | -| 08 | Nordamerikanske gresskarpriser 🎃 | [Regresjon](2-Regression/README.md) | Bygg en logistisk regresjonsmodell | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | En webapp 🔌 | [Web-app](3-Web-App/README.md) | Bygg en webapp for å bruke den trente modellen din | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introduksjon til klassifisering | [Klassifisering](4-Classification/README.md) | Rens, forbered og visualiser data; introduksjon til klassifisering | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen og Cassie • Eric Wanjau | -| 11 | Deilige asiatiske og indiske kjøkken 🍜 | [Klassifisering](4-Classification/README.md) | Introduksjon til klassifikatorer | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen og Cassie • Eric Wanjau | -| 12 | Deilige asiatiske og indiske kjøkken 🍜 | [Klassifisering](4-Classification/README.md) | Flere klassifikatorer | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen og Cassie • Eric Wanjau | -| 13 | Deilige asiatiske og indiske kjøkken 🍜 | [Klassifisering](4-Classification/README.md) | Bygg en anbefalingswebapp ved å bruke modellen din | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introduksjon til klynging | [Klynging](5-Clustering/README.md) | Rens, forbered og visualiser data; introduksjon til klynging | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Utforske nigerianske musikksmaker 🎧 | [Klynging](5-Clustering/README.md) | Utforsk K-Means klyngemetoden | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introduksjon til naturlig språkbehandling ☕️ | [Naturlig språkbehandling](6-NLP/README.md) | Lær det grunnleggende om NLP ved å bygge en enkel bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Vanlige NLP-oppgaver ☕️ | [Naturlig språkbehandling](6-NLP/README.md) | Fordyp NLP-kunnskapene dine ved å forstå vanlige oppgaver ved språklige strukturer | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Oversettelse og sentimentanalyse ♥️ | [Naturlig språkbehandling](6-NLP/README.md) | Oversettelse og sentimentanalyse med Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantiske hoteller i Europa ♥️ | [Naturlig språkbehandling](6-NLP/README.md) | Sentimentanalyse med hotellvurderinger 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantiske hoteller i Europa ♥️ | [Naturlig språkbehandling](6-NLP/README.md) | Sentimentanalyse med hotellvurderinger 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introduksjon til tidsseriefremskrivning | [Tidsserie](7-TimeSeries/README.md) | Introduksjon til tidsseriefremskrivning | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Verdens strømforbruk ⚡️ - tidsseriefremskrivning med ARIMA | [Tidsserie](7-TimeSeries/README.md) | Tidsseriefremskrivning med ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Verdens strømforbruk ⚡️ - tidsseriefremskrivning med SVR | [Tidsserie](7-TimeSeries/README.md) | Tidsseriefremskrivning med Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introduksjon til forsterkende læring | [Forsterkende læring](8-Reinforcement/README.md) | Introduksjon til forsterkende læring med Q-Læring | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Hjelp Peter å unngå ulven! 🐺 | [Forsterkende læring](8-Reinforcement/README.md) | Forsterkende læring Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Etterord | Virkelige ML-scenarier og applikasjoner | [ML i feltet](9-Real-World/README.md) | Interessante og avslørende virkelige bruksområder av klassisk ML | [Leksjon](9-Real-World/1-Applications/README.md) | Team | -| Etterord | Modellfeilsøking i ML ved bruk av RAI-dashboard | [ML i feltet](9-Real-World/README.md) | Modellfeilsøking i maskinlæring med Responsible AI-dashboardkomponenter | [Leksjon](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [quiz etter forelesning](https://ff-quizzes.netlify.app/en/ml/) +> **En merknad om språk**: Disse leksjonene er hovedsakelig skrevet i Python, men mange er også tilgjengelige i R. For å fullføre en R-leksjon, gå til `/solution`-mappen og se etter R-leksjoner. De inkluderer en .rmd-utvidelse som representerer en **R Markdown**-fil, som enkelt kan defineres som en innbygging av `kodebiter` (av R eller andre språk) og en `YAML-header` (som styrer hvordan utdata som PDF skal formateres) i et `Markdown-dokument`. Som sådan fungerer det som en eksemplarisk forfatterramme for datavitenskap siden det lar deg kombinere koden din, dens utdata, og tankene dine ved å tillate deg å skrive dem ned i Markdown. Dessuten kan R Markdown-dokumenter gjengis til utdataformater som PDF, HTML eller Word. + +> **En merknad om quizzer**: Alle quizzer er samlet i [Quiz App-mappen](../../quiz-app), for totalt 52 quizzer med tre spørsmål hver. De er lenket inn i leksjonene, men quiz-appen kan kjøres lokalt; følg instruksjonen i `quiz-app`-mappen for lokal hosting eller distribuering til Azure. + +| Lekjsonnummer | Emne | Leksjonsgruppering | Læringsmål | Lenket leksjon | Forfatter | +| :-----------: | :------------------------------------------------------------: | :-----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | +| 01 | Introduksjon til maskinlæring | [Introduksjon](1-Introduction/README.md) | Lær grunnleggende konsepter bak maskinlæring | [Leksjon](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Maskinlæringens historie | [Introduksjon](1-Introduction/README.md) | Lær historien bak dette feltet | [Leksjon](1-Introduction/2-history-of-ML/README.md) | Jen og Amy | +| 03 | Rettferdighet og maskinlæring | [Introduksjon](1-Introduction/README.md) | Hva er viktige filosofiske spørsmål rundt rettferdighet som studenter bør vurdere når de bygger og bruker ML-modeller? | [Leksjon](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Teknikkene for maskinlæring | [Introduksjon](1-Introduction/README.md) | Hvilke teknikker bruker ML-forskere for å bygge ML-modeller? | [Leksjon](1-Introduction/4-techniques-of-ML/README.md) | Chris og Jen | +| 05 | Introduksjon til regresjon | [Regresjon](2-Regression/README.md) | Kom i gang med Python og Scikit-learn for regresjonsmodeller | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Nordamerikanske gresskarlyspriser 🎃 | [Regresjon](2-Regression/README.md) | Visualiser og rengjør data i forberedelse til ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Nordamerikanske gresskarlyspriser 🎃 | [Regresjon](2-Regression/README.md) | Bygg lineære og polynomielle regresjonsmodeller | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen og Dmitry • Eric Wanjau | +| 08 | Nordamerikanske gresskarlyspriser 🎃 | [Regresjon](2-Regression/README.md) | Bygg en logistisk regresjonsmodell | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | En Web-App 🔌 | [Web App](3-Web-App/README.md) | Bygg en webapp for å bruke din trente modell | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introduksjon til klassifisering | [Klassifisering](4-Classification/README.md) | Rengjør, forbered og visualiser dine data; introduksjon til klassifisering | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen og Cassie • Eric Wanjau | +| 11 | Deilige asiatiske og indiske kjøkken 🍜 | [Klassifisering](4-Classification/README.md) | Introduksjon til klassifisører | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen og Cassie • Eric Wanjau | +| 12 | Deilige asiatiske og indiske kjøkken 🍜 | [Klassifisering](4-Classification/README.md) | Flere klassifisører | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen og Cassie • Eric Wanjau | +| 13 | Deilige asiatiske og indiske kjøkken 🍜 | [Klassifisering](4-Classification/README.md) | Bygg en anbefalingswebapp ved bruk av din modell | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introduksjon til klyngedannelse | [Klyngedannelse](5-Clustering/README.md) | Rengjør, forbered og visualiser dine data; Introduksjon til klyngedannelse | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Utforsking av nigerianske musikksmaker 🎧 | [Klyngedannelse](5-Clustering/README.md) | Utforsk K-Means klyngemetode | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introduksjon til naturlig språkbehandling ☕️ | [Naturlig språkbehandling](6-NLP/README.md) | Lær det grunnleggende om NLP ved å bygge en enkel bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Vanlige NLP-oppgaver ☕️ | [Naturlig språkbehandling](6-NLP/README.md) | Fordyp dine NLP-kunnskaper ved å forstå vanlige oppgaver som kreves når du arbeider med språkstrukturer | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Oversettelse og sentimentanalyse ♥️ | [Naturlig språkbehandling](6-NLP/README.md) | Oversettelse og sentimentanalyse med Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantiske hoteller i Europa ♥️ | [Naturlig språkbehandling](6-NLP/README.md) | Sentimentanalyse med hotellanmeldelser 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantiske hoteller i Europa ♥️ | [Naturlig språkbehandling](6-NLP/README.md) | Sentimentanalyse med hotellanmeldelser 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introduksjon til tidsseriefremskriving | [Tidsserie](7-TimeSeries/README.md) | Introduksjon til tidsseriefremskriving | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Verdens strømforbruk ⚡️ - tidsseriefremskriving med ARIMA | [Tidsserie](7-TimeSeries/README.md) | Tidsseriefremskriving med ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Verdens strømforbruk ⚡️ - tidsseriefremskriving med SVR | [Tidsserie](7-TimeSeries/README.md) | Tidsseriefremskriving med Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introduksjon til forsterkende læring | [Forsterkende læring](8-Reinforcement/README.md) | Introduksjon til forsterkende læring med Q-læring | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Hjelp Peter med å unngå ulven! 🐺 | [Forsterkende læring](8-Reinforcement/README.md) | Forsterkende læring Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Virkelige ML-scenarier og anvendelser | [ML i det fri](9-Real-World/README.md) | Interessante og avslørende virkelige anvendelser av klassisk ML | [Leksjon](9-Real-World/1-Applications/README.md) | Team | +| Postscript | Feilsøking av modeller i ML ved bruk av RAI-dashboard | [ML i det fri](9-Real-World/README.md) | Feilsøking av maskinlæringsmodeller ved bruk av Responsible AI-dashbordkomponenter | [Leksjon](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [finn alle ekstra ressurser for dette kurset i vår Microsoft Learn-samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Frakoblet tilgang -Du kan kjøre denne dokumentasjonen frakoblet ved å bruke [Docsify](https://docsify.js.org/#/). Fork dette depotet, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskin, og så i rotmappen til dette depotet, skriv `docsify serve`. Nettstedet vil bli servert på port 3000 på din lokale vertsadresse: `localhost:3000`. +Du kan kjøre denne dokumentasjonen frakoblet ved å bruke [Docsify](https://docsify.js.org/#/). Fork dette repoet, [installer Docsify](https://docsify.js.org/#/quickstart) på din lokale maskin, og deretter i rotmappen til dette repoet, skriv `docsify serve`. Nettstedet vil bli servert på port 3000 på din lokalhost: `localhost:3000`. ## PDF-er Finn en pdf av læreplanen med lenker [her](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Andre kurs +## 🎒 Andre kurs Vårt team produserer andre kurs! Sjekk ut: @@ -190,7 +190,7 @@ Vårt team produserer andre kurs! Sjekk ut: --- -### Generative AI-serie +### Generativ AI-serie [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) @@ -198,7 +198,7 @@ Vårt team produserer andre kurs! Sjekk ut: --- -### Kjerneopplæring +### Grunnleggende læring [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -209,7 +209,7 @@ Vårt team produserer andre kurs! Sjekk ut: --- -### Copilot-serien +### Copilot-serie [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) @@ -217,22 +217,22 @@ Vårt team produserer andre kurs! Sjekk ut: ## Få hjelp -Hvis du blir sittende fast eller har spørsmål om å bygge AI-apper. Bli med andre lærende og erfarne utviklere i diskusjoner om MCP. Det er et støttende fellesskap hvor spørsmål er velkomne og kunnskap deles fritt. +Hvis du står fast eller har spørsmål om å bygge AI-apper. Bli med andre lærende og erfarne utviklere i diskusjoner om MCP. Det er et støttende fellesskap hvor spørsmål er velkomne og kunnskap deles fritt. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Hvis du har produktfeedback eller opplever feil under bygging, besøk: +Hvis du har produkt tilbakemeldinger eller opplever feil under bygging, besøk: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Ekstra læringstips +## Ytterligere læringstips - Gå gjennom notatbøker etter hver leksjon for bedre forståelse. - Øv på å implementere algoritmer på egenhånd. -- Utforsk virkelige datasett ved hjelp av lærte konsepter. +- Utforsk datasett fra virkeligheten ved å bruke lærte konsepter. --- **Ansvarsfraskrivelse**: -Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det opprinnelige dokumentet på originalspråket bør betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. +Dette dokumentet er oversatt ved hjelp av AI-oversettelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selv om vi streber etter nøyaktighet, vennligst vær oppmerksom på at automatiserte oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på dets opprinnelige språk bør betraktes som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen. \ No newline at end of file diff --git a/translations/pa/.co-op-translator.json b/translations/pa/.co-op-translator.json index 1c32f44a1..45bc9a886 100644 --- a/translations/pa/.co-op-translator.json +++ b/translations/pa/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "pa" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:52:10+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T15:49:53+00:00", "source_file": "README.md", "language_code": "pa" }, diff --git a/translations/pa/README.md b/translations/pa/README.md index 2eb0d0d46..50fa98046 100644 --- a/translations/pa/README.md +++ b/translations/pa/README.md @@ -10,16 +10,16 @@ ### 🌐 ਬਹੁ-ਭਾਸ਼ਾ ਸਹਾਇਤਾ -#### GitHub ਕਾਰਵਾਈ ਦੇ ਜ਼ਰੀਏ ਸਮਰਥਿਤ (ਸਵੈਚਾਲਿਤ ਅਤੇ ਹਮੇਸ਼ਾ ਅੱਪ-ਟੂ-ਡੇਟ) +#### GitHub ਐਕਸ਼ਨ ਰਾਹੀਂ ਸਮਰਥਿਤ (ਆਟੋਮੇਟਿਕ ਅਤੇ ਹਮੇਸ਼ਾ ਅਪ-ਟੂ-ਡੇਟ) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](./README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](./README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **ਸਥਾਨਕ ਕਲੋਨ ਕਰਨਾ ਪਸੰਦ ਹੈ?** > -> ਇਹ ਰਿਪੋ ਵਿੱਚ 50+ ਭਾਸ਼ਾ ਅਨੁਵਾਦ ਸ਼ਾਮਲ ਹਨ ਜੋ ਡਾਊਨਲੋਡ ਆਕਾਰ ਨੂੰ ਕਾਫੀ ਅੱਧਿਕ ਵਧਾਉਂਦੇ ਹਨ। ਬਿਨਾਂ ਅਨੁਵਾਦਾਂ ਦੇ ਕਲੋਨ ਕਰਨ ਲਈ, sparse checkout ਵਰਤੋਂ: +> ਇਹ ਰੀਪੋਜਿਟਰੀ 50+ ਭਾਸ਼ਾਵਾਂ ਦੇ ਅਨੁਵਾਦ ਸ਼ਾਮਲ ਕਰਦੀ ਹੈ ਜੋ ਡਾਊਨਲੋਡ ਦਾ ਆਕਾਰ ਵਧਾਉਂਦੇ ਹਨ। ਬਿਨਾਂ ਅਨੁਵਾਦਾਂ ਦੇ ਕਲੋਨ ਕਰਨ ਲਈ, ਸਪਾਰਸ ਚੈਕਆਊਟ ਵਰਤੋਂ: > -> **ਬਾਸ਼ / macOS / Linux:** +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners @@ -33,62 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> ਇਸ ਨਾਲ ਤੁਹਾਨੂੰ ਇਹ ਸਭ ਕੁਝ ਮਿਲਦਾ ਹੈ ਜੋ ਕੋਰਸ ਪੂਰਾ ਕਰਨ ਲਈ ਲੋੜੀਂਦਾ ਹੈ ਬਹੁਤ ਤੇਜ਼ ਡਾਊਨਲੋਡ ਨਾਲ. +> ਇਹ ਤੁਹਾਨੂੰ ਕੋਰਸ ਨੂੰ ਜ਼ਿਆਦਾ ਤੇਜ਼ ਡਾਊਨਲੋਡ ਨਾਲ ਪੂਰਾ ਕਰਨ ਲਈ ਸਾਰੀ ਜਰੂਰੀ ਚੀਜ਼ਾਂ ਦਿੰਦਾ ਹੈ। -#### ਸਾਡੀ ਕਮਿਊਨਿਟੀ ਨਾਲ ਜੁੜੋ +#### ਸਾਡੇ ਕਮਿਊਨਿਟੀ ਵਿੱਚ ਸ਼ਾਮਿਲ ਹੋਵੋ [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -ਸਾਡੇ ਕੋਲ ਇੱਕ ਡਿਸਕਾਰਡ ਐਆਈ ਨਾਲ ਸਿੱਖਣ ਵਾਲੀ ਸੀਰੀਜ਼ ਚੱਲ ਰਹੀ ਹੈ, ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ ਅਤੇ ਸਾਡੇ ਨਾਲ ਜੁੜਨ ਲਈ ਲੇਖਾ ਸ਼੍ਰੇਣੀ 'Learn with AI Series' ਵੇਖੋ [Learn with AI Series](https://aka.ms/learnwithai/discord) 18 - 30 ਸਤੰਬਰ, 2025 ਤੋਂ। ਤੁਸੀਂ GitHub Copilot ਨੂੰ ਡੇਟਾ ਸਾਇੰਸ ਲਈ ਵਰਤਣ ਦੇ ਟਿਪਸ ਅਤੇ ਟ੍ਰਿਕਸ ਪ੍ਰਾਪਤ ਕਰੋਗੇ। +ਅਸੀਂ ਇੱਕ ਡਿਸਕਾਰਡ ਲਰਨ ਵਿਥ ਏਆਈ ਸਿਰੀਜ਼ ਚਲਾ ਰਹੇ ਹਾਂ, ਵੱਧ ਜਾਣਕਾਰੀ ਲਈ ਅਤੇ ਸਾਡੇ ਨਾਲ ਜੁੜਨ ਲਈ [Learn with AI Series](https://aka.ms/learnwithai/discord) 'ਤੇ 18 - 30 ਸਤੰਬਰ, 2025। ਤੁਸੀਂ GitHub Copilot ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਡਾਟਾ ਸਾਇੰਸ ਦੇ ਟਿਪਸ ਅਤੇ ਟ੍ਰਿਕਸ ਪ੍ਰਾਪਤ ਕਰੋਗੇ। ![Learn with AI series](../../translated_images/pa/3.9b58fd8d6c373c20.webp) -# ਨਵੀਂ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲਿਆਂ ਲਈ ਮਸ਼ੀਨ ਲਰਨਿੰਗ - ਇੱਕ ਸਿਲੇਬਸ +# ਨਵੇਂ ਸਿੱਖਣ ਵਾਲਿਆਂ ਲਈ ਮਸ਼ੀਨ ਲਰਨਿੰਗ - ਇੱਕ ਕਰੀਕੁਲਮ -> 🌍 ਦੁਨੀਆ ਦੇ ਵੱਖ-ਵੱਖ ਸੱਭਿਆਚਾਰਾਂ ਦੇ ਜ਼ਰੀਏ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦਾ ਅਧਿਐਨ ਕਰਦੇ ਹੋਏ ਦੁਨੀਆ ਦੀ ਯਾਤਰਾ ਕਰੋ 🌍 +> 🌍 ਦੁਨੀਆ ਦੇ ਵੱਖ-ਵੱਖ ਸੱਭਿਆਚਾਰਾਂ ਰਾਹੀਂ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੀ ਖੋਜ ਕਰਦੇ ਹਾਂ 🌍 -Microsoft ਦੇ ਕਲਾਊਡ ਅਡਵੋਕੇਟ ਖੁਸ਼ੀ ਨਾਲ 12 ਹਫ਼ਤੇ, 26 ਪਾਠਾਂ ਵਾਲਾ ਸਿਲੇਬਸ ਪੇਸ਼ ਕਰਦੇ ਹਨ ਜੋ ਮੁੱਖ ਤੌਰ 'ਤੇ **ਮਸ਼ੀਨ ਲਰਨਿੰਗ** ਬਾਰੇ ਹੈ। ਇਸ ਸਿਲੇਬਸ ਵਿੱਚ ਤੁਸੀਂ ਕਈ ਵਾਰ ਕਿਹਾ ਜਾਂਦਾ ਹੈ **ਪ੍ਰਚੀਨ ਮਸ਼ੀਨ ਲਰਨਿੰਗ**, ਜੋ ਮੁੱਖ ਤੌਰ 'ਤੇ Scikit-learn ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਇਸਤੇਮਾਲ ਕਰਦਾ ਹੈ ਅਤੇ ਡੀਪ ਲਰਨਿੰਗ ਤੋਂ ਬਚਦਾ ਹੈ, ਜਿਸ ਨੂੰ ਸਾਡੀ [AI for Beginners' curriculum](https://aka.ms/ai4beginners) ਵਿੱਚ ਕਵਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਨ੍ਹਾਂ ਪਾਠਾਂ ਨੂੰ ਸਾਡੀ ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) ਨਾਲ ਵੀ ਜੋੜੋ। +ਮਾਈਕ੍ਰੋਸਾਫਟ ਵਿੱਚ ਕਲਾਉਡ ਐਡਵੋਕੇਟਸ ਖੁਸ਼ ਹਨ ਕਿ ਉਹ 12 ਹਫਤਿਆਂ, 26 ਪਾਠਾਂ ਵਾਲਾ ਇਕ ਕਰੀਕੁਲਮ ਮੁਹੱਈਆ ਕਰਵਾ ਰਹੇ ਹਨ ਜੋ ਸਿਰਫ਼ **ਮਸ਼ੀਨ ਲਰਨਿੰਗ** ਬਾਰੇ ਹੈ। ਇਸ ਕਰੀਕੁਲਮ ਵਿੱਚ, ਤੁਸੀਂ ਕੁਝ ਹਾਲਾਂ ਵਿੱਚ ਕਹੇ ਜਾਂਦੇ **ਕਲਾਸਿਕ ਮਸ਼ੀਨ ਲਰਨਿੰਗ** ਬਾਰੇ ਸਿੱਖੋਗੇ, ਜਿੱਥੇ ਮੁੱਖ ਤੌਰ 'ਤੇ ਸਾਇਕਿਟ-ਲਰਨ ਲਾਇਬ੍ਰੇਰੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਡੀਪ ਲਰਨਿੰਗ ਤੋਂ ਬਚਿਆ ਜਾਂਦਾ ਹੈ, ਜੋ ਸਾਡੇ [AI for Beginners ਦੇ ਕਰੀਕੁਲਮ](https://aka.ms/ai4beginners) ਵਿੱਚ ਕਵਰ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਪਾਠ ਸਾਡੇ ['ਡਾਟਾ ਸਾਇੰਸ ਫਾਰ ਬਿਗਿਨਰਜ਼' ਕਰੀਕੁਲਮ](https://aka.ms/ds4beginners) ਨਾਲ ਜੋੜੋ। -ਦੁਨੀਆਂ ਦੇ ਵੱਖਰੇ ਖੇਤਰਾਂ ਦੇ ਡੇਟਾ ਵਿੱਚ ਅਸੀਂ ਇਨ੍ਹਾਂ ਪ੍ਰਚੀਨ ਤਕਨੀਕਾਂ ਨੂੰ ਲਾਗੂ ਕਰਦੇ ਹੋਏ ਦੁਨੀਆ ਦੀ ਯਾਤਰਾ ਕਰੋਗੇ। ਹਰ ਪਾਠ ਵਿੱਚ ਪ੍ਰੀ ਅਤੇ ਪੋਸਟ ਪਾਠ ਕੁਇਜ਼, ਲਿਖਤੀ ਹੁਕਮਾਂ, ਹੱਲ, ਕੰਮ ਅਤੇ ਹੋਰ ਸ਼ਾਮਲ ਹਨ। ਸਾਡਾ ਪ੍ਰੋਜੈਕਟ-ਆਧਾਰਿਤ ਪੈਡਾਗੋਗੀ ਤੁਹਾਨੂੰ ਸਿੱਖਣ ਅਤੇ ਬਣਾਉਣ ਦੌਰਾਨ ਸਿਖਾਉਂਦਾ ਹੈ, ਜੋ ਕਿ ਨਵੀਆਂ ਹੁਨਰਾਂ ਨੂੰ ਥਾਪਣ ਲੱਗਣਾ ਹੈ। +ਸਾਡੇ ਨਾਲ ਦੁਨੀਆ ਭਰ ਦੀ ਯਾਤਰਾ ਕਰੋ ਜਦੋਂ ਅਸੀਂ ਇਹ ਕਲਾਸਿਕ ਤਕਨੀਕਾਂ ਦੁਨੀਆ ਦੇ ਕਈ ਖੇਤਰਾਂ ਦੇ ਡਾਟੇ 'ਤੇ ਲਾਗੂ ਕਰਦੇ ਹਾਂ। ਹਰ ਪਾਠ ਵਿੱਚ ਪਹਿਲਾਂ ਅਤੇ ਬਾਅਦ ਦੇ ਕੰਮਾਂ ਦੀ ਕਵਿਜ਼, ਲਿਖਤੀ ਹਦਾਇਤਾਂ, ਹੱਲ, ਅਸਾਈਨਮੈਂਟ ਸ਼ਾਮਲ ਹਨ। ਸਾਡੀ ਪ੍ਰੋਜੈਕਟ-ਅਧਾਰਿਤ ਪੈਡਾਗੋਗੀ ਤੁਹਾਨੂੰ ਬਿਲਡ ਕਰਦਿਆਂ ਸਿੱਖਣ ਦੀ ਆਜ਼ਾਦੀ ਦਿੰਦੀ ਹੈ, ਜੋ ਨਵੀਆਂ ਸਿੱਖਿਆ ਲਈ ਬਹੁਤ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੈ। -**✍️ ਸਾਡੇ ਲੇਖਕਾਂ ਨੂੰ ਦਿਲੋਂ ਧੰਨਵਾਦ** ਜੇਨ ਲੂਪਰ, ਸਟੀਫਨ ਹਾਓਵਲ, ਫ੍ਰਾਂਚੇਸਕਾ ਲਾਜ਼ੇਰੀ, ਟੋਮੋਮੀ ਇਮੁਰਾ, ਕੈਸੀ ਬਰੇਵੀਉ, ਦਿਮਿਤਰੀ ਸੋਸ਼ਨਿਕੋਵ, ਕਰਿਸ ਨੋਰਿੰਗ, ਅਨੀਰਬਨ ਮੁਖਰਜੀ, ਔਰਨੇਲਾ ਅਲਟੁਨਯਾਨ, ਰੂਥ ਯਾਕੂਬੂ ਅਤੇ ਐਮੀ ਬੋਇਡ +**✍️ ਸਾਡੀਆਂ ਲੇਖਕਾਂ ਦਾ ਦਿਲੋਂ ਧੰਨਵਾਦ** ਜੇਨ ਲੂਪਰ, ਸਟੀਫਨ ਹਾਵੈਲ, ਫ੍ਰਾਂਸੇਸਕਾ ਲਾਜ਼ੇਰੀ, ਟੋਮੋਮੀ ਇਮਰਾ, ਕੈਸੀ ਬਰੇਵਿਊ, ਦਿਮਿੱਤਰੀ ਸੋਸ਼ਨਿਕੋਵ, ਕ੍ਰਿਸ ਨੋਰਿੰਗ, ਅਨਿਰਬਨ ਮੁਖਰਜੀ, ਓਰਨੈਲਾ ਅਲਟੂਨਯਾਨ, ਰੁਥ ਯਾਕੁਬੂ ਅਤੇ ਐਮੀ ਬੋਇਡ -**🎨 ਸਾਡੀਆਂ ਇਲਸਟਰਟਰਾਂ ਨੂੰ ਵੀ ਧੰਨਵਾਦ** ਟੋਮੋਮੀ ਇਮੁਰਾ, ਦਸਨੀ ਮਾਡਿਪੱਲੀ, ਅਤੇ ਜੇਨ ਲੂਪਰ +**🎨 ਸਾਡੀਆਂ ਇਲਾਸਟ੍ਰੇਟਰਾਂ ਨੂੰ ਵੀ ਧੰਨਵਾਦ** ਟੋਮੋਮੀ ਇਮਰਾ, ਦਾਸਾਨੀ ਮਾਡਿਪલ્લੀ ਅਤੇ ਜੇਨ ਲੂਪਰ -**🙏 Microsoft ਸਟੂਡੈਂਟ ਅੰਬੈਸਡਰ ਲੇਖਕਾਂ, ਸਮੀਖਿਅਕਾਂ ਅਤੇ ਸਮੱਗਰੀ ਯੋਗਦਾਨ ਦਾਤਾਵਾਂ ਨੂੰ ਖਾਸ ਧੰਨਵਾਦ** ਵਿੱਚ ਰਿਸ਼ਿਤ ਡਾਗਲੀ, ਮੁਹੰਮਦ ਸਕ਼ੀਬ ਖਾਨ ਇਨਾਨ, ਰੋਹਨ ਰਾਜ, ਅਲੈਕਜ਼ੈਂਡਰੂ ਪੈਟਰੈਸਕੂ, ਅਭਿਸ਼ੇਕ ਜੈਸਵਾਲ, ਨਵਰੀਨ ਤਬਾਸ਼ੁਮ, ਆਇਓਨ ਸਮੂਲਾ ਅਤੇ ਸਨੀਧਾ ਅਗਰਵਾਲ +**🙏 ਸਾਡੀਆਂ ਮਾਈਕ੍ਰੋਸਾਫਟ ਸਟੂਡੈਂਟ ਅਮਬੈਸਡਰ ਲੇਖਕਾਂ, ਸਮੀਖਿਆਕਾਰਾਂ ਅਤੇ ਸਮੱਗਰੀ ਯੋਗਦਾਨਕਾਰਾਂ ਨੂੰ ਵਿਸੇਸ਼ ਧੰਨਵਾਦ**, ਖਾਸ ਕਰਕੇ ਰਿਸ਼ਿਤ ਡਾਗਲੀ, ਮੁਹੰਮਦ ਸਾਕਿਬ ਖਾਨ ਇਨਾਨ, ਰੋਹਨ ਰਾਜ, ਅਲੈਕਜ਼ੈਂਡਰੂ ਪੇਟਰੇਸ਼ਕੂ, ਅਭਿਸ਼ੇਕ ਜੈਸਵਾਲ, ਨਵਰੀਨ ਤਬਾਸ਼ਮ, ਇਓਨ ਸਮੂਇਲਾ, ਅਤੇ ਸਨਿਗਧਾ ਅਗਰਵਾਲ -**🤩 Microsoft ਸਟੂਡੈਂਟ ਅੰਬੈਸਡਰ ਐਰਿਕ ਵਾਂਜਾਊ, ਜਸਲੀਨ ਸੋਂਧੀ ਅਤੇ ਵਿਦੂਸ਼ੀ ਗੁਪਤਾ ਨੂੰ ਸਾਡੀਆਂ R ਪਾਠਾਂ ਲਈ ਵਾਧੂ ਧੰਨਵਾਦ!** +**🤩 ਸਾਡੀਆਂ R ਭਾਸ਼ਾ ਵਾਲੇ ਪਾਠਾਂ ਲਈ Microsoft Student Ambassadors ਏਰਿਕ ਵਾਂਜ਼ਾਊ, ਜਸਲੀਨ ਸੰਧੀ ਅਤੇ ਵਿਦੁਸ਼ੀ ਗੁਪਤਾ ਨੂੰ ਵਾਧੂ ਸ਼ੁਕਰੀਆ!** -# ਸ਼ੁਰੂਆਤ ਕਰਨਾ +# ਸ਼ੁਰੂ ਕਰਨਾ ਇਹ ਕਦਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ: -1. **ਰਿਪੋਜ਼ਿਟਰੀ Fork ਕਰੋ**: ਇਸ ਪੰਨੇ ਦੇ ਸਿਖਰ-ਸੱਜੇ ਕੋਨੇ 'Fork' ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। -2. **ਰਿਪੋਜ਼ਿਟਰੀ ਕਲੋਨ ਕਰੋ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **ਰੀਪੋਜਿਟਰੀ ਨੂੰ ਫੋਰਕ ਕਰੋ**: ਇਸ ਪੰਨੇ ਦੇ ਤੱਜ-ਸੱਜੇ ਕੋਨੇ ਵਿੱਚ "Fork" ਬਟਨ 'ਤੇ ਕਲਿੱਕ ਕਰੋ। +2. **ਰੀਪੋਜਿਟਰੀ ਨੂੰ ਕਲੋਨ ਕਰੋ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [ਇਸ ਕੋਰਸ ਲਈ ਸਾਰੇ ਵਾਧੂ ਸਰੋਤ ਸਾਡੇ Microsoft Learn ਕਲੇਕਸ਼ਨ ਵਿੱਚ ਲੱਭੋ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [ਇਸ ਕੋਰਸ ਲਈ ਸਾਰੀਆਂ ਵਾਧੂ ਵਸਤੂਆਂ ਨੂੰ ਸਾਡੇ Microsoft Learn collection ਵਿੱਚ ਲਭੋ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **ਮਦਦ ਚਾਹੀਦੀ ਹੈ?** ਸਾਡੀ [Troubleshooting Guide](TROUBLESHOOTING.md) ਵੇਖੋ ਇੰਸਟਾਲੇਸ਼ਨ, ਸੈਟਅੱਪ ਅਤੇ ਪਾਠ ਚਲਾਉਣ ਦੌਰਾਨ ਆਮ ਸਮੱਸਿਆਵਾਂ ਲਈ ਹੱਲ। +> 🔧 **ਮਦਦ ਚਾਹੀਦੀ ਹੈ?** ਸਾਡੀ [ਪਰੇਸ਼ਾਨੀਆਂ ਸੁਲਝਾਉਣ ਦੀ ਗਾਈਡ](TROUBLESHOOTING.md) ਵਿੱਚ ਇੰਸਟਾਲੇਸ਼ਨ, ਸੈਟਅੱਪ ਅਤੇ ਪਾਠ ਚਲਾਉਣ ਸਮੱਸਿਆਵਾਂ ਦੇ ਹੱਲ ਹਨ। -**[ਵਿਦਿਆਰਥੀ](https://aka.ms/student-page)**, ਇਸ ਸਿਲੇਬਸ ਨੂੰ ਵਰਤਣ ਲਈ, ਸਾਰੀ ਰਿਪੋ ਆਪਣੇ GitHub ਖਾਤੇ `ਤੇ fork ਕਰੋ ਅਤੇ ਹੀਰੇਕਸਾਈਜ਼ ਆਪਣੇ ਤਰੀਕੇ ਨਾਲ ਜਾਂ ਸਮੂਹ ਨਾਲ ਪੂਰੇ ਕਰੋ: -- ਪ੍ਰੀ-ਲੈਕਚਰ ਕੁਇਜ਼ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ। -- ਲੈਕਚਰ ਪੜ੍ਹੋ ਅਤੇ ਗਤੀਵਿਧੀਆਂ ਪੂਰੀਆਂ ਕਰੋ, ਹਰ ਗਿਆਨ ਜਾਂਚ 'ਤੇ ਰੁਕ ਕੇ ਸੋਚੋ। -- ਹੱਲ ਕੋਡ ਨੂੰ ਚਲਾਉਣ ਤੋਂ ਬਿਨਾਂ ਪਾਠਾਂ ਨੂੰ ਸਮਝ ਕੇ ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ; ਹਾਲਾਂਕਿ ਇਹ ਕੋਡ ਹਰ ਪ੍ਰੋਜੈਕਟ-ਮੁੱਖ ਪਾਠ ਵਿੱਚ `/solution` ਫੋਲਡਰ ਵਿੱਚ ਉਪਲਬਧ ਹੈ। -- ਪੋਸਟ-ਲੈਕਚਰ ਕੁਇਜ਼ ਦਿਓ। -- ਚੈਲੇਂਜ ਪੂਰਾ ਕਰੋ। +**[ਵਿਦਿਆਰਥੀ](https://aka.ms/student-page)**, ਇਸ ਕਰੀਕੁਲਮ ਨੂੰ ਵਰਤਣ ਲਈ, ਪੂਰੇ ਰੀਪੋ ਨੂੰ ਆਪਣੇ GitHub ਅਕਾਊਂਟ 'ਤੇ ਫੋਰਕ ਕਰੋ ਅਤੇ ਯਥਾਵਤ ਜਾਂ ਸਮੂਹ ਨਾਲ ਕਸਰਤਾਂ ਮੁਕੰਮਲ ਕਰੋ: + +- ਪ੍ਰੀ-ਲੇਕਚਰ ਕਵਿਜ਼ ਨਾਲ ਸ਼ੁਰੂ ਕਰੋ। +- ਲੈਕਚਰ ਪੜ੍ਹੋ ਅਤੇ ਗਤੀਵਿਧੀਆਂ ਨੂੰ ਪੂਰਾ ਕਰੋ, ਹਰ ਗਿਆਨ ਚੈੱਕ 'ਤੇ ਰੁਕ ਕੇ ਸੋਚੋ। +- ਪਾਠਾਂ ਨੂੰ ਸਮਝ ਕੇ ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਨਾ ਕਿ ਹੁੱਲਾ ਕੋਡ ਚਲਾਉਣ ਦਾ; ਪਰ ਹੱਲ ਦਾ ਕੋਡ `/solution` ਫੋਲਡਰਾਂ ਵਿੱਚ ਹੈ ਪ੍ਰੋਜੈਕਟ-ਅਧਾਰਿਤ ਹਰ ਪਾਠ ਵਿੱਚ। +- ਪੋਸਟ-ਲੇਕਚਰ ਕਵਿਜ਼ ਕਰੋ। +- ਚੈਲੰਜ ਪੂਰਾ ਕਰੋ। - ਅਸਾਈਨਮੈਂਟ ਪੂਰਾ ਕਰੋ। -- ਪਾਠ ਸਮੂਹ ਪੂਰਾ ਕਰਨ ਤੋਂ ਬਾਅਦ, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) 'ਤੇ ਜਾਓ ਅਤੇ ਉਚਿਤ PAT ਰੂਬ੍ਰਿਕ ਪੱਕਾ ਕਰਕੇ "ਸਿੱਖੋ ਬਾਹਰਲਾ"। 'PAT' ਇੱਕ ਪ੍ਰਗਤੀ ਮੁਲਾਂਕਣ ਸੰਦ ਹੈ ਜਿਸਨੂੰ ਤੁਸੀਂ ਭਰਕੇ ਆਪਣੀ ਸਿੱਖਿਆ ਨੂੰ ਅੱਗੇ ਵਧਾਉਂਦੇ ਹੋ। ਤੁਸੀਂ ਹੋਰ PATs 'ਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਵੀ ਦੇ ਸਕਦੇ ਹੋ ਤਾਂ ਜੋ ਅਸੀਂ ਮਿਲ ਕੇ ਸਿੱਖੀਏ। +- ਇੱਕ ਪਾਠ ਗਰੂਪ ਮੁਕੰਮਲ ਕਰਨ ਤੋਂ ਬਾਅਦ, [ਚਰਚਾ ਬੋਰਡ](https://github.com/microsoft/ML-For-Beginners/discussions) ਤੇ ਜਾਓ ਅਤੇ "ਜੋਰ ਨਾਲ ਸਿੱਖੋ" ਦੁਆਰਾ ਉਚਿਤ PAT ਰੂਬ੍ਰਿਕ ਭਰੋ। PAT ਇੱਕ ਪ੍ਰਗਤੀ ਮੁਲਾਂਕਣ ਸੰਦ ਹੈ ਜੋ ਤੁਹਾਡੇ ਸਿੱਖਣ ਨੂੰ ਹੋਰ ਵਧਾਉਂਦਾ ਹੈ। ਤੁਸੀਂ ਹੋਰ PATs ਉੱਤੇ ਵੀ ਪ੍ਰਤਿਕਿਰਿਆ ਦੇ ਸਕਦੇ ਹੋ ਤਾਂ ਜੋ ਅਸੀਂ ਇਕੱਠੇ ਸਿੱਖੀਏ। -> ਹੋਰ ਅਧਿਐਨ ਲਈ, ਸਾਨੂੰ ਸਿਫਾਰਸ਼ ਹੈ ਕਿ ਤੁਸੀਂ ਇਹ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ਮੋਡੀਊਲ ਅਤੇ ਸਿੱਖਣ ਵਾਲੀਆਂ ਰਾਹਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ। +> ਹੋਰ ਅਧਿਐਨ ਲਈ, ਇਹ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ਮਾਡਿਊਲਾਂ ਅਤੇ ਲਰਨਿੰਗ ਪਾਥਾਂ ਦੀ ਸਿਫ਼ਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। -**ਅਧਿਆਪਕ**, ਅਸੀਂ [ਇਸ ਸਿਲੇਬਸ ਦੇ ਵਰਤੇ ਜਾਣ ਬਾਰੇ ਕੁਝ ਸੁਝਾਵ ਸ਼ਾਮਲ ਕੀਤੇ ਹਨ](for-teachers.md)। +**ਅਧਿਆਪਕ**, ਅਸੀਂ [ਕੁਝ ਸੁਝਾਵ](for-teachers.md) ਦਿੱਤੇ ਹਨ ਕਿ ਤੁਹਾਡੇ ਲਈ ਇਹ ਕਰੀਕੁਲਮ ਕਿਵੇਂ ਵਰਤੀ ਜਾ ਸਕਦੀ ਹੈ। --- -## ਵੀਡੀਓ ਵਾਕ-ਥਰੂ +## ਵੀਡੀਓ ਵਾਕਥਰੂ -ਕੁਝ ਪਾਠ ਛੋਟੇ ਫਾਰਮ ਦੇ ਵੀਡੀਓ ਵਜੋਂ ਉਪਲਬਧ ਹਨ। ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਨੂੰ ਪਾਠਾਂ ਵਿੱਚ ਲਾਈਨ ਵਿੱਚ ਜਾਂ [Microsoft Developer YouTube ਚੈਨਲ 'ਤੇ ML for Beginners ਪਲੇਲਿਸਟ](https://aka.ms/ml-beginners-videos) ਵਿੱਚ ਤਸਵੀਰ 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਲੱਭ ਸਕਦੇ ਹੋ। +ਕੁਝ ਪਾਠ ਛੋਟੇ ਫਾਰਮ ਵਿੱਚ ਵੀਡੀਓ ਦੇ ਰੂਪ ਵਿੱਚ ਉਪਲੱਬਧ ਹਨ। ਤੁਸੀਂ ਇਹਨਾਂ ਸਾਰੇ ਪਾਠਾਂ ਵਿੱਚ ਸਰਕਾਰੀ ਤੌਰ 'ਤੇ ਜਾਂ [Microsoft Developer ਯੂਟਿਊਬ ਚੈਨਲ 'ਤੇ ML for Beginners ਪლეਲਿਸਟ](https://aka.ms/ml-beginners-videos) 'ਤੇ ਤਸਵੀਰ 'ਤੇ ਕਲਿੱਕ ਕਰਕੇ ਵੇਖ ਸਕਦੇ ਹੋ। [![ML for beginners banner](../../translated_images/pa/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -98,80 +99,81 @@ Microsoft ਦੇ ਕਲਾਊਡ ਅਡਵੋਕੇਟ ਖੁਸ਼ੀ ਨਾਲ [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**ਗਿਫ ਬਣਾਈ [ਮੋਹਿਟ ਜੈਸਲ](https://linkedin.com/in/mohitjaisal)** +**ਗਿਫ਼** [ਮੋਹਿਤ ਜੈਸਲ](https://linkedin.com/in/mohitjaisal) ਵਲੋਂ -> 🎥 ਉੱਪਰ ਦਿੱਤੀ ਤਸਵੀਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਇਸਨੂੰ ਬਣਾਉਣ ਵਾਲਿਆਂ ਬਾਰੇ ਵੀਡੀਓ ਦੇਖਣ ਲਈ! +> 🎥 ਪ੍ਰੋਜੈਕਟ ਅਤੇ ਇਸ ਨੂੰ ਬਣਾਉਣ ਵਾਲਿਆਂ ਬਾਰੇ ਵੀਡੀਓ ਲਈ ਉੱਪਰਲੀ ਤਸਵੀਰ 'ਤੇ ਕਲਿੱਕ ਕਰੋ! --- -## ਪੈਡਾਗੋਗੀ +## ਪੈਡਾਗੋਕੀ -ਅਸੀਂ ਇਸ ਸਿਲੇਬਸ ਨੂੰ ਤਿਆਰ ਕਰਦਿਆਂ ਦੋ ਪੈਡਾਗੋਗਿਕ ਸਿਧਾਂਤ ਚੁਣੇ ਹਨ: ਇਹ ਹੱਥ-ਵਰਕ ਹੈ ਅਤੇ **ਪ੍ਰੋਜੈਕਟ-ਆਧਾਰਿਤ** ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ **ਅਕਸਰ ਕੁਇਜ਼ ਹੁੰਦੇ ਹਨ**। ਇਸਦੇ ਨਾਲ, ਇਹ ਸਿਲੇਬਸ ਇੱਕ ਸਾਂਝਾ **ਥੀਮ** ਵੀ ਰੱਖਦਾ ਹੈ ਜਿਸ ਨਾਲ ਇਸਨੂੰ ਇਕਸਾਰਤਾ ਮਿਲਦੀ ਹੈ। +ਅਸੀਂ ਇਸ ਕਰੀਕੁਲਮ ਦੇ ਨਿਰਮਾਣ ਦੌਰਾਨ ਦੋ ਪੈਡਾਗੋਗਿਕ ਮੂਲ ਭੂਤ ਚੁਣੇ ਹਨ: ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਕਿ ਇਹ **ਹੱਥ-ਅਨ-ਪ੍ਰੋਜੈਕਟ** ਤੇ ਅਧਾਰਿਤ ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ **ਅਕਸਰ ਕਵਿਜ਼ ਸ਼ਾਮਲ ਹਨ**। ਇਸ ਦੇ ਨਾਲ, ਇਸ ਕਰੀਕੁਲਮ ਦਾ ਇਕ ਸਾਂਝਾ **ਥੀਮ** ਹੈ ਜੋ ਇਸ ਨੂੰ ਏਕਤਾ ਦਿੰਦਾ ਹੈ। -ਇਹ ਯਕੀਨ ਕਰਕੇ ਕਿ ਸਮੱਗਰੀ ਪ੍ਰੋਜੈਕਟਾਂ ਨਾਲ ਮੇਲ ਖਾਂਦੀ ਹੈ, ਵਿਦਿਆਰਥੀਆਂ ਲਈ ਪ੍ਰਕਿਰਿਆ ਹੋਰ ਰੁਚਿਕਰ ਹੁੰਦੀ ਹੈ ਅਤੇ ਸਿਧਾਂਤਾਂ ਦੀ ਸਮਝ ਵਧਦੀ ਹੈ। ਪਾਠ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਖ਼ਤਰਨਾਕ-ਰਹਿਤ ਕੁਇਜ਼ ਵਿਦਿਆਰਥੀ ਦੀ ਭਾਵਨਾ ਸਰਗਰਮ ਕਰਦਾ ਹੈ ਅਤੇ ਪਾਠ ਤੋਂ ਬਾਅਦ ਦੂਜਾ ਕੁਇਜ਼ ਹੋਰ ਯਾਦਗਾਰੀ ਬਣਾਂਉਂਦਾ ਹੈ। ਇਹ ਸਿਲੇਬਸ ਲਚਕੀਲਾ ਅਤੇ ਮਨੋਰੰਜਕ ਹੈ ਅਤੇ ਇਸਨੂੰ ਪੂਰਾ ਜਾਂ ਹਿੱਸਾ-ਹਿੱਸਾ ਕਰਕੇ ਸਿੱਖਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਪ੍ਰੋਜੈਕਟ ਛੋਟੇ ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ ਅਤੇ 12 ਹਫਤੇ ਦੇ ਅੰਤ ਤੱਕ ਜਿਆਦਾ ਜਟਿਲ ਬਣ ਜਾਂਦੇ ਹਨ। ਇਸ ਸਿਲੇਬਸ ਵਿੱਚ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੇ ਹਕੀਕਤੀ ਜਗਤ ਦੀਆਂ ਅਰਜ਼ੀਆਂ 'ਤੇ ਇੱਕ ਪੋਸਟਸਕ੍ਰਿਪਟ ਵੀ ਸ਼ਾਮਲ ਹੈ, ਜੋ ਵਾਧੂ ਕਰੈਡਿਟ ਜਾਂ ਚਰਚਾ ਲਈ ਬੇਸ ਵਜੋਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। +ਸਮੱਗਰੀ ਨੂੰ ਪ੍ਰੋਜੈਕਟਾਂ ਨਾਲ ਜੋੜ ਕੇ, ਪ੍ਰਕਿਰਿਆ ਸਟੂਡੈਂਟਾਂ ਲਈ ਹੋਰ ਰੁਝਾਨਕਰ ਬਣਾਈ ਜਾਂਦੀ ਹੈ ਅਤੇ ਧਾਰਣਾ ਨੂੰ ਸਥਿਰਤਾ ਮਿਲਦੀ ਹੈ। ਇੱਕ ਘੱਟ-ਦਬਾਅ ਵਾਲਾ ਕਵਿਜ਼ ਕਲਾਸ ਤੋਂ ਪਹਿਲਾਂ ਵਿਦਿਆਰਥੀ ਦਾ ਮਨ ਆਧਾਰ ਸੈਟ ਕਰਦਾ ਹੈ, ਜਦਕਿ ਦੂਜਾ ਕਵਿਜ਼ ਕਲਾਸ ਬਾਅਦ ਹੋਰ ਸਿੱਖਣ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਕਰੀਕੁਲਮ ਲਚਕੀਲਾ ਅਤੇ ਮਨੋਰੰਜਕ ਬਣਾਉਣ ਲਈ ਤਿਆਰ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਪੂਰਨ ਜਾਂ ਹਿੱਸਾ-ਦਾਰ ਦੇ ਤੌਰ ਤੇ ਲਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਪ੍ਰੋਜੈਕਟ ਛੋਟੇ ਤੋਂ ਸ਼ੁਰੂ ਹੁੰਦੇ ਹਨ ਅਤੇ 12 ਹਫਤਿਆਂ ਦੇ ਚੱਕਰ ਦੇ ਅੰਤ ਤੱਕ ਵੱਧ ਜਟਿਲ ਹੋ ਜਾਂਦੇ ਹਨ। ਇਸ ਕਰੀਕੁਲਮ ਵਿੱਚ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੇ ਹਕੀਕਤੀ ਵਰਤੋਂ ਬਾਰੇ ਇੱਕ ਪੋਸਟਸਕ੍ਰਿਪਟ ਵੀ ਸ਼ਾਮਲ ਹੈ, ਜੋ ਵਾਧੂ ਅੰਕ ਜਾਂ ਚਰਚਾ ਦੇ ਆਧਾਰ ਵਜੋਂ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ। -> ਸਾਡਾ [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), ਅਤੇ [Troubleshooting](TROUBLESHOOTING.md) ਦਾ ਮਾਨਦੰਡ ਵੇਖੋ। ਅਸੀਂ ਤੁਹਾਡੇ ਸੰਰਚਨਾਤਮਕ ਫੀਡਬੈਕ ਦਾ ਸਵਾਗਤ ਕਰਦੇ ਹਾਂ! +> ਸਾਡਾ [ਕੋਡ ਆਫ਼ ਕੰਡਕਟ](CODE_OF_CONDUCT.md), [ਯੋਗਦਾਨ](CONTRIBUTING.md), [ਅਨੁਵਾਦ](..), ਅਤੇ [ਮੁਸ਼ਕਲਾਂ ਦਾ ਹੱਲ](TROUBLESHOOTING.md) ਲਈ ਗਾਈਡਲਾਈਨਜ਼ ਲੱਭੋ। ਅਸੀਂ ਤੁਹਾਡਾ ਰਚਨਾਤਮਕ ਫੀਡਬੈਕ ਸਵਾਗਤ ਕਰਦੇ ਹਾਂ! -## ਹਰ ਪਾਠ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ +## ਹਰ ਇਕ ਪਾਠ ਵਿੱਚ ਸ਼ਾਮਲ ਹੈ - ਵਿਕਲਪਿਕ ਸਕੈਚਨੋਟ - ਵਿਕਲਪਿਕ ਸਹਾਇਕ ਵੀਡੀਓ -- ਵੀਡੀਓ ਵਾਕ-ਥਰੂ (ਬਿਜਲੀ ਦੇ ਕੁਝ ਹੀ ਪਾਠ) -- [ਪ੍ਰੀ-ਲੈਕਚਰ ਵਾਰਮਅਪ ਕੁਇਜ਼](https://ff-quizzes.netlify.app/en/ml/) +- ਵੀਡੀਓ ਵਾਕਥਰੂ (ਕੁਝ ਪਾਠਾਂ ਲਈ ਹੀ) +- [ਪ੍ਰੀ-ਲੇਕਚਰ ਵਾਰਮਅੱਪ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ml/) - ਲਿਖਤੀ ਪਾਠ -- ਪ੍ਰੋਜੈਕਟ-ਆਧਾਰਿਤ ਪਾਠਾਂ ਲਈ, ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਲਈ ਕਦਮ-ਦਰ-कਦਮ ਮਾਰਗਦਰਸ਼ਨ -- ਗਿਆਨ ਜਾਂਚ -- ਇੱਕ ਚੈਲੇਂਜ -- ਸਹਾਇਕ ਪੜ੍ਹਾਈ +- ਪ੍ਰੋਜੈਕਟ-ਅਧਾਰਿਤ ਪਾਠਾਂ ਲਈ, ਪ੍ਰੋਜੈਕਟ ਬਣਾਉਣ ਲਈ ਕਦਮ-ਦਰ-ਕਦਮ ਮਾਰਗਦਰਸ਼ਨ +- ਗਿਆਨ ਚੈੱਕ +- ਇੱਕ ਚੈਲੰਜ +- ਸਹਾਇਕ ਪਾਠ - ਅਸਾਈਨਮੈਂਟ -- [ਪੋਸਟ-ਲੈਕਚਰ ਕੁਇਜ਼](https://ff-quizzes.netlify.app/en/ml/) - -> **ਭਾਸ਼ਾਵਾਂ ਬਾਰੇ ਇੱਕ ਨੋਟ**: ਇਹ ਪਾਠ ਮੁੱਖ ਤੌਰ 'ਤੇ Python ਵਿੱਚ ਲਿਖੇ ਗਏ ਹਨ, ਪਰ ਕਈ R ਵਿੱਚ ਵੀ ਉਪਲਬਧ ਹਨ। R ਦਾ ਪਾਠ ਪੂਰਾ ਕਰਨ ਲਈ, `/solution` ਫੋਲਡਰ ਵਿੱਚ R ਪਾਠਾਂ ਨੂੰ ਲੱਭੋ। ਇਨ੍ਹਾਂ ਵਿੱਚ .rmd ਐਕਸਟੈਂਸ਼ਨ ਹੁੰਦਾ ਹੈ ਜੋ ਇੱਕ **R Markdown** ਫਾਇਲ ਦੀ ਨਿਸ਼ਾਨਦਹੀ ਹੈ ਜੋ `code chunks` (R ਜਾਂ ਹੋਰ ਭਾਸ਼ਾਵਾਂ ਦੇ) ਅਤੇ ਇੱਕ `YAML header` (ਜੋ PDF ਵਰਗੇ ਆਉਟਪੁਟਾਂ ਦੇ ਫਾਰਮੈਟ ਨੂੰ ਦਿਸ਼ਾ ਦਿੰਦਾ ਹੈ) ਨੂੰ ਇੱਕ Markdown ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਬੈਂਧਦਾ ਹੈ। ਇਸ ਤਰ੍ਹਾਂ, ਇਹ ਡਾਟਾ ਸਾਇੰਸ ਲਈ ਇੱਕ ਮਿਸਾਲੀ ਲੇਖਨ ਫਰੇਮਵਰਕ ਹੈ ਕਿਉਂਕਿ ਇਹ ਤੁਹਾਨੂੰ ਤੁਹਾਡਾ ਕੋਡ, ਅਉਟਪੁੱਟ ਅਤੇ ਵਿਚਾਰ ਇਕੱਠੇ Markdown ਵਿੱਚ ਲਿਖਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, R Markdown ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ PDF, HTML ਜਾਂ Word ਵਰਗੇ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟਾਂ ਵਿੱਚ ਰੈਂਡਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। -> **ਕੁਇਜ਼ਾਂ ਬਾਰੇ ਇੱਕ ਨੋਟ**: ਸਾਰੇ ਕੁਇਜ਼ਾਂ [Quiz App folder](../../quiz-app) ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ, ਜਿਥੇ ਕੁੱਲ 52 ਕੁਇਜ਼ ਹਨ, ਹਰ ਇੱਕ ਵਿੱਚ ਤਿੰਨ ਸਵਾਲ ਹਨ। ਇਹ ਪਾਠਾਂ ਵਿੱਚ ਲਿੰਕ ਕੀਤੇ ਗਏ ਹਨ ਪਰ ਕੁਇਜ਼ ਐਪ ਨੂੰ ਸਥਾਨਕ ਤੌਰ 'ਤੇ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ; ਸਥਾਨਕ ਹੋਸਟਿੰਗ ਜਾਂ ਏਜ਼ੁਰ 'ਤੇ ਡਿਪਲੋਇ ਕਰਨ ਲਈ `quiz-app` ਫੋਲਡਰ ਵਿੱਚ ਦਿੱਤੇ ਹੁਕਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ। - -| ਪਾਠ ਦੀ ਗਿਣਤੀ | ਵਿਸ਼ਾ | ਪਾਠ ਸਮੂਹ | ਸਿੱਖਣ ਦੇ ਉਦੇਸ਼ | ਲਿੰਕ ਕੀਤੇ ਪਾਠ | ਲੇਖਕ | -| :-----------: | :------------------------------------------------------------: | :-----------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------: | -| 01 | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦਾ ਪਰਚਾਰ | [Introduction](1-Introduction/README.md) | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੇ ਮੁਢਲੇ ਖਿਆਲ ਸਿੱਖੋ | [Lesson](1-Introduction/1-intro-to-ML/README.md) | ਮੁਹੰਮਦ | -| 02 | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦਾ ਇਤਿਹਾਸ | [Introduction](1-Introduction/README.md) | ਇਸ ਖੇਤਰ ਦੇ ਇਤਿਹਾਸ ਬਾਰੇ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰੋ | [Lesson](1-Introduction/2-history-of-ML/README.md) | ਜੇਨ ਅਤੇ ਐਮੀ | -| 03 | ਨਿਆਂ ਅਤੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ | [Introduction](1-Introduction/README.md) | ਨਿਆਂ ਨਾਲ ਸਬੰਧਤ ਮੁੱਖ ਦਾਰਸ਼ਨਿਕ ਮੁੱਦੇ ਕੀ ਹਨ ਜੋ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਮਾਡਲ ਬਣਾਉਂਦੇ ਸਮੇਂ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣੇ ਚਾਹੀਦੇ ਹਨ? | [Lesson](1-Introduction/3-fairness/README.md) | ਟੋਮੋਮੀ | -| 04 | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਲਈ ਤਕਨੀਕਾਂ | [Introduction](1-Introduction/README.md) | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਗਵੈਣਕ ਅਧਿਐਨਕਾਰ ਕਿਹੜੀਆਂ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਮਾਡਲ ਬਣਾਉਣ ਲਈ ਕਰਦੇ ਹਨ? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | ਕ੍ਰਿਸ ਅਤੇ ਜੇਨ | -| 05 | ਰਿਗ੍ਰੈਸ਼ਨ ਦਾ ਪਰਚਾਰ | [Regression](2-Regression/README.md) | ਰਿਗ੍ਰੈਸ਼ਨ ਮਾਡਲਾਂ ਲਈ Python ਅਤੇ Scikit-learn ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰੋ | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ਜੇਨ • ਐਰਿਕ ਵੰਜਾਉ | -| 06 | ਉੱਤਰੀ ਅਮਰੀਕੀ ਕਦੂਆਂ ਦੀ ਕੀਮਤਾਂ 🎃 | [Regression](2-Regression/README.md) | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਲਈ ਤਿਆਰੀ ਦੀ ਤੌਰ ਤੇ ਡਾਟਾ ਨੂੰ ਵੇਖੋ ਅਤੇ ਸਾਫ ਕਰੋ | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ਜੇਨ • ਐਰਿਕ ਵੰਜਾਉ | -| 07 | ਉੱਤਰੀ ਅਮਰੀਕੀ ਕਦੂਆਂ ਦੀ ਕੀਮਤਾਂ 🎃 | [Regression](2-Regression/README.md) | ਰੀਖਾ ਅਤੇ ਬਹੁਪਦ ਛੇਤੀ ਰਿਗ੍ਰੈਸ਼ਨ ਮਾਡਲ ਤਿਆਰ ਕਰੋ | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ਜੇਨ ਅਤੇ ਦਿਮਿਤਰੀ • ਐਰਿਕ ਵੰਜਾਉ | -| 08 | ਉੱਤਰੀ ਅਮਰੀਕੀ ਕਦੂਆਂ ਦੀ ਕੀਮਤਾਂ 🎃 | [Regression](2-Regression/README.md) | ਲੋਜਿਸਟਿਕ ਰਿਗ੍ਰੈਸ਼ਨ ਮਾਡਲ ਬਣਾਓ | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ਜੇਨ • ਐਰਿਕ ਵੰਜਾਉ | -| 09 | ਵੈੱਬ ਐਪ 🔌 | [Web App](3-Web-App/README.md) | ਆਪਣਾ ਪ੍ਰਸ਼ਿੱਖਤ ਮਾਡਲ ਵਰਤਣ ਲਈ ਵੈੱਬ ਐਪ ਬਣਾਓ | [Python](3-Web-App/1-Web-App/README.md) | ਜੇਨ | -| 10 | ਵਰਗੀਕਰਨ ਦਾ ਪਰਚਾਰ | [Classification](4-Classification/README.md) | ਆਪਣਾ ਡਾਟਾ ਸਾਫ਼, ਤਿਆਰ ਅਤੇ ਵੇਖੋ; ਵਰਗੀਕਰਨ ਨਾਲ ਪਰਚਾਰ | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ਜੇਨ ਅਤੇ ਕੈਸੀ • ਐਰਿਕ ਵੰਜਾਉ | -| 11 | ਸੁਆਦਿਸ਼ਟ ਏਸ਼ੀਅਨ ਅਤੇ ਭਾਰਤੀ ਖਾਣੇ 🍜 | [Classification](4-Classification/README.md) | ਵਰਗੀਕਰਣਕਾਰਾਂ ਦਾ ਪਰਚਾਰ | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ਜੇਨ ਅਤੇ ਕੈਸੀ • ਐਰਿਕ ਵੰਜਾਉ | -| 12 | ਸੁਆਦਿਸ਼ਟ ਏਸ਼ੀਅਨ ਅਤੇ ਭਾਰਤੀ ਖਾਣੇ 🍜 | [Classification](4-Classification/README.md) | ਹੋਰ ਵਰਗੀਕਰਣਕਾਰ | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ਜੇਨ ਅਤੇ ਕੈਸੀ • ਐਰਿਕ ਵੰਜਾਉ | -| 13 | ਸੁਆਦਿਸ਼ਟ ਏਸ਼ੀਅਨ ਅਤੇ ਭਾਰਤੀ ਖਾਣੇ 🍜 | [Classification](4-Classification/README.md) | ਆਪਣਾ ਮਾਡਲ ਵਰਤ ਕੇ ਰਿਕਮੈਂਡਰ ਵੈੱਬ ਐਪ ਬਣਾਓ | [Python](4-Classification/4-Applied/README.md) | ਜੇਨ | -| 14 | ਕਲੱਸਟਰਿੰਗ ਦਾ ਪਰਚਾਰ | [Clustering](5-Clustering/README.md) | ਆਪਣਾ ਡਾਟਾ ਸਾਫ਼, ਤਿਆਰ ਅਤੇ ਵੇਖੋ; ਕਲੱਸਟਰਿੰਗ ਨਾਲ ਪਰਚਾਰ | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ਜੇਨ • ਐਰਿਕ ਵੰਜਾਉ | -| 15 | ਨਾਇਜੀਰੀਆਈ ਸੰਗੀਤ ਟੇਸਟਸ ਦੀ ਖੋਜ 🎧 | [Clustering](5-Clustering/README.md) | K-Means ਕਲੱਸਟਰਿੰਗ ਤਰੀਕੇ ਦੀ ਖੋਜ ਕਰੋ | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ਜੇਨ • ਐਰਿਕ ਵੰਜਾਉ | -| 16 | ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰਕਿਰਿਆ ਦਾ ਪਰਚਾਰ ☕️ | [Natural language processing](6-NLP/README.md) | ਸਧਾਰਣ ਬੋਟ ਬਣਾਕੇ NLP ਦੇ ਮੁੱਢਲੇ ਸਿਧਾਂਤ ਸਿੱਖੋ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | ਸਟੀਫਨ | -| 17 | ਆਮ NLP ਕੰਮ ☕️ | [Natural language processing](6-NLP/README.md) | ਭਾਸ਼ਾ ਸੰਰਚਨਾਵਾਂ ਨਾਲ ਨਿਪਟਣ ਵੇਲੇ ਲੋੜੀਂਦੇ ਆਮ ਕੰਮਾਂ ਨੂੰ ਸਮਝ ਕੇ NLP ਗਿਆਨ ਗਹਿਰਾ ਕਰੋ | [Python](6-NLP/2-Tasks/README.md) | ਸਟੀਫਨ | -| 18 | ਅਨੁਵਾਦ ਅਤੇ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ ♥️ | [Natural language processing](6-NLP/README.md) | ਜੇਨ ਆਸਟਿਨ ਨਾਲ ਅਨੁਵਾਦ ਅਤੇ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ | [Python](6-NLP/3-Translation-Sentiment/README.md) | ਸਟੀਫਨ | -| 19 | ਯੂਰਪ ਦੇ ਰੋਮਾਂਟਿਕ ਹੋਟਲ ♥️ | [Natural language processing](6-NLP/README.md) | ਹੋਟਲ ਸਮੀਖਿਆਵਾਂ ਨਾਲ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | ਸਟੀਫਨ | -| 20 | ਯੂਰਪ ਦੇ ਰੋਮਾਂਟਿਕ ਹੋਟਲ ♥️ | [Natural language processing](6-NLP/README.md) | ਹੋਟਲ ਸਮੀਖਿਆਵਾਂ ਨਾਲ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | ਸਟੀਫਨ | -| 21 | ਸਮੇਂ ਦੀ ਲੜੀ ਦੀ ਭਵਿੱਖਬਾਣੀ ਨਾਲ ਪਰਚਾਰ | [Time series](7-TimeSeries/README.md) | ਸਮੇਂ ਦੀ ਲੜੀ ਦੀ ਭਵਿੱਖਬਾਣੀ ਨਾਲ ਪਰਚਾਰ | [Python](7-TimeSeries/1-Introduction/README.md) | ਫਰਾਂਸੈਸਕਾ | -| 22 | ⚡️ ਦੁਨੀਆ ਦੀ ਬਿਜਲੀ ਖਪਤ ⚡️ - ARIMA ਨਾਲ ਸਮੇਂ ਦੀ ਲੜੀ ਦੀ ਭਵਿੱਖਬਾਣੀ | [Time series](7-TimeSeries/README.md) | ARIMA ਨਾਲ ਸਮੇਂ ਦੀ ਲੜੀ ਦੀ ਭਵਿੱਖਬਾਣੀ | [Python](7-TimeSeries/2-ARIMA/README.md) | ਫਰਾਂਸੈਸਕਾ | -| 23 | ⚡️ ਦੁਨੀਆ ਦੀ ਬਿਜਲੀ ਖਪਤ ⚡️ - SVR ਨਾਲ ਸਮੇਂ ਦੀ ਲੜੀ ਦੀ ਭਵਿੱਖਬਾਣੀ | [Time series](7-TimeSeries/README.md) | ਸਪੋਰਟ ਵੈਕਟਰ ਰਿਗ੍ਰੈਸ਼ਨਰ ਨਾਲ ਸਮੇਂ ਦੀ ਲੜੀ ਦੀ ਭਵਿੱਖਬਾਣੀ | [Python](7-TimeSeries/3-SVR/README.md) | ਅਨੀਰਬਨ | -| 24 | ਰੀਇਨਫੋਰਸਮੈਂਟ ਲਰਨਿੰਗ ਦਾ ਪਰਚਾਰ | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning ਨਾਲ ਰੀਇਨਫੋਰਸਮੈਂਟ ਲਰਨਿੰਗ ਦਾ ਪਰਚਾਰ | [Python](8-Reinforcement/1-QLearning/README.md) | ਦਿਮਿਤਰੀ | -| 25 | ਪੀਟਰ ਨੂੰ ਭੇਡ਼ਰੇ ਤੋਂ ਬਚਾਓ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | ਰੀਇਨਫੋਰਸਮੈਂਟ ਲਰਨਿੰਗ ਜਿਮ | [Python](8-Reinforcement/2-Gym/README.md) | ਦਿਮਿਤਰੀ | -| ਬਾਅਦ-ਲੇਖ | ਰੀਅਲ-ਵਰਲਡ ML ਸਥਿਤੀਆਂ ਅਤੇ ਪ੍ਰਯੋਗ | [ML in the Wild](9-Real-World/README.md) | ਕਲਾਸਿਕ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੇ ਦਿਲਚਸਪ ਅਤੇ ਖੁਲਾਸਾ ਕਰਨ ਵਾਲੇ ਵਾਸਤਵਿਕ ਦੁਨੀਆ ਦੇ ਉਦਾਹਰਣ | [Lesson](9-Real-World/1-Applications/README.md) | ਟੀਮ | -| ਬਾਅਦ-ਲੇਖ | RAI ਡੈਸ਼ਬੋਰਡ ਨਾਲ ML ਮਾਡਲ ਡਿਬੱਗਿੰਗ | [ML in the Wild](9-Real-World/README.md) | ਜ਼ਿੰਮੇਵਾਰ AI ਡੈਸ਼ਬੋਰਡ ਕੰਪੋਨੇਟਸ ਦੀ ਵਰਤੋਂ ਨਾਲ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਵਿੱਚ ਮਾਡਲ ਡਿਬੱਗਿੰਗ | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | ਰੁਥ ਯਾਕੂਬੂ | - -> [ਇਸ ਕੋਰਸ ਲਈ ਸਾਰੇ ਵਾਧੂ ਸਰੋਤ ਸਾਡੀ Microsoft Learn ਕਲੇਕਸ਼ਨ ਵਿੱਚ ਲੱਭੋ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- [ਪੋਸਟ-ਲੇਕਚਰ ਕਵਿਜ਼](https://ff-quizzes.netlify.app/en/ml/) +> **ਭਾਸ਼ਾਵਾਂ ਬਾਰੇ ਇੱਕ ਟਿੱਪਣੀ**: ਇਹ ਸਬਕ ਮੁੱਖ ਤੌਰ 'ਤੇ ਪਾਇਥਨ ਵਿੱਚ ਲਿਖੇ ਗਏ ਹਨ, ਪਰ ਕਈ ਸਬਕ R ਵਿੱਚ ਵੀ ਉਪਲਬਧ ਹਨ। R ਸਬਕ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ, `/solution` ਫੋਲਡਰ ਵਿੱਚ ਜਾਓ ਅਤੇ R ਸਬਕਾਂ ਨੂੰ ਲੱਭੋ। ਉਹਨਾਂ ਵਿੱਚ .rmd ਫਾਇਲ ਵਰਗਾ ਐਕਸਟੇੰਸ਼ਨ ਹੁੰਦਾ ਹੈ ਜੋ **R ਮਾਰਕਡਾਊਨ** ਫਾਇਲ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਜੋ ਆਸਾਨੀ ਨਾਲ `ਕੋਡ ਚੰਕ` (R ਜਾਂ ਹੋਰ ਭਾਸ਼ਾਵਾਂ ਦਾ) ਅਤੇ ਇੱਕ `YAML ਹੈਡਰ` (ਜੋ PDF ਵਰਗੇ ਆਉਟਪੁੱਟ ਨੂੰ ਫਾਰਮੈਟ ਕਰਨ ਲਈ ਦਿਸ਼ਾ ਨਿਰਦੇਸ਼ ਕਰਦਾ ਹੈ) ਦਾ ਨਿਸ਼ਾਨ ਹੈ ਇੱਕ `ਮਾਰਕਡਾਊਨ ਦਸਤਾਵੇਜ਼` ਵਿੱਚ। ਇਸ ਪ੍ਰਕਾਰ, ਇਹ ਡਾਟਾ ਸਾਇੰਸ ਲਈ ਇੱਕ ਉਦਾਹਰਣਾਤਮਕ ਲੇਖਣ ਫਰੇਮਵਰਕ ਹੈ ਕਿਉਂਕਿ ਇਹ ਤੁਹਾਨੂੰ ਆਪਣਾ ਕੋਡ, ਉਸ ਦਾ ਆਉਟਪੁੱਟ ਅਤੇ ਆਪਣੇ ਵਿਚਾਰਾਂ ਨੂੰ ਮਾਰਕਡਾਊਨ ਵਿੱਚ ਲਿਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ, R ਮਾਰਕਡਾਊਨ ਦਸਤਾਵੇਜ਼ਾਂ ਨੂੰ PDF, HTML, ਜਾਂ Word ਵਰਗੇ ਆਉਟਪੁੱਟ ਫਾਰਮੈਟਾਂ ਵਿੱਚ ਰੈਂਡਰ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ। + +> **ਕੁਇਜ਼ ਬਾਰੇ ਇੱਕ ਟਿੱਪਣੀ**: ਸਾਰੇ ਕੁਇਜ਼ [Quiz App ਫੋਲਡਰ](../../quiz-app) ਵਿੱਚ ਹਨ, ਜਿੱਥੇ 52 ਕੁਇਜ਼ ਹਨ ਤੇ ਹਰ ਇੱਕ ਵਿੱਚ ਤਿੰਨ ਸਵਾਲ ਹਨ। ਇਹਨਾਂ ਸਬਕਾਂ ਵਿੱਚ ਲਿੰਕ ਕੀਤੇ ਗਏ ਹਨ ਪਰ ਕੁਇਜ਼ ਐਪ ਲੋਕਲੀ ਚਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ; ਡਾਇਰੈਕਸ਼ਨ ਲਈ `quiz-app` ਫੋਲਡਰ ਵਿੱਚ ਦਿੱਤਾ ਗਿਆ ਹੈ ਕਿ ਕਿਵੇਂ ਲੋਕਲੀ ਹੋਸਟ ਕੀਤਾ ਜਾਵੇ ਜਾਂ Azure 'ਤੇ ਡਿਪਲોય ਕੀਤਾ ਜਾਵੇ। + +| ਪਾਠ ਸੰਖਿਆ | ਵਿਸ਼ਾ | ਪਾਠ ਸਮੂਹ | ਸਿੱਖਣ ਦੇ ਉਦੇਸ਼ | ਲਿੰਕ ਕੀਤਾ ਪਾਠ | ਲੇਖਕ | +| :--------: | :------------------------------------------------------------: | :-------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | +| 01 | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦਾ ਪਰਚਯ | [Introduction](1-Introduction/README.md) | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੇ ਮੂਲ ਭਾਵ ਦੱਸੋ | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦਾ ਇਤਿਹਾਸ | [Introduction](1-Introduction/README.md) | ਇਸ ਖੇਤਰ ਦੇ ਇਤਿਹਾਸ ਬਾਰੇ ਜਾਣੋ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | ਨਿਆਂ ਅਤੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ | [Introduction](1-Introduction/README.md) | ਨਿਆਂ ਦੇ ਮੁੱਖ ਫ਼ਲਸਫ਼ੀ ਮੁੱਦੇ ਕੀ ਹਨ ਜੋ ਵਿਦਿਆਰਥੀਆਂ ਨੂੰ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਮਾਡਲ ਬਣਾਉਂਦੇ ਤੇ ਲਾਗੂ ਕਰਦੇ ਸਮੇਂ ਧਿਆਨ ਵਿੱਚ ਰੱਖਣੇ ਚਾਹੀਦੇ ਹਨ? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਲਈ ਤਕਨੀਕਾਂ | [Introduction](1-Introduction/README.md) | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਖੋਜਕਰਤਾ ਕਿਸ ਤਰ੍ਹਾਂ ਦੀਆਂ ਤਕਨੀਕਾਂ ਵਰਤਦੇ ਹਨ ਮਾਡਲ ਬਣਾਉਣ ਲਈ? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | ਰਿਗਰੇਸ਼ਨ ਦਾ ਪਰਚਯ | [Regression](2-Regression/README.md) | ਰਿਗਰੇਸ਼ਨ ਮਾਡਲਾਂ ਲਈ ਪਾਇਥਨ ਅਤੇ ਸਕਿਕਿਟ-ਲਰਨ ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰੋ | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | ਉੱਤਰ ਅਮਰੀਕੀ ਕੁੱਲھو ਦਾ ਮੁਲ (Pumpkin Prices) 🎃 | [Regression](2-Regression/README.md) | ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੀ ਤਿਆਰੀ ਲਈ ਡਾਟਾ ਨੂੰ ਵਿਜ਼ੁਅਲਾਈਜ਼ ਅਤੇ ਸਾਫ ਕਰੋ | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | ਉੱਤਰ ਅਮਰੀਕੀ ਕੁੱਲਹੁ ਦੇ ਮੁਲ 🎃 | [Regression](2-Regression/README.md) | ਸੀਧੀ ਅਤੇ ਘਾਤਕ ਰਿਗਰੇਸ਼ਨ ਮਾਡਲ ਬਣਾਓ | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | ਉੱਤਰ ਅਮਰੀਕੀ ਕੁੱਲਹੁ ਦੇ ਮੁਲ 🎃 | [Regression](2-Regression/README.md) | ਇਕ ਲਾਜਿਸਟਿਕ ਰਿਗਰੇਸ਼ਨ ਮਾਡਲ ਬਣਾਓ | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | ਇੱਕ ਵੈੱਬ ਐਪ 🔌 | [Web App](3-Web-App/README.md) | ਆਪਣਾ ਟ੍ਰੇਨ ਕੀਤਾ ਮਾਡਲ ਵਰਤਣ ਲਈ ਵੈੱਬ ਐਪ ਬਣਾਓ | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | ਵਰਗੀਕਰਨ ਦਾ ਪਰਚਯ | [Classification](4-Classification/README.md) | ਆਪਣੇ ਡਾਟੇ ਨੂੰ ਸਾਫ, ਤਿਆਰ ਅਤੇ ਵਿਜ਼ੁਅਲਾਈਜ਼ ਕਰੋ; ਵਰਗੀਕਰਨ ਦਾ ਪਰਚਯ | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | ਸੁਆਦੀ ਅਸ਼ੀਅਈ ਅਤੇ ਭਾਰਤੀ ਰਸੋਈਆਂ 🍜 | [Classification](4-Classification/README.md) | ਵਰਗੀਕਰਨ ਕਰਨ ਵਾਲਿਆਂ ਦਾ ਪਰਚਯ | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | ਸੁਆਦੀ ਅਸ਼ੀਅਈ ਅਤੇ ਭਾਰਤੀ ਰਸੋਈਆਂ 🍜 | [Classification](4-Classification/README.md) | ਹੋਰ ਵਰਗੀਕਰਨ ਕਰਨ ਵਾਲੇ | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | ਸੁਆਦੀ ਅਸ਼ੀਅਈ ਅਤੇ ਭਾਰਤੀ ਰਸੋਈਆਂ 🍜 | [Classification](4-Classification/README.md) | ਆਪਣਾ ਮਾਡਲ ਵਰਤ ਕੇ ਸਿਫ਼ਾਰਸ਼ਕਾਰ ਵੈੱਬ ਐਪ ਬਣਾਓ | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | ਕਲੱਸਟਰਿੰਗ ਦਾ ਪਰਚਯ | [Clustering](5-Clustering/README.md) | ਆਪਣੇ ਡਾਟੇ ਨੂੰ ਸਾਫ, ਤਿਆਰ ਅਤੇ ਵਿਜ਼ੁਅਲਾਈਜ਼ ਕਰੋ; ਕਲੱਸਟਰਿੰਗ ਦਾ ਪਰਚਯ | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | ਨਾਈਜੀਰੀਆਈ ਸੰਗੀਤਕ ਸੋਚਾਂ ਦੀ ਪੜਚੋਲ 🎧 | [Clustering](5-Clustering/README.md) | K-ਮੀਨਜ਼ ਕਲੱਸਟਰਿੰਗ ਵਿਧੀ ਦੀ ਪੜਚੋਲ ਕਰੋ | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | ਕੁਦਰਤੀ ਭਾਸ਼ਾ ਪ੍ਰੋਸੈਸਿੰਗ ਦਾ ਪਰਚਯ ☕️ | [Natural language processing](6-NLP/README.md) | ਸਧਾਰਨ ਬੋਟ ਬਣਾਕੇ NLP ਦੇ ਮੂਲ ਸਿਧਾਂਤ ਸਿੱਖੋ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | ਆਮ NLP ਕੰਮ ☕️ | [Natural language processing](6-NLP/README.md) | ਭਾਸ਼ਾਈ ਸੰਰਚਨਾਵਾਂ ਨਾਲ ਨਿਪਟਣ ਸਮੇਂ ਲੋੜੀਂਦੇ ਆਮ ਕੰਮਾਂ ਨੂੰ ਸਮਝ ਕੇ NLP ਗਿਆਨ ਨੂੰ ਮਜ਼ਬੂਤ ਕਰੋ | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | ਅਨੁਵਾਦ ਅਤੇ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ ♥️ | [Natural language processing](6-NLP/README.md) | ਜੇਨ ਆਸਟਿਨ ਦੇ ਨਾਲ ਅਨੁਵਾਦ ਅਤੇ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | ਯੂਰਪ ਦੇ ਰੋਮਾਂਟਿਕ ਹੋਟਲ ♥️ | [Natural language processing](6-NLP/README.md) | ਹੋਟਲ ਸਮੀਖਿਆਵਾਂ ਨਾਲ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | ਯੂਰਪ ਦੇ ਰੋਮਾਂਟਿਕ ਹੋਟਲ ♥️ | [Natural language processing](6-NLP/README.md) | ਹੋਟਲ ਸਮੀਖਿਆਵਾਂ ਨਾਲ ਭਾਵਨਾ ਵਿਸ਼ਲੇਸ਼ਣ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | ਸਮਾਂ ਕ੍ਰਮ ਅਨੁਮਾਨ ਦਾ ਪਰਚਯ | [Time series](7-TimeSeries/README.md) | ਸਮਾਂ ਕ੍ਰਮ ਅਨੁਮਾਨ ਦਾ ਪਰਚਯ | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ ਦੁਨੀਆ ਦੀ ਬਿਜਲੀ ਉਪਭੋਗਤਾ ⚡️ - ARIMA ਨਾਲ ਸਮਾਂ ਕ੍ਰਮ ਅਨੁਮਾਨ | [Time series](7-TimeSeries/README.md) | ARIMA ਨਾਲ ਸਮਾਂ ਕ੍ਰਮ ਅਨੁਮਾਨ | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ ਦੁਨੀਆ ਦੀ ਬਿਜਲੀ ਉਪਭੋਗਤਾ ⚡️ - SVR ਨਾਲ ਸਮਾਂ ਕ੍ਰਮ ਅਨੁਮਾਨ | [Time series](7-TimeSeries/README.md) | Support Vector Regressor ਨਾਲ ਸਮਾਂ ਕ੍ਰਮ ਅਨੁਮਾਨ | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | ਰੀਇਨਫੋਰਸਮੈਂਟ ਲਰਨਿੰਗ ਦਾ ਪਰਚਯ | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning ਨਾਲ ਰੀਇਨਫੋਰਸਮੈਂਟ ਲਰਨਿੰਗ ਦਾ ਪਰਚਯ | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | ਪੀਟਰ ਨੂੰ ਭੇੜੀ ਤੋਂ ਬਚਾਓ! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | ਰੀਇਨਫੋਰਸਮੈਂਟ ਲਰਨਿੰਗ ਲਈ ਜਿਮ | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| ਪੋਸਟਸਕ੍ਰਿਪਟ | ਅਸਲੀ ਸੰਸਾਰ ਦੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦ੍ਰਿਸ਼ | [ML in the Wild](9-Real-World/README.md) | ਪਾਰੰਪਰਿਕ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਦੀਆਂ ਦਿਲਚਸਪ ਅਤੇ ਪ੍ਰਕਾਸ਼ਮਾਨ ਅਸਲੀ ਦੁਨੀਆ ਦੀਆਂ ਐਪਲੀਕੇਸ਼ਨਾਂ | [Lesson](9-Real-World/1-Applications/README.md) | ਟੀਮ | +| ਪੋਸਟਸਕ੍ਰਿਪਟ | Machine Learning ਵਿੱਚ ਮਾਡਲ ਡਿਬੱਗਿੰਗ RAI ਡੈਸ਼ਬੋਰਡ ਨਾਲ | [ML in the Wild](9-Real-World/README.md) | ਜ਼ਿੰਮੇਵਾਰ AI ਡੈਸ਼ਬੋਰਡ ਕੰਪੋਨੈਂਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਮਸ਼ੀਨ ਲਰਨਿੰਗ ਵਿੱਚ ਮਾਡਲ ਡਿਬੱਗਿੰਗ | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [ਇਸ ਕੋਰਸ ਲਈ ਸਾਰੇ ਵਾਧੂ ਸਾਧਨ ਸਾਡੇ Microsoft Learn ਕਲੇਕਸ਼ਨ ਵਿੱਚ ਲੱਭੋ](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## ਆਫਲਾਈਨ ਐਕਸੈੱਸ -ਤੁਸੀਂ [Docsify](https://docsify.js.org/#/) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਸ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਆਫਲਾਈਨ ਚਲਾ ਸਕਦੇ ਹੋ। ਇਸ ਰੇਪੋ ਨੂੰ ਫੋਰਕ ਕਰੋ, [Docsify ਇੰਸਟਾਲ ਕਰੋ](https://docsify.js.org/#/quickstart) ਆਪਣੇ ਸਥਾਨਕ ਮਸ਼ੀਨ 'ਤੇ, ਅਤੇ ਫਿਰ ਇਸ ਰੇਪੋ ਦੇ ਰੂਟ ਫੋਲਡਰ ਵਿੱਚ ਟਾਈਪ ਕਰੋ `docsify serve`। ਵੈੱਬਸਾਈਟ ਤੁਹਾਡੇ ਲੋ컬ਹੋਸਟ `localhost:3000` ਤੇ ਪੋਰਟ 3000 'ਤੇ ਸਰਵ ਕੀਤੀ ਜਾਵੇਗੀ। +ਤੁਸੀਂ ਇਹ ਦਸਤਾਵੇਜ਼ ਆਫਲਾਈਨ [Docsify](https://docsify.js.org/#/) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਚਲਾ ਸਕਦੇ ਹੋ। ਇਸ ਰੇਪੋ ਨੂੰ ਫੋਰਕ ਕਰੋ, ਆਪਣੇ ਲੋਕਲ ਮਸ਼ੀਨ 'ਤੇ [Docsify ਇੰਸਟਾਲ ਕਰੋ](https://docsify.js.org/#/quickstart), ਅਤੇ ਇਸ ਰੇਪੋ ਦੇ ਰੂਟ ਫੋਲਡਰ ਵਿੱਚ `docsify serve` ਟਾਈਪ ਕਰੋ। ਵੈੱਬਸਾਈਟ ਤੁਹਾਡੇ ਲੋਕਲਹੋਸਟ :3000 ਪੋਰਟ 'ਤੇ ਸੇਵਾ ਕੀਤੀ ਜਾਵੇਗੀ: `localhost:3000`। ## PDFs -ਕਰਿਕੁਲਮ ਦੀ PDF ਫਾਈਲ ਜਿੱਥੇ ਲਿੰਕਹੀਤ ਹੈ ਉਹ [ਇੱਥੇ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) ਮਿਲੇਗੀ। +ਕਰੀਕੁਲਮ ਦਾ ਇੱਕ PDF ਲਿੰਕ ਦੇ ਨਾਲ [ਇੱਥੇ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) ਲੱਭੋ। + -## 🎒 ਹੋਰ ਕੋਰਸز +## 🎒 ਹੋਰ ਕੋਰਸਜ਼ -ਸਾਡੀ ਟੀਮ ਹੋਰ ਕੋਰਸਜ਼ ਵੀ ਬਣਾਉਂਦੀ ਹੈ! ਜਾਂਚ ਕਰੋ: +ਸਾਡੀ ਟੀਮ ਹੋਰ ਕੋਰਸਜ਼ ਬਣਾਉਂਦੀ ਹੈ! ਦੇਖੋ: ### LangChain @@ -188,49 +190,49 @@ Microsoft ਦੇ ਕਲਾਊਡ ਅਡਵੋਕੇਟ ਖੁਸ਼ੀ ਨਾਲ --- -### ਜੇਨੇਰੇਟਿਵ AI ਦਿਵਾਰ -[![ਬਿਗਿਨਰਾਂ ਲਈ ਜੈਨੇਰੇਟਿਵ ਏਆਈ](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![ਜੈਨੇਰੇਟਿਵ ਏਆਈ (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![ਜੈਨੇਰੇਟਿਵ ਏਆਈ (ਜਾਵਾ)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![ਜੈਨੇਰੇਟਿਵ ਏਆਈ (ਜਾਵਾਸਕ੍ਰਿਪਟ)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### ਜਨਰੇਟਿਵ AI ਸੀਰੀਜ਼ +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### ਕੋਰ ਸਿੱਖਿਆ -[![ਬਿਗਿਨਰਾਂ ਲਈ ਐਮਐੱਲ](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![ਬਿਗਿਨਰਾਂ ਲਈ ਡਾਟਾ ਸਾਇੰਸ](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![ਬਿਗਿਨਰਾਂ ਲਈ ਏਆਈ](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![ਬਿਗਿਨਰਾਂ ਲਈ ਸਾਈਬਰਸੁਰੱਖਿਆ](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![ਬਿਗਿਨਰਾਂ ਲਈ ਵੈਬ ਵਿਕਾਸ](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![ਬਿਗਿਨਰਾਂ ਲਈ ਆਈਓਟੀ](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![ਬਿਗਿਨਰਾਂ ਲਈ ਐਕਸਆਰ ਵਿਕਾਸ](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### ਮੁੱਖ ਸਿੱਖਿਆ +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### ਕੋਪਾਇਲਟ ਸਿਰੀਜ਼ -[![ਏਆਈ ਜੋੜੇ ਪ੍ਰੋਗਰਾਮਿੰਗ ਲਈ ਕੋਪਾਇਲਟ](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET ਲਈ ਕੋਪਾਇਲਟ](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![ਕੋਪਾਇਲਟ ਐਡਵੈਂਚਰ](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### ਕੋਪਾਇਲਟ ਸੀਰੀਜ਼ +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## ਮਦਦ ਪ੍ਰਾਪਤ ਕਰਨਾ -ਜੇ ਤੁਸੀਂ ਫਸ ਜਾਂਦੇ ਹੋ ਜਾਂ ਏਆਈ ਐਪਸ ਬਣਾਉਣ ਬਾਰੇ ਕੋਈ ਸਵਾਲ ਹੋਵੇ। ਸਾਥੀ ਸਿੱਖਣ ਵਾਲੇ ਅਤੇ ਅਨੁਭਵੀ ਡਿਵੈਲਪਰਾਂ ਨਾਲ MCP ਬਾਰੇ ਚਰਚਾ ਵਿੱਚ ਸ਼ਾਮਿਲ ਹੋਵੋ। ਇਹ ਇੱਕ ਸਹਾਇਕ ਸਮੁਦਾਇ ਹੈ ਜਿੱਥੇ ਸਵਾਲਾਂ ਦਾ ਸਵਾਗਤ ਹੈ ਅਤੇ ਗਿਆਨ ਖੁੱਲ੍ਹ ਕੇ ਸਾਂਝਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। +ਜੇ ਤੁਹਾਨੂੰ ਰੁਕਾਵਟ ਆਵੇ ਜਾਂ AI ਐਪ ਬਣਾਉਣ ਬਾਰੇ ਕੋਈ ਸਵਾਲ ਹੋਵੇ। MCP ਬਾਰੇ ਚਰਚਾ ਕਰਨ ਲਈ ਹੋਰ ਸਿੱਖਣ ਵਾਲਿਆਂ ਅਤੇ ਅਨੁਭਵੀ ਵਿਕਾਸਕਾਰਾਂ ਨਾਲ ਜੁੜੋ। ਇਹ ਇੱਕ ਸਹਿਯੋਗੀ ਕਮਿਊਨਿਟੀ ਹੈ ਜਿੱਥੇ ਸਵਾਲਾਂ ਦਾ ਸਵਾਗਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਅਤੇ ਗਿਆਨ ਖੁੱਲ੍ਹ ਕੇ ਸਾਂਝਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਉਤਪਾਦ ਫੀਡਬੈਕ ਜਾਂ ਗਲਤੀਆਂ ਹਨ ਜਦੋਂ ਤੁਸੀਂ ਬਣਾਉਂਦੇ ਹੋ ਤਾਂ: +ਜੇ ਤੁਹਾਡੇ ਕੋਲ ਉਤਪਾਦੀ ਪ੍ਰਤੀਕਿਰਿਆ ਜਾਂ ਤਰਤੀਬ ਵਿੱਚ ਗਲਤੀਆਂ ਹਨ ਤਾਂ ਇੱਥੇ ਜਾਓ: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## ਵਾਧੂ ਸਿੱਖਣ ਦੇ ਸੁਝਾਅ +## ਵਾਧੂ ਸਿੱਖਿਆ ਸੁਝਾਅ -- ਹਰ ਪਾਠ ਤੋਂ ਬਾਅਦ ਨੋਟਬੁੱਕਸ ਦੀ ਸਮੀਖਿਆ ਕਰੋ better ਬਿਹਤਰ ਸਮਝ ਲਈ। -- ਖੁਦ ਹੀ ਅਲਗੋਰਿਦਮ ਲਾਗੂ ਕਰਨ ਦਾ ਅਭਿਆਸ ਕਰੋ। -- ਸਿੱਖੇ ਹੋਏ ਅਸੂਲਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਸਲੀ ਦੁਨੀਆ ਦੇ ਡੇਟਾ ਸੈਟ ਖੋਜੋ। +- ਹਰੇਕ ਪਾਠ ਤੋਂ ਬਾਅਦ ਨੋਟਬੁਕ ਨੂੰ ਦੁਬਾਰਾ ਵੇਖੋ ਤਾਂ ਜੋ ਸਮਝ ਵਧੇਰੇ ਹੋਵੇ। +- ਆਪਣੇ ਆਪ الگورتھਮ ਲਾਗੂ ਕਰਨ ਦੀ ਪ੍ਰੈਕਟਿਸ ਕਰੋ। +- ਸਿੱਖੇ ਗਏ ਧਾਰਨਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਸਲੀ ਜਹਾਨ ਦੇ ਡੇਟਾਸੈਟ ਦੀ ਖੋਜ ਕਰੋ। --- -**ਅਸਵੀਕਾਰੋ ਹੈ**: -ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤਾ ਲਈ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਗੱਲ ਦਾ ਧਿਆਨ ਰੱਖੋ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸਥਿਰਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੇ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਹੀ ਪ੍ਰਮਾਣਿਕ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਅਹਿਮ ਜਾਣਕਾਰੀ ਲਈ ਵਿਸ਼ੇਸ਼ਗਿਆਨ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਉਤਪੰਨ ਹੋਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। +**ਅਸਪਸ਼ਟੀਕਰਨ**: +ਇਸ ਦਸਤਾਵੇਜ਼ ਦਾ ਅਨੁਵਾਦ ਏਆਈ ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀਤ ਵੱਲ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੂਚਿਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਆਪਣੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਥਾਰਟੀਟੇਟਿਵ ਸੋਰਸ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਵਿਸ਼ੇਸ਼ਜ્ઞ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਉਪਜਣ ਵਾਲੀਆਂ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀਆਂ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆਵਾਂ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ। \ No newline at end of file diff --git a/translations/pcm/.co-op-translator.json b/translations/pcm/.co-op-translator.json index 565175bc0..318597700 100644 --- a/translations/pcm/.co-op-translator.json +++ b/translations/pcm/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "pcm" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:43:40+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:43:41+00:00", "source_file": "README.md", "language_code": "pcm" }, diff --git a/translations/pcm/README.md b/translations/pcm/README.md index f82b73e8b..e067cd3d4 100644 --- a/translations/pcm/README.md +++ b/translations/pcm/README.md @@ -1,23 +1,13 @@ -[![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/) - ### 🌐 Multi-Language Support #### Supported via GitHub Action (Automated & Always Up-to-Date) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](./README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](./README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Prefer to Clone Locally?** +> **You wan Clone am Tinside?** > -> Dis repository get 50+ language translations wey dey increase how big e be to download. To clone witout di translations, use sparse checkout: +> Dis repo get 50+ language translations wey dey make the download size big. To clone without di translations, use sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +23,64 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Dis go give you everything wey you need to complete di course fast well-well. +> Dis one go give you everything you need to complete di course fast. + #### Join Our Community [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -We get Discord learn wit AI series wey dey go, learn more and join us fo [Learn with AI Series](https://aka.ms/learnwithai/discord) from 18 - 30 September, 2025. You go get beta tips and tricks for how to use GitHub Copilot for Data Science. +We get Discord learn with AI series wey dey go on, sabi more and join us for [Learn with AI Series](https://aka.ms/learnwithai/discord) from 18 - 30 September, 2025. You go see tips and tricks for how to use GitHub Copilot for Data Science. ![Learn with AI series](../../translated_images/pcm/3.9b58fd8d6c373c20.webp) -# Machine Learning for Beginners - A Curriculum +# Machine Learning for Beginners - Curriculum -> 🌍 Travel round di world as we dey explore Machine Learning with world cultures 🌍 +> 🌍 Travel round di world as we dey explore Machine Learning through world cultures 🌍 -Cloud Advocates for Microsoft happy to offer 12-week, 26-lesson curriculum wey dey all about **Machine Learning**. For dis curriculum, you go learn wetin dem dey sometimes call **classic machine learning**, mainly using Scikit-learn as library, no go deep learning wey dey inside our [AI for Beginners' curriculum](https://aka.ms/ai4beginners). You fit pair dis lessons wit our ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) too! +Cloud Advocates for Microsoft happy to offer 12-week, 26-lesson curriculum all about **Machine Learning**. For dis curriculum, you go learn wetin dem dey call **classic machine learning**, wey go use Scikit-learn as main library and no go dey do deep learning, wey we cover for our [AI for Beginners' curriculum](https://aka.ms/ai4beginners). Join these lessons with our ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners), together too! -Travel wit us round di world as we apply these classic techniques to data from many different places for di world. Every lesson get pre- and post-lesson quizzes, written instructions to complete di lesson, solution, assignment, and more. Our project-based method make you learn while you dey build, na beta way to make new skills stick. +Travel with us round the world as we take apply these classic ways to data from plenty places for world. Every lesson get pre- and post-lesson quizzes, written instructions to finish the lesson, solution, assignment, and more. Our project-based way of teaching go make you learn while you dey build, na how new skills dem dey stick well. **✍️ Big thanks to our authors** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu and Amy Boyd -**🎨 Thanks to our illustrators** Tomomi Imura, Dasani Madipalli, and Jen Looper +**🎨 Thanks too to our illustrators** Tomomi Imura, Dasani Madipalli, and Jen Looper **🙏 Special thanks 🙏 to our Microsoft Student Ambassador authors, reviewers, and content contributors**, especially Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, and Snigdha Agarwal -**🤩 Extra thanks to Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, and Vidushi Gupta for our R lessons!** +**🤩 Extra big thanks to Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, and Vidushi Gupta for our R lessons!** -# Getting Started +# How to Start Follow these steps: -1. **Fork the Repository**: Click di "Fork" button for top-right corner of dis page. +1. **Fork the Repository**: Click di "Fork" button for di top-right corner of dis page. 2. **Clone the Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [find all additional resources for this course inside our Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [find all extra resources for dis course inside our Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Need help?** Check our [Troubleshooting Guide](TROUBLESHOOTING.md) for solutions to common problems with installation, setup, and running lessons. +> 🔧 **You need help?** Look our [Troubleshooting Guide](TROUBLESHOOTING.md) for solution to common wahala like installation, setup, and how to run lessons. -**[Students](https://aka.ms/student-page)**, to use dis curriculum, fork di whole repo go your own GitHub account and complete di exercises on your own or wit group: +**[Students](https://aka.ms/student-page)**, to use dis curriculum, fork the whole repo to your own GitHub account and finish the exercises by yourself or with group: -- Start wit pre-lecture quiz. -- Read di lecture and do di activities, stop and think for each knowledge check. -- Try build di projects by understanding di lessons instead of just running di solution code; however di code dey inside `/solution` folder for each project-based lesson. -- Do post-lecture quiz. -- Complete di challenge. -- Complete di assignment. -- After you finish one lesson group, visit di [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) and "learn out loud" by filling di correct PAT rubric. PAT na Progress Assessment Tool wey be rubric wey you fit fill to deepen your learning. You fit also react to other people PATs so we fit learn together. +- Start with pre-lecture quiz. +- Read the lecture and do the activities, stop sometimes to think for every knowledge check. +- Try create the projects by understanding the lessons instead of just running the solution code; but the code dey for `/solution` folders inside every project-based lesson. +- Take the post-lecture quiz. +- Finish the challenge. +- Do the assignment. +- After you finish one lesson group, visit the [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) and "learn out loud" by filling di right PAT rubric. 'PAT' na Progress Assessment Tool wey be like rubric wey you dey fill to improve your learning. You fit also react other PATs so we go learn together. -> For more study, we recommend following these [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules and learning paths. +> For more study, we recommend say you follow these [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules and learning paths. -**Teachers**, we don [include some suggestions](for-teachers.md) for how to use dis curriculum. +**Teachers**, we don [add some suggestions](for-teachers.md) on how to use dis curriculum. --- ## Video walkthroughs -Some lessons dey available as short video form. You fit find all dem for inside di lessons, or for [ML for Beginners playlist on the Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) by clicking di picture below. +Some lessons get short form video versions. You fit find all these for inside lessons, or for the [ML for Beginners playlist for Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) by clicking di picture below. [![ML for beginners banner](../../translated_images/pcm/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -101,79 +92,79 @@ Some lessons dey available as short video form. You fit find all dem for inside **Gif by** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Click di picture above for video about di project and di people wey create am! +> 🎥 Click di picture for video about di project and di people wey create am! --- ## Pedagogy -We choose two pedagogy principles as we dey build dis curriculum: make e be hands-on **project-based** and make e get **many quizzes**. Plus, dis curriculum get one common **theme** to make am get connection. +We choose two pedagogy principles when we dey build dis curriculum: di first na to make am hands-on **project-based** and di second na to include **many quizzes**. Plus, dis curriculum get one **common theme** to give am better cohesion. -By making sure say di content dey relate to projects, di process dey more interesting for students and e go help them remember things well. Also, low-stakes quiz before class dey set the mindset of di student for how to learn di topic, while another quiz after class dey make dem store di knowledge more. Dis curriculum na flexible and fun one, you fit take all or part. Di projects start small and go get harder by di time 12 weeks finish. Dis curriculum get one postscript on real-world uses of ML, wey fit be extra credit or starting point for discussion. +By making sure say content dey match with projects, e go make students dey more interested and dem go remember concepts well well. Also, low-stakes quiz before class dey set the mindset of student to learn better, while another quiz after class go make dem remember better. Dis curriculum designed to be flexible and fun and you fit take am full or part. Di projects begin small and go big and complex by end of 12-week cycle. Dis curriculum still get small last part about real-world Machine Learning usage, wey fit be extra credit or topic for discussion. -> Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), and [Troubleshooting](TROUBLESHOOTING.md) guidelines. We dey welcome your constructive feedback! +> Find our [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), and [Troubleshooting](TROUBLESHOOTING.md) guidelines. We dey always happy for your constructive feedback! -## Each lesson get +## Each lesson include - optional sketchnote -- optional supplemental video +- optional extra video - video walkthrough (some lessons only) - [pre-lecture warmup quiz](https://ff-quizzes.netlify.app/en/ml/) - written lesson -- for project-based lessons, step-by-step guides on how to build the project +- for project-based lessons, step-by-step guide on how to build the project - knowledge checks -- challenge -- supplemental reading +- a challenge +- extra reading - assignment - [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) +> **Wan note about languages**: Dem sabi write dis lessons mostly for Python, but plenty dey for R too. If you want finish wan R lesson, waka go the `/solution` folder make you find R lessons. Dem get .rmd extension wey mean **R Markdown** file wey fit be define as plenti `code chunks` (for R or oda languages) and wan `YAML header` (wey dey show how to make output dem like PDF) for `Markdown document`. Na so e be, e good for authoring framework for data science well well cos e dey allow you join your code, di output, and your thoughts by writing dem down for Markdown. More so, R Markdown documents fit turn to output formats like PDF, HTML, or Word. -> **One note about languages**: These lessons mainly written for Python, but many dey also for R. To finish R lesson, go di `/solution` folder and find di R lessons. Dem get .rmd extension wey mean **R Markdown** file wey fit be described as mixing `code chunks` (of R or other languages) and `YAML header` (wey dey guide how to format outputs like PDF) inside `Markdown document`. Like dis, e serve as good authoring setup for data science because e let you put together your code, output, and your thoughts by writing them down in Markdown. Also, R Markdown documents fit be rendered into output formats like PDF, HTML, or Word. -> **Note about quizzes**: All quizzes dem de for inside [Quiz App folder](../../quiz-app), get total 52 quizzes wey each get three questions. Dem link am for inside lesson dem but quiz app fit run local; just follow the instruction wey dey for `quiz-app` folder to run am local or make e go Azure. +> **Wan note about quizzes**: All di quizzes dey for [Quiz App folder](../../quiz-app), total na 52 quizzes with three questions each. Dem link am inside di lessons but di quiz app fit run for your local machine; follow di instruction for di `quiz-app` folder to run am for your side or use Azure make e deploy. | Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | | :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Introduction to machine learning | [Introduction](1-Introduction/README.md) | Learn the basic concepts wey dey 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 wey dey under this field | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Fairness and machine learning | [Introduction](1-Introduction/README.md) | Wetin be the important philosophical wahala about fairness wey pikin dem for learn when dem dey build and use ML models? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniques for machine learning | [Introduction](1-Introduction/README.md) | Wetin kind techniques ML researchers dey 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) | Start to learn Python and Scikit-learn for regression models | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data make e ready for ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build linear and polynomial regression models | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build logistic regression model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | A Web App 🔌 | [Web App](3-Web-App/README.md) | Build web app to use your trained model | [Python](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 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Introduction to classifiers | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | More classifiers | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Build recommender web app with your model | [Python](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 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Explore K-Means clustering method | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introduction to natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Learn the basics about NLP by building simple bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Common NLP Tasks ☕️ | [Natural language processing](6-NLP/README.md) | Increase your NLP knowledge by understanding common tasks wey you need when you dey handle language structures | [Python](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 | [Python](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 | [Python](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 | [Python](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 | [Python](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 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ World Power Usage ⚡️ - time series forecasting with SVR | [Time series](7-TimeSeries/README.md) | Time series forecasting with Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introduction to reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](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 real real real-world applications of classical ML | [Lesson](9-Real-World/1-Applications/README.md) | Team | -| Postscript | Model Debugging in ML using RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Model Debugging in Machine Learning using Responsible AI dashboard components | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [find all additional resources for this course for inside our Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +| 01 | Introduction to machine learning | [Introduction](1-Introduction/README.md) | Learn di basic tins wey machine learning get behind am | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | The History of machine learning | [Introduction](1-Introduction/README.md) | Learn di history wey dey for dis field | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Fairness and machine learning | [Introduction](1-Introduction/README.md) | Wetin be di important philosophy tins about fairness wey students suppose think about wen dem dey build and use ML models? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniques for machine learning | [Introduction](1-Introduction/README.md) | Wetin techniques dem ML researchers dey 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) | Start wit Python and Scikit-learn for regression models | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Visualize and clean data make e ready for ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build linear and polynomial regression models | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | North American pumpkin prices 🎃 | [Regression](2-Regression/README.md) | Build one logistic regression model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | A Web App 🔌 | [Web App](3-Web-App/README.md) | Build web app to use your trained model | [Python](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 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Introduction to classifiers | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | More classifiers | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | Delicious Asian and Indian cuisines 🍜 | [Classification](4-Classification/README.md) | Build recommender web app with your model | [Python](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 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Exploring Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Explore di K-Means clustering method | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introduction to natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Learn di basics about NLP by building simple bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Common NLP Tasks ☕️ | [Natural language processing](6-NLP/README.md) | Make your NLP knowledge strong by understanding common tasks wey dey when you dey work with language structures | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Translation and sentiment analysis ♥️ | [Natural language processing](6-NLP/README.md) | Translation and sentiment analysis wit Jane Austen | [Python](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 | [Python](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 | [Python](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 | [Python](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 wit ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ World Power Usage ⚡️ - time series forecasting with SVR | [Time series](7-TimeSeries/README.md) | Time series forecasting wit Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introduction to reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introduction to reinforcement learning with Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Help Peter avoid the wolf! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](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 | +| Postscript | Model Debugging in ML using RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Model Debugging in Machine Learning wit Responsible AI dashboard components | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [find all additional resources for this course in our Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offline access -You fit run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork this repo, [install Docsify](https://docsify.js.org/#/quickstart) for your local machine, then for the root folder of this repo, type `docsify serve`. The website go de serve for port 3000 for your localhost: `localhost:3000`. +You fit run this documentation offline by using [Docsify](https://docsify.js.org/#/). Fork dis repo, [install Docsify](https://docsify.js.org/#/quickstart) for your machine, then for di root folder of dis repo, type `docsify serve`. Di website go run for port 3000 for your localhost: `localhost:3000`. ## PDFs -Find pdf of the curriculum with links [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Find pdf of di curriculum wit links [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Other Courses -Our team dey produce other courses! Check am out: +Our team dey produce oda courses! Check am out: ### LangChain @@ -217,22 +208,22 @@ Our team dey produce other courses! Check am out: ## Getting Help -If you get stuck or get any question about how you go build AI apps. Join other learners and beta developers for discussions about MCP. Na supportive community wey questions dey welcome and knowledge dey share freely. +If you get stuck or get any question about how to build AI apps. Join other learners and developers wey sabi for discussions about MCP. Na community wey dey help, so questions dey welcome and knowledge dey share freely. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -If you get product feedback or errors while you dey build, make you visit: +If you get product feedback or errors while you dey build, abeg check: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Additional Learning Tips -- Check your notebooks after every lesson to understand well well. -- Try dey implement algorithms by yourself. -- Explore real-world datasets using the concepts wey you don learn. +- Make you dey review notebooks after each lesson to understand better. +- Try practice to implement algorithms by yourself. +- Check real-world datasets using wetin you don learn. --- **Disclaimer**: -Dis document dem don use AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator) translate am. Even though we dey try make everything correct, abeg sabi say automatic translation fit get some errors or wahala. Di original document wey dem write for di proper language na di correct one to trust. If na serious matter, e better make human expert translate am. We no go responsible if person misunderstand or interpret am wrong because of this translation. +Dis document don translate wit AI translation service [Co-op Translator](https://github.com/Azure/co-op-translator). Even tho we dey try make am correct, abeg sabi say automatic translations fit get errors or mistakes. Di original document for dia own language na di correct source. For important info, e better make professional human translation do am. We no go responsible for any wrong understanding or misinterpretation wey fit come from dis translation. \ No newline at end of file diff --git a/translations/pl/.co-op-translator.json b/translations/pl/.co-op-translator.json index 30153549c..66d046f25 100644 --- a/translations/pl/.co-op-translator.json +++ b/translations/pl/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "pl" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:38:28+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:43:43+00:00", "source_file": "README.md", "language_code": "pl" }, diff --git a/translations/pl/README.md b/translations/pl/README.md index b6be11902..ec1b17082 100644 --- a/translations/pl/README.md +++ b/translations/pl/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Obsługa wielu języków +### 🌐 Wielojęzyczne wsparcie -#### Wspierane przez GitHub Action (Automatyczne i Zawsze Aktualne) +#### Wsparcie przez GitHub Action (Automatyczne i Zawsze Aktualne) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](./README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](./README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Wolisz Sklonować Lokalnie?** +> **Wolisz klonować lokalnie?** > -> To repozytorium zawiera tłumaczenia na ponad 50 języków, co znacznie zwiększa rozmiar pobierania. Aby sklonować bez tłumaczeń, użyj sparse checkout: +> To repozytorium zawiera tłumaczenia na ponad 50 języków, co znacząco zwiększa rozmiar pobierania. Aby sklonować bez tłumaczeń, użyj sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,147 +33,145 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Pozwoli Ci to na pobranie wszystkiego, co potrzebne do ukończenia kursu, z dużo szybszym pobieraniem. +> To zapewnia wszystko, czego potrzebujesz, aby ukończyć kurs z dużo szybszym pobieraniem. #### Dołącz do naszej społeczności [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Prowadzimy serię „Learn with AI” na Discordzie, dowiedz się więcej i dołącz do nas na [Learn with AI Series](https://aka.ms/learnwithai/discord) w dniach 18 - 30 września 2025. Otrzymasz wskazówki i triki dotyczące korzystania z GitHub Copilot dla Data Science. +Prowadzimy serię Discord „Ucz się z AI”, dowiedz się więcej i dołącz do nas na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18 do 30 września 2025. Otrzymasz wskazówki i triki dotyczące korzystania z GitHub Copilot dla Data Science. -![Seria Learn with AI](../../translated_images/pl/3.9b58fd8d6c373c20.webp) +![Learn with AI series](../../translated_images/pl/3.9b58fd8d6c373c20.webp) -# Machine Learning dla początkujących - Program nauczania +# Machine Learning dla Początkujących - Program Nauczania -> 🌍 Podróżuj po świecie, odkrywając uczenie maszynowe w kontekście kultur świata 🌍 +> 🌍 Podróżuj po świecie, odkrywając Uczenie Maszynowe przez pryzmat kultur świata 🌍 -Specjaliści Cloud Advocates w Microsoft z przyjemnością oferują 12-tygodniowy program nauczania składający się z 26 lekcji na temat **Uczenia Maszynowego**. W tym programie nauczysz się tego, co czasami nazywa się **klasycznym uczeniem maszynowym**, używając głównie biblioteki Scikit-learn i unikając uczenia głębokiego, które jest omawiane w naszym programie [AI for Beginners](https://aka.ms/ai4beginners). Połącz te lekcje z naszym programem ['Data Science dla początkujących'](https://aka.ms/ds4beginners) również! +Cloud Advocates w Microsoft z przyjemnością oferują 12-tygodniowy, 26-lekcyjny program nauczania poświęcony **Uczeniu Maszynowemu**. W tym programie dowiesz się o tym, co nazywamy czasem **klasycznym uczeniem maszynowym**, głównie z użyciem biblioteki Scikit-learn, unikając uczenia głębokiego, które jest objęte naszym [programem AI dla początkujących](https://aka.ms/ai4beginners). Połącz te lekcje z naszym [programem Data Science dla początkujących](https://aka.ms/ds4beginners)! -Podróżuj z nami po świecie, stosując te klasyczne techniki do danych z różnych regionów. Każda lekcja zawiera quizy przed i po lekcji, pisemne instrukcje do ukończenia, rozwiązanie, zadanie i więcej. Nasza pedagogika oparta na projektach pozwala uczyć się podczas tworzenia, co jest sprawdzoną metodą utrwalenia nowych umiejętności. +Podróżuj z nami po świecie, stosując klasyczne techniki do danych z wielu regionów świata. Każda lekcja zawiera quizy przed i po lekcji, pisemne instrukcje realizacji, rozwiązanie, zadanie i więcej. Nasza oparta na projektach pedagogika pozwala uczyć się, budując, co jest sprawdzonym sposobem na trwałe przyswajanie nowych umiejętności. -**✍️ Gorące podziękowania dla naszych autorów** Jen Looper, Stephena Howella, Francescy Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chrisa Noringa, Anirbana Mukherjee, Ornelli Altunyan, Ruth Yakubu i Amy Boyd +**✍️ Gorące podziękowania dla naszych autorów** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu i Amy Boyd -**🎨 Podziękowania również dla naszych ilustratorów** Tomomi Imura, Dasani Madipalli i Jen Looper +**🎨 Podziękowania również dla naszych ilustratorów** Tomomi Imura, Dasani Madipalli oraz Jen Looper -**🙏 Szczególne podziękowania 🙏 dla naszych autorów, recenzentów i współtwórców treści Microsoft Student Ambassadorów**, w szczególności Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila i Snigdha Agarwal +**🙏 Szczególne podziękowania 🙏 dla naszych autorów, recenzentów i współtwórców treści Microsoft Student Ambassador**, w szczególności Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila i Snigdha Agarwal -**🤩 Dodatkowe podziękowania dla Microsoft Student Ambassadors Erica Wanjau, Jasleen Sondhi i Vidushi Gupta za nasze lekcje w R!** +**🤩 Specjalne podziękowania dla Microsoft Student Ambassadors Erica Wanjau, Jasleen Sondhi i Vidushi Gupta za lekcje R!** # Rozpoczęcie -Wykonaj następujące kroki: -1. **Rozwidlenie repozytorium**: Kliknij przycisk „Fork” w prawym górnym rogu tej strony. -2. **Sklonowanie repozytorium**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +Postępuj według tych kroków: +1. **Fork repozytorium**: Kliknij przycisk "Fork" w prawym górnym rogu tej strony. +2. **Sklonuj repozytorium**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [znajdź wszystkie dodatkowe zasoby do tego kursu w naszej kolekcji Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [znajdź wszystkie dodatkowe zasoby dla tego kursu w naszej kolekcji Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Potrzebujesz pomocy?** Sprawdź nasz [Przewodnik rozwiązywania problemów](TROUBLESHOOTING.md) z rozwiązaniami typowych problemów z instalacją, konfiguracją i uruchamianiem lekcji. +> 🔧 **Potrzebujesz pomocy?** Sprawdź nasz [Przewodnik rozwiązywania problemów](TROUBLESHOOTING.md) z rozwiązaniami najczęstszych problemów z instalacją, konfiguracją i uruchamianiem lekcji. - -**[Studenci](https://aka.ms/student-page)**, aby korzystać z tego programu nauczania, utwórz rozwidlenie całego repozytorium na swoje konto GitHub i wykonuj ćwiczenia indywidualnie lub w grupie: +**[Studenci](https://aka.ms/student-page)**, aby korzystać z tego programu, wykonaj fork całego repozytorium na swoje konto GitHub i wykonuj ćwiczenia samodzielnie lub w grupie: - Zacznij od quizu przed wykładem. -- Przeczytaj wykład i wykonaj zadania, zatrzymując się i zastanawiając przy każdym sprawdzeniu wiedzy. -- Staraj się tworzyć projekty samodzielnie, rozumiejąc lekcje, zamiast od razu uruchamiać kod z rozwiązania; jednak kod ten jest dostępny w folderach `/solution` w każdej lekcji opartej na projekcie. -- Rozwiąż quiz po wykładzie. +- Przeczytaj wykład i wykonaj zadania, zatrzymując się i zastanawiając przy każdej kontroli wiedzy. +- Spróbuj tworzyć projekty, rozumiejąc lekcje, a nie tylko uruchamiając kod rozwiązania; kod jest jednak dostępny w folderach `/solution` w każdej lekcji opartej na projekcie. +- Wykonaj quiz po wykładzie. - Wykonaj wyzwanie. - Wykonaj zadanie. -- Po ukończeniu grupy lekcji odwiedź [Tablicę Dyskusyjną](https://github.com/microsoft/ML-For-Beginners/discussions) i „ucz się na głos”, wypełniając odpowiednią rubricę PAT. 'PAT' to narzędzie do oceny postępów, które wypełniasz, aby pogłębić naukę. Możesz również reagować na rubryki innych, dzięki czemu uczymy się razem. +- Po ukończeniu grupy lekcji odwiedź [Forum Dyskusyjne](https://github.com/microsoft/ML-For-Beginners/discussions) i „ucz się na głos”, wypełniając odpowiednią rubrykę PAT. PAT to narzędzie do oceny postępów, które wypełniasz, aby pogłębić swoją naukę. Możesz też reagować na PAT-y innych, abyśmy mogli uczyć się razem. -> Do dalszej nauki zalecamy realizację tych [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modułów i ścieżek edukacyjnych. +> Do dalszej nauki polecamy te [moduły i ścieżki nauczania Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Nauczyciele**, przygotowaliśmy [kilka sugestii](for-teachers.md) dotyczących korzystania z tego programu nauczania. +**Nauczyciele**, w [for-teachers.md] znajdziecie sugestie dotyczące korzystania z tego programu nauczania. --- -## Wideoprzewodniki +## Wideo instruktażowe -Niektóre lekcje dostępne są jako krótkie filmy. Możesz je znaleźć w liniach lekcji lub na [playliście ML for Beginners na kanale Microsoft Developer na YouTube](https://aka.ms/ml-beginners-videos), klikając poniższy obraz. +Niektóre lekcje są dostępne jako krótkie filmy. Znajdziesz je wszystkie bezpośrednio w lekcjach lub na [playliście ML dla początkujących na kanale Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) po kliknięciu poniższego obrazka. -[![Baner ML dla początkujących](../../translated_images/pl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![ML for beginners banner](../../translated_images/pl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- ## Poznaj zespół -[![Film promocyjny](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif autorstwa** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Kliknij powyższy obraz, aby zobaczyć film o projekcie i osobach, które go stworzyły! +> 🎥 Kliknij obrazek powyżej, aby zobaczyć film o projekcie i jego twórcach! --- ## Pedagogika -Wybraliśmy dwa założenia pedagogiczne przy tworzeniu tego programu: zapewnienie, że jest on praktyczny i oparty na **projektach**, oraz że zawiera **częste quizy**. Dodatkowo, program ma wspólny **motyw przewodni**, który nadaje mu spójność. +Przy tworzeniu tego programu wybraliśmy dwie zasady pedagogiczne: zapewnienie, że jest to program praktyczny, **oparty na projektach**, oraz że zawiera **częste quizy**. Dodatkowo program ma wspólny **motyw przewodni**, nadający mu spójność. -Zapewnienie, że treści są powiązane z projektami, sprawia, że proces nauki jest bardziej angażujący dla uczniów, a utrzymanie koncepcji zostanie wzmocnione. Ponadto, quiz o minimalnym ryzyku przed zajęciami ustawia intencję ucznia do nauki danego tematu, a drugi quiz po zajęciach zapewnia dalsze utrwalenie. Program nauczania został zaprojektowany jako elastyczny i przyjemny, można go ukończyć w całości lub częściowo. Projekty zaczynają się od małych i stają się coraz bardziej złożone do końca 12-tygodniowego cyklu. Program zawiera również postscriptum o zastosowaniach ML w rzeczywistym świecie, które może być użyte jako dodatkowa nagroda lub podstawa do dyskusji. +Zapewnienie powiązania z projektami sprawia, że proces uczenia się jest bardziej angażujący, co zwiększa zapamiętywanie pojęć. Dodatkowo quiz o niskiej stawce przed lekcją nastawia ucznia na naukę tematu, a drugi quiz po lekcji wzmacnia utrwalenie wiedzy. Program został zaprojektowany tak, aby był elastyczny i przyjemny oraz można go realizować w całości lub w części. Projekty zaczynają się od prostych i stopniowo stają się coraz bardziej złożone, kończąc 12-tygodniowy cykl. Program zawiera też posłowie o zastosowaniach ML w praktyce, które można wykorzystać jako dodatkowe punkty lub jako podstawę do dyskusji. -> Znajdź nasze [Zasady zachowania](CODE_OF_CONDUCT.md), [Wkład](CONTRIBUTING.md), [Tłumaczenia](..) oraz wytyczne dotyczące [Rozwiązywania problemów](TROUBLESHOOTING.md). Czekamy na Twoje konstruktywne opinie! +> Znajdź nasze wytyczne: [Kodeks postępowania](CODE_OF_CONDUCT.md), [Wkład w projekt](CONTRIBUTING.md), [Tłumaczenia](..) i [Przewodnik rozwiązywania problemów](TROUBLESHOOTING.md). Czekamy na Twoją konstruktywną opinię! ## Każda lekcja zawiera -- opcjonalne notatki wizualne (sketchnote) -- opcjonalny film uzupełniający -- wideoprzewodnik (tylko niektóre lekcje) -- [quiz rozgrzewający przed wykładem](https://ff-quizzes.netlify.app/en/ml/) +- opcjonalną notatkę szkicową +- opcjonalne wideo uzupełniające +- wideo instruktażowe (tylko w niektórych lekcjach) +- [quiz rozgrzewający przed lekcją](https://ff-quizzes.netlify.app/en/ml/) - pisemną lekcję -- w lekcjach opartych na projektach, krok po kroku przewodniki jak zbudować projekt -- sprawdzenia wiedzy +- w lekcjach opartych na projekcie: instrukcje krok po kroku jak zbudować projekt +- kontrole wiedzy - wyzwanie -- uzupełniającą lekturę -- zadanie -- [quiz po wykładzie](https://ff-quizzes.netlify.app/en/ml/) - -> **Uwaga dotycząca języków**: Lekcje te są głównie napisane w Pythonie, ale wiele jest również dostępnych w R. Aby ukończyć lekcję w R, wejdź do folderu `/solution` i poszukaj lekcji R. Zawierają one rozszerzenie .rmd, które reprezentuje plik **R Markdown**, który można w uproszczeniu zdefiniować jako osadzenie `fragmentów kodu` (R lub innych języków) oraz `nagłówka YAML` (sterującego formatowaniem outputu np. PDF) w dokumencie `Markdown`. W ten sposób stanowi on znakomite narzędzie do tworzenia treści dla data science, pozwalając łączyć kod, jego output i notatki, które można zapisywać w Markdown. Dodatkowo, dokumenty R Markdown mogą być renderowane do formatów wyjściowych takich jak PDF, HTML czy Word. -> **Uwaga dotycząca quizów**: Wszystkie quizy znajdują się w folderze [Quiz App](../../quiz-app), łącznie 52 quizy po trzy pytania każdy. Są one podlinkowane w ramach lekcji, ale aplikację quizową można uruchomić lokalnie; postępuj zgodnie z instrukcjami w folderze `quiz-app`, aby uruchomić lokalnie lub wdrożyć na Azure. - -| Numer lekcji | Temat | Grupa lekcji | Cele nauki | Połączona lekcja | Autor | -| :----------: | :------------------------------------------------------------: | :-----------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| 01 | Wprowadzenie do uczenia maszynowego | [Wprowadzenie](1-Introduction/README.md) | Poznaj podstawowe koncepcje uczenia maszynowego | [Lekcja](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Historia uczenia maszynowego | [Wprowadzenie](1-Introduction/README.md) | Poznaj historię leżącą u podstaw tej dziedziny | [Lekcja](1-Introduction/2-history-of-ML/README.md) | Jen i Amy | -| 03 | Uczciwość i uczenie maszynowe | [Wprowadzenie](1-Introduction/README.md) | Jakie są ważne kwestie filozoficzne związane z uczciwością, które uczniowie powinni rozważyć, tworząc i stosując modele ML? | [Lekcja](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniki uczenia maszynowego | [Wprowadzenie](1-Introduction/README.md) | Jakich technik używają badacze ML do budowy modeli ML? | [Lekcja](1-Introduction/4-techniques-of-ML/README.md) | Chris i Jen | -| 05 | Wprowadzenie do regresji | [Regresja](2-Regression/README.md) | Zacznij pracę z Pythonem i Scikit-learn przy modelach regresji | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Ceny dyń w Ameryce Północnej 🎃 | [Regresja](2-Regression/README.md) | Wizualizuj i oczyść dane w przygotowaniu do ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Ceny dyń w Ameryce Północnej 🎃 | [Regresja](2-Regression/README.md) | Buduj modele regresji liniowej i wielomianowej | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen i Dmitry • Eric Wanjau | -| 08 | Ceny dyń w Ameryce Północnej 🎃 | [Regresja](2-Regression/README.md) | Zbuduj model regresji logistycznej | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Aplikacja Webowa 🔌 | [Web App](3-Web-App/README.md) | Zbuduj aplikację webową korzystającą z wytrenowanego modelu | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Wprowadzenie do klasyfikacji | [Klasyfikacja](4-Classification/README.md) | Oczyść, przygotuj i wizualizuj dane; wprowadzenie do klasyfikacji | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen i Cassie • Eric Wanjau | -| 11 | Przepyszne kuchnie azjatyckie i indyjskie 🍜 | [Klasyfikacja](4-Classification/README.md) | Wprowadzenie do klasyfikatorów | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen i Cassie • Eric Wanjau | -| 12 | Przepyszne kuchnie azjatyckie i indyjskie 🍜 | [Klasyfikacja](4-Classification/README.md) | Więcej klasyfikatorów | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen i Cassie • Eric Wanjau | -| 13 | Przepyszne kuchnie azjatyckie i indyjskie 🍜 | [Klasyfikacja](4-Classification/README.md) | Zbuduj aplikację rekomendacyjną korzystając z modelu | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Wprowadzenie do klasteryzacji | [Klasteryzacja](5-Clustering/README.md) | Oczyść, przygotuj i wizualizuj dane; wprowadzenie do klasteryzacji | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Odkrywanie muzycznych gustów Nigerii 🎧 | [Klasteryzacja](5-Clustering/README.md) | Poznaj metodę klasteryzacji K-średnich | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Wprowadzenie do przetwarzania języka naturalnego ☕️ | [Przetwarzanie języka naturalnego](6-NLP/README.md) | Poznaj podstawy NLP, tworząc prostego bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Typowe zadania NLP ☕️ | [Przetwarzanie języka naturalnego](6-NLP/README.md) | Pogłęb swoją wiedzę o NLP, poznając typowe zadania związane ze strukturami języka | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Tłumaczenie i analiza sentymentu ♥️ | [Przetwarzanie języka naturalnego](6-NLP/README.md) | Tłumaczenie i analiza sentymentu z Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantyczne hotele w Europie ♥️ | [Przetwarzanie języka naturalnego](6-NLP/README.md) | Analiza sentymentu na podstawie recenzji hoteli 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantyczne hotele w Europie ♥️ | [Przetwarzanie języka naturalnego](6-NLP/README.md) | Analiza sentymentu na podstawie recenzji hoteli 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Wprowadzenie do prognozowania szeregów czasowych | [Szeregi czasowe](7-TimeSeries/README.md) | Wprowadzenie do prognozowania szeregów czasowych | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Zużycie energii na świecie ⚡️ - prognozowanie szeregów czasowych z ARIMA | [Szeregi czasowe](7-TimeSeries/README.md) | Prognozowanie szeregów czasowych z zastosowaniem ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Zużycie energii na świecie ⚡️ - prognozowanie szeregów czasowych z SVR | [Szeregi czasowe](7-TimeSeries/README.md) | Prognozowanie szeregów czasowych z użyciem regresora wektorów nośnych | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Wprowadzenie do uczenia przez wzmacnianie | [Uczenie przez wzmacnianie](8-Reinforcement/README.md) | Wprowadzenie do uczenia przez wzmacnianie z Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Pomóż Piotrowi unikać wilka! 🐺 | [Uczenie przez wzmacnianie](8-Reinforcement/README.md) | Ćwiczenia z uczenia przez wzmacnianie w Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Posłowie | Realne scenariusze i zastosowania ML | [ML w praktyce](9-Real-World/README.md) | Interesujące i odkrywcze zastosowania klasycznego uczenia maszynowego | [Lekcja](9-Real-World/1-Applications/README.md) | Zespół | -| Posłowie | Debugowanie modeli ML z użyciem pulpitu RAI | [ML w praktyce](9-Real-World/README.md) | Debugowanie modeli uczenia maszynowego z komponentami pulpitu Responsible AI | [Lekcja](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [znajdź wszystkie dodatkowe zasoby do tego kursu w naszej kolekcji Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- lekturę uzupełniającą +- zadanie domowe +- [quiz po lekcji](https://ff-quizzes.netlify.app/en/ml/) +> **Nota o językach**: Te lekcje są przede wszystkim napisane w Pythonie, ale wiele z nich jest także dostępnych w R. Aby ukończyć lekcję w R, przejdź do folderu `/solution` i poszukaj lekcji w R. Zawierają one rozszerzenie .rmd, które oznacza plik **R Markdown**, definiowany jako osadzenie `fragmentów kodu` (w R lub innych językach) i `nagłówka YAML` (który wskazuje, jak formatować wyjścia takie jak PDF) w dokumencie `Markdown`. W ten sposób pełni on rolę przykładowego środowiska autorskiego dla nauki o danych, ponieważ pozwala łączyć kod, jego wyniki oraz Twoje przemyślenia, umożliwiając ich zapisywanie w Markdown. Co więcej, dokumenty R Markdown mogą być renderowane do formatów wyjściowych takich jak PDF, HTML czy Word. + +> **Nota o quizach**: Wszystkie quizy znajdują się w folderze [Quiz App](../../quiz-app), łącznie 52 quizy po trzy pytania w każdym. Są one powiązane z lekcjami, ale aplikację quizową można uruchomić lokalnie; postępuj zgodnie z instrukcjami w folderze `quiz-app`, aby uruchomić ją lokalnie lub wdrożyć na Azure. + +| Numer lekcji | Temat | Grupa lekcji | Cele nauki | Powiązana lekcja | Autor | +| :----------: | :------------------------------------------------------------: | :-----------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------: | +| 01 | Wprowadzenie do uczenia maszynowego | [Introduction](1-Introduction/README.md) | Poznaj podstawowe koncepcje uczenia maszynowego | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Historia uczenia maszynowego | [Introduction](1-Introduction/README.md) | Poznaj historię stojącą za tą dziedziną | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen i Amy | +| 03 | Sprawiedliwość a uczenie maszynowe | [Introduction](1-Introduction/README.md) | Jakie są ważne kwestie filozoficzne związane ze sprawiedliwością, które powinni rozważać studenci budujący i stosujący modele ML?| [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniki uczenia maszynowego | [Introduction](1-Introduction/README.md) | Jakich technik używają badacze ML do budowy modeli? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris i Jen | +| 05 | Wprowadzenie do regresji | [Regression](2-Regression/README.md) | Zacznij z Pythonem i Scikit-learn dla modeli regresji | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Ceny dyni w Ameryce Północnej 🎃 | [Regression](2-Regression/README.md) | Wizualizuj i czyść dane przygotowując się do ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Ceny dyni w Ameryce Północnej 🎃 | [Regression](2-Regression/README.md) | Buduj modele regresji liniowej i wielomianowej | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen i Dmitry • Eric Wanjau | +| 08 | Ceny dyni w Ameryce Północnej 🎃 | [Regression](2-Regression/README.md) | Zbuduj model regresji logistycznej | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Aplikacja Webowa 🔌 | [Web App](3-Web-App/README.md) | Zbuduj aplikację webową do wykorzystania swojego wytrenowanego modelu | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Wprowadzenie do klasyfikacji | [Classification](4-Classification/README.md) | Czyść, przygotuj i wizualizuj dane; wprowadzenie do klasyfikacji | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen i Cassie • Eric Wanjau | +| 11 | Pyszna kuchnia azjatycka i indyjska 🍜 | [Classification](4-Classification/README.md) | Wprowadzenie do klasyfikatorów | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen i Cassie • Eric Wanjau | +| 12 | Pyszna kuchnia azjatycka i indyjska 🍜 | [Classification](4-Classification/README.md) | Więcej klasyfikatorów | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen i Cassie • Eric Wanjau | +| 13 | Pyszna kuchnia azjatycka i indyjska 🍜 | [Classification](4-Classification/README.md) | Zbuduj webową aplikację rekomendacyjną używając swojego modelu | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Wprowadzenie do grupowania | [Clustering](5-Clustering/README.md) | Czyść, przygotuj i wizualizuj dane; wprowadzenie do grupowania | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Poznawanie nigeryjskich gustów muzycznych 🎧 | [Clustering](5-Clustering/README.md) | Poznaj metodę grupowania K-średnich | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Wprowadzenie do przetwarzania języka naturalnego ☕️ | [Natural language processing](6-NLP/README.md) | Naucz się podstaw NLP, budując prostego bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Typowe zadania NLP ☕️ | [Natural language processing](6-NLP/README.md) | Pogłęb swoją wiedzę o NLP, poznając typowe zadania związane ze strukturą języka | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Tłumaczenie i analiza sentymentu ♥️ | [Natural language processing](6-NLP/README.md) | Tłumaczenie i analiza sentymentu z Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantyczne hotele Europy ♥️ | [Natural language processing](6-NLP/README.md) | Analiza sentymentu na podstawie recenzji hoteli 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantyczne hotele Europy ♥️ | [Natural language processing](6-NLP/README.md) | Analiza sentymentu na podstawie recenzji hoteli 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Wprowadzenie do prognozowania szeregów czasowych | [Time series](7-TimeSeries/README.md) | Wprowadzenie do prognozowania szeregów czasowych | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Światowe zużycie energii ⚡️ - prognozowanie szeregów ARIMA | [Time series](7-TimeSeries/README.md) | Prognozowanie szeregów czasowych z wykorzystaniem ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Światowe zużycie energii ⚡️ - prognozowanie szeregów SVR | [Time series](7-TimeSeries/README.md) | Prognozowanie szeregów czasowych za pomocą regresora wektorów nośnych | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Wprowadzenie do uczenia przez wzmacnianie | [Reinforcement learning](8-Reinforcement/README.md) | Wprowadzenie do uczenia przez wzmacnianie z użyciem Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Pomóż Peterowi uniknąć wilka! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Przykłady i zastosowania ML w świecie rzeczywistym | [ML in the Wild](9-Real-World/README.md) | Ciekawe i pouczające rzeczywiste zastosowania klasycznego ML | [Lesson](9-Real-World/1-Applications/README.md) | Zespół | +| Postscript | Debugowanie modeli ML za pomocą dashboardu RAI | [ML in the Wild](9-Real-World/README.md) | Debugowanie modeli w uczeniu maszynowym za pomocą komponentów dashboardu Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [znajdź wszystkie dodatkowe materiały do tego kursu w naszej kolekcji Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Dostęp offline -Możesz korzystać z tej dokumentacji offline, używając [Docsify](https://docsify.js.org/#/). Rozgałęź ten repozytorium, [zainstaluj Docsify](https://docsify.js.org/#/quickstart) na swoim komputerze, a następnie w katalogu głównym tego repozytorium wpisz `docsify serve`. Strona będzie dostępna na porcie 3000 na lokalnym hoście: `localhost:3000`. +Możesz korzystać z tej dokumentacji offline, używając [Docsify](https://docsify.js.org/#/). Skuś się na forka tego repozytorium, [zainstaluj Docsify](https://docsify.js.org/#/quickstart) na swoim lokalnym komputerze, a następnie w katalogu głównym tego repozytorium wpisz `docsify serve`. Strona będzie udostępniona na porcie 3000 na Twoim localhost: `localhost:3000`. ## Pliki PDF -Znajdź wersję pdf programu nauczania z linkami [tutaj](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). - +Znajdź pdf programu nauczania z linkami [tutaj](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Inne kursy +## 🎒 Inne kursy -Nasz zespół tworzy również inne kursy! Sprawdź: +Nasz zespół tworzy także inne kursy! Sprawdź: ### LangChain @@ -182,57 +180,57 @@ Nasz zespół tworzy również inne kursy! Sprawdź: [![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agenci +### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP dla początkujących](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents dla początkujących](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Seria generatywnej sztucznej inteligencji -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Seria Sztucznej Inteligencji Generatywnej +[![Sztuczna inteligencja generatywna dla początkujących](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Sztuczna inteligencja generatywna (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Sztuczna inteligencja generatywna (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Sztuczna inteligencja generatywna (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Podstawowa nauka -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Podstawowe nauczanie +[![Uczenie maszynowe dla początkujących](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science dla początkujących](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Sztuczna inteligencja dla początkujących](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cyberbezpieczeństwo dla początkujących](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Tworzenie stron internetowych dla początkujących](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT dla początkujących](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Tworzenie XR dla początkujących](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Seria Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot do programowania w parach z AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot dla C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Przygody Copilota](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Uzyskanie pomocy +## Uzyskiwanie pomocy -Jeśli utkniesz lub masz pytania dotyczące tworzenia aplikacji AI, dołącz do innych uczących się i doświadczonych programistów w dyskusjach o MCP. To wspierająca społeczność, gdzie pytania są mile widziane, a wiedza jest swobodnie dzielona. +Jeśli utkniesz lub masz pytania dotyczące budowania aplikacji AI. Dołącz do innych uczących się i doświadczonych deweloperów w dyskusjach na temat MCP. To wspierająca społeczność, gdzie pytania są mile widziane, a wiedza chętnie dzielona. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) Jeśli masz uwagi dotyczące produktu lub napotkasz błędy podczas tworzenia, odwiedź: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Dodatkowe wskazówki dotyczące nauki +## Dodatkowe wskazówki do nauki -- Przeglądaj notatki po każdej lekcji, aby lepiej zrozumieć materiał. -- Ćwicz samodzielne implementowanie algorytmów. -- Eksploruj rzeczywiste zestawy danych, wykorzystując poznane koncepcje. +- Przeglądaj notatniki po każdej lekcji, aby lepiej zrozumieć materiał. +- Ćwicz samodzielne wdrażanie algorytmów. +- Eksploruj rzeczywiste zbiory danych wykorzystując poznane koncepcje. --- **Zastrzeżenie**: -Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mimo że dokładamy starań, aby tłumaczenie było jak najdokładniejsze, prosimy pamiętać, że tłumaczenia automatyczne mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym należy traktować jako autorytatywne źródło informacji. W przypadku istotnych informacji zaleca się skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z korzystania z tego tłumaczenia. +Niniejszy dokument został przetłumaczony za pomocą usługi tłumaczeń AI [Co-op Translator](https://github.com/Azure/co-op-translator). Chociaż dokładamy starań, aby tłumaczenie było jak najdokładniejsze, prosimy mieć na uwadze, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w języku źródłowym należy uważać za źródło nadrzędne. W przypadku informacji krytycznych zalecane jest skorzystanie z profesjonalnego tłumaczenia wykonanego przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia. \ No newline at end of file diff --git a/translations/pt-BR/.co-op-translator.json b/translations/pt-BR/.co-op-translator.json index 22f6782c6..05bdfc11d 100644 --- a/translations/pt-BR/.co-op-translator.json +++ b/translations/pt-BR/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "pt-BR" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:55:52+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T15:53:02+00:00", "source_file": "README.md", "language_code": "pt-BR" }, diff --git a/translations/pt-BR/README.md b/translations/pt-BR/README.md index f007e6a1a..546f373f8 100644 --- a/translations/pt-BR/README.md +++ b/translations/pt-BR/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Suporte multilíngue +### 🌐 Suporte Multilíngue -#### Suportado via GitHub Action (Automatizado e Sempre Atualizado) +#### Suportado via GitHub Action (Automatizado & Sempre Atualizado) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](./README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Árabe](../ar/README.md) | [Bengali](../bn/README.md) | [Búlgaro](../bg/README.md) | [Birmanês (Myanmar)](../my/README.md) | [Chinês (Simplificado)](../zh-CN/README.md) | [Chinês (Tradicional, Hong Kong)](../zh-HK/README.md) | [Chinês (Tradicional, Macau)](../zh-MO/README.md) | [Chinês (Tradicional, Taiwan)](../zh-TW/README.md) | [Croata](../hr/README.md) | [Tcheco](../cs/README.md) | [Dinamarquês](../da/README.md) | [Holandês](../nl/README.md) | [Estoniano](../et/README.md) | [Finlandês](../fi/README.md) | [Francês](../fr/README.md) | [Alemão](../de/README.md) | [Grego](../el/README.md) | [Hebraico](../he/README.md) | [Hindi](../hi/README.md) | [Húngaro](../hu/README.md) | [Indonésio](../id/README.md) | [Italiano](../it/README.md) | [Japonês](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Coreano](../ko/README.md) | [Lituano](../lt/README.md) | [Malaio](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Pidgin Nigeriano](../pcm/README.md) | [Norueguês](../no/README.md) | [Persa (Farsi)](../fa/README.md) | [Polonês](../pl/README.md) | [Português (Brasil)](./README.md) | [Português (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romeno](../ro/README.md) | [Russo](../ru/README.md) | [Sérvio (Cirílico)](../sr/README.md) | [Eslovaco](../sk/README.md) | [Esloveno](../sl/README.md) | [Espanhol](../es/README.md) | [Suaíli](../sw/README.md) | [Sueco](../sv/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Tâmil](../ta/README.md) | [Telugu](../te/README.md) | [Tailandês](../th/README.md) | [Turco](../tr/README.md) | [Ucraniano](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamita](../vi/README.md) -> **Prefere clonar localmente?** +> **Prefere Clonar Localmente?** > -> Este repositório inclui traduções em mais de 50 idiomas, o que aumenta significativamente o tamanho do download. Para clonar sem as traduções, use o sparse checkout: +> Este repositório inclui mais de 50 traduções que aumentam significativamente o tamanho do download. Para clonar sem traduções, use checkout esparso: > > **Bash / macOS / Linux:** > ```bash @@ -33,32 +33,32 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Isso oferece tudo que você precisa para completar o curso com um download muito mais rápido. +> Isso fornece tudo o que você precisa para completar o curso com um download muito mais rápido. -#### Junte-se à nossa comunidade +#### Junte-se à Nossa Comunidade [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Estamos com uma série de aprendizado no Discord chamada learn with AI, saiba mais e junte-se a nós em [Learn with AI Series](https://aka.ms/learnwithai/discord) de 18 a 30 de setembro de 2025. Você receberá dicas e truques para usar GitHub Copilot para Ciência de Dados. +Temos uma série contínua no Discord chamada "learn with AI", saiba mais e junte-se a nós em [Learn with AI Series](https://aka.ms/learnwithai/discord) de 18 a 30 de setembro de 2025. Você receberá dicas e truques para usar o GitHub Copilot para Ciência de Dados. -![Learn with AI series](../../translated_images/pt-BR/3.9b58fd8d6c373c20.webp) +![Série Learn with AI](../../translated_images/pt-BR/3.9b58fd8d6c373c20.webp) # Machine Learning para Iniciantes - Um Currículo -> 🌍 Viaje pelo mundo enquanto exploramos Aprendizado de Máquina por meio das culturas do mundo 🌍 +> 🌍 Viaje pelo mundo enquanto exploramos Machine Learning por meio das culturas globais 🌍 -Os Cloud Advocates da Microsoft têm o prazer de oferecer um currículo de 12 semanas, com 26 lições, inteiramente dedicado ao **Aprendizado de Máquina**. Neste currículo, você aprenderá sobre o que às vezes é chamado de **aprendizado de máquina clássico**, usando principalmente Scikit-learn como biblioteca e evitando deep learning, que é abordado em nosso [currículo AI para Iniciantes](https://aka.ms/ai4beginners). Combine essas aulas também com nosso ['Ciência de Dados para Iniciantes' currículo](https://aka.ms/ds4beginners)! +Os Cloud Advocates da Microsoft têm o prazer de oferecer um currículo de 12 semanas com 26 lições focadas em **Machine Learning**. Neste currículo, você aprenderá sobre o que às vezes é chamado de **machine learning clássico**, usando principalmente a biblioteca Scikit-learn e evitando deep learning, que é abordado em nosso [currículo AI para Iniciantes](https://aka.ms/ai4beginners). Combine essas lições com nosso [currículo Ciência de Dados para Iniciantes](https://aka.ms/ds4beginners)! -Viaje conosco ao redor do mundo enquanto aplicamos essas técnicas clássicas a dados de várias regiões do mundo. Cada lição inclui quizzes pré e pós-lição, instruções escritas para completar a lição, uma solução, uma tarefa e mais. Nossa pedagogia baseada em projetos permite que você aprenda construindo, uma forma comprovada para fixar novas habilidades. +Viaje conosco ao redor do mundo enquanto aplicamos essas técnicas clássicas a dados de várias regiões do mundo. Cada lição inclui questionários pré e pós-lição, instruções escritas para completar a lição, uma solução, um exercício e muito mais. Nossa pedagogia baseada em projetos permite que você aprenda construindo, uma forma comprovada de fixar novas habilidades. -**✍️ Muitos agradecimentos aos nossos autores** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu e Amy Boyd +**✍️ Agradecimentos calorosos aos nossos autores** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu e Amy Boyd -**🎨 Agradecimentos também aos nossos ilustradores** Tomomi Imura, Dasani Madipalli e Jen Looper +**🎨 Também agradecemos aos nossos ilustradores** Tomomi Imura, Dasani Madipalli e Jen Looper -**🙏 Agradecimentos especiais 🙏 aos nossos autores, revisores e colaboradores do conteúdo Microsoft Student Ambassador**, notavelmente Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila e Snigdha Agarwal +**🙏 Agradecimentos especiais 🙏 aos nossos autores, revisores e colaboradores de conteúdo Microsoft Student Ambassador**, notadamente Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila e Snigdha Agarwal -**🤩 Agradecimento extra aos Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi e Vidushi Gupta pelas nossas lições em R!** +**🤩 Gratidão extra aos Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi e Vidushi Gupta pelas nossas lições em R!** # Começando @@ -68,162 +68,162 @@ Siga estes passos: > [encontre todos os recursos adicionais para este curso em nossa coleção Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Precisa de ajuda?** Confira nosso [Guia de solução de problemas](TROUBLESHOOTING.md) para soluções comuns de instalação, configuração e execução das lições. +> 🔧 **Precisa de ajuda?** Consulte nosso [Guia de Solução de Problemas](TROUBLESHOOTING.md) para soluções para problemas comuns com instalação, configuração e execução das lições. -**[Estudantes](https://aka.ms/student-page)**, para usar este currículo, faça o fork de todo o repo para sua própria conta GitHub e realize os exercícios sozinho ou em grupo: +**[Estudantes](https://aka.ms/student-page)**, para usar este currículo, fork o repositório inteiro para sua conta GitHub e complete os exercícios sozinho ou em grupo: -- Comece com um quiz pré-aula. -- Leia a aula e complete as atividades, pausando e refletindo em cada verificação de conhecimento. -- Tente criar os projetos compreendendo as lições em vez de copiar o código da solução; contudo, esse código está disponível nas pastas `/solution` de cada lição orientada a projetos. -- Faça o quiz pós-aula. +- Comece com um questionário pré-aula. +- Leia a aula e complete as atividades, fazendo pausas e refletindo em cada verificação de conhecimento. +- Tente criar os projetos compreendendo as lições, em vez de apenas executar o código solução; contudo, esse código está disponível nas pastas `/solution` em cada lição orientada por projeto. +- Faça o questionário pós-aula. - Complete o desafio. -- Complete a tarefa. -- Depois de concluir um grupo de lições, visite o [Fórum de Discussão](https://github.com/microsoft/ML-For-Beginners/discussions) e "aprenda em voz alta" preenchendo a rubrica PAT apropriada. Um 'PAT' é uma Ferramenta de Avaliação de Progresso que você preenche para aprofundar seu aprendizado. Você também pode reagir a outros PATs para aprendermos juntos. +- Complete o exercício. +- Após completar um grupo de lições, visite o [Fórum de Discussão](https://github.com/microsoft/ML-For-Beginners/discussions) e "aprenda em voz alta" preenchendo a rubrica apropriada do PAT. Um 'PAT' é uma Ferramenta de Avaliação de Progresso que você preenche para avançar seu aprendizado. Você também pode reagir a outros PATs para aprendermos juntos. -> Para estudos adicionais, recomendamos seguir estes módulos e trilhas de aprendizado do [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Para estudo adicional, recomendamos seguir estes [módulos e trilhas de aprendizado do Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Professores**, fornecemos [algumas sugestões](for-teachers.md) sobre como usar este currículo. +**Professores**, incluímos [algumas sugestões](for-teachers.md) sobre como usar este currículo. --- ## Vídeos explicativos -Algumas das lições estão disponíveis em formato de vídeo curto. Você pode encontrar todos eles embutidos nas lições, ou na [playlist ML for Beginners no canal Microsoft Developer no YouTube](https://aka.ms/ml-beginners-videos) clicando na imagem abaixo. +Algumas lições estão disponíveis como vídeos curtos. Você pode encontrar todos eles embutidos nas lições, ou na [playlist ML for Beginners no canal Microsoft Developer no YouTube](https://aka.ms/ml-beginners-videos) clicando na imagem abaixo. -[![ML for beginners banner](../../translated_images/pt-BR/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![Banner ML for beginners](../../translated_images/pt-BR/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Conheça a equipe +## Conheça a Equipe -[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Vídeo promocional](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif por** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Clique na imagem acima para assistir a um vídeo sobre o projeto e as pessoas que o criaram! +> 🎥 Clique na imagem acima para um vídeo sobre o projeto e as pessoas que o criaram! --- ## Pedagogia -Optamos por dois princípios pedagógicos ao construir este currículo: garantir que ele seja prático e **baseado em projetos** e que inclua **quizzes frequentes**. Além disso, este currículo possui um **tema** comum para dar coesão. +Escolhemos dois princípios pedagógicos para construir este currículo: garantir que ele seja prático **baseado em projetos** e que inclua **questionários frequentes**. Além disso, este currículo tem um **tema** comum para dar coerência. -Garantindo que o conteúdo esteja alinhado a projetos, o processo torna-se mais envolvente para os estudantes e a retenção dos conceitos será aumentada. Além disso, um quiz de baixa pressão antes de uma aula cria a intenção do aluno de aprender um tópico, enquanto um segundo quiz após a aula assegura maior retenção. Este currículo foi projetado para ser flexível e divertido e pode ser feito todo ou em partes. Os projetos começam pequenos e ficam progressivamente mais complexos até o final do ciclo de 12 semanas. Este currículo também inclui um posfácio sobre aplicações reais de ML, que pode ser usado como crédito extra ou como base para discussões. +Ao garantir que o conteúdo esteja alinhado com projetos, o processo fica mais envolvente para os alunos e a retenção dos conceitos é aumentada. Além disso, um questionário de baixo risco antes da aula estabelece a intenção do aluno em aprender um tópico, enquanto um segundo questionário após a aula assegura uma retenção maior. Este currículo foi projetado para ser flexível e divertido e pode ser feito integralmente ou em partes. Os projetos começam pequenos e crescem em complexidade ao longo das 12 semanas. Este currículo também inclui um posfácio sobre aplicações reais de ML, que pode ser usado como crédito extra ou base para discussão. -> Encontre nosso [Código de Conduta](CODE_OF_CONDUCT.md), [Contribuições](CONTRIBUTING.md), [Traduções](..) e [Solução de Problemas](TROUBLESHOOTING.md). Agradecemos seu feedback construtivo! +> Encontre nosso [Código de Conduta](CODE_OF_CONDUCT.md), [Como Contribuir](CONTRIBUTING.md), [Traduções](..) e diretrizes de [Solução de Problemas](TROUBLESHOOTING.md). Aguardamos seu feedback construtivo! ## Cada lição inclui -- esboço opcional +- sketchnote opcional - vídeo suplementar opcional -- vídeo explicativo (algumas lições somente) -- [quiz aquecimento pré-aula](https://ff-quizzes.netlify.app/en/ml/) +- vídeo explicativo (somente algumas lições) +- [quiz pré-aula](https://ff-quizzes.netlify.app/en/ml/) - lição escrita - para lições baseadas em projetos, guias passo a passo para construir o projeto - verificações de conhecimento - um desafio - leitura suplementar -- tarefa +- exercício - [quiz pós-aula](https://ff-quizzes.netlify.app/en/ml/) - -> **Uma nota sobre idiomas**: Estas lições são principalmente escritas em Python, mas muitas também estão disponíveis em R. Para completar uma lição em R, vá até a pasta `/solution` e procure pelas lições em R. Elas incluem uma extensão .rmd que representa um arquivo **R Markdown**, que pode ser simplesmente definido como uma incorporação de `blocos de código` (de R ou outras linguagens) e um `cabeçalho YAML` (que orienta como formatar saídas, como PDF) em um `documento Markdown`. Como tal, serve como um excelente framework para autoria em ciência de dados, pois permite combinar seu código, sua saída e seus pensamentos escrevendo-os em Markdown. Além disso, documentos R Markdown podem ser renderizados em formatos de saída como PDF, HTML ou Word. -> **Uma nota sobre questionários**: Todos os questionários estão contidos na [pasta Quiz App](../../quiz-app), totalizando 52 questionários com três perguntas cada. Eles estão vinculados nas lições, mas o aplicativo de questionários pode ser executado localmente; siga as instruções na pasta `quiz-app` para hospedar localmente ou implantar no Azure. - -| Número da Lição | Tópico | Agrupamento da Lição | Objetivos de Aprendizagem | Lição Vinculada | Autor | -| :-------------: | :-------------------------------------------------------------: | :-------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| 01 | Introdução ao aprendizado de máquina | [Introdução](1-Introduction/README.md) | Aprenda os conceitos básicos por trás do aprendizado de máquina | [Lição](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | A História do aprendizado de máquina | [Introdução](1-Introduction/README.md) | Aprenda a história subjacente a este campo | [Lição](1-Introduction/2-history-of-ML/README.md) | Jen e Amy | -| 03 | Justiça e aprendizado de máquina | [Introdução](1-Introduction/README.md) | Quais são as questões filosóficas importantes sobre justiça que os alunos devem considerar ao construir e aplicar modelos de ML? | [Lição](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Técnicas para aprendizado de máquina | [Introdução](1-Introduction/README.md) | Quais técnicas os pesquisadores de ML usam para construir modelos de ML? | [Lição](1-Introduction/4-techniques-of-ML/README.md) | Chris e Jen | -| 05 | Introdução à regressão | [Regressão](2-Regression/README.md) | Comece com Python e Scikit-learn para modelos de regressão | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Preços de abóboras na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Visualize e limpe dados em preparação para ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Preços de abóboras na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Construa modelos de regressão linear e polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen e Dmitry • Eric Wanjau | -| 08 | Preços de abóboras na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Construa um modelo de regressão logística | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Um aplicativo web 🔌 | [Aplicativo Web](3-Web-App/README.md) | Construa um aplicativo web para usar seu modelo treinado | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introdução à classificação | [Classificação](4-Classification/README.md) | Limpe, prepare e visualize seus dados; introdução à classificação | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen e Cassie • Eric Wanjau | -| 11 | Deliciosas cozinhas asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Introdução aos classificadores | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen e Cassie • Eric Wanjau | -| 12 | Deliciosas cozinhas asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Mais classificadores | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen e Cassie • Eric Wanjau | -| 13 | Deliciosas cozinhas asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Construa um aplicativo web de recomendação usando seu modelo | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introdução à clusterização | [Clusterização](5-Clustering/README.md) | Limpe, prepare e visualize seus dados; introdução à clusterização | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Explorando gostos musicais na Nigéria 🎧 | [Clusterização](5-Clustering/README.md) | Explore o método de clusterização K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introdução ao processamento de linguagem natural ☕️ | [Processamento de linguagem natural](6-NLP/README.md) | Aprenda o básico sobre PLN construindo um bot simples | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Tarefas comuns de PLN ☕️ | [Processamento de linguagem natural](6-NLP/README.md) | Aprofunde seu conhecimento de PLN entendendo tarefas comuns ao lidar com estruturas linguísticas | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Tradução e análise de sentimento ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Tradução e análise de sentimento com Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hotéis românticos da Europa ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Análise de sentimento com avaliações de hotéis 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hotéis românticos da Europa ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Análise de sentimento com avaliações de hotéis 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introdução à previsão de séries temporais | [Séries temporais](7-TimeSeries/README.md) | Introdução à previsão de séries temporais | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Consumo mundial de energia ⚡️ - previsão de séries temporais ARIMA | [Séries temporais](7-TimeSeries/README.md) | Previsão de séries temporais com ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Consumo mundial de energia ⚡️ - previsão de séries temporais SVR | [Séries temporais](7-TimeSeries/README.md) | Previsão de séries temporais com Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introdução ao aprendizado por reforço | [Aprendizado por reforço](8-Reinforcement/README.md) | Introdução ao aprendizado por reforço com Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Ajude Peter a evitar o lobo! 🐺 | [Aprendizado por reforço](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Pós-escrito | Cenários e aplicações reais de ML | [ML na prática](9-Real-World/README.md) | Aplicações interessantes e reveladoras do aprendizado de máquina clássico | [Lição](9-Real-World/1-Applications/README.md) | Equipe | -| Pós-escrito | Depuração de modelos em ML usando o painel RAI | [ML na prática](9-Real-World/README.md) | Depuração de modelos em Aprendizado de Máquina usando componentes do painel Responsible AI | [Lição](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +> **Uma nota sobre idiomas**: Essas lições são escritas principalmente em Python, mas muitas também estão disponíveis em R. Para completar uma lição em R, vá para a pasta `/solution` e procure pelas lições em R. Elas incluem uma extensão .rmd que representa um arquivo **R Markdown**, que pode ser simplesmente definido como uma incorporação de `blocos de código` (de R ou outras linguagens) e um `cabeçalho YAML` (que orienta como formatar saídas como PDF) em um `documento Markdown`. Como tal, serve como uma estrutura exemplificada para autoria em ciência de dados, pois permite combinar seu código, sua saída e seus pensamentos ao permitir escrevê-los em Markdown. Além disso, documentos R Markdown podem ser renderizados em formatos de saída como PDF, HTML ou Word. + +> **Uma nota sobre quizzes**: Todos os quizzes estão contidos na [pasta do Quiz App](../../quiz-app), com 52 quizzes totais de três perguntas cada. Eles estão vinculados dentro das lições, mas o app de quiz pode ser executado localmente; siga as instruções na pasta `quiz-app` para hospedar localmente ou implantar no Azure. + +| Número da Lição | Tópico | Agrupamento da Lição | Objetivos de Aprendizagem | Lição Vinculada | Autor | +| :-------------: | :------------------------------------------------------------: | :-------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | Introdução à aprendizagem de máquina | [Introdução](1-Introduction/README.md) | Aprenda os conceitos básicos por trás da aprendizagem de máquina | [Lição](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | A história da aprendizagem de máquina | [Introdução](1-Introduction/README.md) | Aprenda a história subjacente a esse campo | [Lição](1-Introduction/2-history-of-ML/README.md) | Jen e Amy | +| 03 | Justiça e aprendizagem de máquina | [Introdução](1-Introduction/README.md) | Quais são as importantes questões filosóficas sobre justiça que os alunos devem considerar ao construir e aplicar modelos de ML? | [Lição](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Técnicas para aprendizagem de máquina | [Introdução](1-Introduction/README.md) | Quais técnicas os pesquisadores de ML usam para construir modelos de ML? | [Lição](1-Introduction/4-techniques-of-ML/README.md) | Chris e Jen | +| 05 | Introdução à regressão | [Regressão](2-Regression/README.md) | Comece com Python e Scikit-learn para modelos de regressão | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Preços de abóbora na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Visualize e limpe dados em preparação para ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Preços de abóbora na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Construa modelos de regressão linear e polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen e Dmitry • Eric Wanjau | +| 08 | Preços de abóbora na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Construa um modelo de regressão logística | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Um App Web 🔌 | [App Web](3-Web-App/README.md) | Construa um app web para usar seu modelo treinado | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introdução à classificação | [Classificação](4-Classification/README.md) | Limpe, prepare e visualize seus dados; introdução à classificação | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen e Cassie • Eric Wanjau | +| 11 | Deliciosas culinárias asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Introdução aos classificadores | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen e Cassie • Eric Wanjau | +| 12 | Deliciosas culinárias asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Mais classificadores | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen e Cassie • Eric Wanjau | +| 13 | Deliciosas culinárias asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Construa um app web recomendador usando seu modelo | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introdução a clustering | [Agrupamento](5-Clustering/README.md) | Limpe, prepare e visualize seus dados; introdução a clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Explorando gostos musicais na Nigéria 🎧 | [Agrupamento](5-Clustering/README.md) | Explore o método de agrupamento K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introdução ao processamento de linguagem natural ☕️ | [Processamento de linguagem natural](6-NLP/README.md) | Aprenda o básico sobre PLN construindo um bot simples | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Tarefas comuns em PLN ☕️ | [Processamento de linguagem natural](6-NLP/README.md) | Aprofunde seu conhecimento em PLN entendendo tarefas comuns necessárias ao lidar com estruturas de linguagem | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Tradução e análise de sentimento ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Tradução e análise de sentimento com Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hotéis românticos na Europa ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Análise de sentimento com avaliações de hotéis 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hotéis românticos na Europa ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Análise de sentimento com avaliações de hotéis 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introdução à previsão de séries temporais | [Séries temporais](7-TimeSeries/README.md) | Introdução à previsão de séries temporais | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Uso mundial de energia ⚡️ - previsão de séries temporais com ARIMA | [Séries temporais](7-TimeSeries/README.md) | Previsão de séries temporais com ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Uso mundial de energia ⚡️ - previsão de séries temporais com SVR | [Séries temporais](7-TimeSeries/README.md) | Previsão de séries temporais com Regressor de Vetor de Suporte | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introdução ao aprendizado por reforço | [Aprendizado por reforço](8-Reinforcement/README.md) | Introdução ao aprendizado por reforço com Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Ajude Peter a evitar o lobo! 🐺 | [Aprendizado por reforço](8-Reinforcement/README.md) | Aprendizado por reforço Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Pós-escrito | Cenários e aplicações do ML no mundo real | [ML no Mundo Real](9-Real-World/README.md) | Aplicações interessantes e reveladoras do ML clássico | [Lição](9-Real-World/1-Applications/README.md) | Equipe | +| Pós-escrito | Depuração de modelos ML usando painel RAI | [ML no Mundo Real](9-Real-World/README.md) | Depuração de modelos em Machine Learning usando componentes do painel Responsible AI | [Lição](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [encontre todos os recursos adicionais para este curso em nossa coleção Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Acesso offline -Você pode executar esta documentação offline usando [Docsify](https://docsify.js.org/#/). Faça um fork deste repositório, [instale o Docsify](https://docsify.js.org/#/quickstart) em sua máquina local e, em seguida, na pasta raiz deste repositório, digite `docsify serve`. O site será servido na porta 3000 em seu localhost: `localhost:3000`. +Você pode executar esta documentação offline usando [Docsify](https://docsify.js.org/#/). Faça um fork deste repositório, [instale o Docsify](https://docsify.js.org/#/quickstart) em sua máquina local e então, na pasta raiz deste repositório, digite `docsify serve`. O site será servido na porta 3000 em seu localhost: `localhost:3000`. ## PDFs Encontre um pdf do currículo com links [aqui](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Outros Cursos +## 🎒 Outros Cursos Nossa equipe produz outros cursos! Confira: ### LangChain -[![LangChain4j para Iniciantes](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js para Iniciantes](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain para Iniciantes](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j para iniciantes](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js para iniciantes](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain para iniciantes](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agentes -[![AZD para Iniciantes](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI para Iniciantes](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD para iniciantes](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI para iniciantes](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP para Iniciantes](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) [![Agentes de IA para Iniciantes](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Série de IA Generativa -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![IA Generativa para Iniciantes](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![IA Generativa (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![IA Generativa (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![IA Generativa (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Aprendizado Básico -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Aprendizado Essencial +[![ML para Iniciantes](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Ciência de Dados para Iniciantes](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![IA para Iniciantes](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cibersegurança para Iniciantes](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Desenvolvimento Web para Iniciantes](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT para Iniciantes](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Desenvolvimento XR para Iniciantes](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Série Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot para Programação em Parelha com IA](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot para C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Aventura Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Obtenha Ajuda +## Obter Ajuda -Se você ficar preso ou tiver dúvidas sobre como criar aplicativos de IA. Junte-se a outros aprendizes e desenvolvedores experientes em discussões sobre o MCP. É uma comunidade acolhedora onde perguntas são bem-vindas e o conhecimento é compartilhado livremente. +Se você ficar preso ou tiver alguma dúvida sobre como construir aplicativos de IA. Junte-se a outros aprendizes e desenvolvedores experientes em discussões sobre MCP. É uma comunidade acolhedora onde perguntas são bem-vindas e o conhecimento é compartilhado livremente. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Se você tiver feedback sobre o produto ou encontrar erros durante a criação, visite: +Se você tiver feedback sobre produtos ou erros durante o desenvolvimento, visite: -[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +[![Fórum de Desenvolvedores Microsoft Foundry](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Dicas Adicionais de Aprendizado - Revise os notebooks após cada aula para melhor compreensão. @@ -233,6 +233,6 @@ Se você tiver feedback sobre o produto ou encontrar erros durante a criação, --- -**Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos empenhemos para garantir a precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autoritativa. Para informações críticas, recomenda-se tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações equivocadas decorrentes do uso desta tradução. +**Aviso Legal**: +Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos pela precisão, esteja ciente de que traduções automatizadas podem conter erros ou imprecisões. O documento original em seu idioma nativo deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional feita por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. \ No newline at end of file diff --git a/translations/pt-PT/.co-op-translator.json b/translations/pt-PT/.co-op-translator.json index cfe5fb226..2b2dc1f70 100644 --- a/translations/pt-PT/.co-op-translator.json +++ b/translations/pt-PT/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "pt-PT" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:54:07+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T15:51:15+00:00", "source_file": "README.md", "language_code": "pt-PT" }, diff --git a/translations/pt-PT/README.md b/translations/pt-PT/README.md index 2d36b08f5..5887ee6eb 100644 --- a/translations/pt-PT/README.md +++ b/translations/pt-PT/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Suporte Multi-Idioma +### 🌐 Suporte Multilíngue -#### Suportado via Ação do GitHub (Automatizado e Sempre Atualizado) +#### Suportado via GitHub Action (Automatizado e Sempre Atualizado) -[Árabe](../ar/README.md) | [Bengali](../bn/README.md) | [Búlgaro](../bg/README.md) | [Birmanês (Myanmar)](../my/README.md) | [Chinês (Simplificado)](../zh-CN/README.md) | [Chinês (Tradicional, Hong Kong)](../zh-HK/README.md) | [Chinês (Tradicional, Macau)](../zh-MO/README.md) | [Chinês (Tradicional, Taiwan)](../zh-TW/README.md) | [Croata](../hr/README.md) | [Checo](../cs/README.md) | [Dinamarquês](../da/README.md) | [Holandês](../nl/README.md) | [Estónio](../et/README.md) | [Finlandês](../fi/README.md) | [Francês](../fr/README.md) | [Alemão](../de/README.md) | [Grego](../el/README.md) | [Hebraico](../he/README.md) | [Hindi](../hi/README.md) | [Húngaro](../hu/README.md) | [Indonésio](../id/README.md) | [Italiano](../it/README.md) | [Japonês](../ja/README.md) | [Kannada](../kn/README.md) | [Coreano](../ko/README.md) | [Lituano](../lt/README.md) | [Malaio](../ms/README.md) | [Malaiala](../ml/README.md) | [Marata](../mr/README.md) | [Nepalês](../ne/README.md) | [Pidgin Nigeriano](../pcm/README.md) | [Norueguês](../no/README.md) | [Persa (Farsi)](../fa/README.md) | [Polaco](../pl/README.md) | [Português (Brasil)](../pt-BR/README.md) | [Português (Portugal)](./README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romeno](../ro/README.md) | [Russo](../ru/README.md) | [Sérvio (Cirílico)](../sr/README.md) | [Eslovaco](../sk/README.md) | [Esloveno](../sl/README.md) | [Espanhol](../es/README.md) | [Suaíli](../sw/README.md) | [Sueco](../sv/README.md) | [Tagalo (Filipino)](../tl/README.md) | [Tâmil](../ta/README.md) | [Telugu](../te/README.md) | [Tailandês](../th/README.md) | [Turco](../tr/README.md) | [Ucraniano](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamita](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](./README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Prefere Clonar Localmente?** > -> Este repositório inclui mais de 50 traduções de idiomas, o que aumenta significativamente o tamanho da transferência. Para clonar sem traduções, use checkout esparso: +> Este repositório inclui traduções em mais de 50 idiomas, o que aumenta significativamente o tamanho do download. Para clonar sem as traduções, use sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Isto dá-lhe tudo o que precisa para completar o curso com uma transferência muito mais rápida. +> Isto dá-lhe tudo o que precisa para completar o curso com um download muito mais rápido. #### Junte-se à Nossa Comunidade [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Temos uma série continuada no Discord aprender com IA, saiba mais e junte-se a nós em [Learn with AI Series](https://aka.ms/learnwithai/discord) de 18 a 30 de setembro de 2025. Vai receber dicas e truques para usar o GitHub Copilot para Ciência de Dados. +Temos uma série de aprender com IA no Discord em curso, saiba mais e junte-se a nós em [Learn with AI Series](https://aka.ms/learnwithai/discord) de 18 a 30 de setembro de 2025. Receberá dicas e truques para usar o GitHub Copilot para Ciência de Dados. ![Learn with AI series](../../translated_images/pt-PT/3.9b58fd8d6c373c20.webp) -# Machine Learning para Iniciantes - Um Currículo +# Aprendizagem Automática para Iniciantes - Um Currículo -> 🌍 Viaje pelo mundo enquanto exploramos Machine Learning através das culturas mundiais 🌍 +> 🌍 Viaje pelo mundo enquanto exploramos Aprendizagem Automática através das culturas mundiais 🌍 -Os Cloud Advocates da Microsoft têm o prazer de oferecer um currículo de 12 semanas, com 26 aulas, inteiramente sobre **Machine Learning**. Neste currículo, irá aprender sobre o que às vezes é chamado de **aprendizagem automática clássica**, usando principalmente a biblioteca Scikit-learn e evitando o deep learning, que é abordado no nosso [currículo de AI para Iniciantes](https://aka.ms/ai4beginners). Combine estas aulas com o nosso [currículo de Ciência de Dados para Iniciantes](https://aka.ms/ds4beginners), também! +Os Cloud Advocates da Microsoft têm o prazer de oferecer um currículo de 12 semanas e 26 lições totalmente dedicado a **Aprendizagem Automática**. Neste currículo, aprenderá sobre o que às vezes é chamado de **aprendizagem automática clássica**, usando principalmente a biblioteca Scikit-learn e evitando o deep learning, que é abordado no nosso [currículo AI for Beginners](https://aka.ms/ai4beginners). Combine estas lições com o nosso ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners), também! -Viaje connosco pelo mundo enquanto aplicamos estas técnicas clássicas a dados de muitas regiões do globo. Cada lição inclui quizzes antes e depois da aula, instruções escritas para completar a lição, uma solução, um exercício e mais. A nossa pedagogia baseada em projetos permite-lhe aprender enquanto constrói, uma forma comprovada de fazer as novas habilidades 'ficarem'. +Viaje connosco pelo mundo enquanto aplicamos estas técnicas clássicas a dados de várias regiões do mundo. Cada lição inclui questionários pré e pós-lição, instruções escritas para concluir a lição, uma solução, um desafio, e mais. A nossa pedagogia baseada em projetos permite-lhe aprender enquanto constrói, uma forma comprovada para que as novas competências 'fixem'. -**✍️ Um grande obrigado aos nossos autores** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu e Amy Boyd +**✍️ Muito obrigado aos nossos autores** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu e Amy Boyd -**🎨 Agradecimentos também aos nossos ilustradores** Tomomi Imura, Dasani Madipalli e Jen Looper +**🎨 Agradecimentos também aos nossos ilustradores** Tomomi Imura, Dasani Madipalli, e Jen Looper -**🙏 Agradecimentos especiais 🙏 aos nossos autores, revisores e colaboradores de conteúdo Microsoft Student Ambassadors**, nomeadamente Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, e Snigdha Agarwal +**🙏 Agradecimentos especiais 🙏 aos nossos autores, revisores e colaboradores de conteúdo Microsoft Student Ambassador**, nomeadamente Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, e Snigdha Agarwal -**🤩 Agradecimento extra aos Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi e Vidushi Gupta pelas nossas aulas em R!** +**🤩 Gratidão extra aos Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, e Vidushi Gupta pelas nossas lições em R!** # Começar Siga estes passos: -1. **Faça um Fork do Repositório**: Clique no botão "Fork" no canto superior direito desta página. +1. **Fork do Repositório**: Clique no botão "Fork" no canto superior direito desta página. 2. **Clone o Repositório**: `git clone https://github.com/microsoft/ML-For-Beginners.git` > [encontre todos os recursos adicionais para este curso na nossa coleção Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Precisa de ajuda?** Consulte o nosso [Guia de Resolução de Problemas](TROUBLESHOOTING.md) para soluções comuns relacionadas com a instalação, configuração e execução das aulas. +> 🔧 **Precisa de ajuda?** Consulte o nosso [Guia de Resolução de Problemas](TROUBLESHOOTING.md) para soluções a problemas comuns com instalação, configuração e execução das lições. -**[Estudantes](https://aka.ms/student-page)**, para usar este currículo, faça fork do repositório inteiro para a sua conta GitHub e complete os exercícios sozinho ou em grupo: +**[Estudantes](https://aka.ms/student-page)**, para usar este currículo, faça fork do repositório completo para a sua própria conta no GitHub e complete os exercícios sozinho ou em grupo: -- Comece com um quiz pré-aula. -- Leia a aula e complete as atividades, parando para refletir em cada ponto de verificação de conhecimento. -- Tente criar os projetos compreendendo as aulas, em vez de executar o código da solução; contudo, esse código está disponível nas pastas `/solution` de cada aula orientada a projeto. -- Faça o quiz pós-aula. +- Comece com um questionário pré-entrevista. +- Leia a aula e complete as atividades, pausando e refletindo a cada verificação de conhecimento. +- Tente criar os projetos compreendendo as lições em vez de apenas executar o código da solução; no entanto, esse código está disponível nas pastas `/solution` em cada lição orientada por projeto. +- Faça o questionário pós-entrevista. - Complete o desafio. -- Complete o exercício. -- Depois de completar um grupo de aulas, visite o [Fórum de Discussão](https://github.com/microsoft/ML-For-Beginners/discussions) e "aprenda em voz alta" preenchendo a rubrica PAT apropriada. Um 'PAT' é uma Ferramenta de Avaliação de Progresso que é uma rubrica que preenche para aprofundar o seu aprendizado. Pode também reagir a outras PATs para aprendermos juntos. +- Complete a tarefa. +- Depois de completar um grupo de lições, visite o [Fórum de Discussão](https://github.com/microsoft/ML-For-Beginners/discussions) e "aprenda em voz alta" preenchendo a rubrica PAT apropriada. Um 'PAT' é uma Ferramenta de Avaliação de Progresso que preenche para aprofundar a aprendizagem. Também pode reagir a outras PATs para aprendermos juntos. -> Para estudo adicional, recomendamos seguir estes módulos e percursos de aprendizagem do [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Para estudo adicional, recomendamos seguir estes módulos e trajetos de aprendizagem [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Professores**, incluímos algumas [sugestões](for-teachers.md) sobre como usar este currículo. +**Professores**, temos [algumas sugestões](for-teachers.md) sobre como usar este currículo. --- ## Vídeos explicativos -Algumas das aulas estão disponíveis em formato de vídeo curto. Pode encontrar todos estes vídeos integrados nas aulas, ou na [playlist ML for Beginners no canal Microsoft Developer no YouTube](https://aka.ms/ml-beginners-videos) clicando na imagem abaixo. +Algumas das lições estão disponíveis em formato vídeo curto. Pode encontrá-los incorporados nas lições ou na [playlist ML for Beginners no canal Microsoft Developer no YouTube](https://aka.ms/ml-beginners-videos) clicando na imagem abaixo. [![ML for beginners banner](../../translated_images/pt-PT/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -97,74 +97,74 @@ Algumas das aulas estão disponíveis em formato de vídeo curto. Pode encontrar ## Conheça a Equipa -[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Vídeo promocional](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif por** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Clique na imagem acima para ver um vídeo sobre o projeto e as pessoas que o criaram! +> 🎥 Clique na imagem acima para um vídeo sobre o projeto e as pessoas que o criaram! --- ## Pedagogia -Escolhemos dois princípios pedagógicos ao construir este currículo: garantir que é prático e **baseado em projetos** e que inclui **quizzes frequentes**. Além disso, este currículo tem um **tema** comum para lhe dar coerência. +Escolhemos dois princípios pedagógicos ao construir este currículo: garantir que é prático **baseado em projetos** e que inclui **questionários frequentes**. Além disso, este currículo tem um **tema comum** para lhe dar coesão. -Garantindo que o conteúdo está alinhado com projetos, o processo torna-se mais envolvente para os estudantes e a retenção dos conceitos será aumentada. Além disso, um quiz de baixo risco antes da aula define a intenção do estudante para aprender um tópico, enquanto um segundo quiz após a aula assegura uma maior retenção. Este currículo foi concebido para ser flexível e divertido, podendo ser seguido na totalidade ou em partes. Os projetos começam pequenos e tornam-se progressivamente mais complexos até ao fim do ciclo de 12 semanas. Este currículo inclui ainda um pós-escrito sobre aplicações reais de ML, que pode ser usado como crédito extra ou base para discussão. +Ao garantir que o conteúdo esteja alinhado com os projetos, o processo torna-se mais envolvente para os estudantes e a retenção de conceitos será aumentada. Além disso, um questionário de baixo risco antes da aula define a intenção do estudante para aprender o tema, enquanto um segundo questionário após a aula assegura maior retenção. Este currículo foi desenhado para ser flexível e divertido e pode ser feito na totalidade ou em parte. Os projetos começam pequenos e tornam-se progressivamente mais complexos até ao final do ciclo de 12 semanas. Este currículo inclui também um posfácio sobre aplicações reais de ML, que pode ser usado como crédito extra ou como base para discussão. -> Encontre as nossas diretrizes de [Código de Conduta](CODE_OF_CONDUCT.md), [Contribuições](CONTRIBUTING.md), [Traduções](..) e [Resolução de Problemas](TROUBLESHOOTING.md). Agradecemos o seu feedback construtivo! +> Consulte as nossas diretrizes [Código de Conduta](CODE_OF_CONDUCT.md), [Contribuir](CONTRIBUTING.md), [Traduções](..), e [Resolução de Problemas](TROUBLESHOOTING.md). Agradecemos o seu feedback construtivo! -## Cada aula inclui +## Cada lição inclui -- esboço opcional +- sketchnote opcional - vídeo suplementar opcional -- vídeo explicativo (apenas algumas aulas) -- [quiz de preparação pré-aula](https://ff-quizzes.netlify.app/en/ml/) +- vídeo explicativo (algumas lições apenas) +- [questionário pré-aula](https://ff-quizzes.netlify.app/en/ml/) - lição escrita -- para aulas baseadas em projetos, guias passo a passo para construir o projeto -- pontos de verificação de conhecimento +- para lições baseadas em projetos, guias passo a passo de como construir o projeto +- verificações de conhecimento - um desafio - leitura suplementar -- exercício -- [quiz pós-aula](https://ff-quizzes.netlify.app/en/ml/) - -> **Uma nota sobre idiomas**: Estas aulas são principalmente escritas em Python, mas muitas também estão disponíveis em R. Para completar uma aula em R, vá à pasta `/solution` e procure as aulas em R. Estas incluem a extensão .rmd que representa um ficheiro **R Markdown**, que pode ser simplesmente definido como uma incorporação de `blocos de código` (de R ou outras linguagens) e um `cabeçalho YAML` (que orienta como formatar os outputs, como PDF) num `documento Markdown`. Como tal, serve como um excelente framework para autoria em ciência de dados, pois permite combinar o código, o seu output e os seus pensamentos, permitindo escrevê-los em Markdown. Para além disso, os documentos R Markdown podem ser renderizados para formatos de output como PDF, HTML ou Word. -> **Uma nota sobre quizzes**: Todos os quizzes estão contidos na [pasta Quiz App](../../quiz-app), totalizando 52 quizzes de três perguntas cada um. Eles são ligados a partir das lições, mas a app de quizzes pode ser executada localmente; siga as instruções na pasta `quiz-app` para hospedar localmente ou implantar no Azure. - -| Número da Lição | Tópico | Agrupamento da Lição | Objetivos de Aprendizagem | Lição Ligada | Autor | -| :-------------: | :------------------------------------------------------------: | :---------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :---------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------: | -| 01 | Introdução ao machine learning | [Introdução](1-Introduction/README.md) | Aprender os conceitos básicos por detrás do machine learning | [Lição](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | A História do machine learning | [Introdução](1-Introduction/README.md) | Aprender a história por detrás desta área | [Lição](1-Introduction/2-history-of-ML/README.md) | Jen e Amy | -| 03 | Justiça e machine learning | [Introdução](1-Introduction/README.md) | Quais são as questões filosóficas importantes sobre justiça que os alunos devem considerar ao construir e aplicar modelos ML? | [Lição](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Técnicas para machine learning | [Introdução](1-Introduction/README.md) | Que técnicas os investigadores de ML usam para construir modelos de ML? | [Lição](1-Introduction/4-techniques-of-ML/README.md) | Chris e Jen | -| 05 | Introdução à regressão | [Regressão](2-Regression/README.md) | Começar com Python e Scikit-learn para modelos de regressão | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Preços da abóbora na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Visualizar e limpar dados em preparação para ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Preços da abóbora na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Construir modelos de regressão linear e polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen e Dmitry • Eric Wanjau | -| 08 | Preços da abóbora na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Construir um modelo de regressão logística | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Uma Web App 🔌 | [Web App](3-Web-App/README.md) | Construir uma web app para usar o seu modelo treinado | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introdução à classificação | [Classificação](4-Classification/README.md) | Limpar, preparar e visualizar os seus dados; introdução à classificação | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen e Cassie • Eric Wanjau | -| 11 | Cozinhas asiáticas e indianas deliciosas 🍜 | [Classificação](4-Classification/README.md) | Introdução aos classificadores | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen e Cassie • Eric Wanjau | -| 12 | Cozinhas asiáticas e indianas deliciosas 🍜 | [Classificação](4-Classification/README.md) | Mais classificadores | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen e Cassie • Eric Wanjau | -| 13 | Cozinhas asiáticas e indianas deliciosas 🍜 | [Classificação](4-Classification/README.md) | Construir uma web app recomendadora usando o seu modelo | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introdução à clusterização | [Clusterização](5-Clustering/README.md) | Limpar, preparar e visualizar os seus dados; Introdução à clusterização | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Explorar gostos musicais nigerianos 🎧 | [Clusterização](5-Clustering/README.md) | Explorar o método de clusterização K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introdução ao processamento de linguagem natural ☕️ | [Processamento de linguagem natural](6-NLP/README.md) | Aprender o básico sobre PLN construindo um bot simples | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Tarefas comuns de PLN ☕️ | [Processamento de linguagem natural](6-NLP/README.md) | Aprofunde o seu conhecimento em PLN entendendo as tarefas comuns necessárias ao lidar com estruturas linguísticas | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Tradução e análise de sentimento ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Tradução e análise de sentimento com Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hotéis românticos da Europa ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Análise de sentimento com avaliações de hotéis 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hotéis românticos da Europa ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Análise de sentimento com avaliações de hotéis 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introdução à previsão em séries temporais | [Séries Temporais](7-TimeSeries/README.md) | Introdução à previsão em séries temporais | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Uso Mundial de Energia ⚡️ - previsão em séries temporais com ARIMA | [Séries Temporais](7-TimeSeries/README.md) | Previsão em séries temporais com ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Uso Mundial de Energia ⚡️ - previsão em séries temporais com SVR | [Séries Temporais](7-TimeSeries/README.md) | Previsão em séries temporais com Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introdução ao reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Introdução ao reinforcement learning com Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Ajuda o Peter a evitar o lobo! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym de reinforcement learning | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Posfácio | Cenários e aplicações de ML no mundo real | [ML in the Wild](9-Real-World/README.md) | Aplicações interessantes e reveladoras do ML clássico | [Lição](9-Real-World/1-Applications/README.md) | Equipa | -| Posfácio | Depuração de modelos em ML usando dashboard RAI | [ML in the Wild](9-Real-World/README.md) | Depuração de modelos em Machine Learning usando componentes do dashboard Responsible AI | [Lição](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- tarefa +- [questionário pós-aula](https://ff-quizzes.netlify.app/en/ml/) +> **Uma nota sobre linguagens**: Estas lições são principalmente escritas em Python, mas muitas também estão disponíveis em R. Para completar uma lição em R, vá à pasta `/solution` e procure pelas lições em R. Elas incluem uma extensão .rmd que representa um ficheiro **R Markdown**, o qual pode ser simplesmente definido como uma incorporação de `blocos de código` (de R ou outras linguagens) e um `cabeçalho YAML` (que orienta como formatar saídas como PDF) num `documento Markdown`. Como tal, serve como uma estrutura exemplar de escrita para ciência de dados, pois permite combinar o seu código, a sua saída e as suas ideias ao possibilitar que as escreva em Markdown. Além disso, documentos R Markdown podem ser renderizados para formatos de saída como PDF, HTML ou Word. + +> **Uma nota sobre questionários**: Todos os questionários estão contidos na [pasta Quiz App](../../quiz-app), são 52 questionários no total, cada um com três questões. Eles estão ligados a partir das lições, mas a aplicação do questionário pode ser executada localmente; siga as instruções na pasta `quiz-app` para hospedar localmente ou para fazer deploy no Azure. + +| Número da Lições | Tópico | Agrupamento da Lição | Objetivos de Aprendizagem | Lição Ligada | Autor | +| :--------------: | :---------------------------------------------------------: | :----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------: | +| 01 | Introdução ao machine learning | [Introdução](1-Introduction/README.md) | Aprender os conceitos básicos por detrás do machine learning | [Lição](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | A História do machine learning | [Introdução](1-Introduction/README.md) | Aprender a história subjacente a esta área | [Lição](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Justiça e machine learning | [Introdução](1-Introduction/README.md) | Quais são as questões filosóficas importantes sobre justiça que os estudantes devem considerar ao construir e aplicar modelos ML? | [Lição](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Técnicas para machine learning | [Introdução](1-Introduction/README.md) | Quais técnicas os investigadores de ML usam para construir modelos ML? | [Lição](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Introdução à regressão | [Regressão](2-Regression/README.md) | Comece a usar Python e Scikit-learn para modelos de regressão | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Preços de abóboras na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Visualizar e limpar dados para preparação para ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Preços de abóboras na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Construir modelos de regressão linear e polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | Preços de abóboras na América do Norte 🎃 | [Regressão](2-Regression/README.md) | Construir um modelo de regressão logística | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Uma Web App 🔌 | [Web App](3-Web-App/README.md) | Construir uma aplicação web para usar o seu modelo treinado | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introdução à classificação | [Classificação](4-Classification/README.md) | Limpar, preparar e visualizar os seus dados; introdução à classificação | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | Cozinhas deliciosas asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Introdução a classificadores | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | Cozinhas deliciosas asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Mais classificadores | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | Cozinhas deliciosas asiáticas e indianas 🍜 | [Classificação](4-Classification/README.md) | Construir uma aplicação web recomendadora usando o seu modelo | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introdução a clustering | [Clustering](5-Clustering/README.md) | Limpar, preparar e visualizar os seus dados; Introdução a clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Explorar gostos musicais nigerianos 🎧 | [Clustering](5-Clustering/README.md) | Explorar o método de clustering K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introdução ao processamento de linguagem natural ☕️ | [Processamento de linguagem natural](6-NLP/README.md) | Aprenda o básico sobre PLN construindo um bot simples | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Tarefas comuns de PLN ☕️ | [Processamento de linguagem natural](6-NLP/README.md) | Aprofundar o seu conhecimento em PLN entendendo as tarefas comuns necessárias para lidar com estruturas linguísticas | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Tradução e análise de sentimento ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Tradução e análise de sentimento com Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hotéis românticos na Europa ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Análise de sentimento com críticas de hotéis 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hotéis românticos na Europa ♥️ | [Processamento de linguagem natural](6-NLP/README.md) | Análise de sentimento com críticas de hotéis 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introdução a previsão de séries temporais | [Séries temporais](7-TimeSeries/README.md) | Introdução à previsão de séries temporais | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Consumo mundial de energia ⚡️ - previsão de séries temporais com ARIMA | [Séries temporais](7-TimeSeries/README.md) | Previsão de séries temporais com ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Consumo mundial de energia ⚡️ - previsão de séries temporais com SVR | [Séries temporais](7-TimeSeries/README.md) | Previsão de séries temporais com Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introdução ao aprendizado por reforço | [Aprendizado por reforço](8-Reinforcement/README.md) | Introdução ao aprendizado por reforço com Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Ajude o Peter a evitar o lobo! 🐺 | [Aprendizado por reforço](8-Reinforcement/README.md) | Aprendizado por reforço com Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Pós-escrito | Cenários e aplicações reais de ML | [ML no Mundo Real](9-Real-World/README.md) | Aplicações interessantes e reveladoras no mundo real de ML clássico | [Lição](9-Real-World/1-Applications/README.md) | Equipa | +| Pós-escrito | Debugging de modelo em ML usando dashboard RAI | [ML no Mundo Real](9-Real-World/README.md) | Debugging de modelo em machine learning usando componentes do dashboard Responsible AI | [Lição](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [encontre todos os recursos adicionais para este curso na nossa coleção Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Acesso offline -Pode executar esta documentação offline usando [Docsify](https://docsify.js.org/#/). Faça um fork deste repositório, [instale o Docsify](https://docsify.js.org/#/quickstart) na sua máquina local, e depois na pasta raiz deste repositório, digite `docsify serve`. O site será servido na porta 3000 no seu localhost: `localhost:3000`. +Pode executar esta documentação offline usando [Docsify](https://docsify.js.org/#/). Faça um fork deste repositório, [instale o Docsify](https://docsify.js.org/#/quickstart) na sua máquina local e depois, na pasta raiz deste repositório, escreva `docsify serve`. O site será servido na porta 3000 no seu localhost: `localhost:3000`. ## PDFs @@ -173,66 +173,66 @@ Encontre um pdf do currículo com links [aqui](https://microsoft.github.io/ML-Fo ## 🎒 Outros Cursos -A nossa equipa produz outros cursos! Veja: +A nossa equipa produz outros cursos! Confira: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j para Iniciantes](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js para Iniciantes](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain para Iniciantes](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agentes -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agents +[![AZD para Iniciantes](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI para Iniciantes](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP para Principiantes](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Agentes de IA para Principiantes](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- - + ### Série de IA Generativa -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![IA Generativa para Principiantes](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![IA Generativa (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![IA Generativa (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![IA Generativa (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Aprendizagem Principal -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Aprendizagem Fundamental +[![ML para Principiantes](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Ciência de Dados para Principiantes](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![IA para Principiantes](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cibersegurança para Principiantes](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Desenvolvimento Web para Principiantes](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT para Principiantes](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Desenvolvimento XR para Principiantes](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Série Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot para Programação em Par com IA](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot para C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Aventura Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Obter Ajuda -Se ficar preso ou tiver alguma questão sobre como construir aplicações de IA. Junte-se a outros alunos e desenvolvedores experientes nas discussões sobre MCP. É uma comunidade de apoio onde as perguntas são bem-vindas e o conhecimento é partilhado livremente. +Se ficar bloqueado ou tiver alguma dúvida sobre como criar aplicações de IA. Junte-se a outros aprendizes e programadores experientes em discussões sobre o MCP. É uma comunidade de apoio onde as perguntas são bem-vindas e o conhecimento é partilhado livremente. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Se tiver feedback sobre produtos ou erros durante a construção visite: +Se tiver feedback sobre produtos ou erros durante a construção, visite: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Dicas Adicionais de Aprendizagem -- Reveja os notebooks após cada lição para uma melhor compreensão. +- Reveja os cadernos após cada aula para melhor compreensão. - Pratique implementar algoritmos por conta própria. -- Explore conjuntos de dados reais utilizando os conceitos aprendidos. +- Explore conjuntos de dados do mundo real usando os conceitos aprendidos. --- **Aviso Legal**: -Este documento foi traduzido utilizando o serviço de tradução automática [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos por garantir a precisão, esteja ciente de que as traduções automáticas podem conter erros ou imprecisões. O documento original, na sua língua nativa, deve ser considerado a fonte oficial. Para informações críticas, recomenda-se a tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução. +Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos pela precisão, por favor note que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações erradas resultantes da utilização desta tradução. \ No newline at end of file diff --git a/translations/ro/.co-op-translator.json b/translations/ro/.co-op-translator.json index 2c285fd7c..03f7c7b1d 100644 --- a/translations/ro/.co-op-translator.json +++ b/translations/ro/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ro" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:25:43+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:20:21+00:00", "source_file": "README.md", "language_code": "ro" }, diff --git a/translations/ro/README.md b/translations/ro/README.md index 91beb0b62..2acbd573d 100644 --- a/translations/ro/README.md +++ b/translations/ro/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Suport Multi-Limbă +### 🌐 Suport Multilingv -#### Suportat prin GitHub Action (automatizat și întotdeauna actualizat) +#### Susținut prin GitHub Action (Automatizat & Întotdeauna Actualizat) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](./README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgaria](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](./README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Preferi să clonezi local?** +> **Preferi să Clonezi Local?** > -> Acest depozit include peste 50 de traduceri în limbi diferite, ceea ce crește semnificativ dimensiunea descărcării. Pentru a clona fără traduceri, folosește sparse checkout: +> Acest depozit include peste 50 de traduceri în diferite limbi, ceea ce crește semnificativ dimensiunea descărcării. Pentru a clona fără traduceri, folosește sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Aceasta îți oferă tot ce ai nevoie pentru a finaliza cursul cu o descărcare mult mai rapidă. +> Astfel obții tot ce ai nevoie pentru a finaliza cursul cu o descărcare mult mai rapidă. #### Alătură-te Comunității Noastre [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Avem o serie ongoing pe Discord despre învățarea cu AI, află mai multe și alătură-te la [Seria Learn with AI](https://aka.ms/learnwithai/discord) în perioada 18 - 30 septembrie 2025. Vei primi sfaturi și trucuri pentru folosirea GitHub Copilot în Știința Datelor. +Avem o serie de învățare pe Discord despre AI în desfășurare, află mai multe și alătură-te nouă la [Learn with AI Series](https://aka.ms/learnwithai/discord) în perioada 18 - 30 septembrie 2025. Vei primi sfaturi și trucuri despre utilizarea GitHub Copilot pentru Data Science. ![Learn with AI series](../../translated_images/ro/3.9b58fd8d6c373c20.webp) # Învățare Automată pentru Începători - Un Curriculum -> 🌍 Călătorește în jurul lumii explorând Învățarea Automată prin intermediul culturilor lumii 🌍 +> 🌍 Călătorește în jurul lumii în timp ce explorăm Învățarea Automată prin culturi ale lumii 🌍 -Cloud Advocates de la Microsoft sunt încântați să ofere un curriculum de 12 săptămâni cu 26 de lecții despre **Învățarea Automată**. În acest curriculum, vei învăța despre ceea ce uneori este numit **învățarea automată clasică**, folosind în principal biblioteca Scikit-learn și evitând deep learning-ul, care este acoperit în curriculumul nostru [AI for Beginners](https://aka.ms/ai4beginners). Combină aceste lecții cu curriculumul nostru ['Data Science for Beginners'](https://aka.ms/ds4beginners)! +Cloud Advocates de la Microsoft sunt încântați să ofere un curriculum de 12 săptămâni, 26 de lecții, complet dedicat **Învățării Automate**. În acest curriculum, vei învăța despre ceea ce se numește uneori **învățare automată clasică**, folosind în principal Scikit-learn ca bibliotecă și evitând învățarea profundă, care este acoperită în curriculumul nostru [AI pentru Începători](https://aka.ms/ai4beginners). Combină aceste lecții cu curriculumul nostru ['Data Science pentru Începători'](https://aka.ms/ds4beginners) totodată! -Călătorește cu noi în jurul lumii în timp ce aplicăm aceste tehnici clasice pe date din multe regiuni. Fiecare lecție include teste înainte și după lecție, instrucțiuni scrise pentru completarea lecției, o soluție, o temă și altele. Pedagogia noastră bazată pe proiecte îți permite să înveți construind, o metodă dovedită pentru a fixa noile aptitudini. +Călătorește alături de noi în jurul lumii aplicând aceste tehnici clasice pe date din diverse regiuni ale globului. Fiecare lecție include chestionare pre și post-lectură, instrucțiuni scrise pentru completarea lecției, o soluție, o temă și multe altele. Pedagogia noastră bazată pe proiecte îți permite să înveți construind, o metodă dovedită pentru a fixa noile cunoștințe. -**✍️ Mulțumiri sincere autorilor noștri** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu și Amy Boyd +**✍️ Mulțumiri călduroase autorilor noștri** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu și Amy Boyd **🎨 Mulțumiri de asemenea ilustratorilor noștri** Tomomi Imura, Dasani Madipalli și Jen Looper -**🙏 Mulțumiri speciale 🙏 ambasadorilor Microsoft Student care sunt autori, recenzenți și contribuitori de conținut**, în special Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila și Snigdha Agarwal +**🙏 Mulțumiri speciale 🙏 ambasadorilor studenți Microsoft autori, recenzori și contribuitori de conținut**, în special Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila și Snigdha Agarwal -**🤩 Recunoștință suplimentară ambasadorilor Microsoft Student Eric Wanjau, Jasleen Sondhi și Vidushi Gupta pentru lecțiile noastre în R!** +**🤩 Mulțumiri suplimentare ambasadorilor studenți Microsoft Eric Wanjau, Jasleen Sondhi și Vidushi Gupta pentru lecțiile R!** -# Începutul +# Începeți -Urmează acești pași: -1. **Fork la Repository:** Apasă pe butonul „Fork” din colțul din dreapta sus al acestei pagini. -2. **Clonează Repository-ul:** `git clone https://github.com/microsoft/ML-For-Beginners.git` +Urmați acești pași: +1. **Fă o Fork a Repozitoriului**: Apasă pe butonul "Fork" din colțul din dreapta sus al acestei pagini. +2. **Clonează Repozitoriul**: `git clone https://github.com/microsoft/ML-For-Beginners.git` > [găsește toate resursele suplimentare pentru acest curs în colecția noastră Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Ai nevoie de ajutor?** Consultă [Ghidul nostru de depanare](TROUBLESHOOTING.md) pentru soluții la probleme comune de instalare, configurare și rulare a lecțiilor. +> 🔧 **Ai nevoie de ajutor?** Consultă [Ghidul de depanare](TROUBLESHOOTING.md) pentru soluții la probleme comune cu instalarea, configurarea și rularea lecțiilor. -**[Studenți](https://aka.ms/student-page)**, pentru a folosi acest curriculum, faceți fork la întregul repo în contul vostru GitHub și finalizați exercițiile pe cont propriu sau în grup: +**[Studenți](https://aka.ms/student-page)**, pentru a folosi acest curriculum, fă fork la întregul repo pe contul tău GitHub și realizează exercițiile singur sau în grup: -- Începeți cu un quiz înainte de lecție. -- Citiți lecția și completați activitățile, oprindu-vă și reflectând la fiecare verificare a cunoștințelor. -- Încercați să creați proiectele înțelegând lecțiile, mai degrabă decât rulând codul soluției; oricum, codul este disponibil în folderele `/solution` ale fiecărei lecții orientate pe proiect. -- Luați quizul după lecție. -- Finalizați provocarea. -- Finalizați tema. -- După finalizarea unui grup de lecții, vizitați [Forumurile de discuții](https://github.com/microsoft/ML-For-Beginners/discussions) și „învățați cu voce tare” completând rubricile PAT corespunzătoare. Un 'PAT' este un Instrument de Evaluare a Progresului, o rubrică pe care o completați pentru a vă continua învățarea. Puteți de asemenea reacționa la alte PAT-uri pentru a învăța împreună. +- Începe cu un chestionar înainte de lectură. +- Citește lecția și completează activitățile, oprindu-te și reflectând la fiecare verificare a cunoștințelor. +- Încearcă să creezi proiectele înțelegând lecțiile mai degrabă decât rulând codul soluției; totuși codul este disponibil în folderele `/solution` din fiecare lecție orientată spre proiect. +- Dă chestionarul după lectură. +- Completează provocarea. +- Realizează tema. +- După finalizarea unui grup de lecții, vizitează [Discuțiile](https://github.com/microsoft/ML-For-Beginners/discussions) și "învăță cu voce tare" completând rubricile PAT corespunzătoare. Un 'PAT' este un Instrument de Evaluare a Progresului pe care îl completezi pentru a-ți aprofunda învățarea. Poți, de asemenea, să reacționezi la alți PAT-uri ca să învățăm împreună. -> Pentru studiu suplimentar, recomandăm urmarea acestor module și trasee de învățare [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Pentru studiu suplimentar, recomandăm urmarea acestor module și căi de învățare [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Profesori**, am [inclus unele sugestii](for-teachers.md) despre cum să folosiți acest curriculum. +**Profesori**, am inclus [câteva sugestii](for-teachers.md) despre cum să folosești acest curriculum. --- ## Prezentări video -Unele lecții sunt disponibile ca video scurt. Le puteți găsi în linie în lecții sau în [playlist-ul ML for Beginners pe canalul Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) dând clic pe imaginea de mai jos. +Unele lecții sunt disponibile sub formă de video-uri scurte. Le poți găsi în linie în lecții, sau pe [playlist-ul ML for Beginners de pe canalul Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) făcând clic pe imaginea de mai jos. [![ML for beginners banner](../../translated_images/ro/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -101,79 +101,79 @@ Unele lecții sunt disponibile ca video scurt. Le puteți găsi în linie în le **Gif de** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Click pe imaginea de mai sus pentru un video despre proiect și oamenii care l-au creat! +> 🎥 Fă clic pe imaginea de mai sus pentru un videoclip despre proiect și despre persoanele care l-au creat! --- ## Pedagogie -Am ales două principii pedagogice în construirea acestui curriculum: să fie **bazat pe proiecte practice** și să includă **teste frecvente**. În plus, acest curriculum are o **temă** comună pentru a-i oferi coeziune. +Am ales două principii pedagogice în crearea acestui curriculum: să fie practic **bazat pe proiecte** și să includă **chestionare frecvente**. În plus, acest curriculum are o **temă** comună pentru a-i oferi coeziune. -Prin alinierea conținutului cu proiectele, procesul devine mai captivant pentru studenți și retenția conceptelor se va îmbunătăți. Încă o dată, un quiz cu miză mică înainte de clasă setează intenția studentului către învățarea unui subiect, iar un al doilea quiz după clasă asigură o retenție suplimentară. Acest curriculum este proiectat să fie flexibil și distractiv și poate fi parcurs integral sau parțial. Proiectele încep mici și devin din ce în ce mai complexe până la finalul ciclului de 12 săptămâni. Curriculumul include și o postfață despre aplicațiile reale ale ML, ce poate fi folosită ca credit suplimentar sau bază pentru discuții. +Asigurând alinierea conținutului cu proiectele, procesul devine mai captivant pentru studenți și retenția conceptelor este augmentată. În plus, un chestionar cu miză scăzută înainte de clasă setează intenția studentului către învățarea unui subiect, iar un al doilea chestionar după clasă asigură retenția ulterioară. Acest curriculum a fost conceput să fie flexibil și distractiv și poate fi parcurs integral sau parțial. Proiectele încep mici și devin tot mai complexe până la finalul ciclului de 12 săptămâni. Curriculumul include, de asemenea, un postscript despre aplicațiile reale ale ML, care poate fi folosit ca credit suplimentar sau ca bază pentru discuție. -> Găsește [Codul nostru de conduită](CODE_OF_CONDUCT.md), [Contribuții](CONTRIBUTING.md), [Traduceri](..) și [Ghidul de depanare](TROUBLESHOOTING.md). Apreciem feedback-ul tău constructiv! +> Găsește regulile noastre în [Codul de conduită](CODE_OF_CONDUCT.md), [Contribuția](CONTRIBUTING.md), [Traduceri](..) și [Depanare](TROUBLESHOOTING.md). Apreciem feedbackul tău constructiv! ## Fiecare lecție include - sketchnote opțional - video suplimentar opțional -- prezentare video (doar unele lecții) -- [quiz de încălzire pre-lectură](https://ff-quizzes.netlify.app/en/ml/) +- prezentare video (doar la unele lecții) +- [chestionar de încălzire pre-lectură](https://ff-quizzes.netlify.app/en/ml/) - lecție scrisă -- pentru lecțiile bazate pe proiect, ghiduri pas-cu-pas pentru construirea proiectului +- pentru lecțiile bazate pe proiect, ghiduri pas cu pas pentru construirea proiectului - verificări de cunoștințe - o provocare -- lecturi suplimentare +- lectură suplimentară - temă -- [quiz post-lectură](https://ff-quizzes.netlify.app/en/ml/) +- [chestionar post-lectură](https://ff-quizzes.netlify.app/en/ml/) +> **O notă despre limbi**: Aceste lecții sunt scrise în principal în Python, dar multe sunt disponibile și în R. Pentru a finaliza o lecție în R, accesați folderul `/solution` și căutați lecțiile în R. Acestea includ o extensie .rmd care reprezintă un fișier **R Markdown**, care poate fi definit simplu ca o încorporare de `bucăți de cod` (în R sau alte limbi) și un `antet YAML` (care ghidează modul de a formata ieșirile, precum PDF) într-un `document Markdown`. Ca atare, servește ca un cadru exemplu pentru autorat în știința datelor deoarece vă permite să combinați codul dvs., rezultatele sale și gândurile dvs., permițându-vă să le scrieți în Markdown. Mai mult, documentele R Markdown pot fi redate în formate de ieșire precum PDF, HTML sau Word. -> **O notă despre limbi:** Aceste lecții sunt scrise în principal în Python, dar multe sunt disponibile și în R. Pentru a finaliza o lecție în R, accesează folderul `/solution` și caută lecțiile în R. Acestea includ extensia .rmd, care reprezintă un fișier **R Markdown** definit simplu ca o îmbinare între `fragmente de cod` (în R sau alte limbi) și un `header YAML` (care ghidează cum să fie formatate ieșirile, cum ar fi PDF) într-un `document Markdown`. Astfel, servește ca un cadru exemplar pentru autorii de știință a datelor, deoarece îți permite să combini codul, rezultatele sale și gândurile tale scriindu-le în Markdown. Mai mult, documentele R Markdown pot fi convertite în formate de ieșire precum PDF, HTML sau Word. -> **O notă despre quiz-uri**: Toate quiz-urile sunt conținute în [folderul Quiz App](../../quiz-app), pentru un total de 52 de quiz-uri cu câte trei întrebări fiecare. Ele sunt legate din lecții, dar aplicația de quiz poate fi rulată local; urmează instrucțiunile din folderul `quiz-app` pentru a găzdui local sau a implementa pe Azure. +> **O notă despre chestionare**: Toate chestionarele sunt conținute în [folderul Quiz App](../../quiz-app), în total 52 de chestionare a câte trei întrebări fiecare. Sunt legate din interiorul lecțiilor, dar aplicația de chestionare poate fi rulată local; urmați instrucțiunile din folderul `quiz-app` pentru a găzdui local sau a implementa pe Azure. -| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | +| Număr Lecție | Subiect | Grupare Lecții | Obiective de învățare | Lecția legată | Autor | | :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Introducere în învățarea automată | [Introduction](1-Introduction/README.md) | Învățați conceptele de bază din spatele învățării automate | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Istoria învățării automate | [Introduction](1-Introduction/README.md) | Aflați istoria care stă la baza acestui domeniu | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen și Amy | -| 03 | Corectitudine și învățarea automată | [Introduction](1-Introduction/README.md) | Care sunt problemele filozofice importante legate de corectitudine pe care studenții ar trebui să le ia în considerare la construirea și aplicarea modelelor ML? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Tehnici pentru învățarea automată | [Introduction](1-Introduction/README.md) | Ce tehnici folosesc cercetătorii ML pentru a construi modele ML? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris și Jen | -| 05 | Introducere în regresie | [Regression](2-Regression/README.md) | Începeți cu Python și Scikit-learn pentru modele de regresie | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Prețurile dovlecilor din America de Nord 🎃 | [Regression](2-Regression/README.md) | Vizualizați și curățați datele în pregătirea pentru ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Prețurile dovlecilor din America de Nord 🎃 | [Regression](2-Regression/README.md) | Construiește modele de regresie liniară și polinomială | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen și Dmitry • Eric Wanjau | -| 08 | Prețurile dovlecilor din America de Nord 🎃 | [Regression](2-Regression/README.md) | Construiește un model de regresie logistică | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | O aplicație web 🔌 | [Web App](3-Web-App/README.md) | Construiește o aplicație web pentru a utiliza modelul tău antrenat | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introducere în clasificare | [Classification](4-Classification/README.md) | Curăță, pregătește și vizualizează datele; introducere în clasificare | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen și Cassie • Eric Wanjau | -| 11 | Bucătării delicioase asiatice și indiene 🍜 | [Classification](4-Classification/README.md) | Introducere în clasificatori | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen și Cassie • Eric Wanjau | -| 12 | Bucătării delicioase asiatice și indiene 🍜 | [Classification](4-Classification/README.md) | Mai mulți clasificatori | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen și Cassie • Eric Wanjau | -| 13 | Bucătării delicioase asiatice și indiene 🍜 | [Classification](4-Classification/README.md) | Construiește o aplicație web de recomandare folosindu-ți modelul | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introducere în clustering | [Clustering](5-Clustering/README.md) | Curăță, pregătește și vizualizează datele; introducere în clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Explorarea gusturilor muzicale nigeriene 🎧 | [Clustering](5-Clustering/README.md) | Explorează metoda de clustering K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introducere în procesarea limbajului natural ☕️ | [Natural language processing](6-NLP/README.md) | Învață elementele de bază ale NLP construind un bot simplu | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Sarcini comune NLP ☕️ | [Natural language processing](6-NLP/README.md) | Adâncește-ți cunoștințele despre NLP prin înțelegerea sarcinilor comune necesare la lucrul cu structurile limbajului | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Traducere și analiză de sentiment ♥️ | [Natural language processing](6-NLP/README.md) | Traducere și analiză de sentiment cu Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hoteluri romantice din Europa ♥️ | [Natural language processing](6-NLP/README.md) | Analiză de sentiment cu recenzii la hoteluri 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hoteluri romantice din Europa ♥️ | [Natural language processing](6-NLP/README.md) | Analiză de sentiment cu recenzii la hoteluri 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introducere în prognoza seriilor temporale | [Time series](7-TimeSeries/README.md) | Introducere în prognoza seriilor temporale | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Consumul mondial de energie ⚡️ - prognoza seriilor cu ARIMA | [Time series](7-TimeSeries/README.md) | Prognoza seriilor temporale cu ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Consumul mondial de energie ⚡️ - prognoza seriilor cu SVR | [Time series](7-TimeSeries/README.md) | Prognoza seriilor temporale cu Regressor Vector Suport | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introducere în învățarea prin întărire | [Reinforcement learning](8-Reinforcement/README.md) | Introducere în învățarea prin întărire cu Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Ajută-l pe Peter să evite lupul! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Învățarea prin întărire Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Scenarii și aplicații ML în lumea reală | [ML in the Wild](9-Real-World/README.md) | Aplicații interesante și revelatoare ale ML clasic | [Lesson](9-Real-World/1-Applications/README.md) | Team | -| Postscript | Depanarea modelelor ML folosind dashboard-ul RAI | [ML in the Wild](9-Real-World/README.md) | Depanarea modelelor în Machine Learning folosind componentele dashboard-ului Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +| 01 | Introducere în învățarea automată | [Introducere](1-Introduction/README.md) | Învață conceptele de bază din spatele învățării automate | [Lecție](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Istoria învățării automate | [Introducere](1-Introduction/README.md) | Învață istoria domeniului | [Lecție](1-Introduction/2-history-of-ML/README.md) | Jen și Amy | +| 03 | Echitatea și învățarea automată | [Introducere](1-Introduction/README.md) | Care sunt problemele filosofice importante privind echitatea pe care studenții trebuie să le ia în considerare când construiesc și aplică modele ML? | [Lecție](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Tehnici pentru învățarea automată | [Introducere](1-Introduction/README.md) | Ce tehnici folosesc cercetătorii ML pentru a crea modele ML? | [Lecție](1-Introduction/4-techniques-of-ML/README.md) | Chris și Jen | +| 05 | Introducere în regresie | [Regresie](2-Regression/README.md) | Începe cu Python și Scikit-learn pentru modelele de regresie | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Vizualizează și curăță datele în pregătirea pentru ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Construiți modele de regresie liniară și polinomială | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen și Dmitry • Eric Wanjau | +| 08 | Prețurile dovlecilor din America de Nord 🎃 | [Regresie](2-Regression/README.md) | Construiți un model de regresie logistică | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | O aplicație web 🔌 | [Aplicație web](3-Web-App/README.md) | Construiți o aplicație web pentru a utiliza modelul antrenat | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introducere în clasificare | [Clasificare](4-Classification/README.md) | Curăță, pregătește și vizualizează datele; introducere în clasificare | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen și Cassie • Eric Wanjau | +| 11 | Bucătării delicioase din Asia și India 🍜 | [Clasificare](4-Classification/README.md) | Introducere în clasificatoare | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen și Cassie • Eric Wanjau | +| 12 | Bucătării delicioase din Asia și India 🍜 | [Clasificare](4-Classification/README.md) | Mai multe clasificatoare | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen și Cassie • Eric Wanjau | +| 13 | Bucătării delicioase din Asia și India 🍜 | [Clasificare](4-Classification/README.md) | Construiți o aplicație web recomandatoare folosind modelul dvs. | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introducere în clustering | [Clustering](5-Clustering/README.md) | Curăță, pregătește și vizualizează datele; Introducere în clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Explorarea gusturilor muzicale nigeriene 🎧 | [Clustering](5-Clustering/README.md) | Explorează metoda de clustering K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introducere în procesarea limbajului natural ☕️ | [Procesare limbaj natural](6-NLP/README.md) | Învață elementele de bază despre NLP construind un bot simplu | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Sarcini comune în NLP ☕️ | [Procesare limbaj natural](6-NLP/README.md) | Adâncește-ți cunoștințele despre NLP înțelegând sarcinile comune necesare pentru a gestiona structurile limbajului | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Traducere și analiza sentimentelor ♥️ | [Procesare limbaj natural](6-NLP/README.md) | Traducere și analiza sentimentelor cu Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hoteluri romantice din Europa ♥️ | [Procesare limbaj natural](6-NLP/README.md) | Analiza sentimentului cu recenzii de hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hoteluri romantice din Europa ♥️ | [Procesare limbaj natural](6-NLP/README.md) | Analiza sentimentului cu recenzii de hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introducere în prognoza seriilor temporale | [Serii temporale](7-TimeSeries/README.md) | Introducere în prognoza seriilor temporale | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Utilizarea puterii mondiale ⚡️ - prognoza seriilor cu ARIMA | [Serii temporale](7-TimeSeries/README.md) | Prognoza seriilor temporale cu ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Utilizarea puterii mondiale ⚡️ - prognoza seriilor cu SVR | [Serii temporale](7-TimeSeries/README.md) | Prognoza seriilor temporale cu regresor vector suport (Support Vector Regressor) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introducere în învățarea prin întărire | [Învățare prin întărire](8-Reinforcement/README.md) | Introducere în învățarea prin întărire utilizând Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Ajută-l pe Peter să evite lupul! 🐺 | [Învățare prin întărire](8-Reinforcement/README.md) | Învățare prin întărire Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Scenarii și aplicații ML din lumea reală | [ML în natură](9-Real-World/README.md) | Aplicații reale interesante și revelatoare ale ML clasice | [Lecție](9-Real-World/1-Applications/README.md) | Echipa | +| Postscript | Debugging-ul modelelor în ML folosind RAI dashboard | [ML în natură](9-Real-World/README.md) | Debugging în învățarea automată folosind componentele dashboard-ului Responsible AI | [Lecție](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [găsiți toate resursele suplimentare pentru acest curs în colecția noastră Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Acces offline -Puteți rula această documentație offline folosind [Docsify](https://docsify.js.org/#/). Faceți fork acestui repo, [instalați Docsify](https://docsify.js.org/#/quickstart) pe mașina locală, apoi în folderul rădăcină al acestui repo scrieți `docsify serve`. Site-ul va fi servit pe portul 3000 pe localhost-ul vostru: `localhost:3000`. +Puteți rula această documentație offline folosind [Docsify](https://docsify.js.org/#/). Clonați acest depozit, [instalați Docsify](https://docsify.js.org/#/quickstart) pe mașina dvs. locală, apoi în folderul rădăcină al acestui repo, tastați `docsify serve`. Site-ul web va fi servit pe portul 3000 pe localhost-ul dvs.: `localhost:3000`. ## PDF-uri -Găsiți un pdf al curriculei cu linkuri [aici](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Găsiți un pdf al curriculumului cu linkuri [aici](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Alte cursuri -Echipa noastră produce și alte cursuri! Aruncă o privire: +Echipa noastră produce și alte cursuri! Verificați: ### LangChain @@ -182,57 +182,57 @@ Echipa noastră produce și alte cursuri! Aruncă o privire: [![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agenți +### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP pentru Începători](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Agenți AI pentru Începători](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Seria Generative AI -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Seria AI Generativ +[![AI Generativ pentru Începători](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Generativ (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![AI Generativ (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![AI Generativ (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Învățare de bază -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML pentru Începători](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Știința Datelor pentru Începători](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI pentru Începători](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Securitate Cibernetică pentru Începători](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Dezvoltare Web pentru Începători](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT pentru Începători](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Dezvoltare XR pentru Începători](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Seria Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot pentru Programare AI Asistată](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot pentru C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Aventura Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Obținerea de ajutor +## Obținerea Ajutorului -Dacă întâmpini dificultăți sau ai întrebări despre construirea aplicațiilor AI. Alătură-te altor cursanți și dezvoltatori experimentați în discuții despre MCP. Este o comunitate de suport unde întrebările sunt binevenite și cunoștințele sunt împărtășite liber. +Dacă întâmpini dificultăți sau ai întrebări despre construirea aplicațiilor AI, alătură-te altor cursanți și dezvoltatori experimentați în discuții despre MCP. Este o comunitate suportivă unde întrebările sunt binevenite și cunoștințele sunt împărtășite liber. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Dacă ai feedback despre produs sau erori în timpul construirii, vizitează: +Dacă ai feedback despre produs sau întâmpini erori în timpul dezvoltării vizitează: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Sfaturi suplimentare pentru învățare +## Sfaturi Suplimentare pentru Învățare -- Recapitulează caietele după fiecare lecție pentru o înțelegere mai bună. +- Revizuiește caietele după fiecare lecție pentru o înțelegere mai bună. - Exersează implementarea algoritmilor pe cont propriu. -- Explorează seturi de date reale folosind conceptele învățate. +- Explorează seturi reale de date folosind conceptele învățate. --- -**Avertisment**: -Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să rețineți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru eventualele neînțelegeri sau interpretări greșite rezultate din utilizarea acestei traduceri. +**Declinare a responsabilității**: +Acest document a fost tradus folosind serviciul de traducere AI [Co-op Translator](https://github.com/Azure/co-op-translator). Deși ne străduim pentru acuratețe, vă rugăm să fiți conștienți că traducerile automate pot conține erori sau inexactități. Documentul original în limba sa nativă trebuie considerat sursa autorizată. Pentru informații critice, se recomandă traducerea profesională realizată de un specialist uman. Nu ne asumăm răspunderea pentru orice neînțelegeri sau interpretări greșite care pot apărea ca urmare a utilizării acestei traduceri. \ No newline at end of file diff --git a/translations/ru/.co-op-translator.json b/translations/ru/.co-op-translator.json index ce02817e1..3305ff95c 100644 --- a/translations/ru/.co-op-translator.json +++ b/translations/ru/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ru" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:28:39+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:51:22+00:00", "source_file": "README.md", "language_code": "ru" }, diff --git a/translations/ru/README.md b/translations/ru/README.md index dccf53dfa..0d79530d9 100644 --- a/translations/ru/README.md +++ b/translations/ru/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Поддержка нескольких языков +### 🌐 Многоязычная поддержка -#### Поддерживается через GitHub Action (автоматически и всегда актуально) +#### Поддерживается через GitHub Action (Автоматически и всегда актуально) -[Арабский](../ar/README.md) | [Бенгальский](../bn/README.md) | [Болгарский](../bg/README.md) | [Бирманский (Мьянма)](../my/README.md) | [Китайский (упрощённый)](../zh-CN/README.md) | [Китайский (традиционный, Гонконг)](../zh-HK/README.md) | [Китайский (традиционный, Макао)](../zh-MO/README.md) | [Китайский (традиционный, Тайвань)](../zh-TW/README.md) | [Хорватский](../hr/README.md) | [Чешский](../cs/README.md) | [Датский](../da/README.md) | [Нидерландский](../nl/README.md) | [Эстонский](../et/README.md) | [Финский](../fi/README.md) | [Французский](../fr/README.md) | [Немецкий](../de/README.md) | [Греческий](../el/README.md) | [Иврит](../he/README.md) | [Хинди](../hi/README.md) | [Венгерский](../hu/README.md) | [Индонезийский](../id/README.md) | [Итальянский](../it/README.md) | [Японский](../ja/README.md) | [Каннада](../kn/README.md) | [Корейский](../ko/README.md) | [Литовский](../lt/README.md) | [Малайский](../ms/README.md) | [Малаялам](../ml/README.md) | [Марати](../mr/README.md) | [Непальский](../ne/README.md) | [Нигерийский пиджин](../pcm/README.md) | [Норвежский](../no/README.md) | [Персидский (фарси)](../fa/README.md) | [Польский](../pl/README.md) | [Португальский (Бразилия)](../pt-BR/README.md) | [Португальский (Португалия)](../pt-PT/README.md) | [Пенджабский (гурмукхи)](../pa/README.md) | [Румынский](../ro/README.md) | [Русский](./README.md) | [Сербский (кириллица)](../sr/README.md) | [Словацкий](../sk/README.md) | [Словенский](../sl/README.md) | [Испанский](../es/README.md) | [Свахили](../sw/README.md) | [Шведский](../sv/README.md) | [Тагалог (филиппинский)](../tl/README.md) | [Тамильский](../ta/README.md) | [Телугу](../te/README.md) | [Тайский](../th/README.md) | [Турецкий](../tr/README.md) | [Украинский](../uk/README.md) | [Урду](../ur/README.md) | [Вьетнамский](../vi/README.md) +[Арабский](../ar/README.md) | [Бенгальский](../bn/README.md) | [Болгарский](../bg/README.md) | [Бирманский (Мьянма)](../my/README.md) | [Китайский (упрощённый)](../zh-CN/README.md) | [Китайский (традиционный, Гонконг)](../zh-HK/README.md) | [Китайский (традиционный, Макао)](../zh-MO/README.md) | [Китайский (традиционный, Тайвань)](../zh-TW/README.md) | [Хорватский](../hr/README.md) | [Чешский](../cs/README.md) | [Датский](../da/README.md) | [Нидерландский](../nl/README.md) | [Эстонский](../et/README.md) | [Финский](../fi/README.md) | [Французский](../fr/README.md) | [Немецкий](../de/README.md) | [Греческий](../el/README.md) | [Иврит](../he/README.md) | [Хинди](../hi/README.md) | [Венгерский](../hu/README.md) | [Индонезийский](../id/README.md) | [Итальянский](../it/README.md) | [Японский](../ja/README.md) | [Каннада](../kn/README.md) | [Кхмер](../km/README.md) | [Корейский](../ko/README.md) | [Литовский](../lt/README.md) | [Малайский](../ms/README.md) | [Малаялам](../ml/README.md) | [Марати](../mr/README.md) | [Непальский](../ne/README.md) | [Нигерийский Пиджин](../pcm/README.md) | [Норвежский](../no/README.md) | [Персидский (Фарси)](../fa/README.md) | [Польский](../pl/README.md) | [Португальский (Бразилия)](../pt-BR/README.md) | [Португальский (Португалия)](../pt-PT/README.md) | [Панджаби (Гурмукхи)](../pa/README.md) | [Румынский](../ro/README.md) | [Русский](./README.md) | [Сербский (кириллица)](../sr/README.md) | [Словацкий](../sk/README.md) | [Словенский](../sl/README.md) | [Испанский](../es/README.md) | [Суахили](../sw/README.md) | [Шведский](../sv/README.md) | [Тагалог (Филиппины)](../tl/README.md) | [Тамильский](../ta/README.md) | [Телугу](../te/README.md) | [Тайский](../th/README.md) | [Турецкий](../tr/README.md) | [Украинский](../uk/README.md) | [Урду](../ur/README.md) | [Вьетнамский](../vi/README.md) > **Предпочитаете клонировать локально?** > -> Этот репозиторий содержит более 50 переводов на разные языки, что значительно увеличивает размер загрузки. Чтобы клонировать без переводов, используйте разреженную загрузку: +> Этот репозиторий включает более 50 переводов, что значительно увеличивает размер загрузки. Чтобы клонировать без переводов, используйте sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -40,7 +40,7 @@ [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Мы проводим серию в Discord "Учимся с ИИ", узнавайте больше и присоединяйтесь к нам на [Learn with AI Series](https://aka.ms/learnwithai/discord) с 18 по 30 сентября 2025 года. Вы получите советы и рекомендации по использованию GitHub Copilot для Data Science. +У нас продолжается серия в Discord «Учимся с ИИ», узнайте больше и присоединяйтесь к нам на [Learn with AI Series](https://aka.ms/learnwithai/discord) с 18 по 30 сентября 2025 года. Вы получите советы и рекомендации по использованию GitHub Copilot для Data Science. ![Learn with AI series](../../translated_images/ru/3.9b58fd8d6c373c20.webp) @@ -48,132 +48,132 @@ > 🌍 Путешествуйте по миру, изучая машинное обучение через призму культур разных стран 🌍 -Облачные специалисты Microsoft рады предложить 12-недельный курс из 26 уроков, посвящённый **машинному обучению**. В этом курсе вы узнаете о так называемом **классическом машинном обучении**, преимущественно используя библиотеку Scikit-learn и избегая глубокого обучения, которое рассматривается в нашем курсе [AI для начинающих](https://aka.ms/ai4beginners). Совмещайте эти уроки с нашим курсом ['Data Science для начинающих'](https://aka.ms/ds4beginners)! +Cloud Advocates в Microsoft рады предложить 12-недельную программу из 26 уроков, посвящённую **Машинному обучению**. В этой программе вы познакомитесь с тем, что иногда называют **классическим машинным обучением**, используя в основном библиотеку Scikit-learn и избегая глубокого обучения, которое рассматривается в нашей программе [ИИ для начинающих](https://aka.ms/ai4beginners). Сочетайте эти уроки с нашей программой ['Data Science для начинающих'](https://aka.ms/ds4beginners) для более полного обучения! -Путешествуйте с нами по всему миру, применяя классические методы к данным из различных регионов. Каждый урок включает в себя предварительный и итоговый тесты, письменные инструкции для выполнения урока, решения, задания и многое другое. Наш проектно-ориентированный подход позволяет учиться на практике — это проверенный способ хорошо усвоить новые навыки. +Путешествуйте с нами по миру, применяя классические методы к данным из разных регионов. Каждый урок включает предварительный и итоговый викторины, письменные инструкции по выполнению урока, решение, задание и многое другое. Наша проектно-ориентированная методика обучения позволяет учиться на практике — доказанный способ лучше усваивать новые навыки. -**✍️ Огромная благодарность нашим авторам** Джен Лупер, Стивен Хоул, Франческа Лазцери, Томоми Имура, Кэсси Бревиу, Дмитрий Сошников, Крис Норинг, Анирбан Мукерджи, Орнелла Алтуньян, Рут Якобу и Эми Бойд +**✍️ Сердечная благодарность нашим авторам:** Джен Лупер, Стивен Хауэлл, Франческа Лазцери, Томоми Имура, Кэсси Брэвью, Дмитрий Сошников, Крис Норинг, Анирбан Мукхерджи, Орнелла Альтуньян, Рут Якобу и Эми Бойд -**🎨 Также благодарим наших иллюстраторов** Томоми Имура, Дасани Мадипалли и Джен Лупер +**🎨 Спасибо также нашим иллюстраторам:** Томоми Имура, Дасани Мадипалли и Джен Лупер -**🙏 Особая благодарность 🙏 нашим студентам-амбассадорам Microsoft, авторам, рецензентам и контрибьюторам**, в частности Ришиту Дагли, Мухаммаду Сакибу Хану Инану, Рохану Раджу, Александру Петреску, Абхишеку Джайсвалу, Наврин Табассум, Иоану Самуила и Снигде Агарвал +**🙏 Особая благодарность 🙏 нашим студентам-амбассадорам Microsoft — авторам, рецензентам и участникам контента**, особенно Ришиту Дагли, Мухаммеду Сакибу Хану Инану, Рохану Радж, Александру Петреску, Абхишеку Джайсвалу, Наврин Табассум, Иоану Самуила и Снигдхе Агарвал -**🤩 Особые благодарности студентам-амбассадорам Microsoft Эрику Ваньау, Джаслин Сонди и Видуши Гупте за наши уроки по R!** +**🤩 Дополнительная благодарность студентам-амбассадорам Microsoft Эрику Ванджау, Джаслин Сонди и Видуши Гупте за уроки по R!** # Начало работы Выполните следующие шаги: -1. **Создайте форк репозитория**: Нажмите кнопку «Fork» в правом верхнем углу страницы. +1. **Форк репозитория**: Нажмите кнопку «Fork» в правом верхнем углу страницы. 2. **Клонируйте репозиторий**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [найдите все дополнительные ресурсы для этого курса в нашей коллекции Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [найдите все дополнительные ресурсы курса в нашей коллекции Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Нужна помощь?** Ознакомьтесь с нашим [руководством по устранению неполадок](TROUBLESHOOTING.md) для решения распространённых проблем с установкой, настройкой и запуском уроков. +> 🔧 **Нужна помощь?** Обратитесь к нашему [Руководству по устранению неполадок](TROUBLESHOOTING.md) для решения распространённых проблем с установкой, настройкой и выполнением уроков. -**[Студенты](https://aka.ms/student-page)**, чтобы использовать этот курс, сделайте форк всего репозитория на свой аккаунт GitHub и выполняйте упражнения самостоятельно или в группе: +**[Студенты](https://aka.ms/student-page)**, чтобы использовать эту программу, сделайте форк всего репозитория в свой аккаунт GitHub и выполняйте упражнения самостоятельно или в группе: -- Начинайте с предварительного теста. -- Читайте лекцию и выполняйте задания, останавливаясь для размышлений на каждом контроле знаний. -- Старайтесь создавать проекты, понимая уроки, а не просто запуская код из решений; однако этот код доступен в папках `/solution` каждого урока с проектом. -- Выполняйте итоговый тест. -- Выполните челлендж. -- Выполните задание. -- После завершения группы уроков посетите [Дискуссионную площадку](https://github.com/microsoft/ML-For-Beginners/discussions) и «изучайте вслух», заполнив соответствующий рубрикатор PAT. PAT — это инструмент для оценки прогресса, который помогает углубить обучение. Вы также можете реагировать на другие PAT, чтобы учиться вместе. +- Начинайте с предварительного опроса. +- Читайте лекцию и выполняйте задания, останавливаясь и размышляя на каждом пункте проверки знаний. +- Старайтесь создавать проекты, понимая уроки, а не просто запуская код решений; хотя код решений доступен в папках `/solution` каждого проектно-ориентированного урока. +- Пройдите итоговый опрос после лекции. +- Выполните challenge (сложное задание). +- Выполните домашнее задание. +- После завершения группы уроков посетите [Доску обсуждений](https://github.com/microsoft/ML-For-Beginners/discussions) и "учитесь вслух", заполнив соответствующий рубрикатор PAT. PAT — это инструмент оценки прогресса в обучении, который вы заполняете для углубления учебы. Вы также можете отзываться на чужие PAT, чтобы учиться вместе. -> Для дальнейшего изучения рекомендуем пройти эти [модули и пути обучения Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Для дальнейшего изучения рекомендуем пройти следующие [модули и учебные пути Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Учителя**, у нас есть [некоторые рекомендации](for-teachers.md) по использованию этого курса. +**Преподаватели**, мы включили [некоторые рекомендации](for-teachers.md) по использованию этой программы. --- -## Видео-разборы +## Видео-прохождение -Некоторые уроки доступны в виде коротких видео. Вы можете найти их встроенными в уроки, либо на [плейлисте ML for Beginners на YouTube-канале Microsoft Developer](https://aka.ms/ml-beginners-videos), нажав на изображение ниже. +Некоторые уроки доступны в формате коротких видео. Вы найдете их встроенными в уроки или на [плейлисте ML for Beginners на YouTube-канале Microsoft Developer](https://aka.ms/ml-beginners-videos), нажав на изображение ниже. [![ML for beginners banner](../../translated_images/ru/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Знакомьтесь с командой +## Команда [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Гиф по созданию** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Гифка от** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Нажмите на изображение выше, чтобы посмотреть видео о проекте и людях, которые его создали! +> 🎥 Нажмите на изображение выше, чтобы посмотреть видео о проекте и создателях! --- ## Педагогика -Мы выбрали два педагогических принципа при создании этого курса: обеспечить практическую **проектно-ориентированную** основу и включить **частые тесты**. Кроме того, у курса есть общая **тема** для создания единства. +Мы выбрали два педагогических принципа при создании этой программы: обеспечение практико-ориентированного **проектного обучения** и включение **частых викторин**. Кроме того, программа объединена общей **темой** для связности. -Обеспечение соответствия материала проектам делает процесс более увлекательным для студентов и помогает лучше усваивать знания. Низкоформатный тест перед занятием настраивает студента на изучение темы, а второй тест после занятия обеспечивает закрепление знаний. Курс разработан гибко и интересно, его можно проходить целиком или частично. Проекты начинаются с небольших и постепенно усложняются к концу 12-недельного цикла. В курсе также есть послесловие о реальных применениях МЛ, которое можно использовать для дополнительного задания или в качестве темы для обсуждения. +Обеспечивая соответствие контента проектам, процесс становится более увлекательным для студентов, и усвоение концепций улучшается. К тому же предварительный низкоуровневый опрос перед занятием задаёт настрой на изучение темы, а итоговый опрос после класса закрепляет новые знания. Программа разработана так, чтобы быть гибкой и интересной, её можно проходить полностью или частично. Проекты начинаются с малого и растут по сложности к концу 12-недельного цикла. Программа также включает послесловие о реальных применениях МО, что может использоваться как дополнительный материал или основа для обсуждения. -> Ознакомьтесь с нашим [Кодексом поведения](CODE_OF_CONDUCT.md), [Правилами участия](CONTRIBUTING.md), [Переводами](..) и [руководством по устранению неполадок](TROUBLESHOOTING.md). Мы рады вашим конструктивным отзывам! +> Ознакомьтесь с нашим [Кодексом поведения](CODE_OF_CONDUCT.md), [Руководством для участников](CONTRIBUTING.md), [Переводами](..) и [решением проблем](TROUBLESHOOTING.md). Мы приветствуем ваши конструктивные отзывы! ## Каждый урок включает -- необязательные скетчноуты -- дополнительное видео (по желанию) -- видео-разбор (только в некоторых уроках) -- [разминку перед лекцией — тест](https://ff-quizzes.netlify.app/en/ml/) +- необязательные скетчноты +- необязательное дополнительное видео +- видео-прохождение (только некоторые уроки) +- [викторину для разогрева перед лекцией](https://ff-quizzes.netlify.app/en/ml/) - письменный урок - для проектных уроков — пошаговые инструкции по созданию проекта - проверки знаний -- челлендж +- вызов (challenge) - дополнительное чтение - задание -- [итоговый тест после лекции](https://ff-quizzes.netlify.app/en/ml/) - -> **Замечание о языках**: Большинство уроков написаны на Python, но многие доступны и на R. Чтобы пройти урок на R, перейдите в папку `/solution` и найдите уроки на R с расширением .rmd — это **R Markdown** файл, который представляет собой комбинацию «фрагментов кода» (на R или других языках) и `YAML заголовка`, который управляет форматированием вывода, например, PDF, в `Markdown` документе. Такой формат отлично подходит для науки о данных, так как позволяет объединять код, вывод и комментарии в одном документе. R Markdown документы можно выводить в формате PDF, HTML или Word. -> **Примечание о викторинах**: Все викторины находятся в папке [Quiz App folder](../../quiz-app), всего 52 викторины по три вопроса каждая. Они связаны внутри уроков, однако приложение викторины можно запускать локально; следуйте инструкциям в папке `quiz-app` для локального хостинга или развертывания в Azure. - -| Номер урока | Тема | Группа уроков | Цели обучения | Связанный урок | Автор | -| :----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Введение в машинное обучение | [Introduction](1-Introduction/README.md) | Изучить базовые концепции машинного обучения | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | История машинного обучения | [Introduction](1-Introduction/README.md) | Изучить историю, лежащую в основе этой области | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Справедливость и машинное обучение | [Introduction](1-Introduction/README.md) | Каковы важные философские вопросы справедливости, которые студенты должны учитывать при построении и применении моделей машинного обучения? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Техники машинного обучения | [Introduction](1-Introduction/README.md) | Какие техники используют исследователи машинного обучения для построения моделей? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Введение в регрессию | [Regression](2-Regression/README.md) | Начало работы с Python и Scikit-learn для моделей регрессии | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Цены на тыквы в Северной Америке 🎃 | [Regression](2-Regression/README.md) | Визуализация и очистка данных в подготовке к машинному обучению | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Цены на тыквы в Северной Америке 🎃 | [Regression](2-Regression/README.md) | Построение линейных и полиномиальных моделей регрессии | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | Цены на тыквы в Северной Америке 🎃 | [Regression](2-Regression/README.md) | Построение логистической регрессионной модели | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Веб-приложение 🔌 | [Web App](3-Web-App/README.md) | Создать веб-приложение для использования вашей обученной модели | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Введение в классификацию | [Classification](4-Classification/README.md) | Очистка, подготовка и визуализация данных; введение в классификацию | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | Вкусные азиатские и индийские кухни 🍜 | [Classification](4-Classification/README.md) | Введение в классификаторы | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | Вкусные азиатские и индийские кухни 🍜 | [Classification](4-Classification/README.md) | Дополнительные классификаторы | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | Вкусные азиатские и индийские кухни 🍜 | [Classification](4-Classification/README.md) | Создание рекомендательного веб-приложения с использованием вашей модели | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Введение в кластеризацию | [Clustering](5-Clustering/README.md) | Очистка, подготовка и визуализация данных; введение в кластеризацию | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Исследование музыкальных вкусов Нигерии 🎧 | [Clustering](5-Clustering/README.md) | Изучение метода кластеризации K-средних | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Введение в обработку естественного языка ☕️ | [Natural language processing](6-NLP/README.md) | Изучить основы обработки естественного языка, создавая простого бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Распространённые задачи NLP ☕️ | [Natural language processing](6-NLP/README.md) | Углубить знания в NLP, изучая распространённые задачи при работе с языковыми структурами | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Перевод и анализ настроений ♥️ | [Natural language processing](6-NLP/README.md) | Перевод и анализ настроений с помощью Джейн Остин | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Романтические отели Европы ♥️ | [Natural language processing](6-NLP/README.md) | Анализ настроений на основе отзывов об отелях 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Романтические отели Европы ♥️ | [Natural language processing](6-NLP/README.md) | Анализ настроений на основе отзывов об отелях 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Введение в прогнозирование временных рядов | [Time series](7-TimeSeries/README.md) | Введение в прогнозирование временных рядов | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Мировое потребление электроэнергии ⚡️ - прогнозирование временных рядов с ARIMA | [Time series](7-TimeSeries/README.md) | Прогнозирование временных рядов с помощью ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Мировое потребление электроэнергии ⚡️ - прогнозирование временных рядов с SVR | [Time series](7-TimeSeries/README.md) | Прогнозирование временных рядов с помощью регрессора опорных векторов | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Введение в обучение с подкреплением | [Reinforcement learning](8-Reinforcement/README.md) | Введение в обучение с подкреплением с Q-обучением | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Помогите Питеру избежать волка! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Обучение с подкреплением в Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Послесловие | Реальные сценарии и приложения машинного обучения | [ML in the Wild](9-Real-World/README.md) | Интересные и наглядные реальные применения классического машинного обучения | [Lesson](9-Real-World/1-Applications/README.md) | Team | -| Послесловие | Отладка моделей ML с помощью панели RAI | [ML in the Wild](9-Real-World/README.md) | Отладка моделей машинного обучения с использованием компонентов панели Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [викторину после лекции](https://ff-quizzes.netlify.app/en/ml/) +> **Примечание о языках**: Эти уроки в основном написаны на Python, но многие также доступны на R. Чтобы пройти урок на R, перейдите в папку `/solution` и найдите уроки на R. Они имеют расширение .rmd, что представляет собой **R Markdown** файл, который можно просто определить как встраивание `кодовых блоков` (на R или других языках) и `YAML заголовка` (который управляет форматированием вывода, например, в PDF) в `Markdown документ`. Таким образом, он служит примером структуры для авторов в области науки о данных, поскольку позволяет комбинировать ваш код, его вывод и ваши мысли, позволяя записывать их в Markdown. Более того, документы R Markdown могут быть преобразованы в форматы вывода, такие как PDF, HTML или Word. + +> **Примечание о викторинах**: Все викторины находятся в папке [Quiz App](../../quiz-app), всего 52 викторины по три вопроса каждая. Они связаны с уроками, но приложение для викторин можно запускать локально; следуйте инструкциям в папке `quiz-app`, чтобы развернуть локально или в Azure. + +| Номер урока | Тема | Группа уроков | Цели обучения | Связанный урок | Автор | +| :---------: | :-----------------------------------------------------------: | :-----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | +| 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 and Amy | +| 03 | Справедливость и машинное обучение | [Введение](1-Introduction/README.md) | Какие важные философские вопросы о справедливости следует учитывать при построении и применении моделей машинного обучения? | [Урок](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Методы машинного обучения | [Введение](1-Introduction/README.md) | Какие методы используют исследователи ML для построения моделей? | [Урок](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Введение в регрессию | [Регрессия](2-Regression/README.md) | Начать работу с Python и Scikit-learn для моделей регрессии | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Цены на тыквы в Северной Америке 🎃 | [Регрессия](2-Regression/README.md) | Визуализация и очистка данных в подготовке к ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Цены на тыквы в Северной Америке 🎃 | [Регрессия](2-Regression/README.md) | Построить линейные и полиномиальные модели регрессии | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | Цены на тыквы в Северной Америке 🎃 | [Регрессия](2-Regression/README.md) | Построить модель логистической регрессии | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Веб-приложение 🔌 | [Веб-приложение](3-Web-App/README.md) | Построить веб-приложение для использования обученной модели | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Введение в классификацию | [Классификация](4-Classification/README.md) | Очистка, подготовка и визуализация данных; введение в классификацию | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | Вкусная азиатская и индийская кухни 🍜 | [Классификация](4-Classification/README.md) | Введение в классификаторы | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | Вкусная азиатская и индийская кухни 🍜 | [Классификация](4-Classification/README.md) | Дополнительные классификаторы | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | Вкусная азиатская и индийская кухни 🍜 | [Классификация](4-Classification/README.md) | Построить рекомендательное веб-приложение с использованием вашей модели | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Введение в кластеризацию | [Кластеризация](5-Clustering/README.md) | Очистка, подготовка и визуализация данных; введение в кластеризацию | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Исследование музыкальных вкусов Нигерии 🎧 | [Кластеризация](5-Clustering/README.md) | Изучить метод кластеризации K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Введение в обработку естественного языка ☕️ | [Обработка естественного языка](6-NLP/README.md) | Изучить основы NLP, построив простого бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Общие задачи NLP ☕️ | [Обработка естественного языка](6-NLP/README.md) | Углубить знания о NLP, изучая общие задачи при работе с языковыми структурами | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Перевод и анализ настроений ♥️ | [Обработка естественного языка](6-NLP/README.md) | Перевод и анализ настроений с Джейн Остин | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Романтические отели Европы ♥️ | [Обработка естественного языка](6-NLP/README.md) | Анализ настроений на отзывах отелей 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Романтические отели Европы ♥️ | [Обработка естественного языка](6-NLP/README.md) | Анализ настроений на отзывах отелей 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Введение в прогнозирование временных рядов | [Временные ряды](7-TimeSeries/README.md) | Введение в прогнозирование временных рядов | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Использование электроэнергии в мире ⚡️ - прогнозирование временных рядов с ARIMA | [Временные ряды](7-TimeSeries/README.md) | Прогнозирование временных рядов с помощью ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Использование электроэнергии в мире ⚡️ - прогнозирование временных рядов с SVR | [Временные ряды](7-TimeSeries/README.md) | Прогнозирование временных рядов методом опорных векторов | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Введение в обучение с подкреплением | [Обучение с подкреплением](8-Reinforcement/README.md) | Введение в обучение с подкреплением с использованием Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Помогите Питеру избежать волка! 🐺 | [Обучение с подкреплением](8-Reinforcement/README.md) | Обучение с подкреплением с Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Послесловие | Реальные сценарии и применения ML | [ML в действии](9-Real-World/README.md) | Интересные и показательныe реальные применения классического машинного обучения | [Урок](9-Real-World/1-Applications/README.md) | Команда | +| Послесловие | Отладка моделей ML с помощью панели RAI | [ML в действии](9-Real-World/README.md) | Отладка моделей машинного обучения с помощью компонентов панели Responsible AI | [Урок](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [найдите все дополнительные ресурсы для этого курса в нашей коллекции Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -## Офлайн-доступ +## Оффлайн-доступ -Вы можете запускать эту документацию офлайн с помощью [Docsify](https://docsify.js.org/#/). Склонируйте этот репозиторий, [установите Docsify](https://docsify.js.org/#/quickstart) на вашем локальном компьютере, затем в корневой папке репозитория введите команду `docsify serve`. Веб-сайт будет доступен на порту 3000 на вашем локальном хосте: `localhost:3000`. +Вы можете запускать эту документацию оффлайн, используя [Docsify](https://docsify.js.org/#/). Форкните этот репозиторий, [установите Docsify](https://docsify.js.org/#/quickstart) на вашу локальную машину, а затем в корневой папке этого репозитория выполните команду `docsify serve`. Веб-сайт будет доступен на порту 3000 вашего локального хоста: `localhost:3000`. ## PDF -Файл pdf с учебной программой и ссылками доступен [здесь](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Найдите PDF с учебной программой и ссылками [здесь](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Другие курсы -Наша команда выпускает и другие курсы! Оцените: +Наша команда выпускает и другие курсы! Посмотрите: ### LangChain @@ -182,7 +182,7 @@ [![LangChain для начинающих](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents +### Azure / Edge / MCP / Агенты [![AZD для начинающих](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI для начинающих](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP для начинающих](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) @@ -191,21 +191,21 @@ --- ### Серия по генеративному ИИ -[![Generative AI для начинающих](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![Генеративный ИИ для начинающих](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Генеративный ИИ (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Генеративный ИИ (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Генеративный ИИ (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Основное обучение -[![ML для начинающих](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science для начинающих](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Машинное обучение для начинающих](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Наука о данных для начинающих](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![ИИ для начинающих](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![Кибербезопасность для начинающих](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![Веб-разработка для начинающих](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) [![IoT для начинающих](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR разработка для начинающих](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Разработка XR для начинающих](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- @@ -217,22 +217,22 @@ ## Получение помощи -Если вы застряли или у вас есть вопросы по созданию приложений с ИИ. Присоединяйтесь к другим учителям и опытным разработчикам для обсуждений MCP. Это поддерживающее сообщество, где приветствуются вопросы и свободно делятся знаниями. +Если вы застряли или у вас есть вопросы по созданию ИИ-приложений. Присоединяйтесь к другим обучающимся и опытным разработчикам в обсуждениях MCP. Это поддерживающее сообщество, где вопросы приветствуются, а знания свободно делятся. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Если у вас есть отзывы о продукте или ошибки при разработке, посетите: +Если у вас есть отзывы о продукте или вы столкнулись с ошибками при разработке, посетите: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Дополнительные советы по обучению -- Просматривайте тетради после каждого урока для лучшего понимания. +- Просматривайте блокноты после каждого урока для лучшего понимания. - Практикуйтесь в самостоятельной реализации алгоритмов. -- Изучайте реальные наборы данных, используя изученные концепции. +- Изучайте реальные наборы данных, применяя изученные концепции. --- **Отказ от ответственности**: -Этот документ был переведен с помощью сервиса машинного перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Хотя мы стремимся к точности, просим учитывать, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для критически важной информации рекомендуется использовать профессиональный человеческий перевод. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования этого перевода. +Этот документ был переведен с использованием сервиса автоматического перевода [Co-op Translator](https://github.com/Azure/co-op-translator). Несмотря на наши усилия обеспечить точность, пожалуйста, имейте в виду, что автоматический перевод может содержать ошибки или неточности. Оригинальный документ на его исходном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется пользоваться профессиональным переводом, выполненным человеком. Мы не несем ответственности за любые недоразумения или неправильные толкования, возникшие в результате использования данного перевода. \ No newline at end of file diff --git a/translations/sk/.co-op-translator.json b/translations/sk/.co-op-translator.json index 1581baa44..2f523a4b6 100644 --- a/translations/sk/.co-op-translator.json +++ b/translations/sk/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "sk" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:23:19+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:18:33+00:00", "source_file": "README.md", "language_code": "sk" }, diff --git a/translations/sk/README.md b/translations/sk/README.md index 24604deb5..ced2f1d64 100644 --- a/translations/sk/README.md +++ b/translations/sk/README.md @@ -1,23 +1,23 @@ -[![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/) +[![GitHub licencia](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) +[![GitHub prispievatelia](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![GitHub problémy](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![GitHub žiadosti o zlúčenie](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/) +[![GitHub pozorovatelia](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![GitHub forky](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![GitHub hviezdy](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) ### 🌐 Podpora viacerých jazykov -#### Podporované cez GitHub Action (automatizované a vždy aktuálne) +#### Podporované cez GitHub Action (Automatizované a vždy aktuálne) -[Arabčina](../ar/README.md) | [Bengálčina](../bn/README.md) | [Bulharčina](../bg/README.md) | [Barmčina (Myanmar)](../my/README.md) | [Čínština (zjednodušená)](../zh-CN/README.md) | [Čínština (tradičná, Hongkong)](../zh-HK/README.md) | [Čínština (tradičná, Macau)](../zh-MO/README.md) | [Čínština (tradičná, Taiwan)](../zh-TW/README.md) | [Chorvátčina](../hr/README.md) | [Čeština](../cs/README.md) | [Dánčina](../da/README.md) | [Holandčina](../nl/README.md) | [Estónčina](../et/README.md) | [Fínčina](../fi/README.md) | [Francúzština](../fr/README.md) | [Nemčina](../de/README.md) | [Gréčtina](../el/README.md) | [Hebrejčina](../he/README.md) | [Hindčina](../hi/README.md) | [Maďarčina](../hu/README.md) | [Indonézčina](../id/README.md) | [Taliančina](../it/README.md) | [Japončina](../ja/README.md) | [Kannadčina](../kn/README.md) | [Kórejčina](../ko/README.md) | [Litovčina](../lt/README.md) | [Malajčina](../ms/README.md) | [Malajalámčina](../ml/README.md) | [Maráthčina](../mr/README.md) | [Nepálčina](../ne/README.md) | [Nigerijská pidžinčina](../pcm/README.md) | [Nórčina](../no/README.md) | [Perzčina (Farsi)](../fa/README.md) | [Poľština](../pl/README.md) | [Portugalčina (Brazília)](../pt-BR/README.md) | [Portugalčina (Portugalsko)](../pt-PT/README.md) | [Pandžábčina (Gurmukhi)](../pa/README.md) | [Rumunčina](../ro/README.md) | [Ruština](../ru/README.md) | [Srbčina (cyrilika)](../sr/README.md) | [Slovenčina](./README.md) | [Slovinčina](../sl/README.md) | [Španielčina](../es/README.md) | [Swahilčina](../sw/README.md) | [Švédčina](../sv/README.md) | [Tagalog (Filipínska)](../tl/README.md) | [Tamilčina](../ta/README.md) | [Telugčina](../te/README.md) | [Thajčina](../th/README.md) | [Turečtina](../tr/README.md) | [Ukrajinčina](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamsčina](../vi/README.md) +[Arabčina](../ar/README.md) | [Bengálčina](../bn/README.md) | [Bulharčina](../bg/README.md) | [Barmčina (Myanmar)](../my/README.md) | [Čínština (zjednodušená)](../zh-CN/README.md) | [Čínština (tradičná, Hong Kong)](../zh-HK/README.md) | [Čínština (tradičná, Macao)](../zh-MO/README.md) | [Čínština (tradičná, Taiwan)](../zh-TW/README.md) | [Chorvátčina](../hr/README.md) | [Čeština](../cs/README.md) | [Dánčina](../da/README.md) | [Holandčina](../nl/README.md) | [Estónčina](../et/README.md) | [Fínčina](../fi/README.md) | [Francúzština](../fr/README.md) | [Nemčina](../de/README.md) | [Gréčtina](../el/README.md) | [Hebrejčina](../he/README.md) | [Hindčina](../hi/README.md) | [Maďarčina](../hu/README.md) | [Indonézčina](../id/README.md) | [Taliančina](../it/README.md) | [Japončina](../ja/README.md) | [Kannadčina](../kn/README.md) | [Khmérčina](../km/README.md) | [Kórejčina](../ko/README.md) | [Litovčina](../lt/README.md) | [Malajčina](../ms/README.md) | [Malayalam](../ml/README.md) | [Maráthčina](../mr/README.md) | [Nepálčina](../ne/README.md) | [Nigérijský pidžin](../pcm/README.md) | [Nórčina](../no/README.md) | [Perzština (Farsi)](../fa/README.md) | [Poľština](../pl/README.md) | [Portugalčina (Brazília)](../pt-BR/README.md) | [Portugalčina (Portugalsko)](../pt-PT/README.md) | [Pandžábčina (Gurmukhí)](../pa/README.md) | [Rumunčina](../ro/README.md) | [Ruština](../ru/README.md) | [Srbčina (cyrilika)](../sr/README.md) | [Slovenčina](./README.md) | [Slovinčina](../sl/README.md) | [Španielčina](../es/README.md) | [Svahilčina](../sw/README.md) | [Švédčina](../sv/README.md) | [Tagalog (Filipínčina)](../tl/README.md) | [Tamilčina](../ta/README.md) | [Telugčina](../te/README.md) | [Thajčina](../th/README.md) | [Turečtina](../tr/README.md) | [Ukrajinčina](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamčina](../vi/README.md) -> **Radšej klonovať lokálne?** +> **Radšej klonujete lokálne?** > -> Tento repozitár obsahuje viac než 50 jazykových prekladov, čo výrazne zväčšuje veľkosť stiahnutia. Ak chcete klonovať bez prekladov, použite sparse checkout: +> Tento repozitár obsahuje viac ako 50 jazykových prekladov, čo výrazne zvyšuje veľkosť sťahovania. Ak chcete klonovať bez prekladov, použite sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,62 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Toto vám poskytne všetko, čo potrebujete na dokončenie kurzu s oveľa rýchlejším stiahnutím. +> Toto vám zabezpečí všetko potrebné na dokončenie kurzu s oveľa rýchlejším sťahovaním. #### Pridajte sa k našej komunite [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Máme prebiehajúcu sériu Learn with AI na Discorde, zistite viac a pridajte sa k nám na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. septembra 2025. Dostanete tipy a triky na používanie GitHub Copilot pre Data Science. +Máme prebiehajúcu sériu Learn with AI na Discorde, dozviete sa viac a pripojte sa k nám na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. septembra 2025. Získate tipy a triky na používanie GitHub Copilot pre Data Science. -![Learn with AI series](../../translated_images/sk/3.9b58fd8d6c373c20.webp) +![Séria Learn with AI](../../translated_images/sk/3.9b58fd8d6c373c20.webp) -# Strojové učenie pre začiatočníkov – učebný plán +# Strojové učenie pre začiatočníkov - Učebný plán > 🌍 Cestujte po svete a objavujte Strojové učenie cez svetové kultúry 🌍 -Cloud Advocates v Microsoft vám s radosťou ponúkajú 12-týždňový, 26-lekčný kurz zameraný na **strojové učenie**. V tomto kurze sa naučíte o tom, čo sa niekedy nazýva **klasické strojové učenie**, používajúc primárne knižnicu Scikit-learn a vyhýbajúc sa hlbokému učeniu, ktoré je pokryté v našom [učebnom pláne AI pre začiatočníkov](https://aka.ms/ai4beginners). Tieto lekcie kombinujte aj s naším ['Data Science pre začiatočníkov'](https://aka.ms/ds4beginners). +Cloud Advocates v Microsoftu s radosťou ponúkajú 12-týždňový učebný plán s 26 lekciami o **Strojovom učení**. V tomto učebnom pláne sa naučíte, čo sa niekedy nazýva **klasické strojové učenie**, pričom primárne používame knižnicu Scikit-learn a vyhýbame sa hlbokému učeniu, ktoré je pokryté v našom [učebnom pláne AI pre začiatočníkov](https://aka.ms/ai4beginners). Tieto lekcie skombinujte aj s našim [učebným plánom Data Science pre začiatočníkov](https://aka.ms/ds4beginners)! -Cestujte s nami po svete, keď aplikujeme tieto klasické techniky na dáta z rôznych častí sveta. Každá lekcia obsahuje kvízy pred a po lekcii, písomné inštrukcie na dokončenie lekcie, riešenie, zadanie a viac. Naša projektovo orientovaná pedagogika vám umožňuje učiť sa priamo aplikovaním, čo je osvedčený spôsob, ako si nové zručnosti dobre osvojiť. +Cestujte s nami po svete a aplikujte tieto klasické techniky na dáta z rôznych oblastí sveta. Každá lekcia obsahuje kvízy pred a po lekcii, písomné inštrukcie na dokončenie lekcie, riešenie, zadanie a ďalšie. Naša projektovo orientovaná pedagogika vám umožňuje učiť sa priamo počas tvorby, čo je osvedčený spôsob, ako si nové vedomosti udržať. **✍️ Srdečné poďakovanie našim autorom** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu a Amy Boyd **🎨 Poďakovanie tiež našim ilustrátorom** Tomomi Imura, Dasani Madipalli a Jen Looper -**🙏 Špeciálne poďakovanie 🙏 našim Microsoft Student Ambassador autorom, recenzentom a prispievateľom**, menovite Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal +**🙏 Špeciálne poďakovanie 🙏 našim autorom, recenzentom a prispievateľom z Microsoft Student Ambassadors**, najmä Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila a Snigdha Agarwal -**🤩 Extra vďaka Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi a Vidushi Gupta za naše R lekcie!** +**🤩 Zvláštne poďakovanie Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi a Vidushi Gupta za naše lekcie R!** # Začíname Postupujte podľa týchto krokov: -1. **Forknite repozitár**: kliknite na tlačidlo "Fork" v pravom hornom rohu tejto stránky. +1. **Vytvorte si fork repozitára**: Kliknite na tlačidlo „Fork“ v pravom hornom rohu tejto stránky. 2. **Klonujte repozitár**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [nájdite všetky doplnkové zdroje pre tento kurz v našej Microsoft Learn kolekcii](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [nájdite všetky ďalšie zdroje pre tento kurz v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Potrebujete pomoc?** Skontrolujte náš [Sprievodca riešením problémov](TROUBLESHOOTING.md) pre riešenia bežných problémov s inštaláciou, nastavením a spúšťaním lekcií. +> 🔧 **Potrebujete pomoc?** Pozrite si náš [Návod na riešenie problémov](TROUBLESHOOTING.md) pre riešenia bežných problémov s inštaláciou, nastavením a spúšťaním lekcií. +**[Študenti](https://aka.ms/student-page)**, používanie tohto učebného plánu spočíva vo forknutí celého repozitára do svojho GitHub účtu a samostatnom alebo skupinovom plnení cvičení: -**[Študenti](https://aka.ms/student-page)**, na použitie tohto učebného plánu forknite celý repozitár do svojho GitHub konta a cvičenia riešte sami alebo v skupine: - -- Začnite kvízom pred prednáškou. -- Prečítajte si prednášku a dokončite aktivity, zastavujte sa a premýšľajte pri každej kontrole poznatkov. -- Pokúste sa vytvoriť projekty pochopením lekcií namiesto spúšťania riešení; kód riešení je však k dispozícii v adresároch `/solution` v každej lekcii orientovanej na projekt. -- Vykonajte kvíz po prednáške. +- Začnite kvízom pred lekciou. +- Prečítajte si lekciu a dokončite aktivity, pri každej kontrole vedomostí sa zastavte a zamyslite. +- Pokúste sa vytvoriť projekty pochopením lekcií namiesto spúšťania riešení; kód riešení je však k dispozícii v priečinkoch `/solution` v každej lekcii orientovanej na projekt. +- Absolvujte test po lekcii. - Splňte výzvu. - Dokončite zadanie. -- Po dokončení skupiny lekcií navštívte [Diskusné fórum](https://github.com/microsoft/ML-For-Beginners/discussions) a „učte sa nahlas“ vyplnením príslušnej PAT rubriky. PAT je Nástroj na hodnotenie pokroku, ktorý vyplníte, aby ste prehĺbili svoje učenie. Môžete tiež reagovať na iné PAT, aby sme sa mohli učiť spoločne. +- Po dokončení skupiny lekcií navštívte [Diskusnú dosku](https://github.com/microsoft/ML-For-Beginners/discussions) a „učte sa nahlas“ vyplnením príslušného PAT hodnotiaceho formulára. 'PAT' je Nástroj hodnotenia pokroku, ktorý vyplníte, aby ste si prehĺbili vedomosti. Môžete tiež reagovať na ďalšie PAT, aby sme sa učili spoločne. -> Pre ďalšie štúdium odporúčame sledovať tieto [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduly a učebné cesty. +> Na ďalšie štúdium odporúčame sledovať tieto [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduly a vzdelávacie cesty. -**Učitelia**, pripravili sme [niekoľko odporúčaní](for-teachers.md) ako používať tento učebný plán. +**Učitelia**, pripravili sme [niekoľko odporúčaní](for-teachers.md) na využitie tohto učebného plánu. --- -## Video prechádzky +## Video návody -Niektoré lekcie sú dostupné ako krátke video. Nájdete ich priamo v lekciách alebo na [zozname videí ML for Beginners na Microsoft Developer YouTube kanáli](https://aka.ms/ml-beginners-videos) po kliknutí na obrázok nižšie. +Niektoré lekcie sú dostupné ako krátke videá. Nájdete ich priamo v lekciách alebo v [playliste ML for Beginners na Microsoft Developer YouTube kanáli](https://aka.ms/ml-beginners-videos) kliknutím na obrázok nižšie. [![ML for beginners banner](../../translated_images/sk/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -99,98 +98,98 @@ Niektoré lekcie sú dostupné ako krátke video. Nájdete ich priamo v lekciác [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif vytvoril** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif od** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Kliknite na obrázok vyššie pre video o projekte a ľuďoch, ktorí ho vytvorili! +> 🎥 Kliknite na obrázok vyššie pre video o projekte a jeho tvorcoch! --- ## Pedagogika -Pri tvorbe tohto učebného plánu sme zvolili dve pedagogické zásady: zabezpečiť, že je praktický a **založený na projektoch** a že obsahuje **časté kvízy**. Okrem toho má tento kurz spoločnú **tému**, ktorá mu dodáva súdržnosť. +Pri tvorbe tohto učebného plánu sme si vybrali dva pedagogické princípy: zabezpečiť, aby bol **prakticky projektovo orientovaný** a aby obsahoval **časté kvízy**. Okrem toho má tento učebný plán spoločnú **tému**, ktorá mu dodáva súdržnosť. -Zaradením obsahu do projektov sa proces vyučovania stáva zaujímavejším pre študentov a zlepšuje sa uchovávanie poznatkov. Nízko náročný kvíz pred prednáškou nastavuje zámer študenta učiť sa tému a druhý kvíz po prednáške zabezpečuje ďalšie upevnenie vedomostí. Tento kurz je flexibilný a zábavný, môžete ho absolvovať celý alebo po častiach. Projekty začínajú jednoduché a postupne sa komplikujú až do konca 12-týždňového cyklu. Kurz tiež obsahuje dodatočné poznámky o reálnych aplikáciách ML, ktoré môžu slúžiť ako bonusové zadania alebo podklad k diskusii. +Zabezpečením súladu obsahu s projektmi je proces pre študentov zaujímavejší a upevňuje sa zapamätanie si konceptov. Nízko-rizikový kvíz pred triedou nastavia zámer študenta naučiť sa tému, zatiaľ čo druhý kvíz po lekcii zabezpečuje ďalšie upevnenie vedomostí. Tento učebný plán je navrhnutý tak, aby bol flexibilný a zábavný, a možno ho absolvovať celý alebo čiastočne. Projekty začínajú malé a do konca 12-týždňového cyklu získavajú zložitosť. Učebný plán tiež obsahuje pospis o praktických využitiach ML, ktorý možno použiť ako extra kredit alebo ako základ diskusie. -> Nájdete u nás [Kódex správania](CODE_OF_CONDUCT.md), [Prispievanie](CONTRIBUTING.md), [Preklady](..) a [Sprievodcu riešením problémov](TROUBLESHOOTING.md). Vitáme vaše konštruktívne pripomienky! +> Nájdete tu naše [Pravidlá správania](CODE_OF_CONDUCT.md), [Príspevky](CONTRIBUTING.md), [Preklady](..) a [Návody na riešenie problémov](TROUBLESHOOTING.md). Radi prijmeme vašu konštruktívnu spätnú väzbu! ## Každá lekcia obsahuje -- voliteľnú poznámku (sketchnote) +- voliteľnú skicu poznámok - voliteľné doplnkové video -- video prechádzku (iba niektoré lekcie) -- [kvíz na rozcvičku pred prednáškou](https://ff-quizzes.netlify.app/en/ml/) +- video návod (len niektoré lekcie) +- [kvíz na rozcvičenie pred lekciou](https://ff-quizzes.netlify.app/en/ml/) - písomnú lekciu -- pre projektovo orientované lekcie podrobné návody krok za krokom, ako vytvoriť projekt -- kontroly poznatkov +- pre projektové lekcie, krok za krokom návody na vybudovanie projektu +- kontroly vedomostí - výzvu - doplnkové čítanie - zadanie -- [kvíz po prednáške](https://ff-quizzes.netlify.app/en/ml/) - -> **Poznámka o jazykoch**: Tieto lekcie sú primárne napísané v Pythone, avšak veľa z nich je dostupných aj v R. Ak chcete dokončiť R lekciu, choďte do priečinka `/solution` a nájdite lekcie v R. Tie majú príponu .rmd, čo je **R Markdown** súbor, ktorý možno jednoducho definovať ako vloženie `kódových blokov` (v R alebo iných jazykoch) a `YAML hlavičky` (ktorá určuje formátovanie výstupu ako PDF) v `Markdown dokumente`. Slúži teda ako výborný rámec na tvorbu dokumentov pre dátovú vedu, pretože môžete kombinovať svoj kód, jeho výstupy a vlastné poznámky písané v Markdown formáte. Navyše, R Markdown dokumenty je možné renderovať do formátov ako PDF, HTML alebo Word. -> **Poznámka k kvízom**: Všetky kvízy sú obsiahnuté v [priečinku Quiz App](../../quiz-app), celkovo 52 kvízov s troma otázkami v každom. Sú prepojené z lekcií, ale aplikáciu s kvízmi je možné spustiť lokálne; postupujte podľa inštrukcií v priečinku `quiz-app` na lokálne hosťovanie alebo nasadenie do Azure. - -| Číslo lekcie | Téma | Skupina lekcií | Ciele učenia | Prepojená lekcia | Autor | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Úvod do strojového učenia | [Úvod](1-Introduction/README.md) | Naučiť sa základné koncepty strojového učenia | [Lekcia](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | História strojového učenia | [Úvod](1-Introduction/README.md) | Naučiť sa históriu tohto odboru | [Lekcia](1-Introduction/2-history-of-ML/README.md) | Jen a Amy | -| 03 | Spravodlivosť a strojové učenie | [Úvod](1-Introduction/README.md) | Aké sú dôležité filozofické otázky spravodlivosti, ktoré by študenti mali zvážiť pri tvorbe a aplikovaní modelov ML? | [Lekcia](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Techniky strojového učenia | [Úvod](1-Introduction/README.md) | Aké techniky používajú vedci v oblasti strojového učenia na tvorbu modelov? | [Lekcia](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen | -| 05 | Úvod do regresie | [Regresia](2-Regression/README.md) | Začať s Pythonom a Scikit-learn pre regresné modely | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vizualizovať a upraviť dáta v príprave na ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Stavať lineárne a polynomiálne regresné modely | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen a Dmitry • Eric Wanjau | -| 08 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Stavať logistický regresný model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Webová aplikácia 🔌 | [Webová aplikácia](3-Web-App/README.md) | Vytvoriť webovú aplikáciu na použitie vášho natrénovaného modelu | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Úvod do klasifikácie | [Klasifikácia](4-Classification/README.md) | Upraviť, pripraviť a vizualizovať dáta; úvod do klasifikácie | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen a Cassie • Eric Wanjau | -| 11 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Úvod do klasifikátorov | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen a Cassie • Eric Wanjau | -| 12 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Viac klasifikátorov | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen a Cassie • Eric Wanjau | -| 13 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Vytvoriť webovú aplikáciu odporúčajúcu položky na základe vášho modelu | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Úvod do klastrovania | [Klastrovanie](5-Clustering/README.md) | Upraviť, pripraviť a vizualizovať dáta; úvod do klastrovania | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Preskúmanie nigerijských hudobných chutí 🎧 | [Klastrovanie](5-Clustering/README.md) | Preskúmať metódu K-means klastrovania | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Úvod do spracovania prirodzeného jazyka ☕️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Naučiť sa základy NLP vytvorením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Bežné úlohy NLP ☕️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Prehĺbiť znalosti NLP pochopením bežných úloh potrebných pri práci s jazykovými štruktúrami | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Preklad a analýza sentimentu ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Preklad a analýza sentimentu s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantické hotely Európy ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Analýza sentimentu hotelových recenzií 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantické hotely Európy ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Analýza sentimentu hotelových recenzií 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Úvod do predikcie časových radov | [Časové rady](7-TimeSeries/README.md) | Úvod do predikcie časových radov | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov s ARIMA | [Časové rady](7-TimeSeries/README.md) | Predikcia časových radov s ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov s SVR | [Časové rady](7-TimeSeries/README.md) | Predikcia časových radov s Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Úvod do posilňovacieho učenia | [Posilňovacie učenie](8-Reinforcement/README.md) | Úvod do posilňovacieho učenia s Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Pomôžte Petrovi vyhnúť sa vlkovi! 🐺 | [Posilňovacie učenie](8-Reinforcement/README.md) | Posilňovacie učenie Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Reálne scenáre a aplikácie ML | [ML v praxi](9-Real-World/README.md) | Zaujímavé a odhaľujúce reálne aplikácie klasického ML | [Lekcia](9-Real-World/1-Applications/README.md) | Tím | -| Postscript | Ladenie modelov ML pomocou RAI dashboardu | [ML v praxi](9-Real-World/README.md) | Ladenie modelov strojového učenia pomocou komponentov zodpovedného AI dashboardu | [Lekcia](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [nájdite všetky ďalšie zdroje k tomuto kurzu v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## Offline prístup - -Túto dokumentáciu môžete spustiť offline pomocou [Docsify](https://docsify.js.org/#/). Vytvorte si vlastnú kópiu repozitára, [nainštalujte Docsify](https://docsify.js.org/#/quickstart) na svoj lokálny počítač a potom v koreňovom adresári repozitára napíšte `docsify serve`. Webstránka bude k dispozícii na porte 3000 na vašom localhoste: `localhost:3000`. - -## PDF - -Nájdite pdf osnovy s odkazmi [tu](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). - - -## 🎒 Ďalšie kurzy - -Náš tím produkuje ďalšie kurzy! Pozrite si: +- [kvíz po lekcii](https://ff-quizzes.netlify.app/en/ml/) +> **Poznámka o jazykoch**: Tieto lekcie sú primárne napísané v Pythone, ale mnohé sú dostupné aj v R. Ak chcete dokončiť lekciu v R, prejdite do priečinka `/solution` a vyhľadajte lekcie v R. Obsahujú príponu .rmd, ktorá predstavuje **R Markdown** súbor, čo možno jednoducho definovať ako vkladanie `kódových blokov` (v R alebo iných jazykoch) a `YAML hlavičky` (ktorá usmerňuje, ako formátovať výstupy, napr. PDF) v `Markdown dokumente`. Takto slúži ako príkladný rámec pre tvorbu dokumentov v dátovej vede, pretože vám umožňuje kombinovať váš kód, jeho výstup a vaše poznámky tým, že ich môžete zaznamenať v Markdown. Navyše, dokumenty R Markdown môžu byť vyrenderované do výstupných formátov ako PDF, HTML alebo Word. + +> **Poznámka o kvízoch**: Všetky kvízy sú uložené v [priečinku Quiz App](../../quiz-app), celkovo 52 kvízov so štruktúrou troch otázok každý. Sú prepojené v jednotlivých lekciách, ale aplikáciu na kvízy možno spustiť lokálne; postupujte podľa inštrukcií v priečinku `quiz-app` pre lokálne hosťovanie alebo nasadenie do Azure. + +| Číslo lekcie | Téma | Zoskupenie lekcie | Ciele učenia | Prepojená lekcia | Autor | +| :----------: | :------------------------------------------------------------: | :------------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------: | +| 01 | Úvod do strojového učenia | [Úvod](1-Introduction/README.md) | Naučte sa základné pojmy strojového učenia | [Lekcia](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | História strojového učenia | [Úvod](1-Introduction/README.md) | Spoznajte históriu tohto odboru | [Lekcia](1-Introduction/2-history-of-ML/README.md) | Jen a Amy | +| 03 | Spravodlivosť a strojové učenie | [Úvod](1-Introduction/README.md) | Aké sú dôležité filozofické otázky spravodlivosti, ktoré by študenti mali zvážiť pri vývoji a použití ML modelov? | [Lekcia](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Techniky strojového učenia | [Úvod](1-Introduction/README.md) | Aké techniky používajú výskumníci ML na tvorbu modelov? | [Lekcia](1-Introduction/4-techniques-of-ML/README.md) | Chris a Jen | +| 05 | Úvod do regresie | [Regresia](2-Regression/README.md) | Začnite s Pythonom a Scikit-learn pre regresné modely | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vizualizujte a očistite dáta na prípravu ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Postavte lineárne a polynomiálne regresné modely | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen a Dmitry • Eric Wanjau | +| 08 | Ceny tekvíc v Severnej Amerike 🎃 | [Regresia](2-Regression/README.md) | Vybudujte logistický regresný model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Webová aplikácia 🔌 | [Web App](3-Web-App/README.md) | Vybudujte webovú aplikáciu na použitie vášho natrénovaného modelu | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Úvod do klasifikácie | [Klasifikácia](4-Classification/README.md) | Očistite, pripravte a vizualizujte svoje dáta; úvod do klasifikácie | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen a Cassie • Eric Wanjau | +| 11 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Úvod do klasifikátorov | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen a Cassie • Eric Wanjau | +| 12 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Viac klasifikátorov | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen a Cassie • Eric Wanjau | +| 13 | Lahodné ázijské a indické kuchyne 🍜 | [Klasifikácia](4-Classification/README.md) | Postavte odporúčaciu webovú aplikáciu pomocou vášho modelu | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Úvod do zhlukovania | [Zhlukovanie](5-Clustering/README.md) | Očistite, pripravte a vizualizujte svoje dáta; úvod do zhlukovania | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Preskúmanie nigerijských hudobných chutí 🎧 | [Zhlukovanie](5-Clustering/README.md) | Preskúmajte K-Means zhlukovaciu metódu | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Úvod do spracovania prirodzeného jazyka ☕️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Naučte sa základy NLP vytvorením jednoduchého bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Bežné úlohy NLP ☕️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Prehĺbte svoje poznatky o NLP pochopením bežných úloh pri práci s jazykovými štruktúrami | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Preklad a analýza sentimentu ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Preklad a analýza sentimentu s Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantické hotely v Európe ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Sentimentálna analýza s hotelovými recenziami 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantické hotely v Európe ♥️ | [Spracovanie prirodzeného jazyka](6-NLP/README.md) | Sentimentálna analýza s hotelovými recenziami 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Úvod do predikcie časových radov | [Časové rady](7-TimeSeries/README.md) | Úvod do predikcie časových radov | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov pomocou ARIMA | [Časové rady](7-TimeSeries/README.md) | Predikcia časových radov pomocou ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Svetová spotreba energie ⚡️ - predikcia časových radov pomocou SVR | [Časové rady](7-TimeSeries/README.md) | Predikcia časových radov pomocou Support Vector Regressora | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Úvod do posilňovacieho učenia | [Posilňovacie učenie](8-Reinforcement/README.md) | Úvod do posilňovacieho učenia pomocou Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Pomôžte Petrovi vyhnúť sa vlkovi! 🐺 | [Posilňovacie učenie](8-Reinforcement/README.md) | Posilňovacie učenie pomocou Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Skutočné scenáre a aplikácie ML | [ML vo svete](9-Real-World/README.md) | Zaujímavé a odhaľujúce reálne aplikácie klasického ML | [Lekcia](9-Real-World/1-Applications/README.md) | Tím | +| Postscript | Ladenie modelov ML pomocou RAI dashboardu | [ML vo svete](9-Real-World/README.md) | Ladenie modelov v strojovom učení pomocou komponentov Responsible AI dashboardu | [Lekcia](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [nájdite všetky ďalšie materiály k tomuto kurzu v našej kolekcii Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## Prístup offline + +Túto dokumentáciu môžete používať offline pomocou [Docsify](https://docsify.js.org/#/). Naklonujte si tento repozitár, [nainštalujte Docsify](https://docsify.js.org/#/quickstart) na svoj lokálny počítač a potom v koreňovom priečinku repozitára spustite príkaz `docsify serve`. Webstránka bude sprístupnená na porte 3000 na vašom localhoste: `localhost:3000`. + +## PDF súbory + +Nájdite pdf učebného plánu s odkazmi [tu](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). + + +## 🎒 Ďalšie kurzy + +Náš tím vytvára aj iné kurzy! Pozrite si: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j pre začiatočníkov](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js pre začiatočníkov](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain pre začiatočníkov](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agentov +[![AZD pre začiatočníkov](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI pre začiatočníkov](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP pre začiatočníkov](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agenti pre začiatočníkov](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generatívne AI série +### Séria Generatívnej AI [![Generatívna AI pre začiatočníkov](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generatívna AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generatívna AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) @@ -198,41 +197,41 @@ Náš tím produkuje ďalšie kurzy! Pozrite si: --- -### Základné vzdelávanie -[![ML pre začiatočníkov](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Dáta vedy pre začiatočníkov](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +### Základné učenie +[![Strojové učenie pre začiatočníkov](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Dátová veda pre začiatočníkov](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI pre začiatočníkov](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Kybernetická bezpečnosť pre začiatočníkov](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web vývoj pre začiatočníkov](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![Kyberbezpečnosť pre začiatočníkov](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Webový vývoj pre začiatočníkov](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) [![IoT pre začiatočníkov](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) [![XR vývoj pre začiatočníkov](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Séria Copilot -[![Copilot pre AI párové programovanie](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot pre AI párované programovanie](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot pre C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Dobrodružstvo Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot Dobrodružstvo](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Získanie pomoci -Ak sa zaseknete alebo máte otázky ohľadom tvorby AI aplikácií. Pridajte sa k študentom a skúseným vývojárom v diskusiách o MCP. Je to podporná komunita, kde sú otázky vítané a vedomosti sa voľne zdieľajú. +Ak uviaznete alebo máte akékoľvek otázky týkajúce sa tvorby AI aplikácií, pripojte sa k ostatným študentom a skúseným vývojárom v diskusiách o MCP. Je to podporujúca komunita, kde sú otázky vítané a poznatky sa zdieľajú slobodne. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ak máte spätnú väzbu na produkt alebo chyby počas vývoja navštívte: +Ak máte spätnú väzbu na produkt alebo narazíte na chyby počas tvorby, navštívte: -[![Fórum Microsoft Foundry vývojárov](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Doplnkové tipy na učenie +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +## Dodatočné tipy na učenie -- Prejdite si poznámkové bloky po každej lekcii pre lepšie pochopenie. -- Praktizujte implementovanie algoritmov sami. -- Preskúmajte reálne dátové sady pomocou naučených konceptov. +- Po každej lekcii si prezrite poznámkové bloky pre lepšie pochopenie. +- Precvičujte implementáciu algoritmov samostatne. +- Preskúmajte reálne dátové súbory využitím naučených konceptov. --- -**Zrieknutie sa zodpovednosti**: -Tento dokument bol preložený pomocou služby prekladov s využitím umelej inteligencie [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, majte prosím na pamäti, že automatické preklady môžu obsahovať chyby alebo nezrovnalosti. Pôvodný dokument v jeho rodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre dôležité informácie sa odporúča profesionálny ľudský preklad. Nie sme zodpovední za žiadne nedorozumenia alebo nesprávne výklady vyplývajúce z použitia tohto prekladu. +**Zrieknutie sa zodpovednosti**: +Tento dokument bol preložený pomocou AI prekladateľskej služby [Co-op Translator](https://github.com/Azure/co-op-translator). Aj keď sa snažíme o presnosť, prosím, berte na vedomie, že automatizované preklady môžu obsahovať chyby alebo nepresnosti. Originálny dokument v jeho pôvodnom jazyku by mal byť považovaný za autoritatívny zdroj. Pre kritické informácie odporúčame profesionálny ľudský preklad. Nie sme zodpovední za akékoľvek nedorozumenia alebo nesprávne interpretácie vyplývajúce z použitia tohto prekladu. \ No newline at end of file diff --git a/translations/sl/.co-op-translator.json b/translations/sl/.co-op-translator.json index f7131a6b9..352f24010 100644 --- a/translations/sl/.co-op-translator.json +++ b/translations/sl/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "sl" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:19:52+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:29:35+00:00", "source_file": "README.md", "language_code": "sl" }, diff --git a/translations/sl/README.md b/translations/sl/README.md index 14474dc98..7bdeed7c4 100644 --- a/translations/sl/README.md +++ b/translations/sl/README.md @@ -1,23 +1,23 @@ -[![Licenca GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![Sodelavci GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) -[![Zahteve GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![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 Dobrodošli](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) -[![Opazovalci GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![Videl GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) -[![Zvezde GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) +[![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/) ### 🌐 Podpora za več jezikov -#### Podprto preko GitHub Action (Avtomatizirano & Vedno posodobljeno) +#### Podprto preko GitHub Action (avtomatizirano in vedno posodobljeno) -[Arabščina](../ar/README.md) | [Bengalščina](../bn/README.md) | [Bolgarščina](../bg/README.md) | [Burmanščina (Mjanmar)](../my/README.md) | [Kitajščina (poenostavljena)](../zh-CN/README.md) | [Kitajščina (tradicionalna, Hong Kong)](../zh-HK/README.md) | [Kitajščina (tradicionalna, Macau)](../zh-MO/README.md) | [Kitajščina (tradicionalna, Tajvan)](../zh-TW/README.md) | [Hrvaščina](../hr/README.md) | [Češčina](../cs/README.md) | [Danščina](../da/README.md) | [Nizozemščina](../nl/README.md) | [Estonščina](../et/README.md) | [Finščina](../fi/README.md) | [Francoščina](../fr/README.md) | [Nemščina](../de/README.md) | [Grščina](../el/README.md) | [Hebrejščina](../he/README.md) | [Hindijščina](../hi/README.md) | [Madžarščina](../hu/README.md) | [Indonezijščina](../id/README.md) | [Italijanščina](../it/README.md) | [Japonščina](../ja/README.md) | [Kannada](../kn/README.md) | [Korejščina](../ko/README.md) | [Litovščina](../lt/README.md) | [Malajščina](../ms/README.md) | [Malajalščina](../ml/README.md) | [Maratščina](../mr/README.md) | [Nepalščina](../ne/README.md) | [Nigerijski pidgin](../pcm/README.md) | [Norveščina](../no/README.md) | [Perzijščina (Farsi)](../fa/README.md) | [Poljščina](../pl/README.md) | [Portugalščina (Brazilija)](../pt-BR/README.md) | [Portugalščina (Portugalska)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romunščina](../ro/README.md) | [Ruščina](../ru/README.md) | [Srbščina (cirilica)](../sr/README.md) | [Slovaščina](../sk/README.md) | [Slovenščina](./README.md) | [Španščina](../es/README.md) | [Svaahili](../sw/README.md) | [Švedščina](../sv/README.md) | [Tagalog (filipino)](../tl/README.md) | [Tamilščina](../ta/README.md) | [Telugu](../te/README.md) | [Tajščina](../th/README.md) | [Turščina](../tr/README.md) | [Ukrajinščina](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamščina](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Hrvaški](../hr/README.md) | [Češki](../cs/README.md) | [Danski](../da/README.md) | [Nizozemski](../nl/README.md) | [Estonski](../et/README.md) | [Finski](../fi/README.md) | [Francoski](../fr/README.md) | [Nemški](../de/README.md) | [Grški](../el/README.md) | [Hebrejski](../he/README.md) | [Hindi](../hi/README.md) | [Madžarski](../hu/README.md) | [Indonezijski](../id/README.md) | [Italijanski](../it/README.md) | [Japonski](../ja/README.md) | [Kannada](../kn/README.md) | [Kmerski](../km/README.md) | [Korejski](../ko/README.md) | [Litvanski](../lt/README.md) | [Malajski](../ms/README.md) | [Malajalamski](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalščina](../ne/README.md) | [Nigerijski pidžin](../pcm/README.md) | [Norveški](../no/README.md) | [Perzijski (Farsi)](../fa/README.md) | [Poljski](../pl/README.md) | [Portugalski (Brazilija)](../pt-BR/README.md) | [Portugalski (Portugalska)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romunski](../ro/README.md) | [Ruski](../ru/README.md) | [Srbščina (cirilica)](../sr/README.md) | [Slovaški](../sk/README.md) | [Slovenski](./README.md) | [Španščina](../es/README.md) | [Svahili](../sw/README.md) | [Švedski](../sv/README.md) | [Tagalog (filipinski)](../tl/README.md) | [Tamilščina](../ta/README.md) | [Telugu](../te/README.md) | [Tajski](../th/README.md) | [Turški](../tr/README.md) | [Ukrajinski](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamščina](../vi/README.md) -> **Raje klonirati lokalno?** +> **Raje klonirate lokalno?** > -> Ta repozitorij vsebuje več kot 50 prevodov, kar znatno poveča velikost prenosa. Če želite klonirati brez prevodov, uporabite sparse checkout: +> Ta repozitorij vključuje prevode v več kot 50 jezikov, kar znatno poveča velikost prenosa. Za kloniranje brez prevodov uporabite sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,147 +33,147 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Tako boste pridobili vse potrebno za dokončanje tečaja z veliko hitrejšim prenosom. +> S tem dobite vse, kar potrebujete za dokončanje tečaja, z veliko hitrejšim prenosom. #### Pridružite se naši skupnosti [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Imamo trajajočo serijo učenja z AI na Discordu, izveste več in se nam pridružite na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. septembra 2025. Dobite nasvete in trike za uporabo GitHub Copilot za podatkovno znanost. +Imamo potekajočo serijo na Discordu o učenju z AI, izveste več in se pridružite na [Learn with AI Series](https://aka.ms/learnwithai/discord) od 18. do 30. septembra 2025. Dobite nasvete in trike za uporabo GitHub Copilot za podatkovno znanost. -![Serija Učenje z AI](../../translated_images/sl/3.9b58fd8d6c373c20.webp) +![Learn with AI series](../../translated_images/sl/3.9b58fd8d6c373c20.webp) -# Strojno učenje za začetnike – Kurikulum +# Strojno učenje za začetnike – učni načrt -> 🌍 Potujte po svetu, medtem ko raziskujemo strojno učenje skozi svetovne kulture 🌍 +> 🌍 Potujte po svetu, ko raziskujemo strojno učenje skozi svetovne kulture 🌍 -Zagovorniki oblaka pri Microsoftu z veseljem ponujajo 12-tedenski, 26-izpitni kurikulum, ki govori o **strojno učenje**. V tem kurikulumu boste izvedeli o t.i. **klasičnem strojnem učenju**, ki primarno uporablja knjižnico Scikit-learn in se izogiba globokemu učenju, kar pokrivamo v našem [kurikulumu AI za začetnike](https://aka.ms/ai4beginners). Primerjajte te lekcije tudi z našim [kurikulom Podatkovna znanost za začetnike](https://aka.ms/ds4beginners). +Cloud Advocates pri Microsoftu z veseljem ponujajo 12-tedenski učni načrt z 26 lekcijami, ki govorijo o **strojni učenju**. V tem učnem načrtu boste spoznali tisto, kar nekateri imenujejo **klasično strojno učenje**, z uporabo predvsem knjižnice Scikit-learn in brez poglobljenega učenja, ki je zajeto v našem [učnem načrtu AI za začetnike](https://aka.ms/ai4beginners). Združite te lekcije tudi z našim [učnim načrtom 'Podatkovna znanost za začetnike'](https://aka.ms/ds4beginners). -Potujte z nami po svetu, ko uporabljamo te klasične tehnike na podatkih iz različnih delov sveta. Vsaka lekcija vključuje pred in po lekcijski kviz, pisna navodila za dokončanje lekcije, rešitev, nalogo in več. Naša poučevanje temelji na projektih, kar vam omogoča učenje z ustvarjanjem, kar je dokazano učinkovit način za utrditev novih znanj. +Potujte z nami po svetu, ko te klasične tehnike uporabljamo za podatke iz različnih delov sveta. Vsaka lekcija vključuje pred- in po- lekcijski kviz, pisna navodila za dokončanje lekcije, rešitev, nalogo in še več. Naša pedagoška usmerjenost na podlagi projektov omogoča učenje skozi ustvarjanje, kar je dokazano učinkovit način, da nove veščine ostanejo. -**✍️ Iskrena hvala našim avtorjem** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu in Amy Boyd +**✍️ Iskrena zahvala našim avtorjem** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu in Amy Boyd **🎨 Zahvala tudi našim ilustratorjem** Tomomi Imura, Dasani Madipalli in Jen Looper -**🙏 Posebna zahvala 🙏 našim Microsoft Student Ambassadorjem avtorjem, recenzentom in prispevkom vsebine**, zlasti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila in Snigdha Agarwal +**🙏 Posebna zahvala 🙏 našim Microsoft Student Ambassador avtorjem, recenzentom in sodelavcem vsebine**, zlasti Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila in Snigdha Agarwal -**🤩 Posebna hvala Microsoft Student Ambassadorjem Eric Wanjau, Jasleen Sondhi in Vidushi Gupta za naše lekcije v R jeziku!** +**🤩 Dodatna hvala Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi in Vidushi Gupta za naše lekcije v R!** # Začetek Sledite tem korakom: -1. **Razveji repozitorij**: Kliknite na gumb "Fork" v zgornjem desnem kotu te strani. +1. **Razvežite repozitorij**: Kliknite gumb "Fork" v zgornjem desnem kotu te strani. 2. **Klonirajte repozitorij**: `git clone https://github.com/microsoft/ML-For-Beginners.git` > [poiščite vse dodatne vire za ta tečaj v naši zbirki Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Potrebujete pomoč?** Oglejte si naš [Vodnik za odpravljanje težav](TROUBLESHOOTING.md) za rešitve pogostih težav pri namestitvi, nastavitvi in izvajanju lekcij. +> 🔧 **Potrebujete pomoč?** Preverite naš [Vodnik za odpravljanje težav](TROUBLESHOOTING.md) za rešitve pogostih težav z namestitvijo, nastavitvijo in izvajanjem lekcij. -**[Študentje](https://aka.ms/student-page)**, za uporabo tega kurikuluma razvejite celoten repozitorij na svoj GitHub račun in opravite vaje sami ali v skupini: +**[Študenti](https://aka.ms/student-page)**, za uporabo tega učnega načrta si razvežite celoten repozitorij na svoj GitHub račun in dokončajte vaje sami ali v skupini: -- Začnite s predpredavanjskim kvizom. -- Preberite predavanje in dokončajte dejavnosti, ob vsakem preverjanju znanja se ustavite in premislite. -- Poskusite ustvariti projekte tako, da razumete lekcije, namesto da le kopirate kodo rešitve; ta koda je na voljo v mapah `/solution` pri vsaki projektno usmerjeni lekciji. +- Začnite s predpredavanjem kvizom. +- Preberite predavanje in opravite aktivnosti, med tem se ustavite in premislite ob vsaki preveritvi znanja. +- Poskusite ustvariti projekte s pomočjo razumevanja lekcij, namesto da samo poganjate kodo rešitve; koda je vendarle na voljo v mapah `/solution` pri vsaki projektno usmerjeni lekciji. - Opravite po-predavanjski kviz. -- Dokončajte izziv. -- Dokončajte nalogo. -- Po končanem sklopu lekcij obiščite [Diskusijsko ploščo](https://github.com/microsoft/ML-For-Beginners/discussions) in "ucite na glas", tako da izpolnite ustrezno PAT lestvico. 'PAT' je Orodje za Oceno Napredka, lestvica, ki jo izpolnite, da poglobite učenje. Lahko tudi reagirate na druge PAT-e, da se lahko učimo skupaj. +- Opravite izziv. +- Opravite nalogo. +- Po zaključku skupine lekcij obiščite [Forum za razprave](https://github.com/microsoft/ML-For-Beginners/discussions) in "učite se na glas" tako, da izpolnite ustrezno rubriko PAT. 'PAT' je orodje za ocenjevanje napredka, ki ga izpolnite za poglobitev učenja. Prav tako lahko reagirate na druge PAT-e, da se lahko skupaj učimo. -> Za nadaljnje študije priporočamo spremljanje teh [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modulov in učnih poti. +> Za nadaljnje študije priporočamo, da sledite tem modulom in učnim potem [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Učitelji**, v [priporočilih](for-teachers.md) smo vključili nekaj nasvetov o uporabi tega kurikuluma. +**Učitelji**, vključili smo [nekaj predlogov](for-teachers.md), kako uporabljati ta učni načrt. --- -## Video predstavitve +## Video vodiči -Nekatere lekcije so na voljo v obliki kratkih video posnetkov. Vse te najdete v lekcijah neposredno ali na [seznamu predvajanja ML za začetnike na YouTube kanalu Microsoft Developer](https://aka.ms/ml-beginners-videos) s klikom na spodnjo sliko. +Nekatere lekcije so na voljo kot kratki video posnetki. Vse te lahko najdete v grafa lekcij ali na [predvajalni seznam ML za začetnike na Microsoft Developer YouTube kanalu](https://aka.ms/ml-beginners-videos) s klikom na spodnjo sliko. -[![Pasica ML za začetnike](../../translated_images/sl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![ML for beginners banner](../../translated_images/sl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- ## Spoznajte ekipo -[![Promocijski video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif avtor:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif avtor** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Kliknite zgornjo sliko za video o projektu in osebah, ki so ga ustvarile! +> 🎥 Kliknite zgornjo sliko za video o projektu in ljudeh, ki so ga ustvarili! --- ## Pedagogika -Med oblikovanjem tega kurikuluma smo izbrali dva pedagoška stebra: zagotoviti, da je praktično **projektno usmerjen** in da vključuje **pogoste kvize**. Poleg tega ima kurikulum skupno **temo**, ki mu daje skladnost. +Pri gradnji tega učnega načrta smo izbrali dva pedagoška načela: zagotoviti, da je praktičen in **projektno usmerjen**, ter da vključuje **pogoste kvize**. Poleg tega ima ta učni načrt skupno **temo**, ki mu daje povezljivost. -Z zagotavljanjem vsebine, ki je povezana s projekti, je postopek učenja za študente bolj privlačen, hkrati pa je ohranjanje konceptov izboljšano. Poleg tega nizko-rizični kviz pred predavanjem usmeri študenta k učenju teme, medtem ko drugi kviz po predavanju zagotovi nadaljnjo utrditev. Ta kurikulum je zasnovan kot prilagodljiv in zabaven ter ga lahko opravite kot celoto ali delno. Projekti se začnejo majhni in postopoma postajajo bolj zahtevni do konca 12-tedenskega cikla. Vključuje tudi dodatek o realnih aplikacijah ML, ki se lahko uporabi kot dodatna točka za oceno ali kot temelj za razpravo. +S tem, ko vsebina sovpada s projekti, je proces za študente bolj zanimiv, hkrati pa se izboljša zadrževanje konceptov. Poleg tega nizkorazredni kviz pred predavanjem usmeri namen študenta k učenju teme, medtem ko drugi kviz po predavanju zagotavlja nadaljnje zadrževanje. Ta učni načrt je zasnovan tako, da je prilagodljiv in zabaven in ga lahko opravite v celoti ali delno. Projekti se začnejo majhni in postajajo vse bolj zapleteni do konca 12-tedenskega cikla. Ta učni načrt vključuje tudi dodatek o praktičnih primerih uporabe ML, ki ga lahko uporabite za dodatne točke ali kot osnovo za razpravo. -> Najdete naša pravila [Kodeksa ravnanja](CODE_OF_CONDUCT.md), [Prispevkov](CONTRIBUTING.md), [Prevodi](..) in [Odpravljanje težav](TROUBLESHOOTING.md). Veselimo se vaših konstruktivnih povratnih informacij! +> Poiščite naš [Kodeks obnašanja](CODE_OF_CONDUCT.md), [Prispevke](CONTRIBUTING.md), [Prevode](..) in [Odpravljanje težav](TROUBLESHOOTING.md). Veselimo se vaših konstruktivnih povratnih informacij! ## Vsaka lekcija vključuje -- izbirno skiciranje -- izbirni dodatni video -- video predstavitev (le nekatere lekcije) -- [predpredavalni kviz za ogrevanje](https://ff-quizzes.netlify.app/en/ml/) -- pisna lekcija -- za lekcije, usmerjene na projekte, vodniki korak za korakom za izdelavo projekta -- preverjanja znanja +- neobvezno skicirno beležko +- neobvezni dodatni video +- video vodič (le pri nekaterih lekcijah) +- [pred-predavalni ogrevalni kviz](https://ff-quizzes.netlify.app/en/ml/) +- pisno lekcijo +- pri projektno usmerjenih lekcijah, korak za korakom vodiče, kako zgraditi projekt +- preverjanje znanja - izziv - dodatno branje - nalogo -- [popredavalni kviz](https://ff-quizzes.netlify.app/en/ml/) - -> **Opomba o jezikih**: Te lekcije so večinoma napisane v Pythonu, a veliko jih je na voljo tudi v R-ju. Če želite dokončati lekcijo v R, pojdite v mapo `/solution` in poiščite lekcije R. Vključujejo končnico .rmd, ki predstavlja **R Markdown** datoteko, ki je preprosto definirana kot vgradnja `kodo delov` (v R ali drugih jezikih) in `YAML glave` (ki usmerja, kako oblikovati izhod, na primer PDF) v `Markdown dokumentu`. Tako služi kot vzoren okvir za avtorje podatkovne znanosti, saj združuje vašo kodo, njen izhod ter vaše misli, saj jih lahko zapišete v Markdown. Poleg tega je mogoče R Markdown dokumente izvesti v izhodne formate, kot so PDF, HTML ali Word. -> **Opomba o kvizih**: Vsi kvizi so v [mapi Quiz App](../../quiz-app), skupaj 52 kvizov s po tremi vprašanji. Povezani so v lekcijah, vendar lahko kvizno aplikacijo zaženete lokalno; sledite navodilom v mapi `quiz-app` za lokalno gostovanje ali namestitev na Azure. - -| Številka lekcije | Tema | Skupina lekcij | Cilji učenja | Povezana lekcija | Avtor | -| :---------------: | :------------------------------------------------------------: | :---------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | -| 01 | Uvod v strojno učenje | [Uvod](1-Introduction/README.md) | Spoznajte osnovne koncepte strojnega učenja | [Lekcija](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Zgodovina strojnega učenja | [Uvod](1-Introduction/README.md) | Spoznajte zgodovino tega področja | [Lekcija](1-Introduction/2-history-of-ML/README.md) | Jen in Amy | -| 03 | Pravičnost in strojno učenje | [Uvod](1-Introduction/README.md) | Kakšne so pomembne filozofske teme glede pravičnosti, ki jih mora študent upoštevati pri izdelavi in uporabi modelov ML? | [Lekcija](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Tehnike strojnega učenja | [Uvod](1-Introduction/README.md) | Katere tehnike za izdelavo ML modelov uporabljajo raziskovalci? | [Lekcija](1-Introduction/4-techniques-of-ML/README.md) | Chris in Jen | -| 05 | Uvod v regresijo | [Regresija](2-Regression/README.md) | Začnite z Python in Scikit-learn za modele regresije | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Vizualizirajte in očistite podatke za pripravo na ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Zgradite linearne in polinomske regresijske modele | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen in Dmitry • Eric Wanjau | -| 08 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Zgradite logistični regresijski model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Spletna aplikacija 🔌 | [Web App](3-Web-App/README.md) | Zgradite spletno aplikacijo za uporabo vašega usposobljenega modela | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Uvod v klasifikacijo | [Klasifikacija](4-Classification/README.md) | Očistite, pripravite in vizualizirajte podatke; uvod v klasifikacijo | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen in Cassie • Eric Wanjau | -| 11 | Sladke azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Uvod v klasifikatorje | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen in Cassie • Eric Wanjau | -| 12 | Sladke azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Več klasifikatorjev | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen in Cassie • Eric Wanjau | -| 13 | Sladke azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Zgradite spletno aplikacijo za priporočanje z uporabo vašega modela | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Uvod v gručenje | [Gručenje](5-Clustering/README.md) | Očistite, pripravite in vizualizirajte podatke; uvod v gručenje | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Raziščimo nigerijske glasbene okuse 🎧 | [Gručenje](5-Clustering/README.md) | Raziščite metodo gručenja K-sredin | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Uvod v obdelavo naravnega jezika ☕️ | [Obdelava naravnega jezika](6-NLP/README.md) | Naučite se osnov NLP z izdelavo preprostega robota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Pogoste naloge NLP ☕️ | [Obdelava naravnega jezika](6-NLP/README.md) | Poglobite svoje znanje NLP z razumevanjem pogostih nalog pri delu z jezikovnimi strukturami | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Prevajanje in analiza sentimenta ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Prevajanje in analiza sentimenta z Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantični hoteli v Evropi ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Analiza sentimenta z ocenami hotelov 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantični hoteli v Evropi ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Analiza sentimenta z ocenami hotelov 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Uvod v napovedovanje časovnih vrst | [Časovne vrste](7-TimeSeries/README.md) | Uvod v napovedovanje časovnih vrst | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Svetovna poraba elektrike ⚡️ - napovedovanje s ARIMA | [Časovne vrste](7-TimeSeries/README.md) | Napovedovanje časovnih vrst z ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Svetovna poraba elektrike ⚡️ - napovedovanje s SVR | [Časovne vrste](7-TimeSeries/README.md) | Napovedovanje časovnih vrst s podporniškim vektorjem regresorjem | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Uvod v učenje z okrepitvijo | [Učenje z okrepitvijo](8-Reinforcement/README.md) | Uvod v učenje z okrepitvijo z metodo Q-učenja | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Pomagajte Petru, da se izogne volku! 🐺 | [Učenje z okrepitvijo](8-Reinforcement/README.md) | Učenje z okrepitvijo v Gimnastiki | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Dodatno | Resnični primeri in aplikacije ML | [ML v praksi](9-Real-World/README.md) | Zanimive in razkrivajoče resnične aplikacije klasičnega ML | [Lekcija](9-Real-World/1-Applications/README.md) | Ekipa | -| Dodatno | Razhroščevanje ML modelov z RAI nadzorno ploščo | [ML v praksi](9-Real-World/README.md) | Razhroščevanje ML modelov z uporabo komponent Responsible AI nadzorne plošče | [Lekcija](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [po-predavalni kviz](https://ff-quizzes.netlify.app/en/ml/) +> **Opomba o jezikih**: Te lekcije so večinoma napisane v Pythonu, vendar so mnoge na voljo tudi v R. Če želite opraviti lekcijo v R, pojdite v mapo `/solution` in poiščite R lekcije. Vsebujejo pripono .rmd, ki predstavlja **R Markdown** datoteko, kar lahko preprosto opredelimo kot vključitev `code chunks` (kose kode v R ali drugih jezikih) in `YAML header` (ki usmerja, kako oblikovati izhod, npr. PDF) v `Markdown dokument`. Kot tak služi kot odličen okvir za pisanje vsebin za podatkovno znanost, saj vam omogoča, da združite svojo kodo, njen izhod in svoje misli tako, da jih lahko zapišete v Markdown. Poleg tega je mogoče dokumente R Markdown pretvoriti v izhodne formate, kot so PDF, HTML ali Word. + +> **Opomba o kvizih**: Vsi kvizi so vsebovani v [quiz-app mapi](../../quiz-app), skupaj 52 kvizov s po tremi vprašanji. Povezani so iz lekcij, vendar se kviz aplikacijo lahko zažene lokalno; sledite navodilom v mapi `quiz-app` za lokalno gostovanje ali namestitev na Azure. + +| Številka lekcije | Tema | Skupina lekcij | Cilji učenja | Povezana lekcija | Avtor | +| :---------------: | :----------------------------------------------------------: | :------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | +| 01 | Uvod v strojno učenje | [Uvod](1-Introduction/README.md) | Naučite se osnovnih pojmov strojenega učenja | [Lekcija](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Zgodovina strojenega učenja | [Uvod](1-Introduction/README.md) | Spoznajte zgodovino tega področja | [Lekcija](1-Introduction/2-history-of-ML/README.md) | Jen in Amy | +| 03 | Pravičnost in strojno učenje | [Uvod](1-Introduction/README.md) | Katere so pomembne filozofske teme glede pravičnosti, ki jih morajo študenti upoštevati pri gradnji in uporabi ML modelov? | [Lekcija](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Tehnike strojenega učenja | [Uvod](1-Introduction/README.md) | Katere tehnike uporabljajo raziskovalci ML za gradnjo ML modelov? | [Lekcija](1-Introduction/4-techniques-of-ML/README.md) | Chris in Jen | +| 05 | Uvod v regresijo | [Regresija](2-Regression/README.md) | Začnite z Python in Scikit-learn za modele regresije | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Vizualizirajte in očistite podatke v pripravi na ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Zgradite linearne in polinomske regresijske modele | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen in Dmitry • Eric Wanjau | +| 08 | Cene buč v Severni Ameriki 🎃 | [Regresija](2-Regression/README.md) | Zgradite logistični regresijski model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Spletna aplikacija 🔌 | [Spletna aplikacija](3-Web-App/README.md) | Zgradite spletno aplikacijo za uporabo vašega izurjenega modela | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Uvod v klasifikacijo | [Klasifikacija](4-Classification/README.md) | Očistite, pripravite in vizualizirajte svoje podatke; uvod v klasifikacijo | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen in Cassie • Eric Wanjau | +| 11 | Okusne azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Uvod v klasifikatorje | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen in Cassie • Eric Wanjau | +| 12 | Okusne azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Več klasifikatorjev | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen in Cassie • Eric Wanjau | +| 13 | Okusne azijske in indijske kuhinje 🍜 | [Klasifikacija](4-Classification/README.md) | Zgradite priporočilno spletno aplikacijo z uporabo vašega modela | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Uvod v gručenje | [Gručenje](5-Clustering/README.md) | Očistite, pripravite in vizualizirajte svoje podatke; uvod v gručenje | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Raziščite nigerijske glasbene okuse 🎧 | [Gručenje](5-Clustering/README.md) | Raziščite metodo K-Means gručenja | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Uvod v obdelavo naravnega jezika ☕️ | [Obdelava naravnega jezika](6-NLP/README.md) | Naučite se osnov NLP z gradnjo preprostega bota | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Pogoste naloge NLP ☕️ | [Obdelava naravnega jezika](6-NLP/README.md) | Poglobite svoje znanje NLP z razumevanjem pogostih nalog, potrebnih pri delu z jezikovnimi strukturami | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Prevodi in analiza sentimenta ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Prevod in analiza sentimenta z Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantični hoteli v Evropi ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Analiza sentimenta s pregledi hotelov 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantični hoteli v Evropi ♥️ | [Obdelava naravnega jezika](6-NLP/README.md) | Analiza sentimenta s pregledi hotelov 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Uvod v napovedovanje časovnih vrst | [Časovne vrste](7-TimeSeries/README.md) | Uvod v napovedovanje časovnih vrst | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Svetovna poraba električne energije ⚡️ - napovedovanje časovnih vrst z ARIMA | [Časovne vrste](7-TimeSeries/README.md) | Napovedovanje časovnih vrst z ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Svetovna poraba električne energije ⚡️ - napovedovanje časovnih vrst z SVR | [Časovne vrste](7-TimeSeries/README.md) | Napovedovanje časovnih vrst s pomočjo Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Uvod v okrepitev učenja | [Okrepitev učenja](8-Reinforcement/README.md) | Uvod v okrepitveno učenje z Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Pomagajte Petru, da se izogne volku! 🐺 | [Okrepitev učenja](8-Reinforcement/README.md) | Okrepitveno učenje z Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Praktični primeri in aplikacije ML | [ML v praksi](9-Real-World/README.md) | Zanimive in poučne praktične uporabe klasičnega strojenega učenja | [Lekcija](9-Real-World/1-Applications/README.md) | Ekipa | +| Postscript | Odpravljanje napak modelov v ML z uporabo RAI nadzorne plošče | [ML v praksi](9-Real-World/README.md) | Odpravljanje napak modelov strojenega učenja z uporabo komponent nadzorne plošče Responsible AI | [Lekcija](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [poiščite vse dodatne vire za ta tečaj v naši zbirki Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Dostop brez povezave -To dokumentacijo lahko poganjate brez povezave z uporabo [Docsify](https://docsify.js.org/#/). Razvejajte ta repozitorij, [namestite Docsify](https://docsify.js.org/#/quickstart) na svoj lokalni računalnik, nato pa v korenski mapi repozitorija vtipkajte `docsify serve`. Spletna stran bo dostopna na vratih 3000 vašega lokalnega računalnika: `localhost:3000`. +To dokumentacijo lahko poganjate brez povezave z uporabo [Docsify](https://docsify.js.org/#/). Razvejajte ta repozitorij, [namestite Docsify](https://docsify.js.org/#/quickstart) na svoj lokalni računalnik, nato pa v korenski mapi tega repozitorija vnesite `docsify serve`. Spletna stran bo dosegljiva na vratih 3000 na vašem lokalnem gostitelju: `localhost:3000`. -## PDF datoteke +## PDF-ji Najdite pdf učnega načrta s povezavami [tukaj](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). ## 🎒 Drugi tečaji -Naša ekipa ustvarja tudi druge tečaje! Oglejte si: +Naša ekipa izdeluje tudi druge tečaje! Oglejte si: ### LangChain @@ -186,53 +186,53 @@ Naša ekipa ustvarja tudi druge tečaje! Oglejte si: [![AZD za začetnike](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI za začetnike](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) [![MCP za začetnike](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI agenti za začetnike](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agent za začetnike](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- - -### Serija generativne AI -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) + +### Serija Generativne umetne inteligence +[![Generativna umetna inteligenca za začetnike](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generativna umetna inteligenca (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generativna umetna inteligenca (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generativna umetna inteligenca (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Osnovno učenje -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Strojno učenje za začetnike](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Podatkovna znanost za začetnike](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Umetna inteligenca za začetnike](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Kibernetska varnost za začetnike](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Spletni razvoj za začetnike](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT za začetnike](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Razvoj XR za začetnike](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Serija Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot za AI združeno programiranje](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot za C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot pustolovščina](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Iskanje pomoči +## Pridobivanje pomoči -Če se zataknete ali imate vprašanja o izdelavi AI aplikacij. Pridružite se ostalim učencem in izkušenim razvijalcem v razpravah o MCP. To je podporna skupnost, kjer so vprašanja dobrodošla in se znanje prosto deli. +Če se zataknete ali imate kakršnakoli vprašanja o izgradnji AI aplikacij, se pridružite drugim učencem in izkušenim razvijalcem v razpravah o MCP. To je podporna skupnost, kjer so vprašanja dobrodošla in se znanje prostodušno deli. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Če imate povratne informacije o izdelku ali napake med izdelavo, obiščite: +Če imate povratne informacije o izdelku ali napake med gradnjo, obiščite: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Dodatni nasveti za učenje -- Preglejte zvezke po vsakem delu za boljše razumevanje. -- Vadite izvajanje algoritmov samostojno. -- Raziščite dejanske podatkovne zbirke z uporabo naučenih konceptov. +- Preglejte zvezke po vsakem lekciji za boljše razumevanje. +- Vadite samostojno izvajanje algoritmov. +- Raziščite podatke iz resničnega sveta z uporabo naučenih konceptov. --- **Omejitev odgovornosti**: -Ta dokument je bil preveden z uporabo storitve za strojno prevajanje AI [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za točnost, upoštevajte, da lahko avtomatizirani prevodi vsebujejo napake ali netočnosti. Izvirni dokument v izvorni jezik smatrajte za verodostojen vir. Za pomembne informacije priporočamo strokovni človeški prevod. Ne odgovarjamo za morebitna nesporazume ali napačne interpretacije, ki izhajajo iz uporabe tega prevoda. +Ta dokument je bil preveden z uporabo AI prevajalske storitve [Co-op Translator](https://github.com/Azure/co-op-translator). Čeprav si prizadevamo za natančnost, upoštevajte, da avtomatizirani prevodi lahko vsebujejo napake ali netočnosti. Izvirni dokument v maternem jeziku velja za avtoritativni vir. Za ključne informacije priporočamo strokovni prevod s strani človeka. Ne odgovarjamo za kakršne koli nesporazume ali napačne razlage, ki izhajajo iz uporabe tega prevoda. \ No newline at end of file diff --git a/translations/sr/.co-op-translator.json b/translations/sr/.co-op-translator.json index 84ba848fc..fedff572d 100644 --- a/translations/sr/.co-op-translator.json +++ b/translations/sr/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "sr" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:14:54+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:25:48+00:00", "source_file": "README.md", "language_code": "sr" }, diff --git a/translations/sr/README.md b/translations/sr/README.md index 024070feb..e549e1646 100644 --- a/translations/sr/README.md +++ b/translations/sr/README.md @@ -10,14 +10,14 @@ ### 🌐 Подршка за више језика -#### Подржано преко GitHub Action (Аутоматизовано и увек ажурирано) +#### Подржано преко GitHub акције (аутоматизовано и увек ажурирано) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](./README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](./README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Волите да клонирате локално?** > -> Овај репозиторијум укључује преводе на више од 50 језика што значајно повећава величину преузимања. Да бисте клонирали без превода, користите sparse checkout: +> Ово складиште укључује више од 50 превода језика што значајно повећава величину преузимања. Да бисте клонирали без превода, користите sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,62 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Ово вам даје све што је потребно да завршите курс много брже. +> Ово вам даје све што вам је потребно да завршите курс много брже преузимањем. #### Придружите се нашој заједници [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Имамо серију на Дискорду „Учимо уз AI у току“, сазнајте више и придружите нам се на [Learn with AI Series](https://aka.ms/learnwithai/discord) од 18. до 30. септембра 2025. године. Добићете савете и трикове за коришћење GitHub Copilot-а за Науку о подацима. +Имате текућу серију Learn with AI на Discord-у, сазнајте више и придружите нам се на [Learn with AI Series](https://aka.ms/learnwithai/discord) од 18. до 30. септембра 2025. године. Добићете савете и трикове за коришћење GitHub Copilot за Data Science. ![Learn with AI series](../../translated_images/sr/3.9b58fd8d6c373c20.webp) -# Машинско учење за почетнике - Наставни план +# Машинско учење за почетнике - Курикулум -> 🌍 Путујте око света док истражујемо Машинско учење кроз културе света 🌍 +> 🌍 Путујте око света док истражујемо машинско учење кроз културе света 🌍 -Cloud Advocates у Microsoft-у са задовољством нуде 12-недељни, 26-лекцијски наставни план који је посвећен **Машинском учењу**. У овом наставном плану научићете о ономе што се понекад назива **класичним машинским учењем**, користећи углавном Scikit-learn као библиотеку, избегавајући дубоко учење које је обрађено у нашем [AI for Beginners наставном плану](https://aka.ms/ai4beginners). Поред ових лекција можете користити и наш ['Data Science for Beginners' наставни план](https://aka.ms/ds4beginners)! +Cloud Advocates у Microsoft-у са задовољством нуде 12-недељни курикулум од 26 лекција у вези са **машинским учењем**. У овом курикулуму учићете о ономе што се понекад назива **клasiчним машинским учењем**, користећи углавном Scikit-learn као библиотеку и избегавајући дубоко учење које је обухваћено у нашем курикулуму [AI for Beginners](https://aka.ms/ai4beginners). Такође можете паровати ове лекције са нашим курсом ['Data Science for Beginners'](https://aka.ms/ds4beginners). -Путујте с нама око света док примењујемо ове класичне технике на податке из многих делова света. Свакa лекцијa укључује пред и пост квизове, написане инструкције за завршетак лекције, решење, задатак и још много тога. Наша метода заснована на пројектима вам омогућава да учите док стварате, што је доказани начин да нове вештине остану у памћењу. +Путујте с нама широм света док примењујемо ове класичне технике на податке из многих области света. Свака лекција укључује прегледне квизове пре и после лекције, упутства за извршење лекције, решење, задатак и више. Наша педагогија заснована на пројектима омогућава да учите док градите, а то је доказан начин да нове вештине 'остану'. -**✍️ Велика захвалност нашим ауторима** Јен Лупер, Стивен Хаул, Франческа Лазери, Томоми Имура, Каси Бревиу, Дмитриј Сошников, Крис Норинг, Анирбан Мукерџи, Орнела Алтуњан, Рут Јакубу и Ејми Бојд +**✍️ Велика захвалност нашим ауторима** Јен Лупер, Стивен Хауел, Франческа Лазери, Томоми Имура, Кеси Бревију, Дмитриј Сошников, Крис Норинг, Анирбан Мукхерџи, Орнела Алтуњан, Рут Јакубу и Ејми Бојд -**🎨 Хвала и нашим илустраторима** Томоми Имура, Дасани Мадипали и Јен Лупер +**🎨 Хвала и нашим илустраторкама** Томоми Имура, Дасани Мадипалли и Јен Лупер -**🙏 Посебна захвалност 🙏 нашим студентским амбасадорима Microsoft-а који су аутори, рецензенти и сарадници на садржају**, значајно Ришит Даґли, Мухаммад Сакиб Кан Инан, Рохан Рај, Александру Петреску, Абхишек Џаисвал, Наврин Табасум, Јоан Самуила и Снигдха Агарвал +**🙏 Посебна захвалност 🙏 нашим Microsoft Student Ambassador ауторима, рецензентима и сарадницима**, посебно Ришиту Даглију, Мухамаду Сакибу Хану Инану, Рохану Рају, Александру Петреску, Абишеку Џаисвалу, Наврин Табасум, Јоану Самуила и Снигдхи Агарвал -**🤩 Посебна захвалност Microsoft студентским амбасадорима Ерик Вањау, Јаслин Сонди и Видуши Гупта за наше R лекције!** +**🤩 Посебне захвалности Microsoft Student Ambassadors Ерику Вањау, Јаслину Сонди и Видуши Гупта за наше Р лекције!** -# Почетак рада +# Почетак -Пратите ове кораке: -1. **Форкујте репозиторијум**: Кликните на дугме "Fork" у горњем десном углу ове странице. +Пратите ове кораке: +1. **Извршите форк репозиторијума**: Кликните на дугме "Fork" у горњем десном углу ове странице. 2. **Клонирајте репозиторијум**: `git clone https://github.com/microsoft/ML-For-Beginners.git` > [пронађите све додатне ресурсе за овај курс у нашој Microsoft Learn колекцији](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Треба помоћ?** Погледајте наш [Водич за решавање проблема](TROUBLESHOOTING.md) за решења за честе проблеме са инсталацијом, подешавањем и покретањем лекција. +> 🔧 **Треба вам помоћ?** Погледајте наш [Водич за решавање проблема](TROUBLESHOOTING.md) за решења уобичајених проблема са инсталацијом, подешавањем и извођењем лекција. -**[Студенти](https://aka.ms/student-page)**, да бисте користили овај наставни план, форкујте цео репо на свој GitHub налог и решавајте задатке сами или у групи: -- Почните са уводним квизом пре предавања. -- Прочитајте предавање и завршите активности, застаните и размишљајте на сваки провера знања. -- Покушајте да креирате пројекте разумевањем лекција уместо само покретања кода решења; ипак, код решења је доступан у фолдерима `/solution` у свакој лекцији усмереној на пројекат. -- Урадите квиз након предавања. -- Завршите изазов. -- Испуните задатак. -- Након завршетка групе лекција, посетите [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) и „учите гласно“ попуњавајући одговарајућу PAT рубрику. PAT је алатка за процену напретка коју попуњавате да бисте продубили своје учење. Такође можете реаговати на друге PAT-ове да учимо заједно. +**[Студенти](https://aka.ms/student-page)**, да бисте користили овај курикулум, форкујте цео репо на свој GitHub налог и радите задатке сами или у групи: -> За додатно учење препоручујемо прoдавање ових [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) модула и уџбеничких путева. +- Почните са квизом пре предавања. +- Прочитајте предавање и завршите активности, правећи паузе за размишљање код сваке провере знања. +- Покушајте да креирате пројекте разумевањем лекција уместо само извршавањем кода решења; код решења је ипак доступан у /solution фолдерима у свакој пројектно оријентисаној лекцији. +- Урадите квиз после предавања. +- Завршите изазов. +- Испуните задатак. +- Након завршетка групе лекција, посетите [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) и „учите наглас“ попуњавајући одговарајућу PAT рубрику. 'PAT' је алат за процену напретка која вам помаже да напредујете у учењу. Можете и реаговати на друге PAT-ове да учимо заједно. -**Наставници**, припремили смо [неке предлоге](for-teachers.md) како да користите овај наставни план. +> За даље учење, препоручујемо праћење ових [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) модула и путева учења. + +**Наставници**, укључили смо неке [предлоге](for-teachers.md) о томе како да користите овај курикулум. --- -## Видео водичи +## Видеоуроци -Неке лекције су доступне као кратки видео записи. Све их можете пронаћи унутар лекција, или на [ML for Beginners плејлисти на Microsoft Developer YouTube каналу](https://aka.ms/ml-beginners-videos) кликом на слику испод. +Неке лекције су доступне у форми кратких видео снимака. Све их можете пронаћи уграђено у лекцијама или на [ML for Beginners списку песама на Microsoft Developer YouTube каналу](https://aka.ms/ml-beginners-videos) кликом на слику испод. [![ML for beginners banner](../../translated_images/sr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -98,81 +99,81 @@ Cloud Advocates у Microsoft-у са задовољством нуде 12-нед [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Гиф автор** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Гиф од** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Кликните на слику изнад за видео о пројекту и људима који су га створили! +> 🎥 Кликните на слику горе за видео о пројекту и људима који су га створили! --- ## Педагогија -Изабрали смо два педагошка принципа при изради овог наставног плана: обезбеђивање практичности и заснованост на пројектима, као и учестале квизове. Поред тога, овај наставни план има заједничку тему која му даје кохерентност. +Изабрали смо два педагошка принципа приликом изградње овог курикулума: да буде практичан и заснован на пројектима и да укључује често понављање кроз квизове. Поред тога, курикулум има заједничку тему која му даје кохерентност. -Обезбеђивањем да садржај буде у складу са пројектима, процес постаје занимљивији за студенте и повећава се задржавање знања. Поред тога, квиз пред предавање поставља сврху студента према учењу теме, док други квиз након предавања осигурава додатно задржавање знања. Овај наставни план је дизајниран да буде флексибилан и забаван и може се узети у целости или делимично. Пројекти почињу мали и све су сложенији до краја 12-недељног циклуса. Наставни план укључује и посл scriptо о применама ML у стварном свету, који може послужити као додатни кредити или основа за дискусију. +Обезбеђујући да садржај буде повезан са пројектима, процес постаје занимљивији за студенте и побољшава се задржавање концепата. Ниско ризични квиз пре предавања поставља циљ студента ка учењу теме, док други квиз после предавања обезбеђује додатно учвршћивање знања. Овај курикулум је дизајниран да буде флексибилан и забаван и може се пратити у целини или делимично. Пројекти почињу једноставно и постају све сложенији до краја 12-недељног циклуса. Курикулум такође укључује последњи део о реалним применама ML-а, који се може користити као додатни кредити или као основ за дискусију. -> Пронађите наше [Правила понашања](CODE_OF_CONDUCT.md), [Упутства за допринос](CONTRIBUTING.md), [Преводе](..) и [Водич за решавање проблема](TROUBLESHOOTING.md). Добродошли сте да нам пружите конструктивне повратне информације! +> Пронађите наше [Правило понашања](CODE_OF_CONDUCT.md), [Упутство за допринос](CONTRIBUTING.md), [Преводе](..) и [Решавање проблема](TROUBLESHOOTING.md). Добродошле су ваше конструктивне повратне информације! -## Свaka лекција укључује +## Свaка лекцијa укључује -- опциони скицнот -- опциони додатни видео -- видео водич (само неке лекције) -- [квиз за загревање пре предавања](https://ff-quizzes.netlify.app/en/ml/) -- написану лекцију -- за лекције засноване на пројекту, корак-по-корак упутства како да се пројекат направи -- провере знања -- изазов -- додатно читање -- задатак +- опционални скицнот +- опционални додатни видео +- видео водич (само неке лекције) +- [квиз за загревање пре предавања](https://ff-quizzes.netlify.app/en/ml/) +- писани материјал за лекцију +- за лекције засноване на пројектима, корак-по-корак упутства како направити пројекат +- проверу знања +- изазов +- допунско читање +- задатак - [квиз после предавања](https://ff-quizzes.netlify.app/en/ml/) - -> **Напомена о језицима**: Ове лекције су углавном написане у Питону, али многе су доступне и у R. Да бисте урадили R лекцију, идите у фасциклу `/solution` и потражите R лекције. Оне имају `.rmd` екстензију која представља **R Markdown** фајл, који се може дефинисати као уграђивање `делова кода` (R или других језика) и `YAML заглавља` (које управља форматом излаза као што је PDF) у `Markdown документ`. Као такав, R Markdown служи као пример како написати научне радове у области науке о подацима јер омогућава да комбинујете свој код, његов излаз и своје напомене тако што их записујете у Markdown формату. Поред тога, R Markdown документи се могу извозити у формате као што су PDF, HTML или Word. -> **Напомена о квизовима**: Сви квизови се налазе у [Quiz App фолдеру](../../quiz-app), укупно 52 квиза са по три питања. Повезани су из уџбеника, али квиз апликацију можете покренути локално; следите упутства у фолдеру `quiz-app` за локално хостовање или деплои на Azure. - -| Број лекције | Тема | Груписање лекција | Циљеви учења | Повезана лекција | Аутор | -| :----------: | :----------------------------------------------------------: | :--------------------------------------------------: | -------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| 01 | Увод у машинско учење | [Увод](1-Introduction/README.md) | Упознајте основне појмове машинског учења | [Лекција](1-Introduction/1-intro-to-ML/README.md) | Мухамад | -| 02 | Историја машинског учења | [Увод](1-Introduction/README.md) | Упознајте историју овог поља | [Лекција](1-Introduction/2-history-of-ML/README.md) | Џен и Ејми | -| 03 | Праведност и машинско учење | [Увод](1-Introduction/README.md) | Која су важна филозофска питања о праведности које ученици треба да размотре при изградњи и примени ML модела? | [Лекција](1-Introduction/3-fairness/README.md) | Томоми | -| 04 | Технике машинског учења | [Увод](1-Introduction/README.md) | Које технике ML истраживачи користе за изградњу ML модела? | [Лекција](1-Introduction/4-techniques-of-ML/README.md) | Крис и Џен | -| 05 | Увод у регресију | [Регресија](2-Regression/README.md) | Започните рад са Python и Scikit-learn за регресионе моделе | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Џен • Ерик Вањау | -| 06 | Цене бундеве у Северној Америци 🎃 | [Регресија](2-Regression/README.md) | Визуализујте и очистите податке за припрему за ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Џен • Ерик Вањау | -| 07 | Цене бундеве у Северној Америци 🎃 | [Регресија](2-Regression/README.md) | Направите линеарне и полиномијалне регресионе моделе | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Џен и Дмитри • Ерик Вањау | -| 08 | Цене бундеве у Северној Америци 🎃 | [Регресија](2-Regression/README.md) | Направите логистички регресион модел | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Џен • Ерик Вањау | -| 09 | Веб апликација 🔌 | [Веб апликација](3-Web-App/README.md) | Направите веб апликацију за коришћење вашег обученог модела | [Python](3-Web-App/1-Web-App/README.md) | Џен | -| 10 | Увод у класификацију | [Класификација](4-Classification/README.md) | Очистите, припремите и визуализујте своје податке; увод у класификацију | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Џен и Кеси • Ерик Вањау | -| 11 | Укусна азијска и индијска кухиња 🍜 | [Класификација](4-Classification/README.md) | Увод у класификаторе | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Џен и Кеси • Ерик Вањау | -| 12 | Укусна азијска и индијска кухиња 🍜 | [Класификација](4-Classification/README.md) | Још класификатора | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Џен и Кеси • Ерик Вањау | -| 13 | Укусна азијска и индијска кухиња 🍜 | [Класификација](4-Classification/README.md) | Направите препоручивачки веб апликатор помоћу вашег модела | [Python](4-Classification/4-Applied/README.md) | Џен | -| 14 | Увод у кластерисање | [Кластерисање](5-Clustering/README.md) | Очистите, припремите и визуализујте своје податке; увод у кластерисање | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Џен • Ерик Вањау | -| 15 | Истраживање музичких преференција у Нигерији 🎧 | [Кластерисање](5-Clustering/README.md) | Истражите K-Means методу кластерисања | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Џен • Ерик Вањау | -| 16 | Увод у обраду природног језика ☕️ | [Обрада природног језика](6-NLP/README.md) | Научите основе NLP кроз прављење једноставног бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Стивен | -| 17 | Заједнички NLP задаци ☕️ | [Обрада природног језика](6-NLP/README.md) | Продубите знања о NLP разумевањем заједничких задатака који су потребни при раду са језичким структурама | [Python](6-NLP/2-Tasks/README.md) | Стивен | -| 18 | Превод и анализа сентимента ♥️ | [Обрада природног језика](6-NLP/README.md) | Превод и анализа сентимента уз Џејн Остин | [Python](6-NLP/3-Translation-Sentiment/README.md) | Стивен | -| 19 | Романтични хотели Европе ♥️ | [Обрада природног језика](6-NLP/README.md) | Анализа сентимента уз рецензије хотела 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Стивен | -| 20 | Романтични хотели Европе ♥️ | [Обрада природног језика](6-NLP/README.md) | Анализа сентимента уз рецензије хотела 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Стивен | -| 21 | Увод у прогнозирање временских серија | [Временске серије](7-TimeSeries/README.md) | Увод у прогнозирање временских серија | [Python](7-TimeSeries/1-Introduction/README.md) | Франческа | -| 22 | ⚡️ Светска потрошња електричне енергије ⚡️ - прогнозирање временских серија са ARIMA | [Временске серије](7-TimeSeries/README.md) | Прогнозирање временских серија са ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Франческа | -| 23 | ⚡️ Светска потрошња електричне енергије ⚡️ - прогнозирање временских серија са SVR | [Временске серије](7-TimeSeries/README.md) | Прогнозирање временских серија са Support Vector Regressorом | [Python](7-TimeSeries/3-SVR/README.md) | Анирбан | -| 24 | Увод у учење са појачањем | [Учење са појачањем](8-Reinforcement/README.md) | Увод у учење са појачањем кроз Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Дмитри | -| 25 | Помозите Питеру да избегне вука! 🐺 | [Учење са појачањем](8-Reinforcement/README.md) | Gym за учење са појачањем | [Python](8-Reinforcement/2-Gym/README.md) | Дмитри | -| Постскрипт | Реални сценарији и примене ML | [ML у пракси](9-Real-World/README.md) | Интересантне и поучне стварне примене класичног ML | [Лекција](9-Real-World/1-Applications/README.md) | Тим | -| Постскрипт | Дијагностика модела у ML помоћу RAI контролне табле | [ML у пракси](9-Real-World/README.md) | Дијагностика модела у машинском учењу помоћу компоненти Responsible AI контролне табле | [Лекција](9-Real-World/2-Debugging-ML-Models/README.md) | Рут Јакубу | - -> [пронађите све додатне ресурсе за овај курс у нашој Microsoft Learn колекцији](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> **Напомена о језицима**: Ове лекције су првенствено написане у Питону, али многе су такође доступне и у Р. Да бисте завршили Р лекцију, идите у фолдер `/solution` и потражите Р лекције. Оне имају проширење .rmd које представља **Р Маркдаун** фајл, који се једноставно може дефинисати као уграђивање `код чипова` (Р или других језика) и `YAML заглавља` (које води како форматирати излазе као што је ПДФ) у `Маркдаун документу`. Као такав, служи као пример оквира за ауторство у науци о подацима јер вам омогућава да комбинујете свој код, његов излаз и своје мисли тако што ћете их записати у Маркдауну. Штавише, Р Маркдаун документи се могу рендеровати у формате излаза као што су ПДФ, ХТМЛ или Ворд. + +> **Напомена о квизовима**: Сви квизови се налазе у [Quiz App фолдеру](../../quiz-app), укупно 52 квиза са по три питања у сваком. Они су повезани изнутра у лекцијама, али се квиз апликација може покренути и локално; пратите упутства у фолдеру `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) | Почните са Питоном и Scikit-learn за регресионе моделе | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Северноамеричке цене бундеве 🎃 | [Регресија](2-Regression/README.md) | Визуелизујте и очистите податке као припрему за МЛ | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Северноамеричке цене бундеве 🎃 | [Регресија](2-Regression/README.md) | Направите линеарне и полиномијалне регресионе моделе | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen и Dmitry • Eric Wanjau | +| 08 | Северноамеричке цене бундеве 🎃 | [Регресија](2-Regression/README.md) | Направите логистичку регресију | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Веб апликација 🔌 | [Веб апликација](3-Web-App/README.md) | Направите веб апликацију која користи ваш тренирани модел | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Увод у класификацију | [Класификација](4-Classification/README.md) | Очистите, припремите и визуализујте своје податке; увод у класификацију | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen и Cassie • Eric Wanjau | +| 11 | Укусне азијске и индијске кухиње 🍜 | [Класификација](4-Classification/README.md) | Увод у класификаторе | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen и Cassie • Eric Wanjau | +| 12 | Укусне азијске и индијске кухиње 🍜 | [Класификација](4-Classification/README.md) | Више класификатора | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen и Cassie • Eric Wanjau | +| 13 | Укусне азијске и индијске кухиње 🍜 | [Класификација](4-Classification/README.md) | Направите препоручивачку веб апликацију користећи свој модел | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Увод у кластерисање | [Кластерисање](5-Clustering/README.md) | Очистите, припремите и визуализујте податке; увод у кластерисање | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Истраживање нигеријских музичких укуса 🎧 | [Кластерисање](5-Clustering/README.md) | Истражите К-Меанс методу кластерисања | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Увод у обраду природног језика ☕️ | [Обрада природног језика](6-NLP/README.md) | Научите основе НЛП-а правећи једноставног бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Уобичајени НЛП задаци ☕️ | [Обрада природног језика](6-NLP/README.md) | Продубите знање о НЛП-у разумевањем уобичајених задатака потребних у раду са језичким структурама | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Превод и анализа сентимента ♥️ | [Обрада природног језика](6-NLP/README.md) | Превод и анализа сентимента са Џејн Остин | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Романтични хотели Европе ♥️ | [Обрада природног језика](6-NLP/README.md) | Анализа сентимента са рецензијама хотела 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Романтични хотели Европе ♥️ | [Обрада природног језика](6-NLP/README.md) | Анализа сентимента са рецензијама хотела 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Увод у предвиђање временских серија | [Временске серије](7-TimeSeries/README.md) | Увод у предвиђање временских серија | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Светска потрошња електричне енергије ⚡️ - предвиђање временских серија са АРИМА | [Временске серије](7-TimeSeries/README.md) | Предвиђање временских серија помоћу АРИМА модели | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Светска потрошња електричне енергије ⚡️ - предвиђање временских серија са СВР | [Временске серије](7-TimeSeries/README.md) | Предвиђање временских серија помоћу модела Регресије вектора подршке (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Увод у учење ојачања | [Учење ојачања](8-Reinforcement/README.md) | Увод у учење ојачања помоћу Q-Learning-а | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Помозите Петеру да избегне вука! 🐺 | [Учење ојачања](8-Reinforcement/README.md) | Учење ојачања у Gym окружењу | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Постскрипт | Реални сценарији и примене МЛ | [Машинско учење у пракси](9-Real-World/README.md) | Интересантне и откривајуће реалне примене класичног МЛ | [Лекција](9-Real-World/1-Applications/README.md) | Тим | +| Постскрипт | Отказивање модела у МЛ користећи РАИ инструмент | [Машинско учење у пракси](9-Real-World/README.md) | Отказивање модела у машинском учењу користећи компоненте РАИ контролне табле | [Лекција](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [нађите све додатне ресурсе за овај курс у нашој Microsoft Learn колекцији](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Оффлине приступ -Ову документацију можете користити оффлине помоћу [Docsify](https://docsify.js.org/#/). Форкујте овај репозиторијум, [инсталирајте Docsify](https://docsify.js.org/#/quickstart) на својој локалној машини, и у коренском фолдеру овог репозиторијума укуцајте `docsify serve`. Сајт ће бити доступан на порту 3000 на вашем localhost-у: `localhost:3000`. +Можете да покренете ову документацију офлајн користећи [Docsify](https://docsify.js.org/#/). Форкујте овај репозиторијум, [инсталирајте Docsify](https://docsify.js.org/#/quickstart) на свој локални рачунар, а затим у рута фолдеру овог репозиторијума укуцајте `docsify serve`. Вебсајт ће бити доступан на порту 3000 на вашој локалној машини: `localhost:3000`. -## PDF-ови +## ПДФ фајлови -Проналажење PDF верзије програма са линковима [овде](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Пронађите ПДФ наставног плана са линковима [овде](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Други курсеви +## 🎒 Остали курсеви -Наш тим прави и друге курсеве! Погледајте: +Наш тим производи и друге курсеве! Погледајте: ### LangChain @@ -184,16 +185,16 @@ Cloud Advocates у Microsoft-у са задовољством нуде 12-нед ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP за почетнике](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI агенти за почетнике](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series -[![Генеративни AI за почетнике](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Генеративни AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Генеративни AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Генеративни AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Серии генеративне вештачке интелигенције +[![Генеративна вештачка интелигенција за почетнике](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Генеративна вештачка интелигенција (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Генеративна вештачка интелигенција (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Генеративна вештачка интелигенција (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- @@ -201,37 +202,37 @@ Cloud Advocates у Microsoft-у са задовољством нуде 12-нед [![Машинско учење за почетнике](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Наука о подацима за почетнике](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![Вештачка интелигенција за почетнике](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Кибер безбедност за почетнике](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Безбедност у сајбер простору за почетнике](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![Веб развој за почетнике](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT за почетнике](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR развој за почетнике](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Интернет ствари за почетнике](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Развој XR за почетнике](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Copilot серија -[![Copilot за парно програмирање уз AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +### Серии Copilot +[![Copilot за AI пар програмерство](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot за C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot авантура](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Како добити помоћ +## Добијање помоћи -Ако запнете или имате питања у вези са прављењем AI апликација. Придружите се колегама студентима и искусним програмерима у дискусијама о MCP. То је подржавајућа заједница где су питања добродошла и где се знање слободно дели. +Ако заглавите или имате било каквих питања о изградњи AI апликација. Придружите се другим ученицима и искусним програмерима у расправама о MCP. То је подржавајућа заједница у којој су питања добро дошла и знање се слободно дели. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ако имате повратне информације о производу или грешке приликом израде посетите: +Ако имате повратне информације о производу или грешке током изградње, посетите: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Додатни савети за учење -- Прегледајте белешке након сваког часа ради бољег разумевања. -- Вежбајте имплементацију алгоритама сами. -- Истражујте реалне скупове података користећи научене концепте. +- Прегледајте свеске након сваког часа ради бољег разумевања. +- Вежбајте самостално имплементацију алгоритама. +- Истражујте стварне скупове података користећи научене концепте. --- **Одрицање од одговорности**: -Овај документ је преведен коришћењем AI сервиса за превођење [Co-op Translator](https://github.com/Azure/co-op-translator). Иако настојимо да превод буде тачан, молимо имајте у виду да аутоматски преводи могу садржати грешке или нетачности. Оригинални документ на изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се стручно људско превођење. Не сносимо одговорност за било каква неспоразума или погрешне тумачења проистекла из коришћења овог превода. +Овај документ је преведен коришћењем услуге за аутоматски превод [Co-op Translator](https://github.com/Azure/co-op-translator). Иако се трудимо да превод буде тачан, молимо имајте у виду да аутоматизовани преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетним извором. За критичне информације препоручује се професионални превод од стране човека. Нисмо одговорни за било каква неспоразуми или погрешне интерпретације настале коришћењем овог превода. \ No newline at end of file diff --git a/translations/sv/.co-op-translator.json b/translations/sv/.co-op-translator.json index 52d5689b9..876cb073d 100644 --- a/translations/sv/.co-op-translator.json +++ b/translations/sv/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "sv" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:47:54+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:31:15+00:00", "source_file": "README.md", "language_code": "sv" }, diff --git a/translations/sv/README.md b/translations/sv/README.md index e8ecd7d7f..dd6cf3e68 100644 --- a/translations/sv/README.md +++ b/translations/sv/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 Flerspråkigt stöd +### 🌐 Fler språkstöd -#### Stöds via GitHub Action (Automatiserat & Alltid Uppdaterat) +#### Stöds via GitHub Action (Automatiserat och alltid uppdaterat) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](./README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabiska](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgariska](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Kinesiska (förenklad)](../zh-CN/README.md) | [Kinesiska (traditionell, Hongkong)](../zh-HK/README.md) | [Kinesiska (traditionell, Macau)](../zh-MO/README.md) | [Kinesiska (traditionell, Taiwan)](../zh-TW/README.md) | [Kroatiska](../hr/README.md) | [Tjeckiska](../cs/README.md) | [Danska](../da/README.md) | [Holländska](../nl/README.md) | [Estniska](../et/README.md) | [Finska](../fi/README.md) | [Franska](../fr/README.md) | [Tyska](../de/README.md) | [Grekiska](../el/README.md) | [Hebreiska](../he/README.md) | [Hindi](../hi/README.md) | [Ungerska](../hu/README.md) | [Indonesiska](../id/README.md) | [Italienska](../it/README.md) | [Japanska](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Koreanska](../ko/README.md) | [Litauiska](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigeriansk Pidgin](../pcm/README.md) | [Norska](../no/README.md) | [Persiska (Farsi)](../fa/README.md) | [Polska](../pl/README.md) | [Portugisiska (Brasilien)](../pt-BR/README.md) | [Portugisiska (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Rumänska](../ro/README.md) | [Ryska](../ru/README.md) | [Serbiska (kyrilliska)](../sr/README.md) | [Slovakiska](../sk/README.md) | [Slovenska](../sl/README.md) | [Spanska](../es/README.md) | [Swahili](../sw/README.md) | [Svenska](./README.md) | [Tagalog (Filippinska)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thailändska](../th/README.md) | [Turkiska](../tr/README.md) | [Ukrainska](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Vill du klona lokalt?** +> **Föredrar du att klona lokalt?** > -> Detta arkiv innehåller över 50 språköversättningar som ökar nedladdningsstorleken avsevärt. För att klona utan översättningar, använd sparsamt utcheckning: +> Detta arkiv inkluderar över 50 språköversättningar vilket gör nedladdningsstorleken betydligt större. För att klona utan översättningar, använd sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,140 +33,140 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Det ger dig allt du behöver för att genomföra kursen med en mycket snabbare nedladdning. +> Detta ger dig allt du behöver för att genomföra kursen med en mycket snabbare nedladdning. -#### Gå med i vårt community +#### Gå med i vår community [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Vi har en pågående Discord-serie för att lära sig med AI, lär dig mer och gå med oss på [Learn with AI Series](https://aka.ms/learnwithai/discord) från 18 - 30 september 2025. Du får tips och tricks för att använda GitHub Copilot för Data Science. +Vi har en Discord-serie "Learn with AI" på gång, lär dig mer och gå med oss på [Learn with AI Series](https://aka.ms/learnwithai/discord) mellan 18 - 30 september 2025. Du får tips och tricks för att använda GitHub Copilot för Data Science. ![Learn with AI series](../../translated_images/sv/3.9b58fd8d6c373c20.webp) -# Maskininlärning för nybörjare - En kursplan +# Maskininlärning för nybörjare - Ett läroprogram -> 🌍 Res runt i världen medan vi utforskar Maskininlärning genom världskulturer 🌍 +> 🌍 Res runt i världen medan vi utforskar maskininlärning genom världens kulturer 🌍 -Cloud Advocates på Microsoft är glada att erbjuda en 12-veckors, 26-lektioners kursplan som handlar helt om **Maskininlärning**. I denna kursplan lär du dig om det som ibland kallas **klassisk maskininlärning**, som primärt använder Scikit-learn som bibliotek och undviker djupinlärning, vilken behandlas i vår [AI för nybörjare-kursplan](https://aka.ms/ai4beginners). Kombinera dessa lektioner med vår ['Data Science för nybörjare-kursplan'](https://aka.ms/ds4beginners), också! +Cloud Advocates på Microsoft är glada att erbjuda ett 12-veckors, 26-lektioners läroprogram helt om **Maskininlärning**. I detta läroprogram kommer du att lära dig vad som ibland kallas **klassisk maskininlärning**, där vi huvudsakligen använder Scikit-learn som bibliotek och undviker djupinlärning, som täcks i vårt [AI for Beginners-läroprogram](https://aka.ms/ai4beginners). Kombinera gärna dessa lektioner med vårt ['Data Science for Beginners'-läroprogram](https://aka.ms/ds4beginners)! -Res med oss runt världen medan vi applicerar dessa klassiska tekniker på data från många delar av världen. Varje lektion inkluderar quiz före och efter lektionen, skrivna instruktioner för att slutföra lektionen, en lösning, en uppgift och mer. Vår projektbaserade pedagogik tillåter dig att lära dig medan du bygger, ett beprövat sätt att befästa nya färdigheter. +Res med oss runt världen när vi applicerar dessa klassiska tekniker på data från många delar av världen. Varje lektion innehåller quiz före och efter lektionen, skriftliga instruktioner för att slutföra lektionen, en lösning, ett uppdrag och mer. Vår projektbaserade pedagogik låter dig lära medan du bygger, ett beprövat sätt för nya färdigheter att "fästa". **✍️ Stort tack till våra författare** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu och Amy Boyd -**🎨 Tack även till våra illustratörer** Tomomi Imura, Dasani Madipalli, och Jen Looper +**🎨 Tack även till våra illustratörer** Tomomi Imura, Dasani Madipalli och Jen Looper -**🙏 Speciellt tack 🙏 till våra Microsoft Student Ambassador-författare, granskare och innehållsbidragsgivare**, särskilt Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila och Snigdha Agarwal +**🙏 Speciellt tack 🙏 till våra Microsoft Student Ambassador-författare, granskare och innehållsmedarbetare**, särskilt Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila och Snigdha Agarwal -**🤩 Extra tack till Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, och Vidushi Gupta för våra R-lektioner!** +**🤩 Extra tacksamhet till Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi och Vidushi Gupta för våra R-lektioner!** # Komma igång Följ dessa steg: -1. **Fork:a arkivet**: Klicka på "Fork"-knappen i övre högra hörnet på den här sidan. -2. **Klon:a arkivet**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Fork:a arkivet**: Klicka på knappen "Fork" längst upp till höger på denna sida. +2. **Klona arkivet**: `git clone https://github.com/microsoft/ML-For-Beginners.git` > [hitta alla ytterligare resurser för denna kurs i vår Microsoft Learn-samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Behöver du hjälp?** Kolla vår [Felsökningsguide](TROUBLESHOOTING.md) för lösningar på vanliga problem med installation, konfiguration och körning av lektioner. +> 🔧 **Behöver du hjälp?** Kolla vår [Guide för felsökning](TROUBLESHOOTING.md) för lösningar på vanliga problem med installation, uppsättning och att köra lektioner. -**[Studenter](https://aka.ms/student-page)**, för att använda denna kursplan, fork:a hela repo till ditt eget GitHub-konto och genomför övningarna på egen hand eller i grupp: +**[Studenter](https://aka.ms/student-page)**, för att använda detta läroprogram, fork:a hela repo till ditt eget GitHub-konto och gör övningarna själv eller i grupp: -- Börja med ett quiz före lektionen. +- Börja med ett quiz före föreläsningen. - Läs lektionen och genomför aktiviteterna, pausa och reflektera vid varje kunskapskontroll. -- Försök att skapa projekten genom att förstå lektionerna snarare än att bara köra lösningskoden; dock finns koden tillgänglig i `/solution`-mapparna i varje projektorienterad lektion. -- Gör quiz efter lektionen. -- Genomför utmaningen. -- Gör uppgiften. -- Efter att du har avslutat en lektionsgrupp, besök [Diskussionspanelen](https://github.com/microsoft/ML-For-Beginners/discussions) och "lära högt" genom att fylla i rätt PAT-rubrik. En 'PAT' är ett framstegsbedömningsverktyg som är en rubrik du fyller i för att främja ditt lärande. Du kan också reagera på andras PAT:s så vi kan lära oss tillsammans. +- Försök skapa projekten genom att förstå lektionerna snarare än att köra lösningskoden; dock finns den koden tillgänglig i `/solution`-mapparna i varje projektorienterad lektion. +- Ta quizet efter föreläsningen. +- Slutför utmaningen. +- Slutför uppgiften. +- Efter att ha genomfört en lektionsgrupp, besök [Diskussionsforumet](https://github.com/microsoft/ML-For-Beginners/discussions) och "lär högt" genom att fylla i rätt PAT-rubrik. En 'PAT' är ett Progress Assessment Tool som är en rubrik du fyller i för att fördjupa ditt lärande. Du kan också reagera på andra PAT:er så att vi kan lära oss tillsammans. > För vidare studier rekommenderar vi att följa dessa [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduler och lärvägar. -**Lärare**, vi har [inkluderat några förslag](for-teachers.md) på hur ni kan använda denna kursplan. +**Lärare**, vi har [inkluderat några förslag](for-teachers.md) på hur detta läroprogram kan användas. --- ## Videogenomgångar -Vissa av lektionerna finns som korta videoklipp. Du hittar alla dessa i lektionsmaterialet eller på [ML for Beginners spellista på Microsofts Developer YouTube-kanal](https://aka.ms/ml-beginners-videos) genom att klicka på bilden nedan. +Några av lektionerna finns som korta videor. Du kan hitta alla dessa inbäddade i lektionerna eller på [ML for Beginners spellistan på Microsoft Developer YouTube-kanal](https://aka.ms/ml-beginners-videos) genom att klicka på bilden nedan. [![ML for beginners banner](../../translated_images/sv/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Träffa teamet +## Möt teamet [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif skapad av** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif av** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Klicka på bilden ovan för en video om projektet och personerna som skapade det! +> 🎥 Klicka på bilden ovan för en video om projektet och människorna som skapade det! --- ## Pedagogik -Vi har valt två pedagogiska principer när vi byggde denna kursplan: att säkerställa att den är praktisk och **projektbaserad** och att den inkluderar **frestande quizzer**. Utöver detta har kursplanen ett gemensamt **tema** för att ge den sammanhållning. +Vi har valt två pedagogiska principer när vi byggde detta läroprogram: att säkerställa att det är praktiskt **projektbaserat** och att det inkluderar **frekventa quiz**. Dessutom har detta läroprogram ett gemensamt **tema** för att ge sammanhang. -Genom att säkerställa att innehållet är anpassat till projekt blir processen mer engagerande för studenter och begreppens retention förstärks. Dessutom sätter ett lågrisk-quiz före lektionen studentens avsikt mot att lära sig ett ämne, medan ett andra quiz efter lektionen säkerställer ytterligare retention. Denna kursplan är designad för att vara flexibel och rolig och kan genomföras helt eller delvis. Projekten börjar små och blir successivt mer komplexa vid slutet av 12-veckorscykeln. Kursplanen inkluderar också ett efterskrift om verkliga tillämpningar av ML, som kan användas som meritpoäng eller som diskussionsunderlag. +Genom att se till att innehållet stämmer överens med projekt görs processen mer engagerande för studenter och konceptbehållningen höjs. Dessutom sätter ett låg-risk-quiz före lektionen elevens intention mot att lära sig ett ämne, medan ett andra quiz efter lektionen säkerställer vidare behållning. Detta läroprogram är designat att vara flexibelt och roligt och kan tas helt eller delvis. Projekten börjar små och blir successivt mer komplexa mot slutet av cykeln på 12 veckor. Detta läroprogram inkluderar också en epilog om verkliga tillämpningar av ML som kan användas som extra uppgifter eller som diskussionsunderlag. -> Hitta våra [uppföranderegler](CODE_OF_CONDUCT.md), [Bidragande](CONTRIBUTING.md), [Översättningar](..) och [Felsökning](TROUBLESHOOTING.md) riktlinjer. Vi välkomnar din konstruktiva feedback! +> Hitta våra [Uppförandekod](CODE_OF_CONDUCT.md), [Bidra](CONTRIBUTING.md), [Översättningar](..) och [Felsöknings](TROUBLESHOOTING.md) riktlinjer. Vi välkomnar din konstruktiva feedback! ## Varje lektion innehåller -- valfri sketchnote +- valfri skissanteckning - valfri kompletterande video -- videogenomgång (vissa lektioner endast) -- [quiz före lektionen](https://ff-quizzes.netlify.app/en/ml/) +- videogenomgång (endast vissa lektioner) +- [quiz före föreläsning](https://ff-quizzes.netlify.app/en/ml/) - skriftlig lektion -- för projektbaserade lektioner, steg-för-steg guider för hur man bygger projektet +- för projektbaserade lektioner, steg-för-steg guider för hur du bygger projektet - kunskapskontroller - en utmaning - kompletterande läsning - uppgift -- [quiz efter lektionen](https://ff-quizzes.netlify.app/en/ml/) - -> **En notis om språk**: Dessa lektioner är huvudsakligen skrivna i Python, men många finns också tillgängliga i R. För att genomföra en R-lektion, gå till `/solution`-mappen och leta efter R-lektioner. De inkluderar en .rmd-filändelse som representerar en **R Markdown**-fil, vilket enkelt kan definieras som en inbäddning av `kodblock` (av R eller andra språk) och en `YAML-huvud` (som styr hur outputformater som PDF skall visas) i ett `Markdown-dokument`. Som sådan fungerar det som en utmärkt författarram för data science eftersom det tillåter dig kombinera din kod, dess output och dina tankar genom att skriva dem i Markdown. Dessutom kan R Markdown-dokument renderas till outputformat som PDF, HTML eller Word. -> **En notering om quiz**: Alla quiz finns i [Quiz App-mappen](../../quiz-app), totalt 52 quiz med tre frågor i varje. De är länkade från lektionerna, men quiz-appen kan köras lokalt; följ instruktionerna i `quiz-app`-mappen för att köra lokalt eller distribuera till Azure. - -| Lektionnummer | Ämne | Lektion Grupp | Lärandemål | Länkad Lektion | Författare | -| :-----------: | :------------------------------------------------------------: | :--------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------: | -| 01 | Introduktion till maskininlärning | [Introduktion](1-Introduction/README.md) | Lära sig grundläggande koncept bakom maskininlärning | [Lektion](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Maskininlärningens historia | [Introduktion](1-Introduction/README.md) | Lära sig historien bakom detta område | [Lektion](1-Introduction/2-history-of-ML/README.md) | Jen och Amy | -| 03 | Rättvisa och maskininlärning | [Introduktion](1-Introduction/README.md) | Vilka viktiga filosofiska frågor kring rättvisa bör studenter beakta när de bygger och använder ML-modeller? | [Lektion](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Tekniker för maskininlärning | [Introduktion](1-Introduction/README.md) | Vilka tekniker använder ML-forskare för att bygga ML-modeller? | [Lektion](1-Introduction/4-techniques-of-ML/README.md) | Chris och Jen | -| 05 | Introduktion till regression | [Regression](2-Regression/README.md) | Kom igång med Python och Scikit-learn för regressionsmodeller | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Nordamerikanska pumpapriser 🎃 | [Regression](2-Regression/README.md) | Visualisera och rengör data inför ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Nordamerikanska pumpapriser 🎃 | [Regression](2-Regression/README.md) | Bygg linjära och polynomiska regressionsmodeller | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen och Dmitry • Eric Wanjau | -| 08 | Nordamerikanska pumpapriser 🎃 | [Regression](2-Regression/README.md) | Bygg en logistisk regressionsmodell | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | En webbapp 🔌 | [Web App](3-Web-App/README.md) | Bygg en webbapp för att använda din tränade modell | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Introduktion till klassificering | [Classification](4-Classification/README.md) | Rengör, förbered och visualisera dina data; introduktion till klassificering | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen och Cassie • Eric Wanjau | -| 11 | Utsökta asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Introduktion till klassificerare | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen och Cassie • Eric Wanjau | -| 12 | Utsökta asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Fler klassificerare | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen och Cassie • Eric Wanjau | -| 13 | Utsökta asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Bygg en rekommendationswebbapp med din modell | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Introduktion till klustring | [Clustering](5-Clustering/README.md) | Rengör, förbered och visualisera dina data; introduktion till klustring | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Utforska nigerianska musiksmaker 🎧 | [Clustering](5-Clustering/README.md) | Utforska K-Means klustringsmetoden | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Introduktion till naturlig språkbehandling ☕️ | [Natural language processing](6-NLP/README.md) | Lär dig grunderna i NLP genom att bygga en enkel bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Vanliga NLP-uppgifter ☕️ | [Natural language processing](6-NLP/README.md) | Fördjupa din kunskap om NLP genom att förstå vanliga uppgifter vid hantering av språkliga strukturer | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Översättning och sentimentsanalys ♥️ | [Natural language processing](6-NLP/README.md) | Översättning och sentimentsanalys med Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Romantiska hotell i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentsanalys med hotellrecensioner 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Romantiska hotell i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentsanalys med hotellrecensioner 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Introduktion till tidsserieprognoser | [Time series](7-TimeSeries/README.md) | Introduktion till tidsserieprognoser | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Världens elförbrukning ⚡️ - tidsserieprognoser med ARIMA | [Time series](7-TimeSeries/README.md) | Tidsserieprognoser med ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Världens elförbrukning ⚡️ - tidsserieprognoser med SVR | [Time series](7-TimeSeries/README.md) | Tidsserieprognoser med Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Introduktion till förstärkningsinlärning | [Reinforcement learning](8-Reinforcement/README.md) | Introduktion till förstärkningsinlärning med Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Hjälp Peter att undvika vargen! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Förstärkningsinlärningsgym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Verkliga ML-scenarier och tillämpningar | [ML in the Wild](9-Real-World/README.md) | Intressanta och avslöjande verkliga tillämpningar av klassisk ML | [Lektion](9-Real-World/1-Applications/README.md) | Team | -| Postscript | Modellfelsökning i ML med RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Modellfelsökning i maskininlärning med Responsible AI dashboardkomponenter | [Lektion](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [quiz efter föreläsning](https://ff-quizzes.netlify.app/en/ml/) +> **En notering om språk**: Dessa lektioner är främst skrivna i Python, men många finns också tillgängliga i R. För att genomföra en R-lektion, gå till mappen `/solution` och leta efter R-lektioner. De har en .rmd-förlängning som representerar en **R Markdown**-fil som enkelt kan definieras som en inbäddning av `kodbitar` (av R eller andra språk) och en `YAML-header` (som styr hur utdata som PDF ska formateras) i ett `Markdown-dokument`. Som sådan fungerar det som en föredömlig författarram för data science eftersom det låter dig kombinera din kod, dess utdata och dina tankar genom att låta dig skriva ner dem i Markdown. Dessutom kan R Markdown-dokument renderas till utdataformat som PDF, HTML eller Word. + +> **En notering om quiz**: Alla quiz finns i [Quiz App-mappen](../../quiz-app), totalt 52 quiz med tre frågor i varje. De är länkade från lektionerna men quiz-appen kan köras lokalt; följ instruktionerna i `quiz-app`-mappen för att hosta lokalt eller distribuera till Azure. + +| Lektion Nummer | Ämne | Lektion Grupp | Lärandemål | Länkad Lektion | Författare | +| :------------: | :-----------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------: | +| 01 | Introduktion till maskininlärning | [Introduction](1-Introduction/README.md) | Lär dig grundläggande koncept bakom maskininlärning | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Maskininlärningens historia | [Introduction](1-Introduction/README.md) | Lär dig historien bakom detta område | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen och Amy | +| 03 | Rättvisa och maskininlärning | [Introduction](1-Introduction/README.md) | Vilka är de viktiga filosofiska frågorna kring rättvisa som studenter bör överväga vid byggande och användning av ML-modeller? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Tekniker för maskininlärning | [Introduction](1-Introduction/README.md) | Vilka tekniker använder ML-forskare för att bygga ML-modeller? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris och Jen | +| 05 | Introduktion till regression | [Regression](2-Regression/README.md) | Kom igång med Python och Scikit-learn för regressionsmodeller | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Nordamerikanska pumpapriser 🎃 | [Regression](2-Regression/README.md) | Visualisera och rensa data som förberedelse för ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Nordamerikanska pumpapriser 🎃 | [Regression](2-Regression/README.md) | Bygg linjära och polynomiska regressionsmodeller | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen och Dmitry • Eric Wanjau | +| 08 | Nordamerikanska pumpapriser 🎃 | [Regression](2-Regression/README.md) | Bygg en logistisk regressionsmodell | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | En webbapp 🔌 | [Web App](3-Web-App/README.md) | Bygg en webbapp för att använda din tränade modell | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Introduktion till klassificering | [Classification](4-Classification/README.md) | Rensa, förbered och visualisera din data; introduktion till klassificering | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen och Cassie • Eric Wanjau | +| 11 | Utsökta asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Introduktion till klassificerare | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen och Cassie • Eric Wanjau | +| 12 | Utsökta asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Fler klassificerare | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen och Cassie • Eric Wanjau | +| 13 | Utsökta asiatiska och indiska kök 🍜 | [Classification](4-Classification/README.md) | Bygg en rekommendations-webbapp med din modell | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Introduktion till klustring | [Clustering](5-Clustering/README.md) | Rensa, förbered och visualisera din data; Introduktion till klustring | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Utforska nigerianska musiksmaker 🎧 | [Clustering](5-Clustering/README.md) | Utforska K-Means klustringsmetoden | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Introduktion till naturlig språkbehandling ☕️ | [Natural language processing](6-NLP/README.md) | Lär dig grunderna i NLP genom att bygga en enkel bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Vanliga NLP-uppgifter ☕️ | [Natural language processing](6-NLP/README.md) | Fördjupa din NLP-kunskap genom att förstå vanliga uppgifter när man arbetar med språkstrukturer | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Översättning och sentimentsanalys ♥️ | [Natural language processing](6-NLP/README.md) | Översättning och sentimentsanalys med Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Romantiska hotell i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentsanalys med hotellrecensioner 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Romantiska hotell i Europa ♥️ | [Natural language processing](6-NLP/README.md) | Sentimentsanalys med hotellrecensioner 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Introduktion till tidsserieprognoser | [Time series](7-TimeSeries/README.md) | Introduktion till tidsserieprognoser | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Världens elförbrukning ⚡️ - tidsserieprognoser med ARIMA | [Time series](7-TimeSeries/README.md) | Tidsserieprognoser med ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Världens elförbrukning ⚡️ - tidsserieprognoser med SVR | [Time series](7-TimeSeries/README.md) | Tidsserieprognoser med Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Introduktion till förstärkningsinlärning | [Reinforcement learning](8-Reinforcement/README.md) | Introduktion till förstärkningsinlärning med Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Hjälp Peter undvika vargen! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Förstärkningsinlärning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Skarpa ML-scenarion och tillämpningar | [ML in the Wild](9-Real-World/README.md) | Intressanta och avslöjande verkliga tillämpningar av klassisk ML | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| Postscript | Modellfelsökning i ML med RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Modellfelsökning i maskininlärning med Responsible AI dashboard-komponenter | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [hitta alla ytterligare resurser för denna kurs i vår Microsoft Learn-samling](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offlineåtkomst -Du kan använda denna dokumentation offline med [Docsify](https://docsify.js.org/#/). Forka detta repo, [installera Docsify](https://docsify.js.org/#/quickstart) på din lokala maskin, och sedan i rotmappen för detta repo, skriv `docsify serve`. Webbplatsen serveras på port 3000 på din localhost: `localhost:3000`. +Du kan köra denna dokumentation offline genom att använda [Docsify](https://docsify.js.org/#/). Forka detta repo, [installera Docsify](https://docsify.js.org/#/quickstart) på din lokala dator, och sedan i rotmappen av detta repo, skriv `docsify serve`. Webbplatsen kommer att vara tillgänglig på port 3000 på din lokala värd: `localhost:3000`. -## PDF-filer +## PDF:er Hitta en pdf av kursplanen med länkar [här](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). @@ -177,16 +177,16 @@ Vårt team producerar andra kurser! Kolla in: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j för nybörjare](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js för nybörjare](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain för nybörjare](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agenter -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Agents +[![AZD för nybörjare](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI för nybörjare](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP för nybörjare](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI-agenter för nybörjare](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- @@ -198,9 +198,9 @@ Vårt team producerar andra kurser! Kolla in: --- -### Kärnlärande +### Kärnkunskap [![ML för nybörjare](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Datavetenskap för nybörjare](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science för nybörjare](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI för nybörjare](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) [![Cybersäkerhet för nybörjare](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) [![Webbutveckling för nybörjare](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) @@ -209,7 +209,7 @@ Vårt team producerar andra kurser! Kolla in: --- -### Copilot-serien +### Copilot-serie [![Copilot för AI-parprogrammering](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot för C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot-äventyr](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) @@ -217,22 +217,22 @@ Vårt team producerar andra kurser! Kolla in: ## Få hjälp -Om du fastnar eller har frågor om att skapa AI-appar. Gå med bland andra elever och erfarna utvecklare i diskussioner om MCP. Det är en stödjande community där frågor är välkomna och kunskap delas fritt. +Om du fastnar eller har frågor om att bygga AI-appar. Gå med i diskussioner med andra elever och erfarna utvecklare om MCP. Det är en stödjande gemenskap där frågor är välkomna och kunskap delas fritt. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Om du har produktfeedback eller stöter på fel vid utveckling, besök: +Om du har produktfeedback eller hittar fel under byggandet, besök: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Ytterligare tips för lärande +## Ytterligare studietips - Gå igenom anteckningsböcker efter varje lektion för bättre förståelse. -- Öva på att implementera algoritmer på egen hand. -- Utforska verkliga datauppsättningar med hjälp av lärda koncept. +- Öva på att implementera algoritmer själv. +- Utforska verkliga datamängder med hjälp av inlärda koncept. --- **Ansvarsfriskrivning**: -Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, vänligen observera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår vid användning av denna översättning. +Detta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strävar efter noggrannhet, var god notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som kan uppstå vid användning av denna översättning. \ No newline at end of file diff --git a/translations/sw/.co-op-translator.json b/translations/sw/.co-op-translator.json index 07c10fa6f..7256b5c18 100644 --- a/translations/sw/.co-op-translator.json +++ b/translations/sw/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "sw" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:14:13+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T15:56:40+00:00", "source_file": "README.md", "language_code": "sw" }, diff --git a/translations/sw/README.md b/translations/sw/README.md index a3569a67b..4b36ab94a 100644 --- a/translations/sw/README.md +++ b/translations/sw/README.md @@ -1,23 +1,23 @@ [![Leseni ya GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![Wachangiaji wa GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![Wahusika wa GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) [![Masuala ya GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![Maombi ya kuvuta GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![Karibuni maombi ya kuvuta](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![PRs Karibu](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) -[![Watangazaji wa GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![Magawanyo ya GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![Watazamaji wa GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![Matawi ya GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) [![Nyota za GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) ### 🌐 Msaada wa Lugha Nyingi -#### Inapatikana kupitia GitHub Action (Otomatiki & Daima Iliyosasishwa) +#### Umeungwa mkono kupitia Kitendo cha GitHub (Kisotomati & Kila Wakati kina Sasishwa) -[Kiarabu](../ar/README.md) | [Kibengali](../bn/README.md) | [Kiblgaria](../bg/README.md) | [Kiburma (Myanmar)](../my/README.md) | [Kichina (Rahisi)](../zh-CN/README.md) | [Kichina (Marefu, Hong Kong)](../zh-HK/README.md) | [Kichina (Marefu, Macau)](../zh-MO/README.md) | [Kichina (Marefu, Taiwan)](../zh-TW/README.md) | [Kikroeshia](../hr/README.md) | [Kiceki](../cs/README.md) | [Kidenmaki](../da/README.md) | [Kiholanzi](../nl/README.md) | [Kiestonia](../et/README.md) | [Kifini](../fi/README.md) | [Kifaransa](../fr/README.md) | [Kijerumani](../de/README.md) | [Kigiriki](../el/README.md) | [Kiebrania](../he/README.md) | [Kihindi](../hi/README.md) | [Kihungaria](../hu/README.md) | [Kiindonesia](../id/README.md) | [Kiitaliano](../it/README.md) | [Kijapani](../ja/README.md) | [Kikannada](../kn/README.md) | [Kikorea](../ko/README.md) | [Kilithuania](../lt/README.md) | [Kimelayu](../ms/README.md) | [Kimalayalam](../ml/README.md) | [Kimarathi](../mr/README.md) | [Kinepali](../ne/README.md) | [Kpidgin cha Nigeria](../pcm/README.md) | [Kinorwe](../no/README.md) | [Kifarsi (Farsi)](../fa/README.md) | [Kipolandi](../pl/README.md) | [Kireno (Brazil)](../pt-BR/README.md) | [Kireno (Portugal)](../pt-PT/README.md) | [Kipunjabi (Gurmukhi)](../pa/README.md) | [Kiromania](../ro/README.md) | [Kirusi](../ru/README.md) | [Kiserbia (Cyrillic)](../sr/README.md) | [Kislovakia](../sk/README.md) | [Kislovenia](../sl/README.md) | [Kihispania](../es/README.md) | [Kiswahili](./README.md) | [Kiswidi](../sv/README.md) | [Kitagalog (Filipino)](../tl/README.md) | [Kitamili](../ta/README.md) | [Kitelugu](../te/README.md) | [Kithai](../th/README.md) | [Kituruki](../tr/README.md) | [Kiukraini](../uk/README.md) | [Kiurdu](../ur/README.md) | [Kivietinamu](../vi/README.md) +[Kiarabu](../ar/README.md) | [Kibengali](../bn/README.md) | [Kibulgaria](../bg/README.md) | [Kiburma (Myanma)](../my/README.md) | [Kichina (Rahisi)](../zh-CN/README.md) | [Kichina (Asili, Hong Kong)](../zh-HK/README.md) | [Kichina (Asili, Macau)](../zh-MO/README.md) | [Kichina (Asili, Taiwan)](../zh-TW/README.md) | [Kroeshia](../hr/README.md) | [Cheki](../cs/README.md) | [Denmaki](../da/README.md) | [Kiholanzi](../nl/README.md) | [Eistonia](../et/README.md) | [Kifini](../fi/README.md) | [Kifaransa](../fr/README.md) | [Kijerumani](../de/README.md) | [Kigiriki](../el/README.md) | [Kiebrania](../he/README.md) | [Kihindi](../hi/README.md) | [Kihungari](../hu/README.md) | [Kiindonesia](../id/README.md) | [Kiitaliano](../it/README.md) | [Kijapani](../ja/README.md) | [Kikannada](../kn/README.md) | [Kikmeru](../km/README.md) | [Kikorea](../ko/README.md) | [Kilithuania](../lt/README.md) | [Kimalay](../ms/README.md) | [Kimalayalam](../ml/README.md) | [Kimarathi](../mr/README.md) | [Kinepali](../ne/README.md) | [Pidgin ya Nigeria](../pcm/README.md) | [Kinorwe](../no/README.md) | [Kiajemi (Farsi)](../fa/README.md) | [Kipolandi](../pl/README.md) | [Kireno (Brazil)](../pt-BR/README.md) | [Kireno (Portugal)](../pt-PT/README.md) | [Kipunjabi (Gurmukhi)](../pa/README.md) | [Kiromania](../ro/README.md) | [Kirusi](../ru/README.md) | [Kiserbia (Kisiliki)](../sr/README.md) | [Kislovakia](../sk/README.md) | [Kislovenia](../sl/README.md) | [Kihispania](../es/README.md) | [Kiswahili](./README.md) | [Kiswidi](../sv/README.md) | [Kitagalog (Kifilipino)](../tl/README.md) | [Kitamili](../ta/README.md) | [Kitelugu](../te/README.md) | [Kithai](../th/README.md) | [Kituruki](../tr/README.md) | [Kiukraini](../uk/README.md) | [Kiurudu](../ur/README.md) | [Kivietinamu](../vi/README.md) -> **Ungependa Kuikopa Mahali Pako?** +> **Ungependa Kukopa Mitaa?** > -> Hifadhi hii ina tafsiri za lugha zaidi ya 50 ambazo huongeza kiasi cha kupakua kwa kiasi kikubwa. Ili kukopa bila tafsiri, tumia sparse checkout: +> Hifadhi hii inajumuisha tafsiri za lugha zaidi ya 50 ambazo huongeza kwa kiasi kikubwa ukubwa wa kupakua. Ili kukopa bila tafsiri, tumia sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,205 +33,206 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Hii inakupa kila kitu unachohitaji kukamilisha kozi hii kwa kupakua kwa kasi zaidi. +> Hii inakupa kila kitu unachohitaji kukamilisha kozi kwa kupakua kwa kasi zaidi. #### Jiunge na Jamii Yetu [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Tuna mfululizo wa kujifunza kwenye Discord na AI unaoendelea, jifunze zaidi na jiunge nasi kwenye [Mfululizo wa Kujifunza na AI](https://aka.ms/learnwithai/discord) kuanzia 18 - 30 Septemba, 2025. Utapokea vidokezo na mbinu za kutumia GitHub Copilot kwa Sayansi ya Data. +Tuna mfululizo wa kujifunza wa Discord pamoja na AI unaoendelea, jifunze zaidi na jiunge nasi kwenye [Mfululizo wa Kujifunza na AI](https://aka.ms/learnwithai/discord) kuanzia 18 - 30 Septemba, 2025. Utapokea vidokezo na mbinu za kutumia GitHub Copilot kwa Sayansi ya Takwimu. ![Mfululizo wa Kujifunza na AI](../../translated_images/sw/3.9b58fd8d6c373c20.webp) -# Kujifunza Mashine kwa Waanzilishi - Mtaala +# Kujifunza Mashine kwa Wakianza - Mtaala -> 🌍 Tazama duniani tunapochunguza Mashine ya Kujifunza kupitia tamaduni za dunia 🌍 +> 🌍 Tembea ulimwenguni tunapochunguza Kujifunza Mashine kwa njia za tamaduni za dunia 🌍 -Watangazaji wa Cloud katika Microsoft wanafurahia kutoa mtaala wa wiki 12, somo 26 kuhusu **Mashine ya Kujifunza**. Katika mtaala huu, utajifunza kuhusu kile kinachoitwa wakati mwingine **mashine ya kujifunza ya kawaida**, kwa kutumia hasa maktaba ya Scikit-learn na kuepuka deep learning, ambayo imefunzwa katika [mtaala wetu wa AI kwa Waanzilishi](https://aka.ms/ai4beginners). Pia weka masomo haya pamoja na [mtaala wetu wa Sayansi ya Data kwa Waanzilishi](https://aka.ms/ds4beginners)! +Watetezi wa Wingu wa Microsoft wanafurahia kutoa mtaala wa wiki 12, masomo 26 kuhusu **Kujifunza Mashine**. Katika mtaala huu, utajifunza kuhusu kile kinachoitwa mara nyingine **kujifunza mashine cha classic**, ukitumia hasa maktaba ya Scikit-learn na kuepuka kujifunza kwa kina, ambacho kinashughulikiwa katika [mtaala wetu wa AI kwa Wakianza](https://aka.ms/ai4beginners). Pia weka masomo haya pamoja na mtaala wetu wa ['Sayansi ya Takwimu kwa Wakianza'](https://aka.ms/ds4beginners). -Tukisafiri na sisi kote duniani tunapotumia mbinu hizi za kawaida kwenye data kutoka sehemu nyingi duniani. Kila somo lina vipimo vya kabla na baada ya somo, maelekezo yaliyoandikwa ya kukamilisha somo, suluhisho, kazi, na zaidi. Mbinu yetu inayojikita kwenye miradi inakuwezesha kujifunza wakati wa kujenga, njia iliyothibitishwa kuongeza uelewa wa ujuzi mpya. +Safiri nasi duniani kote tunapotumia mbinu hizi za classic kwa data kutoka maeneo mengi ya dunia. Kila somo lina mtihani wa kabla na baada ya somo, maelekezo yaliyoandikwa ya kukamilisha somo, suluhisho, kazi ya nyumbani, na zaidi. Njia yetu ya kujifunza kwa mradi inakuwezesha kujifunza unajenga, njia iliyo thibitishwa ya kuufanya ujuzi mpya udumu. **✍️ Shukrani za dhati kwa waandishi wetu** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu na Amy Boyd -**🎨 Pia shukrani kwa wachoraji wetu** Tomomi Imura, Dasani Madipalli, na Jen Looper +**🎨 Asante pia kwa wachoraji wetu** Tomomi Imura, Dasani Madipalli, na Jen Looper -**🙏 Shukrani maalum 🙏 kwa waandishi, wakaguzi, na wachangiaji wa maudhui wa Microsoft Student Ambassador**, hasa Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, na Snigdha Agarwal +**🙏 Shukrani maalum 🙏 kwa waandishi, wachambuzi, na wachangiaji wa maudhui wa Ubalozi wa Wanafunzi wa Microsoft**, hasa Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, na Snigdha Agarwal -**🤩 Shukrani za ziada kwa Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, na Vidushi Gupta kwa masomo yetu ya R!** +**🤩 Shukrani za ziada kwa Mabalozi wa Wanafunzi wa Microsoft Eric Wanjau, Jasleen Sondhi, na Vidushi Gupta kwa masomo yetu ya R!** -# Kuanzia +# Kuanza Fuata hatua hizi: -1. **Fanya nakala (fork) ya Hifadhi**: Bonyeza kitufe cha "Fork" kilicho kona ya juu kulia ya ukurasa huu. -2. **Nakili (clone) Hifadhi**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Fanya Fork ya Hifadhi**: Bofya kitufe cha "Fork" upande wa juu kulia wa ukurasa huu. +2. **Nakili Hifadhi**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [pata rasilimali zote za ziada kwa kozi hii katika mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [pata rasilimali zote za ziada za kozi hii kwenye mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +> 🔧 **Unahitaji msaada?** Angalia [Mwongozo wa Utatuzi wa Matatizo](TROUBLESHOOTING.md) kwa suluhisho za matatizo ya kawaida katika usakinishaji, usanidi, na kuendesha masomo. -> 🔧 **Unahitaji msaada?** Angalia [Mwongozo wa Kutatua Matatizo](TROUBLESHOOTING.md) kwa suluhisho za matatizo ya kawaida kuhusu usakinishaji, usanidi, na kuendesha masomo. -**[Wanafunzi](https://aka.ms/student-page)**, ili kutumia mtaala huu, fanya nakala nzima ya repo kwa akaunti yako ya GitHub na kamilisha mazoezi peke yako au na kikundi: +**[Wanafunzi](https://aka.ms/student-page)**, ili kutumia mtaala huu, fanya fork ya repo yote kwenye akaunti yako ya GitHub na ukamilishe mazoezi mwenyewe au na kikundi: -- Anza na mtihani wa kabla ya mihadhara. -- Soma mihadhara na kamilisha shughuli, simama na kutafakari kila ukaguzi wa maarifa. -- Jaribu kuunda miradi kwa kuelewa masomo badala ya kutumia msimbo wa suluhisho; hata hivyo msimbo huo upo katika folda za `/solution` za kila somo linalolenga mradi. -- Fanya mtihani wa baada ya mihadhara. -- Kamilisha changamoto. -- Kamilisha kazi. -- Baada ya kumaliza kundi la somo, tembelea [Jukwaa la Majadiliano](https://github.com/microsoft/ML-For-Beginners/discussions) na "jifunze kwa sauti" kwa kujaza rubrik ya PAT inayofaa. 'PAT' ni Chombo cha Tathmini ya Maendeleo ambalo ni rubrik unayojaza ili kuendeleza kujifunza kwako. Unaweza pia kutoa maoni kwa PAT za wengine ili tujifunze pamoja. +- Anza na mtihani wa kabla ya mhadhara. +- Soma mhadhara na ukamilishe shughuli, simama na fikiri kila baada ya kila kipimo cha maarifa. +- Jaribu kuunda miradi kwa kuelewa masomo badala ya kuendesha msimbo wa suluhisho; hata hivyo msimbo huo unapatikana kwenye folda za `/solution` katika kila somo la mradi. +- Fanya mtihani wa baada ya mhadhara. +- Kukamilisha changamoto. +- Kukamilisha kazi ya nyumbani. +- Baada ya kukamilisha kikundi cha masomo, tembelea [Bodi ya Majadiliano](https://github.com/microsoft/ML-For-Beginners/discussions) na "jifunze kwa sauti" kwa kujaza rubric ya PAT inayofaa. 'PAT' ni Chombo cha Tathmini ya Maendeleo ambacho ni rubric unayojaza ili kuendeleza kujifunza kwako. Pia unaweza kutoa maoni kwa PAT zingine ili tufunzwe pamoja. -> Kwa masomo zaidi, tunapendekeza kufuata [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) moduli na njia za kujifunza. +> Kwa masomo zaidi, tunapendekeza kufuata moduli na njia za kujifunza za [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Walimu**, tumetoa [mapendekezo kadhaa](for-teachers.md) juu ya jinsi ya kutumia mtaala huu. +**Walezi**, tumewajumuisha [mapendekezo kadhaa](for-teachers.md) juu ya jinsi ya kutumia mtaala huu. --- -## Video za kufundisha hatua kwa hatua +## Maelezo ya video -Baadhi ya masomo yanapatikana kama video fupi. Unaweza kuyapata yote mtandaoni ndani ya masomo, au kwenye [orodha ya nyimbo ya ML kwa Waanzilishi kwenye kituo cha YouTube cha Microsoft Developer](https://aka.ms/ml-beginners-videos) kwa kubofya picha hapa chini. +Baadhi ya masomo yanapatikana kama video fupi. Unaweza kupata yote haya ndani ya masomo, au kwenye [mfululizo wa ML kwa Wakianza kwenye chaneli ya Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) kwa kubofya picha hapa chini. -[![Bango la ML kwa waanzilishi](../../translated_images/sw/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![Bango la ML kwa wakianza](../../translated_images/sw/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Kutana na Timu +## Kutambuliana na Timu [![Video ya utangulizi](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif na** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif kwa** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) > 🎥 Bonyeza picha hapo juu kwa video kuhusu mradi na watu waliouunda! --- -## Mbinu ya kufundisha +## Mbinu ya Kufundishia -Tumebaini kanuni mbili muhimu katika kuunda mtaala huu: kuhakikisha kuwa unazingatia **miradi ya vitendo** na kuwa na **mtihani wa mara kwa mara**. Aidha, mtaala huu una **kauli mbiu** ya pamoja inayotoa ulinganifu. +Tumekuwa na kauli mbiu mbili za kielimu wakati wa kujenga mtaala huu: kuhakikisha kwamba ni mkono-katika-mtu **unaotegemea mradi** na kwamba unajumuisha **mitihani ya mara kwa mara**. Zaidi ya hayo, mtaala huu una **kauli mbiu** ya pamoja kutoa mshikamano. -Kwa kuhakikisha maudhui yanahusiana na miradi, mchakato unakuwa wa kuvutia kwa wanafunzi na kuongeza kumbukumbu ya dhana. Pia, mtihani wa ukubwa mdogo kabla ya darasa huweka nia ya mwanafunzi kuelekea kujifunza mada, wakati mtihani wa pili baada ya darasa unahakikisha kumbukumbu zaidi. Mtaala huu umeundwa kuwa rahisi na wa kufurahisha na unaweza kuchukuliwa kwa jumla au sehemu. Miradi huanza midogo na kuongezeka kwa ugumu mwishoni mwa mzunguko wa wiki 12. Mtaala huu pia unajumuisha maelezo ya matumizi ya ML katika maisha halisi, ambayo inaweza kutumika kama mkopo wa ziada au msingi wa mjadala. +Kwa kuhakikisha kwamba maudhui yanahusiana na miradi, mchakato unatengenezwa kuvutia zaidi kwa wanafunzi na uwezo wa kumbukumbu wa dhana utaongezeka. Zaidi ya hayo, mtihani wa chini wa hatari kabla ya darasa huweka nia ya mwanafunzi kuelekea kujifunza mada, wakati mtihani wa pili baada ya darasa unaongeza kumbukumbu zaidi. Mtaala huu umetengenezwa kuwa mraimu na wa kufurahisha na unaweza kuchukuliwa kwa ukamilifu au sehemu. Miradi huanza kwa ndogo na kuendelea kuwa ngumu zaidi mwishoni mwa mzunguko wa wiki 12. Mtaala huu pia una kumbusho kuhusu matumizi halisi ya ML, ambayo inaweza kutumika kama mkopo wa ziada au kama msingi wa mjadala. -> Pata [Kanuni zetu za Maadili](CODE_OF_CONDUCT.md), [Jinsi ya Kuchangia](CONTRIBUTING.md), [Tafsiri](..), na [Mwongozo wa Kutatua Matatizo](TROUBLESHOOTING.md). Tunakaribisha maoni yako ya ujenzi! +> Tafuta [Kanuni zetu za Maadili](CODE_OF_CONDUCT.md), [Michango](CONTRIBUTING.md), [Tafsiri](..), na mwongozo wa [Utatuzi wa Matatizo](TROUBLESHOOTING.md). Tunakaribisha maoni yako yenye tija! ## Kila somo linajumuisha -- chati ya hiari +- chati ya sketchnote hiari - video ya ziada hiari -- video ya kufundisha hatua kwa hatua (masomo machache tu) -- [mtihani wa kujiandaa kabla ya somo](https://ff-quizzes.netlify.app/en/ml/) -- somo lililoandikwa -- kwa masomo yanayotegemea mradi, viwango kwa hatua ya kujenga mradi -- ukaguzi wa maarifa +- maelekezo ya video (baadhi ya masomo tu) +- [mtihani wa awali wa joto kabla ya mhadhara](https://ff-quizzes.netlify.app/en/ml/) +- somo maandishi +- kwa masomo yanayotegemea mradi, mwongozo hatua kwa hatua wa ujenzi wa mradi +- vipimo vya maarifa - changamoto -- usomezi wa ziada -- kazi -- [mtihani baada ya somo](https://ff-quizzes.netlify.app/en/ml/) - -> **Kuhusu lugha**: Masomo haya yameandikwa hasa kwa Python, lakini mengi pia yanapatikana kwa R. Ili kukamilisha somo la R, nenda kwenye folda ya `/solution` utafute masomo ya R. Yanajumuisha kiambatisho cha .rmd ambacho ni faili la **R Markdown** ambalo linaweza kufafanuliwa kama uingizaji wa `vipande vya msimbo` (R au lugha nyingine) na `kichwa cha YAML` (kinachoelekeza jinsi ya kuandaa matokeo kama PDF) katika `nyaraka ya Markdown`. Hivyo, ni mfumo bora wa uandishi kwa sayansi ya data kwa kuwa unakuwezesha kuunganishwa kwa msimbo wako, matokeo yake, na mawazo yako kwa kuweza kuyaandika kwa Markdown. Zaidi ya hayo, nyaraka za R Markdown zinaweza kubadilishwa kuwa aina za matokeo kama PDF, HTML, au Word. -> **Kumbuka kuhusu mitihani ya maswali**: Mitihani yote iko kwenye [folda ya Quiz App](../../quiz-app), ikiwa na jumla ya mitihani 52 yenye maswali matatu kila mmoja. Mitihani hii imeunganishwa kutoka ndani ya masomo lakini programu ya mitihani inaweza kuendeshwa eneo la kompyuta; fuata maelekezo katika folda ya `quiz-app` ili kuendesha eneo la kompyuta au kuitoa Azure. - -| Nambari ya Somo | Mada | Uainishaji wa Somo | Malengo ya Kujifunza | Somo Lililounganishwa | Mwandishi | -| :-------------: | :----------------------------------------------------------: | :----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | -| 01 | Utangulizi wa kujifunza kwa mashine | [Utangulizi](1-Introduction/README.md) | Jifunze dhana za msingi nyuma ya kujifunza kwa mashine | [Somo](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Historia ya kujifunza kwa mashine | [Utangulizi](1-Introduction/README.md) | Jifunze historia inayozunguka uwanja huu | [Somo](1-Introduction/2-history-of-ML/README.md) | Jen na Amy | -| 03 | Haki na kujifunza kwa mashine | [Utangulizi](1-Introduction/README.md) | Je, masuala gani muhimu ya kifalsafa kuhusu haki ambayo wanafunzi wanapaswa kuyazingatia wakati wa kujenga na kutumia mifano ya ML? | [Somo](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Mbinu za kujifunza kwa mashine | [Utangulizi](1-Introduction/README.md) | Ni mbinu gani wanafanyakazi wa ML hutumia kujenga mifano ya ML? | [Somo](1-Introduction/4-techniques-of-ML/README.md) | Chris na Jen | -| 05 | Utangulizi wa udhibiti wa mtiririko | [Udhibiti wa Mtiririko](2-Regression/README.md) | Anza na Python na Scikit-learn kwa mifano ya udhibiti wa mtiririko | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Bei za malenge ya Amerika Kaskazini 🎃 | [Udhibiti wa Mtiririko](2-Regression/README.md) | Onyesha na safisha data kama maandalizi kwa ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Bei za malenge ya Amerika Kaskazini 🎃 | [Udhibiti wa Mtiririko](2-Regression/README.md) | Tengeneza mifano ya udhibiti wa mstari na polinomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen na Dmitry • Eric Wanjau | -| 08 | Bei za malenge ya Amerika Kaskazini 🎃 | [Udhibiti wa Mtiririko](2-Regression/README.md) | Tengeneza mfano wa udhibiti wa logistic | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Programu ya Mtandao 🔌 | [Programu ya Mtandao](3-Web-App/README.md) | Tengeneza programu ya mtandao kutumia mfano uliyofundishwa | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Utangulizi wa uainishaji | [Uainishaji](4-Classification/README.md) | Safisha, andaa, na onyesha data yako; utangulizi wa uainishaji | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen na Cassie • Eric Wanjau | -| 11 | Mapishi ya Ladha za Kiazi na Kizina cha Asia 🍜 | [Uainishaji](4-Classification/README.md) | Utangulizi wa waainishaji | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen na Cassie • Eric Wanjau | -| 12 | Mapishi ya Ladha za Kiazi na Kizina cha Asia 🍜 | [Uainishaji](4-Classification/README.md) | Waainishaji zaidi | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen na Cassie • Eric Wanjau | -| 13 | Mapishi ya Ladha za Kiazi na Kizina cha Asia 🍜 | [Uainishaji](4-Classification/README.md) | Tengeneza programu ya mtandao ya kupendekeza ukitumia mfano wako | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Utangulizi wa kupanga kundi | [Kupanga Kundi](5-Clustering/README.md) | Safisha, andaa, na onyesha data yako; Utangulizi wa kupanga kundi | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Kuchunguza Ladha za Muziki wa Nigeria 🎧 | [Kupanga Kundi](5-Clustering/README.md) | Chunguza mbinu ya kupanga kundi kwa K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Utangulizi wa usindikaji wa lugha asilia ☕️ | [Usindikaji wa lugha asilia](6-NLP/README.md) | Jifunze misingi ya NLP kwa kutengeneza bot rahisi | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Kazi za kawaida za NLP ☕️ | [Usindikaji wa lugha asilia](6-NLP/README.md) | Zidi uelewa wako wa NLP kwa kuelewa kazi za kawaida zinazohitajika unapotumia miundo ya lugha | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Tafsiri na uchambuzi wa hisia ♥️ | [Usindikaji wa lugha asilia](6-NLP/README.md) | Tafsiri na uchambuzi wa hisia na Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Hoteli za kimapenzi za Ulaya ♥️ | [Usindikaji wa lugha asilia](6-NLP/README.md) | Uchambuzi wa hisia kwa kupitia hakiki za hoteli 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Hoteli za kimapenzi za Ulaya ♥️ | [Usindikaji wa lugha asilia](6-NLP/README.md) | Uchambuzi wa hisia kwa kupitia hakiki za hoteli 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Utangulizi wa utabiri wa mfululizo wa wakati | [Mfululizo wa Wakati](7-TimeSeries/README.md) | Utangulizi wa utabiri wa mfululizo wa wakati | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa wakati kwa ARIMA | [Mfululizo wa Wakati](7-TimeSeries/README.md) | Utabiri wa mfululizo wa wakati kwa ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa wakati kwa SVR | [Mfululizo wa Wakati](7-TimeSeries/README.md) | Utabiri wa mfululizo wa wakati kwa Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Utangulizi wa kujifunza kwa kuimarisha | [Kujifunza kwa kuimarisha](8-Reinforcement/README.md) | Utangulizi wa kujifunza kwa kuimarisha kwa kutumia Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Msaidie Peter kuepuka mbwa mwitu! 🐺 | [Kujifunza kwa kuimarisha](8-Reinforcement/README.md) | Gym ya kujifunza kwa kuimarisha | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Kidokezo cha Mwisho | Hali halisi na matumizi ya ML | [ML kwenye Ulimwengu Halisi](9-Real-World/README.md) | Matumizi ya kuvutia na ya wazi ya ML ya kawaida | [Somo](9-Real-World/1-Applications/README.md) | Timu | -| Kidokezo cha Mwisho | Utafutaji mdogo wa modeli za ML kwa kutumia dashibodi ya RAI | [ML kwenye Ulimwengu Halisi](9-Real-World/README.md) | Utafutaji mdogo wa modeli katika Kujifunza kwa Mashine kwa kutumia vitu vya dashibodi ya Responsible AI | [Somo](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [apata rasilimali zote za ziada za kozi hii kwenye mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## Kupata nyaraka bila mtandao - -Unaweza kuendesha nyaraka hii bila mtandao kwa kutumia [Docsify](https://docsify.js.org/#/). Nakili repo hii, [weka Docsify](https://docsify.js.org/#/quickstart) kwenye kompyuta yako, kisha katika folda ya mizizi ya repo hii, andika `docsify serve`. Tovuti itakuwa imetumika kwenye mlango wa bandari 3000 kwenye localhost yako: `localhost:3000`. +- kusoma ziada +- kazi ya nyumbani +- [mtihani wa baada ya mhadhara](https://ff-quizzes.netlify.app/en/ml/) +> **Kumbuka kuhusu lugha**: Masomo haya yameandikwa hasa kwa Python, lakini mengi pia yanapatikana kwa R. Ili kumaliza somo la R, nenda kwenye folda ya `/solution` na tafuta masomo ya R. Yana nyongeza ya .rmd ambayo inawakilisha faili la **R Markdown** ambalo linaweza kuelezwa kwa urahisi kama kuingiza `vidonge vya nambari` (za R au lugha nyingine) na `kichwa cha YAML` (ambacho kinaongoza jinsi ya kuunda matokeo kama PDF) kwenye `nyaraka za Markdown`. Kwa kuwa hivyo, hutoa mfumo bora wa uandishi wa sayansi ya data kwa sababu inakuwezesha kuunganisha nambari zako, matokeo yake, na mawazo yako kwa kuweza kuyaandika chini kwa Markdown. Zaidi ya hayo, nyaraka za R Markdown zinaweza kutengenezwa kuwa aina za matokeo kama PDF, HTML, au Word. + +> **Kumbuka kuhusu maswali ya mtihani**: Maswali yote ya mtihani yanapatikana kwenye [Folda ya Programu ya Mtihani](../../quiz-app), kwa jumla ya maswali 52 yenye maswali matatu kila moja. Yameunganishwa ndani ya masomo lakini programu ya mtihani inaweza kuendeshwa kwa mtaa; fuata maelekezo kwenye folda ya `quiz-app` ili kuiendesha kwa mtaa au kuipeleka kwenye Azure. + +| Nambari ya Somo | Mada | Ukusanyaji wa Masomo | Malengo ya Kujifunza | Somo Lililo Unganishwa | Mwandishi | +| :-------------: | :----------------------------------------------------------: | :--------------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | +| 01 | Utangulizi wa ujifunzaji wa mashine | [Utangulizi](1-Introduction/README.md) | Jifunze dhana za msingi nyuma ya ujifunzaji wa mashine | [Somo](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Historia ya ujifunzaji wa mashine | [Utangulizi](1-Introduction/README.md) | Jifunze historia inayojihusisha na eneo hili | [Somo](1-Introduction/2-history-of-ML/README.md) | Jen na Amy | +| 03 | Uadilifu na ujifunzaji wa mashine | [Utangulizi](1-Introduction/README.md) | Je, ni masuala gani muhimu ya falsafa kuhusu uadilifu ambayo wanafunzi wanapaswa kuzingatia wanapojenga na kutekeleza mifano ya ML? | [Somo](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Mbinu za ujifunzaji wa mashine | [Utangulizi](1-Introduction/README.md) | Ni mbinu gani watafiti wa ML hutumia kujenga mifano ya ML? | [Somo](1-Introduction/4-techniques-of-ML/README.md) | Chris na Jen | +| 05 | Utangulizi wa regression | [Regression](2-Regression/README.md) | Anza na Python na Scikit-learn kwa mifano ya regression | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Bei za maboga ya Amerika Kaskazini 🎃 | [Regression](2-Regression/README.md) | Onyesha kwa kuona na safisha data kwa ajili ya ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Bei za maboga ya Amerika Kaskazini 🎃 | [Regression](2-Regression/README.md) | Jenga mifano ya regression ya mstari na polynomial | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen na Dmitry • Eric Wanjau | +| 08 | Bei za maboga ya Amerika Kaskazini 🎃 | [Regression](2-Regression/README.md) | Jenga mfano wa regression wa logistic | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Programu ya Wavuti 🔌 | [Web App](3-Web-App/README.md) | Jenga programu ya wavuti kutumia mfano wako uliopata mafunzo | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Utangulizi wa uainishaji | [Classification](4-Classification/README.md) | Safisha, andaa, na onyesha data yako; utangulizi wa uainishaji | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen na Cassie • Eric Wanjau | +| 11 | Vyakula vitamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Utangulizi wa waainishaji | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen na Cassie • Eric Wanjau | +| 12 | Vyakula vitamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Waainishaji zaidi | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen na Cassie • Eric Wanjau | +| 13 | Vyakula vitamu vya Asia na India 🍜 | [Classification](4-Classification/README.md) | Jenga programu ya wavuti ya kupendekeza kutumia mfano wako | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Utangulizi wa uundaji | [Clustering](5-Clustering/README.md) | Safisha, andaa, na onyesha data yako; Utangulizi wa uundaji | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Kuchunguza Ladha za Muziki za Nigeria 🎧 | [Clustering](5-Clustering/README.md) | Chunguza njia ya uundaji ya K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Utangulizi wa usindikaji wa lugha asilia ☕️ | [Natural language processing](6-NLP/README.md) | Jifunze misingi ya NLP kwa kujenga roboti rahisi | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Majukumu ya kawaida ya NLP ☕️ | [Natural language processing](6-NLP/README.md) | Zidi uelewa wako wa NLP kwa kuelewa majukumu ya kawaida yanayohitajika wakati wa kushughulika na miundo ya lugha | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Tafsiri na uchambuzi wa hisia ♥️ | [Natural language processing](6-NLP/README.md) | Tafsiri na uchambuzi wa hisia na Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Hoteli za kimapenzi za Ulaya ♥️ | [Natural language processing](6-NLP/README.md) | Uchambuzi wa hisia kwa mapitio ya hoteli 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Hoteli za kimapenzi za Ulaya ♥️ | [Natural language processing](6-NLP/README.md) | Uchambuzi wa hisia kwa mapitio ya hoteli 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Utangulizi wa utabiri wa mfululizo wa wakati | [Time series](7-TimeSeries/README.md) | Utangulizi wa utabiri wa mfululizo wa wakati | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa wakati kwa ARIMA | [Time series](7-TimeSeries/README.md) | Utabiri wa mfululizo wa wakati kwa ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Matumizi ya Nguvu Duniani ⚡️ - utabiri wa mfululizo wa wakati kwa SVR | [Time series](7-TimeSeries/README.md) | Utabiri wa mfululizo wa wakati kwa Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Utangulizi wa ujifunzaji wa msaada | [Reinforcement learning](8-Reinforcement/README.md) | Utangulizi wa ujifunzaji wa msaada kwa kutumia Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Msaada kwa Peter kuepuka mbwa mwitu! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym ya ujifunzaji wa msaada | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Matukio halisi ya ML na matumizi | [ML in the Wild](9-Real-World/README.md) | Matumizo ya kuvutia na kufunua ya ML ya zamani | [Somo](9-Real-World/1-Applications/README.md) | Team | +| Postscript | Urekebishaji wa Mfano wa ML kwa kutumia dashibodi ya RAI | [ML in the Wild](9-Real-World/README.md) | Urekebishaji wa Mfano wa Ujifunzaji wa Mashine kwa kutumia vipengele vya dashibodi ya Responsible AI | [Somo](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [pata rasilimali zote za ziada kwa kozi hii katika mkusanyiko wetu wa Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## Ufikiaji nje ya mtandao + +Unaweza kuendesha hati hizi nje ya mtandao kwa kutumia [Docsify](https://docsify.js.org/#/). Nakili repo hii, [weka Docsify](https://docsify.js.org/#/quickstart) kwenye mashine yako ya mtaa, na kisha kwenye folda ya mzizi ya repo hii, andika `docsify serve`. Tovuti itakuwa inapatikana kwenye bandari 3000 kwenye mtaa wako wa localhost: `localhost:3000`. ## PDFs -Pata faili la pdf la mtaala wa masomo yenye viungo [hapa](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Tafuta pdf ya mtaala wenye viungo [hapa](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Kozi Nyingine +## 🎒 Kozi Nyingine -Timu yetu hutengeneza kozi nyingine! Angalia: +Timu yetu huandaa kozi zingine! Angalia: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j kwa Waanzilishi](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js kwa Waanzilishi](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain kwa Waanzilishi](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / Wakala +[![AZD kwa Waanzilishi](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI kwa Waanzilishi](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP kwa Mwanzo](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Wakala wa AI kwa Mwanzo](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Msururu wa AI ya Kizazi -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Mfululizo wa AI Inayotengeneza +[![AI Inayotengeneza kwa Mwanzo](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Inayotengeneza (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![AI Inayotengeneza (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![AI Inayotengeneza (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Mafunzo Msingi -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Mafunzo ya Msingi +[![ML kwa Mwanzo](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Sayansi ya Data kwa Mwanzo](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI kwa Mwanzo](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Usalama wa Mtandao kwa Mwanzo](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Uendelezaji wa Mtandao kwa Mwanzo](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT kwa Mwanzo](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Maendeleo ya XR kwa Mwanzo](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Mfululizo wa Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot kwa Uandishi wa Programu Pamoja wa AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot kwa C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Safa ya Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Kupata Msaada -Ikiwa unakumbwa na shida au una maswali yoyote kuhusu kujenga programu za AI. Jiunge na wenzako wanaojifunza na watengenezaji wenye uzoefu katika mijadala kuhusu MCP. Ni jamii yenye usaidizi ambapo maswali yanakaribishwa na maarifa yanashirikiwa kwa uhuru. +Ukikumbwa au ikiwa na maswali yoyote kuhusu kujenga programu za AI. Jiunge na wanajifunza wenzako na waendelezaji wenye uzoefu katika mijadala kuhusu MCP. Ni jamii yenye msaada ambapo maswali yanakaribishwa na maarifa yanashirikishwa kwa ukarimu. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ikiwa una taarifa za maoni kuhusu bidhaa au makosa wakati wa kujenga tembelea: +Ikiwa una maoni kuhusu bidhaa au makosa wakati wa kujenga tembelea: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Vidokezo Vingine vya Kujifunza +## Vidokezo Zaidi vya Kujifunza -- Pitia daftari la mazoezi baada ya kila somo kwa uelewa bora. -- Fanya mazoezi ya kutekeleza algoriti kwa ajili yako. +- Pitia daftari za maelezo baada ya kila somo kwa uelewa mzuri zaidi. +- Fanya mazoezi ya kutekeleza algoriti peke yako. - Chunguza seti halisi za data ukitumia dhana ulizojifunza. --- -**Angalizo la Kukataa**: -Hati hii imetafsiriwa kwa kutumia huduma ya kutafsiri kwa AI [Co-op Translator](https://github.com/Azure/co-op-translator). Ingawa tunajitahidi kufikia usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au upungufu wa usahihi. Hati ya asili katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu na ya binadamu inashauriwa. Hatuna dhima kwa kutoelewana au tafsiri potofu zitokanazo na matumizi ya tafsiri hii. +**Tangazo la Msamaha**: +Hati hii imetafsiriwa kwa kutumia huduma ya tafsiri ya AI [Co-op Translator](https://github.com/Azure/co-op-translator). Wakati tunajitahidi kwa usahihi, tafadhali fahamu kuwa tafsiri za kiotomatiki zinaweza kuwa na makosa au kasoro. Hati ya awali katika lugha yake ya asili inapaswa kuchukuliwa kama chanzo cha mamlaka. Kwa taarifa muhimu, tafsiri ya kitaalamu ya binadamu inashauriwa. Hatukuwajibiki kwa kutoelewana au tafsiri potofu zinazotokea kutokana na matumizi ya tafsiri hii. \ No newline at end of file diff --git a/translations/ta/.co-op-translator.json b/translations/ta/.co-op-translator.json index c9f29ffd9..18d7d4d1e 100644 --- a/translations/ta/.co-op-translator.json +++ b/translations/ta/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ta" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:39:28+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:40:36+00:00", "source_file": "README.md", "language_code": "ta" }, diff --git a/translations/ta/README.md b/translations/ta/README.md index d9dd8b2c9..f8f1468b0 100644 --- a/translations/ta/README.md +++ b/translations/ta/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 பன்மொழி ஆதரவு +### 🌐 பல மொழி ஆதரவு -#### GitHub செயல்பாட்டின் மூலம் ஆதரவு (தானியங்கி மற்றும் எப்போதும் புதுப்பிக்கப்பட்டது) +#### GitHub Action மூலம் ஆதரவு (ஆட்டோமேட்டிக் & எப்போதும் புதுப்பிக்கப்படும்) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](./README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](./README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **பிரதி நேரடியாகப் பெருக்க விரும்புகிறீர்களா?** +> **உள்ளூர் கிளோன் செய்ய விரும்புகிறீர்களா?** > -> இந்த ஸ்டோரேஜ் 50+ மொழி மொழிபெயர்ப்புகளை உள்ளடக்குகிறது, இது பதிவிறக்க அளவை முக்கியமாக அதிகரிக்கிறது. மொழிபெயர்ப்புகள் இல்லாமல் கிளோன் செய்ய sparse checkout பயன்படுத்தவும்: +> இந்த ரெப்போசிடரி 50+ மொழி மொழிபெயர்ப்புகளை உள்ளடக்கியதால் பதிவிறக்கும் அளவு குறிப்பிடத்தக்கது ஆகும். மொழிபெயர்ப்புகள் இல்லாமல் கிளோன் செய்ய sparse checkout ஐ பயன்படுத்தவும்: > > **Bash / macOS / Linux:** > ```bash @@ -33,206 +33,205 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> இது விரைவான பதிவிறக்கம் மூலம் பாடத்திட்டத்தை முடிக்க தேவையான அனைத்தையும் உங்களுக்கு வழங்கும். +> இந்த முறையில் விரைவான பதிவிறக்கம் மூலம் பாடநெடுவை முடிக்க தேவையான அனைத்தும் கிடைக்கும். -#### எங்கள் சமுதாயத்தில் சேருங்கள் +#### எங்கள் சமுதாயத்தில் சேரவும் [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -எங்களிடம் AI உடன் கற்றல் தொடர்ச்சியில் ஒரு Discord உள்ளது, மேலும் படிக்கவும் சேரவும் [Learn with AI Series](https://aka.ms/learnwithai/discord) 18 - 30 செப்டம்பர், 2025. நீங்கள் GitHub Copilot ஐ Data Science க்குப் பயன்படுத்தும் குறிப்பு மற்றும் டிரிக்குகளைப் பெறுவீர்கள். +நாங்கள் Discord வழியாக AI கற்றல் தொடர் நடத்தி வருகின்றோம், மேலும் விவரங்களுக்கு மற்றும் சேர்வதற்கு [Learn with AI Series](https://aka.ms/learnwithai/discord) இல் 18 - 30 செப்டம்பர், 2025 வரை இணைக. இங்கு நீங்கள் GitHub Copilot ஐ Data Scienceக்காக பயன்படுத்துவதற்கான குறிப்புகளையும் நுட்பங்களையும் பெறுவீர்கள். ![Learn with AI series](../../translated_images/ta/3.9b58fd8d6c373c20.webp) -# ஆரம்பக்கால கிராமிய இயந்திரக் கற்றல் - ஒரு பாடத்திட்டம் +# ஆரம்பத்திற்கான மெஷின் லெர்நிங் - பாடத்திட்டம் -> 🌍 உலகுக்குச் சுற்றுலா போகச் செல்வோம், உலக கலாச்சாரங்களின் மூலம் இயந்திரக் கற்றல் ஆராய்வோம் 🌍 +> 🌍 உலகத்தின் பல கலாச்சாரங்களின் வழியில் மெஷின் லெர்னிங்கை ஆராய்ந்து உலகம் சுற்றிப் பயணம் செய்யலாம் 🌍 -Microsoft இல் உள்ள Cloud Advocates, **Machine Learning** பற்றி 12 வாரங்கள், 26 பாடங்கள் கொண்ட பாடத்திட்டத்தை சமர்ப்பிக்க மகிழ்ச்சியடைகிறோம். இந்த பாடத்திட்டத்தில், நீங்கள் சில சமயங்களில் **பாரம்பரிய இயந்திரக் கற்றல்** என்று அழைக்கப்படும் விஷயங்களை கற்றுக்கொள்வீர்கள், பெரும்பாலும் Scikit-learn நூலகத்தை பயன்படுத்தி, ஆழ்ந்த கற்றலைத் தவிர்த்து கற்போம், ஆழ்ந்த கற்றல் எங்கள் [AI for Beginners' பாடத்திட்டத்தில்](https://aka.ms/ai4beginners) தெளிவானது. இந்த பாடங்களை எங்கள் ['Data Science for Beginners' பாடத்திட்டத்துடனும்](https://aka.ms/ds4beginners) இணைத்து கொள்ளவும்! +Microsoft இல் உள்ள Cloud Advocates 12 வாரம், 26 பாடங்கள் கொண்ட முழு பாடத்திட்டத்தை வழங்குவதில் மகிழ்ச்சி அடைகின்றனர், இது **மெஷின் லெர்நிங்** பற்றியது. இந்த பாடத்திட்டத்தில், சில நேரங்களில் **சாதாரண மெஷின் லெர்நிங்** என்று அழைக்கப்படும், அதிகமாக Scikit-learn நூலகத்தை பயன்படுத்தி, ஆழ்ந்த கற்றல் தவிர்க்கப்படுகிறது; அதுதான் நமது [AI for Beginners' பாடத் திட்டத்தில்](https://aka.ms/ai4beginners) உள்ளடக்கப்பட்டுள்ளது. இதேபோல், இந்த பாடத்திட்டத்துடன் நமது ['Data Science for Beginners' பாடத்திட்டம்](https://aka.ms/ds4beginners) இணைத்து கற்கவும் பரிந்துரைக்கப்படுகிறது! -உலகில் இருந்து பல்வேறு பகுதியிலிருந்து தரவுகளைப் பயன்படுத்தி பாரம்பரிய நுட்பங்களை செயல்படுத்தி உலகு சுற்றுலாவோடு பயணம் செய்யுங்கள். ஒவ்வொரு பாடமும் முன் மற்றும் பின் பரிசோதனை கேள்விகள், கற்றலை நிறைவேற்ற எழுதப்பட்ட வழிமுறைகள், ஒரு தீர்வு, ஒரு பணிகள் உள்ளடக்கம் மற்றும் பலவற்றையும் கொண்டுள்ளது. எங்கள் திட்ட அடிப்படையிலான கற்றல் முறைசெயல் புதிய திறன்கள் 'சேர்கிறதை' உறுதி செய்யும். +உலகின் பல பகுதிகளிலிருந்து தரவுகளைப் பயன்படுத்தி இந்த பாரம்பரிய முறைகளை இயங்கவிடுவோம். ஒவ்வொரு பாடத்திற்கும் படிப்பதற்கு முன் மற்றும் பிறகு குவிட்ஸ், எழுதப்பட்ட விளக்கங்கள், தீர்வு, பணிகள் போன்றவை உள்ளன. நமது திட்ட அடிப்படையிலான கற்றல் முறையானது நீங்கள் கற்றுக் கொண்டதைக் கட்டியெழுப்புகையில் கற்றுக் கொள்கின்றீர்கள் என்பதைக்காட்டும், இது புதிய திறன்களை உறுதியுடன் கற்றுக்கொள்ள உதவுகிறது. -**✍️ எங்கள் ஆசிரியர்களுக்கு இனிய நன்றி** ஜென் லூபர், ஸ்டீபன் ஹாவெல், ஃப்ரான்செஸ்கா லாசெரி, தோமாமி இமுரா, காசி பிரேவியூ, ட்மிட்ரி சோஷ்னிக்கோவ், கிறிஸ் நோரிங், அனிர்பான் முகர்ஜி, ஆர்னெல்லா ஆல்டுன்யன், ரூத் யகுபு மற்றும் ஏமி பாய்ட் +**✍️ எங்கள் எழுத்தாளர்களுக்கு இனிய நன்றிகள்** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu மற்றும் Amy Boyd -**🎨 எங்கள் வரைபடக்கலைஞர்களுக்கு நன்றி** தோமாமி இமுரா, தசானி மாதிபல்லி மற்றும் ஜென் லூபர் +**🎨 எங்கள் பகுத்தறிவாளர்களுக்கும் நன்றி** Tomomi Imura, Dasani Madipalli மற்றும் Jen Looper -**🙏 சிறப்பு நிகர்பு 🙏 எங்கள் Microsoft மாணவர் தூதர்கள் இயற்றிய, மறுசீராய்வு செய்த மற்றும் உள்ளடக்க பங்கு வாங்கியவர்களுக்கு**, குறிப்பாக ரிஷிட் டக்லி, முகமது சகிப் கான் இனம், ரோஹன் ராஜ், அலெக்சான்ட்ரு பெட்ரெஸ்கு, அாபிஷேக் ஜெய்ஸ்வால், நவ்ரின் தபசும், ஐயான் சமுலா மற்றும் ஸ்னிக்த அகார்வால் +**🙏 Microsoft மாணவர் தூதர்கள் எழுத்தாளர்கள், மதிப்பாய்வாளர்கள் மற்றும் உள்ளடக்க பங்களிப்பாளர்களுக்கு சிறப்பு நன்றி**, குறிப்பாக Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila மற்றும் Snigdha Agarwal -**🤩 கூடுதல் நிகர்பு Microsoft மாணவர் தூதர்கள் எரிக் வஞ்சாவ், ஜஸ்லீன் செய்க், மற்றும் விடுஷி குப்பதுக்கு எங்கள் R பாடங்களுக்காக!** +**🤩 Microsoft மாணவர் தூதர்கள் Eric Wanjau, Jasleen Sondhi மற்றும் Vidushi Gupta அவர்களுக்கு எங்களது R பாடங்களுக்கு கூடுதல் நன்றி!** -# தொடங்கல் +# துவக்கம் இந்த படிகளை பின்பற்றவும்: -1. **Storage-ஐ Fork செய்யவும்**: இந்த பக்கத்தின் மேல் வலது மூலையில் உள்ள "Fork" பொத்தானை கிளிக் செய்க. -2. **Storage-ஐ Clone செய்யவும்**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **ரெப்போசிடரியை Fork செய்யவும்**: இப்பக்கம் இடது மேல் பக்கத்தில் உள்ள "Fork" பொத்தானை அழுத்தவும். +2. **ரெப்போசிடரியை கிளோன் செய்யவும்**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [இந்த பாடத்திட்டத்துக்கான அனைத்து கூடுதல் வளங்களையும் எங்கள் Microsoft Learn கூடத்திலிருந்து காண்க](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [இந்த பாடத் தொகுப்பு தொடர்பான மேலதிக வளங்களை எங்கள் Microsoft Learn தொகுப்பில் காணவும்](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **உதவி தேவைப்படுகிறதா?** எங்கள் [ப்ரச்சனை தீர்க்கும் வழிகாட்டி](TROUBLESHOOTING.md) கற்றல் நிலைமை, அமைப்பு மற்றும் பாடங்களைக் இயக்குவதில் பொதுவான பிரச்சனைகளுக்கான தீர்வுகளை சரிபார்க்கவும். +> 🔧 **உதவி தேவைபடுகிறதா?** நிறுவல், அமைப்பு மற்றும் பாடங்கள் இயக்க பொதுவான பிரச்சனைகளுக்கான தீர்வுகள் [தொழில்நுட்ப வழிகாட்டி](TROUBLESHOOTING.md) இல் உள்ளன. +**[மாணவர்கள்](https://aka.ms/student-page)**, இந்த பாடத்திட்டத்தை பயன்படுத்த, முழு ரெப்போவை உங்கள் சொந்த GitHub கணக்கில் fork செய்து தனியாகவோ அல்லது குழுவாகவோ பயிற்சிகளை முடிக்கவும்: -**[மாணவர்கள்](https://aka.ms/student-page)**, இந்த பாடத்திட்டத்தை பயன்படுத்த, இந்த ஸ்டோரேஜை உங்கள் சொந்த GitHub கணக்கிற்கு fork செய்து பயிற்சிகளை தனியாக அல்லது குழுவுடன் முடிக்கவும்: - -- ஒரு முன்பள்ளி கற்றல் பரிசோதனையுடன் தொடங்கவும். -- படிக்கவும் செயல்பாடுகளை முடிக்கவும், ஒவ்வொரு அறிவுக் கண்காணிப்பிலும் நின்று சிந்திக்கவும். -- தீர்வைக் கோடுகளை இயக்குும் பதிலாக பாடங்களைப் புரிந்து கொண்டு திட்டங்களை உருவாக்க முயற்சிக்கவும்; ஆனால் அந்த கோடுகள் ஒவ்வொரு திட்டம் சார்ந்த பாடங்களின் `/solution` கோப்பகத்தில் கிடைக்கும். -- பின்பள்ளி பரிசோதனையை எடுக்கவும். +- படிக்க முன்னர் ஒரு முன்னணி குவிஸ் தேர்வைத் தொடங்கவும். +- பாடப் பகுதியை வாசித்து செயல்பாடுகளை செய்து, ஒவ்வொரு அறிவுக்குள்ளோடும் நிறுத்தி சிந்திக்கவும். +- தீர்வு குறியீட்டை ஓடுமாறு பின்தொடராமல் நேரடியாகப் பாடங்களைப் புரிந்து கொண்டு திட்டங்களை உருவாக்க முயற்சிக்கவும்; ஆனால் அந்த குறியீடு ஒவ்வொரு திட்டவழி பாடத்திலும் `/solution` கோப்புறையில் கிடைக்கும். +- படிப்புப் பிறகு ஒரு பின்னணி குவிஸ் அனுப்பவும். - சவாலை முடிக்கவும். -- பணிகளை முடிக்கவும். -- ஒரு பாடக் குழுவை முடித்த பின், [பேச்சு பலகை](https://github.com/microsoft/ML-For-Beginners/discussions) சென்று "வெளிப்படையாக கற்றுக்கொள்ளுங்கள்" மற்றும் உரிய PAT ரூப்ரிகை நிரப்பவும். PAT என்பது உங்கள் முன்னேற்றத்தை மதிப்பீடு செய்யும் கருவி ஆகும். மற்ற PAT களிற்கு பின்னூட்டமும் செய்ய முடியும், இதனால் நாம் சேர்ந்து கற்றுக்கொள்ள முடியும். +- பணியை நிறைவேற்றவும். +- ஒரு பாடக் குழுமத்தை முடித்த பிறகு, [அரசு சபையில்](https://github.com/microsoft/ML-For-Beginners/discussions) சென்று "கேள்வி பதிலளித்து" PAT ருப்ரிக் நிரப்பவும். 'PAT' என்பது முன்னேற்ற மதிப்பீடு கருவி ஆகும், இது உங்கள் கற்றலை மேலும் மேம்படுத்தும் உதவிக் கருவி. மற்ற PAT களுக்கு நாங்கள் ஒன்றாக கற்றுக்கொள்ளவும் முடியும். -> மேலதிக படிப்புக்கு, நாம் பரிந்துரை செய்கிறோம் இந்த [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) மாட்யூல்கள் மற்றும் கற்றல் பாதைகள். +> மேலதிகமாக கற்றுக்கொள்ள, இந்த [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) வகுப்புகள் மற்றும் கற்றல் பாதைகளைக் காண்பது பரிந்துரைக்கப்படுகிறது. -**ஆசிரியைர்கள்**, இந்த பாடத்திட்டத்தை பயன்படுத்த சில பரிந்துரைகளை நாங்கள் [சேர்த்துள்ளோம்](for-teachers.md). +**ஆசிரியர்கள்**, இந்த பாடத்திட்டத்தை எவ்வாறு பயன்படுத்துவது என சில பரிந்துரைகள் [கடந்துவிட்டன](for-teachers.md). --- -## வீடியோ நடைமுறை விளக்கங்கள் +## வீடியோ வழிகாட்டல்கள் -கடந்த சில பாடங்களை குறுகிய படிவ வீடியோவாகப் பார்க்கலாம். இவை எல்லா பாடங்களுக்கு உள்ளே வழங்கப்பட்டுள்ளன அல்லது [Microsoft Developer YouTube சேனலில் ML for Beginners பிளேலிஸ்டில்](https://aka.ms/ml-beginners-videos) கீழுள்ள படத்தை அழுத்தி பார்க்கலாம். +சில பாடங்கள் குறுகிய வீடியோ வடிவத்தில் கிடைக்கின்றன. நீங்கள் அவற்றை பாடங்களில் நேரடியாகவும், அல்லது [ML for Beginners மைக்ரோசாஃப்ட் டெவலப்பர் யூடியூப் சேனல் பிளேலிஸ்டில்](https://aka.ms/ml-beginners-videos) கீழே உள்ள படத்தை கிளிக் செய்து காணலாம். [![ML for beginners banner](../../translated_images/ta/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## குழுவைச் சந்தியுங்கள் +## குழுவை சந்திக்கவும் [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**கிஃப் படமாக** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**GIF உருவாக்கியவர்** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 மேலுள்ள படத்தை அழுத்தி திட்டம் மற்றும் அதை உருவாக்கிய நபர்களைப் பற்றிய வீடியோவைப் பார்க்கவும்! +> 🎥 மேல் படத்தை கிளிக் செய்து, திட்டம் மற்றும் அதை உருவாக்கியோரின் வீடியோவைப் பார்க்கவும்! --- -## கற்றல் முறை +## கல்வியியல் -இந்த பாடத்திட்டத்தை உருவாக்கும்போது நாங்கள் இரண்டு கற்றல் கொள்கைகளைத் தேர்ந்தெடுத்தோம்: இது கைபோன்ற **திட்ட அடிப்படையிலான** மற்றும் அதில் **அடிக்கடி வினாடி வினா உள்ளது** என்பது உறுதி செய்யும். மேலும, இந்த பாடத்திட்டத்திற்கு பொதுவான ஒரு **தீம்** உண்டு. +இந்த பாடத்திட்டத்தை உருவாக்கும்போது இரண்டு கல்வியியல் கொள்கைகளைத் தேர்ந்தெடுத்தோம்: இது கைபிடி **திட்ட அடிப்படையிலான**தன்மையுடன் இருக்க வேண்டும் மற்றும் **அடிக்கடி குவிட்ஸ்** அடங்கியதாக இருக்க வேண்டும் என்பதையும். மேலும், இந்த பாடத்திட்டத்துக்கு ஒரே கட்டமைப்பில் ஒரு **தீம்** உள்ளது. -உள்ளடக்கம் திட்டங்களுடன் பொருந்துவதை உறுதி செய்தல், மாணவர்களுக்கு செயல்படுத்தும் முறையைக் அதிகரிக்கிறது மற்றும் கருத்துகளை நினைவில் வைத்திருக்க உதவுகிறது. கூடுதலாக, வகுப்பு முன்னர் ஒரு குறைந்த போராட்ட வினாடி வினா மாணவர்களை ஒரு தலைப்பை கற்றுக்கொள்ளும் நோக்கத்தை அமைக்க உதவுகிறது, வகுப்புக்குப் பிறகு இரண்டாவது வினாடி வினா தக்க நினைவாற்றலை உறுதி செய்கிறது. இந்த பாடத்திட்டம் தளர்வான மற்றும் ரசிப்பானதாக வடிவமைக்கப்பட்டுள்ளது மற்றும் முழுவதுமோ பகுதியிலோ எடுத்துக் கொள்ளலாம். திட்டங்கள் சிறிய அளவில் தொடங்கி 12 வாரங்களின் இறுதிக்குள் அதிகம் சிக்கலானவை ஆவது. இந்த பாடத்திட்டத்தில் இயந்திரக் கற்றலின் உண்மை உலக பயன்பாட்டைப் பற்றிய ஒரு பின்னூட்டமும் உள்ளது, இது கூடுதல் வம்சோட்டி அல்லது கலந்துரையாடல் அடிப்படையாக பயன்படுத்தலாம். +உள்ளடக்கம் திட்டங்களோடு ஒத்துழைப்பானதாக உறுதி செய்யப்படுவதால், மாணவர்களுக்கு இது மேலும் ஈடுபாட்டானதாகவும் கருத்துக்கள் நிலைத்திருக்கும் முறையாக்கும். கூடுதலாக, வகுப்பு முன் ஒரு குறைந்த ரிஸ்க் குவிஸ் மாணவரின் பகையை கற்று கொள்ளும் நோக்கம் செலுத்தும், வகுப்பு முடிந்த பின் ஒரு இரண்டாம் குவிஸ் ஒவ்வொரு விஷயத்தின் சிறந்த நினைவாற்றலை உறுதியாக்கும். நீங்கள் இதனை முழுமையாகவோ அல்லது பகுதி பாகமாகவோ எடுக்கலாம், மேலும் இந்த திட்டங்கள் தொடக்கத்தில் மிகச் சிறியவை இரு பின்னர் 12 வார சுற்று முடிவுக்கு மிகுந்த சிக்கலானவை ஆகின்றன. இந்த பாடத்திட்டத்தில் ML இன் நிஜ உலக பயன்பாடுகள் பற்றிய ஒரு பின்னூட்டமும் இருக்கு, இது கூடுதல் மதிப்பெண் அல்லது விவாதத்திற்கான அடிப்படையாக பயன்படுத்தலாம். -> எங்கள் [நடத்தைப் பழக்கங்கள்](CODE_OF_CONDUCT.md), [பங்களிப்பு வழிகாட்டிகள்](CONTRIBUTING.md), [மொழிபெயர்ப்புகள்](..), மற்றும் [பிரச்சனை தீர்க்கும் வழிகாட்டி](TROUBLESHOOTING.md) விதிமுறைகளை கண்டறியவும். உங்கள் கட்டுமான பின்னூட்டத்துக்கு நாங்கள் வரவேற்கின்றோம்! +> எங்கள் [நடத்தை விதிகள்](CODE_OF_CONDUCT.md), [பங்களிப்பு வழிகாட்டி](CONTRIBUTING.md), [மொழிபெயர்ப்புகள்](..), மற்றும் [தொழில்நுட்ப வழிகாட்டி](TROUBLESHOOTING.md) கையேட்களை காணவும். உங்கள் கட்டுமான கருத்துக்களை வரவேற்கிறோம்! -## ஒவ்வொரு பாடமும் உள்ளவை +## ஒவ்வொரு பாடத்திலும் அடங்கியது -- விருப்பமான வரைபடக்குறிப்பு +- விருப்பமான ஸ்கெட்ச் நோட் - விருப்பமான கூடுதல் வீடியோ -- வீடியோ நடைமுறை விளக்கம் (சில பாடங்கள் மட்டுமே) -- [பாடம் முன் தளர்வு வினாடி வினா](https://ff-quizzes.netlify.app/en/ml/) +- வீடியோ வழிகாட்டல் (சில பாடங்களில் மட்டுமே) +- [பேசுவதற்கு முன் கூட்டு வினாத்தாள்](https://ff-quizzes.netlify.app/en/ml/) - எழுதப்பட்ட பாடம் -- திட்ட அடிப்படையிலான பாடங்களுக்கான, திட்டத்தை எவ்வாறு கட்டுவது என்பதை படிப்படியான வழிகாட்டிகள் -- அறிவுக் கண்காணிப்புகள் -- சவால் -- கூடுதல் படிப்புக் குறிப்பு +- திட்ட அடிப்படையிலான பாடங்களில், திட்டத்தை கட்ட பதில் படிகள் +- அறிவு சரிபார்க்குகைகள் +- ஒரு சவால் +- கூடுதல் வாசிப்பு - பணிகள் -- [பாடம் பின் வினாடி வினா](https://ff-quizzes.netlify.app/en/ml/) - -> **மொழிகள் குறித்து ஒரு குறிப்பு**: இவை பெரும்பாலும் Python இல் எழுதப்பட்டவை, ஆனால் பலவும் R இல் கிடைக்கின்றன. ஒரு R பாடத்தை முடிக்க, `/solution` கோப்பகத்தை பாருங்கள் மற்றும் R பாடங்கள் காண்க. அவை .rmd நீட்சியை கொண்டுள்ளன, இது **R மார்க்டவுன்** கோப்பாகும், இது `code chunks` (R அல்லது பிற மொழிகளின்) மற்றும் `YAML தலைப்பு` (PDF போன்ற வெளியீடுகளை வடிவமைக்க வழிகாட்டும்) ஆகியவற்றின் இணைவாக வரையறுக்கப்படும். ஆக, இது தரவு அறிவியலுக்கான ஒரு சிறந்த எழுத்துப்பாட அமைப்பாகவே செயல்படுகிறது, ஏனெனில் நீங்கள் உங்கள் கோடுகளை, அதன் வெளியீடு மற்றும் உங்கள் எண்ணங்களை மார்க்டவுனில் எழுத அனுமதிக்கிறது. மேலும, R மார்க்டவுன் கோப்புகள் PDF, HTML, அல்லது Word போன்ற வெளியீடு வடிவங்களில் மாற்றப்படலாம். -> **விளையாட்டுக்கள் குறித்த ஒரு குறிப்புரை**: அனைத்து விளையாட்டுக்கள் [Quiz App கோப்புறை](../../quiz-app) என்பதில் உள்ளன, மொத்தம் 52 விளையாட்டுக்கள், ஒவ்வொன்றிலும் மூன்று கேள்விகள் உள்ளன. அவை பாடங்களுக்குள் இணைக்கப்பட்டுள்ளன, ஆனால் quizzes செயலி உள்ளகமாக இயங்கும்; உள்ளகமாக ஹோஸ்ட் செய்ய அல்லது Azure இல் பிரயோகிக்க `quiz-app` கோப்புறையின் வழிமுறைகளை பின்பற்றவும். - -| பாட எண் | தலைப்பு | பாடக் குழு | கற்றல் நோக்குகள் | இணைக்கப்பட்ட பாடம் | ஆசிரியர் | -| :-------: | :------------------------------------------------------------: | :---------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | -| 01 | இயந்திரக் கற்றலுக்கான அறிமுகம் | [அறிமுகம்](1-Introduction/README.md) | இயந்திரக் கற்றலுக்குப் பின்பற்றப்படும் அடிப்படைக் கோட்பாடுகளை கற்றுக்கொள்ளுங்கள் | [பாடம்](1-Introduction/1-intro-to-ML/README.md) | முஹம்மத் | -| 02 | இயந்திரக் கற்றலின் வரலாறு | [அறிமுகம்](1-Introduction/README.md) | இந்த துறையின் வரலாறை கற்றுக்கொள்ளுங்கள் | [பாடம்](1-Introduction/2-history-of-ML/README.md) | ஜென் மற்றும் ஆமி | -| 03 | நீதி மற்றும் இயந்திரக் கற்றல் | [அறிமுகம்](1-Introduction/README.md) | நீதி தொடர்பான முக்கிய தத்துவக் கேள்விகள் எவை என்பதையும், ML மொடல்களை உருவாக்குதல் மற்றும் பயன்படுத்தும்போது இது எப்படி தொடர்புடையதென மாணவர்கள் பரிசீலிக்க வேண்டும்? | [பாடம்](1-Introduction/3-fairness/README.md) | துமோமி | -| 04 | இயந்திரக் கற்றலுக்கு பயன்படும் முறைகள் | [அறிமுகம்](1-Introduction/README.md) | இயந்திரக் கற்றல் ஆராய்ச்சியாளர்கள் ML மொடல்களை உருவாக்க என்ன முறைகள் பயன்படுத்துகின்றனர்? | [பாடம்](1-Introduction/4-techniques-of-ML/README.md) | கிரிஸ் மற்றும் ஜென் | -| 05 | தொடர்புக் கணிதத்தின் அறிமுகம் | [Regression](2-Regression/README.md) | தொடர்புக் கணித மொடல்களுக்கு Python மற்றும் Scikit-learn பயன்படுத்தத் தொடங்குங்கள் | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ஜென் • எரிக் வஞ்ஜாவ் | -| 06 | வட அமெரிக்க பரங்கிக்காய் விலை 🎃 | [Regression](2-Regression/README.md) | ML க்கான தரவுகளை காட்சி மூலம் பார்க்கவும், சுத்தப்படுத்தவும் | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ஜென் • எரிக் வஞ்ஜாவ் | -| 07 | வட அமெரிக்க பரங்கிக்காய் விலை 🎃 | [Regression](2-Regression/README.md) | நேரியல் மற்றும் பன்முக தொடர்புக் கணித மொடல்களை உருவாக்கவும் | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ஜென் மற்றும் Dmitry • எரிக் வஞ்ஜாவ் | -| 08 | வட அமெரிக்க பரங்கிக்காய் விலை 🎃 | [Regression](2-Regression/README.md) | ஒரு லாஜிஸ்டிக் தொடர்புக் கணிதக் மொடல் உருவாக்கவும் | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ஜென் • எரிக் வஞ்ஜாவ் | -| 09 | ஒரு வலை செயலி 🔌 | [Web App](3-Web-App/README.md) | உங்கள் பயிற்சியளிக்கப்பட்ட மொடலைப் பயன்படுத்த ஒரு வலை செயலியை உருவாக்கவும் | [Python](3-Web-App/1-Web-App/README.md) | ஜென் | -| 10 | வகைப்படுத்தலுக்கான அறிமுகம் | [Classification](4-Classification/README.md) | உங்கள் தரவை சுத்தம் செய்யவும், தயாரிக்கவும், காட்சிப்படுத்தவும்; வகைப்படுத்தலுக்கான அறிமுகம் | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ஜென் மற்றும் கேசி • எரிக் வஞ்ஜாவ் | -| 11 | சுவையான ஆசிய மற்றும் இந்திய சமையல் 🍜 | [Classification](4-Classification/README.md) | வகைப்படுத்தலரின் அறிமுகம் | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ஜென் மற்றும் கேசி • எரிக் வஞ்ஜாவ் | -| 12 | சுவையான ஆசிய மற்றும் இந்திய சமையல் 🍜 | [Classification](4-Classification/README.md) | கூடுதல் வகைப்படுத்தலர்கள் | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ஜென் மற்றும் கேசி • எரிக் வஞ்ஜாவ் | -| 13 | சுவையான ஆசிய மற்றும் இந்திய சமையல் 🍜 | [Classification](4-Classification/README.md) | உங்கள் மொடலைப் பயன்படுத்தி பரிந்துரைக்கும் வலை செயலி உருவாக்கவும் | [Python](4-Classification/4-Applied/README.md) | ஜென் | -| 14 | கூட்டு வகைப்படுத்தலுக்கான அறிமுகம் | [Clustering](5-Clustering/README.md) | உங்கள் தரவை சுத்தம் செய்யவும், தயாரிக்கவும், காட்டவும்; கூட்டு வகைப்படுத்தலுக்கான அறிமுகம் | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ஜென் • எரிக் வஞ்ஜாவ் | -| 15 | நைஜீரிய இசை ருசிகளை ஆராய்தல் 🎧 | [Clustering](5-Clustering/README.md) | K-Means கூட்டு வகைப்படுத்தல் முறையை ஆராயுங்கள் | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ஜென் • எரிக் வஞ்ஜாவ் | -| 16 | இயற்கை மொழி செயலாக்க அறிமுகம் ☕️ | [Natural language processing](6-NLP/README.md) | எளிதான ஒரு பாட்டை உருவாக்கி NLP அடிப்படைகளை கற்றுக்கொள்ளுங்கள் | [Python](6-NLP/1-Introduction-to-NLP/README.md) | ஸ்டீபன் | -| 17 | பொதுவான NLP பணி ☕️ | [Natural language processing](6-NLP/README.md) | மொழி கட்டமைப்புகளுடன் பணியாற்றுவதற்கு தேவையான பொதுவான பணிகளைப் புரிந்துகொண்டு உங்கள் NLP அறிவை விரிவுபடுத்தவும் | [Python](6-NLP/2-Tasks/README.md) | ஸ்டீபன் | -| 18 | மொழிபெயர்ப்பு மற்றும் உணர்வு பகுப்பாய்வு ♥️ | [Natural language processing](6-NLP/README.md) | ஜேன் ஆஸ்டன் உடன் மொழிபெயர்ப்பு மற்றும் உணர்வு பகுப்பாய்வு | [Python](6-NLP/3-Translation-Sentiment/README.md) | ஸ்டீபன் | -| 19 | ஐரோப்பிய காதல் விடுதிகள் ♥️ | [Natural language processing](6-NLP/README.md) | ஹோட்டல் விமர்சனங்களுடன் உணர்வு பகுப்பாய்வு 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | ஸ்டீபன் | -| 20 | ஐரோப்பிய காதல் விடுதிகள் ♥️ | [Natural language processing](6-NLP/README.md) | ஹோட்டல் விமர்சனங்களுடன் உணர்வு பகுப்பாய்வு 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | ஸ்டீபன் | -| 21 | கால அளவு தொடர் படிம முன்கூட்டியறிதல் அறிமுகம் | [Time series](7-TimeSeries/README.md) | கால அளவு தொடர் படிம முன்கூட்டியறிதல் அறிமுகம் | [Python](7-TimeSeries/1-Introduction/README.md) | பிரான்செஸ்கா | -| 22 | ⚡️ உலக சக்தி பயன்பாடு ⚡️ - ARIMA உடன் கால அளவு தொடர் முன்கூட்டியறிதல் | [Time series](7-TimeSeries/README.md) | ARIMA உடன் கால அளவு தொடர் முன்கூட்டியறிதல் | [Python](7-TimeSeries/2-ARIMA/README.md) | பிரான்செஸ்கா | -| 23 | ⚡️ உலக சக்தி பயன்பாடு ⚡️ - SVR உடன் கால அளவு தொடர் முன்கூட்டியறிதல் | [Time series](7-TimeSeries/README.md) | Support Vector Regressor மூலம் கால அளவு தொடர் முன்கூட்டியறிதல் | [Python](7-TimeSeries/3-SVR/README.md) | அனிர்பான் | -| 24 | வலிமையூட்டும் கற்றலுக்கான அறிமுகம் | [Reinforcement learning](8-Reinforcement/README.md) | Q-Learning உடன் வலிமையூட்டும் கற்றலுக்கான அறிமுகம் | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Python பிஜமா தவிர்க்க உதவுங்கள்! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym உடன் வலிமையூட்டும் கற்றல் | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| கடைசிக் குறிப்புகள் | உலக nyata இயந்திரக் கற்றல் சூழல்கள் மற்றும் பயன்பாடுகள் | [ML in the Wild](9-Real-World/README.md) | பாரம்பரிய இயந்திரக் கற்றலின் சுவாரஸ்யமான மற்றும் வெளிப்படுத்தும் உண்மையான பயன்பாடுகள் | [பாடம்](9-Real-World/1-Applications/README.md) | குழு | -| கடைசிக் குறிப்புகள் | RAI டாஷ்போர்டைப் பயன்படுத்தி இயந்திரக் கற்றலில் மொடல் பிழைத்திருத்தல் | [ML in the Wild](9-Real-World/README.md) | பதிலாளர் AI டாஷ்போர்டு கூறுகளைப் பயன்படுத்தி இயந்திரக் கற்றலில் மொடல் பிழைத்திருத்தல் | [பாடம்](9-Real-World/2-Debugging-ML-Models/README.md) | ரூத் யகுபு | - -> [இந்த படிப்புக்கான அனைத்து கூடுதல் வளங்களையும் எங்கள் Microsoft Learn தொகுப்பில் காணவும்](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## ஆன்லைனாக இல்லாத அணுகல் - -[Docsify](https://docsify.js.org/#/) பயன்படுத்தி இந்த ஆவணத்தினை ஆன்லைனாக இல்லாத முறையில் இயக்கலாம். இந்த ரெப்போவை ஃபோர்க் செய்து, உங்கள் உள்ளக கணினியில் [Docsify ஐ நிறுவி](https://docsify.js.org/#/quickstart), அதன் பிறகு இந்த ரெப்போவின் ரூட் கோப்புறையில் `docsify serve` என தட்டச்சு செய்யவும். இணையதளம் 3000 என்ற பிளோர்டு இலக்கத்தில் உங்கள் உள்ளூர் கணினியில் (localhost:3000) கிடைக்கும். +- [போஸ்ட்-பாட நிகழ்ச்சி கூட்டு வினாத்தாள்](https://ff-quizzes.netlify.app/en/ml/) +> **மொழிகள் குறித்து ஒரே குறிப்பு**: இந்த பாடங்கள் முதன்மையாக Python இல் எழுதப்பட்டுள்ளன, ஆனால் பல பாடங்கள் R-இல் கூட கிடைக்கின்றன. ஒரு R பாடத்தை முடிக்க, `/solution` கோப்பகத்திற்கு சென்று R பாடங்களை காணுங்கள். அவற்றுக்கு .rmd விரிவாக்கம் உள்ளது, இது **R Markdown** கோப்பை குறிக்கிறது, இது `code chunks` (R அல்லது பிற மொழிகளை) மற்றும் `YAML header`-ஐ (PDF போன்ற வெளியீடுகளை வடிவமைக்க வழிகாட்டும்) `Markdown document`-ல் ஒருங்கிணைக்கும் வடிவமாக வரையறுக்கலாம். இதனால், உங்கள் கோ드를, அதன் வெளியீடுகளை மற்றும் உங்கள் எண்ணங்களை Markdown இல் எழுதுவதன் மூலம் இணைக்கக் கூடிய ஒரு சிறந்த ஆசிரியர் வடிவமைப்பாக இது செயல்படுகிறது. மேலும், R Markdown ஆவணங்களை PDF, HTML, அல்லது Word போன்ற வெளியீடு வடிவங்களில் உருவாக்கலாம். + +> **வினாக்குழிப்புரைகள் குறித்து ஒரே குறிப்பு**: அனைத்து வினாக்களும் [Quiz App folder](../../quiz-app) இல் உள்ளன, அதில் ஒவ்வொன்றிலும் மூன்று கேள்விகள் கொண்ட 52 வினா தொகுப்புகள் உள்ளன. அவை பாடங்களுக்குள் இணைக்கப்பட்டுள்ளன ஆனால் Quiz App-ஐ உள்ளூராக இயக்கலாம்; உள்ளூர் ஹோஸ்ட் அல்லது Azure-க்கு வெளியிட `quiz-app` கோப்பகத்தில் உள்ள வழிமுறைகளை பின்பற்றவும். + +| பாடத் தொகுதி எண் | தலைப்பு | பாடத் தொகுப்பு | கற்றல் குறிக்கோள்கள் | இணைக்கப்பட்ட பாடம் | ஆசிரியர் | +| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | இயந்திரக் கற்றல் அறிமுகம் | [அறிமுகம்](1-Introduction/README.md) | இயந்திரக் கற்றலின் அடிப்படைக் கருத்துக்களை கற்பது | [பாடம்](1-Introduction/1-intro-to-ML/README.md) | முஹம்மது | +| 02 | இயந்திரக் கற்றலின் வரலாறு | [அறிமுகம்](1-Introduction/README.md) | இந்த துறையின் வரலாறை கற்பது | [பாடம்](1-Introduction/2-history-of-ML/README.md) | ஜென் மற்றும் ஆமி | +| 03 | நீதி மற்றும் இயந்திரக் கற்றல் | [அறிமுகம்](1-Introduction/README.md) | நீதி சார்ந்த முக்கிய தத்துவப்பரப்புகளைக் குறித்து மாணவர்கள் என்ன கருத்தில் கொள்ள வேண்டும்? | [பாடம்](1-Introduction/3-fairness/README.md) | தொமோமி | +| 04 | இயந்திரக் கற்கல் தொழில்நுட்பங்கள் | [அறிமுகம்](1-Introduction/README.md) | இயந்திரக் கற்றல் மாதிரிகளை உருவாக்க எவற்றைப் பயன்படுத்துகிறார்கள்? | [பாடம்](1-Introduction/4-techniques-of-ML/README.md) | கிறிஸ் மற்றும் ஜென் | +| 05 | பின்வட்டார அறிமுகம் | [பின்வட்டாரம்](2-Regression/README.md) | பைதான் மற்றும் ஸ்கைகிட்-ல்ர்ன் பயன்பாட்டில் regression மாதிரிகள் உருவாக்க தொடங்குதல் | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | ஜென் • எரிக் வாஞ்சௌ | +| 06 | வட அமெரிக்க பாம்பரின் விலைகள் 🎃 | [பின்வட்டாரம்](2-Regression/README.md) | இயந்திரக் கற்றலுக்காக தரவுகளை ரசிக்கவும் சுத்தம் செய்யவும் | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | ஜென் • எரிக் வாஞ்சௌ | +| 07 | வட அமெரிக்க பாம்பரின் விலைகள் 🎃 | [பின்வட்டாரம்](2-Regression/README.md) | நேர்கோட்டு மற்றும் பன்முக பின்வட்டார் மாதிரிகள் உருவாக்கு | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | ஜென் மற்றும் ட்மிதிரி • எரிக் வாஞ்சௌ | +| 08 | வட அமெரிக்க பாம்பரின் விலைகள் 🎃 | [பின்வட்டாரம்](2-Regression/README.md) | லொஜிஸ்டிக் பின்வட்டாரம் மாதிரி உருவாக்கு | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | ஜென் • எரிக் வாஞ்சௌ | +| 09 | ஒரு வலை செயலி 🔌 | [வலை செயலி](3-Web-App/README.md) | உங்கள் பயிற்சி பெற்ற மாதிரியை பயன்படுத்த ஒரு வலை செயலியைக் கட்டுங்கள் | [Python](3-Web-App/1-Web-App/README.md) | ஜென் | +| 10 | வகைப்படுத்தல் அறிமுகம் | [வகைப்படுத்தல்](4-Classification/README.md) | உங்கள் தரவை சுத்தம் செய்யவும், தயார் செய்யவும் மற்றும் காட்சிப்படுத்தவும்; வகைப்படுத்தல் அறிமுகம் | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | ஜென் மற்றும் காசி • எரிக் வாஞ்சௌ | +| 11 | சுவையான ஆசிய மற்றும் இந்திய உணவுகள் 🍜 | [வகைப்படுத்தல்](4-Classification/README.md) | வகைப்பாட்டுக்கான அறிமுகம் | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | ஜென் மற்றும் காசி • எரிக் வாஞ்சௌ | +| 12 | சுவையான ஆசிய மற்றும் இந்திய உணவுகள் 🍜 | [வகைப்படுத்தல்](4-Classification/README.md) | அதிக வகைப்பாட்டாளர்கள் | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | ஜென் மற்றும் காசி • எரிக் வாஞ்சௌ | +| 13 | சுவையான ஆசிய மற்றும் இந்திய உணவுகள் 🍜 | [வகைப்படுத்தல்](4-Classification/README.md) | உங்கள் மாதிரியை பயன்படுத்தி பரிந்துரைக் வலை செயலியை கட்டுங்கள் | [Python](4-Classification/4-Applied/README.md) | ஜென் | +| 14 | கிளஸ்டர் அமைவியல் அறிமுகம் | [கிளஸ்டர் அமைவியல்](5-Clustering/README.md) | உங்கள் தரவை சுத்தம் செய்யவும், தயார் செய்யவும் மற்றும் காட்சிப்படுத்தவும்; கிளஸ்டர் அமைவியல் அறிமுகம் | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | ஜென் • எரிக் வாஞ்சௌ | +| 15 | நைஜீரிய இசை ருசிகளை ஆராய்தல் 🎧 | [கிளஸ்டர் அமைவியல்](5-Clustering/README.md) | K-Means கிளஸ்டர் முறையை ஆராயவும் | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | ஜென் • எரிக் வாஞ்சௌ | +| 16 | இயற்கை மொழி செயலாக்கம் அறிமுகம் ☕️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | எளிய பாட்டை உருவாக்கி NLP அடிப்படைகளை கற்றுக்கொள்ளுங்கள் | [Python](6-NLP/1-Introduction-to-NLP/README.md) | ஸ்டீபன் | +| 17 | பொதுவான NLP பணிகள் ☕️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | மொழி அமைப்புக்களைத் தொடர்பு கொண்டு செய்ய வேண்டிய பொதுப் பணிகளைக் கற்றுக்கொண்டு உங்கள் NLP அறிவை ஆழமாக்குங்கள் | [Python](6-NLP/2-Tasks/README.md) | ஸ்டீபன் | +| 18 | மொழிபெயர்ப்பு மற்றும் உணர்ச்சி பகுப்பாய்வு ♥️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | ஜேன் ஆஸ்டின் மூலம் மொழிபெயர்ப்பு மற்றும் உணர்ச்சி பகுப்பாய்வு | [Python](6-NLP/3-Translation-Sentiment/README.md) | ஸ்டீபன் | +| 19 | ஐரோப்பிய காதல் விடுதிகள் ♥️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | விடுதி மதிப்பாய்வுகளுடன் உணர்ச்சி பகுப்பாய்வு 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | ஸ்டீபன் | +| 20 | ஐரோப்பிய காதல் விடுதிகள் ♥️ | [இயற்கை மொழி செயலாக்கம்](6-NLP/README.md) | விடுதி மதிப்பாய்வுகளுடன் உணர்ச்சி பகுப்பாய்வு 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | ஸ்டீபன் | +| 21 | கால வரிசை முன்னறிவிப்பு அறிமுகம் | [கால வரிசை](7-TimeSeries/README.md) | கால வரிசை முன்னறிவிப்பிற்கு அறிமுகம் | [Python](7-TimeSeries/1-Introduction/README.md) | பிரான்செஸ்கா | +| 22 | ⚡️ உலக சக்தி பயன்பாடு ⚡️ - ARIMA உடன் கால வரிசை முன்னறிவிப்பு | [கால வரிசை](7-TimeSeries/README.md) | ARIMA உடன் கால வரிசை முன்னறிவிப்பு | [Python](7-TimeSeries/2-ARIMA/README.md) | பிரான்செஸ்கா | +| 23 | ⚡️ உலக சக்தி பயன்பாடு ⚡️ - SVR உடன் கால வரிசை முன்னறிவிப்பு | [கால வரிசை](7-TimeSeries/README.md) | Support Vector Regressor உடன் கால வரிசை முன்னறிவிப்பு | [Python](7-TimeSeries/3-SVR/README.md) | அனிர்பன் | +| 24 | மறுசீரமைப்பு கற்றல் அறிமுகம் | [மறுசீரமைப்பு கற்றல்](8-Reinforcement/README.md) | Q-Learning உடன் மறுசீரமைப்பு கற்றல் அறிமுகம் | [Python](8-Reinforcement/1-QLearning/README.md) | ட்மிதிரி | +| 25 | பீட்டரை ஓநாயிலிருந்து தடுத்து வைக்க! 🐺 | [மறுசீரமைப்பு கற்றல்](8-Reinforcement/README.md) | மறுசீரமைப்பு கற்றல் கேலம் | [Python](8-Reinforcement/2-Gym/README.md) | ட்மிதிரி | +| பின்னூட்டம் | நிஜ உலக இயந்திரக் கற்றல் சூழ்நிலைகளும் பயன்பாடுகளும் | [களத்திலுள்ள ML](9-Real-World/README.md) | பாரம்பரிய இயந்திரக் கற்றலின் சுவாரசியமான மற்றும் வெளிப்படுத்தும் வாட்சமைகள் | [பாடம்](9-Real-World/1-Applications/README.md) | குழு | +| பின்னூட்டம் | RAI டாஷ்போர்டைப் பயன்படுத்தி ML மாதிரி பிழைத்திருத்துதல் | [களத்திலுள்ள ML](9-Real-World/README.md) | பொறுப்பான AI டாஷ்போர்ட் கூறுகளைப் பயன்படுத்தி இயந்திரக் கற்றலில் மாதிரி பிழைத்திருத்துதல் | [பாடம்](9-Real-World/2-Debugging-ML-Models/README.md) | ரூத் யாகுபு | + +> [இந்த பாடத்திட்டத்திற்கு கூடுதல் அனைத்து வளங்களையும் Microsoft Learn கலெக்ஷனில் காண்க](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## ஆஃப்லைன் அணுகல் + +இந்த ஆவணத்தை [Docsify](https://docsify.js.org/#/) பயன்படுத்தி ஆஃப்லைனில் இயக்க முடியும். இந்த ரெப்போவை Fork செய்து, உங்கள் உள்ளூர் கணினியில் [Docsify ஐ நிறுவுங்கள்](https://docsify.js.org/#/quickstart), பின்னர் இந்த ரெப்போவின் மூல சாத்திரத்தில் `docsify serve` என தட்டச்சு செய்யவும். இணையதளம் உங்கள் உள்ளூர் கணினி 3000 வண்ணக்குழியில் `localhost:3000` என்ற முகவரியில் சேவை செய்யப்படும். ## PDFகள் -வழிகாட்டுதலின் PDF பதிப்பை இணைப்புடன் [இங்கே](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) காணவும். +பாடத்திட்டத்தின் PDF ஐ [இங்கே](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) இணைப்புடன் காண்க. -## 🎒 மற்ற படிப்புகள் +## 🎒 பிற பாடங்கள் -எங்கள் குழு மற்ற படிப்புகளை உருவாக்குகிறது! பாருங்கள்: +எங்கள் குழு பிற பாடங்களையும் உருவாக்குகிறது! பாருங்கள்: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j துவக்கவர்களுக்கு](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js துவக்கவர்களுக்கு](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain துவக்கவர்களுக்கு](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD துவக்கவர்களுக்கு](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI துவக்கவர்களுக்கு](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP தொடக்கத்திற்கானது](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI முகவர்கள் தொடக்கத்திற்கானது](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### உருவாக்கும் AI தொடர் +[![தொடக்கத்திற்கான உருவாக்கும் AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![உருவாக்கும் AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![உருவாக்கும் AI (ஜாவா)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![உருவாக்கும் AI (ஜாவாஸ்கிரிப்ட்)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### மூலக் கற்றல் -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### மையக் கற்றல் +[![மெஷின் கற்றல் தொடக்கத்திற்கானது](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![தரவு அறிவியல் தொடக்கத்திற்கானது](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![ஏ.ஐ. தொடக்கத்திற்கானது](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![சைபர் பாதுகாப்பு தொடக்கத்திற்கானது](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![வலை உருவாக்கம் தொடக்கத்திற்கானது](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT தொடக்கத்திற்கானது](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR மேம்பாடு தொடக்கத்திற்கானது](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### கோபைலட் தொடர்ச்சி -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +### கோபைலட் தொடர் +[![ஏ.ஐ. இணைக்கப்பட்ட நிரல் எழுத்துக்காக கோபைலட்](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![C#/.NET க்கான கோபைலட்](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![கோபைலட் அனுபவம்](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## உதவி பெறுதல் -உங்கள் AI செயலிகள் கட்டுவதில் சிக்கல் வந்தால் அல்லது கேள்விகள் உள்ளன என்றால். MCP பற்றி சக லெர்னர்கள் மற்றும் அனுபவசாலிகள் உடன் விவாதங்களில் சேரவும். கேள்விகள் வரவேற்கப்பட்டு அறிவு சுதந்திரமாக பகிரப்படும் ஆதரவுள்ளதாகிய சமூகம் இது. +வேலை முழுவதும் தடையோ அல்லது AI செயலிகளை உருவாக்குவதில் ஏதேனும் கேள்விகள் என்றால், MCP பற்றி fellow கற்றுகொள்பவர்களும் அனுபவ மிக்க டெவலப்பர்களும் கலந்துரையாடல்களில் இணைக. இது கேள்விகள் வரவேற்கப்படும் மற்றும் அறிவு சுதந்திரமாக பகிரப்படும் ஆதரவான சமூகம் ஆகும். [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -தயாரிப்பு கருத்து அல்லது பிழைகள் இருந்தால், கட்டும்போது பின்வரும் முகவரிக்கு செல்லவும்: +உற்பத்தி பின்னூட்டம் அல்லது பிழைகள் இருந்தால் கீழ்காணும் முகவரிக்கு செல்லவும்: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## கூடுதல் கற்றல் குறிப்புகள் -- ஒவ்வொரு பாடத்திற்கும் பின்னர் நோட்டுபுத்தகங்களை மறுபரிசீலனை செய்யவும். -- ஆல்குரிதத்தினை தானே நடைமுறைப்படுத்துவதை பயிற்சி செய்யவும். -- கற்றுக் கொண்ட கருத்துக்களை பயன்படுத்தி உண்மையான தரவுத்தளங்களை ஆராயவும். +- ஒவ்வொரு பாடத்திற்குப் பிறகும் நோட்புக்களை பரிசீலிக்கவும், மேலும் புரிந்துகொள்ளவும். +- சொந்தமாகக் கோடுகளை நடைமுறைப்படுத்த முயற்சி செய்யவும். +- கற்றுள்ள கருத்துக்களைப் பயன்படுத்தி உண்மையான தரவுத் தொகுப்புகளை ஆராயவும். --- -**ஒருங்குறிப்பு**: -இந்த ஆவணம் AI மொழிபெயர்ப்பு சேவை [Co-op Translator](https://github.com/Azure/co-op-translator) பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் இலக்கான துல்லியத்திற்காக முயற்சித்தாலும், தானியங்கி மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கக்கூடும் என்பதை தயவுசெய்து கவனமாக இருக்கவும். துவக்க ஆவணத்தின் இயல்பு மொழியில் உள்ள உள்ளடக்கம் அதிகாரப்பூர்வமான மூலமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்நுட்ப மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பின் பயன்படுத்துதலால் ஏற்படும் எந்தவொரு தவறான புரிதல்கள் அல்லது தவறான பாராட்டுகளுக்கு நாங்கள் பொறுப்பேற்க மாட்டோம். +**முன்னுரிமை**: +இந்த ஆவணம் AI மொழி மாற்ற சேவை [Co-op Translator](https://github.com/Azure/co-op-translator) பயன்படுத்தி மொழி மாற்றப்பட்டது. நாங்கள் துல்லியத்திற்காக முயற்சித்தாலும், தானியங்கி மொழி மாற்றங்களில் பிழைகள் அல்லது தவறுகள் உள்ளிருக்க வாய்ப்புள்ளது என்பதை கவனத்தில் கொள்ளவும். தாய்மொழியில் உள்ள அசல் ஆவணம் அதிகாரப்பூர்வ மூலமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்முறை மனித மொழி மாற்றம் பரிந்துரைக்கப்படுகிறது. இந்த மொழி மாற்றத்தை பயன்படுத்தியதனால் ஏற்பட்ட எந்தவொரு புரிதல் குறைபாடுகளுக்கும் அல்லது தவறான விளக்கங்களுக்கும் நாங்கள் பொறுப்பாயில்லை. \ No newline at end of file diff --git a/translations/te/.co-op-translator.json b/translations/te/.co-op-translator.json index 06964348d..a54cb66ee 100644 --- a/translations/te/.co-op-translator.json +++ b/translations/te/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "te" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:49:23+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:48:00+00:00", "source_file": "README.md", "language_code": "te" }, diff --git a/translations/te/README.md b/translations/te/README.md index 6a681a131..8c144a133 100644 --- a/translations/te/README.md +++ b/translations/te/README.md @@ -10,14 +10,14 @@ ### 🌐 బహుభాషా మద్దతు -#### GitHub Action ద్వారా మద్దతు (ఆటోమేటెడ్ & ఎప్పుడూ నవీనీకరించబడుతుంది) +#### GitHub చర్య ద్వారా మద్దతు ఇచ్చారు (ఆటోమేటెడ్ & ఎప్పుడూ నవీకరణ లో ఉంటుంది) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](./README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](./README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **స్థానికంగా క్లోన్ చేయాలనుకుంటున్నారా?** +> **స్థానికంగా క్లోన్ చేయాలని ఇష్టపడుతున్నారా?** > -> ఈ రిపాజిటరీ 50+ భాషా అనువాదాలను కలిగి ఉంది, ఇది డౌన్లోడ్ పరిమాణాన్ని గణనీయంగా పెంచుతుంది. అనువాదాలు లేకుండానే క్లోన్ చేయడానికి, sparse checkout ఉపయోగించండి: +> ఈ రిపోసిటరీ 50+ భాషా అనువాదాలను కలిగి ఉంది, ఇది డౌన్లోడ్ పరిమాణాన్ని గణనీయంగా పెంచుతుంది. అనువాదాలు లేకుండా క్లోన్ చేసుకోవడానికి, స్పార్స్ చెకౌట్ ను ఉపయోగించండి: > > **Bash / macOS / Linux:** > ```bash @@ -33,147 +33,147 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> ఇది కోర్సును పూర్తిచేయడానికి అవసరమైన అన్ని వాటిని వేగవంతమైన డౌన్లోడ్‌తో మీకు ఇస్తుంది. +> ఇది మీరు కోర్సును పూర్తి చేసుకోవడానికి అవసరమయిన అన్ని విషయాలను మరింత వేగంగా డౌన్లోడ్ చేయడానికి సహాయపడుతుంది. -#### మా కమ్యూనిటీ లో చేరండి +#### మా కమ్యూనిటీ తో చేర్చుకోండి [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -మా వద్ద AI సిరీస్‌తో కూడిన Discord సీక్వెన్స్ కొనసాగుతోంది, మరిన్ని వివరాలు మరియు మా తో చేరడానికి [Learn with AI Series](https://aka.ms/learnwithai/discord) కు 18 - 30 సెప్టెంబర్, 2025 లో వచ్చండి. మీరు GitHub Copilot ను డేటా సైన్స్ కోసం ఉపయోగించే చిట్కాలు మరియు సలహాలు పొందుతారు. +మాకు Discord లో AI తో తెలుసుకునే సిరీస్ జరుగుతోంది, మరిన్ని వివరాలు తెలుసుకుని [Learn with AI Series](https://aka.ms/learnwithai/discord) లో 18 - 30 సెప్టెంబర్, 2025 మధ్య చేరండి. మీరు GitHub Copilot ను డేటా సైన్స్ కోసం ఎలా ఉపయోగించాలో చిట్కాలు మరియు చాపళ్లను పొందుతారు. ![Learn with AI series](../../translated_images/te/3.9b58fd8d6c373c20.webp) -# ప్రారంభికుల కోసం మెషిన్ లెర్నింగ్ - ఒక పాఠ్యాంశం +# ప్రారంభదశల కోసం మెషిన్ లెర్నింగ్ - ఒక పాఠ్యక్రమం -> 🌍 ప్రపంచ సంస్కృతుల ద్వారా మెషిన్ లెర్నింగ్ ను అనువర్తనం చేస్తూ ప్రపంచాన్ని చుట్టూ ప్రయాణించండి 🌍 +> 🌍 మేము వేర్వేరు ప్రపంచ సంస్కృతుల ద్వారా మెషిన్ లెర్నింగ్ ను అన్వేషిస్తూ ప్రపంచమంతా ప్రయాణిస్తాము 🌍 -మైక్రోసాఫ్ట్ యొక్క క్లౌడ్ అడ్వొకేట్స్ ఒక 12 వారాల, 26 పాఠాల పాఠ్యాంశాన్ని అందిస్తున్నందుకు సంతృప్తి చెందుతున్నారు. ఈ పాఠ్యాంశంలో మీరు ప్రాముఖ్యంగా Scikit-learn లైబ్రరీని ఉపయోగించి మరియు డీప్ లెర్నింగ్ ను తప్పిస్తూ, కొన్నిసార్లు **సాంప్రదాయ మెషిన్ లెర్నింగ్** అని పిలవబడే విషయాలను నేర్చుకుంటారు, ఇది మా [AI for Beginners' curriculum](https://aka.ms/ai4beginners) లో అందించబడినది. ఈ పాఠాలను మా ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) తో కలిపి కూడా చూడండి! +Microsoft లో క్లౌడ్ అడ్వొకేట్స్ 12 వారాల, 26 పాఠాల పాఠ్యక్రమాన్ని మెషిన్ లెర్నింగ్ గురించి అందించడంలో ఆనందంగా ఉన్నారు. ఈ పాఠ్యక్రమంలో మీరు కొన్నిసార్లు **ప్రాచీన మెషిన్ లెర్నింగ్** గా పిలవబడే విషయాలను, ప్రధానంగా Scikit-learn లైబ్రరీని ఉపయోగించి, డీప్ లెర్నింగ్ (మా [AI for Beginners' curriculum](https://aka.ms/ai4beginners) లో వర్చబడింది)ను లేకుండా నేర్చుకుంటారు. ఈ పాఠాల జంటగా మా ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners) కూడా ఉపయోగించండి! -ప్రపంచంలోని అనేక ప్రాంతాల నుండి సేకరించిన డేటాకు ఈ సాంప్రదాయ సాంకేతికతలను అనువర్తనం చేస్తూ మా తో కలిసే ప్రయాణం చేయండి. ప్రతి పాఠం ముందుగా మరియు తర్వాత పరీక్షలు, పాఠ్య సూచనలు, పరిష్కారాలు, అసైనిమెంట్లు మరియు మరిన్ని అంశాలను అందిస్తుంది. మా ప్రాజెక్ట్ ఆధారిత పద్ధతి మీరు నిర్మించేటప్పుడు నేర్చుకునేలా చేస్తుంది, ఇది కొత్త నైపుణ్యాలు మరింత నిలిచిపోయే నిరూపిత మార్గం. +ప్రపంచం మొత్తం నుండి వచ్చిన డేటా పై ఈ క్లాసిక్ సాంకేతికతలను ఉపయోగిస్తూ మాతో పాటు ప్రపంచం చుట్టూ యాత్ర చేయండి. ప్రతి పాఠం ముందస్తు మరియు తరువాతి పరీక్షలు, పాఠాన్ని పూర్తిచేసే వ్రాత సూచనలు, పరిష్కారం, అసైన్మెంట్ మరియు మరిన్ని ఉంటాయి. మా ప్రాజెక్టు-ఆధారిత పద్ధతులు మీరు నేర్చుకుంటూ నిర్మిస్తూ ముందుకు పోతారని నిర్ధారిస్తాయి. -**✍️ మా రచయితలకు హృదయపూర్వక ధన్యవాదాలు**: జెన్ లూపర్, స్టీఫెన్ హావెల్, ఫ్రాన్సెస్కా లాజెర్, టోమోమీ ఇమురా, క్యాస్సీ బ్రేవియు, డిమిత్రి సోశనికోవ్, క్రిస్ నోరింగ్, అనిర్బన్ ముకర్నీ, ఒర్నెల్లా ఆల్టున్యన్, రూత్ యకుబ్ మరియు ఏమీ బాయిడ్ +**✍️ మా రచయితలకు హృదయపూర్వక ధన్యవాదాలు** జెన్ లూపర్, స్టీఫెన్ హౌల్, ఫ్రాన్సెస్కా లాజ్జెరి, టొమోమీ ఇమురా, క్యాసీ బ్రేవియు, డ్మిత్రి సోష్నికోవ్, క్రిస్ నోరింగ్, అనిర్బన్ ముఖర్జీ, ఒర్నెల్లా ఆల్టున్యన్, రూత్ యాకుబు మరియు ఎమీ బాయిడ్ -**🎨 మా చిత్రకారులకు కూడా ధన్యవాదాలు**: టోమోమీ ఇమురా, దసాని మడిపల్లి, మరియు జెన్ లూపర్ +**🎨 మా చిత్రకారులకు కూడా ధన్యవాదాలు** టొమోమీ ఇమురా, దాసాని మడిపల్లి, మరియు జెన్ లూపర్ -**🙏 ప్రత్యేక ధన్యవాదాలు 🙏 మా మైక్రోసాఫ్ట్ స్టూడెంట్ అంబాసిడార్ రచయితలు, సమీక్షకులు మరియు కంటెంట్ కండ్రిబ్యూటర్లు**, ముఖ్యంగా రిషిత్ దాగ్లీ, ముహమ్మద్ సాకిబ్ ఖాన్ ఇనాన్, రోహన్ రాజ్, అలెగ్జాండ్రు పెట్రెస్కు, అభిషేక్ జైస్వాల్, నావ్రిన్ టబస్సుమ్, ఐకాన్ సముయిలా, మరియు స్నిగ్ధ అగర్వాల్ +**🙏 ప్రత్యేక ధన్యవాదాలు 🙏 మా Microsoft స్టూడెంట్ అంబాసిడార్ల రచయితలు, సమీక్షకులు మరియు కంటెంట్ విరాళదారులు** వంటి రిషిత్ డాగ్లీ, ముహమ్మద్ సాకిబ్ ఖాన ఇనాన్, ರోహನ್ ರಾಜ్, అలెగ్జాండ్రు పెట్రెస్కు, అభిషేక్ జైస్వాల్, నవ్రిన్ టబస్సం, ఐవాన్ సాములో, మరియు స్నigdha అగర్వాల్ -**🤩 అదనపు కృతజ్ఞతలు మా R పాఠాలకు మైక్రోసాఫ్ట్ స్టూడెంట్ అంబాసిడార్లు ఎరిక్ వాన్జావ్, జస్లీన్ సون్దీ, మరియు విదుషి గుప్తా** +**🤩 Microsoft స్టూడెంట్ అంబాసిడార్ల ఎరిక్ వాంజావ్, జస్లీన్ సొంధీ, మరియు విద్యుషి గుప్తా కు మా R పాఠాలకు అదనపు కృతజ్ఞతలు!** -# ప్రారంభం ఎలా చేయాలి +# ప్రారంభించడం ఈ దశలను అనుసరించండి: -1. **రిపోజిటరీని ఫోర్క్ చేయండి**: ఈ పేజీ యొక్క పై-కుడి మూలలో ఉన్న "Fork" బటన్‌పై క్లిక్ చేయండి. -2. **రిపోజిటరీని క్లోన్ చేయండి**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **రిపోసిటరీని ఫోర్క్ చేయండి**: ఈ పేజీ ఎడమ-పైన ఉన్న "Fork" బటన్ పై క్లిక్ చేయండి. +2. **రిపోసిటరీని క్లోన్ చేయండి**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [ఈ కోర్సుకు సంబంధించిన అన్ని అదనపు వనరులు మా Microsoft Learn సేకరణలో చూడండి](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [ఈ కోర్సు కి సంబంధించిన అన్ని అదనపు వనరులను మా Microsoft Learn సేకరణలో చూడండి](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **సహాయం కావాలా?** ఇన్‌స్టాలేషన్, సెటప్, మరియు పాఠాలు నడిపే సమయంలో సాధారణ సమస్యలు పరిష్కరించడానికి మా [ట్రబుల్‌షూటింగ్ గైడ్](TROUBLESHOOTING.md) చూడండి. +> 🔧 **సహాయం కావాలా?** ఇన్‌స్టల్, సెటప్ మరియు పాఠాలు నడిపే సాధారణ సమస్యల పరిష్కారాల కోసం మా [Troubleshooting Guide](TROUBLESHOOTING.md) చూడండి. -**[విద్యార్థులు](https://aka.ms/student-page)**, ఈ పాఠ్యాంశాన్ని ఉపయోగించడానికి, మొత్తం రిపోజిటరీని మీ GitHub ఖాతాలో ఫోర్క్ చేసి, స్వయంగా లేదా గ్రూపుగా వ్యవహరించండి: +**[విద్యార్థులు](https://aka.ms/student-page)**, ఈ పాఠ్యక్రమాన్ని ఉపయోగించడానికి, పూర్తి రిపోను మీ స్వంత GitHub ఖాతాకు ఫోర్క్ చేసి, తానే లేదా குழువుతో కలిసి యాక్టివిటీలను పూర్తిచేయండి: -- ముందస్తు పాఠ శిక్షణ క్విజ్ తో ప్రారంభించండి. -- పాఠ్యాన్ని చదవండి మరియు కార్యకలాపాలను పూర్తి చేయండి, ప్రతి జ్ఞాన తనిఖీ వద్ద ఆగి, ఆలోచించండి. -- పరిష్కార కోడ్ ను నడపకుండా పాఠాలను అర్థం చేసుకొని ప్రాజెక్టులను సృష్టించడానికి ప్రయత్నించండి; అయితే ఆ కోడ్ ప్రతి ప్రాజెక్ట్-ఆధారిత పాఠంలో `/solution` ఫోల్డర్‌లలో అందుబాటులో ఉంటుంది. -- పాఠం అనంతరం క్విజ్ తీసుకోండి. -- ఛాలెంజ్ పూర్తి చేయండి. -- అసైన్‌మెంట్ పూర్తి చేయండి. -- పాఠం సమూహం పూర్తిచేసిన తర్వాత, [చర్చా ఫలకం](https://github.com/microsoft/ML-For-Beginners/discussions) సందర్శించి, సరైన PAT రుబ్రిక్ నింపి "మీరు నేర్చుకున్నది బయటపెట్టండి". 'PAT' అంటే ప్రోగ్రెస్ అసెస్‌మెంట్ టూల్, ఇది మీరు మీ అభ్యాసాన్ని పెంచడానికి నింపే రుబ్రిక్. మీరు ఇతర PATలకు కూడా స్పందించవచ్చు, అందువల్ల మనం కలసి నేర్చుకుంటాము. +- ముందస్తు లెక్చర్ క్విజ్ తో ప్రారంభించండి. +- లెక్చర్ చదవండి, చురుకైన పరీక్షల వద్ద ఆగి ఆలోచించు. +- పాఠాలను అర్థం చేసుకుని ప్రాజెక్టులను సృష్టించడానికి ప్రయత్నించండి; అయితే పరిష్కార కోడ్ `/solution` ఫోల్డర్ లో అందుబాటులో ఉంది. +- తరపు తర్వాత క్విజ్ చేయండి. +- చెల్లింపు పూర్తి చేయండి. +- అసైన్‌మెంట్ పూర్తిచేయండి. +- పాఠం గుంపు పూర్తయ్యాక, [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) సందర్శించి, సంబంధిత PAT రుబ్రిక్ నింపి "తెలుసుకోండి" అని పలకండి. PAT అనేది ప్రగతి మూల్యాంకన పరికరం, మీరు నేర్చుకున్నదాన్ని విస్తరించడానికి ఉపయోగించేదీ. మీరు ఇతర PAT లకు కూడా స్పందించి మనం కలిసి నేర్చుకోవచ్చు. -> ఇంకా అభ్యాసం కోసం, ఈ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) మాడ్యూల్స్ మరియు అభ్యాస మార్గాలను అనుసరించమని మేము సిఫార్సు చేస్తున్నాము. +> మరింత అధ్యయనానికి, ఈ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) మాడ్యూల్స్ మరియు అభ్యాస మార్గాలను అనుసరించండి. -**ఉపాధ్యాయులు**, ఈ పాఠ్యాంశాన్ని ఉపయోగించే విధానం పై మేము కొన్ని [సూచనలు](for-teachers.md) చేర్చాము. +**టీవీచర్స్**, ఈ పాఠ్యక్రమాన్ని ఎలా ఉపయోగించాలో కొన్ని సూచనలను [for-teachers.md] లో చేర్చాము. --- ## వీడియో వాక్‌త్రోల్స్ -కొన్ని పాఠాలు చిన్న వీడియో రూపంలో అందుబాటులో ఉన్నాయి. మీరు ఈ వీడియోలను పాఠాలలో పక్కన చూడవచ్చు లేదా [Microsoft Developer YouTube ఛానెల్‌పై ML for Beginners ప్లేలిస్ట్](https://aka.ms/ml-beginners-videos) లో దిగువ చిత్రంపై క్లిక్ చేసి చూడవచ్చు. +కొన్ని పాఠాలు సంక్షిప్త వీడియోలుగా అందుబాటులో ఉన్నాయి. మీరు ఈ వీడియోలను పాఠాల్లో ఇన్-లైన్ లో లేదా [Microsoft Developer YouTube ఛానెల్ లో ఉన్న ML for Beginners ప్లేలిస్ట్](https://aka.ms/ml-beginners-videos) లో ఇమేజ్ పై క్లిక్ చేసి చూడవచ్చు. [![ML for beginners banner](../../translated_images/te/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## టీమ్‌ను కలుసుకొండి +## టీమ్ ని కలవండి -[![ప్రోమో వీడియో](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif సృష్టికర్త** [మోహిత్ జైసాల్](https://linkedin.com/in/mohitjaisal) +**Gif చేసిన వారు** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 ప్రాజెక్టు మరియు అందిన వారు గురించి వీడియో కోసం పై చిత్రాన్ని క్లిక్ చేయండి! +> 🎥 ప్రాజెక్ట్ మరియు సృష్టించిన వారు గురించి వీడియో కోసం పై చిత్రం పై క్లిక్ చేయండి! --- -## పాఠ్య విభాగం +## విద్యా విధానం -ఈ పాఠ్యాంశాన్ని రూపొందించేటప్పుడు మేము రెండు విద్యా సిద్ధాంతాలను ఎంచుకున్నాము: ఇది **ప్రాజెక్ట్ ఆధారిత** గా ఉండటం మరియు అందులో **తీవ్రమైన క్విజ్‌లు** ఉండటం. అదనంగా, ఈ పాఠ్యాంశానికి ఒక సాధారణ **థీము** కలిగి ఉండటం అందించే వర్తకత కోసం. +ఈ పాఠ్యక్రమాన్ని నిర్మిస్తూ మేము రెండు విద్యా సూత్రాలను ఎంచుకున్నాము: ఇది చేతితో చేసే **ప్రాజెక్ట్-ఆధారిత** ఉండాలి మరియు ఇందులో **అనేక పరీక్షలు** ఉండాలి. అదనంగా, ఈ పాఠ్యక్రమానికి ఒక సాధారణ **థీమ్** ఉంటుంది, ఇది ఐక్యతని ఇస్తుంది. -విషయము ప్రాజెక్టులతో అనుసంధానం అయ్యేలా చూసుకోవడం వలన విద్యార్థుల కోసం ప్రక్రియ మరింత ఆకర్షణీయమవుతుందని, భావనల నిలుపుదల మరింత మెరుగ్గా ఉంటుందని ఆశించవచ్చు. అదనంగా, తరగతి ముందు తీసుకునే తక్కువ-పూకాల క్విజ్ విద్యార్థి లక్ష్యాన్ని నేర్చుకునే దిశగా సెట్ చేస్తుంది, తరగతి తర్వాత రెండవ క్విజ్ మరింత నిలుపుదలను నిర్ధారిస్తుంది. ఈ పాఠ్యాంశం అనుకూలంగా మరియు సంతోషంగా ఉంటుందని రూపొందించబడింది; మొత్తం లేదా భాగంగా తీసుకోవచ్చు. ప్రాజెక్టులు చిన్నదనుండి మొదలై 12వారం చక్రం చివరికి క్లిష్టత పెరుగుతుంది. ఇది ML యొక్క వాస్తవ ప్రపంచ ఉపయోగాలపై ఒక పోస్ట్‌స్క్రిప్ట్‌ను కూడా కలిగి ఉంది; ఇది అదనపు క్రెడిట్ లేదా చర్చ కోసం ఉపయోగించవచ్చు. +కంటెంట్ ప్రాజెక్టులకు ఒకటిగా ఉంటే, విద్యార్థుల కోసం కంటెంట్ ఆకర్షణీయంగా మారి భావనల నిలకడ పెరుగుతుంది. తరగతి ముందు తక్కువ-దృఢత క్విజ్ విద్యార్థులను నేర్చుకునే ఉద్దేశ్యాన్ని ఏర్పాటు చేస్తుంది, తరగతి తరువాతి క్విజ్ మరింత నిలకడను అందిస్తుంది. ఈ పాఠ్యక్రమం సౌకర్యవంతమైనది మరియు సరదాగా ఉంటుంది; మొత్తం లేదా భాగంగా తీసుకోవచ్చు. ప్రాజెక్టులు చిన్నదిగా మొదలవుతాయి మరియు 12 వారాల సైకిల్ చివరికి మరింత క్లిష్టంగా మారుతాయి. ఈ పాఠ్యక్రమంలో మెషీన్ లెర్నింగ్ యొక్క వాస్తవ ప్రపంచ వినియోగాలు మీద ఒక పోస్ట్‌స్క్రిప్ట్ కూడా ఉంది, ఇది అదనపు క్రెడిట్ లేదా చర్చ నిదర్శనంగా ఉపయోగించవచ్చు. -> మా [కోడ్ ఆఫ్ కండక్ట్](CODE_OF_CONDUCT.md), [కాంట్రిబ్యూటింగ్](CONTRIBUTING.md), [అనువాదాలు](..), మరియు [ట్రబుల్‌షూటింగ్](TROUBLESHOOTING.md) మార్గదర్శకాలను చూడండి. మీ నిర్మాణాత్మక అభిప్రాయాలను స్వాగతిస్తాము! +> మా [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), మరియు [Troubleshooting](TROUBLESHOOTING.md) మార్గదర్శకాల్నీ చూడండి. మీ నిర్మాణాత్మక అభిప్రాయాలకు మేము స్వాగతం! -## ప్రతి పాఠం లో ఉన్నాయి +## ప్రతి పాఠం కలిగివుంటుంది - ఐచ్ఛిక స్కెచ్నోట్ -- ఐచ్ఛిక సప్లిమెంటరీ వీడియో -- వీడియో వాక్‌త్రో (కొన్ని పాఠాలు మాత్రమే) -- [పాఠం ముందు వార్మప్ క్విజ్](https://ff-quizzes.netlify.app/en/ml/) -- రచనా పాఠం -- ప్రాజెక్ట్ ఆధారిత పాఠాల కోసం, ప్రాజెక్టు ఎలా నిర్మించాలో దశల వారీ మార్గదర్శకాలు -- జ్ఞాన తనిఖీలు -- ఒక ఛాలెంజ్ -- సప్లిమెంటరీ పఠనం -- అసైన్మెంట్ -- [పాఠం తర్వాత క్విజ్](https://ff-quizzes.netlify.app/en/ml/) - -> **భాషల గురించి ఒక గమనిక**: ఈ పాఠాలు ప్రాముఖ్యంగా Python లో రాయబడ్డాయి, కాని చాలా వాటి R లో కూడా అందుబాటులో ఉన్నాయి. R పాఠం పూర్తి చేయడానికి, `/solution` ఫోల్డర్ లో ఉన్న R పాఠాలను చూడండి. అవి `.rmd` అనే విస్తరణ కలిగి ఉంటాయి, ఇది ఒక **R Markdown** ఫైల్ అని సూచిస్తుంది, దీన్ని R లేదా ఇతర భాషల యొక్క `కోడ్ ఛంక్‌లు` మరియు `YAML హెడర్` (PDF లాంటి అవుట్పుట్లను ఎలా ఫార్మాట్ చేయాలో దిశానిర్దేశం చేస్తుంది) కలిగిన ఒక మార్క్డౌన్ డాక్యుమెంట్ గా నిర్వచించవచ్చు. దీనివల్ల మీరు మీ కోడ్, అవుట్పుట్, మరియు ఆలోచనలను మార్క్డౌన్ లో రాసుకోవచ్చు. అంతేకాక, R Markdown డాక్యుమెంట్లు PDF, HTML, లేదా Word వంటి అవుట్పుట్ ఫార్మాట్‌లుగా తయారు చేయబడవచ్చు. -> **క్విజ్‌ల గురించి ఒక గమనిక**: అన్ని క్విజ్‌లు [క్విజ్ యాప్ ఫోల్డర్](../../quiz-app)లో ఉన్నాయి, మొత్తం 52 క్విజ్‌లు, ప్రతి ఒక్కటి మూడు ప్రశ్నలనుండి ఉంటాయి. అవి పాఠాల నుండి లింక్ చేయబడ్డాయి కానీ క్విజ్ యాప్‌ను స్థానికంగా కూడా నడపవచ్చు; స్థానికంగా హోస్ట్ చేయడానికి లేదా Azureకు పరిపోషించడానికి `quiz-app` ఫోల్డర్‌లో ఉన్న సూచనలను అనుసరించండి. - -| పాఠ సంఖ్య | విషయం | పాఠ సమూహం | నేర్చుకునే లక్ష్యాలు | లింక్ చేయబడిన పాఠం | రచయిత | -| :-------: | :------------------------------------------------------------: | :---------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | మిషన్ లెర్నింగ్ కు పరిచయం | [పరిచయం](1-Introduction/README.md) | మిషన్ లెర్నింగ్ వెనుక ఉన్న ప్రాథమిక భావనలను తెలుసుకోండి | [పాఠం](1-Introduction/1-intro-to-ML/README.md) | ముహమ్మద్ | -| 02 | మిషన్ లెర్నింగ్ చరిత్ర | [పరిచయం](1-Introduction/README.md) | ఈ రంగంపై ఆధారపడిన చరిత్రను తెలుసుకోండి | [పాఠం](1-Introduction/2-history-of-ML/README.md) | జెన్ మరియు ఏమీ | -| 03 | న్యాయవంతత్వం మరియు మిషన్ లెర్నింగ్ | [పరిచయం](1-Introduction/README.md) | మిషన్ లెర్నింగ్ మోడల్స్ నిర్మించడం మరియు వినియోగానికి సంబంధించిన న్యాయవంతత్వంపై కీలక తాత్విక అంశాలు ఏమిటి? | [పాఠం](1-Introduction/3-fairness/README.md) | తోమోమీ | -| 04 | మిషన్ లెర్నింగ్ సాంకేతికతలు | [పరిచయం](1-Introduction/README.md) | మిషన్ లెర్నింగ్ పరిశోధకులు మోడల్స్ నిర్మించడానికి ఉపయోగించే సాంకేతికతలు ఏమిటి? | [పాఠం](1-Introduction/4-techniques-of-ML/README.md) | క్రిస్ మరియు జెన్ | -| 05 | రిగ్రెషన్ కు పరిచయం | [రిగ్రెషన్](2-Regression/README.md) | రిగ్రెషన్ మోడల్స్ కోసం Python మరియు Scikit-learn తో మొదలు పెట్టండి | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | జెన్ • ఎరిక్ వాంజావ్ | -| 06 | ఉత్తర అమెరికన్ దిండు ధరలు 🎃 | [రిగ్రెషన్](2-Regression/README.md) | మిషన్ లెర్నింగ్ సిద్ధంగా డేటాను విజువలైజ్ చేయండి మరియు శుభ్రపరచండి | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | జెన్ • ఎరిక్ వాంజావ్ | -| 07 | ఉత్తర అమెరికన్ దిండు ధరలు 🎃 | [రిగ్రెషన్](2-Regression/README.md) | లీనియర్ మరియు పాలినామియల్ రిగ్రెషన్ మోడల్స్ నిర్మించండి | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | జెన్ మరియు డిమిట్రీ • ఎరిక్ వాంజావ్ | -| 08 | ఉత్తర అమెరికన్ దిండు ధరలు 🎃 | [రిగ్రెషన్](2-Regression/README.md) | లాజిస్టిక్ రిగ్రెషన్ మోడల్ నిర్మించండి | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | జెన్ • ఎరిక్ వాంజావ్ | -| 09 | వెబ్ యాప్ 🔌 | [వెబ్ యాప్](3-Web-App/README.md) | మీ శిక్షణ పొందిన మోడల్ ఉపయోగించేందుకు వెబ్ యాప్ ను నిర్మించండి | [Python](3-Web-App/1-Web-App/README.md) | జెన్ | -| 10 | వర్గీకరణకు పరిచయం | [వర్గీకరణ](4-Classification/README.md) | మీ డేటాను శుభ్రం చేయండి, సిద్ధం చేయండి మరియు విజువలైజ్ చేయండి; వర్గీకరణకు పరిచయం | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | జెన్ మరియు క్యాసీ • ఎరిక్ వాంజావ్ | -| 11 | రుచికర ఆసియన్ మరియు భారతీయ వంటకాలు 🍜 | [వర్గీకరణ](4-Classification/README.md) | వర్గీకరణకర్తలకు పరిచయం | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | జెన్ మరియు క్యాసీ • ఎరిక్ వాంజావ్ | -| 12 | రుచికర ఆసియన్ మరియు భారతీయ వంటకాలు 🍜 | [వర్గీకరణ](4-Classification/README.md) | మరిన్ని వర్గీకరణకর্তులు | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | జెన్ మరియు క్యాసీ • ఎరిక్ వాంజావ్ | -| 13 | రుచికర ఆసియన్ మరియు భారతీయ వంటకాలు 🍜 | [వర్గీకరణ](4-Classification/README.md) | మీ మోడల్ ఉపయోగించి ఒక సిఫార్సుదారుడి వెబ్ యాప్ ను నిర్మించండి | [Python](4-Classification/4-Applied/README.md) | జెన్ | -| 14 | క్లస్టరింగ్ కు పరిచయం | [క్లస్టరింగ్](5-Clustering/README.md) | మీ డేటాను శుభ్రం చేయండి, సిద్ధం చేయండి మరియు విజువలైజ్ చేయండి; క్లస్టరింగ్ కు పరిచయం | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | జెన్ • ఎరిక్ వాంజావ్ | -| 15 | నైజీరియన్ సంగీత రుచులను అన్వేషించడం 🎧 | [క్లస్టరింగ్](5-Clustering/README.md) | K-మీన్స్ క్లస్టరింగ్ పద్ధతిని అన్వేషించండి | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | జెన్ • ఎరిక్ వాంజావ్ | -| 16 | సహజ భాషల ప్రాసెసింగ్ కు పరిచయం ☕️ | [సహజ భాషల ప్రాసెసింగ్](6-NLP/README.md) | ఒక సింపుల్ బాట్ ను సృష్టించడం ద్వారా NLP యొక్క ప్రాథమిక విషయాలను తెలుసుకోండి | [Python](6-NLP/1-Introduction-to-NLP/README.md) | స్టీఫెన్ | -| 17 | సామాన్య NLP పనులు ☕️ | [సహజ భాషల ప్రాసెసింగ్](6-NLP/README.md) | భాషా నిర్మాణాలతో వ్యవహరించేటప్పుడు అవసరమైన సాధారణ పనులను అర్థం చేసుకొని NLP అవగాహనను లోతుగా చేసుకోండి | [Python](6-NLP/2-Tasks/README.md) | స్టీఫెన్ | -| 18 | అనువాదం మరియు భావ విశ్లేషణ ♥️ | [సహజ భాషల ప్రాసెసింగ్](6-NLP/README.md) | జేన్ ఆస్టెన్ తో అనువాదం మరియు భావ విశ్లేషణ | [Python](6-NLP/3-Translation-Sentiment/README.md) | స్టీఫెన్ | -| 19 | యూరోప్ రొమాంటిక్ హోటల్స్ ♥️ | [సహజ భాషల ప్రాసెసింగ్](6-NLP/README.md) | హోటల్ సమీక్షలతో భావ విశ్లేషణ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | స్టీఫెన్ | -| 20 | యూరోప్ రొమాంటిక్ హోటల్స్ ♥️ | [సహజ భాషల ప్రాసెసింగ్](6-NLP/README.md) | హోటల్ సమీక్షలతో భావ విశ్లేషణ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | స్టీఫెన్ | -| 21 | సమయ శ్రేణి ముందస్తు అంచనాకు పరిచయం | [సమయ శ్రేణి](7-TimeSeries/README.md) | సమయ శ్రేణి ముందస్తు అంచనాకు పరిచయం | [Python](7-TimeSeries/1-Introduction/README.md) | ఫ్రాన్సెస్కా | -| 22 | ⚡️ ప్రపంచ శక్తి వినియోగం ⚡️ - ARIMA తో సమయ శ్రేణి అంచనా | [సమయ శ్రేణి](7-TimeSeries/README.md) | ARIMA తో సమయ శ్రేణి అంచನಾ | [Python](7-TimeSeries/2-ARIMA/README.md) | ఫ్రాన్సెస్కా | -| 23 | ⚡️ ప్రపంచ శక్తి వినియోగం ⚡️ - SVR తో సమయ శ్రేణి అంచనా | [సమయ శ్రేణి](7-TimeSeries/README.md) | సపోర్ట్ వెక్టర్ రిగ్రెషర్ తో సమయ శ్రేణి అంచనా | [Python](7-TimeSeries/3-SVR/README.md) | అనిర్బన్ | -| 24 | రీ ఇన్ఫోర్స్మెంట్ లెర్నింగ్ కు పరిచయం | [రీ ఇన్ఫోర్స్మెంట్ లెర్నింగ్](8-Reinforcement/README.md) | Q-లెర్నింగ్ తో రీ ఇన్ఫోర్స్మెంట్ లెర్నింగ్ పరిచయం | [Python](8-Reinforcement/1-QLearning/README.md) | డిమిట్రీ | -| 25 | పీటర్‌ను నక్క బాగునుండాలని సహాయం చేయండి! 🐺 | [రీ ఇన్ఫోర్స్మెంట్ లెర్నింగ్](8-Reinforcement/README.md) | రీ ఇన్ఫోర్స్మెంట్ లెర్నింగ్ జిమ్ | [Python](8-Reinforcement/2-Gym/README.md) | డిమిట్రీ | -| పోస్ట్స్క్రిప్ట్ | వాస్తవ ప్రపంచ ML సన్నివేశాలు మరియు అప్లికేషన్లు | [డబ్బులో ML](9-Real-World/README.md) | క్లాసిక్ ML యొక్క ఆసక్తికరమైన, విప్లవాత్మక యథార్థ ప్రపంచ అప్లికేషన్లు | [పాఠం](9-Real-World/1-Applications/README.md) | టీం | -| పోస్ట్స్క్రిప్ట్ | RAI డ్యాష్‌బోర్డ్ ఉపయోగించి ML లో మోడల్ డీబగ్గింగ్ | [డబ్బులో ML](9-Real-World/README.md) | రెస్పాన్స్‌బుల్ AI డ్యాష్‌బోర్డ్ భాగాలతో మిషన్ లెర్నింగ్ లో మోడల్ డీబగ్గింగ్ | [పాఠం](9-Real-World/2-Debugging-ML-Models/README.md) | రుధ్ యకుబు | +- ఐచ్ఛిక సప్లిమెంటల్ వీడియో +- వీడియో వాక్ తీరు (కొన్ని పాఠాలు మాత్రమే) +- [ముందు-లెక్చర్ వార్మప్ క్విజ్](https://ff-quizzes.netlify.app/en/ml/) +- వ్రాత పాఠం +- ప్రాజెక్టు-ఆధారిత పాఠాలకు, ప్రాజెక్టును ఎలా నిర్మించాలో దశల వారీ మార్గదర్శకాలు +- జ్ఞాన పరీక్షలు +- ఒక సవాలు +- సప్లిమెంటల్ చదువులు +- అసైన్‌మెంట్ +- [తరువాత-లెక్చర్ క్విజ్](https://ff-quizzes.netlify.app/en/ml/) +> **భాషల గురించి ఒక గమనిక**: ఈ పాఠాలు ప్రధానంగా Pythonలో రాయబడ్డాయి, కానీ చాలావరకు Rలో కూడా అందుబాటులో ఉన్నాయి. R పాఠాన్ని పూర్తి చేయడానికి, `/solution` ఫోల్డర్‌కు వెళ్ళి R పాఠాలను చూడండి. అవి **R మార్క్డౌన్** ఫైల్ ప్రతినిథ్యం వహించే .rmd విస్తరణ కలిగి ఉంటాయి, దీన్ని సులభంగా R లేదా ఇతర భాషల `code chunks` మరియు `YAML header` (PDF వంటి అవుట్‌పుటులను ఎలా ఫార్మాట్ చేయాలనేది మార్గదర్శించడం)ని ఒక `మార్క్డౌన్ డాక్యుమెంట్`లో ఎంబెడ్ చేయడం వంటివిగా నిర్వచించవచ్చు. అందువల్ల, ఇది డేటా సైన్స్ కోసం ఒక గొప్ప రమణీయ రచనా ఫ్రేమ్‌వర్క్‌గా పనిచేస్తుంది, ఎందుకంటే మీరు మీ కోడ్, దాని అవుట్‌పుట్, మరియు మీ ఆలోచనలను మార్క్డౌన్‌లో వ్రాయడానికి అనుమతిస్తుంది. అంతేకాక, R మార్క్డౌన్ డాక్యుమెంట్లను PDF, HTML లేదా Word వంటి అవుట్‌పుట్ ఫార్మాట్స్‌కు రెండర్ చేయవచ్చు. + +> **క్విజ్‌ల గురించి ఒక గమనిక**: అన్ని క్విజ్‌లు [క్విజ్ యాప్ ఫోల్డర్‌లో](../../quiz-app) ఉన్నాయి, మొత్తం 52 క్విజ్‌లు, ప్రతి ఒక్కటిలో మూడు ప్రశ్నలు ఉంటాయి. అవి పాఠాల నుండి లింక్ చేయబడ్డాయి కానీ క్విజ్ యాప్‌ను స్థానికంగా అమలు చేయవచ్చు; స్థానికంగా హోస్ట్ చేయడానికి లేదా Azureలో డిప్లాయ్ చేయడానికి `quiz-app` ఫోల్డర్‌లో ఉన్న సూచనలను అనుసరించండి. + +| పాఠ సంఖ్య | విషయము | పాఠ సమూహం | అభ్యాస లక్ష్యాలు | లింక్ చేసిన పాఠం | రచయిత | +| :--------: | :------------------------------------------------------------: | :----------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------: | +| 01 | యంత్ర అధ్యయనానికి పరిచయం | [పరిచయం](1-Introduction/README.md) | యంత్ర అధ్యయనం పై ఆధారంగా ఉన్న ప్రాథమిక సిద్ధాంతాలను నేర్చుకోండి | [పాఠం](1-Introduction/1-intro-to-ML/README.md) | ముహంమద్ | +| 02 | యంత్ర అధ్యయన చరిత్ర | [పరిచయం](1-Introduction/README.md) | ఈ రంగం పైన ఉన్న చరిత్రను తెలుసుకోండి | [పాఠం](1-Introduction/2-history-of-ML/README.md) | జెన్ మరియు ఎమి | +| 03 | న్యాయం మరియు యంత్ర అధ్యయనం | [పరిచయం](1-Introduction/README.md) | యంత్ర అధ్యయన నమూనాలను నిర్మించేటప్పుడు విద్యార్ధులు పరిగణించవలసిన న్యాయ సంబంధి ముఖ్య తాత్విక సమస్యలు ఏవి? | [పాఠం](1-Introduction/3-fairness/README.md) | టోమోమీ | +| 04 | యంత్ర అధ్యయన సాంకేతికతలు | [పరిచయం](1-Introduction/README.md) | యంత్ర అధ్యయన పరిశోధకులు ML నమూనాలను నిర్మించటానికి ఉపయోగించే సాంకేతికాలు ఏమిటి? | [పాఠం](1-Introduction/4-techniques-of-ML/README.md) | క్రిస్ మరియు జెన్ | +| 05 | రిగ్రెషన్‌కు పరిచయం | [రిగాేషన్](2-Regression/README.md) | రిగ్రెషన్ నమూనాలకు Python మరియు Scikit-learn ఉపయోగించడం ప్రారంభించండి | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | జెన్ • ఎరిక్ వాన్‌జావ్ | +| 06 | ఉత్తర అమెరికా పుంబ్కిన్ ధరలు 🎃 | [రిగాేషన్](2-Regression/README.md) | యంత్ర అధ్యయనానికి తయారీలో డేటాను క్లీన్ చేసి విజువలైజ్ చేయండి | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | జెన్ • ఎరిక్ వాన్‌జావ్ | +| 07 | ఉత్తర అమెరికా పుంబ్కిన్ ధరలు 🎃 | [రిగాేషన్](2-Regression/README.md) | లీనియర్ మరియు పాలి రిగ్రెషన్ నమూనాలను నిర్మించండి | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | జెన్ మరియు డ్మిత్రి • ఎరిక్ వాన్‌జావ్ | +| 08 | ఉత్తర అమెరికా పుంబ్కిన్ ధరలు 🎃 | [రిగాేషన్](2-Regression/README.md) | లాజిస్టిక్ రిగ్రెషన్ నమూనాను నిర్మించండి | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | జెన్ • ఎరిక్ వాన్‌జావ్ | +| 09 | వెబ్ యాప్ 🔌 | [వెబ్ యాప్](3-Web-App/README.md) | మీ శిక్షణ పొందిన నమూనాను ఉపయోగించటానికి వెబ్ యాప్‌ను నిర్మించండి | [Python](3-Web-App/1-Web-App/README.md) | జెన్ | +| 10 | వర్గీకరణకు పరిచయం | [వర్గీకరణ](4-Classification/README.md) | మీ డేటాను శుభ్రపరచి, సిద్ధం చేసి, విజువలైజ్ చేయండి; వర్గీకరణకు పరిచయం | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | జెన్ మరియు క్యాసి • ఎరిక్ వన్‌జావ్ | +| 11 | రుచికరమైన ఆసియన్లు మరియు భారతీయ వంటకాలు 🍜 | [వర్గీకరణ](4-Classification/README.md) | వర్గీకరణ నమూనాలపై పరిచయం | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | జెన్ మరియు క్యాసి • ఎరిక్ వన్‌జావ్ | +| 12 | రుచికరమైన ఆసియన్లు మరియు భారతీయ వంటకాలు 🍜 | [వర్గీకరణ](4-Classification/README.md) | మరిన్ని వర్గీకరణ నమూనాలు | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | జెన్ మరియు క్యాసి • ఎరిక్ వన్‌జావ్ | +| 13 | రుచికరమైన ఆసియన్లు మరియు భారతీయ వంటకాలు 🍜 | [వర్గీకరణ](4-Classification/README.md) | మీ నమూనాను ఉపయోగించి రికమెండర్ వెబ్ యాప్‌ను నిర్మించండి | [Python](4-Classification/4-Applied/README.md) | జెన్ | +| 14 | కస్టరింగ్‌కు పరిచయం | [కస్టరింగ్](5-Clustering/README.md) | మీ డేటాను శుభ్రపరచి, సిద్ధం చేసి, విజువలైజ్ చేయండి; కస్టరింగ్‌కు పరిచయం | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | జెన్ • ఎరిక్ వన్‌జావ్ | +| 15 | నైజీడియన్స్కీ సంగీత రుచులను అన్వేషణ చేయడం 🎧 | [కస్టరింగ్](5-Clustering/README.md) | K-Means కస్టరింగ్ పద్ధతిని అన్వేషించండి | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | జెన్ • ఎరిక్ వన్‌జావ్ | +| 16 | సహజ భాష ప్రాసెసింగ్ కు పరిచయం ☕️ | [సహజ భాష ప్రాసెసింగ్](6-NLP/README.md) | ఒక సరళమైన బాట్‌ను నిర్మించడం ద్వారా NLP యొక్క ప్రాథమికాలను నేర్చుకోండి | [Python](6-NLP/1-Introduction-to-NLP/README.md) | స్టీఫన్ | +| 17 | సాధారణ NLP పనులు ☕️ | [సహజ భాష ప్రాసెసింగ్](6-NLP/README.md) | భాషా నిర్మాణాలతో వ్యవహరించేటప్పుడు అవసరమైన సామాన్య పనులను అర్థం చేసుకోవడం ద్వారా NLP జ్ఞానాన్ని మరింత 심화 చేయండి | [Python](6-NLP/2-Tasks/README.md) | స్టీఫన్ | +| 18 | అనువాదం మరియు భావ విశ్లేషణ ♥️ | [సహజ భాష ప్రాసెసింగ్](6-NLP/README.md) | జేన్ ఆస్టిన్‌తో అనువాదం మరియు భావ విశ్లేషణ | [Python](6-NLP/3-Translation-Sentiment/README.md) | స్టీఫన్ | +| 19 | యూరోప్ రొమాంటిక్ హోటల్స్ ♥️ | [సహజ భాష ప్రాసెసింగ్](6-NLP/README.md) | హోటల్ సమీక్షలతో భావ విశ్లేషణ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | స్టీఫన్ | +| 20 | యూరోప్ రొమాంటిక్ హోటల్స్ ♥️ | [సహజ భాష ప్రాసెసింగ్](6-NLP/README.md) | హోటల్ సమీక్షలతో భావ విశ్లేషణ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | స్టీఫన్ | +| 21 | టైం సిరీస్ ఫార్కాస్టింగ్ కు పరిచయం | [టైం సిరీస్](7-TimeSeries/README.md) | టైమ్ సిరీస్ ఫార్కాస్టింగ్‌కు పరిచయం | [Python](7-TimeSeries/1-Introduction/README.md) | ఫ్రాన్సెస్కా | +| 22 | ⚡️ ప్రపంచ విద్యుత్ వినియోగం ⚡️ - ARIMAతో టైం సిరీస్ ఫార్కాస్టింగ్ | [టైం సిరీస్](7-TimeSeries/README.md) | ARIMAతో టైం సిరీస్ ఫార్కాస్టింగ్ | [Python](7-TimeSeries/2-ARIMA/README.md) | ఫ్రాన్సెస్కా | +| 23 | ⚡️ ప్రపంచ విద్యుత్ వినియోగం ⚡️ - SVRతో టైం సిరీస్ ఫార్కాస్టింగ్ | [టైం సిరీస్](7-TimeSeries/README.md) | సపోర్ట్ వెక్టర్ రిగ్రెషర్‌తో టైం సిరీస్ ఫార్కాస్టింగ్ | [Python](7-TimeSeries/3-SVR/README.md) | అనిర్బన్ | +| 24 | రీన్ఫోర్స్‌మెంట్ లెర్నింగ్‌కు పరిచయం | [రీన్ఫోర్స్‌మెంట్ లెర్నింగ్](8-Reinforcement/README.md) | Q-లెర్నింగ్‌తో రీన్ఫోర్స్‌మెంట్ లెర్నింగ్‌కు పరిచయం | [Python](8-Reinforcement/1-QLearning/README.md) | డ్మిత్రి | +| 25 | పీటర్‌ను నక్క నుంచి తప్పించే పనిలో సహాయం! 🐺 | [రీన్ఫోర్స్‌మెంట్ లెర్నింగ్](8-Reinforcement/README.md) | రీన్ఫోర్స్‌మెంట్ లెర్నింగ్ జిమ్ | [Python](8-Reinforcement/2-Gym/README.md) | డ్మిత్రి | +| పోస్ట్స్క్రిప్ట్ | వాస్తవ ప్రపంచం ML పరిస్థితులు మరియు అన్వయాలు | [ML వనరు](9-Real-World/README.md) | శ్రేణి ML యొక్క ఆసక్తికరమైన మరియు వాస్తవ ప్రపంచ అన్వయాలు | [పాఠం](9-Real-World/1-Applications/README.md) | జట్టు | +| పోస్ట్స్క్రిప్ట్ | RAI డ్యాష్‌బోర్డ్ ఉపయోగించి MLలో నమూనా డిబగ్గింగ్ | [ML వనరు](9-Real-World/README.md) | రెస్పాన్సిబుల్ AI డ్యాష్‌బోర్డ్ భాగాలను ఉపయోగించి మెషిన్ లెర్నింగ్‌లో నమూనా డిబగ్గింగ్ | [పాఠం](9-Real-World/2-Debugging-ML-Models/README.md) | రుత్ యకుబు | > [మా Microsoft Learn సేకరణలో ఈ కోర్సుకు సంబంధించిన అన్ని అదనపు వనరులను కనుగొనండి](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## ఆఫ్‌లైన్ యాక్సెస్ -[Docsify](https://docsify.js.org/#/) ఉపయోగించి మీరు ఈ డాక్యుమెంటేషన్‌ను ఆఫ్‌లైన్‌లో నడపవచ్చు. ఈ రెపోను ఫోর্ক్ చేసి, మీ లోకల్ మెషీన్‌లో [Docsifyను ఇన్స్టాల్](https://docsify.js.org/#/quickstart) చేసుకొని, ఆ తరువాత ఈ రెపో యొక్క రూట్ ఫోల్డర్‌లో `docsify serve` టైపు చేయండి. వెబ్‌సైట్ మీ లోకల్‌హోస్ట్‌పై పోర్టు 3000లో అందుబాటులో ఉంటుంది: `localhost:3000`. +మీరు ఈ డాక్యుమెంటేషన్‌ను ఆఫ్‌లైన్‌లో [Docsify](https://docsify.js.org/#/) ఉపయోగించి నడిపించవచ్చు. ఈ రిపోను Fork చేసి, మీ స్థానిక యంత్రంలో [Docsifyని ఇన్‌స్టాల్](https://docsify.js.org/#/quickstart) చేసుకుని, అప్పుడు ఈ రిపో యొక్క రూట్ ఫోల్డర్‌లో `docsify serve` అని టైపు చేయండి. వెబ్‌సైట్ 3000 పోర్టులో మీ స్థానిక యంత్రం: `localhost:3000` పైన సేవ్ అవుతుంది. -## PDF లు +## PDFs -లింకులతో కూడిన పాఠ్యক্রমం PDFని [ఇక్కడ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) చూడండి. +లింకులతో కూడిన పాఠ్యాంశపు PDFని [ఇక్కడ](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) చూడండి. -## 🎒 ఇతర కోర్సులు +## 🎒 ఇతర కోర్సులు -మా బృందం ఇతర కోర్సులను తయారు చేస్తుంది! చెక్ చేయండి: +మా జట్టు ఇతర కోర్సులు తయారు చేస్తుంది! చూడండి: ### LangChain @@ -185,54 +185,54 @@ ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ప్రారంభికుల కోసం MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ప్రారంభికుల కోసం AI ఏజెంట్స్](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series -[![ஆரம்பக்காரர்களுக்கான உருவாக்கும் AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![உருவாக்கும் AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![உருவாக்கும் AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![உருவாக்கும் AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### జనరేటివ్ AI సిరీస్ +[![ప్రారంభికుల కోసం జనరేటివ్ AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![జనరేటివ్ AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![జనరేటివ్ AI (జావా)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![జనరేటివ్ AI (జావాస్క్రిప్ట్)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### ప్రధాన అభ్యాసం -[![ஆரம்பக்காரர்களுக்கான ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![ஆரம்பக்காரர்களுக்கான డేటా సైన్స్](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![ஆரம்பக்கారர்களுக்கான AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![ஆரம்பக்காரர்களுக்கான సైబర్ సెక్యూరిటీ](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![ஆரம்பக்காரர்களுக்கான వెబ్ డెవలప్‌మెంట్](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![ஆரம்பக்காரர்களுக்கான IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![ஆரம்பக்காரர்களுக்கான XR అభివృద్ధి](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### ప్రాథమిక అధ్యయనం +[![ప్రారంభికుల కోసం ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![ప్రారంభికుల కోసం డేటా సైన్స్](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![ప్రారంభికులకోసం AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![ప్రారంభికుల కోసం సైబర్సెక్యూరిటీ](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![ప్రారంభికుల కోసం వెబ్ డెవ్](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![ప్రారంభికుల కోసం IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![ప్రారంభికుల కోసం XR అభివృద్ధి](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### కోపైలట్ సిరీస్ -[![AI కలిసి ప్రోగ్రామింగ్ కొరకు CoPilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET కొరకు CoPilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![CoPilot ప్రయాణం](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![AI జత ప్రోగ్రామింగ్ కోసం కోపైలట్](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![C#/.NET కోసం కోపైలట్](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![కోపైలట్ అడ్వెంచర్](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## సహాయం పొందటానికి +## సహాయం పొందడం -మీరు చిక్కుకుపోతే లేదా AI అనువర్తనాలు అభివృద్ధి గురించి ఏవైనా ప్రశ్నలు ఉంటే, MCP గురించి చర్చల్లో పాల్గొనే విద్యార్థులు మరియు అనుభవజ్ఞులైన డెవలపర్లతో చేరండి. ఇది ఒక సహాయక సమాజం, ఇక్కడ ప్రశ్నలు స్వాగతించబడతాయి మరియు జ్ఞానం స్వేచ్ఛగా పంచబడుతుంది. +AI అప్లికేషన్‌లను నిర్మించడంలో మీరు ఎక్కడైనా చిక్కుకుంటే లేదా ప్రశ్నలు ఉంటే, MCP గురించి చర్చలలో సహచర విద్యార్థులు మరియు అనుభవజ్ఞులైన డెవలపర్లు కలుసుకోవండి. ఇది ప్రశ్నలు స్వాగతం చేయబడే మరియు జ్ఞానం స్వేచ్ఛగా పంచుకునే మద్దతుతో కూడిన సమాజం. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -మీరు ఉత్పత్తి ప్రతిస్పందన లేదా అభివృద్ధి సమయంలో లోపాలు ఉంటే సందర్శించండి: +మీకు ఉత్పత్తి ప్రతిప్రత్యయాలు లేదా లోపాలు ఉంటే, నిర్మాణ సమయంలో సందర్శించండి: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## అదనపు అభ్యాస చిట్కాలు +## అదనపు నేర్చుకునే సూచనలు -- ప్రతి పాఠం తర్వాత నోట్బుక్లను సవివరంగా సమీక్షించండి. -- మీ స్వంతంగా అల్గోరిథంలను అమలు చేయడం సాధన చేయండి. -- నేర్చుకున్న కాన్సెప్ట్‌లను ఉపయోగించి వాస్తవ ప్రపంచ డేటాసెట్‌లను అన్వేషించండి. +- ప్రతి పాఠం తరువాత నోట్బుక్‌లను సమీక్షించండి, బెటర్ అవగాహన కోసం. +- స్వయంగా అల్గోరిథములను ప్రయత్నించి అమలు చేయండి. +- నేర్చుకున్న సూత్రాలను ఉపయోగించి వాస్తవ ప్రపంచ డేటా సెట్‌లను అన్వేషించండి. --- -**అత్యవసర నోటీసు**: -ఈ పత్రాన్ని AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ద్వారా అనువదించారు. మనం ఖచ్చితత్వానికి ప్రయత్నించినప్పటికీ, ఆటోమేటిక్ అనువాదాలలో పొరపాట్లు లేదా తప్పుడు వివరాలు ఉండొచ్చు. మూల పత్రాన్ని దాని స్వదేశీ భాషలోనే అధికారిక మూలంగా పరిగణించాలి. కీలకమైన సమాచారం కోసం, నైపుణ్యమున్న మనుష్య అనువాదాన్ని సూచించబడుతుంది. ఈ అనువాదం వాడుకోవడం వల్ల ఏర్పడిన ఏ విధమైన తప్పుబాటులు లేదా తప్పుదారులు గురించి మేము జవాబుదారులు కారు. +**ప్రత్యేక నివేదిక**: +ఈ డాక్యుమెంట్‌ను AI అనువాద సేవ [Co-op Translator](https://github.com/Azure/co-op-translator) ఉపయోగించి అనువదించబడి ఉంది. మేము సరిగా ఉండేందుకు ప్రయత్నించినప్పటికీ, ఆటోమేటెడ్ అనువాదాల్లో తప్పులు లేదా లోపాలు ఉండవచ్చు. మూల డాక్యుమెంట్ దాని స్థానిక భాషలో అధికారిక వనరుగా పరిగణించాలి. ముఖ్యమైన సమాచారం కోసం, ప్రొఫెషనల్ మానవ అనువాదం సిఫార్సు చేయబడుతుంది. ఈ అనువాదం ఉపయోగంతో పుట్టే ఏ అలమిటీలు లేదా తప్పు అర్థాలు తిరుగుబాటు జవాబుదారుడిగా మేము ఉండము. \ No newline at end of file diff --git a/translations/th/.co-op-translator.json b/translations/th/.co-op-translator.json index 9eed094c0..a7333b475 100644 --- a/translations/th/.co-op-translator.json +++ b/translations/th/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "th" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:45:41+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:29:22+00:00", "source_file": "README.md", "language_code": "th" }, diff --git a/translations/th/README.md b/translations/th/README.md index bdd4e7106..dd0ddb542 100644 --- a/translations/th/README.md +++ b/translations/th/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 การสนับสนุนหลายภาษา +### 🌐 การรองรับหลายภาษา -#### สนับสนุนผ่าน GitHub Action (อัตโนมัติและอัปเดตอยู่เสมอ) +#### รองรับผ่าน GitHub Action (อัตโนมัติ & อัปเดตเสมอ) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](./README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](./README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **ชอบที่จะโคลนในเครื่องมั้ย?** +> **ชอบโคลนลงเครื่องไหม?** > -> โครงการนี้มีการแปลในมากกว่า 50 ภาษา ซึ่งจะเพิ่มขนาดไฟล์ดาวน์โหลดอย่างมาก หากต้องการโคลนโดยไม่รวมการแปล ให้ใช้ sparse checkout: +> ที่เก็บนี้มีการแปลภาษา 50+ ภาษา ซึ่งเพิ่มขนาดดาวน์โหลดอย่างมาก หากต้องการโคลนโดยไม่รวมการแปล ให้ใช้ sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,146 +33,146 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> นี้จะให้ทุกอย่างที่คุณต้องการเพื่อเรียนจบหลักสูตรด้วยการดาวน์โหลดที่รวดเร็วมากขึ้น +> นี่จะให้ทุกสิ่งที่คุณต้องการเพื่อทำคอร์สเสร็จได้อย่างรวดเร็วขึ้นมาก #### เข้าร่วมชุมชนของเรา [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -เรามีซีรีส์เรียนรู้กับ AI บน Discord ดำเนินการอยู่ เรียนรู้เพิ่มเติมและเข้าร่วมกับเราที่ [Learn with AI Series](https://aka.ms/learnwithai/discord) ตั้งแต่วันที่ 18 - 30 กันยายน 2025 คุณจะได้รับเคล็ดลับและกลเม็ดการใช้ GitHub Copilot สำหรับด้าน Data Science +เรามีซีรีส์ Discord เรียนรู้กับ AI ดำเนินอยู่ เรียนรู้เพิ่มเติมและเข้าร่วมกับเราได้ที่ [Learn with AI Series](https://aka.ms/learnwithai/discord) ระหว่างวันที่ 18 - 30 กันยายน 2025 คุณจะได้รับเคล็ดลับและเทคนิคการใช้ GitHub Copilot สำหรับวิทยาศาสตร์ข้อมูล ![Learn with AI series](../../translated_images/th/3.9b58fd8d6c373c20.webp) # การเรียนรู้เครื่องสำหรับผู้เริ่มต้น - หลักสูตร -> 🌍 เที่ยวรอบโลกในขณะที่เราค้นพบการเรียนรู้เครื่องผ่านวัฒนธรรมโลก 🌍 +> 🌍 เดินทางรอบโลกไปกับการสำรวจการเรียนรู้เครื่องผ่านวัฒนธรรมโลก 🌍 -Cloud Advocates ของ Microsoft มีความยินดีที่จะเสนอกหลักสูตร 12 สัปดาห์ 26 บทเรียนเกี่ยวกับ **Machine Learning** ในหลักสูตรนี้ คุณจะได้เรียนรู้เกี่ยวกับบางสิ่งที่เรียกว่า **classic machine learning** ใช้ Scikit-learn เป็นหลักและหลีกเลี่ยงการเรียนรู้เชิงลึกซึ่งมีการสอนในหลักสูตร [AI for Beginners ของเรา](https://aka.ms/ai4beginners) จับคู่บทเรียนเหล่านี้กับหลักสูตร ['Data Science for Beginners' ของเรา](https://aka.ms/ds4beginners) ด้วย! +Cloud Advocates ที่ Microsoft ยินดีนำเสนอหลักสูตร 12 สัปดาห์ 26 บทเรียนที่เกี่ยวกับ **การเรียนรู้เครื่อง** ในหลักสูตรนี้คุณจะได้เรียนรู้เกี่ยวกับสิ่งที่บางครั้งเรียกว่า **การเรียนรู้เครื่องแบบคลาสสิก** โดยใช้เป็นหลักไลบรารี Scikit-learn และหลีกเลี่ยงการเรียนรู้เชิงลึก ซึ่งครอบคลุมในหลักสูตร [AI สำหรับผู้เริ่มต้น](https://aka.ms/ai4beginners) ของเรา จับคู่บทเรียนเหล่านี้กับหลักสูตร ['วิทยาศาสตร์ข้อมูลสำหรับผู้เริ่มต้น'](https://aka.ms/ds4beginners) ของเราเช่นกัน! -เดินทางไปกับเราไปรอบโลกขณะที่เราประยุกต์ใช้เทคนิคคลาสสิกเหล่านี้กับข้อมูลจากหลายพื้นที่ของโลก แต่ละบทเรียนมีแบบทดสอบก่อนและหลังเรียน คำแนะนำเป็นลายลักษณ์อักษรเพื่อทำบทเรียนให้เสร็จสมบูรณ์ โซลูชัน งานมอบหมาย และอื่นๆ การสอนโดยมีโครงการเป็นฐานช่วยให้คุณเรียนรู้ไปพร้อมกับการสร้าง ซึ่งเป็นวิธีพิสูจน์แล้วว่าสำหรับการเรียนรู้ทักษะใหม่จะ 'ติด' +เดินทางกับเราไปรอบโลกขณะที่เรานำเทคนิคคลาสสิกเหล่านี้ไปใช้กับข้อมูลจากหลายภูมิภาคของโลก ในแต่ละบทเรียนจะมีแบบทดสอบก่อนและหลังบทเรียน คำแนะนำเป็นลายลักษณ์อักษรในการทำบทเรียนให้เสร็จสมบูรณ์ ตัวอย่างโค้ด การมอบหมาย และอื่นๆ แนวทางการสอนแบบโครงการช่วยให้คุณเรียนรู้ไปพร้อมกับการสร้างงานจริง ซึ่งเป็นวิธีที่พิสูจน์แล้วว่าสำหรับทักษะใหม่จะ "ติดตัว" **✍️ ขอขอบคุณอย่างจริงใจต่อผู้เขียนของเรา** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu และ Amy Boyd -**🎨 ขอบคุณนักวาดภาพประกอบ** Tomomi Imura, Dasani Madipalli และ Jen Looper +**🎨 ขอบคุณด้วยสำหรับนักวาดภาพประกอบ** Tomomi Imura, Dasani Madipalli และ Jen Looper -**🙏 ขอบคุณเป็นพิเศษ 🙏 ต่อตัวแทนนักศึกษาของ Microsoft ผู้เขียน ผู้ทบทวน และผู้ร่วมเนื้อหา** โดยเฉพาะอย่างยิ่ง Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila และ Snigdha Agarwal +**🙏 ขอบคุณพิเศษ 🙏 ต่อ Microsoft Student Ambassador ผู้แต่ง ทบทวน และช่วยเติมเนื้อหา** โดยเฉพาะ Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila และ Snigdha Agarwal -**🤩 ขอบคุณพิเศษสำหรับ Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi และ Vidushi Gupta สำหรับบทเรียน R ของเรา!** +**🤩 ขอบคุณเพิ่มเติมสำหรับ Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi และ Vidushi Gupta สำหรับบทเรียน R ของเรา!** -# เริ่มต้น +# การเริ่มต้น ทำตามขั้นตอนเหล่านี้: -1. **Fork โครงการนี้**: คลิกที่ปุ่ม "Fork" ที่มุมบนขวาของหน้านี้ -2. **โคลนโครงการนี้**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **Fork ที่เก็บนี้**: คลิกที่ปุ่ม "Fork" ที่มุมขวาบนของหน้านี้ +2. **โคลนที่เก็บ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [ค้นหาทรัพยากรเพิ่มเติมทั้งหมดสำหรับหลักสูตรนี้ในคอลเลกชัน Microsoft Learn ของเรา](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [ค้นหาทรัพยากรเพิ่มเติมสำหรับคอร์สนี้ในคอลเลกชัน Microsoft Learn ของเรา](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **ต้องการความช่วยเหลือ?** ตรวจสอบ [คู่มือแก้ปัญหา](TROUBLESHOOTING.md) สำหรับวิธีแก้ปัญหาทั่วไปเกี่ยวกับการติดตั้ง การตั้งค่า และการรันบทเรียน +> 🔧 **ต้องการความช่วยเหลือ?** ตรวจสอบ [คู่มือแก้ไขปัญหา](TROUBLESHOOTING.md) สำหรับวิธีแก้ปัญหาที่พบบ่อยเกี่ยวกับการติดตั้ง, การตั้งค่า และการรันบทเรียน -**[นักเรียน](https://aka.ms/student-page)** เพื่อใช้หลักสูตรนี้ ให้ฟอร์กรีโพทั้งหมดไปยังบัญชี GitHub ของคุณเองและทำแบบฝึกหัดด้วยตัวเองหรือกับกลุ่ม: +**[นักเรียน](https://aka.ms/student-page)** ในการใช้หลักสูตรนี้ ให้ fork รีโปทั้งหมดไปยังบัญชี GitHub ของคุณเอง และทำแบบฝึกหัดด้วยตัวเองหรือเป็นกลุ่ม: -- เริ่มด้วยแบบทดสอบก่อนบรรยาย -- อ่านบทเรียนและทำกิจกรรมให้เสร็จสมบูรณ์ หยุดเพื่อสะท้อนความรู้ในแต่ละจุดตรวจสอบความเข้าใจ -- พยายามสร้างโครงการโดยเข้าใจบทเรียนแทนการรันโค้ดตัวอย่าง อย่างไรก็ตาม โค้ดนั้นมีอยู่ในโฟลเดอร์ `/solution` ในแต่ละบทเรียนที่เน้นโครงการ +- เริ่มต้นด้วยแบบทดสอบก่อนบรรยาย +- อ่านบรรยายและทำกิจกรรมหยุดคิดและทบทวนในแต่ละจุดตรวจสอบความเข้าใจ +- พยายามสร้างโครงการโดยเข้าใจบทเรียนแทนการรันโค้ดตัวอย่าง อย่างไรก็ตาม โค้ดตัวอย่างนั้นมีอยู่ในโฟลเดอร์ `/solution` ในบทเรียนที่เน้นโครงการแต่ละบท - ทำแบบทดสอบหลังบรรยาย -- ทำความท้าทายให้เสร็จ -- ทำงานมอบหมายให้เสร็จ -- หลังจากจบบทเรียนแต่ละกลุ่ม ให้ไปที่ [กระดานอภิปราย](https://github.com/microsoft/ML-For-Beginners/discussions) และ "พูดออกเสียง" โดยกรอกแบบประเมิน PAT ที่เหมาะสม 'PAT' คือเครื่องมือประเมินความก้าวหน้าที่คุณกรอกเพื่อส่งเสริมการเรียนรู้ของคุณ คุณยังสามารถโต้ตอบกับ PAT ของคนอื่นเพื่อเรียนรู้ไปด้วยกัน +- ทำความท้าทาย +- ทำการบ้าน +- หลังจากจบบทเรียนชุดหนึ่ง เยี่ยมชม [กระดานอภิปราย](https://github.com/microsoft/ML-For-Beginners/discussions) และ "เรียนรู้ออกเสียง" โดยกรอก PAT rubric ที่เหมาะสม 'PAT' คือเครื่องมือประเมินความก้าวหน้าที่คุณกรอกเพื่อเสริมการเรียนรู้ คุณยังสามารถตอบสนองต่อ PAT ของคนอื่นเพื่อให้เราเรียนรู้ร่วมกัน -> สำหรับการศึกษาต่อ เราแนะนำให้ทำตามโมดูลและเส้นทางการเรียนรู้เหล่านี้ของ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) +> สำหรับการศึกษาต่อ เราแนะนำให้ติดตามโมดูลและเส้นทางการเรียนรู้ [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) -**คุณครู** เรามี [คำแนะนำบางส่วน](for-teachers.md) เกี่ยวกับวิธีการใช้หลักสูตรนี้ +**สำหรับครูผู้สอน** เรามี [คำแนะนำบางส่วน](for-teachers.md) ว่าจะใช้งานหลักสูตรนี้อย่างไร --- ## วิดีโอสอน -บทเรียนบางบทมีในรูปแบบวิดีโอสั้น คุณสามารถหาวิดีโอทั้งหมดนี้ในบทเรียน หรือ ที่ [เพลย์ลิสต์ ML for Beginners ในช่อง Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) โดยคลิกที่ภาพด้านล่าง +บทเรียนบางบทมีวิดีโอสั้นๆ คุณสามารถหาบทเรียนเหล่านี้ได้ในแต่ละบท หรือบน [เพลย์ลิสต์ ML for Beginners บนช่อง Microsoft Developer YouTube](https://aka.ms/ml-beginners-videos) โดยคลิกที่ภาพด้านล่าง [![ML for beginners banner](../../translated_images/th/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## รู้จักทีมงาน +## แนะนำทีมงาน [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**GIF โดย** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif โดย** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอเกี่ยวกับโครงการและทีมผู้สร้าง! +> 🎥 คลิกที่ภาพด้านบนเพื่อดูวิดีโอเกี่ยวกับโครงการและทีมงานผู้สร้าง! --- -## วิธีการสอน +## แนวทางการสอน -เราเลือกหลักการสอน 2 ประการขณะสร้างหลักสูตรนี้: การทำให้เป็นแบบ **project-based** ที่เน้นปฏิบัติ และการมี **แบบทดสอบบ่อยๆ** นอกจากนี้ หลักสูตรนี้มี **ธีม** ร่วมกันเพื่อให้มีความต่อเนื่อง +เราเลือกใช้สองหลักการทางการสอนเมื่อสร้างหลักสูตรนี้: การทำให้เป็น **โครงการปฏิบัติจริง** และการมี **แบบทดสอบบ่อยครั้ง** นอกจากนี้หลักสูตรนี้ยังมี **ธีม** ร่วมเพื่อความสอดคล้อง -โดยการทำเนื้อหาให้สอดคล้องกับโครงการ เทคนิคนี้ทำให้นักเรียนมีส่วนร่วมมากขึ้นและช่วยเสริมการจดจำแนวคิด นอกจากนี้ แบบทดสอบที่ไม่มีแรงกดดันก่อนเรียนช่วยกำหนดเจตนารมณ์ของนักเรียนในการเรียนรู้หัวข้อ ขณะที่แบบทดสอบหลังเรียนช่วยเสริมการจำอีกครั้ง หลักสูตรนี้ออกแบบมาให้ยืดหยุ่นและสนุก และสามารถเรียนทั้งหลักสูตรหรือเลือกบางส่วนได้ โครงการเริ่มเล็กและซับซ้อนเพิ่มขึ้นเรื่อยๆ ภายใน 12 สัปดาห์ หลักสูตรนี้ยังรวมเนื้อหาด้านโลกจริงเกี่ยวกับแอปพลิเคชันของ ML ซึ่งสามารถใช้เป็นเครดิตพิเศษหรือฐานสำหรับการอภิปราย +โดยการทำให้เนื้อหาสอดคล้องกับโครงการจะช่วยกระตุ้นให้นักเรียนสนุกกับการเรียน และเพิ่มความจำในแนวคิด นอกจากนี้ แบบทดสอบไม่กดดันก่อนชั้นเรียนจะช่วยตั้งใจของนักเรียนในการเรียนรู้หัวข้อ และแบบทดสอบที่สองหลังเรียนยังช่วยย้ำความจำ หลักสูตรนี้ถูกออกแบบให้ยืดหยุ่นและสนุกสนาน สามารถเรียนทั้งหมดหรือบางส่วนได้ โครงการเริ่มจากง่ายและเพิ่มความซับซ้อนขึ้นจนถึงสิ้นสุดรอบ 12 สัปดาห์ หลักสูตรนี้ยังมีตอนท้ายเกี่ยวกับการประยุกต์ใช้ในโลกจริงของ ML ซึ่งสามารถใช้เป็นเครดิตพิเศษหรือฐานการอภิปราย -> ค้นหา [จรรยาบรรณการปฏิบัติ](CODE_OF_CONDUCT.md), [การมีส่วนร่วม](CONTRIBUTING.md), [การแปล](..), และ [คู่มือแก้ปัญหา](TROUBLESHOOTING.md) ของเรา เราขอต้อนรับคำติชมที่สร้างสรรค์ของคุณ! +> ค้นหา [จรรยาบรรณ](CODE_OF_CONDUCT.md), [การมีส่วนร่วม](CONTRIBUTING.md), [การแปล](..), และ [แก้ไขปัญหา](TROUBLESHOOTING.md) ของเรา เรายินดีรับฟังคำติชมเชิงสร้างสรรค์ของคุณ! ## แต่ละบทเรียนประกอบด้วย -- สเก็ตช์โน้ต (ไม่บังคับ) -- วิดีโอเสริม (ไม่บังคับ) -- วิดีโอสอน (เฉพาะบทเรียนบางบท) -- [แบบทดสอบวอร์มอัพก่อนบรรยาย](https://ff-quizzes.netlify.app/en/ml/) -- บทเรียนลายลักษณ์อักษร -- สำหรับบทเรียนแบบโปรเจค มีคำแนะนำทีละขั้นตอนในการสร้างโปรเจค -- การตรวจสอบความรู้ +- สเก็ตช์โน้ต (ถ้ามี) +- วิดีโอเสริม (ถ้ามี) +- วิดีโอสอน (บางบทเรียนเท่านั้น) +- [แบบทดสอบอบอุ่นก่อนบรรยาย](https://ff-quizzes.netlify.app/en/ml/) +- บทเรียนเป็นลายลักษณ์อักษร +- สำหรับบทเรียนโครงการ มีคำแนะนำทีละขั้นตอนการสร้างโครงการ +- ตรวจสอบความรู้ - ความท้าทาย - การอ่านเสริม -- งานมอบหมาย +- การบ้าน - [แบบทดสอบหลังบรรยาย](https://ff-quizzes.netlify.app/en/ml/) +> **บันทึกเกี่ยวกับภาษา**: บทเรียนเหล่านี้ส่วนใหญ่เขียนด้วย Python แต่หลายบทเรียนก็มีในภาษา R ด้วย หากต้องการทำบทเรียน R ให้ไปที่โฟลเดอร์ `/solution` และหาบทเรียนในภาษา R จะมีนามสกุล .rmd ซึ่งหมายถึงไฟล์ **R Markdown** ที่สามารถนิยามได้ง่ายๆ ว่าเป็นการฝัง `code chunks` (ของภาษา R หรือภาษาอื่น ๆ) กับ `YAML header` (ที่กำหนดวิธีการจัดรูปแบบผลลัพธ์ เช่น PDF) ลงใน `Markdown document` ดังนั้นจึงเป็นกรอบการเขียนที่ดีเยี่ยมสำหรับการทำวิทยาศาสตร์ข้อมูล เพราะช่วยให้คุณสามารถรวมโค้ดของคุณ ผลลัพธ์ของโค้ด และความคิดของคุณโดยการเขียนทั้งหมดในรูปแบบ Markdown ยิ่งไปกว่านั้น เอกสาร R Markdown สามารถแปลงเป็นรูปแบบผลลัพธ์ เช่น PDF, HTML หรือ Word ได้ + +> **บันทึกเกี่ยวกับแบบทดสอบ**: แบบทดสอบทั้งหมดจะอยู่ใน [โฟลเดอร์ Quiz App](../../quiz-app) ซึ่งมีทั้งหมด 52 แบบทดสอบ แต่ละแบบมีสามคำถาม สามารถเข้าถึงได้จากบทเรียนต่าง ๆ แต่แอปแบบทดสอบนี้สามารถรันในเครื่องของคุณได้โดยตรง ให้ทำตามคำแนะนำในโฟลเดอร์ `quiz-app` เพื่อโฮสต์หรือดีพลอยไปยัง Azure + +| หมายเลขบทเรียน | หัวข้อ | กลุ่มบทเรียน | วัตถุประสงค์การเรียนรู้ | บทเรียนที่เชื่อมโยง | ผู้เขียน | +| :--------------: | :------------------------------------------------------------: | :-----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------: | +| 01 | แนะนำการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เรียนรู้แนวคิดพื้นฐานเบื้องหลังการเรียนรู้ของเครื่อง | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | ประวัติของการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เรียนรู้ประวัติพื้นฐานของสาขานี้ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | ความยุติธรรมและการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | อะไรคือปัญหาปรัชญาที่สำคัญเกี่ยวกับความยุติธรรมที่นักเรียนควรพิจารณาเมื่อสร้างและใช้โมเดล ML | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | เทคนิคสำหรับการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | นักวิจัย ML ใช้เทคนิคอะไรในการสร้างโมเดล ML? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | แนะนำการถดถอย | [Regression](2-Regression/README.md) | เริ่มต้นกับ Python และ Scikit-learn สำหรับโมเดลถดถอย | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](2-Regression/README.md) | สร้างภาพและทำความสะอาดข้อมูลเพื่อเตรียมพร้อมสำหรับ ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](2-Regression/README.md) | สร้างโมเดลถดถอยเชิงเส้นและถดถอยหลายพจน์ | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](2-Regression/README.md) | สร้างโมเดลถดถอยลอจิสติก | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | เว็บแอป 🔌 | [Web App](3-Web-App/README.md) | สร้างเว็บแอปเพื่อใช้โมเดลที่ฝึกไว้ | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | แนะนำการจัดหมวดหมู่ | [Classification](4-Classification/README.md) | ทำความสะอาด เตรียม และแสดงภาพข้อมูลของคุณ เป็นการแนะนำการจัดหมวดหมู่ | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | อาหารเอเชียและอินเดียอร่อย ๆ 🍜 | [Classification](4-Classification/README.md) | แนะนำเครื่องมือจัดหมวดหมู่ | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | อาหารเอเชียและอินเดียอร่อย ๆ 🍜 | [Classification](4-Classification/README.md) | เครื่องมือจัดหมวดหมู่เพิ่มเติม | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | อาหารเอเชียและอินเดียอร่อย ๆ 🍜 | [Classification](4-Classification/README.md) | สร้างเว็บแอปแนะนำโดยใช้โมเดลของคุณ | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | แนะนำการจัดกลุ่ม | [Clustering](5-Clustering/README.md) | ทำความสะอาด เตรียม และแสดงภาพข้อมูลของคุณ แนะนำการจัดกลุ่ม | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | สำรวจรสนิยมเพลงนีจีเรีย 🎧 | [Clustering](5-Clustering/README.md) | สำรวจวิธีการจัดกลุ่ม K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | แนะนำการประมวลผลภาษาธรรมชาติ ☕️ | [Natural language processing](6-NLP/README.md) | เรียนรู้พื้นฐานการประมวลผลภาษาธรรมชาติโดยการสร้างบอทง่าย ๆ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | งาน NLP ทั่วไป ☕️ | [Natural language processing](6-NLP/README.md) | เสริมความรู้เรื่อง NLP โดยเข้าใจงานทั่วไปที่ต้องทำเมื่อทำงานกับโครงสร้างภาษา | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | การแปลและการวิเคราะห์ความรู้สึก ♥️ | [Natural language processing](6-NLP/README.md) | การแปลและการวิเคราะห์ความรู้สึกด้วย Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | โรงแรมโรแมนติกในยุโรป ♥️ | [Natural language processing](6-NLP/README.md) | วิเคราะห์ความรู้สึกด้วยรีวิวโรงแรม 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | โรงแรมโรแมนติกในยุโรป ♥️ | [Natural language processing](6-NLP/README.md) | วิเคราะห์ความรู้สึกด้วยรีวิวโรงแรม 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | แนะนำการพยากรณ์ชุดข้อมูลตามเวลา | [Time series](7-TimeSeries/README.md) | แนะนำการพยากรณ์ชุดข้อมูลตามเวลา | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ การใช้พลังงานโลก ⚡️ - การพยากรณ์ชุดข้อมูลตามเวลาด้วย ARIMA | [Time series](7-TimeSeries/README.md) | การพยากรณ์ชุดข้อมูลตามเวลาด้วยโมเดล ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ การใช้พลังงานโลก ⚡️ - การพยากรณ์ชุดข้อมูลตามเวลาด้วย SVR | [Time series](7-TimeSeries/README.md) | การพยากรณ์ชุดข้อมูลตามเวลาด้วย Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | แนะนำการเรียนรู้เสริมแรง | [Reinforcement learning](8-Reinforcement/README.md) | แนะนำการเรียนรู้เสริมแรงด้วย Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | ช่วยปีเตอร์หลบหมาป่า! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | การเรียนรู้เสริมแรง Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| บทส่งท้าย | กรณีศึกษาและแอปพลิเคชัน ML ในโลกจริง | [ML in the Wild](9-Real-World/README.md) | แอปพลิเคชันที่น่าสนใจและเปิดเผยของ ML แบบคลาสสิกในโลกจริง | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| บทส่งท้าย | การดีบักโมเดล ML ด้วยแดชบอร์ด RAI | [ML in the Wild](9-Real-World/README.md) | การดีบักโมเดล ML ด้วยส่วนประกอบแดชบอร์ด Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [ค้นหาทรัพยากรเพิ่มเติมทั้งหมดสำหรับหลักสูตรนี้ในคอลเลกชัน Microsoft Learn ของเรา](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## การใช้งานแบบออฟไลน์ -> **หมายเหตุเกี่ยวกับภาษา**: บทเรียนเหล่านี้เขียนเป็นหลักในภาษา Python แต่หลายบทเรียนมีให้ใน R ด้วย เพื่อทำบทเรียน R ให้ไปที่โฟลเดอร์ `/solution` และมองหาบทเรียน R ซึ่งจะมีนามสกุล .rmd ซึ่งหมายถึง **R Markdown** ที่เป็นการผสมผสานของ `code chunks` (ของ R หรือภาษาอื่นๆ) และ `YAML header` (ที่กำหนดการฟอร์แมตผลลัพธ์ เช่น PDF) ภายในเอกสาร Markdown ด้วยเหตุนี้ R Markdown จึงเป็นกรอบการเขียนตัวอย่างที่ยอดเยี่ยมสำหรับ data science เพราะช่วยให้คุณรวมโค้ด ผลลัพธ์ และความคิดของคุณโดยเขียนลงใน Markdown นอกจากนี้ เอกสาร R Markdown ยังสามารถแปลงเป็นรูปแบบผลลัพธ์ เช่น PDF, HTML หรือ Word ได้อีกด้วย -> **หมายเหตุเกี่ยวกับแบบทดสอบ**: แบบทดสอบทั้งหมดถูกจัดเก็บอยู่ใน [โฟลเดอร์ Quiz App](../../quiz-app) รวมทั้งหมด 52 แบบทดสอบ แต่ละแบบประกอบด้วยสามคำถาม สามารถเข้าถึงได้จากบทเรียนต่างๆ แต่แอปแบบทดสอบสามารถรันได้ในเครื่อง; ทำตามคำแนะนำในโฟลเดอร์ `quiz-app` เพื่อโฮสต์ในเครื่องหรือนำไปใช้งานบน Azure - -| Lesson Number | หัวข้อ | กลุ่มบทเรียน | วัตถุประสงค์การเรียนรู้ | บทเรียนที่เชื่อมโยง | ผู้แต่ง | -| :-----------: | :------------------------------------------------------------: | :----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | บทนำสู่การเรียนรู้ของเครื่อง (machine learning) | [Introduction](1-Introduction/README.md) | เรียนรู้แนวคิดพื้นฐานของการเรียนรู้ของเครื่อง | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | ประวัติศาสตร์ของการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เรียนรู้ประวัติศาสตร์เบื้องหลังสาขานี้ | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | ความเป็นธรรมและการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | ปัญหาทางปรัชญาสำคัญเกี่ยวกับความเป็นธรรมที่นักเรียนควรพิจารณาเมื่อสร้างและนำแบบจำลอง ML ไปใช้ | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | เทคนิคสำหรับการเรียนรู้ของเครื่อง | [Introduction](1-Introduction/README.md) | เทคนิคที่นักวิจัย ML ใช้ในการสร้างแบบจำลอง ML มีอะไรบ้าง | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | บทนำสู่การถดถอย (regression) | [Regression](2-Regression/README.md) | เริ่มต้นกับ Python และ Scikit-learn สำหรับแบบจำลองถดถอย | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](2-Regression/README.md) | การแสดงผลและทำความสะอาดข้อมูลเตรียมสำหรับ ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](2-Regression/README.md) | สร้างแบบจำลองถดถอยเชิงเส้นและพหุนาม | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | ราคาฟักทองในอเมริกาเหนือ 🎃 | [Regression](2-Regression/README.md) | สร้างแบบจำลองถดถอยโลจิสติก | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | เว็บแอป 🔌 | [Web App](3-Web-App/README.md) | สร้างเว็บแอปเพื่อใช้แบบจำลองที่ฝึกฝน | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | บทนำสู่การจัดประเภท | [Classification](4-Classification/README.md) | ทำความสะอาด เตรียมข้อมูล และแสดงข้อมูล; บทนำสู่การจัดประเภท | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | อาหารอร่อยของเอเชียและอินเดีย 🍜 | [Classification](4-Classification/README.md) | บทนำสู่ตัวจัดประเภท | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | อาหารอร่อยของเอเชียและอินเดีย 🍜 | [Classification](4-Classification/README.md) | ตัวจัดประเภทเพิ่มเติม | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | อาหารอร่อยของเอเชียและอินเดีย 🍜 | [Classification](4-Classification/README.md) | สร้างเว็บแอปแนะนำโดยใช้แบบจำลองของคุณ | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | บทนำสู่การจัดกลุ่ม (clustering) | [Clustering](5-Clustering/README.md) | ทำความสะอาด เตรียม และแสดงข้อมูล; บทนำสู่การจัดกลุ่ม | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | สำรวจรสนิยมทางดนตรีของไนจีเรีย 🎧 | [Clustering](5-Clustering/README.md) | สำรวจวิธีการจัดกลุ่มด้วย K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | บทนำสู่การประมวลผลภาษาธรรมชาติ ☕️ | [Natural language processing](6-NLP/README.md) | เรียนรู้พื้นฐานเกี่ยวกับ NLP โดยสร้างบอทง่ายๆ | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | งาน NLP ที่พบบ่อย ☕️ | [Natural language processing](6-NLP/README.md) | เพิ่มพูนความรู้เกี่ยวกับ NLP โดยเข้าใจงานทั่วไปที่จำเป็นเมื่อจัดการกับโครงสร้างภาษา | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | การแปลและการวิเคราะห์อารมณ์ ♥️ | [Natural language processing](6-NLP/README.md) | การแปลและวิเคราะห์อารมณ์ด้วย Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | โรงแรมโรแมนติกในยุโรป ♥️ | [Natural language processing](6-NLP/README.md) | วิเคราะห์อารมณ์กับรีวิวโรงแรม 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | โรงแรมโรแมนติกในยุโรป ♥️ | [Natural language processing](6-NLP/README.md) | วิเคราะห์อารมณ์กับรีวิวโรงแรม 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | บทนำสู่การพยากรณ์แบบอนุกรมเวลา | [Time series](7-TimeSeries/README.md) | บทนำสู่การพยากรณ์แบบอนุกรมเวลา | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ การใช้พลังงานทั่วโลก ⚡️ - การพยากรณ์แบบอนุกรมเวลาด้วย ARIMA | [Time series](7-TimeSeries/README.md) | การพยากรณ์แบบอนุกรมเวลาด้วย ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ การใช้พลังงานทั่วโลก ⚡️ - การพยากรณ์แบบอนุกรมเวลาด้วย SVR | [Time series](7-TimeSeries/README.md) | การพยากรณ์แบบอนุกรมเวลาด้วยการถดถอยโครงสร้างเวกเตอร์สนับสนุน (Support Vector Regressor) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | บทนำสู่การเรียนรู้แบบเสริมแรง | [Reinforcement learning](8-Reinforcement/README.md) | บทนำสู่การเรียนรู้แบบเสริมแรงด้วย Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | ช่วย Peter หลีกเลี่ยงหมาป่า! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | กิมเกมสำหรับการเรียนรู้แบบเสริมแรง | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| บทส่งท้าย | กรณีศึกษาและแอปพลิเคชัน ML ในโลกความจริง | [ML in the Wild](9-Real-World/README.md) | แอปพลิเคชันที่น่าสนใจและเปิดเผยของ ML แบบคลาสสิกในโลกความจริง | [Lesson](9-Real-World/1-Applications/README.md) | ทีม | -| บทส่งท้าย | การแก้ไขปัญหาแบบจำลองใน ML ด้วยแดชบอร์ด RAI | [ML in the Wild](9-Real-World/README.md) | การแก้ไขปัญหาแบบจำลองใน Machine Learning โดยใช้ส่วนประกอบแดชบอร์ด Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [ค้นหาแหล่งข้อมูลเพิ่มเติมสำหรับหลักสูตรนี้ได้ในคอลเลกชัน Microsoft Learn ของเรา](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## เข้าถึงแบบออฟไลน์ - -คุณสามารถรันเอกสารนี้แบบออฟไลน์โดยใช้ [Docsify](https://docsify.js.org/#/). ให้โคลนที่เก็บนี้, [ติดตั้ง Docsify](https://docsify.js.org/#/quickstart) บนเครื่องของคุณ จากนั้นในโฟลเดอร์รากของที่เก็บนี้ ให้พิมพ์ `docsify serve`. เว็บไซต์จะเปิดให้บริการบนพอร์ต 3000 ที่ localhost ของคุณ: `localhost:3000`. +คุณสามารถใช้เอกสารนี้แบบออฟไลน์ได้โดยใช้ [Docsify](https://docsify.js.org/#/) ทำการโคลนรีโปนี้, [ติดตั้ง Docsify](https://docsify.js.org/#/quickstart) บนเครื่องของคุณ จากนั้นในโฟลเดอร์รากของรีโปนี้ให้พิมพ์ `docsify serve` เว็บไซต์จะถูกเสิร์ฟบนพอร์ต 3000 ที่โฮสต์เครื่องของคุณ: `localhost:3000` ## ไฟล์ PDF -ดาวน์โหลดไฟล์ pdf ของหลักสูตรพร้อมลิงก์ [ที่นี่](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +ดาวน์โหลด PDF ของหลักสูตรพร้อมลิงก์ได้ [ที่นี่](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 หลักสูตรอื่นๆ +## 🎒 หลักสูตรอื่น ๆ -ทีมของเราผลิตหลักสูตรอื่นๆ ด้วย! เช็คดูได้ที่: +ทีมงานของเราผลิตหลักสูตรอื่น ๆ ด้วย! ตรวจสอบได้ที่: ### LangChain @@ -189,7 +189,7 @@ Cloud Advocates ของ Microsoft มีความยินดีที่ --- -### Generative AI Series +### ชุดปัญญาประดิษฐ์สร้างสรรค์ [![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) @@ -197,7 +197,7 @@ Cloud Advocates ของ Microsoft มีความยินดีที่ --- -### การเรียนรู้หลัก +### การเรียนรู้แกนหลัก [![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) [![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) [![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) @@ -208,30 +208,30 @@ Cloud Advocates ของ Microsoft มีความยินดีที่ --- -### ชุดเรื่อง Copilot +### ชุด Copilot [![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## การขอความช่วยเหลือ +## ขอความช่วยเหลือ -หากคุณติดขัดหรือมีคำถามใดๆ เกี่ยวกับการสร้างแอป AI เข้าร่วมกับผู้เรียนและนักพัฒนาที่มีประสบการณ์ในการอภิปรายเกี่ยวกับ MCP ชุมชนที่สนับสนุนซึ่งยินดีต้อนรับคำถามและแบ่งปันความรู้กันอย่างเสรี +หากคุณติดขัดหรือมีคำถามเกี่ยวกับการสร้างแอป AI เข้าร่วมกับผู้เรียนและนักพัฒนาที่มีประสบการณ์ในการอภิปรายเกี่ยวกับ MCP เป็นชุมชนที่ให้การสนับสนุนซึ่งยินดีต้อนรับคำถามและแบ่งปันความรู้กันอย่างเสรี [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -หากคุณมีคำติชมเกี่ยวกับผลิตภัณฑ์หรือพบข้อผิดพลาดขณะสร้าง เข้าเยี่ยมชม: +หากคุณมีคำติชมหรือพบข้อผิดพลาดขณะสร้างโปรดไปที่: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## เคล็ดลับการเรียนรู้เพิ่มเติม -- ทบทวนสมุดบันทึกหลังแต่ละบทเรียนเพื่อความเข้าใจที่ดีขึ้น +- ทบทวนสมุดบันทึกหลังจากแต่ละบทเรียนเพื่อความเข้าใจที่ดีขึ้น - ฝึกฝนการนำอัลกอริธึมไปใช้ด้วยตนเอง -- สำรวจชุดข้อมูลจริงโดยใช้แนวคิดที่ได้เรียนรู้มา +- สำรวจชุดข้อมูลจริงโดยใช้แนวคิดที่เรียนรู้มา --- **ข้อจำกัดความรับผิดชอบ**: -เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษาอัตโนมัติ [Co-op Translator](https://github.com/Azure/co-op-translator) แม้เราจะพยายามให้มีความถูกต้องสูงสุด แต่โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความไม่แม่นยำ เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่มีความสำคัญ ขอแนะนำให้ใช้บริการแปลโดยมืออาชีพ เราจะไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความผิดที่เกิดจากการใช้การแปลนี้ +เอกสารนี้ได้รับการแปลโดยใช้บริการแปลภาษา AI [Co-op Translator](https://github.com/Azure/co-op-translator) แม้ว่าเราจะพยายามให้มีความถูกต้อง โปรดทราบว่าการแปลอัตโนมัติอาจมีข้อผิดพลาดหรือความคลาดเคลื่อนได้ เอกสารต้นฉบับในภาษาต้นทางควรถูกพิจารณาเป็นแหล่งข้อมูลที่เชื่อถือได้ สำหรับข้อมูลที่สำคัญ ขอแนะนำให้ใช้การแปลโดยผู้เชี่ยวชาญด้านมนุษย์ เราไม่รับผิดชอบต่อความเข้าใจผิดหรือการตีความที่ผิดพลาดที่เกิดขึ้นจากการใช้การแปลนี้ \ No newline at end of file diff --git a/translations/tl/.co-op-translator.json b/translations/tl/.co-op-translator.json index c4ff8cef3..5e3200840 100644 --- a/translations/tl/.co-op-translator.json +++ b/translations/tl/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "tl" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:32:52+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:15:11+00:00", "source_file": "README.md", "language_code": "tl" }, diff --git a/translations/tl/README.md b/translations/tl/README.md index 895c8b754..4ff4ac1d3 100644 --- a/translations/tl/README.md +++ b/translations/tl/README.md @@ -1,23 +1,23 @@ -[![Lisensya ng GitHub](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) -[![Mga kontribyutor ng GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) -[![Mga isyu ng GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) -[![Mga pull-request ng GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![Maligayang PRs](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![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) -[![Mga nagbabantay ng GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![Mga forks ng GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) -[![Mga bituin ng GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) +[![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/) ### 🌐 Suporta sa Maramihang Wika -#### Sinusuportahan sa pamamagitan ng GitHub Action (Automatiko at Palaging Napapanahon) +#### Sinusuportahan sa pamamagitan ng GitHub Action (Awtomatiko at Laging Napapanahon) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](./README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](./README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **Mas gusto mo bang I-clone Nang Lokal?** +> **Mas gusto mo bang I-clone nang Lokal?** > -> Kasama sa repository na ito ang 50+ na pagsasalin ng wika na malaki ang pinapataas ng laki ng pag-download. Upang i-clone nang walang mga pagsasalin, gamitin ang sparse checkout: +> Kasama sa repository na ito ang mahigit 50 na pagsasalin sa wika na lubhang nagpapalaki ng laki ng download. Upang makapag-clone nang walang mga pagsasalin, gamitin ang sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,206 +33,206 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Bibigyan ka nito ng lahat ng kailangan mo para tapusin ang kurso nang mas mabilis ang pag-download. +> Bibigyan ka nito ng lahat ng kailangan mo upang matapos ang kurso nang mas mabilis ang pag-download. #### Sumali sa Aming Komunidad [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Mayroon kaming Discord na serye ng pag-aaral gamit ang AI na kasalukuyang nagpapatuloy, matuto pa at sumali sa amin sa [Learn with AI Series](https://aka.ms/learnwithai/discord) mula Setyembre 18 - 30, 2025. Makakakuha ka ng mga tip at trick sa paggamit ng GitHub Copilot para sa Data Science. +May ongoing na series kami sa Discord tungkol sa pag-aaral kasama ang AI, matuto pa at sumali sa amin sa [Learn with AI Series](https://aka.ms/learnwithai/discord) mula Setyembre 18 - 30, 2025. Makakakuha ka ng mga tip at tricks sa paggamit ng GitHub Copilot para sa Data Science. ![Learn with AI series](../../translated_images/tl/3.9b58fd8d6c373c20.webp) -# Machine Learning para sa mga Nagsisimula - Isang Kurikulum +# Machine Learning para sa mga Baguhan - Isang Kurikulum -> 🌍 Maglakbay sa buong mundo habang tinutuklasan natin ang Machine Learning sa pamamagitan ng mga kultura ng mundo 🌍 +> 🌍 Maglakbay sa buong mundo habang tinutuklasan natin ang Machine Learning sa pamamagitan ng mga kultura sa buong mundo 🌍 -Ikinagagalak ng Cloud Advocates ng Microsoft na mag-alok ng isang 12-linggong, 26-leksyon na kurikulum tungkol sa **Machine Learning**. Sa kurikulung ito, matututuhan mo ang tinatawag minsan na **classic machine learning**, gamit pangunahin ang Scikit-learn bilang isang librarya at iniiwasan ang deep learning, na tinatalakay naman sa aming [AI for Beginners' curriculum](https://aka.ms/ai4beginners). Ipares ang mga leksyong ito sa aming ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners), rin! +Ikinagagalak ng mga Cloud Advocates sa Microsoft na mag-alok ng 12-linggong, 26 na leksyon na kurikulum tungkol sa **Machine Learning**. Sa kurikulum na ito, malalaman mo ang tinatawag na **classic machine learning**, gamit ang Scikit-learn bilang pangunahing library at iniiwasan ang deep learning, na tinatalakay naman sa aming [AI for Beginners' curriculum](https://aka.ms/ai4beginners). Isabay din ang mga leksyon na ito sa aming ['Data Science for Beginners' curriculum](https://aka.ms/ds4beginners). -Maglakbay kasama kami sa buong mundo habang inilalapat natin ang mga klasikong teknikang ito sa datos mula sa maraming bahagi ng mundo. Bawat leksyon ay may kasamang pre- at post-lesson quizzes, nakasulat na mga tagubilin para matapos ang leksyon, isang solusyon, isang assignment, at marami pa. Ang aming pedagohikal na nakabase sa proyekto ay nagpapahintulot sa iyo na matuto habang nagtatayo, isang napatunayang paraan para ang bagong kaalaman ay manatili. +Maglakbay kasama kami sa buong mundo habang inilalapat natin ang mga klasikong teknik na ito sa data mula sa iba't ibang bahagi ng mundo. Bawat leksyon ay may kasamang pre- at post-lesson quizzes, nakasulat na mga tagubilin upang matapos ang leksyon, solusyon, isang assignment, at iba pa. Ang aming proyekto-base na pedagogiya ay nagbibigay-daan sa'yo na matuto habang gumagawa, isang napatunayang paraan para manatili ang mga bagong kasanayan. -**✍️ Taos-pusong pasasalamat sa aming mga may-akda** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu at Amy Boyd +**✍️ Taos-pusong pasasalamat sa aming mga may akda** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu at Amy Boyd **🎨 Salamat din sa aming mga ilustrador** Tomomi Imura, Dasani Madipalli, at Jen Looper -**🙏 Espesyal na pasasalamat 🙏 sa aming mga Microsoft Student Ambassador na mga may-akda, tagasuri, at mga tagapag-ambag ng nilalaman**, partikular kina Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, at Snigdha Agarwal +**🙏 Espesyal na pasasalamat 🙏 sa mga Microsoft Student Ambassador na mga may akda, tagasuri, at mga kontribyutor ng nilalaman**, partikular kina Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, at Snigdha Agarwal -**🤩 Dagdag na pasasalamat sa Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, at Vidushi Gupta para sa aming mga R lessons!** +**🤩 Dagdag na pasasalamat kina Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, at Vidushi Gupta para sa aming mga R na leksyon!** # Pagsisimula Sundin ang mga hakbang na ito: -1. **I-fork ang Repositoryo**: I-click ang "Fork" na button sa kanang itaas ng pahinang ito. -2. **I-clone ang Repositoryo**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +1. **I-fork ang Repository**: I-click ang "Fork" na button sa itaas-kanang sulok ng pahinang ito. +2. **I-clone ang Repository**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [hanapin lahat ng dagdag na mga recurso para sa kursong ito sa aming Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [hanapin ang lahat ng karagdagang mga resources para sa kursong ito sa aming Microsoft Learn koleksyon](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Kailangan ng tulong?** Tingnan ang aming [Troubleshooting Guide](TROUBLESHOOTING.md) para sa mga solusyon sa karaniwang mga isyu sa pag-install, setup, at pagpapatakbo ng mga leksyon. +> 🔧 **Kailangan ng tulong?** Tingnan ang aming [Troubleshooting Guide](TROUBLESHOOTING.md) para sa mga solusyon sa karaniwang mga isyu sa pag-install, pagsasaayos, at pagpapatakbo ng mga leksyon. -**[Mga Estudyante](https://aka.ms/student-page)**, upang magamit ang kurikulung ito, i-fork ang buong repo sa iyong sariling GitHub account at tapusin ang mga ehersisyo nang mag-isa o kasama ang isang grupo: +**[Mga Estudyante](https://aka.ms/student-page)**, para gamitin ang kurikulum na ito, i-fork ang buong repo sa sarili mong GitHub account at tapusin ang mga exercise mag-isa o kasama ang grupo: -- Magsimula sa pre-lecture quiz. -- Basahin ang lektura at tapusin ang mga gawain, huminto at magmuni-muni sa bawat knowledge check. -- Subukang likhain ang mga proyekto sa pamamagitan ng pag-unawa sa mga leksyon sa halip na patakbuhin ang solution code; gayunpaman available ang code na iyon sa mga `/solution` folders sa bawat proyekto-orientadong leksyon. -- Kunin ang post-lecture quiz. -- Tapusin ang hamon. +- Magsimula sa isang pre-lecture quiz. +- Basahin ang leksyon at tapusin ang mga aktibidad, huminto at magmuni-muni sa bawat knowledge check. +- Subukang likhain ang mga proyekto sa pamamagitan ng pag-unawa sa mga leksyon sa halip na direktang patakbuhin ang solusyon; gayunpaman, ang code na iyon ay matatagpuan sa mga `/solution` folder sa bawat leksyon na nakatuon sa proyekto. +- Kumuha ng post-lecture quiz. +- Tapusin ang challenge. - Tapusin ang assignment. -- Pagkatapos tapusin ang isang grupo ng leksyon, bisitahin ang [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) at "matuto nang malakas" sa pamamagitan ng pag-fill out ng angkop na PAT rubric. Ang 'PAT' ay isang Progress Assessment Tool na isang rubric na iyong pinupunan upang mapalalim ang iyong pagkatuto. Maaari ka ring mag-react sa ibang mga PAT para sama-sama tayong matuto. +- Pagkatapos matapos ang isang pangkat ng mga leksyon, bisitahin ang [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) at “matuto nang malakas” sa pamamagitan ng pagpuno ng angkop na PAT rubric. Ang 'PAT' ay Progress Assessment Tool na isang rubric na pinupunan mo upang mas mapalawak ang iyong pag-aaral. Maaari ka ring mag-react sa ibang mga PAT para sabay tayong matuto. -> Para sa karagdagang pag-aaral, inirerekumenda naming sundan ang mga [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules at learning paths. +> Para sa karagdagang pag-aaral, inirerekomenda naming sundan ang mga [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modules at mga learning path. -**Mga Guro**, may [kasamang ilang mga suhestiyon](for-teachers.md) kung paano gamitin ang kurikulung ito. +**Mga Guro**, naglagay kami ng ilang mga mungkahi sa [paano gamitin ang kurikulm na ito](for-teachers.md). --- -## Video walkthroughs +## Mga walkthrough na video -Ilan sa mga leksyon ay available bilang mga pinaikling video. Makikita mo ang lahat ng ito sa loob ng mga leksyon, o sa [ML for Beginners playlist sa Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) sa pamamagitan ng pag-click sa larawan sa ibaba. +Ilan sa mga leksyon ay available bilang maikling video. Makikita mo ang mga ito sa loob mismo ng mga leksyon, o sa [ML for Beginners playlist sa Microsoft Developer YouTube channel](https://aka.ms/ml-beginners-videos) sa pag-click sa imahe sa ibaba. [![ML for beginners banner](../../translated_images/tl/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Kilalanin ang Pangkat +## Kilalanin ang Koponan [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif ni** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 I-click ang larawan sa itaas para sa isang video tungkol sa proyekto at sa mga taong lumikha nito! +> 🎥 I-click ang imahe sa itaas para sa isang video tungkol sa proyekto at sa mga taong lumikha nito! --- ## Pedagohiya -Pinili namin ang dalawang prinsipyo ng pagtuturo habang binubuo ang kurikulung ito: siguraduhing ito ay hands-on **project-based** at na ito ay may kasamang **madalas na mga pagsusulit**. Bukod dito, ang kurikulung ito ay may isang karaniwang **tema** upang bigyan ito ng pagkakaugnay-ugnay. +Pinili namin ang dalawang pedagogical tenets habang binubuo ang kurikulum na ito: tiyakin na ito ay hands-on **project-based** at may mga **madalas na pagsusulit**. Bukod dito, ang kurikulum na ito ay may isang karaniwang **tema** upang bigyan ito ng pagka-kohesibo. -Sa pagtitiyak na ang nilalaman ay nakaayon sa mga proyekto, ang proseso ay nagiging mas kaakit-akit para sa mga estudyante at ang pagpapanatili ng mga konsepto ay mapapalakas. Bukod dito, ang mababang-stake na pagsusulit bago ang klase ay nagtatakda ng layunin ng estudyante sa pag-aaral ng isang paksa, samantalang ang pangalawang pagsusulit pagkatapos ng klase ay nagsisiguro ng karagdagang pagpapanatili. Ang kurikulung ito ay idinisenyo upang maging flexible at masaya at maaaring kunin nang buo o bahagi. Nagsisimula ang mga proyekto sa maliit at lumalalim ang komplikasyon hanggang sa dulo ng 12-linggong siklo. Kasama rin sa kurikulung ito ang isang postscript tungkol sa mga totoong aplikasyon ng ML, na maaaring gamitin bilang dagdag na kredito o bilang batayan sa talakayan. +Sa pamamagitan ng pagtitiyak na tumutugma ang nilalaman sa mga proyekto, nagiging mas kawili-wili ang proseso para sa mga estudyante at tataas ang retention ng mga konsepto. Bukod dito, ang isang low-stakes quiz bago magklase ay nagtatakda ng intensiyon ng estudyante sa pag-aaral ng paksa, habang ang pangalawang quiz pagkatapos ng klase ay nagsisiguro ng mas malalim na retention. Dinisenyo ang kurikulum na ito upang maging flexible at masaya at maaaring kunin nang buo o bahagi lamang. Nagsisimula ang mga proyekto sa maliit at nagiging mas kumplikado hanggang sa katapusan ng 12-linggong siklo. Kasama rin sa kurikulum na ito ang isang postscript tungkol sa mga totoong aplikasyon ng ML, na maaaring gamitin bilang dagdag na kredito o bilang batayan sa diskusyon. -> Hanapin ang aming [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), at [Troubleshooting](TROUBLESHOOTING.md) na mga gabay. Malugod naming tinatanggap ang inyong mga konstruktibong puna! +> Hanapin ang aming [Code of Conduct](CODE_OF_CONDUCT.md), [Contributing](CONTRIBUTING.md), [Translations](..), at [Troubleshooting](TROUBLESHOOTING.md) na mga gabay. Malugod naming tinatanggap ang iyong makabuluhang feedback! ## Kasama sa bawat leksyon - opsyonal na sketchnote -- opsyonal na suplementaryong video -- video walkthrough (ilang leksyon lamang) +- opsyonal na karagdagang video +- video walkthrough (ilang mga leksyon lamang) - [pre-lecture warmup quiz](https://ff-quizzes.netlify.app/en/ml/) - nakasulat na leksyon -- para sa project-based na mga leksyon, sunud-sunod na gabay kung paano itayo ang proyekto -- knowledge checks +- para sa mga proyekto-base na leksyon, sunud-sunod na mga gabay kung paano bumuo ng proyekto +- pagsubok sa kaalaman - isang hamon -- dagdag na babasahin +- karagdagang babasahin - assignment - [post-lecture quiz](https://ff-quizzes.netlify.app/en/ml/) +> **Isang tala tungkol sa mga wika**: Ang mga araling ito ay pangunahing isinulat sa Python, ngunit marami rin ang magagamit sa R. Upang makumpleto ang isang araling R, pumunta sa folder na `/solution` at hanapin ang mga araling R. Naglalaman ang mga ito ng ekstensyong .rmd na kumakatawan sa isang **R Markdown** file na maaaring ipaliwanag bilang isang pagsasama ng `code chunks` (ng R o iba pang mga wika) at isang `YAML header` (na gumagabay kung paano iformat ang mga output tulad ng PDF) sa isang `Markdown document`. Dahil dito, nagsisilbi ito bilang isang pambihirang framework para sa pagsulat para sa agham ng datos dahil pinapayagan kang pagsamahin ang iyong code, ang output nito, at ang iyong mga iniisip sa pamamagitan ng pagsulat ng mga ito sa Markdown. Bukod dito, ang mga dokumento ng R Markdown ay maaaring i-render sa mga format ng output tulad ng PDF, HTML, o Word. -> **Tungkol sa mga wika**: Pangunahing nakasulat ang mga leksyong ito sa Python, ngunit marami rin ang available sa R. Upang makumpleto ang isang R lesson, pumunta sa `/solution` folder at hanapin ang mga R lessons. Kabilang dito ang .rmd na extension na kumakatawan sa isang **R Markdown** file na maaaring ipaliwanag bilang pagsasama-sama ng mga `code chunks` (ng R o ibang mga wika) at isang `YAML header` (na naggagabay kung paano i-format ang mga output tulad ng PDF) sa isang `Markdown document`. Dahil dito, nagsisilbi itong isang halimbawa ng framework para sa pag-aakda sa data science dahil pinapayagan kang pagsamahin ang iyong code, ang output nito, at ang iyong mga saloobin sa pamamagitan ng pagsusulat ng mga ito sa Markdown. Bukod pa rito, ang mga R Markdown documents ay maaaring i-render sa mga output format tulad ng PDF, HTML, o Word. -> **Isang paalala tungkol sa mga pagsusulit**: Lahat ng pagsusulit ay naka-imbak sa [Quiz App folder](../../quiz-app), na may kabuuang 52 na pagsusulit na may tig-tatlong tanong bawat isa. Nakalink sila mula sa loob ng mga aralin ngunit ang quiz app ay maaaring patakbuhin nang lokal; sundin ang mga tagubilin sa `quiz-app` folder upang ma-host nang lokal o ma-deploy sa Azure. +> **Isang tala tungkol sa mga pagsusulit**: Lahat ng mga pagsusulit ay nasa loob ng [Quiz App folder](../../quiz-app), para sa kabuuang 52 na pagsusulit na may tig-tatlong tanong bawat isa. Nakaugnay ito mula sa loob ng mga aralin ngunit ang quiz app ay maaaring patakbuhin nang lokal; sundin ang mga tagubilin sa folder na `quiz-app` upang mag-host nang lokal o mag-deploy sa Azure. | Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | | :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Panimula sa machine learning | [Introduction](1-Introduction/README.md) | Matutunan ang mga pangunahing konsepto sa likod ng machine learning | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Kasaysayan ng machine learning | [Introduction](1-Introduction/README.md) | Matutunan ang kasaysayan sa likod ng larangang ito | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Katarungan at machine learning | [Introduction](1-Introduction/README.md) | Ano ang mahahalagang pilosopikal na isyu tungkol sa katarungan na dapat isaalang-alang ng mga mag-aaral sa paggawa at paggamit ng ML models? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Mga teknik para sa machine learning | [Introduction](1-Introduction/README.md) | Anong mga teknik ang ginagamit ng mga mananaliksik ng ML upang bumuo ng ML models? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Panimula sa regression | [Regression](2-Regression/README.md) | Magsimula gamit ang Python at Scikit-learn para sa mga regression model | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Presyo ng kalabasa sa Hilagang Amerika 🎃 | [Regression](2-Regression/README.md) | I-visualisa at linisin ang datos para sa paghahanda sa ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Presyo ng kalabasa sa Hilagang Amerika 🎃 | [Regression](2-Regression/README.md) | Bumuo ng linear at polynomial regression models | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | Presyo ng kalabasa sa Hilagang Amerika 🎃 | [Regression](2-Regression/README.md) | Bumuo ng logistic regression model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Isang Web App 🔌 | [Web App](3-Web-App/README.md) | Bumuo ng web app para gamitin ang na-train mong modelo | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Panimula sa classification | [Classification](4-Classification/README.md) | Linisin, ihanda, at i-visualisa ang iyong datos; panimula sa classification | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | Masasarap na lutuing Asyano at Indian 🍜 | [Classification](4-Classification/README.md) | Panimula sa mga classifiers | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | Masasarap na lutuing Asyano at Indian 🍜 | [Classification](4-Classification/README.md) | Higit pang mga classifiers | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | Masasarap na lutuing Asyano at Indian 🍜 | [Classification](4-Classification/README.md) | Bumuo ng recommender web app gamit ang iyong modelo | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Panimula sa clustering | [Clustering](5-Clustering/README.md) | Linisin, ihanda, at i-visualisa ang iyong datos; Panimula sa clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Pagsasaliksik sa Nigerian Musical Tastes 🎧 | [Clustering](5-Clustering/README.md) | Saliksikin ang K-Means clustering method | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Panimula sa natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Alamin ang mga pangunahing kaalaman tungkol sa NLP sa pamamagitan ng paggawa ng simpleng bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Mga Karaniwang Gawain sa NLP ☕️ | [Natural language processing](6-NLP/README.md) | Palalimin ang iyong kaalaman sa NLP sa pamamagitan ng pag-unawa sa mga karaniwang gawain na kinakailangan sa paghawak ng mga istruktura ng wika | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Pagsasalin at pagsusuri ng damdamin ♥️ | [Natural language processing](6-NLP/README.md) | Pagsasalin at pagsusuri ng damdamin gamit si Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Mga Romantikong hotel sa Europa ♥️ | [Natural language processing](6-NLP/README.md) | Pagsusuri ng damdamin gamit ang mga review ng hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Mga Romantikong hotel sa Europa ♥️ | [Natural language processing](6-NLP/README.md) | Pagsusuri ng damdamin gamit ang mga review ng hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Panimula sa time series forecasting | [Time series](7-TimeSeries/README.md) | Panimula sa time series forecasting | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Paggamit ng Kuryente sa Mundo ⚡️ - time series forecasting gamit ang ARIMA | [Time series](7-TimeSeries/README.md) | Time series forecasting gamit ang ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Paggamit ng Kuryente sa Mundo ⚡️ - time series forecasting gamit ang SVR | [Time series](7-TimeSeries/README.md) | Time series forecasting gamit ang Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Panimula sa reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Panimula sa reinforcement learning gamit ang Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Tulungan si Peter na iwasan ang lobo! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Reinforcement learning Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Mga totoong senaryo at aplikasyon ng ML | [ML in the Wild](9-Real-World/README.md) | Kawili-wili at naglalahad na mga totoong aplikasyon ng klasikong ML | [Lesson](9-Real-World/1-Applications/README.md) | Team | -| Postscript | Pagsasaayos ng Modelo sa ML gamit ang RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Pagsasaayos ng Modelo sa Machine Learning gamit ang Responsible AI dashboard components | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [hanapin ang lahat ng dagdag na mapagkukunan para sa kursong ito sa aming Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +| 01 | Panimula sa machine learning | [Introduction](1-Introduction/README.md) | Matutunan ang mga pangunahing konsepto sa likod ng machine learning | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Kasaysayan ng machine learning | [Introduction](1-Introduction/README.md) | Matutunan ang kasaysayan sa likod ng larangang ito | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Katarungan at machine learning | [Introduction](1-Introduction/README.md) | Ano ang mga mahahalagang pilosopikal na isyu tungkol sa katarungan na dapat isaalang-alang ng mga estudyante kapag bumubuo at nagpapagamit ng ML models? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Mga Teknik para sa machine learning | [Introduction](1-Introduction/README.md) | Anong mga teknika ang ginagamit ng mga mananaliksik ng ML upang bumuo ng ML models? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Panimula sa regression | [Regression](2-Regression/README.md) | Magsimula gamit ang Python at Scikit-learn para sa mga regression model | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Mga presyo ng kalabasa sa Hilagang Amerika 🎃 | [Regression](2-Regression/README.md) | I-visualize at linisin ang data bilang paghahanda para sa ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Mga presyo ng kalabasa sa Hilagang Amerika 🎃 | [Regression](2-Regression/README.md) | Bumuo ng linear at polynomial regression models | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | Mga presyo ng kalabasa sa Hilagang Amerika 🎃 | [Regression](2-Regression/README.md) | Bumuo ng logistic regression model | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Isang Web App 🔌 | [Web App](3-Web-App/README.md) | Bumuo ng web app upang gamitin ang iyong sanay na modelo | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Panimula sa classification | [Classification](4-Classification/README.md) | Linisin, ihanda, at i-visualize ang iyong data; panimula sa classification | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | Masasarap na Asian at Indian na mga pagkain 🍜 | [Classification](4-Classification/README.md) | Panimula sa mga classifier | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | Masasarap na Asian at Indian na mga pagkain 🍜 | [Classification](4-Classification/README.md) | Higit pang mga classifier | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | Masasarap na Asian at Indian na mga pagkain 🍜 | [Classification](4-Classification/README.md) | Bumuo ng isang recommender web app gamit ang iyong modelo | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Panimula sa clustering | [Clustering](5-Clustering/README.md) | Linisin, ihanda, at i-visualize ang iyong data; Panimula sa clustering | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Pagsisiyasat sa Panlasa ng Musika sa Nigeria 🎧 | [Clustering](5-Clustering/README.md) | Siyasatin ang K-Means clustering method | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Panimula sa natural language processing ☕️ | [Natural language processing](6-NLP/README.md) | Matutunan ang mga pangunahing kaalaman tungkol sa NLP sa pamamagitan ng paggawa ng isang simpleng bot | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Karaniwang mga Gawain sa NLP ☕️ | [Natural language processing](6-NLP/README.md) | Palalimin ang iyong kaalaman tungkol sa NLP sa pamamagitan ng pag-unawa sa mga karaniwang gawain na kailangan kapag nakikitungo sa mga istruktura ng wika | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Pagsasalin at pagsusuri ng damdamin ♥️ | [Natural language processing](6-NLP/README.md) | Pagsasalin at pagsusuri ng damdamin kasama si Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Mga romantikong hotel sa Europe ♥️ | [Natural language processing](6-NLP/README.md) | Pagsusuri ng damdamin gamit ang mga review ng hotel 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Mga romantikong hotel sa Europe ♥️ | [Natural language processing](6-NLP/README.md) | Pagsusuri ng damdamin gamit ang mga review ng hotel 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Panimula sa time series forecasting | [Time series](7-TimeSeries/README.md) | Panimula sa time series forecasting | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Paggamit ng Enerhiya ng Mundo ⚡️ - time series forecasting gamit ang ARIMA | [Time series](7-TimeSeries/README.md) | Time series forecasting gamit ang ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Paggamit ng Enerhiya ng Mundo ⚡️ - time series forecasting gamit ang SVR | [Time series](7-TimeSeries/README.md) | Time series forecasting gamit ang Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Panimula sa reinforcement learning | [Reinforcement learning](8-Reinforcement/README.md) | Panimula sa reinforcement learning gamit ang Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Tulungan si Peter na iwasan ang lobo! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym ng reinforcement learning | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Mga tunay na senaryo at aplikasyon ng ML | [ML in the Wild](9-Real-World/README.md) | Mga kawili-wili at nagpapamalas na mga totoong aplikasyon ng klasikong ML | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| Postscript | Pag-debug ng Model sa ML gamit ang RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Pag-debug ng Modelo sa Machine Learning gamit ang mga bahagi ng Responsible AI dashboard | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [hanapin lahat ng karagdagang mga mapagkukunan para sa kursong ito sa aming Microsoft Learn collection](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Offline access -Maaari mong patakbuhin ang dokumentasyong ito nang offline gamit ang [Docsify](https://docsify.js.org/#/). I-fork ang repo na ito, [i-install ang Docsify](https://docsify.js.org/#/quickstart) sa iyong lokal na makina, at pagkatapos ay sa root folder ng repo na ito, i-type ang `docsify serve`. Ang website ay ihahain sa port 3000 sa iyong localhost: `localhost:3000`. +Maaari mong patakbuhin ang dokumentasyong ito nang offline gamit ang [Docsify](https://docsify.js.org/#/). I-fork ang repo na ito, [i-install ang Docsify](https://docsify.js.org/#/quickstart) sa iyong lokal na makina, at pagkatapos sa root folder ng repo na ito, i-type ang `docsify serve`. Ang website ay ihahatid sa port 3000 sa iyong localhost: `localhost:3000`. ## PDFs Hanapin ang pdf ng kurikulum na may mga link [dito](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Iba Pang Kurso +## 🎒 Iba pang Mga Kurso Ang aming koponan ay gumagawa ng iba pang mga kurso! Tingnan ang: ### LangChain -[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j para sa mga Nagsisimula](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js para sa mga Nagsisimula](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain para sa mga Nagsisimula](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD para sa mga Nagsisimula](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI para sa mga Nagsisimula](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP para sa mga Baguhan](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents para sa mga Baguhan](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Generative AI Series -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI para sa mga Baguhan](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) [![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) [![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) [![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- -### Pangunahing Pag-aaral -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +### Pangunahing Pagkatuto +[![ML para sa mga Baguhan](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Agham ng Datos para sa mga Baguhan](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI para sa mga Baguhan](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity para sa mga Baguhan](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev para sa mga Baguhan](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT para sa mga Baguhan](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development para sa mga Baguhan](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Serye ng Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +### Copilot Series +[![Copilot para sa AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot para sa C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Pagkuha ng Tulong -Kung ikaw ay naipit o mayroong anumang mga tanong tungkol sa paggawa ng mga AI app. Sumali sa mga kapwa nag-aaral at mga batikang developer sa mga talakayan tungkol sa MCP. Ito ay isang sumusuportang komunidad kung saan malugod ang mga tanong at malayang ibinabahagi ang kaalaman. +Kung ikaw ay magkaroon ng kahirapan o may mga tanong tungkol sa paggawa ng mga AI app. Sumali sa kapwa mga nag-aaral at mga bihasang developer sa mga diskusyon tungkol sa MCP. Isa itong sumusuportang komunidad kung saan malugod ang mga tanong at malayang ibinabahagi ang kaalaman. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Kung mayroon kang puna tungkol sa produkto o mga error habang nagtatayo, bisitahin: +Kung mayroon kang puna tungkol sa produkto o may mga error habang nagtatayo, bisitahin: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Karagdagang Mga Tip sa Pag-aaral +## Karagdagang Mga Tip sa Pagkatuto -- Balikan ang mga notebook pagkatapos ng bawat aralin para sa mas mabuting pag-unawa. -- Magsanay sa pagpapatupad ng mga algorithm nang mag-isa. -- Tuklasin ang mga totoong dataset gamit ang mga natutunang konsepto. +- Balikan ang mga notebook matapos ng bawat aralin upang mas maintindihan. +- Sanayang magpatupad ng mga algorithm nang mag-isa. +- Suriin ang mga tunay na dataset gamit ang mga natutunang konsepto. --- -**Paunawa**: -Ang dokumentong ito ay isinalin gamit ang serbisyong AI na pagsasalin [Co-op Translator](https://github.com/Azure/co-op-translator). Bagamat aming sinisikap ang pagiging tumpak, pakatandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o di-tumpak na bahagi. Ang orihinal na dokumento sa wikang pinagmulan nito ang dapat ituring na pangunahing sanggunian. Para sa mahahalagang impormasyon, inirerekomenda ang propesyonal na pagsasalin ng tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na maaaring magmula sa paggamit ng pagsasaling ito. +**Pahayag ng Pagwawaksi**: +Ang dokumentong ito ay isinalin gamit ang AI translation service na [Co-op Translator](https://github.com/Azure/co-op-translator). Bagamat nagsusumikap kami para sa katumpakan, mangyaring tandaan na ang mga awtomatikong pagsasalin ay maaaring maglaman ng mga pagkakamali o di-umano’y kamalian. Ang orihinal na dokumento sa orihinal nitong wika ang dapat ituring na opisyal na sanggunian. Para sa mahalagang impormasyon, inirerekomenda ang propesyonal na pagsasaling-tao. Hindi kami mananagot sa anumang hindi pagkakaunawaan o maling interpretasyon na nagmula sa paggamit ng pagsasaling ito. \ No newline at end of file diff --git a/translations/tr/.co-op-translator.json b/translations/tr/.co-op-translator.json index 558cb037b..81ecbeee4 100644 --- a/translations/tr/.co-op-translator.json +++ b/translations/tr/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "tr" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:40:23+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:45:33+00:00", "source_file": "README.md", "language_code": "tr" }, diff --git a/translations/tr/README.md b/translations/tr/README.md index 7fdb742da..bcc52e89f 100644 --- a/translations/tr/README.md +++ b/translations/tr/README.md @@ -1,23 +1,23 @@ -[![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 lisansı](https://img.shields.io/github/license/microsoft/ML-For-Beginners.svg)](https://github.com/microsoft/ML-For-Beginners/blob/master/LICENSE) +[![GitHub katkıda bulunanlar](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) +[![GitHub sorunları](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) +[![GitHub çekme istekleri](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) +[![PRs Hoşgeldiniz](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/) +[![GitHub izleyicileri](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) +[![GitHub çatalları](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![GitHub yıldızları](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) ### 🌐 Çok Dilli Destek -#### GitHub Action ile Desteklenmektedir (Otomatik ve Her Zaman Güncel) +#### GitHub Action ile Desteklenmektedir (Otomatik & Her Zaman Güncel) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](./README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arapça](../ar/README.md) | [Bengalce](../bn/README.md) | [Bulgarca](../bg/README.md) | [Birmanca (Myanmar)](../my/README.md) | [Çince (Basitleştirilmiş)](../zh-CN/README.md) | [Çince (Geleneksel, Hong Kong)](../zh-HK/README.md) | [Çince (Geleneksel, Makao)](../zh-MO/README.md) | [Çince (Geleneksel, Tayvan)](../zh-TW/README.md) | [Hırvatça](../hr/README.md) | [Çekçe](../cs/README.md) | [Danca](../da/README.md) | [Flemenkçe](../nl/README.md) | [Estonca](../et/README.md) | [Fince](../fi/README.md) | [Fransızca](../fr/README.md) | [Almanca](../de/README.md) | [Yunanca](../el/README.md) | [İbranice](../he/README.md) | [Hintçe](../hi/README.md) | [Macarca](../hu/README.md) | [Endonezce](../id/README.md) | [İtalyanca](../it/README.md) | [Japonca](../ja/README.md) | [Kannada](../kn/README.md) | [Kmerce](../km/README.md) | [Korece](../ko/README.md) | [Litvanca](../lt/README.md) | [Malayca](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepalce](../ne/README.md) | [Nijerya Pidgin](../pcm/README.md) | [Norveççe](../no/README.md) | [Farsça (Farsi)](../fa/README.md) | [Lehçe](../pl/README.md) | [Brezilya Portekizcesi](../pt-BR/README.md) | [Portekizce (Portekiz)](../pt-PT/README.md) | [Pencapça (Gurmukhi)](../pa/README.md) | [Rumence](../ro/README.md) | [Rusça](../ru/README.md) | [Sırpça (Kiril)](../sr/README.md) | [Slovakça](../sk/README.md) | [Slovence](../sl/README.md) | [İspanyolca](../es/README.md) | [Svahili](../sw/README.md) | [İsveççe](../sv/README.md) | [Tagalogca (Filipince)](../tl/README.md) | [Tamilce](../ta/README.md) | [Telugu](../te/README.md) | [Tayca](../th/README.md) | [Türkçe](./README.md) | [Ukraynaca](../uk/README.md) | [Urduca](../ur/README.md) | [Vietnamca](../vi/README.md) -> **Yerel olarak mı Klonlamayı Tercih Edersiniz?** +> **Yerel olarak klonlamayı mı tercih edersiniz?** > -> Bu depo, indirme boyutunu önemli ölçüde artıran 50+ dil çevirisi içerir. Çeviriler olmadan klonlamak için sparse checkout kullanın: +> Bu depo, indirme boyutunu önemli ölçüde artıran 50'den fazla dil çevirisi içerir. Çeviriler olmadan klonlamak için sparse checkout kullanın: > > **Bash / macOS / Linux:** > ```bash @@ -33,147 +33,146 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Bu, kursu tamamlamak için ihtiyacınız olan her şeyi çok daha hızlı bir indirme ile size verir. +> Bu, kursu tamamlamak için gereken her şeyi çok daha hızlı indirmenizi sağlar. #### Topluluğumuza Katılın [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -AI ile öğrenme serimiz devam ediyor, daha fazla bilgi edinin ve 18 - 30 Eylül 2025 tarihleri arasında bize katılın [Learn with AI Series](https://aka.ms/learnwithai/discord). GitHub Copilot'u Veri Bilimi için kullanırken ipuçları ve püf noktaları alacaksınız. +AI ile öğrenme serimiz devam etmektedir, daha fazla bilgi edinip [AI ile Öğrenme Serisi](https://aka.ms/learnwithai/discord) adresinden 18 - 30 Eylül 2025 tarihleri arasında bize katılabilirsiniz. GitHub Copilot'un Veri Bilimi için kullanımına dair ipuçları ve püf noktaları edineceksiniz. -![Learn with AI series](../../translated_images/tr/3.9b58fd8d6c373c20.webp) +![AI ile öğrenme serisi](../../translated_images/tr/3.9b58fd8d6c373c20.webp) -# Yeni Başlayanlar İçin Makine Öğrenmesi - Bir Müfredat +# Yeni Başlayanlar için Makine Öğrenmesi - Bir Müfredat -> 🌍 Dünya kültürleri üzerinden Makine Öğrenmesini keşfederken dünyayı dolaşın 🌍 +> 🌍 Dünya kültürleri yoluyla Makine Öğrenmesini keşfederken dünyayı gezin 🌍 -Microsoft'taki Bulut Savunucuları, tamamen **Makine Öğrenmesi** ile ilgili 12 haftalık, 26 derslik bir müfredat sunmaktan mutluluk duyar. Bu müfredatta, bazen **klasik makine öğrenmesi** olarak adlandırılan şeyler, öncelikle Scikit-learn kütüphanesi kullanılarak ve bizim [Yapay Zeka için Yeni Başlayanlar müfredatımızda](https://aka.ms/ai4beginners) ele alınan derin öğrenmeden kaçınarak öğrenilecektir. Bu dersleri ayrıca ['Yeni Başlayanlar için Veri Bilimi müfredatıyla'](https://aka.ms/ds4beginners) eşleştirebilirsiniz! +Microsoft'taki Bulut Savunucuları, tamamen **Makine Öğrenmesi** üzerine 12 haftalık, 26 derslik bir müfredat sunmaktan mutluluk duyar. Bu müfredatta, çoğunlukla Scikit-learn kütüphanesini kullanarak ve derin öğrenmeden kaçınarak, bazen **klasik makine öğrenmesi** olarak adlandırılan konuları öğreneceksiniz; derin öğrenme ise [Yenidoğanlar için AI müfredatımızda](https://aka.ms/ai4beginners) ele alınmaktadır. Ayrıca, bu dersleri ['Yeni Başlayanlar için Veri Bilimi müfredatıyla'](https://aka.ms/ds4beginners) eşleştirebilirsiniz! -Bu klasik teknikleri dünyanın birçok bölgesinden gelen verilere uygularken bizimle birlikte yolculuk yapın. Her ders öncesinde ve sonrasında quizler, dersi tamamlamak için yazılı talimatlar, bir çözüm, bir ödev ve daha fazlası bulunmaktadır. Proje tabanlı öğretim yöntemimiz, yeni becerilerin 'yerleşmesi' için kanıtlanmış bir yol olarak, öğrenirken inşa etmenizi sağlar. +Dünya genelindeki birçok bölgeden verilerle bu klasik teknikleri uygularken bizimle seyahat edin. Her ders öncesi ve sonrası sınavları, dersin tamamlanması için yazılı talimatlar, bir çözüm, bir görev ve daha fazlasını içerir. Proje tabanlı öğretim yöntemimiz, yeni becerilerin kalıcı olmasını sağlayan kanıtlanmış bir öğrenme yoludur. **✍️ Yazarlarımıza içten teşekkürler** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu ve Amy Boyd -**🎨 İllüstratörlerimize ayrıca teşekkürler** Tomomi Imura, Dasani Madipalli ve Jen Looper +**🎨 İllüstratörlerimize teşekkürler** Tomomi Imura, Dasani Madipalli ve Jen Looper -**🙏 Microsoft Öğrenci Elçileri yazarlarına, gözden geçirenlerine ve içerik katkı sağlayanlarına özel teşekkürler**, özellikle Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ve Snigdha Agarwal +**🙏 Özel teşekkürler 🙏 Microsoft Öğrenci Elçisi yazarlarımıza, inceleyicilerimize ve içerik katkıda bulunanlara**, özellikle Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila ve Snigdha Agarwal -**🤩 Microsoft Öğrenci Elçileri Eric Wanjau, Jasleen Sondhi ve Vidushi Gupta’ya R dersleri için ekstra teşekkürler!** +**🤩 R derslerimiz için Microsoft Öğrenci Elçileri Eric Wanjau, Jasleen Sondhi ve Vidushi Gupta’ya ekstra teşekkürler!** # Başlarken -Bu adımları izleyin: +Şu adımları izleyin: 1. **Depoyu Forklayın**: Bu sayfanın sağ üst köşesindeki "Fork" butonuna tıklayın. 2. **Depoyu Klonlayın**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [Bu ders için tüm ek kaynakları Microsoft Learn koleksiyonumuzda bulun](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -> 🔧 **Yardıma mı ihtiyacınız var?** Kurulum, ayar ve ders çalıştırma ile ilgili yaygın sorunların çözümleri için [Sorun Giderme Kılavuzumuzu](TROUBLESHOOTING.md) kontrol edin. +> [Bu kurs için tüm ek kaynakları Microsoft Learn koleksiyonumuzda bulun](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> 🔧 **Yardıma mı ihtiyacınız var?** Kurulum, ayar ve ders çalıştırmadaki yaygın sorunlar için [Sorun Giderme Rehberimizi](TROUBLESHOOTING.md) kontrol edin. -**[Öğrenciler](https://aka.ms/student-page)**, bu müfredatı kullanmak için tüm repoyu kendi GitHub hesabınıza fork yapın ve egzersizleri tek başınıza veya bir grupla tamamlayın: +**[Öğrenciler](https://aka.ms/student-page)**, bu müfredatı kullanmak için tüm depoyu kendi GitHub hesabınıza fork’layın ve alıştırmaları kendi başınıza ya da bir grupla tamamlayın: -- Ders öncesi quiz ile başlayın. -- Dersi okuyun ve her bilgi kontrolünde durup düşünerek etkinlikleri tamamlayın. -- Çözüm kodunu çalıştırmak yerine dersleri anlayarak projeleri oluşturmaya çalışın; ancak çözüm kodu her proje odaklı dersin `/solution` klasörlerinde mevcuttur. -- Ders sonrası quiz'i yapın. -- Mücadeleyi tamamlayın. +- Ders öncesi sınavla başlayın. +- Dersi okuyun ve her bilgi kontrol noktasında durup düşünerek etkinlikleri tamamlayın. +- Çözüme ait kodu çalıştırmak yerine dersleri anlayarak projeleri oluşturmayı deneyin; bu kod her proje odaklı dersin `/solution` klasörlerinde mevcuttur. +- Ders sonrası sınavı yapın. +- Meydan okumayı tamamlayın. - Ödevi tamamlayın. -- Bir ders grubunu tamamladıktan sonra, [Tartışma Panosunu](https://github.com/microsoft/ML-For-Beginners/discussions) ziyaret edin ve uygun PAT rubriğini doldurarak "sesli öğrenme" yapın. 'PAT' bir İlerleme Değerlendirme Aracı olup, öğreniminizi ilerletmek için doldurulan bir rubriktir. Ayrıca diğer PAT'lere tepki gösterebilir böylece birlikte öğrenebiliriz. +- Bir ders grubunu tamamladıktan sonra [Tartışma Panosunu](https://github.com/microsoft/ML-For-Beginners/discussions) ziyaret edin ve uygun PAT rubriğini doldurarak "yüksek sesle öğrenin". 'PAT', öğrenmeyi ilerletmek için doldurduğunuz bir İlerleme Değerlendirme Aracıdır. Ayrıca diğer PAT’lere tepki vererek birlikte öğrenebiliriz. > Daha ileri çalışmalar için bu [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) modüllerini ve öğrenme yollarını takip etmenizi öneririz. -**Öğretmenler**, bu müfredatın nasıl kullanılacağına dair bazı [önerilerimizi](for-teachers.md) ekledik. +**Öğretmenler**, bu müfredatı kullanmanıza dair [bazı öneriler](for-teachers.md) ekledik. --- -## Video anlatımlar +## Video anlatımları -Bazı dersler kısa video formatında mevcuttur. Bunların tümünü derslerin içinde veya Microsoft Developer YouTube kanalındaki [Yeni Başlayanlar için ML oynatma listesinde](https://aka.ms/ml-beginners-videos) aşağıdaki görsele tıklayarak bulabilirsiniz. +Bazı dersler kısa form video olarak mevcuttur. Tüm bunları derslerde satır içinde veya aşağıdaki görsele tıklayarak Microsoft Developer YouTube kanalındaki [Yeni Başlayanlar için Makine Öğrenmesi oynatma listesinde](https://aka.ms/ml-beginners-videos) bulabilirsiniz. -[![ML for beginners banner](../../translated_images/tr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![Yeni Başlayanlar için ML afişi](../../translated_images/tr/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Takımla Tanışın +## Takımımızla Tanışın -[![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) +[![Tanıtım videosu](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif yapan** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Proje ve yaratan kişiler hakkında bir video için yukarıdaki görsele tıklayın! +> 🎥 Proje ve yaratanları hakkında video için yukarıdaki görsele tıklayın! --- ## Pedagoji -Bu müfredatı oluştururken iki pedagojik ilkeye karar verdik: pratik yapmaya dayalı **proje tabanlı** olması ve **sık quizler** içermesi. Ayrıca, müfredatın birleşikliğini sağlamak için ortak bir **tema** bulunmaktadır. +Bu müfredatı oluştururken iki pedagojik ilke seçtik: uygulamalı **proje tabanlı** olmasını ve **sık sık sınavlar** içermesini sağlamak. Ayrıca, müfredatın bir bütünlük kazanması için ortak bir **tema** bulunmaktadır. -İçeriğin projelerle hizalanmasını sağlayarak süreç öğrenciler için daha ilgi çekici hale gelir ve kavramların kalıcılığı artırılır. Ayrıca, ders öncesi düşük riskli bir quiz öğrencinin bir konuyu öğrenmeye yönelik niyetini belirlerken, ders sonrası ikinci quiz kavramların daha iyi pekişmesini sağlar. Bu müfredat esnek ve eğlenceli olacak şekilde tasarlanmış olup, tümü veya bir kısmı takip edilebilir. Projeler küçük başlar ve 12 haftalık döngünün sonunda giderek karmaşıklaşır. Bu müfredat ayrıca, ek kredi veya tartışma temeli olarak kullanılabilecek ML'nin gerçek dünyadaki uygulamalarına dair bir son söz içermektedir. +İçeriğin projelerle uyumlu olmasını sağlayarak süreç öğrenciler için daha ilgi çekici hale getirilir ve kavramların kalıcılığı artırılır. Ayrıca, dersten önceki düşük riskli bir sınav öğrencinin öğrenme niyetini belirlerken, dersten sonraki ikinci sınav öğrenmeyi pekiştirir. Bu müfredat esnek ve eğlenceli olacak şekilde tasarlanmıştır ve tamamı ya da bir kısmı alınabilir. Projeler küçük başlayıp 12 haftalık döngünün sonunda giderek karmaşıklaşır. Müfredat, gerçek dünyadaki ML uygulamaları hakkında ekstra kredi ya da tartışma temeli olarak kullanılabilecek bir son bölüm de içerir. -> [Davranış Kurallarımızı](CODE_OF_CONDUCT.md), [Katkıda Bulunma](CONTRIBUTING.md), [Çeviriler](..) ve [Sorun Giderme](TROUBLESHOOTING.md) yönergelerimizi bulun. Yapıcı geri bildirimlerinizi memnuniyetle karşılıyoruz! +> [Davranış Kurallarımızı](CODE_OF_CONDUCT.md), [Katkıda Bulunma](CONTRIBUTING.md), [Çevirilerimizi](..) ve [Sorun Giderme](TROUBLESHOOTING.md) rehberlerini bulun. Yapıcı geri bildiriminizi memnuniyetle karşılıyoruz! -## Her ders içeriği +## Her ders içerir - isteğe bağlı çizim notu -- isteğe bağlı tamamlayıcı video +- isteğe bağlı destekleyici video - video anlatımı (sadece bazı derslerde) -- [ders öncesi ısınma quiz'i](https://ff-quizzes.netlify.app/en/ml/) +- [ders öncesi ısınma sınavı](https://ff-quizzes.netlify.app/en/ml/) - yazılı ders -- proje tabanlı derslerde, projeyi nasıl oluşturacağınıza dair adım adım rehberler -- bilgi kontrolleri -- bir mücadele -- tamamlayıcı okuma +- proje tabanlı derslerde, projeyi inşa etmek için adım adım rehberler +- bilgi kontrol noktaları +- bir meydan okuma +- ek okumalar - ödev -- [ders sonrası quiz](https://ff-quizzes.netlify.app/en/ml/) - -> **Diller hakkında bir not**: Bu dersler öncelikle Python ile yazılmıştır, ancak birçoğu R dilinde de mevcuttur. Bir R dersini tamamlamak için `/solution` klasörüne gidin ve R derslerini arayın. Bunlar, bir **R Markdown** dosyasını temsil eden .rmd uzantısına sahiptir; bu, `kod parçacıkları` (R veya diğer dillerde) ve `YAML başlığı` (PDF gibi çıktı biçimlerinin nasıl formatlanacağını yönlendirir) içeren bir `Markdown belgeleri` gömme dosyası olarak basitçe tanımlanabilir. Dolayısıyla, kodunuzu, çıktısını ve düşüncelerinizi Markdown içinde yazmanıza izin vererek veri bilimi için örnek bir oluşturma çerçevesi sunar. Dahası, R Markdown belgeleri PDF, HTML veya Word gibi çıktı formatlarına dönüştürülebilir. -> **Sınavlar hakkında bir not**: Tüm sınavlar [Quiz App klasöründe](../../quiz-app) bulunmakta olup, her biri üç sorudan oluşan toplam 52 sınav vardır. Derslerin içinde bağlantıları verilmiştir ancak quiz uygulaması yerel olarak da çalıştırılabilir; yerel olarak barındırmak veya Azure’a dağıtmak için `quiz-app` klasöründeki talimatları izleyin. - -| Ders Numarası | Konu | Ders Grubu | Öğrenme Hedefleri | Bağlantılı Ders | Yazar | -| :-----------: | :------------------------------------------------------------: | :--------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| 01 | Makine öğrenimine giriş | [Giriş](1-Introduction/README.md) | Makine öğrenmesinin temel kavramlarını öğren | [Ders](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Makine öğrenmesinin tarihi | [Giriş](1-Introduction/README.md) | Bu alandaki tarihsel gelişmeleri öğren | [Ders](1-Introduction/2-history-of-ML/README.md) | Jen ve Amy | -| 03 | Adalet ve makine öğrenimi | [Giriş](1-Introduction/README.md) | Öğrencilerin ML modelleri oluştururken ve uygularken dikkate almaları gereken önemli adalet felsefi meselelerini anlamak | [Ders](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Makine öğrenimi teknikleri | [Giriş](1-Introduction/README.md) | Makine öğrenimi araştırmacılarının ML modelleri oluşturmak için kullandığı teknikler nelerdir? | [Ders](1-Introduction/4-techniques-of-ML/README.md) | Chris ve Jen | -| 05 | Regresyona giriş | [Regresyon](2-Regression/README.md) | Regresyon modelleri için Python ve Scikit-learn ile başlayın | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Kuzey Amerika balkabağı fiyatları 🎃 | [Regresyon](2-Regression/README.md) | Makine öğrenimi için veri görselleştirin ve temizleyin | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Kuzey Amerika balkabağı fiyatları 🎃 | [Regresyon](2-Regression/README.md) | Doğrusal ve polinomiyal regresyon modelleri oluşturun | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ve Dmitry • Eric Wanjau | -| 08 | Kuzey Amerika balkabağı fiyatları 🎃 | [Regresyon](2-Regression/README.md) | Lojistik regresyon modeli oluşturun | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Bir Web Uygulaması 🔌 | [Web Uygulaması](3-Web-App/README.md) | Eğittiğiniz modeli kullanmak için bir web uygulaması oluşturun | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Sınıflandırmaya giriş | [Sınıflandırma](4-Classification/README.md) | Verilerinizi temizleyin, hazırlayın ve görselleştirin; sınıflandırmaya giriş | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ve Cassie • Eric Wanjau | -| 11 | Lezzetli Asya ve Hint mutfağı 🍜 | [Sınıflandırma](4-Classification/README.md) | Sınıflandırıcılara giriş | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ve Cassie • Eric Wanjau | -| 12 | Lezzetli Asya ve Hint mutfağı 🍜 | [Sınıflandırma](4-Classification/README.md) | Daha fazla sınıflandırıcı | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ve Cassie • Eric Wanjau | -| 13 | Lezzetli Asya ve Hint mutfağı 🍜 | [Sınıflandırma](4-Classification/README.md) | Modelinizi kullanarak öneri web uygulaması oluşturun | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Kümelemeye giriş | [Kümeleme](5-Clustering/README.md) | Verilerinizi temizleyin, hazırlayın ve görselleştirin; kümelemeye giriş | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Nijerya Müzik Tatlarını Keşfetmek 🎧 | [Kümeleme](5-Clustering/README.md) | K-Means kümeleme yöntemini keşfedin | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Doğal dil işleme tanıtımı ☕️ | [Doğal dil işleme](6-NLP/README.md) | Basit bir bot oluşturarak NLP'nin temellerini öğrenin | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Yaygın NLP Görevleri ☕️ | [Doğal dil işleme](6-NLP/README.md) | Dil yapılarıyla uğraşırken gereken yaygın görevleri anlayarak NLP bilginizi derinleştirin | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Çeviri ve duygu analizi ♥️ | [Doğal dil işleme](6-NLP/README.md) | Jane Austen ile çeviri ve duygu analizi | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Avrupa’nın romantik otelleri ♥️ | [Doğal dil işleme](6-NLP/README.md) | Otel incelemeleriyle duygu analizi 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Avrupa’nın romantik otelleri ♥️ | [Doğal dil işleme](6-NLP/README.md) | Otel incelemeleriyle duygu analizi 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Zaman serileri tahminine giriş | [Zaman Serisi](7-TimeSeries/README.md) | Zaman serileri tahminine giriş | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Dünya Elektrik Kullanımı ⚡️ - ARIMA ile zaman serileri tahmini | [Zaman Serisi](7-TimeSeries/README.md) | ARIMA ile zaman serileri tahmini | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Dünya Elektrik Kullanımı ⚡️ - SVR ile zaman serileri tahmini | [Zaman Serisi](7-TimeSeries/README.md) | Destek Vektör Regresörü ile zaman serileri tahmini | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Pekiştirmeli öğrenmeye giriş | [Pekiştirmeli öğrenme](8-Reinforcement/README.md) | Q-Öğrenme ile pekiştirmeli öğrenmeye giriş | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Peter'ı kurttan kurtarın! 🐺 | [Pekiştirmeli öğrenme](8-Reinforcement/README.md) | Pekiştirmeli öğrenme Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Son Söz | Gerçek dünya ML senaryoları ve uygulamaları | [Doğada ML](9-Real-World/README.md) | Klasik ML’nin ilginç ve açıklayıcı gerçek dünya uygulamaları | [Ders](9-Real-World/1-Applications/README.md) | Ekip | -| Son Söz | RAI dashboard kullanarak ML model hata ayıklama | [Doğada ML](9-Real-World/README.md) | Responsible AI dashboard bileşenleri kullanarak Makine Öğreniminde Model Hata Ayıklama | [Ders](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [ders sonrası sınav](https://ff-quizzes.netlify.app/en/ml/) +> **Diller hakkında bir not**: Bu dersler ağırlıklı olarak Python ile yazılmıştır, ancak birçok ders R dilinde de mevcuttur. Bir R dersini tamamlamak için, `/solution` klasörüne gidip R derslerini arayabilirsiniz. Bunlar, `R Markdown` dosyasını temsil eden .rmd uzantısına sahiptir; bu, basitçe `kod parçacıklarının` (R veya diğer dillerden) ve çıktı formatlarını nasıl şekillendireceğini belirten `YAML başlığının` birleştirilmesiyle oluşturulan bir `Markdown belgesi` olarak tanımlanabilir. Bu nedenle, kodunuzu, çıktılarını ve düşüncelerinizi Markdown ile yazarak birleştirmenizi sağlayan, veri bilimi için örnek teşkil eden bir yazım çerçevesi olarak hizmet eder. Ayrıca, R Markdown belgeleri PDF, HTML veya Word gibi çıktı formatlarına dönüştürülebilir. + +> **Quizler hakkında bir not**: Tüm quizler, toplam 52 adet üç soruluk quiz içeren [Quiz App klasöründe](../../quiz-app) bulunmaktadır. Derslerin içinden bağlantı verilmiştir, ancak quiz uygulaması yerel olarak da çalıştırılabilir; `quiz-app` klasöründeki talimatları izleyerek yerel olarak barındırabilir veya Azure'a dağıtabilirsiniz. + +| Ders Numarası | Konu | Ders Gruplandırması | Öğrenme Hedefleri | Bağlantılı Ders | Yazar | +| :-----------: | :------------------------------------------------------------: | :-----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | +| 01 | Makine öğrenimine giriş | [Giriş](1-Introduction/README.md) | Makine öğrenmesinin temel kavramlarını öğrenin | [Ders](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Makine öğrenmesinin tarihi | [Giriş](1-Introduction/README.md) | Bu alanın arkasındaki tarihi öğrenin | [Ders](1-Introduction/2-history-of-ML/README.md) | Jen ve Amy | +| 03 | Adalet ve makine öğrenmesi | [Giriş](1-Introduction/README.md) | ML modelleri oluştururken ve uygularken öğrencilerin dikkate alması gereken önemli felsefi adalet konuları nelerdir? | [Ders](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Makine öğrenmesi teknikleri | [Giriş](1-Introduction/README.md) | ML araştırmacılarının ML modelleri oluşturmak için kullandığı teknikler nelerdir? | [Ders](1-Introduction/4-techniques-of-ML/README.md) | Chris ve Jen | +| 05 | Regresyona giriş | [Regresyon](2-Regression/README.md) | Regresyon modelleri için Python ve Scikit-learn ile başlayın | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Kuzey Amerika balkabağı fiyatları 🎃 | [Regresyon](2-Regression/README.md) | Makine öğrenmesi için veriyi görselleştirin ve temizleyin | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Kuzey Amerika balkabağı fiyatları 🎃 | [Regresyon](2-Regression/README.md) | Doğrusal ve polinom regresyon modelleri oluşturun | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen ve Dmitry • Eric Wanjau | +| 08 | Kuzey Amerika balkabağı fiyatları 🎃 | [Regresyon](2-Regression/README.md) | Lojistik regresyon modeli oluşturun | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Bir Web Uygulaması 🔌 | [Web Uygulaması](3-Web-App/README.md) | Eğitilmiş modelinizi kullanmak için bir web uygulaması oluşturun | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Sınıflandırmaya giriş | [Sınıflandırma](4-Classification/README.md) | Verinizi temizleyin, hazırlayın ve görselleştirin; sınıflandırmaya giriş | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen ve Cassie • Eric Wanjau | +| 11 | Lezzetli Asya ve Hint mutfakları 🍜 | [Sınıflandırma](4-Classification/README.md) | Sınıflandırıcılara giriş | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen ve Cassie • Eric Wanjau | +| 12 | Lezzetli Asya ve Hint mutfakları 🍜 | [Sınıflandırma](4-Classification/README.md) | Daha fazla sınıflandırıcı | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen ve Cassie • Eric Wanjau | +| 13 | Lezzetli Asya ve Hint mutfakları 🍜 | [Sınıflandırma](4-Classification/README.md) | Modelinizi kullanarak bir öneri web uygulaması oluşturun | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Kümelemeye giriş | [Kümeleme](5-Clustering/README.md) | Verinizi temizleyin, hazırlayın ve görselleştirin; Kümelemeye giriş | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Nijerya Müzik Zevklerini Keşfetmek 🎧 | [Kümeleme](5-Clustering/README.md) | K-Means kümeleme yöntemini keşfedin | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Doğal dil işleme giriş ☕️ | [Doğal Dil İşleme](6-NLP/README.md) | Basit bir bot oluşturarak NLP temel bilgileri öğrenin | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Yaygın NLP Görevleri ☕️ | [Doğal Dil İşleme](6-NLP/README.md) | Dil yapıları ile çalışırken gerekli olan yaygın görevleri anlamak için NLP bilginizi derinleştirin | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Çeviri ve duygu analizi ♥️ | [Doğal Dil İşleme](6-NLP/README.md) | Jane Austen ile çeviri ve duygu analizi | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Avrupa'nın romantik otelleri ♥️ | [Doğal Dil İşleme](6-NLP/README.md) | Otel yorumları ile duygu analizi 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Avrupa'nın romantik otelleri ♥️ | [Doğal Dil İşleme](6-NLP/README.md) | Otel yorumları ile duygu analizi 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Zaman serisi tahminine giriş | [Zaman Serisi](7-TimeSeries/README.md) | Zaman serisi tahminine giriş | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Dünya Güç Kullanımı ⚡️ - ARIMA ile zaman serisi tahmini | [Zaman Serisi](7-TimeSeries/README.md) | ARIMA ile zaman serisi tahmini | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Dünya Güç Kullanımı ⚡️ - SVR ile zaman serisi tahmini | [Zaman Serisi](7-TimeSeries/README.md) | Destek Vektör Regresörü ile zaman serisi tahmini | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Pekiştirmeli öğrenmeye giriş | [Pekiştirmeli Öğrenme](8-Reinforcement/README.md) | Q-Öğrenme ile pekiştirmeli öğrenmeye giriş | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Peter'ın kurttan kaçmasına yardım edin! 🐺 | [Pekiştirmeli Öğrenme](8-Reinforcement/README.md) | Pekiştirmeli öğrenme Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | Gerçek dünya ML senaryoları ve uygulamaları | [Doğada ML](9-Real-World/README.md) | Klasik ML'nin ilginç ve aydınlatıcı gerçek dünya uygulamaları | [Ders](9-Real-World/1-Applications/README.md) | Takım | +| Postscript | RAI kontrol panelini kullanarak ML modellerini hata ayıklama | [Doğada ML](9-Real-World/README.md) | Responsible AI kontrol paneli bileşenlerini kullanarak Makine Öğrenmesinde model hata ayıklama | [Ders](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [Bu kurs için tüm ek kaynakları Microsoft Learn koleksiyonumuzda bulun](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Çevrimdışı erişim -[Docsify](https://docsify.js.org/#/) kullanarak bu dokümantasyonu çevrimdışı çalıştırabilirsiniz. Bu depoyu çatallayın, yerel makinenize [Docsify yükleyin](https://docsify.js.org/#/quickstart) ve ardından bu deponun kök klasöründe `docsify serve` yazın. Web sitesi localhost’unuzda 3000 numaralı portta hizmet verecektir: `localhost:3000`. +Bu dokümantasyonu çevrimdışı kullanmak için [Docsify](https://docsify.js.org/#/) kullanabilirsiniz. Bu depoyu çatallayın, yerel makinenize [Docsify kurun](https://docsify.js.org/#/quickstart) ve ardından bu deponun kök klasöründe `docsify serve` yazın. Web sitesi localhost'unuzda 3000 portunda sunulacaktır: `localhost:3000`. -## PDF’ler +## PDF'ler -Bağlantılarla birlikte müfredatın pdf’sini [burada](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) bulun. +Konu anlatımını bağlantılar ile birlikte pdf formatında [burada](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) bulabilirsiniz. ## 🎒 Diğer Kurslar -Ekibimiz başka kurslar da üretiyor! Şunlara göz atın: +Ekibimiz başka kurslar da üretmektedir! Göz atın: ### LangChain @@ -185,43 +184,43 @@ Ekibimiz başka kurslar da üretiyor! Şunlara göz atın: ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için AI Ajanları](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Üretken AI Serisi -[![Yeni Başlayanlar için Üretken Yapay Zeka](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Üretken Yapay Zeka (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Üretken Yapay Zeka (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Üretken Yapay Zeka (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için Üretken AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Üretken AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Üretken AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Üretken AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Temel Öğrenme -[![Yeni Başlayanlar için ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Yeni Başlayanlar için Veri Bilimi](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![Yeni Başlayanlar için Yapay Zeka](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Yeni Başlayanlar için Siber Güvenlik](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Yeni Başlayanlar için Web Geliştirme](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![Yeni Başlayanlar için IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![Yeni Başlayanlar için XR Geliştirme](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için ML](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için Veri Bilimi](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için Siber Güvenlik](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Başlangıç için Web Geliştirme](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Başlangıç için XR Geliştirme](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Copilot Serisi -[![AI Eşli Programlama için Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Yapay Zekâ Eşli Programlama için Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) [![C#/.NET için Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) [![Copilot Macerası](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## Yardım Alma +## Yardım Almak -Yapay zeka uygulamaları geliştirme sürecinde takılırsanız veya herhangi bir sorunuz olursa, MCP hakkında tartışmalara katılmak için diğer öğrenenler ve deneyimli geliştiricilerle bir araya gelin. Soruların hoş karşılandığı ve bilgilerin özgürce paylaşıldığı destekleyici bir topluluktur. +Yapay zekâ uygulamaları geliştirirken takılırsanız veya herhangi bir sorunuz olursa. MCP hakkında tartışmalara katılmak için diğer öğrenenler ve deneyimli geliştiricilerle bir araya gelin. Sorulara açık ve bilginin özgürce paylaşıldığı destekleyici bir topluluktur. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Ürün geri bildirimleri veya geliştirme sırasında karşılaştığınız hatalar için ziyaret edin: +Ürün geri bildiriminiz veya geliştirme sırasında karşılaştığınız hatalar için ziyaret edin: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Ek Öğrenme İpuçları @@ -233,6 +232,6 @@ Yapay zeka uygulamaları geliştirme sürecinde takılırsanız veya herhangi bi --- -**Feragatname**: -Bu belge, [Co-op Translator](https://github.com/Azure/co-op-translator) adlı yapay zeka çeviri hizmeti kullanılarak çevrilmiştir. Doğruluk için çaba gösterilse de, otomatik çevirilerde hatalar veya yanlışlıklar bulunabilir. Orijinal belge, kendi dilinde yetkili ve kesin kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucunda doğabilecek yanlış anlamalar veya yorum hatalarından sorumlu değiliz. +**Feragatname**: +Bu belge, AI çeviri hizmeti [Co-op Translator](https://github.com/Azure/co-op-translator) kullanılarak çevrilmiştir. Doğruluk için çaba sarf etsek de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen göz önünde bulundurun. Orijinal belge, kendi dilinde yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımı sonucu ortaya çıkabilecek herhangi bir yanlış anlama veya yanlış yorumdan dolayı sorumluluk kabul etmiyoruz. \ No newline at end of file diff --git a/translations/uk/.co-op-translator.json b/translations/uk/.co-op-translator.json index 761d8fb4b..52c6f6517 100644 --- a/translations/uk/.co-op-translator.json +++ b/translations/uk/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "uk" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T07:37:42+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:34:56+00:00", "source_file": "README.md", "language_code": "uk" }, diff --git a/translations/uk/README.md b/translations/uk/README.md index 8348893e7..36bc4a281 100644 --- a/translations/uk/README.md +++ b/translations/uk/README.md @@ -10,14 +10,14 @@ ### 🌐 Підтримка багатьох мов -#### Підтримується через GitHub Action (автоматизовано і постійно актуально) +#### Підтримується через GitHub Action (автоматично та завжди актуально) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](./README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](./README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) > **Віддаєте перевагу клонувати локально?** > -> Цей репозиторій містить понад 50 мов перекладів, що значно збільшує розмір завантаження. Щоб клонувати без перекладів, використовуйте sparse checkout: +> Цей репозиторій містить понад 50 перекладів мов, що значно збільшує розмір завантаження. Щоб клонувати без перекладів, використовуйте sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,63 +33,63 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Це дасть вам усе необхідне для проходження курсу з набагато швидшим завантаженням. +> Це дасть вам все необхідне для проходження курсу з набагато швидшим завантаженням. #### Приєднуйтесь до нашої спільноти [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -У нас триває серія Discord для навчання з AI, дізнайтеся більше та приєднуйтеся до нас на [Learn with AI Series](https://aka.ms/learnwithai/discord) з 18 по 30 вересня 2025 року. Ви отримаєте поради та лайфхаки використання GitHub Copilot для Data Science. +Ми проводимо серію Discord для навчання з AI, дізнайтеся більше і приєднуйтесь до нас на [Learn with AI Series](https://aka.ms/learnwithai/discord) з 18 по 30 вересня 2025 року. Ви отримаєте поради та прийоми використання GitHub Copilot для Data Science. ![Learn with AI series](../../translated_images/uk/3.9b58fd8d6c373c20.webp) -# Машинне навчання для початківців — Навчальна програма +# Машинне навчання для початківців - навчальна програма -> 🌍 Подорожуйте навколо світу, досліджуючи машинне навчання через призму світових культур 🌍 +> 🌍 Подорожуємо навколо світу, досліджуючи машинне навчання через призму світових культур 🌍 -Cloud Advocates у Microsoft раді запропонувати 12-тижневу програму з 26 уроків, присвячену **машинному навчанню**. У цій навчальній програмі ви дізнаєтеся про те, що інколи називають **класичним машинним навчанням**, використовуючи переважно бібліотеку Scikit-learn і уникаючи глибинного навчання, яке викладається у нашій [навчальній програмі AI для початківців](https://aka.ms/ai4beginners). Поєднуйте ці уроки з нашим ['Data Science для початківців'](https://aka.ms/ds4beginners)! +Команда Cloud Advocates в Microsoft рада запропонувати 12-тижневу навчальну програму з 26 уроками, повністю присвячену **машинному навчанню**. У цій програмі ви дізнаєтеся про те, що іноді називають **класичним машинним навчанням**, використовуючи переважно бібліотеку Scikit-learn та уникаючи глибинного навчання, яке розглядається в нашій [навчальній програмі «AI для початківців»](https://aka.ms/ai4beginners). Також поєднуйте ці уроки з нашою ['Data Science для початківців'](https://aka.ms/ds4beginners)! -Подорожуйте з нами світом, застосовуючи класичні техніки до даних з різних куточків планети. Кожен урок містить тести до та після занять, письмові інструкції, розв’язок, завдання та інше. Наш проектно-орієнтований підхід дозволяє навчатись, створюючи проекти, що доведено сприяє закріпленню нових навичок. +Подорожуйте з нами по світу, застосовуючи ці класичні методи до даних з різних регіонів. Кожен урок містить опитування перед і після уроку, письмові інструкції для виконання завдання, розв’язок, домашнє завдання і більше. Наша проектно-орієнтована педагогіка дозволяє вчитися через створення проектів, що є доведеним способом закріплення нових навичок. -**✍️ Щира подяка авторам** Джен Лупер, Стівен Гауелл, Франческа Лаззері, Томомі Імура, Кессі Брів'ю, Дмитрію Сошникову, Крісу Норінгу, Анірбану Мукерджі, Орнелле Альтун'ян, Рут Якубу та Емі Бойд +**✍️ Величезна подяка нашим авторам** Джен Лупер, Стівен Гауелл, Франческа Лаззер, Томомі Імура, Кессі Бревіу, Дмитру Сошникову, Кріса Норінга, Анірбану Мукерджі, Орнеллі Альтунян, Рут Якобу та Емі Бойд -**🎨 Подяка також ілюстраторам** Томомі Імура, Дасані Мадіпаллі та Джен Лупер +**🎨 Також дякуємо нашим ілюстраторам** Томомі Імура, Дасані Мадіпаллі та Джен Лупер -**🙏 Особлива подяка 🙏 студентам-амбасадорам Microsoft, авторам, рецензентам та контриб’юторам**, зокрема Рішиту Даглі, Мухаммаду Сакиб Хану Інану, Рохану Раджу, Александру Петреску, Абгішеку Джайсвалу, Науріну Табассуму, Іоану Самуїлі та Снігдхі Агарвал +**🙏 Особлива подяка 🙏 авторам, рецензентам та співробітникам Microsoft Student Ambassador**, зокрема Рішиту Даглі, Мухаммеду Сакібу Хану Інану, Рохану Раджу, Александру Петреску, Абхішеку Джайсвалу, Навріну Табассум, Іоану Самуїлі та Снігдха Агарвал -**🤩 Окрема вдячність студентам-амбасадорам Microsoft Еріку Ванджау, Джаслін Сонді й Відуші Гупті за уроки R!** +**🤩 Окрема подяка амбасадорам Microsoft Student Ambassadors Еріку Ванджау, Джаслін Сонді та Відуші Гупті за наші уроки з R!** # Початок роботи -Дотримуйтесь цих кроків: -1. **Відфоркуйте репозиторій**: натисніть кнопку "Fork" у верхньому правому куті цієї сторінки. -2. **Клонуйте репозиторій**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +Дотримуйтеся цих кроків: +1. **Зробіть форк репозиторію**: Натисніть кнопку «Fork» у верхньому правому куті цієї сторінки. +2. **Клонуйте репозиторій**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [знайдіть усі додаткові ресурси курсу в нашій колекції Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [знайдіть усі додаткові ресурси для цього курсу в нашій колекції Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Потрібна допомога?** Перевірте наш [Посібник з розв’язання проблем](TROUBLESHOOTING.md) для вирішення типових питань із встановленням, налаштуванням і запуском уроків. +> 🔧 **Потрібна допомога?** Перегляньте наш [Посібник з усунення несправностей](TROUBLESHOOTING.md) для розв’язання поширених проблем із встановленням, налаштуванням і запуском уроків. -**[Студенти](https://aka.ms/student-page)**, щоб використовувати цю навчальну програму, форкніть увесь репозиторій у свій акаунт GitHub і виконуйте вправи самостійно або в групі: +**[Студенти](https://aka.ms/student-page)**, щоб користуватися цією навчальною програмою, форкніть увесь репозиторій до вашого акаунта на GitHub та виконуйте вправи самостійно або у групі: -- Почніть із квізу перед лекцією. -- Прочитайте лекцію та виконайте вправи, зупиняючись і осмислюючи кожен перевірковий момент. -- Намагайтеся створювати проекти, розуміючи уроки, а не просто запускаючи код розв’язку; однак цей код доступний у папках `/solution` кожного проектно-орієнтованого уроку. -- Пройдіть квіз після лекції. +- Почніть з опитування перед лекцією. +- Прочитайте лекцію і виконайте завдання, зупиняючись та рефлексуючи на кожній перевірці знань. +- Намагайтеся створювати проекти, розуміючи уроки, а не просто запускаючи код розв’язків; код доступний у папках `/solution` кожного проектно-орієнтованого уроку. +- Пройдіть опитування після лекції. - Виконайте виклик. -- Виконайте завдання. -- Після завершення групи уроків відвідайте [Дошку обговорень](https://github.com/microsoft/ML-For-Beginners/discussions) і "навчайтеся вголос", заповнюючи відповідний рубрикатор PAT. 'PAT' — це Інструмент Оцінки Прогресу, рубрикатор для подальшого закріплення навчання. Ви також можете реагувати на інші PAT, щоб навчатися разом. +- Виконайте домашнє завдання. +- Після завершення групи уроків відвідайте [Дошку обговорень](https://github.com/microsoft/ML-For-Beginners/discussions) і "вчіться вголос", заповнюючи відповідну рубрику PAT. PAT — це інструмент оцінки прогресу, тобто рубрика, яку ви заповнюєте для подальшого навчання. Ви також можете реагувати на інші PAT, щоб ми могли вчитися разом. -> Для подальшого вивчення рекомендуємо пройти ці [модулі та навчальні траєкторії Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). +> Для подальшого вивчення рекомендуємо слідкувати за цими [модулями та навчальними шляхами Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Вчителі**, ми підготували деякі [пропозиції](for-teachers.md) щодо використання цієї програми. +**Викладачі**, ми [додали кілька рекомендацій](for-teachers.md) щодо використання цієї навчальної програми. --- -## Відео-пояснення +## Відеоогляди -Деякі уроки доступні у вигляді коротких відео. Ви знайдете їх вбудованими у уроки або на [плейлисті ML for Beginners на YouTube каналі Microsoft Developer](https://aka.ms/ml-beginners-videos), натиснувши на зображення нижче. +Деякі уроки доступні у вигляді коротких відео. Ви можете знайти всі їх у тексті уроків або на [плейлисті ML for Beginners на YouTube-каналі Microsoft Developer](https://aka.ms/ml-beginners-videos), натиснувши на зображення нижче. [![ML for beginners banner](../../translated_images/uk/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -99,72 +99,72 @@ Cloud Advocates у Microsoft раді запропонувати 12-тижнев [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Гіф від** [Мохіта Джайсала](https://linkedin.com/in/mohitjaisal) +**Гіф від** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Клацніть на зображення вище, щоб переглянути відео про проект і людей, які його створили! +> 🎥 Натисніть на зображення вище, щоб побачити відео про проект та людей, які його створили! --- ## Педагогіка -При створенні цієї програми ми обрали два основних педагогічних принципи: забезпечення практичної **проектної орієнтації** та включення **частих вікторин**. Крім того, програма має спільну **тематичну лінію** для єдності. +Ми обрали два педагогічні принципи при створенні цієї програми: забезпечення практичної, **проектно-орієнтованої** форми навчання та включення **частих опитувань**. Крім того, ця програма має спільну **тематичну лінію**, що додає цілісності. -Забезпечення відповідності контенту проектам робить процес більш захопливим для студентів і покращує засвоєння понять. Крім того, легкий тест перед заняттям налаштовує студента на вивчення теми, а другий тест після заняття сприяє подальшому закріпленню знань. Програма розроблена гнучкою та цікавою і може проходитися повністю або частково. Проекти починаються з невеликих і поступово ускладнюються до кінця 12-тижневого циклу. Програма також містить постскрипт із реальними застосуваннями машинного навчання, який можна використати як бонус або для дискусії. +Забезпечуючи відповідність контенту проектам, процес стає більш захопливим для студентів і покращує запам’ятовування концепцій. Крім того, опитування з невисокою ставкою перед заняттям налаштовує студента на вивчення теми, а друге після заняття забезпечує подальше закріплення матеріалу. Ця програма спроектована бути гнучкою і цікавою, її можна проходити повністю або частково. Проекти починаються з простих і стають дедалі складнішими до кінця 12-тижневого циклу. У програмі також є доповнення про реальні застосування машинного навчання, яке можна використати як додатковий бал або як основу для обговорення. -> Знайдіть наші [Кодекс поведінки](CODE_OF_CONDUCT.md), [Інструкції з внеску](CONTRIBUTING.md), [Переклади](..) та [Посібник з усунення несправностей](TROUBLESHOOTING.md). Ми відкриті для ваших конструктивних відгуків! +> Ознайомтеся з нашим [Кодексом поведінки](CODE_OF_CONDUCT.md), [внесенням внеску](CONTRIBUTING.md), [перекладами](..) та [посібником з усунення несправностей](TROUBLESHOOTING.md). Ми вітаємо ваші конструктивні відгуки! -## Кожен урок містить +## Кожен урок включає -- необов’язкові скетчноти -- необов’язкове додаткове відео -- відео-пояснення (лише деякі уроки) -- [розігрівальний квіз перед лекцією](https://ff-quizzes.netlify.app/en/ml/) +- опціональні замальовки +- опціональне додаткове відео +- відеоогляд (лише деякі уроки) +- [опитування для розминки перед лекцією](https://ff-quizzes.netlify.app/en/ml/) - письмовий урок - для проектно-орієнтованих уроків — покрокові інструкції зі створення проекту - перевірки знань - виклик - додаткове читання -- завдання -- [квіз після лекції](https://ff-quizzes.netlify.app/en/ml/) - -> **Про мови програмування:** Ці уроки переважно написані на Python, але багато з них також доступні на R. Щоб пройти урок R, зайдіть у папку `/solution` і шукайте уроки на R. Вони містять розширення .rmd, що означає **R Markdown** файл – інтеграцію `кодових блоків` (з R або інших мов) і `YAML заголовка` (який визначає формат виводу, наприклад PDF) у `Markdown документі`. Таким чином, це виступає як зразкова рамка для авторства в науці про дані, оскільки дозволяє поєднувати код, його вивід та власні нотатки, записуючи їх у Markdown. Крім того, документи R Markdown можна конвертувати у формати виводу, такі як PDF, HTML або Word. -> **Примітка щодо вікторин**: Усі вікторини містяться у папці [Quiz App folder](../../quiz-app), всього 52 вікторини по три питання в кожній. Вони пов’язані з уроками, але програму вікторини можна запускати локально; дотримуйтесь інструкцій у папці `quiz-app` для локального розгортання або розгортання в Azure. - -| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | Вступ до машинного навчання | [Introduction](1-Introduction/README.md) | Вивчити основні поняття машинного навчання | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Історія машинного навчання | [Introduction](1-Introduction/README.md) | Вивчити історію цієї галузі | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | Справедливість і машинне навчання | [Introduction](1-Introduction/README.md) | Які важливі філософські питання щодо справедливості слід враховувати при створенні та застосуванні моделей МН? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Техніки машинного навчання | [Introduction](1-Introduction/README.md) | Які методи використовують дослідники МН для побудови моделей МН? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | Вступ до регресії | [Regression](2-Regression/README.md) | Почати працювати з Python та Scikit-learn для моделей регресії | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Ціни на гарбузи у Північній Америці 🎃 | [Regression](2-Regression/README.md) | Візуалізувати та очистити дані у підготовці до МН | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Ціни на гарбузи у Північній Америці 🎃 | [Regression](2-Regression/README.md) | Побудувати лінійні та поліноміальні регресійні моделі | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | Ціни на гарбузи у Північній Америці 🎃 | [Regression](2-Regression/README.md) | Побудувати модель логістичної регресії | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Веб-додаток 🔌 | [Web App](3-Web-App/README.md) | Побудувати веб-додаток для використання вашої натренованої моделі | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Вступ до класифікації | [Classification](4-Classification/README.md) | Очистити, підготувати та візуалізувати дані; вступ до класифікації | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | Смачні азійські та індійські страви 🍜 | [Classification](4-Classification/README.md) | Вступ до класифікаторів | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | Смачні азійські та індійські страви 🍜 | [Classification](4-Classification/README.md) | Ще більше класифікаторів | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | Смачні азійські та індійські страви 🍜 | [Classification](4-Classification/README.md) | Побудувати веб-додаток рекомендацій на основі вашої моделі | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Вступ до кластеризації | [Clustering](5-Clustering/README.md) | Очистити, підготувати та візуалізувати дані; вступ до кластеризації | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Дослідження музичних смаків Нігерії 🎧 | [Clustering](5-Clustering/README.md) | Ознайомитись з методом кластеризації K-середніх | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Вступ до обробки природної мови ☕️ | [Natural language processing](6-NLP/README.md) | Вивчити основи NLP, створивши простого бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Загальні завдання NLP ☕️ | [Natural language processing](6-NLP/README.md) | Поглибити знання з NLP, розібравшись із типовими завданнями при роботі з мовними структурами | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Переклад і аналіз настроїв ♥️ | [Natural language processing](6-NLP/README.md) | Переклад і аналіз настроїв з використанням творів Джейн Остін | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Романтичні готелі Європи ♥️ | [Natural language processing](6-NLP/README.md) | Аналіз настроїв за відгуками про готелі 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Романтичні готелі Європи ♥️ | [Natural language processing](6-NLP/README.md) | Аналіз настроїв за відгуками про готелі 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Вступ до прогнозування часових рядів | [Time series](7-TimeSeries/README.md) | Вступ до прогнозування часових рядів | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Світове споживання електроенергії ⚡️ - прогнозування з ARIMA | [Time series](7-TimeSeries/README.md) | Прогнозування часових рядів за допомогою ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Світове споживання електроенергії ⚡️ - прогнозування з SVR | [Time series](7-TimeSeries/README.md) | Прогнозування часових рядів за допомогою методу опорних векторів | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Вступ до підкріплювального навчання | [Reinforcement learning](8-Reinforcement/README.md) | Вступ до підкріплювального навчання з Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Допоможіть Пітеру уникнути вовка! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Gym для підкріплювального навчання | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Postscript | Реальні сценарії та застосування МН | [ML in the Wild](9-Real-World/README.md) | Цікаві та повчальні приклади застосування класичного машинного навчання | [Lesson](9-Real-World/1-Applications/README.md) | Team | -| Postscript | Відлагодження моделей МН за допомогою RAI dashboard | [ML in the Wild](9-Real-World/README.md) | Відлагодження моделей машинного навчання за допомогою компонентів RAI dashboard | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [знайдіть усі додаткові ресурси для цього курсу в нашій колекції Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- домашнє завдання +- [опитування після лекції](https://ff-quizzes.netlify.app/en/ml/) +> **Примітка про мови**: Ці уроки переважно написані на Python, але багато з них також доступні на R. Щоб пройти урок з R, перейдіть у папку `/solution` і знайдіть уроки на R. Вони мають розширення .rmd, що означає файл **R Markdown**, який можна просто визначити як інтеграцію `code chunks` (R чи інших мов) та `YAML header` (який керує тим, як форматувати виводи, наприклад PDF) у `Markdown документ`. Відтак, це слугує зразковим фреймворком для авторства в галузі науки про дані, оскільки дозволяє комбінувати ваш код, його вивід і ваші думки, дозволяючи записувати їх у Markdown. Крім того, документи R Markdown можна рендерити у формати виводу, такі як PDF, HTML чи Word. + +> **Примітка про вікторини**: Усі вікторини містяться у [папці Quiz App](../../quiz-app), всього 52 вікторини по три питання кожна. Вони пов’язані з уроками, але додаток для вікторин можна запускати локально; дотримуйтесь інструкцій у папці `quiz-app`, щоб запустити локально або розгорнути на Azure. + +| Номер уроку | Тема | Групування уроків | Навчальні цілі | Зв’язаний урок | Автор | +| :---------: | :------------------------------------------------------------: | :-----------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------: | +| 01 | Вступ до машинного навчання | [Introduction](1-Introduction/README.md) | Вивчіть базові поняття машинного навчання | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Історія машинного навчання | [Introduction](1-Introduction/README.md) | Дізнайтеся про історію цієї галузі | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | Справедливість і машинне навчання | [Introduction](1-Introduction/README.md) | Які важливі філософські питання щодо справедливості слід розглядати студентам при розробці та застосуванні моделей машинного навчання? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Техніки машинного навчання | [Introduction](1-Introduction/README.md) | Які техніки використовують дослідники машинного навчання для побудови моделей? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | Вступ до регресії | [Regression](2-Regression/README.md) | Почніть працювати з Python і Scikit-learn для моделей регресії | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Ціни гарбузів Північної Америки 🎃 | [Regression](2-Regression/README.md) | Візуалізуйте та очистьте дані у підготовці до машинного навчання | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Ціни гарбузів Північної Америки 🎃 | [Regression](2-Regression/README.md) | Побудуйте лінійні та поліноміальні моделі регресії | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | Ціни гарбузів Північної Америки 🎃 | [Regression](2-Regression/README.md) | Побудуйте модель логістичної регресії | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Веб-додаток 🔌 | [Web App](3-Web-App/README.md) | Побудуйте веб-додаток для використання вашої натренованої моделі | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Вступ до класифікації | [Classification](4-Classification/README.md) | Очистіть, підготуйте та візуалізуйте ваші дані; вступ до класифікації | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | Смачна азійська та індійська кухні 🍜 | [Classification](4-Classification/README.md) | Вступ до класифікаторів | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | Смачна азійська та індійська кухні 🍜 | [Classification](4-Classification/README.md) | Більше класифікаторів | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | Смачна азійська та індійська кухні 🍜 | [Classification](4-Classification/README.md) | Побудуйте рекомендатор у веб-додатку, використовуючи вашу модель | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Вступ до кластеризації | [Clustering](5-Clustering/README.md) | Очистьте, підготуйте та візуалізуйте ваші дані; вступ до кластеризації | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Вивчення музичних смаків Нігерії 🎧 | [Clustering](5-Clustering/README.md) | Вивчіть метод кластеризації K-середніх | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Вступ до обробки природної мови ☕️ | [Natural language processing](6-NLP/README.md) | Вивчіть основи NLP, створивши простого бота | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Загальні завдання NLP ☕️ | [Natural language processing](6-NLP/README.md) | Поглибте свої знання NLP, зрозумівши загальні завдання, необхідні при роботі з мовними структурами | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Переклад і аналіз сентименту ♥️ | [Natural language processing](6-NLP/README.md) | Переклад та аналіз сентименту з Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Романтичні готелі Європи ♥️ | [Natural language processing](6-NLP/README.md) | Аналіз сентименту на основі відгуків про готелі 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Романтичні готелі Європи ♥️ | [Natural language processing](6-NLP/README.md) | Аналіз сентименту на основі відгуків про готелі 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Вступ до прогнозування часових рядів | [Time series](7-TimeSeries/README.md) | Вступ до прогнозування часових рядів | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Світове споживання електроенергії ⚡️ - прогноз з ARIMA | [Time series](7-TimeSeries/README.md) | Прогнозування часових рядів з ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Світове споживання електроенергії ⚡️ - прогноз з SVR | [Time series](7-TimeSeries/README.md) | Прогнозування часових рядів за допомогою регресора опорних векторів (SVR) | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Вступ до підкріплювального навчання | [Reinforcement learning](8-Reinforcement/README.md) | Вступ до підкріплювального навчання з Q-навчанням | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Допоможіть Пітеру уникнути вовка! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | Підкріплювальне навчання Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Постскрипт | Реальні сценарії та застосування ML | [ML in the Wild](9-Real-World/README.md) | Цікаві та показові реальні застосування класичного машинного навчання | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| Постскрипт | Відлагодження моделей ML з використанням панелі RAI | [ML in the Wild](9-Real-World/README.md) | Відлагодження моделей машинного навчання з використанням компонентів панелі Responsible AI | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [знайдіть всі додаткові ресурси для цього курсу у нашій колекції Microsoft Learn](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Офлайн-доступ -Ви можете запускати цю документацію офлайн, використовуючи [Docsify](https://docsify.js.org/#/). Форкніть це сховище, [встановіть Docsify](https://docsify.js.org/#/quickstart) на ваш локальний комп’ютер і потім у кореневій папці цього сховища введіть `docsify serve`. Вебсайт буде доступний на порту 3000 у вашому локальному хості: `localhost:3000`. +Ви можете запускати цю документацію офлайн, використовуючи [Docsify](https://docsify.js.org/#/). Форкніть цей репозиторій, [встановіть Docsify](https://docsify.js.org/#/quickstart) на свій локальний комп’ютер, а потім у кореневій теці цього репозиторію введіть `docsify serve`. Вебсайт буде доступний на порту 3000 на вашому локальному хості: `localhost:3000`. ## PDFs @@ -173,7 +173,7 @@ Cloud Advocates у Microsoft раді запропонувати 12-тижнев ## 🎒 Інші курси -Наша команда створює й інші курси! Перегляньте: +Наша команда створює інші курси! Перегляньте: ### LangChain @@ -182,57 +182,57 @@ Cloud Advocates у Microsoft раді запропонувати 12-тижнев [![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents +### Azure / Edge / MCP / Агенти [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP для початківців](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI агенти для початківців](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Generative AI Series -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Серія по генеративному ШІ +[![Генеративний ШІ для початківців](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Генеративний ШІ (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Генеративний ШІ (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Генеративний ШІ (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Основне навчання -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Машинне навчання для початківців](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Наука про дані для початківців](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![ШІ для початківців](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Кібербезпека для початківців](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Веб-розробка для початківців](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![Інтернет речей для початківців](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR розробка для початківців](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Серія Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot для спільного програмування з ШІ](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot для C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Пригоди Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Отримання допомоги -Якщо ви застрягли або маєте питання щодо створення AI-додатків. Приєднуйтесь до інших учнів та досвідчених розробників у обговореннях MCP. Це підтримуюча спільнота, де питання вітаються, а знання вільно обмінюються. +Якщо ви застрягли або маєте питання щодо створення додатків зі ШІ, приєднуйтесь до спільноти інших учнів та досвідчених розробників у обговореннях MCP. Це підтримуюча спільнота, де вітаються питання і знання поширюються вільно. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Якщо у вас є відгуки про продукт або помилки під час створення, відвідайте: +Якщо у вас є відгуки про продукт або помилки під час розробки, відвідайте: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## Додаткові поради для навчання - Переглядайте блокноти після кожного уроку для кращого розуміння. -- Практикуйтесь у впровадженні алгоритмів самостійно. +- Практикуйтесь у самостійному впровадженні алгоритмів. - Досліджуйте реальні набори даних, використовуючи вивчені концепції. --- **Відмова від відповідальності**: -Цей документ було перекладено за допомогою сервісу автоматичного перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, зверніть увагу, що автоматизовані переклади можуть містити помилки або неточності. Оригінальний документ рідною мовою слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що можуть виникнути внаслідок використання цього перекладу. +Цей документ був перекладений за допомогою сервісу AI-перекладу [Co-op Translator](https://github.com/Azure/co-op-translator). Хоча ми прагнемо до точності, будь ласка, майте на увазі, що автоматизовані переклади можуть містити помилки або неточності. Оригінальний документ на рідній мові слід вважати авторитетним джерелом. Для критичної інформації рекомендується професійний переклад людиною. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли через використання цього перекладу. \ No newline at end of file diff --git a/translations/ur/.co-op-translator.json b/translations/ur/.co-op-translator.json index e49ba75a6..f0381f55a 100644 --- a/translations/ur/.co-op-translator.json +++ b/translations/ur/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "ur" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:23:31+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:22:14+00:00", "source_file": "README.md", "language_code": "ur" }, diff --git a/translations/ur/README.md b/translations/ur/README.md index d847cb399..4c2ad70fc 100644 --- a/translations/ur/README.md +++ b/translations/ur/README.md @@ -8,229 +8,229 @@ [![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/) -### 🌐 کثیراللسانی معاونت +### 🌐 کثیراللسان مدد -#### GitHub Action کے ذریعے معاونت یافتہ (خودکار اور ہمیشہ تازہ ترین) +#### GitHub ایکشن کے ذریعے معاونت یافتہ (خودکار اور ہمیشہ اپ ٹو ڈیٹ) -[عربی](../ar/README.md) | [بنگالی](../bn/README.md) | [بلغاریائی](../bg/README.md) | [برمی (میانمار)](../my/README.md) | [چینی (آسان)](../zh-CN/README.md) | [چینی (رواں، ہانگ کانگ)](../zh-HK/README.md) | [چینی (رواں، مکاو)](../zh-MO/README.md) | [چینی (رواں، تائوان)](../zh-TW/README.md) | [کروشیائی](../hr/README.md) | [چیک](../cs/README.md) | [ڈینش](../da/README.md) | [ڈچ](../nl/README.md) | [ایسٹونین](../et/README.md) | [فینش](../fi/README.md) | [فرانسیسی](../fr/README.md) | [جرمن](../de/README.md) | [یونانی](../el/README.md) | [عبرانی](../he/README.md) | [ہندی](../hi/README.md) | [ہنگریائی](../hu/README.md) | [انڈونیشیائی](../id/README.md) | [اطالوی](../it/README.md) | [جاپانی](../ja/README.md) | [کنڑا](../kn/README.md) | [کوریائی](../ko/README.md) | [لتھوانین](../lt/README.md) | [ملائی](../ms/README.md) | [ملالیہالم](../ml/README.md) | [مراٹھے](../mr/README.md) | [نیپالی](../ne/README.md) | [نائجیریائی پیجین](../pcm/README.md) | [ناروے](../no/README.md) | [فارسی (فارسی)](../fa/README.md) | [پولش](../pl/README.md) | [پرتگالی (برازیل)](../pt-BR/README.md) | [پرتگالی (پرتگال)](../pt-PT/README.md) | [پنجابی (گرمکھی)](../pa/README.md) | [رومانیائی](../ro/README.md) | [روسی](../ru/README.md) | [سربیائی (سیریلک)](../sr/README.md) | [سلوواک](../sk/README.md) | [سلووینیائی](../sl/README.md) | [ہسپانوی](../es/README.md) | [سواحلی](../sw/README.md) | [سویڈش](../sv/README.md) | [ٹاگالوگ (فلپائنی)](../tl/README.md) | [تمل](../ta/README.md) | [تلگو](../te/README.md) | [تھائی](../th/README.md) | [ترکی](../tr/README.md) | [یوکرینیائی](../uk/README.md) | [اردو](./README.md) | [ویتنامی](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](./README.md) | [Vietnamese](../vi/README.md) -> **مقامی طور پر کلون کرنا پسند کریں؟** +> **کیا آپ مقامی طور پر کلون کرنا پسند کریں گے؟** > -> اس ذخیرے میں 50+ زبانوں کے تراجم شامل ہیں جو ڈاؤن لوڈ کے حجم کو نمایاں طور پر بڑھاتے ہیں۔ ترجمے کے بغیر کلون کرنے کے لیے سپارس چیک آؤٹ استعمال کریں: +> اس ریپوزیٹری میں 50+ زبانوں کے تراجم شامل ہیں جو ڈاؤن لوڈ کے حجم کو نمایاں طور پر بڑھاتے ہیں۔ بغیر تراجم کے کلون کرنے کے لیے، sparse checkout استعمال کریں: > -> **باش / میک او ایس / لینکس:** +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` > -> **CMD (ونڈوز):** +> **CMD (Windows):** > ```cmd > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> اس سے آپ کو وہ سب کچھ مل جاتا ہے جو آپ کو کورس مکمل کرنے کے لیے چاہیے، ایک بہت تیز تر ڈاؤن لوڈ کے ساتھ۔ +> اس سے آپ کو کورس مکمل کرنے کے لیے درکار تمام سامان بہت تیز رفتار ڈاؤن لوڈ کے ساتھ مل جائے گا۔ -#### ہماری کمیونٹی سے جڑیں +#### ہماری کمیونٹی میں شامل ہوں [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -ہمارے پاس ڈسکارڈ پر ایک AI کے ساتھ سیکھنے کی سیریز جاری ہے، مزید جاننے کے لیے اور ہمارے ساتھ شامل ہونے کے لیے [Learn with AI Series](https://aka.ms/learnwithai/discord) پر 18 - 30 ستمبر، 2025 تک شامل ہوں۔ آپ کو گٹ ہب کوپائلٹ کو ڈیٹا سائنس کے لیے استعمال کرنے کے ٹپس اور تراکیب ملیں گی۔ +ہمارے پاس ایک Discord پر learn with AI سیریز جاری ہے، مزید جاننے اور شامل ہونے کے لیے [Learn with AI Series](https://aka.ms/learnwithai/discord) پر جائیں، 18 سے 30 ستمبر، 2025۔ آپ کو GitHub Copilot کے ڈیٹا سائنس کے استعمال کے لئے تجاویز اور تکنیک ملیں گی۔ ![Learn with AI series](../../translated_images/ur/3.9b58fd8d6c373c20.webp) -# مبتدیوں کے لیے مشین لرننگ - ایک نصاب +# ابتدائیوں کے لئے مشین لرننگ - ایک نصاب -> 🌍 دنیا کا سفر کریں جب ہم مشین لرننگ کو دنیا کی ثقافتوں کے ذریعے دریافت کرتے ہیں 🌍 +> 🌍 دنیا بھر کا سفر کریں جب ہم مشین لرننگ کو دنیا کی ثقافتوں کے ذریعے دریافت کرتے ہیں 🌍 -مائیکروسافٹ کے کلاؤڈ ایڈووکیٹس خوشی سے 12 ہفتوں، 26 اسباق کا نصاب پیش کرتے ہیں جو مکمل طور پر **مشین لرننگ** کے بارے میں ہے۔ اس نصاب میں، آپ کبھی کبھار **کلاسیکی مشین لرننگ** کہلانے والی چیز سیکھیں گے، جو بنیادی طور پر اسکی کٹ-لرن لائبریری استعمال کرتے ہوئے کی جاتی ہے اور ڈیپ لرننگ سے گریز کیا جاتا ہے، جسے ہمارے [AI for Beginners' نصاب](https://aka.ms/ai4beginners) میں شامل کیا گیا ہے۔ ان اسباق کو ہمارے ['ڈیٹا سائنس فار بیگنرز' نصاب](https://aka.ms/ds4beginners) کے ساتھ جوڑیں، نیز! +Microsoft کے Cloud Advocates خوشی کے ساتھ 12 ہفتے، 26 اسباق پر مشتمل ایک نصاب پیش کرتے ہیں جو مکمل طور پر **مشین لرننگ** کے بارے میں ہے۔ اس نصاب میں، آپ کچھ مواقع پر **کلاسیکی مشین لرننگ** کہلانے والی چیزیں سیکھیں گے، جس میں بنیادی طور پر Scikit-learn لائبریری استعمال کی جائے گی اور ڈیپ لرننگ سے گریز کیا جائے گا، جو ہمارے [AI for Beginners' نصاب](https://aka.ms/ai4beginners) میں شامل ہے۔ ان اسباق کو ہمارے ['ڈیٹا سائنس برائے ابتدائیوں' نصاب](https://aka.ms/ds4beginners) کے ساتھ بھی جوڑیں۔ -ہماری دنیا کا سفر کریں جب ہم دنیا کے مختلف خطوں کے ڈیٹا پر یہ کلاسیکی تکنیکیں لگاتے ہیں۔ ہر سبق میں پری-اور پوسٹ-سبق کوئزز، تحریری ہدایات، حل، اسائنمنٹ، اور مزید شامل ہیں۔ ہمارا پروجیکٹ پر مبنی طریقہ سیکھنے کو عملی بنانے کا موقع دیتا ہے، جو کہ نئی مہارتوں کو قائم رکھنے کا ثابت شدہ طریقہ ہے۔ +ہمارے ساتھ دنیا بھر کا سفر کریں جب ہم کلاسیکی تکنیک کو دنیا کے مختلف حصوں کے ڈیٹا پر لاگو کرتے ہیں۔ ہر سبق میں پری اور پوسٹ کلاس کوئزز، تحریری ہدایات، حل، اسائنمنٹ، اور مزید شامل ہوتا ہے۔ ہمارا پراجیکٹ بنیاد پر تعلیمی طریقہ آپ کو تعمیر کرتے ہوئے سیکھنے کی اجازت دیتا ہے، جو نئی صلاحیتوں کو برقرار رکھنے کا ایک ثابت شدہ طریقہ ہے۔ -**✍️ ہمارے مصنفین کا دلی شکریہ** جین لوپر، اسٹیفن ہؤویل، فرانسسکا لازری، ٹومومی ایمورا، کیسی بریو، دمتری سوشنیکوف، کرس نورنگ، انربن مکھرجی، اورنیلا التونیان، روتھ یاکوبو اور ایمی بوائےڈ +**✍️ ہمارے مصنفین کا دلی شکریہ**: Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu اور 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 -**🤩 اضافی شکریہ مائیکروسافٹ اسٹوڈنٹ ایمبیسیڈرز ایرک وانجاو، جیسلین سون دھی، اور ویدوشی گپتا کو ہمارے R اسباق کے لیے!** +**🤩 Microsoft Student Ambassadors Eric Wanjau, Jasleen Sondhi, اور Vidushi Gupta کا بھی خصوصی شکریہ ہمارے R اسباق کے لئے!** -# شروع کرتے ہیں +# شروع کرنا -مندرجہ ذیل اقدامات کی پیروی کریں: -1. **ریپوزیٹری کی فورک کریں**: اس صفحے کے اوپری دائیں کونے میں "Fork" بٹن پر کلک کریں۔ -2. **ریپوزیٹری کو کلون کریں**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +مندرجہ ذیل اقدامات کریں: +1. **ریپوزیٹری کو Fork کریں**: اس صفحہ کے اوپر دائیں کونے میں موجود "Fork" بٹن پر کلک کریں۔ +2. **ریپوزیٹری کلون کریں**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [اس کورس کے تمام اضافی وسائل ہمارے Microsoft Learn مجموعہ میں دریافت کریں](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [اس کورس کے لئے تمام اضافی وسائل ہمارے Microsoft Learn مجموعہ میں تلاش کریں](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **مدد چاہیے؟** عام مسائل جیسے انسٹالیشن، سیٹ اپ، اور اسباق چلانے کے لیے حل کے لیے ہمارا [مسائل کا حل گائیڈ](TROUBLESHOOTING.md) دیکھیں۔ +> 🔧 **مدد چاہیے؟** ہمارے [Troubleshooting Guide](TROUBLESHOOTING.md) میں انسٹالیشن، سیٹ اپ، اور اسباق چلانے کے عام مسائل کے حل دیکھیں۔ -**[طلباء](https://aka.ms/student-page)**، اس نصاب کو استعمال کرنے کے لیے، پوری ریپوزیٹری کو اپنے گٹ ہب اکاؤنٹ میں فورک کریں اور مشقیں خود یا گروپ کے ساتھ مکمل کریں: +**[طلبہ](https://aka.ms/student-page)**، اس نصاب کو استعمال کرنے کے لیے، پورے ریپوزیٹری کو اپنی GitHub اکاؤنٹ پر fork کریں اور مشقیں اپنی مرضی سے یا گروپ کے ساتھ مکمل کریں: - پری لیکچر کوئز سے شروع کریں۔ -- لیکچر پڑھیں اور سرگرمیاں مکمل کریں، ہر علم کی جانچ پر توقف اور غور کریں۔ -- اسباق کو سمجھ کر پروجیکٹس بنانے کی کوشش کریں بجائے حل کے کوڈ کو چلانے کے؛ تاہم یہ کوڈ ہر پروجیکٹ پر مبنی سبق کے `/solution` فولڈر میں دستیاب ہے۔ -- پوسٹ لیکچر کوئز لیں۔ +- لیکچر پڑھیں اور سرگرمیاں مکمل کریں، ہر نالج چیک پر توقف کر کے غور کریں۔ +- اسباق کو سمجھ کر پروجیکٹس بنانے کی کوشش کریں بجائے اس کے کہ صرف سولوشن کوڈ چلائیں؛ تاہم یہ کوڈ ہر پراجیکٹ پر مبنی سبق کے `/solution` فولڈرز میں دستیاب ہے۔ +- پوسٹ لیکچر کوئز حل کریں۔ - چیلنج مکمل کریں۔ - اسائنمنٹ مکمل کریں۔ -- سبق کے گروپ کو مکمل کرنے کے بعد، [ڈسکشن بورڈ](https://github.com/microsoft/ML-For-Beginners/discussions) پر جائیں اور "اونچی آواز میں سیکھیں" مناسب PAT روبریک پُر کرکے۔ 'PAT' ایک پروگریس اسیسمنٹ ٹول ہے جو آپ کی سیکھنے میں اضافہ کے لیے روبریک پُر کرتا ہے۔ آپ دوسرے PATs پر بھی ردعمل دے سکتے ہیں تاکہ ہم ایک ساتھ سیکھ سکیں۔ +- جب کسی سبق گروپ کو مکمل کرلیں، تو [Discussion Board](https://github.com/microsoft/ML-For-Beginners/discussions) پر جائیں اور مناسب PAT روبریک بھر کر "آواز بلند کریں"۔ 'PAT' ایک پروگریس اسسمنٹ ٹول ہے، جو آپ کے سیکھنے کو مزید بڑھاتا ہے۔ آپ دوسرے PATs پر بھی ردعمل ظاہر کر سکتے ہیں تاکہ ہم سب مل کر سیکھ سکیں۔ -> مزید مطالعے کے لیے، ہم ان [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ماڈیولز اور لرننگ راستوں کی پیروی کی سفارش کرتے ہیں۔ +> مزید تعلیم کے لئے، ہم ان [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) ماڈیولز اور سیکھنے کے راستوں کی سفارش کرتے ہیں۔ -**اساتذہ**، ہم نے [کچھ تجاویز](for-teachers.md) شامل کی ہیں کہ اس نصاب کو کیسے استعمال کیا جائے۔ +**اساتذہ کے لیے**، ہم نے [اس نصاب کے استعمال کے لیے کچھ تجاویز شامل کی ہیں](for-teachers.md)۔ --- ## ویڈیو واک تھروز -کچھ اسباق مختصر ویڈیو کے طور پر دستیاب ہیں۔ آپ ان سبھی کو اسباق میں ان لائن دیکھ سکتے ہیں، یا مائیکروسافٹ ڈویلپر یوٹیوب چینل پر [ML for Beginners پلے لسٹ](https://aka.ms/ml-beginners-videos) میں نیچے تصویر پر کلک کرکے۔ +کچھ اسباق مختصر ویڈیو کی شکل میں دستیاب ہیں۔ آپ انہیں اسباق کے اندر ان لائن یا [Microsoft Developer YouTube چینل پر ML for Beginners پلی لسٹ](https://aka.ms/ml-beginners-videos) پر نیچے دی گئی تصویر پر کلک کرکے دیکھ سکتے ہیں۔ [![ML for beginners banner](../../translated_images/ur/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## ٹیم سے ملو +## ٹیم سے ملاقات [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**گیف از** [محمد جیسال](https://linkedin.com/in/mohitjaisal) +**گیف بنائی گئی** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) کی جانب سے -> 🎥 پراجیکٹ اور اسے بنانے والوں کے بارے میں ویڈیو کے لیے اوپر تصویر پر کلک کریں! +> 🎥 پراجیکٹ اور اس کو بنانے والوں کے بارے میں ویڈیو کے لیے اوپر تصویر پر کلک کریں! --- -## تدریسی اصول +## طریقہ تدریس -ہم نے اس نصاب کی تعمیر میں دو تدریسی اصول منتخب کیے ہیں: اسے عملی **پروجیکٹ پر مبنی** بنانا اور کہ اس میں **بار بار کوئزز** شامل ہوں۔ مزید برآں، اس نصاب کا ایک مشترکہ **موضوع** ہے تاکہ اس میں ہم آہنگی ہو۔ +اس نصاب کو بناتے ہوئے ہم نے دو تعلیمی اصول منتخب کیے ہیں: اسے ہاتھوں سے کرنے والا **پروجیکٹ پر مبنی** بنانا اور اس میں **بار بار کوئزز** شامل کرنا۔ اس کے علاوہ، اس نصاب کا ایک مشترکہ **موضوع** بھی ہے جو یکجہتی فراہم کرتا ہے۔ -یہ یقینی بنا کر کہ مواد پروجیکٹس کے ساتھ ہم آہنگ ہے، طلباء کے لیے عمل مزید مشغول کن اور تصورات کو یاد رکھنے میں اضافہ ہوگا۔ علاوہ ازیں، کلاس سے پہلے کم دباؤ والا کوئز طلباء کے سیکھنے کے جذبے کو متحرک کرتا ہے، جبکہ کلاس کے بعد دوسرا کوئز بہتر یادداشت کو یقینی بناتا ہے۔ اس نصاب کو لچکدار اور تفریحی بنانے کے لیے ڈیزائن کیا گیا ہے اور اسے مکمل یا جزوی طور پر لیا جا سکتا ہے۔ پروجیکٹس چھوٹے سے شروع ہوتے ہیں اور 12 ہفتوں کے دوران پیچیدہ ہوتے جاتے ہیں۔ اس نصاب میں مشین لرننگ کی حقیقی دنیا میں ایپلی کیشنز پر ایک پس اسکرپٹ بھی شامل ہے، جو اضافی کریڈٹ کے طور پر یا بحث کے لیے بنیاد کے طور پر استعمال ہو سکتا ہے۔ +مضمون کو پروجیکٹس کے ساتھ ہم آہنگ کرنے سے تدریسی عمل زیادہ دلچسپ ہو جاتا ہے اور تصورات کو یاد رکھنے میں بہتری آتی ہے۔ کلاس سے پہلے ایک کم خطرے والا کوئز طالب علم کو موضوع سیکھنے کی نیت کرتا ہے، جبکہ کلاس کے بعد دوسرا کوئز مزید یادداشت کو یقینی بناتا ہے۔ یہ نصاب لچکدار اور خوشگوار بنانے کے لیے ڈیزائن کیا گیا ہے اور اسے مکمل یا جزوی طور پر کیا جا سکتا ہے۔ پروجیکٹس چھوٹے سے شروع ہوتے ہیں اور 12 ہفتوں کے آخر تک پیچیدہ ہوتے جاتے ہیں۔ اس نصاب میں مشین لرننگ کی حقیقی دنیا میں استعمال پر بھی ایک پوسٹ اسکرپٹ شامل ہے، جسے اضافی کریڈٹ کے طور پر یا گفتگو کی بنیاد کے طور پر استعمال کیا جا سکتا ہے۔ -> ہمارا [آخلاقیات کا ضابطہ](CODE_OF_CONDUCT.md)، [شراکت داری کے رہنما اصول](CONTRIBUTING.md)، [ترجمے](..)، اور [مسائل کا حل](TROUBLESHOOTING.md) کے رہنما خطوط تلاش کریں۔ ہم آپ کے تعمیری فیڈبیک کا خیرمقدم کرتے ہیں! +> ہمارے [Code of Conduct](CODE_OF_CONDUCT.md)، [Contributing](CONTRIBUTING.md)، [Translations](..)، اور [Troubleshooting](TROUBLESHOOTING.md) ہدایات تلاش کریں۔ ہم آپ کی تعمیری رائے کا خیرمقدم کرتے ہیں! ## ہر سبق میں شامل ہے - اختیاری سکیچ نوٹ - اختیاری ضمنی ویڈیو -- ویڈیو واک تھرو (کچھ اسباق میں ہی) -- [لیکچر سے پہلے کا وارم اپ کوئز](https://ff-quizzes.netlify.app/en/ml/) +- ویڈیو واک تھرو (صرف بعض اسباق) +- [پری لیکچر وارم اپ کوئز](https://ff-quizzes.netlify.app/en/ml/) - تحریری سبق -- پروجیکٹ پر مبنی اسباق کے لیے، پروجیکٹ بنانے کے مرحلہ وار رہنما -- علم کی جانچ +- پراجیکٹ پر مبنی اسباق کے لیے، قدم بہ قدم گائیڈز کہ کیسے پروجیکٹ بنایا جائے +- نالج چیکس - ایک چیلنج - ضمنی مطالعہ - اسائنمنٹ -- [لیکچر کے بعد کا کوئز](https://ff-quizzes.netlify.app/en/ml/) - -> **زبانوں کے بارے میں نوٹ**: یہ اسباق بنیادی طور پر پائتھون میں لکھے گئے ہیں، لیکن کئی R میں بھی دستیاب ہیں۔ R سبق مکمل کرنے کے لیے، `/solution` فولڈر میں جائیں اور R اسباق تلاش کریں۔ یہ .rmd ایکسٹینشن کے ساتھ آتے ہیں جو ایک **R مارک ڈاؤن** فائل کو ظاہر کرتا ہے جسے آسانی سے `کوڈ چنکس` (R یا دوسری زبانوں کے) اور `YAML ہیڈر` (جو آؤٹ پٹ کو فارمیٹ کرنے میں رہنمائی کرتا ہے جیسے PDF) کو ایک `مارک ڈاؤن دستاویز` میں شامل کرنا سمجھا جا سکتا ہے۔ لہٰذا، یہ ڈیٹا سائنس کے لیے ایک مثالی مؤلفانہ فریم ورک کے طور پر کام کرتا ہے کیونکہ یہ آپ کو اپنا کوڈ، اس کا نتیجہ، اور اپنے خیالات کو مارک ڈاؤن میں لکھنے کی اجازت دیتا ہے۔ مزید برآں، R مارک ڈاؤن دستاویزات کو PDF، HTML، یا Word جیسے آؤٹ پٹ فارمیٹ میں تبدیل کیا جا سکتا ہے۔ -> **کوئزز کے بارے میں ایک نوٹ**: تمام کوئزز [Quiz App فولڈر](../../quiz-app) میں شامل ہیں، جن میں کل 52 کوئزز ہیں، ہر ایک میں تین سوالات ہیں۔ انہیں سبقوں کے اندر سے لنک کیا گیا ہے لیکن کوئز ایپ کو مقامی طور پر چلایا جا سکتا ہے؛ کوئز ایپ فولڈر میں ہدایات پر عمل کریں تاکہ اسے لوکل ہوسٹ یا Azure پر تعینات کیا جا سکے۔ - -| درس نمبر | موضوع | درس گروپنگ | تعلیمی مقاصد | منسلک درس | مصنف | -| :-------: | :---------------------------------------------------------: | :------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------: | -| 01 | مشین لرننگ کا تعارف | [تعریف](1-Introduction/README.md) | مشین لرننگ کے بنیادی تصورات سیکھیں | [درس](1-Introduction/1-intro-to-ML/README.md) | محمد | -| 02 | مشین لرننگ کی تاریخ | [تعریف](1-Introduction/README.md) | اس میدان کی تاریخی پس منظر جانیں | [درس](1-Introduction/2-history-of-ML/README.md) | جن اور ایمی | -| 03 | مشین لرننگ اور انصاف | [تعریف](1-Introduction/README.md) | انصاف کے اہم فلسفیانہ مسائل کیا ہیں جو طالب علموں کو ML ماڈلز بناتے اور استعمال کرتے وقت غور کرنا چاہیے؟ | [درس](1-Introduction/3-fairness/README.md) | تومومی | -| 04 | مشین لرننگ کی تکنیکیں | [تعریف](1-Introduction/README.md) | مشین لرننگ کے ماہرین کون سی تکنیکوں کا استعمال کرتے ہیں؟ | [درس](1-Introduction/4-techniques-of-ML/README.md) | کرس اور جن | -| 05 | ریگریشن کا تعارف | [ریگریشن](2-Regression/README.md) | ریگریشن ماڈلز کیلئے پائتھن اور سکا کٹ لرن کا آغاز کریں | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جن • ایرک ونجاؤ | -| 06 | شمالی امریکہ کے کدو کے دام 🎃 | [ریگریشن](2-Regression/README.md) | مشین لرننگ کے لیے ڈیٹا کو وژوئلائز اور صاف کریں | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جن • ایرک ونجاؤ | -| 07 | شمالی امریکہ کے کدو کے دام 🎃 | [ریگریشن](2-Regression/README.md) | لینیئر اور پولینومیل ریگریشن ماڈلز بنائیں | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جن اور دیمتری • ایرک ونجاؤ | -| 08 | شمالی امریکہ کے کدو کے دام 🎃 | [ریگریشن](2-Regression/README.md) | لوجسٹک ریگریشن ماڈل بنائیں | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جن • ایرک ونجاؤ | -| 09 | ایک ویب ایپ 🔌 | [ویب ایپ](3-Web-App/README.md) | اپنے تربیت یافتہ ماڈل کے استعمال کے لئے ویب ایپ بنائیں | [Python](3-Web-App/1-Web-App/README.md) | جن | -| 10 | درجہ بندی کا تعارف | [درجہ بندی](4-Classification/README.md) | ڈیٹا کو صاف، تیار اور وژوئلائز کریں؛ درجہ بندی کا تعارف | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جن اور کیسی • ایرک ونجاؤ | -| 11 | مزیدار ایشیائی اور بھارتی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | درجہ بندی کنندگان کا تعارف | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جن اور کیسی • ایرک ونجاؤ | -| 12 | مزیدار ایشیائی اور بھارتی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | مزید درجہ بندی کنندگان | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جن اور کیسی • ایرک ونجاؤ | -| 13 | مزیدار ایشیائی اور بھارتی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | اپنے ماڈل کا استعمال کرتے ہوئے ایک ریکمنڈر ویب ایپ بنائیں | [Python](4-Classification/4-Applied/README.md) | جن | -| 14 | کلسٹرنگ کا تعارف | [کلسٹرنگ](5-Clustering/README.md) | اپنے ڈیٹا کو صاف، تیار اور وژوئلائز کریں؛ کلسٹرنگ کا تعارف | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جن • ایرک ونجاؤ | -| 15 | نائیجیرین موسیقی ذائقے کا جائزہ 🎧 | [کلسٹرنگ](5-Clustering/README.md) | K-میانز کلسٹرنگ طریقہ کار کو دریافت کریں | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جن • ایرک ونجاؤ | -| 16 | قدرتی زبان کی پراسیسنگ کا تعارف ☕️ | [قدرتی زبان کی پراسیسنگ](6-NLP/README.md) | ایک سادہ بوٹ بنا کر NLP کی بنیادی باتیں سیکھیں | [Python](6-NLP/1-Introduction-to-NLP/README.md) | اسٹیفن | -| 17 | عام NLP کے کام ☕️ | [قدرتی زبان کی پراسیسنگ](6-NLP/README.md) | زبان کی ساختوں سے نمٹنے کے لیے درکار عام کاموں کو سمجھ کر اپنے NLP کا علم گہرا کریں | [Python](6-NLP/2-Tasks/README.md) | اسٹیفن | -| 18 | ترجمہ اور جذباتی تجزیہ ♥️ | [قدرتی زبان کی پراسیسنگ](6-NLP/README.md) | جین آسٹن کے ساتھ ترجمہ اور جذباتی تجزیہ | [Python](6-NLP/3-Translation-Sentiment/README.md) | اسٹیفن | -| 19 | یورپ کے رومانوی ہوٹلز ♥️ | [قدرتی زبان کی پراسیسنگ](6-NLP/README.md) | ہوٹل کے جائزوں کے ساتھ جذباتی تجزیہ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | اسٹیفن | -| 20 | یورپ کے رومانوی ہوٹلز ♥️ | [قدرتی زبان کی پراسیسنگ](6-NLP/README.md) | ہوٹل کے جائزوں کے ساتھ جذباتی تجزیہ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | اسٹیفن | -| 21 | وقت کی سیریز کی پیشن گوئی کا تعارف | [وقت کی سیریز](7-TimeSeries/README.md) | وقت کی سیریز کی پیشن گوئی کا تعارف | [Python](7-TimeSeries/1-Introduction/README.md) | فرانسسکا | -| 22 | ⚡️ عالمی بجلی کا استعمال ⚡️ - ARIMA کے ساتھ وقت کی پیشن گوئی | [وقت کی سیریز](7-TimeSeries/README.md) | ARIMA کے ساتھ وقت کی سیریز کی پیشن گوئی | [Python](7-TimeSeries/2-ARIMA/README.md) | فرانسسکا | -| 23 | ⚡️ عالمی بجلی کا استعمال ⚡️ - SVR کے ساتھ وقت کی پیشن گوئی | [وقت کی سیریز](7-TimeSeries/README.md) | سپورٹ ویکٹر ریگریسر کے ساتھ وقت کی سیریز کی پیشن گوئی | [Python](7-TimeSeries/3-SVR/README.md) | انربن | -| 24 | تقویتی تعلیم کا تعارف | [تقویتی تعلیم](8-Reinforcement/README.md) | Q-لرننگ کے ساتھ تقویتی تعلیم کا تعارف | [Python](8-Reinforcement/1-QLearning/README.md) | دیمتری | -| 25 | پیٹر کو بھیڑیا سے بچائیں! 🐺 | [تقویتی تعلیم](8-Reinforcement/README.md) | تقویتی تعلیم جیم | [Python](8-Reinforcement/2-Gym/README.md) | دیمتری | -| پوسٹ اسکرپٹ | حقیقی دنیا کے ML منظرنامے اور اطلاقات | [ML in the Wild](9-Real-World/README.md) | کلاسیکی مشین لرننگ کی دلچسپ اور انکشاف کرنے والی حقیقی دنیا کی درخواستیں | [درس](9-Real-World/1-Applications/README.md) | ٹیم | -| پوسٹ اسکرپٹ | RAI ڈیش بورڈ کے ذریعے ML ماڈل کی ڈیبگنگ | [ML in the Wild](9-Real-World/README.md) | Responsible AI ڈیش بورڈ اجزاء کا استعمال کرتے ہوئے مشین لرننگ میں ماڈل کی ڈیبگنگ | [درس](9-Real-World/2-Debugging-ML-Models/README.md) | روتھ یاکوبو | - -> [اس کورس کے تمام اضافی وسائل ہمارے Microsoft Learn کلیکشن میں تلاش کریں](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- [پوسٹ لیکچر کوئز](https://ff-quizzes.netlify.app/en/ml/) +> **زبانوں کے بارے میں ایک نوٹ**: یہ اسباق بنیادی طور پر Python میں لکھے گئے ہیں، لیکن بہت سے R میں بھی دستیاب ہیں۔ ایک R سبق مکمل کرنے کے لیے، `/solution` فولڈر میں جائیں اور R اسباق تلاش کریں۔ ان میں .rmd توسیع شامل ہوتی ہے جو ایک **R Markdown** فائل کی نمائندگی کرتی ہے جسے آسانی سے `code chunks` (R یا دیگر زبانوں کے) اور `YAML header` (جو آؤٹ پٹس جیسے پی ڈی ایف کی فارمیٹنگ کے لیے رہنمائی کرتا ہے) کو `Markdown document` میں شامل کرنے کے طور پر بیان کیا جاسکتا ہے۔ اس طرح، یہ ڈیٹا سائنس کے لیے ایک مثالی مصنف فریم ورک کے طور پر کام کرتا ہے کیونکہ یہ آپ کو کوڈ، اس کا آؤٹ پٹ، اور آپ کے خیالات کو Markdown میں لکھنے کی سہولت دیتا ہے۔ مزید برآں، R Markdown دستاویزات کو پی ڈی ایف، HTML، یا Word جیسے آؤٹ پٹ فارمیٹس میں رینڈر کیا جا سکتا ہے۔ + +> **کوئزز کے بارے میں ایک نوٹ**: تمام کوئزز [Quiz App فولڈر](../../quiz-app) میں موجود ہیں، کل 52 کوئزز تین سوالات کے ساتھ۔ یہ اسباق کے اندر سے لنک کی گئی ہیں لیکن کوئز ایپ کو مقامی طور پر چلایا جا سکتا ہے؛ `quiz-app` فولڈر میں ہدایات پر عمل کریں تاکہ لوکل ہوسٹ کریں یا Azure پر ڈپلائے کریں۔ + +| سبق نمبر | موضوع | سبق کی گروپ بندی | تعلیمی مقاصد | لنک شدہ سبق | مصنف | +| :------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------ | :-----------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | +| 01 | مشین لرننگ کا تعارف | [تعارف](1-Introduction/README.md) | مشین لرننگ کے بنیادی تصورات سیکھیں | [سبق](1-Introduction/1-intro-to-ML/README.md) | محمد | +| 02 | مشین لرننگ کی تاریخ | [تعارف](1-Introduction/README.md) | اس میدان کی بنیادی تاریخ سیکھیں | [سبق](1-Introduction/2-history-of-ML/README.md) | جین اور ایمی | +| 03 | مشین لرننگ اور انصاف | [تعارف](1-Introduction/README.md) | انصاف کے اہم فلسفیانہ مسائل کیا ہیں جنہیں طلبہ کو مشین لرننگ ماڈلز بنانے اور لاگو کرنے میں مدنظر رکھنا چاہیے؟ | [سبق](1-Introduction/3-fairness/README.md) | ٹومومی | +| 04 | مشین لرننگ کے طریقے | [تعارف](1-Introduction/README.md) | مشین لرننگ محققین مشین لرننگ ماڈلز بنانے کے لیے کیا تکنیک استعمال کرتے ہیں؟ | [سبق](1-Introduction/4-techniques-of-ML/README.md) | کرس اور جین | +| 05 | ریگریشن کا تعارف | [ریگریشن](2-Regression/README.md) | ریگریشن ماڈلز کے لیے Python اور Scikit-learn کے ساتھ شروع کریں | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | جین • ایرک وانجاو | +| 06 | شمالی امریکہ کے کدو کی قیمتیں 🎃 | [ریگریشن](2-Regression/README.md) | مشین لرننگ کی تیاری کے لیے ڈیٹا کو دیکھیں اور صاف کریں | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | جین • ایرک وانجاو | +| 07 | شمالی امریکہ کے کدو کی قیمتیں 🎃 | [ریگریشن](2-Regression/README.md) | خطی اور کثیر رکنی ریگریشن ماڈلز بنائیں | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | جین اور دمتری • ایرک وانجاو | +| 08 | شمالی امریکہ کے کدو کی قیمتیں 🎃 | [ریگریشن](2-Regression/README.md) | لاجسٹک ریگریشن ماڈل بنائیں | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | جین • ایرک وانجاو | +| 09 | ایک ویب ایپ 🔌 | [ویب ایپ](3-Web-App/README.md) | اپنے تربیت یافتہ ماڈل کو استعمال کرنے کے لیے ایک ویب ایپ بنائیں | [Python](3-Web-App/1-Web-App/README.md) | جین | +| 10 | درجہ بندی کا تعارف | [درجہ بندی](4-Classification/README.md) | اپنے ڈیٹا کو صاف کریں، تیار کریں، اور دیکھیں؛ درجہ بندی کا تعارف | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | جین اور کیسی • ایرک وانجاو | +| 11 | مزیدار ایشیائی اور ہندوستانی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | درجہ بند کرنے والوں کا تعارف | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | جین اور کیسی • ایرک وانجاو | +| 12 | مزیدار ایشیائی اور ہندوستانی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | مزید درجہ بند کرنے والے | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | جین اور کیسی • ایرک وانجاو | +| 13 | مزیدار ایشیائی اور ہندوستانی کھانے 🍜 | [درجہ بندی](4-Classification/README.md) | اپنے ماڈل کا استعمال کرتے ہوئے ایک تجویز کنندہ ویب ایپ بنائیں | [Python](4-Classification/4-Applied/README.md) | جین | +| 14 | جماعت بندی کا تعارف | [جماعت بندی](5-Clustering/README.md) | اپنے ڈیٹا کو صاف کریں، تیار کریں، اور دیکھیں؛ جماعت بندی کا تعارف | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | جین • ایرک وانجاو | +| 15 | نائجیریائی موسیقی کا ذائقہ تلاش کرنا 🎧 | [جماعت بندی](5-Clustering/README.md) | K-میانز جماعت بندی کے طریقہ کار کو دریافت کریں | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | جین • ایرک وانجاو | +| 16 | قدرتی زبان کی پروسیسنگ کا تعارف ☕️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | ایک سادہ بوٹ بنا کر NLP کی بنیادی باتیں سیکھیں | [Python](6-NLP/1-Introduction-to-NLP/README.md) | اسٹیفن | +| 17 | عام NLP کے کام ☕️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | زبان کی ساختوں سے نمٹنے کے لیے درکار عام کاموں کو سمجھ کر NLP کے علم کو گہرا کریں | [Python](6-NLP/2-Tasks/README.md) | اسٹیفن | +| 18 | ترجمہ اور جذباتی تجزیہ ♥️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | جین آسٹن کے ساتھ ترجمہ اور جذباتی تجزیہ | [Python](6-NLP/3-Translation-Sentiment/README.md) | اسٹیفن | +| 19 | یورپ کے رومانوی ہوٹل ♥️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | ہوٹل کے جائزوں کے ساتھ جذباتی تجزیہ 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | اسٹیفن | +| 20 | یورپ کے رومانوی ہوٹل ♥️ | [قدرتی زبان کی پروسیسنگ](6-NLP/README.md) | ہوٹل کے جائزوں کے ساتھ جذباتی تجزیہ 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | اسٹیفن | +| 21 | وقت کی سیریز کی پیش گوئی کا تعارف | [وقت کی سیریز](7-TimeSeries/README.md) | وقت کی سیریز کی پیش گوئی کا تعارف | [Python](7-TimeSeries/1-Introduction/README.md) | فرانسسکا | +| 22 | ⚡️ عالمی توانائی کا استعمال ⚡️ - ARIMA کے ساتھ وقت کی سیریز کی پیش گوئی | [وقت کی سیریز](7-TimeSeries/README.md) | ARIMA کے ساتھ وقت کی سیریز کی پیش گوئی | [Python](7-TimeSeries/2-ARIMA/README.md) | فرانسسکا | +| 23 | ⚡️ عالمی توانائی کا استعمال ⚡️ - SVR کے ساتھ وقت کی سیریز کی پیش گوئی | [وقت کی سیریز](7-TimeSeries/README.md) | سپورٹ ویکٹر ریگریسر کے ساتھ وقت کی سیریز کی پیش گوئی | [Python](7-TimeSeries/3-SVR/README.md) | انربن | +| 24 | مضبوطی سے سیکھنے کا تعارف | [مضبوطی سے سیکھنا](8-Reinforcement/README.md) | Q-Learning کے ساتھ مضبوطی سے سیکھنے کا تعارف | [Python](8-Reinforcement/1-QLearning/README.md) | دمتری | +| 25 | پیٹر کو بھیڑیے سے بچائیں! 🐺 | [مضبوطی سے سیکھنا](8-Reinforcement/README.md) | مضبوطی سے سیکھنے کا جِم | [Python](8-Reinforcement/2-Gym/README.md) | دمتری | +| پوسٹ اسکرپٹ | حقیقی دنیا کے مشین لرننگ کے منظرنامے اور ایپلیکیشنز | [جنگل میں مشین لرننگ](9-Real-World/README.md) | کلاسیکی مشین لرننگ کی دلچسپ اور انکشاف کرنے والی حقیقی دنیا کی ایپلیکیشنز | [سبق](9-Real-World/1-Applications/README.md) | ٹیم | +| پوسٹ اسکرپٹ | RAI ڈیش بورڈ کے ذریعے مشین لرننگ ماڈل کی ڈیبگنگ | [جنگل میں مشین لرننگ](9-Real-World/README.md) | ریسپانسبل AI ڈیش بورڈ کے اجزاء کے ذریعے مشین لرننگ ماڈل کی ڈیبگنگ | [سبق](9-Real-World/2-Debugging-ML-Models/README.md) | روتھ یاکوبو | + +> [اس کورس کے لیے تمام اضافی وسائل ہمارے Microsoft Learn کلیکشن میں تلاش کریں](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## آف لائن رسائی -آپ اس دستاویز کو آف لائن [Docsify](https://docsify.js.org/#/) کے استعمال سے چلا سکتے ہیں۔ اس ریپو کو فورک کریں، اپنی مقامی مشین پر [Docsify انسٹال کریں](https://docsify.js.org/#/quickstart)، پھر اس ریپو کے روٹ فولڈر میں `docsify serve` ٹائپ کریں۔ یہ ویب سائٹ آپ کے لوکل ہوسٹ پر پورٹ 3000 پر دستیاب ہوگی: `localhost:3000`. +آپ اس دستاویز کو آف لائن [Docsify](https://docsify.js.org/#/) کے ذریعے چلا سکتے ہیں۔ اس ریپوزٹری کو فورک کریں، اپنی مقامی مشین پر [Docsify انسٹال کریں](https://docsify.js.org/#/quickstart)، اور پھر اس ریپوزٹری کے روٹ فولڈر میں `docsify serve` ٹائپ کریں۔ ویب سائٹ آپ کے لوکل ہوسٹ پر پورٹ 3000 پر سرور ہوگی: `localhost:3000`۔ ## پی ڈی ایفز -کریکولم کا پی ڈی ایف فائل لنکس کے ساتھ [یہاں](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) تلاش کریں۔ +نصاب کی پی ڈی ایف لنکس کے ساتھ یہاں تلاش کریں [یہاں](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)۔ -## 🎒 دیگر کورسز +## 🎒 دیگر کورسز -ہماری ٹیم دیگر کورسز بھی تیار کرتی ہے! جانچ کریں: +ہماری ٹیم دیگر کورسز بھی تیار کرتی ہے! چیک کریں: ### LangChain -[![مبتدیوں کے لیے LangChain4j](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![مبتدیوں کے لیے LangChain.js](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![مبتدیوں کے لیے LangChain](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j برائے ابتدائی](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js برائے ابتدائی](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain برائے ابتدائی](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- -### Azure / Edge / MCP / Agents -[![مبتدیوں کے لیے AZD](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![مبتدیوں کے لیے Edge AI](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![مبتدیوں کے لیے MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![مبتدیوں کے لیے AI Agents](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +### Azure / Edge / MCP / ایجنٹس +[![AZD برائے ابتدائی](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI برائے ابتدائی](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- - -### جنریٹیو AI سیریز -[![بیگنرز کے لیے جنریٹیو AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![جنریٹیو AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![جنریٹیو AI (جاوا)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![جنریٹیو AI (جاوا اسکرپٹ)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) + +### جنریٹو اے آئی سیریز +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### بنیادی تعلیم -[![بیگنرز کے لیے ایم ایل](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![بیگنرز کے لیے ڈیٹا سائنس](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![بیگنرز کے لیے AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![بیگنرز کے لیے سائبرسیکیورٹی](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![بیگنرز کے لیے ویب ڈیولپمنٹ](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![بیگنرز کے لیے IoT](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![بیگنرز کے لیے XR ڈیولپمنٹ](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### کوپائلٹ سیریز -[![AI جوڑے ہوئے پروگرامنگ کے لیے کوپائلٹ](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET کے لیے کوپائلٹ](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![کوپائلٹ ایڈونچر](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## مدد حاصل کرنا +## مدد لینا -اگر آپ پھنس جائیں یا AI ایپس بنانے کے بارے میں کوئی سوالات ہوں۔ ساتھی سیکھنے والوں اور تجربہ کار ڈویلپرز کے ساتھ MCP پر گفتگو میں شامل ہوں۔ یہ ایک معاون کمیونٹی ہے جہاں سوالات خوش آمدید ہیں اور علم آزادانہ طور پر شیئر کیا جاتا ہے۔ +اگر آپ پھنس جائیں یا AI ایپس بنانے کے بارے میں کوئی سوال ہو تو۔ MCP کے بارے میں بحث میں شریک سیکھنے والوں اور تجربہ کار ڈیولپرز سے جڑیں۔ یہ ایک معاون کمیونٹی ہے جہاں سوالات خوش آمدید ہیں اور علم کھلے دل سے شیئر کیا جاتا ہے۔ -[![مائیکروسافٹ فاؤنڈری ڈسکارڈ](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -اگر آپ کے پاس پروڈکٹ کا تاثرات یا تعمیر کے دوران غلطیاں ہوں تو یہاں جائیں: +اگر آپ کے پاس پروڈکٹ فیڈ بیک یا بلڈنگ کے دوران غلطیاں ہوں تو یہاں دیکھیں: -[![مائیکروسافٹ فاؤنڈری ڈویلپر فورم](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## اضافی سیکھنے کے نکات +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +## اضافی تعلیمی نکات -- ہر سبق کے بعد نوٹ بکس کا جائزہ لیں تاکہ بہتر سمجھ ہو۔ -- الگورتھمز کو خود سے لاگو کرنے کی مشق کریں۔ -- سیکھی گئی تصورات کا استعمال کرتے ہوئے حقیقی دنیا کے ڈیٹا سیٹس کو دریافت کریں۔ +- ہر سبق کے بعد نوٹ بکس کا جائزہ لیں تاکہ سمجھ بوجھ بہتر ہو۔ +- الگورتھمز کو خود سے نافذ کرنے کی مشق کریں۔ +- سیکھے گئے تصورات کو استعمال کرتے ہوئے حقیقی دنیا کے ڈیٹا سیٹس کو دریافت کریں۔ --- -**اعلانِ دستبرداری**: -یہ دستاویز AI ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم نوٹ کریں کہ خودکار تراجم میں غلطیاں یا عدم صحت ہو سکتی ہے۔ اصل دستاویز اپنی مادری زبان میں معتبر ماخذ سمجھی جانی چاہیے۔ اہم معلومات کے لیے پیشہ ورانہ انسانی ترجمہ تجویز کیا جاتا ہے۔ اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کی ذمہ داری ہم پر نہیں ہوگی۔ +**ہیلے**: +یہ دستاویز مصنوعی ذہانت کی ترجمہ سروس [Co-op Translator](https://github.com/Azure/co-op-translator) کے ذریعے ترجمہ کی گئی ہے۔ اگرچہ ہم درستگی کے لیے کوشاں ہیں، براہ کرم اس بات سے آگاہ رہیں کہ خودکار تراجم میں غلطیاں یا عدم درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی مادری زبان میں معتبر ماخذ سمجھا جانا چاہیے۔ اہم معلومات کے لیے پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ اس ترجمے کے استعمال سے ہونے والی کسی بھی غلط فہمی یا غلط تعبیر کی ذمہ داری ہم پر عائد نہیں ہوتی۔ \ No newline at end of file diff --git a/translations/vi/.co-op-translator.json b/translations/vi/.co-op-translator.json index 4599d6f6a..cdcd28724 100644 --- a/translations/vi/.co-op-translator.json +++ b/translations/vi/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "vi" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:11:13+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T17:07:23+00:00", "source_file": "README.md", "language_code": "vi" }, diff --git a/translations/vi/README.md b/translations/vi/README.md index 14e33b8c2..5df31de71 100644 --- a/translations/vi/README.md +++ b/translations/vi/README.md @@ -2,22 +2,22 @@ [![Người đóng góp GitHub](https://img.shields.io/github/contributors/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/graphs/contributors/) [![Vấn đề GitHub](https://img.shields.io/github/issues/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/issues/) [![Yêu cầu kéo GitHub](https://img.shields.io/github/issues-pr/microsoft/ML-For-Beginners.svg)](https://GitHub.com/microsoft/ML-For-Beginners/pulls/) -[![Chào mừng PR](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) +[![Hoan nghênh PR](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![Người theo dõi GitHub](https://img.shields.io/github/watchers/microsoft/ML-For-Beginners.svg?style=social&label=Watch)](https://GitHub.com/microsoft/ML-For-Beginners/watchers/) -[![Mã nhánh GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) -[![Ngôi sao GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) +[![Forks GitHub](https://img.shields.io/github/forks/microsoft/ML-For-Beginners.svg?style=social&label=Fork)](https://GitHub.com/microsoft/ML-For-Beginners/network/) +[![Sao GitHub](https://img.shields.io/github/stars/microsoft/ML-For-Beginners.svg?style=social&label=Star)](https://GitHub.com/microsoft/ML-For-Beginners/stargazers/) ### 🌐 Hỗ trợ đa ngôn ngữ -#### Hỗ trợ qua GitHub Action (Tự động & Luôn cập nhật) +#### Hỗ trợ thông qua GitHub Action (Tự động & Luôn cập nhật) -[Tiếng Ả Rập](../ar/README.md) | [Tiếng Bengali](../bn/README.md) | [Tiếng Bungari](../bg/README.md) | [Tiếng Myanmar (Miến Điện)](../my/README.md) | [Tiếng Trung giản thể](../zh-CN/README.md) | [Tiếng Trung phồn thể (Hồng Kông)](../zh-HK/README.md) | [Tiếng Trung phồn thể (Macau)](../zh-MO/README.md) | [Tiếng Trung phồn thể (Đài Loan)](../zh-TW/README.md) | [Tiếng Croatia](../hr/README.md) | [Tiếng Séc](../cs/README.md) | [Tiếng Đan Mạch](../da/README.md) | [Tiếng Hà Lan](../nl/README.md) | [Tiếng Estonia](../et/README.md) | [Tiếng Phần Lan](../fi/README.md) | [Tiếng Pháp](../fr/README.md) | [Tiếng Đức](../de/README.md) | [Tiếng Hy Lạp](../el/README.md) | [Tiếng Do Thái](../he/README.md) | [Tiếng Hindi](../hi/README.md) | [Tiếng Hungary](../hu/README.md) | [Tiếng Indonesia](../id/README.md) | [Tiếng Ý](../it/README.md) | [Tiếng Nhật](../ja/README.md) | [Tiếng Kannada](../kn/README.md) | [Tiếng Hàn Quốc](../ko/README.md) | [Tiếng Lithuania](../lt/README.md) | [Tiếng Mã Lai](../ms/README.md) | [Tiếng Malayalam](../ml/README.md) | [Tiếng Marathi](../mr/README.md) | [Tiếng Nepali](../ne/README.md) | [Tiếng Pidgin Nigeria](../pcm/README.md) | [Tiếng Na Uy](../no/README.md) | [Tiếng Ba Tư (Farsi)](../fa/README.md) | [Tiếng Ba Lan](../pl/README.md) | [Tiếng Bồ Đào Nha (Brazil)](../pt-BR/README.md) | [Tiếng Bồ Đào Nha (Bồ Đào Nha)](../pt-PT/README.md) | [Tiếng Punjabi (Gurmukhi)](../pa/README.md) | [Tiếng Romania](../ro/README.md) | [Tiếng Nga](../ru/README.md) | [Tiếng Serbia (Chữ Cyrillic)](../sr/README.md) | [Tiếng Slovak](../sk/README.md) | [Tiếng Slovenia](../sl/README.md) | [Tiếng Tây Ban Nha](../es/README.md) | [Tiếng Swahili](../sw/README.md) | [Tiếng Thụy Điển](../sv/README.md) | [Tiếng Tagalog (Filipino)](../tl/README.md) | [Tiếng Tamil](../ta/README.md) | [Tiếng Telugu](../te/README.md) | [Tiếng Thái](../th/README.md) | [Tiếng Thổ Nhĩ Kỳ](../tr/README.md) | [Tiếng Ukraina](../uk/README.md) | [Tiếng Urdu](../ur/README.md) | [Tiếng Việt](./README.md) +[Tiếng Ả Rập](../ar/README.md) | [Tiếng Bengal](../bn/README.md) | [Tiếng Bungari](../bg/README.md) | [Tiếng Miến Điện (Myanmar)](../my/README.md) | [Tiếng Trung (Giản thể)](../zh-CN/README.md) | [Tiếng Trung (Phồn thể, Hồng Kông)](../zh-HK/README.md) | [Tiếng Trung (Phồn thể, Macau)](../zh-MO/README.md) | [Tiếng Trung (Phồn thể, Đài Loan)](../zh-TW/README.md) | [Tiếng Croatia](../hr/README.md) | [Tiếng Séc](../cs/README.md) | [Tiếng Đan Mạch](../da/README.md) | [Tiếng Hà Lan](../nl/README.md) | [Tiếng Estonia](../et/README.md) | [Tiếng Phần Lan](../fi/README.md) | [Tiếng Pháp](../fr/README.md) | [Tiếng Đức](../de/README.md) | [Tiếng Hy Lạp](../el/README.md) | [Tiếng Do Thái](../he/README.md) | [Tiếng Hindi](../hi/README.md) | [Tiếng Hungary](../hu/README.md) | [Tiếng Indonesia](../id/README.md) | [Tiếng Ý](../it/README.md) | [Tiếng Nhật](../ja/README.md) | [Tiếng Kannada](../kn/README.md) | [Tiếng Khmer](../km/README.md) | [Tiếng Hàn](../ko/README.md) | [Tiếng Lithuania](../lt/README.md) | [Tiếng Malay](../ms/README.md) | [Tiếng Malayalam](../ml/README.md) | [Tiếng Marathi](../mr/README.md) | [Tiếng Nepal](../ne/README.md) | [Tiếng Pidgin Nigeria](../pcm/README.md) | [Tiếng Na Uy](../no/README.md) | [Tiếng Ba Tư (Farsi)](../fa/README.md) | [Tiếng Ba Lan](../pl/README.md) | [Tiếng Bồ Đào Nha (Brazil)](../pt-BR/README.md) | [Tiếng Bồ Đào Nha (Bồ Đào Nha)](../pt-PT/README.md) | [Tiếng Punjabi (Gurmukhi)](../pa/README.md) | [Tiếng Romania](../ro/README.md) | [Tiếng Nga](../ru/README.md) | [Tiếng Serbia (Chữ Cyrillic)](../sr/README.md) | [Tiếng Slovakia](../sk/README.md) | [Tiếng Slovenia](../sl/README.md) | [Tiếng Tây Ban Nha](../es/README.md) | [Tiếng Swahili](../sw/README.md) | [Tiếng Thụy Điển](../sv/README.md) | [Tiếng Tagalog (Filipino)](../tl/README.md) | [Tiếng Tamil](../ta/README.md) | [Tiếng Telugu](../te/README.md) | [Tiếng Thái](../th/README.md) | [Tiếng Thổ Nhĩ Kỳ](../tr/README.md) | [Tiếng Ukraina](../uk/README.md) | [Tiếng Urdu](../ur/README.md) | [Tiếng Việt](./README.md) -> **Ưu tiên Sao chép cục bộ?** +> **Ưu tiên sao chép về máy?** > -> Kho lưu trữ này bao gồm hơn 50 bản dịch ngôn ngữ làm tăng đáng kể kích thước tải xuống. Để sao chép mà không có bản dịch, hãy sử dụng sparse checkout: +> Kho lưu trữ này bao gồm hơn 50 bản dịch ngôn ngữ, làm tăng đáng kể kích thước tải về. Để sao chép mà không có bản dịch, hãy sử dụng sparse checkout: > > **Bash / macOS / Linux:** > ```bash @@ -33,206 +33,206 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> Điều này giúp bạn có mọi thứ cần thiết để hoàn thành khóa học với tốc độ tải xuống nhanh hơn nhiều. +> Điều này cung cấp cho bạn mọi thứ cần thiết để hoàn thành khóa học với tốc độ tải nhanh hơn nhiều. -#### Tham gia Cộng đồng của Chúng tôi +#### Tham gia cộng đồng của chúng tôi -[![Discord Microsoft Foundry](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) +[![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Chúng tôi có một chuỗi học với AI trên Discord đang diễn ra, tìm hiểu thêm và tham gia chúng tôi tại [Learn with AI Series](https://aka.ms/learnwithai/discord) từ ngày 18 - 30 tháng 9, 2025. Bạn sẽ nhận được các mẹo và thủ thuật sử dụng GitHub Copilot cho Khoa học dữ liệu. +Chúng tôi có một chuỗi học tập Discord với chủ đề AI đang diễn ra, tìm hiểu thêm và tham gia cùng chúng tôi tại [Chuỗi Học với AI](https://aka.ms/learnwithai/discord) từ ngày 18 - 30 tháng 9, 2025. Bạn sẽ nhận được mẹo và thủ thuật sử dụng GitHub Copilot cho Khoa học Dữ liệu. ![Chuỗi học với AI](../../translated_images/vi/3.9b58fd8d6c373c20.webp) -# Máy học cho Người mới bắt đầu - Một Chương trình giảng dạy +# Máy học cho người mới bắt đầu - Một chương trình học -> 🌍 Du lịch vòng quanh thế giới khi chúng ta khám phá Máy học qua các nền văn hóa thế giới 🌍 +> 🌍 Du lịch vòng quanh thế giới khi chúng ta khám phá Máy học thông qua các nền văn hóa thế giới 🌍 -Những Người Ủng hộ Đám mây tại Microsoft vui mừng giới thiệu chương trình giảng dạy 12 tuần, 26 bài học xoay quanh **Máy học**. Trong chương trình này, bạn sẽ học về cái được đôi khi gọi là **máy học cổ điển**, chủ yếu sử dụng thư viện Scikit-learn và tránh học sâu, điều này được đề cập trong chương trình [AI cho Người mới bắt đầu của chúng tôi](https://aka.ms/ai4beginners). Kết hợp các bài học này với chương trình ['Khoa học dữ liệu cho Người mới bắt đầu'](https://aka.ms/ds4beginners) của chúng tôi nữa nhé! +Các Đại sứ Điện toán Đám mây tại Microsoft vui mừng cung cấp một chương trình học 12 tuần, 26 bài học hoàn toàn về **Máy học**. Trong chương trình này, bạn sẽ học về những gì đôi khi gọi là **máy học cổ điển**, chủ yếu sử dụng thư viện Scikit-learn và tránh deep learning, được đề cập trong chương trình [AI cho người mới bắt đầu](https://aka.ms/ai4beginners) của chúng tôi. Kết hợp các bài học này với chương trình ['Khoa học dữ liệu cho người mới bắt đầu'](https://aka.ms/ds4beginners) cũng của chúng tôi! -Hãy cùng chúng tôi du lịch vòng quanh thế giới khi áp dụng các kỹ thuật cổ điển này vào dữ liệu từ nhiều khu vực trên thế giới. Mỗi bài học gồm có câu đố trước và sau bài học, hướng dẫn viết để hoàn thành bài học, giải pháp, bài tập về nhà, và nhiều hơn nữa. Phương pháp học dựa trên dự án giúp bạn học trong quá trình xây dựng, một cách đã được chứng minh giúp kỹ năng mới được 'được ghi nhớ'. +Hãy du hành cùng chúng tôi vòng quanh thế giới khi áp dụng các kỹ thuật máy học cổ điển này vào dữ liệu từ nhiều nơi trên thế giới. Mỗi bài học bao gồm các bài kiểm tra trước và sau bài học, hướng dẫn viết để hoàn thành bài học, lời giải, bài tập, và nhiều nữa. Phương pháp giảng dạy dựa trên dự án cho phép bạn học trong lúc xây dựng, một cách đã được chứng minh để kỹ năng mới dễ ghi nhớ hơn. -**✍️ Xin cảm ơn chân thành tới các tác giả của chúng tôi** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu và Amy Boyd +**✍️ Xin gửi lời cảm ơn chân thành đến các tác giả** Jen Looper, Stephen Howell, Francesca Lazzeri, Tomomi Imura, Cassie Breviu, Dmitry Soshnikov, Chris Noring, Anirban Mukherjee, Ornella Altunyan, Ruth Yakubu và Amy Boyd -**🎨 Cảm ơn các họa sĩ minh họa của chúng tôi** Tomomi Imura, Dasani Madipalli, và Jen Looper +**🎨 Cảm ơn các họa sĩ minh họa** Tomomi Imura, Dasani Madipalli, và Jen Looper -**🙏 Cảm ơn đặc biệt 🙏 các tác giả, người đánh giá và cộng tác nội dung Đại sứ Sinh viên Microsoft của chúng tôi**, đặc biệt là Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, và Snigdha Agarwal +**🙏 Cảm ơn đặc biệt 🙏 các Đại sứ Sinh viên Microsoft là tác giả, người đánh giá và người đóng góp nội dung**, đặc biệt là Rishit Dagli, Muhammad Sakib Khan Inan, Rohan Raj, Alexandru Petrescu, Abhishek Jaiswal, Nawrin Tabassum, Ioan Samuila, và Snigdha Agarwal -**🤩 Cảm ơn thêm tới Đại sứ Sinh viên Microsoft Eric Wanjau, Jasleen Sondhi, và Vidushi Gupta cho các bài học R của chúng tôi!** +**🤩 Cảm ơn thêm các Đại sứ Sinh viên Microsoft Eric Wanjau, Jasleen Sondhi, và Vidushi Gupta cho các bài học R của chúng tôi!** # Bắt đầu -Thực hiện các bước sau: -1. **Fork kho lưu trữ**: Nhấn nút "Fork" ở góc trên bên phải trang này. -2. **Sao chép kho lưu trữ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +Làm theo các bước sau: +1. **Fork kho lưu trữ**: Nhấp vào nút "Fork" ở góc trên bên phải trang này. +2. **Clone kho lưu trữ**: `git clone https://github.com/microsoft/ML-For-Beginners.git` > [tìm tất cả tài nguyên bổ sung cho khóa học này trong bộ sưu tập Microsoft Learn của chúng tôi](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **Cần trợ giúp?** Kiểm tra [Hướng dẫn Khắc phục Sự cố](TROUBLESHOOTING.md) của chúng tôi để tìm giải pháp cho các vấn đề phổ biến khi cài đặt, thiết lập và chạy bài học. +> 🔧 **Cần trợ giúp?** Kiểm tra [Hướng dẫn xử lý sự cố](TROUBLESHOOTING.md) để tìm giải pháp cho các vấn đề phổ biến về cài đặt, thiết lập và chạy bài học. -**[Học sinh](https://aka.ms/student-page)**, để sử dụng chương trình giảng dạy này, hãy fork toàn bộ kho lưu trữ sang tài khoản GitHub của riêng bạn và hoàn thành các bài tập một mình hoặc theo nhóm: +**[Học sinh](https://aka.ms/student-page)**, để sử dụng chương trình này, hãy fork toàn bộ kho lưu trữ vào tài khoản GitHub của bạn và hoàn thành các bài tập một mình hoặc theo nhóm: -- Bắt đầu với câu đố khởi động trước bài giảng. -- Đọc bài giảng và hoàn thành các hoạt động, tạm dừng và suy ngẫm tại mỗi kiểm tra kiến thức. -- Cố gắng tạo các dự án bằng cách hiểu bài học thay vì chạy mã giải pháp; tuy nhiên mã đó có sẵn trong thư mục `/solution` trong mỗi bài học dựa trên dự án. -- Làm câu đố sau bài giảng. +- Bắt đầu với bài kiểm tra trước bài giảng. +- Đọc bài giảng và hoàn thành các hoạt động, tạm dừng và suy ngẫm ở mỗi phần kiểm tra kiến thức. +- Cố gắng tạo các dự án bằng cách hiểu bài học thay vì chạy mã giải pháp; mã giải pháp có sẵn trong các thư mục `/solution` ở mỗi bài học theo dự án. +- Làm bài kiểm tra sau bài giảng. - Hoàn thành thử thách. - Hoàn thành bài tập. -- Sau khi hoàn thành một nhóm bài học, hãy truy cập [Bảng thảo luận](https://github.com/microsoft/ML-For-Beginners/discussions) và "học tập công khai" bằng cách điền vào bảng đánh giá PAT thích hợp. 'PAT' là Công cụ Đánh giá Tiến trình mà bạn điền để phát triển việc học của mình. Bạn cũng có thể phản ứng với các PAT khác để chúng ta cùng học hỏi. +- Sau khi hoàn thành một nhóm bài học, truy cập [Bảng Thảo luận](https://github.com/microsoft/ML-For-Beginners/discussions) và "học cùng mọi người" bằng cách điền vào bảng đánh giá PAT phù hợp. 'PAT' là Công cụ Đánh giá Tiến độ mà bạn điền để nâng cao việc học của mình. Bạn cũng có thể phản hồi các PAT khác để chúng ta cùng học hỏi. -> Để học thêm, chúng tôi khuyến nghị theo dõi các [mô-đun và lộ trình học Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) này. +> Để học sâu hơn, chúng tôi khuyến nghị theo dõi các mô-đun và lộ trình học trong [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott). -**Giáo viên**, chúng tôi đã [bao gồm một số gợi ý](for-teachers.md) về cách sử dụng chương trình giảng dạy này. +**Giáo viên**, chúng tôi có [bao gồm một số gợi ý](for-teachers.md) về cách sử dụng chương trình này. --- ## Video hướng dẫn -Một số bài học có sẵn dưới dạng video ngắn. Bạn có thể tìm tất cả những video này ngay trong bài học, hoặc trên [danh sách phát ML for Beginners trên kênh YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) bằng cách nhấn vào hình dưới đây. +Một số bài học có dưới dạng video ngắn. Bạn có thể tìm thấy tất cả các video này ngay trong bài học, hoặc trên [danh sách phát ML for Beginners trên kênh YouTube Microsoft Developer](https://aka.ms/ml-beginners-videos) bằng cách nhấp vào hình ảnh dưới đây. -[![Banner ML cho người mới bắt đầu](../../translated_images/vi/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) +[![Biểu ngữ ML cho người mới bắt đầu](../../translated_images/vi/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## Gặp gỡ Đội ngũ +## Gặp gỡ đội ngũ [![Video quảng bá](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) **Gif bởi** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 Nhấn vào hình ảnh trên để xem video về dự án và những người tạo ra nó! +> 🎥 Nhấp vào hình ảnh trên để xem video về dự án và những người đã tạo ra nó! --- ## Phương pháp giảng dạy -Chúng tôi đã chọn hai nguyên tắc giáo dục khi xây dựng chương trình này: đảm bảo nó là **dự án thực hành** và bao gồm **câu đố thường xuyên**. Ngoài ra, chương trình này có một **chủ đề** chung để tạo sự liên kết. +Chúng tôi đã chọn hai nguyên tắc giảng dạy khi xây dựng chương trình này: đảm bảo nó thuộc loại **dựa trên dự án thực hành** và bao gồm **các bài kiểm tra thường xuyên**. Ngoài ra, chương trình có một **chủ đề chung** để tạo sự gắn kết. -Bằng cách đảm bảo nội dung phù hợp với các dự án, quá trình học trở nên hấp dẫn hơn với học sinh và việc ghi nhớ kiến thức sẽ được tăng cường. Ngoài ra, một câu đố nhẹ nhàng trước lớp tạo thiên hướng học tập cho học viên về chủ đề, trong khi câu đố thứ hai sau lớp đảm bảo việc lưu giữ kiến thức lâu hơn. Chương trình này được thiết kế linh hoạt và thú vị và có thể học toàn bộ hoặc từng phần. Các dự án bắt đầu nhỏ và trở nên phức tạp hơn dần cho tới cuối chu kỳ 12 tuần. Chương trình cũng có phần hậu ký về ứng dụng thực tiễn của ML, có thể dùng làm điểm cộng hoặc cơ sở cho thảo luận. +Bằng việc đảm bảo nội dung phù hợp với dự án, quá trình học trở nên hấp dẫn hơn với học sinh và tăng cường khả năng ghi nhớ khái niệm. Bên cạnh đó, một bài kiểm tra mức thấp trước lớp đặt mục đích học tập cho học sinh, trong khi bài kiểm tra thứ hai sau lớp giúp củng cố kiến thức. Chương trình này được thiết kế linh hoạt và vui nhộn, có thể học trọn vẹn hoặc từng phần. Các dự án bắt đầu nhỏ và trở nên phức tạp hơn vào cuối chu kỳ 12 tuần. Chương trình còn bao gồm phần phụ lục về ứng dụng thực tế của ML, có thể dùng làm bài tập thêm hoặc cơ sở thảo luận. -> Tìm các hướng dẫn [Quy tắc ứng xử](CODE_OF_CONDUCT.md), [Đóng góp](CONTRIBUTING.md), [Bản dịch](..), và [Khắc phục sự cố](TROUBLESHOOTING.md) của chúng tôi. Chúng tôi hoan nghênh phản hồi xây dựng của bạn! +> Tìm các hướng dẫn [Quy tắc ứng xử](CODE_OF_CONDUCT.md), [Đóng góp](CONTRIBUTING.md), [Bản dịch](..), và [Xử lý sự cố](TROUBLESHOOTING.md) của chúng tôi. Chúng tôi rất hoan nghênh phản hồi mang tính xây dựng của bạn! ## Mỗi bài học bao gồm -- bản phác thảo có thể chọn +- bản phác thảo tùy chọn - video bổ sung tùy chọn -- video hướng dẫn (một số bài học) -- [câu đố làm nóng trước bài giảng](https://ff-quizzes.netlify.app/en/ml/) -- bài học viết -- đối với các bài học dự án, hướng dẫn từng bước xây dựng dự án +- video hướng dẫn (chỉ một số bài học) +- [bài kiểm tra khởi động trước bài giảng](https://ff-quizzes.netlify.app/en/ml/) +- bài học bằng văn bản +- đối với các bài học dự án, hướng dẫn từng bước cách xây dựng dự án - kiểm tra kiến thức - một thử thách -- đọc bổ sung +- bài đọc bổ sung - bài tập -- [câu đố sau bài giảng](https://ff-quizzes.netlify.app/en/ml/) - -> **Lưu ý về ngôn ngữ**: Các bài học này chủ yếu viết bằng Python, nhưng nhiều bài cũng có sẵn bằng R. Để hoàn thành bài học R, hãy vào thư mục `/solution` và tìm các bài học R. Chúng có phần mở rộng .rmd đại diện cho tệp **R Markdown** có thể được định nghĩa đơn giản là nhúng các `đoạn mã` (của R hoặc ngôn ngữ khác) và `đầu đề YAML` (hướng dẫn cách định dạng đầu ra như PDF) trong một tài liệu `Markdown`. Vì vậy, nó là một khung viết mẫu mực cho khoa học dữ liệu vì nó cho phép bạn kết hợp mã, đầu ra và suy nghĩ của mình bằng cách viết chúng trên Markdown. Hơn nữa, tài liệu R Markdown có thể được chuyển đổi sang các định dạng đầu ra như PDF, HTML hoặc Word. -> **Lưu ý về các bài kiểm tra**: Tất cả các bài kiểm tra đều nằm trong [thư mục Quiz App](../../quiz-app), tổng cộng 52 bài kiểm tra, mỗi bài gồm ba câu hỏi. Chúng được liên kết từ trong các bài học nhưng ứng dụng kiểm tra có thể chạy cục bộ; làm theo hướng dẫn trong thư mục `quiz-app` để lưu trữ hoặc triển khai trên Azure. - -| Số Bài Học | Chủ đề | Nhóm Bài Học | Mục tiêu học tập | Bài Học Liên Kết | Tác giả | -| :---------: | :--------------------------------------------------------: | :--------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | -| 01 | Giới thiệu về học máy | [Giới thiệu](1-Introduction/README.md) | Học các khái niệm cơ bản về học máy | [Bài học](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | Lịch sử của học máy | [Giới thiệu](1-Introduction/README.md) | Tìm hiểu lịch sử nền tảng của lĩnh vực này | [Bài học](1-Introduction/2-history-of-ML/README.md) | Jen và Amy | -| 03 | Công bằng và học máy | [Giới thiệu](1-Introduction/README.md) | Các vấn đề triết học quan trọng về công bằng mà học viên nên cân nhắc khi xây dựng và áp dụng mô hình ML | [Bài học](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | Kỹ thuật cho học máy | [Giới thiệu](1-Introduction/README.md) | Các kỹ thuật mà các nhà nghiên cứu ML sử dụng để xây dựng mô hình ML | [Bài học](1-Introduction/4-techniques-of-ML/README.md) | Chris và Jen | -| 05 | Giới thiệu về hồi quy | [Hồi quy](2-Regression/README.md) | Bắt đầu với Python và Scikit-learn cho các mô hình hồi quy | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | Giá bí ngô Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Trực quan hóa và làm sạch dữ liệu để chuẩn bị cho ML | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | Giá bí ngô Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Xây dựng các mô hình hồi quy tuyến tính và đa thức | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen và Dmitry • Eric Wanjau | -| 08 | Giá bí ngô Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Xây dựng mô hình hồi quy logistic | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Ứng dụng Web 🔌 | [Web App](3-Web-App/README.md) | Xây dựng ứng dụng web sử dụng mô hình đã huấn luyện | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | Giới thiệu về phân loại | [Phân loại](4-Classification/README.md) | Làm sạch, chuẩn bị, và trực quan hóa dữ liệu; giới thiệu phân loại | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen và Cassie • Eric Wanjau | -| 11 | Ẩm thực ngon của châu Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Giới thiệu về bộ phân loại | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen và Cassie • Eric Wanjau | -| 12 | Ẩm thực ngon của châu Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Thêm các bộ phân loại | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen và Cassie • Eric Wanjau | -| 13 | Ẩm thực ngon của châu Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Xây dựng ứng dụng web đề xuất sử dụng mô hình của bạn | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | Giới thiệu về phân cụm | [Phân cụm](5-Clustering/README.md) | Làm sạch, chuẩn bị, và trực quan hóa dữ liệu; giới thiệu về phân cụm | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | Khám phá thị hiếu âm nhạc Nigeria 🎧 | [Phân cụm](5-Clustering/README.md) | Khám phá phương pháp phân cụm K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | Giới thiệu về xử lý ngôn ngữ tự nhiên ☕️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Học cơ bản về NLP bằng cách xây dựng một bot đơn giản | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | Các nhiệm vụ NLP phổ biến ☕️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Nâng cao kiến thức NLP bằng việc hiểu các nhiệm vụ phổ biến khi xử lý cấu trúc ngôn ngữ | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | Dịch thuật và phân tích cảm xúc ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Dịch và phân tích cảm xúc với Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | Khách sạn lãng mạn ở Châu Âu ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích cảm xúc với đánh giá khách sạn 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | Khách sạn lãng mạn ở Châu Âu ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích cảm xúc với đánh giá khách sạn 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | Giới thiệu dự báo chuỗi thời gian | [Chuỗi thời gian](7-TimeSeries/README.md) | Giới thiệu về dự báo chuỗi thời gian | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ Thống kê sử dụng điện toàn cầu ⚡️ - dự báo chuỗi ARIMA | [Chuỗi thời gian](7-TimeSeries/README.md) | Dự báo chuỗi thời gian với ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ Thống kê sử dụng điện toàn cầu ⚡️ - dự báo chuỗi SVR | [Chuỗi thời gian](7-TimeSeries/README.md) | Dự báo chuỗi thời gian với Bộ hồi quy vector hỗ trợ | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | Giới thiệu về học củng cố | [Học củng cố](8-Reinforcement/README.md) | Giới thiệu học củng cố với Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | Giúp Peter tránh con sói! 🐺 | [Học củng cố](8-Reinforcement/README.md) | Học củng cố với Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| Tái bút | Các kịch bản và ứng dụng thực tế của ML | [ML trong thực tế](9-Real-World/README.md) | Các ứng dụng thú vị và nổi bật trong thực tế của ML cổ điển | [Bài học](9-Real-World/1-Applications/README.md) | Nhóm | -| Tái bút | Gỡ lỗi mô hình ML với bảng điều khiển RAI | [ML trong thực tế](9-Real-World/README.md) | Gỡ lỗi mô hình trong Machine Learning với các thành phần bảng điều khiển Responsible AI | [Bài học](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | +- [bài kiểm tra sau bài giảng](https://ff-quizzes.netlify.app/en/ml/) +> **Một lưu ý về ngôn ngữ**: Các bài học này chủ yếu được viết bằng Python, nhưng nhiều bài cũng có sẵn bằng R. Để hoàn thành một bài học bằng R, hãy vào thư mục `/solution` và tìm các bài học R. Chúng bao gồm phần mở rộng .rmd đại diện cho một tập tin **R Markdown** có thể đơn giản được định nghĩa là sự nhúng các `khối mã` (bằng R hoặc các ngôn ngữ khác) và một `đầu trang YAML` (hướng dẫn cách định dạng các đầu ra như PDF) trong một `tài liệu Markdown`. Do đó, nó phục vụ như một khung tác giả mẫu cho khoa học dữ liệu vì nó cho phép bạn kết hợp mã của mình, kết quả đầu ra và suy nghĩ của bạn bằng cách cho phép bạn viết chúng ra dưới dạng Markdown. Hơn nữa, các tài liệu R Markdown có thể được kết xuất sang các định dạng đầu ra như PDF, HTML hoặc Word. + +> **Một lưu ý về các bài kiểm tra**: Tất cả các bài kiểm tra được chứa trong [thư mục Ứng dụng Quiz](../../quiz-app), tổng cộng 52 bài kiểm tra với mỗi bài gồm ba câu hỏi. Chúng được liên kết trong các bài học nhưng ứng dụng kiểm tra có thể chạy cục bộ; hãy làm theo hướng dẫn trong thư mục `quiz-app` để lưu trữ hoặc triển khai cục bộ lên Azure. + +| Số Bài Học | Chủ Đề | Nhóm Bài Học | Mục Tiêu Học Tập | Bài Học Liên Kết | Tác Giả | +| :---------: | :---------------------------------------------------------------: | :-----------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------: | +| 01 | Giới thiệu về học máy | [Giới thiệu](1-Introduction/README.md) | Tìm hiểu các khái niệm cơ bản đằng sau học máy | [Bài học](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | Lịch sử của học máy | [Giới thiệu](1-Introduction/README.md) | Tìm hiểu lịch sử nền tảng của lĩnh vực này | [Bài học](1-Introduction/2-history-of-ML/README.md) | Jen và Amy | +| 03 | Công bằng và học máy | [Giới thiệu](1-Introduction/README.md) | Những vấn đề triết học quan trọng về công bằng mà học viên nên cân nhắc khi xây dựng và áp dụng các mô hình ML? | [Bài học](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | Kỹ thuật học máy | [Giới thiệu](1-Introduction/README.md) | Những kỹ thuật nào các nhà nghiên cứu ML sử dụng để xây dựng các mô hình ML? | [Bài học](1-Introduction/4-techniques-of-ML/README.md) | Chris và Jen | +| 05 | Giới thiệu về hồi quy | [Hồi quy](2-Regression/README.md) | Bắt đầu với Python và Scikit-learn cho các mô hình hồi quy | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | Giá bí đỏ Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Trực quan hóa và làm sạch dữ liệu chuẩn bị cho học máy | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | Giá bí đỏ Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Xây dựng các mô hình hồi quy tuyến tính và đa thức | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen và Dmitry • Eric Wanjau | +| 08 | Giá bí đỏ Bắc Mỹ 🎃 | [Hồi quy](2-Regression/README.md) | Xây dựng mô hình hồi quy logistic | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | Ứng dụng Web 🔌 | [Ứng dụng Web](3-Web-App/README.md) | Xây dựng một ứng dụng web để sử dụng mô hình đã huấn luyện | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | Giới thiệu về phân loại | [Phân loại](4-Classification/README.md) | Làm sạch, chuẩn bị và trực quan hóa dữ liệu; giới thiệu về phân loại | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen và Cassie • Eric Wanjau | +| 11 | Món ăn ngon Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Giới thiệu về bộ phân loại | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen và Cassie • Eric Wanjau | +| 12 | Món ăn ngon Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Thêm nhiều bộ phân loại | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen và Cassie • Eric Wanjau | +| 13 | Món ăn ngon Á và Ấn Độ 🍜 | [Phân loại](4-Classification/README.md) | Xây dựng ứng dụng web đề xuất sử dụng mô hình của bạn | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | Giới thiệu về phân cụm | [Phân cụm](5-Clustering/README.md) | Làm sạch, chuẩn bị và trực quan hóa dữ liệu; Giới thiệu về phân cụm | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | Khám phá thị hiếu âm nhạc Nigeria 🎧 | [Phân cụm](5-Clustering/README.md) | Khám phá phương pháp phân cụm K-Means | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | Giới thiệu xử lý ngôn ngữ tự nhiên ☕️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Học các kiến thức cơ bản về NLP bằng cách xây dựng một bot đơn giản | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | Các nhiệm vụ NLP phổ biến ☕️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Làm sâu thêm kiến thức NLP của bạn bằng cách hiểu các nhiệm vụ phổ biến cần thiết khi xử lý cấu trúc ngôn ngữ | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | Phân tích dịch và cảm xúc ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích dịch và cảm xúc với Jane Austen | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | Khách sạn lãng mạn ở Châu Âu ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích cảm xúc với đánh giá khách sạn 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | Khách sạn lãng mạn ở Châu Âu ♥️ | [Xử lý ngôn ngữ tự nhiên](6-NLP/README.md) | Phân tích cảm xúc với đánh giá khách sạn 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | Giới thiệu dự báo chuỗi thời gian | [Chuỗi thời gian](7-TimeSeries/README.md) | Giới thiệu về dự báo chuỗi thời gian | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ Sử dụng điện năng toàn cầu ⚡️ - dự báo chuỗi thời gian ARIMA | [Chuỗi thời gian](7-TimeSeries/README.md) | Dự báo chuỗi thời gian với ARIMA | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ Sử dụng điện năng toàn cầu ⚡️ - dự báo chuỗi thời gian SVR | [Chuỗi thời gian](7-TimeSeries/README.md) | Dự báo chuỗi thời gian với Support Vector Regressor | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | Giới thiệu học tăng cường | [Học tăng cường](8-Reinforcement/README.md) | Giới thiệu học tăng cường với Q-Learning | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | Giúp Peter tránh sói! 🐺 | [Học tăng cường](8-Reinforcement/README.md) | Học tăng cường Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Lời kết | Các tình huống và ứng dụng ML trong thực tế | [ML trong Thực tế](9-Real-World/README.md) | Các ứng dụng thú vị và tiết lộ trong thế giới thực của học máy cổ điển | [Bài học](9-Real-World/1-Applications/README.md) | Đội ngũ | +| Lời kết | Gỡ lỗi mô hình ML bằng bảng điều khiển RAI | [ML trong Thực tế](9-Real-World/README.md) | Gỡ lỗi mô hình trong học máy sử dụng các thành phần bảng điều khiển AI có trách nhiệm | [Bài học](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | > [tìm tất cả tài nguyên bổ sung cho khóa học này trong bộ sưu tập Microsoft Learn của chúng tôi](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## Truy cập ngoại tuyến -Bạn có thể chạy tài liệu này ngoại tuyến bằng cách sử dụng [Docsify](https://docsify.js.org/#/). Sao chép repo này, [cài đặt Docsify](https://docsify.js.org/#/quickstart) trên máy cục bộ của bạn, rồi trong thư mục gốc của repo này, gõ `docsify serve`. Trang web sẽ được phục vụ trên cổng 3000 trên localhost của bạn: `localhost:3000`. +Bạn có thể chạy tài liệu này ngoại tuyến bằng cách sử dụng [Docsify](https://docsify.js.org/#/). Fork repo này, [cài đặt Docsify](https://docsify.js.org/#/quickstart) trên máy tính cục bộ của bạn, sau đó trong thư mục gốc của repo này, gõ `docsify serve`. Trang web sẽ được phục vụ trên cổng 3000 tại localhost của bạn: `localhost:3000`. ## PDF -Tìm file pdf của giáo trình có lỗi liên kết [ở đây](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). +Tìm tài liệu pdf của chương trình học với các liên kết [tại đây](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf). -## 🎒 Các khóa học khác +## 🎒 Các Khóa học Khác -Đội ngũ của chúng tôi còn sản xuất các khóa học khác! Hãy xem: +Nhóm của chúng tôi còn sản xuất các khóa học khác! Hãy xem: ### LangChain -[![LangChain4j cho Người Mới](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js cho Người Mới](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain cho Người Mới](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j cho Người mới bắt đầu](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js cho Người mới bắt đầu](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain cho Người mới bắt đầu](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD cho Người Mới](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI cho Người Mới](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP cho Người Mới](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents cho Người Mới](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD cho Người mới bắt đầu](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI cho Người mới bắt đầu](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP cho Người mới bắt đầu](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents cho Người mới bắt đầu](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### Chuỗi AI Sinh tạo -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### Chuỗi AI Tạo Sinh +[![AI Tạo Sinh cho Người mới bắt đầu](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Tạo Sinh (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![AI Tạo Sinh (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![AI Tạo Sinh (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### Học Tập Cốt Lõi -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML cho Người mới bắt đầu](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Khoa học Dữ liệu cho Người mới bắt đầu](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI cho Người mới bắt đầu](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![An ninh mạng cho Người mới bắt đầu](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Phát triển Web cho Người mới bắt đầu](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT cho Người mới bắt đầu](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![Phát triển XR cho Người mới bắt đầu](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Chuỗi Copilot -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot cho Lập trình Ghép đôi AI](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot cho C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Cuộc phiêu lưu Copilot](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## Nhận Trợ Giúp -Nếu bạn gặp khó khăn hoặc có bất kỳ câu hỏi nào về việc xây dựng ứng dụng AI. Hãy tham gia cùng các học viên và nhà phát triển giàu kinh nghiệm trong các cuộc thảo luận về MCP. Đây là một cộng đồng hỗ trợ, nơi các câu hỏi được chào đón và kiến thức được chia sẻ tự do. +Nếu bạn gặp khó khăn hoặc có bất kỳ câu hỏi nào về việc xây dựng ứng dụng AI. Hãy tham gia cùng những người học khác và các nhà phát triển giàu kinh nghiệm trong các cuộc thảo luận về MCP. Đây là một cộng đồng hỗ trợ, nơi mọi câu hỏi đều được chào đón và kiến thức được chia sẻ tự do. [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -Nếu bạn có phản hồi về sản phẩm hoặc lỗi trong quá trình xây dựng, hãy truy cập: +Nếu bạn có phản hồi về sản phẩm hoặc phát hiện lỗi trong quá trình xây dựng, hãy truy cập: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## Mẹo Học Tập Thêm +## Mẹo Học Thêm -- Xem lại các sổ tay bài học sau mỗi bài học để hiểu rõ hơn. -- Luyện tập tự mình triển khai các thuật toán. -- Khám phá các tập dữ liệu thực tế bằng cách sử dụng các khái niệm đã học. +- Xem lại các sổ tay sau mỗi bài học để hiểu sâu hơn. +- Thực hành triển khai các thuật toán một cách độc lập. +- Khám phá các bộ dữ liệu thực tế bằng cách sử dụng các khái niệm đã học. --- **Tuyên bố từ chối trách nhiệm**: -Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi nỗ lực đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc không chính xác. Tài liệu gốc bằng ngôn ngữ gốc vẫn được coi là nguồn chính xác và đáng tin cậy. Đối với các thông tin quan trọng, nên sử dụng dịch thuật chuyên nghiệp bởi con người. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hay sai lệch nào phát sinh từ việc sử dụng bản dịch này. +Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi nỗ lực để đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc sự không chính xác. Tài liệu gốc bằng ngôn ngữ mẹ đẻ nên được xem là nguồn chính xác và có thẩm quyền. Đối với thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp của con người. Chúng tôi không chịu trách nhiệm cho bất kỳ hiểu nhầm hoặc giải thích sai nào phát sinh từ việc sử dụng bản dịch này. \ No newline at end of file diff --git a/translations/zh-CN/.co-op-translator.json b/translations/zh-CN/.co-op-translator.json index 7c4d66024..c2c788f54 100644 --- a/translations/zh-CN/.co-op-translator.json +++ b/translations/zh-CN/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "zh-CN" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T09:25:07+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:23:52+00:00", "source_file": "README.md", "language_code": "zh-CN" }, diff --git a/translations/zh-CN/README.md b/translations/zh-CN/README.md index a868fd829..b4784e39f 100644 --- a/translations/zh-CN/README.md +++ b/translations/zh-CN/README.md @@ -13,11 +13,11 @@ #### 通过 GitHub Action 支持(自动且始终保持最新) -[阿拉伯语](../ar/README.md) | [孟加拉语](../bn/README.md) | [保加利亚语](../bg/README.md) | [缅甸语 (Myanmar)](../my/README.md) | [中文 (简体)](./README.md) | [中文 (繁体,香港)](../zh-HK/README.md) | [中文 (繁体,澳门)](../zh-MO/README.md) | [中文 (繁体,台湾)](../zh-TW/README.md) | [克罗地亚语](../hr/README.md) | [捷克语](../cs/README.md) | [丹麦语](../da/README.md) | [荷兰语](../nl/README.md) | [爱沙尼亚语](../et/README.md) | [芬兰语](../fi/README.md) | [法语](../fr/README.md) | [德语](../de/README.md) | [希腊语](../el/README.md) | [希伯来语](../he/README.md) | [印地语](../hi/README.md) | [匈牙利语](../hu/README.md) | [印尼语](../id/README.md) | [意大利语](../it/README.md) | [日语](../ja/README.md) | [卡纳达语](../kn/README.md) | [韩语](../ko/README.md) | [立陶宛语](../lt/README.md) | [马来语](../ms/README.md) | [马拉雅拉姆语](../ml/README.md) | [马拉地语](../mr/README.md) | [尼泊尔语](../ne/README.md) | [尼日利亚皮钦语](../pcm/README.md) | [挪威语](../no/README.md) | [波斯语 (法尔斯语)](../fa/README.md) | [波兰语](../pl/README.md) | [葡萄牙语 (巴西)](../pt-BR/README.md) | [葡萄牙语 (葡萄牙)](../pt-PT/README.md) | [旁遮普语 (古鲁穆奇)](../pa/README.md) | [罗马尼亚语](../ro/README.md) | [俄语](../ru/README.md) | [塞尔维亚语 (西里尔字母)](../sr/README.md) | [斯洛伐克语](../sk/README.md) | [斯洛文尼亚语](../sl/README.md) | [西班牙语](../es/README.md) | [斯瓦希里语](../sw/README.md) | [瑞典语](../sv/README.md) | [塔加洛语 (菲律宾语)](../tl/README.md) | [泰米尔语](../ta/README.md) | [泰卢固语](../te/README.md) | [泰语](../th/README.md) | [土耳其语](../tr/README.md) | [乌克兰语](../uk/README.md) | [乌尔都语](../ur/README.md) | [越南语](../vi/README.md) +[阿拉伯语](../ar/README.md) | [孟加拉语](../bn/README.md) | [保加利亚语](../bg/README.md) | [缅甸语 (Myanmar)](../my/README.md) | [中文(简体)](./README.md) | [中文(繁体,香港)](../zh-HK/README.md) | [中文(繁体,澳门)](../zh-MO/README.md) | [中文(繁体,台湾)](../zh-TW/README.md) | [克罗地亚语](../hr/README.md) | [捷克语](../cs/README.md) | [丹麦语](../da/README.md) | [荷兰语](../nl/README.md) | [爱沙尼亚语](../et/README.md) | [芬兰语](../fi/README.md) | [法语](../fr/README.md) | [德语](../de/README.md) | [希腊语](../el/README.md) | [希伯来语](../he/README.md) | [印地语](../hi/README.md) | [匈牙利语](../hu/README.md) | [印尼语](../id/README.md) | [意大利语](../it/README.md) | [日语](../ja/README.md) | [卡纳达语](../kn/README.md) | [高棉语](../km/README.md) | [韩语](../ko/README.md) | [立陶宛语](../lt/README.md) | [马来语](../ms/README.md) | [马拉雅拉姆语](../ml/README.md) | [马拉地语](../mr/README.md) | [尼泊尔语](../ne/README.md) | [尼日利亚皮钦语](../pcm/README.md) | [挪威语](../no/README.md) | [波斯语(法尔西)](../fa/README.md) | [波兰语](../pl/README.md) | [葡萄牙语(巴西)](../pt-BR/README.md) | [葡萄牙语(葡萄牙)](../pt-PT/README.md) | [旁遮普语(古鲁穆奇)](../pa/README.md) | [罗马尼亚语](../ro/README.md) | [俄语](../ru/README.md) | [塞尔维亚语(西里尔文)](../sr/README.md) | [斯洛伐克语](../sk/README.md) | [斯洛文尼亚语](../sl/README.md) | [西班牙语](../es/README.md) | [斯瓦希里语](../sw/README.md) | [瑞典语](../sv/README.md) | [他加禄语(菲律宾语)](../tl/README.md) | [泰米尔语](../ta/README.md) | [泰卢固语](../te/README.md) | [泰语](../th/README.md) | [土耳其语](../tr/README.md) | [乌克兰语](../uk/README.md) | [乌尔都语](../ur/README.md) | [越南语](../vi/README.md) -> **更喜欢本地克隆?** +> **更喜欢本地克隆吗?** > -> 本仓库包括50多种语言的翻译,极大增加了下载大小。若想不包含翻译地克隆,使用稀疏检出: +> 本仓库包含 50 多种语言的翻译,显著增加了下载大小。要克隆时不包含翻译,请使用稀疏检出: > > **Bash / macOS / Linux:** > ```bash @@ -33,62 +33,62 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> 这能让你以更快的速度下载完整课程所需内容。 +> 这样可以让您获得完成课程所需的全部内容,同时下载速度更快。 #### 加入我们的社区 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -我们正在举办 Discord 上与 AI 学习相关的系列活动,了解更多并加入我们,时间为2025年9月18日至30日,详见 [Learn with AI Series](https://aka.ms/learnwithai/discord)。你将获得使用 GitHub Copilot 进行数据科学的技巧和窍门。 +我们正在进行 Discord 上的 AI 学习系列,了解更多并加入我们,时间为2025年9月18日至30日,网址为 [Learn with AI Series](https://aka.ms/learnwithai/discord)。您将获得使用 GitHub Copilot 进行数据科学的小贴士和技巧。 ![Learn with AI series](../../translated_images/zh-CN/3.9b58fd8d6c373c20.webp) # 初学者机器学习课程 -> 🌍 通过世界文化探索机器学习,环游全球之旅 🌍 +> 🌍 通过探索世界文化来环游世界,学习机器学习 🌍 -微软的云倡导团队很高兴推出一个为期12周、包含26课的机器学习课程。在此课程中,你将学习通常称为**经典机器学习**的内容,主要使用Scikit-learn库,并避免深度学习,后者在我们的[AI初学者课程](https://aka.ms/ai4beginners)中覆盖。同学们还可以搭配使用我们的[数据科学初学者课程](https://aka.ms/ds4beginners)。 +微软云倡导者团队很高兴提供一个为期12周、包含26课的机器学习课程。在本课程中,您将学习有时称为经典机器学习的内容,主要使用 Scikit-learn 作为库,避免深度学习内容,后者涵盖在我们的[初学者人工智能课程](https://aka.ms/ai4beginners)中。也可搭配我们的[初学者数据科学课程](https://aka.ms/ds4beginners)一起学习。 -跟随我们环游世界,将这些经典技术应用于来自全球各地的数据。每课包含课前和课后测验、详细的完成指引、解答、作业等。我们基于项目的教学方法让你边学边做,这是一种验证有效的新技能固化方法。 +与我们一起环游世界,将这些经典技术应用于来自世界各地的数据。每节课包含课前和课后测验、书面指令完成课程、解决方案、作业等。我们的项目式教学方法让您在实践中学习,这是一种经过验证的新技能“固化”方式。 -**✍️ 衷心感谢我们的作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 和 Amy Boyd +**✍️ 感谢我们的作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 和 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 +**🙏 特别感谢 🙏 微软学生大使作者、审阅者和内容贡献者**,特别是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal -**🤩 额外感谢微软学生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 对我们的 R 课的贡献!** +**🤩 额外感谢微软学生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 提供的 R 语言课程!** -# 入门 +# 开始使用 -按以下步骤操作: -1. **Fork 仓库**: 点击本页面右上角的“Fork”按钮。 -2. **克隆仓库**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +按照以下步骤操作: +1. **Fork 仓库**:点击本页面右上角的“Fork”按钮。 +2. 克隆仓库:`git clone https://github.com/microsoft/ML-For-Beginners.git` -> [在我们的 Microsoft Learn 专栏找到本课程的所有附加资源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [在我们的 Microsoft Learn 集合中查找本课程的所有附加资源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **需要帮助?** 查阅我们的[故障排除指南](TROUBLESHOOTING.md)解决安装、设置和课程运行中的常见问题。 +> 🔧 **需要帮助?** 请查看我们的[故障排除指南](TROUBLESHOOTING.md),获得有关安装、设置和运行课程的常见问题解决方案。 -**[学生](https://aka.ms/student-page)**,使用本课程时,请将整个仓库 Fork 到你的 GitHub 账号,并独立或组队完成练习: +**[学生](https://aka.ms/student-page)**,使用本课程,请 fork 整个仓库到您自己的 GitHub 账户,并自行或与小组一起完成练习: -- 先进行课前测验。 -- 阅读课程内容并完成活动,在每个知识点检测时暂停并思考。 -- 力求通过理解课程内容自行创建项目,而非直接运行示范代码;但这些代码可在每个面向项目的课程的 `/solution` 文件夹找到。 +- 从课前测验开始。 +- 阅读课程并完成活动,每个知识点暂停并反思。 +- 尽量通过理解课程内容自己完成项目,而不是直接运行解决方案代码;不过每个基于项目的课程中的 `/solution` 文件夹提供了参考代码。 - 参加课后测验。 - 完成挑战。 - 完成作业。 -- 完成一组课程后,访问[讨论区](https://github.com/microsoft/ML-For-Beginners/discussions)并通过填写相应的 PAT 评估表“响亮地学习”。PAT 是一个进度评估工具,是你填写以促进学习的评分表。你也可以对其他人的 PAT 进行回应,共同学习。 +- 完成一个课程组后,访问[讨论区](https://github.com/microsoft/ML-For-Beginners/discussions),通过填写相应的 PAT 评分表来“实时学习”。“PAT”是进度评估工具,是您填写以促进学习的评分表。您也可以对其他人的 PAT 做出反应,以便我们一起学习。 -> 若想进一步学习,我们推荐遵循这些[Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott)模块和学习路径。 +> 进一步学习,我们推荐遵循这些[Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott)模块和学习路径。 -**教师**,我们提供了[一些建议](for-teachers.md)说明如何使用本课程。 +教师们,我们提供了[一些建议](for-teachers.md)来指导如何使用本课程。 --- ## 视频讲解 -部分课程提供短视频版。你可在课程内嵌部分观看,或登录 [微软开发者YouTube频道的ML初学者播放列表](https://aka.ms/ml-beginners-videos)观看,点击下图即可。 +部分课程提供短视频。您可以在课程中内嵌观看,也可通过点击下面图片观看[Microsoft 开发者 YouTube 频道上的 ML for Beginners 播放列表](https://aka.ms/ml-beginners-videos)。 [![ML for beginners banner](../../translated_images/zh-CN/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -98,80 +98,80 @@ [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif 作者** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**动图制作者:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 点击上图观看项目及其创作者的视频介绍! +> 🎥 点击上方图片观看关于项目及其创始成员的视频! --- ## 教学理念 -我们设计本课程时,采用两个教学原则:确保它是实践性的**基于项目的**,以及包含**频繁的小测验**。此外,本课程还有统一的**主题**以保证连贯性。 +我们在构建课程时选择了两个教育原则:确保课程是动手项目式教学,并且包含频繁的小测。此外,本课程采用了一个统一的主题,以保持课程的连贯性。 -通过保证内容与项目相匹配,学生学习过程更具参与感,概念的保留率也得以提升。课堂前的低风险测验能设定学习意图,课后的测验则确保了更深入的记忆。本课程设计灵活有趣,可整体或部分学习。项目从小到大,难度逐步提升,覆盖12周周期。课程还提供了关于机器学习实际应用的注记,可作为额外加分或讨论基础。 +通过确保内容与项目紧密对应,使学习过程更具吸引力,提升概念记忆。课前的低风险测验帮助学生设定学习目标,课后的测验则促进进一步巩固。本课程设计灵活有趣,既可整体学习,也可部分选学。项目从基础开始,随着12周课程进度逐渐复杂。课程最后还有一个关于机器学习真实应用的附录,可用于加分或者讨论基础。 -> 请查阅我们的[行为准则](CODE_OF_CONDUCT.md)、[贡献指南](CONTRIBUTING.md)、[翻译](..)及[故障排除](TROUBLESHOOTING.md)页面。我们欢迎你的建设性反馈! +> 查看我们的[行为准则](CODE_OF_CONDUCT.md)、[贡献指南](CONTRIBUTING.md)、[翻译](..)和[故障排除](TROUBLESHOOTING.md)准则。欢迎您的建设性反馈! -## 每节课包括 +## 每个课程包括 -- 可选草图笔记 -- 可选补充视频 -- 视频讲解(部分课程提供) -- [课前热身测验](https://ff-quizzes.netlify.app/en/ml/) -- 书面课程内容 -- 面向项目课程的分步骤项目构建指南 +- 可选的手绘笔记 +- 可选的补充视频 +- 视频讲解(部分课程) +- [课前预热测验](https://ff-quizzes.netlify.app/en/ml/) +- 书面教学内容 +- 针对项目课程,逐步指导如何构建项目 - 知识点检测 -- 一个挑战 -- 补充阅读 +- 一项挑战 +- 补充阅读材料 - 作业 - [课后测验](https://ff-quizzes.netlify.app/en/ml/) - -> **关于语言的提示**:这些课程主要使用 Python 编写,但许多也提供 R 版本。完成 R 课程可前往 `/solution` 文件夹查找带有 `.rmd` 扩展名的文件,这代表**R Markdown** 文件,简而言之,是在`Markdown`文档中嵌入`代码块`(R 或其他语言)和`YAML头部`(指导如何格式化输出如 PDF)。因此,R Markdown 是数据科学创作的优秀框架,允许你结合代码、输出结果和注释,以 Markdown 格式书写。R Markdown 文档还可渲染为 PDF、HTML 或 Word 等输出格式。 -> **关于测验的说明**:所有测验都包含在[Quiz App文件夹](../../quiz-app)中,共52个测验,每个测验包含三个问题。它们在课程中有链接,但测验应用程序可以本地运行;请按照`quiz-app`文件夹中的说明在本地托管或部署到Azure。 - -| 课程编号 | 主题 | 课程分组 | 学习目标 | 关联课程 | 作者 | -| :-------: | :-------------------------------------------------------------: | :-------------------------------------------: | ----------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------: | -| 01 | 机器学习简介 | [Introduction](1-Introduction/README.md) | 了解机器学习的基本概念 | [课程](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | 机器学习的历史 | [Introduction](1-Introduction/README.md) | 了解该领域的历史背景 | [课程](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | 公平性与机器学习 | [Introduction](1-Introduction/README.md) | 学生在构建和应用机器学习模型时应考虑的有关公平性的重要哲学问题 | [课程](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | 机器学习技术 | [Introduction](1-Introduction/README.md) | 机器学习研究人员用来构建模型的技术有哪些 | [课程](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | 回归简介 | [Regression](2-Regression/README.md) | 开始使用Python和Scikit-learn进行回归模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 可视化和清理数据以准备机器学习 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 构建线性和多项式回归模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 构建逻辑回归模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | Web 应用 🔌 | [Web App](3-Web-App/README.md) | 构建用于使用已训练模型的网页应用 | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 分类简介 | [Classification](4-Classification/README.md) | 清理、准备并可视化数据;分类简介 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | 美味的亚洲和印度菜肴 🍜 | [Classification](4-Classification/README.md) | 分类器简介 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | 美味的亚洲和印度菜肴 🍜 | [Classification](4-Classification/README.md) | 更多分类器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | 美味的亚洲和印度菜肴 🍜 | [Classification](4-Classification/README.md) | 使用你的模型构建推荐网页应用 | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | 聚类简介 | [Clustering](5-Clustering/README.md) | 清理、准备并可视化数据;聚类简介 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | 探索尼日利亚音乐品味 🎧 | [Clustering](5-Clustering/README.md) | 探索K均值聚类方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | 自然语言处理简介 ☕️ | [Natural language processing](6-NLP/README.md) | 通过构建简单机器人学习NLP基础知识 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 常见的NLP任务 ☕️ | [Natural language processing](6-NLP/README.md) | 通过理解处理语言结构所需的常见任务深化你的NLP知识 | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 翻译和情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 利用简·奥斯汀作品进行翻译和情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | 浪漫的欧洲酒店 ♥️ | [Natural language processing](6-NLP/README.md) | 通过酒店评论进行情感分析1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | 浪漫的欧洲酒店 ♥️ | [Natural language processing](6-NLP/README.md) | 通过酒店评论进行情感分析2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 时间序列预测简介 | [Time series](7-TimeSeries/README.md) | 时间序列预测简介 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 世界电力使用 ⚡️ - 使用ARIMA的时间序列预测 | [Time series](7-TimeSeries/README.md) | 使用ARIMA进行时间序列预测 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ 世界电力使用 ⚡️ - 使用SVR的时间序列预测 | [Time series](7-TimeSeries/README.md) | 使用支持向量回归进行时间序列预测 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | 强化学习简介 | [Reinforcement learning](8-Reinforcement/README.md) | 使用Q学习进行强化学习简介 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | 帮助彼得躲避狼!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 强化学习Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| 后记 | 现实中的机器学习场景与应用 | [ML in the Wild](9-Real-World/README.md) | 经典机器学习在现实中的有趣且发人深省的应用 | [课程](9-Real-World/1-Applications/README.md) | 团队 | -| 后记 | 使用RAI仪表盘对机器学习模型进行调试 | [ML in the Wild](9-Real-World/README.md) | 使用Responsible AI仪表盘组件进行机器学习模型调试 | [课程](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [在我们的Microsoft Learn集合中查找本课程的所有额外资源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> 关于语言的说明:这些课程主要使用 Python 编写,但许多课程也提供了 R 版本。要完成 R 课程,请访问 `/solution` 文件夹并查找 R 课程。它们包含一个 .rmd 后缀,表示一个 **R Markdown** 文件,简单来说,它是一个在 `Markdown 文档` 中嵌入 `代码块`(R 或其他语言)和 `YAML 头部`(指导如何格式化输出,如 PDF)的文件。因此,它作为数据科学的示例性创作框架,因为它允许你将代码、代码输出和想法整合在一起,通过 Markdown 进行书写。此外,R Markdown 文档可以渲染成 PDF、HTML 或 Word 等输出格式。 + +> 关于测验的说明:所有测验都包含在 [Quiz App folder](../../quiz-app) 中,全部有 52 个测验,每个测验包含三个问题。它们在课程中有链接,但测验应用可以本地运行;请按照 `quiz-app` 文件夹中的说明进行本地托管或部署到 Azure。 + +| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | +| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | 机器学习简介 | [Introduction](1-Introduction/README.md) | 学习机器学习背后的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | 机器学习的历史 | [Introduction](1-Introduction/README.md) | 学习该领域背后的历史 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | 公平性与机器学习 | [Introduction](1-Introduction/README.md) | 当学生构建和应用机器学习模型时,应该考虑哪些重要的有关公平性的哲学问题? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | 机器学习技术 | [Introduction](1-Introduction/README.md) | 机器学习研究人员用什么技术来构建机器学习模型? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | 回归简介 | [Regression](2-Regression/README.md) | 使用 Python 和 Scikit-learn 开始回归模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 数据的可视化与清理以为机器学习做准备 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 构建线性与多项式回归模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | 北美南瓜价格 🎃 | [Regression](2-Regression/README.md) | 构建逻辑回归模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | 一个 Web 应用 🔌 | [Web App](3-Web-App/README.md) | 构建一个用来使用你训练好的模型的 Web 应用 | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分类简介 | [Classification](4-Classification/README.md) | 清理、准备并可视化你的数据;分类简介 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | 美味的亚洲和印度美食 🍜 | [Classification](4-Classification/README.md) | 分类器简介 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | 美味的亚洲和印度美食 🍜 | [Classification](4-Classification/README.md) | 更多分类器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | 美味的亚洲和印度美食 🍜 | [Classification](4-Classification/README.md) | 使用你的模型构建推荐器 Web 应用 | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | 聚类简介 | [Clustering](5-Clustering/README.md) | 清理、准备并可视化你的数据;聚类简介 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | 探索尼日利亚的音乐品味 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-均值聚类方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | 自然语言处理简介 ☕️ | [Natural language processing](6-NLP/README.md) | 通过构建一个简单的机器人学习自然语言处理基础 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 常见的 NLP 任务 ☕️ | [Natural language processing](6-NLP/README.md) | 通过理解处理语言结构时所需的常见任务,深化你的自然语言处理知识 | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻译与情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 使用简·奥斯汀进行翻译和情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | 欧洲浪漫酒店 ♥️ | [Natural language processing](6-NLP/README.md) | 酒店评论情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | 欧洲浪漫酒店 ♥️ | [Natural language processing](6-NLP/README.md) | 酒店评论情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 时间序列预测简介 | [Time series](7-TimeSeries/README.md) | 时间序列预测简介 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 世界电力使用 ⚡️ - 使用 ARIMA 的时间序列预测 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 进行时间序列预测 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ 世界电力使用 ⚡️ - 使用 SVR 的时间序列预测 | [Time series](7-TimeSeries/README.md) | 使用支持向量回归进行时间序列预测 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | 强化学习简介 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q 学习进行强化学习简介 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | 帮助彼得躲避狼! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 强化学习 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| Postscript | 现实世界的机器学习场景与应用 | [ML in the Wild](9-Real-World/README.md) | 经典机器学习一些有趣且富启发性的现实世界应用 | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| Postscript | 使用 RAI 仪表盘进行机器学习模型调试 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 仪表盘组件进行机器学习模型调试 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [在我们的 Microsoft Learn 集合中查找本课程的所有附加资源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## 离线访问 -您可以通过使用[Docsify](https://docsify.js.org/#/)来离线运行此文档。Fork本仓库,在本地机器上[安装Docsify](https://docsify.js.org/#/quickstart),然后在本仓库根目录输入`docsify serve`。网站将在本地主机的3000端口提供服务:`localhost:3000`。 +你可以使用 [Docsify](https://docsify.js.org/#/) 离线运行此文档。Fork 该仓库,在本地机器上[安装 Docsify](https://docsify.js.org/#/quickstart),然后在该仓库的根目录下,输入 `docsify serve` 。该网站将在本地主机的 3000 端口提供服务:`localhost:3000`。 -## PDF文件 +## PDF 文件 -您可以在此处找到带有链接的课程PDF文件 [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)。 +可从[此处](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)获取带链接的课程 PDF。 ## 🎒 其他课程 -我们的团队还有其他课程!请查看: +我们的团队还制作其他课程!查看: ### LangChain @@ -183,54 +183,54 @@ ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![初学者的MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![初学者的AI代理](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### 生成式AI系列 -[![面向初学者的生成式 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![生成式 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![生成式 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![生成式 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![初学者的生成式AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![生成式AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![生成式AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![生成式AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### 核心学习 -[![机器学习初学者](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![数据科学初学者](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![人工智能初学者](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![网络安全初学者](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![网页开发初学者](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![物联网初学者](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR 开发初学者](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![初学者的机器学习](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![初学者的数据科学](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![初学者的人工智能](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![初学者的网络安全](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![初学者的网页开发](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![初学者的物联网](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![初学者的XR开发](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Copilot 系列 -[![面向 AI 配对编程的 Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![面向 C#/.NET 的 Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot 冒险](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![AI配对编程的Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![C#/.NET的Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot冒险](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## 寻求帮助 +## 获取帮助 -如果在构建 AI 应用时遇到困难或有任何疑问,请加入其他学习者和经验丰富的开发者的讨论,共同交流 MCP 相关内容。这是一个支持性的社区,欢迎提问并自由分享知识。 +如果你遇到困难或对构建AI应用有任何疑问,请加入MCP学习者和有经验开发者的讨论。这是一个支持性的社区,欢迎提问并自由分享知识。 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -如果在构建过程中有产品反馈或错误,请访问: +如果你有产品反馈或在构建过程中遇到错误,请访问: -[![Microsoft Foundry 开发者论坛](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) +[![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## 额外学习建议 -- 每节课后回顾笔记本以加深理解。 +- 每节课后复习笔记本内容以加深理解。 - 练习自己实现算法。 -- 使用所学概念探索实际数据集。 +- 利用学习到的概念探索真实世界的数据集。 --- -**免责声明**: -本文件采用人工智能翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻译。尽管我们力求准确,但请注意自动翻译可能包含错误或不准确之处。原始文件的母语版本应被视为权威来源。对于重要信息,建议采用专业人工翻译。因使用本翻译而产生的任何误解或误释,我们概不负责。 +**免责声明**: +本文件使用 AI 翻译服务 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻译。虽然我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始文件的原文应被视为权威来源。对于关键信息,建议采用专业人工翻译。我们不对因使用本翻译而产生的任何误解或曲解承担责任。 \ No newline at end of file diff --git a/translations/zh-HK/.co-op-translator.json b/translations/zh-HK/.co-op-translator.json index ceff0fc52..4cbb5ddf8 100644 --- a/translations/zh-HK/.co-op-translator.json +++ b/translations/zh-HK/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "zh-HK" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:33:31+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:06:34+00:00", "source_file": "README.md", "language_code": "zh-HK" }, diff --git a/translations/zh-HK/README.md b/translations/zh-HK/README.md index 7f2de7cfa..48e56211c 100644 --- a/translations/zh-HK/README.md +++ b/translations/zh-HK/README.md @@ -10,85 +10,85 @@ ### 🌐 多語言支援 -#### 透過 GitHub Action 支援(自動且保持最新) +#### 透過 GitHub Action 支援(自動化及隨時保持最新) -[阿拉伯語](../ar/README.md) | [孟加拉語](../bn/README.md) | [保加利亞語](../bg/README.md) | [緬甸語 (緬甸)](../my/README.md) | [中文 (簡體)](../zh-CN/README.md) | [中文 (繁體, 香港)](./README.md) | [中文 (繁體, 澳門)](../zh-MO/README.md) | [中文 (繁體, 台灣)](../zh-TW/README.md) | [克羅地亞語](../hr/README.md) | [捷克語](../cs/README.md) | [丹麥語](../da/README.md) | [荷蘭語](../nl/README.md) | [愛沙尼亞語](../et/README.md) | [芬蘭語](../fi/README.md) | [法語](../fr/README.md) | [德語](../de/README.md) | [希臘語](../el/README.md) | [希伯來語](../he/README.md) | [印地語](../hi/README.md) | [匈牙利語](../hu/README.md) | [印尼語](../id/README.md) | [義大利語](../it/README.md) | [日語](../ja/README.md) | [卡納達語](../kn/README.md) | [韓語](../ko/README.md) | [立陶宛語](../lt/README.md) | [馬來語](../ms/README.md) | [馬拉雅拉姆語](../ml/README.md) | [馬拉地語](../mr/README.md) | [尼泊爾語](../ne/README.md) | [奈及利亞皮欽語](../pcm/README.md) | [挪威語](../no/README.md) | [波斯語 (法爾西語)](../fa/README.md) | [波蘭語](../pl/README.md) | [葡萄牙語(巴西)](../pt-BR/README.md) | [葡萄牙語(葡萄牙)](../pt-PT/README.md) | [旁遮普語 (古魯穆奇)](../pa/README.md) | [羅馬尼亞語](../ro/README.md) | [俄語](../ru/README.md) | [塞爾維亞語 (西里爾字母)](../sr/README.md) | [斯洛伐克語](../sk/README.md) | [斯洛文尼亞語](../sl/README.md) | [西班牙語](../es/README.md) | [斯瓦希里語](../sw/README.md) | [瑞典語](../sv/README.md) | [塔加洛語 (菲律賓語)](../tl/README.md) | [泰米爾語](../ta/README.md) | [泰盧固語](../te/README.md) | [泰語](../th/README.md) | [土耳其語](../tr/README.md) | [烏克蘭語](../uk/README.md) | [烏爾都語](../ur/README.md) | [越南語](../vi/README.md) +[阿拉伯語](../ar/README.md) | [孟加拉語](../bn/README.md) | [保加利亞語](../bg/README.md) | [緬甸語](../my/README.md) | [中文(簡體)](../zh-CN/README.md) | [中文(繁體,香港)](./README.md) | [中文(繁體,澳門)](../zh-MO/README.md) | [中文(繁體,台灣)](../zh-TW/README.md) | [克羅地亞語](../hr/README.md) | [捷克語](../cs/README.md) | [丹麥語](../da/README.md) | [荷蘭語](../nl/README.md) | [愛沙尼亞語](../et/README.md) | [芬蘭語](../fi/README.md) | [法語](../fr/README.md) | [德語](../de/README.md) | [希臘語](../el/README.md) | [希伯來語](../he/README.md) | [印地語](../hi/README.md) | [匈牙利語](../hu/README.md) | [印尼語](../id/README.md) | [義大利語](../it/README.md) | [日語](../ja/README.md) | [卡納達語](../kn/README.md) | [高棉語](../km/README.md) | [韓語](../ko/README.md) | [立陶宛語](../lt/README.md) | [馬來語](../ms/README.md) | [馬拉雅拉姆語](../ml/README.md) | [馬拉地語](../mr/README.md) | [尼泊爾語](../ne/README.md) | [奈及利亞洋泾浜語](../pcm/README.md) | [挪威語](../no/README.md) | [波斯語 (法爾西語)](../fa/README.md) | [波蘭語](../pl/README.md) | [葡萄牙語 (巴西)](../pt-BR/README.md) | [葡萄牙語 (葡萄牙)](../pt-PT/README.md) | [旁遮普語 (古爾穆奇文)](../pa/README.md) | [羅馬尼亞語](../ro/README.md) | [俄語](../ru/README.md) | [塞爾維亞語 (西里爾字母)](../sr/README.md) | [斯洛伐克語](../sk/README.md) | [斯洛維尼亞語](../sl/README.md) | [西班牙語](../es/README.md) | [斯瓦希里語](../sw/README.md) | [瑞典語](../sv/README.md) | [他加祿語 (菲律賓語)](../tl/README.md) | [泰米爾語](../ta/README.md) | [泰盧固語](../te/README.md) | [泰語](../th/README.md) | [土耳其語](../tr/README.md) | [烏克蘭語](../uk/README.md) | [烏爾都語](../ur/README.md) | [越南語](../vi/README.md) > **偏好本地克隆?** > -> 此存儲庫包含 50 多種語言的翻譯,會大幅增加下載大小。若想不含翻譯檔,請使用稀疏檢出(sparse checkout): +> 此儲存庫包含 50 多種語言翻譯,會大幅增加下載大小。若要無翻譯版本克隆,請使用稀疏簽出: > -> **Bash / macOS / Linux:** +> **Bash / macOS / Linux:** > ```bash > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone '/*' '!translations' '!translated_images' > ``` > -> **CMD (Windows):** +> **CMD(Windows):** > ```cmd > git clone --filter=blob:none --sparse https://github.com/microsoft/ML-For-Beginners.git > cd ML-For-Beginners > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> 這能讓你快速取得完整課程所需內容,下載速度更快。 +> 這讓你以更快的速度取得完成課程所需的所有內容。 -#### 加入我們的社群 +#### 加入我們的社區 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -我們正舉行 Discord 的 AI 學習系列活動,詳細內容及加入請見 [Learn with AI Series](https://aka.ms/learnwithai/discord),活動期間為 2025 年 9 月 18 日至 30 日。你將獲得使用 GitHub Copilot 於資料科學的技巧與秘訣。 +我們有一個持續進行中的 Discord AI 學習系列,詳情及加入請至 [AI 學習系列](https://aka.ms/learnwithai/discord),活動時間為 2025 年 9 月 18 日至 30 日。你將會學習使用 GitHub Copilot 進行資料科學的提示與技巧。 ![Learn with AI series](../../translated_images/zh-HK/3.9b58fd8d6c373c20.webp) -# 初學者機器學習課程大綱 +# 初學者機器學習課程 -> 🌍 透過世界文化探索機器學習,一同環遊世界 🌍 +> 🌍 藉由探索世界各地文化,一同環遊機器學習的世界 🌍 -微軟的 Cloud Advocates 為大家帶來一個為期 12 週、共 26 課的 **機器學習** 課程。在這課程中,你將學習有時稱為 **經典機器學習** 的內容,主要使用 Scikit-learn 函式庫,並避開深度學習內容,後者已包含於我們的 [AI for Beginners 課程](https://aka.ms/ai4beginners) 中。也可以搭配我們的 [「初學者資料科學」課程](https://aka.ms/ds4beginners) 一起學習。 +微軟的 Cloud Advocates 很高興能提供一套為期 12 週、共 26 章課程,主題為 機器學習。本課程主要介紹所謂的 經典機器學習,主要使用 Scikit-learn 函式庫,並避免涵蓋深度學習部份;深度學習主題可參考我們的 [AI 初學者課程](https://aka.ms/ai4beginners)。你也可以搭配我們的 [資料科學初學者課程](https://aka.ms/ds4beginners)。 -跟著我們環遊世界,將這些經典技術應用於來自世界各地的數據。每課包含課前與課後的測驗、課文說明、解答、作業和更多。我們採用以專案為基礎的教學法,讓你在實作中學習,這是新技能穩固的有效方法。 +跟我們一起環遊世界,將這些經典機器學習技術應用到世界各地的資料。每個課程包含課前與課後小測驗、完成課程的文字說明、解答、作業等。我們以專案為導向的教學法,讓你在實作中學習,是幫助新技能「牢記」的有效方法。 -**✍️ 衷心感謝我們的作者團隊** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 和 Amy Boyd +**✍️ 衷心感謝所有作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 和 Amy Boyd -**🎨 也感謝插畫師** Tomomi Imura、Dasani Madipalli 和 Jen Looper +**🎨 同時感謝插畫家** Tomomi Imura、Dasani Madipalli、Jen Looper -**🙏 特別感謝 🙏 微軟學生大使作者、審稿和內容貢獻者**,尤其是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal +**🙏 特別感謝 🙏 微軟學生大使作者、審稿及內容貢獻者**,尤其是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 及 Snigdha Agarwal -**🤩 另外感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 為我們的 R 課程付出!** +**🤩 額外感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 所提供的 R 課程內容!** # 開始使用 -請依照以下步驟操作: -1. **Fork 該儲存庫**:點擊本頁右上角的「Fork」按鈕。 -2. **Clone 該儲存庫**:`git clone https://github.com/microsoft/ML-For-Beginners.git` +依照以下步驟操作: +1. **Fork 儲存庫**:點擊本頁右上角的「Fork」按鈕。 +2. **Clone 儲存庫**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [在我們的 Microsoft Learn 集合中找到本課程所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [查看本課程所有額外資源,請參考我們的 Microsoft Learn 集合](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **需要協助?** 請查看我們的 [故障排解指南](TROUBLESHOOTING.md),解決一般安裝、設定及執行課程問題。 +> 🔧 **需要協助?** 請查閱 [故障排除指南](TROUBLESHOOTING.md),了解安裝、設定及執行課程時的常見問題解決方案。 -**[學生](https://aka.ms/student-page)**,使用此課程請 fork 完整儲存庫至你的 GitHub 帳號,並自行或與小組完成練習: +**[學生們](https://aka.ms/student-page)**,要使用這套課程,請先 fork 整個倉庫到你自己的 GitHub 帳號,再自行或與小組完成練習: -- 先完成課前測驗。 -- 閱讀課文並完成活動,每進行一段知識點檢查就暫停並反思。 -- 嘗試透過理解課程內容自己做專案,而非直接執行解答程式碼;不過每個專案課程的 `/solution` 資料夾內有完整解答程式碼可參考。 -- 做完課後測驗。 -- 完成挑戰題。 +- 先完成課前小測驗。 +- 閱讀課程內容並完成活動,每遇知識檢核時暫停思考。 +- 嘗試依課程理解自行完成專案,而不是僅使用解答程式碼;當然各專案課程中 `/solution` 資料夾會有程式碼可參考。 +- 完成課後小測驗。 +- 挑戰任務。 - 完成作業。 -- 完成一組課程後,請到 [討論板](https://github.com/microsoft/ML-For-Beginners/discussions) 分享學習心得,並填寫對應的 PAT 量表。PAT 是進度評估工具,藉由填寫來深化學習。你也可以對其他人的 PAT 進行回應,一同學習。 +- 授課組別完成後,拜訪 [討論區](https://github.com/microsoft/ML-For-Beginners/discussions),藉由填寫對應的 PAT 評量表「大聲學習」。PAT 是進度評量工具,是你填寫來促進學習的評量表,你也可以對其他人的 PAT 進行回應,大家共同進步。 -> 建議參考以下這些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組及學習路線作進一步學習。 +> 進階學習,我們推薦以下 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組與學習路徑。 -**老師們**,我們也有提供一些 [使用建議](for-teachers.md)。 +老師們,我們提供了 [一些建議](for-teachers.md) 供您作為此課程的教學參考。 --- ## 影片導覽 -部分課程可透過短影片學習。可於課程中直接觀看,或至 [Microsoft Developer YouTube 頻道 ML for Beginners 播放清單](https://aka.ms/ml-beginners-videos) 由下方圖片連結進入。 +部分課程有短片形式的教學影片,可在課程中內嵌觀看,或至 [Microsoft Developer YouTube 頻道的 ML for Beginners 播放清單](https://aka.ms/ml-beginners-videos) 查看,點擊下方圖片即可。 [![ML for beginners banner](../../translated_images/zh-HK/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) @@ -100,79 +100,78 @@ **GIF 製作者** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 點擊上方圖片觀看關於該專案及製作者的影片! +> 🎥 點擊上方圖片觀看有關專案及其成員的影片! --- -## 教學理念 +## 教學法 -我們建立此課程時,選擇兩項教學原則:確保為實作導向 **以專案為本** 且包含 **頻繁測驗**。此外,課程具有統一的 **主題** 以增強連貫性。 +我們在設計本課程時,選擇了兩項教學原則:確保課程是實作導向的 專案教學法,以及包含 頻繁的小測驗。此外,課程還有一個統一的 主題 以增強整體性。 -透過以專案對應內容,提高學習趣味與概念記憶度。課前低風險的測驗設定學習目標,課後再測則加強記憶。課程設計靈活有趣,可全部或部分修習。專案由淺入深,涵蓋 12 週內容。課程還提供機器學習實務應用的後記,適合作為額外學分或討論基礎。 +利用專案 確保內容和實作相結合,能讓學生參與度更高,且加強概念記憶。課前的低壓小測驗幫助學生對主題設定學習意圖,課後第二次測驗則確保知識的鞏固。此課程設計靈活有趣,可完整修習或選擇部分學習。專案由淺入深,在 12 周週期結束時逐漸複雜。課程末還包含關於機器學習真實世界應用的後記,可作為額外加分或討論基礎。 -> 請參考我們的 [行為守則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯說明](..) 及 [故障排解](TROUBLESHOOTING.md) 指南。歡迎提供建設性回饋! +> 請參閱我們的 [行為準則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯](..) 以及 [故障排除](TROUBLESHOOTING.md) 指南。我們歡迎您的建設性回饋! -## 各課程皆包含 +## 每個課程包含 -- 選填手繪筆記 -- 選填補充影片 +- 選擇性手繪筆記 +- 選擇性補充影片 - 影片導覽(部分課程) -- [課前暖身測驗](https://ff-quizzes.netlify.app/en/ml/) -- 課文資料 -- 專案課程含逐步專案建置教學 +- [課前暖身小測驗](https://ff-quizzes.netlify.app/en/ml/) +- 書面課程說明 +- 專案課程提供逐步指引教你如何建置專案 - 知識檢核 -- 挑戰題 -- 補充閱讀 +- 挑戰任務 +- 補充閱讀資料 - 作業 -- [課後測驗](https://ff-quizzes.netlify.app/en/ml/) - -> **關於語言的說明**:本課程主要採 Python 編寫,但許多內容也有 R 版本。要完成 R 課程,請至 `/solution` 資料夾尋找 R 檔案。這些檔案有 .rmd 副檔名,代表 **R Markdown** 文件,是 Markdown 文件中嵌入 R 或其他程式碼區塊與 YAML 標頭(控制輸出格式如 PDF)的格式。因此 R Markdown 是一個優秀的資料科學撰寫框架,允許你將程式碼、結果與筆記合為一體,並可以輸出成 PDF、HTML 或 Word 等格式。 -> **關於小測驗的說明**:所有小測驗均包含在 [Quiz App folder](../../quiz-app) 中,共有 52 個小測驗,每個包含三條問題。這些小測驗在課程中均有連結,但測驗應用程式亦可在本地運行;請按照 `quiz-app` 文件夾中的說明在本地端託管或部署至 Azure。 - -| Lesson Number | Topic | Lesson Grouping | Learning Objectives | Linked Lesson | Author | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | 機器學習簡介 | [Introduction](1-Introduction/README.md) | 學習機器學習背後的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 學習此領域的歷史 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 學生在建構與應用機器學習模型時,應考慮之公平性重要哲學議題為何? | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究者用以建立機器學習模型的技術有哪些? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | 回歸簡介 | [Regression](2-Regression/README.md) | 開始使用 Python 及 Scikit-learn 進行回歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 視覺化並清理資料以準備進行機器學習 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性與多項式回歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯回歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | 網頁應用 🔌 | [Web App](3-Web-App/README.md) | 建立一個用以運行你的訓練模型的網頁應用 | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 分類簡介 | [Classification](4-Classification/README.md) | 清理、預備和視覺化資料;分類初探 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器入門 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 使用你的模型建立推薦系統網頁應用 | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | 叢集簡介 | [Clustering](5-Clustering/README.md) | 清理、預備及視覺化資料;叢集簡介 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | 探索奈及利亞的音樂品味 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-Means 叢集方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | 自然語言處理簡介 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立簡易機器人學習 NLP 基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 常見 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 深入理解處理語言結構時所需之常見任務 | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 以珍·奧斯汀作品做翻譯與情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | 歐洲浪漫酒店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用酒店評論做情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | 歐洲浪漫酒店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用酒店評論做情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 時間序列預測簡介 | [Time series](7-TimeSeries/README.md) | 時間序列預測入門 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 世界電力使用量 ⚡️ - ARIMA 時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ 世界電力使用量 ⚡️ - SVR 時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量回歸(SVR)模型進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | 強化學習簡介 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-學習介紹強化學習 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | 幫助 Peter 避開狼! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| 後記 | 真實世界機器學習應用 | [ML in the Wild](9-Real-World/README.md) | 有趣且啟發性十足的傳統機器學習真實案例 | [Lesson](9-Real-World/1-Applications/README.md) | Team | -| 後記 | 使用 RAI 儀表板進行機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 儀表板元件進行機器學習模型除錯 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [在我們的 Microsoft Learn 集合中找到此課程所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) - -## 離線存取 - -你可使用 [Docsify](https://docsify.js.org/#/) 離線運行本文件。叉出這個儲存庫,在本地機器上[安裝 Docsify](https://docsify.js.org/#/quickstart),然後在本儲存庫的根目錄輸入 `docsify serve`。此網站會在你的本地主機的 3000 埠口提供服務:`localhost:3000`。 - -## PDF - -此課程課綱連結的 pdf 文件 [在此](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)。 - - -## 🎒 其他課程 - -我們團隊製作其他課程!敬請參閱: +- [課後小測驗](https://ff-quizzes.netlify.app/en/ml/) +> 關於語言的說明:這些課程主要使用 Python 撰寫,但也有許多課程提供 R 版本。若要完成 R 課程,請前往 `/solution` 資料夾並尋找 R 課程。它們包含有 .rmd 副檔名,代表 **R Markdown** 檔案,可簡單定義為將 `code chunks` (R 或其他語言程式碼區塊)和 `YAML header`(指導如何格式化輸出例如 PDF)嵌入於 `Markdown 文件` 中。因此,它作為資料科學的優良撰寫框架,讓你能結合程式碼、程式輸出及筆記,並以 Markdown 編寫。此外,R Markdown 檔案可以輸出為 PDF、HTML 或 Word 等格式。 + +> 關於小測驗的說明:所有小測驗皆包含於 [Quiz App folder](../../quiz-app) 中,共有 52 個小測驗,每個包含三個問題。這些小測驗會自課程中連結,但 Quiz App 也能在本機端執行;請依照 `quiz-app` 資料夾中的說明,在本機架設或部署至 Azure。 + +| 課程編號 | 主題 | 課程群組 | 學習目標 | 連結課程 | 作者 | +| :------: | :------------------------------------------------------------: | :--------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------: | +| 01 | 機器學習入門 | [Introduction](1-Introduction/README.md) | 學習機器學習背後的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 認識此領域的歷史背景 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen 與 Amy | +| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 建立與應用機器學習模型時,學生應考慮的重要公平性哲學議題 | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究者用來建立模型的技術 | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris 與 Jen | +| 05 | 迴歸入門 | [Regression](2-Regression/README.md) | 使用 Python 與 Scikit-learn 入門迴歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 可視化與清理資料,為機器學習做準備 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性與多項式迴歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen 和 Dmitry • Eric Wanjau | +| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯迴歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | 網頁應用 🔌 | [Web App](3-Web-App/README.md) | 建立一個網頁應用,使用你訓練好的模型 | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分類入門 | [Classification](4-Classification/README.md) | 清理、準備並可視化資料;分類介紹 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen 和 Cassie • Eric Wanjau | +| 11 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器介紹 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen 和 Cassie • Eric Wanjau | +| 12 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen 和 Cassie • Eric Wanjau | +| 13 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 使用你的模型建立推薦網頁應用 | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | 叢集入門 | [Clustering](5-Clustering/README.md) | 清理、準備並可視化資料;叢集介紹 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | 探索奈及利亞音樂喜好 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-Means 叢集演算法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | 自然語言處理入門 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立簡易機器人學習 NLP 基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 常見 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 深入瞭解 NLP,掌握處理語言結構時常見的重要任務 | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻譯與情緒分析 ♥️ | [Natural language processing](6-NLP/README.md) | 使用 Jane Austen 進行情緒分析與翻譯 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 旅館評論情緒分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | 歐洲浪漫旅館 ♥️ | [Natural language processing](6-NLP/README.md) | 旅館評論情緒分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 時間序列預測入門 | [Time series](7-TimeSeries/README.md) | 時間序列預測介紹 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 全球用電量 ⚡️ - 使用 ARIMA 的時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ 全球用電量 ⚡️ - 使用 SVR 的時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量回歸(SVR)進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | 強化學習入門 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-Learning 介紹強化學習 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | 幫助 Peter 避開狼!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 强化学习 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| 後記 | 現實世界的機器學習情境與應用 | [ML in the Wild](9-Real-World/README.md) | 傳統機器學習在現實世界中的有趣且富啟發性的應用 | [Lesson](9-Real-World/1-Applications/README.md) | 團隊 | +| 後記 | 使用 RAI 儀表板進行機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 儀表板元件來進行機器學習模型除錯 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [在我們的 Microsoft Learn 集合中查找本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) + +## 離線使用 + +您可以使用 [Docsify](https://docsify.js.org/#/) 離線瀏覽本文件。將此 repo 分叉,並在本機安裝 [Docsify](https://docsify.js.org/#/quickstart),接著在此 repo 根目錄中輸入 `docsify serve`。網站將在本機的 3000 埠提供服務:`localhost:3000`。 + +## PDF 檔案 + +可在 [此處](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) 下載包含連結的課程大綱 PDF。 + +## 🎒 其他課程 + +我們團隊還製作其他課程!敬請參考: ### LangChain @@ -189,49 +188,49 @@ --- -### Generative AI Series -[![初學者的生成式人工智能](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![生成式人工智能 (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![生成式人工智能 (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![生成式人工智能 (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### 生成式 AI 系列 +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### 核心學習 -[![初學者的機器學習](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者的數據科學](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者的人工智能](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者的網絡安全](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![初學者的網頁開發](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者的物聯網](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者的擴增實境開發](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Copilot 系列 -[![人工智能配對程式設計的 Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET 的 Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot 冒險](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) ## 尋求協助 -如果你遇到困難或對建立人工智能應用程式有任何疑問,歡迎加入學習者和經驗豐富開發者的討論。這是一個支持性的社群,歡迎提出問題並自由分享知識。 +如果你遇到困難或對構建 AI 應用程式有任何疑問。加入其他學習者及經驗豐富的開發者,一同參與 MCP 的討論。這是一個支援性的社群,歡迎提問並自由分享知識。 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -如果你在建構產品時有反饋或錯誤,請訪問: +如果你有產品反饋或在開發時遇到錯誤,請造訪: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## 額外學習提示 -- 完成每課後,回顧筆記以加深理解。 -- 自行練習實現算法。 -- 運用所學概念探索實際的數據集。 +- 每課後檢閱筆記本,以加深理解。 +- 練習自行實作算法。 +- 使用已學概念探索真實世界數據集。 --- -**免責聲明**: -本文件使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們致力於準確性,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件的原文版本應視為權威來源。對於關鍵資訊,建議尋求專業人工翻譯。我們不對因使用此翻譯而引起的任何誤解或誤釋負責。 +**免責聲明**: +本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意自動翻譯可能存在錯誤或不準確之處。原始文件之母語版本應視為權威資料。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而引致的任何誤解或誤釋負責。 \ No newline at end of file diff --git a/translations/zh-MO/.co-op-translator.json b/translations/zh-MO/.co-op-translator.json index 5be1dd27c..ed88b37d2 100644 --- a/translations/zh-MO/.co-op-translator.json +++ b/translations/zh-MO/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "zh-MO" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:31:30+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:04:36+00:00", "source_file": "README.md", "language_code": "zh-MO" }, diff --git a/translations/zh-MO/README.md b/translations/zh-MO/README.md index a81861117..a70ee445f 100644 --- a/translations/zh-MO/README.md +++ b/translations/zh-MO/README.md @@ -8,16 +8,16 @@ [![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/) -### 🌐 多語言支援 +### 🌐 多語言支持 -#### 透過 GitHub Action 支援(自動且保持最新) +#### 透過 GitHub Action 支持(自動化且始終保持最新) -[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](./README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](./README.md) | [Chinese (Traditional, Taiwan)](../zh-TW/README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **想本地克隆?** +> **想要本地端 Clone?** > -> 本倉庫包含 50 多種語言翻譯,會大幅增加下載大小。若想克隆但不帶翻譯,請使用稀疏檢出: +> 本倉庫包含超過 50 種語言的翻譯,會顯著增加下載大小。若只想 Clone 不包含翻譯檔案,可使用稀疏檢出: > > **Bash / macOS / Linux:** > ```bash @@ -33,145 +33,145 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> 這樣可以讓您以更快速度下載,完成課程所有所需內容。 +> 這樣你可以用更快的下載速度獲得完成課程所需的所有內容。 #### 加入我們的社群 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -我們有一個持續進行的 Discord AI 學習系列,了解更多及加入我們請訪問 [Learn with AI Series](https://aka.ms/learnwithai/discord)(2025年9月18日至30日)。您將學習使用 GitHub Copilot 進行資料科學的技巧與秘訣。 +我們正在進行 Discord 上的 AI 學習系列,請於 2025 年 9 月 18 - 30 日從 [Learn with AI Series](https://aka.ms/learnwithai/discord) 獲得更多資訊並加入。我們將分享使用 GitHub Copilot 於數據科學的技巧與秘訣。 ![Learn with AI series](../../translated_images/zh-MO/3.9b58fd8d6c373c20.webp) -# 初學者機器學習課程大綱 +# 機器學習初學者課程大綱 -> 🌍 跟隨我們透過世界文化探索機器學習之旅 🌍 +> 🌍 隨著我們透過世界文化探索機器學習,一起環遊世界吧 🌍 -微軟的雲端倡導者很高興提供一套為期 12 週、共 26 課的 **機器學習** 課程。在這套課程中,您將學習所謂的 **傳統機器學習**,主要使用 Scikit-learn 函式庫,並避開深度學習(深度學習部份收錄於我們的 [初學者人工智能課程](https://aka.ms/ai4beginners))。同時建議搭配我們的 [初學者資料科學課程](https://aka.ms/ds4beginners)。 +微軟的 Cloud Advocates 很高興提供這套為期 12 週、共 26 課的 機器學習 課程。在本課程中,你將學習所謂的經典機器學習,主要使用 Scikit-learn 函式庫,並避開深度學習部分,後者在我們的 [AI 初學者課程](https://aka.ms/ai4beginners) 裡有涵蓋。你也可以同時搭配我們的 [『數據科學初學者課程』](https://aka.ms/ds4beginners) 一起學習! -跟著我們一起環遊世界,將經典技術應用於來自世界各地的數據。每堂課包含課前與課後小測、書面說明完成課程步驟、解答、作業等。我們以專案為基礎的教學法讓您在建構專案中同時學習,這是讓新技能更穩固的有效方法。 +跟隨我們環遊世界,將這些經典技術應用於來自全球各地的資料。每堂課含課前和課後測驗、書面教學、解答、作業等。我們採用專案導向的教學法,讓你透過實作學習,是讓新技能穩固掌握的有效方式。 -**✍️ 衷心感謝作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 以及 Amy Boyd +**✍️ 衷心感謝我們的作者們** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 與 Amy Boyd -**🎨 同時感謝插畫者** Tomomi Imura、Dasani Madipalli 和 Jen Looper +**🎨 感謝我們的插畫師們** Tomomi Imura、Dasani Madipalli 與 Jen Looper -**🙏 特別感謝 Microsoft 學生大使們的作者、審閱者與內容貢獻者**,特別是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal +**🙏 特別感謝🙏 微軟學生大使的作者、審核者與內容貢獻者**,特別是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 與 Snigdha Agarwal -**🤩 額外感謝 Microsoft 學生大使 Eric Wanjau、Jasleen Sondhi 與 Vidushi Gupta 協助我們製作 R 課程!** +**🤩 非常感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 與 Vidushi Gupta 幫助我們的 R 課程!** -# 開始之前 +# 入門指南 -請依序執行下列步驟: -1. **Fork 此倉庫**:點擊頁面右上角的「Fork」按鈕。 -2. **複製倉庫**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +請遵照下列步驟: +1. 分支此倉庫:點擊頁面右上角的「Fork」按鈕。 +2. 克隆此倉庫: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [你可在我們的 Microsoft Learn 集合中找到本課程所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [在我們的 Microsoft Learn 集合中找到本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **需要幫忙?** 請查閱我們的 [故障排除指南](TROUBLESHOOTING.md),了解常見安裝、設定及執行課程問題的解決方案。 +> 🔧 **需要幫助?** 查看我們的 [疑難排解指南](TROUBLESHOOTING.md),了解安裝、設定與執行課程常見問題解決方法。 -**[學生們](https://aka.ms/student-page)**,請將此課程倉庫全部 Fork 至自己的 GitHub 帳號,並自行或與團隊完成練習: +**[學生們](https://aka.ms/student-page)**,使用此課程時,請將整個倉庫分支到你自己的 GitHub 帳號,然後獨立或與團隊完成練習: -- 先完成課前小測。 -- 閱讀課程內容並完成活動,在每個知識點暫停並思考。 -- 嘗試自行理解課程內容完成專案,而非直接執行解答程式碼;該解答程式碼可在每個專案主題課程的 `/solution` 資料夾找到。 -- 完成課後小測。 +- 從課前小測驗開始。 +- 閱讀授課內容並完成活動,於每個知識檢查點暫停反思。 +- 嘗試自己建置專案,以理解課程,而非僅執行解答程式碼;每個專案導向課程的 `/solution` 資料夾則提供了程式碼示範。 +- 參加課後測驗。 - 完成挑戰題。 - 完成作業。 -- 完成本組課程後,請到 [討論區](https://github.com/microsoft/ML-For-Beginners/discussions) 填寫 PAT 評量表以「大聲學習」。PAT 是一種你填寫以促進學習的進度評估工具。你也可以對其他人的 PAT 留下回應,大家一起學習。 +- 完成一組課程後,造訪 [討論區](https://github.com/microsoft/ML-For-Beginners/discussions) 並透過填寫「PAT」評分表格來「大聲學習」──PAT 是一種進度評估工具,填寫後能加深學習。你也可以對其它人的 PAT 作出回應,大家一起學習。 -> 若要深入學習,我們建議參考這些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組與學習路徑。 +> 若想深入學習,我們建議你接續以下 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組和學習路徑。 -**教師們**,我們提供了關於如何使用此課程的[建議說明](for-teachers.md)。 +教師們,我們提供了 [一些建議](for-teachers.md) 來協助您使用這套課程。 --- ## 影片導覽 -部分課程提供短影片說明。您可在課程內內嵌觀看,也可到 [Microsoft 開發者 YouTube 頻道的 ML 初學者播放清單](https://aka.ms/ml-beginners-videos) 點擊下方圖片觀看。 +部分課程有短影片可看。你可以在課程中直接看到這些影片,或至 [Microsoft Developer YouTube 頻道的 ML for Beginners 播放列表](https://aka.ms/ml-beginners-videos) 觀看,點擊下方圖片即可連結。 [![ML for beginners banner](../../translated_images/zh-MO/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## 認識團隊 +## 團隊介紹 [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**Gif 來源** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif 動畫製作者** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 點擊上方圖片觀看關於專案和作者們的影片! +> 🎥 點擊上方圖片觀看有關這個專案及創作者的影片! --- ## 教學理念 -我們在構建此課程時選擇了兩大教學原則:確保實作為主的**專案導向**,並加入**頻繁的小測**。此外,本課程具備共同的**主題性**以增強連貫性。 +我們在建立本課程時選擇了兩項教學原則:確保為動手做的專案導向,並包含頻繁小測驗。此外,這個課程有一貫的主題以增進內容的凝聚力。 -確保內容與專案相符,能讓學生更加投入且增強概念記憶。課前低壓力小測確立學習目標,課後小測則幫助深化記憶。本課程設計靈活且有趣,可全文修讀或部分學習。專案規模由小至大,至 12 週結束達成較複雜程度。此外,課程還包含機器學習現實應用後記,可用作額外學分或討論基礎。 +透過讓內容與專案對應,能提高學生的參與度,並增強概念的記憶。此外,課前低風險測驗能幫助學生定下學習主題的心態,課後測驗則促進再次記憶與鞏固。此課程設計靈活且有趣,可全部或部分學習。專案從簡單開始,隨著 12 週的推進持續變得更複雜。課程末還包含機器學習在現實世界應用的後記,可作為額外學分或討論基礎。 -> 請參閱我們的 [行為準則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯](..)與[故障排除](TROUBLESHOOTING.md) 文件。歡迎提供建設性意見! +> 查閱我們的 [行為守則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯](..) 及 [疑難排解](TROUBLESHOOTING.md) 指引。我們歡迎您的建設性回饋! ## 每堂課包含 -- 可選手繪筆記 -- 可選補充影片 +- 選擇性手繪筆記 +- 選擇性補充影片 - 影片導覽(部分課程) -- [課前暖身小測](https://ff-quizzes.netlify.app/en/ml/) -- 書面課程說明 -- 專案課程逐步指引 -- 知識檢核 +- [課前暖身測驗](https://ff-quizzes.netlify.app/en/ml/) +- 書面教學 +- 專案導向課程含建置專案的步驟指引 +- 知識檢查 - 挑戰題 -- 補充閱讀資料 +- 補充閱讀 - 作業 -- [課後小測](https://ff-quizzes.netlify.app/en/ml/) - -> **語言說明**:這些課程主要使用 Python 撰寫,但許多也有 R 版本。要完成 R 課程,請前往 `/solution` 資料夾尋找 .rmd 檔案,這是 **R Markdown** 文件,結合了 `R 語言或其他語言代碼區塊` 和一個用來指示如何格式化輸出(如 PDF)的 `YAML 標頭`,內含 Markdown 文件。本格式提供數據科學優秀的撰寫框架,可將程式碼、輸出與想法寫入 Markdown 文件中。此外,R Markdown 文件能編譯輸出成 PDF、HTML 或 Word 等格式。 -> **關於小測驗的說明**:所有小測驗皆收錄於[Quiz App folder](../../quiz-app),共52個小測驗,每個包含三個問題。小測驗會在課程中連結,但你也可以在本地執行小測驗應用程式;請遵循 `quiz-app` 資料夾內的指示進行本地託管或部署到 Azure。 - -| 課程編號 | 主題 | 課程群組 | 學習目標 | 連結課程 | 作者 | -| :-------: | :------------------------------------------------------------: | :-------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | 機器學習介紹 | [Introduction](1-Introduction/README.md) | 學習機器學習的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 瞭解此領域的歷史背景 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 學生應考慮建構及應用機器學習模型時需注意的重要哲學公平性議題 | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究者用來建立模型的技術有哪些? | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | 回歸介紹 | [Regression](2-Regression/README.md) | 開始使用 Python 與 Scikit-learn 進行回歸模型建構 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | 北美地區南瓜價格 🎃 | [Regression](2-Regression/README.md) | 視覺化並清理資料以準備機器學習 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | 北美地區南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性及多項式回歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | 北美地區南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯回歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | 網頁應用程式 🔌 | [Web App](3-Web-App/README.md) | 建立使用你訓練好的模型的網頁應用程式 | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 分類介紹 | [Classification](4-Classification/README.md) | 清理、準備及視覺化資料;分類介紹 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | 美味亞洲及印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器介紹 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | 美味亞洲及印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | 美味亞洲及印度料理 🍜 | [Classification](4-Classification/README.md) | 使用你的模型建立推薦系統網頁應用程式 | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | 聚類介紹 | [Clustering](5-Clustering/README.md) | 清理、準備及視覺化資料;聚類介紹 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | 探索尼日利亞音樂品味 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-Means 聚類方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | 自然語言處理介紹 ☕️ | [Natural language processing](6-NLP/README.md) | 通過建立簡單的機器人了解 NLP 基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 常見 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 通過理解處理語言結構所需的常見任務來深化你的 NLP 知識 | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 使用 Jane Austen 進行翻譯與情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用旅館評論進行情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用旅館評論進行情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 時間序列預測介紹 | [Time series](7-TimeSeries/README.md) | 時間序列預測入門 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 全球電力使用 ⚡️ - 使用 ARIMA 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ 全球電力使用 ⚡️ - 使用 SVR 進行時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量迴歸進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | 強化學習介紹 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-Learning 進行強化學習入門 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | 幫彼得躲避狼!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| 附錄 | 真實世界的機器學習案例與應用 | [ML in the Wild](9-Real-World/README.md) | 有趣且具啟發性的經典機器學習真實應用案例 | [Lesson](9-Real-World/1-Applications/README.md) | 團隊 | -| 附錄 | 使用 RAI 儀表板進行機器學習模型調試 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 儀表板組件進行機器學習模型調試 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [在我們的 Microsoft Learn 集合中找到此課程的所有其他資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +- [課後測驗](https://ff-quizzes.netlify.app/en/ml/) +> 關於語言的說明:這些課程主要以 Python 編寫,但也有很多課程可用於 R。要完成 R 課程,請前往 `/solution` 資料夾並尋找 R 課程。這些檔案具有 .rmd 副檔名,代表 **R Markdown** 檔案,簡單來說就是將 `程式碼區塊`(R 或其他語言)及 `YAML 標頭`(用來指示如何格式化輸出,如 PDF)嵌入 `Markdown 文件`。因此,它作為資料科學的典範創作框架,讓你能將程式碼、輸出及筆記以 Markdown 形式結合書寫。此外,R Markdown 文件可轉換為 PDF、HTML 或 Word 等格式。 + +> 關於測驗的說明:所有測驗都包含在 [Quiz App folder](../../quiz-app) 中,共 52 個測驗,每個測驗有三題。測驗會從課程中連結,但你也可以在本機執行測驗應用程式;請參照 `quiz-app` 資料夾中的說明在本機託管或部署至 Azure。 + +| 課程編號 | 主題 | 課程分類 | 學習目標 | 連結課程 | 作者 | +| :-------: | :------------------------------------------------------------: | :------------------------------------------: | --------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | +| 01 | 機器學習入門 | [Introduction](1-Introduction/README.md) | 學習機器學習背後的基本概念 | [Lesson](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解此領域的歷史基礎 | [Lesson](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 建立與應用機器學習模型時,學生應考量的公平性相關倫理議題 | [Lesson](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究人員用來建立模型的技術 | [Lesson](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | 回歸分析入門 | [Regression](2-Regression/README.md) | 使用 Python 與 Scikit-learn 進行回歸模型入門 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 資料視覺化與清理,為機器學習做準備 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性及多項式回歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯回歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | 網頁應用程式 🔌 | [Web App](3-Web-App/README.md) | 建立一個可使用您訓練模型的網頁應用程式 | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分類入門 | [Classification](4-Classification/README.md) | 清理、準備與視覺化資料;分類入門 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | 美味的亞洲和印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器入門 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | 美味的亞洲和印度料理 🍜 | [Classification](4-Classification/README.md) | 更多分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | 美味的亞洲和印度料理 🍜 | [Classification](4-Classification/README.md) | 使用您的模型建立推薦系統網頁應用程式 | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | 聚類入門 | [Clustering](5-Clustering/README.md) | 清理、準備和視覺化資料;聚類入門 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | 探索奈及利亞音樂喜好 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-平均法聚類 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | 自然語言處理入門 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立簡單機器人來學習自然語言處理基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 常見的 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 進一步了解處理語言結構時所需的常見自然語言處理任務 | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 與珍·奧斯汀一起進行情感及翻譯分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | 浪漫歐洲飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用飯店評論進行情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | 浪漫歐洲飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用飯店評論進行情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 時間序列預測入門 | [Time series](7-TimeSeries/README.md) | 時間序列預測入門 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 全球用電量 ⚡️ - ARIMA 的時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ 全球用電量 ⚡️ - SVR 的時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量迴歸進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | 強化學習入門 | [Reinforcement learning](8-Reinforcement/README.md) | 以 Q-Learning 介紹強化學習 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | 協助彼得躲避狼!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| 附錄 | 真實世界的機器學習場景與應用 | [ML in the Wild](9-Real-World/README.md) | 傳統機器學習在真實世界有趣且具啟發性的應用 | [Lesson](9-Real-World/1-Applications/README.md) | Team | +| 附錄 | 使用 RAI 儀表板進行機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 儀表板元件對機器學習模型進行除錯 | [Lesson](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [在我們的 Microsoft Learn 集合中找到本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## 離線存取 -您可以使用 [Docsify](https://docsify.js.org/#/) 離線運行此文件。將本倉庫 fork,並在本地機器上安裝 [Docsify](https://docsify.js.org/#/quickstart),然後在本倉庫根資料夾鍵入 `docsify serve`。網站將在您本地的 3000 端口提供服務:`localhost:3000`。 +你可以使用 [Docsify](https://docsify.js.org/#/) 離線執行本文件。請 fork 此倉庫,在本機安裝 [Docsify](https://docsify.js.org/#/quickstart),然後在此倉庫的根目錄輸入 `docsify serve`。網站將在你的本地主機 3000 端口執行:`localhost:3000`。 ## PDF 檔案 -請在[這裡](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)下載帶有連結的課程大綱 PDF。 +在 [這裡](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) 找到課程綱要的 PDF,內含連結。 ## 🎒 其他課程 -我們團隊還製作其他課程!請參考: +我們團隊也有其他課程!請查看: ### LangChain @@ -183,54 +183,54 @@ ### Azure / Edge / MCP / Agents [![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) [![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![入門 MCP](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![入門 AI 代理人](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### 生成式 AI 系列 -[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +[![入門生成式 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![生成式 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![生成式 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![生成式 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### 核心學習 -[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![入門機器學習](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![入門數據科學](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![入門 AI](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![入門網絡安全](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![入門網頁開發](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![入門物聯網](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![入門 XR 開發](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Copilot 系列 -[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![AI 配對編程 Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![C#/.NET Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot 冒險](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## 獲取幫助 +## 尋求幫助 -如果你遇到困難或有任何關於建立 AI 應用程式的問題,歡迎加入 MCP 的學習者和有經驗開發者討論。這是一個支持性的社群,歡迎提問並自由分享知識。 +如果你遇到困難或對建立 AI 應用有任何疑問,歡迎加入學習者與經驗豐富的開發者討論 MCP 的群組。這是一個支持性的社群,歡迎提問並自由分享知識。 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -如果你有產品反饋或在開發時遇到錯誤,請訪問: +如果你在建立過程中有產品回饋或發現錯誤,請訪問: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) ## 額外學習提示 -- 每課後回顧筆記本以增進理解。 +- 每次課後復習筆記本以加深理解。 - 練習自行實作演算法。 -- 探索使用所學概念的實際數據集。 +- 利用所學概念探索真實世界數據集。 --- **免責聲明**: -本文件係使用AI翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。文件原文版本應被視為權威依據。對於重要資訊,建議使用專業人工翻譯。我們對因使用此翻譯而導致之任何誤解或誤釋不承擔任何責任。 +本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於翻譯準確,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件以其原文版本為權威資料。對於關鍵資訊,建議採用專業人工翻譯。我們不對因使用本翻譯所引致之任何誤解或誤釋承擔責任。 \ No newline at end of file diff --git a/translations/zh-TW/.co-op-translator.json b/translations/zh-TW/.co-op-translator.json index 1ca1b661f..1a7ebe56e 100644 --- a/translations/zh-TW/.co-op-translator.json +++ b/translations/zh-TW/.co-op-translator.json @@ -552,8 +552,8 @@ "language_code": "zh-TW" }, "README.md": { - "original_hash": "f7d55bf70beaab82d4621c0860301a64", - "translation_date": "2026-03-17T08:35:40+00:00", + "original_hash": "7fb48097f57e680b380cd9aae988d317", + "translation_date": "2026-04-06T16:08:38+00:00", "source_file": "README.md", "language_code": "zh-TW" }, diff --git a/translations/zh-TW/README.md b/translations/zh-TW/README.md index 32e59f377..eeeed679a 100644 --- a/translations/zh-TW/README.md +++ b/translations/zh-TW/README.md @@ -13,11 +13,11 @@ #### 透過 GitHub Action 支援(自動且持續更新) -[阿拉伯語](../ar/README.md) | [孟加拉語](../bn/README.md) | [保加利亞語](../bg/README.md) | [緬甸語](../my/README.md) | [中文(簡體)](../zh-CN/README.md) | [中文(繁體,香港)](../zh-HK/README.md) | [中文(繁體,澳門)](../zh-MO/README.md) | [中文(繁體,台灣)](./README.md) | [克羅埃西亞語](../hr/README.md) | [捷克語](../cs/README.md) | [丹麥語](../da/README.md) | [荷蘭語](../nl/README.md) | [愛沙尼亞語](../et/README.md) | [芬蘭語](../fi/README.md) | [法語](../fr/README.md) | [德語](../de/README.md) | [希臘語](../el/README.md) | [希伯來語](../he/README.md) | [印地語](../hi/README.md) | [匈牙利語](../hu/README.md) | [印尼語](../id/README.md) | [義大利語](../it/README.md) | [日語](../ja/README.md) | [卡納達語](../kn/README.md) | [韓語](../ko/README.md) | [立陶宛語](../lt/README.md) | [馬來語](../ms/README.md) | [馬拉雅拉姆語](../ml/README.md) | [馬拉地語](../mr/README.md) | [尼泊爾語](../ne/README.md) | [奈及利亞皮欽語](../pcm/README.md) | [挪威語](../no/README.md) | [波斯語(法爾西語)](../fa/README.md) | [波蘭語](../pl/README.md) | [巴西葡萄牙語](../pt-BR/README.md) | [葡萄牙語(葡萄牙)](../pt-PT/README.md) | [旁遮普語(古魯穆奇)](../pa/README.md) | [羅馬尼亞語](../ro/README.md) | [俄語](../ru/README.md) | [塞爾維亞語(西里爾字母)](../sr/README.md) | [斯洛伐克語](../sk/README.md) | [斯洛文尼亞語](../sl/README.md) | [西班牙語](../es/README.md) | [斯瓦希里語](../sw/README.md) | [瑞典語](../sv/README.md) | [他加祿語(菲律賓語)](../tl/README.md) | [泰米爾語](../ta/README.md) | [泰盧固語](../te/README.md) | [泰語](../th/README.md) | [土耳其語](../tr/README.md) | [烏克蘭語](../uk/README.md) | [烏爾都語](../ur/README.md) | [越南語](../vi/README.md) +[Arabic](../ar/README.md) | [Bengali](../bn/README.md) | [Bulgarian](../bg/README.md) | [Burmese (Myanmar)](../my/README.md) | [Chinese (Simplified)](../zh-CN/README.md) | [Chinese (Traditional, Hong Kong)](../zh-HK/README.md) | [Chinese (Traditional, Macau)](../zh-MO/README.md) | [Chinese (Traditional, Taiwan)](./README.md) | [Croatian](../hr/README.md) | [Czech](../cs/README.md) | [Danish](../da/README.md) | [Dutch](../nl/README.md) | [Estonian](../et/README.md) | [Finnish](../fi/README.md) | [French](../fr/README.md) | [German](../de/README.md) | [Greek](../el/README.md) | [Hebrew](../he/README.md) | [Hindi](../hi/README.md) | [Hungarian](../hu/README.md) | [Indonesian](../id/README.md) | [Italian](../it/README.md) | [Japanese](../ja/README.md) | [Kannada](../kn/README.md) | [Khmer](../km/README.md) | [Korean](../ko/README.md) | [Lithuanian](../lt/README.md) | [Malay](../ms/README.md) | [Malayalam](../ml/README.md) | [Marathi](../mr/README.md) | [Nepali](../ne/README.md) | [Nigerian Pidgin](../pcm/README.md) | [Norwegian](../no/README.md) | [Persian (Farsi)](../fa/README.md) | [Polish](../pl/README.md) | [Portuguese (Brazil)](../pt-BR/README.md) | [Portuguese (Portugal)](../pt-PT/README.md) | [Punjabi (Gurmukhi)](../pa/README.md) | [Romanian](../ro/README.md) | [Russian](../ru/README.md) | [Serbian (Cyrillic)](../sr/README.md) | [Slovak](../sk/README.md) | [Slovenian](../sl/README.md) | [Spanish](../es/README.md) | [Swahili](../sw/README.md) | [Swedish](../sv/README.md) | [Tagalog (Filipino)](../tl/README.md) | [Tamil](../ta/README.md) | [Telugu](../te/README.md) | [Thai](../th/README.md) | [Turkish](../tr/README.md) | [Ukrainian](../uk/README.md) | [Urdu](../ur/README.md) | [Vietnamese](../vi/README.md) -> **偏好本機複製?** +> **較喜歡本機複製?** > -> 本儲存庫包含 50 多種語言的翻譯,這會大幅增加下載大小。若要在不下載翻譯資料的情況下複製,請使用稀疏檢出: +> 本儲存庫包含超過 50 種語言的翻譯,會大幅增加下載大小。若想不包含翻譯檔案的話,請使用稀疏檢出: > > **Bash / macOS / Linux:** > ```bash @@ -33,204 +33,205 @@ > git sparse-checkout set --no-cone "/*" "!translations" "!translated_images" > ``` > -> 這樣可以讓你更快速取得完成課程所需的所有內容。 +> 這提供您完成課程所需的一切,且下載速度更快。 #### 加入我們的社群 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -我們目前在 Discord 舉辦 AI 學習系列課程,詳細資訊及參加方式請見 [Learn with AI Series](https://aka.ms/learnwithai/discord),活動日期為 2025年9月18日至30日。你將學會使用 GitHub Copilot 進行資料科學的技巧與秘訣。 +我們正在舉辦 Discord AI 學習系列,請在 2025 年 9 月 18 日至 30 日期間前往 [Learn with AI Series](https://aka.ms/learnwithai/discord) 了解並加入。我們會分享使用 GitHub Copilot 進行資料科學的秘訣與技巧。 ![Learn with AI series](../../translated_images/zh-TW/3.9b58fd8d6c373c20.webp) -# 機器學習入門教材 +# 初學者機器學習課程大綱 -> 🌍 一起環遊世界,透過世界各地文化來探索機器學習 🌍 +> 🌍 隨著我們透過全球文化探索機器學習,遍遊世界 🌍 -微軟的 Cloud Advocates 很高興提供一個為期 12 週、共 26 課的機器學習完整教材。在本教材中,你將學習所謂的 **經典機器學習**,主要利用 Scikit-learn 函式庫,避免深度學習部分,深度學習相關內容請參考我們的 [新手 AI 教材](https://aka.ms/ai4beginners)。你也可以搭配我們的['新手資料科學教材'](https://aka.ms/ds4beginners)一同學習。 +微軟的 Cloud Advocates 很高興能提供一個為期 12 週、共 26 堂課的完整【機器學習】課程。在此課程中,您將學習有時被稱為【經典機器學習】的內容,主要使用 Scikit-learn 函式庫,並避免深度學習,後者收錄於我們的 [AI for Beginners 課程](https://aka.ms/ai4beginners)。您也能搭配我們的 [Data Science for Beginners 課程](https://aka.ms/ds4beginners) 來學習! -隨著我們環遊世界,你將學會如何用這些經典技術分析來自全球的各種數據。每節課包含課前與課後測驗、詳細的書面教學、解答、作業等。專案式教學讓你邊學邊做,幫助新技能更好地吸收。 +隨著我們環遊世界,將這些經典技術應用於來自世界各地的數據。每個課程包含課前與課後小測驗、書面操作指引、解答、作業等。透過專案導向的教學法,學生能邊學邊做,這是讓新技能深植的重要方法。 -**✍️ 特別感謝作者** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 及 Amy Boyd +**✍️ 衷心感謝作者團隊** Jen Looper、Stephen Howell、Francesca Lazzeri、Tomomi Imura、Cassie Breviu、Dmitry Soshnikov、Chris Noring、Anirban Mukherjee、Ornella Altunyan、Ruth Yakubu 和 Amy Boyd -**🎨 也感謝插畫者** Tomomi Imura、Dasani Madipalli 和 Jen Looper +**🎨 同時感謝插畫作者** Tomomi Imura、Dasani Madipalli 及 Jen Looper -**🙏 特別感謝 🙏 微軟學生大使作者、審稿與內容貢獻者**,尤其是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 和 Snigdha Agarwal +**🙏 特別感謝🙏 微軟學生大使作者、審閱者與內容貢獻者**,特別是 Rishit Dagli、Muhammad Sakib Khan Inan、Rohan Raj、Alexandru Petrescu、Abhishek Jaiswal、Nawrin Tabassum、Ioan Samuila 及 Snigdha Agarwal -**🤩 另外感謝微軟學生大使 Eric Wanjau、Jasleen Sondhi 和 Vidushi Gupta 貢獻 R 課程!** +**🤩 也特別感謝 Microsoft 學生大使 Eric Wanjau、Jasleen Sondhi 與 Vidushi Gupta 為我們貢獻了 R 課程!** # 開始使用 -請依照以下步驟進行: -1. **Fork 本儲存庫**:點擊本頁右上角的「Fork」按鈕。 -2. **Clone 本儲存庫**: `git clone https://github.com/microsoft/ML-For-Beginners.git` +請依照以下步驟操作: +1. **Fork 本儲存庫**:點選本頁右上方的「Fork」按鈕。 +2. **Clone 本儲存庫**: `git clone https://github.com/microsoft/ML-For-Beginners.git` -> [在我們的 Microsoft Learn 集合中找到本課程所有其他資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> [在我們的 Microsoft Learn 集合中找到本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) -> 🔧 **需要協助?** 請參閱我們的 [疑難排解指南](TROUBLESHOOTING.md),解決安裝、設定或執行課程常見問題。 +> 🔧 **需要協助?** 請參考我們的 [疑難排解指南](TROUBLESHOOTING.md),解決安裝、設定與執行課程時常見問題。 -**[學生](https://aka.ms/student-page)**,請將本教材整個 Repo fork 至個人 GitHub 帳號,並自行或組團完成練習: +**[學生](https://aka.ms/student-page)**,若要使用本課程,請將整個儲存庫 fork 到您的 GitHub 帳戶,並自行或與小組一起完成練習: - 從課前測驗開始。 -- 閱讀課程內容並完成各項活動,每個知識檢查點停下來思考。 -- 嘗試理解課程內容並自己完成專案,而非單純執行解答程式碼;但解答程式碼會放在每個專案課程的 `/solution` 資料夾中供參考。 +- 閱讀課文並完成活動,在每個知識檢查時暫停且思考。 +- 嘗試透過理解課程內容來自行建立專案,而非直接執行解答程式碼;當然,解答程式碼可在每個專案導向課程的 `/solution` 資料夾中找到。 - 完成課後測驗。 -- 完成挑戰題。 +- 完成挑戰。 - 完成作業。 -- 完成一組課程後,請造訪 [討論區](https://github.com/microsoft/ML-For-Beginners/discussions) 並藉由填寫「PAT 評分表」公開學習心得。PAT 是一種進度評估工具,透過填寫可以促進學習。你也能對其他人的 PAT 給予回應,與大家一同學習成長。 +- 完成一組課程後,請造訪 [討論板](https://github.com/microsoft/ML-For-Beginners/discussions) ,透過填寫相應的 PAT 評分表進行「實況學習」。PAT(Progress Assessment Tool)是您填寫來促進學習的評分表。您也可對其他人的 PAT 做出反應,大家一起學習。 -> 若想進一步學習,我們推薦這些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組與學習路徑。 +> 更進一步學習,我們建議您參考這些 [Microsoft Learn](https://docs.microsoft.com/en-us/users/jenlooper-2911/collections/k7o7tg1gp306q4?WT.mc_id=academic-77952-leestott) 模組和學習路徑。 -**教師們**,我們已在[如何使用本教材](for-teachers.md)文件中提供相關建議。 +教師,我們 [提供了一些建議](for-teachers.md) 供您使用本課程。 --- ## 影片導覽 -部分課程提供短影片教學版本。你可以在課程內嵌的影片中觀看,或造訪 [Microsoft Developer YouTube 頻道的 ML for Beginners 播放清單](https://aka.ms/ml-beginners-videos)點擊下方圖示觀看。 +部分課程有短片形式的影片。您可在課程內嵌位置找到影片,或在 Microsoft Developer YouTube 頻道的 [ML for Beginners 播放清單](https://aka.ms/ml-beginners-videos) 觀看,請點擊下方圖片。 [![ML for beginners banner](../../translated_images/zh-TW/ml-for-beginners-video-banner.63f694a100034bc6.webp)](https://aka.ms/ml-beginners-videos) --- -## 團隊介紹 +## 認識團隊 [![Promo video](../../images/ml.gif)](https://youtu.be/Tj1XWrDSYJU) -**動態圖 GIF 來源** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) +**Gif 製作:** [Mohit Jaisal](https://linkedin.com/in/mohitjaisal) -> 🎥 點擊上方圖片觀看有關本專案及團隊成員的介紹影片! +> 🎥 點擊上方圖片觀看專案及團隊介紹影片! --- -## 教學理念 +## 教學法 -本教材依循兩大教學原則打造:強調 **實作專案導向** 和包含 **頻繁的測驗**。此外,本教材以統一的 **主題** 創造連貫性。 +我們在設計此課程大綱時選擇了兩個教學原則:確保課程為親身實作的專案導向,並包含頻繁的測驗。此外,課程有統一的主題讓內容更為完整。 -透過確保課程內容與專案緊密結合,學習過程更具吸引力,並增進觀念記憶。課前低壓力測驗幫助學生設定學習目標,課後測驗則強化記憶與理解。整個教材設計靈活且有趣,學生可選擇全部或部分學習。專案難度由淺入深,隨著 12 周課程逐步增加挑戰。教材末尾也包含機器學習在實務中的應用,可作為加分題或討論基礎。 +確保內容與專案一致,能讓學習過程更吸引學生且提升概念記憶。課前低壓力測驗幫助學生設定學習目標,課後測驗則促進概念鞏固。此課程設計靈活且有趣,您可選擇全部或部分完成。專案從小到大,循序漸進到 12 週週期結束時變得更複雜。課程還包含機器學習真實應用的後記,可用作額外學分或討論基礎。 -> 請參閱本專案的 [行為守則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯](..)與[疑難排解](TROUBLESHOOTING.md)文件。我們歡迎您的建設性回饋! +> 查看我們的 [行為守則](CODE_OF_CONDUCT.md)、[貢獻指南](CONTRIBUTING.md)、[翻譯](..) 和 [疑難排解](TROUBLESHOOTING.md) 指南,歡迎您給予建設性回饋! -## 每堂課內容含括 +## 每堂課包含 -- 選擇性思維導圖 -- 選擇性補充影片 -- 影片導覽(有些課程才有) +- 可選速寫筆記 +- 可選補充影片 +- 影片導覽(部分課程) - [課前暖身測驗](https://ff-quizzes.netlify.app/en/ml/) -- 書面教學 -- 專案導向課程附有逐步建置指南 +- 書面課程內容 +- 專案課程的專案建置逐步指引 - 知識檢查 -- 挑戰題 +- 挑戰 - 補充閱讀資料 - 作業 - [課後測驗](https://ff-quizzes.netlify.app/en/ml/) - -> **關於語言的說明**:這些課程主要是用 Python 撰寫,但許多課程也有提供 R 版本。要完成 R 課程,請到 `/solution` 資料夾中查找相關 R 課程檔案。這些檔案副檔名為 .rmd,代表 **R Markdown** 文件,是結合程式碼區塊 (R 或其他語言)與 YAML 標頭 (用於格式化輸出,如 PDF)的 Markdown 文件。R Markdown 是資料科學極佳的寫作框架,允許你整合程式碼、輸出與筆記內容。另外,R Markdown 文件可轉換為 PDF、HTML 或 Word 等多種格式。 -> **關於測驗的小提示**:所有測驗都包含在 [Quiz App folder](../../quiz-app) 中,總共有 52 個測驗,每個測驗包含三個問題。它們會從課程中連結,但測驗應用程式也可以在本機執行;請參照 `quiz-app` 資料夾中的說明來在本機端託管或部署到 Azure。 - -| Lesson Number | 主題 | 課程分組 | 學習目標 | 連結課程 | 作者 | -| :-----------: | :------------------------------------------------------------: | :-------------------------------------------: | --------------------------------------------------------------------------------------------------------------------- | :-----------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------: | -| 01 | 機器學習簡介 | [Introduction](1-Introduction/README.md) | 學習機器學習的基本概念 | [課程](1-Introduction/1-intro-to-ML/README.md) | Muhammad | -| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解此領域的歷史背景 | [課程](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | -| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 在建立和應用機器學習模型時,學生應考慮哪些重要的公平性哲學議題? | [課程](1-Introduction/3-fairness/README.md) | Tomomi | -| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究者使用哪些技術來建立機器學習模型? | [課程](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | -| 05 | 回歸介紹 | [Regression](2-Regression/README.md) | 使用 Python 和 Scikit-learn 開始回歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | -| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 視覺化與清理資料以準備機器學習 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | -| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建構線性與多項式回歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | -| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯回歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | -| 09 | 網頁應用程式 🔌 | [Web App](3-Web-App/README.md) | 建置網頁應用程式以使用您的訓練模型 | [Python](3-Web-App/1-Web-App/README.md) | Jen | -| 10 | 分類介紹 | [Classification](4-Classification/README.md) | 清理、預備及視覺化資料;分類介紹 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | -| 11 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器介紹 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | -| 12 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 進階分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | -| 13 | 美味亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 使用您的模型建置推薦系統網頁應用程式 | [Python](4-Classification/4-Applied/README.md) | Jen | -| 14 | 聚類介紹 | [Clustering](5-Clustering/README.md) | 清理、預備與視覺化資料;聚類介紹 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | -| 15 | 探索奈及利亞音樂品味 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-均值聚類法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | -| 16 | 自然語言處理介紹 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建立簡單的機器人了解自然語言處理的基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | -| 17 | 常見的 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 透過了解處理語言結構時所需的常見任務,加深您對 NLP 的理解 | [Python](6-NLP/2-Tasks/README.md) | Stephen | -| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 與 Jane Austen 一起做翻譯與情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | -| 19 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用飯店評論進行情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | -| 20 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用飯店評論進行情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | -| 21 | 時間序列預測介紹 | [Time series](7-TimeSeries/README.md) | 時間序列預測介紹 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | -| 22 | ⚡️ 全球用電量 ⚡️ - 使用 ARIMA 的時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | -| 23 | ⚡️ 全球用電量 ⚡️ - 使用 SVR 的時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量回歸器進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | -| 24 | 強化學習介紹 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-Learning 進行強化學習入門 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | -| 25 | 幫彼得躲避狼! 🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | -| 後記 | 真實世界的機器學習場景與應用 | [ML in the Wild](9-Real-World/README.md) | 傳統機器學習的有趣且具啟發性的真實應用 | [課程](9-Real-World/1-Applications/README.md) | Team | -| 後記 | 使用 RAI 儀表板進行機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 儀表板元件進行機器學習模型除錯 | [課程](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | - -> [在我們的 Microsoft Learn 集合中找到本課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) +> 關於語言的說明:這些課程主要以 Python 編寫,但許多課程也有提供 R 版本。要完成 R 課程,請前往 `/solution` 資料夾並尋找 R 課程。它們包含副檔名 .rmd,代表 **R Markdown** 文件,可簡單定義為在 `Markdown 文件` 中嵌入 `程式碼區塊`(R 或其他語言)和 `YAML 標頭`(用於指導如何格式化輸出如 PDF)。因此,它作為一個資料科學的典範撰寫框架,因為它允許您結合程式碼、輸出與您的想法,並可用 Markdown 進行撰寫。此外,R Markdown 文件可渲染成 PDF、HTML 或 Word 等輸出格式。 + +> 關於測驗的說明:所有測驗皆收錄於 [Quiz App 資料夾](../../quiz-app) 中,共有 52 組測驗,每組包含三題問題。這些測驗會在課程中連結,也可在本地執行測驗應用程式;請依照 `quiz-app` 資料夾內的指示在本地架設或部署至 Azure。 + +| 課程編號 | 主題 | 課程分組 | 學習目標 | 連結課程 | 作者 | +| :------: | :------------------------------------------------------------: | :------------------------------------------: | ------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------: | +| 01 | 機器學習導論 | [Introduction](1-Introduction/README.md) | 了解機器學習背後的基本概念 | [課程](1-Introduction/1-intro-to-ML/README.md) | Muhammad | +| 02 | 機器學習的歷史 | [Introduction](1-Introduction/README.md) | 了解此領域的歷史背景 | [課程](1-Introduction/2-history-of-ML/README.md) | Jen and Amy | +| 03 | 公平性與機器學習 | [Introduction](1-Introduction/README.md) | 學生在建構和應用機器學習模型時應考慮的主要哲學問題是什麼? | [課程](1-Introduction/3-fairness/README.md) | Tomomi | +| 04 | 機器學習技術 | [Introduction](1-Introduction/README.md) | 機器學習研究人員用什麼技術來建構機器學習模型? | [課程](1-Introduction/4-techniques-of-ML/README.md) | Chris and Jen | +| 05 | 迴歸介紹 | [Regression](2-Regression/README.md) | 開始使用 Python 和 Scikit-learn 進行迴歸模型 | [Python](2-Regression/1-Tools/README.md) • [R](../../2-Regression/1-Tools/solution/R/lesson_1.html) | Jen • Eric Wanjau | +| 06 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 資料視覺化與清理以準備機器學習 | [Python](2-Regression/2-Data/README.md) • [R](../../2-Regression/2-Data/solution/R/lesson_2.html) | Jen • Eric Wanjau | +| 07 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立線性與多項式迴歸模型 | [Python](2-Regression/3-Linear/README.md) • [R](../../2-Regression/3-Linear/solution/R/lesson_3.html) | Jen and Dmitry • Eric Wanjau | +| 08 | 北美南瓜價格 🎃 | [Regression](2-Regression/README.md) | 建立邏輯斯迴歸模型 | [Python](2-Regression/4-Logistic/README.md) • [R](../../2-Regression/4-Logistic/solution/R/lesson_4.html) | Jen • Eric Wanjau | +| 09 | 網頁應用程式 🔌 | [Web App](3-Web-App/README.md) | 建立一個使用你訓練模型的網頁應用程式 | [Python](3-Web-App/1-Web-App/README.md) | Jen | +| 10 | 分類導論 | [Classification](4-Classification/README.md) | 清理、準備與視覺化資料;分類導論 | [Python](4-Classification/1-Introduction/README.md) • [R](../../4-Classification/1-Introduction/solution/R/lesson_10.html) | Jen and Cassie • Eric Wanjau | +| 11 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 分類器入門 | [Python](4-Classification/2-Classifiers-1/README.md) • [R](../../4-Classification/2-Classifiers-1/solution/R/lesson_11.html) | Jen and Cassie • Eric Wanjau | +| 12 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 進階分類器 | [Python](4-Classification/3-Classifiers-2/README.md) • [R](../../4-Classification/3-Classifiers-2/solution/R/lesson_12.html) | Jen and Cassie • Eric Wanjau | +| 13 | 美味的亞洲與印度料理 🍜 | [Classification](4-Classification/README.md) | 利用你的模型建立推薦器網頁應用程式 | [Python](4-Classification/4-Applied/README.md) | Jen | +| 14 | 聚類介紹 | [Clustering](5-Clustering/README.md) | 清理、準備與視覺化你的資料;聚類介紹 | [Python](5-Clustering/1-Visualize/README.md) • [R](../../5-Clustering/1-Visualize/solution/R/lesson_14.html) | Jen • Eric Wanjau | +| 15 | 探索奈及利亞音樂喜好 🎧 | [Clustering](5-Clustering/README.md) | 探索 K-均值聚類方法 | [Python](5-Clustering/2-K-Means/README.md) • [R](../../5-Clustering/2-K-Means/solution/R/lesson_15.html) | Jen • Eric Wanjau | +| 16 | 自然語言處理導論 ☕️ | [Natural language processing](6-NLP/README.md) | 透過建構簡單機器人學習自然語言處理基礎 | [Python](6-NLP/1-Introduction-to-NLP/README.md) | Stephen | +| 17 | 常見的 NLP 任務 ☕️ | [Natural language processing](6-NLP/README.md) | 深入了解處理語言結構時需完成的常見任務 | [Python](6-NLP/2-Tasks/README.md) | Stephen | +| 18 | 翻譯與情感分析 ♥️ | [Natural language processing](6-NLP/README.md) | 使用 Jane Austen 的作品進行翻譯與情感分析 | [Python](6-NLP/3-Translation-Sentiment/README.md) | Stephen | +| 19 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用飯店評論進行情感分析 1 | [Python](6-NLP/4-Hotel-Reviews-1/README.md) | Stephen | +| 20 | 歐洲浪漫飯店 ♥️ | [Natural language processing](6-NLP/README.md) | 使用飯店評論進行情感分析 2 | [Python](6-NLP/5-Hotel-Reviews-2/README.md) | Stephen | +| 21 | 時間序列預測導論 | [Time series](7-TimeSeries/README.md) | 時間序列預測介紹 | [Python](7-TimeSeries/1-Introduction/README.md) | Francesca | +| 22 | ⚡️ 世界用電量 ⚡️ - 使用 ARIMA 的時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用 ARIMA 進行時間序列預測 | [Python](7-TimeSeries/2-ARIMA/README.md) | Francesca | +| 23 | ⚡️ 世界用電量 ⚡️ - 使用 SVR 的時間序列預測 | [Time series](7-TimeSeries/README.md) | 使用支持向量迴歸器進行時間序列預測 | [Python](7-TimeSeries/3-SVR/README.md) | Anirban | +| 24 | 強化學習導論 | [Reinforcement learning](8-Reinforcement/README.md) | 使用 Q-Learning 介紹強化學習 | [Python](8-Reinforcement/1-QLearning/README.md) | Dmitry | +| 25 | 幫助彼得躲避大灰狼!🐺 | [Reinforcement learning](8-Reinforcement/README.md) | 強化學習 Gym | [Python](8-Reinforcement/2-Gym/README.md) | Dmitry | +| 附錄 | 真實世界的機器學習情境與應用 | [ML in the Wild](9-Real-World/README.md) | 經典機器學習的有趣且具啟發性的實際應用案例 | [課程](9-Real-World/1-Applications/README.md) | 團隊 | +| 附錄 | 使用 RAI 儀表板的機器學習模型除錯 | [ML in the Wild](9-Real-World/README.md) | 使用 Responsible AI 儀表板元件進行機器學習模型除錯 | [課程](9-Real-World/2-Debugging-ML-Models/README.md) | Ruth Yakubu | + +> [在我們的 Microsoft Learn 集合中查找此課程的所有額外資源](https://learn.microsoft.com/en-us/collections/qrqzamz1nn2wx3?WT.mc_id=academic-77952-bethanycheum) ## 離線存取 -您可以使用 [Docsify](https://docsify.js.org/#/) 離線執行此文件。Fork 此儲存庫,在您的本機安裝 [Docsify](https://docsify.js.org/#/quickstart),然後在此儲存庫根目錄輸入 `docsify serve`。網站會在本機端的 3000 埠口提供服務:`localhost:3000`。 +您可以使用 [Docsify](https://docsify.js.org/#/) 離線執行本文件。Fork 這個專案,並在本機安裝 [Docsify](https://docsify.js.org/#/quickstart),然後在此專案根目錄執行 `docsify serve`。網站將在本地主機的 3000 端口啟動:`localhost:3000`。 + +## PDF 檔案 -## PDF +[點此](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf) 下載課程大綱 PDF,並附有連結。 -在此處找到帶有連結的課程大綱 PDF [here](https://microsoft.github.io/ML-For-Beginners/pdf/readme.pdf)。 ## 🎒 其他課程 -我們團隊還製作其他課程!請查看: +我們團隊還製作了其他課程!快來看看: ### LangChain -[![LangChain4j 初學者](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) -[![LangChain.js 初學者](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) -[![LangChain 初學者](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain4j for Beginners](https://img.shields.io/badge/LangChain4j%20for%20Beginners-22C55E?style=for-the-badge&&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchain4j-for-beginners) +[![LangChain.js for Beginners](https://img.shields.io/badge/LangChain.js%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://aka.ms/langchainjs-for-beginners?WT.mc_id=m365-94501-dwahlin) +[![LangChain for Beginners](https://img.shields.io/badge/LangChain%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=0553D6)](https://github.com/microsoft/langchain-for-beginners?WT.mc_id=m365-94501-dwahlin) --- ### Azure / Edge / MCP / Agents -[![AZD 初學者](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) -[![Edge AI 初學者](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![MCP 初學者](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) -[![AI Agents 初學者](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AZD for Beginners](https://img.shields.io/badge/AZD%20for%20Beginners-0078D4?style=for-the-badge&labelColor=E5E7EB&color=0078D4)](https://github.com/microsoft/AZD-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Edge AI for Beginners](https://img.shields.io/badge/Edge%20AI%20for%20Beginners-00B8E4?style=for-the-badge&labelColor=E5E7EB&color=00B8E4)](https://github.com/microsoft/edgeai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![MCP for Beginners](https://img.shields.io/badge/MCP%20for%20Beginners-009688?style=for-the-badge&labelColor=E5E7EB&color=009688)](https://github.com/microsoft/mcp-for-beginners?WT.mc_id=academic-105485-koreyst) +[![AI Agents for Beginners](https://img.shields.io/badge/AI%20Agents%20for%20Beginners-00C49A?style=for-the-badge&labelColor=E5E7EB&color=00C49A)](https://github.com/microsoft/ai-agents-for-beginners?WT.mc_id=academic-105485-koreyst) --- -### 生成式人工智慧系列 -[![初學者的生成式 AI](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) -[![生成式 AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) -[![生成式 AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) -[![生成式 AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) +### 生成式 AI 系列 +[![Generative AI for Beginners](https://img.shields.io/badge/Generative%20AI%20for%20Beginners-8B5CF6?style=for-the-badge&labelColor=E5E7EB&color=8B5CF6)](https://github.com/microsoft/generative-ai-for-beginners?WT.mc_id=academic-105485-koreyst) +[![Generative AI (.NET)](https://img.shields.io/badge/Generative%20AI%20(.NET)-9333EA?style=for-the-badge&labelColor=E5E7EB&color=9333EA)](https://github.com/microsoft/Generative-AI-for-beginners-dotnet?WT.mc_id=academic-105485-koreyst) +[![Generative AI (Java)](https://img.shields.io/badge/Generative%20AI%20(Java)-C084FC?style=for-the-badge&labelColor=E5E7EB&color=C084FC)](https://github.com/microsoft/generative-ai-for-beginners-java?WT.mc_id=academic-105485-koreyst) +[![Generative AI (JavaScript)](https://img.shields.io/badge/Generative%20AI%20(JavaScript)-E879F9?style=for-the-badge&labelColor=E5E7EB&color=E879F9)](https://github.com/microsoft/generative-ai-with-javascript?WT.mc_id=academic-105485-koreyst) --- ### 核心學習 -[![初學者機器學習](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者資料科學](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者人工智慧](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者網路安全](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) -[![初學者網頁開發](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者物聯網](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) -[![初學者 XR 開發](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) +[![ML for Beginners](https://img.shields.io/badge/ML%20for%20Beginners-22C55E?style=for-the-badge&labelColor=E5E7EB&color=22C55E)](https://aka.ms/ml-beginners?WT.mc_id=academic-105485-koreyst) +[![Data Science for Beginners](https://img.shields.io/badge/Data%20Science%20for%20Beginners-84CC16?style=for-the-badge&labelColor=E5E7EB&color=84CC16)](https://aka.ms/datascience-beginners?WT.mc_id=academic-105485-koreyst) +[![AI for Beginners](https://img.shields.io/badge/AI%20for%20Beginners-A3E635?style=for-the-badge&labelColor=E5E7EB&color=A3E635)](https://aka.ms/ai-beginners?WT.mc_id=academic-105485-koreyst) +[![Cybersecurity for Beginners](https://img.shields.io/badge/Cybersecurity%20for%20Beginners-F97316?style=for-the-badge&labelColor=E5E7EB&color=F97316)](https://github.com/microsoft/Security-101?WT.mc_id=academic-96948-sayoung) +[![Web Dev for Beginners](https://img.shields.io/badge/Web%20Dev%20for%20Beginners-EC4899?style=for-the-badge&labelColor=E5E7EB&color=EC4899)](https://aka.ms/webdev-beginners?WT.mc_id=academic-105485-koreyst) +[![IoT for Beginners](https://img.shields.io/badge/IoT%20for%20Beginners-14B8A6?style=for-the-badge&labelColor=E5E7EB&color=14B8A6)](https://aka.ms/iot-beginners?WT.mc_id=academic-105485-koreyst) +[![XR Development for Beginners](https://img.shields.io/badge/XR%20Development%20for%20Beginners-38BDF8?style=for-the-badge&labelColor=E5E7EB&color=38BDF8)](https://github.com/microsoft/xr-development-for-beginners?WT.mc_id=academic-105485-koreyst) --- ### Copilot 系列 -[![AI 配對編程的 Copilot](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) -[![C#/.NET 的 Copilot](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) -[![Copilot 冒險](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) +[![Copilot for AI Paired Programming](https://img.shields.io/badge/Copilot%20for%20AI%20Paired%20Programming-FACC15?style=for-the-badge&labelColor=E5E7EB&color=FACC15)](https://aka.ms/GitHubCopilotAI?WT.mc_id=academic-105485-koreyst) +[![Copilot for C#/.NET](https://img.shields.io/badge/Copilot%20for%20C%23/.NET-FBBF24?style=for-the-badge&labelColor=E5E7EB&color=FBBF24)](https://github.com/microsoft/mastering-github-copilot-for-dotnet-csharp-developers?WT.mc_id=academic-105485-koreyst) +[![Copilot Adventure](https://img.shields.io/badge/Copilot%20Adventure-FDE68A?style=for-the-badge&labelColor=E5E7EB&color=FDE68A)](https://github.com/microsoft/CopilotAdventures?WT.mc_id=academic-105485-koreyst) -## 獲取幫助 +## 尋求協助 -如果在構建 AI 應用時遇到困難或有任何問題,加入其他學習者和經驗豐富的開發者,一同參與 MCP 的討論。這是一個支持性的社群,歡迎提問並自由分享知識。 +如果您遇到困難或對構建 AI 應用有任何疑問,請加入其他學習者和有經驗的開發者討論 MCP。這是一個支持性的社群,歡迎提問並自由分享知識。 [![Microsoft Foundry Discord](https://dcbadge.limes.pink/api/server/nTYy5BXMWG)](https://discord.gg/nTYy5BXMWG) -如果在構建過程中有產品反饋或錯誤,請訪問: +如果在構建過程中有產品反饋或錯誤,請造訪: [![Microsoft Foundry Developer Forum](https://img.shields.io/badge/GitHub-Microsoft_Foundry_Developer_Forum-blue?style=for-the-badge&logo=github&color=000000&logoColor=fff)](https://aka.ms/foundry/forum) -## 其他學習建議 +## 額外學習建議 -- 每課後回顧筆記本,增進理解。 +- 每課後回顧筆記本以加深理解。 - 練習自行實作演算法。 -- 運用學到的概念探索真實世界資料集。 +- 利用所學概念探索真實世界資料集。 --- **免責聲明**: -本文件係利用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 所翻譯。雖然我們力求準確,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件之母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生的任何誤解或錯誤詮釋負責。 +本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖我們致力於確保準確性,但請注意,機器翻譯可能包含錯誤或不準確之處。原始文件之母語版本應視為權威來源。對於重要資訊,建議採用專業人工翻譯。我們不對因使用本翻譯而產生之任何誤解或誤譯負責。 \ No newline at end of file