AWS AI Data Fundamentals Sinhala | Data Types, Preprocessing & Labeling

AWS AI Data Fundamentals Sinhala | Data Types, Preprocessing & Labeling

කොහොමද යාලුවනේ! අද අපි කතා කරන්න යන්නේ Artificial Intelligence (AI) සහ Machine Learning (ML) කියන මේ ලෝකේදී අතිශයින්ම වැදගත් වෙන මාතෘකාවක් ගැන. ඒ තමයි Data Fundamentals. විශේෂයෙන්ම AWS (Amazon Web Services) platform එක පාවිච්චි කරනකොට මේ Data ගැන නිසි අවබෝධයක් තියෙන එක අතිශයින්ම වැදගත්.

මොකද, AI සහ ML කියන්නේ Data නැතිව කරන්න බැරි වැඩක්. හරියට එන්ජිමක් නැති වාහනයක් වගේ. හොඳ Data නැත්නම්, අපේ ML Model එක කොයිතරම් දක්ෂ වුණත්, අපිට නිවැරදි ප්‍රතිඵල ගන්න බැහැ. ඒකයි කියන්නේ "Garbage in, garbage out" කියලා. මේ ලිපියෙන් අපි Data Types, Data Collection, Data Quality, Preprocessing, Feature Engineering සහ Data Labeling කියන මේ හැමදෙයක්ම සිංහලෙන් සරලව කතා කරමු.

ඔබ AWS AI/ML services පාවිච්චි කරන්න හදන කෙනෙක් නම්, නැත්නම් මේ ක්ෂේත්‍රය ගැන ඉගෙන ගන්න පටන් ගත්ත කෙනෙක් නම්, මේ Guide එක ඔබට ගොඩක් වැදගත් වෙයි! අපි පටන් ගමු!

Data Types: Structured ද Unstructured ද?

AI/ML models වලට Data දෙනකොට, ඒ Data වල හැඩය (structure) අනුව අපි ඒවා කාණ්ඩ දෙකකට වෙන් කරනවා. ඒ තමයි Structured Data සහ Unstructured Data.

Structured Data

මේවා තමයි පේළි (rows) සහ තීරු (columns) වලින් තියෙන, හොඳට සංවිධානය කරපු Data. Database එකක තියෙන Data, Spreadsheet එකක තියෙන Data, CSV (Comma Separated Values) files වගේ දේවල් මේ ගණයට වැටෙනවා. මේවා හොයාගන්න, organize කරන්න, query කරන්න සහ analysis කරන්න ගොඩක් පහසුයි. උදාහරණයක් විදිහට:

  • පාරිභෝගික තොරතුරු (නම, වයස, ලිපිනය, දුරකථන අංකය)
  • ගනුදෙනු වාර්තා (දිනය, භාණ්ඩය, ප්‍රමාණය, මිල)
  • ඉන්වෙන්ටරි වාර්තා

AWS වලදී S3 (Simple Storage Service), RDS (Relational Database Service), DynamoDB වගේ සේවාවල මේවා ගබඩා කරන්න පුළුවන්.

Unstructured Data

මේවාට විශේෂිත හැඩයක් නැහැ. Text, Images, Audio, Video files වගේ දේවල් මේ ගණයට වැටෙනවා. මේවා analyse කරන්න, process කරන්න Structured Data වලට වඩා අමාරුයි. හැබැයි අද වෙද්දී AI Models වලට මේ Unstructured Data වලින් ගොඩක් දේවල් ඉගෙන ගන්න පුළුවන් වෙලා තියෙනවා. උදාහරණයක් විදිහට:

  • සමාජ මාධ්‍ය සටහන් (Twitter tweets, Facebook posts)
  • ඊමේල් (Emails)
  • පින්තූර (Images - faces, objects)
  • හඬ පට (Audio recordings - speech)
  • වීඩියෝ (Videos)

AWS වලදී S3 තමයි මේවා ගබඩා කරන්න ප්‍රධාන වශයෙන් පාවිච්චි කරන්නේ. S3 කියන්නේ ඕනෑම ආකාරයක Data ගබඩා කරන්න පුළුවන් ගබඩාවක්.

Data Collection Strategies: කොහොමද Data එකතු කරන්නේ?

හොඳ AI Model එකක් හදන්න හොඳ Data ඕන කරනවා වගේම, ඒ Data එකතු කරගන්න විදිහත් ගොඩක් වැදගත්. Data Collection කියන්නේ හරියට නිධානයක් හොයනවා වගේ වැඩක්. අපි බලමු ප්‍රධාන Strategies ටිකක්.

