AWS AI Data Fundamentals Sinhala Guide | දත්ත මූලධර්ම

AWS AI Data Fundamentals Sinhala Guide | දත්ත මූලධර්ම

ආයුබෝවන් යාලුවනේ! කොහොමද ඔයාලට? අද අපි කතා කරන්න යන්නේ AI (Artificial Intelligence) සහ Machine Learning (ML) ලෝකයේ තියෙන, හැමෝටම වැදගත් වෙන, හරිම පදනම් දත්ත (data) ගැන. විශේෂයෙන්ම AWS (Amazon Web Services) පරිසරය තුළ AI ව්‍යාපෘති කරනකොට, දත්ත කියන්නේ අපේ වැඩේ සාර්ථකත්වයට තීරණාත්මක සාධකයක්. දත්ත නැතුව AI එකක් නැහැ කිව්වොත් හරි!

දත්ත කියන්නේ AI models වලට කෑම වගේ. හොඳ කෑම නැත්නම්, හොඳ model එකක් හදන්න බැහැ. ඉතින්, මේ guide එකෙන් අපි බලමු AWS AI projects වලදී දත්ත එක්ක වැඩ කරන විදිය, දත්ත වර්ග මොනවද, ඒවා එකතු කරන්නේ කොහොමද, දත්තවල ගුණාත්මකභාවය බලපාන්නේ කොහොමද, ඒවා පිරිසිදු කරලා, සකස් කරලා, AI model එකකට දෙන්න ලෑස්ති කරන්නේ කොහොමද කියලා.

ඔයා Software Engineer කෙනෙක්ද, Data Scientist කෙනෙක්ද, නැත්නම් Tech enthusiast කෙනෙක්ද? කවුරු වුණත්, මේ දැනුම ඔයාට ගොඩක් වටිනවා. අපි පටන් ගමු එහෙනම්!

1. දත්ත වර්ග (Data Types): Structured vs. Unstructured

අපි මුලින්ම බලමු දත්ත වර්ග දෙකක් ගැන: Structured Data සහ Unstructured Data. මේ දෙක තේරුම් ගැනීම AI project එකකදී හරිම වැදගත්.

Structured Data

Structured Data කියන්නේ අපි හිතනවා වගේම, හොඳට organize කරපු, format කරපු දත්ත වර්ගයක්. මේවා table formats (SQL databases වගේ) තියෙනවා. Columns වලටයි, Rows වලටයි වෙන් කරලා තියෙන නිසා, මේවා පහසුවෙන් හොයන්න, analyze කරන්න පුළුවන්. උදාහරණයක් විදියට:

  • Relational Databases: Customers, Orders වගේ information.
  • Spreadsheets (Excel): නම, වයස, ඊමේල් වගේ දත්ත.
  • CSV files: Comma Separated Values.

AWS එකේදී නම්, Amazon RDS, Amazon Aurora, Amazon Redshift, Amazon DynamoDB වගේ services හරහා structured data ගබඩා කරන්න පුළුවන්.

Unstructured Data

Unstructured Data කියන්නේ, structured data වගේ හොඳට organize කරලා නැති, නිශ්චිත format එකක් නැති දත්ත. මේවා analyze කරන්න පොඩ්ඩක් අමාරුයි, නමුත් මේවා තමයි අද ලෝකයේ තියෙන දත්තවලින් වැඩි ප්‍රමාණයක් අල්ලගෙන තියෙන්නේ. උදාහරණයක් විදියට:

  • Text Files: E-mails, chat messages, social media posts, reviews.
  • Images: Photos, medical scans.
  • Audio Files: Voice recordings, music.
  • Video Files: Surveillance footage, YouTube videos.

AWS එකේදී නම්, Amazon S3 (Simple Storage Service) තමයි unstructured data ගබඩා කරන්න ප්‍රධානම service එක. Amazon Comprehend (text analysis), Amazon Rekognition (image/video analysis), Amazon Transcribe (speech-to-text) වගේ AI services මේ unstructured data analyze කරන්න උදව් වෙනවා.

බලන්න, මේ දත්ත වර්ග දෙකම තේරුම් ගැනීම අපේ AI model එකට මොන වගේ දත්තද ඕනේ කියන එක තීරණය කරන්න ගොඩක් වැදගත් වෙනවා.

2. දත්ත එකතු කිරීමේ උපාය මාර්ග (Data Collection Strategies)

