𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
200 subscribers
122 photos
1 video
3 files
34 links
Your daily source for Artificial Intelligence (AI), Machine Learning (ML), Deep Learning, and Computer Science trends. We share coding resources, projects, tech news, and updates.

#Infinitycs
Download Telegram
𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
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 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
Article 10: Data Sources – Let's identify the sources of data flow 🌐


කලින් පියවරවලදී අපි දත්ත හසුරුවන හැටි ඉගෙන ගත්තා. හැබැයි ප්‍රායෝගික ලෝකයේදී දත්ත අපිට නිකන්ම DataFrame එකක් විදිහට ලැබෙන්නේ නැහැ. දත්ත තියෙන්නේ විවිධ තැන්වල විවිධ ආකාරවලින්. ML Engineer කෙනෙක් විදිහට ඔයා මේ Data Sources ගැන හොඳින් දැනගන්න ඕනේ. අද අපි කතා කරන්නේ දත්ත එක්රැස් කරගන්නා ප්‍රධාන ක්‍රම සහ ස්ථාන ගැන. 📂🗄

1. Databases 🗄

බොහෝ සමාගම්වල දත්ත ගබඩා කරලා තියෙන්නේ Databases ඇතුලෙ. මේවා ප්‍රධාන වර්ග දෙකක් තියෙනවා,

● SQL (Relational) - දත්ත Tables විදියට පිළිවෙලකට ගබඩා කරලා තියෙනවා. (MySQL, PostgreSQL)
● NoSQL (Non-Relational) - පිළිවෙලකට නැති හෝ Documents ආකාරයෙන් ඇති දත්ත. (MongoDB)

2. APIs (Application Programming Interfaces) 🔌

Internet එකේ තියෙන වෙනත් සේවාවන්ගෙන් (කාලගුණ දත්ත, කොටස් වෙළඳපොළ දත්ත) සජීවීව දත්ත ලබාගන්න APIs පාවිච්චි කරනවා. Python වල requests library එක හරහා අපිට මේ දත්ත ලබාගන්න පුළුවන්.

3. Data Formats


අපිට දත්ත ලැබෙන පොදු ගොනු වර්ග කිහිපයක් තියෙනවා,

● CSV - ඉතාම සරල Excel වැනි වගු ආකාරයේ දත්ත.
● JSON - Internet එක හරහා දත්ත හුවමාරු කිරීමේදී පාවිච්චි වන Key-Value යුගල සහිත දත්ත.
● Parquet - Big Data ඉතා වේගයෙන් හැසිරවීමට පාවිච්චි කරන නවීන format එකක්.

Article 11: Data Cleaning – Let's clean up junk data 🧹


අපි data හොයාගත්තට පස්සේ වැදගත්ම දේ තමා ඒවා පිරිසිදු කිරීම . වැරදි දත්ත මත හදන Model එකක් කවදාවත් නිවැරදි වෙන්නේ නැහැ (Garbage In, Garbage Out 🗑➡️🚫 වැරදි දත්ත මත හදන Model එකක් කවදාවත් නිවැරදි ප්‍රතිඵල දෙන්නේ නැහැ.).

1. Handling Missing Data

දත්තවල සමහර තැන්වල අගයන් නැති වෙන්න පුළුවන් (Null values). මේවා පාලනය කරන්න ක්‍රම කිහිපයක් තියෙනවා:

● Dropping - අගයන් නැති පේළි සම්පූර්ණයෙන්ම අයින් කිරීම.
● Imputation - හිස් තැන්වලට සාමාන්‍ය අගය (Mean) හෝ මැද අගය (Median) යෙදීම.

2. Handling Outliers

අනෙක් දත්තවලට වඩා හුඟක් වෙනස් අගයන් (උදා: හැමෝම අවුරුදු 20-30 අතර වෙද්දී එක්කෙනෙක් අවුරුදු 200ක් විතර වීම) අඳුරගෙන ඒවා ඉවත් කළ යුතුයි.


ඒත් Model එකකට දත්ත දෙන්න කලින් ඒවා මැෂින් එකට තේරෙන විදිහට සකස් කරන්න ඕනේ. ඊලග ආටිකල් එකෙන් (Article 12) අපි ඒ ගැන (Preprocessing Techniques) ගැන කතාකරමු.

✍️ @TheInfinityAI
2
𝐈𝐧𝐟𝐢𝐧𝐢𝐭𝐲 𝐂𝐒
Photo
Article 12: Data Preprocessing & Feature Engineering - දත්ත සකස් කිරීම ⚙️


මේ පියවර තමයි ඔයාගේ Machine Learning මොඩල් එකක සාර්ථකත්වය තීරණය කරන ප්‍රධානම සාධකය. Data Cleaning වලට පස්සේ ඒ දත්ත මැෂින් එකකට තේරුම් ගත හැකි සහ ගණිතමය වශයෙන් ගැලපෙන ආකාරයට හැඩගැස්වීම මෙතනදී සිදු වෙනවා. ඒ ක්‍රියාවලිය කොටස් කීපයකට බෙදන්න පුළුවන්, 🧪