1. APIs (Application Programming Interfaces) හරහා

ගොඩක් වෙලාවට අනෙකුත් services, applications හෝ social media platforms Data ලබා දෙන්නේ API හරහා. උදාහරණයක් විදිහට, Twitter API එකෙන් Tweets ගන්න පුළුවන්, Google Maps API එකෙන් location data ගන්න පුළුවන්. මේවා automate කරන්නත් පහසුයි.

2. Web Scraping

අන්තර්ජාලයේ තියෙන websites වලින් Data extract කරන එකට තමයි Web Scraping කියන්නේ. හැබැයි මේක කරනකොට ethics, legal aspects ගැන සැලකිලිමත් වෙන්න ඕනේ. සමහර වෙබ් අඩවි Web Scraping වලට ඉඩ දෙන්නේ නැහැ.

3. Sensors සහ IoT Devices

IoT (Internet of Things) devices වලින් පරිසරය (උෂ්ණත්වය, ආර්ද්‍රතාවය), යන්ත්‍ර සූත්‍ර (RPM, vibration) වගේ දේවල් ගැන Data continuously එකතු කරනවා. මේවා AI models වලට අනාවැකි (predictions) පළ කරන්න ගොඩක් ප්‍රයෝජනවත්.

4. Existing Databases සහ Data Warehouses

ඔබේ ආයතනයට දැනටමත් තියෙන databases (MySQL, PostgreSQL, Oracle) හෝ Data Warehouses (AWS Redshift) වලින් ඔබට ගොඩක් Structured Data ලබාගන්න පුළුවන්. AWS Data Pipeline, AWS Glue වැනි සේවාවන් මේවා migrate කරන්න, transform කරන්න උදව් කරනවා.

5. Manual Data Entry සහ Surveys

සමහර අවස්ථාවලදී, විශේෂයෙන්ම කුඩා Data Sets වලට, මිනිසුන් විසින්ම Data ඇතුලත් කිරීම (manual data entry) හෝ Surveys පැවැත්වීම ප්‍රයෝජනවත් වෙන්න පුළුවන්.

Data Quality Issues: Data වල තියෙන අවුල් මොනවද?

Data එකතු කරගත්තා කියන්නේ වැඩේ ඉවරයි කියන එක නෙවෙයි. ඒ Data වල ගුණාත්මක භාවය (quality) හොඳ නැත්නම්, අපේ Model එකෙන් ගන්න outputs වැරදි වෙන්න පුළුවන්. මේ තියෙන්නේ බහුලවම දකින්න ලැබෙන Data Quality Issues කීපයක්:

1. Missing Values (දත්ත නැතිවීම)

සමහර Data fields වල අගයන් නැති වෙන්න පුළුවන් (empty cells). උදාහරණයක් විදිහට, customer form එකක phone number එක enter කරලා නැති වෙන්න පුළුවන්.

2. Outliers (අසාමාන්‍ය දත්ත)

සාමාන්‍ය Data pattern එකෙන් ගොඩක් වෙනස් Data points මේවා. උදාහරණයක් විදිහට, customer age එක 250 කියලා තියෙනවා නම්, ඒක outlier එකක්. මේවා errors වෙන්නත් පුළුවන්, නැත්නම් ඇත්තටම තියෙන අසාමාන්‍ය අවස්ථා වෙන්නත් පුළුවන්.

3. Inconsistencies (අනුකූල නොවීම)

එකම Data එක විවිධ විදිහට save වෙලා තියෙන එක. උදාහරණයක් විදිහට, customer names 'John Smith', 'john smith', 'J. Smith' වගේ විවිධ format වලින් තිබීම.

4. Duplicates (පුනරාවර්තන දත්ත)

එකම Data record එක කිහිප වතාවක්ම තිබීම. මේවා Model එකේ Training වලදී bias ඇති කරන්න පුළුවන්.

5. Noise (අනවශ්‍ය දත්ත)

Data එකේ තියෙන, Model එකට කිසිම ප්‍රයෝජනයක් නැති අමතර දේවල්. Sensors වලින් Data එනකොට surrounding environment එකෙන් එන interference වගේ දේවල් මේ ගණයට වැටෙන්න පුළුවන්.

Data Preprocessing: Data සූදානම් කරමු!

