|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 129 KiB |
|
After Width: | Height: | Size: 132 KiB |
|
After Width: | Height: | Size: 128 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 14 KiB |
@ -0,0 +1,161 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "69389392fa6346e0dfa30f664b7b6fec",
|
||||
"translation_date": "2025-12-19T13:25:20+00:00",
|
||||
"source_file": "1-Introduction/1-intro-to-ML/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕೆ ಪರಿಚಯ
|
||||
|
||||
## [ಪೂರ್ವ-ಲೇಕ್ಚರ್ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
---
|
||||
|
||||
[](https://youtu.be/6mSx_KJxcHI "ಆರಂಭಿಕರಿಗಾಗಿ ಯಂತ್ರ ಅಧ್ಯಯನ - ಆರಂಭಿಕರಿಗಾಗಿ ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕೆ ಪರಿಚಯ")
|
||||
|
||||
> 🎥 ಈ ಪಾಠವನ್ನು ಕೆಲಸಮಾಡುವ ಸಣ್ಣ ವೀಡಿಯೊಗಾಗಿ ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.
|
||||
|
||||
ಆರಂಭಿಕರಿಗಾಗಿ ಶ್ರೇಷ್ಟ ಯಂತ್ರ ಅಧ್ಯಯನದ ಈ ಕೋರ್ಸ್ಗೆ ಸ್ವಾಗತ! ನೀವು ಈ ವಿಷಯದಲ್ಲಿ ಸಂಪೂರ್ಣ ಹೊಸವರಾಗಿದ್ದೀರಾ ಅಥವಾ ಯಂತ್ರ ಅಧ್ಯಯನದ ಅನುಭವ ಹೊಂದಿರುವವರಾಗಿದ್ದೀರಾ, ನಾವು ನಿಮ್ಮನ್ನು ಸೇರಿಕೊಳ್ಳಲು ಸಂತೋಷಪಡುತ್ತೇವೆ! ನಿಮ್ಮ ಯಂತ್ರ ಅಧ್ಯಯನ ಅಧ್ಯಯನಕ್ಕೆ ಸ್ನೇಹಪೂರ್ಣ ಪ್ರಾರಂಭಿಕ ಸ್ಥಳವನ್ನು ಸೃಷ್ಟಿಸಲು ನಾವು ಬಯಸುತ್ತೇವೆ ಮತ್ತು ನಿಮ್ಮ [ಪ್ರತಿಕ್ರಿಯೆ](https://github.com/microsoft/ML-For-Beginners/discussions) ಅನ್ನು ಮೌಲ್ಯಮಾಪನ, ಪ್ರತಿಕ್ರಿಯೆ ನೀಡಲು ಮತ್ತು ಸೇರಿಸಲು ನಾವು ಇಚ್ಛಿಸುತ್ತೇವೆ.
|
||||
|
||||
[](https://youtu.be/h0e2HAPTGF4 "ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕೆ ಪರಿಚಯ")
|
||||
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ವೀಡಿಯೊ: MIT ನ ಜಾನ್ ಗುಟ್ಟಾಗ್ ಯಂತ್ರ ಅಧ್ಯಯನವನ್ನು ಪರಿಚಯಿಸುತ್ತಾರೆ
|
||||
|
||||
---
|
||||
## ಯಂತ್ರ ಅಧ್ಯಯನದೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುವುದು
|
||||
|
||||
ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಸ್ಥಳೀಯವಾಗಿ ನೋಟ್ಬುಕ್ಗಳನ್ನು ಚಾಲನೆ ಮಾಡಲು ಸಿದ್ಧಪಡಿಸಬೇಕು.
|
||||
|
||||
- **ಈ ವೀಡಿಯೊಗಳೊಂದಿಗೆ ನಿಮ್ಮ ಯಂತ್ರವನ್ನು ಸಂರಚಿಸಿ**. ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ [Python ಅನ್ನು ಹೇಗೆ ಸ್ಥಾಪಿಸುವುದು](https://youtu.be/CXZYvNRIAKM) ಮತ್ತು ಅಭಿವೃದ್ಧಿಗಾಗಿ [ಟೆಕ್ಸ್ಟ್ ಎಡಿಟರ್ ಅನ್ನು ಹೇಗೆ ಸೆಟ್ಅಪ್ ಮಾಡುವುದು](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/) ಅನ್ನು ಸ್ಥಾಪಿಸಿರಬೇಕು, ಜೊತೆಗೆ Python ಮತ್ತು JavaScript ಅಭಿವೃದ್ಧಿಗಾಗಿ [Visual Studio Code](https://code.visualstudio.com/) ಲಭ್ಯವಿರಬೇಕು.
|
||||
- **GitHub ಖಾತೆಯನ್ನು ರಚಿಸಿ**. ನೀವು ಇಲ್ಲಿ [GitHub](https://github.com) ನಲ್ಲಿ ನಮ್ಮನ್ನು ಕಂಡಿದ್ದೀರಿ, ಆದ್ದರಿಂದ ನೀವು ಈಗಾಗಲೇ ಖಾತೆ ಹೊಂದಿರಬಹುದು, ಇಲ್ಲದಿದ್ದರೆ ಒಂದು ಖಾತೆ ರಚಿಸಿ ಮತ್ತು ಈ ಪಠ್ಯಕ್ರಮವನ್ನು ನಿಮ್ಮದೇ ಉಪಯೋಗಕ್ಕಾಗಿ ಫೋರ್ಕ್ ಮಾಡಿ. (ನಮಗೆ ಸ್ಟಾರ್ ನೀಡಲು ಮುಕ್ತವಾಗಿರಿ 😊)
|
||||
- **Scikit-learn ಅನ್ನು ಅನ್ವೇಷಿಸಿ**. ಈ ಪಾಠಗಳಲ್ಲಿ ನಾವು ಉಲ್ಲೇಖಿಸುವ ML ಗ್ರಂಥಾಲಯಗಳ ಸಮೂಹವಾದ [Scikit-learn](https://scikit-learn.org/stable/user_guide.html) ಅನ್ನು ಪರಿಚಯಿಸಿ.
|
||||
|
||||
---
|
||||
## ಯಂತ್ರ ಅಧ್ಯಯನ ಎಂದರೆ ಏನು?
|
||||
|
||||
'ಯಂತ್ರ ಅಧ್ಯಯನ' ಎಂಬ ಪದವು ಇಂದಿನ ದಿನದ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಮತ್ತು ಹೆಚ್ಚಾಗಿ ಬಳಸುವ ಪದಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ನೀವು ತಂತ್ರಜ್ಞಾನದಲ್ಲಿ ಸ್ವಲ್ಪ ಪರಿಚಯವಿದ್ದರೆ, ನೀವು ಕನಿಷ್ಠ ಒಂದು ಬಾರಿ ಈ ಪದವನ್ನು ಕೇಳಿರಬಹುದು, ನೀವು ಯಾವ ಕ್ಷೇತ್ರದಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತೀರೋ ಅದಕ್ಕೆ ಸಂಬಂಧವಿಲ್ಲದೆ. ಆದರೆ ಯಂತ್ರ ಅಧ್ಯಯನದ ಕಾರ್ಯವಿಧಾನ ಬಹುತೇಕ ಜನರಿಗೆ ರಹಸ್ಯವಾಗಿದೆ. ಯಂತ್ರ ಅಧ್ಯಯನ ಆರಂಭಿಕರಿಗೆ, ವಿಷಯವು ಕೆಲವೊಮ್ಮೆ ಭಾರೀ ಅನಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, ಯಂತ್ರ ಅಧ್ಯಯನವೇನು ಎಂಬುದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳ ಮೂಲಕ ಹಂತ ಹಂತವಾಗಿ ಕಲಿಯುವುದು ಮುಖ್ಯ.
|
||||
|
||||
---
|
||||
## ಹೈಪ್ ವಕ್ರ
|
||||
|
||||

|
||||
|
||||
> ಗೂಗಲ್ ಟ್ರೆಂಡ್ಸ್ 'ಯಂತ್ರ ಅಧ್ಯಯನ' ಪದದ ಇತ್ತೀಚಿನ 'ಹೈಪ್ ವಕ್ರ' ಅನ್ನು ತೋರಿಸುತ್ತದೆ
|
||||
|
||||
---
|
||||
## ಒಂದು ರಹಸ್ಯಮಯ ಬ್ರಹ್ಮಾಂಡ
|
||||
|
||||
ನಾವು ರಹಸ್ಯಗಳಿಂದ ತುಂಬಿದ ಒಂದು ಬ್ರಹ್ಮಾಂಡದಲ್ಲಿ ವಾಸಿಸುತ್ತೇವೆ. ಸ್ಟೀಫನ್ ಹಾಕಿಂಗ್, ಆಲ್ಬರ್ಟ್ ಐನ್ಸ್ಟೈನ್ ಮತ್ತು ಇನ್ನಷ್ಟು ಮಹಾನ್ ವಿಜ್ಞಾನಿಗಳು ನಮ್ಮ ಸುತ್ತಲೂ ಇರುವ ಜಗತ್ತಿನ ರಹಸ್ಯಗಳನ್ನು ಅನಾವರಣಗೊಳಿಸುವ ಅರ್ಥಪೂರ್ಣ ಮಾಹಿತಿಯನ್ನು ಹುಡುಕಲು ತಮ್ಮ ಜೀವನವನ್ನು ಅರ್ಪಿಸಿದ್ದಾರೆ. ಇದು ಮಾನವ ಕಲಿಕೆಯ ಸ್ಥಿತಿ: ಮಾನವ ಮಗು ಹೊಸ ವಿಷಯಗಳನ್ನು ಕಲಿಯುತ್ತದೆ ಮತ್ತು ವರ್ಷದಿಂದ ವರ್ಷಕ್ಕೆ ತನ್ನ ಜಗತ್ತಿನ ರಚನೆಯನ್ನು ಅನಾವರಣಗೊಳಿಸುತ್ತದೆ, ಅವರು ವಯಸ್ಕರಾಗುವಂತೆ.
|
||||
|
||||
---
|
||||
## ಮಗುವಿನ ಮೆದುಳು
|
||||
|
||||
ಮಗುವಿನ ಮೆದುಳು ಮತ್ತು ಇಂದ್ರಿಯಗಳು ತನ್ನ ಸುತ್ತಲೂ ಇರುವ ವಾಸ್ತವಗಳನ್ನು ಗ್ರಹಿಸಿ, ಜೀವನದ ಗುಪ್ತ ಮಾದರಿಗಳನ್ನು ಕ್ರಮೇಣ ಕಲಿಯುತ್ತವೆ, ಇದು ಮಗುವಿಗೆ ಕಲಿತ ಮಾದರಿಗಳನ್ನು ಗುರುತಿಸಲು ತಾರ್ಕಿಕ ನಿಯಮಗಳನ್ನು ರೂಪಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಮಾನವ ಮೆದುಳಿನ ಕಲಿಕೆಯ ಪ್ರಕ್ರಿಯೆ ಮಾನವರನ್ನು ಈ ಜಗತ್ತಿನ ಅತ್ಯಂತ ಸುಕ್ಷ್ಮ ಜೀವಿಯಾಗಿ ಮಾಡುತ್ತದೆ. ಗುಪ್ತ ಮಾದರಿಗಳನ್ನು ಅನ್ವೇಷಿಸಿ ನಿರಂತರವಾಗಿ ಕಲಿಯುವುದು ಮತ್ತು ಆ ಮಾದರಿಗಳ ಮೇಲೆ ನವೀನತೆ ಮಾಡುವುದು ನಮ್ಮ ಜೀವನಕಾಲದಲ್ಲಿ ನಮ್ಮನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಈ ಕಲಿಕೆಯ ಸಾಮರ್ಥ್ಯ ಮತ್ತು ಅಭಿವೃದ್ಧಿ ಸಾಮರ್ಥ್ಯವನ್ನು [ಮೆದುಳು ಪ್ಲಾಸ್ಟಿಸಿಟಿ](https://www.simplypsychology.org/brain-plasticity.html) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. ಮೇಲ್ಮೈಯಲ್ಲಿ, ನಾವು ಮಾನವ ಮೆದುಳಿನ ಕಲಿಕೆಯ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನದ ತತ್ವಗಳ ನಡುವೆ ಕೆಲವು ಪ್ರೇರಣಾತ್ಮಕ ಸಾದೃಶ್ಯಗಳನ್ನು ಬಿಡಬಹುದು.
|
||||
|
||||
---
|
||||
## ಮಾನವ ಮೆದುಳು
|
||||
|
||||
[ಮಾನವ ಮೆದುಳು](https://www.livescience.com/29365-human-brain.html) ವಾಸ್ತವ ಜಗತ್ತಿನಿಂದ ವಸ್ತುಗಳನ್ನು ಗ್ರಹಿಸಿ, ಗ್ರಹಿಸಿದ ಮಾಹಿತಿಯನ್ನು ಪ್ರಕ್ರಿಯೆ ಮಾಡಿ, ತಾರ್ಕಿಕ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ಪರಿಸ್ಥಿತಿಗಳ ಆಧಾರದ ಮೇಲೆ ಕೆಲವು ಕ್ರಿಯೆಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಇದನ್ನು ನಾವು ಬುದ್ಧಿವಂತಿಕೆಯಿಂದ ವರ್ತಿಸುವುದಾಗಿ ಕರೆಯುತ್ತೇವೆ. ನಾವು ಯಂತ್ರಕ್ಕೆ ಬುದ್ಧಿವಂತಿಕೆಯಿಂದ ವರ್ತಿಸುವ ಪ್ರಕ್ರಿಯೆಯ ನಕಲು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಿದಾಗ, ಅದನ್ನು ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ (AI) ಎಂದು ಕರೆಯುತ್ತಾರೆ.
|
||||
|
||||
---
|
||||
## ಕೆಲವು ಪದಗಳು
|
||||
|
||||
ಪದಗಳು ಗೊಂದಲ ಉಂಟುಮಾಡಬಹುದು, ಆದರೆ ಯಂತ್ರ ಅಧ್ಯಯನ (ML) ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯ ಪ್ರಮುಖ ಉಪವರ್ಗವಾಗಿದೆ. **ML ವಿಶೇಷ ಆಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಗ್ರಹಿಸಿದ ಡೇಟಾದಿಂದ ಅರ್ಥಪೂರ್ಣ ಮಾಹಿತಿಯನ್ನು ಅನಾವರಣಗೊಳಿಸುವುದು ಮತ್ತು ತಾರ್ಕಿಕ ನಿರ್ಧಾರ ಪ್ರಕ್ರಿಯೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಗುಪ್ತ ಮಾದರಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವುದರಲ್ಲಿ ತೊಡಗಿಸಿಕೊಂಡಿದೆ**.
|
||||
|
||||
---
|
||||
## AI, ML, ಡೀಪ್ ಲರ್ನಿಂಗ್
|
||||
|
||||

|
||||
|
||||
> AI, ML, ಡೀಪ್ ಲರ್ನಿಂಗ್ ಮತ್ತು ಡೇಟಾ ಸೈನ್ಸ್ ನಡುವಿನ ಸಂಬಂಧಗಳನ್ನು ತೋರಿಸುವ ಚಿತ್ರ. [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಅವರ ಇನ್ಫೋಗ್ರಾಫಿಕ್, [ಈ ಚಿತ್ರ](https://softwareengineering.stackexchange.com/questions/366996/distinction-between-ai-ml-neural-networks-deep-learning-and-data-mining) ಪ್ರೇರಿತ
|
||||
|
||||
---
|
||||
## ಆವೃತ್ತಿ ಮಾಡಬೇಕಾದ ತತ್ವಗಳು
|
||||
|
||||
ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ, ನಾವು ಆರಂಭಿಕರು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದ ಯಂತ್ರ ಅಧ್ಯಯನದ ಮೂಲ ತತ್ವಗಳನ್ನು ಮಾತ್ರ ಆವರಿಸುವೆವು. ನಾವು 'ಶ್ರೇಷ್ಟ ಯಂತ್ರ ಅಧ್ಯಯನ' ಎಂದು ಕರೆಯುವ Scikit-learn ಅನ್ನು ಮುಖ್ಯವಾಗಿ ಬಳಸಿಕೊಂಡು ಮೂಲಭೂತಗಳನ್ನು ಕಲಿಸುವ ಉತ್ತಮ ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸುತ್ತೇವೆ. ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ ಅಥವಾ ಡೀಪ್ ಲರ್ನಿಂಗ್ನ ವ್ಯಾಪಕ ತತ್ವಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು, ಯಂತ್ರ ಅಧ್ಯಯನದ ಬಲವಾದ ಮೂಲಭೂತ ಜ್ಞಾನ ಅಗತ್ಯವಿದೆ, ಅದನ್ನು ನಾವು ಇಲ್ಲಿ ನೀಡಲು ಇಚ್ಛಿಸುತ್ತೇವೆ.
|
||||
|
||||
---
|
||||
## ಈ ಕೋರ್ಸ್ನಲ್ಲಿ ನೀವು ಕಲಿಯುವಿರಿ:
|
||||
|
||||
- ಯಂತ್ರ ಅಧ್ಯಯನದ ಮೂಲ ತತ್ವಗಳು
|
||||
- ML ಇತಿಹಾಸ
|
||||
- ML ಮತ್ತು ನ್ಯಾಯತಂತ್ರ
|
||||
- ರಿಗ್ರೆಶನ್ ML ತಂತ್ರಗಳು
|
||||
- ವರ್ಗೀಕರಣ ML ತಂತ್ರಗಳು
|
||||
- ಕ್ಲಸ್ಟರಿಂಗ್ ML ತಂತ್ರಗಳು
|
||||
- ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ ML ತಂತ್ರಗಳು
|
||||
- ಕಾಲ ಸರಣಿ ಭವಿಷ್ಯವಾಣಿ ML ತಂತ್ರಗಳು
|
||||
- ಬಲವರ್ಧಿತ ಕಲಿಕೆ
|
||||
- ML ನ ನೈಜ ಜಗತ್ತಿನ ಅನ್ವಯಿಕೆಗಳು
|
||||
|
||||
---
|
||||
## ನಾವು ಆವರಿಸುವುದಿಲ್ಲ
|
||||
|
||||
- ಡೀಪ್ ಲರ್ನಿಂಗ್
|
||||
- ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು
|
||||
- AI
|
||||
|
||||
ಉತ್ತಮ ಕಲಿಕೆಯ ಅನುಭವಕ್ಕಾಗಿ, ನಾವು ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳ ಸಂಕೀರ್ಣತೆಗಳನ್ನು, 'ಡೀಪ್ ಲರ್ನಿಂಗ್' - ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು ಬಳಸಿ ಬಹುಮಟ್ಟದ ಮಾದರಿ ನಿರ್ಮಾಣ - ಮತ್ತು AI ಅನ್ನು ಬೇರೆ ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ಚರ್ಚಿಸುವುದರಿಂದ ತಪ್ಪಿಸುವೆವು. ಈ ದೊಡ್ಡ ಕ್ಷೇತ್ರದ ಆಂಗ್ಲಭಾಗವನ್ನು ಗಮನಿಸುವ ಡೇಟಾ ಸೈನ್ಸ್ ಪಠ್ಯಕ್ರಮವನ್ನು ಮುಂದಿನ ದಿನಗಳಲ್ಲಿ ನೀಡಲಿದ್ದೇವೆ.
|
||||
|
||||
---
|
||||
## ಯಂತ್ರ ಅಧ್ಯಯನವನ್ನು ಯಾಕೆ ಅಧ್ಯಯನ ಮಾಡಬೇಕು?
|
||||
|
||||
ಯಂತ್ರ ಅಧ್ಯಯನವನ್ನು ವ್ಯವಸ್ಥೆಗಳ ದೃಷ್ಟಿಕೋನದಿಂದ, ಡೇಟಾದಿಂದ ಗುಪ್ತ ಮಾದರಿಗಳನ್ನು ಕಲಿಯುವ ಸ್ವಯಂಚಾಲಿತ ವ್ಯವಸ್ಥೆಗಳ ಸೃಷ್ಟಿಯಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ, ಇದು ಬುದ್ಧಿವಂತ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
|
||||
|
||||
ಈ ಪ್ರೇರಣೆ ಮಾನವ ಮೆದುಳು ಹೊರಗಿನ ಜಗತ್ತಿನಿಂದ ಗ್ರಹಿಸುವ ಡೇಟಾದ ಆಧಾರದ ಮೇಲೆ ಕೆಲವು ವಿಷಯಗಳನ್ನು ಕಲಿಯುವ ರೀತಿಯಿಂದ ಸಡಿಲವಾಗಿ ಪ್ರೇರಿತವಾಗಿದೆ.
|
||||
|
||||
✅ ಒಂದು ನಿಮಿಷ ಯೋಚಿಸಿ, ಒಂದು ವ್ಯವಹಾರವು ಯಂತ್ರ ಅಧ್ಯಯನ ತಂತ್ರಗಳನ್ನು ಬಳಸಲು ಯಾಕೆ ಪ್ರಯತ್ನಿಸಬಹುದು, ಹಾರ್ಡ್-ಕೋಡ್ ಮಾಡಿದ ನಿಯಮಾಧಾರಿತ ಎಂಜಿನ್ ಸೃಷ್ಟಿಸುವ ಬದಲು.
|
||||
|
||||
---
|
||||
## ಯಂತ್ರ ಅಧ್ಯಯನದ ಅನ್ವಯಿಕೆಗಳು
|
||||
|
||||
ಯಂತ್ರ ಅಧ್ಯಯನದ ಅನ್ವಯಿಕೆಗಳು ಈಗ ಎಲ್ಲೆಡೆ ಇದ್ದು, ನಮ್ಮ ಸಮಾಜಗಳಲ್ಲಿ ಹರಡುತ್ತಿರುವ ಡೇಟಾ ಹಾಗೆಯೇ ಎಲ್ಲೆಡೆ ಇದ್ದು, ನಮ್ಮ ಸ್ಮಾರ್ಟ್ ಫೋನ್ಗಳು, ಸಂಪರ್ಕಿತ ಸಾಧನಗಳು ಮತ್ತು ಇತರ ವ್ಯವಸ್ಥೆಗಳ ಮೂಲಕ ಉತ್ಪಾದಿತವಾಗಿವೆ. ಅತ್ಯಾಧುನಿಕ ಯಂತ್ರ ಅಧ್ಯಯನ ಆಲ್ಗಾರಿದಮ್ಗಳ ಅಪಾರ ಸಾಮರ್ಥ್ಯವನ್ನು ಪರಿಗಣಿಸಿ, ಸಂಶೋಧಕರು ಬಹುಮಟ್ಟದ ಮತ್ತು ಬಹುಶಾಖಾ ನೈಜ ಜೀವನದ ಸಮಸ್ಯೆಗಳನ್ನು ಉತ್ತಮ ಫಲಿತಾಂಶಗಳೊಂದಿಗೆ ಪರಿಹರಿಸಲು ಅವರ ಸಾಮರ್ಥ್ಯವನ್ನು ಅನ್ವೇಷಿಸುತ್ತಿದ್ದಾರೆ.
|
||||
|
||||
---
|
||||
## ಅನ್ವಯಿಸಿದ ML ಉದಾಹರಣೆಗಳು
|
||||
|
||||
**ನೀವು ಯಂತ್ರ ಅಧ್ಯಯನವನ್ನು ಹಲವಾರು ರೀತಿಯಲ್ಲಿ ಬಳಸಬಹುದು**:
|
||||
|
||||
- ರೋಗಿಯ ವೈದ್ಯಕೀಯ ಇತಿಹಾಸ ಅಥವಾ ವರದಿಗಳಿಂದ ರೋಗ ಸಂಭವನೀಯತೆಯನ್ನು ಭವಿಷ್ಯವಾಣಿ ಮಾಡಲು.
|
||||
- ಹವಾಮಾನ ಡೇಟಾವನ್ನು ಉಪಯೋಗಿಸಿ ಹವಾಮಾನ ಘಟನೆಗಳನ್ನು ಭವಿಷ್ಯವಾಣಿ ಮಾಡಲು.
|
||||
- ಪಠ್ಯದ ಭಾವನೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು.
|
||||
- ಪ್ರಚಾರವನ್ನು ತಡೆಯಲು ನಕಲಿ ಸುದ್ದಿಯನ್ನು ಪತ್ತೆಹಚ್ಚಲು.
|
||||
|
||||
ಹಣಕಾಸು, ಆರ್ಥಿಕಶಾಸ್ತ್ರ, ಭೂವಿಜ್ಞಾನ, ಬಾಹ್ಯಾಕಾಶ ಅನ್ವೇಷಣೆ, ಜೈವ ವೈದ್ಯಕೀಯ ಎಂಜಿನಿಯರಿಂಗ್, ಜ್ಞಾನಶಾಸ್ತ್ರ ಮತ್ತು ಮಾನವಶಾಸ್ತ್ರ ಕ್ಷೇತ್ರಗಳಲ್ಲಿಯೂ ಯಂತ್ರ ಅಧ್ಯಯನವನ್ನು ತಮ್ಮ ಕ್ಷೇತ್ರದ ಕಠಿಣ, ಡೇಟಾ ಪ್ರಕ್ರಿಯೆ ಭಾರೀ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಅಳವಡಿಸಿಕೊಂಡಿವೆ.
|
||||
|
||||
---
|
||||
## ಸಮಾರೋಪ
|
||||
|
||||
ಯಂತ್ರ ಅಧ್ಯಯನವು ನೈಜ ಜಗತ್ತಿನ ಅಥವಾ ಉತ್ಪಾದಿತ ಡೇಟಾದಿಂದ ಅರ್ಥಪೂರ್ಣ ಒಳನೋಟಗಳನ್ನು ಕಂಡುಹಿಡಿದು ಮಾದರಿಗಳನ್ನು ಅನ್ವೇಷಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸುತ್ತದೆ. ಇದು ವ್ಯವಹಾರ, ಆರೋಗ್ಯ ಮತ್ತು ಹಣಕಾಸು ಅನ್ವಯಿಕೆಗಳಲ್ಲಿ ಅತ್ಯಂತ ಮೌಲ್ಯಯುತವಾಗಿದೆ ಎಂದು ತೋರಿಸಿದೆ.
|
||||
|
||||
ಭವಿಷ್ಯದಲ್ಲಿ, ಯಂತ್ರ ಅಧ್ಯಯನದ ಮೂಲಭೂತಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಯಾವುದೇ ಕ್ಷೇತ್ರದ ಜನರಿಗೆ ಅಗತ್ಯವಾಗಲಿದೆ, ಅದರ ವ್ಯಾಪಕ ಸ್ವೀಕಾರದಿಂದ.
|
||||
|
||||
---
|
||||
# 🚀 ಸವಾಲು
|
||||
|
||||
ಕಾಗದದ ಮೇಲೆ ಅಥವಾ [Excalidraw](https://excalidraw.com/) ಎಂಬ ಆನ್ಲೈನ್ ಅಪ್ಲಿಕೇಶನ್ ಬಳಸಿ, AI, ML, ಡೀಪ್ ಲರ್ನಿಂಗ್ ಮತ್ತು ಡೇಟಾ ಸೈನ್ಸ್ ನಡುವಿನ ವ್ಯತ್ಯಾಸಗಳ ನಿಮ್ಮ ಅರ್ಥವನ್ನು ಚಿತ್ರಿಸಿ. ಈ ತಂತ್ರಜ್ಞಾನಗಳು ಪರಿಹರಿಸಲು ಉತ್ತಮವಾದ ಸಮಸ್ಯೆಗಳ ಕೆಲವು ಕಲ್ಪನೆಗಳನ್ನು ಸೇರಿಸಿ.
|
||||
|
||||
# [ಪೋಸ್ಟ್-ಲೇಕ್ಚರ್ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
---
|
||||
# ವಿಮರ್ಶೆ ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನ
|
||||
|
||||
ಮೇಘದಲ್ಲಿ ML ಆಲ್ಗಾರಿದಮ್ಗಳೊಂದಿಗೆ ನೀವು ಹೇಗೆ ಕೆಲಸ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ತಿಳಿಯಲು, ಈ [ಅಧ್ಯಯನ ಮಾರ್ಗವನ್ನು](https://docs.microsoft.com/learn/paths/create-no-code-predictive-models-azure-machine-learning/?WT.mc_id=academic-77952-leestott) ಅನುಸರಿಸಿ.
|
||||
|
||||
ML ಮೂಲಭೂತಗಳ ಬಗ್ಗೆ [ಅಧ್ಯಯನ ಮಾರ್ಗವನ್ನು](https://docs.microsoft.com/learn/modules/introduction-to-machine-learning/?WT.mc_id=academic-77952-leestott) ತೆಗೆದುಕೊಳ್ಳಿ.
|
||||
|
||||
---
|
||||
# ನಿಯೋಜನೆ
|
||||
|
||||
[ಪ್ರಾರಂಭಿಸಿ ಮತ್ತು ಚಾಲನೆ ಮಾಡಿ](assignment.md)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,25 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "4c4698044bb8af52cfb6388a4ee0e53b",
|
||||
"translation_date": "2025-12-19T13:26:34+00:00",
|
||||
"source_file": "1-Introduction/1-intro-to-ML/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಎದ್ದು ಚಾಲನೆ ಮಾಡಿಕೊಳ್ಳಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಈ ಅಗ್ರೇಡ್ ಮಾಡದ ಕಾರ್ಯದಲ್ಲಿ, ನೀವು ಪೈಥಾನ್ನಲ್ಲಿ ನಿಪುಣರಾಗಬೇಕು ಮತ್ತು ನಿಮ್ಮ ಪರಿಸರವನ್ನು ಚಾಲನೆಗೆ ತಂದು ನೋಟ್ಬುಕ್ಗಳನ್ನು ಚಾಲನೆ ಮಾಡಬಹುದಾಗಿರಬೇಕು.
|
||||
|
||||
ಈ [Python Learning Path](https://docs.microsoft.com/learn/paths/python-language/?WT.mc_id=academic-77952-leestott) ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ, ನಂತರ ಈ ಪರಿಚಯಾತ್ಮಕ ವೀಡಿಯೊಗಳನ್ನು ನೋಡಿ ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಿ:
|
||||
|
||||
https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,167 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "6a05fec147e734c3e6bfa54505648e2b",
|
||||
"translation_date": "2025-12-19T13:30:50+00:00",
|
||||
"source_file": "1-Introduction/2-history-of-ML/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಯಂತ್ರ ಅಧ್ಯಯನದ ಇತಿಹಾಸ
|
||||
|
||||

|
||||
> ಸ್ಕೆಚ್ನೋಟ್: [ಟೊಮೊಮಿ ಇಮುರಾ](https://www.twitter.com/girlie_mac)
|
||||
|
||||
## [ಪೂರ್ವ-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
---
|
||||
|
||||
[](https://youtu.be/N6wxM4wZ7V0 "ಆರಂಭಿಕರಿಗಾಗಿ ಯಂತ್ರ ಅಧ್ಯಯನ - ಯಂತ್ರ ಅಧ್ಯಯನದ ಇತಿಹಾಸ")
|
||||
|
||||
> 🎥 ಈ ಪಾಠವನ್ನು ವಿವರಿಸುವ ಚಿಕ್ಕ ವೀಡಿಯೊಗಾಗಿ ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ, ನಾವು ಯಂತ್ರ ಅಧ್ಯಯನ ಮತ್ತು ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯ ಇತಿಹಾಸದ ಪ್ರಮುಖ ಮೈಲಿಗಲ್ಲುಗಳನ್ನು ಪರಿಶೀಲಿಸುವೆವು.
|
||||
|
||||
ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ (AI) ಕ್ಷೇತ್ರದ ಇತಿಹಾಸವು ಯಂತ್ರ ಅಧ್ಯಯನದ ಇತಿಹಾಸದೊಂದಿಗೆ絡ಗೊಂಡಿದೆ, ಏಕೆಂದರೆ ML ಅನ್ನು ಆಧರಿಸುವ ಅಲ್ಗಾರಿದಮ್ಗಳು ಮತ್ತು ಗಣನಾತ್ಮಕ ಪ್ರಗತಿಗಳು AI ಅಭಿವೃದ್ಧಿಗೆ ಸಹಾಯ ಮಾಡಿವೆ. ಈ ಕ್ಷೇತ್ರಗಳು 1950ರ ದಶಕದಲ್ಲಿ ಪ್ರತ್ಯೇಕ ವಿಚಾರಣಾ ಕ್ಷೇತ್ರಗಳಾಗಿ ರೂಪುಗೊಂಡರೂ, ಪ್ರಮುಖ [ಅಲ್ಗಾರಿದಮಿಕ್, ಸಾಂಖ್ಯಿಕ, ಗಣಿತೀಯ, ಗಣನಾತ್ಮಕ ಮತ್ತು ತಾಂತ್ರಿಕ ಆವಿಷ್ಕಾರಗಳು](https://wikipedia.org/wiki/Timeline_of_machine_learning) ಈ ಕಾಲಘಟ್ಟಕ್ಕಿಂತ ಮುಂಚಿತವಾಗಿಯೂ ಮತ್ತು ಅಡ್ಡವಾಗಿ ನಡೆದಿವೆ. ವಾಸ್ತವವಾಗಿ, ಜನರು ಈ ಪ್ರಶ್ನೆಗಳ ಬಗ್ಗೆ [ನೂರು ವರ್ಷಗಳಿಂದ](https://wikipedia.org/wiki/History_of_artificial_intelligence) ಯೋಚಿಸುತ್ತಿದ್ದಾರೆ: ಈ ಲೇಖನವು 'ಚಿಂತಿಸುವ ಯಂತ್ರ' ಎಂಬ ಕಲ್ಪನೆಯ ಇತಿಹಾಸಾತ್ಮಕ ಬೌದ್ಧಿಕ ಆಧಾರಗಳನ್ನು ಚರ್ಚಿಸುತ್ತದೆ.
|
||||
|
||||
---
|
||||
## ಪ್ರಮುಖ ಆವಿಷ್ಕಾರಗಳು
|
||||
|
||||
- 1763, 1812 [ಬೇಯ್ಸ್ ಸಿದ್ಧಾಂತ](https://wikipedia.org/wiki/Bayes%27_theorem) ಮತ್ತು ಅದರ ಪೂರ್ವಜರು. ಈ ಸಿದ್ಧಾಂತ ಮತ್ತು ಅದರ ಅನ್ವಯಗಳು ನಿರ್ಣಯಕ್ಕೆ ಆಧಾರವಾಗಿದ್ದು, ಹಿಂದಿನ ಜ್ಞಾನ ಆಧಾರದ ಮೇಲೆ ಘಟನೆ ಸಂಭವಿಸುವ ಸಾಧ್ಯತೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ.
|
||||
- 1805 [ಕನಿಷ್ಠ ಚದರ ಸಿದ್ಧಾಂತ](https://wikipedia.org/wiki/Least_squares) ಫ್ರೆಂಚ್ ಗಣಿತಜ್ಞ ಅಡ್ರಿಯನ್-ಮೇರಿ ಲೆಜೆಂಡ್ರ್ ರವರಿಂದ. ಈ ಸಿದ್ಧಾಂತವನ್ನು ನೀವು ನಮ್ಮ ರಿಗ್ರೆಷನ್ ಘಟಕದಲ್ಲಿ ಕಲಿಯುತ್ತೀರಿ, ಇದು ಡೇಟಾ ಹೊಂದಾಣಿಕೆಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ.
|
||||
- 1913 [ಮಾರ್ಕೋವ್ ಸರಪಳಿ](https://wikipedia.org/wiki/Markov_chain), ರಷ್ಯನ್ ಗಣಿತಜ್ಞ ಆಂಡ್ರೇ ಮಾರ್ಕೋವ್ ಅವರ ಹೆಸರಿನಲ್ಲಿ, ಹಿಂದಿನ ಸ್ಥಿತಿಯ ಆಧಾರದ ಮೇಲೆ ಸಂಭವನೀಯ ಘಟನೆಗಳ ಸರಣಿಯನ್ನು ವಿವರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.
|
||||
- 1957 [ಪರ್ಸೆಪ್ಟ್ರಾನ್](https://wikipedia.org/wiki/Perceptron) ಅಮೆರಿಕನ್ ಮನೋವೈಜ್ಞಾನಿಕ ಫ್ರಾಂಕ್ ರೋಸೆನ್ಬ್ಲಾಟ್ ರವರಿಂದ ಆವಿಷ್ಕೃತ ಲೀನಿಯರ್ ವರ್ಗೀಕರಣದ ಒಂದು ಪ್ರಕಾರ, ಇದು ಡೀಪ್ ಲರ್ನಿಂಗ್ನಲ್ಲಿ ಪ್ರಗತಿಗೆ ಆಧಾರವಾಗಿದೆ.
|
||||
|
||||
---
|
||||
|
||||
- 1967 [ನಿಕಟಮ ಸನ್ನಿಹಿತ](https://wikipedia.org/wiki/Nearest_neighbor) ಮೂಲತಃ ಮಾರ್ಗಗಳನ್ನು ನಕ್ಷೆ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಅಲ್ಗಾರಿದಮ್. ML ಸನ್ನಿವೇಶದಲ್ಲಿ ಇದು ಮಾದರಿಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಬಳಸಲಾಗುತ್ತದೆ.
|
||||
- 1970 [ಬ್ಯಾಕ್ಪ್ರೊಪಾಗೇಶನ್](https://wikipedia.org/wiki/Backpropagation) [ಫೀಡ್ಫಾರ್ವರ್ಡ್ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳನ್ನು](https://wikipedia.org/wiki/Feedforward_neural_network) ತರಬೇತಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ.
|
||||
- 1982 [ರಿಕರೆಂಟ್ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು](https://wikipedia.org/wiki/Recurrent_neural_network) ಫೀಡ್ಫಾರ್ವರ್ಡ್ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳಿಂದ ಉತ್ಪನ್ನವಾದ ಕೃತಕ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳು, ಅವು ಕಾಲಾತೀತ ಗ್ರಾಫ್ಗಳನ್ನು ರಚಿಸುತ್ತವೆ.
|
||||
|
||||
✅ ಸ್ವಲ್ಪ ಸಂಶೋಧನೆ ಮಾಡಿ. ML ಮತ್ತು AI ಇತಿಹಾಸದಲ್ಲಿ ಇನ್ನೇನು ಪ್ರಮುಖ ದಿನಾಂಕಗಳು ಗಮನಾರ್ಹವಾಗಿವೆ?
|
||||
|
||||
---
|
||||
## 1950: ಚಿಂತಿಸುವ ಯಂತ್ರಗಳು
|
||||
|
||||
ಅಲನ್ ಟ್ಯೂರಿಂಗ್, 2019 ರಲ್ಲಿ [ಸಾರ್ವಜನಿಕರಿಂದ](https://wikipedia.org/wiki/Icons:_The_Greatest_Person_of_the_20th_Century) 20ನೇ ಶತಮಾನದ ಅತ್ಯುತ್ತಮ ವಿಜ್ಞಾನಿಯಾಗಿ ಮತದಾನಗೊಂಡ ಅತ್ಯಂತ ಅದ್ಭುತ ವ್ಯಕ್ತಿ, 'ಚಿಂತಿಸುವ ಯಂತ್ರ' ಎಂಬ ಕಲ್ಪನೆಗೆ ಆಧಾರವನ್ನು ನೀಡಿದವರಾಗಿ ಗುರುತಿಸಲ್ಪಟ್ಟಿದ್ದಾರೆ. ಅವರು ಈ ಕಲ್ಪನೆಯ ಪ್ರಾಯೋಗಿಕ ಸಾಕ್ಷ್ಯಕ್ಕಾಗಿ ತೀವ್ರವಾಗಿ ಯೋಚಿಸಿ, [ಟ್ಯೂರಿಂಗ್ ಪರೀಕ್ಷೆ](https://www.bbc.com/news/technology-18475646) ರಚಿಸಿದರು, ಇದನ್ನು ನೀವು ನಮ್ಮ NLP ಪಾಠಗಳಲ್ಲಿ ಅನ್ವೇಷಿಸುವಿರಿ.
|
||||
|
||||
---
|
||||
## 1956: ಡಾರ್ಟ್ಮೌತ್ ಬೇಸಿಗೆ ಸಂಶೋಧನಾ ಯೋಜನೆ
|
||||
|
||||
"ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ ಕ್ಷೇತ್ರದ ಪ್ರಮುಖ ಘಟನೆ ಆಗಿದ್ದ ಡಾರ್ಟ್ಮೌತ್ ಬೇಸಿಗೆ ಸಂಶೋಧನಾ ಯೋಜನೆ," ಇಲ್ಲಿ 'ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ' ಪದವನ್ನು ರೂಪಿಸಲಾಯಿತು ([ಮೂಲ](https://250.dartmouth.edu/highlights/artificial-intelligence-ai-coined-dartmouth)).
|
||||
|
||||
> ಕಲಿಕೆಯ ಪ್ರತಿಯೊಂದು ಅಂಶ ಅಥವಾ ಬುದ್ಧಿಮತ್ತೆಯ ಯಾವುದೇ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಯಂತ್ರವು ನಕಲಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ ನಿಖರವಾಗಿ ವರ್ಣಿಸಬಹುದು.
|
||||
|
||||
---
|
||||
|
||||
ಮುಖ್ಯ ಸಂಶೋಧಕ, ಗಣಿತ ಪ್ರಾಧ್ಯಾಪಕ ಜಾನ್ ಮ್ಯಾಕಾರ್ಥಿ, "ಕಲಿಕೆಯ ಪ್ರತಿಯೊಂದು ಅಂಶ ಅಥವಾ ಬುದ್ಧಿಮತ್ತೆಯ ಯಾವುದೇ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಯಂತ್ರವು ನಕಲಿಸಲು ಸಾಧ್ಯವಾಗುವಂತೆ ನಿಖರವಾಗಿ ವರ್ಣಿಸಬಹುದು" ಎಂಬ ಊಹಾಪೋಹದ ಆಧಾರದ ಮೇಲೆ ಮುಂದುವರೆಯಲು ಆಶಿಸಿದರು. ಭಾಗವಹಿಸಿದವರಲ್ಲಿ ಮತ್ತೊಬ್ಬ ಪ್ರಸಿದ್ಧ ವ್ಯಕ್ತಿ ಮಾರ್ವಿನ್ ಮಿನ್ಸ್ಕಿ ಇದ್ದರು.
|
||||
|
||||
ಈ ಕಾರ್ಯಾಗಾರವು "ಪ್ರತೀಕಾತ್ಮಕ ವಿಧಾನಗಳ ಏರಿಕೆ, ನಿರ್ದಿಷ್ಟ ಕ್ಷೇತ್ರಗಳ ಮೇಲೆ ಕೇಂದ್ರೀಕೃತ ವ್ಯವಸ್ಥೆಗಳು (ಆರಂಭಿಕ ತಜ್ಞ ವ್ಯವಸ್ಥೆಗಳು), ಮತ್ತು ನಿರೂಪಣಾತ್ಮಕ ವ್ಯವಸ್ಥೆಗಳು ವಿರುದ್ಧ ಅನುಪಾತಾತ್ಮಕ ವ್ಯವಸ್ಥೆಗಳು" ಸೇರಿದಂತೆ ಹಲವು ಚರ್ಚೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸಿ ಉತ್ತೇಜನ ನೀಡಿದಂತೆ ಗುರುತಿಸಲಾಗಿದೆ ([ಮೂಲ](https://wikipedia.org/wiki/Dartmouth_workshop)).
|
||||
|
||||
---
|
||||
## 1956 - 1974: "ಸುವರ್ಣ ಯುಗ"
|
||||
|
||||
1950ರ ದಶಕದಿಂದ 1970ರ ಮಧ್ಯದವರೆಗೆ, AI ಅನೇಕ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಬಹುದು ಎಂಬ ಭರವಸೆ ಉತ್ಕೃಷ್ಟವಾಗಿತ್ತು. 1967 ರಲ್ಲಿ ಮಾರ್ವಿನ್ ಮಿನ್ಸ್ಕಿ ನಂಬಿಕೆಯಿಂದ ಹೇಳಿದಂತೆ, "ಒಂದು ತಲೆಮಾರಿಗೆ ಒಳಗಾಗಿ ... 'ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ' ಸೃಷ್ಟಿಸುವ ಸಮಸ್ಯೆ ಬಹುಮಟ್ಟಿಗೆ ಪರಿಹಾರವಾಗುತ್ತದೆ." (ಮಿನ್ಸ್ಕಿ, ಮಾರ್ವಿನ್ (1967), ಗಣನೆ: ಸೀಮಿತ ಮತ್ತು ಅನಂತ ಯಂತ್ರಗಳು, ಎಂಗಲ್ವುಡ್ ಕ್ಲಿಫ್ಸ್, N.J.: ಪ್ರೆಂಟಿಸ್-ಹಾಲ್)
|
||||
|
||||
ಸ್ವಾಭಾವಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ ಸಂಶೋಧನೆ ಬೆಳವಣಿಗೆ ಕಂಡಿತು, ಹುಡುಕಾಟವನ್ನು ಸುಧಾರಿಸಿ ಶಕ್ತಿಶಾಲಿ ಮಾಡಲಾಯಿತು, ಮತ್ತು 'ಮೈಕ್ರೋ-ವಿಶ್ವಗಳು' ಎಂಬ ಕಲ್ಪನೆ ಹುಟ್ಟಿತು, ಇಲ್ಲಿ ಸರಳ ಕಾರ್ಯಗಳನ್ನು ಸರಳ ಭಾಷಾ ಸೂಚನೆಗಳ ಮೂಲಕ ಪೂರ್ಣಗೊಳಿಸಲಾಗುತ್ತಿತ್ತು.
|
||||
|
||||
---
|
||||
|
||||
ಸರ್ಕಾರಿ ಸಂಸ್ಥೆಗಳ ಮೂಲಕ ಸಂಶೋಧನೆಗೆ ಉತ್ತಮ ಹಣಕಾಸು ದೊರಕಿತು, ಗಣನೆ ಮತ್ತು ಅಲ್ಗಾರಿದಮ್ಗಳಲ್ಲಿ ಪ್ರಗತಿ ಕಂಡುಬಂದಿತು, ಮತ್ತು ಬುದ್ಧಿವಂತ ಯಂತ್ರಗಳ ಪ್ರೋಟೋಟೈಪ್ಗಳು ನಿರ್ಮಿಸಲ್ಪಟ್ಟವು. ಕೆಲವು ಯಂತ್ರಗಳು:
|
||||
|
||||
* [ಶೇಕಿ ರೋಬೋಟ್](https://wikipedia.org/wiki/Shakey_the_robot), ಯಾರು 'ಬುದ್ಧಿವಂತಿಕೆಯಿಂದ' ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಿತ್ತು.
|
||||
|
||||

|
||||
> 1972 ರಲ್ಲಿ ಶೇಕಿ
|
||||
|
||||
---
|
||||
|
||||
* ಎಲಿಜಾ, ಆರಂಭಿಕ 'ಚಾಟ್ಬಾಟ್', ಜನರೊಂದಿಗೆ ಸಂಭಾಷಣೆ ನಡೆಸಲು ಮತ್ತು ಪ್ರಾಥಮಿಕ 'ಥೆರಪಿಸ್ಟ್' ಆಗ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಸಾಧ್ಯವಿತ್ತು. NLP ಪಾಠಗಳಲ್ಲಿ ನೀವು ಎಲಿಜಾ ಬಗ್ಗೆ ಹೆಚ್ಚು ತಿಳಿಯುತ್ತೀರಿ.
|
||||
|
||||

|
||||
> ಎಲಿಜಾ, ಒಂದು ಚಾಟ್ಬಾಟ್ನ ಆವೃತ್ತಿ
|
||||
|
||||
---
|
||||
|
||||
* "ಬ್ಲಾಕ್ಸ್ ವರ್ಲ್ಡ್" ಎಂಬ ಮೈಕ್ರೋ-ವಿಶ್ವದಲ್ಲಿ ಬ್ಲಾಕ್ಗಳನ್ನು ಸರಿದೂಗಿಸಿ ವಿಂಗಡಿಸಲಾಗುತ್ತಿತ್ತು, ಮತ್ತು ಯಂತ್ರಗಳಿಗೆ ನಿರ್ಧಾರಗಳನ್ನು ಕಲಿಸುವ ಪ್ರಯೋಗಗಳನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿತ್ತು. [SHRDLU](https://wikipedia.org/wiki/SHRDLU) ಮುಂತಾದ ಗ್ರಂಥಾಲಯಗಳೊಂದಿಗೆ ನಿರ್ಮಿತ ಪ್ರಗತಿಗಳು ಭಾಷಾ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮುಂದುವರಿಸಲು ಸಹಾಯ ಮಾಡಿತು.
|
||||
|
||||
[](https://www.youtube.com/watch?v=QAJz4YKUwqw "SHRDLU ಜೊತೆಗೆ ಬ್ಲಾಕ್ಸ್ ವರ್ಲ್ಡ್")
|
||||
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ವೀಡಿಯೊ: SHRDLU ಜೊತೆಗೆ ಬ್ಲಾಕ್ಸ್ ವರ್ಲ್ಡ್
|
||||
|
||||
---
|
||||
## 1974 - 1980: "AI ಚಳಿಗಾಲ"
|
||||
|
||||
1970ರ ಮಧ್ಯದಲ್ಲಿ, 'ಬುದ್ಧಿವಂತ ಯಂತ್ರಗಳನ್ನು' ನಿರ್ಮಿಸುವ ಸಂಕೀರ್ಣತೆ ಕಡಿಮೆ ಅಂದಾಜಿತವಾಗಿದ್ದು, ಲಭ್ಯವಿರುವ ಗಣನ ಶಕ್ತಿಯೊಂದಿಗೆ ಅದರ ಭರವಸೆ ಹೆಚ್ಚಾಗಿ ಹೇಳಲ್ಪಟ್ಟಿತು ಎಂಬುದು ಸ್ಪಷ್ಟವಾಯಿತು. ಹಣಕಾಸು ಕಡಿಮೆಯಾಯಿತು ಮತ್ತು ಕ್ಷೇತ್ರದ ಮೇಲೆ ನಂಬಿಕೆ ಕುಗ್ಗಿತು. ನಂಬಿಕೆಗೆ ಪರಿಣಾಮ ಬೀರುವ ಕೆಲವು ಸಮಸ್ಯೆಗಳು:
|
||||
|
||||
---
|
||||
- **ಮಿತಿಗಳು**. ಗಣನ ಶಕ್ತಿ ತುಂಬಾ ಸೀಮಿತವಾಗಿತ್ತು.
|
||||
- **ಸಂಯೋಜನಾತ್ಮಕ ಸ್ಫೋಟ**. ಗಣಕಗಳಿಗೆ ಹೆಚ್ಚು ಕೇಳಿದಂತೆ ತರಬೇತಿಗೆ ಬೇಕಾದ ಪರಿಮಾಣಗಳು ಗಣನೀಯವಾಗಿ ಹೆಚ್ಚಾಗುತ್ತಿದ್ದು, ಗಣನ ಶಕ್ತಿ ಮತ್ತು ಸಾಮರ್ಥ್ಯದ ಸಮಕಾಲೀನ ಬೆಳವಣಿಗೆ ಇಲ್ಲದೆ ಇತ್ತು.
|
||||
- **ಡೇಟಾ ಕೊರತೆ**. ಪರೀಕ್ಷೆ, ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಅಲ್ಗಾರಿದಮ್ಗಳ ಸುಧಾರಣೆಗೆ ಡೇಟಾ ಕೊರತೆ ಅಡ್ಡಿಪಡಿಸಿತು.
|
||||
- **ನಾವು ಸರಿಯಾದ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳುತ್ತಿದ್ದೇವೇ?**. ಕೇಳಲಾಗುತ್ತಿದ್ದ ಪ್ರಶ್ನೆಗಳೇ ಪ್ರಶ್ನೆಗೆ ಒಳಗಾದವು. ಸಂಶೋಧಕರು ತಮ್ಮ ವಿಧಾನಗಳ ಬಗ್ಗೆ ಟೀಕೆಗಳನ್ನು ಎದುರಿಸಿದರು:
|
||||
- ಟ್ಯೂರಿಂಗ್ ಪರೀಕ್ಷೆಗಳನ್ನು 'ಚೈನೀಸ್ ರೂಮ್ ಸಿದ್ಧಾಂತ' ಮುಂತಾದ ಕಲ್ಪನೆಗಳ ಮೂಲಕ ಪ್ರಶ್ನಿಸಲಾಯಿತು, ಇದು "ಡಿಜಿಟಲ್ ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಂತೆ ತೋರುತ್ತದೆ ಆದರೆ ನಿಜವಾದ ಅರ್ಥಮಾಡಿಕೊಳಲು ಸಾಧ್ಯವಿಲ್ಲ" ಎಂದು ಹೇಳುತ್ತದೆ ([ಮೂಲ](https://plato.stanford.edu/entries/chinese-room/)).
|
||||
- "ಥೆರಪಿಸ್ಟ್" ಎಲಿಜಾ ಮುಂತಾದ ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಗಳನ್ನು ಸಮಾಜಕ್ಕೆ ಪರಿಚಯಿಸುವ ನೈತಿಕತೆ ಪ್ರಶ್ನಿಸಲಾಯಿತು.
|
||||
|
||||
---
|
||||
|
||||
ಅದೇ ಸಮಯದಲ್ಲಿ, ವಿವಿಧ AI ಚಿಂತನೆ ಶಾಲೆಗಳು ರೂಪುಗೊಂಡವು. ["ಸ್ಕ್ರಫಿ" ಮತ್ತು "ನೀಟ್ AI"](https://wikipedia.org/wiki/Neats_and_scruffies) ಅಭ್ಯಾಸಗಳ ನಡುವೆ ವಿಭಜನೆ ಸ್ಥಾಪಿತವಾಯಿತು. _ಸ್ಕ್ರಫಿ_ ಪ್ರಯೋಗಾಲಯಗಳು ಗಂಟೆಗಳ ಕಾಲ ಪ್ರೋಗ್ರಾಮ್ಗಳನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿ ಬೇಕಾದ ಫಲಿತಾಂಶಗಳನ್ನು ಪಡೆದವು. _ನೀಟ್_ ಪ್ರಯೋಗಾಲಯಗಳು "ತರ್ಕ ಮತ್ತು ಅಧಿಕೃತ ಸಮಸ್ಯೆ ಪರಿಹಾರ" ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿದವು. ಎಲಿಜಾ ಮತ್ತು SHRDLU ಪ್ರಸಿದ್ಧ _ಸ್ಕ್ರಫಿ_ ವ್ಯವಸ್ಥೆಗಳಾಗಿದ್ದವು. 1980ರ ದಶಕದಲ್ಲಿ, ML ವ್ಯವಸ್ಥೆಗಳನ್ನು ಪುನರಾವರ್ತಿಸಬಹುದಾದಂತೆ ಮಾಡಲು ಬೇಡಿಕೆ ಬಂದಾಗ, _ನೀಟ್_ ವಿಧಾನವು ಮುಂಚೂಣಿಗೆ ಬಂತು ಏಕೆಂದರೆ ಅದರ ಫಲಿತಾಂಶಗಳು ಹೆಚ್ಚು ವಿವರಿಸಬಹುದಾಗಿವೆ.
|
||||
|
||||
---
|
||||
## 1980ರ ದಶಕ ತಜ್ಞ ವ್ಯವಸ್ಥೆಗಳು
|
||||
|
||||
ಕ್ಷೇತ್ರ ಬೆಳೆಯುತ್ತಾ, ಅದರ ವ್ಯವಹಾರಕ್ಕೆ ಲಾಭ ಸ್ಪಷ್ಟವಾಗುತ್ತಾ, 1980ರ ದಶಕದಲ್ಲಿ 'ತಜ್ಞ ವ್ಯವಸ್ಥೆಗಳ' ವ್ಯಾಪಾರವೂ ಹೆಚ್ಚಿತು. "ತಜ್ಞ ವ್ಯವಸ್ಥೆಗಳು ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ (AI) ಸಾಫ್ಟ್ವೇರ್ನ ಮೊದಲ ಯಶಸ್ವಿ ರೂಪಗಳಲ್ಲಿ ಒಂದಾಗಿವೆ." ([ಮೂಲ](https://wikipedia.org/wiki/Expert_system)).
|
||||
|
||||
ಈ ರೀತಿಯ ವ್ಯವಸ್ಥೆ ಭಾಗಶಃ ನಿಯಮ ಇಂಜಿನ್ ಮತ್ತು ನಿಯಮ ವ್ಯವಸ್ಥೆಯನ್ನು ಉಪಯೋಗಿಸಿ ಹೊಸ ತತ್ವಗಳನ್ನು ನಿರ್ಣಯಿಸುವ ನಿರ್ಣಯ ಇಂಜಿನ್ನಿಂದ ಕೂಡಿದೆ.
|
||||
|
||||
ಈ ಕಾಲದಲ್ಲಿ ನ್ಯೂರಲ್ ನೆಟ್ವರ್ಕ್ಗಳಿಗೆ ಹೆಚ್ಚುವರಿ ಗಮನ ನೀಡಲಾಯಿತು.
|
||||
|
||||
---
|
||||
## 1987 - 1993: AI 'ಚಿಲ್'
|
||||
|
||||
ವಿಶೇಷ ತಜ್ಞ ವ್ಯವಸ್ಥೆಗಳ ಹಾರ್ಡ್ವೇರ್ ವ್ಯಾಪಾರವು ತುಂಬಾ ವಿಶೇಷೀಕೃತವಾಗುವ ಪರಿಣಾಮ ಉಂಟುಮಾಡಿತು. ವೈಯಕ್ತಿಕ ಕಂಪ್ಯೂಟರ್ಗಳ ಏರಿಕೆ ಈ ದೊಡ್ಡ, ವಿಶೇಷೀಕೃತ, ಕೇಂದ್ರಿತ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಸ್ಪರ್ಧೆ ನೀಡಿತು. ಗಣನದ ಪ್ರಜಾಪ್ರಭುತ್ವ ಆರಂಭವಾಯಿತು ಮತ್ತು ಇದು ದೊಡ್ಡ ಡೇಟಾ ಸ್ಫೋಟಕ್ಕೆ ದಾರಿ ಮಾಡಿಕೊಟ್ಟಿತು.
|
||||
|
||||
---
|
||||
## 1993 - 2011
|
||||
|
||||
ಈ ಕಾಲಘಟ್ಟದಲ್ಲಿ ML ಮತ್ತು AI ಹೊಸ ಯುಗವನ್ನು ಕಂಡವು, ಮೊದಲಿನ ಡೇಟಾ ಮತ್ತು ಗಣನ ಶಕ್ತಿಯ ಕೊರತೆಗಳಿಂದ ಉಂಟಾದ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಸಾಧ್ಯವಾಯಿತು. ಡೇಟಾ ಪ್ರಮಾಣವು ವೇಗವಾಗಿ ಹೆಚ್ಚಿತು ಮತ್ತು ಹೆಚ್ಚು ಲಭ್ಯವಾಯಿತು, ವಿಶೇಷವಾಗಿ 2007 ರ ಸ್ಮಾರ್ಟ್ಫೋನ್ ಆಗಮನದೊಂದಿಗೆ. ಗಣನ ಶಕ್ತಿ ಗಣನೀಯವಾಗಿ ವೃದ್ಧಿಸಿತು ಮತ್ತು ಅಲ್ಗಾರಿದಮ್ಗಳು ಸಹ ಬೆಳವಣಿಗೆ ಕಂಡವು. ಕ್ಷೇತ್ರವು ವಯಸ್ಕತೆಯನ್ನು ಪಡೆದುಕೊಂಡಿತು ಮತ್ತು ಮುಂಚಿನ ಮುಕ್ತ ಚಟುವಟಿಕೆಗಳು ನಿಜವಾದ ಶಿಸ್ತಿನ ರೂಪದಲ್ಲಿ ರೂಪುಗೊಂಡವು.
|
||||
|
||||
---
|
||||
## ಈಗ
|
||||
|
||||
ಇಂದು ಯಂತ್ರ ಅಧ್ಯಯನ ಮತ್ತು AI ನಮ್ಮ ಜೀವನದ ಬಹುತೇಕ ಭಾಗಗಳನ್ನು ಸ್ಪರ್ಶಿಸುತ್ತವೆ. ಈ ಯುಗವು ಈ ಅಲ್ಗಾರಿದಮ್ಗಳ ಮಾನವ ಜೀವನದ ಮೇಲೆ ಇರುವ ಅಪಾಯಗಳು ಮತ್ತು ಸಾಧ್ಯತೆಗಳನ್ನು ಜಾಗರೂಕತೆಯಿಂದ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬೇಕಾಗಿದೆ. ಮೈಕ್ರೋಸಾಫ್ಟ್ನ ಬ್ರಾಡ್ ಸ್ಮಿತ್ ಹೇಳಿರುವಂತೆ, "ಮಾಹಿತಿ ತಂತ್ರಜ್ಞಾನವು ಗೌಪ್ಯತೆ ಮತ್ತು ಅಭಿವ್ಯಕ್ತಿಯ ಸ್ವಾತಂತ್ರ್ಯಗಳಂತಹ ಮೂಲಭೂತ ಮಾನವ ಹಕ್ಕುಗಳ ರಕ್ಷಣೆಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ವಿಷಯಗಳನ್ನು ಎತ್ತಿಹಿಡಿಯುತ್ತದೆ. ಈ ಉತ್ಪನ್ನಗಳನ್ನು ಸೃಷ್ಟಿಸುವ ತಂತ್ರಜ್ಞಾನ ಕಂಪನಿಗಳ ಹೊಣೆಗಾರಿಕೆ ಹೆಚ್ಚಿಸುತ್ತದೆ. ನಮ್ಮ ದೃಷ್ಟಿಯಲ್ಲಿ, ಇದು ಯೋಚನಾಶೀಲ ಸರ್ಕಾರ ನಿಯಂತ್ರಣ ಮತ್ತು ಸ್ವೀಕಾರ್ಯ ಬಳಕೆಗಳ ಸುತ್ತಲೂ ನಿಯಮಗಳ ಅಭಿವೃದ್ಧಿಯನ್ನು ಕರೆದೊಯ್ಯುತ್ತದೆ" ([ಮೂಲ](https://www.technologyreview.com/2019/12/18/102365/the-future-of-ais-impact-on-society/)).
|
||||
|
||||
---
|
||||
|
||||
ಭವಿಷ್ಯದಲ್ಲಿ ಏನು ಸಂಭವಿಸುವುದು ನೋಡಬೇಕಾಗುತ್ತದೆ, ಆದರೆ ಈ ಕಂಪ್ಯೂಟರ್ ವ್ಯವಸ್ಥೆಗಳು ಮತ್ತು ಅವು ಚಾಲನೆ ಮಾಡುವ ಸಾಫ್ಟ್ವೇರ್ ಮತ್ತು ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮುಖ್ಯ. ಈ ಪಠ್ಯಕ್ರಮವು ನಿಮಗೆ ಉತ್ತಮ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ ಎಂದು ನಾವು ಆಶಿಸುತ್ತೇವೆ, ನೀವು ಸ್ವತಃ ನಿರ್ಧರಿಸಬಹುದು.
|
||||
|
||||
[](https://www.youtube.com/watch?v=mTtDfKgLm54 "ಡೀಪ್ ಲರ್ನಿಂಗ್ ಇತಿಹಾಸ")
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ವೀಡಿಯೊ: ಯಾನ್ ಲೆಕನ್ ಈ ಉಪನ್ಯಾಸದಲ್ಲಿ ಡೀಪ್ ಲರ್ನಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಚರ್ಚಿಸುತ್ತಾರೆ
|
||||
|
||||
---
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
ಈ ಇತಿಹಾಸಾತ್ಮಕ ಕ್ಷಣಗಳಲ್ಲಿ ಒಂದನ್ನು ಆಳವಾಗಿ ಅಧ್ಯಯನ ಮಾಡಿ ಮತ್ತು ಅದರ ಹಿಂದೆ ಇರುವ ಜನರನ್ನು ತಿಳಿದುಕೊಳ್ಳಿ. ಅದ್ಭುತ ವ್ಯಕ್ತಿತ್ವಗಳಿವೆ, ಮತ್ತು ಯಾವುದೇ ವೈಜ್ಞಾನಿಕ ಆವಿಷ್ಕಾರವು ಸಾಂಸ್ಕೃತಿಕ ಖಾಲಿಯಲ್ಲಿ ಸೃಷ್ಟಿಸಲ್ಪಟ್ಟಿಲ್ಲ. ನೀವು ಏನು ಕಂಡುಹಿಡಿಯುತ್ತೀರಿ?
|
||||
|
||||
## [ಪೋಸ್ಟ್-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
---
|
||||
## ವಿಮರ್ಶೆ ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನ
|
||||
|
||||
ಇಲ್ಲಿ ವೀಕ್ಷಿಸಲು ಮತ್ತು ಕೇಳಲು ಐಟಂಗಳು ಇವೆ:
|
||||
|
||||
[ಈ ಪಾಡ್ಕಾಸ್ಟ್ನಲ್ಲಿ ಎಮಿ ಬಾಯ್ಡ್ AI ಅಭಿವೃದ್ಧಿಯನ್ನು ಚರ್ಚಿಸುತ್ತಾರೆ](http://runasradio.com/Shows/Show/739)
|
||||
|
||||
[](https://www.youtube.com/watch?v=EJt3_bFYKss "ಎಮಿ ಬಾಯ್ಡ್ ಅವರ AI ಇತಿಹಾಸ")
|
||||
|
||||
---
|
||||
|
||||
## ನಿಯೋಜನೆ
|
||||
|
||||
[ಟೈಮ್ಲೈನ್ ರಚಿಸಿ](assignment.md)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "eb6e4d5afd1b21a57d2b9e6d0aac3969",
|
||||
"translation_date": "2025-12-19T13:33:25+00:00",
|
||||
"source_file": "1-Introduction/2-history-of-ML/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಟೈಮ್ಲೈನ್ ರಚಿಸಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
[ಈ ರೆಪೊ](https://github.com/Digital-Humanities-Toolkit/timeline-builder) ಬಳಸಿ, ಅಲ್ಗೋರಿದಮ್ಗಳು, ಗಣಿತ, ಸಂಖ್ಯಾಶಾಸ್ತ್ರ, AI, ಅಥವಾ ML ಇತಿಹಾಸದ ಕೆಲವು ಅಂಶಗಳ ಟೈಮ್ಲೈನ್ ರಚಿಸಿ, ಅಥವಾ ಇವುಗಳ ಸಂಯೋಜನೆ. ನೀವು ಒಬ್ಬ ವ್ಯಕ್ತಿ, ಒಂದು ಕಲ್ಪನೆ, ಅಥವಾ ದೀರ್ಘಕಾಲದ ಚಿಂತನೆಯ ಮೇಲೆ ಗಮನಹರಿಸಬಹುದು. ಬಹುಮಾಧ್ಯಮ ಅಂಶಗಳನ್ನು ಸೇರಿಸುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
|
||||
|
||||
## ರೂಬ್ರಿಕ್
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | ------------------------------------------------- | --------------------------------------- | ---------------------------------------------------------------- |
|
||||
| | GitHub ಪುಟವಾಗಿ ನಿಯೋಜಿಸಲಾದ ಟೈಮ್ಲೈನ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ಕೋಡ್ ಅಪೂರ್ಣವಾಗಿದೆ ಮತ್ತು ನಿಯೋಜಿಸಲ್ಪಟ್ಟಿಲ್ಲ | ಟೈಮ್ಲೈನ್ ಅಪೂರ್ಣವಾಗಿದೆ, ಚೆನ್ನಾಗಿ ಸಂಶೋಧಿಸಲ್ಪಟ್ಟಿಲ್ಲ ಮತ್ತು ನಿಯೋಜಿಸಲ್ಪಟ್ಟಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "dbda60e7b1fe5f18974e7858eff0004e",
|
||||
"translation_date": "2025-12-19T13:43:57+00:00",
|
||||
"source_file": "1-Introduction/3-fairness/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಜವಾಬ್ದಾರಿಯುತ AI ಟೂಲ್ಬಾಕ್ಸ್ ಅನ್ನು ಅನ್ವೇಷಿಸಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ ನೀವು ಜವಾಬ್ದಾರಿಯುತ AI ಟೂಲ್ಬಾಕ್ಸ್ ಬಗ್ಗೆ ತಿಳಿದುಕೊಂಡಿದ್ದೀರಿ, ಇದು "ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳಿಗೆ AI ವ್ಯವಸ್ಥೆಗಳನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಮತ್ತು ಸುಧಾರಿಸಲು ಸಹಾಯ ಮಾಡುವ ಓಪನ್-ಸೋರ್ಸ್, ಸಮುದಾಯ ಚಾಲಿತ ಯೋಜನೆ." ಈ ಕಾರ್ಯಕ್ಕಾಗಿ, RAI ಟೂಲ್ಬಾಕ್ಸ್ನ [ನೋಟ್ಬುಕ್ಗಳ](https://github.com/microsoft/responsible-ai-toolbox/blob/main/notebooks/responsibleaidashboard/getting-started.ipynb) ಒಂದನ್ನು ಅನ್ವೇಷಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಕಂಡುಹಿಡಿತಗಳನ್ನು ಒಂದು ಪೇಪರ್ ಅಥವಾ ಪ್ರಸ್ತುತಿಯಲ್ಲಿ ವರದಿ ಮಾಡಿ.
|
||||
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡ | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | --------- | -------- | ----------------- |
|
||||
| | ಫೇರ್ಲರ್ನ್ನ ವ್ಯವಸ್ಥೆಗಳ ಬಗ್ಗೆ ಚರ್ಚಿಸುವ ಪೇಪರ್ ಅಥವಾ ಪವರ್ಪಾಯಿಂಟ್ ಪ್ರಸ್ತುತಿ, ಚಾಲನೆ ಮಾಡಿದ ನೋಟ್ಬುಕ್ ಮತ್ತು ಅದನ್ನು ಚಾಲನೆ ಮಾಡುವ ಮೂಲಕ ಪಡೆದ ನಿರ್ಣಯಗಳನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ನಿರ್ಣಯಗಳಿಲ್ಲದೆ ಪೇಪರ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ಯಾವುದೇ ಪೇಪರ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,134 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "9d91f3af3758fdd4569fb410575995ef",
|
||||
"translation_date": "2025-12-19T13:37:50+00:00",
|
||||
"source_file": "1-Introduction/4-techniques-of-ML/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಯಂತ್ರ ಅಧ್ಯಯನ ತಂತ್ರಗಳು
|
||||
|
||||
ಯಂತ್ರ ಅಧ್ಯಯನ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸುವುದು, ಬಳಸುವುದು ಮತ್ತು ನಿರ್ವಹಿಸುವ ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ಅವು ಬಳಸುವ ಡೇಟಾ ಅನೇಕ ಇತರ ಅಭಿವೃದ್ಧಿ ಕಾರ್ಯಪ್ರವಾಹಗಳಿಂದ ಬಹಳ ವಿಭಿನ್ನ ಪ್ರಕ್ರಿಯೆಯಾಗಿದೆ. ಈ ಪಾಠದಲ್ಲಿ, ನಾವು ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸ್ಪಷ್ಟಪಡಿಸಿ, ನೀವು ತಿಳಿದುಕೊಳ್ಳಬೇಕಾದ ಪ್ರಮುಖ ತಂತ್ರಗಳನ್ನು ವಿವರಿಸುವೆವು. ನೀವು:
|
||||
|
||||
- ಯಂತ್ರ ಅಧ್ಯಯನದ ಅಡಿಯಲ್ಲಿ ಇರುವ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ಉನ್ನತ ಮಟ್ಟದಲ್ಲಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತೀರಿ.
|
||||
- 'ಮಾದರಿಗಳು', 'ಭವಿಷ್ಯವಾಣಿ', ಮತ್ತು 'ತರಬೇತಿ ಡೇಟಾ' ಎಂಬ ಮೂಲಭೂತ ಸಂಪ್ರದಾಯಗಳನ್ನು ಅನ್ವೇಷಿಸುತ್ತೀರಿ.
|
||||
|
||||
## [ಪೂರ್ವ-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
[](https://youtu.be/4NGM0U2ZSHU "ML for beginners - Techniques of Machine Learning")
|
||||
|
||||
> 🎥 ಈ ಪಾಠವನ್ನು ಕೆಲಸಮಾಡುವ ಸಣ್ಣ ವೀಡಿಯೊಗಾಗಿ ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.
|
||||
|
||||
## ಪರಿಚಯ
|
||||
|
||||
ಉನ್ನತ ಮಟ್ಟದಲ್ಲಿ, ಯಂತ್ರ ಅಧ್ಯಯನ (ML) ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ರಚಿಸುವ ಕಲೆ ಹಲವಾರು ಹಂತಗಳಿಂದ ಕೂಡಿದೆ:
|
||||
|
||||
1. **ಪ್ರಶ್ನೆಯನ್ನು ನಿರ್ಧರಿಸಿ**. ಬಹುತೇಕ ML ಪ್ರಕ್ರಿಯೆಗಳು ಸರಳ ಶರತಿನ ಪ್ರೋಗ್ರಾಮ್ ಅಥವಾ ನಿಯಮಾಧಾರಿತ ಎಂಜಿನ್ ಮೂಲಕ ಉತ್ತರಿಸದ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುವುದರಿಂದ ಪ್ರಾರಂಭವಾಗುತ್ತವೆ. ಈ ಪ್ರಶ್ನೆಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಡೇಟಾ ಸಂಗ್ರಹದ ಆಧಾರದ ಮೇಲೆ ಭವಿಷ್ಯವಾಣಿಗಳ ಸುತ್ತಲೂ ಇರುತ್ತವೆ.
|
||||
2. **ಡೇಟಾ ಸಂಗ್ರಹಿಸಿ ಮತ್ತು ಸಿದ್ಧಪಡಿಸಿ**. ನಿಮ್ಮ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರಿಸಲು, ನಿಮಗೆ ಡೇಟಾ ಬೇಕಾಗುತ್ತದೆ. ನಿಮ್ಮ ಡೇಟಾದ ಗುಣಮಟ್ಟ ಮತ್ತು ಕೆಲವೊಮ್ಮೆ ಪ್ರಮಾಣವು ನಿಮ್ಮ ಪ್ರಾಥಮಿಕ ಪ್ರಶ್ನೆಗೆ ನೀವು ಎಷ್ಟು ಚೆನ್ನಾಗಿ ಉತ್ತರಿಸಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸುವುದು ಈ ಹಂತದ ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ಈ ಹಂತದಲ್ಲಿ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಲು ತರಬೇತಿ ಮತ್ತು ಪರೀಕ್ಷಾ ಗುಂಪುಗಳಾಗಿ ಡೇಟಾವನ್ನು ವಿಭಜಿಸುವುದೂ ಸೇರಿದೆ.
|
||||
3. **ತರಬೇತಿ ವಿಧಾನವನ್ನು ಆಯ್ಕೆಮಾಡಿ**. ನಿಮ್ಮ ಪ್ರಶ್ನೆ ಮತ್ತು ಡೇಟಾದ ಸ್ವಭಾವದ ಆಧಾರದ ಮೇಲೆ, ನೀವು ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಉತ್ತಮವಾಗಿ ಪ್ರತಿಬಿಂಬಿಸುವ ಮತ್ತು ಅದಕ್ಕೆ ಸರಿಯಾದ ಭವಿಷ್ಯವಾಣಿಗಳನ್ನು ಮಾಡಲು ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಲು ಹೇಗೆ ತರಬೇತಿಮಾಡಬೇಕೆಂದು ಆಯ್ಕೆಮಾಡಬೇಕು. ಇದು ನಿಮ್ಮ ML ಪ್ರಕ್ರಿಯೆಯ ಭಾಗವಾಗಿದ್ದು, ವಿಶೇಷ ಪರಿಣತಿ ಮತ್ತು ಬಹುಶಃ ಸಾಕಷ್ಟು ಪ್ರಯೋಗಗಳನ್ನು ಅಗತ್ಯವಿರುತ್ತದೆ.
|
||||
4. **ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಿ**. ನಿಮ್ಮ ತರಬೇತಿ ಡೇಟಾವನ್ನು ಬಳಸಿಕೊಂಡು, ನೀವು ವಿವಿಧ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಬಳಸಿ ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಿ ಡೇಟಾದಲ್ಲಿನ ಮಾದರಿಗಳನ್ನು ಗುರುತಿಸುವಂತೆ ಮಾಡುತ್ತೀರಿ. ಮಾದರಿ ಒಳಗಿನ ತೂಕಗಳನ್ನು ಬಳಸಬಹುದು, ಅವುಗಳನ್ನು ಹೊಂದಿಸಿ ಡೇಟಾದ ಕೆಲವು ಭಾಗಗಳನ್ನು ಪ್ರಾಧಾನ್ಯತೆ ನೀಡಲು ಉತ್ತಮ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಲು.
|
||||
5. **ಮಾದರಿಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ**. ನೀವು ಸಂಗ್ರಹಿಸಿದ ಡೇಟಾದಿಂದ ಮೊದಲೇ ನೋಡದ ಡೇಟಾ (ನಿಮ್ಮ ಪರೀಕ್ಷಾ ಡೇಟಾ) ಬಳಸಿ ಮಾದರಿ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ ಎಂದು ನೋಡುತ್ತೀರಿ.
|
||||
6. **ಪ್ಯಾರಾಮೀಟರ್ ಟ್ಯೂನಿಂಗ್**. ನಿಮ್ಮ ಮಾದರಿಯ ಕಾರ್ಯಕ್ಷಮತೆಯ ಆಧಾರದ ಮೇಲೆ, ನೀವು ವಿವಿಧ ಪ್ಯಾರಾಮೀಟರ್ಗಳು ಅಥವಾ ಅಲ್ಗಾರಿದಮ್ಗಳ ವರ್ತನೆಯನ್ನು ನಿಯಂತ್ರಿಸುವ ಚರಗಳನ್ನು ಬಳಸಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮರುಕಳಿಸಬಹುದು.
|
||||
7. **ಭವಿಷ್ಯವಾಣಿ ಮಾಡಿ**. ಹೊಸ ಇನ್ಪುಟ್ಗಳನ್ನು ಬಳಸಿ ನಿಮ್ಮ ಮಾದರಿಯ ನಿಖರತೆಯನ್ನು ಪರೀಕ್ಷಿಸಿ.
|
||||
|
||||
## ಯಾವ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳಬೇಕು
|
||||
|
||||
ಕಂಪ್ಯೂಟರ್ಗಳು ಡೇಟಾದಲ್ಲಿನ ಗುಪ್ತ ಮಾದರಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವಲ್ಲಿ ವಿಶೇಷವಾಗಿ ನಿಪುಣರಾಗಿವೆ. ಈ ಉಪಯೋಗವು ನಿರ್ದಿಷ್ಟ ಕ್ಷೇತ್ರದ ಬಗ್ಗೆ ಪ್ರಶ್ನೆಗಳಿರುವ ಸಂಶೋಧಕರಿಗೆ ಬಹಳ ಸಹಾಯಕವಾಗಿದೆ, ಅವುಗಳನ್ನು ಸರಳ ನಿಯಮಾಧಾರಿತ ಎಂಜಿನ್ ರಚಿಸುವ ಮೂಲಕ ಸುಲಭವಾಗಿ ಉತ್ತರಿಸಲಾಗುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಅಕ್ಟ್ಯೂರಿಯಲ್ ಕಾರ್ಯದಲ್ಲಿ, ಡೇಟಾ ವಿಜ್ಞಾನಿ ಧೂಮಪಾನ ಮಾಡುವವರ ಮತ್ತು ಧೂಮಪಾನ ಮಾಡದವರ ಮರಣಾಂಶದ ಬಗ್ಗೆ ಕೈಯಿಂದ ರಚಿಸಿದ ನಿಯಮಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು.
|
||||
|
||||
ಆದರೆ, ಅನೇಕ ಇತರ ಚರಗಳನ್ನು ಸಮೀಕರಣಕ್ಕೆ ಸೇರಿಸಿದಾಗ, ಭೂತಕಾಲದ ಆರೋಗ್ಯ ಇತಿಹಾಸದ ಆಧಾರದ ಮೇಲೆ ಭವಿಷ್ಯದ ಮರಣಾಂಶ ದರಗಳನ್ನು ಭವಿಷ್ಯವಾಣಿ ಮಾಡಲು ML ಮಾದರಿ ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಬಹುದು. ಇನ್ನೊಂದು ಸಂತೋಷದ ಉದಾಹರಣೆ ಎಂದರೆ, ಲ್ಯಾಟಿಟ್ಯೂಡ್, ಲಾಂಗಿಟ್ಯೂಡ್, ಹವಾಮಾನ ಬದಲಾವಣೆ, ಸಮುದ್ರದ ಸಮೀಪತೆ, ಜೆಟ್ ಸ್ಟ್ರೀಮ್ ಮಾದರಿಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು ಡೇಟಾ ಆಧಾರದ ಮೇಲೆ ನಿರ್ದಿಷ್ಟ ಸ್ಥಳದಲ್ಲಿ ಏಪ್ರಿಲ್ ತಿಂಗಳ ಹವಾಮಾನ ಭವಿಷ್ಯವಾಣಿಗಳನ್ನು ಮಾಡುವುದು.
|
||||
|
||||
✅ ಈ [ಸ್ಲೈಡ್ ಡೆಕ್](https://www2.cisl.ucar.edu/sites/default/files/2021-10/0900%20June%2024%20Haupt_0.pdf) ಹವಾಮಾನ ಮಾದರಿಗಳ ಮೇಲೆ ML ಬಳಕೆಯ ಐತಿಹಾಸಿಕ ದೃಷ್ಟಿಕೋನವನ್ನು ನೀಡುತ್ತದೆ.
|
||||
|
||||
## ನಿರ್ಮಾಣಕ್ಕೂ ಮುಂಚಿನ ಕಾರ್ಯಗಳು
|
||||
|
||||
ನಿಮ್ಮ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಲು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ನೀವು ಪೂರ್ಣಗೊಳಿಸಬೇಕಾದ ಹಲವಾರು ಕಾರ್ಯಗಳಿವೆ. ನಿಮ್ಮ ಪ್ರಶ್ನೆಯನ್ನು ಪರೀಕ್ಷಿಸಲು ಮತ್ತು ಮಾದರಿಯ ಭವಿಷ್ಯವಾಣಿಗಳ ಆಧಾರದ ಮೇಲೆ ಊಹೆಯನ್ನು ರೂಪಿಸಲು, ನೀವು ಹಲವಾರು ಅಂಶಗಳನ್ನು ಗುರುತಿಸಿ ಸಂರಚಿಸಬೇಕಾಗುತ್ತದೆ.
|
||||
|
||||
### ಡೇಟಾ
|
||||
|
||||
ನಿಮ್ಮ ಪ್ರಶ್ನೆಗೆ ಯಾವುದೇ ರೀತಿಯ ಖಚಿತತೆಯಿಂದ ಉತ್ತರಿಸಲು, ನಿಮಗೆ ಸರಿಯಾದ ಪ್ರಕಾರದ ಸಾಕಷ್ಟು ಡೇಟಾ ಬೇಕಾಗುತ್ತದೆ. ಈ ಸಮಯದಲ್ಲಿ ನೀವು ಮಾಡಬೇಕಾದ ಎರಡು ಕಾರ್ಯಗಳಿವೆ:
|
||||
|
||||
- **ಡೇಟಾ ಸಂಗ್ರಹಿಸಿ**. ಡೇಟಾ ವಿಶ್ಲೇಷಣೆಯಲ್ಲಿ ನ್ಯಾಯತೆಯ ಬಗ್ಗೆ ಹಿಂದಿನ ಪಾಠವನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಂಡು, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಜಾಗರೂಕತೆಯಿಂದ ಸಂಗ್ರಹಿಸಿ. ಈ ಡೇಟಾದ ಮೂಲಗಳು, ಅದರಲ್ಲಿರುವ ಯಾವುದೇ ಅಂತರಂಗಪೂರ್ವಾಗ್ರಹಗಳು ಮತ್ತು ಅದರ ಮೂಲವನ್ನು ದಾಖಲಿಸಿ.
|
||||
- **ಡೇಟಾ ಸಿದ್ಧಪಡಿಸಿ**. ಡೇಟಾ ಸಿದ್ಧಪಡಿಸುವ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಹಲವಾರು ಹಂತಗಳಿವೆ. ನೀವು ವಿಭಿನ್ನ ಮೂಲಗಳಿಂದ ಬಂದಿದ್ದರೆ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಿ ಸಾಮಾನ್ಯೀಕರಿಸಬೇಕಾಗಬಹುದು. ನೀವು ಡೇಟಾದ ಗುಣಮಟ್ಟ ಮತ್ತು ಪ್ರಮಾಣವನ್ನು ಸುಧಾರಿಸಲು ವಿವಿಧ ವಿಧಾನಗಳನ್ನು ಬಳಸಬಹುದು, ಉದಾಹರಣೆಗೆ ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಸಂಖ್ಯೆಗಳಾಗಿ ಪರಿವರ್ತಿಸುವುದು ([Clustering](../../5-Clustering/1-Visualize/README.md) ನಲ್ಲಿ ಮಾಡುತ್ತೇವೆ). ನೀವು ಮೂಲದ ಆಧಾರದ ಮೇಲೆ ಹೊಸ ಡೇಟಾವನ್ನು ರಚಿಸಬಹುದು ([Classification](../../4-Classification/1-Introduction/README.md) ನಲ್ಲಿ ಮಾಡುತ್ತೇವೆ). ನೀವು ಡೇಟಾವನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ ಸಂಪಾದಿಸಬಹುದು ([Web App](../../3-Web-App/README.md) ಪಾಠದ ಮುಂಚೆ ಮಾಡುತ್ತೇವೆ). ಕೊನೆಗೆ, ನೀವು ತರಬೇತಿ ತಂತ್ರಗಳನ್ನು ಅವಲಂಬಿಸಿ ಅದನ್ನು ಯಾದೃಚ್ಛಿಕಗೊಳಿಸಿ ಮಿಶ್ರಣ ಮಾಡಬೇಕಾಗಬಹುದು.
|
||||
|
||||
✅ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಿ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿದ ನಂತರ, ಅದರ ಆಕಾರವು ನಿಮ್ಮ ಉದ್ದೇಶಿತ ಪ್ರಶ್ನೆಯನ್ನು ಪರಿಹರಿಸಲು ಅನುಕೂಲಕರವಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ. ನೀವು ನೀಡಿದ ಕಾರ್ಯದಲ್ಲಿ ಡೇಟಾ ಚೆನ್ನಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದಿರಬಹುದು, ನಾವು [Clustering](../../5-Clustering/1-Visualize/README.md) ಪಾಠಗಳಲ್ಲಿ ಕಂಡುಕೊಳ್ಳುವಂತೆ!
|
||||
|
||||
### ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಗುರಿ
|
||||
|
||||
[ವೈಶಿಷ್ಟ್ಯ](https://www.datasciencecentral.com/profiles/blogs/an-introduction-to-variable-and-feature-selection) ಎಂದರೆ ನಿಮ್ಮ ಡೇಟಾದ ಮಾಪನೀಯ ಗುಣಲಕ್ಷಣ. ಅನೇಕ ಡೇಟಾಸೆಟ್ಗಳಲ್ಲಿ ಇದು 'ದಿನಾಂಕ', 'ಗಾತ್ರ' ಅಥವಾ 'ಬಣ್ಣ' ಎಂಬ ಕಾಲಮ್ ಶೀರ್ಷಿಕೆಯಾಗಿ ವ್ಯಕ್ತವಾಗುತ್ತದೆ. ನಿಮ್ಮ ವೈಶಿಷ್ಟ್ಯ ಚರ, ಸಾಮಾನ್ಯವಾಗಿ ಕೋಡ್ನಲ್ಲಿ `X` ಎಂದು ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ, ಇದು ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಲು ಬಳಸುವ ಇನ್ಪುಟ್ ಚರವನ್ನು ಸೂಚಿಸುತ್ತದೆ.
|
||||
|
||||
ಗುರಿ ಎಂದರೆ ನೀವು ಭವಿಷ್ಯವಾಣಿ ಮಾಡಲು ಯತ್ನಿಸುತ್ತಿರುವ ವಸ್ತು. ಗುರಿ ಸಾಮಾನ್ಯವಾಗಿ ಕೋಡ್ನಲ್ಲಿ `y` ಎಂದು ಪ್ರತಿನಿಧಿಸಲಾಗುತ್ತದೆ, ಇದು ನಿಮ್ಮ ಡೇಟಾದಿಂದ ಕೇಳುತ್ತಿರುವ ಪ್ರಶ್ನೆಗೆ ಉತ್ತರವನ್ನು ಸೂಚಿಸುತ್ತದೆ: ಡಿಸೆಂಬರ್ನಲ್ಲಿ, ಯಾವ **ಬಣ್ಣದ** ಕಂಬಳಿಗಳು ಅತಿ ಕಡಿಮೆ ಬೆಲೆಯಿರುತ್ತವೆ? ಸಾನ್ ಫ್ರಾನ್ಸಿಸ್ಕೋದಲ್ಲಿ, ಯಾವ ನೆರೆಹೊರೆಯು ಉತ್ತಮ ರಿಯಲ್ ಎಸ್ಟೇಟ್ **ಬೆಲೆ** ಹೊಂದಿರುತ್ತದೆ? ಕೆಲವೊಮ್ಮೆ ಗುರಿಯನ್ನು ಲೇಬಲ್ ಗುಣಲಕ್ಷಣ ಎಂದು ಕೂಡ ಕರೆಯುತ್ತಾರೆ.
|
||||
|
||||
### ನಿಮ್ಮ ವೈಶಿಷ್ಟ್ಯ ಚರವನ್ನು ಆಯ್ಕೆಮಾಡುವುದು
|
||||
|
||||
🎓 **ವೈಶಿಷ್ಟ್ಯ ಆಯ್ಕೆ ಮತ್ತು ವೈಶಿಷ್ಟ್ಯ ಹೊರತೆಗೆಯುವಿಕೆ** ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸುವಾಗ ಯಾವ ಚರವನ್ನು ಆಯ್ಕೆಮಾಡಬೇಕು ಎಂದು ನೀವು ಹೇಗೆ ತಿಳಿದುಕೊಳ್ಳುತ್ತೀರಿ? ನೀವು ಬಹುಶಃ ಅತ್ಯುತ್ತಮ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮಾದರಿಗಾಗಿ ಸರಿಯಾದ ಚರಗಳನ್ನು ಆಯ್ಕೆಮಾಡಲು ವೈಶಿಷ್ಟ್ಯ ಆಯ್ಕೆ ಅಥವಾ ವೈಶಿಷ್ಟ್ಯ ಹೊರತೆಗೆಯುವಿಕೆ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅನುಸರಿಸುತ್ತೀರಿ. ಅವು ಒಂದೇ ಅಲ್ಲ: "ವೈಶಿಷ್ಟ್ಯ ಹೊರತೆಗೆಯುವಿಕೆ ಮೂಲ ವೈಶಿಷ್ಟ್ಯಗಳ ಕಾರ್ಯಗಳಿಂದ ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ರಚಿಸುತ್ತದೆ, ಆದರೆ ವೈಶಿಷ್ಟ್ಯ ಆಯ್ಕೆ ವೈಶಿಷ್ಟ್ಯಗಳ ಉಪಸಮೂಹವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ." ([ಮೂಲ](https://wikipedia.org/wiki/Feature_selection))
|
||||
|
||||
### ನಿಮ್ಮ ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸಿ
|
||||
|
||||
ಡೇಟಾ ವಿಜ್ಞಾನಿಯ ಉಪಕರಣಗಳ ಪ್ರಮುಖ ಅಂಶವೆಂದರೆ Seaborn ಅಥವಾ MatPlotLib ಮುಂತಾದ ಕೆಲವು ಅತ್ಯುತ್ತಮ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸಿ ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸುವ ಶಕ್ತಿ. ನಿಮ್ಮ ಡೇಟಾವನ್ನು ದೃಶ್ಯರೂಪದಲ್ಲಿ ಪ್ರತಿನಿಧಿಸುವುದು ನೀವು ಬಳಸಬಹುದಾದ ಗುಪ್ತ ಸಂಬಂಧಗಳನ್ನು ಅನಾವರಣಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದು. ನಿಮ್ಮ ದೃಶ್ಯೀಕರಣಗಳು ಅಸಮತೋಲನ ಅಥವಾ ಅಸಮತೋಲನ ಡೇಟಾವನ್ನು ಅನಾವರಣಗೊಳಿಸಲು ಸಹ ಸಹಾಯ ಮಾಡಬಹುದು ([Classification](../../4-Classification/2-Classifiers-1/README.md) ನಲ್ಲಿ ನಾವು ಕಂಡುಕೊಳ್ಳುವಂತೆ).
|
||||
|
||||
### ನಿಮ್ಮ ಡೇಟಾಸೆಟ್ ಅನ್ನು ವಿಭಜಿಸಿ
|
||||
|
||||
ತರಬೇತಿಗೆ ಮುಂಚೆ, ನೀವು ನಿಮ್ಮ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಅಸಮಾನ ಗಾತ್ರದ ಎರಡು ಅಥವಾ ಹೆಚ್ಚು ಭಾಗಗಳಾಗಿ ವಿಭಜಿಸಬೇಕು, ಆದರೆ ಅವು ಡೇಟಾವನ್ನು ಚೆನ್ನಾಗಿ ಪ್ರತಿನಿಧಿಸಬೇಕು.
|
||||
|
||||
- **ತರಬೇತಿ**. ಡೇಟಾಸೆಟ್ನ ಈ ಭಾಗವನ್ನು ನಿಮ್ಮ ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಲು ಹೊಂದಿಸಲಾಗುತ್ತದೆ. ಈ ಸೆಟ್ ಮೂಲ ಡೇಟಾಸೆಟ್ನ ಬಹುಮತವನ್ನು ಹೊಂದಿದೆ.
|
||||
- **ಪರೀಕ್ಷೆ**. ಪರೀಕ್ಷಾ ಡೇಟಾಸೆಟ್ ಸ್ವತಂತ್ರ ಡೇಟಾ ಗುಂಪಾಗಿದೆ, ಸಾಮಾನ್ಯವಾಗಿ ಮೂಲ ಡೇಟಾದಿಂದ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ನೀವು ನಿರ್ಮಿಸಿದ ಮಾದರಿಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ದೃಢೀಕರಿಸಲು ಬಳಸುತ್ತೀರಿ.
|
||||
- **ಮಾನ್ಯತೆ**. ಮಾನ್ಯತೆ ಸೆಟ್ ಒಂದು ಸಣ್ಣ ಸ್ವತಂತ್ರ ಉದಾಹರಣೆಗಳ ಗುಂಪು, ನೀವು ಮಾದರಿಯ ಹೈಪರ್ಪ್ಯಾರಾಮೀಟರ್ಗಳು ಅಥವಾ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಸುಧಾರಿಸಲು ಬಳಸುತ್ತೀರಿ. ನಿಮ್ಮ ಡೇಟಾದ ಗಾತ್ರ ಮತ್ತು ನೀವು ಕೇಳುತ್ತಿರುವ ಪ್ರಶ್ನೆಯ ಆಧಾರದ ಮೇಲೆ, ನೀವು ಈ ಮೂರನೇ ಸೆಟ್ ಅನ್ನು ನಿರ್ಮಿಸುವ ಅಗತ್ಯವಿಲ್ಲದಿರಬಹುದು ([Time Series Forecasting](../../7-TimeSeries/1-Introduction/README.md) ನಲ್ಲಿ ನಾವು ಗಮನಿಸುತ್ತೇವೆ).
|
||||
|
||||
## ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸುವುದು
|
||||
|
||||
ನಿಮ್ಮ ತರಬೇತಿ ಡೇಟಾವನ್ನು ಬಳಸಿ, ನಿಮ್ಮ ಗುರಿ ವಿವಿಧ ಅಲ್ಗಾರಿದಮ್ಗಳನ್ನು ಬಳಸಿ ಮಾದರಿಯನ್ನು **ತರಬೇತಿಮಾಡುವುದು** ಅಥವಾ ನಿಮ್ಮ ಡೇಟಾದ ಸಾಂಖ್ಯಿಕ ಪ್ರತಿನಿಧಾನವನ್ನು ನಿರ್ಮಿಸುವುದು. ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡುವುದು ಅದನ್ನು ಡೇಟಾಗೆ ಪರಿಚಯಿಸುವುದು ಮತ್ತು ಅದು ಕಂಡುಹಿಡಿದ ಮಾದರಿಗಳನ್ನು ಊಹಿಸಲು, ಪರಿಶೀಲಿಸಲು ಮತ್ತು ಅಂಗೀಕರಿಸಲು ಅವಕಾಶ ನೀಡುತ್ತದೆ.
|
||||
|
||||
### ತರಬೇತಿ ವಿಧಾನವನ್ನು ನಿರ್ಧರಿಸಿ
|
||||
|
||||
ನಿಮ್ಮ ಪ್ರಶ್ನೆ ಮತ್ತು ಡೇಟಾದ ಸ್ವಭಾವದ ಆಧಾರದ ಮೇಲೆ, ನೀವು ಅದನ್ನು ತರಬೇತಿಮಾಡಲು ವಿಧಾನವನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತೀರಿ. [Scikit-learn ನ ಡಾಕ್ಯುಮೆಂಟೇಶನ್](https://scikit-learn.org/stable/user_guide.html) ಅನ್ನು ಅನುಸರಿಸಿ - ನಾವು ಈ ಕೋರ್ಸ್ನಲ್ಲಿ ಬಳಸುತ್ತೇವೆ - ನೀವು ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಲು ಹಲವಾರು ವಿಧಾನಗಳನ್ನು ಅನ್ವೇಷಿಸಬಹುದು. ನಿಮ್ಮ ಅನುಭವದ ಆಧಾರದ ಮೇಲೆ, ನೀವು ಅತ್ಯುತ್ತಮ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಲು ಹಲವು ವಿಭಿನ್ನ ವಿಧಾನಗಳನ್ನು ಪ್ರಯತ್ನಿಸಬೇಕಾಗಬಹುದು. ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳು ಮಾದರಿಯ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಅಪ್ರತ്യക്ഷ ಡೇಟಾವನ್ನು ನೀಡುವ ಮೂಲಕ, ನಿಖರತೆ, ಪೂರ್ವಾಗ್ರಹ ಮತ್ತು ಇತರ ಗುಣಮಟ್ಟ ಕುಗ್ಗಿಸುವ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ, ಮತ್ತು ಕಾರ್ಯಕ್ಕೆ ಸೂಕ್ತವಾದ ತರಬೇತಿ ವಿಧಾನವನ್ನು ಆಯ್ಕೆಮಾಡುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನೀವು ಅನುಭವಿಸುವಿರಿ.
|
||||
|
||||
### ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಿ
|
||||
|
||||
ನಿಮ್ಮ ತರಬೇತಿ ಡೇಟಾ ಸಿದ್ಧವಾಗಿರುವಾಗ, ನೀವು ಅದನ್ನು 'ಫಿಟ್' ಮಾಡಿ ಮಾದರಿಯನ್ನು ರಚಿಸಲು ಸಿದ್ಧರಾಗಿದ್ದೀರಿ. ಬಹುಶಃ ನೀವು ಹಲವಾರು ML ಗ್ರಂಥಾಲಯಗಳಲ್ಲಿ 'model.fit' ಎಂಬ ಕೋಡ್ ಅನ್ನು ಕಾಣುತ್ತೀರಿ - ಈ ಸಮಯದಲ್ಲಿ ನೀವು ನಿಮ್ಮ ವೈಶಿಷ್ಟ್ಯ ಚರವನ್ನು ಮೌಲ್ಯಗಳ ಸರಣಿಯಾಗಿ (ಸಾಮಾನ್ಯವಾಗಿ 'X') ಮತ್ತು ಗುರಿ ಚರವನ್ನು (ಸಾಮಾನ್ಯವಾಗಿ 'y') ಕಳುಹಿಸುತ್ತೀರಿ.
|
||||
|
||||
### ಮಾದರಿಯನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ
|
||||
|
||||
ತರಬೇತಿ ಪ್ರಕ್ರಿಯೆ ಪೂರ್ಣಗೊಂಡ ನಂತರ (ದೊಡ್ಡ ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಲು ಹಲವಾರು ಪುನರಾವೃತ್ತಿಗಳು ಅಥವಾ 'ಎಪೋಕ್ಸ್' ಬೇಕಾಗಬಹುದು), ನೀವು ಪರೀಕ್ಷಾ ಡೇಟಾವನ್ನು ಬಳಸಿ ಮಾದರಿಯ ಗುಣಮಟ್ಟವನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಬಹುದು. ಈ ಡೇಟಾ ಮೂಲ ಡೇಟಾದ ಉಪಸಮೂಹವಾಗಿದ್ದು, ಮಾದರಿ ಮೊದಲು ವಿಶ್ಲೇಷಿಸದ ಡೇಟಾಗೆ ಸೇರಿದೆ. ನೀವು ನಿಮ್ಮ ಮಾದರಿಯ ಗುಣಮಟ್ಟದ ಬಗ್ಗೆ ಮೆಟ್ರಿಕ್ಗಳ ಟೇಬಲ್ ಅನ್ನು ಮುದ್ರಿಸಬಹುದು.
|
||||
|
||||
🎓 **ಮಾದರಿ ಫಿಟಿಂಗ್**
|
||||
|
||||
ಯಂತ್ರ ಅಧ್ಯಯನದ ಸಂದರ್ಭದಲ್ಲಿ, ಮಾದರಿ ಫಿಟಿಂಗ್ ಎಂದರೆ ಮಾದರಿಯ ಅಡಿಪಾಯ ಕಾರ್ಯವು ಪರಿಚಿತವಲ್ಲದ ಡೇಟಾವನ್ನು ವಿಶ್ಲೇಷಿಸಲು ಯತ್ನಿಸುವಾಗ ಅದರ ನಿಖರತೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ.
|
||||
|
||||
🎓 **ಅಡಿಗೊಳಿಸುವಿಕೆ** ಮತ್ತು **ಅತಿಗೊಳಿಸುವಿಕೆ** ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳು, ಅವು ಮಾದರಿಯ ಗುಣಮಟ್ಟವನ್ನು ಕುಗ್ಗಿಸುತ್ತವೆ, ಏಕೆಂದರೆ ಮಾದರಿ ಸರಿಯಾಗಿ ಹೊಂದದಿರುವುದು ಅಥವಾ ತುಂಬಾ ಚೆನ್ನಾಗಿ ಹೊಂದಿರುವುದು. ಇದರಿಂದ ಮಾದರಿ ತರಬೇತಿ ಡೇಟಾದೊಂದಿಗೆ ತುಂಬಾ ಸಮೀಪವಾಗಿ ಅಥವಾ ತುಂಬಾ ದೂರವಾಗಿ ಭವಿಷ್ಯವಾಣಿ ಮಾಡುತ್ತದೆ. ಅತಿಗೊಳಿಸಿದ ಮಾದರಿ ತರಬೇತಿ ಡೇಟಾದ ವಿವರಗಳು ಮತ್ತು ಶಬ್ದವನ್ನು ತುಂಬಾ ಚೆನ್ನಾಗಿ ಕಲಿತಿರುವುದರಿಂದ ಅದನ್ನು ತುಂಬಾ ಚೆನ್ನಾಗಿ ಭವಿಷ್ಯವಾಣಿ ಮಾಡುತ್ತದೆ. ಅಡಿಗೊಳಿಸಿದ ಮಾದರಿ ನಿಖರವಿಲ್ಲ, ಏಕೆಂದರೆ ಅದು ತನ್ನ ತರಬೇತಿ ಡೇಟಾವನ್ನು ಅಥವಾ ಇನ್ನೂ 'ನೋಡದ' ಡೇಟಾವನ್ನು ಸರಿಯಾಗಿ ವಿಶ್ಲೇಷಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ.
|
||||
|
||||

|
||||
> ಇನ್ಫೋಗ್ರಾಫಿಕ್ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಅವರಿಂದ
|
||||
|
||||
## ಪ್ಯಾರಾಮೀಟರ್ ಟ್ಯೂನಿಂಗ್
|
||||
|
||||
ನಿಮ್ಮ ಪ್ರಾಥಮಿಕ ತರಬೇತಿ ಪೂರ್ಣಗೊಂಡ ನಂತರ, ಮಾದರಿಯ ಗುಣಮಟ್ಟವನ್ನು ಗಮನಿಸಿ ಮತ್ತು ಅದರ 'ಹೈಪರ್ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು' ಸುಧಾರಿಸಲು ಪರಿಗಣಿಸಿ. ಪ್ರಕ್ರಿಯೆಯ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ [ಡಾಕ್ಯುಮೆಂಟೇಶನ್](https://docs.microsoft.com/en-us/azure/machine-learning/how-to-tune-hyperparameters?WT.mc_id=academic-77952-leestott) ಓದಿ.
|
||||
|
||||
## ಭವಿಷ್ಯವಾಣಿ
|
||||
|
||||
ಈ ಸಮಯದಲ್ಲಿ ನೀವು ಸಂಪೂರ್ಣ ಹೊಸ ಡೇಟಾವನ್ನು ಬಳಸಿ ನಿಮ್ಮ ಮಾದರಿಯ ನಿಖರತೆಯನ್ನು ಪರೀಕ್ಷಿಸಬಹುದು. 'ಅಪ್ಲೈಡ್' ML ಪರಿಸರದಲ್ಲಿ, ನೀವು ಮಾದರಿಯನ್ನು ಉತ್ಪಾದನೆಯಲ್ಲಿ ಬಳಸಲು ವೆಬ್ ಆಸ್ತಿ ನಿರ್ಮಿಸುತ್ತಿದ್ದರೆ, ಈ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ಬಳಕೆದಾರ ಇನ್ಪುಟ್ (ಉದಾಹರಣೆಗೆ ಬಟನ್ ಒತ್ತುವುದು) ಸಂಗ್ರಹಿಸಿ, ಚರವನ್ನು ಸೆಟ್ ಮಾಡಿ ಮತ್ತು ಮಾದರಿಗೆ ಇನ್ಫರೆನ್ಸ್ ಅಥವಾ ಮೌಲ್ಯಮಾಪನಕ್ಕಾಗಿ ಕಳುಹಿಸುವುದು ಸೇರಬಹುದು.
|
||||
|
||||
ಈ ಪಾಠಗಳಲ್ಲಿ, ನೀವು ಈ ಹಂತಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸಿದ್ಧಪಡಿಸುವುದು, ನಿರ್ಮಿಸುವುದು, ಪರೀಕ್ಷಿಸುವುದು, ಮೌಲ್ಯಮಾಪನ ಮಾಡುವುದನ್ನು ಮತ್ತು ಭವಿಷ್ಯವಾಣಿ ಮಾಡುವುದನ್ನು ಕಂಡುಕೊಳ್ಳುತ್ತೀರಿ - ಡೇಟಾ ವಿಜ್ಞಾನಿಯ ಎಲ್ಲಾ ಚಲನೆಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು, ನೀವು 'ಫುಲ್ ಸ್ಟಾಕ್' ML ಎಂಜಿನಿಯರ್ ಆಗಲು ನಿಮ್ಮ ಪ್ರಯಾಣದಲ್ಲಿ ಮುಂದುವರಿಯುವಂತೆ.
|
||||
|
||||
---
|
||||
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
ML ಅಭ್ಯಾಸಗಾರರ ಹಂತಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸುವ ಫ್ಲೋ ಚಾರ್ಟ್ ರಚಿಸಿ. ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ ನೀವು ಈಗ ಎಲ್ಲಿದ್ದೀರಿ ಎಂದು ನೀವು ಎಲ್ಲಿ ನೋಡುತ್ತೀರಿ? ನೀವು ಯಾವಲ್ಲಿ ಕಷ್ಟವನ್ನು ಎದುರಿಸುವಿರಿ ಎಂದು ಭವಿಷ್ಯವಾಣಿ ಮಾಡುತ್ತೀರಿ? ನಿಮಗೆ ಯಾವುದು ಸುಲಭವಾಗುತ್ತದೆ?
|
||||
|
||||
## [ಪೋಸ್ಟ್-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
## ವಿಮರ್ಶೆ ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನ
|
||||
|
||||
ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳು ತಮ್ಮ ದೈನಂದಿನ ಕೆಲಸವನ್ನು ಚರ್ಚಿಸುವ ಸಂದರ್ಶನಗಳನ್ನು ಆನ್ಲೈನ್ನಲ್ಲಿ ಹುಡುಕಿ. ಇಲ್ಲಿ ಒಂದು [ಇದು](https://www.youtube.com/watch?v=Z3IjgbbCEfs) ಇದೆ.
|
||||
|
||||
## ನಿಯೋಜನೆ
|
||||
|
||||
[ಡೇಟಾ ವಿಜ್ಞಾನಿಯನ್ನು ಸಂದರ್ಶನ ಮಾಡಿ](assignment.md)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "70d65aeddc06170bc1aed5b27805f930",
|
||||
"translation_date": "2025-12-19T13:39:29+00:00",
|
||||
"source_file": "1-Introduction/4-techniques-of-ML/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಡೇಟಾ ಸೈನ್ಟಿಸ್ಟ್ ಅನ್ನು ಸಂದರ್ಶನ ಮಾಡಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ನಿಮ್ಮ ಕಂಪನಿಯಲ್ಲಿ, ಬಳಕೆದಾರ ಗುಂಪಿನಲ್ಲಿ, ಅಥವಾ ನಿಮ್ಮ ಸ್ನೇಹಿತರು ಅಥವಾ ಸಹ ವಿದ್ಯಾರ್ಥಿಗಳ ನಡುವೆ, ವೃತ್ತಿಪರವಾಗಿ ಡೇಟಾ ಸೈನ್ಟಿಸ್ಟ್ ಆಗಿ ಕೆಲಸ ಮಾಡುವ ಯಾರನ್ನಾದರೂ ಮಾತನಾಡಿ. ಅವರ ದೈನಂದಿನ ಕಾರ್ಯಗಳ ಬಗ್ಗೆ ಒಂದು ಚಿಕ್ಕ ಪ್ರಬಂಧ (500 ಪದಗಳು) ಬರೆಯಿರಿ. ಅವರು ವಿಶೇಷಜ್ಞರೇ, ಅಥವಾ 'ಫುಲ್ ಸ್ಟಾಕ್' ಆಗಿ ಕೆಲಸ ಮಾಡುತ್ತಾರೆಯೇ?
|
||||
|
||||
## ರೂಬ್ರಿಕ್
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------ | --------------------- |
|
||||
| | ಸರಿಯಾದ ಉದ್ದದ ಪ್ರಬಂಧ, ಮೂಲಗಳನ್ನು ಸೂಚಿಸಿ, .doc ಫೈಲ್ ಆಗಿ ಸಲ್ಲಿಸಲಾಗಿದೆ | ಪ್ರಬಂಧವು ಸರಿಯಾಗಿ ಮೂಲಗಳನ್ನು ಸೂಚಿಸದಿದ್ದರೆ ಅಥವಾ ಅಗತ್ಯ ಉದ್ದಕ್ಕಿಂತ ಕಡಿಮೆ ಇದ್ದರೆ | ಯಾವುದೇ ಪ್ರಬಂಧ ಸಲ್ಲಿಸಲಾಗಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,38 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "cf8ecc83f28e5b98051d2179eca08e08",
|
||||
"translation_date": "2025-12-19T12:57:04+00:00",
|
||||
"source_file": "1-Introduction/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕೆ ಪರಿಚಯ
|
||||
|
||||
ಪಠ್ಯಕ್ರಮದ ಈ ವಿಭಾಗದಲ್ಲಿ, ನೀವು ಯಂತ್ರ ಅಧ್ಯಯನ ಕ್ಷೇತ್ರದ ಮೂಲ ತತ್ವಗಳನ್ನು ಪರಿಚಯಿಸಿಕೊಳ್ಳುತ್ತೀರಿ, ಅದು ಏನು ಮತ್ತು ಅದರ ಇತಿಹಾಸ ಮತ್ತು ಸಂಶೋಧಕರು ಅದನ್ನು ಬಳಸುವ ತಂತ್ರಗಳನ್ನು ತಿಳಿಯುತ್ತೀರಿ. ಬನ್ನಿ, ಈ ಹೊಸ ಯಂತ್ರ ಅಧ್ಯಯನ ಲೋಕವನ್ನು ಒಟ್ಟಿಗೆ ಅನ್ವೇಷಿಸೋಣ!
|
||||
|
||||

|
||||
> ಫೋಟೋ <a href="https://unsplash.com/@bill_oxford?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">ಬಿಲ್ ಆಕ್ಸ್ಫರ್ಡ್</a> ಅವರಿಂದ <a href="https://unsplash.com/s/photos/globe?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">ಅನ್ಸ್ಪ್ಲ್ಯಾಶ್</a> ನಲ್ಲಿ
|
||||
|
||||
### ಪಾಠಗಳು
|
||||
|
||||
1. [ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕೆ ಪರಿಚಯ](1-intro-to-ML/README.md)
|
||||
1. [ಯಂತ್ರ ಅಧ್ಯಯನ ಮತ್ತು ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆಯ ಇತಿಹಾಸ](2-history-of-ML/README.md)
|
||||
1. [ನ್ಯಾಯ ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನ](3-fairness/README.md)
|
||||
1. [ಯಂತ್ರ ಅಧ್ಯಯನದ ತಂತ್ರಗಳು](4-techniques-of-ML/README.md)
|
||||
### ಕ್ರೆಡಿಟ್ಸ್
|
||||
|
||||
"ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕೆ ಪರಿಚಯ" ಅನ್ನು ♥️ ಸಹಿತ [ಮುಹಮ್ಮದ್ ಸಕಿಬ್ ಖಾನ್ ಇನಾನ್](https://twitter.com/Sakibinan), [ಓರ್ನೆಲ್ಲಾ ಅಲ್ಟುನ್ಯಾನ್](https://twitter.com/ornelladotcom) ಮತ್ತು [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಸೇರಿದಂತೆ ತಂಡದವರು ಬರೆದಿದ್ದಾರೆ
|
||||
|
||||
"ಯಂತ್ರ ಅಧ್ಯಯನದ ಇತಿಹಾಸ" ಅನ್ನು ♥️ ಸಹಿತ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಮತ್ತು [ಏಮಿ ಬಾಯ್ಡ್](https://twitter.com/AmyKateNicho) ಬರೆದಿದ್ದಾರೆ
|
||||
|
||||
"ನ್ಯಾಯ ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನ" ಅನ್ನು ♥️ ಸಹಿತ [ಟೊಮೊಮಿ ಇಮುರಾ](https://twitter.com/girliemac) ಬರೆದಿದ್ದಾರೆ
|
||||
|
||||
"ಯಂತ್ರ ಅಧ್ಯಯನದ ತಂತ್ರಗಳು" ಅನ್ನು ♥️ ಸಹಿತ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಮತ್ತು [ಕ್ರಿಸ್ ನೋರಿಂಗ್](https://twitter.com/softchris) ಬರೆದಿದ್ದಾರೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,240 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "fa81d226c71d5af7a2cade31c1c92b88",
|
||||
"translation_date": "2025-12-19T13:56:01+00:00",
|
||||
"source_file": "2-Regression/1-Tools/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ರಿಗ್ರೆಶನ್ ಮಾದರಿಗಳಿಗಾಗಿ ಪೈಥಾನ್ ಮತ್ತು ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ
|
||||
|
||||

|
||||
|
||||
> ಸ್ಕೆಚ್ನೋಟ್ನು [ಟೊಮೊಮಿ ಇಮುರು](https://www.twitter.com/girlie_mac) ರಚಿಸಿದ್ದಾರೆ
|
||||
|
||||
## [ಪೂರ್ವ-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
> ### [ಈ ಪಾಠ R ನಲ್ಲಿ ಲಭ್ಯವಿದೆ!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html)
|
||||
|
||||
## ಪರಿಚಯ
|
||||
|
||||
ಈ ನಾಲ್ಕು ಪಾಠಗಳಲ್ಲಿ, ನೀವು ರಿಗ್ರೆಶನ್ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸುವ ವಿಧಾನವನ್ನು ಕಂಡುಹಿಡಿಯುತ್ತೀರಿ. ನಾವು ಇವುಗಳ ಉದ್ದೇಶವನ್ನು ಶೀಘ್ರದಲ್ಲೇ ಚರ್ಚಿಸುವೆವು. ಆದರೆ ನೀವು ಏನನ್ನಾದರೂ ಮಾಡುವ ಮೊದಲು, ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರಾರಂಭಿಸಲು ಸರಿಯಾದ ಸಾಧನಗಳನ್ನು ಹೊಂದಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ!
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ, ನೀವು ಕಲಿಯುವಿರಿ:
|
||||
|
||||
- ಸ್ಥಳೀಯ ಯಂತ್ರ ಅಧ್ಯಯನ ಕಾರ್ಯಗಳಿಗೆ ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಸಂರಚಿಸುವುದು.
|
||||
- ಜುಪೈಟರ್ ನೋಟ್ಬುಕ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು.
|
||||
- ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ಬಳಕೆ, ಸ್ಥಾಪನೆ ಸೇರಿದಂತೆ.
|
||||
- ಕೈಯಿಂದ ಅನುಭವಿಸುವ ವ್ಯಾಯಾಮದೊಂದಿಗೆ ರೇಖೀಯ ರಿಗ್ರೆಶನ್ ಅನ್ವೇಷಣೆ.
|
||||
|
||||
## ಸ್ಥಾಪನೆಗಳು ಮತ್ತು ಸಂರಚನೆಗಳು
|
||||
|
||||
[](https://youtu.be/-DfeD2k2Kj0 "ಆರಂಭಿಕರಿಗಾಗಿ ಯಂತ್ರ ಅಧ್ಯಯನ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸಲು ನಿಮ್ಮ ಸಾಧನಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಿ")
|
||||
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ, ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕೆ ಸಂರಚಿಸುವುದರ ಕುರಿತು ಚಿಕ್ಕ ವೀಡಿಯೋವನ್ನು ನೋಡಿ.
|
||||
|
||||
1. **ಪೈಥಾನ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ**. ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ [ಪೈಥಾನ್](https://www.python.org/downloads/) ಸ್ಥಾಪಿತವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ನೀವು ಅನೇಕ ಡೇಟಾ ವಿಜ್ಞಾನ ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನ ಕಾರ್ಯಗಳಿಗೆ ಪೈಥಾನ್ ಅನ್ನು ಬಳಸುತ್ತೀರಿ. ಬಹುತೇಕ ಕಂಪ್ಯೂಟರ್ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ ಈಗಾಗಲೇ ಪೈಥಾನ್ ಸ್ಥಾಪನೆ ಇದೆ. ಕೆಲವು ಬಳಕೆದಾರರಿಗೆ ಸ್ಥಾಪನೆಯನ್ನು ಸುಲಭಗೊಳಿಸಲು ಉಪಯುಕ್ತವಾದ [ಪೈಥಾನ್ ಕೋಡಿಂಗ್ ಪ್ಯಾಕ್ಗಳು](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) ಕೂಡ ಲಭ್ಯವಿವೆ.
|
||||
|
||||
ಕೆಲವು ಪೈಥಾನ್ ಬಳಕೆಗಳಿಗೆ, ಒಂದು ಸಾಫ್ಟ್ವೇರ್ ಆವೃತ್ತಿಯ ಅಗತ್ಯವಿರಬಹುದು, ಇತರರಿಗೆ ಬೇರೆ ಆವೃತ್ತಿಯ ಅಗತ್ಯವಿರಬಹುದು. ಈ ಕಾರಣಕ್ಕಾಗಿ, [ವರ್ಚುವಲ್ ಪರಿಸರ](https://docs.python.org/3/library/venv.html) ಒಳಗೆ ಕೆಲಸ ಮಾಡುವುದು ಉಪಯುಕ್ತ.
|
||||
|
||||
2. **ವಿಜುವಲ್ ಸ್ಟುಡಿಯೋ ಕೋಡ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ**. ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ನಲ್ಲಿ Visual Studio Code ಸ್ಥಾಪಿತವಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಮೂಲ ಸ್ಥಾಪನೆಗಾಗಿ [Visual Studio Code ಅನ್ನು ಸ್ಥಾಪಿಸುವ](https://code.visualstudio.com/) ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ. ಈ ಕೋರ್ಸ್ನಲ್ಲಿ ನೀವು Visual Studio Code ನಲ್ಲಿ ಪೈಥಾನ್ ಬಳಸಲಿದ್ದೀರಿ, ಆದ್ದರಿಂದ ಪೈಥಾನ್ ಅಭಿವೃದ್ಧಿಗಾಗಿ [Visual Studio Code ಅನ್ನು ಸಂರಚಿಸುವ](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) ವಿಧಾನವನ್ನು ತಿಳಿದುಕೊಳ್ಳುವುದು ಉತ್ತಮ.
|
||||
|
||||
> ಈ [ಕಲಿಕೆ ಘಟಕಗಳ](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott) ಸಂಗ್ರಹದ ಮೂಲಕ ಪೈಥಾನ್ನಲ್ಲಿ ಆರಾಮವಾಗಿ ಕೆಲಸ ಮಾಡಿ
|
||||
>
|
||||
> [](https://youtu.be/yyQM70vi7V8 "Visual Studio Code ನಲ್ಲಿ ಪೈಥಾನ್ ಸ್ಥಾಪನೆ")
|
||||
>
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ವೀಡಿಯೋ ನೋಡಿ: VS Code ಒಳಗೆ ಪೈಥಾನ್ ಬಳಕೆ.
|
||||
|
||||
3. **ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ**, [ಈ ಸೂಚನೆಗಳನ್ನು](https://scikit-learn.org/stable/install.html) ಅನುಸರಿಸಿ. ನೀವು ಪೈಥಾನ್ 3 ಬಳಸುತ್ತಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬೇಕಾಗಿರುವುದರಿಂದ, ವರ್ಚುವಲ್ ಪರಿಸರವನ್ನು ಬಳಸುವುದು ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ. ಗಮನಿಸಿ, ನೀವು M1 ಮ್ಯಾಕ್ನಲ್ಲಿ ಈ ಗ್ರಂಥಾಲಯವನ್ನು ಸ್ಥಾಪಿಸುತ್ತಿದ್ದರೆ, ಮೇಲಿನ ಲಿಂಕ್ನಲ್ಲಿ ವಿಶೇಷ ಸೂಚನೆಗಳಿವೆ.
|
||||
|
||||
1. **ಜುಪೈಟರ್ ನೋಟ್ಬುಕ್ ಅನ್ನು ಸ್ಥಾಪಿಸಿ**. ನೀವು [ಜುಪೈಟರ್ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ](https://pypi.org/project/jupyter/)।
|
||||
|
||||
## ನಿಮ್ಮ ಯಂತ್ರ ಅಧ್ಯಯನ ಬರಹ ಪರಿಸರ
|
||||
|
||||
ನೀವು ನಿಮ್ಮ ಪೈಥಾನ್ ಕೋಡ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನ ಮಾದರಿಗಳನ್ನು ರಚಿಸಲು **ನೋಟ್ಬುಕ್ಗಳನ್ನು** ಬಳಸಲಿದ್ದೀರಿ. ಈ ರೀತಿಯ ಫೈಲ್ ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳ ಸಾಮಾನ್ಯ ಉಪಕರಣವಾಗಿದೆ ಮತ್ತು ಅವುಗಳ ಸಫಿಕ್ಸ್ ಅಥವಾ ವಿಸ್ತರಣೆ `.ipynb` ಮೂಲಕ ಗುರುತಿಸಲಾಗುತ್ತದೆ.
|
||||
|
||||
ನೋಟ್ಬುಕ್ಗಳು ಸಂವಹನಾತ್ಮಕ ಪರಿಸರವಾಗಿದ್ದು, ಅಭಿವೃದ್ಧಿಪಡಿಸುವವರು ಕೋಡ್ ಬರೆಯುವುದರ ಜೊತೆಗೆ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಲು ಮತ್ತು ಕೋಡ್ ಸುತ್ತಲೂ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಬರೆಯಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ, ಇದು ಪ್ರಯೋಗಾತ್ಮಕ ಅಥವಾ ಸಂಶೋಧನಾ-ಕೇಂದ್ರೀಕೃತ ಯೋಜನೆಗಳಿಗೆ ಬಹಳ ಉಪಯುಕ್ತ.
|
||||
|
||||
[](https://youtu.be/7E-jC8FLA2E "ಯಂತ್ರ ಅಧ್ಯಯನ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸಲು ಜುಪೈಟರ್ ನೋಟ್ಬುಕ್ಗಳನ್ನು ಸಿದ್ಧಪಡಿಸಿ")
|
||||
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಈ ವ್ಯಾಯಾಮವನ್ನು ನಡೆಸುವ ಚಿಕ್ಕ ವೀಡಿಯೋ ನೋಡಿ.
|
||||
|
||||
### ವ್ಯಾಯಾಮ - ನೋಟ್ಬುಕ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಿ
|
||||
|
||||
ಈ ಫೋಲ್ಡರ್ನಲ್ಲಿ, ನೀವು _notebook.ipynb_ ಫೈಲ್ ಅನ್ನು ಕಾಣುತ್ತೀರಿ.
|
||||
|
||||
1. Visual Studio Code ನಲ್ಲಿ _notebook.ipynb_ ಅನ್ನು ತೆರೆಯಿರಿ.
|
||||
|
||||
ಪೈಥಾನ್ 3+ ಜೊತೆಗೆ ಜುಪೈಟರ್ ಸರ್ವರ್ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ. ನೀವು ನೋಟ್ಬುಕ್ನ ಭಾಗಗಳನ್ನು `run` ಮಾಡಬಹುದು, ಅಂದರೆ ಕೋಡ್ ತುಂಡುಗಳನ್ನು. ಪ್ಲೇ ಬಟನ್ ಹೋಲುವ ಐಕಾನ್ ಆಯ್ಕೆಮಾಡಿ ಕೋಡ್ ಬ್ಲಾಕ್ ಅನ್ನು ರನ್ ಮಾಡಬಹುದು.
|
||||
|
||||
1. `md` ಐಕಾನ್ ಆಯ್ಕೆಮಾಡಿ ಸ್ವಲ್ಪ ಮಾರ್ಕ್ಡೌನ್ ಸೇರಿಸಿ, ಮತ್ತು ಕೆಳಗಿನ ಪಠ್ಯವನ್ನು **# ನಿಮ್ಮ ನೋಟ್ಬುಕ್ಗೆ ಸ್ವಾಗತ** ಎಂದು ಸೇರಿಸಿ.
|
||||
|
||||
ನಂತರ, ಕೆಲವು ಪೈಥಾನ್ ಕೋಡ್ ಸೇರಿಸಿ.
|
||||
|
||||
1. ಕೋಡ್ ಬ್ಲಾಕ್ನಲ್ಲಿ **print('hello notebook')** ಟೈಪ್ ಮಾಡಿ.
|
||||
1. ಕೋಡ್ ರನ್ ಮಾಡಲು ಅರೋಹಣ ಬಾಣವನ್ನು ಆಯ್ಕೆಮಾಡಿ.
|
||||
|
||||
ನೀವು ಮುದ್ರಿತ ಹೇಳಿಕೆಯನ್ನು ನೋಡಬೇಕು:
|
||||
|
||||
```output
|
||||
hello notebook
|
||||
```
|
||||
|
||||

|
||||
|
||||
ನೀವು ನಿಮ್ಮ ಕೋಡ್ ಜೊತೆಗೆ ಟಿಪ್ಪಣಿಗಳನ್ನು ಸೇರಿಸಿ ನೋಟ್ಬುಕ್ ಅನ್ನು ಸ್ವಯಂ-ಡಾಕ್ಯುಮೆಂಟ್ ಮಾಡಬಹುದು.
|
||||
|
||||
✅ ವೆಬ್ ಡೆವಲಪರ್ನ ಕೆಲಸದ ಪರಿಸರ ಮತ್ತು ಡೇಟಾ ವಿಜ್ಞಾನಿಯ ಕೆಲಸದ ಪರಿಸರವು ಹೇಗೆ ವಿಭಿನ್ನವಾಗಿವೆ ಎಂದು ಒಂದು ನಿಮಿಷ ಯೋಚಿಸಿ.
|
||||
|
||||
## ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ
|
||||
|
||||
ಈಗ ಪೈಥಾನ್ ನಿಮ್ಮ ಸ್ಥಳೀಯ ಪರಿಸರದಲ್ಲಿ ಸಿದ್ಧವಾಗಿದೆ ಮತ್ತು ನೀವು ಜುಪೈಟರ್ ನೋಟ್ಬುಕ್ಗಳೊಂದಿಗೆ ಆರಾಮವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದೀರಿ, ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ (ಅದನ್ನು `sci` ಎಂದು ಉಚ್ಛರಿಸಿ, ಅಂದರೆ `ಸೈನ್ಸ್`) ಜೊತೆಗೆ ಸಮಾನವಾಗಿ ಆರಾಮವಾಗೋಣ. ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ನಿಮಗೆ ಯಂತ್ರ ಅಧ್ಯಯನ ಕಾರ್ಯಗಳನ್ನು ನೆರವೇರಿಸಲು ಸಹಾಯ ಮಾಡುವ [ವಿಸ್ತೃತ API](https://scikit-learn.org/stable/modules/classes.html#api-ref) ಒದಗಿಸುತ್ತದೆ.
|
||||
|
||||
ಅವರ [ವೆಬ್ಸೈಟ್](https://scikit-learn.org/stable/getting_started.html) ಪ್ರಕಾರ, "ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ಒಂದು ಮುಕ್ತ ಮೂಲ ಯಂತ್ರ ಅಧ್ಯಯನ ಗ್ರಂಥಾಲಯವಾಗಿದೆ, ಇದು ಮೇಲ್ವಿಚಾರಿತ ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆಯಿಲ್ಲದ ಅಧ್ಯಯನವನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ಇದು ಮಾದರಿ ಹೊಂದಿಸುವಿಕೆ, ಡೇಟಾ ಪೂರ್ವಸಿದ್ಧತೆ, ಮಾದರಿ ಆಯ್ಕೆ ಮತ್ತು ಮೌಲ್ಯಮಾಪನ, ಮತ್ತು ಅನೇಕ ಇತರೆ ಉಪಕರಣಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ."
|
||||
|
||||
ಈ ಕೋರ್ಸ್ನಲ್ಲಿ, ನೀವು ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ಮತ್ತು ಇತರೆ ಉಪಕರಣಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಯಂತ್ರ ಅಧ್ಯಯನ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸುವಿರಿ, ಇದನ್ನು ನಾವು 'ಪಾರಂಪರಿಕ ಯಂತ್ರ ಅಧ್ಯಯನ' ಕಾರ್ಯಗಳು ಎಂದು ಕರೆಯುತ್ತೇವೆ. ನಾವು ಜಾಲಕ ಜಾಲಗಳು ಮತ್ತು ಆಳವಾದ ಅಧ್ಯಯನವನ್ನು ಉಲ್ಲೇಖಿಸಿಲ್ಲ, ಏಕೆಂದರೆ ಅವು ನಮ್ಮ ಮುಂದಿನ 'ಆರಂಭಿಕರಿಗಾಗಿ AI' ಪಠ್ಯಕ್ರಮದಲ್ಲಿ ಉತ್ತಮವಾಗಿ ಒಳಗೊಂಡಿವೆ.
|
||||
|
||||
ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸಲು ಮತ್ತು ಅವುಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡಲು ಸರಳ ವಿಧಾನ ಒದಗಿಸುತ್ತದೆ. ಇದು ಮುಖ್ಯವಾಗಿ ಸಂಖ್ಯಾತ್ಮಕ ಡೇಟಾ ಬಳಕೆಮೇಲೆ ಕೇಂದ್ರೀಕೃತವಾಗಿದೆ ಮತ್ತು ಕಲಿಕೆಯ ಉಪಕರಣಗಳಾಗಿ ಬಳಸಲು ಹಲವು ಸಿದ್ಧ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಇದು ವಿದ್ಯಾರ್ಥಿಗಳು ಪ್ರಯತ್ನಿಸಲು ಪೂರ್ವನಿರ್ಮಿತ ಮಾದರಿಗಳನ್ನು ಸಹ ಒಳಗೊಂಡಿದೆ. ಮೊದಲ ML ಮಾದರಿಗಾಗಿ ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ನೊಂದಿಗೆ ಪೂರ್ವಪ್ಯಾಕೇಜ್ ಡೇಟಾ ಲೋಡ್ ಮಾಡುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮತ್ತು ನಿರ್ಮಿತ ಅಂದಾಜಕವನ್ನು ಅನ್ವೇಷಿಸೋಣ.
|
||||
|
||||
## ವ್ಯಾಯಾಮ - ನಿಮ್ಮ ಮೊದಲ ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ನೋಟ್ಬುಕ್
|
||||
|
||||
> ಈ ಪಾಠವು ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ವೆಬ್ಸೈಟ್ನ [ರೇಖೀಯ ರಿಗ್ರೆಶನ್ ಉದಾಹರಣೆ](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) ಪ್ರೇರಿತವಾಗಿದೆ.
|
||||
|
||||
[](https://youtu.be/2xkXL5EUpS0 "ಪೈಥಾನ್ನಲ್ಲಿ ನಿಮ್ಮ ಮೊದಲ ರೇಖೀಯ ರಿಗ್ರೆಶನ್ ಪ್ರಾಜೆಕ್ಟ್")
|
||||
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ಈ ವ್ಯಾಯಾಮವನ್ನು ನಡೆಸುವ ಚಿಕ್ಕ ವೀಡಿಯೋ ನೋಡಿ.
|
||||
|
||||
ಈ ಪಾಠಕ್ಕೆ ಸಂಬಂಧಿಸಿದ _notebook.ipynb_ ಫೈಲ್ನಲ್ಲಿ, 'ಟ್ರ್ಯಾಶ್ ಕ್ಯಾನ್' ಐಕಾನ್ ಒತ್ತಿ ಎಲ್ಲಾ ಸೆಲ್ಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ.
|
||||
|
||||
ಈ ವಿಭಾಗದಲ್ಲಿ, ನೀವು ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ನಲ್ಲಿ ಕಲಿಕೆಯ ಉದ್ದೇಶಕ್ಕಾಗಿ ನಿರ್ಮಿಸಲಾದ ಸಣ್ಣ ಡಯಾಬಿಟಿಸ್ ಡೇಟಾಸೆಟ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತೀರಿ. ನೀವು ಡಯಾಬಿಟಿಕ್ ರೋಗಿಗಳಿಗೆ ಚಿಕಿತ್ಸೆ ಪರೀಕ್ಷಿಸಲು ಬಯಸಿದರೆ ಎಂದು ಕಲ್ಪಿಸಿ. ಯಂತ್ರ ಅಧ್ಯಯನ ಮಾದರಿಗಳು ಯಾವ ರೋಗಿಗಳು ಚಿಕಿತ್ಸೆಗಾಗಿ ಉತ್ತಮ ಪ್ರತಿಕ್ರಿಯಿಸುವರು ಎಂದು ನಿರ್ಧರಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದು, ಬದಲಾವಣೆಗಳ ಸಂಯೋಜನೆಗಳ ಆಧಾರದ ಮೇಲೆ. ಬಹುಮೂಲ್ಯ ರಿಗ್ರೆಶನ್ ಮಾದರಿ, ದೃಶ್ಯೀಕರಿಸಿದಾಗ, ಬದಲಾವಣೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ತೋರಿಸಬಹುದು, ಇದು ನಿಮ್ಮ ಸೈದ್ಧಾಂತಿಕ ಕ್ಲಿನಿಕಲ್ ಪ್ರಯೋಗಗಳನ್ನು ಸಂಘಟಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
|
||||
|
||||
✅ ರಿಗ್ರೆಶನ್ ವಿಧಾನಗಳ ಹಲವು ವಿಧಗಳಿವೆ, ಮತ್ತು ನೀವು ಯಾವದನ್ನು ಆರಿಸುವಿರಿ ಎಂಬುದು ನೀವು ಹುಡುಕುತ್ತಿರುವ ಉತ್ತರದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ. ನೀವು ನಿರ್ದಿಷ್ಟ ವಯಸ್ಸಿನ ವ್ಯಕ್ತಿಯ ಸಾಧ್ಯತೆಯ ಎತ್ತರವನ್ನು ಊಹಿಸಲು ಬಯಸಿದರೆ, ನೀವು ರೇಖೀಯ ರಿಗ್ರೆಶನ್ ಬಳಸುತ್ತೀರಿ, ಏಕೆಂದರೆ ನೀವು **ಸಂಖ್ಯಾತ್ಮಕ ಮೌಲ್ಯ** ಹುಡುಕುತ್ತಿದ್ದೀರಿ. ನೀವು ಯಾವ ಆಹಾರ ಪ್ರಕಾರವನ್ನು ವೆಗನ್ ಎಂದು ಪರಿಗಣಿಸಬೇಕೆಂದು ತಿಳಿಯಲು ಬಯಸಿದರೆ, ನೀವು **ವರ್ಗ ವಿಂಗಡಣೆ** ಹುಡುಕುತ್ತಿದ್ದೀರಿ, ಆದ್ದರಿಂದ ಲಾಜಿಸ್ಟಿಕ್ ರಿಗ್ರೆಶನ್ ಬಳಸುತ್ತೀರಿ. ಲಾಜಿಸ್ಟಿಕ್ ರಿಗ್ರೆಶನ್ ಬಗ್ಗೆ ನೀವು ನಂತರ ಹೆಚ್ಚು ಕಲಿಯುತ್ತೀರಿ. ಡೇಟಾದಿಂದ ಕೇಳಬಹುದಾದ ಕೆಲವು ಪ್ರಶ್ನೆಗಳ ಬಗ್ಗೆ ಮತ್ತು ಯಾವ ವಿಧಾನಗಳು ಸೂಕ್ತವಾಗಿರುತ್ತವೆ ಎಂದು ಸ್ವಲ್ಪ ಯೋಚಿಸಿ.
|
||||
|
||||
ಈ ಕಾರ್ಯವನ್ನು ಪ್ರಾರಂಭಿಸೋಣ.
|
||||
|
||||
### ಗ್ರಂಥಾಲಯಗಳನ್ನು ಆಮದುಮಾಡಿ
|
||||
|
||||
ಈ ಕಾರ್ಯಕ್ಕಾಗಿ ನಾವು ಕೆಲವು ಗ್ರಂಥಾಲಯಗಳನ್ನು ಆಮದುಮಾಡುತ್ತೇವೆ:
|
||||
|
||||
- **ಮ್ಯಾಟ್ಪ್ಲಾಟ್ಲಿಬ್**. ಇದು ಉಪಯುಕ್ತ [ಗ್ರಾಫ್ ಸಾಧನ](https://matplotlib.org/) ಮತ್ತು ನಾವು ಲೈನ್ ಪ್ಲಾಟ್ ರಚಿಸಲು ಇದನ್ನು ಬಳಸುತ್ತೇವೆ.
|
||||
- **ನಂಪೈ**. [ನಂಪೈ](https://numpy.org/doc/stable/user/whatisnumpy.html) ಪೈಥಾನ್ನಲ್ಲಿ ಸಂಖ್ಯಾತ್ಮಕ ಡೇಟಾ ನಿರ್ವಹಣೆಗೆ ಉಪಯುಕ್ತ ಗ್ರಂಥಾಲಯ.
|
||||
- **ಸ್ಕ್ಲರ್ನ್**. ಇದು [ಸ್ಕಿಕಿಟ್-ಲರ್ನ್](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` ಮತ್ತು `sklearn` ನಿಂದ `datasets`, `linear_model`, ಮತ್ತು `model_selection` ಅನ್ನು ಆಮದುಮಾಡುತ್ತಿದ್ದೀರಿ. `model_selection` ಅನ್ನು ತರಬೇತಿ ಮತ್ತು ಪರೀಕ್ಷಾ ಸೆಟ್ಗಳಿಗೆ ಡೇಟಾ ವಿಭಜಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.
|
||||
|
||||
### ಡಯಾಬಿಟಿಸ್ ಡೇಟಾಸೆಟ್
|
||||
|
||||
ನಿರ್ಮಿತ [ಡಯಾಬಿಟಿಸ್ ಡೇಟಾಸೆಟ್](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) 442 ಡೇಟಾ ಮಾದರಿಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, 10 ವೈಶಿಷ್ಟ್ಯ ಬದಲಾವಣೆಗಳೊಂದಿಗೆ, ಕೆಲವು:
|
||||
|
||||
- ವಯಸ್ಸು: ವರ್ಷಗಳಲ್ಲಿ ವಯಸ್ಸು
|
||||
- ಬಿಎಂಐ: ದೇಹದ ಮಾಸ್ ಸೂಚ್ಯಂಕ
|
||||
- ಬಿಪಿ: ಸರಾಸರಿ ರಕ್ತದ ಒತ್ತಡ
|
||||
- s1 tc: ಟಿ-ಸೆಲ್ಸ್ (ಒಂದು ಬಗೆಯ ಬಿಳಿ ರಕ್ತಕಣಗಳು)
|
||||
|
||||
✅ ಈ ಡೇಟಾಸೆಟ್ 'ಲಿಂಗ' ಎಂಬ ವೈಶಿಷ್ಟ್ಯ ಬದಲಾವಣೆಯ ಕಲ್ಪನೆಯನ್ನು ಒಳಗೊಂಡಿದೆ, ಇದು ಡಯಾಬಿಟಿಸ್ ಸಂಶೋಧನೆಗೆ ಮಹತ್ವದಾಗಿದೆ. ಅನೇಕ ವೈದ್ಯಕೀಯ ಡೇಟಾಸೆಟ್ಗಳು ಈ ರೀತಿಯ ದ್ವಿಪದ ವರ್ಗೀಕರಣವನ್ನು ಒಳಗೊಂಡಿರುತ್ತವೆ. ಈ ರೀತಿಯ ವರ್ಗೀಕರಣಗಳು ಜನಸಂಖ್ಯೆಯ ಕೆಲವು ಭಾಗಗಳನ್ನು ಚಿಕಿತ್ಸೆಯಿಂದ ಹೊರಗೊಳ್ಳುವಂತೆ ಮಾಡಬಹುದು ಎಂದು ಸ್ವಲ್ಪ ಯೋಚಿಸಿ.
|
||||
|
||||
ಈಗ, 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])
|
||||
```
|
||||
|
||||
ನೀವು ಪಡೆದಿರುವ ಪ್ರತಿಕ್ರಿಯೆ ಒಂದು ಟ್ಯೂಪಲ್ ಆಗಿದೆ. ನೀವು ಟ್ಯೂಪಲ್ನ ಮೊದಲ ಎರಡು ಮೌಲ್ಯಗಳನ್ನು ಕ್ರಮವಾಗಿ `X` ಮತ್ತು `y` ಗೆ ನಿಯೋಜಿಸುತ್ತಿದ್ದೀರಿ. [ಟ್ಯೂಪಲ್ಗಳ ಬಗ್ಗೆ](https://wikipedia.org/wiki/Tuple) ಹೆಚ್ಚು ತಿಳಿಯಿರಿ.
|
||||
|
||||
ಈ ಡೇಟಾ 442 ಐಟಂಗಳನ್ನು 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ನೇ ಕಾಲಮ್ ಆಯ್ಕೆಮಾಡಿ. ಎಲ್ಲಾ ಸಾಲುಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು `:` ಆಪರೇಟರ್ ಬಳಸಿ, ನಂತರ ಸೂಚ್ಯಂಕ (2) ಬಳಸಿ 3ನೇ ಕಾಲಮ್ ಆಯ್ಕೆಮಾಡಿ. ಪ್ಲಾಟ್ ಮಾಡಲು ಅಗತ್ಯವಿರುವಂತೆ ಡೇಟಾವನ್ನು 2D ಅರೆ ಆಗಿ ಮರುರೂಪಿಸಬಹುದು - `reshape(n_rows, n_columns)` ಬಳಸಿ. ಒಂದು ಪ್ಯಾರಾಮೀಟರ್ -1 ಆಗಿದ್ದರೆ, ಆ ಆಯಾಮವನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ.
|
||||
|
||||
```python
|
||||
X = X[:, 2]
|
||||
X = X.reshape((-1,1))
|
||||
```
|
||||
|
||||
✅ ಯಾವಾಗಲಾದರೂ ಡೇಟಾ ಮುದ್ರಿಸಿ ಅದರ ಆಕಾರವನ್ನು ಪರಿಶೀಲಿಸಿ.
|
||||
|
||||
3. ಈಗ ನೀವು ಪ್ಲಾಟ್ ಮಾಡಲು ಡೇಟಾ ಸಿದ್ಧವಾಗಿದೆ, ಈ ಡೇಟಾಸೆಟ್ನ ಸಂಖ್ಯೆಗಳ ನಡುವೆ ಯಂತ್ರವು ತಾರ್ಕಿಕ ವಿಭಜನೆ ನಿರ್ಧರಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದೇ ಎಂದು ನೋಡಬಹುದು. ಇದಕ್ಕಾಗಿ, ನೀವು ಡೇಟಾ (X) ಮತ್ತು ಗುರಿ (y) ಎರಡನ್ನೂ ಪರೀಕ್ಷಾ ಮತ್ತು ತರಬೇತಿ ಸೆಟ್ಗಳಾಗಿ ವಿಭಜಿಸಬೇಕು. ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ ಇದನ್ನು ಸರಳವಾಗಿ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ; ನೀವು ಪರೀಕ್ಷಾ ಡೇಟಾವನ್ನು ನಿರ್ದಿಷ್ಟ ಬಿಂದುವಿನಲ್ಲಿ ವಿಭಜಿಸಬಹುದು.
|
||||
|
||||
```python
|
||||
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33)
|
||||
```
|
||||
|
||||
4. ಈಗ ನೀವು ನಿಮ್ಮ ಮಾದರಿಯನ್ನು ತರಬೇತಿಗೆ ಸಿದ್ಧರಾಗಿದ್ದೀರಿ! ರೇಖೀಯ ರಿಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ಲೋಡ್ ಮಾಡಿ ಮತ್ತು `model.fit()` ಬಳಸಿ ನಿಮ್ಮ X ಮತ್ತು y ತರಬೇತಿ ಸೆಟ್ಗಳೊಂದಿಗೆ ತರಬೇತಿ ಮಾಡಿ:
|
||||
|
||||
```python
|
||||
model = linear_model.LinearRegression()
|
||||
model.fit(X_train, y_train)
|
||||
```
|
||||
|
||||
✅ `model.fit()` ಅನ್ನು ನೀವು TensorFlow ಮುಂತಾದ ಅನೇಕ ML ಗ್ರಂಥಾಲಯಗಳಲ್ಲಿ ಕಾಣುತ್ತೀರಿ
|
||||
|
||||
5. ನಂತರ, ಪರೀಕ್ಷಾ ಡೇಟಾ ಬಳಸಿ `predict()` ಫಂಕ್ಷನ್ ಮೂಲಕ ಅಂದಾಜು ರಚಿಸಿ. ಇದು ಡೇಟಾ ಗುಂಪುಗಳ ನಡುವೆ ರೇಖೆಯನ್ನು ಬಿಡಲು ಬಳಸಲಾಗುತ್ತದೆ
|
||||
|
||||
```python
|
||||
y_pred = model.predict(X_test)
|
||||
```
|
||||
|
||||
6. ಈಗ ಡೇಟಾವನ್ನು ಪ್ಲಾಟ್ನಲ್ಲಿ ತೋರಿಸುವ ಸಮಯ. ಮ್ಯಾಟ್ಪ್ಲಾಟ್ಲಿಬ್ ಈ ಕಾರ್ಯಕ್ಕೆ ಬಹಳ ಉಪಯುಕ್ತ ಸಾಧನ. ಎಲ್ಲಾ 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()
|
||||
```
|
||||
|
||||

|
||||
✅ ಇಲ್ಲಿ ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಸ್ವಲ್ಪ ಯೋಚಿಸಿ. ಒಂದು ಸರಳ ರೇಖೆ ಅನೇಕ ಸಣ್ಣ ಡೇಟಾ ಬಿಂದುಗಳ ಮೂಲಕ ಓಡುತ್ತಿದೆ, ಆದರೆ ಅದು ನಿಖರವಾಗಿ ಏನು ಮಾಡುತ್ತಿದೆ? ಈ ರೇಖೆಯನ್ನು ಬಳಸಿಕೊಂಡು ಹೊಸ, ಕಾಣದ ಡೇಟಾ ಬಿಂದು ಪ್ಲಾಟ್ನ y ಅಕ್ಷದ ಸಂಬಂಧದಲ್ಲಿ ಎಲ್ಲಿ ಹೊಂದಿಕೊಳ್ಳಬೇಕು ಎಂದು ನೀವು ಹೇಗೆ ಊಹಿಸಬಹುದು ಎಂದು ನೋಡಬಹುದೇ? ಈ ಮಾದರಿಯ ಪ್ರಾಯೋಗಿಕ ಬಳಕೆಯನ್ನು ಪದಗಳಲ್ಲಿ ವಿವರಿಸಲು ಪ್ರಯತ್ನಿಸಿ.
|
||||
|
||||
ಅಭಿನಂದನೆಗಳು, ನೀವು ನಿಮ್ಮ ಮೊದಲ ಲೀನಿಯರ್ ರಿಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿದ್ದೀರಿ, ಅದರಿಂದ ಊಹೆ ಮಾಡಿದ್ದೀರಿ ಮತ್ತು ಅದನ್ನು ಪ್ಲಾಟ್ನಲ್ಲಿ ಪ್ರದರ್ಶಿಸಿದ್ದೀರಿ!
|
||||
|
||||
---
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
ಈ ಡೇಟಾಸೆಟ್ನಿಂದ ಬೇರೆ ಚರವನ್ನು ಪ್ಲಾಟ್ ಮಾಡಿ. ಸೂಚನೆ: ಈ ಸಾಲನ್ನು ಸಂಪಾದಿಸಿ: `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)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,29 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "74a5cf83e4ebc302afbcbc4f418afd0a",
|
||||
"translation_date": "2025-12-19T13:57:42+00:00",
|
||||
"source_file": "2-Regression/1-Tools/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ನೊಂದಿಗೆ ರಿಗ್ರೆಶನ್
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಸ್ಕಿಕಿಟ್-ಲರ್ನ್ನಲ್ಲಿ [ಲಿನ್ನೆರಡ್ ಡೇಟಾಸೆಟ್](https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_linnerud.html#sklearn.datasets.load_linnerud) ಅನ್ನು ನೋಡಿ. ಈ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಹಲವಾರು [ಲಕ್ಷ್ಯಗಳು](https://scikit-learn.org/stable/datasets/toy_dataset.html#linnerrud-dataset) ಇವೆ: 'ಇದು ಮೂವರು ವ್ಯಾಯಾಮ (ಡೇಟಾ) ಮತ್ತು ಮೂವರು ಶಾರೀರಿಕ (ಲಕ್ಷ್ಯ) ಚರಗಳನ್ನು ಒಳಗೊಂಡಿದೆ, ಇವುಗಳನ್ನು ಇಪ್ಪತ್ತು ಮಧ್ಯಮ ವಯಸ್ಸಿನ ಪುರುಷರಿಂದ ಫಿಟ್ನೆಸ್ ಕ್ಲಬ್ನಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗಿದೆ'.
|
||||
|
||||
ನಿಮ್ಮ ಸ್ವಂತ ಪದಗಳಲ್ಲಿ, ಎಷ್ಟು ಸಿಟ್-ಅಪ್ಸ್ ಮಾಡಲಾಗಿದೆ ಮತ್ತು কোমರದ ಗಾತ್ರದ ನಡುವಿನ ಸಂಬಂಧವನ್ನು ಚಿತ್ರಿಸುವ ರಿಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂದು ವಿವರಿಸಿ. ಈ ಡೇಟಾಸೆಟ್ನ ಇತರ ಡೇಟಾಪಾಯಿಂಟ್ಗಳಿಗೂ ಅದೇ ರೀತಿಯಲ್ಲಿ ಮಾಡಿ.
|
||||
|
||||
## ರೂಬ್ರಿಕ್
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ಸಮರ್ಪಕ | ಸುಧಾರಣೆಯ ಅಗತ್ಯ |
|
||||
| ------------------------------ | ----------------------------------- | ----------------------------- | -------------------------- |
|
||||
| ವಿವರಣಾತ್ಮಕ ಪ್ಯಾರಾಗ್ರಾಫ್ ಸಲ್ಲಿಸಿ | ಚೆನ್ನಾಗಿ ಬರೆಯಲಾದ ಪ್ಯಾರಾಗ್ರಾಫ್ ಸಲ್ಲಿಸಲಾಗಿದೆ | ಕೆಲವು ವಾಕ್ಯಗಳು ಸಲ್ಲಿಸಲಾಗಿದೆ | ಯಾವುದೇ ವಿವರಣೆ ನೀಡಲಾಗಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T14:09:26+00:00",
|
||||
"source_file": "2-Regression/1-Tools/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,452 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "c18d3bd0bd8ae3878597e89dcd1fa5c1",
|
||||
"translation_date": "2025-12-19T16:31:36+00:00",
|
||||
"source_file": "2-Regression/1-Tools/solution/R/lesson_1-R.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"# ರಿಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ: R ಮತ್ತು Tidymodels ಬಳಸಿ ರಿಗ್ರೆಶನ್ ಮಾದರಿಗಳೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "YJUHCXqK57yz"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"## ರಿಗ್ರೆಶನ್ ಪರಿಚಯ - ಪಾಠ 1\n",
|
||||
"\n",
|
||||
"#### ದೃಷ್ಟಿಕೋನಕ್ಕೆ ಇಡುವುದು\n",
|
||||
"\n",
|
||||
"✅ ರಿಗ್ರೆಶನ್ ವಿಧಾನಗಳ ಹಲವು ಪ್ರಕಾರಗಳಿವೆ, ಮತ್ತು ನೀವು ಯಾವದನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತೀರಿ ಎಂಬುದು ನೀವು ಹುಡುಕುತ್ತಿರುವ ಉತ್ತರದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ. ನೀವು ನೀಡಲಾದ ವಯಸ್ಸಿನ ವ್ಯಕ್ತಿಯ ಸಾಧ್ಯತೆಯ ಎತ್ತರವನ್ನು ಊಹಿಸಲು ಬಯಸಿದರೆ, ನೀವು `ಲೀನಿಯರ್ ರಿಗ್ರೆಶನ್` ಅನ್ನು ಬಳಸುತ್ತೀರಿ, ಏಕೆಂದರೆ ನೀವು **ಸಂಖ್ಯಾತ್ಮಕ ಮೌಲ್ಯ**ವನ್ನು ಹುಡುಕುತ್ತಿದ್ದೀರಿ. ನೀವು ಯಾವ ರೀತಿಯ ಆಹಾರವನ್ನು ವೆಗನ್ ಎಂದು ಪರಿಗಣಿಸಬೇಕೇ ಎಂದು ತಿಳಿದುಕೊಳ್ಳಲು ಆಸಕ್ತರಾಗಿದ್ದರೆ, ನೀವು **ವರ್ಗ ವಿಂಗಡಣೆ**ಗಾಗಿ ಹುಡುಕುತ್ತಿದ್ದೀರಿ ಆದ್ದರಿಂದ ನೀವು `ಲಾಜಿಸ್ಟಿಕ್ ರಿಗ್ರೆಶನ್` ಅನ್ನು ಬಳಸುತ್ತೀರಿ. ಲಾಜಿಸ್ಟಿಕ್ ರಿಗ್ರೆಶನ್ ಬಗ್ಗೆ ನೀವು ನಂತರ ಹೆಚ್ಚು ತಿಳಿಯುತ್ತೀರಿ. ಡೇಟಾದಿಂದ ನೀವು ಕೇಳಬಹುದಾದ ಕೆಲವು ಪ್ರಶ್ನೆಗಳ ಬಗ್ಗೆ ಸ್ವಲ್ಪ ಯೋಚಿಸಿ, ಮತ್ತು ಈ ವಿಧಾನಗಳಲ್ಲಿ ಯಾವುದು ಹೆಚ್ಚು ಸೂಕ್ತವಾಗಿರುತ್ತದೆ ಎಂದು ಪರಿಗಣಿಸಿ.\n",
|
||||
"\n",
|
||||
"ಈ ವಿಭಾಗದಲ್ಲಿ, ನೀವು [ಮಧುಮೇಹದ ಬಗ್ಗೆ ಸಣ್ಣ ಡೇಟಾಸೆಟ್](https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html) ಜೊತೆಗೆ ಕೆಲಸ ಮಾಡುತ್ತೀರಿ. ನೀವು ಮಧುಮೇಹ ರೋಗಿಗಳಿಗೆ ಚಿಕಿತ್ಸೆ ಪರೀಕ್ಷಿಸಲು ಬಯಸಿದರೆ ಎಂದು ಕಲ್ಪಿಸಿ. ಯಂತ್ರ ಅಧ್ಯಯನ ಮಾದರಿಗಳು, ಬದಲಾವಣೆಗಳ ಸಂಯೋಜನೆಗಳ ಆಧಾರದ ಮೇಲೆ, ಯಾವ ರೋಗಿಗಳು ಚಿಕಿತ್ಸೆಗಾಗಿ ಉತ್ತಮ ಪ್ರತಿಕ್ರಿಯಿಸುವರು ಎಂದು ನಿರ್ಧರಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದು. ಅತ್ಯಂತ ಮೂಲಭೂತ ರಿಗ್ರೆಶನ್ ಮಾದರಿಯೂ ಸಹ, ದೃಶ್ಯೀಕರಿಸಿದಾಗ, ನಿಮ್ಮ ಸೈದ್ಧಾಂತಿಕ ಕ್ಲಿನಿಕಲ್ ಪ್ರಯೋಗಗಳನ್ನು ಸಂಘಟಿಸಲು ಸಹಾಯ ಮಾಡುವ ಬದಲಾವಣೆಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿ ತೋರಿಸಬಹುದು.\n",
|
||||
"\n",
|
||||
"ಹೀಗಾಗಿ, ಈ ಕಾರ್ಯವನ್ನು ಪ್ರಾರಂಭಿಸೋಣ!\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/encouRage.e75d5fe0367fb9136b78104baf4e2032a7622bc42a2bc34c0ad36c294eeb83f5.kn.jpg\"\n",
|
||||
" width=\"630\"/>\n",
|
||||
" <figcaption>@allison_horst ಅವರ ಕಲಾಕೃತಿ</figcaption>\n",
|
||||
"\n",
|
||||
"<!--<br>Artwork by @allison_horst-->\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) ನಲ್ಲಿ ಡಯಾಬಿಟಿಸ್ ಸುತ್ತಲೂ `442 ಮಾದರಿಗಳು` ಒಳಗೊಂಡಿವೆ, 10 ಭವಿಷ್ಯವಾಣಿ ವೈಶಿಷ್ಟ್ಯ ಚರಗಳು, `ವಯಸ್ಸು`, `ಲಿಂಗ`, `ದೇಹದ ಭಾರ ಸೂಚ್ಯಂಕ`, `ಸರಾಸರಿ ರಕ್ತದ ಒತ್ತಡ`, ಮತ್ತು `ಆರು ರಕ್ತ ಸೀರಮ್ ಮಾಪನಗಳು` ಜೊತೆಗೆ ಫಲಿತಾಂಶ ಚರ `y`: ಮೂಲಸ್ಥಿತಿಯಿಂದ ಒಂದು ವರ್ಷ ನಂತರ ರೋಗ ಪ್ರಗತಿಯ ಪ್ರಮಾಣಾತ್ಮಕ ಅಳೆಯುವಿಕೆ.\n",
|
||||
"\n",
|
||||
"|ನೋಟಗಳ ಸಂಖ್ಯೆ|442|\n",
|
||||
"|----------------------|:---|\n",
|
||||
"|ಭವಿಷ್ಯವಾಣಿ ಚರಗಳ ಸಂಖ್ಯೆ|ಮೊದಲ 10 ಕಾಲಮ್ಗಳು ಸಂಖ್ಯಾತ್ಮಕ ಭವಿಷ್ಯವಾಣಿ|\n",
|
||||
"|ಫಲಿತಾಂಶ/ಲಕ್ಷ್ಯ|11ನೇ ಕಾಲಮ್ ಮೂಲಸ್ಥಿತಿಯಿಂದ ಒಂದು ವರ್ಷ ನಂತರ ರೋಗ ಪ್ರಗತಿಯ ಪ್ರಮಾಣಾತ್ಮಕ ಅಳೆಯುವಿಕೆ|\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/) ಪ್ಯಾಕೇಜ್, ಇದು ಟಿಡಿವರ್ಸ್ನ ಭಾಗವಾಗಿದೆ, R ಗೆ ಚೌಕಾಕಾರದ ಡೇಟಾವನ್ನು ವೇಗವಾಗಿ ಮತ್ತು ಸ್ನೇಹಪೂರ್ವಕವಾಗಿ ಓದಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"ಈಗ, ಈ ಮೂಲ URL ನಲ್ಲಿ ನೀಡಲಾದ ಡಯಾಬಿಟಿಸ್ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡೋಣ: <https://www4.stat.ncsu.edu/~boos/var.select/diabetes.html>\n",
|
||||
"\n",
|
||||
"ಮತ್ತೆ, ನಾವು `glimpse()` ಬಳಸಿ ನಮ್ಮ ಡೇಟಾದ ಮೇಲೆ ಸಮರ್ಥನೆ ಪರಿಶೀಲನೆ ಮಾಡೋಣ ಮತ್ತು `slice()` ಬಳಸಿ ಮೊದಲ 5 ಸಾಲುಗಳನ್ನು ಪ್ರದರ್ಶಿಸೋಣ.\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()` ನಮಗೆ ಈ ಡೇಟಾದಲ್ಲಿ 442 ಸಾಲುಗಳು ಮತ್ತು 11 ಕಾಲಮ್ಗಳಿವೆ ಎಂದು ತೋರಿಸುತ್ತದೆ, ಎಲ್ಲ ಕಾಲಮ್ಗಳೂ `double` ಡೇಟಾ ಪ್ರಕಾರದವು.\n",
|
||||
"\n",
|
||||
"<br>\n",
|
||||
"\n",
|
||||
"> glimpse() ಮತ್ತು slice() ಎಂಬವು [`dplyr`](https://dplyr.tidyverse.org/) ನಲ್ಲಿ ಇರುವ ಫಂಕ್ಷನ್ಗಳು. Dplyr, Tidyverse ಭಾಗವಾಗಿದ್ದು, ಡೇಟಾ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್ನ ವ್ಯಾಕರಣವಾಗಿದೆ, ಇದು ಸಾಮಾನ್ಯ ಡೇಟಾ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್ ಸವಾಲುಗಳನ್ನು ಪರಿಹರಿಸಲು ಸಹಾಯ ಮಾಡುವ ಸತತ ಕ್ರಿಯಾಪದಗಳ ಸಮೂಹವನ್ನು ಒದಗಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"<br>\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",
|
||||
"ನಿರೀಕ್ಷಿತ ಕಲಿಕೆಯಲ್ಲಿ ಡೇಟಾವನ್ನು ಎರಡು ಉಪಸಮೂಹಗಳಾಗಿ *ಬೇರ್ಪಡಿಸುವುದು* ಸಾಮಾನ್ಯ ಅಭ್ಯಾಸ; ಒಂದು (ಸಾಮಾನ್ಯವಾಗಿ ದೊಡ್ಡದಾದ) ಸೆಟ್ ಅನ್ನು ಮಾದರಿಯನ್ನು ತರಬೇತಿಗೆ ಬಳಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಒಂದು ಸಣ್ಣ \"ಹೋಲ್ಡ್-ಬ್ಯಾಕ್\" ಸೆಟ್ ಅನ್ನು ಮಾದರಿ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸಿತು ಎಂದು ನೋಡಲು ಬಳಸಲಾಗುತ್ತದೆ.\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",
|
||||
"- ಮಾದರಿ **ಪ್ರಕಾರ** ರೇಖೀಯ ರಿಗ್ರೆಶನ್, ಲಾಜಿಸ್ಟಿಕ್ ರಿಗ್ರೆಶನ್, ನಿರ್ಧಾರ ಮರ ಮಾದರಿಗಳು ಮತ್ತು ಇತರವುಗಳಂತಹ ಮಾದರಿಗಳನ್ನು ವಿಭಿನ್ನಗೊಳಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"- ಮಾದರಿ **ಮೋಡ್** ಸಾಮಾನ್ಯ ಆಯ್ಕೆಗಳು regression ಮತ್ತು classification ಅನ್ನು ಒಳಗೊಂಡಿದೆ; ಕೆಲವು ಮಾದರಿ ಪ್ರಕಾರಗಳು ಇವುಗಳಲ್ಲಿ ಯಾವುದಾದರೂ ಒಂದು ಅಥವಾ ಎರಡನ್ನೂ ಬೆಂಬಲಿಸುತ್ತವೆ.\n",
|
||||
"\n",
|
||||
"- ಮಾದರಿ **ಎಂಜಿನ್** ಮಾದರಿಯನ್ನು ಹೊಂದಿಸಲು ಬಳಸಲಾಗುವ ಗಣನಾತ್ಮಕ ಸಾಧನವಾಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ ಇವು 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` ಅನ್ನು ಭವಿಷ್ಯವಾಣಿ ಪ್ರಮಾಣ/ಲಕ್ಷ್ಯವಾಗಿ ಹೊಂದಿಸುವೆವು, ಎಲ್ಲಾ ಭವಿಷ್ಯವಾಣಿಕಾರರು/ವೈಶಿಷ್ಟ್ಯಗಳಿಂದ ವಿವರಿಸಲಾಗುತ್ತದೆ ಅಂದರೆ, `.` (ಈ ಪ್ರಕರಣದಲ್ಲಿ, ನಮಗೆ ಒಂದೇ ಭವಿಷ್ಯವಾಣಿಕಾರನು ಇದೆ: `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",
|
||||
"<br>\n",
|
||||
"\n",
|
||||
"## 5. ಪರೀಕ್ಷಾ ಸೆಟ್ನಲ್ಲಿ ಭವಿಷ್ಯವಾಣಿಗಳನ್ನು ಮಾಡಿ\n",
|
||||
"\n",
|
||||
"ನಾವು ಈಗಾಗಲೇ ಒಂದು ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಿರುವುದರಿಂದ, ಅದನ್ನು [parsnip::predict()](https://parsnip.tidymodels.org/reference/predict.model_fit.html) ಬಳಸಿ ಪರೀಕ್ಷಾ ಡೇಟಾಸೆಟ್ಗೆ ರೋಗ ಪ್ರಗತಿಯನ್ನು y ಭವಿಷ್ಯವಾಣಿ ಮಾಡಲು ಬಳಸಬಹುದು. ಇದನ್ನು ಡೇಟಾ ಗುಂಪುಗಳ ನಡುವೆ ರೇಖೆಯನ್ನು ಬಿಡಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.\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": [
|
||||
"ವಾಹ್! 💃🕺 ನಾವು ಇತ್ತೀಚೆಗೆ ಒಂದು ಮಾದರಿಯನ್ನು ತರಬೇತುಗೊಂಡು ಅದನ್ನು ಭವಿಷ್ಯವಾಣಿ ಮಾಡಲು ಬಳಸಿದ್ದೇವೆ!\n",
|
||||
"\n",
|
||||
"ಭವಿಷ್ಯವಾಣಿ ಮಾಡುವಾಗ, tidymodels ಸಂಪ್ರದಾಯವು ಯಾವಾಗಲೂ ಫಲಿತಾಂಶಗಳ ತಬಲ್/ಡೇಟಾ ಫ್ರೇಮ್ ಅನ್ನು ಮಾನಕೃತ ಕಾಲಮ್ ಹೆಸರುಗಳೊಂದಿಗೆ ಉತ್ಪಾದಿಸುವುದಾಗಿದೆ. ಇದರಿಂದ ಮೂಲ ಡೇಟಾ ಮತ್ತು ಭವಿಷ್ಯವಾಣಿಗಳನ್ನು subsequent ಕಾರ್ಯಾಚರಣೆಗಳಿಗೆ, ಉದಾಹರಣೆಗೆ ಪ್ಲಾಟಿಂಗ್ಗೆ, ಬಳಸಬಹುದಾದ ಸ್ವರೂಪದಲ್ಲಿ ಸಂಯೋಜಿಸುವುದು ಸುಲಭವಾಗುತ್ತದೆ.\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",
|
||||
"ಈಗ, ಇದನ್ನು ದೃಶ್ಯವಾಗಿ ನೋಡಲು ಸಮಯವಾಗಿದೆ 📈. ನಾವು ಪರೀಕ್ಷಾ ಸೆಟ್ನ ಎಲ್ಲಾ `y` ಮತ್ತು `bmi` ಮೌಲ್ಯಗಳ scatter plot ಅನ್ನು ರಚಿಸುವೆವು, ನಂತರ ಮಾದರಿಯ ಡೇಟಾ ಗುಂಪುಗಳ ನಡುವೆ ಅತ್ಯಂತ ಸೂಕ್ತ ಸ್ಥಳದಲ್ಲಿ prediction ಗಳನ್ನು ಬಳಸಿ ಒಂದು ರೇಖೆಯನ್ನು ಬಿಡುತ್ತೇವೆ.\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<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,228 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "7c077988328ebfe33b24d07945f16eca",
|
||||
"translation_date": "2025-12-19T14:01:56+00:00",
|
||||
"source_file": "2-Regression/2-Data/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# Scikit-learn ಬಳಸಿ ರೆಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ: ಡೇಟಾವನ್ನು ಸಿದ್ಧಪಡಿಸಿ ಮತ್ತು ದೃಶ್ಯೀಕರಿಸಿ
|
||||
|
||||

|
||||
|
||||
ಇನ್ಫೋಗ್ರಾಫಿಕ್ [ದಾಸನಿ ಮಡಿಪಳ್ಳಿ](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' ಮತ್ತು ಇತರ ಮೌಲ್ಯಗಳ ಮಿಶ್ರಣವಾಗಿದೆ. ಡೇಟಾ, ವಾಸ್ತವದಲ್ಲಿ, ಸ್ವಲ್ಪ ಗೊಂದಲವಾಗಿದೆ.
|
||||
|
||||
[](https://youtu.be/5qGjczWTrDQ "ML for beginners - How to Analyze and Clean a Dataset")
|
||||
|
||||
> 🎥 ಈ ಪಾಠಕ್ಕಾಗಿ ಡೇಟಾ ಸಿದ್ಧಪಡಿಸುವುದನ್ನು ತೋರಿಸುವ ಚಿಕ್ಕ ವೀಡಿಯೋಗಾಗಿ ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.
|
||||
|
||||
ವಾಸ್ತವದಲ್ಲಿ, ಬಾಕ್ಸ್ನಿಂದಲೇ ML ಮಾದರಿಯನ್ನು ರಚಿಸಲು ಸಂಪೂರ್ಣ ಸಿದ್ಧವಾಗಿರುವ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಪಡೆಯುವುದು ಸಾಮಾನ್ಯವಲ್ಲ. ಈ ಪಾಠದಲ್ಲಿ, ನೀವು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಪೈಥಾನ್ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸಿ ಕಚ್ಚಾ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಹೇಗೆ ಸಿದ್ಧಪಡಿಸುವುದು ಎಂದು ಕಲಿಯುತ್ತೀರಿ. ನೀವು ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸುವ ವಿವಿಧ ತಂತ್ರಗಳನ್ನು ಸಹ ಕಲಿಯುತ್ತೀರಿ.
|
||||
|
||||
## ಪ್ರಕರಣ ಅಧ್ಯಯನ: 'ಪಂಪ್ಕಿನ್ ಮಾರುಕಟ್ಟೆ'
|
||||
|
||||
ಈ ಫೋಲ್ಡರ್ನಲ್ಲಿ ನೀವು ಮೂಲ `data` ಫೋಲ್ಡರ್ನಲ್ಲಿ [US-pumpkins.csv](https://github.com/microsoft/ML-For-Beginners/blob/main/2-Regression/data/US-pumpkins.csv) ಎಂಬ .csv ಫೈಲ್ ಅನ್ನು ಕಾಣಬಹುದು, ಇದರಲ್ಲಿ ನಗರಗಳ ಪ್ರಕಾರ ಗುಂಪುಮಾಡಲಾದ ಪಂಪ್ಕಿನ್ ಮಾರುಕಟ್ಟೆಯ ಬಗ್ಗೆ 1757 ಸಾಲುಗಳ ಡೇಟಾ ಇದೆ. ಇದು ಯುನೈಟೆಡ್ ಸ್ಟೇಟ್ಸ್ ಡಿಪಾರ್ಟ್ಮೆಂಟ್ ಆಫ್ ಅಗ್ರಿಕಲ್ಚರ್ ವಿತರಿಸುವ [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. ದಿನಾಂಕಗಳನ್ನು ತಿಂಗಳ ಫಾರ್ಮ್ಯಾಟ್ಗೆ ಪರಿವರ್ತಿಸಿ (ಇವು US ದಿನಾಂಕಗಳು, ಆದ್ದರಿಂದ ಫಾರ್ಮ್ಯಾಟ್ `MM/DD/YYYY` ಆಗಿದೆ).
|
||||
2. ತಿಂಗಳನ್ನೂ ಹೊಸ ಕಾಲಮ್ಗೆ ಹೊರತೆಗೆಯಿರಿ.
|
||||
|
||||
Visual Studio Code ನಲ್ಲಿ _notebook.ipynb_ ಫೈಲ್ ತೆರೆಯಿರಿ ಮತ್ತು ಸ್ಪ್ರೆಡ್ಶೀಟ್ ಅನ್ನು ಹೊಸ Pandas ಡೇಟಾಫ್ರೇಮ್ಗೆ ಆಮದುಮಾಡಿ.
|
||||
|
||||
1. ಮೊದಲ ಐದು ಸಾಲುಗಳನ್ನು ನೋಡಲು `head()` ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸಿ.
|
||||
|
||||
```python
|
||||
import pandas as pd
|
||||
pumpkins = pd.read_csv('../data/US-pumpkins.csv')
|
||||
pumpkins.head()
|
||||
```
|
||||
|
||||
✅ ಕೊನೆಯ ಐದು ಸಾಲುಗಳನ್ನು ನೋಡಲು ನೀವು ಯಾವ ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸುತ್ತೀರಿ?
|
||||
|
||||
1. ಪ್ರಸ್ತುತ ಡೇಟಾಫ್ರೇಮ್ನಲ್ಲಿ ಕಳೆದುಹೋಗಿರುವ ಡೇಟಾ ಇದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸಿ:
|
||||
|
||||
```python
|
||||
pumpkins.isnull().sum()
|
||||
```
|
||||
|
||||
ಕಳೆದುಹೋಗಿರುವ ಡೇಟಾ ಇದೆ, ಆದರೆ ಅದು ಈ ಕಾರ್ಯಕ್ಕೆ ಪ್ರಭಾವ ಬೀರುವುದಿಲ್ಲದಿರಬಹುದು.
|
||||
|
||||
1. ನಿಮ್ಮ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಸುಲಭವಾಗಿ ಕೆಲಸ ಮಾಡಲು, ನೀವು ಬೇಕಾದ ಕಾಲಮ್ಗಳನ್ನು ಮಾತ್ರ ಆಯ್ಕೆಮಾಡಿ, `loc` ಫಂಕ್ಷನ್ ಬಳಸಿ, ಇದು ಮೂಲ ಡೇಟಾಫ್ರೇಮ್ನಿಂದ ಸಾಲುಗಳ ಗುಂಪು (ಮೊದಲ ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ) ಮತ್ತು ಕಾಲಮ್ಗಳನ್ನು (ಎರಡನೇ ಪ್ಯಾರಾಮೀಟರ್ ಆಗಿ) ಹೊರತೆಗೆಯುತ್ತದೆ. ಕೆಳಗಿನ ಉದಾಹರಣೆಯಲ್ಲಿ `:` ಅಂದರೆ "ಎಲ್ಲಾ ಸಾಲುಗಳು".
|
||||
|
||||
```python
|
||||
columns_to_select = ['Package', 'Low Price', 'High Price', 'Date']
|
||||
pumpkins = pumpkins.loc[:, columns_to_select]
|
||||
```
|
||||
|
||||
### ಎರಡನೇದು, ಪಂಪ್ಕಿನ್ನ ಸರಾಸರಿ ಬೆಲೆಯನ್ನು ನಿರ್ಧರಿಸಿ
|
||||
|
||||
ನಿಗದಿತ ತಿಂಗಳಲ್ಲಿ ಪಂಪ್ಕಿನ್ನ ಸರಾಸರಿ ಬೆಲೆಯನ್ನು ಹೇಗೆ ನಿರ್ಧರಿಸುವುದು ಎಂದು ಯೋಚಿಸಿ. ಈ ಕಾರ್ಯಕ್ಕೆ ನೀವು ಯಾವ ಕಾಲಮ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತೀರಿ? ಸೂಚನೆ: ನಿಮಗೆ 3 ಕಾಲಮ್ಗಳು ಬೇಕಾಗುತ್ತವೆ.
|
||||
|
||||
ಉತ್ತರ: `Low Price` ಮತ್ತು `High Price` ಕಾಲಮ್ಗಳ ಸರಾಸರಿ ತೆಗೆದು ಹೊಸ `Price` ಕಾಲಮ್ ಅನ್ನು ತುಂಬಿಸಿ, ಮತ್ತು `Date` ಕಾಲಮ್ ಅನ್ನು ತಿಂಗಳಷ್ಟೇ ತೋರಿಸುವಂತೆ ಪರಿವರ್ತಿಸಿ. ಮೇಲಿನ ಪರಿಶೀಲನೆಯ ಪ್ರಕಾರ, ದಿನಾಂಕಗಳು ಅಥವಾ ಬೆಲೆಗಳಿಗೆ ಯಾವುದೇ ಕಳೆದುಹೋಗಿರುವ ಡೇಟಾ ಇಲ್ಲ.
|
||||
|
||||
1. ಸರಾಸರಿ ಲೆಕ್ಕಿಸಲು ಕೆಳಗಿನ ಕೋಡ್ ಸೇರಿಸಿ:
|
||||
|
||||
```python
|
||||
price = (pumpkins['Low Price'] + pumpkins['High Price']) / 2
|
||||
|
||||
month = pd.DatetimeIndex(pumpkins['Date']).month
|
||||
|
||||
```
|
||||
|
||||
✅ ನೀವು `print(month)` ಬಳಸಿ ಯಾವುದೇ ಡೇಟಾವನ್ನು ಪರಿಶೀಲಿಸಲು ಮುಕ್ತವಾಗಿರಿ.
|
||||
|
||||
2. ಈಗ, ನಿಮ್ಮ ಪರಿವರ್ತಿತ ಡೇಟಾವನ್ನು ಹೊಸ Pandas ಡೇಟಾಫ್ರೇಮ್ಗೆ ನಕಲಿಸಿ:
|
||||
|
||||
```python
|
||||
new_pumpkins = pd.DataFrame({'Month': month, 'Package': pumpkins['Package'], 'Low Price': pumpkins['Low Price'],'High Price': pumpkins['High Price'], 'Price': price})
|
||||
```
|
||||
|
||||
ನಿಮ್ಮ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಮುದ್ರಿಸಿದರೆ, ನೀವು ಹೊಸ ರೆಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಲು ಶುದ್ಧ, ವ್ಯವಸ್ಥಿತ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಕಾಣುತ್ತೀರಿ.
|
||||
|
||||
### ಆದರೆ ಕಾಯಿರಿ! ಇಲ್ಲಿ ಒಂದು ವಿಚಿತ್ರ ವಿಷಯವಿದೆ
|
||||
|
||||
ನೀವು `Package` ಕಾಲಮ್ ನೋಡಿದರೆ, ಪಂಪ್ಕಿನ್ಗಳು ವಿವಿಧ ರೂಪಗಳಲ್ಲಿ ಮಾರಾಟವಾಗುತ್ತಿವೆ. ಕೆಲವು '1 1/9 bushel' ಅಳತೆಯಲ್ಲಿ, ಕೆಲವು '1/2 bushel' ಅಳತೆಯಲ್ಲಿ, ಕೆಲವು ಪ್ರತಿ ಪಂಪ್ಕಿನ್, ಕೆಲವು ಪ್ರತಿ ಪೌಂಡ್, ಮತ್ತು ಕೆಲವು ಬೃಹತ್ ಬಾಕ್ಸ್ಗಳಲ್ಲಿ ವಿವಿಧ ಅಗಲಗಳೊಂದಿಗೆ ಮಾರಾಟವಾಗುತ್ತವೆ.
|
||||
|
||||
> ಪಂಪ್ಕಿನ್ಗಳನ್ನು ಸತತವಾಗಿ ತೂಕಮಾಪನ ಮಾಡುವುದು ಬಹಳ ಕಷ್ಟ.
|
||||
|
||||
ಮೂಲ ಡೇಟಾವನ್ನು ಪರಿಶೀಲಿಸಿದಾಗ, `Unit of Sale` 'EACH' ಅಥವಾ 'PER BIN' ಆಗಿರುವ ಯಾವುದೇ ಐಟಂಗಳು `Package` ಪ್ರಕಾರ ಇಂಚು, ಬಿನ್ ಅಥವಾ 'each' ಆಗಿವೆ. ಪಂಪ್ಕಿನ್ಗಳನ್ನು ಸತತವಾಗಿ ತೂಕಮಾಪನ ಮಾಡುವುದು ಕಷ್ಟವಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ನಾವು `Package` ಕಾಲಮ್ನಲ್ಲಿ 'bushel' ಸ್ಟ್ರಿಂಗ್ ಇರುವ ಪಂಪ್ಕಿನ್ಗಳನ್ನು ಮಾತ್ರ ಆಯ್ಕೆಮಾಡಿ ಫಿಲ್ಟರ್ ಮಾಡೋಣ.
|
||||
|
||||
1. ಫೈಲ್ನ ಮೇಲ್ಭಾಗದಲ್ಲಿ, ಪ್ರಾಥಮಿಕ .csv ಆಮದುಮಾಡಿದ ನಂತರ ಫಿಲ್ಟರ್ ಸೇರಿಸಿ:
|
||||
|
||||
```python
|
||||
pumpkins = pumpkins[pumpkins['Package'].str.contains('bushel', case=True, regex=True)]
|
||||
```
|
||||
|
||||
ನೀವು ಈಗ ಡೇಟಾವನ್ನು ಮುದ್ರಿಸಿದರೆ, ನೀವು ಬಸ್ಸೆಲ್ ಮೂಲಕ ಮಾರಾಟವಾಗುವ ಸುಮಾರು 415 ಸಾಲುಗಳ ಡೇಟಾವನ್ನು ಮಾತ್ರ ಪಡೆಯುತ್ತಿರುವಿರಿ ಎಂದು ಕಾಣಬಹುದು.
|
||||
|
||||
### ಆದರೆ ಕಾಯಿರಿ! ಇನ್ನೂ ಒಂದು ಕೆಲಸ ಮಾಡಬೇಕಿದೆ
|
||||
|
||||
ನೀವು ಗಮನಿಸಿದ್ದೀರಾ, ಬಸ್ಸೆಲ್ ಪ್ರಮಾಣವು ಪ್ರತಿ ಸಾಲಿಗೆ ಬದಲಾಗುತ್ತದೆ? ನೀವು ಬೆಲೆಯನ್ನು ಪ್ರತಿ ಬಸ್ಸೆಲ್ ಪ್ರಕಾರ ಸಾಮಾನ್ಯೀಕರಿಸಬೇಕಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಅದನ್ನು ಮಾನಕೀಕರಿಸಲು ಕೆಲವು ಗಣಿತ ಮಾಡಿ.
|
||||
|
||||
1. ಹೊಸ `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) ಪ್ರಕಾರ, ಬಸ್ಸೆಲ್ ತೂಕವು ಉತ್ಪನ್ನದ ಪ್ರಕಾರ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ, ಏಕೆಂದರೆ ಇದು ಪ್ರಮಾಣದ ಅಳತೆ. "ಉದಾಹರಣೆಗೆ, ಟೊಮೇಟೋಗಳ ಒಂದು ಬಸ್ಸೆಲ್ 56 ಪೌಂಡ್ ತೂಕವಾಗಿರಬೇಕು... ಎಲೆಗಳು ಮತ್ತು ಹಸಿರುಗಳು ಕಡಿಮೆ ತೂಕದೊಂದಿಗೆ ಹೆಚ್ಚು ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ, ಆದ್ದರಿಂದ ಸ್ಪಿನಾಚ್ನ ಒಂದು ಬಸ್ಸೆಲ್ ಕೇವಲ 20 ಪೌಂಡ್." ಇದು ಬಹಳ ಸಂಕೀರ್ಣವಾಗಿದೆ! ಬಸ್ಸೆಲ್-ನಿಂದ-ಪೌಂಡ್ ಪರಿವರ್ತನೆ ಮಾಡಲು ಪ್ರಯತ್ನಿಸದೆ, ಬಸ್ಸೆಲ್ ಪ್ರಕಾರ ಬೆಲೆಯನ್ನು ನಿರ್ಧರಿಸೋಣ. ಈ ಪಂಪ್ಕಿನ್ ಬಸ್ಸೆಲ್ ಅಧ್ಯಯನವು ನಿಮ್ಮ ಡೇಟಾದ ಸ್ವಭಾವವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಎಷ್ಟು ಮುಖ್ಯವೋ ತೋರಿಸುತ್ತದೆ!
|
||||
|
||||
ಈಗ, ನೀವು ಬಸ್ಸೆಲ್ ಅಳತೆಯ ಆಧಾರದ ಮೇಲೆ ಪ್ರತಿ ಘಟಕದ ಬೆಲೆಯನ್ನು ವಿಶ್ಲೇಷಿಸಬಹುದು. ನೀವು ಡೇಟಾವನ್ನು ಮತ್ತೊಮ್ಮೆ ಮುದ್ರಿಸಿದರೆ, ಅದು ಹೇಗೆ ಮಾನಕೀಕೃತವಾಗಿದೆ ಎಂದು ಕಾಣಬಹುದು.
|
||||
|
||||
✅ ನೀವು ಗಮನಿಸಿದ್ದೀರಾ, ಅರ್ಧ ಬಸ್ಸೆಲ್ ಮೂಲಕ ಮಾರಾಟವಾಗುವ ಪಂಪ್ಕಿನ್ಗಳು ಬಹಳ ದುಬಾರಿ? ನೀವು ಏಕೆ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಹುದೇ? ಸೂಚನೆ: ಸಣ್ಣ ಪಂಪ್ಕಿನ್ಗಳು ದೊಡ್ಡದಿಗಿಂತ ಬಹಳ ಹೆಚ್ಚು ಬೆಲೆಯಿವೆ, ಬಹುಶಃ ಒಂದು ದೊಡ್ಡ ಹೊಳೆಯುವ ಪೈ ಪಂಪ್ಕಿನ್ ತೆಗೆದುಕೊಳ್ಳುವ ಅನವಶ್ಯಕ ಜಾಗದಿಂದಾಗಿ ಪ್ರತಿ ಬಸ್ಸೆಲ್ನಲ್ಲಿ ಅವುಗಳ ಸಂಖ್ಯೆ ಹೆಚ್ಚು ಇರುವ ಕಾರಣ.
|
||||
|
||||
## ದೃಶ್ಯೀಕರಣ ತಂತ್ರಗಳು
|
||||
|
||||
ಡೇಟಾ ವಿಜ್ಞಾನಿಯ ಪಾತ್ರದ ಒಂದು ಭಾಗವೆಂದರೆ ಅವರು ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಡೇಟಾದ ಗುಣಮಟ್ಟ ಮತ್ತು ಸ್ವಭಾವವನ್ನು ಪ್ರದರ್ಶಿಸುವುದು. ಇದಕ್ಕಾಗಿ, ಅವರು ವಿವಿಧ ಅಂಶಗಳನ್ನು ತೋರಿಸುವ ಆಸಕ್ತಿದಾಯಕ ದೃಶ್ಯೀಕರಣಗಳು, ಪ್ಲಾಟ್ಗಳು, ಗ್ರಾಫ್ಗಳು ಮತ್ತು ಚಾರ್ಟ್ಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತಾರೆ. ಈ ರೀತಿಯಲ್ಲಿ, ಅವರು ದೃಶ್ಯವಾಗಿ ಸಂಬಂಧಗಳು ಮತ್ತು ಗ್ಯಾಪ್ಗಳನ್ನು ತೋರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ, ಅವುಗಳನ್ನು ಬೇರೆ ರೀತಿಯಲ್ಲಿ ಕಂಡುಹಿಡಿಯುವುದು ಕಷ್ಟ.
|
||||
|
||||
[](https://youtu.be/SbUkxH6IJo0 "ML for beginners - How to Visualize Data with Matplotlib")
|
||||
|
||||
> 🎥 ಈ ಪಾಠಕ್ಕಾಗಿ ಡೇಟಾ ದೃಶ್ಯೀಕರಣವನ್ನು ತೋರಿಸುವ ಚಿಕ್ಕ ವೀಡಿಯೋಗಾಗಿ ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ.
|
||||
|
||||
ದೃಶ್ಯೀಕರಣಗಳು ಡೇಟಾದಿಗೆ ಅತ್ಯಂತ ಸೂಕ್ತ ಯಂತ್ರ ಅಧ್ಯಯನ ತಂತ್ರವನ್ನು ನಿರ್ಧರಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದು. ಉದಾಹರಣೆಗೆ, ಒಂದು ಸ್ಕ್ಯಾಟರ್ಪ್ಲಾಟ್ ಒಂದು ರೇಖೆಯನ್ನು ಅನುಸರಿಸುವಂತೆ ತೋರುತ್ತದೆ ಎಂದರೆ, ಡೇಟಾ ಲೀನಿಯರ್ ರೆಗ್ರೆಶನ್ ಅಭ್ಯಾಸಕ್ಕೆ ಉತ್ತಮ ಅಭ್ಯರ್ಥಿ ಎಂದು ಸೂಚಿಸುತ್ತದೆ.
|
||||
|
||||
Jupyter ನೋಟ್ಬುಕ್ಗಳಲ್ಲಿ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುವ ಒಂದು ಡೇಟಾ ದೃಶ್ಯೀಕರಣ ಲೈಬ್ರರಿ [Matplotlib](https://matplotlib.org/) ಆಗಿದೆ (ನೀವು ಹಿಂದಿನ ಪಾಠದಲ್ಲಿಯೂ ಇದನ್ನು ನೋಡಿದ್ದೀರಿ).
|
||||
|
||||
> [ಈ ಟ್ಯುಟೋರಿಯಲ್ಗಳಲ್ಲಿ](https://docs.microsoft.com/learn/modules/explore-analyze-data-with-python?WT.mc_id=academic-77952-leestott) ಡೇಟಾ ದೃಶ್ಯೀಕರಣದ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ಅನುಭವ ಪಡೆಯಿರಿ.
|
||||
|
||||
## ಅಭ್ಯಾಸ - Matplotlib ಜೊತೆ ಪ್ರಯೋಗ ಮಾಡಿ
|
||||
|
||||
ನೀವು ಈಗ ರಚಿಸಿದ ಹೊಸ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸಲು ಕೆಲವು ಮೂಲ ಪ್ಲಾಟ್ಗಳನ್ನು ರಚಿಸಲು ಪ್ರಯತ್ನಿಸಿ. ಮೂಲ ರೇಖಾ ಪ್ಲಾಟ್ ಏನು ತೋರಿಸುತ್ತದೆ?
|
||||
|
||||
1. ಫೈಲ್ನ ಮೇಲ್ಭಾಗದಲ್ಲಿ, Pandas ಆಮದುಮಾಡಿದ ನಂತರ Matplotlib ಅನ್ನು ಆಮದುಮಾಡಿ:
|
||||
|
||||
```python
|
||||
import matplotlib.pyplot as plt
|
||||
```
|
||||
|
||||
1. ಸಂಪೂರ್ಣ ನೋಟ್ಬುಕ್ ಅನ್ನು ಮರುನಡೆಸಿ.
|
||||
1. ನೋಟ್ಬುಕ್ನ ಕೆಳಭಾಗದಲ್ಲಿ, ಡೇಟಾವನ್ನು ಬಾಕ್ಸ್ ಆಗಿ ಪ್ಲಾಟ್ ಮಾಡಲು ಒಂದು ಸೆಲ್ ಸೇರಿಸಿ:
|
||||
|
||||
```python
|
||||
price = new_pumpkins.Price
|
||||
month = new_pumpkins.Month
|
||||
plt.scatter(price, month)
|
||||
plt.show()
|
||||
```
|
||||
|
||||

|
||||
|
||||
ಇದು ಉಪಯುಕ್ತವಾದ ಪ್ಲಾಟ್ ಆಗಿದೆಯೇ? ಇದರಲ್ಲಿ ಏನಾದರೂ ನಿಮಗೆ ಆಶ್ಚರ್ಯಕರವೇ?
|
||||
|
||||
ಇದು ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಲ್ಲ, ಏಕೆಂದರೆ ಇದು ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನಿಗದಿತ ತಿಂಗಳಲ್ಲಿ ಬಿಂದುಗಳ ವಿಸ್ತಾರವಾಗಿ ಮಾತ್ರ ಪ್ರದರ್ಶಿಸುತ್ತದೆ.
|
||||
|
||||
### ಅದನ್ನು ಉಪಯುಕ್ತವಾಗಿಸೋಣ
|
||||
|
||||
ಉಪಯುಕ್ತ ಡೇಟಾ ಪ್ರದರ್ಶನಕ್ಕಾಗಿ, ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಡೇಟಾವನ್ನು ಗುಂಪುಮಾಡಬೇಕಾಗುತ್ತದೆ. ತಿಂಗಳುಗಳನ್ನು y ಅಕ್ಷದಲ್ಲಿ ತೋರಿಸುವ ಮತ್ತು ಡೇಟಾ ವಿತರಣೆ ತೋರಿಸುವ ಪ್ಲಾಟ್ ರಚಿಸಲು ಪ್ರಯತ್ನಿಸೋಣ.
|
||||
|
||||
1. ಗುಂಪುಮಾಡಲಾದ ಬಾರ್ ಚಾರ್ಟ್ ರಚಿಸಲು ಒಂದು ಸೆಲ್ ಸೇರಿಸಿ:
|
||||
|
||||
```python
|
||||
new_pumpkins.groupby(['Month'])['Price'].mean().plot(kind='bar')
|
||||
plt.ylabel("Pumpkin Price")
|
||||
```
|
||||
|
||||

|
||||
|
||||
ಇದು ಹೆಚ್ಚು ಉಪಯುಕ್ತ ಡೇಟಾ ದೃಶ್ಯೀಕರಣ! ಇದು ಪಂಪ್ಕಿನ್ಗಳ ಅತ್ಯಧಿಕ ಬೆಲೆ ಸೆಪ್ಟೆಂಬರ್ ಮತ್ತು ಅಕ್ಟೋಬರ್ ತಿಂಗಳಲ್ಲಿ ಸಂಭವಿಸುತ್ತದೆ ಎಂದು ಸೂಚಿಸುತ್ತದೆ. ಇದು ನಿಮ್ಮ ನಿರೀಕ್ಷೆಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆಯೇ? ಏಕೆ ಅಥವಾ ಏಕೆ ಅಲ್ಲ?
|
||||
|
||||
---
|
||||
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
Matplotlib ನೀಡುವ ವಿವಿಧ ದೃಶ್ಯೀಕರಣ ಪ್ರಕಾರಗಳನ್ನು ಅನ್ವೇಷಿಸಿ. ರೆಗ್ರೆಶನ್ ಸಮಸ್ಯೆಗಳಿಗೆ ಯಾವ ಪ್ರಕಾರಗಳು ಅತ್ಯಂತ ಸೂಕ್ತ?
|
||||
|
||||
## [ಪೋಸ್ಟ್-ಪಾಠ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
## ವಿಮರ್ಶೆ ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನ
|
||||
|
||||
ಡೇಟಾವನ್ನು ದೃಶ್ಯೀಕರಿಸುವ ಅನೇಕ ವಿಧಾನಗಳನ್ನು ನೋಡಿ. ಲಭ್ಯವಿರುವ ವಿವಿಧ ಲೈಬ್ರರಿಗಳ ಪಟ್ಟಿ ಮಾಡಿ ಮತ್ತು ಯಾವವು ಯಾವ ಕಾರ್ಯಗಳಿಗೆ ಉತ್ತಮ ಎಂದು ಗಮನಿಸಿ, ಉದಾಹರಣೆಗೆ 2D ದೃಶ್ಯೀಕರಣಗಳು ಮತ್ತು 3D ದೃಶ್ಯೀಕರಣಗಳು. ನೀವು ಏನು ಕಂಡುಹಿಡಿದಿರಿ?
|
||||
|
||||
## ನಿಯೋಜನೆ
|
||||
|
||||
[ದೃಶ್ಯೀಕರಣ ಅನ್ವೇಷಣೆ](assignment.md)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,25 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "4485a1ed4dd1b5647365e3d87456515d",
|
||||
"translation_date": "2025-12-19T14:03:34+00:00",
|
||||
"source_file": "2-Regression/2-Data/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ದೃಶ್ಯೀಕರಣಗಳನ್ನು ಅನ್ವೇಷಿಸುವುದು
|
||||
|
||||
ಡೇಟಾ ದೃಶ್ಯೀಕರಣಕ್ಕಾಗಿ ಲಭ್ಯವಿರುವ ಹಲವು ವಿಭಿನ್ನ ಗ್ರಂಥಾಲಯಗಳಿವೆ. ಈ ಪಾಠದಲ್ಲಿ ಪಂಪ್ಕಿನ್ ಡೇಟಾವನ್ನು ಬಳಸಿಕೊಂಡು matplotlib ಮತ್ತು seaborn ಬಳಸಿ ಕೆಲವು ದೃಶ್ಯೀಕರಣಗಳನ್ನು ಸೃಷ್ಟಿಸಿ ಒಂದು ಮಾದರಿ ನೋಟ್ಬುಕ್ನಲ್ಲಿ. ಯಾವ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸುವುದು ಸುಲಭವಾಗಿದೆ?
|
||||
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡ | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | --------- | -------- | ----------------- |
|
||||
| | ಎರಡು ಅನ್ವೇಷಣೆಗಳು/ದೃಶ್ಯೀಕರಣಗಳೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಸಲ್ಲಿಸಲಾಗಿದೆ | ಒಂದು ಅನ್ವೇಷಣೆ/ದೃಶ್ಯೀಕರಣದೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಸಲ್ಲಿಸಲಾಗಿದೆ | ನೋಟ್ಬುಕ್ ಸಲ್ಲಿಸಲಾಗಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -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-final"
|
||||
},
|
||||
"orig_nbformat": 2,
|
||||
"kernelspec": {
|
||||
"name": "python3",
|
||||
"display_name": "Python 3",
|
||||
"language": "python"
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "1b2ab303ac6c604a34c6ca7a49077fc7",
|
||||
"translation_date": "2025-12-19T16:18:17+00:00",
|
||||
"source_file": "2-Regression/2-Data/notebook.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2,
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕಾರ**: \nಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T14:09:55+00:00",
|
||||
"source_file": "2-Regression/2-Data/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,673 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "f3c335f9940cfd76528b3ef918b9b342",
|
||||
"translation_date": "2025-12-19T16:36:33+00:00",
|
||||
"source_file": "2-Regression/2-Data/solution/R/lesson_2-R.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"# ರಿಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ: ಡೇಟಾವನ್ನು ಸಿದ್ಧಪಡಿಸಿ ಮತ್ತು ದೃಶ್ಯೀಕರಿಸಿ\n",
|
||||
"\n",
|
||||
"## **ಕುಂಬಳಕಾಯಿ ಗಾಗಿ ರೇಖೀಯ ರಿಗ್ರೆಶನ್ - ಪಾಠ 2**\n",
|
||||
"#### ಪರಿಚಯ\n",
|
||||
"\n",
|
||||
"ನೀವು ಈಗ Tidymodels ಮತ್ತು Tidyverse ಬಳಸಿ ಯಂತ್ರ ಅಧ್ಯಯನ ಮಾದರಿ ನಿರ್ಮಾಣವನ್ನು ಪ್ರಾರಂಭಿಸಲು ಅಗತ್ಯವಿರುವ ಸಾಧನಗಳೊಂದಿಗೆ ಸಜ್ಜಾಗಿದ್ದೀರಿ, ನೀವು ನಿಮ್ಮ ಡೇಟಾದ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಲು ಸಿದ್ಧರಾಗಿದ್ದೀರಿ. ನೀವು ಡೇಟಾ ಜೊತೆ ಕೆಲಸಮಾಡಿ ML ಪರಿಹಾರಗಳನ್ನು ಅನ್ವಯಿಸುವಾಗ, ನಿಮ್ಮ ಡೇಟಾಸೆಟ್ನ ಸಾಧ್ಯತೆಗಳನ್ನು ಸರಿಯಾಗಿ ಅನ್ಲಾಕ್ ಮಾಡಲು ಸರಿಯಾದ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುವುದು ಬಹಳ ಮುಖ್ಯ.\n",
|
||||
"\n",
|
||||
"ಈ ಪಾಠದಲ್ಲಿ, ನೀವು ಕಲಿಯುವಿರಿ:\n",
|
||||
"\n",
|
||||
"- ನಿಮ್ಮ ಮಾದರಿ ನಿರ್ಮಾಣಕ್ಕಾಗಿ ಡೇಟಾವನ್ನು ಹೇಗೆ ಸಿದ್ಧಪಡಿಸುವುದು.\n",
|
||||
"\n",
|
||||
"- ಡೇಟಾ ದೃಶ್ಯೀಕರಣಕ್ಕಾಗಿ `ggplot2` ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು.\n",
|
||||
"\n",
|
||||
"ನೀವು ಉತ್ತರಿಸಬೇಕಾದ ಪ್ರಶ್ನೆ ಯಾವ ರೀತಿಯ ML ಆಲ್ಗಾರಿದಮ್ಗಳನ್ನು ನೀವು ಬಳಸಬೇಕೆಂದು ನಿರ್ಧರಿಸುತ್ತದೆ. ಮತ್ತು ನೀವು ಪಡೆಯುವ ಉತ್ತರದ ಗುಣಮಟ್ಟವು ನಿಮ್ಮ ಡೇಟಾದ ಸ್ವಭಾವದ ಮೇಲೆ ಬಹಳ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"ಪ್ರಾಯೋಗಿಕ ವ್ಯಾಯಾಮದ ಮೂಲಕ ಇದನ್ನು ನೋಡೋಣ.\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/unruly_data.0eedc7ced92d2d919cf5ea197bfe0fe9a30780c4bf7cdcf14ff4e9dc5a4c7267.kn.jpg\"\n",
|
||||
" width=\"700\"/>\n",
|
||||
" <figcaption>ಕಲಾಕೃತಿ @allison_horst ಅವರಿಂದ</figcaption>\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "Pg5aexcOPqAZ"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"## 1. ಕಂಬಳಿಯ ಡೇಟಾವನ್ನು ಆಮದು ಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಟಿಡಿವರ್ಸ್ ಅನ್ನು ಕರೆಸಿಕೊಳ್ಳುವುದು\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",
|
||||
"<br>\n",
|
||||
"\n",
|
||||
"> ಪುನಃಸ್ಮರಣೆ: ಪೈಪ್ ಆಪರೇಟರ್ (`%>%`) ಲಾಜಿಕಲ್ ಕ್ರಮದಲ್ಲಿ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಒಂದು ವಸ್ತುವನ್ನು ಮುಂದಕ್ಕೆ ಫಂಕ್ಷನ್ ಅಥವಾ ಕರೆ ಅಭಿವ್ಯಕ್ತಿಗೆ ಹಂಚಿಕೊಡುತ್ತದೆ. ನಿಮ್ಮ ಕೋಡ್ನಲ್ಲಿ ಪೈಪ್ ಆಪರೇಟರ್ ಅನ್ನು \"ಮತ್ತು ನಂತರ\" ಎಂದು ಹೇಳುವುದಾಗಿ ಭಾವಿಸಬಹುದು.\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "REWcIv9yX29v"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"## 2. ಕಾಣೆಯಾದ ಡೇಟಾವನ್ನು ಪರಿಶೀಲಿಸಿ\n",
|
||||
"\n",
|
||||
"ಡೇಟಾ ವಿಜ್ಞಾನಿಗಳು ಎದುರಿಸಬೇಕಾದ ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ ಅಪೂರ್ಣ ಅಥವಾ ಕಾಣೆಯಾದ ಡೇಟಾ. R ಕಾಣೆಯಾದ ಅಥವಾ ಅಜ್ಞಾತ ಮೌಲ್ಯಗಳನ್ನು ವಿಶೇಷ ಸೆಂಟಿನೆಲ್ ಮೌಲ್ಯದಿಂದ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ: `NA` (ಲಭ್ಯವಿಲ್ಲ).\n",
|
||||
"\n",
|
||||
"ಆದ್ದರಿಂದ ಡೇಟಾ ಫ್ರೇಮ್ನಲ್ಲಿ ಕಾಣೆಯಾದ ಮೌಲ್ಯಗಳಿವೆ ಎಂದು ನಾವು ಹೇಗೆ ತಿಳಿಯಬಹುದು?\n",
|
||||
"<br>\n",
|
||||
"- ಒಂದು ಸರಳ ವಿಧಾನವೆಂದರೆ ಮೂಲ 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": [
|
||||
"ಸರಿ, ಕೆಲಸ ಮುಗಿಸಿದೆ ಆದರೆ ಇಂತಹ ದೊಡ್ಡ ಡೇಟಾ ಫ್ರೇಮ್ನೊಂದಿಗೆ, ಎಲ್ಲಾ ಸಾಲುಗಳು ಮತ್ತು ಕಾಲಮ್ಗಳನ್ನು ವೈಯಕ್ತಿಕವಾಗಿ ಪರಿಶೀಲಿಸುವುದು ಅಸಾಧ್ಯ ಮತ್ತು ಅಪ್ರಾಯೋಗಿಕವಾಗಿರುತ್ತದೆ😴.\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",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/dplyr_wrangling.f5f99c64fd4580f1377fee3ea428b6f8fd073845ec0f8409d483cfe148f0984e.kn.png\"\n",
|
||||
" width=\"569\"/>\n",
|
||||
" <figcaption>@allison_horst ಅವರ ಕಲಾಕೃತಿ</figcaption>\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"<!--<br/>Artwork by \\@allison_horst-->\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "o4jLY5-VZO2C"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"[`dplyr`](https://dplyr.tidyverse.org/), ಟಿಡಿವರ್ಸ್ನ ಒಂದು ಪ್ಯಾಕೇಜ್, ಡೇಟಾ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್ನ ವ್ಯಾಕರಣವಾಗಿದೆ ಇದು ನಿಮಗೆ ಸಾಮಾನ್ಯ ಡೇಟಾ ಮ್ಯಾನಿಪ್ಯುಲೇಶನ್ ಸವಾಲುಗಳನ್ನು ಪರಿಹರಿಸಲು ಸಹಾಯ ಮಾಡುವ ಸತತ ಕ್ರಿಯಾಪದಗಳ ಸಮೂಹವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಈ ವಿಭಾಗದಲ್ಲಿ, ನಾವು dplyr ನ ಕೆಲವು ಕ್ರಿಯಾಪದಗಳನ್ನು ಅನ್ವೇಷಿಸುವೆವು! \n",
|
||||
"<br>\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",
|
||||
"`Date` ಕಾಲಮ್ ಬಳಸಿ ಕೆಳಗಿನ ಕಾರ್ಯಗಳನ್ನು ಮಾಡಿ `mutate` ಅನ್ನು ಪ್ರಯೋಗಿಸೋಣ:\n",
|
||||
"\n",
|
||||
"1. ದಿನಾಂಕಗಳನ್ನು (ಈಗಾಗಲೇ character ಪ್ರಕಾರದಲ್ಲಿರುವ) ತಿಂಗಳ ಫಾರ್ಮ್ಯಾಟ್ಗೆ ಪರಿವರ್ತಿಸಿ (ಇವು US ದಿನಾಂಕಗಳು, ಆದ್ದರಿಂದ ಫಾರ್ಮ್ಯಾಟ್ `MM/DD/YYYY` ಆಗಿದೆ).\n",
|
||||
"\n",
|
||||
"2. ದಿನಾಂಕಗಳಿಂದ ತಿಂಗಳನ್ನೊಂದು ಹೊಸ ಕಾಲಮ್ಗೆ ತೆಗೆದುಹಾಕಿ.\n",
|
||||
"\n",
|
||||
"R ನಲ್ಲಿ, [lubridate](https://lubridate.tidyverse.org/) ಪ್ಯಾಕೇಜ್ Date-time ಡೇಟಾ ಜೊತೆ ಕೆಲಸ ಮಾಡಲು ಸುಲಭವಾಗಿಸುತ್ತದೆ. ಆದ್ದರಿಂದ, `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": [
|
||||
"ವಾಹ್! 🤩\n",
|
||||
"\n",
|
||||
"ಮುಂದೆ, ನಾವು ಹೊಸ ಕಾಲಮ್ `Price` ಅನ್ನು ರಚಿಸೋಣ, ಇದು ಒಂದು ಕಂಬಳದ ಸರಾಸರಿ ಬೆಲೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಈಗ, ಹೊಸ Price ಕಾಲಮ್ ಅನ್ನು ತುಂಬಲು `Low Price` ಮತ್ತು `High Price` ಕಾಲಮ್ಗಳ ಸರಾಸರಿ ತೆಗೆದುಕೊಳ್ಳೋಣ.\n",
|
||||
"<br>\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 ಬಷೆಲ್` ಅಳತೆಯಲ್ಲಿ ಮಾರಾಟವಾಗುತ್ತವೆ, ಕೆಲವು `1/2 ಬಷೆಲ್` ಅಳತೆಯಲ್ಲಿ, ಕೆಲವು ಪ್ರತಿ ಕಂಬಳಿಗೆ, ಕೆಲವು ಪ್ರತಿ ಪೌಂಡ್ಗೆ, ಮತ್ತು ಕೆಲವು ಬೃಹತ್ ಬಾಕ್ಸ್ಗಳಲ್ಲಿ ವಿವಿಧ ಅಗಲಗಳೊಂದಿಗೆ.\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",
|
||||
"ಕುಂಬಳಕಾಯಿ ತೂಕವನ್ನು ಸತತವಾಗಿ ಅಳೆಯುವುದು ಬಹಳ ಕಷ್ಟವಾಗುತ್ತದೆ ಎಂದು ತೋರುತ್ತದೆ, ಆದ್ದರಿಂದ `Package` ಕಾಲಮ್ನಲ್ಲಿ *bushel* ಎಂಬ ಸ್ಟ್ರಿಂಗ್ ಇರುವ ಕುಂಬಳಕಾಯಿಗಳನ್ನು ಮಾತ್ರ ಆಯ್ಕೆಮಾಡಿ ಫಿಲ್ಟರ್ ಮಾಡೋಣ ಮತ್ತು ಇದನ್ನು ಹೊಸ ಡೇಟಾ ಫ್ರೇಮ್ `new_pumpkins` ನಲ್ಲಿ ಇಡೋಣ.\n",
|
||||
"<br>\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "7sMjiVujaZxY"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"#### dplyr::filter() ಮತ್ತು stringr::str_detect()\n",
|
||||
"\n",
|
||||
"[`dplyr::filter()`](https://dplyr.tidyverse.org/reference/filter.html): ನಿಮ್ಮ ಶರತ್ತುಗಳನ್ನು ಪೂರೈಸುವ **ಸಾಲುಗಳು** ಮಾತ್ರ ಒಳಗೊಂಡಿರುವ ಡೇಟಾದ ಉಪಸಮೂಹವನ್ನು ರಚಿಸುತ್ತದೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ, `Package` ಕಾಲಮ್ನಲ್ಲಿ *bushel* ಎಂಬ ಸ್ಟ್ರಿಂಗ್ ಇರುವ ಕಂಬಳಿಗಳು.\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": [
|
||||
"ನೀವು ನೋಡಬಹುದು ನಾವು ಬಸ್ಸೆಲ್ ಮೂಲಕ ಕಂಬಳಿಗಳನ್ನು ಹೊಂದಿರುವ ಸುಮಾರು 415 ಸಾಲುಗಳ ಡೇಟಾವನ್ನು ಸೀಮಿತಗೊಳಿಸಿದ್ದೇವೆ.🤩\n",
|
||||
"<br>\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "VrDwF031avlR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"#### dplyr::case_when()\n",
|
||||
"\n",
|
||||
"**ಆದರೆ ಕಾಯಿರಿ! ಇನ್ನೊಂದು ಕೆಲಸ ಮಾಡಬೇಕಿದೆ**\n",
|
||||
"\n",
|
||||
"ನೀವು ಗಮನಿಸಿದ್ದೀರಾ, ಬಷೆಲ್ ಪ್ರಮಾಣವು ಪ್ರತಿ ಸಾಲಿಗೆ ಬದಲಾಗುತ್ತದೆ? ನೀವು ಬೆಲೆಯನ್ನು ಸಾಮಾನ್ಯೀಕರಿಸಬೇಕಾಗಿದೆ, ಹೀಗಾಗಿ ನೀವು ಬೆಲೆಯನ್ನು ಪ್ರತಿ ಬಷೆಲ್ಗೆ ತೋರಿಸಬೇಕು, 1 1/9 ಅಥವಾ 1/2 ಬಷೆಲ್ಗೆ ಅಲ್ಲ. ಅದನ್ನು ಸಾಮಾನ್ಯೀಕರಿಸಲು ಕೆಲವು ಗಣಿತ ಮಾಡಬೇಕಾಗಿದೆ.\n",
|
||||
"\n",
|
||||
"ನಾವು ಕೆಲವು ಶರತ್ತುಗಳ ಆಧಾರದ ಮೇಲೆ ಬೆಲೆ ಕಾಲಮ್ ಅನ್ನು *ಮ್ಯೂಟೇಟ್* ಮಾಡಲು [`case_when()`](https://dplyr.tidyverse.org/reference/case_when.html) ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ. `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) ಪ್ರಕಾರ, ಬಷೆಲ್ನ ತೂಕವು ಉತ್ಪನ್ನದ ಪ್ರಕಾರ ಅವಲಂಬಿತವಾಗಿದ್ದು, ಇದು ಪ್ರಮಾಣದ ಅಳತೆ. \"ಉದಾಹರಣೆಗೆ, ಟೊಮೇಟೋಗಳ ಒಂದು ಬಷೆಲ್ 56 ಪೌಂಡು ತೂಕವಾಗಿರಬೇಕು... ಎಲೆಗಳು ಮತ್ತು ಹಸಿರುಗಳು ಕಡಿಮೆ ತೂಕದೊಂದಿಗೆ ಹೆಚ್ಚು ಜಾಗವನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತವೆ, ಆದ್ದರಿಂದ ಸ್ಪಿನಾಚ್ನ ಒಂದು ಬಷೆಲ್ ಕೇವಲ 20 ಪೌಂಡು ತೂಕದಿರುತ್ತದೆ.\" ಇದು ಎಲ್ಲವೂ ತುಂಬಾ ಸಂಕೀರ್ಣವಾಗಿದೆ! ಬಷೆಲ್-ನಿಂದ ಪೌಂಡಿಗೆ ಪರಿವರ್ತನೆ ಮಾಡುವುದನ್ನು ಬಿಟ್ಟು, ಬಷೆಲ್ ಪ್ರಕಾರ ಬೆಲೆಯನ್ನು ನಿಗದಿಪಡಿಸೋಣ. ಈ ಎಲ್ಲಾ ಕಂಬಳಕಾಯಿ ಬಷೆಲ್ ಅಧ್ಯಯನವು, ಆದಾಗ್ಯೂ, ನಿಮ್ಮ ಡೇಟಾದ ಸ್ವಭಾವವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಎಷ್ಟು ಮುಖ್ಯ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ!\n",
|
||||
">\n",
|
||||
"> ✅ ನೀವು ಗಮನಿಸಿದ್ದೀರಾ, ಅರ್ಧ ಬಷೆಲ್ ಪ್ರಕಾರ ಮಾರಾಟವಾಗುವ ಕಂಬಳಕಾಯಿಗಳು ತುಂಬಾ ದುಬಾರಿ? ನೀವು ಏಕೆ ಎಂದು ಕಂಡುಹಿಡಿಯಬಹುದೇ? ಸೂಚನೆ: ಸಣ್ಣ ಕಂಬಳಕಾಯಿಗಳು ದೊಡ್ಡದಿಗಿಂತ ಬಹಳ ಹೆಚ್ಚು ಬೆಲೆಯಿರುತ್ತವೆ, ಬಹುಶಃ ಏಕೆಂದರೆ ಒಂದು ದೊಡ್ಡ ಹೊಳೆಯುವ ಪೈ ಕಂಬಳಕಾಯಿಯಿಂದ ತೆಗೆದುಕೊಳ್ಳಲಾದ ಉಪಯೋಗಿಸದ ಜಾಗದ ಕಾರಣದಿಂದ, ಬಷೆಲ್ ಪ್ರತಿ ಹೆಚ್ಚು ಸಂಖ್ಯೆಯ ಸಣ್ಣ ಕಂಬಳಕಾಯಿಗಳು ಇರುತ್ತವೆ.\n",
|
||||
"<br>\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",
|
||||
"<br>\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "y8TJ0Za_bn5Y"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"## 4. ggplot2 ಬಳಸಿ ಡೇಟಾ ದೃಶ್ಯೀಕರಣ\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/data-visualization.54e56dded7c1a804d00d027543f2881cb32da73aeadda2d4a4f10f3497526114.kn.png\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ಡಾಸನಿ ಮಡಿಪಳ್ಳಿ ಅವರ ಇನ್ಫೋಗ್ರಾಫಿಕ್</figcaption>\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"<!--{width=\"600\"}-->\n",
|
||||
"\n",
|
||||
"ಇದೀಗ ಒಂದು *ಜ್ಞಾನವಂತ* ಮಾತು ಇದೆ:\n",
|
||||
"\n",
|
||||
"> \"ಸರಳ ಗ್ರಾಫ್ ಡೇಟಾ ವಿಶ್ಲೇಷಕನ ಮನಸ್ಸಿಗೆ ಯಾವುದೇ ಇತರೆ ಸಾಧನಕ್ಕಿಂತ ಹೆಚ್ಚು ಮಾಹಿತಿ ತಂದಿದೆ.\" --- ಜಾನ್ ಟುಕಿ\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) ನಿಂದ ಪ್ರಾರಂಭಿಸಿ, ಡೇಟಾಸೆಟ್ ಮತ್ತು ಅಲಂಕಾರಿಕ ನಕ್ಷೆ (aesthetic mapping) ( [`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",
|
||||
"<br>\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()` ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕಂಬಳಿಗಳನ್ನು **ತಿಂಗಳು** ಕಾಲಮ್ ಆಧಾರಿತ ಗುಂಪುಗಳಾಗಿ ಗುಂಪು ಮಾಡಿ, ನಂತರ ಪ್ರತಿ ತಿಂಗಳಿಗೂ **ಸರಾಸರಿ ಬೆಲೆ** ಕಂಡುಹಿಡಿಯಬಹುದು.\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<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "cc471fa89c293bc735dd3a9a0fb79b1b",
|
||||
"translation_date": "2025-12-19T13:53:56+00:00",
|
||||
"source_file": "2-Regression/3-Linear/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ರೆಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ರಚಿಸಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ ನೀವು ಲೀನಿಯರ್ ಮತ್ತು ಪಾಲಿನೋಮಿಯಲ್ ರೆಗ್ರೆಶನ್ ಎರಡನ್ನೂ ಬಳಸಿಕೊಂಡು ಮಾದರಿಯನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸುವುದು ಎಂದು ತೋರಿಸಲಾಗಿದೆ. ಈ ಜ್ಞಾನವನ್ನು ಬಳಸಿಕೊಂಡು, ಒಂದು ಡೇಟಾಸೆಟ್ ಅನ್ನು ಹುಡುಕಿ ಅಥವಾ Scikit-learn ನ ಒಳಗೊಂಡಿರುವ ಸೆಟ್ಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸಿಕೊಂಡು ಹೊಸ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ. ನೀವು ಆಯ್ಕೆಮಾಡಿದ ತಂತ್ರವನ್ನು ನಿಮ್ಮ ನೋಟ್ಬುಕ್ನಲ್ಲಿ ವಿವರಿಸಿ, ಮತ್ತು ನಿಮ್ಮ ಮಾದರಿಯ ನಿಖರತೆಯನ್ನು ಪ್ರದರ್ಶಿಸಿ. ಅದು ನಿಖರವಾಗದಿದ್ದರೆ, ಕಾರಣವನ್ನು ವಿವರಿಸಿ.
|
||||
|
||||
## ರೂಬ್ರಿಕ್
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | ------------------------------------------------------------ | -------------------------- | ------------------------------- |
|
||||
| | ಚೆನ್ನಾಗಿ ದಾಖಲೆ ಮಾಡಲಾದ ಪೂರ್ಣ ನೋಟ್ಬುಕ್ ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸುತ್ತದೆ | ಪರಿಹಾರ ಅಪೂರ್ಣವಾಗಿದೆ | ಪರಿಹಾರ ದೋಷಪೂರ್ಣ ಅಥವಾ ದೋಷಪೂರಿತವಾಗಿದೆ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,128 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## ಕಂಬಳಿಪಾಯ ಬೆಲೆ\n",
|
||||
"\n",
|
||||
"ಅಗತ್ಯವಾದ ಗ್ರಂಥಾಲಯಗಳು ಮತ್ತು ಡೇಟಾಸೆಟ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಿ. ಡೇಟಾವಿನ ಉಪಸಮೂಹವನ್ನು ಹೊಂದಿರುವ ಡೇಟಾಫ್ರೇಮ್ಗೆ ಡೇಟಾವನ್ನು ಪರಿವರ್ತಿಸಿ:\n",
|
||||
"\n",
|
||||
"- ಬಸ್ಸೆಲ್ ಪ್ರಕಾರ ಬೆಲೆ ನಿಗದಿಗೊಳಿಸಿದ ಕಂಬಳಿಪಾಯಗಳನ್ನು ಮಾತ್ರ ಪಡೆಯಿರಿ\n",
|
||||
"- ದಿನಾಂಕವನ್ನು ತಿಂಗಳಿಗೆ ಪರಿವರ್ತಿಸಿ\n",
|
||||
"- ಬೆಲೆಯನ್ನು ಉನ್ನತ ಮತ್ತು ಕಡಿಮೆ ಬೆಲೆಯ ಸರಾಸರಿ ಎಂದು ಲೆಕ್ಕಹಾಕಿ\n",
|
||||
"- ಬೆಲೆಯನ್ನು ಬಸ್ಸೆಲ್ ಪ್ರಮಾಣದ ಪ್ರಕಾರ ಪ್ರತಿಬಿಂಬಿಸುವಂತೆ ಪರಿವರ್ತಿಸಿ\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<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\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,
|
||||
"coopTranslator": {
|
||||
"original_hash": "b032d371c75279373507f003439a577e",
|
||||
"translation_date": "2025-12-19T16:17:43+00:00",
|
||||
"source_file": "2-Regression/3-Linear/notebook.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T14:08:56+00:00",
|
||||
"source_file": "2-Regression/3-Linear/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "8af40209a41494068c1f42b14c0b450d",
|
||||
"translation_date": "2025-12-19T14:08:21+00:00",
|
||||
"source_file": "2-Regression/4-Logistic/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಕೆಲವು ರಿಗ್ರೆಶನ್ ಮರುಪ್ರಯತ್ನ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಪಾಠದಲ್ಲಿ, ನೀವು ಕಂಬಳಿಯ ಡೇಟಾದ ಉಪಸಮೂಹವನ್ನು ಬಳಸಿದ್ದೀರಿ. ಈಗ, ಮೂಲ ಡೇಟಾಕ್ಕೆ ಹಿಂತಿರುಗಿ, ಅದನ್ನು ಶುದ್ಧೀಕರಿಸಿ ಮತ್ತು ಮಾನಕೀಕೃತಗೊಳಿಸಿ, ಲಾಜಿಸ್ಟಿಕ್ ರಿಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಲು ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಬಳಸಲು ಪ್ರಯತ್ನಿಸಿ.
|
||||
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾತ್ತ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯ |
|
||||
| -------- | ----------------------------------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------- |
|
||||
| | ಚೆನ್ನಾಗಿ ವಿವರಿಸಲ್ಪಟ್ಟ ಮತ್ತು ಉತ್ತಮ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮಾದರಿಯೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ಕನಿಷ್ಠ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮಾದರಿಯೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ಕಡಿಮೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಮಾದರಿಯೊಂದಿಗೆ ಅಥವಾ ಯಾವುದೇ ಮಾದರಿಯಿಲ್ಲದ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T14:10:25+00:00",
|
||||
"source_file": "2-Regression/4-Logistic/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a8e8ae10be335cbc745b75ee552317ff",
|
||||
"translation_date": "2025-12-19T14:15:30+00:00",
|
||||
"source_file": "3-Web-App/1-Web-App/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಬೇರೆ ಮಾದರಿಯನ್ನು ಪ್ರಯತ್ನಿಸಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ನೀವು ಈಗಾಗಲೇ ತರಬೇತಿಗೊಂಡ Regression ಮಾದರಿಯನ್ನು ಬಳಸಿ ಒಂದು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಿದ್ದೀರಿ, ಈಗ ಹಿಂದಿನ Regression ಪಾಠದ ಒಂದು ಮಾದರಿಯನ್ನು ಬಳಸಿ ಈ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಮರುನಿರ್ಮಿಸಿ. ನೀವು ಶೈಲಿಯನ್ನು ಉಳಿಸಬಹುದು ಅಥವಾ ಕಬ್ಬು ಡೇಟಾವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುವಂತೆ ವಿಭಿನ್ನವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಬಹುದು. ನಿಮ್ಮ ಮಾದರಿಯ ತರಬೇತಿ ವಿಧಾನವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುವಂತೆ ಇನ್ಪುಟ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು ಜಾಗರೂಕರಾಗಿರಿ.
|
||||
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆ ಅಗತ್ಯವಿದೆ |
|
||||
| -------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | -------------------------------------- |
|
||||
| | ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರೀಕ್ಷಿತಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಮತ್ತು ಕ್ಲೌಡ್ಗೆ ನಿಯೋಜಿಸಲಾಗಿದೆ | ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ದೋಷಗಳಿವೆ ಅಥವಾ ಅಪ್ರತೀಕ್ಷಿತ ಫಲಿತಾಂಶಗಳನ್ನು ತೋರಿಸುತ್ತದೆ | ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,269 @@
|
||||
{
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "5fa2e8f4584c78250ca9729b46562ceb",
|
||||
"translation_date": "2025-12-19T16:48:25+00:00",
|
||||
"source_file": "3-Web-App/1-Web-App/solution/notebook.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2,
|
||||
"cells": [
|
||||
{
|
||||
"source": [
|
||||
"## ಯುಎಫ್ಒ ದೃಶ್ಯೀಕರಣವನ್ನು ತಿಳಿಯಲು ರಿಗ್ರೆಶನ್ ಮಾದರಿಯನ್ನು ಬಳಸಿ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಿ\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": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>datetime</th>\n <th>city</th>\n <th>state</th>\n <th>country</th>\n <th>shape</th>\n <th>duration (seconds)</th>\n <th>duration (hours/min)</th>\n <th>comments</th>\n <th>date posted</th>\n <th>latitude</th>\n <th>longitude</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>10/10/1949 20:30</td>\n <td>san marcos</td>\n <td>tx</td>\n <td>us</td>\n <td>cylinder</td>\n <td>2700.0</td>\n <td>45 minutes</td>\n <td>This event took place in early fall around 194...</td>\n <td>4/27/2004</td>\n <td>29.883056</td>\n <td>-97.941111</td>\n </tr>\n <tr>\n <th>1</th>\n <td>10/10/1949 21:00</td>\n <td>lackland afb</td>\n <td>tx</td>\n <td>NaN</td>\n <td>light</td>\n <td>7200.0</td>\n <td>1-2 hrs</td>\n <td>1949 Lackland AFB&#44 TX. Lights racing acros...</td>\n <td>12/16/2005</td>\n <td>29.384210</td>\n <td>-98.581082</td>\n </tr>\n <tr>\n <th>2</th>\n <td>10/10/1955 17:00</td>\n <td>chester (uk/england)</td>\n <td>NaN</td>\n <td>gb</td>\n <td>circle</td>\n <td>20.0</td>\n <td>20 seconds</td>\n <td>Green/Orange circular disc over Chester&#44 En...</td>\n <td>1/21/2008</td>\n <td>53.200000</td>\n <td>-2.916667</td>\n </tr>\n <tr>\n <th>3</th>\n <td>10/10/1956 21:00</td>\n <td>edna</td>\n <td>tx</td>\n <td>us</td>\n <td>circle</td>\n <td>20.0</td>\n <td>1/2 hour</td>\n <td>My older brother and twin sister were leaving ...</td>\n <td>1/17/2004</td>\n <td>28.978333</td>\n <td>-96.645833</td>\n </tr>\n <tr>\n <th>4</th>\n <td>10/10/1960 20:00</td>\n <td>kaneohe</td>\n <td>hi</td>\n <td>us</td>\n <td>light</td>\n <td>900.0</td>\n <td>15 minutes</td>\n <td>AS a Marine 1st Lt. flying an FJ4B fighter/att...</td>\n <td>1/22/2004</td>\n <td>21.418056</td>\n <td>-157.803611</td>\n </tr>\n </tbody>\n</table>\n</div>"
|
||||
},
|
||||
"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": [
|
||||
"<class 'pandas.core.frame.DataFrame'>\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": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>Seconds</th>\n <th>Country</th>\n <th>Latitude</th>\n <th>Longitude</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>2</th>\n <td>20.0</td>\n <td>3</td>\n <td>53.200000</td>\n <td>-2.916667</td>\n </tr>\n <tr>\n <th>3</th>\n <td>20.0</td>\n <td>4</td>\n <td>28.978333</td>\n <td>-96.645833</td>\n </tr>\n <tr>\n <th>14</th>\n <td>30.0</td>\n <td>4</td>\n <td>35.823889</td>\n <td>-80.253611</td>\n </tr>\n <tr>\n <th>23</th>\n <td>60.0</td>\n <td>4</td>\n <td>45.582778</td>\n <td>-122.352222</td>\n </tr>\n <tr>\n <th>24</th>\n <td>3.0</td>\n <td>3</td>\n <td>51.783333</td>\n <td>-0.783333</td>\n </tr>\n </tbody>\n</table>\n</div>"
|
||||
},
|
||||
"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<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕಾರ**: \nಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "9836ff53cfef716ddfd70e06c5f43436",
|
||||
"translation_date": "2025-12-19T12:59:59+00:00",
|
||||
"source_file": "3-Web-App/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ನಿಮ್ಮ ML ಮಾದರಿಯನ್ನು ಬಳಸಲು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಿ
|
||||
|
||||
ಈ ಪಠ್ಯಕ್ರಮದ ವಿಭಾಗದಲ್ಲಿ, ನೀವು ಅನ್ವಯಿತ ML ವಿಷಯವನ್ನು ಪರಿಚಯಿಸಿಕೊಳ್ಳುತ್ತೀರಿ: ನಿಮ್ಮ Scikit-learn ಮಾದರಿಯನ್ನು ಫೈಲ್ ಆಗಿ ಉಳಿಸುವುದು, ಅದನ್ನು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಭವಿಷ್ಯವಾಣಿ ಮಾಡಲು ಬಳಸಬಹುದು. ಮಾದರಿ ಉಳಿಸಿದ ನಂತರ, ನೀವು ಅದನ್ನು Flask ನಲ್ಲಿ ನಿರ್ಮಿಸಲಾದ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಹೇಗೆ ಬಳಸುವುದು ಎಂದು ಕಲಿಯುತ್ತೀರಿ. ಮೊದಲು, ನೀವು UFO ದೃಶ್ಯಗಳ ಬಗ್ಗೆ ಇರುವ ಕೆಲವು ಡೇಟಾ ಬಳಸಿ ಮಾದರಿಯನ್ನು ರಚಿಸುವಿರಿ! ನಂತರ, ನೀವು ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆ, ಅಕ್ಷಾಂಶ ಮತ್ತು ರೇಖಾಂಶ ಮೌಲ್ಯವನ್ನು ನಮೂದಿಸಲು ಅನುಮತಿಸುವ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸುವಿರಿ, ಅದು ಯಾವ ದೇಶ UFO ನೋಡಿದ ಎಂದು ಭವಿಷ್ಯವಾಣಿ ಮಾಡುತ್ತದೆ.
|
||||
|
||||

|
||||
|
||||
ಚಿತ್ರವನ್ನು <a href="https://unsplash.com/@mdherren?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">ಮೈಕೆಲ್ ಹೆರೆನ್</a> ಅವರು <a href="https://unsplash.com/s/photos/ufo?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">ಅನ್ಸ್ಪ್ಲ್ಯಾಶ್</a> ನಲ್ಲಿ ತೆಗೆದಿದ್ದಾರೆ
|
||||
|
||||
## ಪಾಠಗಳು
|
||||
|
||||
1. [ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಿ](1-Web-App/README.md)
|
||||
|
||||
## ಕ್ರೆಡಿಟ್ಗಳು
|
||||
|
||||
"ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಿ" ಅನ್ನು ♥️ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ರವರು ಬರೆಯಲಾಗಿದೆ.
|
||||
|
||||
♥️ ಪ್ರಶ್ನೋತ್ತರಗಳನ್ನು ರೋಹನ್ ರಾಜ್ ರವರು ಬರೆಯಲಾಗಿದೆ.
|
||||
|
||||
ಡೇಟಾಸೆಟ್ ಅನ್ನು [ಕಾಗಲ್](https://www.kaggle.com/NUFORC/ufo-sightings) ನಿಂದ ಪಡೆದಿದೆ.
|
||||
|
||||
ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ಭಾಗಶಃ [ಈ ಲೇಖನ](https://towardsdatascience.com/how-to-easily-deploy-machine-learning-models-using-flask-b95af8fe34d4) ಮತ್ತು ಅಭಿನವ್ ಸಾಗರ್ ಅವರ [ಈ ರೆಪೊ](https://github.com/abhinavsagar/machine-learning-deployment) ಸೂಚಿಸಿದ್ದಾರೆ.
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "b2a01912beb24cfb0007f83594dba801",
|
||||
"translation_date": "2025-12-19T15:21:20+00:00",
|
||||
"source_file": "4-Classification/1-Introduction/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ವರ್ಗೀಕರಣ ವಿಧಾನಗಳನ್ನು ಅನ್ವೇಷಿಸಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
[Scikit-learn ಡಾಕ್ಯುಮೆಂಟೇಶನ್](https://scikit-learn.org/stable/supervised_learning.html) ನಲ್ಲಿ ನೀವು ಡೇಟಾವನ್ನು ವರ್ಗೀಕರಿಸುವ ಹಲವು ವಿಧಾನಗಳ ದೊಡ್ಡ ಪಟ್ಟಿ ಕಂಡುಹಿಡಿಯಬಹುದು. ಈ ಡಾಕ್ಯುಮೆಂಟ್ಗಳಲ್ಲಿ ಸ್ವಲ್ಪ ಹುಡುಕಾಟ ಮಾಡಿ: ನಿಮ್ಮ ಗುರಿ ವರ್ಗೀಕರಣ ವಿಧಾನಗಳನ್ನು ಹುಡುಕಿ, ಈ ಪಠ್ಯಕ್ರಮದಲ್ಲಿರುವ ಡೇಟಾಸೆಟ್ಗಳಿಗೆ ಹೊಂದಿಸಿ, ಅದಕ್ಕೆ ಕೇಳಬಹುದಾದ ಪ್ರಶ್ನೆಯನ್ನು ಮತ್ತು ವರ್ಗೀಕರಣ ತಂತ್ರವನ್ನು ಹೊಂದಿಸಿ. .doc ಫೈಲ್ನಲ್ಲಿ ಸ್ಪ್ರೆಡ್ಶೀಟ್ ಅಥವಾ ಟೇಬಲ್ ರಚಿಸಿ ಮತ್ತು ಡೇಟಾಸೆಟ್ ವರ್ಗೀಕರಣ ಆಲ್ಗೋರಿದಮ್ಗಳೊಂದಿಗೆ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ವಿವರಿಸಿ.
|
||||
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯ |
|
||||
| -------- | ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| | 5 ಆಲ್ಗೋರಿದಮ್ಗಳೊಂದಿಗೆ ವರ್ಗೀಕರಣ ತಂತ್ರವನ್ನು ವಿವರಿಸುವ ಡಾಕ್ಯುಮೆಂಟ್ ಒದಗಿಸಲಾಗಿದೆ. ಅವಲೋಕನ ಚೆನ್ನಾಗಿ ವಿವರಿಸಲಾಗಿದೆ ಮತ್ತು ವಿವರವಾದದ್ದು. | 3 ಆಲ್ಗೋರಿದಮ್ಗಳೊಂದಿಗೆ ವರ್ಗೀಕರಣ ತಂತ್ರವನ್ನು ವಿವರಿಸುವ ಡಾಕ್ಯುಮೆಂಟ್ ಒದಗಿಸಲಾಗಿದೆ. ಅವಲೋಕನ ಚೆನ್ನಾಗಿ ವಿವರಿಸಲಾಗಿದೆ ಮತ್ತು ವಿವರವಾದದ್ದು. | 3 ಕ್ಕಿಂತ ಕಡಿಮೆ ಆಲ್ಗೋರಿದಮ್ಗಳೊಂದಿಗೆ ವರ್ಗೀಕರಣ ತಂತ್ರವನ್ನು ವಿವರಿಸುವ ಡಾಕ್ಯುಮೆಂಟ್ ಒದಗಿಸಲಾಗಿದೆ ಮತ್ತು ಅವಲೋಕನ ಚೆನ್ನಾಗಿ ವಿವರಿಸಲ್ಪಟ್ಟಿಲ್ಲ ಅಥವಾ ವಿವರವಾದದ್ದು ಅಲ್ಲ. |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,41 @@
|
||||
{
|
||||
"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,
|
||||
"coopTranslator": {
|
||||
"original_hash": "d544ef384b7ba73757d830a72372a7f2",
|
||||
"translation_date": "2025-12-19T17:02:36+00:00",
|
||||
"source_file": "4-Classification/1-Introduction/notebook.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2,
|
||||
"cells": [
|
||||
{
|
||||
"source": [
|
||||
"# ರುಚಿಕರ ಏಷ್ಯನ್ ಮತ್ತು ಭಾರತೀಯ ಆಹಾರಗಳು\n"
|
||||
],
|
||||
"cell_type": "markdown",
|
||||
"metadata": {}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T15:37:10+00:00",
|
||||
"source_file": "4-Classification/1-Introduction/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,731 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "2621e24705e8100893c9bf84e0fc8aef",
|
||||
"translation_date": "2025-12-19T17:08:55+00:00",
|
||||
"source_file": "4-Classification/1-Introduction/solution/R/lesson_10-R.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"# ವರ್ಗೀಕರಣ ಮಾದರಿ ನಿರ್ಮಿಸಿ: ರುಚಿಕರ ಏಷ್ಯನ್ ಮತ್ತು ಭಾರತೀಯ ಆಹಾರಗಳು\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "ItETB4tSFprR"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"## ವರ್ಗೀಕರಣಕ್ಕೆ ಪರಿಚಯ: ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ, ಸಿದ್ಧಪಡಿಸಿ ಮತ್ತು ದೃಶ್ಯೀಕರಿಸಿ\n",
|
||||
"\n",
|
||||
"ಈ ನಾಲ್ಕು ಪಾಠಗಳಲ್ಲಿ, ನೀವು ಕ್ಲಾಸಿಕ್ ಯಂತ್ರ ಅಧ್ಯಯನದ ಮೂಲಭೂತ ಗಮನಾರ್ಹ ವಿಷಯವಾದ *ವರ್ಗೀಕರಣ* ಅನ್ನು ಅನ್ವೇಷಿಸುವಿರಿ. ಏಷ್ಯಾ ಮತ್ತು ಭಾರತದಲ್ಲಿನ ಎಲ್ಲಾ ಅದ್ಭುತ ಆಹಾರಗಳ ಬಗ್ಗೆ ಇರುವ ಡೇಟಾಸೆಟ್ನೊಂದಿಗೆ ವಿವಿಧ ವರ್ಗೀಕರಣ ಆಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಬಳಸುವುದನ್ನು ನಾವು ಹಾದುಹೋಗುತ್ತೇವೆ. ನೀವು ಹಸಿವಾಗಿದ್ದೀರಾ ಎಂದು ಆಶಿಸುತ್ತೇವೆ!\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/pinch.1b035ec9ba7e0d408313b551b60c721c9c290b2dd2094115bc87e6ddacd114c9.kn.png\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ಈ ಪಾಠಗಳಲ್ಲಿ ಪ್ಯಾನ್-ಏಷಿಯನ್ ಆಹಾರಗಳನ್ನು ಆಚರಿಸಿ! ಚಿತ್ರ: ಜೆನ್ ಲೂಪರ್</figcaption>\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",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/binary-multiclass.b56d0c86c81105a697dddd82242c1d11e4d78b7afefea07a44627a0f1111c1a9.kn.png\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ವರ್ಗೀಕರಣ ಆಲ್ಗಾರಿಥಮ್ಗಳು ನಿರ್ವಹಿಸಬೇಕಾದ ದ್ವಿಪದ ಮತ್ತು ಬಹುಪದ ಸಮಸ್ಯೆಗಳು. ಇನ್ಫೋಗ್ರಾಫಿಕ್: ಜೆನ್ ಲೂಪರ್</figcaption>\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"ನಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸುವ, ದೃಶ್ಯೀಕರಿಸುವ ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನ ಕಾರ್ಯಗಳಿಗೆ ಸಿದ್ಧಪಡಿಸುವ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, ಯಂತ್ರ ಅಧ್ಯಯನವನ್ನು ಡೇಟಾವನ್ನು ವರ್ಗೀಕರಿಸಲು ಬಳಸಬಹುದಾದ ವಿವಿಧ ಮಾರ್ಗಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳೋಣ.\n",
|
||||
"\n",
|
||||
"[ಸಂಖ್ಯಾಶಾಸ್ತ್ರ](https://wikipedia.org/wiki/Statistical_classification)ದಿಂದ ಪಡೆದ, ಕ್ಲಾಸಿಕ್ ಯಂತ್ರ ಅಧ್ಯಯನ ಬಳಸಿ ವರ್ಗೀಕರಣವು `ಧೂಮಪಾನಿ`, `ತೂಕ`, ಮತ್ತು `ವಯಸ್ಸು` ಮುಂತಾದ ಲಕ್ಷಣಗಳನ್ನು ಬಳಸಿಕೊಂಡು *X ರೋಗದ ಸಂಭವನೀಯತೆ* ಅನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ. ನೀವು ಮೊದಲು ಮಾಡಿದ ರಿಗ್ರೆಷನ್ ಅಭ್ಯಾಸಗಳಂತೆ, ಇದು ಒಂದು ನಿರೀಕ್ಷಿತ ಅಧ್ಯಯನ ತಂತ್ರವಾಗಿದೆ, ನಿಮ್ಮ ಡೇಟಾ ಲೇಬಲ್ ಮಾಡಲ್ಪಟ್ಟಿದ್ದು, ಯಂತ್ರ ಅಧ್ಯಯನ ಆಲ್ಗಾರಿಥಮ್ಗಳು ಆ ಲೇಬಲ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾಸೆಟ್ನ ವರ್ಗಗಳನ್ನು (ಅಥವಾ 'ಲಕ್ಷಣಗಳನ್ನು') ವರ್ಗೀಕರಿಸಿ ಭವಿಷ್ಯವಾಣಿ ಮಾಡುತ್ತವೆ ಮತ್ತು ಅವುಗಳನ್ನು ಗುಂಪು ಅಥವಾ ಫಲಿತಾಂಶಕ್ಕೆ ನಿಯೋಜಿಸುತ್ತವೆ.\n",
|
||||
"\n",
|
||||
"✅ ಆಹಾರಗಳ ಬಗ್ಗೆ ಒಂದು ಡೇಟಾಸೆಟ್ ಅನ್ನು ಕಲ್ಪಿಸಿ. ಬಹುಪದ ಮಾದರಿ ಏನು ಉತ್ತರಿಸಬಹುದು? ದ್ವಿಪದ ಮಾದರಿ ಏನು ಉತ್ತರಿಸಬಹುದು? ನೀವು ಒಂದು ನಿರ್ದಿಷ್ಟ ಆಹಾರದಲ್ಲಿ ಮೆಂತ್ಯ ಬಳಕೆಯಾಗುವ ಸಾಧ್ಯತೆಯನ್ನು ನಿರ್ಧರಿಸಲು ಬಯಸಿದರೆ? ನೀವು ಸ್ಟಾರ್ ಅನೀಸ್, ಆರ್ಟಿಚೋಕ್, ಹೂಕೋಸು ಮತ್ತು ಹರ್ಸರಾಡಿಷ್ ತುಂಬಿದ ಗ್ರೋಸರಿ ಬ್ಯಾಗ್ ಇದ್ದಾಗ, ನೀವು ಸಾಮಾನ್ಯ ಭಾರತೀಯ ವಾನಗಿಯನ್ನು ರಚಿಸಬಹುದೇ ಎಂದು ನೋಡಲು ಬಯಸಿದರೆ?\n",
|
||||
"\n",
|
||||
"### **ಹಲೋ 'ವರ್ಗೀಕರಣಕಾರ'**\n",
|
||||
"\n",
|
||||
"ನಾವು ಈ ಆಹಾರ ಡೇಟಾಸೆಟ್ಗೆ ಕೇಳಬೇಕಾದ ಪ್ರಶ್ನೆ ವಾಸ್ತವವಾಗಿ ಒಂದು **ಬಹುಪದ ಪ್ರಶ್ನೆ**, ಏಕೆಂದರೆ ನಾವು ಹಲವಾರು ರಾಷ್ಟ್ರೀಯ ಆಹಾರಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದೇವೆ. ಪದಾರ್ಥಗಳ ಒಂದು ಬ್ಯಾಚ್ ನೀಡಿದಾಗ, ಈ ಅನೇಕ ವರ್ಗಗಳಲ್ಲಿ ಯಾವುದು ಡೇಟಾ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ?\n",
|
||||
"\n",
|
||||
"ಟಿಡಿಮೋಡಲ್ಸ್ ವಿವಿಧ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಬಳಸಬಹುದಾದ ವಿವಿಧ ಆಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಮುಂದಿನ ಎರಡು ಪಾಠಗಳಲ್ಲಿ, ನೀವು ಈ ಆಲ್ಗಾರಿಥಮ್ಗಳ ಬಗ್ಗೆ ತಿಳಿಯುವಿರಿ.\n",
|
||||
"\n",
|
||||
"#### **ಪೂರ್ವಾಪೇಕ್ಷಿತ**\n",
|
||||
"\n",
|
||||
"ಈ ಪಾಠಕ್ಕಾಗಿ, ನಾವು ನಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಲು, ಸಿದ್ಧಪಡಿಸಲು ಮತ್ತು ದೃಶ್ಯೀಕರಿಸಲು ಕೆಳಗಿನ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು ಅಗತ್ಯವಿದೆ:\n",
|
||||
"\n",
|
||||
"- `tidyverse`: [ಟಿಡಿವರ್ಸ್](https://www.tidyverse.org/) ಒಂದು [R ಪ್ಯಾಕೇಜ್ಗಳ ಸಂಗ್ರಹ](https://www.tidyverse.org/packages) ಆಗಿದ್ದು, ಡೇಟಾ ವಿಜ್ಞಾನವನ್ನು ವೇಗವಾಗಿ, ಸುಲಭವಾಗಿ ಮತ್ತು ಮನರಂಜನೀಯವಾಗಿ ಮಾಡುತ್ತದೆ!\n",
|
||||
"\n",
|
||||
"- `tidymodels`: [ಟಿಡಿಮೋಡಲ್ಸ್](https://www.tidymodels.org/) ಫ್ರೇಮ್ವರ್ಕ್ ಒಂದು [ಪ್ಯಾಕೇಜ್ಗಳ ಸಂಗ್ರಹ](https://www.tidymodels.org/packages/) ಆಗಿದ್ದು, ಮಾದರೀಕರಣ ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕೆ ಉಪಯುಕ್ತವಾಗಿದೆ.\n",
|
||||
"\n",
|
||||
"- `DataExplorer`: [ಡೇಟಾ ಎಕ್ಸ್ಪ್ಲೋರರ್ ಪ್ಯಾಕೇಜ್](https://cran.r-project.org/web/packages/DataExplorer/vignettes/dataexplorer-intro.html) EDA ಪ್ರಕ್ರಿಯೆ ಮತ್ತು ವರದಿ ತಯಾರಿಕೆಯನ್ನು ಸರಳಗೊಳಿಸಲು ಮತ್ತು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು ಉದ್ದೇಶಿಸಲಾಗಿದೆ.\n",
|
||||
"\n",
|
||||
"- `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",
|
||||
"ಮುಂದೆ, ಪ್ರತಿ ಅಡುಗೆಶೈಲಿಯನ್ನು ಅದರ ಸ್ವತಂತ್ರ ಟಿಬಲ್ಗೆ ಹಂಚಿ ಮತ್ತು ಪ್ರತಿ ಅಡುಗೆಶೈಲಿಗೆ ಎಷ್ಟು ಡೇಟಾ ಲಭ್ಯವಿದೆ (ಸಾಲುಗಳು, ಕಾಲಮ್ಗಳು) ಎಂದು ಕಂಡುಹಿಡಿಯೋಣ.\n",
|
||||
"\n",
|
||||
"> [ಟಿಬಲ್](https://tibble.tidyverse.org/) ಒಂದು ಆಧುನಿಕ ಡೇಟಾ ಫ್ರೇಮ್ ಆಗಿದೆ.\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/dplyr_filter.b480b264b03439ff7051232a8de1df9a8fd4df723db316feb4f9f5e990db4318.kn.jpg\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ಕಲಾಕೃತಿ @allison_horst ಅವರಿಂದ</figcaption>\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": [
|
||||
"Perfect!😋\n",
|
||||
"\n",
|
||||
"## **ವ್ಯಾಯಾಮ - dplyr ಬಳಸಿ ಆಹಾರ ಪ್ರಕಾರದ ಪ್ರಾಥಮಿಕ ಪದಾರ್ಥಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವುದು**\n",
|
||||
"\n",
|
||||
"ಈಗ ನೀವು ಡೇಟಾದಲ್ಲಿ ಇನ್ನಷ್ಟು ಆಳವಾಗಿ ಹೋಗಿ ಪ್ರತಿ ಆಹಾರ ಪ್ರಕಾರದ ಸಾಮಾನ್ಯ ಪದಾರ್ಥಗಳು ಯಾವುವು ಎಂದು ತಿಳಿದುಕೊಳ್ಳಬಹುದು. ಆಹಾರ ಪ್ರಕಾರಗಳ ನಡುವೆ ಗೊಂದಲ ಉಂಟುಮಾಡುವ ಪುನರಾವರ್ತಿತ ಡೇಟಾವನ್ನು ನೀವು ಶುದ್ಧೀಕರಿಸಬೇಕು, ಆದ್ದರಿಂದ ಈ ಸಮಸ್ಯೆಯ ಬಗ್ಗೆ ತಿಳಿದುಕೊಳ್ಳೋಣ.\n",
|
||||
"\n",
|
||||
"R ನಲ್ಲಿ `create_ingredient()` ಎಂಬ ಫಂಕ್ಷನ್ ಅನ್ನು ರಚಿಸಿ, ಇದು ಒಂದು ಪದಾರ್ಥ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಈ ಫಂಕ್ಷನ್ ಒಂದು ಅನಗತ್ಯ ಕಾಲಮ್ ಅನ್ನು ತೆಗೆದುಹಾಕುವುದರಿಂದ ಪ್ರಾರಂಭಿಸಿ, ಪದಾರ್ಥಗಳನ್ನು ಅವರ ಎಣಿಕೆಯ ಮೂಲಕ ಕ್ರಮಬದ್ಧಗೊಳಿಸುತ್ತದೆ.\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",
|
||||
"Allison Horst ರವರ [*ಕಲೆಯೊಂದಿಗೆ* ತುಂಬಿದ learnr ಟ್ಯುಟೋರಿಯಲ್](https://allisonhorst.shinyapps.io/dplyr-learnr/#section-welcome) ಅನ್ನು ನೋಡಿ, ಇದು 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",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/recipes.186acfa8ed2e8f0059ce17ef22c9452d7b25e7e1e4b044573bacec9a18e040d2.kn.png\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ಕಲಾಕೃತಿ @allison_horst ಅವರಿಂದ</figcaption>\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": [
|
||||
"ನೀವು ನೋಡಬಹುದು, ಆಹಾರದ ಪ್ರಕಾರಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ ಬಹಳ ಅಸಮಾನ ವಿತರಣೆಯಿದೆ. ಕೊರಿಯನ್ ಆಹಾರಗಳು ತಾಯ್ ಆಹಾರಗಳಿಗಿಂತ ಸುಮಾರು 3 ಪಟ್ಟು ಹೆಚ್ಚು. ಅಸಮತೋಲನದ ಡೇಟಾ ಸಾಮಾನ್ಯವಾಗಿ ಮಾದರಿ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ನಕಾರಾತ್ಮಕ ಪರಿಣಾಮಗಳನ್ನು ಉಂಟುಮಾಡುತ್ತದೆ. ದ್ವಿಪದ ವರ್ಗೀಕರಣವನ್ನು ಯೋಚಿಸಿ. ನಿಮ್ಮ ಡೇಟಾದ ಬಹುಮತವು ಒಂದು ವರ್ಗವಾಗಿದ್ದರೆ, ಒಂದು ಯಂತ್ರ ಕಲಿಕೆ ಮಾದರಿ ಆ ವರ್ಗವನ್ನು ಹೆಚ್ಚು ಬಾರಿ ಭವಿಷ್ಯವಾಣಿ ಮಾಡುತ್ತದೆ, ಏಕೆಂದರೆ ಅದಕ್ಕೆ ಹೆಚ್ಚು ಡೇಟಾ ಇದೆ. ಡೇಟಾವನ್ನು ಸಮತೋಲನಗೊಳಿಸುವುದು ಯಾವುದೇ ತಿರುವು ಹೊಂದಿದ ಡೇಟಾವನ್ನು ತೆಗೆದು ಈ ಅಸಮತೋಲನವನ್ನು ತೆಗೆದುಹಾಕಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಬಹುತೆಕ ಮಾದರಿಗಳು ಗಮನಗಳ ಸಂಖ್ಯೆ ಸಮಾನವಾಗಿದ್ದಾಗ ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಮತ್ತು ಆದ್ದರಿಂದ ಅಸಮತೋಲನ ಡೇಟಾದೊಂದಿಗೆ ಹೋರಾಡುತ್ತವೆ.\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()` ಗೆ ಕರೆ ಮಾಡುವುದರಿಂದ `df_select` ಡೇಟಾವನ್ನು ಉಲ್ಲೇಖವಾಗಿ ಬಳಸಿಕೊಂಡು ಚರಗಳ *ಪಾತ್ರಗಳನ್ನು* ರೆಸಿಪಿಗೆ ತಿಳಿಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಗೆ `cuisine` ಕಾಲಮ್ಗೆ `outcome` ಪಾತ್ರವನ್ನು ನೀಡಲಾಗಿದೆ, ಉಳಿದ ಕಾಲಮ್ಗಳಿಗೆ `predictor` ಪಾತ್ರವನ್ನು ನೀಡಲಾಗಿದೆ.\n",
|
||||
"\n",
|
||||
"- [`step_smote(cuisine)`](https://themis.tidymodels.org/reference/step_smote.html) ಅಲ್ಪಸಂಖ್ಯಾತ ವರ್ಗದ ಹೊಸ ಉದಾಹರಣೆಗಳನ್ನು ಸಮೀಪದ ನೆರೆಹೊರೆಯವರನ್ನು ಬಳಸಿ ಸೃಷ್ಟಿಸುವ ರೆಸಿಪಿ ಹಂತದ *ವಿವರಣೆ* ರಚಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"ಈಗ, ನಾವು ಪೂರ್ವಸಿದ್ಧ ಡೇಟಾವನ್ನು ನೋಡಲು ಬಯಸಿದರೆ, ನಾವು [**`prep()`**](https://recipes.tidymodels.org/reference/prep.html) ಮತ್ತು [**`bake()`**](https://recipes.tidymodels.org/reference/bake.html) ನಮ್ಮ ರೆಸಿಪಿಯನ್ನು ಬಳಸಬೇಕಾಗುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"`prep()`: ತರಬೇತಿ ಸೆಟ್ನಿಂದ ಅಗತ್ಯವಾದ ಪರಿಮಾಣಗಳನ್ನು ಅಂದಾಜು ಮಾಡುತ್ತದೆ, ಅವುಗಳನ್ನು ನಂತರ ಇತರ ಡೇಟಾ ಸೆಟ್ಗಳಿಗೆ ಅನ್ವಯಿಸಬಹುದು.\n",
|
||||
"\n",
|
||||
"`bake()`: ಪೂರ್ವಸಿದ್ಧ ರೆಸಿಪಿಯನ್ನು ತೆಗೆದುಕೊಂಡು ಯಾವುದೇ ಡೇಟಾ ಸೆಟ್ಗೆ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ.\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",
|
||||
"> ಆದ್ದರಿಂದ, ನೀವು ಸಾಮಾನ್ಯವಾಗಿ tidymodels ಬಳಸುವಾಗ **`prep()`** ಮತ್ತು **`bake()`** ರೆಸಿಪಿಗಳನ್ನು ಬಳಸಬೇಕಾಗಿಲ್ಲ, ಆದರೆ ಅವು ನಿಮ್ಮ ಉಪಕರಣಸಂಚಯದಲ್ಲಿ ಸಹಾಯಕ ಕಾರ್ಯಗಳಾಗಿವೆ, ನಮ್ಮ ಪ್ರಕರಣದಲ್ಲಿ ರೆಸಿಪಿಗಳು ನೀವು ನಿರೀಕ್ಷಿಸುವಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವುದನ್ನು ದೃಢೀಕರಿಸಲು.\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",
|
||||
"- ಟಿಡಿ ಮಾದರಿಗಳು [ಉಲ್ಲೇಖ ವೆಬ್ಸೈಟ್](https://www.tidymodels.org/start/).\n",
|
||||
"\n",
|
||||
"- H. ವಿಕ್ಹ್ಯಾಮ್ ಮತ್ತು G. ಗ್ರೋಲೆಮಂಡ್, [*R for Data Science: Visualize, Model, Transform, Tidy, and Import Data*](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",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/r_learners_sm.cd14eb3581a9f28d32086cc042ee8c46f621a5b4e0d59c75f7c642d891327043.kn.jpeg\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ಕಲಾಕೃತಿ @allison_horst ಅವರಿಂದ</figcaption>\n"
|
||||
],
|
||||
"metadata": {
|
||||
"id": "WQs5621pMGwf"
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,25 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "de6025f96841498b0577e9d1aee18d1f",
|
||||
"translation_date": "2025-12-19T15:36:34+00:00",
|
||||
"source_file": "4-Classification/2-Classifiers-1/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಸೊಲ್ವರ್ಗಳನ್ನು ಅಧ್ಯಯನ ಮಾಡಿ
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ ನೀವು ಯಂತ್ರ ಅಧ್ಯಯನ ಪ್ರಕ್ರಿಯೆಯೊಂದಿಗೆ ಅಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಜೋಡಿಸುವ ವಿವಿಧ ಸೊಲ್ವರ್ಗಳ ಬಗ್ಗೆ ಕಲಿತಿರಿ, ಅವುಗಳು ನಿಖರ ಮಾದರಿಯನ್ನು ರಚಿಸುತ್ತವೆ. ಪಾಠದಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾದ ಸೊಲ್ವರ್ಗಳ ಮೂಲಕ ಸಾಗಿರಿ ಮತ್ತು ಎರಡು ಸೊಲ್ವರ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ. ನಿಮ್ಮ ಸ್ವಂತ ಪದಗಳಲ್ಲಿ, ಈ ಎರಡು ಸೊಲ್ವರ್ಗಳನ್ನು ಹೋಲಿಸಿ ಮತ್ತು ಭೇದಿಸಿ. ಅವು ಯಾವ ರೀತಿಯ ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸುತ್ತವೆ? ಅವು ವಿವಿಧ ಡೇಟಾ ರಚನೆಗಳೊಂದಿಗೆ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತವೆ? ನೀವು ಒಂದನ್ನು ಮತ್ತೊಂದಕ್ಕಿಂತ ಏಕೆ ಆಯ್ಕೆಮಾಡುತ್ತೀರಿ?
|
||||
## ರೂಬ್ರಿಕ್
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯ |
|
||||
| -------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- |
|
||||
| | ಎರಡು ಪ್ಯಾರಾಗ್ರಾಫ್ಗಳೊಂದಿಗೆ .doc ಫೈಲ್ ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ, ಪ್ರತಿ ಸೊಲ್ವರ್ ಬಗ್ಗೆ ಚಿಂತನೆಯೊಂದಿಗೆ ಹೋಲಿಕೆ ಮಾಡಲಾಗಿದೆ. | ಒಂದು ಪ್ಯಾರಾಗ್ರಾಫ್ ಮಾತ್ರ ಇರುವ .doc ಫೈಲ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ಕಾರ್ಯಪತ್ರ ಅಪೂರ್ಣವಾಗಿದೆ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,41 @@
|
||||
{
|
||||
"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,
|
||||
"coopTranslator": {
|
||||
"original_hash": "68829b06b4dcd512d3327849191f4d7f",
|
||||
"translation_date": "2025-12-19T17:03:28+00:00",
|
||||
"source_file": "4-Classification/2-Classifiers-1/notebook.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2,
|
||||
"cells": [
|
||||
{
|
||||
"source": [
|
||||
"# ವರ್ಗೀಕರಣ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸಿ\n"
|
||||
],
|
||||
"cell_type": "markdown",
|
||||
"metadata": {}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T15:38:15+00:00",
|
||||
"source_file": "4-Classification/2-Classifiers-1/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,251 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "49047911108adc49d605cddfb455749c",
|
||||
"translation_date": "2025-12-19T15:24:07+00:00",
|
||||
"source_file": "4-Classification/3-Classifiers-2/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಆಹಾರ ವರ್ಗೀಕರಣಗಳು 2
|
||||
|
||||
ಈ ಎರಡನೇ ವರ್ಗೀಕರಣ ಪಾಠದಲ್ಲಿ, ನೀವು ಸಂಖ್ಯಾತ್ಮಕ ಡೇಟಾವನ್ನು ವರ್ಗೀಕರಿಸುವ ಇನ್ನಷ್ಟು ವಿಧಾನಗಳನ್ನು ಅನ್ವೇಷಿಸುವಿರಿ. ನೀವು ಒಂದು ವರ್ಗೀಕರಣಕಾರಿಯನ್ನು ಇನ್ನೊಂದರಿಗಿಂತ ಆಯ್ಕೆಮಾಡುವ ಪರಿಣಾಮಗಳ ಬಗ್ಗೆ ಸಹ ತಿಳಿಯುವಿರಿ.
|
||||
|
||||
## [ಪೂರ್ವ-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
### ಪೂರ್ವಾಪೇಕ್ಷೆ
|
||||
|
||||
ನೀವು ಹಿಂದಿನ ಪಾಠಗಳನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ್ದೀರಿ ಮತ್ತು ನಿಮ್ಮ `data` ಫೋಲ್ಡರ್ನಲ್ಲಿ _cleaned_cuisines.csv_ ಎಂಬ ಸ್ವಚ್ಛಗೊಳಿಸಿದ ಡೇಟಾಸೆಟ್ ಇದೆ ಎಂದು ನಾವು ಊಹಿಸುತ್ತೇವೆ, ಇದು ಈ 4-ಪಾಠ ಫೋಲ್ಡರ್ನ ರೂಟ್ನಲ್ಲಿ ಇದೆ.
|
||||
|
||||
### ತಯಾರಿ
|
||||
|
||||
ನಾವು ನಿಮ್ಮ _notebook.ipynb_ ಫೈಲ್ ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿದ ಡೇಟಾಸೆಟ್ನೊಂದಿಗೆ ಲೋಡ್ ಮಾಡಿದ್ದೇವೆ ಮತ್ತು ಅದನ್ನು X ಮತ್ತು y ಡೇಟಾಫ್ರೇಮ್ಗಳಾಗಿ ವಿಭಜಿಸಿದ್ದೇವೆ, ಮಾದರಿ ನಿರ್ಮಾಣ ಪ್ರಕ್ರಿಯೆಗೆ ಸಿದ್ಧವಾಗಿದೆ.
|
||||
|
||||
## ವರ್ಗೀಕರಣ ನಕ್ಷೆ
|
||||
|
||||
ಹಿಂದೆ, ನೀವು ಡೇಟಾವನ್ನು ವರ್ಗೀಕರಿಸುವಾಗ Microsoft ನ ಚೀಟ್ ಶೀಟ್ ಬಳಸಿ ವಿವಿಧ ಆಯ್ಕೆಗಳ ಬಗ್ಗೆ ಕಲಿತಿದ್ದೀರಿ. Scikit-learn ಒಂದು ಸಮಾನವಾದ, ಆದರೆ ಹೆಚ್ಚು ಸೂಕ್ಷ್ಮ ಚೀಟ್ ಶೀಟ್ ಅನ್ನು ನೀಡುತ್ತದೆ, ಇದು ನಿಮ್ಮ ಅಂದಾಜುಕಾರರನ್ನು (ಮತ್ತೊಂದು ಪದದಲ್ಲಿ ವರ್ಗೀಕರಣಕಾರರು) ಇನ್ನಷ್ಟು ನಿಖರಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ:
|
||||
|
||||

|
||||
> ಟಿಪ್: [ಈ ನಕ್ಷೆಯನ್ನು ಆನ್ಲೈನ್ನಲ್ಲಿ ಭೇಟಿ ನೀಡಿ](https://scikit-learn.org/stable/tutorial/machine_learning_map/) ಮತ್ತು ದಾರಿಯಲ್ಲಿ ಕ್ಲಿಕ್ ಮಾಡಿ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ ಓದಿ.
|
||||
|
||||
### ಯೋಜನೆ
|
||||
|
||||
ನಿಮ್ಮ ಡೇಟಾ ಸ್ಪಷ್ಟವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಂಡ ನಂತರ ಈ ನಕ್ಷೆ ಬಹಳ ಸಹಾಯಕವಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ನೀವು ಅದರ ದಾರಿಗಳಲ್ಲಿ 'ನಡೆದು' ನಿರ್ಧಾರಕ್ಕೆ ಬರಬಹುದು:
|
||||
|
||||
- ನಮಗೆ >50 ಮಾದರಿಗಳು ಇವೆ
|
||||
- ನಾವು ಒಂದು ವರ್ಗವನ್ನು ಊಹಿಸಲು ಬಯಸುತ್ತೇವೆ
|
||||
- ನಮಗೆ ಲೇಬಲ್ ಮಾಡಲಾದ ಡೇಟಾ ಇದೆ
|
||||
- ನಮಗೆ 100K ಕ್ಕಿಂತ ಕಡಿಮೆ ಮಾದರಿಗಳು ಇವೆ
|
||||
- ✨ ನಾವು ಲೀನಿಯರ್ SVC ಆಯ್ಕೆಮಾಡಬಹುದು
|
||||
- ಅದು ಕೆಲಸ ಮಾಡದಿದ್ದರೆ, ಏಕೆಂದರೆ ನಮಗೆ ಸಂಖ್ಯಾತ್ಮಕ ಡೇಟಾ ಇದೆ
|
||||
- ನಾವು ✨ KNeighbors ವರ್ಗೀಕರಣಕಾರಿಯನ್ನು ಪ್ರಯತ್ನಿಸಬಹುದು
|
||||
- ಅದು ಕೆಲಸ ಮಾಡದಿದ್ದರೆ, ✨ SVC ಮತ್ತು ✨ Ensemble ವರ್ಗೀಕರಣಕಾರಿಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ
|
||||
|
||||
ಇದು ಅನುಸರಿಸಲು ಬಹಳ ಸಹಾಯಕ ದಾರಿಯಾಗಿದೆ.
|
||||
|
||||
## ಅಭ್ಯಾಸ - ಡೇಟಾವನ್ನು ವಿಭಜಿಸಿ
|
||||
|
||||
ಈ ದಾರಿಯನ್ನು ಅನುಸರಿಸಿ, ನಾವು ಕೆಲವು ಲೈಬ್ರರಿಗಳನ್ನು ಆಮದುಮಾಡುವುದರಿಂದ ಪ್ರಾರಂಭಿಸಬೇಕು.
|
||||
|
||||
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_feature_df, cuisines_label_df, test_size=0.3)
|
||||
```
|
||||
|
||||
## ಲೀನಿಯರ್ SVC ವರ್ಗೀಕರಣಕಾರ
|
||||
|
||||
ಸಪೋರ್ಟ್-ವೆಕ್ಟರ್ ಕ್ಲಸ್ಟರಿಂಗ್ (SVC) ಎಂಬುದು ಸಪೋರ್ಟ್-ವೆಕ್ಟರ್ ಯಂತ್ರಗಳ ಕುಟುಂಬದ ಒಂದು ಭಾಗವಾಗಿದೆ (ಈ ಬಗ್ಗೆ ಕೆಳಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ). ಈ ವಿಧಾನದಲ್ಲಿ, ನೀವು ಲೇಬಲ್ಗಳನ್ನು ಹೇಗೆ ಕ್ಲಸ್ಟರ್ ಮಾಡಬೇಕೆಂದು ನಿರ್ಧರಿಸಲು 'ಕರ್ಣಲ್' ಆಯ್ಕೆಮಾಡಬಹುದು. 'C' ಪರಿಮಾಣವು 'ನಿಯಮಿತತೆ'ಗೆ ಸಂಬಂಧಿಸಿದೆ, ಇದು ಪರಿಮಾಣಗಳ ಪ್ರಭಾವವನ್ನು ನಿಯಂತ್ರಿಸುತ್ತದೆ. ಕರ್ಣಲ್ [ಬಹುಮಾನ](https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html#sklearn.svm.SVC)ಗಳಲ್ಲೊಂದು ಆಗಿರಬಹುದು; ಇಲ್ಲಿ ನಾವು ಲೀನಿಯರ್ SVC ಬಳಸಲು 'linear' ಎಂದು ಹೊಂದಿಸಿದ್ದೇವೆ. Probability ಡೀಫಾಲ್ಟ್ 'false' ಆಗಿದೆ; ಇಲ್ಲಿ ನಾವು 'true' ಎಂದು ಹೊಂದಿಸಿದ್ದೇವೆ ಪ್ರಾಬಬಿಲಿಟಿ ಅಂದಾಜುಗಳನ್ನು ಸಂಗ್ರಹಿಸಲು. ಡೇಟಾವನ್ನು ಶಫಲ್ ಮಾಡಲು random state ಅನ್ನು '0' ಎಂದು ಹೊಂದಿಸಿದ್ದೇವೆ.
|
||||
|
||||
### ಅಭ್ಯಾಸ - ಲೀನಿಯರ್ SVC ಅನ್ವಯಿಸಿ
|
||||
|
||||
ವರ್ಗೀಕರಣಕಾರರ ಅರೆ ಅನ್ನು ರಚಿಸುವುದರಿಂದ ಪ್ರಾರಂಭಿಸಿ. ನಾವು ಪರೀಕ್ಷಿಸುವಂತೆ ಈ ಅರೆಗೆ ಕ್ರಮೇಣ ಸೇರಿಸುತ್ತೇವೆ.
|
||||
|
||||
1. ಲೀನಿಯರ್ SVC ನಿಂದ ಪ್ರಾರಂಭಿಸಿ:
|
||||
|
||||
```python
|
||||
C = 10
|
||||
# ವಿಭಿನ್ನ ವರ್ಗೀಕರಿಸುವವರನ್ನು ರಚಿಸಿ.
|
||||
classifiers = {
|
||||
'Linear SVC': SVC(kernel='linear', C=C, probability=True,random_state=0)
|
||||
}
|
||||
```
|
||||
|
||||
2. ಲೀನಿಯರ್ 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-ನೆರೆಹೊರೆಯವರ ವರ್ಗೀಕರಣಕಾರ
|
||||
|
||||
K-ನೆರೆಹೊರೆಯವರು "ನೆರೆಹೊರೆಯವರು" ಕುಟುಂಬದ ML ವಿಧಾನಗಳ ಭಾಗವಾಗಿದ್ದು, ಮೇಲ್ವಿಚಾರಣೆಯುಳ್ಳ ಮತ್ತು ಮೇಲ್ವಿಚಾರಣೆಯಿಲ್ಲದ ಕಲಿಕೆಗೆ ಬಳಸಬಹುದು. ಈ ವಿಧಾನದಲ್ಲಿ, ಪೂರ್ವನಿರ್ಧರಿತ ಸಂಖ್ಯೆಯ ಬಿಂದುಗಳನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಡೇಟಾ ಈ ಬಿಂದುಗಳ ಸುತ್ತ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ, ಇದರಿಂದ ಸಾಮಾನ್ಯ ಲೇಬಲ್ಗಳನ್ನು ಊಹಿಸಬಹುದು.
|
||||
|
||||
### ಅಭ್ಯಾಸ - K-ನೆರೆಹೊರೆಯವರ ವರ್ಗೀಕರಣಕಾರ ಅನ್ವಯಿಸಿ
|
||||
|
||||
ಹಿಂದಿನ ವರ್ಗೀಕರಣಕಾರ ಚೆನ್ನಾಗಿತ್ತು ಮತ್ತು ಡೇಟಾದೊಂದಿಗೆ ಉತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡಿತು, ಆದರೆ ನಾವು ಉತ್ತಮ ನಿಖರತೆಯನ್ನು ಪಡೆಯಬಹುದು. K-ನೆರೆಹೊರೆಯವರ ವರ್ಗೀಕರಣಕಾರವನ್ನು ಪ್ರಯತ್ನಿಸಿ.
|
||||
|
||||
1. ನಿಮ್ಮ ವರ್ಗೀಕರಣಕಾರ ಅರೆಗೆ ಒಂದು ಸಾಲು ಸೇರಿಸಿ (ಲೀನಿಯರ್ 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-ನೆರೆಹೊರೆಯವರು](https://scikit-learn.org/stable/modules/neighbors.html#neighbors) ಬಗ್ಗೆ ತಿಳಿಯಿರಿ
|
||||
|
||||
## ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ವರ್ಗೀಕರಣಕಾರ
|
||||
|
||||
ಸಪೋರ್ಟ್-ವೆಕ್ಟರ್ ವರ್ಗೀಕರಣಕಾರಗಳು [ಸಪೋರ್ಟ್-ವೆಕ್ಟರ್ ಯಂತ್ರ](https://wikipedia.org/wiki/Support-vector_machine) ಕುಟುಂಬದ ಭಾಗವಾಗಿದ್ದು, ವರ್ಗೀಕರಣ ಮತ್ತು ರಿಗ್ರೆಷನ್ ಕಾರ್ಯಗಳಿಗೆ ಬಳಸಲಾಗುತ್ತವೆ. SVM ಗಳು "ತರಬೇತಿ ಉದಾಹರಣೆಗಳನ್ನು ಸ್ಥಳದಲ್ಲಿ ಬಿಂದುಗಳಾಗಿ ನಕ್ಷೆ ಮಾಡುತ್ತವೆ" ಎರಡು ವರ್ಗಗಳ ನಡುವಿನ ದೂರವನ್ನು ಗರಿಷ್ಠಗೊಳಿಸಲು. ನಂತರದ ಡೇಟಾವನ್ನು ಈ ಸ್ಥಳದಲ್ಲಿ ನಕ್ಷೆ ಮಾಡಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಅವುಗಳ ವರ್ಗವನ್ನು ಊಹಿಸಬಹುದು.
|
||||
|
||||
### ಅಭ್ಯಾಸ - ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ವರ್ಗೀಕರಣಕಾರ ಅನ್ವಯಿಸಿ
|
||||
|
||||
ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ವರ್ಗೀಕರಣಕಾರದೊಂದಿಗೆ ಸ್ವಲ್ಪ ಉತ್ತಮ ನಿಖರತೆಯನ್ನು ಪ್ರಯತ್ನಿಸೋಣ.
|
||||
|
||||
1. K-ನೆರೆಹೊರೆಯವರ ಐಟಂನ ನಂತರ ಕಾಮಾ ಸೇರಿಸಿ, ನಂತರ ಈ ಸಾಲನ್ನು ಸೇರಿಸಿ:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
✅ [ಸಪೋರ್ಟ್-ವೆಕ್ಟರ್ಗಳ](https://scikit-learn.org/stable/modules/svm.html#svm) ಬಗ್ಗೆ ತಿಳಿಯಿರಿ
|
||||
|
||||
## ಎನ್ಸೆಂಬಲ್ ವರ್ಗೀಕರಣಕಾರಗಳು
|
||||
|
||||
ಹಿಂದಿನ ಪರೀಕ್ಷೆ ಚೆನ್ನಾಗಿದ್ದರೂ, ನಾವು ದಾರಿಯ ಕೊನೆಯಲ್ಲಿ ಇರುವ ಎನ್ಸೆಂಬಲ್ ವರ್ಗೀಕರಣಕಾರಗಳನ್ನು ಪ್ರಯತ್ನಿಸೋಣ, ವಿಶೇಷವಾಗಿ ರ್ಯಾಂಡಮ್ ಫಾರೆಸ್ಟ್ ಮತ್ತು ಅಡಾಬೂಸ್ಟ್:
|
||||
|
||||
```python
|
||||
'RFST': RandomForestClassifier(n_estimators=100),
|
||||
'ADA': AdaBoostClassifier(n_estimators=100)
|
||||
```
|
||||
|
||||
ಫಲಿತಾಂಶ ಬಹಳ ಚೆನ್ನಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ರ್ಯಾಂಡಮ್ ಫಾರೆಸ್ಟ್ಗೆ:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
✅ [ಎನ್ಸೆಂಬಲ್ ವರ್ಗೀಕರಣಕಾರಗಳು](https://scikit-learn.org/stable/modules/ensemble.html) ಬಗ್ಗೆ ತಿಳಿಯಿರಿ
|
||||
|
||||
ಈ ಯಂತ್ರ ಕಲಿಕೆಯ ವಿಧಾನವು "ಕೆಲವು ಮೂಲ ಅಂದಾಜುಕಾರರ ಭವಿಷ್ಯವಾಣಿಗಳನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ" ಮಾದರಿಯ ಗುಣಮಟ್ಟವನ್ನು ಸುಧಾರಿಸಲು. ನಮ್ಮ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾವು ರ್ಯಾಂಡಮ್ ಟ್ರೀಸ್ ಮತ್ತು ಅಡಾಬೂಸ್ಟ್ ಬಳಸಿದ್ದೇವೆ.
|
||||
|
||||
- [ರ್ಯಾಂಡಮ್ ಫಾರೆಸ್ಟ್](https://scikit-learn.org/stable/modules/ensemble.html#forest), ಸರಾಸರಿ ವಿಧಾನ, 'ನಿರ್ಣಯ ಮರಗಳ' ಒಂದು 'ಕಾಡನ್ನು' ರಚಿಸುತ್ತದೆ, ಇದು ಅತಿಯಾದ ಹೊಂದಾಣಿಕೆಯನ್ನು ತಪ್ಪಿಸಲು ಯಾದೃಚ್ಛಿಕತೆಯನ್ನು ಒಳಗೊಂಡಿದೆ. n_estimators ಪರಿಮಾಣವನ್ನು ಮರಗಳ ಸಂಖ್ಯೆಗೆ ಹೊಂದಿಸಲಾಗಿದೆ.
|
||||
|
||||
- [ಅಡಾಬೂಸ್ಟ್](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)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "58dfdaf79fb73f7d34b22bdbacf57329",
|
||||
"translation_date": "2025-12-19T15:25:22+00:00",
|
||||
"source_file": "4-Classification/3-Classifiers-2/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಪ್ಯಾರಾಮೀಟರ್ ಪ್ಲೇ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಈ ವರ್ಗೀಕರಣಕಾರಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಡೀಫಾಲ್ಟ್ ಆಗಿ ಸೆಟ್ ಆಗಿರುವ ಅನೇಕ ಪ್ಯಾರಾಮೀಟರ್ಗಳಿವೆ. VS ಕೋಡ್ನ ಇಂಟೆಲಿಸೆನ್ಸ್ ನಿಮಗೆ ಅವುಗಳನ್ನು ಆಳವಾಗಿ ತಿಳಿದುಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡಬಹುದು. ಈ ಪಾಠದಲ್ಲಿ ಒಂದಾದ ML ವರ್ಗೀಕರಣ ತಂತ್ರಗಳನ್ನು ಅಳವಡಿಸಿ ಮತ್ತು ವಿವಿಧ ಪ್ಯಾರಾಮೀಟರ್ ಮೌಲ್ಯಗಳನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿ ಮಾದರಿಗಳನ್ನು ಮರುಶಿಕ್ಷಣ ಮಾಡಿ. ಕೆಲವು ಬದಲಾವಣೆಗಳು ಮಾದರಿಯ ಗುಣಮಟ್ಟವನ್ನು ಏಕೆ ಸಹಾಯ ಮಾಡುತ್ತವೆ ಮತ್ತು ಇತರವು ಅದನ್ನು ಹೇಗೆ ಹಾಳುಮಾಡುತ್ತವೆ ಎಂಬುದನ್ನು ವಿವರಿಸುವ ನೋಟ್ಬುಕ್ ರಚಿಸಿ. ನಿಮ್ಮ ಉತ್ತರದಲ್ಲಿ ವಿವರವಾಗಿ ಬರೆಯಿರಿ.
|
||||
|
||||
## ರೂಬ್ರಿಕ್
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | ---------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- | ----------------------------- |
|
||||
| | ಸಂಪೂರ್ಣವಾಗಿ ನಿರ್ಮಿಸಲಾದ ವರ್ಗೀಕರಣಕಾರಿಯೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಅದರ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿ ಬದಲಾವಣೆಗಳನ್ನು ಪಠ್ಯಪೆಟ್ಟಿಕೆಯಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ | ಭಾಗಶಃ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ ಅಥವಾ ಸರಿಯಾಗಿ ವಿವರಿಸಲಾಗಿಲ್ಲ | ನೋಟ್ಬುಕ್ ದೋಷಪೂರಿತ ಅಥವಾ ದೋಷಪೂರಿತವಾಗಿದೆ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T15:37:42+00:00",
|
||||
"source_file": "4-Classification/3-Classifiers-2/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ತಪ್ಪುಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,654 @@
|
||||
{
|
||||
"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"
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "fab50046ca413a38939d579f8432274f",
|
||||
"translation_date": "2025-12-19T17:17:48+00:00",
|
||||
"source_file": "4-Classification/3-Classifiers-2/solution/R/lesson_12-R.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"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 ಪ್ಯಾಕೇಜುಗಳ ಸಂಗ್ರಹ](https://www.tidyverse.org/packages) ಆಗಿದ್ದು, ಡೇಟಾ ವಿಜ್ಞಾನವನ್ನು ವೇಗವಾಗಿ, ಸುಲಭವಾಗಿ ಮತ್ತು ಹೆಚ್ಚು ಮನರಂಜನೀಯವಾಗಿ ಮಾಡುತ್ತದೆ!\n",
|
||||
"\n",
|
||||
"- `tidymodels`: [tidymodels](https://www.tidymodels.org/) ಫ್ರೇಮ್ವರ್ಕ್ ಒಂದು [ಪ್ಯಾಕೇಜುಗಳ ಸಂಗ್ರಹ](https://www.tidymodels.org/packages/) ಆಗಿದ್ದು, ಮಾದರೀಕರಣ ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕಾಗಿ.\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": [
|
||||
"Now, let's hit the ground running!\n",
|
||||
"\n",
|
||||
"## **1. ವರ್ಗೀಕರಣ ನಕ್ಷೆ**\n",
|
||||
"\n",
|
||||
"ನಮ್ಮ [ಹಿಂದಿನ ಪಾಠದಲ್ಲಿ](https://github.com/microsoft/ML-For-Beginners/tree/main/4-Classification/2-Classifiers-1), ನಾವು ಈ ಪ್ರಶ್ನೆಯನ್ನು ಪರಿಹರಿಸಲು ಪ್ರಯತ್ನಿಸಿದ್ದೇವೆ: ನಾವು ಹಲವಾರು ಮಾದರಿಗಳಲ್ಲಿ ಹೇಗೆ ಆಯ್ಕೆ ಮಾಡಬೇಕು? ಬಹುಮಟ್ಟಿಗೆ, ಇದು ಡೇಟಾದ ಲಕ್ಷಣಗಳು ಮತ್ತು ನಾವು ಪರಿಹರಿಸಲು ಬಯಸುವ ಸಮಸ್ಯೆಯ ಪ್ರಕಾರ (ಉದಾಹರಣೆಗೆ ವರ್ಗೀಕರಣ ಅಥವಾ ರಿಗ್ರೆಶನ್?) ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ.\n",
|
||||
"\n",
|
||||
"ಹಿಂದೆ, ನಾವು ಮೈಕ್ರೋಸಾಫ್ಟ್ನ ಚೀಟ್ ಶೀಟ್ ಬಳಸಿ ಡೇಟಾವನ್ನು ವರ್ಗೀಕರಿಸುವಾಗ ನಿಮಗೆ ಇರುವ ವಿವಿಧ ಆಯ್ಕೆಗಳನ್ನು ಕಲಿತಿದ್ದೇವೆ. ಪೈಥಾನ್ನ ಮೆಷಿನ್ ಲರ್ನಿಂಗ್ ಫ್ರೇಮ್ವರ್ಕ್, ಸ್ಕಿಕಿಟ್-ಲರ್ನ್, ಸಮಾನವಾದ ಆದರೆ ಹೆಚ್ಚು ಸೂಕ್ಷ್ಮ ಚೀಟ್ ಶೀಟ್ ಅನ್ನು ನೀಡುತ್ತದೆ, ಇದು ನಿಮ್ಮ ಅಂದಾಜುಕಾರರನ್ನು (ಮತ್ತೊಂದು ಪದದಲ್ಲಿ ವರ್ಗೀಕರಣಕಾರರು) ಇನ್ನಷ್ಟು ಸೀಮಿತಗೊಳಿಸಲು ಸಹಾಯ ಮಾಡಬಹುದು:\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/map.e963a6a51349425ab107b38f6c7307eb4c0d0c7ccdd2e81a5e1919292bab9ac7.kn.png\"\n",
|
||||
" width=\"700\"/>\n",
|
||||
" <figcaption></figcaption>\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",
|
||||
"- ✨ ನಾವು ಲೀನಿಯರ್ SVC ಆಯ್ಕೆ ಮಾಡಬಹುದು\n",
|
||||
"\n",
|
||||
"- ಅದು ಕೆಲಸ ಮಾಡದಿದ್ದರೆ, ಏಕೆಂದರೆ ನಮಗೆ ಸಂಖ್ಯಾತ್ಮಕ ಡೇಟಾ ಇದೆ\n",
|
||||
"\n",
|
||||
" - ನಾವು ✨ KNeighbors ವರ್ಗೀಕರಣವನ್ನು ಪ್ರಯತ್ನಿಸಬಹುದು\n",
|
||||
"\n",
|
||||
" - ಅದು ಕೆಲಸ ಮಾಡದಿದ್ದರೆ, ✨ SVC ಮತ್ತು ✨ ಎನ್ಸೆಂಬಲ್ ವರ್ಗೀಕರಣಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ\n",
|
||||
"\n",
|
||||
"ಇದು ಅನುಸರಿಸಲು ಬಹಳ ಸಹಾಯಕ ದಾರಿಯಾಗಿದೆ. ಈಗ, [tidymodels](https://www.tidymodels.org/) ಮಾದರೀಕರಣ ಫ್ರೇಮ್ವರ್ಕ್ ಬಳಸಿ ನೇರವಾಗಿ ಪ್ರಾರಂಭಿಸೋಣ: ಇದು ಉತ್ತಮ ಸಂಖ್ಯಾಶಾಸ್ತ್ರೀಯ ಅಭ್ಯಾಸವನ್ನು ಉತ್ತೇಜಿಸಲು ಅಭಿವೃದ್ಧಿಪಡಿಸಲಾದ R ಪ್ಯಾಕೇಜುಗಳ ಸತತ ಮತ್ತು ಲವಚಿಕ ಸಂಗ್ರಹ 😊.\n",
|
||||
"\n",
|
||||
"## 2. ಡೇಟಾವನ್ನು ವಿಭಜಿಸಿ ಮತ್ತು ಅಸಮತೋಲನ ಡೇಟಾ ಸೆಟ್ ಅನ್ನು ನಿರ್ವಹಿಸಿ.\n",
|
||||
"\n",
|
||||
"ನಮ್ಮ ಹಿಂದಿನ ಪಾಠಗಳಿಂದ, ನಮ್ಮ ಆಹಾರ ಶೈಲಿಗಳಲ್ಲಿ ಸಾಮಾನ್ಯ ಪದಾರ್ಥಗಳ ಒಂದು ಸೆಟ್ ಇದ್ದವು ಎಂದು ಕಲಿತೆವು. ಜೊತೆಗೆ, ಆಹಾರ ಶೈಲಿಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ ಅಸಮತೋಲನ ವಿತರಣೆಯೂ ಇತ್ತು.\n",
|
||||
"\n",
|
||||
"ನಾವು ಈ ಕೆಳಗಿನ ಮೂಲಕ ಈ ಸಮಸ್ಯೆಗಳನ್ನು ನಿರ್ವಹಿಸುವೆವು\n",
|
||||
"\n",
|
||||
"- ವಿಭಿನ್ನ ಆಹಾರ ಶೈಲಿಗಳ ನಡುವೆ ಗೊಂದಲ ಉಂಟುಮಾಡುವ ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಪದಾರ್ಥಗಳನ್ನು `dplyr::select()` ಬಳಸಿ ತೆಗೆದುಹಾಕುವುದು.\n",
|
||||
"\n",
|
||||
"- `over-sampling` ಆಲ್ಗಾರಿದಮ್ ಅನ್ನು ಅನ್ವಯಿಸುವ ಮೂಲಕ ಮಾದರೀಕರಣಕ್ಕೆ ಸಿದ್ಧವಾಗಲು ಡೇಟಾವನ್ನು ಪೂರ್ವಸಿದ್ಧಗೊಳಿಸುವ `recipe` ಅನ್ನು ಬಳಸುವುದು.\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",
|
||||
"- ಅಲ್ಪಸಂಖ್ಯಾತ ವರ್ಗಕ್ಕೆ ವೀಕ್ಷಣೆಗಳನ್ನು ಸೇರಿಸುವುದು: `ಓವರ್-ಸ್ಯಾಂಪ್ಲಿಂಗ್` ಉದಾಹರಣೆಗೆ SMOTE ಆಲ್ಗಾರಿದಮ್ ಬಳಸಿ, ಇದು ಅಲ್ಪಸಂಖ್ಯಾತ ವರ್ಗದ ಹೊಸ ಉದಾಹರಣೆಗಳನ್ನು ಸಮೀಪದ ನೆರೆಹೊರೆಯವರನ್ನು ಬಳಸಿ ಸೃಷ್ಟಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"- ಬಹುಸಂಖ್ಯಾತ ವರ್ಗದಿಂದ ವೀಕ್ಷಣೆಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು: `ಅಂಡರ್-ಸ್ಯಾಂಪ್ಲಿಂಗ್`\n",
|
||||
"\n",
|
||||
"ನಮ್ಮ ಹಿಂದಿನ ಪಾಠದಲ್ಲಿ, ನಾವು `ರೆಸಿಪಿ` ಬಳಸಿ ಅಸಮತೋಲಿತ ಡೇಟಾ ಸೆಟ್ಗಳನ್ನು ಹೇಗೆ ನಿರ್ವಹಿಸುವುದನ್ನು ತೋರಿಸಿದ್ದೇವೆ. ರೆಸಿಪಿ ಎಂದರೆ ಡೇಟಾ ವಿಶ್ಲೇಷಣೆಗೆ ಸಿದ್ಧವಾಗಲು ಡೇಟಾ ಸೆಟ್ಗೆ ಯಾವ ಹಂತಗಳನ್ನು ಅನ್ವಯಿಸಬೇಕು ಎಂದು ವಿವರಿಸುವ ಬ್ಲೂಪ್ರಿಂಟ್ ಎಂದು ಪರಿಗಣಿಸಬಹುದು. ನಮ್ಮ ಪ್ರಕರಣದಲ್ಲಿ, ನಾವು ನಮ್ಮ `ಪ್ರಶಿಕ್ಷಣ ಸೆಟ್`ಗಾಗಿ ನಮ್ಮ ಆಹಾರವರ್ಗಗಳ ಸಂಖ್ಯೆಯಲ್ಲಿ ಸಮಾನ ವಿತರಣೆ ಇರಬೇಕೆಂದು ಬಯಸುತ್ತೇವೆ. ಬನ್ನಿ, ಅದಕ್ಕೆ ನೇರವಾಗಿ ಹೋಗೋಣ.\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",
|
||||
"### ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ಮೆಷೀನ್ಸ್.\n",
|
||||
"\n",
|
||||
"ವರ್ಗೀಕರಣದ ಸಂದರ್ಭದಲ್ಲಿ, `ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ಮೆಷೀನ್ಸ್` ಎಂಬುದು ಒಂದು ಯಂತ್ರ ಅಧ್ಯಯನ ತಂತ್ರಜ್ಞಾನವಾಗಿದ್ದು, ವರ್ಗಗಳನ್ನು \"ಉತ್ತಮವಾಗಿ\" ವಿಭಜಿಸುವ *ಹೈಪರ್ಪ್ಲೇನ್* ಅನ್ನು ಹುಡುಕಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಸರಳ ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ:\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/svm.621ae7b516d678e08ed23af77ff1750b5fe392976917f0606861567b779e8862.kn.png\"\n",
|
||||
" width=\"300\"/>\n",
|
||||
" <figcaption>https://commons.wikimedia.org/w/index.php?curid=22877598</figcaption>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "C4Wsd0vZhXYu"
|
||||
},
|
||||
"source": [
|
||||
"H1~ ವರ್ಗಗಳನ್ನು ವಿಭಜಿಸುವುದಿಲ್ಲ. H2~ ವಿಭಜಿಸುತ್ತದೆ, ಆದರೆ ಸಣ್ಣ ಮಾರ್ಜಿನ್ನೊಂದಿಗೆ ಮಾತ್ರ. H3~ ಅವುಗಳನ್ನು ಗರಿಷ್ಠ ಮಾರ್ಜಿನ್ನೊಂದಿಗೆ ವಿಭಜಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"#### ಲೀನಿಯರ್ ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ಕ್ಲಾಸಿಫೈಯರ್\n",
|
||||
"\n",
|
||||
"ಸಪೋರ್ಟ್-ವೆಕ್ಟರ್ ಕ್ಲಸ್ಟರಿಂಗ್ (SVC) ಎಂಎಲ್ ತಂತ್ರಜ್ಞಾನಗಳ ಸಪೋರ್ಟ್-ವೆಕ್ಟರ್ ಯಂತ್ರಗಳ ಕುಟುಂಬದ ಒಂದು ಶಾಖೆಯಾಗಿದೆ. SVC ನಲ್ಲಿ, ಹೈಪರ್ಪ್ಲೇನ್ ಅನ್ನು ತರಬೇತಿ ಅವಲೋಕನಗಳ `ಬಹುತೇಕ` ಸರಿಯಾಗಿ ವಿಭಜಿಸಲು ಆಯ್ಕೆಮಾಡಲಾಗುತ್ತದೆ, ಆದರೆ ಕೆಲವು ಅವಲೋಕನಗಳನ್ನು `ತಪ್ಪಾಗಿ ವರ್ಗೀಕರಿಸಬಹುದು`. ಕೆಲವು ಬಿಂದುಗಳನ್ನು ತಪ್ಪು ಬದಿಯಲ್ಲಿ ಇರಲು ಅನುಮತಿಸುವ ಮೂಲಕ, SVM ಔಟ್ಲೈಯರ್ಗಳಿಗೆ ಹೆಚ್ಚು ಪ್ರತಿರೋಧಕವಾಗುತ್ತದೆ ಮತ್ತು ಹೀಗಾಗಿ ಹೊಸ ಡೇಟಾಗೆ ಉತ್ತಮ ಸಾಮಾನ್ಯೀಕರಣವನ್ನು ನೀಡುತ್ತದೆ. ಈ ಉಲ್ಲಂಘನೆಯನ್ನು ನಿಯಂತ್ರಿಸುವ ಪರಿಮಾಣವನ್ನು `cost` ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ, ಇದರ ಡೀಫಾಲ್ಟ್ ಮೌಲ್ಯ 1 ಆಗಿದೆ (`help(\"svm_poly\")` ನೋಡಿ).\n",
|
||||
"\n",
|
||||
"ಪೋಲಿನೋಮಿಯಲ್ SVM ಮಾದರಿಯಲ್ಲಿ `degree = 1` ಅನ್ನು ಹೊಂದಿಸಿ ಲೀನಿಯರ್ SVC ಅನ್ನು ರಚಿಸೋಣ.\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": [
|
||||
"ಈಗ ನಾವು ಪೂರ್ವಸಿದ್ಧತೆ ಹಂತಗಳು ಮತ್ತು ಮಾದರಿ ನಿರ್ದಿಷ್ಟೀಕರಣವನ್ನು *ಕಾರ್ಯಪ್ರವಾಹ*ದಲ್ಲಿ ಸೆರೆಹಿಡಿದಿದ್ದೇವೆ, ನಾವು ಲೀನಿಯರ್ 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) ಕ್ಲಾಸ್ಗಳ ನಡುವೆ ರೇಖೀಯವಲ್ಲದ ಗಡಿಯನ್ನು ಹೊಂದಿಸಲು ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ವರ್ಗೀಕರಣಕಾರನ ವಿಸ್ತರಣೆ ಆಗಿದೆ. ಮೂಲತಃ, SVMಗಳು ವರ್ಗಗಳ ನಡುವೆ ರೇಖೀಯವಲ್ಲದ ಸಂಬಂಧಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳಲು ವೈಶಿಷ್ಟ್ಯ ಸ್ಥಳವನ್ನು ವಿಸ್ತರಿಸಲು *ಕರ್ಣಲ್ ಟ್ರಿಕ್* ಅನ್ನು ಬಳಸುತ್ತವೆ. SVMಗಳು ಬಳಸುವ ಜನಪ್ರಿಯ ಮತ್ತು ಅತ್ಯಂತ ಲವಚಿಕ ಕರ್ಣಲ್ ಫಂಕ್ಷನ್ ಒಂದು *ರೇಡಿಯಲ್ ಬೇಸಿಸ್ ಫಂಕ್ಷನ್.* ನಮ್ಮ ಡೇಟಾದ ಮೇಲೆ ಇದು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ನೋಡೋಣ.\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",
|
||||
"> - [*ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ಮೆಷೀನ್ಸ್*](https://bradleyboehmke.github.io/HOML/svm.html), R ಜೊತೆಗೆ ಹ್ಯಾಂಡ್ಸ್-ಆನ್ ಮೆಷಿನ್ ಲರ್ನಿಂಗ್\n",
|
||||
">\n",
|
||||
"> - [*ಸಪೋರ್ಟ್ ವೆಕ್ಟರ್ ಮೆಷೀನ್ಸ್*](https://www.statlearning.com/), R ನಲ್ಲಿ ಅನ್ವಯಗಳೊಂದಿಗೆ ಸಾಂಖ್ಯಿಕ ಲರ್ನಿಂಗ್ ಗೆ ಪರಿಚಯ\n",
|
||||
">\n",
|
||||
"> ಮುಂದಿನ ಓದಿಗಾಗಿ.\n",
|
||||
"\n",
|
||||
"### ಸಮೀಪದ ನೆರೆಹೊರೆಯ ವರ್ಗೀಕರಣಗಳು\n",
|
||||
"\n",
|
||||
"*K*-ಸಮೀಪದ ನೆರೆಹೊರೆಯ (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": [
|
||||
"ಈ ಮಾದರಿ ಚೆನ್ನಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿಲ್ಲದಂತೆ ಕಾಣುತ್ತಿದೆ. ಬಹುಶಃ ಮಾದರಿಯ ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳನ್ನು ಬದಲಾಯಿಸುವುದು (`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 ವರ್ಗೀಕರಣಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಲು.\n",
|
||||
"\n",
|
||||
"### ಎನ್ಸೆಂಬಲ್ ವರ್ಗೀಕರಣಗಳು\n",
|
||||
"\n",
|
||||
"ಎನ್ಸೆಂಬಲ್ ಆಲ್ಗಾರಿದಮ್ಗಳು ಬಹುಮಟ್ಟದ ಮೂಲ ಅಂದಾಜುಗಳನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ ಉತ್ತಮ ಮಾದರಿಯನ್ನು ಉತ್ಪಾದಿಸುತ್ತವೆ, ಅದು ಕೆಳಗಿನ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ:\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 ಒಂದು ಎನ್ಸೆಂಬಲ್ ವಿಧಾನವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುತ್ತದೆ, ಇದು ಕ್ರಮವಾಗಿ ನಿರ್ಧಾರ ಮರಗಳನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ, ಪ್ರತಿಯೊಂದು ಮರವು ಹಿಂದಿನ ಮರಗಳ ಫಲಿತಾಂಶಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದ್ದು, ದೋಷವನ್ನು ಕ್ರಮೇಣ ಕಡಿಮೆ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ. ಇದು ತಪ್ಪಾಗಿ ವರ್ಗೀಕರಿಸಲಾದ ಐಟಂಗಳ ತೂಕಗಳ ಮೇಲೆ ಗಮನಹರಿಸುತ್ತದೆ ಮತ್ತು ಮುಂದಿನ ವರ್ಗೀಕರಿಸುವವರಿಗಾಗಿ ಹೊಂದಾಣಿಕೆಯನ್ನು ಸರಿಪಡಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"ಈ ಮಾದರಿಯನ್ನು ಹೊಂದಿಸುವ ವಿವಿಧ ವಿಧಾನಗಳಿವೆ (`help(\"boost_tree\")` ನೋಡಿ). ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾವು `xgboost` ಎಂಜಿನ್ ಮೂಲಕ Boosted ಮರಗಳನ್ನು ಹೊಂದಿಸುವೆವು.\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",
|
||||
"> - <https://algotech.netlify.app/blog/xgboost/> - xgboost ಗೆ ಉತ್ತಮ ಪರ್ಯಾಯವಾದ AdaBoost ಮಾದರಿಯನ್ನು ಅನ್ವೇಷಿಸುತ್ತದೆ.\n",
|
||||
">\n",
|
||||
"> ಎನ್ಸೆಂಬಲ್ ವರ್ಗೀಕರಣಗಳ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ತಿಳಿಯಲು.\n",
|
||||
"\n",
|
||||
"## 4. ಹೆಚ್ಚುವರಿ - ಬಹು ಮಾದರಿಗಳನ್ನು ಹೋಲಿಕೆ\n",
|
||||
"\n",
|
||||
"ನಾವು ಈ ಪ್ರಯೋಗಶಾಲೆಯಲ್ಲಿ ಸಾಕಷ್ಟು ಮಾದರಿಗಳನ್ನು ಹೊಂದಿಸಿದ್ದೇವೆ 🙌. ವಿಭಿನ್ನ ಪೂರ್ವಸಿದ್ಧತೆಗಳ ಮತ್ತು/ಅಥವಾ ಮಾದರಿ ನಿರ್ದಿಷ್ಟತೆಗಳ ಸೆಟ್ಗಳಿಂದ ಅನೇಕ ವರ್ಕ್ಫ್ಲೋಗಳನ್ನು ರಚಿಸುವುದು ಮತ್ತು ನಂತರ ಕಾರ್ಯಕ್ಷಮತೆ ಮೌಲ್ಯಗಳನ್ನು ಒಂದೊಂದಾಗಿ ಲೆಕ್ಕಹಾಕುವುದು ಕಠಿಣ ಅಥವಾ ಭಾರವಾಗಬಹುದು.\n",
|
||||
"\n",
|
||||
"ಪ್ರಶಿಕ್ಷಣ ಸೆಟ್ನಲ್ಲಿ ವರ್ಕ್ಫ್ಲೋಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿಸುವ ಮತ್ತು ನಂತರ ಪರೀಕ್ಷಾ ಸೆಟ್ ಆಧಾರಿತ ಕಾರ್ಯಕ್ಷಮತೆ ಮೌಲ್ಯಗಳನ್ನು ಹಿಂತಿರುಗಿಸುವ ಫಂಕ್ಷನ್ ಅನ್ನು ರಚಿಸುವ ಮೂಲಕ ಇದನ್ನು ಪರಿಹರಿಸಬಹುದೇ ಎಂದು ನೋಡೋಣ. ನಾವು ಪಟ್ಟಿಯ ಪ್ರತಿಯೊಂದು ಅಂಶಕ್ಕೆ ಫಂಕ್ಷನ್ಗಳನ್ನು ಅನ್ವಯಿಸಲು [purrr](https://purrr.tidyverse.org/) ಪ್ಯಾಕೇಜ್ನ `map()` ಮತ್ತು `map_dfr()` ಅನ್ನು ಬಳಸುತ್ತೇವೆ.\n",
|
||||
"\n",
|
||||
"> [`map()`](https://purrr.tidyverse.org/reference/map.html) ಫಂಕ್ಷನ್ಗಳು ಅನೇಕ for ಲೂಪ್ಗಳನ್ನು ಕಡಿಮೆ ಮತ್ತು ಓದಲು ಸುಲಭವಾಗುವ ಕೋಡ್ನೊಂದಿಗೆ ಬದಲಾಯಿಸಲು ಅನುಮತಿಸುತ್ತವೆ. [`map()`](https://purrr.tidyverse.org/reference/map.html) ಫಂಕ್ಷನ್ಗಳ ಬಗ್ಗೆ ತಿಳಿಯಲು ಅತ್ಯುತ್ತಮ ಸ್ಥಳ R for data science ನಲ್ಲಿ ಇರುವ [ಪುನರಾವೃತ್ತಿ ಅಧ್ಯಾಯ](http://r4ds.had.co.nz/iteration.html).\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": [
|
||||
"ನಾವು ನಮ್ಮ ಫಂಕ್ಷನ್ ಅನ್ನು ಕರೆದು ಮಾದರಿಗಳ accuracy ಅನ್ನು ಹೋಲಿಸೋಣ.\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/) ಪ್ಯಾಕೇಜ್ ಬಳಕೆದಾರರಿಗೆ ದೊಡ್ಡ ಸಂಖ್ಯೆಯ ಮಾದರಿಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಸುಲಭವಾಗಿ ಹೊಂದಿಸಲು ಅನುಮತಿಸುತ್ತದೆ ಆದರೆ ಇದು ಮುಖ್ಯವಾಗಿ `cross-validation` ಎಂಬ ಪುನರಾವೃತ್ತಿ ತಂತ್ರಗಳನ್ನು ಬಳಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ, ಇದು ನಾವು ಇನ್ನೂ ಆವರಿಸಬೇಕಾದ ವಿಧಾನವಾಗಿದೆ.\n",
|
||||
"\n",
|
||||
"## **🚀ಸವಾಲು**\n",
|
||||
"\n",
|
||||
"ಈ ತಂತ್ರಗಳ ಪ್ರತಿಯೊಂದಕ್ಕೂ ನೀವು ಬದಲಾಯಿಸಬಹುದಾದ ಹೆಚ್ಚಿನ ಪರಿಮಾಣಗಳಿವೆ ಉದಾಹರಣೆಗೆ SVM ಗಳಲ್ಲಿ `cost`, KNN ನಲ್ಲಿ `neighbors`, Random Forest ನಲ್ಲಿ `mtry` (ಯಾದೃಚ್ಛಿಕವಾಗಿ ಆಯ್ದ ನಿರೀಕ್ಷಕರು).\n",
|
||||
"\n",
|
||||
"ಪ್ರತಿಯೊಂದು ಮಾದರಿಯ ಡೀಫಾಲ್ಟ್ ಪರಿಮಾಣಗಳನ್ನು ಸಂಶೋಧಿಸಿ ಮತ್ತು ಈ ಪರಿಮಾಣಗಳನ್ನು ಬದಲಾಯಿಸುವುದರಿಂದ ಮಾದರಿಯ ಗುಣಮಟ್ಟಕ್ಕೆ ಏನು ಅರ್ಥವಾಗುತ್ತದೆ ಎಂದು ಯೋಚಿಸಿ.\n",
|
||||
"\n",
|
||||
"ನಿರ್ದಿಷ್ಟ ಮಾದರಿ ಮತ್ತು ಅದರ ಪರಿಮಾಣಗಳ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ, ಬಳಸಿ: `help(\"model\")` ಉದಾ: `help(\"rand_forest\")`\n",
|
||||
"\n",
|
||||
"> ಪ್ರಾಯೋಗಿಕವಾಗಿ, ನಾವು ಸಾಮಾನ್ಯವಾಗಿ ಈ ಪರಿಮಾಣಗಳ *ಉತ್ತಮ ಮೌಲ್ಯಗಳನ್ನು* ಅಂದಾಜು ಮಾಡುತ್ತೇವೆ `ನಕಲಿ ಡೇಟಾ ಸೆಟ್` ಮೇಲೆ ಅನೇಕ ಮಾದರಿಗಳನ್ನು ತರಬೇತುಗೊಳಿಸಿ ಮತ್ತು ಈ ಎಲ್ಲಾ ಮಾದರಿಗಳು ಎಷ್ಟು ಚೆನ್ನಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು ಅಳೆಯುವ ಮೂಲಕ. ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು **ಟ್ಯೂನಿಂಗ್** ಎಂದು ಕರೆಯುತ್ತಾರೆ.\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), ಗೋಲ್ಡ್ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಲರ್ನ್ ವಿದ್ಯಾರ್ಥಿ ರಾಯಭಾರಿ.\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/r_learners_sm.f9199f76f1e2e49304b19155ebcfb8bad375aface4625be7e95404486a48d332.kn.jpeg\"\n",
|
||||
" width=\"569\"/>\n",
|
||||
" <figcaption>@allison_horst ಅವರ ಕಲಾಕೃತಿ</figcaption>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,331 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "61bdec27ed2da8b098cd9065405d9bb0",
|
||||
"translation_date": "2025-12-19T15:28:29+00:00",
|
||||
"source_file": "4-Classification/4-Applied/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ರುಚಿಕರ ಆಹಾರ ಶಿಫಾರಸು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಿ
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ, ನೀವು ಹಿಂದಿನ ಪಾಠಗಳಲ್ಲಿ ಕಲಿತ ಕೆಲವು ತಂತ್ರಗಳನ್ನು ಬಳಸಿಕೊಂಡು ವರ್ಗೀಕರಣ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸುವಿರಿ ಮತ್ತು ಈ ಸರಣಿಯಲ್ಲಿ ಬಳಸಲಾದ ರುಚಿಕರ ಆಹಾರ ಡೇಟಾಸೆಟ್ನೊಂದಿಗೆ. ಜೊತೆಗೆ, ನೀವು ಉಳಿಸಿದ ಮಾದರಿಯನ್ನು ಬಳಸಲು ಒಂದು ಸಣ್ಣ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು Onnx ನ ವೆಬ್ ರನ್ಟೈಮ್ ಅನ್ನು ಉಪಯೋಗಿಸಿ ನಿರ್ಮಿಸುವಿರಿ.
|
||||
|
||||
ಯಂತ್ರ ಅಧ್ಯಯನದ ಅತ್ಯಂತ ಉಪಯುಕ್ತ ಪ್ರಾಯೋಗಿಕ ಬಳಕೆಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ ಶಿಫಾರಸು ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸುವುದು, ಮತ್ತು ನೀವು ಇಂದು ಆ ದಿಕ್ಕಿನಲ್ಲಿ ಮೊದಲ ಹೆಜ್ಜೆ ಇಡಬಹುದು!
|
||||
|
||||
[](https://youtu.be/17wdM9AHMfg "Applied ML")
|
||||
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ವೀಡಿಯೋ ನೋಡಿ: ಜೆನ್ ಲೂಪರ್ ವರ್ಗೀಕೃತ ಆಹಾರ ಡೇಟಾ ಬಳಸಿ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸುತ್ತಿದ್ದಾರೆ
|
||||
|
||||
## [ಪೂರ್ವ-ಪಾಠ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ ನೀವು ಕಲಿಯುವಿರಿ:
|
||||
|
||||
- ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ Onnx ಮಾದರಿಯಾಗಿ ಉಳಿಸುವುದು ಹೇಗೆ
|
||||
- ಮಾದರಿಯನ್ನು ಪರಿಶೀಲಿಸಲು ನೆಟ್ರಾನ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು
|
||||
- ನಿಮ್ಮ ಮಾದರಿಯನ್ನು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಉಪಯೋಗಿಸಿ ನಿರ್ಣಯ ಮಾಡಲು ಹೇಗೆ
|
||||
|
||||
## ನಿಮ್ಮ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ
|
||||
|
||||
ಅನ್ವಯಿತ ಯಂತ್ರ ಅಧ್ಯಯನ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ಮಿಸುವುದು ನಿಮ್ಮ ವ್ಯವಹಾರ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಈ ತಂತ್ರಜ್ಞಾನಗಳನ್ನು ಉಪಯೋಗಿಸುವ ಪ್ರಮುಖ ಭಾಗವಾಗಿದೆ. ನೀವು Onnx ಬಳಸಿ ನಿಮ್ಮ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಮಾದರಿಗಳನ್ನು ಬಳಸಬಹುದು (ಅಗತ್ಯವಿದ್ದರೆ ಆಫ್ಲೈನ್ ಸನ್ನಿವೇಶದಲ್ಲಿಯೂ).
|
||||
|
||||
[ಹಿಂದಿನ ಪಾಠದಲ್ಲಿ](../../3-Web-App/1-Web-App/README.md), ನೀವು UFO ದೃಶ್ಯಗಳ ಬಗ್ಗೆ Regression ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ, ಅದನ್ನು "pickle" ಮಾಡಿ Flask ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಬಳಸಿದ್ದಿರಿ. ಈ ವಾಸ್ತುಶಿಲ್ಪ ತಿಳಿದುಕೊಳ್ಳಲು ಬಹಳ ಉಪಯುಕ್ತವಾದರೂ, ಅದು ಪೂರ್ಣ-ಸ್ಟ್ಯಾಕ್ ಪೈಥಾನ್ ಅಪ್ಲಿಕೇಶನ್ ಆಗಿದ್ದು, ನಿಮ್ಮ ಅಗತ್ಯಗಳು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಬಳಕೆಯನ್ನು ಒಳಗೊಂಡಿರಬಹುದು.
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ, ನೀವು ಮೂಲಭೂತ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಆಧಾರಿತ ವ್ಯವಸ್ಥೆಯನ್ನು ನಿರ್ಣಯಕ್ಕಾಗಿ ನಿರ್ಮಿಸಬಹುದು. ಆದಾಗ್ಯೂ, ಮೊದಲು ನೀವು ಮಾದರಿಯನ್ನು ತರಬೇತುಗೊಳಿಸಿ Onnx ಗೆ ಪರಿವರ್ತಿಸಬೇಕು.
|
||||
|
||||
## ಅಭ್ಯಾಸ - ವರ್ಗೀಕರಣ ಮಾದರಿಯನ್ನು ತರಬೇತುಗೊಳಿಸಿ
|
||||
|
||||
ಮೊದಲು, ನಾವು ಬಳಸಿದ ಸ್ವಚ್ಛಗೊಳಿಸಿದ ಆಹಾರ ಡೇಟಾಸೆಟ್ ಬಳಸಿ ವರ್ಗೀಕರಣ ಮಾದರಿಯನ್ನು ತರಬೇತುಗೊಳಿಸಿ.
|
||||
|
||||
1. ಉಪಯುಕ್ತ ಗ್ರಂಥಾಲಯಗಳನ್ನು ಆಮದುಮಾಡಿ:
|
||||
|
||||
```python
|
||||
!pip install skl2onnx
|
||||
import pandas as pd
|
||||
```
|
||||
|
||||
ನಿಮ್ಮ Scikit-learn ಮಾದರಿಯನ್ನು Onnx ಫಾರ್ಮ್ಯಾಟ್ಗೆ ಪರಿವರ್ತಿಸಲು '[skl2onnx](https://onnx.ai/sklearn-onnx/)' ಬೇಕಾಗುತ್ತದೆ.
|
||||
|
||||
1. ನಂತರ, ಹಿಂದಿನ ಪಾಠಗಳಲ್ಲಿ ಮಾಡಿದಂತೆ `read_csv()` ಬಳಸಿ 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 ವರ್ಗೀಕರಣ ಮಾದರಿಯನ್ನು ನಿರ್ಮಿಸಿ:
|
||||
|
||||
```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 ಗೆ ಪರಿವರ್ತಿಸಿ
|
||||
|
||||
ಸರಿಯಾದ ಟೆನ್ಸರ್ ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಪರಿವರ್ತನೆ ಮಾಡುವುದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಈ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ 380 ಪದಾರ್ಥಗಳಿವೆ, ಆದ್ದರಿಂದ ನೀವು `FloatTensorType` ನಲ್ಲಿ ಆ ಸಂಖ್ಯೆಯನ್ನು ಸೂಚಿಸಬೇಕು:
|
||||
|
||||
1. 380 ಟೆನ್ಸರ್ ಸಂಖ್ಯೆಯನ್ನು ಬಳಸಿ ಪರಿವರ್ತಿಸಿ.
|
||||
|
||||
```python
|
||||
from skl2onnx import convert_sklearn
|
||||
from skl2onnx.common.data_types import FloatTensorType
|
||||
|
||||
initial_type = [('float_input', FloatTensorType([None, 380]))]
|
||||
options = {id(model): {'nocl': True, 'zipmap': False}}
|
||||
```
|
||||
|
||||
1. 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 ಕೋಡ್ನಲ್ಲಿ ಬಹಳ ಸ್ಪಷ್ಟವಾಗಿ ಕಾಣುವುದಿಲ್ಲ, ಆದರೆ ಬಹಳ ಉತ್ತಮ ಉಚಿತ ಸಾಫ್ಟ್ವೇರ್ ಇದೆ, ಅನೇಕ ಸಂಶೋಧಕರು ಮಾದರಿಯನ್ನು ದೃಶ್ಯೀಕರಿಸಲು ಬಳಸುತ್ತಾರೆ. [Netron](https://github.com/lutzroeder/Netron) ಅನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಿ ನಿಮ್ಮ model.onnx ಫೈಲ್ ತೆರೆಯಿರಿ. ನೀವು ಸರಳ ಮಾದರಿಯನ್ನು, ಅದರ 380 ಇನ್ಪುಟ್ಗಳು ಮತ್ತು ವರ್ಗೀಕರಣಕಾರಿಯನ್ನು ನೋಡಬಹುದು:
|
||||
|
||||

|
||||
|
||||
Netron ನಿಮ್ಮ ಮಾದರಿಗಳನ್ನು ವೀಕ್ಷಿಸಲು ಸಹಾಯಕ ಸಾಧನವಾಗಿದೆ.
|
||||
|
||||
ಈಗ ನೀವು ಈ ಸುಂದರ ಮಾದರಿಯನ್ನು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಬಳಸಲು ಸಿದ್ಧರಾಗಿದ್ದೀರಿ. ನಿಮ್ಮ ಫ್ರಿಜ್ನಲ್ಲಿ ಉಳಿದಿರುವ ಪದಾರ್ಥಗಳ ಸಂಯೋಜನೆಯನ್ನು ನೋಡಿ ಯಾವ ಆಹಾರವನ್ನು ನಿಮ್ಮ ಮಾದರಿ ಸೂಚಿಸುತ್ತದೆ ಎಂದು ತಿಳಿದುಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುವ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸೋಣ.
|
||||
|
||||
## ಶಿಫಾರಸು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಿ
|
||||
|
||||
ನೀವು ನಿಮ್ಮ ಮಾದರಿಯನ್ನು ನೇರವಾಗಿ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಬಳಸಬಹುದು. ಈ ವಾಸ್ತುಶಿಲ್ಪವು ಅದನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ ಆಫ್ಲೈನ್ನಲ್ಲಿ ಕೂಡ ಚಾಲನೆ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ. ನಿಮ್ಮ `model.onnx` ಫೈಲ್ ಉಳಿಸಿದ ಅದೇ ಫೋಲ್ಡರ್ನಲ್ಲಿ `index.html` ಫೈಲ್ ರಚಿಸುವುದರಿಂದ ಪ್ರಾರಂಭಿಸಿ.
|
||||
|
||||
1. ಈ _index.html_ ಫೈಲ್ನಲ್ಲಿ ಕೆಳಗಿನ ಮಾರ್ಕ್ಅಪ್ ಸೇರಿಸಿ:
|
||||
|
||||
```html
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<header>
|
||||
<title>Cuisine Matcher</title>
|
||||
</header>
|
||||
<body>
|
||||
...
|
||||
</body>
|
||||
</html>
|
||||
```
|
||||
|
||||
1. ಈಗ, `body` ಟ್ಯಾಗ್ಗಳ ಒಳಗೆ, ಕೆಲವು ಪದಾರ್ಥಗಳನ್ನು ಪ್ರತಿಬಿಂಬಿಸುವ ಚೆಕ್ಬಾಕ್ಸ್ಗಳ ಪಟ್ಟಿಯನ್ನು ತೋರಿಸಲು ಸ್ವಲ್ಪ ಮಾರ್ಕ್ಅಪ್ ಸೇರಿಸಿ:
|
||||
|
||||
```html
|
||||
<h1>Check your refrigerator. What can you create?</h1>
|
||||
<div id="wrapper">
|
||||
<div class="boxCont">
|
||||
<input type="checkbox" value="4" class="checkbox">
|
||||
<label>apple</label>
|
||||
</div>
|
||||
|
||||
<div class="boxCont">
|
||||
<input type="checkbox" value="247" class="checkbox">
|
||||
<label>pear</label>
|
||||
</div>
|
||||
|
||||
<div class="boxCont">
|
||||
<input type="checkbox" value="77" class="checkbox">
|
||||
<label>cherry</label>
|
||||
</div>
|
||||
|
||||
<div class="boxCont">
|
||||
<input type="checkbox" value="126" class="checkbox">
|
||||
<label>fenugreek</label>
|
||||
</div>
|
||||
|
||||
<div class="boxCont">
|
||||
<input type="checkbox" value="302" class="checkbox">
|
||||
<label>sake</label>
|
||||
</div>
|
||||
|
||||
<div class="boxCont">
|
||||
<input type="checkbox" value="327" class="checkbox">
|
||||
<label>soy sauce</label>
|
||||
</div>
|
||||
|
||||
<div class="boxCont">
|
||||
<input type="checkbox" value="112" class="checkbox">
|
||||
<label>cumin</label>
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding-top:10px">
|
||||
<button onClick="startInference()">What kind of cuisine can you make?</button>
|
||||
</div>
|
||||
```
|
||||
|
||||
ಪ್ರತಿ ಚೆಕ್ಬಾಕ್ಸ್ಗೆ ಒಂದು ಮೌಲ್ಯ ನೀಡಲಾಗಿದೆ. ಇದು ಡೇಟಾಸೆಟ್ ಪ್ರಕಾರ ಪದಾರ್ಥವು ಕಂಡುಬರುವ ಸೂಚ್ಯಂಕವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಆಪಲ್ ಈ ಅಕ್ಷರಮಾಲೆಯ ಪಟ್ಟಿಯಲ್ಲಿ ಐದನೇ ಕಾಲಮ್ನಲ್ಲಿ ಇದೆ, ಆದ್ದರಿಂದ ಅದರ ಮೌಲ್ಯ '4' ಆಗಿದೆ ಏಕೆಂದರೆ ನಾವು 0 ರಿಂದ ಎಣಿಕೆ ಪ್ರಾರಂಭಿಸುತ್ತೇವೆ. ನೀವು [ಪದಾರ್ಥಗಳ ಸ್ಪ್ರೆಡ್ಶೀಟ್](../../../../4-Classification/data/ingredient_indexes.csv) ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಯಾವುದೇ ಪದಾರ್ಥದ ಸೂಚ್ಯಂಕವನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು.
|
||||
|
||||
index.html ಫೈಲ್ನಲ್ಲಿ ನಿಮ್ಮ ಕೆಲಸವನ್ನು ಮುಂದುವರೆಸಿ, ಕೊನೆಯ `</div>` ನಂತರ ಮಾದರಿಯನ್ನು ಕರೆಮಾಡುವ ಸ್ಕ್ರಿಪ್ಟ್ ಬ್ಲಾಕ್ ಸೇರಿಸಿ.
|
||||
|
||||
1. ಮೊದಲು, [Onnx Runtime](https://www.onnxruntime.ai/) ಅನ್ನು ಆಮದುಮಾಡಿ:
|
||||
|
||||
```html
|
||||
<script src="https://cdn.jsdelivr.net/npm/onnxruntime-web@1.9.0/dist/ort.min.js"></script>
|
||||
```
|
||||
|
||||
> Onnx Runtime ಅನ್ನು ನಿಮ್ಮ Onnx ಮಾದರಿಗಳನ್ನು ವಿವಿಧ ಹಾರ್ಡ್ವೇರ್ ವೇದಿಕೆಗಳಲ್ಲಿ ಚಾಲನೆ ಮಾಡಲು ಬಳಸಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಆಪ್ಟಿಮೈಜೆಷನ್ಗಳು ಮತ್ತು API ಸಹ ಇದೆ.
|
||||
|
||||
1. ರನ್ಟೈಮ್ ಸಿದ್ಧವಾದ ಮೇಲೆ, ನೀವು ಅದನ್ನು ಕರೆಮಾಡಬಹುದು:
|
||||
|
||||
```html
|
||||
<script>
|
||||
const ingredients = Array(380).fill(0);
|
||||
|
||||
const checks = [...document.querySelectorAll('.checkbox')];
|
||||
|
||||
checks.forEach(check => {
|
||||
check.addEventListener('change', function() {
|
||||
// toggle the state of the ingredient
|
||||
// based on the checkbox's value (1 or 0)
|
||||
ingredients[check.value] = check.checked ? 1 : 0;
|
||||
});
|
||||
});
|
||||
|
||||
function testCheckboxes() {
|
||||
// validate if at least one checkbox is checked
|
||||
return checks.some(check => check.checked);
|
||||
}
|
||||
|
||||
async function startInference() {
|
||||
|
||||
let atLeastOneChecked = testCheckboxes()
|
||||
|
||||
if (!atLeastOneChecked) {
|
||||
alert('Please select at least one ingredient.');
|
||||
return;
|
||||
}
|
||||
try {
|
||||
// create a new session and load the model.
|
||||
|
||||
const session = await ort.InferenceSession.create('./model.onnx');
|
||||
|
||||
const input = new ort.Tensor(new Float32Array(ingredients), [1, 380]);
|
||||
const feeds = { float_input: input };
|
||||
|
||||
// feed inputs and run
|
||||
const results = await session.run(feeds);
|
||||
|
||||
// read from results
|
||||
alert('You can enjoy ' + results.label.data[0] + ' cuisine today!')
|
||||
|
||||
} catch (e) {
|
||||
console.log(`failed to inference ONNX model`);
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
```
|
||||
|
||||
ಈ ಕೋಡ್ನಲ್ಲಿ ಹಲವಾರು ಕಾರ್ಯಗಳು ನಡೆಯುತ್ತವೆ:
|
||||
|
||||
1. 380 ಸಾಧ್ಯ ಮೌಲ್ಯಗಳ (1 ಅಥವಾ 0) ಅರೆ ರಚಿಸಲಾಗಿದೆ, ಇದು ಮಾದರಿಗಾಗಿ ನಿರ್ಣಯಕ್ಕೆ ಕಳುಹಿಸಲಾಗುತ್ತದೆ, ಪದಾರ್ಥ ಚೆಕ್ಬಾಕ್ಸ್ ಪರಿಶೀಲಿತವೋ ಇಲ್ಲವೋ ಅವಲಂಬಿಸಿ.
|
||||
2. ಚೆಕ್ಬಾಕ್ಸ್ಗಳ ಅರೆ ಮತ್ತು ಅವು ಪರಿಶೀಲಿತವೋ ಇಲ್ಲವೋ ತಿಳಿಯಲು `init` ಫಂಕ್ಷನ್ ರಚಿಸಲಾಗಿದೆ, ಇದು ಅಪ್ಲಿಕೇಶನ್ ಪ್ರಾರಂಭವಾದಾಗ ಕರೆಮಾಡಲಾಗುತ್ತದೆ. ಚೆಕ್ಬಾಕ್ಸ್ ಪರಿಶೀಲಿತವಾಗಿದ್ದರೆ, `ingredients` ಅರೆ ಆಯ್ಕೆಮಾಡಿದ ಪದಾರ್ಥವನ್ನು ಪ್ರತಿಬಿಂಬಿಸುತ್ತದೆ.
|
||||
3. `testCheckboxes` ಫಂಕ್ಷನ್ ರಚಿಸಲಾಗಿದೆ, ಇದು ಯಾವುದೇ ಚೆಕ್ಬಾಕ್ಸ್ ಪರಿಶೀಲಿತವೋ ಇಲ್ಲವೋ ಪರಿಶೀಲಿಸುತ್ತದೆ.
|
||||
4. ಬಟನ್ ಒತ್ತಿದಾಗ `startInference` ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ ಮತ್ತು ಯಾವುದೇ ಚೆಕ್ಬಾಕ್ಸ್ ಪರಿಶೀಲಿತವಿದ್ದರೆ ನಿರ್ಣಯ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ.
|
||||
5. ನಿರ್ಣಯ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ:
|
||||
1. ಮಾದರಿಯನ್ನು ಅಸಿಂಕ್ರೋನಸ್ ಲೋಡ್ ಮಾಡುವುದು
|
||||
2. ಮಾದರಿಗೆ ಕಳುಹಿಸಲು ಟೆನ್ಸರ್ ರಚಿಸುವುದು
|
||||
3. ನೀವು ತರಬೇತುಗೊಂಡಾಗ ರಚಿಸಿದ `float_input` ಇನ್ಪುಟ್ ಅನ್ನು ಪ್ರತಿಬಿಂಬಿಸುವ 'ಫೀಡ್ಸ್' ರಚಿಸುವುದು (ನೀವು ನೆಟ್ರಾನ್ ಬಳಸಿ ಆ ಹೆಸರು ಪರಿಶೀಲಿಸಬಹುದು)
|
||||
4. ಈ 'ಫೀಡ್ಸ್' ಅನ್ನು ಮಾದರಿಗೆ ಕಳುಹಿಸಿ ಪ್ರತಿಕ್ರಿಯೆಗಾಗಿ ಕಾಯುವುದು
|
||||
|
||||
## ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಪರೀಕ್ಷಿಸಿ
|
||||
|
||||
Visual Studio Code ನಲ್ಲಿ ನಿಮ್ಮ index.html ಫೈಲ್ ಇರುವ ಫೋಲ್ಡರ್ನಲ್ಲಿ ಟರ್ಮಿನಲ್ ಸೆಷನ್ ತೆರೆಯಿರಿ. ನೀವು [http-server](https://www.npmjs.com/package/http-server) ಅನ್ನು ಜಾಗತಿಕವಾಗಿ ಸ್ಥಾಪಿಸಿರುವುದನ್ನು ಖಚಿತಪಡಿಸಿ, ಮತ್ತು ಪ್ರಾಂಪ್ಟ್ನಲ್ಲಿ `http-server` ಟೈಪ್ ಮಾಡಿ. ಒಂದು ಲೋಕಲ್ಹೋಸ್ಟ್ ತೆರೆಯುತ್ತದೆ ಮತ್ತು ನೀವು ನಿಮ್ಮ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನೋಡಬಹುದು. ವಿವಿಧ ಪದಾರ್ಥಗಳ ಆಧಾರದ ಮೇಲೆ ಯಾವ ಆಹಾರ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ ಎಂದು ಪರಿಶೀಲಿಸಿ:
|
||||
|
||||

|
||||
|
||||
ಅಭಿನಂದನೆಗಳು, ನೀವು ಕೆಲವು ಕ್ಷೇತ್ರಗಳೊಂದಿಗೆ 'ಶಿಫಾರಸು' ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸಿದ್ದೀರಿ. ಈ ವ್ಯವಸ್ಥೆಯನ್ನು ವಿಸ್ತರಿಸಲು ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳಿ!
|
||||
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
ನಿಮ್ಮ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಬಹಳ ಸಣ್ಣದಾಗಿದೆ, ಆದ್ದರಿಂದ [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)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "799ed651e2af0a7cad17c6268db11578",
|
||||
"translation_date": "2025-12-19T15:29:43+00:00",
|
||||
"source_file": "4-Classification/4-Applied/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಶಿಫಾರಸುಕಾರರನ್ನು ನಿರ್ಮಿಸಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ ನಿಮ್ಮ ವ್ಯಾಯಾಮಗಳನ್ನು ನೀಡಿದಂತೆ, ನೀವು ಈಗ Onnx Runtime ಮತ್ತು ಪರಿವರ್ತಿತ Onnx ಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಆಧಾರಿತ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸುವುದು ಎಂದು ತಿಳಿದಿದ್ದೀರಿ. ಈ ಪಾಠಗಳಿಂದ ಅಥವಾ ಬೇರೆಡೆಗಳಿಂದ ಪಡೆದ ಡೇಟಾವನ್ನು ಬಳಸಿಕೊಂಡು ಹೊಸ ಶಿಫಾರಸುಕಾರರನ್ನು ನಿರ್ಮಿಸುವ ಪ್ರಯೋಗ ಮಾಡಿ (ದಯವಿಟ್ಟು ಕ್ರೆಡಿಟ್ ನೀಡಿ). ನೀವು ವಿವಿಧ ವ್ಯಕ್ತಿತ್ವ ಲಕ್ಷಣಗಳನ್ನು ಆಧರಿಸಿ ಪೆಟ್ ಶಿಫಾರಸುಕಾರರನ್ನು ಅಥವಾ ವ್ಯಕ್ತಿಯ ಮನೋಭಾವವನ್ನು ಆಧರಿಸಿ ಸಂಗೀತ ಶೈಲಿ ಶಿಫಾರಸುಕಾರರನ್ನು ರಚಿಸಬಹುದು. ಸೃಜನಶೀಲವಾಗಿರಿ!
|
||||
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | ---------------------------------------------------------------------- | ------------------------------------- | --------------------------------- |
|
||||
| | ಒಂದು ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ಮತ್ತು ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ, ಎರಡೂ ಚೆನ್ನಾಗಿ ದಾಖಲೆ ಮಾಡಲ್ಪಟ್ಟಿದ್ದು ಮತ್ತು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿವೆ | ಅವುಗಳಲ್ಲಿ ಒಂದೇ ಇಲ್ಲ ಅಥವಾ ದೋಷಪೂರಿತವಾಗಿದೆ | ಎರಡೂ ಇಲ್ಲ ಅಥವಾ ದೋಷಪೂರಿತವಾಗಿವೆ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,41 @@
|
||||
{
|
||||
"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,
|
||||
"coopTranslator": {
|
||||
"original_hash": "2f3e0d9e9ac5c301558fb8bf733ac0cb",
|
||||
"translation_date": "2025-12-19T17:03:11+00:00",
|
||||
"source_file": "4-Classification/4-Applied/notebook.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2,
|
||||
"cells": [
|
||||
{
|
||||
"source": [
|
||||
"# ಆಹಾರ ಶಿಫಾರಸು ಮಾಡುವ ವ್ಯವಸ್ಥೆ ನಿರ್ಮಿಸಿ\n"
|
||||
],
|
||||
"cell_type": "markdown",
|
||||
"metadata": {}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "74e809ffd1e613a1058bbc3e9600859e",
|
||||
"translation_date": "2025-12-19T13:07:18+00:00",
|
||||
"source_file": "4-Classification/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ವರ್ಗೀಕರಣದೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುವುದು
|
||||
|
||||
## ಪ್ರಾದೇಶಿಕ ವಿಷಯ: ರುಚಿಕರ ಏಷ್ಯನ್ ಮತ್ತು ಭಾರತೀಯ ಆಹಾರಗಳು 🍜
|
||||
|
||||
ಏಷ್ಯಾ ಮತ್ತು ಭಾರತದಲ್ಲಿ, ಆಹಾರ ಪರಂಪರೆಗಳು ಅತ್ಯಂತ ವೈವಿಧ್ಯಮಯವಾಗಿವೆ ಮತ್ತು ತುಂಬಾ ರುಚಿಕರವಾಗಿವೆ! ಅವರ ಪದಾರ್ಥಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಾದೇಶಿಕ ಆಹಾರಗಳ ಬಗ್ಗೆ ಡೇಟಾವನ್ನು ನೋಡೋಣ.
|
||||
|
||||

|
||||
> ಫೋಟೋ <a href="https://unsplash.com/@changlisheng?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">ಲಿಶೆಂಗ್ ಚಾಂಗ್</a> ಅವರಿಂದ <a href="https://unsplash.com/s/photos/asian-food?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">ಅನ್ಸ್ಪ್ಲ್ಯಾಶ್</a> ನಲ್ಲಿ
|
||||
|
||||
## ನೀವು ಏನು ಕಲಿಯುತ್ತೀರಿ
|
||||
|
||||
ಈ ವಿಭಾಗದಲ್ಲಿ, ನೀವು ನಿಮ್ಮ ಹಿಂದಿನ ರಿಗ್ರೆಶನ್ ಅಧ್ಯಯನದ ಮೇಲೆ ನಿರ್ಮಿಸಿ, ಡೇಟಾವನ್ನು ಉತ್ತಮವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಬಳಸಬಹುದಾದ ಇತರ ವರ್ಗೀಕರಣಗಳನ್ನು ತಿಳಿಯುತ್ತೀರಿ.
|
||||
|
||||
> ವರ್ಗೀಕರಣ ಮಾದರಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಕಲಿಯಲು ಸಹಾಯ ಮಾಡುವ ಉಪಯುಕ್ತ ಕಡಿಮೆ-ಕೋಡ್ ಸಾಧನಗಳಿವೆ. ಈ ಕಾರ್ಯಕ್ಕಾಗಿ [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. [ಅನ್ವಯಿಸಿದ ಎಂಎಲ್: ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಿಸಿ](4-Applied/README.md)
|
||||
|
||||
## ಕ್ರೆಡಿಟ್ಸ್
|
||||
|
||||
"ವರ್ಗೀಕರಣದೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸುವುದು" ಅನ್ನು ♥️ ಸಹಿತ [ಕ್ಯಾಸಿ ಬ್ರೇವಿಯು](https://www.twitter.com/cassiebreviu) ಮತ್ತು [ಜೆನ್ ಲೂಪರ್](https://www.twitter.com/jenlooper) ರವರು ಬರೆಯಲಾಗಿದೆ
|
||||
|
||||
ರುಚಿಕರ ಆಹಾರಗಳ ಡೇಟಾಸೆಟ್ ಅನ್ನು [ಕಾಗಲ್](https://www.kaggle.com/hoandan/asian-and-indian-cuisines) ನಿಂದ ಪಡೆದಿದೆ.
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,349 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "730225ea274c9174fe688b21d421539d",
|
||||
"translation_date": "2025-12-19T15:02:45+00:00",
|
||||
"source_file": "5-Clustering/1-Visualize/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಕ್ಲಸ್ಟರಿಂಗ್ ಪರಿಚಯ
|
||||
|
||||
ಕ್ಲಸ್ಟರಿಂಗ್ ಒಂದು ರೀತಿಯ [ಅನಿಯಂತ್ರಿತ ಕಲಿಕೆ](https://wikipedia.org/wiki/Unsupervised_learning) ಆಗಿದ್ದು, ಅದು ಡೇಟಾಸೆಟ್ ಲೇಬಲ್ ಮಾಡದಿರುವುದು ಅಥವಾ ಅದರ ಇನ್ಪುಟ್ಗಳು ಪೂರ್ವನಿರ್ಧರಿತ ಔಟ್ಪುಟ್ಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆ ಮಾಡದಿರುವುದಾಗಿ ಊಹಿಸುತ್ತದೆ. ಇದು ಲೇಬಲ್ ಮಾಡದ ಡೇಟಾದ ಮೂಲಕ ವಿವಿಧ ಆಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾದಲ್ಲಿನ ಮಾದರಿಗಳನ್ನು ಗುರುತಿಸಿ ಗುಂಪುಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
|
||||
|
||||
[](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
|
||||
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ವೀಡಿಯೋವನ್ನು ನೋಡಿ. ನೀವು ಕ್ಲಸ್ಟರಿಂಗ್ನೊಂದಿಗೆ ಮೆಷಿನ್ ಲರ್ನಿಂಗ್ ಅಧ್ಯಯನ ಮಾಡುತ್ತಿರುವಾಗ, ಕೆಲವು ನೈಜೀರಿಯನ್ ಡ್ಯಾನ್ಸ್ ಹಾಲ್ ಟ್ರ್ಯಾಕ್ಗಳನ್ನು ಆನಂದಿಸಿ - ಇದು 2014 ರಲ್ಲಿ PSquare ಅವರಿಂದ ಅತ್ಯಂತ ಶ್ರೇಯಾಂಕಿತ ಹಾಡಾಗಿದೆ.
|
||||
|
||||
## [ಪೂರ್ವ-ಲೇಕ್ಚರ್ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
### ಪರಿಚಯ
|
||||
|
||||
[ಕ್ಲಸ್ಟರಿಂಗ್](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) ಡೇಟಾ ಅನ್ವೇಷಣೆಗೆ ಬಹಳ ಉಪಯುಕ್ತವಾಗಿದೆ. ನೈಜೀರಿಯನ್ ಪ್ರೇಕ್ಷಕರು ಸಂಗೀತವನ್ನು ಹೇಗೆ ಉಪಯೋಗಿಸುತ್ತಾರೆ ಎಂಬುದರಲ್ಲಿ ಟ್ರೆಂಡ್ಸ್ ಮತ್ತು ಮಾದರಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಇದು ಸಹಾಯ ಮಾಡಬಹುದೇ ಎಂದು ನೋಡೋಣ.
|
||||
|
||||
✅ ಕ್ಲಸ್ಟರಿಂಗ್ನ ಉಪಯೋಗಗಳನ್ನು ಒಂದು ನಿಮಿಷ ಯೋಚಿಸಿ. ನಿಜ ಜೀವನದಲ್ಲಿ, ನೀವು ಬಟ್ಟೆಗಳನ್ನು ಗುಂಪುಮಾಡಬೇಕಾದಾಗ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಗುತ್ತದೆ 🧦👕👖🩲. ಡೇಟಾ ಸೈನ್ಸ್ನಲ್ಲಿ, ಬಳಕೆದಾರರ ಇಚ್ಛೆಗಳ ವಿಶ್ಲೇಷಣೆ ಮಾಡಲು ಅಥವಾ ಯಾವುದೇ ಲೇಬಲ್ ಮಾಡದ ಡೇಟಾಸೆಟ್ನ ಲಕ್ಷಣಗಳನ್ನು ನಿರ್ಧರಿಸಲು ಕ್ಲಸ್ಟರಿಂಗ್ ಆಗುತ್ತದೆ. ಕ್ಲಸ್ಟರಿಂಗ್, ಒಂದು ರೀತಿಯಲ್ಲಿ, ಗೊಂದಲವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಹೀಗಾಗಿ ಅದು ಒಂದು ಸಾಕ್ ಡ್ರಾಯರ್ನಂತೆ.
|
||||
|
||||
[](https://youtu.be/esmzYhuFnds "Introduction to Clustering")
|
||||
|
||||
> 🎥 ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ ವೀಡಿಯೋವನ್ನು ನೋಡಿ: MIT ನ John Guttag ಕ್ಲಸ್ಟರಿಂಗ್ ಪರಿಚಯಿಸುತ್ತಾರೆ
|
||||
|
||||
ವೃತ್ತಿಪರ ಪರಿಸರದಲ್ಲಿ, ಕ್ಲಸ್ಟರಿಂಗ್ ಅನ್ನು ಮಾರುಕಟ್ಟೆ ವಿಭಾಗೀಕರಣ, ಯಾವ ವಯಸ್ಸಿನ ಗುಂಪು ಯಾವ ವಸ್ತುಗಳನ್ನು ಖರೀದಿಸುತ್ತಾರೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಬಳಸಬಹುದು. ಮತ್ತೊಂದು ಉಪಯೋಗವು ಅನಾಮಲಿಯ ಪತ್ತೆ, ಉದಾಹರಣೆಗೆ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ವ್ಯವಹಾರಗಳ ಡೇಟಾಸೆಟ್ನಿಂದ ಮೋಸವನ್ನು ಪತ್ತೆಹಚ್ಚಲು. ಅಥವಾ ವೈದ್ಯಕೀಯ ಸ್ಕ್ಯಾನ್ಗಳ ಬ್ಯಾಚ್ನಲ್ಲಿ ಟ್ಯೂಮರ್ಗಳನ್ನು ಗುರುತಿಸಲು ಕ್ಲಸ್ಟರಿಂಗ್ ಬಳಸಬಹುದು.
|
||||
|
||||
✅ ಬ್ಯಾಂಕಿಂಗ್, ಇ-ಕಾಮರ್ಸ್ ಅಥವಾ ವ್ಯವಹಾರ ಪರಿಸರದಲ್ಲಿ ನೀವು ಕ್ಲಸ್ಟರಿಂಗ್ ಅನ್ನು 'ವೈಲ್ಡ್' ನಲ್ಲಿ ಹೇಗೆ ಎದುರಿಸಿದ್ದೀರೋ ಎಂದು ಒಂದು ನಿಮಿಷ ಯೋಚಿಸಿ.
|
||||
|
||||
> 🎓 ಆಸಕ್ತಿದಾಯಕವಾಗಿ, ಕ್ಲಸ್ಟರ್ ವಿಶ್ಲೇಷಣೆ 1930ರ ದಶಕದಲ್ಲಿ ಮಾನವಶಾಸ್ತ್ರ ಮತ್ತು ಮನೋವಿಜ್ಞಾನ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಹುಟ್ಟಿಕೊಂಡಿತು. ನೀವು ಅದನ್ನು ಹೇಗೆ ಬಳಸಲಾಗುತ್ತಿತ್ತು ಎಂದು ಊಹಿಸಬಹುದೇ?
|
||||
|
||||
ಬದಲಿ, ನೀವು ಶಾಪಿಂಗ್ ಲಿಂಕ್ಗಳು, ಚಿತ್ರಗಳು ಅಥವಾ ವಿಮರ್ಶೆಗಳ ಮೂಲಕ ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ಗುಂಪುಮಾಡಲು ಇದನ್ನು ಬಳಸಬಹುದು. ದೊಡ್ಡ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಅದರಲ್ಲಿ ಹೆಚ್ಚು ಸೂಕ್ಷ್ಮ ವಿಶ್ಲೇಷಣೆ ಮಾಡಲು ಕ್ಲಸ್ಟರಿಂಗ್ ಉಪಯುಕ್ತವಾಗಿದೆ, ಆದ್ದರಿಂದ ಈ ತಂತ್ರವನ್ನು ಇತರ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸುವ ಮೊದಲು ಡೇಟಾ ಬಗ್ಗೆ ತಿಳಿಯಲು ಬಳಸಬಹುದು.
|
||||
|
||||
✅ ನಿಮ್ಮ ಡೇಟಾ ಕ್ಲಸ್ಟರ್ಗಳಲ್ಲಿ ಸಂಘಟಿತವಾದ ನಂತರ, ನೀವು ಅದಕ್ಕೆ ಕ್ಲಸ್ಟರ್ ಐಡಿ ನೀಡುತ್ತೀರಿ, ಮತ್ತು ಈ ತಂತ್ರವು ಡೇಟಾಸೆಟ್ನ ಗೌಪ್ಯತೆಯನ್ನು ಕಾಪಾಡಲು ಸಹಾಯ ಮಾಡಬಹುದು; ನೀವು ಡೇಟಾ ಪಾಯಿಂಟ್ ಅನ್ನು ಹೆಚ್ಚು ಬಹಿರಂಗಪಡಿಸುವ ಗುರುತಿಸುವ ಡೇಟಾ ಬದಲು ಅದರ ಕ್ಲಸ್ಟರ್ ಐಡಿ ಮೂಲಕ ಸೂಚಿಸಬಹುದು. ನೀವು ಇನ್ನಾವುದೇ ಕಾರಣಗಳನ್ನು ಯೋಚಿಸಬಹುದೇ, ಏಕೆ ನೀವು ಕ್ಲಸ್ಟರ್ ಐಡಿಯನ್ನು ಬಳಸುತ್ತೀರಿ?
|
||||
|
||||
ಕ್ಲಸ್ಟರಿಂಗ್ ತಂತ್ರಗಳನ್ನು ಈ [ಕಲಿಕೆ ಘಟಕದಲ್ಲಿ](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 | ಅನೇಕ, ನಿರ್ಬಂಧಿತ, ನಾನ್ ಯೂಕ್ಲಿಡಿಯನ್ ದೂರಗಳು, ಪರಿವಹನಾತ್ಮಕ |
|
||||
| DBSCAN | ನಾನ್-ಫ್ಲಾಟ್ ಜ್ಯಾಮಿತಿ, ಅಸಮಾನ ಕ್ಲಸ್ಟರ್ಗಳು, ಪರಿವಹನಾತ್ಮಕ |
|
||||
| OPTICS | ನಾನ್-ಫ್ಲಾಟ್ ಜ್ಯಾಮಿತಿ, ಬದಲಾಗುವ ಸಾಂದ್ರತೆಯೊಂದಿಗೆ ಅಸಮಾನ ಕ್ಲಸ್ಟರ್ಗಳು, ಪರಿವಹನಾತ್ಮಕ |
|
||||
| Gaussian mixtures | ಫ್ಲಾಟ್ ಜ್ಯಾಮಿತಿ, ಸೂಚಕ |
|
||||
| BIRCH | ದೊಡ್ಡ ಡೇಟಾಸೆಟ್ ಮತ್ತು ಔಟ್ಲೈಯರ್ಗಳು, ಸೂಚಕ |
|
||||
|
||||
> 🎓 ನಾವು ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಹೇಗೆ ರಚಿಸುತ್ತೇವೆ ಎಂಬುದು ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳನ್ನು ಗುಂಪುಗಳಲ್ಲಿ ಹೇಗೆ ಸಂಗ್ರಹಿಸುತ್ತೇವೆ ಎಂಬುದರ ಮೇಲೆ ಬಹಳ ಅವಲಂಬಿತವಾಗಿದೆ. ಕೆಲವು ಪದಗಳನ್ನು ವಿವರಿಸೋಣ:
|
||||
>
|
||||
> 🎓 ['ಪರಿವಹನಾತ್ಮಕ' ಮತ್ತು 'ಸೂಚಕ'](https://wikipedia.org/wiki/Transduction_(machine_learning))
|
||||
>
|
||||
> ಪರಿವಹನಾತ್ಮಕ ನಿರ್ಣಯವು ನಿರೀಕ್ಷಿತ ತರಬೇತಿ ಪ್ರಕರಣಗಳಿಂದ ನಿರ್ಗಮಿಸುತ್ತದೆ, ಅವು ನಿರ್ದಿಷ್ಟ ಪರೀಕ್ಷಾ ಪ್ರಕರಣಗಳಿಗೆ ನಕ್ಷೆ ಮಾಡುತ್ತವೆ. ಸೂಚಕ ನಿರ್ಣಯವು ಸಾಮಾನ್ಯ ನಿಯಮಗಳಿಗೆ ನಕ್ಷೆ ಮಾಡಲಾದ ತರಬೇತಿ ಪ್ರಕರಣಗಳಿಂದ ನಿರ್ಗಮಿಸುತ್ತದೆ ಮತ್ತು ನಂತರ ಅವು ಪರೀಕ್ಷಾ ಪ್ರಕರಣಗಳಿಗೆ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.
|
||||
>
|
||||
> ಉದಾಹರಣೆ: ನಿಮ್ಮ ಬಳಿ ಭಾಗಶಃ ಮಾತ್ರ ಲೇಬಲ್ ಮಾಡಲಾದ ಡೇಟಾಸೆಟ್ ಇದ್ದರೆ, ಕೆಲವು 'ರೆಕಾರ್ಡ್ಗಳು', ಕೆಲವು 'ಸಿಡಿಗಳು', ಮತ್ತು ಕೆಲವು ಖಾಲಿ. ನಿಮ್ಮ ಕೆಲಸ ಖಾಲಿ ಭಾಗಗಳಿಗೆ ಲೇಬಲ್ ನೀಡುವುದು. ನೀವು ಸೂಚಕ ವಿಧಾನವನ್ನು ಆಯ್ಕೆಮಾಡಿದರೆ, ನೀವು 'ರೆಕಾರ್ಡ್ಗಳು' ಮತ್ತು 'ಸಿಡಿಗಳು' ಹುಡುಕುವ ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಿ, ಆ ಲೇಬಲ್ಗಳನ್ನು ಲೇಬಲ್ ಮಾಡದ ಡೇಟಾಗೆ ಅನ್ವಯಿಸುತ್ತೀರಿ. ಈ ವಿಧಾನವು 'ಕ್ಯಾಸೆಟ್ಗಳು' ಎಂಬ ವಸ್ತುಗಳನ್ನು ಸರಿಯಾಗಿ ವರ್ಗೀಕರಿಸಲು ಕಷ್ಟಪಡುತ್ತದೆ. ಪರಿವಹನಾತ್ಮಕ ವಿಧಾನವು, ಇನ್ನೊಂದು ಬದಿಯಲ್ಲಿ, ಈ ಅಜ್ಞಾತ ಡೇಟಾವನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ ಏಕೆಂದರೆ ಅದು ಸಮಾನ ವಸ್ತುಗಳನ್ನು ಗುಂಪುಮಾಡುತ್ತದೆ ಮತ್ತು ನಂತರ ಗುಂಪಿಗೆ ಲೇಬಲ್ ಅನ್ವಯಿಸುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಕ್ಲಸ್ಟರ್ಗಳು 'ವೃತ್ತಾಕಾರದ ಸಂಗೀತ ವಸ್ತುಗಳು' ಮತ್ತು 'ಚೌಕಾಕಾರದ ಸಂಗೀತ ವಸ್ತುಗಳು' ಎಂದು ಪ್ರತಿಬಿಂಬಿಸಬಹುದು.
|
||||
>
|
||||
> 🎓 ['ನಾನ್-ಫ್ಲಾಟ್' ಮತ್ತು 'ಫ್ಲಾಟ್' ಜ್ಯಾಮಿತಿ](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
|
||||
>
|
||||
> ಗಣಿತೀಯ ಪದಬಳಕೆಯಿಂದ, ನಾನ್-ಫ್ಲಾಟ್ ಮತ್ತು ಫ್ಲಾಟ್ ಜ್ಯಾಮಿತಿ ಅಂದರೆ ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ದೂರವನ್ನು 'ಫ್ಲಾಟ್' ([ಯೂಕ್ಲಿಡಿಯನ್](https://wikipedia.org/wiki/Euclidean_geometry)) ಅಥವಾ 'ನಾನ್-ಫ್ಲಾಟ್' (ನಾನ್-ಯೂಕ್ಲಿಡಿಯನ್) ಜ್ಯಾಮಿತೀಯ ವಿಧಾನಗಳಿಂದ ಅಳೆಯುವಿಕೆ.
|
||||
>
|
||||
> ಈ ಸಂದರ್ಭದಲ್ಲಿ 'ಫ್ಲಾಟ್' ಅಂದರೆ ಯೂಕ್ಲಿಡಿಯನ್ ಜ್ಯಾಮಿತಿ (ಇದರಲ್ಲಿ ಕೆಲವು ಭಾಗಗಳನ್ನು 'ಪ್ಲೇನ್' ಜ್ಯಾಮಿತಿ ಎಂದು ಕಲಿಸಲಾಗುತ್ತದೆ), ಮತ್ತು ನಾನ್-ಫ್ಲಾಟ್ ಅಂದರೆ ನಾನ್-ಯೂಕ್ಲಿಡಿಯನ್ ಜ್ಯಾಮಿತಿ. ಮೆಷಿನ್ ಲರ್ನಿಂಗ್ಗೆ ಜ್ಯಾಮಿತಿಗೆ ಏನು ಸಂಬಂಧ? ಗಣಿತದಲ್ಲಿ ಆಧಾರಿತ ಎರಡು ಕ್ಷೇತ್ರಗಳಾಗಿ, ಕ್ಲಸ್ಟರ್ಗಳಲ್ಲಿನ ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ದೂರವನ್ನು ಅಳೆಯಲು ಸಾಮಾನ್ಯ ವಿಧಾನ ಇರಬೇಕು, ಮತ್ತು ಅದು 'ಫ್ಲಾಟ್' ಅಥವಾ 'ನಾನ್-ಫ್ಲಾಟ್' ರೀತಿಯಲ್ಲಿ ಮಾಡಬಹುದು, ಡೇಟಾದ ಸ್ವಭಾವದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿರುತ್ತದೆ. [ಯೂಕ್ಲಿಡಿಯನ್ ದೂರಗಳು](https://wikipedia.org/wiki/Euclidean_distance) ಎರಡು ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ರೇಖೆಯ ಉದ್ದವಾಗಿ ಅಳೆಯಲ್ಪಡುತ್ತವೆ. [ನಾನ್-ಯೂಕ್ಲಿಡಿಯನ್ ದೂರಗಳು](https://wikipedia.org/wiki/Non-Euclidean_geometry) ವಕ್ರರೇಖೆಯ ಮೇಲೆ ಅಳೆಯಲ್ಪಡುತ್ತವೆ. ನಿಮ್ಮ ಡೇಟಾ ದೃಶ್ಯೀಕರಿಸಿದಾಗ ಸಮತಲದಲ್ಲಿ ಇಲ್ಲದಂತೆ ಕಾಣಿಸಿದರೆ, ಅದನ್ನು ನಿರ್ವಹಿಸಲು ವಿಶೇಷ ಆಲ್ಗಾರಿಥಮ್ ಬೇಕಾಗಬಹುದು.
|
||||
>
|
||||

|
||||
> ಇನ್ಫೋಗ್ರಾಫಿಕ್: [ದಾಸನಿ ಮಡಿಪಳ್ಳಿ](https://twitter.com/dasani_decoded)
|
||||
>
|
||||
> 🎓 ['ದೂರಗಳು'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
|
||||
>
|
||||
> ಕ್ಲಸ್ಟರ್ಗಳು ಅವುಗಳ ದೂರ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಮೂಲಕ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗುತ್ತವೆ, ಉದಾ: ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ದೂರಗಳು. ಈ ದೂರವನ್ನು ಕೆಲವು ವಿಧಾನಗಳಲ್ಲಿ ಅಳೆಯಬಹುದು. ಯೂಕ್ಲಿಡಿಯನ್ ಕ್ಲಸ್ಟರ್ಗಳು ಪಾಯಿಂಟ್ ಮೌಲ್ಯಗಳ ಸರಾಸರಿಯಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲ್ಪಡುತ್ತವೆ ಮತ್ತು 'ಸೆಂಟ್ರಾಯ್ಡ್' ಅಥವಾ ಕೇಂದ್ರ ಬಿಂದುವನ್ನು ಹೊಂದಿರುತ್ತವೆ. ದೂರಗಳು ಆ ಸೆಂಟ್ರಾಯ್ಡ್ಗೆ ಇರುವ ದೂರದಿಂದ ಅಳೆಯಲ್ಪಡುತ್ತವೆ. ನಾನ್-ಯೂಕ್ಲಿಡಿಯನ್ ದೂರಗಳು 'ಕ್ಲಸ್ಟ್ರಾಯ್ಡ್'ಗಳಿಗೆ ಸಂಬಂಧಿಸಿದವು, ಅದು ಇತರ ಪಾಯಿಂಟ್ಗಳಿಗೆ ಅತ್ಯಂತ ಸಮೀಪದ ಬಿಂದುವಾಗಿರುತ್ತದೆ. ಕ್ಲಸ್ಟ್ರಾಯ್ಡ್ಗಳನ್ನು ವಿವಿಧ ರೀತಿಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು.
|
||||
>
|
||||
> 🎓 ['ನಿರ್ಬಂಧಿತ'](https://wikipedia.org/wiki/Constrained_clustering)
|
||||
>
|
||||
> [ನಿರ್ಬಂಧಿತ ಕ್ಲಸ್ಟರಿಂಗ್](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) ಈ ಅನಿಯಂತ್ರಿತ ವಿಧಾನಕ್ಕೆ 'ಅರ್ಧ-ನಿಯಂತ್ರಿತ' ಕಲಿಕೆಯನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ಸಂಬಂಧಗಳನ್ನು 'ಲಿಂಕ್ ಮಾಡಬಾರದು' ಅಥವಾ 'ಲಿಂಕ್ ಮಾಡಬೇಕು' ಎಂದು ಗುರುತಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಕೆಲವು ನಿಯಮಗಳನ್ನು ಡೇಟಾಸೆಟ್ಗೆ ಜಾರಿಗೊಳಿಸಲಾಗುತ್ತದೆ.
|
||||
>
|
||||
> ಉದಾಹರಣೆ: ಒಂದು ಆಲ್ಗಾರಿಥಮ್ ಲೇಬಲ್ ಮಾಡದ ಅಥವಾ ಅರ್ಧ ಲೇಬಲ್ ಮಾಡಲಾದ ಡೇಟಾದ ಮೇಲೆ ಮುಕ್ತವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಿದರೆ, ಅದು ಉತ್ಪಾದಿಸುವ ಕ್ಲಸ್ಟರ್ಗಳು ಕಡಿಮೆ ಗುಣಮಟ್ಟದಿರಬಹುದು. ಮೇಲಿನ ಉದಾಹರಣೆಯಲ್ಲಿ, ಕ್ಲಸ್ಟರ್ಗಳು 'ವೃತ್ತಾಕಾರದ ಸಂಗೀತ ವಸ್ತುಗಳು', 'ಚೌಕಾಕಾರದ ಸಂಗೀತ ವಸ್ತುಗಳು', 'ತ್ರಿಕೋನಾಕಾರದ ವಸ್ತುಗಳು' ಮತ್ತು 'ಕುಕೀಸ್' ಎಂದು ಗುಂಪುಮಾಡಬಹುದು. ಕೆಲವು ನಿಯಮಗಳು ("ವಸ್ತು ಪ್ಲಾಸ್ಟಿಕ್ನಿಂದ ಮಾಡಬೇಕು", "ವಸ್ತು ಸಂಗೀತ ಉತ್ಪಾದಿಸಬಲ್ಲದು") ನೀಡಿದರೆ, ಇದು ಆಲ್ಗಾರಿಥಮ್ಗೆ ಉತ್ತಮ ಆಯ್ಕೆಗಳನ್ನು ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
|
||||
>
|
||||
> 🎓 'ಸಾಂದ್ರತೆ'
|
||||
>
|
||||
> 'ಶಬ್ದ' ಇರುವ ಡೇಟಾವನ್ನು 'ಸಾಂದ್ರ' ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಪ್ರತಿ ಕ್ಲಸ್ಟರ್ನಲ್ಲಿನ ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ದೂರಗಳು ಪರಿಶೀಲನೆಯಾಗುವಾಗ ಹೆಚ್ಚು ಅಥವಾ ಕಡಿಮೆ ಸಾಂದ್ರವಾಗಿರಬಹುದು, ಅಥವಾ 'ಘನತೆ' ಹೊಂದಿರಬಹುದು, ಆದ್ದರಿಂದ ಈ ಡೇಟಾವನ್ನು ಸೂಕ್ತ ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಧಾನದಿಂದ ವಿಶ್ಲೇಷಿಸಬೇಕಾಗುತ್ತದೆ. [ಈ ಲೇಖನ](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) K-Means ಕ್ಲಸ್ಟರಿಂಗ್ ಮತ್ತು HDBSCAN ಆಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅಸಮಾನ ಕ್ಲಸ್ಟರ್ ಸಾಂದ್ರತೆಯೊಂದಿಗೆ ಶಬ್ದ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಅನ್ವೇಷಿಸುವ ವ್ಯತ್ಯಾಸವನ್ನು ತೋರಿಸುತ್ತದೆ.
|
||||
|
||||
## ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳು
|
||||
|
||||
100ಕ್ಕೂ ಹೆಚ್ಚು ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳಿವೆ, ಮತ್ತು ಅವುಗಳ ಬಳಕೆ ಡೇಟಾದ ಸ್ವಭಾವದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ. ಕೆಲವು ಪ್ರಮುಖ ಆಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಚರ್ಚಿಸೋಣ:
|
||||
|
||||
- **ಹೈರಾರ್ಕಿಕಲ್ ಕ್ಲಸ್ಟರಿಂಗ್**. ಒಂದು ವಸ್ತುವನ್ನು ಅದರ ಸಮೀಪದ ವಸ್ತುವಿನ ಹತ್ತಿರತೆ ಆಧರಿಸಿ ವರ್ಗೀಕರಿಸಿದರೆ, ಕ್ಲಸ್ಟರ್ಗಳು ಅವುಗಳ ಸದಸ್ಯರ ದೂರದ ಆಧಾರದ ಮೇಲೆ ರಚಿಸಲಾಗುತ್ತವೆ. Scikit-learn ನ ಅಗ್ಗ್ಲೊಮೆರೇಟಿವ್ ಕ್ಲಸ್ಟರಿಂಗ್ ಹೈರಾರ್ಕಿಕಲ್ ಆಗಿದೆ.
|
||||
|
||||

|
||||
> ಇನ್ಫೋಗ್ರಾಫಿಕ್: [ದಾಸನಿ ಮಡಿಪಳ್ಳಿ](https://twitter.com/dasani_decoded)
|
||||
|
||||
- **ಸೆಂಟ್ರಾಯ್ಡ್ ಕ್ಲಸ್ಟರಿಂಗ್**. ಈ ಜನಪ್ರಿಯ ಆಲ್ಗಾರಿಥಮ್ 'k' ಅಥವಾ ರಚಿಸಬೇಕಾದ ಕ್ಲಸ್ಟರ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಆಯ್ಕೆಮಾಡಬೇಕಾಗುತ್ತದೆ, ನಂತರ ಆಲ್ಗಾರಿಥಮ್ ಕ್ಲಸ್ಟರ್ನ ಕೇಂದ್ರ ಬಿಂದುವನ್ನು ನಿರ್ಧರಿಸಿ ಆ ಬಿಂದುವಿನ ಸುತ್ತಲೂ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. [K-means ಕ್ಲಸ್ಟರಿಂಗ್](https://wikipedia.org/wiki/K-means_clustering) ಸೆಂಟ್ರಾಯ್ಡ್ ಕ್ಲಸ್ಟರಿಂಗ್ನ ಜನಪ್ರಿಯ ಆವೃತ್ತಿಯಾಗಿದೆ. ಕೇಂದ್ರವನ್ನು ಸಮೀಪದ ಸರಾಸರಿ ಮೂಲಕ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ, ಆದ್ದರಿಂದ ಹೆಸರು. ಕ್ಲಸ್ಟರ್ನಿಂದ ಚದರ ದೂರವನ್ನು ಕನಿಷ್ಠಗೊಳಿಸಲಾಗುತ್ತದೆ.
|
||||
|
||||

|
||||
> ಇನ್ಫೋಗ್ರಾಫಿಕ್: [ದಾಸನಿ ಮಡಿಪಳ್ಳಿ](https://twitter.com/dasani_decoded)
|
||||
|
||||
- **ವಿತರಣಾ ಆಧಾರಿತ ಕ್ಲಸ್ಟರಿಂಗ್**. ಸಾಂಖ್ಯಿಕ ಮಾದರಿಗೊಳಿಸುವಿಕೆಯಲ್ಲಿ ಆಧಾರಿತ, ವಿತರಣಾ ಆಧಾರಿತ ಕ್ಲಸ್ಟರಿಂಗ್ ಡೇಟಾ ಪಾಯಿಂಟ್ ಒಂದು ಕ್ಲಸ್ಟರ್ಗೆ ಸೇರಿದ ಸಾಧ್ಯತೆಯನ್ನು ನಿರ್ಧರಿಸಿ ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ನಿಯೋಜಿಸುತ್ತದೆ. ಗಾಸಿಯನ್ ಮಿಶ್ರಣ ವಿಧಾನಗಳು ಈ ಪ್ರಕಾರಕ್ಕೆ ಸೇರಿವೆ.
|
||||
|
||||
- **ಸಾಂದ್ರತೆ ಆಧಾರಿತ ಕ್ಲಸ್ಟರಿಂಗ್**. ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳನ್ನು ಅವುಗಳ ಸಾಂದ್ರತೆ ಅಥವಾ ಪರಸ್ಪರ ಗುಂಪುಮಾಡುವಿಕೆಯ ಆಧಾರದ ಮೇಲೆ ಕ್ಲಸ್ಟರ್ಗಳಿಗೆ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ. ಗುಂಪಿನಿಂದ ದೂರದಲ್ಲಿರುವ ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳನ್ನು ಔಟ್ಲೈಯರ್ಗಳು ಅಥವಾ ಶಬ್ದ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. 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) ನಿಂದ ಹಾಡುಗಳ ಡೇಟಾವನ್ನು ಸೇರಿಸಿ. ಹಾಡುಗಳ ಬಗ್ಗೆ ಕೆಲವು ಡೇಟಾ ಹೊಂದಿರುವ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಲೋಡ್ ಮಾಡಿ. ಲೈಬ್ರರಿಗಳನ್ನು ಆಮದುಮಾಡಿ ಮತ್ತು ಡೇಟಾವನ್ನು ಹೊರಹಾಕಿ, ಈ ಡೇಟಾವನ್ನು ಅನ್ವೇಷಿಸಲು ಸಿದ್ಧರಾಗಿ:
|
||||
|
||||
```python
|
||||
import matplotlib.pyplot as plt
|
||||
import pandas as pd
|
||||
|
||||
df = pd.read_csv("../data/nigerian-songs.csv")
|
||||
df.head()
|
||||
```
|
||||
|
||||
ಮೊದಲ ಕೆಲವು ಸಾಲುಗಳ ಡೇಟಾವನ್ನು ಪರಿಶೀಲಿಸಿ:
|
||||
|
||||
| | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
|
||||
| --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- |
|
||||
| 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 |
|
||||
| 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 |
|
||||
| 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 |
|
||||
| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | nigerian pop | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 |
|
||||
| 4 | wanted you | rare. | Odunsi (The Engine) | afropop | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 |
|
||||
|
||||
1. ಡೇಟಾಫ್ರೇಮ್ ಬಗ್ಗೆ ಕೆಲವು ಮಾಹಿತಿಗಳನ್ನು ಪಡೆಯಿರಿ, `info()` ಅನ್ನು ಕರೆ ಮಾಡಿ:
|
||||
|
||||
```python
|
||||
df.info()
|
||||
```
|
||||
|
||||
ಔಟ್ಪುಟ್ ಹೀಗೆ ಕಾಣಿಸುತ್ತದೆ:
|
||||
|
||||
```output
|
||||
<class 'pandas.core.frame.DataFrame'>
|
||||
RangeIndex: 530 entries, 0 to 529
|
||||
Data columns (total 16 columns):
|
||||
# Column Non-Null Count Dtype
|
||||
--- ------ -------------- -----
|
||||
0 name 530 non-null object
|
||||
1 album 530 non-null object
|
||||
2 artist 530 non-null object
|
||||
3 artist_top_genre 530 non-null object
|
||||
4 release_date 530 non-null int64
|
||||
5 length 530 non-null int64
|
||||
6 popularity 530 non-null int64
|
||||
7 danceability 530 non-null float64
|
||||
8 acousticness 530 non-null float64
|
||||
9 energy 530 non-null float64
|
||||
10 instrumentalness 530 non-null float64
|
||||
11 liveness 530 non-null float64
|
||||
12 loudness 530 non-null float64
|
||||
13 speechiness 530 non-null float64
|
||||
14 tempo 530 non-null float64
|
||||
15 time_signature 530 non-null int64
|
||||
dtypes: float64(8), int64(4), object(4)
|
||||
memory usage: 66.4+ KB
|
||||
```
|
||||
|
||||
1. ನಲ್ ಮೌಲ್ಯಗಳಿಗಾಗಿ ಡಬಲ್-ಚೆಕ್ ಮಾಡಿ, `isnull()` ಅನ್ನು ಕರೆ ಮಾಡಿ ಮತ್ತು ಮೊತ್ತ 0 ಆಗಿರುವುದನ್ನು ಪರಿಶೀಲಿಸಿ:
|
||||
|
||||
```python
|
||||
df.isnull().sum()
|
||||
```
|
||||
|
||||
ಚೆನ್ನಾಗಿದೆಯೇ:
|
||||
|
||||
```output
|
||||
name 0
|
||||
album 0
|
||||
artist 0
|
||||
artist_top_genre 0
|
||||
release_date 0
|
||||
length 0
|
||||
popularity 0
|
||||
danceability 0
|
||||
acousticness 0
|
||||
energy 0
|
||||
instrumentalness 0
|
||||
liveness 0
|
||||
loudness 0
|
||||
speechiness 0
|
||||
tempo 0
|
||||
time_signature 0
|
||||
dtype: int64
|
||||
```
|
||||
|
||||
1. ಡೇಟಾವನ್ನು ವರ್ಣಿಸಿ:
|
||||
|
||||
```python
|
||||
df.describe()
|
||||
```
|
||||
|
||||
| | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
|
||||
| ----- | ------------ | ----------- | ---------- | ------------ | ------------ | -------- | ---------------- | -------- | --------- | ----------- | ---------- | -------------- |
|
||||
| count | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 |
|
||||
| mean | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0.016305 | 0.147308 | -4.953011 | 0.130748 | 116.487864 | 3.986792 |
|
||||
| std | 3.131688 | 39696.82226 | 18.992212 | 0.117522 | 0.208342 | 0.148533 | 0.090321 | 0.123588 | 2.464186 | 0.092939 | 23.518601 | 0.333701 |
|
||||
| min | 1998 | 89488 | 0 | 0.255 | 0.000665 | 0.111 | 0 | 0.0283 | -19.362 | 0.0278 | 61.695 | 3 |
|
||||
| 25% | 2014 | 199305 | 0 | 0.681 | 0.089525 | 0.669 | 0 | 0.07565 | -6.29875 | 0.0591 | 102.96125 | 4 |
|
||||
| 50% | 2016 | 218509 | 13 | 0.761 | 0.2205 | 0.7845 | 0.000004 | 0.1035 | -4.5585 | 0.09795 | 112.7145 | 4 |
|
||||
| 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 |
|
||||
| max | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 |
|
||||
|
||||
> 🤔 ನಾವು ಕ್ಲಸ್ಟರಿಂಗ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರೆ, ಲೇಬಲ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ಅಗತ್ಯವಿಲ್ಲದ ಅನ್ಸೂಪರ್ವೈಸ್ಡ್ ವಿಧಾನ, ನಾವು ಈ ಡೇಟಾವನ್ನು ಲೇಬಲ್ಗಳೊಂದಿಗೆ ಏಕೆ ತೋರಿಸುತ್ತಿದ್ದೇವೆ? ಡೇಟಾ ಅನ್ವೇಷಣಾ ಹಂತದಲ್ಲಿ, ಅವು ಸಹಾಯಕವಾಗುತ್ತವೆ, ಆದರೆ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಅವು ಅಗತ್ಯವಿಲ್ಲ. ನೀವು ಕೇವಲ ಕಾಲಮ್ ಹೆಡರ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ ಡೇಟಾವನ್ನು ಕಾಲಮ್ ಸಂಖ್ಯೆಯಿಂದ ಉಲ್ಲೇಖಿಸಬಹುದು.
|
||||
|
||||
ಡೇಟಾದ ಸಾಮಾನ್ಯ ಮೌಲ್ಯಗಳನ್ನು ನೋಡಿ. ಜನಪ್ರಿಯತೆ '0' ಆಗಿರಬಹುದು, ಇದು ರ್ಯಾಂಕಿಂಗ್ ಇಲ್ಲದ ಹಾಡುಗಳನ್ನು ತೋರಿಸುತ್ತದೆ. ಅವುಗಳನ್ನು ಶೀಘ್ರದಲ್ಲೇ ತೆಗೆದುಹಾಕೋಣ.
|
||||
|
||||
1. ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಶೈಲಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಬಾರ್ಪ್ಲಾಟ್ ಬಳಸಿ:
|
||||
|
||||
```python
|
||||
import seaborn as sns
|
||||
|
||||
top = df['artist_top_genre'].value_counts()
|
||||
plt.figure(figsize=(10,7))
|
||||
sns.barplot(x=top[:5].index,y=top[:5].values)
|
||||
plt.xticks(rotation=45)
|
||||
plt.title('Top genres',color = 'blue')
|
||||
```
|
||||
|
||||

|
||||
|
||||
✅ ನೀವು ಹೆಚ್ಚು ಟಾಪ್ ಮೌಲ್ಯಗಳನ್ನು ನೋಡಲು ಬಯಸಿದರೆ, ಟಾಪ್ `[: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')
|
||||
```
|
||||
|
||||
ಈಗ ಶೈಲಿಗಳನ್ನು ಮರುಪರಿಶೀಲಿಸಿ:
|
||||
|
||||

|
||||
|
||||
1. ಬಹುಮಟ್ಟಿಗೆ, ಟಾಪ್ ಮೂರು ಶೈಲಿಗಳು ಈ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಆಳವಾಗಿ ಆಳುತ್ತವೆ. `afro dancehall`, `afropop`, ಮತ್ತು `nigerian pop` ಮೇಲೆ ಗಮನಹರಿಸೋಣ, ಜೊತೆಗೆ 0 ಜನಪ್ರಿಯತೆ ಮೌಲ್ಯವಿರುವ ಯಾವುದೇ ಡೇಟಾವನ್ನು (ಅಂದರೆ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಜನಪ್ರಿಯತೆ ವರ್ಗೀಕರಣವಿಲ್ಲದವು ಮತ್ತು ನಮ್ಮ ಉದ್ದೇಶಗಳಿಗೆ ಶಬ್ದವೆಂದು ಪರಿಗಣಿಸಬಹುದು) ತೆಗೆದುಹಾಕಿ:
|
||||
|
||||
```python
|
||||
df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
|
||||
df = df[(df['popularity'] > 0)]
|
||||
top = df['artist_top_genre'].value_counts()
|
||||
plt.figure(figsize=(10,7))
|
||||
sns.barplot(x=top.index,y=top.values)
|
||||
plt.xticks(rotation=45)
|
||||
plt.title('Top genres',color = 'blue')
|
||||
```
|
||||
|
||||
1. ಡೇಟಾ ಯಾವುದೇ ವಿಶೇಷವಾಗಿ ಬಲವಾದ ಸಂಬಂಧ ಹೊಂದಿದೆಯೇ ಎಂದು ತ್ವರಿತ ಪರೀಕ್ಷೆ ಮಾಡಿ:
|
||||
|
||||
```python
|
||||
corrmat = df.corr(numeric_only=True)
|
||||
f, ax = plt.subplots(figsize=(12, 9))
|
||||
sns.heatmap(corrmat, vmax=.8, square=True)
|
||||
```
|
||||
|
||||

|
||||
|
||||
ಏಕೈಕ ಬಲವಾದ ಸಂಬಂಧ `energy` ಮತ್ತು `loudness` ನಡುವೆ ಇದೆ, ಇದು ಅಚ್ಚರಿಯ ಸಂಗತಿ ಅಲ್ಲ, ಏಕೆಂದರೆ ಗಟ್ಟಿಯಾದ ಸಂಗೀತ ಸಾಮಾನ್ಯವಾಗಿ ಬಹಳ ಶಕ್ತಿಶಾಲಿಯಾಗಿದೆ. ಬೇರೆ ಎಲ್ಲ ಸಂಬಂಧಗಳು ಸಾಪೇಕ್ಷವಾಗಿ ದುರ್ಬಲವಾಗಿವೆ. ಈ ಡೇಟಾದಲ್ಲಿ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ ಏನು ಮಾಡಬಹುದು ಎಂದು ನೋಡುವುದು ಆಸಕ್ತಿದಾಯಕವಾಗಿರುತ್ತದೆ.
|
||||
|
||||
> 🎓 ಸಂಬಂಧವು ಕಾರಣವಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸಿ! ನಾವು ಸಂಬಂಧದ ಸಾಬೀತು ಹೊಂದಿದ್ದೇವೆ ಆದರೆ ಕಾರಣದ ಸಾಬೀತು ಇಲ್ಲ. [ರಂಜನೀಯ ವೆಬ್ಸೈಟ್](https://tylervigen.com/spurious-correlations) ಇದನ್ನು ಒತ್ತಿ ತೋರಿಸುತ್ತದೆ.
|
||||
|
||||
ಈ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಹಾಡಿನ ಗ್ರಹಿತ ಜನಪ್ರಿಯತೆ ಮತ್ತು ನೃತ್ಯ ಸಾಮರ್ಥ್ಯದ ಸುತ್ತಲೂ ಯಾವುದೇ ಸಮಾಗಮವಿದೆಯೇ? ಫೇಸಟ್ಗ್ರಿಡ್ ತೋರಿಸುತ್ತದೆ, regardless of genre, there are concentric circles that line up. ನೈಜೀರಿಯನ್ ರುಚಿಗಳು ಈ ಶೈಲಿಗೆ ನೃತ್ಯ ಸಾಮರ್ಥ್ಯದ ನಿರ್ದಿಷ್ಟ ಮಟ್ಟದಲ್ಲಿ ಸಮಾಗಮವಾಗಬಹುದೇ?
|
||||
|
||||
✅ ವಿಭಿನ್ನ ಡೇಟಾಪಾಯಿಂಟ್ಗಳನ್ನು (energy, loudness, speechiness) ಮತ್ತು ಹೆಚ್ಚು ಅಥವಾ ವಿಭಿನ್ನ ಸಂಗೀತ ಶೈಲಿಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ. ನೀವು ಏನು ಕಂಡುಹಿಡಿಯಬಹುದು? `df.describe()` ಟೇಬಲ್ ಅನ್ನು ನೋಡಿ ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳ ಸಾಮಾನ್ಯ ವಿಸ್ತಾರವನ್ನು.
|
||||
|
||||
### ವ್ಯಾಯಾಮ - ಡೇಟಾ ವಿತರಣೆ
|
||||
|
||||
ಈ ಮೂರು ಶೈಲಿಗಳು ತಮ್ಮ ಜನಪ್ರಿಯತೆ ಆಧಾರಿತವಾಗಿ ನೃತ್ಯ ಸಾಮರ್ಥ್ಯದ ಗ್ರಹಣೆಯಲ್ಲಿ ಪ್ರಮುಖವಾಗಿ ವಿಭಿನ್ನವಾಗಿದೆಯೇ?
|
||||
|
||||
1. ನಮ್ಮ ಟಾಪ್ ಮೂರು ಶೈಲಿಗಳ ಜನಪ್ರಿಯತೆ ಮತ್ತು ನೃತ್ಯ ಸಾಮರ್ಥ್ಯದ ಡೇಟಾ ವಿತರಣೆಯನ್ನು ನೀಡಲಾದ x ಮತ್ತು y ಅಕ್ಷಗಳ ಮೇಲೆ ಪರಿಶೀಲಿಸಿ.
|
||||
|
||||
```python
|
||||
sns.set_theme(style="ticks")
|
||||
|
||||
g = sns.jointplot(
|
||||
data=df,
|
||||
x="popularity", y="danceability", hue="artist_top_genre",
|
||||
kind="kde",
|
||||
)
|
||||
```
|
||||
|
||||
ನೀವು ಸಾಮಾನ್ಯ ಸಮಾಗಮದ ಬಿಂದುವಿನ ಸುತ್ತಲೂ ಸಾಂದ್ರ ವಲಯಗಳನ್ನು ಕಂಡುಹಿಡಿಯಬಹುದು, ಇದು ಪಾಯಿಂಟ್ಗಳ ವಿತರಣೆಯನ್ನು ತೋರಿಸುತ್ತದೆ.
|
||||
|
||||
> 🎓 ಈ ಉದಾಹರಣೆ KDE (Kernel Density Estimate) ಗ್ರಾಫ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಇದು ಡೇಟಾವನ್ನು ನಿರಂತರ ಪ್ರಾಬಬಿಲಿಟಿ ಡೆನ್ಸಿಟಿ ವಕ್ರದಿಂದ ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಇದು ಬಹು ವಿತರಣೆಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ಡೇಟಾವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
|
||||
|
||||
ಸಾಮಾನ್ಯವಾಗಿ, ಈ ಮೂರು ಶೈಲಿಗಳು ತಮ್ಮ ಜನಪ್ರಿಯತೆ ಮತ್ತು ನೃತ್ಯ ಸಾಮರ್ಥ್ಯದ ದೃಷ್ಟಿಯಿಂದ ಸಡಿಲವಾಗಿ ಹೊಂದಿಕೊಳ್ಳುತ್ತವೆ. ಈ ಸಡಿಲವಾಗಿ ಹೊಂದಿಕೊಂಡಿರುವ ಡೇಟಾದಲ್ಲಿ ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ನಿರ್ಧರಿಸುವುದು ಸವಾಲಾಗಿರುತ್ತದೆ:
|
||||
|
||||

|
||||
|
||||
1. ಸ್ಕ್ಯಾಟರ್ ಪ್ಲಾಟ್ ರಚಿಸಿ:
|
||||
|
||||
```python
|
||||
sns.FacetGrid(df, hue="artist_top_genre", height=5) \
|
||||
.map(plt.scatter, "popularity", "danceability") \
|
||||
.add_legend()
|
||||
```
|
||||
|
||||
ಅದೇ ಅಕ್ಷಗಳ ಸ್ಕ್ಯಾಟರ್ ಪ್ಲಾಟ್ ಸಾದೃಶ್ಯ ಸಮಾಗಮ ಮಾದರಿಯನ್ನು ತೋರಿಸುತ್ತದೆ
|
||||
|
||||

|
||||
|
||||
ಸಾಮಾನ್ಯವಾಗಿ, ಕ್ಲಸ್ಟರಿಂಗ್ಗೆ, ನೀವು ಡೇಟಾದ ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ತೋರಿಸಲು ಸ್ಕ್ಯಾಟರ್ ಪ್ಲಾಟ್ಗಳನ್ನು ಬಳಸಬಹುದು, ಆದ್ದರಿಂದ ಈ ರೀತಿಯ ದೃಶ್ಯೀಕರಣವನ್ನು ನಿಪುಣತೆಯಿಂದ ಮಾಡುವುದು ಬಹಳ ಉಪಯುಕ್ತ. ಮುಂದಿನ ಪಾಠದಲ್ಲಿ, ನಾವು ಈ ಫಿಲ್ಟರ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ತೆಗೆದು k-means ಕ್ಲಸ್ಟರಿಂಗ್ ಬಳಸಿ ಈ ಡೇಟಾದಲ್ಲಿ ಆಸಕ್ತಿದಾಯಕ ರೀತಿಯಲ್ಲಿ ಒಟ್ಟುಗೂಡುತ್ತಿರುವ ಗುಂಪುಗಳನ್ನು ಕಂಡುಹಿಡಿಯುತ್ತೇವೆ.
|
||||
|
||||
---
|
||||
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
ಮುಂದಿನ ಪಾಠದ ತಯಾರಿಗಾಗಿ, ನೀವು ಕಂಡುಹಿಡಿಯಬಹುದಾದ ಮತ್ತು ಉತ್ಪಾದನಾ ಪರಿಸರದಲ್ಲಿ ಬಳಸಬಹುದಾದ ವಿವಿಧ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳ ಬಗ್ಗೆ ಚಾರ್ಟ್ ರಚಿಸಿ. ಕ್ಲಸ್ಟರಿಂಗ್ ಯಾವ ರೀತಿಯ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಹರಿಸಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ?
|
||||
|
||||
## [ಪೋಸ್ಟ್-ಲೆಕ್ಚರ್ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
## ವಿಮರ್ಶೆ ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನ
|
||||
|
||||
ನೀವು ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮೊದಲು, ನಾವು ಕಲಿತಂತೆ, ನಿಮ್ಮ ಡೇಟಾಸೆಟ್ನ ಸ್ವಭಾವವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಉತ್ತಮ. ಈ ವಿಷಯದ ಬಗ್ಗೆ ಹೆಚ್ಚಿನ ಮಾಹಿತಿಗಾಗಿ [ಇಲ್ಲಿ](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html) ಓದಿ
|
||||
|
||||
[ಈ ಸಹಾಯಕ ಲೇಖನ](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) ವಿವಿಧ ಡೇಟಾ ಆಕಾರಗಳನ್ನು ನೀಡಿದಾಗ ವಿವಿಧ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳು ಹೇಗೆ ವರ್ತಿಸುತ್ತವೆ ಎಂಬುದನ್ನು ನಿಮಗೆ ತಿಳಿಸುತ್ತದೆ.
|
||||
|
||||
## ನಿಯೋಜನೆ
|
||||
|
||||
[ಕ್ಲಸ್ಟರಿಂಗ್ಗೆ ಇತರ ದೃಶ್ಯೀಕರಣಗಳನ್ನು ಸಂಶೋಧಿಸಿ](assignment.md)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "589fa015a5e7d9e67bd629f7d47b53de",
|
||||
"translation_date": "2025-12-19T15:05:10+00:00",
|
||||
"source_file": "5-Clustering/1-Visualize/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಕ್ಲಸ್ಟರಿಂಗ್ಗಾಗಿ ಇತರ ದೃಶ್ಯೀಕರಣಗಳನ್ನು ಸಂಶೋಧಿಸಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ, ನೀವು ಕ್ಲಸ್ಟರಿಂಗ್ಗೆ ಸಿದ್ಧತೆಗಾಗಿ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಪ್ಲಾಟ್ ಮಾಡಲು ಕೆಲವು ದೃಶ್ಯೀಕರಣ ತಂತ್ರಗಳನ್ನು ಬಳಸಿದ್ದೀರಿ. ವಿಶೇಷವಾಗಿ, ಸ್ಕ್ಯಾಟರ್ಪ್ಲಾಟ್ಗಳು ವಸ್ತುಗಳ ಗುಂಪುಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಉಪಯುಕ್ತವಾಗಿವೆ. ಸ್ಕ್ಯಾಟರ್ಪ್ಲಾಟ್ಗಳನ್ನು ರಚಿಸಲು ವಿಭಿನ್ನ ವಿಧಾನಗಳು ಮತ್ತು ವಿಭಿನ್ನ ಲೈಬ್ರರಿಗಳನ್ನು ಸಂಶೋಧಿಸಿ ಮತ್ತು ನಿಮ್ಮ ಕೆಲಸವನ್ನು ನೋಟ್ಬುಕ್ನಲ್ಲಿ ದಾಖಲೆ ಮಾಡಿ. ನೀವು ಈ ಪಾಠದ ಡೇಟಾ, ಇತರ ಪಾಠಗಳ ಡೇಟಾ ಅಥವಾ ನೀವು ಸ್ವತಃ ಸಂಗ್ರಹಿಸಿದ ಡೇಟಾವನ್ನು ಬಳಸಬಹುದು (ಆದರೆ, ದಯವಿಟ್ಟು ಅದರ ಮೂಲವನ್ನು ನಿಮ್ಮ ನೋಟ್ಬುಕ್ನಲ್ಲಿ ಉಲ್ಲೇಖಿಸಿ). ಸ್ಕ್ಯಾಟರ್ಪ್ಲಾಟ್ಗಳನ್ನು ಬಳಸಿ ಕೆಲವು ಡೇಟಾವನ್ನು ಪ್ಲಾಟ್ ಮಾಡಿ ಮತ್ತು ನೀವು ಕಂಡುಕೊಂಡುದನ್ನು ವಿವರಿಸಿ.
|
||||
|
||||
## ರೂಬ್ರಿಕ್
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯ |
|
||||
| -------- | -------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ----------------------------------- |
|
||||
| | ಐದು ಚೆನ್ನಾಗಿ ದಾಖಲಾಗಿರುವ ಸ್ಕ್ಯಾಟರ್ಪ್ಲಾಟ್ಗಳೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ಐದುಕ್ಕಿಂತ ಕಡಿಮೆ ಸ್ಕ್ಯಾಟರ್ಪ್ಲಾಟ್ಗಳೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ಅದು ಕಡಿಮೆ ಚೆನ್ನಾಗಿ ದಾಖಲಾಗಿದ್ದುದು | ಅಪೂರ್ಣ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,52 @@
|
||||
{
|
||||
"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)"
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "40e0707e96b3e1899a912776006264f9",
|
||||
"translation_date": "2025-12-19T16:50:50+00:00",
|
||||
"source_file": "5-Clustering/1-Visualize/notebook.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2,
|
||||
"cells": [
|
||||
{
|
||||
"source": [
|
||||
"# ಸ್ಪೋಟಿಫೈಯಿಂದ ಸಂಗ್ರಹಿಸಿದ ನೈಜೀರಿಯನ್ ಸಂಗೀತ - ಒಂದು ವಿಶ್ಲೇಷಣೆ\n"
|
||||
],
|
||||
"cell_type": "markdown",
|
||||
"metadata": {}
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T15:06:21+00:00",
|
||||
"source_file": "5-Clustering/1-Visualize/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,493 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"## **ನೈಜೀರಿಯನ್ ಸಂಗೀತವನ್ನು Spotify ನಿಂದ ಸ್ಕ್ರೇಪ್ ಮಾಡಲಾಗಿದೆ - ಒಂದು ವಿಶ್ಲೇಷಣೆ**\n",
|
||||
"\n",
|
||||
"ಕ್ಲಸ್ಟರಿಂಗ್ ಒಂದು ರೀತಿಯ [ಅನಿಯಂತ್ರಿತ ಕಲಿಕೆ](https://wikipedia.org/wiki/Unsupervised_learning) ಆಗಿದ್ದು, ಇದು ಡೇಟಾಸೆಟ್ ಲೇಬಲ್ ಮಾಡದಿರುವುದು ಅಥವಾ ಅದರ ಇನ್ಪುಟ್ಗಳು ಪೂರ್ವನಿರ್ಧರಿತ ಔಟ್ಪುಟ್ಗಳೊಂದಿಗೆ ಹೊಂದಾಣಿಕೆ ಮಾಡದಿರುವುದಾಗಿ ಊಹಿಸುತ್ತದೆ. ಇದು ಲೇಬಲ್ ಮಾಡದ ಡೇಟಾದ ಮೂಲಕ ವಿವಿಧ ಆಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾದಲ್ಲಿನ ಮಾದರಿಗಳ ಪ್ರಕಾರ ಗುಂಪುಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"[**ಪೂರ್ವ-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/27/)\n",
|
||||
"\n",
|
||||
"### **ಪರಿಚಯ**\n",
|
||||
"\n",
|
||||
"[ಕ್ಲಸ್ಟರಿಂಗ್](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) ಡೇಟಾ ಅನ್ವೇಷಣೆಗೆ ಬಹಳ ಉಪಯುಕ್ತವಾಗಿದೆ. ನೈಜೀರಿಯನ್ ಪ್ರೇಕ್ಷಕರು ಸಂಗೀತವನ್ನು ಹೇಗೆ ಉಪಯೋಗಿಸುತ್ತಾರೆ ಎಂಬುದರಲ್ಲಿ ಟ್ರೆಂಡ್ಸ್ ಮತ್ತು ಮಾದರಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಇದು ಸಹಾಯ ಮಾಡಬಹುದೇ ಎಂದು ನೋಡೋಣ.\n",
|
||||
"\n",
|
||||
"> ✅ ಕ್ಲಸ್ಟರಿಂಗ್ನ ಉಪಯೋಗಗಳನ್ನು ಕುರಿತು ಒಂದು ನಿಮಿಷ ಯೋಚಿಸಿ. ನಿಜ ಜೀವನದಲ್ಲಿ, ನೀವು ಬಟ್ಟೆಗಳನ್ನು ಗುಂಪುಮಾಡಬೇಕಾದಾಗ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಗುತ್ತದೆ 🧦👕👖🩲. ಡೇಟಾ ಸೈನ್ಸ್ನಲ್ಲಿ, ಬಳಕೆದಾರರ ಇಚ್ಛೆಗಳ ವಿಶ್ಲೇಷಣೆ ಮಾಡಲು ಅಥವಾ ಯಾವುದೇ ಲೇಬಲ್ ಮಾಡದ ಡೇಟಾಸೆಟ್ನ ಲಕ್ಷಣಗಳನ್ನು ನಿರ್ಧರಿಸಲು ಕ್ಲಸ್ಟರಿಂಗ್ ಆಗುತ್ತದೆ. ಕ್ಲಸ್ಟರಿಂಗ್ ಒಂದು ರೀತಿಯಲ್ಲಿ ಗೊಂದಲವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ, ಹೀಗಾಗಿ ಅದು ಒಂದು ಸಾಕ್ ಡ್ರಾಯರ್ನಂತೆ.\n",
|
||||
"\n",
|
||||
"ವೃತ್ತಿಪರ ಪರಿಸರದಲ್ಲಿ, ಕ್ಲಸ್ಟರಿಂಗ್ ಅನ್ನು ಮಾರುಕಟ್ಟೆ ವಿಭಾಗೀಕರಣ, ಯಾವ ವಯಸ್ಸಿನ ಗುಂಪು ಯಾವ ವಸ್ತುಗಳನ್ನು ಖರೀದಿಸುತ್ತಾರೆ ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸಲು ಬಳಸಬಹುದು. ಮತ್ತೊಂದು ಉಪಯೋಗವು ಅನೋಮಲಿ ಪತ್ತೆಹಚ್ಚುವಿಕೆ, ಉದಾಹರಣೆಗೆ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ವ್ಯವಹಾರಗಳ ಡೇಟಾಸೆಟ್ನಿಂದ ಮೋಸವನ್ನು ಪತ್ತೆಹಚ್ಚಲು. ಅಥವಾ ವೈದ್ಯಕೀಯ ಸ್ಕ್ಯಾನ್ಸ್ನ ಬ್ಯಾಚ್ನಲ್ಲಿ ಟ್ಯೂಮರ್ಗಳನ್ನು ಗುರುತಿಸಲು ಕ್ಲಸ್ಟರಿಂಗ್ ಬಳಸಬಹುದು.\n",
|
||||
"\n",
|
||||
"✅ ಬ್ಯಾಂಕಿಂಗ್, ಇ-ಕಾಮರ್ಸ್ ಅಥವಾ ವ್ಯವಹಾರ ಪರಿಸರದಲ್ಲಿ ನೀವು ಕ್ಲಸ್ಟರಿಂಗ್ ಅನ್ನು 'ವೈಲ್ಡ್' ನಲ್ಲಿ ಹೇಗೆ ಎದುರಿಸಿದ್ದೀರೋ ಎಂದು ಒಂದು ನಿಮಿಷ ಯೋಚಿಸಿ.\n",
|
||||
"\n",
|
||||
"> 🎓 ಆಸಕ್ತಿಕರವಾಗಿ, ಕ್ಲಸ್ಟರ್ ವಿಶ್ಲೇಷಣೆ 1930ರ ದಶಕದಲ್ಲಿ ಮಾನವಶಾಸ್ತ್ರ ಮತ್ತು ಮನೋವಿಜ್ಞಾನ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಹುಟ್ಟಿಕೊಂಡಿತು. ನೀವು ಅದನ್ನು ಹೇಗೆ ಬಳಸಲಾಗುತ್ತಿತ್ತು ಎಂದು ಊಹಿಸಬಹುದೇ?\n",
|
||||
"\n",
|
||||
"ಮತ್ತೊಂದು ಆಯ್ಕೆ, ಹುಡುಕಾಟ ಫಲಿತಾಂಶಗಳನ್ನು ಗುಂಪುಮಾಡಲು - ಖರೀದಿ ಲಿಂಕ್ಗಳು, ಚಿತ್ರಗಳು ಅಥವಾ ವಿಮರ್ಶೆಗಳ ಪ್ರಕಾರ. ದೊಡ್ಡ ಡೇಟಾಸೆಟ್ ಇದ್ದಾಗ ಮತ್ತು ಅದನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಮತ್ತು ಹೆಚ್ಚಿನ ವಿಶ್ಲೇಷಣೆ ಮಾಡಲು ಕ್ಲಸ್ಟರಿಂಗ್ ಉಪಯುಕ್ತವಾಗಿದೆ, ಹೀಗಾಗಿ ಈ ತಂತ್ರವನ್ನು ಇತರ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸುವ ಮೊದಲು ಡೇಟಾ ಬಗ್ಗೆ ತಿಳಿಯಲು ಬಳಸಬಹುದು.\n",
|
||||
"\n",
|
||||
"✅ ನಿಮ್ಮ ಡೇಟಾ ಕ್ಲಸ್ಟರ್ಗಳಲ್ಲಿ ಸಂಘಟಿತವಾದ ಮೇಲೆ, ನೀವು ಅದಕ್ಕೆ ಕ್ಲಸ್ಟರ್ ಐಡಿ ನೀಡುತ್ತೀರಿ, ಮತ್ತು ಈ ತಂತ್ರವು ಡೇಟಾಸೆಟ್ನ ಗೌಪ್ಯತೆಯನ್ನು ಕಾಪಾಡಲು ಸಹಾಯ ಮಾಡಬಹುದು; ನೀವು ಡೇಟಾ ಪಾಯಿಂಟ್ ಅನ್ನು ಅದರ ಕ್ಲಸ್ಟರ್ ಐಡಿ ಮೂಲಕ ಸೂಚಿಸಬಹುದು, ಹೆಚ್ಚು ಬಹಿರಂಗವಾಗುವ ಗುರುತಿಸುವ ಡೇಟಾ ಬದಲಾಗಿ. ನೀವು ಇನ್ನಾವುದೇ ಕಾರಣಗಳನ್ನು ಯೋಚಿಸಬಹುದೇ, ಏಕೆ ನೀವು ಕ್ಲಸ್ಟರ್ ಐಡಿಯನ್ನು ಬಳಸುತ್ತೀರಿ?\n",
|
||||
"\n",
|
||||
"### ಕ್ಲಸ್ಟರಿಂಗ್ ಪ್ರಾರಂಭಿಸುವುದು\n",
|
||||
"\n",
|
||||
"> 🎓 ನಾವು ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂಬುದು ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳನ್ನು ಗುಂಪುಗಳಲ್ಲಿ ಹೇಗೆ ಸಂಗ್ರಹಿಸುವುದರ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ. ಕೆಲವು ಪದಗಳನ್ನು ವಿವರಿಸೋಣ:\n",
|
||||
">\n",
|
||||
"> 🎓 ['ಟ್ರಾನ್ಸ್ಡಕ್ಟಿವ್' ವಿರುದ್ಧ 'ಇಂಡಕ್ಟಿವ್'](https://wikipedia.org/wiki/Transduction_(machine_learning))\n",
|
||||
">\n",
|
||||
"> ಟ್ರಾನ್ಸ್ಡಕ್ಟಿವ್ ನಿರ್ಣಯವು ನಿರೀಕ್ಷಿತ ತರಬೇತಿ ಪ್ರಕರಣಗಳಿಂದ ನಿರ್ಗಮಿಸುತ್ತದೆ, ಅವು ನಿರ್ದಿಷ್ಟ ಪರೀಕ್ಷಾ ಪ್ರಕರಣಗಳಿಗೆ ನಕ್ಷೆ ಮಾಡುತ್ತವೆ. ಇಂಡಕ್ಟಿವ್ ನಿರ್ಣಯವು ತರಬೇತಿ ಪ್ರಕರಣಗಳಿಂದ ಸಾಮಾನ್ಯ ನಿಯಮಗಳಿಗೆ ನಕ್ಷೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಂತರ ಅವು ಪರೀಕ್ಷಾ ಪ್ರಕರಣಗಳಿಗೆ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.\n",
|
||||
">\n",
|
||||
"> ಉದಾಹರಣೆ: ನಿಮ್ಮ ಬಳಿ ಭಾಗಶಃ ಲೇಬಲ್ ಮಾಡಲಾದ ಡೇಟಾಸೆಟ್ ಇದ್ದರೆ, ಕೆಲವು 'ರೆಕಾರ್ಡ್ಗಳು', ಕೆಲವು 'ಸಿಡಿಗಳು', ಮತ್ತು ಕೆಲವು ಖಾಲಿ. ನಿಮ್ಮ ಕೆಲಸ ಖಾಲಿ ಭಾಗಗಳಿಗೆ ಲೇಬಲ್ ನೀಡುವುದು. ನೀವು ಇಂಡಕ್ಟಿವ್ ವಿಧಾನವನ್ನು ಆರಿಸಿದರೆ, ನೀವು 'ರೆಕಾರ್ಡ್ಗಳು' ಮತ್ತು 'ಸಿಡಿಗಳು' ಹುಡುಕುವ ಮಾದರಿಯನ್ನು ತರಬೇತಿಮಾಡಿ, ಆ ಲೇಬಲ್ಗಳನ್ನು ಲೇಬಲ್ ಮಾಡದ ಡೇಟಾಗೆ ಅನ್ವಯಿಸುತ್ತೀರಿ. ಈ ವಿಧಾನವು 'ಕ್ಯಾಸೆಟ್ಗಳು' ಎಂದು ನಿಜವಾಗಿರುವ ವಸ್ತುಗಳನ್ನು ವರ್ಗೀಕರಿಸಲು ಕಷ್ಟಪಡುತ್ತದೆ. ಟ್ರಾನ್ಸ್ಡಕ್ಟಿವ್ ವಿಧಾನವು ಈ ಅಜ್ಞಾತ ಡೇಟಾವನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಇದು ಸಮಾನ ವಸ್ತುಗಳನ್ನು ಗುಂಪುಮಾಡಿ ನಂತರ ಗುಂಪಿಗೆ ಲೇಬಲ್ ಅನ್ವಯಿಸುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಕ್ಲಸ್ಟರ್ಗಳು 'ವೃತ್ತಾಕಾರದ ಸಂಗೀತ ವಸ್ತುಗಳು' ಮತ್ತು 'ಚೌಕಾಕಾರದ ಸಂಗೀತ ವಸ್ತುಗಳು' ಎಂದು ಪ್ರತಿಬಿಂಬಿಸಬಹುದು.\n",
|
||||
">\n",
|
||||
"> 🎓 ['ನಾನ್-ಫ್ಲಾಟ್' ವಿರುದ್ಧ 'ಫ್ಲಾಟ್' ಜ್ಯಾಮಿತಿ](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)\n",
|
||||
">\n",
|
||||
"> ಗಣಿತೀಯ ಪದಬಳಕೆಯಿಂದ, ನಾನ್-ಫ್ಲಾಟ್ ಮತ್ತು ಫ್ಲಾಟ್ ಜ್ಯಾಮಿತಿ ಅಂದರೆ ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ದೂರವನ್ನು 'ಫ್ಲಾಟ್' ([ಯೂಕ್ಲಿಡಿಯನ್](https://wikipedia.org/wiki/Euclidean_geometry)) ಅಥವಾ 'ನಾನ್-ಫ್ಲಾಟ್' (ನಾನ್-ಯೂಕ್ಲಿಡಿಯನ್) ಜ್ಯಾಮಿತೀಯ ವಿಧಾನಗಳಿಂದ ಅಳೆಯುವುದು.\n",
|
||||
">\n",
|
||||
"> ಈ ಸಂದರ್ಭದಲ್ಲಿ 'ಫ್ಲಾಟ್' ಅಂದರೆ ಯೂಕ್ಲಿಡಿಯನ್ ಜ್ಯಾಮಿತಿ (ಇದರಲ್ಲಿ ಕೆಲವು ಭಾಗಗಳನ್ನು 'ಪ್ಲೇನ್' ಜ್ಯಾಮಿತಿ ಎಂದು ಕಲಿಸಲಾಗುತ್ತದೆ), ಮತ್ತು ನಾನ್-ಫ್ಲಾಟ್ ಅಂದರೆ ನಾನ್-ಯೂಕ್ಲಿಡಿಯನ್ ಜ್ಯಾಮಿತಿ. ಜ್ಯಾಮಿತಿಗೆ ಯಂತ್ರ ಕಲಿಕೆಗೆ ಏನು ಸಂಬಂಧ? ಗಣಿತದಲ್ಲಿ ಆಧಾರಿತ ಎರಡು ಕ್ಷೇತ್ರಗಳಾಗಿ, ಕ್ಲಸ್ಟರ್ಗಳಲ್ಲಿನ ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ದೂರವನ್ನು ಅಳೆಯಲು ಸಾಮಾನ್ಯ ವಿಧಾನ ಇರಬೇಕು, ಮತ್ತು ಅದು 'ಫ್ಲಾಟ್' ಅಥವಾ 'ನಾನ್-ಫ್ಲಾಟ್' ರೀತಿಯಲ್ಲಿ ಮಾಡಬಹುದು, ಡೇಟಾದ ಸ್ವಭಾವದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ. [ಯೂಕ್ಲಿಡಿಯನ್ ದೂರಗಳು](https://wikipedia.org/wiki/Euclidean_distance) ಎರಡು ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ರೇಖೆಯ ಉದ್ದವಾಗಿ ಅಳೆಯಲ್ಪಡುತ್ತವೆ. [ನಾನ್-ಯೂಕ್ಲಿಡಿಯನ್ ದೂರಗಳು](https://wikipedia.org/wiki/Non-Euclidean_geometry) ವಕ್ರರೇಖೆಯ ಮೇಲೆ ಅಳೆಯಲ್ಪಡುತ್ತವೆ. ನಿಮ್ಮ ಡೇಟಾ, ದೃಶ್ಯೀಕರಿಸಿದಾಗ, ಸಮತಲದಲ್ಲಿ ಇಲ್ಲದಂತೆ ಕಾಣಿಸಿದರೆ, ಅದನ್ನು ನಿರ್ವಹಿಸಲು ವಿಶೇಷ ಆಲ್ಗಾರಿಥಮ್ ಬೇಕಾಗಬಹುದು.\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/flat-nonflat.d1c8c6e2a96110c1d57fa0b72913f6aab3c245478524d25baf7f4a18efcde224.kn.png\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ಇನ್ಫೋಗ್ರಾಫಿಕ್: ದಾಸನಿ ಮಡಿಪಳ್ಳಿ</figcaption>\n",
|
||||
"\n",
|
||||
"> 🎓 ['ದೂರಗಳು'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)\n",
|
||||
">\n",
|
||||
"> ಕ್ಲಸ್ಟರ್ಗಳು ಅವುಗಳ ದೂರ ಮ್ಯಾಟ್ರಿಕ್ಸ್ ಮೂಲಕ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗುತ್ತವೆ, ಉದಾ. ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ದೂರಗಳು. ಈ ದೂರವನ್ನು ಕೆಲವು ವಿಧಾನಗಳಲ್ಲಿ ಅಳೆಯಬಹುದು. ಯೂಕ್ಲಿಡಿಯನ್ ಕ್ಲಸ್ಟರ್ಗಳು ಪಾಯಿಂಟ್ ಮೌಲ್ಯಗಳ ಸರಾಸರಿಯಿಂದ ವ್ಯಾಖ್ಯಾನಿಸಲಾಗುತ್ತವೆ ಮತ್ತು 'ಸೆಂಟ್ರಾಯ್ಡ್' ಅಥವಾ ಕೇಂದ್ರ ಬಿಂದುವನ್ನು ಹೊಂದಿರುತ್ತವೆ. ದೂರಗಳನ್ನು ಆ ಸೆಂಟ್ರಾಯ್ಡ್ಗೆ ಇರುವ ದೂರದಿಂದ ಅಳೆಯಲಾಗುತ್ತದೆ. ನಾನ್-ಯೂಕ್ಲಿಡಿಯನ್ ದೂರಗಳು 'ಕ್ಲಸ್ಟ್ರಾಯ್ಡ್ಗಳು'ಗೆ ಸಂಬಂಧಿಸಿದವು, ಇವು ಇತರ ಪಾಯಿಂಟ್ಗಳಿಗೆ ಅತ್ಯಂತ ಸಮೀಪದಲ್ಲಿರುವ ಪಾಯಿಂಟ್ಗಳು. ಕ್ಲಸ್ಟ್ರಾಯ್ಡ್ಗಳನ್ನು ವಿವಿಧ ರೀತಿಯಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು.\n",
|
||||
">\n",
|
||||
"> 🎓 ['ನಿಬಂಧಿತ'](https://wikipedia.org/wiki/Constrained_clustering)\n",
|
||||
">\n",
|
||||
"> [ನಿಬಂಧಿತ ಕ್ಲಸ್ಟರಿಂಗ್](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) ಈ ಅನಿಯಂತ್ರಿತ ವಿಧಾನಕ್ಕೆ 'ಅರ್ಧ-ನಿಯಂತ್ರಿತ' ಕಲಿಕೆಯನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ. ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ಸಂಬಂಧಗಳನ್ನು 'ಕನೆಕ್ಟ್ ಆಗಬಾರದು' ಅಥವಾ 'ಕನೆಕ್ಟ್ ಆಗಬೇಕು' ಎಂದು ಗುರುತಿಸಲಾಗುತ್ತದೆ, ಹೀಗಾಗಿ ಕೆಲವು ನಿಯಮಗಳನ್ನು ಡೇಟಾಸೆಟ್ ಮೇಲೆ ಜಾರಿಗೊಳಿಸಲಾಗುತ್ತದೆ.\n",
|
||||
">\n",
|
||||
"> ಉದಾಹರಣೆ: ಒಂದು ಆಲ್ಗಾರಿಥಮ್ ಲೇಬಲ್ ಮಾಡದ ಅಥವಾ ಅರ್ಧ ಲೇಬಲ್ ಮಾಡಲಾದ ಡೇಟಾ ಬ್ಯಾಚ್ ಮೇಲೆ ಮುಕ್ತವಾಗಿದ್ದರೆ, ಅದು ಉತ್ಪಾದಿಸುವ ಕ್ಲಸ್ಟರ್ಗಳು ಕಡಿಮೆ ಗುಣಮಟ್ಟದಿರಬಹುದು. ಮೇಲಿನ ಉದಾಹರಣೆಯಲ್ಲಿ, ಕ್ಲಸ್ಟರ್ಗಳು 'ವೃತ್ತಾಕಾರದ ಸಂಗೀತ ವಸ್ತುಗಳು', 'ಚೌಕಾಕಾರದ ಸಂಗೀತ ವಸ್ತುಗಳು', 'ತ್ರಿಭುಜಾಕಾರದ ವಸ್ತುಗಳು' ಮತ್ತು 'ಕುಕೀಸ್' ಎಂದು ಗುಂಪುಮಾಡಬಹುದು. ಕೆಲವು ನಿಯಮಗಳು ಅಥವಾ ನಿಯಂತ್ರಣಗಳು (\"ವಸ್ತು ಪ್ಲಾಸ್ಟಿಕ್ನಿಂದ ಮಾಡಲ್ಪಟ್ಟಿರಬೇಕು\", \"ವಸ್ತು ಸಂಗೀತ ಉತ್ಪಾದಿಸಲು ಸಾಧ್ಯವಾಗಬೇಕು\") ನೀಡಿದರೆ, ಆಲ್ಗಾರಿಥಮ್ ಉತ್ತಮ ಆಯ್ಕೆಗಳನ್ನು ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.\n",
|
||||
">\n",
|
||||
"> 🎓 'ಸಾಂದ್ರತೆ'\n",
|
||||
">\n",
|
||||
"> 'ಶಬ್ದ' ಇರುವ ಡೇಟಾವನ್ನು 'ಸಾಂದ್ರ' ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. ಪ್ರತಿ ಕ್ಲಸ್ಟರ್ನಲ್ಲಿನ ಪಾಯಿಂಟ್ಗಳ ನಡುವಿನ ದೂರಗಳು ಪರಿಶೀಲನೆಯಾಗುವಾಗ ಹೆಚ್ಚು ಅಥವಾ ಕಡಿಮೆ ಸಾಂದ್ರವಾಗಿರಬಹುದು, ಅಥವಾ 'ಘನತೆ' ಅಥವಾ 'ಜನಸಂಖ್ಯೆ' ಇದ್ದಂತೆ ಕಾಣಬಹುದು, ಹೀಗಾಗಿ ಈ ಡೇಟಾವನ್ನು ಸೂಕ್ತ ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಧಾನದಿಂದ ವಿಶ್ಲೇಷಿಸಬೇಕಾಗುತ್ತದೆ. [ಈ ಲೇಖನ](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) K-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್ ಮತ್ತು HDBSCAN ಆಲ್ಗಾರಿಥಮ್ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅಸಮಾನ ಸಾಂದ್ರತೆ ಇರುವ ಶಬ್ದ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಅನ್ವೇಷಿಸುವ ವ್ಯತ್ಯಾಸವನ್ನು ತೋರಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"ಈ [ಕಲಿಕೆ ಘಟಕದಲ್ಲಿ](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott) ಕ್ಲಸ್ಟರಿಂಗ್ ತಂತ್ರಗಳನ್ನು ಇನ್ನಷ್ಟು ಆಳವಾಗಿ ತಿಳಿದುಕೊಳ್ಳಿ\n",
|
||||
"\n",
|
||||
"### **ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳು**\n",
|
||||
"\n",
|
||||
"100ಕ್ಕೂ ಹೆಚ್ಚು ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳಿವೆ, ಮತ್ತು ಅವುಗಳ ಬಳಕೆ ಡೇಟಾದ ಸ್ವಭಾವದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ. ಕೆಲವು ಪ್ರಮುಖಗಳನ್ನು ಚರ್ಚಿಸೋಣ:\n",
|
||||
"\n",
|
||||
"- **ಹೈರಾರ್ಕಿಕಲ್ ಕ್ಲಸ್ಟರಿಂಗ್**. ಒಂದು ವಸ್ತುವನ್ನು ಸಮೀಪದ ವಸ್ತುವಿನ ಹತ್ತಿರತೆ ಆಧರಿಸಿ ವರ್ಗೀಕರಿಸಿದರೆ, ಕ್ಲಸ್ಟರ್ಗಳು ಸದಸ್ಯರ ದೂರದ ಆಧಾರದ ಮೇಲೆ ರಚಿಸಲಾಗುತ್ತವೆ. ಹೈರಾರ್ಕಿಕಲ್ ಕ್ಲಸ್ಟರಿಂಗ್ ಎರಡು ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಪುನರಾವರ್ತಿತವಾಗಿ ಸಂಯೋಜಿಸುವ ಮೂಲಕ ಗುರುತಿಸಲಾಗುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/hierarchical.bf59403aa43c8c47493bfdf1cc25230f26e45f4e38a3d62e8769cd324129ac15.kn.png\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ಇನ್ಫೋಗ್ರಾಫಿಕ್: ದಾಸನಿ ಮಡಿಪಳ್ಳಿ</figcaption>\n",
|
||||
"\n",
|
||||
"- **ಸೆಂಟ್ರಾಯ್ಡ್ ಕ್ಲಸ್ಟರಿಂಗ್**. ಈ ಜನಪ್ರಿಯ ಆಲ್ಗಾರಿಥಮ್ 'k' ಅಥವಾ ರಚಿಸಬೇಕಾದ ಕ್ಲಸ್ಟರ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಆಯ್ಕೆಮಾಡಬೇಕಾಗುತ್ತದೆ, ನಂತರ ಆಲ್ಗಾರಿಥಮ್ ಕ್ಲಸ್ಟರ್ನ ಕೇಂದ್ರ ಬಿಂದುವನ್ನು ನಿರ್ಧರಿಸಿ ಆ ಬಿಂದುವಿನ ಸುತ್ತಲೂ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ. [ಕೆ-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್](https://wikipedia.org/wiki/K-means_clustering) ಸೆಂಟ್ರಾಯ್ಡ್ ಕ್ಲಸ್ಟರಿಂಗ್ನ ಜನಪ್ರಿಯ ಆವೃತ್ತಿಯಾಗಿದೆ, ಇದು ಡೇಟಾ ಸೆಟ್ ಅನ್ನು ಪೂರ್ವನಿರ್ಧರಿತ K ಗುಂಪುಗಳಾಗಿ ವಿಭಜಿಸುತ್ತದೆ. ಕೇಂದ್ರವನ್ನು ಸಮೀಪದ ಸರಾಸರಿ ಮೂಲಕ ನಿರ್ಧರಿಸಲಾಗುತ್ತದೆ, ಹೀಗಾಗಿ ಹೆಸರಾಗಿದೆ. ಕ್ಲಸ್ಟರ್ನಿಂದ ಚದರ ದೂರವನ್ನು ಕನಿಷ್ಠಗೊಳಿಸಲಾಗುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/centroid.097fde836cf6c9187d0b2033e9f94441829f9d86f4f0b1604dd4b3d1931aee34.kn.png\"\n",
|
||||
" width=\"600\"/>\n",
|
||||
" <figcaption>ಇನ್ಫೋಗ್ರಾಫಿಕ್: ದಾಸನಿ ಮಡಿಪಳ್ಳಿ</figcaption>\n",
|
||||
"\n",
|
||||
"- **ವಿತರಣಾ ಆಧಾರಿತ ಕ್ಲಸ್ಟರಿಂಗ್**. ಸಾಂಖ್ಯಿಕ ಮಾದರಿಗೊಳಿಸುವಿಕೆಯಲ್ಲಿ ಆಧಾರಿತ, ವಿತರಣಾ ಆಧಾರಿತ ಕ್ಲಸ್ಟರಿಂಗ್ ಡೇಟಾ ಪಾಯಿಂಟ್ ಒಂದು ಕ್ಲಸ್ಟರ್ಗೆ ಸೇರಿದ ಸಾಧ್ಯತೆಯನ್ನು ನಿರ್ಧರಿಸಿ ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ನಿಯೋಜಿಸುತ್ತದೆ. ಗಾಸಿಯನ್ ಮಿಶ್ರಣ ವಿಧಾನಗಳು ಈ ಪ್ರಕಾರಕ್ಕೆ ಸೇರಿವೆ.\n",
|
||||
"\n",
|
||||
"- **ಸಾಂದ್ರತೆ ಆಧಾರಿತ ಕ್ಲಸ್ಟರಿಂಗ್**. ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳನ್ನು ಅವುಗಳ ಸಾಂದ್ರತೆ ಅಥವಾ ಪರಸ್ಪರ ಗುಂಪುಮಾಡುವಿಕೆಯ ಆಧಾರದ ಮೇಲೆ ಕ್ಲಸ್ಟರ್ಗಳಿಗೆ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ. ಗುಂಪಿನಿಂದ ದೂರವಿರುವ ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳನ್ನು ಹೊರಗಿನ ಅಥವಾ ಶಬ್ದ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ. DBSCAN, ಮೀನ್-ಶಿಫ್ಟ್ ಮತ್ತು OPTICS ಈ ಪ್ರಕಾರದ ಕ್ಲಸ್ಟರಿಂಗ್ಗೆ ಸೇರಿವೆ.\n",
|
||||
"\n",
|
||||
"- **ಗ್ರಿಡ್ ಆಧಾರಿತ ಕ್ಲಸ್ಟರಿಂಗ್**. ಬಹು-ಮಾನದಂಡ ಡೇಟಾಸೆಟ್ಗಳಿಗೆ, ಗ್ರಿಡ್ ರಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಡೇಟಾವನ್ನು ಗ್ರಿಡ್ನ ಸೆಲ್ಗಳ ನಡುವೆ ಹಂಚಲಾಗುತ್ತದೆ, ಹೀಗಾಗಿ ಕ್ಲಸ್ಟರ್ಗಳು ರಚಿಸಲಾಗುತ್ತವೆ.\n",
|
||||
"\n",
|
||||
"ಕ್ಲಸ್ಟರಿಂಗ್ ಬಗ್ಗೆ ತಿಳಿಯಲು ಉತ್ತಮ ಮಾರ್ಗವೆಂದರೆ ಅದನ್ನು ಸ್ವತಃ ಪ್ರಯತ್ನಿಸುವುದು, ಹಾಗಾಗಿ ನೀವು ಈ ಅಭ್ಯಾಸದಲ್ಲಿ ಅದನ್ನು ಮಾಡುತ್ತೀರಿ.\n",
|
||||
"\n",
|
||||
"ಈ ಘಟಕವನ್ನು ಮುಗಿಸಲು ಕೆಲವು ಪ್ಯಾಕೇಜ್ಗಳು ಬೇಕಾಗುತ್ತವೆ. ನೀವು ಅವುಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಬಹುದು: `install.packages(c('tidyverse', 'tidymodels', 'DataExplorer', 'summarytools', 'plotly', 'paletteer', 'corrplot', 'patchwork'))`\n",
|
||||
"\n",
|
||||
"ಬದಲಾಗಿ, ಕೆಳಗಿನ ಸ್ಕ್ರಿಪ್ಟ್ ಈ ಘಟಕವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಬೇಕಾದ ಪ್ಯಾಕೇಜ್ಗಳಿದ್ದರೆ ಅವುಗಳನ್ನು ಪರಿಶೀಲಿಸಿ, ಇಲ್ಲದಿದ್ದರೆ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತದೆ.\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": [
|
||||
"ಕೆಲವೊಮ್ಮೆ, ನಾವು ನಮ್ಮ ಡೇಟಾದ ಬಗ್ಗೆ ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಮಾಹಿತಿಯನ್ನು ಬಯಸಬಹುದು. ನಾವು [*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",
|
||||
"> 🤔 ನಾವು ಕ್ಲಸ್ಟರಿಂಗ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರೆ, ಲೇಬಲ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ಅಗತ್ಯವಿಲ್ಲದ ಅನ್ಸೂಪರ್ವೈಸ್ಡ್ ವಿಧಾನ, ನಾವು ಈ ಡೇಟಾವನ್ನು ಲೇಬಲ್ಗಳೊಂದಿಗೆ ಏಕೆ ತೋರಿಸುತ್ತಿದ್ದೇವೆ? ಡೇಟಾ ಅನ್ವೇಷಣಾ ಹಂತದಲ್ಲಿ ಅವು ಸಹಾಯಕವಾಗುತ್ತವೆ, ಆದರೆ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗಾರಿಥಮ್ಗಳು ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಅವು ಅಗತ್ಯವಿಲ್ಲ.\n",
|
||||
"\n",
|
||||
"### 1. ಜನಪ್ರಿಯ ಶೈಲಿಗಳನ್ನು ಅನ್ವೇಷಿಸಿ\n",
|
||||
"\n",
|
||||
"ಹಾಗಾದರೆ ನಾವು ಮುಂದುವರಿದು, ಅದು ಕಾಣಿಸುವ ಸಂದರ್ಭಗಳ ಎಣಿಕೆಯನ್ನು ಮಾಡಿ ಅತ್ಯಂತ ಜನಪ್ರಿಯ ಶೈಲಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯೋಣ 🎶.\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",
|
||||
"ವರ್ಗೀಕೃತ ಡೇಟಾವನ್ನು (ಅಕ್ಷರ ಅಥವಾ ಫ್ಯಾಕ್ಟರ್ ಚರಗಳು) ದೃಶ್ಯೀಕರಿಸುವ ಒಂದು ವಿಧಾನವೆಂದರೆ ಬಾರ್ಪ್ಲಾಟ್ಗಳನ್ನು ಬಳಸುವುದು. ಟಾಪ್ 10 ಶೈಲಿಗಳ ಬಾರ್ಪ್ಲಾಟ್ ಅನ್ನು ಮಾಡೋಣ:\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",
|
||||
"> ಒಳ್ಳೆಯ ದೃಶ್ಯೀಕರಣವು ನೀವು ನಿರೀಕ್ಷಿಸದ ವಿಷಯಗಳನ್ನು ತೋರಿಸುತ್ತದೆ, ಅಥವಾ ಡೇಟಾ ಬಗ್ಗೆ ಹೊಸ ಪ್ರಶ್ನೆಗಳನ್ನು ಎತ್ತಿಹಿಡಿಯುತ್ತದೆ - ಹ್ಯಾಡ್ಲಿ ವಿಕ್ಹ್ಯಾಮ್ ಮತ್ತು ಗ್ಯಾರೆಟ್ ಗ್ರೋಲೆಮಂಡ್, [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` ಗೆ ಸಂಬಂಧವಿದೆ, ಇದು ಸಹ ಅರ್ಥವಾಗುತ್ತದೆ, ಏಕೆಂದರೆ ಇತ್ತೀಚಿನ ಹಾಡುಗಳು ಬಹುಶಃ ಹೆಚ್ಚು ಜನಪ್ರಿಯವಾಗಿರುತ್ತವೆ. Length ಮತ್ತು energy ಕೂಡ ಸಂಬಂಧ ಹೊಂದಿರುವಂತೆ ತೋರುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"ಈ ಡೇಟಾದಿಂದ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗೋರಿದಮ್ ಏನು ಮಾಡಬಹುದು ಎಂದು ನೋಡುವುದು ಆಸಕ್ತಿದಾಯಕವಾಗಿರುತ್ತದೆ!\n",
|
||||
"\n",
|
||||
"> 🎓 ಗಮನಿಸಿ, ಸಂಬಂಧವು ಕಾರಣವಲ್ಲ ಎಂದು ಸೂಚಿಸುವುದಿಲ್ಲ! ನಮ್ಮ ಬಳಿ ಸಂಬಂಧದ ಸಾಬೀತು ಇದೆ ಆದರೆ ಕಾರಣದ ಸಾಬೀತು ಇಲ್ಲ. ಒಂದು [ಮನರಂಜನೀಯ ವೆಬ್ ಸೈಟ್](https://tylervigen.com/spurious-correlations) ಈ ವಿಷಯವನ್ನು ಒತ್ತಿಹೇಳುವ ಕೆಲವು ದೃಶ್ಯಗಳನ್ನು ಹೊಂದಿದೆ.\n",
|
||||
"\n",
|
||||
"### 2. ಡೇಟಾ ವಿತರಣೆ ಅನ್ವೇಷಣೆ\n",
|
||||
"\n",
|
||||
"ನಾವು ಇನ್ನಷ್ಟು ಸೂಕ್ಷ್ಮ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳೋಣ. ಜನಪ್ರಿಯತೆಯ ಆಧಾರದ ಮೇಲೆ ಅವರ ಡ್ಯಾನ್ಸಬಿಲಿಟಿ ಗ್ರಹಣೆಯಲ್ಲಿ ಶೈಲಿಗಳು ಪ್ರಮುಖವಾಗಿ ವಿಭಿನ್ನವಾಗಿದೆಯೇ? ನಾವು ನಮ್ಮ ಟಾಪ್ ಮೂರು ಶೈಲಿಗಳ ಜನಪ್ರಿಯತೆ ಮತ್ತು ಡ್ಯಾನ್ಸಬಿಲಿಟಿ ಡೇಟಾ ವಿತರಣೆಯನ್ನು ನೀಡಲಾದ x ಮತ್ತು y ಅಕ್ಷಗಳ ಮೇಲೆ [density plots](https://www.khanacademy.org/math/ap-statistics/density-curves-normal-distribution-ap/density-curves/v/density-curves) ಬಳಸಿ ಪರಿಶೀಲಿಸೋಣ.\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": [
|
||||
"ನಾವು ನೋಡುತ್ತೇವೆ, ಪ್ರಕಾರವನ್ನು ಪರಿಗಣಿಸದೆ, ಸುತ್ತುವರೆದ ವೃತ್ತಗಳು ಸರಿಹೊಂದಿವೆ. ಈ ಪ್ರಕಾರಕ್ಕಾಗಿ ನೈಜೀರಿಯನ್ ರುಚಿಗಳು ನೃತ್ಯ ಸಾಮರ್ಥ್ಯದ ನಿರ್ದಿಷ್ಟ ಮಟ್ಟದಲ್ಲಿ ಒಗ್ಗೂಡುತ್ತವೆಯೇ?\n",
|
||||
"\n",
|
||||
"ಸಾಮಾನ್ಯವಾಗಿ, ಮೂರು ಪ್ರಕಾರಗಳು ಅವರ ಜನಪ್ರಿಯತೆ ಮತ್ತು ನೃತ್ಯ ಸಾಮರ್ಥ್ಯದ ದೃಷ್ಟಿಯಿಂದ ಸರಿಹೊಂದಿವೆ. ಈ ಸಡಿಲವಾಗಿ ಸರಿಹೊಂದಿದ ಡೇಟಾದಲ್ಲಿ ಗುಂಪುಗಳನ್ನು ನಿರ್ಧರಿಸುವುದು ಒಂದು ಸವಾಲಾಗಿರುತ್ತದೆ. ಇದನ್ನು scatter plot ಬೆಂಬಲಿಸಬಹುದೇ ಎಂದು ನೋಡೋಣ.\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-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಈ ಡೇಟಾದಲ್ಲಿ ಆಸಕ್ತಿದಾಯಕ ರೀತಿಯಲ್ಲಿ ಒಟ್ಟುಗೂಡುತ್ತಿರುವ ಗುಂಪುಗಳನ್ನು ಕಂಡುಹಿಡಿಯುತ್ತೇವೆ.\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",
|
||||
"- [ಟೈಡಿಮೋಡಲ್ಸ್ ಮತ್ತು ಸ್ನೇಹಿತರನ್ನು ಬಳಸಿ ಕ್ಲಸ್ಟರಿಂಗ್ ಮಾದರಿಗಳನ್ನು ತರಬೇತಿ ಮತ್ತು ಮೌಲ್ಯಮಾಪನ ಮಾಡಿ](https://rpubs.com/eR_ic/clustering)\n",
|
||||
"\n",
|
||||
"- ಬ್ರಾಡ್ಲಿ ಬೋಹ್ಮ್ಕೆ & ಬ್ರ್ಯಾಂಡನ್ ಗ್ರೀನ್ವೆಲ್, [*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",
|
||||
"[ಜೆನ್ ಲೂಪರ್](https://www.twitter.com/jenlooper) ಈ ಮಾಯಾಜಾಲದ ಮೂಲ ಪೈಥಾನ್ ಆವೃತ್ತಿಯನ್ನು ರಚಿಸಿದವರಿಗೆ ♥️\n",
|
||||
"\n",
|
||||
"[`ದಾಸನಿ ಮಡಿಪಳ್ಳಿ`](https://twitter.com/dasani_decoded) ಮೆಷಿನ್ ಲರ್ನಿಂಗ್ ಸಂಪ್ರದಾಯಗಳನ್ನು ಹೆಚ್ಚು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ಸುಲಭವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಅದ್ಭುತ ಚಿತ್ರಣಗಳನ್ನು ರಚಿಸಿದವರಿಗೆ.\n",
|
||||
"\n",
|
||||
"ಸಂತೋಷಕರ ಅಧ್ಯಯನ,\n",
|
||||
"\n",
|
||||
"[ಎರಿಕ್](https://twitter.com/ericntay), ಗೋಲ್ಡ್ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಲರ್ನ್ ವಿದ್ಯಾರ್ಥಿ ರಾಯಭಾರಿ.\n"
|
||||
],
|
||||
"metadata": {}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\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"
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "99c36449cad3708a435f6798cfa39972",
|
||||
"translation_date": "2025-12-19T17:02:20+00:00",
|
||||
"source_file": "5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 1
|
||||
}
|
||||
@ -0,0 +1,263 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "7cdd17338d9bbd7e2171c2cd462eb081",
|
||||
"translation_date": "2025-12-19T14:53:20+00:00",
|
||||
"source_file": "5-Clustering/2-K-Means/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# K-Means ಕ್ಲಸ್ಟರಿಂಗ್
|
||||
|
||||
## [ಪೂರ್ವ-ಪಾಠ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ, ನೀವು Scikit-learn ಮತ್ತು ನೀವು ಮೊದಲು ಆಮದು ಮಾಡಿದ ನೈಜೀರಿಯನ್ ಸಂಗೀತ ಡೇಟಾಸೆಟ್ ಬಳಸಿ ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂದು ಕಲಿಯುತ್ತೀರಿ. ನಾವು ಕ್ಲಸ್ಟರಿಂಗ್ಗಾಗಿ K-Means ನ ಮೂಲಭೂತಗಳನ್ನು ಆವರಿಸುವೆವು. ನೀವು ಮೊದಲು ಪಾಠದಲ್ಲಿ ಕಲಿತಂತೆ, ಕ್ಲಸ್ಟರ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಅನೇಕ ವಿಧಾನಗಳಿವೆ ಮತ್ತು ನೀವು ಬಳಸುವ ವಿಧಾನ ನಿಮ್ಮ ಡೇಟಾದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ ಎಂದು ಗಮನದಲ್ಲಿಡಿ. ನಾವು K-Means ಅನ್ನು ಪ್ರಯತ್ನಿಸುವೆವು ಏಕೆಂದರೆ ಇದು ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಕ್ಲಸ್ಟರಿಂಗ್ ತಂತ್ರವಾಗಿದೆ. ಆರಂಭಿಸೋಣ!
|
||||
|
||||
ನೀವು ಕಲಿಯಲಿರುವ ಪದಗಳು:
|
||||
|
||||
- ಸಿಲ್ಹೌಟ್ ಸ್ಕೋರಿಂಗ್
|
||||
- ಎಲ್ಬೋ ವಿಧಾನ
|
||||
- ಇನರ್ಷಿಯಾ
|
||||
- ವ್ಯತ್ಯಾಸ
|
||||
|
||||
## ಪರಿಚಯ
|
||||
|
||||
[K-Means ಕ್ಲಸ್ಟರಿಂಗ್](https://wikipedia.org/wiki/K-means_clustering) ಸಿಗ್ನಲ್ ಪ್ರೊಸೆಸಿಂಗ್ ಕ್ಷೇತ್ರದಿಂದ ಪಡೆದ ವಿಧಾನವಾಗಿದೆ. ಇದು 'k' ಕ್ಲಸ್ಟರ್ಗಳಾಗಿ ಡೇಟಾ ಗುಂಪುಗಳನ್ನು ವಿಭಜಿಸಲು ಮತ್ತು ವಿಭಾಗಿಸಲು ಉಪಯೋಗಿಸಲಾಗುತ್ತದೆ, ನಿರೀಕ್ಷಣೆಯ ಸರಣಿಯನ್ನು ಬಳಸಿ. ಪ್ರತಿ ನಿರೀಕ್ಷಣೆ ನೀಡಲಾದ ಡೇಟಾಪಾಯಿಂಟ್ ಅನ್ನು ಅದರ ಸಮೀಪದ 'ಸರಾಸರಿ' ಅಥವಾ ಕ್ಲಸ್ಟರ್ನ ಕೇಂದ್ರ ಬಿಂದುವಿಗೆ ಸಮೀಪವಾಗಿರುವಂತೆ ಗುಂಪು ಮಾಡುತ್ತದೆ.
|
||||
|
||||
ಕ್ಲಸ್ಟರ್ಗಳನ್ನು [ವೊರೋನಾಯ್ ಡಯಾಗ್ರಾಮ್ಗಳು](https://wikipedia.org/wiki/Voronoi_diagram) ಎಂದು ದೃಶ್ಯೀಕರಿಸಬಹುದು, ಇದರಲ್ಲಿ ಒಂದು ಬಿಂದುವು (ಅಥವಾ 'ಬೀಜ') ಮತ್ತು ಅದರ ಸಂಬಂಧಿತ ಪ್ರದೇಶವನ್ನು ಒಳಗೊಂಡಿದೆ.
|
||||
|
||||

|
||||
|
||||
> ಇನ್ಫೋಗ್ರಾಫಿಕ್ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಅವರಿಂದ
|
||||
|
||||
K-Means ಕ್ಲಸ್ಟರಿಂಗ್ ಪ್ರಕ್ರಿಯೆ [ಮೂರು ಹಂತಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ](https://scikit-learn.org/stable/modules/clustering.html#k-means):
|
||||
|
||||
1. ಆಲ್ಗಾರಿಥಮ್ ಡೇಟಾಸೆಟ್ನಿಂದ ಮಾದರಿಯನ್ನು ತೆಗೆದು k-ಸಂಖ್ಯೆಯ ಕೇಂದ್ರ ಬಿಂದುಗಳನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತದೆ. ಇದಾದ ನಂತರ, ಇದು ಲೂಪ್ ಮಾಡುತ್ತದೆ:
|
||||
1. ಪ್ರತಿ ಮಾದರಿಯನ್ನು ಸಮೀಪದ ಸೆಂಟ್ರಾಯ್ಡ್ಗೆ ನಿಯೋಜಿಸುತ್ತದೆ.
|
||||
2. ಹಿಂದಿನ ಸೆಂಟ್ರಾಯ್ಡ್ಗಳಿಗೆ ನಿಯೋಜಿಸಲಾದ ಎಲ್ಲಾ ಮಾದರಿಗಳ ಸರಾಸರಿ ಮೌಲ್ಯವನ್ನು ತೆಗೆದು ಹೊಸ ಸೆಂಟ್ರಾಯ್ಡ್ಗಳನ್ನು ರಚಿಸುತ್ತದೆ.
|
||||
3. ನಂತರ, ಹೊಸ ಮತ್ತು ಹಳೆಯ ಸೆಂಟ್ರಾಯ್ಡ್ಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ಲೆಕ್ಕಿಸಿ, ಸೆಂಟ್ರಾಯ್ಡ್ಗಳು ಸ್ಥಿರವಾಗುವವರೆಗೆ ಪುನರಾವರ್ತಿಸುತ್ತದೆ.
|
||||
|
||||
K-Means ಬಳಕೆಯ ಒಂದು ದೋಷವೆಂದರೆ ನೀವು 'k' ಅನ್ನು ಸ್ಥಾಪಿಸಬೇಕಾಗುತ್ತದೆ, ಅಂದರೆ ಸೆಂಟ್ರಾಯ್ಡ್ಗಳ ಸಂಖ್ಯೆ. ಅದೃಷ್ಟವಶಾತ್ 'ಎಲ್ಬೋ ವಿಧಾನ' 'k' ಗೆ ಉತ್ತಮ ಪ್ರಾರಂಭಿಕ ಮೌಲ್ಯವನ್ನು ಅಂದಾಜಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ನೀವು ಅದನ್ನು ಕ್ಷಣದಲ್ಲೇ ಪ್ರಯತ್ನಿಸುವಿರಿ.
|
||||
|
||||
## ಪೂರ್ವಾಪೇಕ್ಷಿತ
|
||||
|
||||
ನೀವು ಈ ಪಾಠದ [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/2-K-Means/notebook.ipynb) ಫೈಲ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತೀರಿ, ಇದರಲ್ಲಿ ನೀವು ಹಿಂದಿನ ಪಾಠದಲ್ಲಿ ಮಾಡಿದ ಡೇಟಾ ಆಮದು ಮತ್ತು ಪ್ರಾಥಮಿಕ ಶುದ್ಧೀಕರಣವನ್ನು ಒಳಗೊಂಡಿದೆ.
|
||||
|
||||
## ವ್ಯಾಯಾಮ - ತಯಾರಿ
|
||||
|
||||
ಮತ್ತೆ ಹಾಡುಗಳ ಡೇಟಾವನ್ನು ನೋಡಿ ಪ್ರಾರಂಭಿಸಿ.
|
||||
|
||||
1. ಪ್ರತಿ ಕಾಲಮ್ಗೆ `boxplot()` ಅನ್ನು ಕರೆಸಿ ಬಾಕ್ಸ್ಪ್ಲಾಟ್ ರಚಿಸಿ:
|
||||
|
||||
```python
|
||||
plt.figure(figsize=(20,20), dpi=200)
|
||||
|
||||
plt.subplot(4,3,1)
|
||||
sns.boxplot(x = 'popularity', data = df)
|
||||
|
||||
plt.subplot(4,3,2)
|
||||
sns.boxplot(x = 'acousticness', data = df)
|
||||
|
||||
plt.subplot(4,3,3)
|
||||
sns.boxplot(x = 'energy', data = df)
|
||||
|
||||
plt.subplot(4,3,4)
|
||||
sns.boxplot(x = 'instrumentalness', data = df)
|
||||
|
||||
plt.subplot(4,3,5)
|
||||
sns.boxplot(x = 'liveness', data = df)
|
||||
|
||||
plt.subplot(4,3,6)
|
||||
sns.boxplot(x = 'loudness', data = df)
|
||||
|
||||
plt.subplot(4,3,7)
|
||||
sns.boxplot(x = 'speechiness', data = df)
|
||||
|
||||
plt.subplot(4,3,8)
|
||||
sns.boxplot(x = 'tempo', data = df)
|
||||
|
||||
plt.subplot(4,3,9)
|
||||
sns.boxplot(x = 'time_signature', data = df)
|
||||
|
||||
plt.subplot(4,3,10)
|
||||
sns.boxplot(x = 'danceability', data = df)
|
||||
|
||||
plt.subplot(4,3,11)
|
||||
sns.boxplot(x = 'length', data = df)
|
||||
|
||||
plt.subplot(4,3,12)
|
||||
sns.boxplot(x = 'release_date', data = df)
|
||||
```
|
||||
|
||||
ಈ ಡೇಟಾ ಸ್ವಲ್ಪ ಶಬ್ದಮಯವಾಗಿದೆ: ಪ್ರತಿ ಕಾಲಮ್ ಅನ್ನು ಬಾಕ್ಸ್ಪ್ಲಾಟ್ ಆಗಿ ಗಮನಿಸಿದರೆ, ನೀವು ಔಟ್ಲೈಯರ್ಗಳನ್ನು ಕಾಣಬಹುದು.
|
||||
|
||||

|
||||
|
||||
ನೀವು ಡೇಟಾಸೆಟ್ ಮೂಲಕ ಹೋಗಿ ಈ ಔಟ್ಲೈಯರ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಬಹುದು, ಆದರೆ ಅದು ಡೇಟಾವನ್ನು ಬಹಳ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
|
||||
|
||||
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. ಈ ಅರೆ ಬಳಸಿ 'ಸಿಲ್ಹೌಟ್ ಸ್ಕೋರ್' ಅನ್ನು ಲೆಕ್ಕಿಸಿ:
|
||||
|
||||
```python
|
||||
from sklearn import metrics
|
||||
score = metrics.silhouette_score(X, y_cluster_kmeans)
|
||||
score
|
||||
```
|
||||
|
||||
## ಸಿಲ್ಹೌಟ್ ಸ್ಕೋರ್
|
||||
|
||||
1 ಗೆ ಸಮೀಪವಾದ ಸಿಲ್ಹೌಟ್ ಸ್ಕೋರ್ ಅನ್ನು ಹುಡುಕಿ. ಈ ಸ್ಕೋರ್ -1 ರಿಂದ 1 ರವರೆಗೆ ಬದಲಾಗುತ್ತದೆ, ಮತ್ತು ಸ್ಕೋರ್ 1 ಆಗಿದ್ದರೆ, ಕ್ಲಸ್ಟರ್ ಗಟ್ಟಿಯಾಗಿದ್ದು ಇತರ ಕ್ಲಸ್ಟರ್ಗಳಿಂದ ಚೆನ್ನಾಗಿ ವಿಭಜಿತವಾಗಿದೆ. 0 ಗೆ ಸಮೀಪವಾದ ಮೌಲ್ಯವು ಹತ್ತಿರದ ಕ್ಲಸ್ಟರ್ಗಳ ನಿರ್ಧಾರ ಗಡಿಭಾಗದ ಬಳಿ ಮಾದರಿಗಳೊಂದಿಗೆ ಓವರ್ಲ್ಯಾಪ್ ಆಗಿರುವ ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಸೂಚಿಸುತ್ತದೆ. [(ಮೂಲ)](https://dzone.com/articles/kmeans-silhouette-score-explained-with-python-exam)
|
||||
|
||||
ನಮ್ಮ ಸ್ಕೋರ್ **.53** ಆಗಿದ್ದು, ಮಧ್ಯದಲ್ಲಿ ಇದೆ. ಇದು ನಮ್ಮ ಡೇಟಾ ಈ ರೀತಿಯ ಕ್ಲಸ್ಟರಿಂಗ್ಗೆ ವಿಶೇಷವಾಗಿ ಸೂಕ್ತವಿಲ್ಲದಿರುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಆದರೆ ಮುಂದುವರಿಯೋಣ.
|
||||
|
||||
### ವ್ಯಾಯಾಮ - ಮಾದರಿ ನಿರ್ಮಿಸಿ
|
||||
|
||||
1. `KMeans` ಅನ್ನು ಆಮದು ಮಾಡಿ ಮತ್ತು ಕ್ಲಸ್ಟರಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪ್ರಾರಂಭಿಸಿ.
|
||||
|
||||
```python
|
||||
from sklearn.cluster import KMeans
|
||||
wcss = []
|
||||
|
||||
for i in range(1, 11):
|
||||
kmeans = KMeans(n_clusters = i, init = 'k-means++', random_state = 42)
|
||||
kmeans.fit(X)
|
||||
wcss.append(kmeans.inertia_)
|
||||
|
||||
```
|
||||
|
||||
ಇಲ್ಲಿ ಕೆಲವು ಭಾಗಗಳನ್ನು ವಿವರಿಸುವುದು ಅಗತ್ಯ.
|
||||
|
||||
> 🎓 range: ಇವು ಕ್ಲಸ್ಟರಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯ ಪುನರಾವೃತ್ತಿಗಳು
|
||||
|
||||
> 🎓 random_state: "ಸೆಂಟ್ರಾಯ್ಡ್ ಪ್ರಾರಂಭಿಕರಣಕ್ಕಾಗಿ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ ಉತ್ಪಾದನೆಯನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ." [ಮೂಲ](https://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html#sklearn.cluster.KMeans)
|
||||
|
||||
> 🎓 WCSS: "within-cluster sums of squares" ಕ್ಲಸ್ಟರ್ನೊಳಗಿನ ಎಲ್ಲಾ ಬಿಂದುಗಳ ಸರಾಸರಿ ದೂರದ ಚದರ ಮೌಲ್ಯವನ್ನು ಅಳೆಯುತ್ತದೆ. [ಮೂಲ](https://medium.com/@ODSC/unsupervised-learning-evaluating-clusters-bd47eed175ce).
|
||||
|
||||
> 🎓 ಇನರ್ಷಿಯಾ: K-Means ಆಲ್ಗಾರಿಥಮ್ಗಳು 'ಇನರ್ಷಿಯಾ' ಅನ್ನು ಕನಿಷ್ಠಗೊಳಿಸಲು ಸೆಂಟ್ರಾಯ್ಡ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತವೆ, "ಕ್ಲಸ್ಟರ್ಗಳು ಒಳಾಂಗಣವಾಗಿ ಎಷ್ಟು ಸಮ್ಮಿಲಿತವಾಗಿವೆ ಎಂಬ ಅಳೆಯುವಿಕೆ." [ಮೂಲ](https://scikit-learn.org/stable/modules/clustering.html). ಮೌಲ್ಯವು ಪ್ರತಿ ಪುನರಾವೃತ್ತಿಯಲ್ಲಿ wcss ಚರದಲ್ಲಿ ಸೇರಿಸಲಾಗುತ್ತದೆ.
|
||||
|
||||
> 🎓 k-means++: [Scikit-learn](https://scikit-learn.org/stable/modules/clustering.html#k-means) ನಲ್ಲಿ ನೀವು 'k-means++' ಆಪ್ಟಿಮೈಜೆಶನ್ ಅನ್ನು ಬಳಸಬಹುದು, ಇದು "ಸೆಂಟ್ರಾಯ್ಡ್ಗಳನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಪರಸ್ಪರ ದೂರದಲ್ಲಿರುವಂತೆ ಪ್ರಾರಂಭಿಸುತ್ತದೆ, ಇದರಿಂದ ಯಾದೃಚ್ಛಿಕ ಪ್ರಾರಂಭಿಕರಣಕ್ಕಿಂತ ಉತ್ತಮ ಫಲಿತಾಂಶಗಳು ಸಾಧ್ಯ."
|
||||
|
||||
### ಎಲ್ಬೋ ವಿಧಾನ
|
||||
|
||||
ಹಿಂದೆ, ನೀವು 3 ಹಾಡು ಶೈಲಿಗಳನ್ನು ಗುರಿಯಾಗಿಸಿಕೊಂಡಿದ್ದೀರಿ, ಆದ್ದರಿಂದ 3 ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಬೇಕು ಎಂದು ಊಹಿಸಿದ್ದೀರಿ. ಆದರೆ ಅದು ಸರಿ ಆಗಿದೆಯೇ?
|
||||
|
||||
1. 'ಎಲ್ಬೋ ವಿಧಾನ' ಬಳಸಿ ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
|
||||
|
||||
```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` ಚರವನ್ನು ಬಳಸಿ ಚಾರ್ಟ್ ರಚಿಸಿ, ಇದರಲ್ಲಿ ಎಲ್ಬೋದಲ್ಲಿ 'ವಂಗಿ' ಇರುವ ಸ್ಥಳವನ್ನು ತೋರಿಸುತ್ತದೆ, ಇದು ಅತ್ಯುತ್ತಮ ಕ್ಲಸ್ಟರ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಬಹುಶಃ ಅದು **3** ಆಗಿರಬಹುದು!
|
||||
|
||||

|
||||
|
||||
## ವ್ಯಾಯಾಮ - ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಿ
|
||||
|
||||
1. ಪ್ರಕ್ರಿಯೆಯನ್ನು ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ, ಈ ಬಾರಿ ಮೂರು ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಹೊಂದಿಸಿ, ಮತ್ತು ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಸ್ಕ್ಯಾಟರ್ಪ್ಲಾಟ್ ಆಗಿ ಪ್ರದರ್ಶಿಸಿ:
|
||||
|
||||
```python
|
||||
from sklearn.cluster import KMeans
|
||||
kmeans = KMeans(n_clusters = 3)
|
||||
kmeans.fit(X)
|
||||
labels = kmeans.predict(X)
|
||||
plt.scatter(df['popularity'],df['danceability'],c = labels)
|
||||
plt.xlabel('popularity')
|
||||
plt.ylabel('danceability')
|
||||
plt.show()
|
||||
```
|
||||
|
||||
1. ಮಾದರಿಯ ನಿಖರತೆಯನ್ನು ಪರಿಶೀಲಿಸಿ:
|
||||
|
||||
```python
|
||||
labels = kmeans.labels_
|
||||
|
||||
correct_labels = sum(y == labels)
|
||||
|
||||
print("Result: %d out of %d samples were correctly labeled." % (correct_labels, y.size))
|
||||
|
||||
print('Accuracy score: {0:0.2f}'. format(correct_labels/float(y.size)))
|
||||
```
|
||||
|
||||
ಈ ಮಾದರಿಯ ನಿಖರತೆ ತುಂಬಾ ಉತ್ತಮವಿಲ್ಲ, ಮತ್ತು ಕ್ಲಸ್ಟರ್ಗಳ ಆಕಾರವು ಕಾರಣವನ್ನು ಸೂಚಿಸುತ್ತದೆ.
|
||||
|
||||

|
||||
|
||||
ಈ ಡೇಟಾ ತುಂಬಾ ಅಸಮತೋಲನವಾಗಿದೆ, ತುಂಬಾ ಕಡಿಮೆ ಸಂಬಂಧಿತವಾಗಿದೆ ಮತ್ತು ಕಾಲಮ್ ಮೌಲ್ಯಗಳ ನಡುವೆ ತುಂಬಾ ವ್ಯತ್ಯಾಸವಿದೆ, ಆದ್ದರಿಂದ ಚೆನ್ನಾಗಿ ಕ್ಲಸ್ಟರ್ ಆಗುವುದಿಲ್ಲ. ವಾಸ್ತವದಲ್ಲಿ, ರಚನೆಯಾಗುವ ಕ್ಲಸ್ಟರ್ಗಳು ಮೇಲಿನ ಮೂರು ಶೈಲಿ ವರ್ಗಗಳಿಂದ ಬಹಳ ಪ್ರಭಾವಿತ ಅಥವಾ ವಕ್ರವಾಗಿರಬಹುದು. ಅದು ಒಂದು ಕಲಿಕೆಯ ಪ್ರಕ್ರಿಯೆ!
|
||||
|
||||
Scikit-learn ನ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ನಲ್ಲಿ, ನೀವು ಈ ರೀತಿಯ ಮಾದರಿಯು, ಕ್ಲಸ್ಟರ್ಗಳು ಚೆನ್ನಾಗಿ ವಿಭಜಿಸಲ್ಪಡದಿರುವುದರಿಂದ, 'ವ್ಯತ್ಯಾಸ' ಸಮಸ್ಯೆಯನ್ನು ಹೊಂದಿದೆ ಎಂದು ನೋಡಬಹುದು:
|
||||
|
||||

|
||||
> Scikit-learn ನಿಂದ ಇನ್ಫೋಗ್ರಾಫಿಕ್
|
||||
|
||||
## ವ್ಯತ್ಯಾಸ
|
||||
|
||||
ವ್ಯತ್ಯಾಸವನ್ನು "ಸರಾಸರಿಯಿಂದ ಚದರ ವ್ಯತ್ಯಾಸಗಳ ಸರಾಸರಿ" ಎಂದು ವ್ಯಾಖ್ಯಾನಿಸಲಾಗಿದೆ [(ಮೂಲ)](https://www.mathsisfun.com/data/standard-deviation.html). ಈ ಕ್ಲಸ್ಟರಿಂಗ್ ಸಮಸ್ಯೆಯ ಸನ್ನಿವೇಶದಲ್ಲಿ, ಇದು ನಮ್ಮ ಡೇಟಾಸೆಟ್ನ ಸಂಖ್ಯೆಗಳು ಸರಾಸರಿಯಿಂದ ಸ್ವಲ್ಪ ಹೆಚ್ಚು ವಿಭಿನ್ನವಾಗುವ倾向ವನ್ನು ಸೂಚಿಸುತ್ತದೆ.
|
||||
|
||||
✅ ಇದು ಈ ಸಮಸ್ಯೆಯನ್ನು ಸರಿಪಡಿಸಲು ನೀವು ಮಾಡಬಹುದಾದ ಎಲ್ಲಾ ಮಾರ್ಗಗಳನ್ನು ಯೋಚಿಸಲು ಉತ್ತಮ ಸಮಯ. ಡೇಟಾವನ್ನು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ತಿದ್ದುಪಡಿ ಮಾಡಬೇಕೆ? ವಿಭಿನ್ನ ಕಾಲಮ್ಗಳನ್ನು ಬಳಸಬೇಕೆ? ವಿಭಿನ್ನ ಆಲ್ಗಾರಿಥಮ್ ಬಳಸಬೇಕೆ? ಸೂಚನೆ: ನಿಮ್ಮ ಡೇಟಾವನ್ನು [ಸ್ಕೇಲ್ ಮಾಡಿ](https://www.mygreatlearning.com/blog/learning-data-science-with-k-means-clustering/) ಸಾಮಾನ್ಯೀಕರಿಸಿ ಮತ್ತು ಇತರ ಕಾಲಮ್ಗಳನ್ನು ಪರೀಕ್ಷಿಸಿ.
|
||||
|
||||
> ಈ '[ವ್ಯತ್ಯಾಸ ಕ್ಯಾಲ್ಕ್ಯುಲೇಟರ್](https://www.calculatorsoup.com/calculators/statistics/variance-calculator.php)' ಅನ್ನು ಪ್ರಯತ್ನಿಸಿ, ಈ ಕಲ್ಪನೆಯನ್ನು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು.
|
||||
|
||||
---
|
||||
|
||||
## 🚀ಚಾಲೆಂಜ್
|
||||
|
||||
ಈ ನೋಟ್ಬುಕ್ನೊಂದಿಗೆ ಸ್ವಲ್ಪ ಸಮಯ ಕಳೆಯಿರಿ, ಪರಿಮಾಣಗಳನ್ನು ತಿದ್ದುಪಡಿ ಮಾಡಿ. ನೀವು ಡೇಟಾವನ್ನು ಹೆಚ್ಚು ಶುದ್ಧೀಕರಿಸುವ ಮೂಲಕ (ಉದಾಹರಣೆಗೆ ಔಟ್ಲೈಯರ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ) ಮಾದರಿಯ ನಿಖರತೆಯನ್ನು ಸುಧಾರಿಸಬಹುದೇ? ನೀವು ಕೆಲವು ಡೇಟಾ ಮಾದರಿಗಳಿಗೆ ಹೆಚ್ಚು ತೂಕ ನೀಡಲು ತೂಕಗಳನ್ನು ಬಳಸಬಹುದು. ಉತ್ತಮ ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ರಚಿಸಲು ಇನ್ನೇನು ಮಾಡಬಹುದು?
|
||||
|
||||
ಸೂಚನೆ: ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ಕೇಲ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. ನೋಟ್ಬುಕ್ನಲ್ಲಿ ಕಾಮೆಂಟ್ ಮಾಡಲಾದ ಕೋಡ್ ಇದೆ, ಇದು ಡೇಟಾ ಕಾಲಮ್ಗಳನ್ನು ಪರಸ್ಪರ ಸಮೀಪವಾಗುವಂತೆ ಮಾಡಲು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ. ನೀವು ಕಂಡುಕೊಳ್ಳುತ್ತೀರಿ, ಸಿಲ್ಹೌಟ್ ಸ್ಕೋರ್ ಇಳಿಯುತ್ತದೆ, ಆದರೆ ಎಲ್ಬೋ ಗ್ರಾಫ್ನ 'ಕಿಂಕ್' ಸ್ಮೂತ್ ಆಗುತ್ತದೆ. ಇದಕ್ಕೆ ಕಾರಣ, ಡೇಟಾವನ್ನು ಅಸ್ಕೇಲ್ ಆಗದಂತೆ ಬಿಡುವುದರಿಂದ ಕಡಿಮೆ ವ್ಯತ್ಯಾಸವಿರುವ ಡೇಟಾ ಹೆಚ್ಚು ತೂಕವನ್ನು ಹೊಂದುತ್ತದೆ. ಈ ಸಮಸ್ಯೆಯ ಬಗ್ಗೆ ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಓದಿ [ಇಲ್ಲಿ](https://stats.stackexchange.com/questions/21222/are-mean-normalization-and-feature-scaling-needed-for-k-means-clustering/21226#21226).
|
||||
|
||||
## [ಪೋಸ್ಟ್-ಪಾಠ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
## ವಿಮರ್ಶೆ & ಸ್ವಯಂ ಅಧ್ಯಯನ
|
||||
|
||||
K-Means ಸಿಮ್ಯುಲೇಟರ್ ಅನ್ನು ನೋಡಿ [ಇಂತಹ ಒಂದು](https://user.ceng.metu.edu.tr/~akifakkus/courses/ceng574/k-means/). ನೀವು ಈ ಸಾಧನವನ್ನು ಮಾದರಿ ಡೇಟಾ ಬಿಂದುಗಳನ್ನು ದೃಶ್ಯೀಕರಿಸಲು ಮತ್ತು ಅದರ ಸೆಂಟ್ರಾಯ್ಡ್ಗಳನ್ನು ನಿರ್ಧರಿಸಲು ಬಳಸಬಹುದು. ನೀವು ಡೇಟಾದ ಯಾದೃಚ್ಛಿಕತೆ, ಕ್ಲಸ್ಟರ್ಗಳ ಸಂಖ್ಯೆ ಮತ್ತು ಸೆಂಟ್ರಾಯ್ಡ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಸಂಪಾದಿಸಬಹುದು. ಇದು ಡೇಟಾವನ್ನು ಹೇಗೆ ಗುಂಪು ಮಾಡಬಹುದು ಎಂಬುದರ ಬಗ್ಗೆ ನಿಮಗೆ ಕಲ್ಪನೆ ನೀಡುತ್ತದೆಯೇ?
|
||||
|
||||
ಮತ್ತಷ್ಟು, ಸ್ಟ್ಯಾನ್ಫೋರ್ಡ್ನಿಂದ [ಈ K-Means ಹ್ಯಾಂಡ್ಔಟ್](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) ಅನ್ನು ನೋಡಿ.
|
||||
|
||||
## ನಿಯೋಜನೆ
|
||||
|
||||
[ವಿಭಿನ್ನ ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಧಾನಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ](assignment.md)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,26 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "b8e17eff34ad1680eba2a5d3cf9ffc41",
|
||||
"translation_date": "2025-12-19T14:54:47+00:00",
|
||||
"source_file": "5-Clustering/2-K-Means/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ವಿಭಿನ್ನ ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಧಾನಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಈ ಪಾಠದಲ್ಲಿ ನೀವು K-Means ಕ್ಲಸ್ಟರಿಂಗ್ ಬಗ್ಗೆ ಕಲಿತಿದ್ದೀರಿ. ಕೆಲವೊಮ್ಮೆ K-Means ನಿಮ್ಮ ಡೇಟಾಗೆ ಸೂಕ್ತವಾಗಿರದು. ಈ ಪಾಠಗಳಿಂದ ಅಥವಾ ಬೇರೆ ಎಲ್ಲಿಂದಾದರೂ (ನಿಮ್ಮ ಮೂಲವನ್ನು ಉಲ್ಲೇಖಿಸಿ) ಡೇಟಾ ಬಳಸಿ ಒಂದು ನೋಟ್ಬುಕ್ ರಚಿಸಿ ಮತ್ತು K-Means ಬಳಸದೆ ಬೇರೆ ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಧಾನವನ್ನು ತೋರಿಸಿ. ನೀವು ಏನು ಕಲಿತಿರಿ?
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯ |
|
||||
| -------- | --------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------- |
|
||||
| | ಚೆನ್ನಾಗಿ ದಾಖಲೆ ಮಾಡಲಾದ ಕ್ಲಸ್ಟರಿಂಗ್ ಮಾದರಿಯೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ಉತ್ತಮ ದಾಖಲೆ ಇಲ್ಲದೆ ಮತ್ತು/ಅಥವಾ ಅಪೂರ್ಣ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ಅಪೂರ್ಣ ಕೆಲಸ ಸಲ್ಲಿಸಲಾಗಿದೆ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T15:05:48+00:00",
|
||||
"source_file": "5-Clustering/2-K-Means/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,642 @@
|
||||
{
|
||||
"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
|
||||
},
|
||||
"coopTranslator": {
|
||||
"original_hash": "ad65fb4aad0a156b42216e4929f490fc",
|
||||
"translation_date": "2025-12-19T16:56:57+00:00",
|
||||
"source_file": "5-Clustering/2-K-Means/solution/R/lesson_15-R.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"id": "GULATlQXLXyR"
|
||||
},
|
||||
"source": [
|
||||
"## R ಮತ್ತು ಟೈಡಿ ಡೇಟಾ ತತ್ವಗಳನ್ನು ಬಳಸಿಕೊಂಡು K-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್ ಅನ್ನು ಅನ್ವೇಷಿಸಿ.\n",
|
||||
"\n",
|
||||
"### [**ಪೂರ್ವ-ಪಾಠ ಕ್ವಿಜ್**](https://gray-sand-07a10f403.1.azurestaticapps.net/quiz/29/)\n",
|
||||
"\n",
|
||||
"ಈ ಪಾಠದಲ್ಲಿ, ನೀವು Tidymodels ಪ್ಯಾಕೇಜ್ ಮತ್ತು R ಪರಿಸರದಲ್ಲಿನ ಇತರ ಪ್ಯಾಕೇಜ್ಗಳನ್ನು (ನಾವು ಅವುಗಳನ್ನು ಸ್ನೇಹಿತರು 🧑🤝🧑 ಎಂದು ಕರೆಯುತ್ತೇವೆ) ಮತ್ತು ನೀವು ಮೊದಲು ಆಮದು ಮಾಡಿದ ನೈಜೀರಿಯನ್ ಸಂಗೀತ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂದು ಕಲಿಯುತ್ತೀರಿ. ನಾವು K-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್ನ ಮೂಲಭೂತಗಳನ್ನು ಆವರಿಸುವೆವು. ನೀವು ಮೊದಲು ಪಾಠದಲ್ಲಿ ಕಲಿತಂತೆ, ಕ್ಲಸ್ಟರ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಅನೇಕ ವಿಧಾನಗಳಿವೆ ಮತ್ತು ನೀವು ಬಳಸುವ ವಿಧಾನ ನಿಮ್ಮ ಡೇಟಾದ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ ಎಂದು ಗಮನದಲ್ಲಿರಿಸಿ. K-ಮೀನ್ಸ್ ಅನ್ನು ಪ್ರಯತ್ನಿಸೋಣ ಏಕೆಂದರೆ ಇದು ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ಕ್ಲಸ್ಟರಿಂಗ್ ತಂತ್ರವಾಗಿದೆ. ಆರಂಭಿಸೋಣ!\n",
|
||||
"\n",
|
||||
"ನೀವು ಕಲಿಯಲಿರುವ ಪದಗಳು:\n",
|
||||
"\n",
|
||||
"- ಸಿಲ್ಹೌಟ್ ಸ್ಕೋರಿಂಗ್\n",
|
||||
"\n",
|
||||
"- ಎಲ್ಬೋ ವಿಧಾನ\n",
|
||||
"\n",
|
||||
"- ಇನರ್ಷಿಯಾ\n",
|
||||
"\n",
|
||||
"- ವ್ಯತ್ಯಾಸ\n",
|
||||
"\n",
|
||||
"### **ಪರಿಚಯ**\n",
|
||||
"\n",
|
||||
"[K-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್](https://wikipedia.org/wiki/K-means_clustering) ಸಿಗ್ನಲ್ ಪ್ರೊಸೆಸಿಂಗ್ ಕ್ಷೇತ್ರದಿಂದ ಪಡೆದ ವಿಧಾನವಾಗಿದೆ. ಇದು ಡೇಟಾದ ಗುಂಪುಗಳನ್ನು ಅವುಗಳ ಲಕ್ಷಣಗಳಲ್ಲಿ ಹೊಂದಾಣಿಕೆಯ ಆಧಾರದ ಮೇಲೆ `k ಕ್ಲಸ್ಟರ್ಗಳು` ಎಂದು ವಿಭಜಿಸಲು ಮತ್ತು ವಿಭಾಗಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"ಕ್ಲಸ್ಟರ್ಗಳನ್ನು [ವೊರೋನಾಯ್ ಡಯಾಗ್ರಾಮ್ಗಳು](https://wikipedia.org/wiki/Voronoi_diagram) ಎಂದು ದೃಶ್ಯೀಕರಿಸಬಹುದು, ಇದರಲ್ಲಿ ಒಂದು ಬಿಂದು (ಅಥವಾ 'ಬೀಜ') ಮತ್ತು ಅದರ ಸಂಬಂಧಿತ ಪ್ರದೇಶವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/voronoi.1dc1613fb0439b9564615eca8df47a4bcd1ce06217e7e72325d2406ef2180795.kn.png\"\n",
|
||||
" width=\"500\"/>\n",
|
||||
" <figcaption>ಜೆನ್ ಲೂಪರ್ ಅವರ ಇನ್ಫೋಗ್ರಾಫಿಕ್</figcaption>\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"K-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್ಗೆ ಕೆಳಗಿನ ಹಂತಗಳಿವೆ:\n",
|
||||
"\n",
|
||||
"1. ಡೇಟಾ ವಿಜ್ಞಾನಿ ರಚಿಸಲು ಬಯಸುವ ಕ್ಲಸ್ಟರ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದರಿಂದ ಪ್ರಾರಂಭಿಸುತ್ತಾನೆ.\n",
|
||||
"\n",
|
||||
"2. ನಂತರ, ಆಲ್ಗಾರಿಥಮ್ ಡೇಟಾ ಸೆಟ್ನಿಂದ ಯಾದೃಚ್ಛಿಕವಾಗಿ K ವೀಕ್ಷಣೆಗಳನ್ನು ಆರಿಸಿಕೊಂಡು ಅವುಗಳನ್ನು ಕ್ಲಸ್ಟರ್ಗಳ ಪ್ರಾಥಮಿಕ ಕೇಂದ್ರಗಳಾಗಿ (ಅಥವಾ ಸೆಂಟ್ರಾಯ್ಡ್ಗಳು) ಬಳಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"3. ನಂತರ, ಉಳಿದ ಪ್ರತಿಯೊಂದು ವೀಕ್ಷಣೆಯನ್ನು ಅದರ ಅತಿ ಸಮೀಪದ ಸೆಂಟ್ರಾಯ್ಡ್ಗೆ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"4. ನಂತರ, ಪ್ರತಿ ಕ್ಲಸ್ಟರ್ನ ಹೊಸ ಸರಾಸರಿ ಲೆಕ್ಕಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸೆಂಟ್ರಾಯ್ಡ್ ಅನ್ನು ಆ ಸರಾಸರಿಗೇ ಸರಿಸಲಾಗುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"5. ಈಗ ಕೇಂದ್ರಗಳನ್ನು ಮರು ಲೆಕ್ಕಿಸಿದ ನಂತರ, ಪ್ರತಿಯೊಂದು ವೀಕ್ಷಣೆಯನ್ನು ಮತ್ತೆ ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ ಅದು ಬೇರೆ ಕ್ಲಸ್ಟರ್ಗೆ ಹೆಚ್ಚು ಸಮೀಪವಿದೆಯೇ ಎಂದು ನೋಡಲು. ಎಲ್ಲಾ ವಸ್ತುಗಳನ್ನು ನವೀಕೃತ ಕ್ಲಸ್ಟರ್ ಸರಾಸರಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಮತ್ತೆ ನಿಯೋಜಿಸಲಾಗುತ್ತದೆ. ಕ್ಲಸ್ಟರ್ ನಿಯೋಜನೆ ಮತ್ತು ಸೆಂಟ್ರಾಯ್ಡ್ ನವೀಕರಣ ಹಂತಗಳನ್ನು ಪುನರಾವರ್ತಿಸಲಾಗುತ್ತದೆ, ಕ್ಲಸ್ಟರ್ ನಿಯೋಜನೆಗಳು ಬದಲಾಗದವರೆಗೆ (ಅಥವಾ ಸಮೀಕರಣ ಸಾಧನೆಯಾಗುವವರೆಗೆ). ಸಾಮಾನ್ಯವಾಗಿ, ಆಲ್ಗಾರಿಥಮ್ ಪ್ರತಿ ಹೊಸ ಪುನರಾವೃತ್ತಿಯಲ್ಲಿ ಸೆಂಟ್ರಾಯ್ಡ್ಗಳ ಚಲನೆಯು ಅಲ್ಪವಾಗುವಾಗ ಮತ್ತು ಕ್ಲಸ್ಟರ್ಗಳು ಸ್ಥಿರವಾಗುವಾಗ ನಿಲ್ಲುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"<div>\n",
|
||||
"\n",
|
||||
"> ಪ್ರಾಥಮಿಕ k ವೀಕ್ಷಣೆಗಳನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ಆರಿಸುವುದರಿಂದ, ಪ್ರತಿ ಬಾರಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಅನ್ವಯಿಸುವಾಗ ಸ್ವಲ್ಪ ವಿಭಿನ್ನ ಫಲಿತಾಂಶಗಳನ್ನು ಪಡೆಯಬಹುದು. ಈ ಕಾರಣಕ್ಕಾಗಿ, ಹೆಚ್ಚಿನ ಆಲ್ಗಾರಿಥಮ್ಗಳು ಹಲವಾರು *ಯಾದೃಚ್ಛಿಕ ಪ್ರಾರಂಭಗಳನ್ನು* ಬಳಸುತ್ತವೆ ಮತ್ತು ಕಡಿಮೆ WCSS ಇರುವ ಪುನರಾವೃತ್ತಿಯನ್ನು ಆಯ್ಕೆಮಾಡುತ್ತವೆ. ಆದ್ದರಿಂದ, *ಅನಗತ್ಯ ಸ್ಥಳೀಯ ಗರಿಷ್ಠವನ್ನು* ತಪ್ಪಿಸಲು K-ಮೀನ್ಸ್ ಅನ್ನು ಹಲವಾರು *nstart* ಮೌಲ್ಯಗಳೊಂದಿಗೆ ನಿರಂತರವಾಗಿ ನಡೆಸುವಂತೆ ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ.\n",
|
||||
"\n",
|
||||
"</div>\n",
|
||||
"\n",
|
||||
"Allison Horst ಅವರ [ಕಲಾಕೃತಿ](https://github.com/allisonhorst/stats-illustrations) ಬಳಸಿ ಈ ಚಿಕ್ಕ ಅನಿಮೇಷನ್ ಕ್ಲಸ್ಟರಿಂಗ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ವಿವರಿಸುತ್ತದೆ:\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../images/kmeans.gif\"\n",
|
||||
" width=\"550\"/>\n",
|
||||
" <figcaption>@allison_horst ಅವರ ಕಲಾಕೃತಿ</figcaption>\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"ಕ್ಲಸ್ಟರಿಂಗ್ನಲ್ಲಿ ಉದ್ಭವಿಸುವ ಮೂಲಭೂತ ಪ್ರಶ್ನೆ ಏನೆಂದರೆ: ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಎಷ್ಟು ಕ್ಲಸ್ಟರ್ಗಳಾಗಿ ವಿಭಜಿಸಬೇಕು ಎಂದು ನೀವು ಹೇಗೆ ತಿಳಿಯುತ್ತೀರಿ? K-ಮೀನ್ಸ್ ಬಳಕೆಯ ಒಂದು ದುರ್ಬಲತೆ ಎಂದರೆ ನೀವು `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",
|
||||
"ಬದಲಾಗಿ, ಕೆಳಗಿನ ಸ್ಕ್ರಿಪ್ಟ್ ಈ ಘಟಕವನ್ನು ಪೂರ್ಣಗೊಳಿಸಲು ಅಗತ್ಯವಿರುವ ಪ್ಯಾಕೇಜ್ಗಳು ನಿಮ್ಮ ಬಳಿ ಇದ್ದಾರೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ ಮತ್ತು ಕೆಲವು ಇಲ್ಲದಿದ್ದರೆ ಅವುಗಳನ್ನು ನಿಮ್ಮಿಗಾಗಿ ಇನ್ಸ್ಟಾಲ್ ಮಾಡುತ್ತದೆ.\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",
|
||||
"ಈ ಡೇಟಾ ಎಷ್ಟು ಸ್ವಚ್ಛವಾಗಿದೆ? ಬಾಕ್ಸ್ ಪ್ಲಾಟ್ಗಳನ್ನು ಬಳಸಿ ಔಟ್ಲೈಯರ್ಗಳನ್ನು ಪರಿಶೀಲಿಸೋಣ. ನಾವು ಕಡಿಮೆ ಔಟ್ಲೈಯರ್ಗಳಿರುವ ಸಂಖ್ಯಾತ್ಮಕ ಕಾಲಮ್ಗಳ ಮೇಲೆ ಗಮನಹರಿಸುವೆವು (ನೀವು ಔಟ್ಲೈಯರ್ಗಳನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಬಹುದು). ಬಾಕ್ಸ್ ಪ್ಲಾಟ್ಗಳು ಡೇಟಾದ ವ್ಯಾಪ್ತಿಯನ್ನು ತೋರಿಸಬಹುದು ಮತ್ತು ಯಾವ ಕಾಲಮ್ಗಳನ್ನು ಬಳಸಬೇಕೆಂದು ಆಯ್ಕೆ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ. ಗಮನಿಸಿ, ಬಾಕ್ಸ್ ಪ್ಲಾಟ್ಗಳು ವ್ಯತ್ಯಾಸವನ್ನು ತೋರಿಸುವುದಿಲ್ಲ, ಇದು ಉತ್ತಮ ಕ್ಲಸ್ಟರ್ ಮಾಡಬಹುದಾದ ಡೇಟಾದ ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ಹೆಚ್ಚಿನ ಓದಿಗಾಗಿ ದಯವಿಟ್ಟು [ಈ ಚರ್ಚೆಯನ್ನು](https://stats.stackexchange.com/questions/91536/deduce-variance-from-boxplot) ನೋಡಿ.\n",
|
||||
"\n",
|
||||
"[ಬಾಕ್ಸ್ ಪ್ಲಾಟ್ಗಳು](https://en.wikipedia.org/wiki/Box_plot) ಸಂಖ್ಯಾತ್ಮಕ ಡೇಟಾದ ವಿತರಣೆಗಳನ್ನು ಗ್ರಾಫಿಕಲ್ ಆಗಿ ಚಿತ್ರಿಸಲು ಬಳಸಲಾಗುತ್ತವೆ, ಆದ್ದರಿಂದ ಜನಪ್ರಿಯ ಸಂಗೀತ ಶೈಲಿಗಳ ಜೊತೆಗೆ ಎಲ್ಲಾ ಸಂಖ್ಯಾತ್ಮಕ ಕಾಲಮ್ಗಳನ್ನು *ಆಯ್ಕೆ* ಮಾಡುವುದರಿಂದ ಪ್ರಾರಂಭಿಸೋಣ.\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` ಇದನ್ನು ಸುಲಭವಾಗಿಸುತ್ತದೆ 💁? ಇಂತಹ ಇತರ ಕಾರ್ಯಗಳನ್ನು [ಇಲ್ಲಿ](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",
|
||||
"ಈಗ, ನಾವು ನಮ್ಮ ಕ್ಲಸ್ಟರಿಂಗ್ ವ್ಯಾಯಾಮಕ್ಕಾಗಿ ಯಾವ ಕಾಲಮ್ಗಳನ್ನು ಬಳಸುವುದೆಂದು ಆಯ್ಕೆ ಮಾಡೋಣ. ಸಮಾನ ಶ್ರೇಣಿಗಳಿರುವ ಸಂಖ್ಯಾತ್ಮಕ ಕಾಲಮ್ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡೋಣ. ನಾವು `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. R ನಲ್ಲಿ k-means ಕ್ಲಸ್ಟರಿಂಗ್ ಲೆಕ್ಕಹಾಕುವುದು\n",
|
||||
"\n",
|
||||
"ನಾವು R ನಲ್ಲಿ ನಿರ್ಮಿತ `kmeans` ಫಂಕ್ಷನ್ ಬಳಸಿ k-means ಅನ್ನು ಲೆಕ್ಕಹಾಕಬಹುದು, `help(\"kmeans()\")` ನೋಡಿ. `kmeans()` ಫಂಕ್ಷನ್ ತನ್ನ ಪ್ರಾಥಮಿಕ ಆರ್ಗ್ಯುಮೆಂಟ್ ಆಗಿ ಎಲ್ಲಾ ಸಂಖ್ಯಾತ್ಮಕ ಕಾಲಮ್ಗಳಿರುವ ಡೇಟಾ ಫ್ರೇಮ್ ಅನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ.\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()\")` ನಲ್ಲಿ ಚೆನ್ನಾಗಿ ವಿವರಿಸಲಾಗಿದೆ. ಈಗ, ಕೆಲವು ವಿಷಯಗಳ ಮೇಲೆ ಗಮನಹರಿಸೋಣ. ಡೇಟಾ 65, 110, 111 ಗಾತ್ರದ 3 ಗುಂಪುಗಳಾಗಿ ಗುಂಪುಬದ್ಧಗೊಂಡಿದೆ ಎಂದು ನಾವು ನೋಡುತ್ತೇವೆ. ಔಟ್ಪುಟ್ನಲ್ಲಿ 5 ಚರಗಳಾದ 3 ಗುಂಪುಗಳ ಕ್ಲಸ್ಟರ್ ಕೇಂದ್ರಗಳು (ಸರಾಸರಿ) ಕೂಡ ಸೇರಿವೆ.\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 score` ಅನ್ನು ನೋಡೋಣ\n",
|
||||
"\n",
|
||||
"### **Silhouette score**\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 ವಿಧಾನವು ವಿಭಿನ್ನ *k* ಮೌಲ್ಯಗಳಿಗಾಗಿ ವೀಕ್ಷಣೆಗಳ ಸರಾಸರಿ silhouette ಅನ್ನು ಲೆಕ್ಕಹಾಕುತ್ತದೆ. ಉನ್ನತ ಸರಾಸರಿ silhouette ಸ್ಕೋರ್ ಉತ್ತಮ ಕ್ಲಸ್ಟರಿಂಗ್ ಅನ್ನು ಸೂಚಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"ಸರಾಸರಿ silhouette ಅಗಲವನ್ನು ಲೆಕ್ಕಹಾಕಲು ಕ್ಲಸ್ಟರ್ ಪ್ಯಾಕೇಜಿನ `silhouette` ಫಂಕ್ಷನ್ ಅನ್ನು ಬಳಸಬಹುದು.\n",
|
||||
"\n",
|
||||
"> silhouette ಅನ್ನು ಯಾವುದೇ [ದೂರ](https://en.wikipedia.org/wiki/Distance \"Distance\") ಮಾಪಕದಿಂದ ಲೆಕ್ಕಹಾಕಬಹುದು, ಉದಾಹರಣೆಗೆ ನಾವು [ಹಿಂದಿನ ಪಾಠದಲ್ಲಿ](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/solution/R/lesson_14-R.ipynb) ಚರ್ಚಿಸಿದಂತೆ [ಯೂಕ್ಲಿಡಿಯನ್ ದೂರ](https://en.wikipedia.org/wiki/Euclidean_distance \"Euclidean distance\") ಅಥವಾ [ಮ್ಯಾನ್ಹ್ಯಾಟನ್ ದೂರ](https://en.wikipedia.org/wiki/Manhattan_distance \"Manhattan distance\").\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** ಆಗಿದ್ದು, ಮಧ್ಯದಲ್ಲಿ ಇದೆ. ಇದು ನಮ್ಮ ಡೇಟಾ ಈ ರೀತಿಯ ಕ್ಲಸ್ಟರಿಂಗ್ಗೆ ವಿಶೇಷವಾಗಿ ಸೂಕ್ತವಲ್ಲದಿರುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ. ನಾವು ಈ ಊಹೆಯನ್ನು ದೃಶ್ಯವಾಗಿ ದೃಢೀಕರಿಸಬಹುದೇ ಎಂದು ನೋಡೋಣ. [factoextra ಪ್ಯಾಕೇಜ್](https://rpkgs.datanovia.com/factoextra/index.html) ಕ್ಲಸ್ಟರಿಂಗ್ ಅನ್ನು ದೃಶ್ಯೀಕರಿಸಲು (`fviz_cluster()`) ಕಾರ್ಯಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.\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",
|
||||
"ಕೆ-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್ನಲ್ಲಿ ಸಾಮಾನ್ಯವಾಗಿ ಉದ್ಭವಿಸುವ ಮೂಲಭೂತ ಪ್ರಶ್ನೆ ಇದು - ತಿಳಿದಿರುವ ವರ್ಗ ಲೇಬಲ್ಗಳಿಲ್ಲದೆ, ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಎಷ್ಟು ಕ್ಲಸ್ಟರ್ಗಳಾಗಿ ವಿಭಜಿಸಬೇಕು ಎಂದು ನೀವು ಹೇಗೆ ತಿಳಿಯಬಹುದು?\n",
|
||||
"\n",
|
||||
"ನಾವು ಪ್ರಯತ್ನಿಸಬಹುದಾದ ಒಂದು ವಿಧಾನವೆಂದರೆ ಡೇಟಾ ಮಾದರಿಯನ್ನು ಬಳಸಿಕೊಂಡು ಕ್ಲಸ್ಟರ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಕ್ರಮೇಣ ಹೆಚ್ಚಿಸುವ ಮೂಲಕ (ಉದಾ: 1-10 ರವರೆಗೆ) `ಕ್ಲಸ್ಟರಿಂಗ್ ಮಾದರಿಗಳ ಸರಣಿಯನ್ನು ರಚಿಸುವುದು` ಮತ್ತು **ಸಿಲ್ಹೌಟ್ ಸ್ಕೋರ್** ಮುಂತಾದ ಕ್ಲಸ್ಟರಿಂಗ್ ಮೆಟ್ರಿಕ್ಸ್ಗಳನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವುದು.\n",
|
||||
"\n",
|
||||
"ವಿಭಿನ್ನ *k* ಮೌಲ್ಯಗಳಿಗಾಗಿ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗೋರಿದಮ್ ಅನ್ನು ಗಣನೆ ಮಾಡಿ ಮತ್ತು **ವಿಥಿನ್ ಕ್ಲಸ್ಟರ್ ಸಮ್ ಆಫ್ ಸ್ಕ್ವೇರ್ಸ್** (WCSS) ಅನ್ನು ಮೌಲ್ಯಮಾಪನ ಮಾಡುವ ಮೂಲಕ ಅತ್ಯುತ್ತಮ ಕ್ಲಸ್ಟರ್ ಸಂಖ್ಯೆಯನ್ನು ನಿರ್ಧರಿಸೋಣ. ಒಟ್ಟು ವಿಥಿನ್-ಕ್ಲಸ್ಟರ್ ಸಮ್ ಆಫ್ ಸ್ಕ್ವೇರ್ಸ್ (WCSS) ಕ್ಲಸ್ಟರಿಂಗ್ನ ಸಂಕುಚಿತತೆಯನ್ನು ಅಳೆಯುತ್ತದೆ ಮತ್ತು ನಾವು ಅದನ್ನು ಸಾಧ್ಯವಾದಷ್ಟು ಕಡಿಮೆ ಇರಿಸಲು ಬಯಸುತ್ತೇವೆ, ಕಡಿಮೆ ಮೌಲ್ಯಗಳು ಅಂದರೆ ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳು ಹತ್ತಿರವಿರುವುದನ್ನು ಸೂಚಿಸುತ್ತದೆ.\n",
|
||||
"\n",
|
||||
"1 ರಿಂದ 10 ರವರೆಗೆ `k` ನ ವಿಭಿನ್ನ ಆಯ್ಕೆಗಳ ಪರಿಣಾಮವನ್ನು ಈ ಕ್ಲಸ್ಟರಿಂಗ್ ಮೇಲೆ ಅನ್ವೇಷಿಸೋಣ.\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": [
|
||||
"ಈಗ ನಾವು ಪ್ರತಿ ಕ್ಲಸ್ಟರಿಂಗ್ ಆಲ್ಗೋರಿದಮ್ಗೆ ಕೇಂದ್ರ *k* ಇರುವ ಒಟ್ಟು ಒಳಗಿನ-ಕ್ಲಸ್ಟರ್ ಸಮ್ಮಿಶ್ರಣಗಳ ಮೊತ್ತ (tot.withinss) ಹೊಂದಿದ್ದೇವೆ, ನಾವು [ಎಲ್ಬೋ ವಿಧಾನ](https://en.wikipedia.org/wiki/Elbow_method_(clustering)) ಅನ್ನು ಬಳಸಿಕೊಂಡು ಅತ್ಯುತ್ತಮ ಕ್ಲಸ್ಟರ್ ಸಂಖ್ಯೆಯನ್ನು ಕಂಡುಹಿಡಿಯುತ್ತೇವೆ. ಈ ವಿಧಾನವು ಕ್ಲಸ್ಟರ್ ಸಂಖ್ಯೆಯ ಕಾರ್ಯವಾಗಿ WCSS ಅನ್ನು ಚಿತ್ರಿಸುವುದನ್ನು ಒಳಗೊಂಡಿದ್ದು, ಬಳಕೆ ಮಾಡಲು ಕ್ಲಸ್ಟರ್ ಸಂಖ್ಯೆಯಾಗಿ [ವಕ್ರದ ಎಲ್ಬೋ](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 ನಲ್ಲಿ ದೊಡ್ಡ ಕಡಿತವನ್ನು ತೋರಿಸುತ್ತದೆ (ಹೀಗಾಗಿ ಹೆಚ್ಚು *ದೃಢತೆ*), ಮತ್ತು ಎರಡುರಿಂದ ಮೂರು ಕ್ಲಸ್ಟರ್ಗಳಿಗೆ ಮತ್ತಷ್ಟು ಗಮನಾರ್ಹ ಕಡಿತವನ್ನು ತೋರಿಸುತ್ತದೆ. ಅದಾದ ಮೇಲೆ, ಕಡಿತವು ಕಡಿಮೆ ಸ್ಪಷ್ಟವಾಗುತ್ತದೆ, ಫಲವಾಗಿ ಚಾರ್ಟ್ನಲ್ಲಿ ಸುಮಾರು ಮೂರು ಕ್ಲಸ್ಟರ್ಗಳ ಬಳಿ `ಎಲ್ಬೋ` 💪 ಕಾಣಿಸುತ್ತದೆ. ಇದು ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳ ಎರಡು ರಿಂದ ಮೂರು ಸಮರ್ಪಕವಾಗಿ ವಿಭಜಿತ ಕ್ಲಸ್ಟರ್ಗಳಿರುವ ಉತ್ತಮ ಸೂಚನೆ.\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": [
|
||||
"ಶ್ರೇಷ್ಠ! ನಾವು ಪಡೆದ ಕ್ಲಸ್ಟರ್ಗಳನ್ನು ದೃಶ್ಯೀಕರಿಸೋಣ. `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": [
|
||||
"ಬಹುಶಃ ನಾವು ನಿರೀಕ್ಷಿಸಿದ್ದೇವೆ ಪ್ರತಿ ಕ್ಲಸ್ಟರ್ (ವಿಭಿನ್ನ ಬಣ್ಣಗಳಿಂದ ಪ್ರತಿನಿಧಿಸಲಾಗಿದೆ) ವಿಭಿನ್ನ ಶೈಲಿಗಳನ್ನು (ವಿಭಿನ್ನ ಆಕಾರಗಳಿಂದ ಪ್ರತಿನಿಧಿಸಲಾಗಿದೆ) ಹೊಂದಿರುತ್ತದೆ.\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",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/problems.f7fb539ccd80608e1f35c319cf5e3ad1809faa3c08537aead8018c6b5ba2e33a.kn.png\"\n",
|
||||
" width=\"500\"/>\n",
|
||||
" <figcaption>Scikit-learn ನಿಂದ ಇನ್ಫೋಗ್ರಾಫಿಕ್</figcaption>\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",
|
||||
"ಸೂಚನೆ: ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸ್ಕೇಲ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ. ನೋಟ್ಬುಕ್ನಲ್ಲಿ ಕಾಮೆಂಟ್ ಮಾಡಲಾದ ಕೋಡ್ ಇದೆ, ಅದು ಡೇಟಾ ಕಾಲಮ್ಗಳನ್ನು ಪರಸ್ಪರ ಹೋಲುವಂತೆ ಮಾಡಲು ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಸ್ಕೇಲಿಂಗ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ. ಸಿಲ್ಹೌಟ್ ಸ್ಕೋರ್ ಕಡಿಮೆಯಾಗುತ್ತದೆ, ಆದರೆ ಎಲ್ಬೋ ಗ್ರಾಫ್ನ 'ಕಿಂಕ್' ಸ್ಮೂತ್ ಆಗುತ್ತದೆ. ಇದಕ್ಕೆ ಕಾರಣ, ಡೇಟಾವನ್ನು ಸ್ಕೇಲ್ ಮಾಡದಿದ್ದರೆ ಕಡಿಮೆ ವ್ಯತ್ಯಾಸವಿರುವ ಡೇಟಾ ಹೆಚ್ಚು ತೂಕವನ್ನು ಹೊಂದುತ್ತದೆ. ಈ ಸಮಸ್ಯೆಯ ಬಗ್ಗೆ ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಓದಿ [ಇಲ್ಲಿ](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/). ನೀವು ಈ ಉಪಕರಣವನ್ನು ಬಳಸಿ ಮಾದರಿ ಡೇಟಾ ಪಾಯಿಂಟ್ಗಳನ್ನು ದೃಶ್ಯೀಕರಿಸಿ ಅದರ ಸೆಂಟ್ರಾಯ್ಡ್ಗಳನ್ನು ನಿರ್ಧರಿಸಬಹುದು. ನೀವು ಡೇಟಾದ ಯಾದೃಚ್ಛಿಕತೆ, ಕ್ಲಸ್ಟರ್ಗಳ ಸಂಖ್ಯೆ ಮತ್ತು ಸೆಂಟ್ರಾಯ್ಡ್ಗಳ ಸಂಖ್ಯೆಯನ್ನು ಸಂಪಾದಿಸಬಹುದು. ಇದರಿಂದ ಡೇಟಾವನ್ನು ಹೇಗೆ ಗುಂಪುಮಾಡಬಹುದು ಎಂಬುದರ ಬಗ್ಗೆ ನಿಮಗೆ ಕಲ್ಪನೆ ಸಿಗುತ್ತದೆಯೇ?\n",
|
||||
"\n",
|
||||
"- ಜೊತೆಗೆ, ಸ್ಟ್ಯಾನ್ಫರ್ಡ್ನಿಂದ [K-Means ಕುರಿತು ಈ ಹ್ಯಾಂಡ್ಔಟ್](https://stanford.edu/~cpiech/cs221/handouts/kmeans.html) ಅನ್ನು ನೋಡಿ.\n",
|
||||
"\n",
|
||||
"ನೀವು ಹೊಸದಾಗಿ ಪಡೆದ ಕ್ಲಸ್ಟರಿಂಗ್ ಕೌಶಲ್ಯಗಳನ್ನು K-Means ಕ್ಲಸ್ಟರಿಂಗ್ಗೆ ಸೂಕ್ತವಾಗಿರುವ ಡೇಟಾ ಸೆಟ್ಗಳ ಮೇಲೆ ಪ್ರಯತ್ನಿಸಲು ಬಯಸುತ್ತೀರಾ? ದಯವಿಟ್ಟು ನೋಡಿ:\n",
|
||||
"\n",
|
||||
"- [ಟ್ರೇನ್ ಮತ್ತು ಮೌಲ್ಯಮಾಪನ ಕ್ಲಸ್ಟರಿಂಗ್ ಮಾದರಿಗಳು](https://rpubs.com/eR_ic/clustering) ಟಿಡಿಮೋಡಲ್ಸ್ ಮತ್ತು ಸ್ನೇಹಿತರು ಬಳಸಿ\n",
|
||||
"\n",
|
||||
"- [K-means ಕ್ಲಸ್ಟರ್ ವಿಶ್ಲೇಷಣೆ](https://uc-r.github.io/kmeans_clustering), ಯುಸಿ ಬಿಸಿನೆಸ್ ಅನಾಲಿಟಿಕ್ಸ್ R ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಗೈಡ್\n",
|
||||
"\n",
|
||||
"- [ಟಿಡಿ ಡೇಟಾ ತತ್ವಗಳೊಂದಿಗೆ K-means ಕ್ಲಸ್ಟರಿಂಗ್](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",
|
||||
"[ಜೆನ್ ಲೂಪರ್](https://www.twitter.com/jenlooper) ಈ ಮಾದರಿಯ ಮೂಲ ಪೈಥಾನ್ ಆವೃತ್ತಿಯನ್ನು ರಚಿಸಿದವರಿಗೆ ♥️\n",
|
||||
"\n",
|
||||
"[`ಅಲಿಸನ್ ಹೋರ್ಸ್ಟ್`](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",
|
||||
"[ಎರಿಕ್](https://twitter.com/ericntay), ಗೋಲ್ಡ್ ಮೈಕ್ರೋಸಾಫ್ಟ್ ಲರ್ನ್ ವಿದ್ಯಾರ್ಥಿ ರಾಯಭಾರಿ.\n",
|
||||
"\n",
|
||||
"<p >\n",
|
||||
" <img src=\"../../../../../../translated_images/r_learners_sm.e4a71b113ffbedfe727048ec69741a9295954195d8761c35c46f20277de5f684.kn.jpeg\"\n",
|
||||
" width=\"500\"/>\n",
|
||||
" <figcaption>@allison_horst ಅವರ ಕಲಾಕೃತಿ</figcaption>\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"---\n\n<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,44 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "b28a3a4911584062772c537b653ebbc7",
|
||||
"translation_date": "2025-12-19T13:05:03+00:00",
|
||||
"source_file": "5-Clustering/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಯಂತ್ರ ಅಧ್ಯಯನಕ್ಕಾಗಿ ಕ್ಲಸ್ಟರಿಂಗ್ ಮಾದರಿಗಳು
|
||||
|
||||
ಕ್ಲಸ್ಟರಿಂಗ್ ಎಂದರೆ ಒಂದು ಯಂತ್ರ ಅಧ್ಯಯನ ಕಾರ್ಯವಾಗಿದ್ದು, ಅದು ಪರಸ್ಪರ ಹೋಲುವ ವಸ್ತುಗಳನ್ನು ಕಂಡುಹಿಡಿದು ಅವುಗಳನ್ನು ಕ್ಲಸ್ಟರ್ಗಳು ಎಂದು ಕರೆಯುವ ಗುಂಪುಗಳಲ್ಲಿ ಸೇರಿಸುವುದು. ಯಂತ್ರ ಅಧ್ಯಯನದ ಇತರ ವಿಧಾನಗಳಿಂದ ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಭಿನ್ನವಾಗಿರುವುದು ಎಂದರೆ, ಇದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಡೆಯುತ್ತದೆ, ವಾಸ್ತವದಲ್ಲಿ, ಇದು ಮೇಲ್ವಿಚಾರಿತ ಅಧ್ಯಯನದ ವಿರುದ್ಧವಾಗಿದೆ ಎಂದು ಹೇಳಬಹುದು.
|
||||
|
||||
## ಪ್ರಾದೇಶಿಕ ವಿಷಯ: ನೈಜೀರಿಯನ್ ಪ್ರೇಕ್ಷಕರ ಸಂಗೀತ ರುಚಿಗೆ ಕ್ಲಸ್ಟರಿಂಗ್ ಮಾದರಿಗಳು 🎧
|
||||
|
||||
ನೈಜೀರಿಯಾದ ವೈವಿಧ್ಯಮಯ ಪ್ರೇಕ್ಷಕರಿಗೆ ವೈವಿಧ್ಯಮಯ ಸಂಗೀತ ರುಚಿಗಳು ಇವೆ. Spotify ನಿಂದ ಸ್ಕ್ರೇಪ್ ಮಾಡಲಾದ ಡೇಟಾವನ್ನು ಬಳಸಿಕೊಂಡು ([ಈ ಲೇಖನದಿಂದ ಪ್ರೇರಿತ](https://towardsdatascience.com/country-wise-visual-analysis-of-music-taste-using-spotify-api-seaborn-in-python-77f5b749b421)), ನೈಜೀರಿಯಾದಲ್ಲಿ ಜನಪ್ರಿಯವಾಗಿರುವ ಕೆಲವು ಸಂಗೀತಗಳನ್ನು ನೋಡೋಣ. ಈ ಡೇಟಾಸೆಟ್ ವಿವಿಧ ಹಾಡುಗಳ 'ನೃತ್ಯ ಸಾಮರ್ಥ್ಯ' ಅಂಕ, 'ಅಕೌಸ್ಟಿಕ್ನೆಸ್', ಶಬ್ದದ ತೀವ್ರತೆ, 'ಸ್ಪೀಚಿನೆಸ್', ಜನಪ್ರಿಯತೆ ಮತ್ತು ಶಕ್ತಿ ಬಗ್ಗೆ ಡೇಟಾವನ್ನು ಒಳಗೊಂಡಿದೆ. ಈ ಡೇಟಾದಲ್ಲಿ ಮಾದರಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯುವುದು ಆಸಕ್ತಿದಾಯಕವಾಗಿರುತ್ತದೆ!
|
||||
|
||||

|
||||
|
||||
> ಫೋಟೋ <a href="https://unsplash.com/@marcelalaskoski?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">ಮಾರ್ಸೆಲಾ ಲಾಸ್ಕೋಸ್ಕಿ</a> ಅವರಿಂದ <a href="https://unsplash.com/s/photos/nigerian-music?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">ಅನ್ಸ್ಪ್ಲ್ಯಾಶ್</a> ನಲ್ಲಿ
|
||||
|
||||
ಈ ಪಾಠ ಸರಣಿಯಲ್ಲಿ, ನೀವು ಕ್ಲಸ್ಟರಿಂಗ್ ತಂತ್ರಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಡೇಟಾವನ್ನು ವಿಶ್ಲೇಷಿಸುವ ಹೊಸ ಮಾರ್ಗಗಳನ್ನು ಕಂಡುಹಿಡಿಯುತ್ತೀರಿ. ನಿಮ್ಮ ಡೇಟಾಸೆಟ್ಗೆ ಲೇಬಲ್ಗಳು ಇಲ್ಲದಿದ್ದಾಗ ಕ್ಲಸ್ಟರಿಂಗ್ ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿದೆ. ಲೇಬಲ್ಗಳು ಇದ್ದರೆ, ನೀವು ಹಿಂದಿನ ಪಾಠಗಳಲ್ಲಿ ಕಲಿತ ವರ್ಗೀಕರಣ ತಂತ್ರಗಳು ಹೆಚ್ಚು ಉಪಯುಕ್ತವಾಗಬಹುದು. ಆದರೆ ಲೇಬಲ್ಗಳಿಲ್ಲದ ಡೇಟಾವನ್ನು ಗುಂಪುಮಾಡಲು ನೀವು ನೋಡುತ್ತಿರುವಾಗ, ಕ್ಲಸ್ಟರಿಂಗ್ ಮಾದರಿಗಳು ಮಾದರಿಗಳನ್ನು ಕಂಡುಹಿಡಿಯಲು ಉತ್ತಮ ಮಾರ್ಗವಾಗಿದೆ.
|
||||
|
||||
> ಕ್ಲಸ್ಟರಿಂಗ್ ಮಾದರಿಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದನ್ನು ಕಲಿಯಲು ಸಹಾಯ ಮಾಡುವ ಕಡಿಮೆ-ಕೋಡ್ ಉಪಕರಣಗಳು ಲಭ್ಯವಿವೆ. ಈ ಕಾರ್ಯಕ್ಕಾಗಿ [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. [ಕೆ-ಮೀನ್ಸ್ ಕ್ಲಸ್ಟರಿಂಗ್](2-K-Means/README.md)
|
||||
|
||||
## ಕ್ರೆಡಿಟ್ಸ್
|
||||
|
||||
ಈ ಪಾಠಗಳನ್ನು 🎶 [ಜೆನ್ ಲೂಪರ್](https://www.twitter.com/jenlooper) ರವರು ಬರೆದಿದ್ದು, [ರಿಶಿತ್ ದಾಗ್ಲಿ](https://rishit_dagli) ಮತ್ತು [ಮುಹಮ್ಮದ್ ಸಕಿಬ್ ಖಾನ್ ಇನಾನ್](https://twitter.com/Sakibinan) ರವರ ಸಹಾಯಕ ವಿಮರ್ಶೆಗಳೊಂದಿಗೆ.
|
||||
|
||||
[ನೈಜೀರಿಯನ್ ಹಾಡುಗಳು](https://www.kaggle.com/sootersaalu/nigerian-songs-spotify) ಡೇಟಾಸೆಟ್ Spotify ನಿಂದ ಸ್ಕ್ರೇಪ್ ಮಾಡಲಾಗಿ Kaggle ನಿಂದ ಪಡೆದಿದೆ.
|
||||
|
||||
ಈ ಪಾಠವನ್ನು ರಚಿಸಲು ಸಹಾಯ ಮಾಡಿದ ಉಪಯುಕ್ತ ಕೆ-ಮೀನ್ಸ್ ಉದಾಹರಣೆಗಳಲ್ಲಿ ಈ [ಐರಿಸ್ ಅನ್ವೇಷಣೆ](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) ಸೇರಿವೆ.
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,181 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "1c2ec40cf55c98a028a359c27ef7e45a",
|
||||
"translation_date": "2025-12-19T14:29:37+00:00",
|
||||
"source_file": "6-NLP/1-Introduction-to-NLP/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ ಪರಿಚಯ
|
||||
|
||||
ಈ ಪಾಠವು *ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ* ಎಂಬ ಉಪಕ್ಷೇತ್ರವಾದ *ಗಣನಾತ್ಮಕ ಭಾಷಾಶಾಸ್ತ್ರ* ನ ಸಂಕ್ಷಿಪ್ತ ಇತಿಹಾಸ ಮತ್ತು ಪ್ರಮುಖ ತತ್ವಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
|
||||
|
||||
## [ಪೂರ್ವ-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
## ಪರಿಚಯ
|
||||
|
||||
NLP, ಸಾಮಾನ್ಯವಾಗಿ ತಿಳಿದಿರುವಂತೆ, ಯಂತ್ರ ಅಧ್ಯಯನವನ್ನು ಅನ್ವಯಿಸಿ ಉತ್ಪಾದನಾ ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ ಬಳಸಲಾಗಿರುವ ಅತ್ಯಂತ ಪ್ರಸಿದ್ಧ ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ.
|
||||
|
||||
✅ ನೀವು ಪ್ರತಿದಿನವೂ ಬಳಸುವ ಯಾವುದೇ ಸಾಫ್ಟ್ವೇರ್ನಲ್ಲಿ ಕೆಲವು NLP ಅಳವಡಿಸಲಾಗಿದೆ ಎಂದು ನೀವು ಭಾವಿಸುತ್ತೀರಾ? ನಿಮ್ಮ ಪದ ಸಂಸ್ಕರಣಾ ಕಾರ್ಯಕ್ರಮಗಳು ಅಥವಾ ನೀವು ನಿಯಮಿತವಾಗಿ ಬಳಸುವ ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಬಗ್ಗೆ ಏನು?
|
||||
|
||||
ನೀವು ತಿಳಿಯಲಿರುವುದು:
|
||||
|
||||
- **ಭಾಷೆಗಳ ಕಲ್ಪನೆ**. ಭಾಷೆಗಳು ಹೇಗೆ ಅಭಿವೃದ್ಧಿ ಹೊಂದಿದವು ಮತ್ತು ಅಧ್ಯಯನದ ಪ್ರಮುಖ ಕ್ಷೇತ್ರಗಳು ಯಾವುವು.
|
||||
- **ವ್ಯಾಖ್ಯಾನ ಮತ್ತು ತತ್ವಗಳು**. ಕಂಪ್ಯೂಟರ್ಗಳು ಪಠ್ಯವನ್ನು ಹೇಗೆ ಪ್ರಕ್ರಿಯೆ ಮಾಡುತ್ತವೆ ಎಂಬುದರ ಬಗ್ಗೆ ವ್ಯಾಖ್ಯಾನಗಳು ಮತ್ತು ತತ್ವಗಳನ್ನು ನೀವು ಕಲಿಯುತ್ತೀರಿ, ಇದರಲ್ಲಿ ಪಾರ್ಸಿಂಗ್, ವ್ಯಾಕರಣ ಮತ್ತು ನಾಮಪದ ಮತ್ತು ಕ್ರಿಯಾಪದಗಳನ್ನು ಗುರುತಿಸುವುದು ಸೇರಿದೆ. ಈ ಪಾಠದಲ್ಲಿ ಕೆಲವು ಕೋಡಿಂಗ್ ಕಾರ್ಯಗಳಿವೆ ಮತ್ತು ಕೆಲವು ಪ್ರಮುಖ ತತ್ವಗಳನ್ನು ಪರಿಚಯಿಸಲಾಗುತ್ತದೆ, ಅವುಗಳನ್ನು ನೀವು ಮುಂದಿನ ಪಾಠಗಳಲ್ಲಿ ಕೋಡ್ ಮಾಡಲು ಕಲಿಯುತ್ತೀರಿ.
|
||||
|
||||
## ಗಣನಾತ್ಮಕ ಭಾಷಾಶಾಸ್ತ್ರ
|
||||
|
||||
ಗಣನಾತ್ಮಕ ಭಾಷಾಶಾಸ್ತ್ರವು ಹಲವು ದಶಕಗಳ ಸಂಶೋಧನೆ ಮತ್ತು ಅಭಿವೃದ್ಧಿಯ ಕ್ಷೇತ್ರವಾಗಿದ್ದು, ಕಂಪ್ಯೂಟರ್ಗಳು ಭಾಷೆಗಳೊಂದಿಗೆ ಹೇಗೆ ಕೆಲಸ ಮಾಡಬಹುದು, ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಹುದು, ಅನುವಾದ ಮಾಡಬಹುದು ಮತ್ತು ಸಂವಹನ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ಅಧ್ಯಯನ ಮಾಡುತ್ತದೆ. ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ (NLP) ಎಂಬುದು ಸಂಬಂಧಿತ ಕ್ಷೇತ್ರವಾಗಿದ್ದು, ಕಂಪ್ಯೂಟರ್ಗಳು 'ನೈಸರ್ಗಿಕ' ಅಥವಾ ಮಾನವ ಭಾಷೆಗಳನ್ನು ಹೇಗೆ ಪ್ರಕ್ರಿಯೆ ಮಾಡಬಹುದು ಎಂಬುದರ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸಿದೆ.
|
||||
|
||||
### ಉದಾಹರಣೆ - ಫೋನ್ ಡಿಕ್ಟೇಶನ್
|
||||
|
||||
ನೀವು ಟೈಪ್ ಮಾಡುವ ಬದಲು ನಿಮ್ಮ ಫೋನ್ಗೆ ಮಾತಾಡಿದ್ದರೆ ಅಥವಾ ವರ್ಚುವಲ್ ಸಹಾಯಕನಿಗೆ ಪ್ರಶ್ನೆ ಕೇಳಿದ್ದರೆ, ನಿಮ್ಮ ಮಾತು ಪಠ್ಯ ರೂಪಕ್ಕೆ ಪರಿವರ್ತಿತಗೊಂಡು ನಂತರ ನೀವು ಮಾತನಾಡಿದ ಭಾಷೆಯಿಂದ *ಪಾರ್ಸ್* ಮಾಡಲಾಯಿತು. ಪತ್ತೆಯಾದ ಪ್ರಮುಖ ಪದಗಳನ್ನು ನಂತರ ಫೋನ್ ಅಥವಾ ಸಹಾಯಕನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ಕ್ರಮ ಕೈಗೊಳ್ಳಲು ಸಾಧ್ಯವಾದ ಸ್ವರೂಪಕ್ಕೆ ಪ್ರಕ್ರಿಯೆ ಮಾಡಲಾಯಿತು.
|
||||
|
||||

|
||||
> ನಿಜವಾದ ಭಾಷಾಶಾಸ್ತ್ರದ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಕಷ್ಟ! ಚಿತ್ರವನ್ನು [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಒದಗಿಸಿದ್ದಾರೆ
|
||||
|
||||
### ಈ ತಂತ್ರಜ್ಞಾನ ಹೇಗೆ ಸಾಧ್ಯವಾಯಿತು?
|
||||
|
||||
ಇದು ಸಾಧ್ಯವಾಯಿತು ಏಕೆಂದರೆ ಯಾರೋ ಕಂಪ್ಯೂಟರ್ ಪ್ರೋಗ್ರಾಂ ಬರೆಯುವ ಮೂಲಕ ಇದನ್ನು ಮಾಡಿದರು. ಕೆಲವು ದಶಕಗಳ ಹಿಂದೆ, ಕೆಲವು ವಿಜ್ಞಾನ ಕಲ್ಪನೆ ಲೇಖಕರು ಜನರು ತಮ್ಮ ಕಂಪ್ಯೂಟರ್ಗಳಿಗೆ ಮುಖ್ಯವಾಗಿ ಮಾತಾಡುತ್ತಾರೆ ಮತ್ತು ಕಂಪ್ಯೂಟರ್ಗಳು ಯಾವಾಗಲೂ ಅವರ ಅರ್ಥವನ್ನು ನಿಖರವಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತವೆ ಎಂದು ಭವಿಷ್ಯವಾಣಿ ಮಾಡಿದ್ದರು. ದುಃಖಕರವಾಗಿ, ಇದು ಅನೇಕರು ಊಹಿಸಿದಕ್ಕಿಂತ ಕಠಿಣ ಸಮಸ್ಯೆಯಾಗಿದ್ದು, ಇಂದು ಇದು ಬಹಳ ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲ್ಪಟ್ಟ ಸಮಸ್ಯೆಯಾಗಿದ್ದರೂ, ವಾಕ್ಯದ ಅರ್ಥವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಾಗ 'ಪೂರ್ಣ' ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸಾಧಿಸುವಲ್ಲಿ ಪ್ರಮುಖ ಸವಾಲುಗಳಿವೆ. ವಿಶೇಷವಾಗಿ ಹಾಸ್ಯವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಾಗ ಅಥವಾ ವಾಕ್ಯದಲ್ಲಿ ವ್ಯಂಗ್ಯವನ್ನು ಪತ್ತೆಹಚ್ಚುವಾಗ ಇದು ಕಠಿಣ ಸಮಸ್ಯೆಯಾಗುತ್ತದೆ.
|
||||
|
||||
ಈ ಸಮಯದಲ್ಲಿ, ನೀವು ಶಾಲಾ ತರಗತಿಗಳನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳಬಹುದು, ಅಲ್ಲಿ ಶಿಕ್ಷಕರು ವಾಕ್ಯದ ವ್ಯಾಕರಣ ಭಾಗಗಳನ್ನು ಕಲಿಸುತ್ತಿದ್ದರು. ಕೆಲವು ದೇಶಗಳಲ್ಲಿ ವಿದ್ಯಾರ್ಥಿಗಳಿಗೆ ವ್ಯಾಕರಣ ಮತ್ತು ಭಾಷಾಶಾಸ್ತ್ರವನ್ನು ವಿಶೇಷ ವಿಷಯವಾಗಿ ಕಲಿಸಲಾಗುತ್ತದೆ, ಆದರೆ ಬಹುತೇಕ ದೇಶಗಳಲ್ಲಿ ಈ ವಿಷಯಗಳು ಭಾಷೆ ಕಲಿಕೆಯ ಭಾಗವಾಗಿ ಸೇರಿವೆ: ಪ್ರಾಥಮಿಕ ಶಾಲೆಯಲ್ಲಿ ನಿಮ್ಮ ಮೊದಲ ಭಾಷೆಯನ್ನು (ಓದಲು ಮತ್ತು ಬರೆಯಲು ಕಲಿಯುವುದು) ಮತ್ತು ನಂತರದ ಶಾಲೆಯಲ್ಲಿ ಎರಡನೇ ಭಾಷೆಯನ್ನು ಕಲಿಯುವಾಗ. ನಾಮಪದಗಳನ್ನು ಕ್ರಿಯಾಪದಗಳಿಂದ ಅಥವಾ ಕ್ರಿಯಾವಿಶೇಷಣಗಳನ್ನು ವಿಶೇಷಣಗಳಿಂದ ವಿಭಜಿಸುವಲ್ಲಿ ನೀವು ಪರಿಣತಿ ಹೊಂದಿರದಿದ್ದರೂ ಚಿಂತೆ ಮಾಡಬೇಡಿ!
|
||||
|
||||
*ಸರಳ ವರ್ತಮಾನ* ಮತ್ತು *ವರ್ತಮಾನ ಪ್ರಗತಿಶೀಲ* ನಡುವಿನ ವ್ಯತ್ಯಾಸವನ್ನು ನೀವು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಹಿಂಜರಿದರೆ, ನೀವು ಏಕಾಂತವಲ್ಲ. ಇದು ಅನೇಕ ಜನರಿಗೆ, ಭಾಷೆಯ ಸ್ಥಳೀಯ ಭಾಷಣಕಾರರಿಗೂ ಸವಾಲಾಗಿರುವ ವಿಷಯ. ಒಳ್ಳೆಯ ಸುದ್ದಿ ಎಂದರೆ ಕಂಪ್ಯೂಟರ್ಗಳು ಅಧಿಕೃತ ನಿಯಮಗಳನ್ನು ಅನ್ವಯಿಸುವಲ್ಲಿ ಬಹಳ ಚೆನ್ನಾಗಿವೆ, ಮತ್ತು ನೀವು ಮಾನವನಂತೆ ವಾಕ್ಯವನ್ನು *ಪಾರ್ಸ್* ಮಾಡಬಲ್ಲ ಕೋಡ್ ಬರೆಯಲು ಕಲಿಯುತ್ತೀರಿ. ನಂತರ ನೀವು ಪರಿಶೀಲಿಸುವ ದೊಡ್ಡ ಸವಾಲು ಎಂದರೆ ವಾಕ್ಯದ *ಅರ್ಥ* ಮತ್ತು *ಭಾವನೆ* ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು.
|
||||
|
||||
## ಪೂರ್ವಾಪೇಕ್ಷಿತಗಳು
|
||||
|
||||
ಈ ಪಾಠಕ್ಕಾಗಿ ಮುಖ್ಯ ಪೂರ್ವಾಪೇಕ್ಷಿತವು ಈ ಪಾಠದ ಭಾಷೆಯನ್ನು ಓದಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಸಾಮರ್ಥ್ಯ. ಯಾವುದೇ ಗಣಿತ ಸಮಸ್ಯೆಗಳು ಅಥವಾ ಸಮೀಕರಣಗಳನ್ನು ಪರಿಹರಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಮೂಲ ಲೇಖಕ ಈ ಪಾಠವನ್ನು ಇಂಗ್ಲಿಷ್ನಲ್ಲಿ ಬರೆದಿದ್ದರೂ, ಇದು ಇತರ ಭಾಷೆಗಳಿಗೆ ಅನುವಾದಿಸಲಾಗಿದೆ, ಆದ್ದರಿಂದ ನೀವು ಅನುವಾದವನ್ನು ಓದುತ್ತಿರಬಹುದು. ವಿವಿಧ ಭಾಷೆಗಳ ವ್ಯಾಕರಣ ನಿಯಮಗಳನ್ನು ಹೋಲಿಸಲು ಕೆಲವು ಉದಾಹರಣೆಗಳಲ್ಲಿ ವಿವಿಧ ಭಾಷೆಗಳು ಬಳಸಲ್ಪಟ್ಟಿವೆ. ಅವುಗಳು *ಅನುವಾದಿಸಲ್ಪಟ್ಟಿಲ್ಲ*, ಆದರೆ ವಿವರಣಾತ್ಮಕ ಪಠ್ಯವನ್ನು ಅನುವಾದಿಸಲಾಗಿದೆ, ಆದ್ದರಿಂದ ಅರ್ಥ ಸ್ಪಷ್ಟವಾಗಿರಬೇಕು.
|
||||
|
||||
ಕೋಡಿಂಗ್ ಕಾರ್ಯಗಳಿಗಾಗಿ, ನೀವು Python ಬಳಸುತ್ತೀರಿ ಮತ್ತು ಉದಾಹರಣೆಗಳು Python 3.8 ಬಳಕೆ ಮಾಡುತ್ತಿವೆ.
|
||||
|
||||
ಈ ವಿಭಾಗದಲ್ಲಿ ನೀವು ಬೇಕಾಗಿರುವುದು ಮತ್ತು ಬಳಸುವದು:
|
||||
|
||||
- **Python 3 ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ**. Python 3 ನಲ್ಲಿ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ, ಈ ಪಾಠದಲ್ಲಿ ಇನ್ಪುಟ್, ಲೂಪ್ಗಳು, ಫೈಲ್ ಓದುವುದು, ಅರೆಗಳು ಬಳಸಲಾಗುತ್ತವೆ.
|
||||
- **Visual Studio Code + ವಿಸ್ತರಣೆ**. ನಾವು Visual Studio Code ಮತ್ತು ಅದರ Python ವಿಸ್ತರಣೆಯನ್ನು ಬಳಸುತ್ತೇವೆ. ನೀವು ನಿಮ್ಮ ಆಯ್ಕೆಯ Python IDE ಕೂಡ ಬಳಸಬಹುದು.
|
||||
- **TextBlob**. [TextBlob](https://github.com/sloria/TextBlob) Python ಗಾಗಿ ಸರಳೀಕೃತ ಪಠ್ಯ ಪ್ರಕ್ರಿಯೆ ಗ್ರಂಥಾಲಯವಾಗಿದೆ. ನಿಮ್ಮ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಇದನ್ನು ಸ್ಥಾಪಿಸಲು TextBlob ಸೈಟ್ನ ಸೂಚನೆಗಳನ್ನು ಅನುಸರಿಸಿ (ಕೆಳಗಿನಂತೆ ಕಾರ್ಪೋರಾ ಸಹ ಸ್ಥಾಪಿಸಿ):
|
||||
|
||||
```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) ಪರಿಶೀಲಿಸಿ.
|
||||
|
||||
## ಯಂತ್ರಗಳೊಂದಿಗೆ ಮಾತಾಡುವುದು
|
||||
|
||||
ಕಂಪ್ಯೂಟರ್ಗಳು ಮಾನವ ಭಾಷೆಯನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಪ್ರಯತ್ನಿಸುವ ಇತಿಹಾಸವು ದಶಕಗಳ ಹಿಂದೆ ಆರಂಭವಾಯಿತು, ಮತ್ತು ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಪರಿಗಣಿಸಿದ ಮೊದಲ ವಿಜ್ಞಾನಿಗಳಲ್ಲಿ ಒಬ್ಬರು *ಆಲನ್ ಟ್ಯೂರಿಂಗ್*.
|
||||
|
||||
### 'ಟ್ಯೂರಿಂಗ್ ಪರೀಕ್ಷೆ'
|
||||
|
||||
1950ರ ದಶಕದಲ್ಲಿ ಟ್ಯೂರಿಂಗ್ *ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ* ಕುರಿತು ಸಂಶೋಧನೆ ಮಾಡುತ್ತಿದ್ದಾಗ, ಮಾನವ ಮತ್ತು ಕಂಪ್ಯೂಟರ್ (ಟೈಪ್ ಮಾಡಿದ ಪತ್ರಚರ್ಯೆಯ ಮೂಲಕ) ನಡುವೆ ಸಂಭಾಷಣಾ ಪರೀಕ್ಷೆಯನ್ನು ನೀಡಬಹುದೇ ಎಂದು ಪರಿಗಣಿಸಿದರು, ಅಲ್ಲಿ ಸಂಭಾಷಣೆಯಲ್ಲಿರುವ ಮಾನವನು ಅವರು ಮತ್ತೊಬ್ಬ ಮಾನವನೊಂದಿಗೆ ಮಾತನಾಡುತ್ತಿದ್ದಾರೋ ಅಥವಾ ಕಂಪ್ಯೂಟರ್ನೊಂದಿಗೆ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲಾರರು.
|
||||
|
||||
ನಿರ್ದಿಷ್ಟ ಸಮಯದ ಸಂಭಾಷಣೆಯ ನಂತರ, ಮಾನವನು ಉತ್ತರಗಳು ಕಂಪ್ಯೂಟರ್ನಿಂದ ಬಂದವೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಆ ಕಂಪ್ಯೂಟರ್ ಅನ್ನು *ಚಿಂತಿಸುವುದಾಗಿ* ಹೇಳಬಹುದೇ?
|
||||
|
||||
### ಪ್ರೇರಣೆ - 'ನಕಲಿ ಆಟ'
|
||||
|
||||
ಈ ಕಲ್ಪನೆ ಒಂದು ಪಕ್ಷದ ಆಟದಿಂದ ಬಂದಿದೆ, ಅದನ್ನು *ನಕಲಿ ಆಟ* ಎಂದು ಕರೆಯುತ್ತಾರೆ, ಅಲ್ಲಿ ಒಂದು ಪ್ರಶ್ನೆಗಾರನು ಒಬ್ಬನಾಗಿ ಕೊಠಡಿಯಲ್ಲಿ ಇರುತ್ತಾನೆ ಮತ್ತು ಇನ್ನೊಂದು ಕೊಠಡಿಯಲ್ಲಿ ಇರುವ ಇಬ್ಬರಲ್ಲಿ ಯಾರು ಪುರುಷ ಮತ್ತು ಯಾರು ಮಹಿಳೆ ಎಂದು ನಿರ್ಧರಿಸುವ ಕಾರ್ಯವನ್ನು ಹೊಂದಿರುತ್ತಾನೆ. ಪ್ರಶ್ನೆಗಾರನು ಟಿಪ್ಪಣಿಗಳನ್ನು ಕಳುಹಿಸಬಹುದು ಮತ್ತು ಬರೆಯಲಾದ ಉತ್ತರಗಳು ರಹಸ್ಯ ವ್ಯಕ್ತಿಯ ಲಿಂಗವನ್ನು ಬಹಿರಂಗಪಡಿಸುವಂತಹ ಪ್ರಶ್ನೆಗಳನ್ನು ಯೋಚಿಸಬೇಕು. ಖಂಡಿತವಾಗಿ, ಇನ್ನೊಂದು ಕೊಠಡಿಯಲ್ಲಿ ಇರುವ ಆಟಗಾರರು ಪ್ರಶ್ನೆಗಾರನನ್ನು ತಪ್ಪುಮಾಡಲು ಅಥವಾ ಗೊಂದಲಕ್ಕೆ ಒಳಪಡಿಸಲು ಉತ್ತರಿಸುತ್ತಾರೆ, ಆದರೆ ಸತ್ಯವಂತಿಕೆಯಿಂದ ಉತ್ತರಿಸುತ್ತಿರುವಂತೆ ಕಾಣಿಸುವ ಪ್ರಯತ್ನ ಮಾಡುತ್ತಾರೆ.
|
||||
|
||||
### ಎಲಿಜಾ ಅಭಿವೃದ್ಧಿ
|
||||
|
||||
1960ರ ದಶಕದಲ್ಲಿ MIT ವಿಜ್ಞಾನಿ *ಜೋಸೆಫ್ ವೈಜನ್ಬಾಮ್* [*ಎಲಿಜಾ*](https://wikipedia.org/wiki/ELIZA) ಎಂಬ ಕಂಪ್ಯೂಟರ್ 'ಥೆರಪಿಸ್ಟ್' ಅನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದರು, ಅದು ಮಾನವನಿಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೇಳಿ ಅವರ ಉತ್ತರಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಂಡಂತೆ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತಿತ್ತು. ಆದರೆ, ಎಲಿಜಾ ವಾಕ್ಯವನ್ನು ಪಾರ್ಸ್ ಮಾಡಿ ಕೆಲವು ವ್ಯಾಕರಣ ರಚನೆಗಳು ಮತ್ತು ಪ್ರಮುಖ ಪದಗಳನ್ನು ಗುರುತಿಸಬಹುದು, ಆದರೂ ವಾಕ್ಯವನ್ನು *ಅರ್ಥಮಾಡಿಕೊಂಡಿದೆ* ಎಂದು ಹೇಳಲಾಗುವುದಿಲ್ಲ. ಎಲಿಜಾ "**ನಾನು** <u>ದುಃಖಿತ</u>" ಎಂಬ ವಾಕ್ಯವನ್ನು ಪಡೆದರೆ, ಅದು ವಾಕ್ಯದಲ್ಲಿ ಪದಗಳನ್ನು ಮರುಕ್ರಮಿಸಿ "ನೀವು ಎಷ್ಟು ಕಾಲ <u>ದುಃಖಿತ</u> ಇದ್ದೀರಿ" ಎಂಬ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ರೂಪಿಸಬಹುದು.
|
||||
|
||||
ಇದು ಎಲಿಜಾ ವಾಕ್ಯವನ್ನು ಅರ್ಥಮಾಡಿಕೊಂಡು ಮುಂದಿನ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳುತ್ತಿರುವಂತೆ ಭಾಸ ನೀಡಿತು, ಆದರೆ ವಾಸ್ತವದಲ್ಲಿ ಅದು ಕಾಲವನ್ನು ಬದಲಾಯಿಸಿ ಕೆಲವು ಪದಗಳನ್ನು ಸೇರಿಸುತ್ತಿತ್ತು. ಎಲಿಜಾ ಪ್ರತಿಕ್ರಿಯೆ ಹೊಂದಿರುವ ಪ್ರಮುಖ ಪದವನ್ನು ಗುರುತಿಸಲು ಸಾಧ್ಯವಾಗದಿದ್ದರೆ, ಅದು ಬದಲಾಗಿ ಅನೇಕ ವಿಭಿನ್ನ ಹೇಳಿಕೆಗಳಿಗೆ ಅನ್ವಯಿಸುವ ಸಾಧ್ಯವಿರುವ ಯಾದೃಚ್ಛಿಕ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ನೀಡುತ್ತಿತ್ತು. ಉದಾಹರಣೆಗೆ, ಬಳಕೆದಾರನು "**ನೀವು** ಒಂದು <u>ಸೈಕಲ್</u>" ಎಂದು ಬರೆದರೆ, ಅದು "ನಾನು ಎಷ್ಟು ಕಾಲ <u>ಸೈಕಲ್</u> ಆಗಿದ್ದೇನೆ?" ಎಂದು ಪ್ರತಿಕ್ರಿಯಿಸಬಹುದು, ಬದಲಾಗಿ ಹೆಚ್ಚು ಯುಕ್ತಿಪೂರ್ಣ ಪ್ರತಿಕ್ರಿಯೆಯ ಬದಲು.
|
||||
|
||||
[](https://youtu.be/RMK9AphfLco "ಎಲಿಜಾ ಜೊತೆ ಚಾಟ್")
|
||||
|
||||
> 🎥 ಮೂಲ ELIZA ಪ್ರೋಗ್ರಾಂ ಕುರಿತು ವೀಡಿಯೋಗಾಗಿ ಮೇಲಿನ ಚಿತ್ರವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ
|
||||
|
||||
> ಗಮನಿಸಿ: ನೀವು 1966 ರಲ್ಲಿ ಪ್ರಕಟಿತ [ಎಲಿಜಾ](https://cacm.acm.org/magazines/1966/1/13317-elizaa-computer-program-for-the-study-of-natural-language-communication-between-man-and-machine/abstract) ಮೂಲ ವಿವರಣೆಯನ್ನು ಓದಲು ACM ಖಾತೆ ಹೊಂದಿದ್ದರೆ ಓದಬಹುದು. ಬದಲಾಗಿ, ಎಲಿಜಾ ಬಗ್ಗೆ [ವಿಕಿಪೀಡಿಯಾ](https://wikipedia.org/wiki/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. ಒಂದು ಬಾಟ್ ವಾಕ್ಯದ ಅರ್ಥವನ್ನು ನಿಜವಾಗಿಯೂ 'ಅರ್ಥಮಾಡಿಕೊಂಡಿದ್ದರೆ', ಅದು ಸಂಭಾಷಣೆಯ ಹಿಂದಿನ ವಾಕ್ಯಗಳ ಅರ್ಥವನ್ನು 'ಸ್ಮರಿಸಬೇಕಾಗುತ್ತದೆಯೇ'?
|
||||
|
||||
---
|
||||
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
ಮೇಲಿನ "ನಿಲ್ಲಿಸಿ ಮತ್ತು ಪರಿಗಣಿಸಿ" ಅಂಶಗಳಲ್ಲಿ ಒಂದನ್ನು ಆಯ್ಕೆಮಾಡಿ ಮತ್ತು ಅದನ್ನು ಕೋಡ್ನಲ್ಲಿ ಅನುಷ್ಠಾನಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಿ ಅಥವಾ ಪೇಪರ್ನಲ್ಲಿ ಪ್ಸ್ಯೂಡೋಕೋಡ್ ಬಳಸಿ ಪರಿಹಾರವನ್ನು ಬರೆಯಿರಿ.
|
||||
|
||||
ಮುಂದಿನ ಪಾಠದಲ್ಲಿ, ನೀವು ನೈಸರ್ಗಿಕ ಭಾಷೆಯನ್ನು ಪಾರ್ಸ್ ಮಾಡುವ ಮತ್ತು ಯಂತ್ರ ಅಧ್ಯಯನದ ಹಲವಾರು ಇತರ ವಿಧಾನಗಳನ್ನು ಕಲಿಯುತ್ತೀರಿ.
|
||||
|
||||
## [ಪೋಸ್ಟ್-ಪಾಠ ಪ್ರಶ್ನೋತ್ತರ](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
## ವಿಮರ್ಶೆ ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನ
|
||||
|
||||
ಕೆಳಗಿನ ಉಲ್ಲೇಖಗಳನ್ನು ಹೆಚ್ಚಿನ ಓದು ಅವಕಾಶಗಳಾಗಿ ನೋಡಿ.
|
||||
|
||||
### ಉಲ್ಲೇಖಗಳು
|
||||
|
||||
1. ಶೂಬರ್ಟ್, ಲೆನ್ಹಾರ್ಟ್, "ಗಣನಾತ್ಮಕ ಭಾಷಾಶಾಸ್ತ್ರ", *ಸ್ಟ್ಯಾನ್ಫರ್ಡ್ ತತ್ವಶಾಸ್ತ್ರ ನಿಘಂಟು* (ವಸಂತ 2020 ಆವೃತ್ತಿ), ಎಡ್ವರ್ಡ್ ಎನ್. ಜಾಲ್ಟಾ (ಸಂಪಾದಕ), URL = <https://plato.stanford.edu/archives/spr2020/entries/computational-linguistics/>.
|
||||
2. ಪ್ರಿನ್ಸ್ಟನ್ ವಿಶ್ವವಿದ್ಯಾಲಯ "ವರ್ಡ್ನೆಟ್ ಬಗ್ಗೆ." [WordNet](https://wordnet.princeton.edu/). ಪ್ರಿನ್ಸ್ಟನ್ ವಿಶ್ವವಿದ್ಯಾಲಯ. 2010.
|
||||
|
||||
## ಹೋಮ್ವರ್ಕ್
|
||||
|
||||
[ಬಾಟ್ ಹುಡುಕಿ](assignment.md)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂಬುದನ್ನು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "1d7583e8046dacbb0c056d5ba0a71b16",
|
||||
"translation_date": "2025-12-19T14:31:08+00:00",
|
||||
"source_file": "6-NLP/1-Introduction-to-NLP/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಬಾಟ್ ಹುಡುಕಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಬಾಟ್ಗಳು ಎಲ್ಲೆಡೆ ಇವೆ. ನಿಮ್ಮ ಕಾರ್ಯ: ಒಂದು ಹುಡುಕಿ ಅದನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳಿ! ನೀವು ಅವುಗಳನ್ನು ವೆಬ್ಸೈಟ್ಗಳಲ್ಲಿ, ಬ್ಯಾಂಕಿಂಗ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಮತ್ತು ಫೋನಿನಲ್ಲಿ ಕಂಡುಹಿಡಿಯಬಹುದು, ಉದಾಹರಣೆಗೆ ನೀವು ಹಣಕಾಸು ಸೇವಾ ಕಂಪನಿಗಳಿಗೆ ಸಲಹೆ ಅಥವಾ ಖಾತೆ ಮಾಹಿತಿಗಾಗಿ ಕರೆ ಮಾಡಿದಾಗ. ಬಾಟ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸಿ ಮತ್ತು ನೀವು ಅದನ್ನು ಗೊಂದಲಕ್ಕೆ ತರುವ ಸಾಧ್ಯತೆ ಇದೆಯೇ ಎಂದು ನೋಡಿ. ನೀವು ಬಾಟ್ ಅನ್ನು ಗೊಂದಲಕ್ಕೆ ತರುವುದಾದರೆ, ಅದು ಏಕೆ ಸಂಭವಿಸಿತು ಎಂದು ನೀವು ಯೋಚಿಸುತ್ತೀರಿ? ನಿಮ್ಮ ಅನುಭವದ ಬಗ್ಗೆ ಒಂದು ಚಿಕ್ಕ ಪ್ರಬಂಧವನ್ನು ಬರೆಯಿರಿ.
|
||||
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | --------------------- |
|
||||
| | ಪೂರ್ಣ ಪುಟದ ಪ್ರಬಂಧ ಬರೆಯಲಾಗಿದೆ, ಅಂದಾಜು ಬಾಟ್ ವಾಸ್ತುಶಿಲ್ಪವನ್ನು ವಿವರಿಸಿ ಮತ್ತು ಅದರೊಂದಿಗೆ ನಿಮ್ಮ ಅನುಭವವನ್ನು ವಿವರಿಸಲಾಗಿದೆ | ಪ್ರಬಂಧ ಅಪೂರ್ಣ ಅಥವಾ ಚೆನ್ನಾಗಿ ಸಂಶೋಧಿಸಲ್ಪಟ್ಟಿಲ್ಲ | ಯಾವುದೇ ಪ್ರಬಂಧ ಸಲ್ಲಿಸಲಾಗಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,230 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "5f3cb462e3122e1afe7ab0050ccf2bd3",
|
||||
"translation_date": "2025-12-19T14:35:17+00:00",
|
||||
"source_file": "6-NLP/2-Tasks/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಸಾಮಾನ್ಯ ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ ಕಾರ್ಯಗಳು ಮತ್ತು ತಂತ್ರಗಳು
|
||||
|
||||
ಬಹುತೇಕ *ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ* ಕಾರ್ಯಗಳಿಗೆ, ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಬೇಕಾದ ಪಠ್ಯವನ್ನು ವಿಭಜಿಸಿ, ಪರಿಶೀಲಿಸಿ, ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ನಿಯಮಗಳು ಮತ್ತು ಡೇಟಾ ಸೆಟ್ಗಳೊಂದಿಗೆ ಸಂಗ್ರಹಿಸಬೇಕು ಅಥವಾ ಕ್ರಾಸ್ ರೆಫರೆನ್ಸ್ ಮಾಡಬೇಕು. ಈ ಕಾರ್ಯಗಳು, ಪ್ರೋಗ್ರಾಮರ್ಗೆ ಪಠ್ಯದ _ಅರ್ಥ_ ಅಥವಾ _ಉದ್ದೇಶ_ ಅಥವಾ ಕೇವಲ ಪದಗಳ ಮತ್ತು ಪದಗಳ _ಆವರ್ತನ_ ಅನ್ನು ಪಡೆಯಲು ಅನುಮತಿಸುತ್ತವೆ.
|
||||
|
||||
## [ಪೂರ್ವ-ವ್ಯಾಖ್ಯಾನ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
ಪಠ್ಯವನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುವ ಸಾಮಾನ್ಯ ತಂತ್ರಗಳನ್ನು ಕಂಡುಹಿಡಿಯೋಣ. ಯಂತ್ರ ಅಧ್ಯಯನದೊಂದಿಗೆ ಸಂಯೋಜಿಸಿದಾಗ, ಈ ತಂತ್ರಗಳು ನಿಮಗೆ ದೊಡ್ಡ ಪ್ರಮಾಣದ ಪಠ್ಯವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ವಿಶ್ಲೇಷಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತವೆ. ಈ ಕಾರ್ಯಗಳಿಗೆ ML ಅನ್ವಯಿಸುವ ಮೊದಲು, NLP ತಜ್ಞನು ಎದುರಿಸುವ ಸಮಸ್ಯೆಗಳನ್ನು ತಿಳಿದುಕೊಳ್ಳೋಣ.
|
||||
|
||||
## NLP ಗೆ ಸಾಮಾನ್ಯವಾದ ಕಾರ್ಯಗಳು
|
||||
|
||||
ನೀವು ಕೆಲಸ ಮಾಡುತ್ತಿರುವ ಪಠ್ಯವನ್ನು ವಿಶ್ಲೇಷಿಸುವ ವಿವಿಧ ವಿಧಾನಗಳಿವೆ. ನೀವು ನಿರ್ವಹಿಸಬಹುದಾದ ಕಾರ್ಯಗಳಿವೆ ಮತ್ತು ಈ ಕಾರ್ಯಗಳ ಮೂಲಕ ನೀವು ಪಠ್ಯದ ಅರ್ಥವನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ನಿರ್ಣಯಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ. ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಈ ಕಾರ್ಯಗಳನ್ನು ಕ್ರಮವಾಗಿ ನಿರ್ವಹಿಸುತ್ತೀರಿ.
|
||||
|
||||
### ಟೋಕನೈಜೆಷನ್
|
||||
|
||||
ಬಹುಶಃ ಬಹುತೇಕ NLP ಅಲ್ಗಾರಿದಮ್ಗಳು ಮೊದಲಿಗೆ ಪಠ್ಯವನ್ನು ಟೋಕನ್ಗಳಾಗಿ ಅಥವಾ ಪದಗಳಾಗಿ ವಿಭಜಿಸಬೇಕಾಗುತ್ತದೆ. ಇದು ಸರಳವಾಗಿ ಕೇಳಿದರೂ, ವ್ಯಾಕರಣ ಚಿಹ್ನೆಗಳು ಮತ್ತು ವಿಭಿನ್ನ ಭಾಷೆಗಳ ಪದ ಮತ್ತು ವಾಕ್ಯ ವಿಭಾಜಕಗಳನ್ನು ಗಮನದಲ್ಲಿಟ್ಟುಕೊಳ್ಳಬೇಕಾಗುತ್ತದೆ, ಇದು ಸಂಕೀರ್ಣವಾಗಬಹುದು. ನೀವು ವಿಭಜನೆಗಳನ್ನು ನಿರ್ಧರಿಸಲು ವಿವಿಧ ವಿಧಾನಗಳನ್ನು ಬಳಸಬೇಕಾಗಬಹುದು.
|
||||
|
||||

|
||||
> **Pride and Prejudice** ನಿಂದ ವಾಕ್ಯವನ್ನು ಟೋಕನೈಸ್ ಮಾಡಲಾಗಿದೆ. ಇನ್ಫೋಗ್ರಾಫಿಕ್ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಅವರಿಂದ
|
||||
|
||||
### ಎम्बೆಡ್ಡಿಂಗ್ಸ್
|
||||
|
||||
[ಪದ ಎम्बೆಡ್ಡಿಂಗ್ಸ್](https://wikipedia.org/wiki/Word_embedding) ನಿಮ್ಮ ಪಠ್ಯ ಡೇಟಾವನ್ನು ಸಂಖ್ಯಾತ್ಮಕವಾಗಿ ಪರಿವರ್ತಿಸುವ ವಿಧಾನವಾಗಿದೆ. ಎम्बೆಡ್ಡಿಂಗ್ಸ್ ಅನ್ನು ಈ ರೀತಿಯಲ್ಲಿ ಮಾಡಲಾಗುತ್ತದೆ, ಅಂದರೆ ಸಮಾನ ಅರ್ಥವಿರುವ ಪದಗಳು ಅಥವಾ ಜೊತೆಯಾಗಿ ಬಳಸಲಾಗುವ ಪದಗಳು ಗುಂಪು formed ಮಾಡುತ್ತವೆ.
|
||||
|
||||

|
||||
> "ನಿಮ್ಮ ನರಗಳಿಗೆ ನನಗೆ ಅತ್ಯಂತ ಗೌರವವಿದೆ, ಅವು ನನ್ನ ಹಳೆಯ ಸ್ನೇಹಿತರು." - **Pride and Prejudice** ನ ವಾಕ್ಯಕ್ಕೆ ಪದ ಎम्बೆಡ್ಡಿಂಗ್ಸ್. ಇನ್ಫೋಗ್ರಾಫಿಕ್ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಅವರಿಂದ
|
||||
|
||||
✅ ಪದ ಎम्बೆಡ್ಡಿಂಗ್ಸ್ ಅನ್ನು ಪ್ರಯೋಗಿಸಲು [ಈ ರೋಚಕ ಸಾಧನವನ್ನು](https://projector.tensorflow.org/) ಪ್ರಯತ್ನಿಸಿ. ಒಂದು ಪದವನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಸಮಾನ ಪದಗಳ ಗುಂಪುಗಳು ತೋರಿಸಲಾಗುತ್ತದೆ: 'toy' 'disney', 'lego', 'playstation', ಮತ್ತು 'console' ಜೊತೆಗೆ ಗುಂಪು formed ಮಾಡುತ್ತದೆ.
|
||||
|
||||
### ಪಾರ್ಸಿಂಗ್ ಮತ್ತು ಭಾಗ-ಭಾಷಾ ಟ್ಯಾಗಿಂಗ್
|
||||
|
||||
ಪ್ರತಿ ಟೋಕನೈಸ್ ಮಾಡಿದ ಪದವನ್ನು ಭಾಷೆಯ ಭಾಗವಾಗಿ ಟ್ಯಾಗ್ ಮಾಡಬಹುದು - ನಾಮಪದ, ಕ್ರಿಯಾಪದ, ಅಥವಾ ವಿಶೇಷಣ. ವಾಕ್ಯ `the quick red fox jumped over the lazy brown dog` ಅನ್ನು POS ಟ್ಯಾಗ್ ಮಾಡಿದರೆ fox = ನಾಮಪದ, jumped = ಕ್ರಿಯಾಪದ ಎಂದು ಇರಬಹುದು.
|
||||
|
||||

|
||||
|
||||
> **Pride and Prejudice** ನಿಂದ ವಾಕ್ಯವನ್ನು ಪಾರ್ಸ್ ಮಾಡಲಾಗಿದೆ. ಇನ್ಫೋಗ್ರಾಫಿಕ್ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಅವರಿಂದ
|
||||
|
||||
ಪಾರ್ಸಿಂಗ್ ಎಂದರೆ ವಾಕ್ಯದಲ್ಲಿ ಯಾವ ಪದಗಳು ಪರಸ್ಪರ ಸಂಬಂಧ ಹೊಂದಿವೆ ಎಂದು ಗುರುತಿಸುವುದು - ಉದಾಹರಣೆಗೆ `the quick red fox jumped` ಒಂದು ವಿಶೇಷಣ-ನಾಮಪದ-ಕ್ರಿಯಾಪದ ಕ್ರಮವಾಗಿದ್ದು, ಇದು `lazy brown dog` ಕ್ರಮದಿಂದ ವಿಭಿನ್ನವಾಗಿದೆ.
|
||||
|
||||
### ಪದ ಮತ್ತು ವಾಕ್ಯांश ಆವರ್ತನೆಗಳು
|
||||
|
||||
ದೊಡ್ಡ ಪಠ್ಯವನ್ನು ವಿಶ್ಲೇಷಿಸುವಾಗ ಉಪಯುಕ್ತ ವಿಧಾನವೆಂದರೆ ಪ್ರತಿಯೊಂದು ಪದ ಅಥವಾ ಆಸಕ್ತಿಯ ವಾಕ್ಯಾಂಶದ ಡಿಕ್ಷನರಿ ನಿರ್ಮಿಸಿ, ಅದು ಎಷ್ಟು ಬಾರಿ ಕಾಣಿಸುತ್ತದೆ ಎಂದು ಎಣಿಸುವುದು. ವಾಕ್ಯ `the quick red fox jumped over the lazy brown dog` ನಲ್ಲಿ 'the' ಪದದ ಆವರ್ತನೆ 2 ಆಗಿದೆ.
|
||||
|
||||
ನಾವು ಪದಗಳ ಆವರ್ತನೆಯನ್ನು ಎಣಿಸುವ ಉದಾಹರಣೆಯ ಪಠ್ಯವನ್ನು ನೋಡೋಣ. ರುದ್ಯಾರ್ಡ್ ಕಿಪ್ಲಿಂಗ್ ಅವರ ಕವಿತೆ 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.
|
||||
```
|
||||
|
||||
ವಾಕ್ಯಾಂಶ ಆವರ್ತನೆಗಳು ಕೇಸ್-ಅಸಂವೇದನಶೀಲ ಅಥವಾ ಕೇಸ್-ಸಂವೇದನಶೀಲವಾಗಿರಬಹುದು, ಉದಾಹರಣೆಗೆ `a friend` ವಾಕ್ಯಾಂಶದ ಆವರ್ತನೆ 2 ಆಗಿದ್ದು, `the` ಆವರ್ತನೆ 6 ಆಗಿದೆ, ಮತ್ತು `travels` 2 ಆಗಿದೆ.
|
||||
|
||||
### ಎನ್-ಗ್ರಾಮ್ಸ್
|
||||
|
||||
ಪಠ್ಯವನ್ನು ನಿಗದಿತ ಉದ್ದದ ಪದಗಳ ಸರಣಿಗಳಾಗಿ ವಿಭಜಿಸಬಹುದು, ಒಂದು ಪದ (ಯುನಿಗ್ರಾಮ್), ಎರಡು ಪದಗಳು (ಬಿಗ್ರಾಮ್), ಮೂರು ಪದಗಳು (ಟ್ರಿಗ್ರಾಮ್) ಅಥವಾ ಯಾವುದೇ ಸಂಖ್ಯೆಯ ಪದಗಳು (ಎನ್-ಗ್ರಾಮ್).
|
||||
|
||||
ಉದಾಹರಣೆಗೆ `the quick red fox jumped over the lazy brown dog` ನ 2-ಗ್ರಾಮ್ ಅಂಕೆ ಈ ಕೆಳಗಿನ ಎನ್-ಗ್ರಾಮ್ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ:
|
||||
|
||||
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
|
||||
|
||||
ಇದನ್ನು ವಾಕ್ಯದ ಮೇಲೆ ಸ್ಲೈಡಿಂಗ್ ಬಾಕ್ಸ್ ಆಗಿ ದೃಶ್ಯೀಕರಿಸುವುದು ಸುಲಭವಾಗಬಹುದು. ಇಲ್ಲಿ 3 ಪದಗಳ ಎನ್-ಗ್ರಾಮ್ಗಳಿಗಾಗಿ, ಪ್ರತಿ ವಾಕ್ಯದಲ್ಲಿ ಎನ್-ಗ್ರಾಮ್ ಬೋಲ್ಡ್ ಆಗಿದೆ:
|
||||
|
||||
1. <u>**the quick red**</u> fox jumped over the lazy brown dog
|
||||
2. the **<u>quick red fox</u>** jumped over the lazy brown dog
|
||||
3. the quick **<u>red fox jumped</u>** over the lazy brown dog
|
||||
4. the quick red **<u>fox jumped over</u>** the lazy brown dog
|
||||
5. the quick red fox **<u>jumped over the</u>** lazy brown dog
|
||||
6. the quick red fox jumped **<u>over the lazy</u>** brown dog
|
||||
7. the quick red fox jumped over <u>**the lazy brown**</u> dog
|
||||
8. the quick red fox jumped over the **<u>lazy brown dog</u>**
|
||||
|
||||

|
||||
|
||||
> ಎನ್-ಗ್ರಾಮ್ ಮೌಲ್ಯ 3: ಇನ್ಫೋಗ್ರಾಫಿಕ್ [ಜೆನ್ ಲೂಪರ್](https://twitter.com/jenlooper) ಅವರಿಂದ
|
||||
|
||||
### ನಾಮಪದ ವಾಕ್ಯಾಂಶ ಹೊರತೆಗೆಯುವುದು
|
||||
|
||||
ಬಹುತೇಕ ವಾಕ್ಯಗಳಲ್ಲಿ, ನಾಮಪದವು ವಿಷಯ ಅಥವಾ ವಸ್ತುವಾಗಿರುತ್ತದೆ. ಇಂಗ್ಲಿಷ್ನಲ್ಲಿ, ಇದು ಸಾಮಾನ್ಯವಾಗಿ '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**.
|
||||
|
||||
### ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆ
|
||||
|
||||
ವಾಕ್ಯ ಅಥವಾ ಪಠ್ಯವನ್ನು ಭಾವನೆಗಾಗಿ ವಿಶ್ಲೇಷಿಸಬಹುದು, ಅದು *ಧನಾತ್ಮಕ* ಅಥವಾ *ನಕಾರಾತ್ಮಕ* ಆಗಿದೆಯೇ ಎಂದು. ಭಾವನೆ *ಧ್ರುವೀಯತೆ* ಮತ್ತು *ವಸ್ತುನಿಷ್ಠತೆ/ವಿಷಯನಿಷ್ಠತೆ* ನಲ್ಲಿ ಅಳೆಯಲಾಗುತ್ತದೆ. ಧ್ರುವೀಯತೆ -1.0 ರಿಂದ 1.0 (ನಕಾರಾತ್ಮಕದಿಂದ ಧನಾತ್ಮಕ) ಮತ್ತು 0.0 ರಿಂದ 1.0 (ಅತ್ಯಂತ ವಸ್ತುನಿಷ್ಠದಿಂದ ಅತ್ಯಂತ ವಿಷಯನಿಷ್ಠ) ಅಳೆಯಲಾಗುತ್ತದೆ.
|
||||
|
||||
✅ ನಂತರ ನೀವು ಯಂತ್ರ ಅಧ್ಯಯನ ಬಳಸಿ ಭಾವನೆಯನ್ನು ನಿರ್ಧರಿಸುವ ವಿವಿಧ ವಿಧಾನಗಳನ್ನು ಕಲಿಯುತ್ತೀರಿ, ಆದರೆ ಒಂದು ವಿಧಾನವೆಂದರೆ ಮಾನವ ತಜ್ಞರಿಂದ ಧನಾತ್ಮಕ ಅಥವಾ ನಕಾರಾತ್ಮಕ ಎಂದು ವರ್ಗೀಕರಿಸಲಾದ ಪದಗಳು ಮತ್ತು ವಾಕ್ಯಾಂಶಗಳ ಪಟ್ಟಿ ಹೊಂದಿ, ಆ ಮಾದರಿಯನ್ನು ಪಠ್ಯಕ್ಕೆ ಅನ್ವಯಿಸಿ ಧ್ರುವೀಯತೆ ಅಂಕೆಯನ್ನು ಲೆಕ್ಕಿಸಬಹುದು. ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡಬಹುದು ಮತ್ತು ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಕಡಿಮೆ ಪರಿಣಾಮಕಾರಿಯಾಗಬಹುದು ಎಂದು ನೀವು ನೋಡಬಹುದೇ?
|
||||
|
||||
### ರೂಪಾಂತರ
|
||||
|
||||
ರೂಪಾಂತರವು ನಿಮಗೆ ಒಂದು ಪದವನ್ನು singular ಅಥವಾ plural ರೂಪದಲ್ಲಿ ಪಡೆಯಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
|
||||
|
||||
### ಲೆಮಟೈಜೆಷನ್
|
||||
|
||||
*ಲೆಮ್ಮಾ* ಎಂದರೆ ಪದಗಳ ಗುಂಪಿಗೆ ಮೂಲ ಅಥವಾ ಮುಖ್ಯ ಪದ, ಉದಾಹರಣೆಗೆ *flew*, *flies*, *flying* ಗಳ ಲೆಮ್ಮಾ ಕ್ರಿಯಾಪದ *fly* ಆಗಿದೆ.
|
||||
|
||||
NLP ಸಂಶೋಧಕರಿಗೆ ಉಪಯುಕ್ತವಾದ ಡೇಟಾಬೇಸ್ಗಳು ಕೂಡ ಲಭ್ಯವಿವೆ, ವಿಶೇಷವಾಗಿ:
|
||||
|
||||
### ವರ್ಡ್ನೆಟ್
|
||||
|
||||
[WordNet](https://wordnet.princeton.edu/) ಪದಗಳು, ಸಮಾನಾರ್ಥಕಗಳು, ವಿರುದ್ಧಾರ್ಥಕಗಳು ಮತ್ತು ವಿವಿಧ ಭಾಷೆಗಳ ಪ್ರತಿಯೊಂದು ಪದಕ್ಕೆ ಅನೇಕ ವಿವರಗಳ ಡೇಟಾಬೇಸ್ ಆಗಿದೆ. ಅನುವಾದಗಳು, ಸ್ಪೆಲ್ ಚೆಕ್ಗಳು ಅಥವಾ ಯಾವುದೇ ರೀತಿಯ ಭಾಷಾ ಸಾಧನಗಳನ್ನು ನಿರ್ಮಿಸುವಾಗ ಇದು ಅತ್ಯಂತ ಉಪಯುಕ್ತವಾಗಿದೆ.
|
||||
|
||||
## NLP ಗ್ರಂಥಾಲಯಗಳು
|
||||
|
||||
ಸೌಭಾಗ್ಯವಶಾತ್, ನೀವು ಈ ಎಲ್ಲಾ ತಂತ್ರಗಳನ್ನು ಸ್ವತಃ ನಿರ್ಮಿಸಬೇಕಾಗಿಲ್ಲ, ಏಕೆಂದರೆ ನೈಸರ್ಗಿಕ ಭಾಷಾ ಪ್ರಕ್ರಿಯೆ ಅಥವಾ ಯಂತ್ರ ಅಧ್ಯಯನದಲ್ಲಿ ಪರಿಣತಿ ಹೊಂದದ ಅಭಿವೃದ್ಧಿಪಡಿಸುವವರಿಗೆ ಬಹಳ ಸುಲಭವಾಗುವ ಅತ್ಯುತ್ತಮ Python ಗ್ರಂಥಾಲಯಗಳು ಲಭ್ಯವಿವೆ. ಮುಂದಿನ ಪಾಠಗಳಲ್ಲಿ ಇವುಗಳ ಇನ್ನಷ್ಟು ಉದಾಹರಣೆಗಳಿವೆ, ಆದರೆ ಇಲ್ಲಿ ನೀವು ಮುಂದಿನ ಕಾರ್ಯಕ್ಕೆ ಸಹಾಯ ಮಾಡುವ ಕೆಲವು ಉಪಯುಕ್ತ ಉದಾಹರಣೆಗಳನ್ನು ಕಲಿಯುತ್ತೀರಿ.
|
||||
|
||||
### ವ್ಯಾಯಾಮ - `TextBlob` ಗ್ರಂಥಾಲಯ ಬಳಕೆ
|
||||
|
||||
ಈ ರೀತಿಯ ಕಾರ್ಯಗಳನ್ನು ನಿಭಾಯಿಸಲು ಸಹಾಯಕ API ಗಳನ್ನು ಹೊಂದಿರುವ TextBlob ಎಂಬ ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸಿ. TextBlob "ದೊಡ್ಡ [NLTK](https://nltk.org) ಮತ್ತು [pattern](https://github.com/clips/pattern) ಗ್ರಂಥಾಲಯಗಳ ಮೇಲೆ ನಿಂತಿದೆ ಮತ್ತು ಎರಡರೊಂದಿಗೆ ಚೆನ್ನಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆ." ಇದರ API ನಲ್ಲಿ ಸಾಕಷ್ಟು ML ಒಳಗೊಂಡಿದೆ.
|
||||
|
||||
> ಗಮನಿಸಿ: ಅನುಭವಸಂಪನ್ನ Python ಅಭಿವೃದ್ಧಿಪಡಿಸುವವರಿಗೆ ಶಿಫಾರಸು ಮಾಡಲಾದ TextBlob ಗೆ ಉಪಯುಕ್ತ [ತ್ವರಿತ ಪ್ರಾರಂಭ](https://textblob.readthedocs.io/en/dev/quickstart.html#quickstart) ಮಾರ್ಗದರ್ಶಿ ಲಭ್ಯವಿದೆ
|
||||
|
||||
*ನಾಮಪದ ವಾಕ್ಯಾಂಶಗಳನ್ನು* ಗುರುತಿಸಲು ಪ್ರಯತ್ನಿಸುವಾಗ, TextBlob ನಾಮಪದ ವಾಕ್ಯಾಂಶಗಳನ್ನು ಹುಡುಕಲು ಹಲವಾರು ಎಕ್ಸ್ಟ್ರಾಕ್ಟರ್ ಆಯ್ಕೆಗಳನ್ನು ನೀಡುತ್ತದೆ.
|
||||
|
||||
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) "ConLL-2000 ತರಬೇತಿ ಕಾರ್ಪಸ್ ಬಳಸಿ ಚಂಕ್ ಪಾರ್ಸಿಂಗ್ ಮೂಲಕ ತರಬೇತುಗೊಂಡ ನಾಮಪದ ವಾಕ್ಯಾಂಶ ಎಕ್ಸ್ಟ್ರಾಕ್ಟರ್." ConLL-2000 2000 ರಲ್ಲಿ ನಡೆದ ಕಂಪ್ಯೂಟೇಶನಲ್ ನೈಸರ್ಗಿಕ ಭಾಷಾ ಕಲಿಕೆಯ ಸಮ್ಮೇಳನವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಪ್ರತಿ ವರ್ಷ ಸಮ್ಮೇಳನವು NLP ಸಮಸ್ಯೆಯನ್ನು ಪರಿಹರಿಸಲು ಕಾರ್ಯಾಗಾರವನ್ನು ಆಯೋಜಿಸಿತು, 2000 ರಲ್ಲಿ ಅದು ನಾಮ ಚಂಕಿಂಗ್ ಆಗಿತ್ತು. ವಾಲ್ ಸ್ಟ್ರೀಟ್ ಜರ್ನಲ್ ಮೇಲೆ ಮಾದರಿಯನ್ನು ತರಬೇತುಗೊಂಡಿತು, "ಸೆಕ್ಷನ್ 15-18 ತರಬೇತಿ ಡೇಟಾ (211727 ಟೋಕನ್ಸ್) ಮತ್ತು ಸೆಕ್ಷನ್ 20 ಪರೀಕ್ಷಾ ಡೇಟಾ (47377 ಟೋಕನ್ಸ್)" ಆಗಿತ್ತು. ನೀವು ಬಳಸದ ವಿಧಾನಗಳನ್ನು [ಇಲ್ಲಿ](https://www.clips.uantwerpen.be/conll2000/chunking/) ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು [ಇಲ್ಲಿ](https://ifarm.nl/erikt/research/np-chunking.html) ನೋಡಬಹುದು.
|
||||
|
||||
### ಸವಾಲು - NLP ಬಳಸಿ ನಿಮ್ಮ ಬಾಟ್ ಅನ್ನು ಸುಧಾರಿಸುವುದು
|
||||
|
||||
ಹಿಂದಿನ ಪಾಠದಲ್ಲಿ ನೀವು ಬಹಳ ಸರಳ Q&A ಬಾಟ್ ನಿರ್ಮಿಸಿದ್ದೀರಿ. ಈಗ, ನೀವು ಮಾರ್ವಿನ್ ಅನ್ನು ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಸಹಾನುಭೂತಿಪರನಾಗಿಸಲು ನಿಮ್ಮ ಇನ್ಪುಟ್ನ ಭಾವನೆಯನ್ನು ವಿಶ್ಲೇಷಿಸಿ ಮತ್ತು ಭಾವನೆಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಮುದ್ರಿಸುವಿರಿ. ನೀವು `noun_phrase` ಅನ್ನು ಗುರುತಿಸಿ ಅದನ್ನು ಕುರಿತು ಇನ್ನಷ್ಟು ಇನ್ಪುಟ್ ಕೇಳಬೇಕಾಗುತ್ತದೆ.
|
||||
|
||||
ಉತ್ತಮ ಸಂಭಾಷಣಾ ಬಾಟ್ ನಿರ್ಮಿಸುವ ನಿಮ್ಮ ಹಂತಗಳು:
|
||||
|
||||
1. ಬಳಕೆದಾರರಿಗೆ ಬಾಟ್ ಜೊತೆ ಹೇಗೆ ಸಂವಹನ ಮಾಡಬೇಕೆಂದು ಸೂಚನೆಗಳನ್ನು ಮುದ್ರಿಸಿ
|
||||
2. ಲೂಪ್ ಪ್ರಾರಂಭಿಸಿ
|
||||
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. ಸಹಾನುಭೂತಿಪರ ಪ್ರತಿಕ್ರಿಯೆಗಳು ಯಾರನ್ನಾದರೂ ಬಾಟ್ ಅವರನ್ನು ನಿಜವಾಗಿಯೂ ಅರ್ಥಮಾಡಿಕೊಂಡಿದೆ ಎಂದು 'ಮೋಸಗೊಳಿಸುವುದೇ' ಎಂದು ನೀವು ಭಾವಿಸುತ್ತೀರಾ?
|
||||
2. ನಾಮಪದ ವಾಕ್ಯಾಂಶವನ್ನು ಗುರುತಿಸುವುದು ಬಾಟ್ ಅನ್ನು ಹೆಚ್ಚು 'ನಂಬಬಹುದಾದ' ಮಾಡುತ್ತದೆಯೇ?
|
||||
3. ವಾಕ್ಯದಿಂದ 'ನಾಮಪದ ವಾಕ್ಯಾಂಶ' ಹೊರತೆಗೆಯುವುದು ಉಪಯುಕ್ತವಾದದ್ದು ಏಕೆ?
|
||||
|
||||
---
|
||||
|
||||
ಹಿಂದಿನ ಜ್ಞಾನ ಪರಿಶೀಲನೆಯಲ್ಲಿ ಬಾಟ್ ಅನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸಿ ಮತ್ತು ಸ್ನೇಹಿತನ ಮೇಲೆ ಪರೀಕ್ಷಿಸಿ. ಅದು ಅವರನ್ನು ಮೋಸಗೊಳಿಸಬಹುದೇ? ನೀವು ನಿಮ್ಮ ಬಾಟ್ ಅನ್ನು ಹೆಚ್ಚು 'ನಂಬಬಹುದಾದ' ಮಾಡಬಹುದೇ?
|
||||
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
ಹಿಂದಿನ ಜ್ಞಾನ ಪರಿಶೀಲನೆಯಲ್ಲಿ ಒಂದು ಕಾರ್ಯವನ್ನು ತೆಗೆದುಕೊಂಡು ಅದನ್ನು ಅನುಷ್ಠಾನಗೊಳಿಸಿ. ಬಾಟ್ ಅನ್ನು ಸ್ನೇಹಿತನ ಮೇಲೆ ಪರೀಕ್ಷಿಸಿ. ಅದು ಅವರನ್ನು ಮೋಸಗೊಳಿಸಬಹುದೇ? ನೀವು ನಿಮ್ಮ ಬಾಟ್ ಅನ್ನು ಹೆಚ್ಚು 'ನಂಬಬಹುದಾದ' ಮಾಡಬಹುದೇ?
|
||||
|
||||
## [ಪೋಸ್ಟ್-ವ್ಯಾಖ್ಯಾನ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
## ವಿಮರ್ಶೆ ಮತ್ತು ಸ್ವಯಂ ಅಧ್ಯಯನ
|
||||
|
||||
ಮುಂದಿನ ಕೆಲವು ಪಾಠಗಳಲ್ಲಿ ನೀವು ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆಯ ಬಗ್ಗೆ ಇನ್ನಷ್ಟು ಕಲಿಯುತ್ತೀರಿ. ಈ ರೋಚಕ ತಂತ್ರವನ್ನು [KDNuggets](https://www.kdnuggets.com/tag/nlp) ನಲ್ಲಿ ಇರುವ ಲೇಖನಗಳಲ್ಲಿ ಸಂಶೋಧಿಸಿ.
|
||||
|
||||
## ನಿಯೋಜನೆ
|
||||
|
||||
[ಬಾಟ್ ಅನ್ನು ಮಾತಾಡಿಸಲು ಮಾಡಿ](assignment.md)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "2efc4c2aba5ed06c780c05539c492ae3",
|
||||
"translation_date": "2025-12-19T14:36:51+00:00",
|
||||
"source_file": "6-NLP/2-Tasks/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಬಾಟ್ಗೆ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡಿಸುವಂತೆ ಮಾಡಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
ಹಿಂದಿನ ಕೆಲವು ಪಾಠಗಳಲ್ಲಿ, ನೀವು ಚಾಟ್ ಮಾಡಲು ಮೂಲಭೂತ ಬಾಟ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಮ್ ಮಾಡಿದ್ದೀರಿ. ಈ ಬಾಟ್ ನೀವು 'bye' ಎಂದು ಹೇಳುವವರೆಗೆ ಯಾದೃಚ್ಛಿಕ ಉತ್ತರಗಳನ್ನು ನೀಡುತ್ತದೆ. ನೀವು ಉತ್ತರಗಳನ್ನು ಸ್ವಲ್ಪ ಕಡಿಮೆ ಯಾದೃಚ್ಛಿಕವಾಗಿಸುವಂತೆ ಮಾಡಬಹುದೇ, ಮತ್ತು ನೀವು 'why' ಅಥವಾ 'how' ಎಂಬಂತಹ ವಿಶೇಷ ಪದಗಳನ್ನು ಹೇಳಿದಾಗ ಉತ್ತರಗಳನ್ನು ಪ್ರೇರೇಪಿಸಬಹುದೇ? ನಿಮ್ಮ ಬಾಟ್ ಅನ್ನು ವಿಸ್ತರಿಸುವಾಗ ಈ ರೀತಿಯ ಕೆಲಸವನ್ನು ಕಡಿಮೆ ಕೈಯಿಂದ ಮಾಡಲು ಯಂತ್ರ ಅಧ್ಯಯನ ಹೇಗೆ ಸಹಾಯ ಮಾಡಬಹುದು ಎಂದು ಸ್ವಲ್ಪ ಯೋಚಿಸಿ. ನಿಮ್ಮ ಕಾರ್ಯಗಳನ್ನು ಸುಲಭಗೊಳಿಸಲು ನೀವು NLTK ಅಥವಾ TextBlob ಗ್ರಂಥಾಲಯಗಳನ್ನು ಬಳಸಬಹುದು.
|
||||
|
||||
## ರೂಬ್ರಿಕ್
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯವಿದೆ |
|
||||
| -------- | --------------------------------------------- | ------------------------------------------------ | ----------------------- |
|
||||
| | ಹೊಸ bot.py ಫೈಲ್ ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ ಮತ್ತು ದಾಖಲೆ ಮಾಡಲಾಗಿದೆ | ಹೊಸ ಬಾಟ್ ಫೈಲ್ ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ ಆದರೆ ಅದರಲ್ಲಿ ದೋಷಗಳಿವೆ | ಫೈಲ್ ಅನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,27 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "9d2a734deb904caff310d1a999c6bd7a",
|
||||
"translation_date": "2025-12-19T14:18:50+00:00",
|
||||
"source_file": "6-NLP/3-Translation-Sentiment/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಕಾವ್ಯಾತ್ಮಕ ಪರವಾನಗಿ
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
[ಈ ನೋಟ್ಬುಕ್](https://www.kaggle.com/jenlooper/emily-dickinson-word-frequency) ನಲ್ಲಿ ನೀವು 500 ಕ್ಕೂ ಹೆಚ್ಚು ಎಮಿಲಿ ಡಿಕಿನ್ಸನ್ ಕವಿತೆಗಳನ್ನೂ, ಅವುಗಳ ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಅಜೂರ್ ಟೆಕ್ಸ್ಟ್ ಅನಾಲಿಟಿಕ್ಸ್ ಬಳಸಿ ಪೂರ್ವವೀಕ್ಷಣೆ ಮಾಡಲಾಗಿದೆ. ಈ ಡೇಟಾಸೆಟ್ ಬಳಸಿ, ಪಾಠದಲ್ಲಿ ವಿವರಿಸಲಾದ ತಂತ್ರಗಳನ್ನು ಉಪಯೋಗಿಸಿ ವಿಶ್ಲೇಷಿಸಿ. ಒಂದು ಕವಿತೆಯ ಸೂಚಿಸಲಾದ ಭಾವನೆ ಅಜೂರ್ ಸೇವೆಯ ಹೆಚ್ಚು ಸುಧಾರಿತ ನಿರ್ಣಯದೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆಯೇ? ನಿಮ್ಮ ಅಭಿಪ್ರಾಯದಲ್ಲಿ ಏಕೆ ಅಥವಾ ಏಕೆ ಅಲ್ಲ? ಏನಾದರೂ ನಿಮಗೆ ಆಶ್ಚರ್ಯಕರವಾಗಿದೆಯೇ?
|
||||
|
||||
## ಮೌಲ್ಯಮಾಪನ
|
||||
|
||||
| ಮಾನದಂಡಗಳು | ಉದಾಹರಣೀಯ | ತೃಪ್ತಿಕರ | ಸುಧಾರಣೆಯ ಅಗತ್ಯ |
|
||||
| -------- | -------------------------------------------------------------------------- | ------------------------------------------------------- | ------------------------ |
|
||||
| | ಲೇಖಕರ ಮಾದರಿ ಔಟ್ಪುಟ್ನ ದೃಢ ವಿಶ್ಲೇಷಣೆಯೊಂದಿಗೆ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ | ನೋಟ್ಬುಕ್ ಅಪೂರ್ಣವಾಗಿದೆ ಅಥವಾ ವಿಶ್ಲೇಷಣೆ ನಡೆಸುವುದಿಲ್ಲ | ಯಾವುದೇ ನೋಟ್ಬುಕ್ ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿಲ್ಲ |
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T14:46:44+00:00",
|
||||
"source_file": "6-NLP/3-Translation-Sentiment/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "81db6ff2cf6e62fbe2340b094bb9509e",
|
||||
"translation_date": "2025-12-19T14:47:17+00:00",
|
||||
"source_file": "6-NLP/3-Translation-Sentiment/solution/R/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವಾಗಿ ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,100 @@
|
||||
{
|
||||
"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,
|
||||
"coopTranslator": {
|
||||
"original_hash": "27de2abc0235ebd22080fc8f1107454d",
|
||||
"translation_date": "2025-12-19T16:49:20+00:00",
|
||||
"source_file": "6-NLP/3-Translation-Sentiment/solution/notebook.ipynb",
|
||||
"language_code": "kn"
|
||||
}
|
||||
},
|
||||
"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<!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**ಅಸ್ವೀಕರಣ**: \nಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.\n<!-- CO-OP TRANSLATOR DISCLAIMER END -->\n"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,419 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "8d32dadeda93c6fb5c43619854882ab1",
|
||||
"translation_date": "2025-12-19T14:22:34+00:00",
|
||||
"source_file": "6-NLP/4-Hotel-Reviews-1/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳೊಂದಿಗೆ ಭಾವನೆ ವಿಶ್ಲೇಷಣೆ - ಡೇಟಾ ಪ್ರಕ್ರಿಯೆ
|
||||
|
||||
ಈ ವಿಭಾಗದಲ್ಲಿ ನೀವು ಹಿಂದಿನ ಪಾಠಗಳಲ್ಲಿ ಕಲಿತ ತಂತ್ರಗಳನ್ನು ಬಳಸಿಕೊಂಡು ದೊಡ್ಡ ಡೇಟಾಸೆಟ್ನ ಅನ್ವೇಷಣಾತ್ಮಕ ಡೇಟಾ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಮಾಡುತ್ತೀರಿ. ವಿವಿಧ ಕಾಲಮ್ಗಳ ಉಪಯುಕ್ತತೆಯನ್ನು ಚೆನ್ನಾಗಿ ಅರ್ಥಮಾಡಿಕೊಂಡ ನಂತರ, ನೀವು ತಿಳಿಯಲಿದ್ದೀರಿ:
|
||||
|
||||
- ಅನಗತ್ಯ ಕಾಲಮ್ಗಳನ್ನು ಹೇಗೆ ತೆಗೆದುಹಾಕುವುದು
|
||||
- ಇತ್ತೀಚಿನ ಕಾಲಮ್ಗಳ ಆಧಾರದ ಮೇಲೆ ಹೊಸ ಡೇಟಾವನ್ನು ಹೇಗೆ ಲೆಕ್ಕಹಾಕುವುದು
|
||||
- ಅಂತಿಮ ಸವಾಲಿಗಾಗಿ ಫಲಿತಾಂಶ ಡೇಟಾಸೆಟ್ ಅನ್ನು ಹೇಗೆ ಉಳಿಸುವುದು
|
||||
|
||||
## [ಪೂರ್ವ-ಪಾಠ ಕ್ವಿಜ್](https://ff-quizzes.netlify.app/en/ml/)
|
||||
|
||||
### ಪರಿಚಯ
|
||||
|
||||
ಇದುವರೆಗೆ ನೀವು ತಿಳಿದುಕೊಂಡಿರುವುದು, ಪಠ್ಯ ಡೇಟಾ ಸಂಖ್ಯಾತ್ಮಕ ಡೇಟಾ ಪ್ರಕಾರಗಳಿಗಿಂತ ಬಹಳ ವಿಭಿನ್ನವಾಗಿದೆ. ಅದು ಮಾನವನು ಬರೆದ ಅಥವಾ ಮಾತನಾಡಿದ ಪಠ್ಯವಾಗಿದ್ದರೆ, ಅದನ್ನು ಮಾದರಿಗಳು ಮತ್ತು ಆವರ್ತನೆಗಳು, ಭಾವನೆ ಮತ್ತು ಅರ್ಥವನ್ನು ಕಂಡುಹಿಡಿಯಲು ವಿಶ್ಲೇಷಿಸಬಹುದು. ಈ ಪಾಠವು ನಿಮಗೆ ನಿಜವಾದ ಡೇಟಾ ಸೆಟ್ ಮತ್ತು ನಿಜವಾದ ಸವಾಲಿನೊಳಗೆ ಕರೆದೊಯ್ಯುತ್ತದೆ: **[ಯುರೋಪಿನ 515K ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳ ಡೇಟಾ](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe)** ಮತ್ತು ಇದಕ್ಕೆ [CC0: ಸಾರ್ವಜನಿಕ ಡೊಮೇನ್ ಪರವಾನಗಿ](https://creativecommons.org/publicdomain/zero/1.0/) ಇದೆ. ಇದು Booking.com ನ ಸಾರ್ವಜನಿಕ ಮೂಲಗಳಿಂದ ಸ್ಕ್ರೇಪ್ ಮಾಡಲಾಗಿದೆ. ಡೇಟಾಸೆಟ್ ರಚನೆದವರು ಜಿಯಾಶೆನ್ ಲಿಯು.
|
||||
|
||||
### ತಯಾರಿ
|
||||
|
||||
ನೀವು ಬೇಕಾಗಿರುವುದು:
|
||||
|
||||
* Python 3 ಬಳಸಿ .ipynb ನೋಟ್ಬುಕ್ಗಳನ್ನು ಚಾಲನೆ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ
|
||||
* pandas
|
||||
* NLTK, [ನೀವು ಸ್ಥಳೀಯವಾಗಿ ಸ್ಥಾಪಿಸಬೇಕು](https://www.nltk.org/install.html)
|
||||
* Kaggle ನಲ್ಲಿ ಲಭ್ಯವಿರುವ ಡೇಟಾಸೆಟ್ [515K ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳ ಡೇಟಾ ಯುರೋಪಿನಲ್ಲಿ](https://www.kaggle.com/jiashenliu/515k-hotel-reviews-data-in-europe). ಇದು ಅನ್ಜಿಪ್ ಮಾಡಿದಾಗ ಸುಮಾರು 230 MB ಆಗಿದೆ. ಈ NLP ಪಾಠಗಳಿಗೆ ಸಂಬಂಧಿಸಿದ ರೂಟ್ `/data` ಫೋಲ್ಡರ್ಗೆ ಡೌನ್ಲೋಡ್ ಮಾಡಿ.
|
||||
|
||||
## ಅನ್ವೇಷಣಾತ್ಮಕ ಡೇಟಾ ವಿಶ್ಲೇಷಣೆ
|
||||
|
||||
ಈ ಸವಾಲು ನೀವು ಭಾವನೆ ವಿಶ್ಲೇಷಣೆ ಮತ್ತು ಅತಿಥಿ ವಿಮರ್ಶಾ ಅಂಕಗಳನ್ನು ಬಳಸಿ ಹೋಟೆಲ್ ಶಿಫಾರಸು ಬಾಟ್ ನಿರ್ಮಿಸುತ್ತಿದ್ದೀರಿ ಎಂದು ಊಹಿಸುತ್ತದೆ. ನೀವು ಬಳಸಲಿರುವ ಡೇಟಾಸೆಟ್ 6 ನಗರಗಳಲ್ಲಿ 1493 ವಿಭಿನ್ನ ಹೋಟೆಲ್ಗಳ ವಿಮರ್ಶೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
|
||||
|
||||
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`
|
||||
- ಕನಿಷ್ಠ 1 ದಶಮಾಂಶ ಸ್ಥಾನವಿರುವ ಸಂಖ್ಯಾತ್ಮಕ ಮೌಲ್ಯ, ಕನಿಷ್ಠ ಮತ್ತು ಗರಿಷ್ಠ ಮೌಲ್ಯಗಳು 2.5 ಮತ್ತು 10
|
||||
- 2.5 ಅತಿ ಕಡಿಮೆ ಅಂಕವಾಗಿರುವುದಕ್ಕೆ ಕಾರಣ ವಿವರಿಸಲಾಗಿಲ್ಲ
|
||||
- `Negative_Review`
|
||||
- ವಿಮರ್ಶಕನು ಏನೂ ಬರೆಯದಿದ್ದರೆ, ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ "**No Negative**" ಇರುತ್ತದೆ
|
||||
- ಗಮನಿಸಿ, ವಿಮರ್ಶಕನು ಧನಾತ್ಮಕ ವಿಮರ್ಶೆಯನ್ನು ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆ ಕಾಲಮ್ನಲ್ಲಿ ಬರೆಯಬಹುದು (ಉದಾ: "ಈ ಹೋಟೆಲ್ ಬಗ್ಗೆ ಏನೂ ಕೆಟ್ಟದ್ದು ಇಲ್ಲ")
|
||||
- `Review_Total_Negative_Word_Counts`
|
||||
- ಹೆಚ್ಚು ನಕಾರಾತ್ಮಕ ಪದಗಳ ಸಂಖ್ಯೆ ಕಡಿಮೆ ಅಂಕವನ್ನು ಸೂಚಿಸುತ್ತದೆ (ಭಾವನಾತ್ಮಕತೆಯನ್ನು ಪರಿಶೀಲಿಸದೆ)
|
||||
- `Positive_Review`
|
||||
- ವಿಮರ್ಶಕನು ಏನೂ ಬರೆಯದಿದ್ದರೆ, ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ "**No Positive**" ಇರುತ್ತದೆ
|
||||
- ಗಮನಿಸಿ, ವಿಮರ್ಶಕನು ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆಯನ್ನು ಧನಾತ್ಮಕ ವಿಮರ್ಶೆ ಕಾಲಮ್ನಲ್ಲಿ ಬರೆಯಬಹುದು (ಉದಾ: "ಈ ಹೋಟೆಲ್ ಬಗ್ಗೆ ಏನೂ ಒಳ್ಳೆಯದು ಇಲ್ಲ")
|
||||
- `Review_Total_Positive_Word_Counts`
|
||||
- ಹೆಚ್ಚು ಧನಾತ್ಮಕ ಪದಗಳ ಸಂಖ್ಯೆ ಹೆಚ್ಚು ಅಂಕವನ್ನು ಸೂಚಿಸುತ್ತದೆ (ಭಾವನಾತ್ಮಕತೆಯನ್ನು ಪರಿಶೀಲಿಸದೆ)
|
||||
- `Review_Date` ಮತ್ತು `days_since_review`
|
||||
- ವಿಮರ್ಶೆಗೆ تازگي ಅಥವಾ ಹಳೆಯತನದ ಅಳತೆ ಅನ್ವಯಿಸಬಹುದು (ಹಳೆಯ ವಿಮರ್ಶೆಗಳು ನವೀನ ವಿಮರ್ಶೆಗಳಂತೆ ನಿಖರವಾಗಿರದಿರಬಹುದು, ಹೋಟೆಲ್ ನಿರ್ವಹಣೆ ಬದಲಾಗಿದೆ, ಪುನರ್ ನಿರ್ಮಾಣ ಮಾಡಲಾಗಿದೆ, ಅಥವಾ ಈಜುಕೊಳ ಸೇರಿಸಲಾಗಿದೆ ಮುಂತಾದ ಕಾರಣಗಳಿಂದ)
|
||||
- `Tags`
|
||||
- ವಿಮರ್ಶಕನು ತಮ್ಮ ಅತಿಥಿ ಪ್ರಕಾರ (ಉದಾ: ಒಂಟಿ ಅಥವಾ ಕುಟುಂಬ), ಕೊಠಡಿ ಪ್ರಕಾರ, ಉಳಿದಿರುವ ಅವಧಿ ಮತ್ತು ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಿದ ಸಾಧನವನ್ನು ವರ್ಣಿಸಲು ಆಯ್ಕೆಮಾಡಬಹುದಾದ ಚಿಕ್ಕ ವರ್ಣನಾತ್ಮಕ ಪದಗಳು
|
||||
- ದುರದೃಷ್ಟವಶಾತ್, ಈ ಟ್ಯಾಗ್ಗಳನ್ನು ಬಳಸುವುದು ಸಮಸ್ಯೆಯಾಗಿದೆ, ಕೆಳಗಿನ ವಿಭಾಗದಲ್ಲಿ ಅವುಗಳ ಉಪಯುಕ್ತತೆಯನ್ನು ಚರ್ಚಿಸಲಾಗಿದೆ
|
||||
|
||||
**ವಿಮರ್ಶಕ ಕಾಲಮ್ಗಳು**
|
||||
|
||||
- `Total_Number_of_Reviews_Reviewer_Has_Given`
|
||||
- ಶಿಫಾರಸು ಮಾದರಿಯಲ್ಲಿ ಇದು ಒಂದು ಅಂಶವಾಗಬಹುದು, ಉದಾಹರಣೆಗೆ, ನೂರಾರು ವಿಮರ್ಶೆಗಳಿರುವ ಹೆಚ್ಚು ಸಕ್ರಿಯ ವಿಮರ್ಶಕರು ಹೆಚ್ಚು ನಕಾರಾತ್ಮಕವಾಗಿರಬಹುದು ಎಂದು ನೀವು ನಿರ್ಧರಿಸಬಹುದು. ಆದರೆ ಯಾವುದೇ ವಿಮರ್ಶೆಯ ವಿಮರ್ಶಕನು ವಿಶಿಷ್ಟ ಕೋಡ್ನೊಂದಿಗೆ ಗುರುತಿಸಲ್ಪಟ್ಟಿಲ್ಲ, ಆದ್ದರಿಂದ ವಿಮರ್ಶೆಗಳ ಗುಂಪಿಗೆ ಲಿಂಕ್ ಮಾಡಲಾಗುವುದಿಲ್ಲ. 100 ಅಥವಾ ಹೆಚ್ಚು ವಿಮರ್ಶೆಗಳಿರುವ 30 ವಿಮರ್ಶಕರು ಇದ್ದಾರೆ, ಆದರೆ ಇದು ಶಿಫಾರಸು ಮಾದರಿಗೆ ಹೇಗೆ ಸಹಾಯ ಮಾಡುತ್ತದೆ ಎಂಬುದು ಸ್ಪಷ್ಟವಿಲ್ಲ.
|
||||
- `Reviewer_Nationality`
|
||||
- ಕೆಲವು ಜನರು ಕೆಲವು ರಾಷ್ಟ್ರಗಳವರು ಧನಾತ್ಮಕ ಅಥವಾ ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆ ನೀಡುವ ಸಾಧ್ಯತೆ ಹೆಚ್ಚು ಎಂದು ಭಾವಿಸಬಹುದು. ಇಂತಹ ಅನೇಕ ಕಥನಗಳನ್ನು ನಿಮ್ಮ ಮಾದರಿಗಳಲ್ಲಿ ಸೇರಿಸುವಾಗ ಜಾಗರೂಕವಾಗಿರಿ. ಇವು ರಾಷ್ಟ್ರೀಯ (ಮತ್ತು ಕೆಲವೊಮ್ಮೆ ಜಾತಿ) стереотип್ಗಳು, ಮತ್ತು ಪ್ರತಿಯೊಬ್ಬ ವಿಮರ್ಶಕನು ತಮ್ಮ ಅನುಭವ ಆಧಾರಿತ ವಿಮರ್ಶೆ ಬರೆದ ವ್ಯಕ್ತಿ. ಇದು ಅವರ ಹಿಂದಿನ ಹೋಟೆಲ್ ಉಳಿವಿನ ಅನುಭವ, ಪ್ರಯಾಣದ ದೂರ, ಮತ್ತು ವೈಯಕ್ತಿಕ ಸ್ವಭಾವ ಮುಂತಾದ ಅನೇಕ ದೃಷ್ಟಿಕೋನಗಳಿಂದ ಪ್ರಭಾವಿತವಾಗಿರಬಹುದು. ಅವರ ರಾಷ್ಟ್ರೀಯತೆ ವಿಮರ್ಶಾ ಅಂಕಕ್ಕೆ ಕಾರಣ ಎಂದು ಭಾವಿಸುವುದು ಕಷ್ಟ.
|
||||
|
||||
##### ಉದಾಹರಣೆಗಳು
|
||||
|
||||
| ಸರಾಸರಿ ಅಂಕ | ಒಟ್ಟು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆ | ವಿಮರ್ಶಕ ಅಂಕ | ನಕಾರಾತ್ಮಕ <br />ವಿಮರ್ಶೆ | ಧನಾತ್ಮಕ ವಿಮರ್ಶೆ | ಟ್ಯಾಗ್ಗಳು |
|
||||
| ------------ | ---------------------- | ------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| 7.8 | 1945 | 2.5 | ಇದು ಪ್ರಸ್ತುತ ಹೋಟೆಲ್ ಅಲ್ಲ, ಆದರೆ ನಿರ್ಮಾಣ ಸ್ಥಳವಾಗಿದೆ. ನಾನು ಬೆಳಗಿನ ಜಾವದಿಂದ ಮತ್ತು ದಿನಪೂರ್ತಿ ಅಸಹ್ಯವಾದ ಕಟ್ಟಡ ಶಬ್ದದಿಂದ ಭಯಭೀತನಾಗಿದ್ದೆ, ದೀರ್ಘ ಪ್ರಯಾಣದ ನಂತರ ವಿಶ್ರಾಂತಿ ಪಡೆಯುತ್ತಿದ್ದಾಗ ಮತ್ತು ಕೊಠಡಿಯಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದಾಗ. ಜನರು ದಿನಪೂರ್ತಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರು, ಅಂದರೆ ಪಕ್ಕದ ಕೊಠಡಿಗಳಲ್ಲಿ ಜಾಕ್ಹ್ಯಾಮರ್ಗಳೊಂದಿಗೆ. ನಾನು ಕೊಠಡಿ ಬದಲಾವಣೆ ಕೇಳಿದೆ, ಆದರೆ ಶಾಂತ ಕೊಠಡಿ ಲಭ್ಯವಿರಲಿಲ್ಲ. ಇನ್ನೂ ಕೆಟ್ಟದಾಗಿ, ನಾನು ಹೆಚ್ಚುವರಿ ಶುಲ್ಕ ವಿಧಿಸಲ್ಪಟ್ಟಿದ್ದೆ. ನಾನು ಸಂಜೆ ಚೆಕ್ ಔಟ್ ಮಾಡಿದೆ, ಏಕೆಂದರೆ ನನಗೆ ಬೇಗಲೇ ವಿಮಾನ ಹಾರಬೇಕಾಗಿತ್ತು ಮತ್ತು ಸೂಕ್ತ ಬಿಲ್ ಪಡೆದಿದ್ದೆ. ಒಂದು ದಿನದ ನಂತರ ಹೋಟೆಲ್ ನನ್ನ ಅನುಮತಿಯಿಲ್ಲದೆ ಬುಕ್ ಮಾಡಿದ ಬೆಲೆಯಿಗಿಂತ ಹೆಚ್ಚಾಗಿ ಶುಲ್ಕ ವಿಧಿಸಿತು. ಇದು ಭಯಾನಕ ಸ್ಥಳ. ಇಲ್ಲಿ ಬುಕ್ ಮಾಡಿಕೊಳ್ಳುವುದರಿಂದ ನಿಮ್ಮನ್ನು ಶಿಕ್ಷಿಸಬೇಡಿ | ಇಲ್ಲದೆ ಭಯಾನಕ ಸ್ಥಳ ದೂರವಿರಿ | ವ್ಯವಹಾರ ಪ್ರಯಾಣ ಜೋಡಿ ಸ್ಟ್ಯಾಂಡರ್ಡ್ ಡಬಲ್ ರೂಮ್ 2 ರಾತ್ರಿಗಳು ಉಳಿದಿದ್ದಾರೆ |
|
||||
|
||||
ನೀವು ನೋಡಬಹುದು, ಈ ಅತಿಥಿಗೆ ಈ ಹೋಟೆಲ್ನಲ್ಲಿ ಸಂತೋಷಕರ ಉಳಿವು ಇರಲಿಲ್ಲ. ಹೋಟೆಲ್ಗೆ 7.8 ಸರಾಸರಿ ಅಂಕ ಮತ್ತು 1945 ವಿಮರ್ಶೆಗಳಿವೆ, ಆದರೆ ಈ ವಿಮರ್ಶಕ 2.5 ಅಂಕ ನೀಡಿದ್ದು, ತಮ್ಮ ನಕಾರಾತ್ಮಕ ಉಳಿವಿನ ಬಗ್ಗೆ 115 ಪದಗಳನ್ನು ಬರೆದಿದ್ದಾರೆ. ಅವರು Positive_Review ಕಾಲಮ್ನಲ್ಲಿ ಏನೂ ಬರೆಯದಿದ್ದರೆ, ನೀವು ಧನಾತ್ಮಕವಿಲ್ಲ ಎಂದು ಊಹಿಸಬಹುದು, ಆದರೆ ಅವರು ಎಚ್ಚರಿಕೆಯ 7 ಪದಗಳನ್ನು ಬರೆದಿದ್ದಾರೆ. ನಾವು ಪದಗಳನ್ನು ಮಾತ್ರ ಎಣಿಸಿದರೆ ಅಥವಾ ಪದಗಳ ಅರ್ಥ ಅಥವಾ ಭಾವನಾತ್ಮಕತೆಯನ್ನು ಪರಿಗಣಿಸದೆ ಇದ್ದರೆ, ವಿಮರ್ಶಕರ ಉದ್ದೇಶದ ಬಗ್ಗೆ ತಪ್ಪು ದೃಷ್ಟಿಕೋನವಾಗಬಹುದು. ವಿಚಿತ್ರವಾಗಿ, ಅವರ 2.5 ಅಂಕ ಗೊಂದಲಕಾರಿಯಾಗಿದೆ, ಏಕೆಂದರೆ ಹೋಟೆಲ್ ಉಳಿವು ಅಷ್ಟು ಕೆಟ್ಟದಾಗಿದ್ದರೆ, ಏಕೆ ಅಂಕ ನೀಡಿದರು? ಡೇಟಾಸೆಟ್ ಅನ್ನು ನಿಖರವಾಗಿ ಪರಿಶೀಲಿಸಿದರೆ, ಕನಿಷ್ಠ ಸಾಧ್ಯ ಅಂಕ 2.5, 0 ಅಲ್ಲ. ಗರಿಷ್ಠ ಅಂಕ 10.
|
||||
|
||||
##### ಟ್ಯಾಗ್ಗಳು
|
||||
|
||||
ಮೇಲಿನಂತೆ, ಮೊದಲ ನೋಟದಲ್ಲಿ, `Tags` ಬಳಸಿ ಡೇಟಾವನ್ನು ವರ್ಗೀಕರಿಸುವ ಯೋಚನೆ ಅರ್ಥಪೂರ್ಣವಾಗಿದೆ. ದುರದೃಷ್ಟವಶಾತ್, ಈ ಟ್ಯಾಗ್ಗಳು ಮಾನಕೀಕೃತವಾಗಿಲ್ಲ, ಅಂದರೆ ಒಂದು ಹೋಟೆಲ್ನಲ್ಲಿ ಆಯ್ಕೆಗಳು *Single room*, *Twin room*, ಮತ್ತು *Double room* ಆಗಿರಬಹುದು, ಆದರೆ ಮುಂದಿನ ಹೋಟೆಲ್ನಲ್ಲಿ ಅವು *Deluxe Single Room*, *Classic Queen Room*, ಮತ್ತು *Executive King Room* ಆಗಿರಬಹುದು. ಇವು ಒಂದೇ ಅರ್ಥದಿರಬಹುದು, ಆದರೆ ಅನೇಕ ಬದಲಾವಣೆಗಳಿವೆ, ಆದ್ದರಿಂದ ಆಯ್ಕೆ:
|
||||
|
||||
1. ಎಲ್ಲಾ ಪದಗಳನ್ನು ಒಂದೇ ಮಾನಕಕ್ಕೆ ಬದಲಾಯಿಸಲು ಪ್ರಯತ್ನಿಸುವುದು, ಇದು ಬಹಳ ಕಷ್ಟ, ಏಕೆಂದರೆ ಪ್ರತಿಯೊಂದು ಪ್ರಕರಣದಲ್ಲಿಯೂ ಪರಿವರ್ತನೆ ಮಾರ್ಗ ಸ್ಪಷ್ಟವಿಲ್ಲ (ಉದಾ: *Classic single room* ನಕ್ಷೆ *Single room* ಗೆ ಆದರೆ *Superior Queen Room with Courtyard Garden or City View* ನಕ್ಷೆ ಮಾಡುವುದು ಬಹಳ ಕಷ್ಟ)
|
||||
|
||||
1. ನಾವು NLP ವಿಧಾನವನ್ನು ತೆಗೆದು, ಪ್ರತಿಯೊಂದು ಹೋಟೆಲ್ಗೆ ಅನ್ವಯಿಸುವಂತೆ *Solo*, *Business Traveller*, ಅಥವಾ *Family with young kids* ಮುಂತಾದ ಪದಗಳ ಆವರ್ತನೆಯನ್ನು ಅಳೆಯಬಹುದು ಮತ್ತು ಅದನ್ನು ಶಿಫಾರಸುಗೆ ಸೇರಿಸಬಹುದು
|
||||
|
||||
ಟ್ಯಾಗ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ (ಆದರೆ ಯಾವಾಗಲೂ ಅಲ್ಲ) 5 ರಿಂದ 6 ಕಮಾ ವಿಭಜಿತ ಮೌಲ್ಯಗಳ ಪಟ್ಟಿಯನ್ನು ಹೊಂದಿರುವ ಒಂದು ಕ್ಷೇತ್ರವಾಗಿವೆ, ಅವು *ಪ್ರಯಾಣದ ಪ್ರಕಾರ*, *ಅತಿಥಿಗಳ ಪ್ರಕಾರ*, *ಕೊಠಡಿಯ ಪ್ರಕಾರ*, *ರಾತ್ರಿ ಸಂಖ್ಯೆ*, ಮತ್ತು *ವಿಮರ್ಶೆ ಸಲ್ಲಿಸಿದ ಸಾಧನದ ಪ್ರಕಾರ* ಹೊಂದಿವೆ. ಆದರೆ ಕೆಲವು ವಿಮರ್ಶಕರು ಪ್ರತಿಯೊಂದು ಕ್ಷೇತ್ರವನ್ನು ತುಂಬದಿದ್ದರೆ (ಒಂದು ಖಾಲಿ ಇರಬಹುದು), ಮೌಲ್ಯಗಳು ಯಾವಾಗಲೂ ಒಂದೇ ಕ್ರಮದಲ್ಲಿರಲಾರವು.
|
||||
|
||||
ಉದಾಹರಣೆಗೆ, *ಗುಂಪಿನ ಪ್ರಕಾರ* ತೆಗೆದುಕೊಳ್ಳಿ. `Tags` ಕಾಲಮ್ನಲ್ಲಿ ಈ ಕ್ಷೇತ್ರದಲ್ಲಿ 1025 ವಿಭಿನ್ನ ಸಾಧ್ಯತೆಗಳಿವೆ, ಮತ್ತು ದುರದೃಷ್ಟವಶಾತ್ ಕೆಲವು ಮಾತ್ರ ಗುಂಪಿಗೆ ಸಂಬಂಧಿಸಿದವು (ಕೆಲವು ಕೊಠಡಿಯ ಪ್ರಕಾರ ಇತ್ಯಾದಿ). ನೀವು ಕುಟುಂಬವನ್ನು ಮಾತ್ರ ಫಿಲ್ಟರ್ ಮಾಡಿದರೆ, ಫಲಿತಾಂಶಗಳಲ್ಲಿ ಅನೇಕ *Family room* ಪ್ರಕಾರದ ಫಲಿತಾಂಶಗಳಿವೆ. ನೀವು *with* ಪದವನ್ನು ಸೇರಿಸಿದರೆ, ಅಂದರೆ *Family with* ಮೌಲ್ಯಗಳನ್ನು ಎಣಿಸಿದರೆ, ಫಲಿತಾಂಶಗಳು ಉತ್ತಮವಾಗಿವೆ, 515,000 ಫಲಿತಾಂಶಗಳಲ್ಲಿ 80,000 ಕ್ಕೂ ಹೆಚ್ಚು "Family with young children" ಅಥವಾ "Family with older children" ಎಂಬ ವಾಕ್ಯांशವನ್ನು ಹೊಂದಿವೆ.
|
||||
|
||||
ಇದರಿಂದ ಟ್ಯಾಗ್ ಕಾಲಮ್ ನಮಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಉಪಯುಕ್ತವಲ್ಲ, ಆದರೆ ಅದನ್ನು ಉಪಯುಕ್ತವಾಗಿಸಲು ಕೆಲವು ಕೆಲಸ ಬೇಕಾಗುತ್ತದೆ.
|
||||
|
||||
##### ಸರಾಸರಿ ಹೋಟೆಲ್ ಅಂಕ
|
||||
|
||||
ಡೇಟಾ ಸೆಟ್ನಲ್ಲಿ ಕೆಲವು ವಿಚಿತ್ರತೆಗಳು ಅಥವಾ ವ್ಯತ್ಯಾಸಗಳಿವೆ, ಅವುಗಳನ್ನು ನಾನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲಾರೆ, ಆದರೆ ನಿಮ್ಮ ಮಾದರಿಗಳನ್ನು ನಿರ್ಮಿಸುವಾಗ ನೀವು ಅವುಗಳ ಬಗ್ಗೆ ತಿಳಿದಿರಬೇಕು. ನೀವು ಅರ್ಥಮಾಡಿಕೊಂಡರೆ, ದಯವಿಟ್ಟು ಚರ್ಚಾ ವಿಭಾಗದಲ್ಲಿ ನಮಗೆ ತಿಳಿಸಿ!
|
||||
|
||||
ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಸರಾಸರಿ ಅಂಕ ಮತ್ತು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆಗೆ ಸಂಬಂಧಿಸಿದ ಕಾಲಮ್ಗಳು ಇವೆ:
|
||||
|
||||
1. Hotel_Name
|
||||
2. Additional_Number_of_Scoring
|
||||
3. Average_Score
|
||||
4. Total_Number_of_Reviews
|
||||
5. Reviewer_Score
|
||||
|
||||
ಈ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಅತ್ಯಧಿಕ ವಿಮರ್ಶೆಗಳಿರುವ ಏಕೈಕ ಹೋಟೆಲ್ *Britannia International Hotel Canary Wharf* ಆಗಿದ್ದು, 515,000 ವಿಮರ್ಶೆಗಳಲ್ಲಿ 4789 ವಿಮರ್ಶೆಗಳಿವೆ. ಆದರೆ ಈ ಹೋಟೆಲ್ಗೆ `Total_Number_of_Reviews` ಮೌಲ್ಯವನ್ನು ನೋಡಿದರೆ, ಅದು 9086 ಆಗಿದೆ. ನೀವು ಊಹಿಸಬಹುದು, ವಿಮರ್ಶೆಗಳಿಲ್ಲದ ಹೆಚ್ಚಿನ ಅಂಕಗಳಿವೆ, ಆದ್ದರಿಂದ ನಾವು `Additional_Number_of_Scoring` ಕಾಲಮ್ ಮೌಲ್ಯವನ್ನು ಸೇರಿಸಬಹುದು. ಆ ಮೌಲ್ಯ 2682 ಆಗಿದ್ದು, 4789 ಗೆ ಸೇರಿಸಿದರೆ 7,471 ಆಗುತ್ತದೆ, ಇದು `Total_Number_of_Reviews` ಗಿಂತ 1615 ಕಡಿಮೆ.
|
||||
|
||||
`Average_Score` ಕಾಲಮ್ಗಳನ್ನು ತೆಗೆದುಕೊಂಡರೆ, ನೀವು ಊಹಿಸಬಹುದು ಇದು ಡೇಟಾಸೆಟ್ನ ವಿಮರ್ಶೆಗಳ ಸರಾಸರಿ, ಆದರೆ Kaggle ವಿವರಣೆ "*ಹೋಟೆಲ್ನ ಸರಾಸರಿ ಅಂಕ, ಕಳೆದ ವರ್ಷದ ಇತ್ತೀಚಿನ ಕಾಮೆಂಟ್ ಆಧಾರಿತವಾಗಿ ಲೆಕ್ಕಹಾಕಲಾಗಿದೆ*". ಇದು ಬಹಳ ಉಪಯುಕ್ತವಲ್ಲದಂತೆ ತೋರುತ್ತದೆ, ಆದರೆ ನಾವು ಡೇಟಾಸೆಟ್ನ ವಿಮರ್ಶಾ ಅಂಕಗಳ ಆಧಾರದ ಮೇಲೆ ನಮ್ಮದೇ ಸರಾಸರಿ ಲೆಕ್ಕಹಾಕಬಹುದು. ಉದಾಹರಣೆಗೆ, ಅದೇ ಹೋಟೆಲ್ಗೆ ಸರಾಸರಿ ಹೋಟೆಲ್ ಅಂಕ 7.1 ಎಂದು ನೀಡಲಾಗಿದೆ, ಆದರೆ ಲೆಕ್ಕಹಾಕಿದ ಅಂಕ (ಡೇಟಾಸೆಟ್ನ ವಿಮರ್ಶಕರ ಸರಾಸರಿ ಅಂಕ) 6.8 ಆಗಿದೆ. ಇದು ಸಮೀಪದಲ್ಲಿದೆ, ಆದರೆ ಅದೇ ಮೌಲ್ಯವಲ್ಲ, ಮತ್ತು ನಾವು ಊಹಿಸಬಹುದು `Additional_Number_of_Scoring` ವಿಮರ್ಶೆಗಳ ಅಂಕಗಳು ಸರಾಸರಿಯನ್ನು 7.1 ಗೆ ಹೆಚ್ಚಿಸಿದ್ದವು. ಅದನ್ನು ಪರೀಕ್ಷಿಸಲು ಅಥವಾ ಸಾಬೀತುಪಡಿಸಲು ಯಾವುದೇ ಮಾರ್ಗವಿಲ್ಲದ ಕಾರಣ, `Average_Score`, `Additional_Number_of_Scoring` ಮತ್ತು `Total_Number_of_Reviews` ಅನ್ನು ನಾವು ಹೊಂದಿಲ್ಲದ ಡೇಟಾ ಆಧಾರಿತವಾಗಿದ್ದಾಗ ಬಳಸುವುದು ಅಥವಾ ನಂಬುವುದು ಕಷ್ಟ.
|
||||
|
||||
ಇನ್ನಷ್ಟು ಗೊಂದಲಕ್ಕೆ, ಎರಡನೇ ಅತ್ಯಧಿಕ ವಿಮರ್ಶೆಗಳಿರುವ ಹೋಟೆಲ್ಗೆ ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿ ಅಂಕ 8.12 ಮತ್ತು ಡೇಟಾಸೆಟ್ನ `Average_Score` 8.1 ಆಗಿದೆ. ಇದು ಸರಿಯಾದ ಅಂಕದ ಸಂಧರ್ಭವೇ ಅಥವಾ ಮೊದಲ ಹೋಟೆಲ್ ವ್ಯತ್ಯಾಸವೇ?
|
||||
ಈ ಹೋಟೆಲ್ಗಳು ಹೊರಗಿನ ಅಂಕಿ ಇರಬಹುದು ಎಂಬ ಸಾಧ್ಯತೆಯ ಮೇಲೆ, ಮತ್ತು ಬಹುಶಃ ಹೆಚ್ಚಿನ ಮೌಲ್ಯಗಳು ಸರಿಹೊಂದಬಹುದು (ಆದರೆ ಕೆಲವು ಕಾರಣಕ್ಕಾಗಿ ಕೆಲವು ಸರಿಹೊಂದುವುದಿಲ್ಲ) ನಾವು ಡೇಟಾಸೆಟ್ನ ಮೌಲ್ಯಗಳನ್ನು ಅನ್ವೇಷಿಸಲು ಮತ್ತು ಮೌಲ್ಯಗಳ ಸರಿಯಾದ ಬಳಕೆಯನ್ನು (ಅಥವಾ ಬಳಕೆಯಿಲ್ಲದಿರುವುದನ್ನು) ನಿರ್ಧರಿಸಲು ಮುಂದಿನ ಸಣ್ಣ ಪ್ರೋಗ್ರಾಂ ಬರೆಯುತ್ತೇವೆ.
|
||||
|
||||
> 🚨 ಎಚ್ಚರಿಕೆಯ ಟಿಪ್ಪಣಿ
|
||||
>
|
||||
> ಈ ಡೇಟಾಸೆಟ್ನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ ನೀವು ಪಠ್ಯದಿಂದ ಏನಾದರೂ ಲೆಕ್ಕಹಾಕುವ ಕೋಡ್ ಬರೆಯುತ್ತೀರಿ, ನೀವು ಸ್ವತಃ ಪಠ್ಯವನ್ನು ಓದದೆ ಅಥವಾ ವಿಶ್ಲೇಷಣೆ ಮಾಡದೆ. ಇದು NLP ಯ ಸಾರಾಂಶ, ಅರ್ಥ ಅಥವಾ ಭಾವನೆಯನ್ನು ಮಾನವನು ಮಾಡದೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು. ಆದಾಗ್ಯೂ, ನೀವು ಕೆಲವು ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆಗಳನ್ನು ಓದಬಹುದು. ನಾನು ನಿಮಗೆ ಅದನ್ನು ಓದಬೇಡಿ ಎಂದು ಸಲಹೆ ನೀಡುತ್ತೇನೆ, ಏಕೆಂದರೆ ನೀವು ಅದನ್ನು ಮಾಡಬೇಕಾಗಿಲ್ಲ. ಕೆಲವು ವಿಮರ್ಶೆಗಳು ಮೂರ್ಖತನ ಅಥವಾ ಅಸಂಬಂಧಿತ ನಕಾರಾತ್ಮಕ ಹೋಟೆಲ್ ವಿಮರ್ಶೆಗಳಾಗಿವೆ, ಉದಾಹರಣೆಗೆ "ಹವಾಮಾನ ಚೆನ್ನಾಗಿರಲಿಲ್ಲ", ಇದು ಹೋಟೆಲ್ ಅಥವಾ ಯಾರಿಗಾದರೂ ನಿಯಂತ್ರಣದಲ್ಲಿಲ್ಲ. ಆದರೆ ಕೆಲವು ವಿಮರ್ಶೆಗಳಲ್ಲಿ ಕತ್ತಲೆ ಬದಿಯೂ ಇದೆ. ಕೆಲವೊಮ್ಮೆ ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆಗಳು ಜಾತ್ಯಾತೀತ, ಲಿಂಗಭೇದ, ಅಥವಾ ವಯೋಭೇದವಾಗಿರುತ್ತವೆ. ಇದು ದುಃಖದಾಯಕವಾದರೂ ಸಾರ್ವಜನಿಕ ವೆಬ್ಸೈಟ್ನಿಂದ ಸ್ಕ್ರೇಪ್ ಮಾಡಿದ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ನಿರೀಕ್ಷಿಸಬಹುದಾದದ್ದು. ಕೆಲವು ವಿಮರ್ಶಕರು ಅಸಹ್ಯ, ಅಸೌಕರ್ಯಕರ ಅಥವಾ ಕೋಪದಾಯಕ ವಿಮರ್ಶೆಗಳನ್ನು ಬರೆದಿರುತ್ತಾರೆ. ನಿಮ್ಮನ್ನು ಕೋಪಗೊಳ್ಳಿಸುವುದಕ್ಕಿಂತ ಕೋಡ್ ಭಾವನೆಯನ್ನು ಅಳೆಯಲು ಬಿಡುವುದು ಉತ್ತಮ. ಅಂದರೆ, ಇಂತಹವರು ಅಲ್ಪಸಂಖ್ಯಾತರು, ಆದರೆ ಇರುತ್ತಾರೆ.
|
||||
|
||||
## ಅಭ್ಯಾಸ - ಡೇಟಾ ಅನ್ವೇಷಣೆ
|
||||
### ಡೇಟಾ ಲೋಡ್ ಮಾಡಿ
|
||||
|
||||
ಡೇಟಾವನ್ನು ದೃಶ್ಯವಾಗಿ ಪರಿಶೀಲಿಸುವುದು ಸಾಕು, ಈಗ ನೀವು ಕೆಲವು ಕೋಡ್ ಬರೆಯುತ್ತೀರಿ ಮತ್ತು ಕೆಲವು ಉತ್ತರಗಳನ್ನು ಪಡೆಯುತ್ತೀರಿ! ಈ ವಿಭಾಗವು pandas ಗ್ರಂಥಾಲಯವನ್ನು ಬಳಸುತ್ತದೆ. ನಿಮ್ಮ ಮೊದಲ ಕಾರ್ಯ CSV ಡೇಟಾವನ್ನು ಲೋಡ್ ಮಾಡಿ ಓದಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮಾಡುವುದು. pandas ಗ್ರಂಥಾಲಯದಲ್ಲಿ ವೇಗವಾದ CSV ಲೋಡರ್ ಇದೆ, ಮತ್ತು ಫಲಿತಾಂಶವನ್ನು ಡೇಟಾಫ್ರೇಮ್ನಲ್ಲಿ ಇಡಲಾಗುತ್ತದೆ, ಹಿಂದಿನ ಪಾಠಗಳಂತೆ. ನಾವು ಲೋಡ್ ಮಾಡುತ್ತಿರುವ CSV ನಲ್ಲಿ ಅರ್ಧ ಮಿಲಿಯನ್ಕ್ಕಿಂತ ಹೆಚ್ಚು ಸಾಲುಗಳಿವೆ, ಆದರೆ ಕೇವಲ 17 ಕಾಲಮ್ಗಳಿವೆ. pandas ನಿಮಗೆ ಡೇಟಾಫ್ರೇಮ್ನೊಂದಿಗೆ ಸಂವಹನ ಮಾಡಲು ಬಹಳ ಶಕ್ತಿಶಾಲಿ ವಿಧಾನಗಳನ್ನು ನೀಡುತ್ತದೆ, ಪ್ರತಿಯೊಂದು ಸಾಲಿನ ಮೇಲೆ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ಮಾಡಲು ಸಹ.
|
||||
|
||||
ಈ ಪಾಠದಿಂದ ಮುಂದುವರಿದಂತೆ, ಕೆಲವು ಕೋಡ್ ತುಣುಕುಗಳು ಮತ್ತು ಕೋಡ್ ವಿವರಣೆಗಳು ಮತ್ತು ಫಲಿತಾಂಶಗಳ ಅರ್ಥದ ಬಗ್ಗೆ ಚರ್ಚೆಗಳು ಇರುತ್ತವೆ. ನಿಮ್ಮ ಕೋಡ್ಗೆ ಸೇರಿಸಿರುವ _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 ಎಂದರೆ 'ಡೇಟಾಫ್ರೇಮ್' - ನೀವು ಫೈಲ್ ಅನ್ನು ಡೇಟಾ ಫೋಲ್ಡರ್ಗೆ ಡೌನ್ಲೋಡ್ ಮಾಡಿದ್ದೀರಾ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ
|
||||
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 ಮತ್ತು ಭಾವನೆಯಲ್ಲಿ ಮುಳುಗುವ ಮೊದಲು, ಕೆಳಗಿನ ಕೋಡ್ ಅನ್ನು ಅನುಸರಿಸಿ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ನೀಡಲಾದ ಮೌಲ್ಯಗಳು pandas ಬಳಸಿ ಲೆಕ್ಕಹಾಕಿದ ಮೌಲ್ಯಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತವೆಯೇ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
|
||||
|
||||
## ಡೇಟಾಫ್ರೇಮ್ ಕಾರ್ಯಾಚರಣೆಗಳು
|
||||
|
||||
ಈ ಪಾಠದ ಮೊದಲ ಕಾರ್ಯ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವ ಕೋಡ್ ಬರೆಯುವುದು (ಬದಲಾವಣೆ ಮಾಡದೆ) ಕೆಳಗಿನ ದೃಢೀಕರಣಗಳು ಸರಿಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದು.
|
||||
|
||||
> ಅನೇಕ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಕಾರ್ಯಗಳಂತೆ, ಇದನ್ನು ಪೂರ್ಣಗೊಳಿಸುವ ಹಲವು ಮಾರ್ಗಗಳಿವೆ, ಆದರೆ ಉತ್ತಮ ಸಲಹೆ ಎಂದರೆ ಸರಳ, ಸುಲಭವಾದ ಮಾರ್ಗವನ್ನು ಆರಿಸುವುದು, ವಿಶೇಷವಾಗಿ ನೀವು ಭವಿಷ್ಯದಲ್ಲಿ ಈ ಕೋಡ್ಗೆ ಮರಳುವಾಗ ಅದನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಸುಲಭವಾಗಿರುತ್ತದೆ. ಡೇಟಾಫ್ರೇಮ್ಗಳೊಂದಿಗೆ, ನೀವು ಬಯಸುವ ಕಾರ್ಯವನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡಲು ಸಾಮಾನ್ಯವಾಗಿ ಮಾರ್ಗವಿರುವ ಸಮಗ್ರ API ಇದೆ.
|
||||
|
||||
ಕೆಳಗಿನ ಪ್ರಶ್ನೆಗಳನ್ನು ಕೋಡಿಂಗ್ ಕಾರ್ಯಗಳಾಗಿ ಪರಿಗಣಿಸಿ ಮತ್ತು ಪರಿಹಾರವನ್ನು ನೋಡದೆ ಉತ್ತರಿಸಲು ಪ್ರಯತ್ನಿಸಿ.
|
||||
|
||||
1. ನೀವು appena ಲೋಡ್ ಮಾಡಿದ ಡೇಟಾಫ್ರೇಮ್ನ *ಆಕಾರ* ಅನ್ನು ಮುದ್ರಿಸಿ (ಆಕಾರ ಎಂದರೆ ಸಾಲುಗಳ ಮತ್ತು ಕಾಲಮ್ಗಳ ಸಂಖ್ಯೆ)
|
||||
2. ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆಗಳ ಆವರ್ತನೆ ಎಣಿಕೆ ಲೆಕ್ಕಹಾಕಿ:
|
||||
1. `Reviewer_Nationality` ಕಾಲಮ್ಗೆ ಎಷ್ಟು ವಿಭಿನ್ನ ಮೌಲ್ಯಗಳಿವೆ ಮತ್ತು ಅವು ಯಾವುವು?
|
||||
2. ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಯಾವ ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾಗಿದೆ (ದೇಶ ಮತ್ತು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆ ಮುದ್ರಿಸಿ)?
|
||||
3. ಮುಂದಿನ ಟಾಪ್ 10 ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ರಾಷ್ಟ್ರೀಯತೆಗಳು ಮತ್ತು ಅವುಗಳ ಆವರ್ತನೆ ಎಣಿಕೆ ಯಾವುವು?
|
||||
3. ಟಾಪ್ 10 ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆಗಳಿಗೆ ಪ್ರತಿ ದೇಶದ ಅತ್ಯಂತ ವಿಮರ್ಶಿಸಲಾದ ಹೋಟೆಲ್ ಯಾವುದು?
|
||||
4. ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ ಎಷ್ಟು ವಿಮರ್ಶೆಗಳಿವೆ (ಹೋಟೆಲ್ ಆವರ್ತನೆ ಎಣಿಕೆ) ಡೇಟಾಸೆಟ್ನಲ್ಲಿ?
|
||||
5. ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ `Average_Score` ಕಾಲಮ್ ಇದ್ದರೂ, ನೀವು ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ ಎಲ್ಲಾ ವಿಮರ್ಶಕರ ಅಂಕಗಳ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಹಾಕಬಹುದು. ನಿಮ್ಮ ಡೇಟಾಫ್ರೇಮ್ಗೆ `Calc_Average_Score` ಎಂಬ ಹೊಸ ಕಾಲಮ್ ಸೇರಿಸಿ, ಅದು ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿಯನ್ನು ಹೊಂದಿರಲಿ.
|
||||
6. ಯಾವುದೇ ಹೋಟೆಲ್ಗಳಿಗೆ (1 ದಶಮಾಂಶ ಸ್ಥಾನಕ್ಕೆ ರೌಂಡ್ ಮಾಡಿದ) `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. ನೀವು appena ಲೋಡ್ ಮಾಡಿದ ಡೇಟಾಫ್ರೇಮ್ನ *ಆಕಾರ* ಅನ್ನು ಮುದ್ರಿಸಿ (ಆಕಾರ ಎಂದರೆ ಸಾಲುಗಳ ಮತ್ತು ಕಾಲಮ್ಗಳ ಸಂಖ್ಯೆ)
|
||||
|
||||
```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. ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಯಾವ ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆ ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾಗಿದೆ (ದೇಶ ಮತ್ತು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆ ಮುದ್ರಿಸಿ)?
|
||||
|
||||
```python
|
||||
# value_counts() ಒಂದು ಸೀರೀಸ್ ವಸ್ತುವನ್ನು ರಚಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಸೂಚ್ಯಂಕ ಮತ್ತು ಮೌಲ್ಯಗಳಿವೆ, ಈ ಪ್ರಕರಣದಲ್ಲಿ, ದೇಶ ಮತ್ತು ವಿಮರ್ಶಕ ರಾಷ್ಟ್ರೀಯತೆಯಲ್ಲಿ ಅವುಗಳ ಸಂಭವನೀಯತೆ
|
||||
nationality_freq = df["Reviewer_Nationality"].value_counts()
|
||||
print("There are " + str(nationality_freq.size) + " different nationalities")
|
||||
# ಸೀರೀಸ್ನ ಮೊದಲ ಮತ್ತು ಕೊನೆಯ ಸಾಲುಗಳನ್ನು ಮುದ್ರಿಸಿ. ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಮುದ್ರಿಸಲು 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. ಮುಂದಿನ ಟಾಪ್ 10 ಅತ್ಯಂತ ಸಾಮಾನ್ಯ ರಾಷ್ಟ್ರೀಯತೆಗಳು ಮತ್ತು ಅವುಗಳ ಆವರ್ತನೆ ಎಣಿಕೆ ಯಾವುವು?
|
||||
|
||||
```python
|
||||
print("The highest frequency reviewer nationality is " + str(nationality_freq.index[0]).strip() + " with " + str(nationality_freq[0]) + " reviews.")
|
||||
# ಮೌಲ್ಯಗಳಲ್ಲಿ ಮುಂಚಿತ ಖಾಲಿ ಜಾಗವಿದೆ, ಮುದ್ರಣಕ್ಕಾಗಿ ಅದನ್ನು strip() ತೆಗೆದುಹಾಕುತ್ತದೆ
|
||||
# ಅತಿ ಸಾಮಾನ್ಯ 10 ರಾಷ್ಟ್ರೀಯತೆಗಳು ಮತ್ತು ಅವುಗಳ ಆವರ್ತನೆಗಳು ಯಾವುವು?
|
||||
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. ಟಾಪ್ 10 ವಿಮರ್ಶಕರ ರಾಷ್ಟ್ರೀಯತೆಗಳಿಗೆ ಪ್ರತಿ ದೇಶದ ಅತ್ಯಂತ ವಿಮರ್ಶಿಸಲಾದ ಹೋಟೆಲ್ ಯಾವುದು?
|
||||
|
||||
```python
|
||||
# ಟಾಪ್ 10 ರಾಷ್ಟ್ರೀಯತೆಗಳಿಗೆ ಅತ್ಯಂತ ಹೆಚ್ಚು ವಿಮರ್ಶಿಸಲಾದ ಹೋಟೆಲ್ ಯಾವುದು
|
||||
# ಸಾಮಾನ್ಯವಾಗಿ pandas ನಲ್ಲಿ ನೀವು ಸ್ಪಷ್ಟ ಲೂಪ್ ಅನ್ನು ತಪ್ಪಿಸುವಿರಿ, ಆದರೆ ಮಾನದಂಡಗಳನ್ನು ಬಳಸಿ ಹೊಸ ಡೇಟಾಫ್ರೇಮ್ ರಚಿಸುವುದನ್ನು ತೋರಿಸಲು ಬಯಸಿದೆ (ಬಹಳ ದೊಡ್ಡ ಡೇಟಾ ಪ್ರಮಾಣದೊಂದಿಗೆ ಇದನ್ನು ಮಾಡಬೇಡಿ ಏಕೆಂದರೆ ಇದು ತುಂಬಾ ನಿಧಾನವಾಗಬಹುದು)
|
||||
for nat in nationality_freq[:10].index:
|
||||
# ಮೊದಲು, ಮಾನದಂಡಗಳಿಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಎಲ್ಲಾ ಸಾಲುಗಳನ್ನು ಹೊಸ ಡೇಟಾಫ್ರೇಮ್ಗೆ ಹೊರತೆಗೆಯಿರಿ
|
||||
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. ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ ಎಷ್ಟು ವಿಮರ್ಶೆಗಳಿವೆ (ಹೋಟೆಲ್ ಆವರ್ತನೆ ಎಣಿಕೆ) ಡೇಟಾಸೆಟ್ನಲ್ಲಿ?
|
||||
|
||||
```python
|
||||
# ಹಳೆಯದನ್ನು ಆಧರಿಸಿ ಹೊಸ ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ಮೊದಲಿಗೆ ರಚಿಸಿ, ಅಗತ್ಯವಿಲ್ಲದ ಕಾಲಮ್ಗಳನ್ನು ತೆಗೆದುಹಾಕಿ
|
||||
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 |
|
||||
|
||||
ನೀವು ಗಮನಿಸಬಹುದು ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಎಣಿಸಿದ ಫಲಿತಾಂಶಗಳು `Total_Number_of_Reviews` ಮೌಲ್ಯಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುತ್ತಿಲ್ಲ. ಈ ಮೌಲ್ಯವು ಹೋಟೆಲ್ಗೆ ಒಟ್ಟು ವಿಮರ್ಶೆಗಳ ಸಂಖ್ಯೆ ಸೂಚಿಸುತ್ತಿದೆಯೇ ಅಥವಾ ಎಲ್ಲಾ ವಿಮರ್ಶೆಗಳು ಸ್ಕ್ರೇಪ್ ಆಗಿಲ್ಲವೇ ಅಥವಾ ಬೇರೆ ಲೆಕ್ಕಾಚಾರವೇ ಎಂಬುದು ಸ್ಪಷ್ಟವಿಲ್ಲ. ಈ ಅಸ್ಪಷ್ಟತೆಯ ಕಾರಣದಿಂದ `Total_Number_of_Reviews` ಅನ್ನು ಮಾದರಿಯಲ್ಲಿ ಬಳಸಲಾಗುವುದಿಲ್ಲ.
|
||||
|
||||
5. ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ `Average_Score` ಕಾಲಮ್ ಇದ್ದರೂ, ನೀವು ಪ್ರತಿ ಹೋಟೆಲ್ಗೆ ಎಲ್ಲಾ ವಿಮರ್ಶಕರ ಅಂಕಗಳ ಸರಾಸರಿಯನ್ನು ಲೆಕ್ಕಹಾಕಬಹುದು. ನಿಮ್ಮ ಡೇಟಾಫ್ರೇಮ್ಗೆ `Calc_Average_Score` ಎಂಬ ಹೊಸ ಕಾಲಮ್ ಸೇರಿಸಿ, ಅದು ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿಯನ್ನು ಹೊಂದಿರಲಿ. `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)
|
||||
|
||||
# Hotel_Name ನ ಎಲ್ಲಾ ನಕಲುಗಳನ್ನು ತೆಗೆದುಹಾಕಿ df ರಚಿಸಿ (ಹೀಗಾಗಿ ಪ್ರತಿ ಹೋಟೆಲಿಗೆ ಕೇವಲ 1 ಸಾಲು ಮಾತ್ರ)
|
||||
review_scores_df = df.drop_duplicates(subset = ["Hotel_Name"])
|
||||
|
||||
# ಕಡಿಮೆ ಮತ್ತು ಹೆಚ್ಚು ಸರಾಸರಿ ಅಂಕ ವ್ಯತ್ಯಾಸವನ್ನು ಕಂಡುಹಿಡಿಯಲು ಡೇಟಾಫ್ರೇಮ್ ಅನ್ನು ವಿಂಗಡಿಸಿ
|
||||
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` ಮೌಲ್ಯ ಮತ್ತು ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿ ಅಂಕಗಳ ನಡುವೆ ಕೆಲವೊಮ್ಮೆ ವ್ಯತ್ಯಾಸ ಏಕೆ ಇದೆ ಎಂದು ಆಶ್ಚರ್ಯಪಡಬಹುದು. ಕೆಲವು ಮೌಲ್ಯಗಳು ಹೊಂದಿಕೆಯಾಗುತ್ತವೆ, ಆದರೆ ಇತರವು ವ್ಯತ್ಯಾಸ ಹೊಂದಿರುವುದಕ್ಕೆ ಕಾರಣ ತಿಳಿಯದಿದ್ದರೂ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ನಾವು ಹೊಂದಿರುವ ವಿಮರ್ಶಾ ಅಂಕಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಸರಾಸರಿಯನ್ನು ಸ್ವತಃ ಲೆಕ್ಕಹಾಕುವುದು ಸುರಕ್ಷಿತ. ವ್ಯತ್ಯಾಸಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಬಹಳ ಸಣ್ಣವಾಗಿವೆ, ಇಲ್ಲಿ ಡೇಟಾಸೆಟ್ ಸರಾಸರಿ ಮತ್ತು ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿಯಿಂದ ಅತ್ಯಂತ ವ್ಯತ್ಯಾಸ ಹೊಂದಿರುವ ಹೋಟೆಲ್ಗಳಿವೆ:
|
||||
|
||||
| Average_Score_Difference | Average_Score | Calc_Average_Score | Hotel_Name |
|
||||
| :----------------------: | :-----------: | :----------------: | ------------------------------------------: |
|
||||
| -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 |
|
||||
|
||||
1 ಕ್ಕಿಂತ ಹೆಚ್ಚು ವ್ಯತ್ಯಾಸ ಹೊಂದಿರುವ ಹೋಟೆಲ್ ಒಂದೇ ಇದ್ದುದರಿಂದ, ನಾವು ವ್ಯತ್ಯಾಸವನ್ನು ನಿರ್ಲಕ್ಷಿಸಿ ಲೆಕ್ಕಹಾಕಿದ ಸರಾಸರಿ ಅಂಕವನ್ನು ಬಳಸಬಹುದು ಎಂದು ಅರ್ಥ.
|
||||
|
||||
6. `Negative_Review` ಕಾಲಮ್ನಲ್ಲಿ "No Negative" ಮೌಲ್ಯ ಇರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿ
|
||||
|
||||
7. `Positive_Review` ಕಾಲಮ್ನಲ್ಲಿ "No Positive" ಮೌಲ್ಯ ಇರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿ
|
||||
|
||||
8. `Positive_Review` ಕಾಲಮ್ನಲ್ಲಿ "No Positive" ಮತ್ತು `Negative_Review` ಕಾಲಮ್ನಲ್ಲಿ "No Negative" ಮೌಲ್ಯಗಳಿರುವ ಸಾಲುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಲೆಕ್ಕಿಸಿ ಮತ್ತು ಮುದ್ರಿಸಿ
|
||||
|
||||
```python
|
||||
# ಲ್ಯಾಂಬ್ಡಾಗಳೊಂದಿಗೆ:
|
||||
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
|
||||
```
|
||||
|
||||
## ಇನ್ನೊಂದು ವಿಧಾನ
|
||||
|
||||
Lambda ಗಳನ್ನು ಬಳಸದೆ ಐಟಂಗಳನ್ನು ಎಣಿಸುವ ಮತ್ತೊಂದು ವಿಧಾನ, ಮತ್ತು ಸಾಲುಗಳನ್ನು ಎಣಿಸಲು sum ಬಳಸಿ:
|
||||
|
||||
```python
|
||||
# ಲ್ಯಾಂಬ್ಡಾಗಳಿಲ್ಲದೆ (ನೀವು ಎರಡನ್ನೂ ಬಳಸಬಹುದು ಎಂದು ತೋರಿಸಲು ನೋಟೇಶನ್ಗಳ ಮಿಶ್ರಣವನ್ನು ಬಳಸಿಕೊಂಡು)
|
||||
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
|
||||
```
|
||||
|
||||
ನೀವು ಗಮನಿಸಿದ್ದೀರಾ, 127 ಸಾಲುಗಳಲ್ಲಿ `Negative_Review` ಮತ್ತು `Positive_Review` ಕಾಲಮ್ಗಳಲ್ಲಿ ಕ್ರಮವಾಗಿ "No Negative" ಮತ್ತು "No Positive" ಮೌಲ್ಯಗಳಿವೆ. ಅಂದರೆ ವಿಮರ್ಶಕರು ಹೋಟೆಲ್ಗೆ ಸಂಖ್ಯಾತ್ಮಕ ಅಂಕ ನೀಡಿದರೂ, ಧನಾತ್ಮಕ ಅಥವಾ ನಕಾರಾತ್ಮಕ ವಿಮರ್ಶೆ ಬರೆಯಲು ನಿರಾಕರಿಸಿದ್ದಾರೆ. ಅದೃಷ್ಟವಶಾತ್, ಇದು ಸಣ್ಣ ಪ್ರಮಾಣದ ಸಾಲುಗಳು (127 ರಲ್ಲಿ 515738, ಅಥವಾ 0.02%), ಆದ್ದರಿಂದ ಇದು ನಮ್ಮ ಮಾದರಿ ಅಥವಾ ಫಲಿತಾಂಶಗಳನ್ನು ಯಾವುದೇ ವಿಶೇಷ ದಿಕ್ಕಿನಲ್ಲಿ ಬದಲಿಸುವುದಿಲ್ಲ, ಆದರೆ ವಿಮರ್ಶೆಗಳ ಡೇಟಾಸೆಟ್ನಲ್ಲಿ ವಿಮರ್ಶೆಗಳಿಲ್ಲದ ಸಾಲುಗಳಿರುವುದು ಅಚ್ಚರಿಯ ಸಂಗತಿ, ಆದ್ದರಿಂದ ಇಂತಹ ಸಾಲುಗಳನ್ನು ಅನ್ವೇಷಿಸುವುದು ಮುಖ್ಯ.
|
||||
|
||||
ನೀವು ಡೇಟಾಸೆಟ್ ಅನ್ನು ಅನ್ವೇಷಿಸಿದ ನಂತರ, ಮುಂದಿನ ಪಾಠದಲ್ಲಿ ನೀವು ಡೇಟಾವನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ ಮತ್ತು ಕೆಲವು ಭಾವನಾತ್ಮಕ ವಿಶ್ಲೇಷಣೆ ಸೇರಿಸುವಿರಿ.
|
||||
|
||||
---
|
||||
## 🚀ಸವಾಲು
|
||||
|
||||
ಈ ಪಾಠವು, ಹಿಂದಿನ ಪಾಠಗಳಲ್ಲಿ ನೋಡಿದಂತೆ, ನಿಮ್ಮ ಡೇಟಾ ಮತ್ತು ಅದರ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಕಾರ್ಯಾಚರಣೆ ಮಾಡುವ ಮೊದಲು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಎಷ್ಟು ಮಹತ್ವದದ್ದು ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ. ಪಠ್ಯ ಆಧಾರಿತ ಡೇಟಾ ವಿಶೇಷವಾಗಿ ಜಾಗರೂಕ ಪರಿಶೀಲನೆಗೆ ಒಳಪಡುತ್ತದೆ. ವಿವಿಧ ಪಠ್ಯಭರಿತ ಡೇಟಾಸೆಟ್ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ, ಮಾದರಿಯಲ್ಲಿ ಬಯಾಸ್ ಅಥವಾ ಭಾವನಾತ್ಮಕ ತಿರುವುಗಳನ್ನು ಪರಿಚಯಿಸಬಹುದಾದ ಪ್ರದೇಶಗಳನ್ನು ಕಂಡುಹಿಡಿಯಿರಿ.
|
||||
|
||||
## [ಪಾಠದ ನಂತರದ ಪ್ರಶ್ನೋತ್ತರ](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)
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕಾರ**:
|
||||
ಈ ದಸ್ತಾವೇಜು [Co-op Translator](https://github.com/Azure/co-op-translator) ಎಂಬ AI ಅನುವಾದ ಸೇವೆಯನ್ನು ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ಶುದ್ಧತೆಯತ್ತ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ತಪ್ಪುಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,21 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "bf39bceb833cd628f224941dca8041df",
|
||||
"translation_date": "2025-12-19T14:24:54+00:00",
|
||||
"source_file": "6-NLP/4-Hotel-Reviews-1/assignment.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
# NLTK
|
||||
|
||||
## ಸೂಚನೆಗಳು
|
||||
|
||||
NLTK ಗಣನೀಯ ಭಾಷಾಶಾಸ್ತ್ರ ಮತ್ತು NLP ನಲ್ಲಿ ಬಳಸಲು ಪ್ರಸಿದ್ಧ ಗ್ರಂಥಾಲಯವಾಗಿದೆ. '[NLTK ಪುಸ್ತಕ](https://www.nltk.org/book/)' ಅನ್ನು ಓದಿ ಅದರ ವ್ಯಾಯಾಮಗಳನ್ನು ಪ್ರಯತ್ನಿಸುವ ಅವಕಾಶವನ್ನು ಪಡೆದುಕೊಳ್ಳಿ. ಈ ಅಗ್ರೇಡ್ ಮಾಡದ ಕಾರ್ಯದಲ್ಲಿ, ನೀವು ಈ ಗ್ರಂಥಾಲಯವನ್ನು ಹೆಚ್ಚು ಆಳವಾಗಿ ತಿಳಿದುಕೊಳ್ಳುವಿರಿ.
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಮಹತ್ವದ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||
@ -0,0 +1,17 @@
|
||||
<!--
|
||||
CO_OP_TRANSLATOR_METADATA:
|
||||
{
|
||||
"original_hash": "a39c15d63f3b2795ee2284a82b986b93",
|
||||
"translation_date": "2025-12-19T14:47:49+00:00",
|
||||
"source_file": "6-NLP/4-Hotel-Reviews-1/solution/Julia/README.md",
|
||||
"language_code": "kn"
|
||||
}
|
||||
-->
|
||||
ಇದು ತಾತ್ಕಾಲಿಕ ಪ್ಲೇಸ್ಹೋಲ್ಡರ್ ಆಗಿದೆ
|
||||
|
||||
---
|
||||
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
||||
**ಅಸ್ವೀಕರಣ**:
|
||||
ಈ ದಸ್ತಾವೇಜು AI ಅನುವಾದ ಸೇವೆ [Co-op Translator](https://github.com/Azure/co-op-translator) ಬಳಸಿ ಅನುವಾದಿಸಲಾಗಿದೆ. ನಾವು ನಿಖರತೆಯಿಗಾಗಿ ಪ್ರಯತ್ನಿಸುತ್ತಿದ್ದರೂ, ಸ್ವಯಂಚಾಲಿತ ಅನುವಾದಗಳಲ್ಲಿ ದೋಷಗಳು ಅಥವಾ ಅಸತ್ಯತೆಗಳು ಇರಬಹುದು ಎಂದು ದಯವಿಟ್ಟು ಗಮನಿಸಿ. ಮೂಲ ಭಾಷೆಯಲ್ಲಿರುವ ಮೂಲ ದಸ್ತಾವೇಜನ್ನು ಅಧಿಕೃತ ಮೂಲವೆಂದು ಪರಿಗಣಿಸಬೇಕು. ಪ್ರಮುಖ ಮಾಹಿತಿಗಾಗಿ, ವೃತ್ತಿಪರ ಮಾನವ ಅನುವಾದವನ್ನು ಶಿಫಾರಸು ಮಾಡಲಾಗುತ್ತದೆ. ಈ ಅನುವಾದ ಬಳಕೆಯಿಂದ ಉಂಟಾಗುವ ಯಾವುದೇ ತಪ್ಪು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವಿಕೆ ಅಥವಾ ತಪ್ಪು ವಿವರಣೆಗಳಿಗೆ ನಾವು ಹೊಣೆಗಾರರಾಗುವುದಿಲ್ಲ.
|
||||
<!-- CO-OP TRANSLATOR DISCLAIMER END -->
|
||||