දැන් අපි දන්නවා මොන වගේ දත්ත වර්ග තියෙනවද කියලා. ඊළඟට, මේ AI models වලට ඕන කරන දත්ත එකතු කරන්නේ කොහොමද කියලා බලමු. දත්ත එකතු කිරීම කියන්නේ සැලසුම් සහගතව කරන්න ඕන දෙයක්. මොකද, හොඳ දත්ත නැත්නම් model එක වැඩක් නැහැ.

  • Web Scraping: Publicly available websites වලින් දත්ත ගන්න පුළුවන්. උදාහරණයක් විදියට, product reviews, news articles. හැබැයි, මේක කරනකොට වෙබ් අඩවියේ Terms of Service කියවලා, නීත්‍යානුකූලව කරන්න මතක තියාගන්න.
  • APIs (Application Programming Interfaces): ගොඩක් services (Twitter, Facebook, Weather APIs, Stock Market APIs වගේ) ඔවුන්ගේ දත්ත වලට access වෙන්න API සපයනවා. මේවා හරහා structured සහ unstructured දත්ත දෙකම ලබාගන්න පුළුවන්.
  • Databases: ඔයාගේ ආයතනයේ තියෙන existing databases (SQL, NoSQL) වලින් දත්ත ගන්න පුළුවන්. මේවා සාමාන්‍යයෙන් structured data වෙනවා.
  • Surveys and Questionnaires: සමහර වෙලාවට අපිට විශේෂිත දත්ත ඕන වෙනවා, ඒ වෙලාවට surveys කරන්න පුළුවන්.
  • Sensors and IoT Devices: Smart home devices, industrial sensors, medical devices වගේ IoT (Internet of Things) devices වලින් continuous data stream එකක් ගන්න පුළුවන්. මේවා සාමාන්‍යයෙන් Time-series data වෙනවා. AWS IoT Core වගේ services මේවා manage කරන්න උදව් වෙනවා.
  • Public Datasets: Kaggle, UCI Machine Learning Repository, AWS Open Data Registry වගේ තැන්වල නොමිලේ දත්ත කට්ටල (datasets) ඕන තරම් තියෙනවා. පරීක්ෂණ කරන්න, ඉගෙන ගන්න මේවා ගොඩක් හොඳයි.

දත්ත එකතු කරනකොට Data Privacy (දත්ත රහස්‍යභාවය), Security (ආරක්ෂාව) සහ Ethical Considerations (ආචාර ධර්ම) ගැන අනිවාර්යයෙන්ම හිතන්න ඕනේ. GDPR, CCPA වගේ නීති රීති ගැන අවධානයෙන් ඉන්න. කෙනෙක්ගේ පෞද්ගලික දත්ත අවභාවිතා නොකරන්න වගබලා ගන්න.

3. දත්තවල ගුණාත්මකභාවය (Data Quality Issues)

දත්ත එකතු කිරීමෙන් විතරක් වැඩේ ඉවර නැහැ. ඒ දත්තවල ගුණාත්මකභාවය (quality) හොඳටම බලපානවා ඔයාගේ AI model එකේ performance එකට. "Garbage In, Garbage Out" කියන කියමන මතක තියාගන්න. නරක දත්ත දුන්නොත්, model එකෙන් ලැබෙන්නේ නරක ප්‍රතිඵල විතරයි.

දත්තවල ගුණාත්මකභාවයට බලපාන ප්‍රධාන ගැටලු කිහිපයක්:

  • Missing Values: සමහර දත්ත points වලට values නැතුව ඇති. උදාහරණයක් විදියට, customer information එකේ phone number එක නැතුව ඇති.
  • Inconsistent Data: එකම දත්තය විවිධ විදියට ඇතුළත් කරලා තියෙන්න පුළුවන්. උදාහරණයක් විදියට, "USA", "U.S.A.", "United States" වගේ.
  • Outliers: සාමාන්‍ය දත්තවලින් ගොඩක් දුරස් වෙන දත්ත. උදාහරණයක් විදියට, salary එකකදී $1000000000 වගේ අසාමාන්‍ය අගයක්. මේවා වැරදි නිසා වෙන්නත් පුළුවන්, නැත්නම් ඇත්තටම දුර්ලභ සිදුවීම් වෙන්නත් පුළුවන්.
  • Noisy Data: වැරදි, අසම්පූර්ණ හෝ අසත්‍ය දත්ත. Sensors වලින් එන දත්තවල noise තියෙන්න පුළුවන්.
  • Duplicate Records: එකම දත්තය කිහිප වතාවක් ඇතුළත් කරලා තියෙන අවස්ථා.
  • Incorrect Data Types: Numbers වෙනුවට text තිබීම, dates වැරදි format එකක තිබීම වගේ.

