𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
Photo
Article 4: Probability – අවිනිශ්චිත ලෝකයක නිවැරදි තීරණ ගමු 🎲
අද අපි එන්නේ ML Roadmap එකේ ඊලග පියවරට. දැන් අපි Mathematical Foundations වල අවසානයට ලඟා වෙලා ඉන්නේ. අද කතා කරන්නේ Probability (සම්භාවිතාව) ගැන. ML වලදී අපිට හැමතිස්සෙම 100% ක් නිවැරදි දත්ත ලැබෙන්නේ නැහැ. දත්ත වල තියෙන අවිනිශ්චිත බව (Uncertainty) පාලනය කරලා වඩාත්ම ගැලපෙන අනුමානයන් කරන්නේ කොහොමද කියලා මොඩල් එක ඉගෙන ගන්නේ සම්භාවිතාව පාවිච්චි කරලා. ඔයා හිතන්න ඔයා ඊමේල් එකක් බලනවා කියලා. ඒක Spam එකක්ද නැද්ද කියලා මොඩල් එක තීරණය කරන්නේ කොහොමද? අපි ඒක කරන්නේ සම්භාවිතාව පාවිච්චි කරලා. උදාහරණයක් විදියට, මේ වචන තියෙන ඊමේල් එකක් Spam වෙන්න තියෙන සම්භාවිතාව 90% යි වගේ තීරණයක්.
1. Random Variables
අපි දත්තයක් ගත්තම ඒකේ අගය ස්ථිරව කියන්න බැරි නම් ඒක Random Variable එකක්. මේකෙ ප්රධාන වර්ග දෙකක් තියෙනවා,
• Discrete Random Variables - ගණන් කළ හැකි පූර්ණ අගයන්.
• Continuous Random Variables - යම් පරාසයක් තුළ පවතින ඕනෑම අගයක් විය හැකි දේවල්.
2. Probability Distributions
දත්ත විසිරිලා තියෙන විදිහ මේකෙන් පෙන්වනවා. මෙතනදී වැදගත්ම දේ තමයි Normal Distribution. මේක Bell Curve එකක් වගේ. ලෝකයේ ගොඩක් දේවල් (උදාහරණයක් විදියට අපි A/L වලදි සලකන z-score එක) තියෙන්නේ මේ හැඩයට. මේකේ මැද අගය (Mean) වටේට දත්ත වැඩිපුර එකතු වෙලා තියෙනවා.
3. PDF සහ PMF (සම්භාවිතාව මනින හැටි)
• PMF (Probability Mass Function) - Discrete දත්ත සඳහා සම්භාවිතාව පෙන්වන්නෙ මේකෙන්.
• PDF (Probability Density Function) - Continuous දත්ත සඳහා Range එකක් ඇතුළත සම්භාවිතාව පෙන්වන්නෙ මේකෙන්.
4. Bayes' Theorem
ML වල තියෙන වැදගත්ම ටොපික් එකක් තමයි මේක. මේකෙන් කරන්නේ අලුත් තොරතුරු ලැබෙද්දී අපේ පැරණි අනුමානයන් Update කරන එක. (formula එක ඔයාලා හොයාගෙන ඒ ගැන ඉගන ගන්න, එච්චර අමාරු නෑ)
සම්භාවිතාව කියන්නේ අපි ලග තියෙන අනුමාන කිරීමේ හැකියාව mathematically represent කිරීමක්. ML වල තියෙන Naive Bayes Classifier වගේ algorithms සම්පූර්ණයෙන්ම වැඩ කරන්නේ මේ Bayes' Theorem එක මත. ඊළඟ ලිපියෙන් (Article 5) අපි කතා කරන්නේ Statistics ගැන. මේක තමයි අපේ Mathematical Foundations Phase එකේ අවසාන කොටස. දත්ත වල තියෙන රහස් එළියට ගන්නේ කොහොමද කියලා අපි එතනදී බලමු.
✍️ @TheInfinityAI
❤2
𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
Photo
𝐀𝐫𝐭𝐢𝐜𝐥𝐞 𝟓: 𝐒𝐭𝐚𝐭𝐢𝐬𝐭𝐢𝐜𝐬 – දත්ත අතර ඇති සම්බන්ධතා 📊
අපි Mathematical Foundations Phase 1 වල අවසානයට ලං වෙලා ඉන්නේ. අද කතා කරන්නේ Statistics ගැන. ML වලදී අපිට ලැබෙන දත්ත ඇතුළේ තියෙන details එළියට ගන්න පාවිච්චි කරන ප්රධානම දේ තමයි මේක. දත්ත පිරිසිදු කරන්න (Data Cleaning) වගේම Model එකක් කොච්චර හොඳට වැඩ කරනවද කියලා මනින්නත් මේක අනිවාර්යයෙන්ම ඕනේ.
සංඛ්යානය ප්රධාන කොටස් දෙකකට බෙදන්න පුළුවන්,
Descriptive Statistics; තියෙන දත්ත ටික විස්තර කරන එක. (සාමාන්ය අගය කීයද?) සහ Inferential Statistics; පොඩි දත්ත ප්රමාණයකින් මුළු සමාජය ගැනම අනුමාන කරන එක. (ඡන්දයකදී 1,000කගේ අදහස අරන් මුළු රටේම මතය කියනවා වගේ).
1. 𝐌𝐞𝐚𝐬𝐮𝐫𝐞𝐬 𝐨𝐟 𝐂𝐞𝐧𝐭𝐫𝐚𝐥 𝐓𝐞𝐧𝐝𝐞𝐧𝐜𝐲
අපේ data set එක නියෝජනය කරන එක අගයක් හොයාගන්න මේවා පාවිච්චි කරනවා,
● Mean - සාමාන්ය අගය. දත්ත ඔක්කොම එකතු කරලා දත්ත ගණනින් බෙදීම.
● Median - දත්ත ටික පිළිවෙලට සැකසුවාම මැදින්ම තියෙන අගය.
● Mode - දත්ත අතර වැඩිපුරම වතාවක් තියෙන අගය.
𝟐. 𝐌𝐞𝐚𝐬𝐮𝐫𝐞𝐬 𝐨𝐟 𝐃𝐢𝐬𝐩𝐞𝐫𝐬𝐢𝐨𝐧 (𝐌𝐋 වලදී 𝐄𝐫𝐫𝐨𝐫 එක මනින්න මේ සංකල්ප වැදගත්)
● Variance - දත්ත Mean එකේ ඉඳන් කොච්චර ඈතට විසිරිලා තියෙනවද කියලා බලන මිනුම.
● Standard Deviation - මේක වැඩි නම් දත්ත ගොඩක් ඈතට විසිරිලා තියෙනවා. මේක අඩු නම් දත්ත ටික මැද අගයට ගොඩක් කිට්ටුවෙන් තියෙනවා.
𝟑. 𝐆𝐫𝐚𝐩𝐡𝐬 & 𝐂𝐡𝐚𝐫𝐭𝐬
දත්ත දකිද්දීම වැදගත් තොරතුරු අඳුරගන්න මේවා උදව් වෙනවා.
● Histogram: - දත්ත වල Frequency) එක බලන්න.
● Boxplot - දත්ත වල තියෙන Outliers අඳුරගන්න.
𝟒. 𝐈𝐧𝐟𝐞𝐫𝐞𝐧𝐭𝐢𝐚𝐥 𝐒𝐭𝐚𝐭𝐢𝐬𝐭𝐢𝐜𝐬 (අනුමානය සහ තීරණ ගැනීම)
● Hypothesis Testing - අපේ අනුමානයක් ඇත්තටම හරිද. ඒක අහම්බෙන් වුණ දෙයක්ද කියලා ගණිතමය වශයෙන් තහවුරු කරගන්න මේක පාවිච්චි කරනවා.
● P-Value - සරලවම කිව්වොත් මේ අගය 0.05 ට වඩා අඩු නම් අපේ අනුමානය හරි වෙන්න තියෙන ඉඩ වැඩියි.
සංඛ්යානය කියන්නේ දත්ත වල ස්වභාවය අඳුරගන්න තියෙන mathematical concept ටිකක්. මේ වෙනකන් කතා කරපු ගණිතමය කොටස් (Calculus, Linear Algebra, Probability, Statistics) තමයි ML Algorithm එකක් පිටිපස්සේ තියෙන රහස.
දැන් අපි සාර්ථකව Phase 1 අවසන් කළා! 🥳. ඊළඟ article එකෙන් (Article 6) අපි පටන් ගන්නේ Phase 2: Programming Fundamentals. එතනදී අපි බලමු Python භාෂාව ML වලට පාවිච්චි කරන්නේ කොහොමද සහ ඒකේ තියෙන වැදගත් දේවල් මොනවද කියලා.
✍️ @TheInfinityAI
1❤4
𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
Photo
Article 6: Python Basics
Python කියන්නේ නිකන්ම Programming language එකක් නෙවෙයි. ඒක හරියට ඉංග්රීසි භාෂාව වගේම කියවන්න පුළුවන් හරිම සරල භාෂාවක් (කියලා හිතන් ඉන්නවා). ML Engineer කෙනෙක් විදිහට ඔයාට මේ මූලික කරුණු ටික අනිවාර්යයෙන්ම තියෙන්න ඕනේ.
1. Syntax සහ Variables
Python වලදී අපිට වෙනත් භාෂාවල වගේ semicolon (;) හෝ ලොකු ලොකු දේවල් ඕනේ නැහැ.
age = 25 # Integer
price = 10.5 # Float
name = "User" # String
2. Data Structures
ML වලදී අපිට දත්ත ගොඩවල් එක්ක වැඩ කරන්න වෙනවා. ඒකට මේවා හරිම වැදගත්:
● Lists - අගයන් ගොඩක් පිළිවෙලට තියාගන්න.
[10, 20, 30]● Tuples: වෙනස් කරන්න බැරි Data Lists
(1, 2)● Dictionaries: Key සහ Value විදිහට Data තියාගන්න.
{"name": "User", "role": "ML Student"}3. Loops සහ Conditionals
මොඩල් එකක් එකම දේ දහස් වාරයක් කරන්නේ සහ තීරණ ගන්නේ මේවා පාවිච්චි කරලා.
● If-Else - තීරණ ගන්න. (උදා: "ලකුණු 40ට වැඩිනම් 'Pass', නැත්නම් 'Fail'")
● For Loops – Data List එකක තියෙන හැම අගයක්ම එකින් එක පරීක්ෂා කරන්න.
4. Functions
එකම Code block එක නැවත නැවත ලියනවා වෙනුවට අපිට පුළුවන් ඒක එක තැනක ලියලා ඕන වෙලාවට පාවිච්චි කරන්න.
def calculate_grade(marks):
if marks > 75:
return "A"
else:
return "B"
print(calculate_grade(80)) # Output: A
Python ML වලට මේ තරම් වැදගත් ඇයි?
Python වල තියෙන ලොකුම වාසිය තමයි ඒකේ තියෙන Libraries (NumPy, Pandas වගේ දේවල්) නිසා අපිට අමාරු ගණිතමය ගණනය කිරීම් තනි පේළියෙන් කරන්න පුළුවන්. ඒ දේවල් ගැන අපි ඉදිරි ලිපි වලදී කතා කරනවා. අද අපි Python වල මූලික හැඩය සහ දත්ත හසුරුවන ආකාරය ගැන කතා කළා. මේවා තමයි ML වැඩසටහන් වල අඩිතාලම වෙන්නේ. ඊළඟ article එකෙන් (Article 7) අපි කතා කරන්නේ Object-Oriented Programming (OOP) ගැන. ලොකු ML Systems හදද්දී Data සහ Process පාලනය කරන්නේ කොහොමද කියලා අපි එතනදී බලමු.
✍️ @TheInfinityAI
❤6🎄1
𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
Photo
Article 7: Object-Oriented Programming (OOP) - For a Clean Dev Env 🏗
අපි සාමාන්යයෙන් code ලියද්දී පේළියෙන් පේළියට ලියාගෙන යනවා (Procedural Programming). හැබැයි වැඩේ ලොකු වෙද්දී ඒක පාලනය කරන්න ටිකක් අමාරුයි. OOP වලදී අපි කරන්නේ ඇත්ත ලෝකයේ තියෙන දේවල් Objects විදිහට අරගෙන code එක නිර්මාණය කරන එක. 🌍🤖
1. Class සහ Object 🏠📋
මේක තේරුම් ගන්න ලේසිම උදාහරණය තමයි නිවසක් සහ ඒකේ සැලසුම.
● Class - මේක තමයි Blueprint එක. 📝ගෙයක් හදන්න කලින් අඳින ප්ලෑන් එක වගේ. ඒකේ තියෙනවා ගෙදරකට තියෙන්න ඕන දේවල් (Attributes) සහ ගෙදරක කරන්න පුළුවන් දේවල් (Methods). 🛠
● Object - අර Blueprint එක බලලා ඇත්තටම හදන ගෙදර. අපිට එකම ප්ලෑන් එකෙන් ගෙවල් ගොඩක් හදන්න පුළුවන්. 🏘
අපි හිතමු LinearRegression කියලා Class එකක් තියෙනවා කියලා. ඒක Blueprint එකක්. අපි ඒකෙන් හදාගන්න model1, model2 කියන්නේ Objects.
2. OOP වල ප්රධාන කොටස් 4 🏗🌟
I. Encapsulation 💊🛡
මේක හරියට Capsule එකක් වගේ. අපි ඒක ඇතුලේ තියෙන දේවල් මොනවද කියලා දන්නේ නැහැ, හැබැයි අපි දන්නවා ඒක බිව්වම ලෙඩේ හොඳ වෙනවා කියලා. ML වලදී අපි
model.fit(X, y) කියලා ලියනවා. ඒ function එක ඇතුලේ මොන වගේ සංකීර්ණ calculations වෙනවද කියලා අපි දන්නේ නැ. ඒවා ඔක්කොම class එක ඇතුලේ cover වෙලා තියෙන්නේ. 🔒II. Inheritance 🧬🌳
මේකෙන් කරන්නේ කලින් හදපු class එකක තියෙන ගුණාංග අලුත් class එකකට ලබා ගන්න එක. ML වලදී අපි BaseModel කියලා පොදු class එකක් හැදුවොත් ඒකේ තියෙන දේවල් RegressionModel සහ ClassificationModel කියන අලුත් classes දෙකට නිකන්ම උරුම කරලා දෙන්න පුළුවන්. අපිට ආයෙ ආයෙත් එකම code එක ලියන්න ඕනේ නැ. ♻️
III. Polymorphism 🎭🔄
එකම නම තියෙන function එකක් අවස්ථානුකුලව වෙනස් විදිහට වැඩ කරන එක තමා මේකෙන් වෙන්නේ. ML වලදී ඔයා Linear Regression පාවිච්චි කළත්, Decision Tree පාවිච්චි කළත් දෙකේම තියෙන්නේ .fit() කියන function එකමයි. හැබැයි ඒ අවස්ථාවට අනුව ඒ දෙක ඇතුලේ සිද්ධ වෙන වැඩේ සම්පූර්ණයෙන්ම වෙනස්. ✨
IV. Abstraction 🌫🔍
මේකෙන් කරන්නේ අනවශ්ය සංකීර්ණ කොටස් හංගලා පාවිච්චි කරන කෙනාට අවශ්ය දේ විතරක් පෙන්නන එක. ML වලදී අපිට ඕනේ model එක train කරන්න විතරයි. ඒ පිටිපස්සේ තියෙන Matrix multiplication වගේ දේවල් අපිට පේන්නේ නැහැ. ඒකයි abstraction කියන්නේ. 🖥
3. ඇයි ML Engineer කෙනෙක් OOP ගැන දැනගන්නම ඕනේ? 🧠👨💻
● Scikit-learn පාවිච්චි කරන්න - අපි පාවිච්චි කරන හැම
model.fit() සහ model.predict() එකක්ම OOP object එකක් හරහා සිද්ධ වෙන දේවල්. 🛠📈● Custom Models හදන්න - අනාගතයේදී අලුත් Neural Network එකක් හදන්න වුණොත් ඒක කරන්න වෙන්නේ class එකක් ඇතුලේ. 🧠🕸
● Professional Code - ලොකු projects වලදී code ලියන්නේ function ගොඩක් විදිහට නෙවෙයි, OOP පාවිච්චි කරලා පිළිවෙලකට. 🏗✨
ගොඩක් අය හිතන්නේ OOP කියන්නේ මාර අමාරු තේරෙන්නේ නැති දෙයක් කියලා. 😅 හැබැයි සරලවම කිව්වොත් OOP කියන්නේ අපි ලියන Code ටික පිළිවෙලකට අහුරන විදිහක්. ML වලදී අපි පාවිච්චි කරන Scikit-learn, PyTorch වගේ හැම library එකක්ම හදලා තියෙන්නේ මේ OOP පදනම උඩයි. ඒ නිසා මේක තේරුම් ගන්න එක ML Engineer කෙනෙක්ට අනිවාර්යයි. ඊලග article එකෙන් (Article 8) අපි පටන් ගන්නේ දත්ත හසුරුවන හැටි (NumPy & Pandas). ✅🙊
✍️ @TheInfinityAI
❤3👍1
𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
Photo
Article 8: NumPy සහ Pandas – Data Manipulation Tools 🛠📊
කලින් ලිපි වලින් අපි Machine Learning වලට ඕන කරන Maths සහ Python මූලික කරුණු ඉගෙන ගත්තා. දැන් අපි බලමු ඒ ඉගෙන ගත්තු දේවල් ඇත්තම Data එක්ක පාවිච්චි කරන්නේ කොහොමද කියලා. ML Engineer කෙනෙක් තමන්ගේ කාලයෙන් ලොකු කොටසක් වැය කරන්නේ දත්ත පිරිසිදු කරන්න සහ සකස් කරන්න. ඒ වැඩේ ලේසි කරගන්න පාවිච්චි කරන ප්රධානම libraries දෙකක් තමයි මේ.
1. NumPy (Numerical Python) 🔢⚡️
අපි Article 3 එකේදී ඉගෙන ගත්තා මතකද Linear Algebra (Matrices සහ Vectors) ගැන? අන්න ඒ Matrix calculations කරන්න Python වලදි පාවිච්චි කරන්නේ NumPy. ඒත් ඇයි අපි NumPy පාවිච්චි කරන්නේ?
● Speed - සාමාන්ය Python Lists වලට වඩා NumPy Arrays සිය ගුණයක් වේගවත්. මොකද මේක run වෙන්නෙ C language එක බේස් කරගෙන.
● Vectorization - ලොකු Data set එකකට එකපාර ගණිතමය ක්රියාවන් (එකතු කිරීම්, ගුණ කිරීම් වගේ) කරන්න පුළුවන්.
NumPy වල ප්රධාන සංකල්පය වෙන්නේ N-dimensional Array (ndarray). NumPy වල හැමදේම ගබඩා වෙන්නේ Array එකක් විදිහට. මේක තනි පේළියක් (1D), වගුවක් (2D) හෝ ඊට වඩා වැඩි මානයක් (ND) වෙන්න පුළුවන්. 🧊
2. Pandas (Python Data Analysis) 🐼📊
NumPy වලින් mathematical part එක කළාට, දත්ත Excel sheet එකක් වගේ වගුවකට දාලා handle කරන්න පාවිච්චි කරන්නේ Pandas. Pandas වල තියෙන ප්රධානම දේවල් දෙක වෙන්නේ Series (මේක හරියට වගුවක තියෙන එක Column එකක් වගේ.) සහ DataFrame (මේක තමයි සම්පූර්ණ වගුව. ML වලදී අපි අපේ මුළු Dataset එකම දකින්නේ DataFrame එකක් විදිහට)
Pandas වලින් කරන්න පුළුවන් දේවල්,
● Data Loading 📥 - CSV, Excel, SQL වැනි ඕනෑම තැනක තියෙන දත්ත කියවන්න පුළුවන්.
● Data Cleaning 🧼 - දත්ත වල තියෙන Null values පිරවීම හෝ අයින් කිරීම.
● Data Filtering 🔍 - අපිට අවශ්ය දත්ත විතරක් වෙන් කරලා ගන්න.
මේවා Machine Learning වලට වැදගත් වෙන්නේ ඇයි? 🤔💡
ඔයා ඉස්සරහට ඉගෙන ගන්න Scikit-learn, TensorFlow වගෙ libraries වලට Data input කරන්නේ මේ NumPy Array හෝ Pandas DataFrame විදිහට. ඒ නිසා මේ දෙකේ මූලික කරුණු දැනගන්න එක හරියට අකුරු ඉගෙන ගන්නවා වගේ වැඩක්. 📚
ඊළඟ ආටිකල් එකෙන් (Article 9) අපි කතා කරන්නේ data visualise කරන Matplotlib සහ Seaborn ගැන. 📉🎨 🙊😁
✍️ @TheInfinityAI
❤3
𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
Article 8: NumPy සහ Pandas – Data Manipulation Tools 🛠📊 කලින් ලිපි වලින් අපි Machine Learning වලට ඕන කරන Maths සහ Python මූලික කරුණු ඉගෙන ගත්තා. දැන් අපි බලමු ඒ ඉගෙන ගත්තු දේවල් ඇත්තම Data එක්ක පාවිච්චි කරන්නේ කොහොමද කියලා. ML Engineer කෙනෙක් තමන්ගේ කාලයෙන්…
Practical Example 💻
අපි බලමු NumPy වලින් Data ටිකක් Create කරලා ඒක Pandas DataFrame එකකට හරවන්නේ කොහොමද කියලා. මේ code එකෙන් අපි කරන්නේ NumPy හරහා random data ටිකක් හදලා, ඒකට නමක් දීලා Pandas DataFrame එකක් බවට පත් කරන එක.
මොකක්ද මෙතන සිද්ධ වුණේ? 🤔
● import - මුලින්ම අපි libraries දෙක වැඩසටහනට එකතු කරගත්තා. 📦
● np.random.rand(5, 3) - මේකෙන් 0 සහ 1 අතර random අගයන් තියෙන තීරු 3ක සහ පේළි 5ක Array එකක් හැදුවා. 🎲
● pd.DataFrame() - අර තිබ්බ Raw data ටික අපි Pandas වලට දීලා ඒක වගුවක් බවට පත් කළා. දැන් අපිට පුළුවන් මේකේ එක එක Column එක වෙන වෙනම අරන් calculations කරන්න. 📊
ඇයි මේක වැදගත්? 💡
අපි ළඟ තියෙන ඕනෑම සංඛ්යාත්මක දත්ත සමූහයක් අපිට කියවන්න ලේසි වගුවක් බවට පත් කරගන්න මේ ක්රමය පාවිච්චි කරනවා. ML Model එකකට Data දෙන්න කලින් ඒ Data ටික Clean කරන්න සහ Analyze කරන්න මේ වගුගත කිරීම අනිවාර්යයි. ✅
අපි බලමු NumPy වලින් Data ටිකක් Create කරලා ඒක Pandas DataFrame එකකට හරවන්නේ කොහොමද කියලා. මේ code එකෙන් අපි කරන්නේ NumPy හරහා random data ටිකක් හදලා, ඒකට නමක් දීලා Pandas DataFrame එකක් බවට පත් කරන එක.
import numpy as np
import pandas as pd
# 1. NumPy පාවිච්චි කරලා 5x3 Matrix එකක් (Random Data) හදමු
data = np.random.rand(5, 3)
# 2. අපේ වගුවේ තීරු වලට (Columns) නම් දෙමු
column_names = ['Sales', 'Profit', 'Cost']
# 3. NumPy Array එක Pandas DataFrame එකකට හරවමු
df = pd.DataFrame(data, columns=column_names)
# 4. අවසාන ප්රතිඵලය
print(df)
මොකක්ද මෙතන සිද්ධ වුණේ? 🤔
● import - මුලින්ම අපි libraries දෙක වැඩසටහනට එකතු කරගත්තා. 📦
● np.random.rand(5, 3) - මේකෙන් 0 සහ 1 අතර random අගයන් තියෙන තීරු 3ක සහ පේළි 5ක Array එකක් හැදුවා. 🎲
● pd.DataFrame() - අර තිබ්බ Raw data ටික අපි Pandas වලට දීලා ඒක වගුවක් බවට පත් කළා. දැන් අපිට පුළුවන් මේකේ එක එක Column එක වෙන වෙනම අරන් calculations කරන්න. 📊
ඇයි මේක වැදගත්? 💡
අපි ළඟ තියෙන ඕනෑම සංඛ්යාත්මක දත්ත සමූහයක් අපිට කියවන්න ලේසි වගුවක් බවට පත් කරගන්න මේ ක්රමය පාවිච්චි කරනවා. ML Model එකකට Data දෙන්න කලින් ඒ Data ටික Clean කරන්න සහ Analyze කරන්න මේ වගුගත කිරීම අනිවාර්යයි. ✅
❤4
Article 9: Matplotlib and Seaborn – Let's turn data into diagrams 📊📈
Data Visualization කියන්නේ Machine Learning වල තියෙන ඉතාම වැදගත් පියවරක්. මේකෙන් අපිට දත්ත වල තියෙන අසාමාන්ය අගයන් (Outliers) සහ දත්ත එකිනෙකට සම්බන්ධ වෙන ආකාරය (Correlation) පැහැදිලිව හඳුනාගන්න පුළුවන්. 🔍✨
1. Matplotlib 📉
Matplotlib කියන්නේ Python වල තියෙන පරණම සහ ප්රධානම Visualization Library එක. මේකෙන් අපිට ඕනම ආකාරයක සරල graph එකක් අපිට අවශ්ය විදිහට නිර්මාණය කරගන්න පුළුවන්. 🛠
Matplotlib වලින් කරන්න පුළුවන් දේවල්:
● Line Plots - කාලයත් සමඟ දත්ත වෙනස් වන ආකාරය බලන්න. 📉
● Scatter Plots - data points දෙකක් අතර තියෙන සම්බන්ධය බලන්න. 흩
● Bar Charts - Categories අතර අගයන් සංසන්දනය කරන්න. 📊
2. Seaborn 🌊🎨
Seaborn හදලා තියෙන්නේ Matplotlib තවත් වැඩිදියුණු කරලා. මේක පාවිච්චි කරන්න හරිම ලේසියි වගේම graph එකක් හරිම Aesthetic විදියට නිර්මාණය කරලා දෙනවා. විශේෂයෙන්ම මේක Pandas DataFrame සමඟ ඉතාම හොඳට වැඩ කරනවා. 🐼🤝
Seaborn වල තියෙන විශේෂාංග,
● Heatmaps - data අතර තියෙන Correlation වර්ණ ආධාරයෙන් පෙන්වන්න. 🔥
● Violin Plots - data වල ව්යාප්තිය වඩාත් පැහැදිලිව පෙන්වන්න. 🎻
● Pair Plots - Dataset එකක තියෙන හැම variable එකක්ම එකිනෙකට සම්බන්ධ වෙන හැටි එකපාර බලන්න. 🔄
Practical example - Let's Visualise! 💻🔋
අපි හිතමු ඔයාගේ ෆෝන් දෙකක battery level එක දවස පුරා අඩුවෙන විදිහ බලන්න ඕනේ කියලා. අපි ඒක Matplotlib වලින් ඇඳලා බලමු. 📱🔋
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
# Data preparing
data = {
'Hour': [1, 2, 3, 4, 5, 6, 7, 8],
'Samsung_M12': [100, 95, 88, 80, 72, 65, 58, 50],
'Redmi_8': [100, 92, 85, 75, 65, 55, 45, 35]
}
df = pd.DataFrame(data)
# draw a graph using matpotlib and seaborn
plt.figure(figsize=(10, 5))
sns.lineplot(x='Hour', y='Samsung_M12', data=df, label='Samsung M12', marker='o')
sns.lineplot(x='Hour', y='Redmi_8', data=df, label='Redmi 8', marker='s')
# enter details
plt.title('Battery Drain Over Time')
plt.xlabel('Hours Used')
plt.ylabel('Battery Percentage (%)')
plt.legend()
plt.grid(True)
# display
plt.show()
මේවා Machine Learning වලට වැදගත් වෙන්නේ ඇයි? 🤖💡
● EDA (Exploratory Data Analysis) - Model එකක් හදන්න කලින් දත්ත වල ස්වභාවය තේරුම් ගන්න මේ graphs අනිවාර්යයෙන්ම ඕනේ. 🔎
● Results Presentation - ඔයා හදපු Model එකේ success rate එක අනිත් අයට පෙන්වන්න වෙන්නේ මේ වගේ රූප සටහන් වලින්. 🏆
මෙතනින් Phase 2 අවසන් කරනවා! 🎉 අපි දැන් Python, NumPy, Pandas, සහ Visualization (Matplotlib/Seaborn) ගැන මූලික දැනුම ලබාගෙන ඉවරයි. 🎓 ✅ ඊළඟ ආටිකල් එකෙන් (Article 10) අපි පටන් ගන්නේ Phase 3: Data Mastery. එතනදී අපි බලමු SQL, NoSQL සහ විවිධ Data Sources වලින් ML වලට දත්ත ගන්නේ කොහොමද කියලා. 📂🗄 🙊😁
✍️ @TheInfinityAI
❤4