Data එකතු කරගෙන, Quality Issues ටිකත් හඳුනාගත්තට පස්සේ, අපි ඒ Data ටික AI Model එකට දෙන්න කලින් සුදානම් කරන්න ඕනේ. මේකට තමයි Data Preprocessing කියන්නේ. මේක AI/ML workflow එකේ ගොඩක්ම වැදගත් පියවරක්.

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

  • Handling Missing Values: නැති වෙලා තියෙන Data Points වලට අගයන් ඇතුළත් කිරීම (Imputation). Median, Mean, Mode වගේ දේවල් පාවිච්චි කරලා මේවා පුරවන්න පුළුවන්. නැත්නම්, ඒ Data Point එක සම්පූර්ණයෙන්ම අයින් කරන්නත් පුළුවන්.
  • Removing Duplicates: තියෙන Duplicate records අයින් කිරීම.
  • Outlier Treatment: Outliers හඳුනාගෙන, ඒවා modify කිරීම (capping) හෝ remove කිරීම.
  • Correcting Inconsistencies: Data Standardization (උදා: හැම නමක්ම Capitalize කිරීම).

2. Data Normalization/Scaling (දත්ත ප්‍රමිතිකරණය)

විවිධ scale වල තියෙන numeric features ටික එකම scale එකකට ගේන එකට තමයි Scaling කියන්නේ. මේක Model එකට Data හොඳින් තේරුම් ගන්න උදව් කරනවා. ගොඩක් ML algorithms (SVM, K-Nearest Neighbors) මේකට සංවේදීයි.

  • Min-Max Scaling: Data ටික 0 ත් 1 ත් අතර scale එකකට ගේනවා.
  • Standardization (Z-score Normalization): Data ටික zero mean, unit variance එකකට ගේනවා.

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

import pandas as pd
from sklearn.preprocessing import MinMaxScaler, StandardScaler

# Sample Data
data = {'Age': [25, 30, 35, 40, 60, 20],
        'Salary': [50000, 60000, 75000, 80000, 150000, 45000]}
df = pd.DataFrame(data)

print("Original Data:\n", df)

# Min-Max Scaling for 'Age'
min_max_scaler = MinMaxScaler()
df['Age_MinMax_Scaled'] = min_max_scaler.fit_transform(df[['Age']])

# Standardization for 'Salary'
standard_scaler = StandardScaler()
df['Salary_Standard_Scaled'] = standard_scaler.fit_transform(df[['Salary']])

print("\nScaled Data:\n", df)

මේ Code එක run කරහම පේනවා, Age සහ Salary කියන features වල අගයන් Min-Max Scaling සහ Standardization හරහා කොහොමද වෙනස් වෙන්නේ කියලා. මේක Model එකට විවිධ scale වල තියෙන features එක්ක වැඩ කරන්න උදව් කරනවා.

3. Encoding Categorical Data

String format එකෙන් තියෙන Categorical Data (උදා: 'Red', 'Green', 'Blue') numeric format එකකට හරවන්න ඕනේ, මොකද ගොඩක් ML Models වලට text තේරෙන්නේ නැහැ. මේකට One-Hot Encoding, Label Encoding වගේ ක්‍රම පාවිච්චි කරනවා.

import pandas as pd

# Sample Data with a categorical feature
data = {'Color': ['Red', 'Green', 'Blue', 'Red', 'Blue']}
df_color = pd.DataFrame(data)

print("Original Categorical Data:\n", df_color)

# One-Hot Encoding
df_encoded = pd.get_dummies(df_color, columns=['Color'], prefix='Color')

print("\nOne-Hot Encoded Data:\n", df_encoded)

Feature Engineering: Data වලින් අලුත් දේවල් හදමු!

Data Preprocessing වලින් අපි Data ටික පිරිසිදු කරලා, Model එකට ගැලපෙන විදිහට සකස් කරගත්තා. Feature Engineering කියන්නේ ඊටත් එහා ගිය දෙයක්. මෙතනදී අපි දැනට තියෙන Data වලින් Model එකේ Performance එක වැඩි කරන්න පුළුවන් අලුත් Features හදනවා.

උදාහරණයක් විදිහට, අපිට customer ගේ 'Date of Birth' එකක් තියෙනවා නම්, ඒකෙන් 'Age' එක, 'Month of Birth', 'Day of the Week' වගේ අලුත් Features හදන්න පුළුවන්. ඒ වගේම, 'Sales' සහ 'Marketing Spend' වගේ Features දෙකකින් 'Sales per Marketing Spend' වගේ Ratio එකක් හදන්නත් පුළුවන්. මේවා Model එකට Decision ගන්න ගොඩක් වැදගත් වෙන්න පුළුවන්.

  • Creating new features: දැනට තියෙන features වලින් අලුත් features හදන එක. (e.g., total price = quantity * unit price)
  • Transforming features: features වල Distribution එක වෙනස් කිරීම (e.g., logarithmic transformation).
  • Combining features: features දෙකක් හෝ වැඩි ගණනක් එකතු කිරීම.