මේ වගේ ප්‍රශ්න AI model එකක accuracy එකට, reliability එකට සහ generalizability එකට කෙලින්ම බලපානවා. ඒ නිසා, දත්ත පිරිසිදු කිරීම (Data Cleaning) කියන්නේ හරිම වැදගත් පියවරක්.

4. දත්ත පූර්ව සැකසීම (Data Preprocessing): පිරිසිදු කිරීම සහ සාමාන්‍යකරණය

දැන් අපි දන්නවා අපේ දත්තවල ප්‍රශ්න තියෙන්න පුළුවන් කියලා. ඉතින්, ඒ ප්‍රශ්න හඳුනාගෙන, ඒවා විසඳලා, අපේ AI model එකට දෙන්න කලින් දත්ත ටික ලෑස්ති කරගන්න ඕනේ. මේකට කියන්නේ Data Preprocessing කියලා. මේක ප්‍රධාන කොටස් දෙකකට කඩන්න පුළුවන්: Data Cleaning සහ Data Normalization (හෝ Scaling).

Data Cleaning (දත්ත පිරිසිදු කිරීම)

මෙතනදී අපි කරන්නේ දත්තවල තියෙන වැරදි, අසම්පූර්ණතා සහ inconsistencies හරිගස්සන එකයි.

  • Missing Values හැසිරවීම:
    • Remove: ඒ record එක සම්පූර්ණයෙන්ම අයින් කරන එක. හැබැයි, දත්ත ගොඩක් නැති වෙන්න පුළුවන්.
    • Impute: නැති වෙච්ච value එකට වෙන value එකක් දාන එක. Average (mean), median, mode වගේ දේවල් පාවිච්චි කරන්න පුළුවන්. Machine Learning models පවා මේකට පාවිච්චි කරන්න පුළුවන්.
  • Duplicate Records ඉවත් කිරීම: එකම වගේ records තියෙනවා නම් ඒවා අයින් කරන්න ඕනේ.
  • Outliers හඳුනා ගැනීම සහ හැසිරවීම: Outliers අයින් කරන්න පුළුවන්, නැත්නම් ඒවා transform කරන්න (log transform වගේ) පුළුවන්. සමහර වෙලාවට, outliers වලටත් වැදගත් තොරතුරු තියෙන්න පුළුවන්, ඒ නිසා පරිස්සමෙන් මේවා handle කරන්න ඕනේ.
  • Inconsistent Data හරිගැස්සීම: Standardize කරන එක (e.g., "USA" හැම තැනම පාවිච්චි කරන එක).

Data Normalization / Scaling (දත්ත සාමාන්‍යකරණය)

බොහෝ Machine Learning algorithms, විවිධ scale වල තියෙන features එක්ක වැඩ කරනකොට හොඳට perform කරන්නේ නැහැ. උදාහරණයක් විදියට, Salary (ලක්ෂ ගණන්) සහ Age (දශක ගණන්) වගේ features දෙකක් එකට තිබ්බොත්, Salary එකෙන් model එකට වැඩි බලපෑමක් වෙන්න පුළුවන්. මේකෙන් වළක්වන්න තමයි අපි Normalization හෝ Standardization කරන්නේ.

  • Normalization (Min-Max Scaling): දත්ත 0 ත් 1 ත් අතර පරාසයකට ගේනවා. Formula එක: X_normalized = (X - min(X)) / (max(X) - min(X))
  • Standardization (Z-score Normalization): දත්ත mean (අගය) 0 සහ standard deviation 1 වෙන විදියට scale කරනවා. Formula එක: X_standardized = (X - mean(X)) / std(X)

ඔයාගේ model එක අනුව මේ දෙකෙන් එකක් තෝරාගන්න පුළුවන්. Linear Regression, Logistic Regression, SVM, Neural Networks වගේ models වලට scaling අනිවාර්යයෙන්ම අවශ්‍ය වෙනවා.

ප්‍රායෝගික උදාහරණයක් (Practical Example) - Python භාවිතා කරමින් Data Preprocessing

අපි බලමු Python වල pandas සහ scikit-learn libraries භාවිතා කරලා මේ දේවල් කරන්නේ කොහොමද කියලා.

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.impute import SimpleImputer

# උදාහරණ දත්ත කට්ටලයක් (Sample Dataset) නිර්මාණය කරමු
data = {
    'Age': [25, 30, None, 40, 22, 55, 38, None, 60],
    'Salary': [50000, 60000, 45000, 80000, 52000, None, 75000, 58000, 90000],
    'Experience': [2, 5, 1, 10, 3, 20, 8, 4, None],
    'Country': ['USA', 'UK', 'USA', 'Germany', 'UK', 'USA', 'Germany', 'USA', 'UK']
}
df = pd.DataFrame(data)
print("මුල් දත්ත කට්ටලය (Original DataFrame):")
print(df)
print("\n")

