පාඩම 4.2: අධීක්ෂිත ඉගෙනුම

ලේබල් කරන ලද දත්ත භාවිතයෙන් පරිගණකයට ඉගැන්වීම.

1. අධීක්ෂිත ඉගෙනුම (Supervised Learning) යනු කුමක්ද?

අධීක්ෂිත ඉගෙනුම යනු වඩාත්ම සුලභ සහ සරල Machine Learning වර්ගයයි. මෙහිදී, අපි පරිගණකයට ලේබල් කරන ලද දත්ත (labeled data) ලබා දෙමු. එනම්, සෑම දත්ත ආදානයකටම (input) අදාළ "නිවැරදි පිළිතුර" (output) කුමක්දැයි අපි කල්තියාම කියා දෙන්නෙමු.

ඇනලොජිය

මෙය හරියට ගුරුවරයෙකු, ශිෂ්‍යයෙකුට පිළිතුරු පත්‍රිකාවක් (answer key) සමඟ ප්‍රශ්න පත්‍ර (data with labels) ලබා දී විභාගයට පුහුණු කරනවා වැනිය. ශිෂ්‍යයා (ML model) ප්‍රශ්න සහ පිළිතුරු අතර ඇති සම්බන්ධය ඉගෙන ගන්නා අතර, පසුව පිළිතුරු නොමැති නව ප්‍රශ්න පත්‍රයකට මුහුණ දීමට සූදානම් වේ.

ප්‍රධාන අරමුණ: ආදානය (Input - $X$) සහ ප්‍රතිදානය (Output - $y$) අතර ඇති සම්බන්ධය, එනම් $y = f(X)$ ශ්‍රිතය, ඉගෙන ගැනීමයි. මෙම $f$ ශ්‍රිතය අපගේ ආකෘතිය (Model) වේ.

2. අධීක්ෂිත ඉගෙනුමේ ප්‍රධාන වර්ග

අධීක්ෂිත ඉගෙනුමේදී අප පුරෝකථනය කිරීමට උත්සාහ කරන "පිළිතුර" අනුව, එය ප්‍රධාන වර්ග දෙකකට බෙදේ.

A. ප්‍රතිගමනය (Regression)

අරමුණ: අඛණ්ඩ (continuous) සංඛ්‍යාත්මක අගයක් පුරෝකථනය කිරීම. සරලවම, "කොපමණද?" (How much?) යන ප්‍රශ්නයට පිළිතුරු දීමයි.

  • උදාහරණ:
    • නිවසක වර්ගඵලය, කාමර ගණන වැනි දත්ත මත එහි මිල පුරෝකථනය කිරීම.
    • කාලගුණ දත්ත මත පදනම්ව, හෙට දවසේ උපරිම උෂ්ණත්වය පුරෝකථනය කිරීම.
    • වෙළඳ දැන්වීම් සඳහා වියදම් කරන මුදල මත, ලැබෙන ආදායම පුරෝකථනය කිරීම.
Python උදාහරණය: නිවාස මිල පුරෝකථනය
from sklearn.linear_model import LinearRegression
import numpy as np

# 1. දත්ත (වර්ග අඩි [X] සහ මිල [y]) - මේවා අපේ ලේබල් කළ දත්ත
X_train = np.array([[1000], [1500], [2000], [2500], [3000]]) # වර්ග අඩි
y_train = np.array([20, 28, 35, 45, 52]) # මිල (ලක්ෂ වලින්)

# 2. ආකෘතිය නිර්මාණය කර පුහුණු කිරීම
model = LinearRegression()
model.fit(X_train, y_train) # දත්ත වලින් රටාව ඉගෙන ගැනීම

# 3. නව දත්ත සඳහා අනාවැකි කීම
new_house_sqft = np.array([1800]]) # ආකෘතිය මීට පෙර නොදුටු දත්ත
predicted_price = model.predict(new_house_sqft.reshape(1, -1))

print(f"වර්ග අඩි 1800 ක නිවසක පුරෝකථනය කළ මිල: ලක්ෂ {predicted_price[0]:.2f} ක් පමණ වේ.")

B. වර්ගීකරණය (Classification)

අරමුණ: දත්ත, කලින් නියම කළ කාණ්ඩ (categories) හෝ පන්ති (classes) වලින් එකකට අයත් දැයි තීරණය කිරීම. සරලවම, "කුමන වර්ගයටද?" (Which category?) යන ප්‍රශ්නයට පිළිතුරු දීමයි.

  • උදාහරණ:
    • ඊමේල් පණිවිඩයක් "Spam" ද නැතහොත් "Not Spam" ද යන්න තීරණය කිරීම.
    • පින්තූරයක් "බළලෙක්" ද, "බල්ලෙක්" ද, නැතහොත් "වෙනත් සතෙක්" ද යන්න හඳුනාගැනීම.
    • බැංකු ගනුදෙනුවක් "වංචනික (Fraud)""නීත්‍යානුකූල (Legit)" ද යන්න තීරණය කිරීම.
Python උදාහරණය: මල් වර්ග හඳුනාගැනීම (Iris Dataset)
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# 1. Iris මල් දත්ත කට්ටලය ලබා ගැනීම
iris = load_iris()
X, y = iris.data, iris.target

# 2. දත්ත, පුහුණු කිරීම සහ පරීක්ෂා කිරීම සඳහා කොටස් දෙකකට බෙදීම
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 3. ආකෘතිය නිර්මාණය කර පුහුණු කිරීම
model = KNeighborsClassifier(n_neighbors=3)
model.fit(X_train, y_train)

# 4. පරීක්ෂණ දත්ත (test data) සඳහා අනාවැකි කීම
predictions = model.predict(X_test)

# 5. ආකෘතියේ නිරවද්‍යතාවය පරීක්ෂා කිරීම
accuracy = accuracy_score(y_test, predictions)
print(f"ආකෘතියේ නිරවද්‍යතාවය (Accuracy): {accuracy * 100:.2f}%")
සාරාංශය සහ ඉදිරි පියවර

මෙම පාඩමේදී ඔබ, ලේබල් කරන ලද දත්ත භාවිතයෙන් ඉගෙන ගන්නා අධීක්ෂිත ඉගෙනුම පිළිබඳව ඉගෙන ගත්තා. එහි ප්‍රධාන වර්ග දෙක වන ප්‍රතිගමනය (සංඛ්‍යා පුරෝකථනය) සහ වර්ගීකරණය (කාණ්ඩ පුරෝකථනය) අතර වෙනස ඔබ දැන් දන්නවා.