# ចាប់ផ្តើមជាមួយ Python និង Scikit-learn សម្រាប់ម៉ូដែលស្ទាតការវិលត្រឡប់ ![សង្ខេបនៃការវិលត្រឡប់ក្នុងសេខេណូត](../../../../translated_images/km/ml-regression.4e4f70e3b3ed446e.webp) > សេខេណូតដោយ [Tomomi Imura](https://www.twitter.com/girlie_mac) ## [កម្រងសំនួរមុនថ្នាក់រៀន](https://ff-quizzes.netlify.app/en/ml/) > ### [មេរៀននេះមានសម្រាប់ R!](../../../../2-Regression/1-Tools/solution/R/lesson_1.html) ## ការណែនាំ ក្នុងមេរៀនបួននេះ អ្នកនឹងបានស្គាល់របៀបបង្កើតម៉ូដែលស្ទាតការវិលត្រឡប់។ យើងនឹងពិភាក្សាតើវាគ្រាន់តែជារឿងអ្វីក្នុងពេលឆាប់ៗនេះ។ ប៉ុន្ដែមុននឹងធ្វើអ្វីមួយ សូមប្រាកដថាអ្នកមានឧបករណ៍ត្រឹមត្រូវដើម្បីចាប់ផ្តើមដំណើរការនេះ! ក្នុងមេរៀននេះ អ្នកនឹងរៀនពីរបៀបៈ - កំណត់រចនាសម្ព័ន្ធកុំព្យូទ័ររបស់អ្នកសម្រាប់ភារកិច្ចម៉ាស៊ីនរៀនក្នុងមូលដ្ឋាន។ - ធ្វើការងារជាមួយ Jupyter Notebooks។ - ប្រើប្រាស់ Scikit-learn រួមទាំងការដំឡើង។ - ស្វែងយល់អំពីស្ទាតការវិលត្រឡប់បន្ទាត់ជាមួយការ ហាត់បទដៃ។ ## ការដំឡើង និង ការកំណត់រចនាសម្ព័ន្ធ [![ML សម្រាប់ចាប់ផ្តើម - តំឡើងឧបករណ៍របស់អ្នកធ្វើការរៀបចំម៉ូដែលម៉ាស៊ីនរៀន](https://img.youtube.com/vi/-DfeD2k2Kj0/0.jpg)](https://youtu.be/-DfeD2k2Kj0 "ML សម្រាប់ចាប់ផ្តើម - តំឡើងឧបករណ៍របស់អ្នកធ្វើការរៀបចំម៉ូដែលម៉ាស៊ីនរៀន") > 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូចុងខ្លីដែលបង្ហាញពីរបៀបកំណត់រចនាសម្ព័ន្ធកុំព្យូទ័ររបស់អ្នកសម្រាប់ ML។ 1. **ដំឡើង Python**។ ប្រាកដថា [Python](https://www.python.org/downloads/) បានដំឡើងលើកុំព្យូទ័ររបស់អ្នក។ អ្នកនឹងប្រើ Python សម្រាប់ភារកិច្ចបរិច្ចាគទិន្នន័យ និងម៉ាស៊ីនរៀនជាច្រើន។ ប្រព័ន្ធកុំព្យូទ័រច្រើនដែលមានរួចហើយមានការដំឡើង Python រួច។ មានកញ្ចប់ [Python Coding Packs](https://code.visualstudio.com/learn/educators/installers?WT.mc_id=academic-77952-leestott) ដែលមានប្រយោជន៍ផងដែរ ដើម្បីអោយការតំឡើងស្រួលសម្រាប់អ្នកប្រើប្រាស់ខ្លះ។ ប៉ុន្មានការប្រើប្រាស់នៃ Python ត្រូវការពេញលេញនូវកំណែបញ្ជីនៃកម្មវិធី នៅពេលដែលអ្នកដទៃត្រូវការតែកំណែផ្សេងទៀត។ ដូច្នេះវាជារឿងមានប្រយោជន៍ក្នុងការប្រើប្រាស់ក្នុង [បរិស្ថានvirtuាl](https://docs.python.org/3/library/venv.html)។ 2. **ដំឡើង Visual Studio Code**។ សូមប្រាកដថាអ្នកបានដំឡើង Visual Studio Code លើកុំព្យូទ័ររបស់អ្នក។ អ្នកអាចធ្វើតាមការណែនាំនេះដើម្បី [ដំឡើង Visual Studio Code](https://code.visualstudio.com/) សម្រាប់ការដំឡើងមូលដ្ឋាន។ អ្នកនឹងប្រើ Python ក្នុង Visual Studio Code ក្នុងវគ្គនេះ ដូច្នេះអ្នកអាចចង់រៀនវិធី [កំណត់រចនាសម្ព័ន្ធ Visual Studio Code](https://docs.microsoft.com/learn/modules/python-install-vscode?WT.mc_id=academic-77952-leestott) សម្រាប់ការអភិវឌ្ឍ Python។ > សូមទទួលបានភាពស្រួលជាមួយ Python ដោយធ្វើការងារតាមបណ្ណាល័យ [Learn modules](https://docs.microsoft.com/users/jenlooper-2911/collections/mp1pagggd5qrq7?WT.mc_id=academic-77952-leestott) > > [![តំឡើង Python ជាមួយ Visual Studio Code](https://img.youtube.com/vi/yyQM70vi7V8/0.jpg)](https://youtu.be/yyQM70vi7V8 "តំឡើង Python ជាមួយ Visual Studio Code") > > 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូ៖ ការប្រើ Python ក្នុង VS Code។ 3. **ដំឡើង Scikit-learn**, ដោយធ្វើតាម [ការណែនាំទាំងនេះ](https://scikit-learn.org/stable/install.html)។ ពីព្រោះអ្នកត្រូវប្រាកដថាអ្នកប្រើ Python 3 អ្នកត្រូវបានផ្តល់អនុសាសន៍ឲ្យប្រើបរិស្ថាន virutual ។ គួរសម្គាល់ថាបើអ្នកដំឡើងបណ្ណាល័យនេះលើ M1 Mac មានការណែនាំពិសេសនៅលើទំព័រគេហទំព័រដែលបានភ្ជាប់ខាងលើ។ 1. **ដំឡើង Jupyter Notebook**។ អ្នកត្រូវការដំឡើង [កញ្ចប់ Jupyter](https://pypi.org/project/jupyter/)។ ## បរិយាកាសការសរសេរ ML របស់អ្នក អ្នកនឹងប្រើ **notebooks** ដើម្បីអភិវឌ្ឍកូដ Python និងបង្កើតម៉ូដែលម៉ាស៊ីនរៀន។ ប្រភេទឯកសារនេះគឺជាឧបករណ៍ធម្មតាសម្រាប់អ្នកវិទ្យាសាស្ត្រ ទិន្នន័យ ហើយវា​ត្រូវបានកំណត់ដោយនាមគន្លង ឬផ្នែកបន្ថែម `.ipynb`។ Notebooks គឺជាបរិយាកាសអន្តរកម្ម ដែលអនុញ្ញាតឲ្យអ្នកអភិវឌ្ឍការសរសេរកូដ និងបន្ថែមបញ្ញត្តិអត្ថាធិប្បាយ និងសរសេរឯកសារ ដើម្បីជួយសម្រាប់គម្រោងស្រាវជ្រាវឬសាកល្បង។ [![ML សម្រាប់ចាប់ផ្តើម - ដំឡើង Jupyter Notebooks ដើម្បីចាប់ផ្តើមបង្កើតម៉ូដែលស្ទាតការវិលត្រឡប់](https://img.youtube.com/vi/7E-jC8FLA2E/0.jpg)](https://youtu.be/7E-jC8FLA2E "ML សម្រាប់ចាប់ផ្តើម - ដំឡើង Jupyter Notebooks ដើម្បីចាប់ផ្តើមបង្កើតម៉ូដែលស្ទាតការវិលត្រឡប់") > 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូចុងខ្លីដែលបង្ហាញពីលំហាត់នេះ។ ### លំហាត់ - ធ្វើការជាមួយ notebook នៅក្នុងថតនេះ អ្នកនឹងឃើញឯកសារ _notebook.ipynb_។ 1. បើក _notebook.ipynb_ ក្នុង Visual Studio Code។ ម៉ាស៊ីនបម្រើ Jupyter នឹងចាប់ផ្តើមជាមួយ Python 3+។ អ្នកនឹងឃើញតំបន់ក្នុង notebook ដែលអាច `run` ដែលជាផ្នែកនៃកូដ។ អ្នកអាចរត់កូដដោយជ្រើសរើសរូបតំណាងដែលមើលទៅដូចប៊ូតុងលេង។ 1. ជ្រើសរើសរូបតំណាង `md` ហើយបន្ថែម markdown ធ្វើការលើអត្ថបទខាងក្រោម **# សូមស្វាគមន៍ទៅកាន់ notebook របស់អ្នក**។ បន្ទាប់មក បន្ថែមកូដ Python មួយចំនួន។ 1. វាយ **print('hello notebook')** នៅក្នុងប្លុកកូដ។ 1. ជ្រើសរើសស្នាម្រង់ដើម្បីរត់កូដ។ អ្នកគួរតែឃើញកថាខណ្ឌទិន្នន័យដែលបានបោះពុម្ព៖ ```output hello notebook ``` ![VS Code ជាមួយ notebook បើក](../../../../translated_images/km/notebook.4a3ee31f396b8832.webp) អ្នកអាចបញ្ចូលកូដរបស់អ្នកជាមួយការពិពណ៌នាដើម្បីឯកសារយោងខ្លួនចំពោះ notebook។ ✅ សូមគិតមើលពេលខ្លីពីភាពខុសគ្នានៃបរិយាកាសការងាររបស់អ្នកអភិវឌ្ឍវេបសាយ ជាមួយនឹងអ្នកវិទ្យាសាស្ត្រទិន្នន័យ។ ## ចាប់ផ្តើមបើកដំណើរការជាមួយ Scikit-learn ឥឡូវនេះ Python ត្រូវបានដំឡើងក្នុងបរិយាកាសមូលដ្ឋានរបស់អ្នក និងអ្នកស្រួលប្រើ Jupyter Notebooks តោះ​ឲ្យស្រួលប្រើ Scikit-learn ផង (អានថា `sci` ដូចជា `science`)។ Scikit-learn ផ្តល់នូវ [API ទូលំទូលាយ](https://scikit-learn.org/stable/modules/classes.html#api-ref) ដើម្បីជួយអ្នកអនុវត្តភារកិច្ច ML។ យោងតាម [គេហទំព័រ](https://scikit-learn.org/stable/getting_started.html) របស់ពួកគេថា "Scikit-learn គឺជាបណ្ណាល័យម៉ាស៊ីនរៀនប្រភពបើក ដែលគាំទ្រការរៀនមានការត្រួតពិនិត្យ និងគ្មានការត្រួតពិនិត្យ។ វាក៏ផ្តល់សារពើភ័ណ្ឌឧបករណ៍នានាសម្រាប់ការតម្រូវម៉ូដែល ការរៀបចំទិន្នន័យជាមុន ការជ្រើសរើសម៉ូដែល និងការបាយតម្លៃ និងឧបករណ៍ជាច្រើនផ្សេងទៀត។" នៅក្នុងវគ្គនេះ អ្នកនឹងប្រើ Scikit-learn និងឧបករណ៍ផ្សេងទៀត ដើម្បីបង្កើតម៉ូដែលម៉ាស៊ីនរៀន ដើម្បីអនុវត្តអ្វីដែលយើងហៅថា 'ការរៀនម៉ាស៊ីនធម្មតា'។ យើងបានចៀសវាងបណ្តាញប្រព័ន្ធសរសៃប្រសាទ និងការរៀនជ្រៅ ពីព្រោះវាត្រូវបានគ្របដណ្តប់ល្អនៅក្នុងមុខវិជ្ជា 'AI សម្រាប់ចាប់ផ្តើម' ដែលនឹងមកដល់។ Scikit-learn ធ្វើឲ្យវាងាយស្រួលក្នុងការបង្កើតម៉ូដែល និងបាយតម្លៃវាសម្រាប់ប្រើ។ វាចំណាយផ្តោតលើការប្រើប្រាស់ទិន្នន័យចំនួន និងមានឧបករណ៍ទិន្នន័យរួចសម្រាប់ឲ្យជាគំរូរៀន។ វាក៏រួមមានម៉ូដែលដែលបានសាងសង់រួចសម្រាប់និស្សិតសាកល្បងផងដែរ។ តោះស្វែងយល់ពីដំណើរនៃការផ្ទុកទិន្នន័យដែលមានរួច និងប្រើប្រមាណករដែលមានក្នុង Scikit-learn ជាឆ្នាត់ម៉ូដែល ML ដំបូងជាមួយទិន្នន័យមូលដ្ឋាន។ ## លំហាត់ - notebook Scikit-learn ដំបូងរបស់អ្នក > មេរៀននេះទទួលចំណិតចេញពី [ឧទាហរណ៍ស្ទាតការវិលត្រឡប់បន្ទាត់](https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py) នៅលើគេហទំព័រ Scikit-learn។ [![ML សម្រាប់ចាប់ផ្តើម - គម្រោងស្ទាតការវិលត្រឡប់បន្ទាត់ដំបូងរបស់អ្នកនៅក្នុង Python](https://img.youtube.com/vi/2xkXL5EUpS0/0.jpg)](https://youtu.be/2xkXL5EUpS0 "ML សម្រាប់ចាប់ផ្តើម - គម្រោងស្ទាតការវិលត្រឡប់បន្ទាត់ដំបូងរបស់អ្នកនៅក្នុង Python") > 🎥 ចុចរូបភាពខាងលើសម្រាប់វីដេអូចុងខ្លីដែលបង្ហាញពីលំហាត់នេះ។ នៅក្នុងឯកសារ _notebook.ipynb_ ជាប់សម្រាប់មេរៀននេះ សូមសម្អាតក្រឡាចេញពីសែលទាំងអស់ដោយចុចសញ្ញាធុងសំរាម។ នៅក្នុងផ្នែកនេះ អ្នកនឹងធ្វើការជាមួយឌាតាប៊ីសតូចមួយអំពីជំងឺទឹកនោមផ្អែម ដែលបានបង្កើតស្រាប់ក្នុង Scikit-learn សម្រាប់គោលបំណងរៀន។ សូមស្រមៃថាអ្នកចង់សាកល្បងការព្យាបាលសម្រាប់អ្នកជំងឺទឹកនោមផ្អែម។ ម៉ូដែលម៉ាស៊ីនរៀនអាចជួយអ្នកកំណត់ថា អ្នកជំងឺណាដែលនឹងឆ្លើយតបទៅនឹងការព្យាបាលល្អបំផុត ដោយផ្អែកលើការប្រមូលមួយចំនួននៃអថេរផ្សេងៗ។ ទោះបីជាម៉ូដែលស្ទាតការវិលត្រឡប់មូលដ្ឋានត្រឹមតែបង្ហាញពណ៌នាក្នុងការបង្ហាញអំពីអថេរដែលជួយអ្នករៀបចំការសាកល្បងវេជ្ជសាស្រ្តរបស់អ្នក។ ✅ មានវិធីសាស្ត្រស្ទាតការវិលត្រឡប់ជាច្រើនប្រភេទ ហើយជ្រើសរើសយ៉ាងណាស្ថិតលើចម្លើយដែលអ្នកកំពុងស្វែងរក។ ប្រសិនបើអ្នកចង់ទាយទម្លៃពីកម្ពស់ដែលអាចមានសម្រាប់មនុស្សម្នាក់ នៅវ័យកំណត់មួយ អ្នកនឹងប្រើស្ទាតការវិលត្រឡប់បន្ទាត់ ព្រោះអ្នកកំពុងស្វែងរក **តម្លៃចំនួន**។ ប្រសិនបើអ្នកចាប់អារម្មណ៍ថាតើប្រភេទម្ហូបអាហារមួយគួរត្រូវបានគេដាក់បញ្ចូលជាវេហ្សានឬអត់ អ្នកកំពុងស្វែងរក **ការចាត់ថ្នាក់ផ្នែក** ដូច្នេះអ្នកនឹងប្រើឡូជីស្ទិចស្ទាតការវិលត្រឡប់។ អ្នកនឹងរៀនបន្ថែមអំពីឡូជីស្ទិចស្ទាតការវិលត្រឡប់នៅពេលក្រោយ។ សូមគិតពីសំនួរខ្លះៗដែលអ្នកអាចសួរបានពីទិន្នន័យ ហើយវិធីសាស្រ្តណាមួយនៃវិធីសាស្ត្រខាងលើមានសមតុល្យជាង។ តោះ ចាប់ផ្តើមលើភារកិច្ចនេះ។ ### នាំចូលបណ្ណាល័យ សម្រាប់ភារកិច្ចនេះ យើងនឹងនាំចូលបណ្ណាល័យខ្លះៗ៖ - **matplotlib**។ វាជាឧបករណ៍ [គំនូសតាង](https://matplotlib.org/) ប្រើប្រាស់បានល្អ ហើយយើងនឹងប្រើវាសម្រាប់បង្កើតខ្សែបន្ទាត់គំនូស។ - **numpy**។ [numpy](https://numpy.org/doc/stable/user/whatisnumpy.html) គឺជាបណ្ណាល័យមានប្រយោជន៍សម្រាប់គ្រប់គ្រងទិន្នន័យចំនួនក្នុង Python។ - **sklearn**។ នេះគឺជាបណ្ណាល័យ [Scikit-learn](https://scikit-learn.org/stable/user_guide.html)។ នាំចូលបណ្ណាល័យមួយចំនួន ដើម្បីជួយអ្នកក្នុងភារកិច្ច។ 1. បន្ថែមការimport ដោយវាយកូដខាងក្រោម៖ ```python import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selection ``` ខាងលើ អ្នកកំពុងនាំចូល `matplotlib`, `numpy` និងក៏នាំចូល `datasets`, `linear_model` និង `model_selection` ពី `sklearn`។ `model_selection` ត្រូវបានប្រើសម្រាប់បំបែកទិន្នន្យ័យជា ឈុតបណ្តុះបណ្តាល និង ឈុតសាកល្បង។ ### ឌាតាប៊ីសជំងឺទឹកនោមផ្អែម ឌាតាប៊ីសដែលបានបញ្ចូលក្នុង [diabetes dataset](https://scikit-learn.org/stable/datasets/toy_dataset.html#diabetes-dataset) មានគំរូទិន្នន័យចំនួន 442 អំពីជំងឺទឹកនោមផ្អែម ជាមួយអថេរគុណភាពចំនួន 10 ដែលមាន៖ - អាយុ៖ អាយុជាឆ្នាំ - bmi: ដង់ស៊ីតេមាស៊ីនរាងកាយ - bp: សំពាធឈាមមធ្យម - s1 tc: T-Cells (ប្រភេទមួយនៃកោសិកាឈាមស) ✅ ឌាតាប៊ីសនេះរួមមានមួយក្នុងចំណោមអថេរគុណភាព 'ភេទ' ដែលមានសារៈសំខាន់ក្នុងការស្រាវជ្រាវជំងឺទឹកនោមផ្អែម។ ឌាតាេប៊ីសវេជ្ជសាស្រ្តជាច្រើនរួមបញ្ចូលការចាត់ថ្នាក់ឯកសារជាគូ។ សូមគិតពីរបៀបដែលការចាត់ថ្នាក់ដូចនេះអាចដកបណ្តាផ្នែកមួយនៃប្រជាជនពីការព្យាបាល។ ឥឡូវនេះ សូមផ្ទុកទិន្នន័យ X និង y។ > 🎓 សូមចងចាំថា នេះគឺជាការរៀនដោយការត្រួតពិនិត្យ ហើយត្រូវការកំណត់គោលដៅភ្ជាប់នាម 'y'។ ក្នុងសែលកូដថ្មី សូមផ្ទុកឌាតាប៊ីសជំងឺទឹកនោមផ្អែមដោយហៅ `load_diabetes()`។ បន្ទាត់បញ្ចូល `return_X_y=True` បញ្ជាក់ថា `X` នឹងជាមាត្រដ្ឋានទិន្នន័យ និង `y` នឹងជាគោលដៅស្ទាតការវិលត្រឡប់។ 1. បន្ថែមពាក្យបោះពុម្ពមួយចំនួន ដើម្បីបង្ហាញទំរង់មាត្រដ្ឋានទិន្នន័យ និងធាតុដំបូងរបស់វា៖ ```python X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0]) ``` អ្វីដែលអ្នកទទួលបានវិញជាគូតម្លៃ។ អ្នកកំពុងផ្តល់តម្លៃពីរដែលស្ថិតក្នុងគូទៅកាន់ `X` និង `y` តាមលំដាប់។ សូមស្វែងយល់បន្ថែមអំពីគូ [tupples](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 (កូឡុំទី 3) នៃឌាតាប៊ីស។ អ្នកអាចធ្វើបានដោយប្រើអុបទភីរត័រ `:` ដើម្បីជ្រើសយកជួរដេកទាំងអស់ ហើយបន្ទាប់មកជ្រើសរើសជួរដេកទី 3 ដោយប្រើសន្ទស្សន៍ (2)។ អ្នកអាចផ្លាស់ប្ដូរទ្រង់ទ្រាយឌាតា ឲ្យក្លាយជាអារេ 2D ដែលត្រូវការសម្រាប់គូស តាមរយៈការប្រើ `reshape(n_rows, n_columns)`។ ប្រសិនបើប៉ារ៉ាម៉ែត្រមួយមានតម្លៃ -1 ទំហំខាងនោះត្រូវបានគណនាអតូម៉ាទិក។ ```python X = X[:, 2] X = X.reshape((-1,1)) ``` ✅ នៅពេលណាមួយ សូមបោះពុម្ពទិន្នន័យដើម្បីត្រួតពិនិត្យទ្រង់ទ្រាយ។ 3. ឥឡូវនេះអ្នកមានទិន្នន័យរួចរាល់សម្រាប់គូស តើម៉ាស៊ីនអាចជួយកំណត់ការបំបែកត្រឹមត្រូវរវាងចំនួនក្នុងឌាតាប៊ីសនេះបានទេ? ដើម្បីធ្វើនេះ អ្នកត្រូវបំបែកទាំងទិន្នន័យ (X) និងគោលដៅ (y) ជាឈុតសាកល្បង និងឈុតបណ្តុះបណ្តាល។ Scikit-learn មានវិធីសាមញ្ញក្នុងការបំបែកទិន្នន័យនេះ។ អ្នកអាចបំបែកទិន្នន័យសាកល្បងនៅចំណុចណាមួយ។ ```python X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) ``` 4. ឥឡូវនេះអ្នកមានភាពរួចរាល់ក្នុងការបណ្តុះម៉ូដែលរបស់អ្នក! សូមផ្ទុកម៉ូដែលស្ទាតការវិលត្រឡប់បន្ទាត់ ហើយបណ្តុះវាជាមួយឈុតបណ្តុះបណ្តាល X និង y ដោយប្រើ `model.fit()`៖ ```python model = linear_model.LinearRegression() model.fit(X_train, y_train) ``` ✅ `model.fit()` គឺជាអនុគមន៍ដែលអ្នកនឹងបានឃើញនៅក្នុងបណ្ណាល័យ ML ច្រើនដូចជា TensorFlow 5. បន្ទាប់មក បង្កើតការទាយថ្លៃដោយប្រើទិន្នន័យសាកល្បង ដោយប្រើអនុគមន៍ `predict()`។ នេះនឹងត្រូវបានប្រើសម្រាប់គូរស៊តកន្លែងនៅចន្លោះក្រុមទិន្នន័យ។ ```python y_pred = model.predict(X_test) ``` 6. ឥឡូវនេះគឺពេលចាប់ផ្តើមបង្ហាញទិន្នន័យជាគំនូសតាង។ Matplotlib គឺជាឧបករណ៍មានប្រយោជន៍សម្រាប់ភារកិច្ចនេះ។ បង្កើត scatterplot នៃទិន្នន័យ X និង y សាកល្បងទាំងអស់ ហើយប្រើការទាយថ្លៃដើម្បីគូរសន្ទស្សន៍នៅកន្លែងសមរម្យបំផុត រវាងក្រុមទិន្នន័យម៉ូដែល។ ```python plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.xlabel('Scaled BMIs') plt.ylabel('Disease Progression') plt.title('A Graph Plot Showing Diabetes Progression Against BMI') plt.show() ``` ![scatterplot បង្ហាញនូវចំណុចទិន្នន័យជុំវិញជំងឺទឹកនោមផ្អែម](../../../../translated_images/km/scatterplot.ad8b356bcbb33be6.webp) ✅ សូមគិតបន្តិចពីអ្វីកំពុងកើតឡើងនៅទីនេះ។ បន្ទាត់បញ្ចេញត្រូវបានគូសឆ្លងកាត់ចំណុចទិន្នន័យតូចជាច្រើន ប៉ុន្តែកន្លែងណា ដែលវាកំពុងធ្វើមែន? តើអ្នកអាចមើលឃើញថា អ្នកគួរតែអាចប្រើបណ្ដាបន្ទាត់នេះដើម្បីទាយថាតើយ៉ាងដូចម្តេចឲ្យបានត្រឹមត្រូវដែលចំណុចទិន្នន័យថ្មីមិនបានឃើញបង្ហាញខ្លួនពាក់ព័ន្ធជាមួយអ័ក្ស y របស់ក្រាផាទេ? សូមព្យាយាមពណ៌នាផ្នែកប្រើប្រាស់ប្រសិនបើម៉ូដែលនេះ។ សូមអបអរសាទរ អ្នកបានបង្កើតម៉ូដែលវាយតម្លៃបញ្ច្រាសត្រង់ដ៏ដំបូងរបស់អ្នកហើយបានបង្កើតការទាយដោយវា និងបង្ហាញវា នៅក្នុងក្រាផា! --- ## 🚀ការប្រកួតប្រជែង គូសរាងឬធាតុផ្សេងពីសំណុំទិន្នន័យនេះ។ ការជំនួយ៖ កែប្រែបន្ទាត់នេះ៖ `X = X[:,2]`។ ដើម្បីផ្អែកលើគោលដៅនៃតារាងទិន្នន័យនេះ តើអ្នកអាចរកឃើញអ្វីខ្លះអំពីវឌ្ឍនភាពនៃជម្ងឺជាតិដ сладរ? ## [សំនួរបន្ទាប់មកកាន់បន្ទះរៀន](https://ff-quizzes.netlify.app/en/ml/) ## ការត្រួតពិនិត្យ និងរៀនដោយខ្លួនឯង នៅក្នុងមេរៀននេះ អ្នកបានប្រើម៉ូដែលវាយតម្លៃបញ្ច្រាសត្រង់សាមញ្ញជាង វាយតម្លៃបញ្ច្រាសតែមួយឬច្រើន។ សូមអានបន្ថែមអំពីភាពខុសគ្នារវាងវិធីទាំងនេះ ឬមើលវីដេអូនេះ [វីដេអូនេះ](https://www.coursera.org/lecture/quantifying-relationships-regression-models/linear-vs-nonlinear-categorical-variables-ai2Ef) អានបន្ថែមអំពីគំនិតនៃការវាយតម្លៃបញ្ច្រាស និងគិតពីប្រភេទសំណួរដែលអាចឆ្លើយបានដោយបច្ចេកទេសនេះ។ ទទូលបានមេរៀននេះ [មេរៀននេះ](https://docs.microsoft.com/learn/modules/train-evaluate-regression-models?WT.mc_id=academic-77952-leestott) ដើម្បីជម្រៅចំណេះដឹងរបស់អ្នក។ ## ភារកិច្ច [សំណុំទិន្នន័យផ្សេងទៀត](assignment.md) --- **ការបដិសេធ**: ឯកសារនេះត្រូវបានបម្លែងភាសា ដោយប្រើសេវាបម្លែងភាសា AI [Co-op Translator](https://github.com/Azure/co-op-translator)។ ទោះយើងខ្ញុំមានក្តីប្រាថ្នាឱ្យបានច្បាស់លាស់ តែសូមយល់ដឹងថាការបម្លែងដោយស្វ័យប្រវត្តិក៏អាចមានកំហុសឬភាពមិនត្រឹមត្រូវ។ ឯកសារដើមជាភាសាទីតាំងគួរត្រូវបានគេប្រើជាប្រភពច្បាស់លាស់។ សម្រាប់ព័ត៌មានសំខាន់ៗ សូមណែនាំឱ្យប្រើប្រាស់ការប្រែដោយមនុស្សជំនាញ។ យើងខ្ញុំមិនទទួលខុសត្រូវចំពោះការយល់ច្រឡំ ឬការបកស្រាយខុសបន្ទាប់ពីការប្រើប្រាស់ការបម្លែងនេះនោះទេ។