# 1. Missing Values හැසිරවීම (Handling Missing Values)
# 'Age' සහ 'Experience' වගේ numerical columns වලට mean එක දාමු
# 'Salary' වගේ numerical column එකට median එක දාමු (outliers තියෙන්න පුළුවන් නිසා)

imputer_mean = SimpleImputer(strategy='mean')
df['Age'] = imputer_mean.fit_transform(df[['Age']])
df['Experience'] = imputer_mean.fit_transform(df[['Experience']])

imputer_median = SimpleImputer(strategy='median')
df['Salary'] = imputer_median.fit_transform(df[['Salary']])

print("Missing Values හැසිරවීමෙන් පසු (After Handling Missing Values):")
print(df)
print("\n")

# 2. Categorical Data Encoding (optional, but important for some models)
# 'Country' column එක One-Hot Encoding කරමු
df = pd.get_dummies(df, columns=['Country'], drop_first=True) # drop_first=True removes one column to avoid multicollinearity

print("Categorical Data Encoding පසුව (After Categorical Data Encoding):")
print(df)
print("\n")

# 3. Data Scaling (දත්ත සාමාන්‍යකරණය) - Standardization
# Numerical columns තෝරා ගනිමු
numerical_cols = ['Age', 'Salary', 'Experience']
scaler = StandardScaler()
df[numerical_cols] = scaler.fit_transform(df[numerical_cols])

print("දත්ත සාමාන්‍යකරණයෙන් පසු (After Data Standardization):")
print(df)

මේ උදාහරණයෙන් පෙනෙනවා නේද, අපේ දත්ත AI model එකකට දෙන්න කලින් මොන තරම් සැකසීමකට ලක් කරන්න ඕනෙද කියලා. මේ පියවර මඟින් model එකේ කාර්ය සාධනය (performance) ගොඩක් වැඩි දියුණු කරන්න පුළුවන්.

5. Feature Engineering: AI/ML සඳහා දත්ත සකස් කිරීම

Data Preprocessing කියන්නේ දත්ත පිරිසිදු කරලා, ready කරන එක නම්, Feature Engineering කියන්නේ ඒ දත්ත වලින් අලුත්, වඩාත් වැදගත් features (විශේෂාංග) හදන එකයි. මේකෙන් model එකට දත්ත තේරුම් ගන්න තවත් පහසු වෙනවා. Feature Engineering කියන්නේ කලාවක් වගේම විද්‍යාවක්. මේකට domain knowledge සහ creativity දෙකම ඕනේ.

Feature Engineering Techniques උදාහරණ:

  • Creating New Features from Existing Ones:
    • උදාහරණයක් විදියට, Date column එකකින් Day_of_Week, Month, Year, Is_Weekend වගේ අලුත් features හදන්න පුළුවන්.
    • Height සහ Weight වලින් BMI (Body Mass Index) වගේ අලුත් feature එකක් හදන එක.
    • Price සහ Quantity වලින් Total_Revenue හදන එක.
  • Combining Features: සමහර වෙලාවට features දෙකක් හෝ වැඩි ගණනක් එකට එකතු කරන එකෙන් වඩා හොඳ තොරතුරක් ලැබෙන්න පුළුවන්.
  • Encoding Categorical Features: Country, Gender වගේ text-based features, numbers වලට හරවන එක (e.g., One-Hot Encoding, Label Encoding). අපේ Python example එකේදී pd.get_dummies වලින් ඒක කරා.
  • Binning Numerical Features: Continuous numerical data ටිකක් bins (කණ්ඩායම්) වලට වෙන් කරන එක. උදාහරණයක් විදියට, Age එක Age_Group (18-25, 26-35, etc.) වලට කඩන එක.

හොඳ Feature Engineering එකක් model එකේ accuracy එක සැලකිය යුතු මට්ටමකින් වැඩි කරන්න පුළුවන්. මේකෙන් complex relationships model එකට තේරුම් ගන්න උදව් වෙනවා.

6. දත්ත ලේබල් කිරීමේ ක්‍රම (Data Labeling Techniques)