මේ වැඩේට ගොඩක් Domain Knowledge ඕන කරනවා. ඒ කියන්නේ, ඔබ වැඩ කරන ක්ෂේත්‍රය ගැන හොඳ අවබෝධයක් තියෙන්න ඕනේ. AWS SageMaker වගේ Platforms වලට මේ Features කළමනාකරණය කරන්න සහ Automate කරන්න Tools තියෙනවා.

Data Labeling Techniques: Model එකට උගන්වමු!

අපි Supervised Learning Models හදනකොට, Model එකට ඉගෙන ගන්න Training Data ඕනේ. මේ Training Data වලදී අපිට Input Data එකත්, ඒ Input එකට අදාළ නිවැරදි Output (Label) එකත් තියෙන්න ඕනේ. Data Labeling කියන්නේ මේ Input Data වලට නිවැරදි Labels (tags) add කරන එක.

උදාහරණයක් විදිහට, Image Classification Model එකක් හදනවා නම්, අපි පින්තූරයක තියෙන වස්තුව (බල්ලෙක්ද, පූසෙක්ද) identify කරලා ඒකට අදාළ Label එක (e.g., 'Dog', 'Cat') add කරන්න ඕනේ.

1. Manual Labeling

මිනිසුන් විසින්ම Data එකට Labels add කරන එක. මේක Accuracy වැඩියි, හැබැයි ගොඩක් වෙලා යන, වියදම් අධික ක්‍රියාවලියක්.

2. Programmatic Labeling

අපිට දැනටමත් තියෙන rules, patterns හෝ heuristics පාවිච්චි කරලා Data වලට Labels generate කරන එක. මේක වේගවත් වුණත්, හැමවිටම Manual Labeling තරම් නිවැරදි නැහැ.

3. Semi-Automated Labeling

මිනිසුන්ගේ සහ Programmatic ක්‍රමවල එකතුවක්. මුලින් Model එකකින් Data ටිකක් Label කරලා, පස්සේ මිනිසුන් ලවා ඒ Labels review කරලා confirm කරවන එක. මේකෙන් කාලය සහ වියදම ඉතිරි කරගන්න පුළුවන්.

AWS වලට Amazon SageMaker Ground Truth කියලා Service එකක් තියෙනවා. මේකෙන් Image, Text, Video වගේ Data වලට Label කරන්න පුළුවන්. ඒ වගේම මේකෙන් Human annotators ලවා වැඩ කරවන්නත් පුළුවන්.

Conclusion: දත්ත වල බලය!

ඉතින් යාලුවනේ, මේ ලිපියෙන් අපි AWS AI/ML world එකට අත්‍යවශ්‍යම වෙන Data Fundamentals ගැන සරලව ඉගෙන ගත්තා. Structured Data සහ Unstructured Data කියන්නේ මොනවද, Data එකතු කරන්නේ කොහොමද, Quality Issues මොනවද, ඒවට විසඳුම් විදිහට Data Preprocessing කරන්නේ කොහොමද, Feature Engineering වලින් Model Performance එක වැඩි කරගන්නේ කොහොමද, සහ Data Labeling කියන්නේ මොකක්ද කියලා අපි කතා කළා.

AI/ML project එකක් සාර්ථක කරගන්න නම්, මේ හැම පියවරක් ගැනම නිසි අවධානය යොමු කරන්න ඕනේ. Data කියන්නේ AI/ML වල හදවත. ඒ හදවත හොඳට තියාගන්න එක ඔබේ වගකීමක්!

මේ දැනුමෙන් ඔබ AWS AI/ML වලට අලුත් පියවරක් තියන්න බලාපොරොත්තු වෙනවා නම්, දැන්ම මේ concepts පාවිච්චි කරලා පොඩි Project එකක් කරන්න පටන් ගන්න. ඔබේ අත්දැකීම් පහළින් comment කරන්න අමතක කරන්න එපා. මේ වගේ තවත් Tutorials එක්ක ඉක්මනින්ම හම්බවෙමු! ඔබට ජය!