1. Feature Scaling (දත්ත සමාන පරිමාණයකට ගැනීම) ⚖️

Machine Learning Algorithms වැඩි හරියක් වැඩ කරන්නේ ගණිතමය දුර (Distance) මැනීම මත. අපි මෙහෙම හිතමු, අපේ Dataset එකේ වයස (අවුරුදු 0-100) සහ ආදායම (රුපියල් 50,000-500,000) කියලා columns දෙකක් තියෙනවා නම් model එක හිතන්නේ ආදායම කියන column එක වඩා වැදගත් කියලා මොකද ඒකෙ අගයන් විශාල නිසා. මේකට තියෙන විසදුම තමා මේ දත්ත දෙකම එකම පරාසයකට (උදා: 0 සිට 1 දක්වා) අරගෙන එන එක. මේකට ප්‍රධාන ක්‍රම දෙකක් තියෙනවා,

● Normalization (Min-Max Scaling) - දත්ත සියල්ල 0 සහ 1 අතර පරාසයකට පත් කරන එක. Image Processing වලදී මේක ගොඩක් පාවිච්චි කරනවා. 📉🖼

● Standardization (Z-score Normalization) - දත්තවල සාමාන්‍ය අගය (Mean) 0 කරලා, සම්මත අපගමනය (Standard Deviation) 1ක් වෙන විදියට හදනවා. ගොඩක් ML ඇල්ගොරිතම් වලට සුදුසුම ක්‍රමය මේක. 📊

2. Encoding Categorical Data (අකුරු ඉලක්කම් වලට හැරවීම) 🤔💭

Model එකකට "Colombo", "Kandy", "Galle" වගේ වචන තේරෙන්නේ නැ. ඒවා ඉලක්කම්වලට හරවන්න ක්‍රම දෙකක් තියෙනවා,

● Label Encoding - අකුරුවලට අනුපිළිවෙලක් තියෙනවා නම් (උදා: Low=0, Medium=1, High=2) මෙය පාවිච්චි කරනවා.
● One-Hot Encoding - අකුරුවලට විශේෂ අනුපිළිවෙලක් නැත්නම් (උදා: නගරවල නම්), එක් එක් නගරය සඳහා වෙනම column එකක් හදලා 0 සහ 1 ලෙස සලකුණු කරනවා.

3. Feature Selection (වැදගත්ම දේ තෝරා ගැනීම) 🎯

අපිට තියෙන හැම දත්තයක්ම මොඩල් එකට වැඩක් වෙන්නේ නැහැ. උදාහරණයක් විදියට ගෙදරක මිල අනුමාන කරද්දී ගෙදර පාට කියන එකට වඩා වර්ග අඩිය සහ කාමර ගණන වගේ දේවල් වැදගත් වෙනවා. අනවශ්‍ය දත්ත ඉවත් කිරීමෙන් මොඩල් එක වේගවත් වෙනවා වගේම ැඑක ඕනෑවට වඩා සංකීර්ණ වෙන එක (Overfitting) වළක්වා ගන්න පුලුවන්. 🔍🛠🧹

4. Feature Engineering (අලුත් දත්ත නිර්මාණය)
🎨🏗

මේක තමයි ML Engineer කෙනෙකුගේ නිර්මාණශීලීත්වය පෙන්වන තැන. තියෙන දත්තවලින් වඩාත් අර්ථවත් දත්තයක් අලුතින් හදාගැනීම මේකෙන් අදහස් කරනවා. උදාහරණයක් විදියට, අපිට login time සහ logout time තියෙනවා නම් ඒ දෙක අඩු කරලා Duration කියන අලුත් feature එක හදාගන්න පුළුවන්. 💡

5. Handling Imbalanced Data (අසමතුලිත දත්ත පාලනය) ⚖️🚨

සමහර වෙලාවට අපේ දත්තවල එක පැත්තක් වැඩියි. උදාහරණයක් විදියට බැංකු වංචා (Fraud detection) dataset එකක 99% ක්ම හොඳ ගනුදෙනු වන අතර වංචා තියෙන්නෙ 1% ක් වගේ. Model එකට මේ 1% අඳුරගන්න අමාරුයි. මෙ වගේ වෙලාවට SMOTE වගේ තාක්ෂණයන් පාවිච්චි කරලා අඩු දත්ත ප්‍රමාණය කෘතිමව වැඩි කරනවා. 🕵️‍♂️🤖🔄


හොඳ Preprocessing step එකක් කියන්නේ model එකට ඉගෙන ගන්න ලේසි පිරිසිදු පාරක් හදලා දෙනවා වගේ වැඩක්. මේ පියවර නිවැරදිව කළොත් සරල මොඩල් එකකින් වුණත් ඉතා හොඳ ප්‍රතිඵල ගන්න පුළුවන්. ඊලග ආටිකල් එකෙන් ( (Article 13) අපි පටන් ගන්නේ Phase 5: Machine Learning Core. එතනදී අපි බලමු ML වල තියෙන ප්‍රධාන learning methods එකිනෙකට වෙනස් වෙන්නේ කොහොමද කියලා. 🧠⏭️ 🙊😁

✍️ @TheInfinityAI
3