අවසාන වශයෙන්, අපි කතා කරමු Data Labeling ගැන. Supervised Learning models හදන්න නම්, අපිට label කරපු දත්ත (labeled data) අනිවාර්යයෙන්ම අවශ්‍යයි. Labeling කියන්නේ අපේ raw data වලට meaningful tags හෝ annotations එකතු කරන එක.

උදාහරණයක් විදියට, image එකක බල්ලෙක් ඉන්නවා නම්, ඒ image එකට "Dog" කියලා label කරන එක. Text එකක sentiment එක positive ද negative ද කියලා කියන එක. මේවා තමයි labels.

ප්‍රධාන Data Labeling ක්‍රම කිහිපයක්:

  • Manual Labeling (Human Annotation): මේක තමයි වඩාත් පොදු ක්‍රමය. මිනිස්සු (human annotators) දත්ත බලාගෙන, ඒවට අදාළ labels එකතු කරනවා. මේක ගොඩක් වෙලාවට ගුණාත්මකභාවයෙන් ඉහළයි, හැබැයි කාලය සහ මුදල් ගොඩක් යන වැඩක්. Amazon SageMaker Ground Truth වගේ AWS services මේකට උදව් වෙනවා. ඒකෙන් labeling jobs outsource කරන්න පුළුවන්.
  • Programmatic Labeling (Rule-based Labeling): සමහර වෙලාවට අපිට predefined rules set එකක් පාවිච්චි කරලා දත්ත automate විදියට label කරන්න පුළුවන්. උදාහරණයක් විදියට, review එකක "excellent", "amazing" වගේ වචන තියෙනවා නම් ඒක "Positive" කියලා label කරන එක. මේක වේගවත්, නමුත් rules හදන්න ගොඩක් මහන්සි වෙන්න ඕනෙ, හැම වෙලේම නිවැරදි වෙන්නේ නැහැ.
  • Semi-supervised Learning / Active Learning: මේකෙදි මුලින් පොඩි දත්ත ප්‍රමාණයක් manual විදියට label කරනවා. ඊට පස්සේ model එකක් හදලා, ඒ model එකෙන් label නොකරපු දත්ත predict කරනවා. Model එකට විශ්වාස නැති predictions ටික ආයෙත් මිනිස්සුන්ට review කරන්න දෙනවා. මේකෙන් labeling process එකේ කාර්යක්ෂමතාවය වැඩි කරගන්න පුළුවන්.
  • Transfer Learning: සමහර වෙලාවට, කලින් training කරපු models (pre-trained models) පාවිච්චි කරලා, අපේ දත්ත වලට labels generate කරගන්න පුළුවන්. ඊට පස්සේ ඒ labels ටික මිනිස්සුන්ට check කරන්න දෙන්න පුළුවන්.

හොඳට label කරපු, උසස් තත්ත්වයේ දත්ත කට්ටලයක් (dataset) කියන්නේ ඕනෑම supervised Machine Learning model එකක සාර්ථකත්වයට යතුරක්. ලේබල් කිරීමේදී consistency (නිරවද්‍යතාවය) සහ accuracy (එකම විදියට ලේබල් කිරීම) පවත්වා ගැනීම ඉතාමත් වැදගත්.

අවසන් වචන (Conclusion)

ඉතින් යාලුවනේ, මේ guide එකෙන් ඔයාලට AWS AI Projects වලදී දත්ත එක්ක වැඩ කරන විදිය ගැන හොඳ අවබෝධයක් ලැබෙන්න ඇති කියලා මම හිතනවා. අපි කතා කරා දත්ත වර්ග ගැන, ඒවා එකතු කරන විදිය ගැන, දත්තවල ගුණාත්මකභාවය ගැන, දත්ත පූර්ව සැකසීම (Data Preprocessing), Feature Engineering සහ දත්ත ලේබල් කිරීම (Data Labeling) ගැන. මේ හැම පියවරක්ම AI model එකක් සාර්ථක කරගන්න අත්‍යවශ්‍යයි.

මතක තියාගන්න, දත්ත කියන්නේ AI වල හදවත. දත්ත හොඳ නම්, ප්‍රතිඵලත් හොඳයි. මේ දේවල් තවදුරටත් ඉගෙන ගන්න, ඔයාලට පුළුවන් AWS Documentation, Kaggle competitions, සහ Python libraries (Pandas, Scikit-learn) එක්ක වැඩ කරලා බලන්න.

ඔයාලගේ අදහස්, ප්‍රශ්න හෝ අත්දැකීම් පහතින් comment කරන්න. මේ වගේ තවත් guide එකක් ඕනද කියලත් කියන්න. එහෙනම්, තවත් අලුත් දෙයකින් හමුවෙමු! Happy Learning!