Why This Course? මේ පාඨමාලාව වැදගත් ඇයි?
Machine Learning (ML) සහ Artificial Intelligence (AI) කියන්නේ අද ලෝකයේ තාක්ෂණික විප්ලවයක් ඇති කරපු ක්ෂේත්ර දෙකක්. Netflix එකෙන් ඔබට ගැළපෙන films recommend කරන එකේ ඉඳන්, ඔබගේ email වලට එන spam ਫిల్ਟਰ කරන එක දක්වා, ML අපේ ජීවිතයේ හැම තැනකම තියෙනවා. නමුත් මේවා ඉගෙනගන්න එක අමාරුයි කියලද ඔබ හිතන්නේ? කොහෙත්ම නැහැ.
මෙම "Predict 1st Place Student" පාඨමාලාව නිර්මාණය කර තිබෙන්නේ ML වල සංකීර්ණ theory වලින් ඔබව බය නොකර, ඉතාම සරල, ප්රායෝගික උදාහරණයක් (practical example) හරහා ඔබට ML වල അടിസ്ഥാനය කියා දීමටයි. මෙහිදී අපි ශිෂ්යයින් 10 දෙනෙකුගේ විෂය ලකුණු අරගෙන, ඒ දත්ත විශ්ලේෂණය කරලා, Python, Pandas, සහ Scikit-learn වැනි industry-standard tools භාවිතා කරලා, ඊළඟ විභාගයේදී පළවෙනියා වෙන්නේ කවුද කියලා predict කරනවා.
- Beginner Friendly: ඔබට coding හෝ ML ගැන කිසිම දැනුමක් අවශ්ය නැහැ. අපි මුල ඉඳන් සරලව පටන් ගමු.
- Practical Project: Theory වලට වඩා, අපි ඇත්තටම වැඩ කරන project එකක් මුල සිට අග දක්වාම ගොඩනගනවා.
- Real-World Skills: Pandas වලින් data හසුරවන්න, Matplotlib වලින් data visualize කරන්න, Scikit-learn වලින් ML model එකක් train කරන්න ඔබ ඉගෙනගන්නවා. මේවා Data Scientist කෙනෙක්ට අත්යවශ්ය කුසලතා.
- Sinhala Explanations: සියලුම සංකීර්ණ සංකල්ප ඔබට තේරෙන භාෂාවෙන්, සිංහල උදාහරණ සමඟින් පැහැදිලි කරනවා.
මේ course එක අවසානයේදී, ඔබට Data Science project එකක් ක්රියාත්මක වන ආකාරය ගැන පැහැදිලි අවබෝධයක් ලැබෙනවා. ඔබට dataset එකක් අරගෙන, එය පිරිසිදු කර, model එකක් හදලා, prediction එකක් ගන්න පුළුවන් confidence එකක් ලැබෙනවා. இது Data Science ක්ෂේත්රයට පිවිසීමට ඔබට හොඳම ආරම්භයක් වේවි.
Course Content: පාඨමාලා අන්තර්ගතය
ML සහ Predictive Analytics යනු කුමක්ද? අපි මේවා සැබෑ ලෝකයේ භාවිතා කරන ආකාරය උදාහරණ සමඟින් ඉගෙන ගනිමු.
- ML කියන්නේ මොකක්ද?
- Predictive Analytics වල බලය
- Real-world use cases
අපේ project එකට අවශ්ය දත්ත ගබඩාව (dataset) නිර්මාණය කරමු. Features සහ Target variable හඳුනා ගනිමු.
- Student marks data නිර්මාණය
- CSV vs Python Dictionary
- Features (X) & Target (y)
Data Science වලදී නැතුවම බැරි Python library එකක් වන Pandas භාවිතා කර දත්ත load කර විශ්ලේෂණය කරමු.
- Pandas install සහ import
- Data load කිරීම
- head(), describe() භාවිතය
Machine Learning model එකට "උගන්වන්න" අවශ්ය දත්ත (X සහ y) නිවැරදිව සකස් කරගන්නා ආකාරය ඉගෙන ගනිමු.
- Independent variables (X)
- Dependent variable (y)
- Why X → y mapping is crucial
අපේ prediction එක සඳහා භාවිතා කරන Linear Regression නම් ML ඇල්ගොරිතමය සරලව තේරුම් ගනිමු.
- Linear Regression සංකල්පය
- y = mX + c සරලව සිංහලෙන්
- Scikit-learn library භාවිතය
අප සකස් කරගත් දත්ත භාවිතා කර Machine Learning model එක පුහුණු (train) කරවමු. Model එක ඉගෙනගන්නා ආකාරය බලමු.
- Train / Fit model using X and y
- Coefficients & Intercept යනු කුමක්ද?
- Training vs Testing datasets
Train කරගත් model එක භාවිතා කර අපගේ ශිෂ්යයින් සඳහා ලකුණු පුරෝකථනය කර, සැබෑ ලකුණු සමඟ සසඳමු.
- Predictions for all students
- Add PredictedScore column
- Compare Actual vs Predicted
අපගේ predictions අනුව, වැඩිම ලකුණු ලබාගන්නා ශිෂ්යයා කවුදැයි Pandas භාවිතා කර සොයා ගනිමු.
- Find highest predicted score
- .idxmax() usage in Pandas
- Display student ID + score
අපගේ ප්රතිඵල තවදුරටත් තේරුම් ගැනීමට Matplotlib/Seaborn යොදාගෙන ප්රස්තාර (charts) නිර්මාණය කරමු.
- Scatter plot: Actual vs Predicted
- Bar chart: Students vs Scores
- Communicating results visually
අපගේ project එකේ සාර්ථකත්වය, එහි සීමාවන් සහ దీనిని තවත් දියුණු කළ හැකි ආකාරය ගැන සාකච්ඡා කරමු.
- Does ML predict correctly?
- Limitations (small dataset)
- Extensions: Predict future marks
A Deeper Look into the Modules
මෙම පාඨමාලාව හුදෙක් code copy-paste කිරීමක් නොවේ. සෑම මොඩියුලයකදීම, අප කරන්නේ කුමක්ද, එය කරන්නේ ඇයි, සහ එයින් ලැබෙන ප්රතිඵලය කුමක්ද යන්න අපි ගැඹුරින් සාකච්ඡා කරන්නෙමු. පහත දැක්වෙන්නේ එක් එක් මොඩියුලය තුළ අප ආවරණය කරන දේ පිළිබඳ පුළුල් විග්රහයකි.
Module 1-2: The Foundation (ML සහ දත්ත)
පළමු මොඩියුලයේදී, "Machine Learning" යන වචනයේ සැබෑ අර්ථය අපි බිඳ දමමු. පරිගණකයකට පැහැදිලිව program නොකර, දත්ත වලින් රටා (patterns) හඳුනාගෙන ඉගෙන ගැනීමට සැලැස්වීම තමයි ML කියන්නේ. අපි මෙය "Predictive Analytics" වලට සම්බන්ධ කරන්නේ කෙසේදැයි ඉගෙන ගනිමු. එනම්, අතීත දත්ත (past data) භාවිතා කර අනාගතය ගැන අනාවැකි (predictions) කීමයි. ශිෂ්ය ලකුණු, ව්යාපාරික විකුණුම්, කාලගුණය වැනි සැබෑ උදාහරණ හරහා මෙය කෙතරම් බලවත්දැයි ඔබ වටහා ගනු ඇත. දෙවන මොඩියුලයේදී, අපි අපේම dataset එකක් නිර්මාණය කරමු. ඕනෑම ML project එකක හදවත වන්නේ දත්තයි. අපි ශිෂ්යයින් 10 දෙනෙකුගේ ගණිතය, විද්යාව සහ ඉංග්රීසි ලකුණු ඇතුළත් සරල දත්ත ගොන්නක් සාදන්නෙමු. CSV/Excel ගොනුවක් සහ Python Dictionary එකක් අතර ඇති වෙනසත්, Data Science වලදී Pandas DataFrame එකක් භාවිතා කිරීමේ වාසියත් අපි මෙහිදී ඉගෙන ගනිමු. `Features` (Math, Science, English වැනි model එකට input කරන දත්ත) සහ `Target` (FinalScore වැනි අපිට predict කිරීමට අවශ්ය දේ) යනු මොනවාදැයි පැහැදිලිව හඳුනා ගැනීම මෙහිදී අතිශයින් වැදගත් වේ.
Module 3-5: The Tools and The Brain (Pandas සහ Linear Regression)
තුන්වන මොඩියුලයේ සිට අපි coding වලට පිවිසෙමු. Python වල data analysis සඳහා ඇති බලවත්ම මෙවලම වන Pandas library එක install කර, අප සෑදූ dataset එක DataFrame object එකකට load කරගන්නා ආකාරය ඉගෙන ගනිමු. `df.head()` මගින් දත්තවල මුල් පේළි කිහිපය බැලීම, `df.describe()` මගින් සංඛ්යානමය සාරාංශයක් (statistical summary) ලබා ගැනීම වැනි මූලික විධාන හරහා අපගේ දත්ත ගැන මුල් අවබෝධයක් ලබා ගනිමු.
හතරවන මොඩියුලය ඉතා වැදගත් සංකල්පයක් පැහැදිලි කරයි: අපගේ model එකට දත්ත ලබා දිය යුතු ආකාරය. අපි අපගේ DataFrame එක ස්වාධීන විචල්යයන් (Independent Variables - X) සහ පරායත්ත විචල්යය (Dependent Variable - y) ලෙස කොටස් දෙකකට වෙන් කරමු. මෙහිදී X යනු අපගේ features (Math, Science, English ලකුණු) වන අතර, y යනු අපට predict කිරීමට අවශ්ය target (FinalScore) වේ. ML model එකකට "X දුන් විට y යනු කුමක්ද?" යන්න ඉගැන්වීම සඳහා මෙම X → y සිතියම්ගත කිරීම (mapping) අත්යවශ්ය වේ.
පස්වන මොඩියුලයේදී, අපි අපගේ project එකේ "මොළය" වන Linear Regression ඇල්ගොරිතමය ගැන ඉගෙන ගනිමු. මෙය ML වල ඇති සරලම සහ බහුලවම භාවිතා වන ඇල්ගොරිතමයකි. විචල්යයන් දෙකක් අතර ඇති රේඛීය සම්බන්ධතාවය (linear relationship) සොයා ගැනීම මෙහි මූලික අරමුණයි. අපි පාසැලේදී ඉගෙන ගත් $y = mx + c$ සරල රේඛාවේ සමීකරණය, ML වලදී prediction එකක් කිරීමට යොදාගන්නා ආකාරය, පොල් ගෙඩියක බර (X) අනුව එහි මිල (y) තීරණය වන ආකාරය වැනි ඉතා සරල සිංහල උදාහරණ හරහා පැහැදිලි කරනු ඇත. Scikit-learn නම් ප්රබල ML library එක භාවිතා කර මෙම ඇල්ගොරිතමය implement කරන ආකාරය අපි මෙහිදී ඉගෙන ගනිමු.
Module 6-8: The Action (Training, Prediction, and Analysis)
හයවන මොඩියුලයේදී, අපි අපගේ ML model එක "පුහුණු" (train) කරවමු. මෙය හරියට පොතක් දීලා ශිෂ්යයෙකුට විභාගයට සූදානම් වෙන්න කියනවා වගේ වැඩක්. අපි අපේ X සහ y දත්ත model එකට ලබා දුන් විට, model එක එම දත්ත අතර ඇති සම්බන්ධතාවය (m සහ c හි අගයන්) ඉගෙන ගනී. මෙම ඉගෙන ගත් අගයන් `coefficients` (බර) සහ `intercept` (අන්තඃඛණ්ඩය) ලෙස හැඳින්වේ. මෙම module එකේදී, සම්පූර්ණ dataset එකම training සඳහා භාවිතා නොකර, කොටසක් training සඳහාත්, තව කොටසක් model එකේ නිරවද්යතාවය පරීක්ෂා කිරීමටත් (testing) වෙන් කිරීමේ වැදගත්කම (Training vs Testing split) ගැනද අපි කතා කරමු.
හත්වන මොඩියුලය තමයි ප්රතිඵල දකින තැන. අපි train කරගත් model එකට අපේ ශිෂ්යයින්ගේ විෂය ලකුණු (X) ලබා දී, ඔවුන්ගේ FinalScore (y) එක predict කරන ලෙස ඉල්ලා සිටිමු. ලැබෙන predictions, අපගේ DataFrame එකේ `PredictedScore` නමින් නව තීරුවක් (column) ලෙස එකතු කර, සැබෑ ලකුණු (`FinalScore`) සමඟ සසඳා බලමු. අපේ model එක කෙතරම් දුරට නිවැරදිද යන්න පිළිබඳ මූලික අදහසක් මෙයින් අපට ලැබේ.
අටවන මොඩියුලයේදී, අපි අපේ මුල්ම අරමුණ ඉටු කරගනිමු: පළමු ස්ථානය දිනා ගන්නා ශිෂ්යයාව සොයා ගැනීම. `PredictedScore` column එකේ ඇති ඉහළම අගය සොයා ගැනීමට Pandas වල ඇති `.idxmax()` වැනි functions භාවිතා කරන ආකාරය අපි ඉගෙන ගනිමු. මෙය අපට වැඩිම ලකුණු ලබාගනු ඇතැයි model එක විශ්වාස කරන ශිෂ්යයාගේ ID එක සහ ලකුණු ප්රමාණය පෙන්වනු ඇත.
Module 9-10: The Insights and Future (Visualization සහ නිගමන)
නවවන මොඩියුලය දත්ත කතන්දර කීමේ (data storytelling) කලාව ගැනයි. සංඛ්යා දෙස බලාගෙන සිටිනවාට වඩා, ප්රස්තාරයක් (chart) මගින් අපට පහසුවෙන් රටා සහ සම්බන්ධතා දැකගත හැකිය. අපි Python වල ජනප්රිය visualization libraries වන Matplotlib සහ Seaborn භාවිතා කරමු. සැබෑ ලකුණු සහ predict කරපු ලකුණු අතර සම්බන්ධය පෙන්වීමට `Scatter Plot` එකක්ද, එක් එක් ශිෂ්යයාගේ ලකුණු සංසන්දනය කිරීමට `Bar Chart` එකක්ද නිර්මාණය කරමු. මේ හරහා අපගේ model එකේ ක්රියාකාරීත්වය දෘශ්යමානව (visually) තේරුම් ගැනීමට හැකි වේ.
අවසාන වශයෙන්, දහවන මොඩියුලයේදී අපි අපගේ project එක දෙස ආපසු හැරී බලමු. අපේ model එක සාර්ථකද? එහි සීමාවන් මොනවාද? උදාහරණයක් ලෙස, ශිෂ්යයින් 10 දෙනෙකුගේ කුඩා dataset එකක් මත පමණක් train කිරීම (overfitting) වැනි ගැටළු ගැන අපි සාකච්ඡා කරමු. අවසානයේදී, මෙම project එක තවත් දියුණු කළ හැක්කේ කෙසේදැයි අපි බලමු. අනාගත ලකුණු predict කිරීම, ශිෂ්යයින් සමත්/අසමත් (Pass/Fail) ලෙස වර්ගීකරණය (classification) කිරීම, හෝ සියලුම ශිෂ්යයින් ශ්රේණිගත (rank) කිරීම වැනි අදහස් ගැන අපි කතා කරමු.
මෙම මොඩියුල 10 අවසානයේ, ඔබ Machine Learning project එකක සම්පූර්ණ ජීවන චක්රය (lifecycle) පිළිබඳ ප්රායෝගික අත්දැකීමක් ලබා ඇති අතර, තවත් සංකීර්ණ ගැටළු විසඳීමට අවශ්ය පදනම ඔබට ලැබී ඇත.