ලේබල් කරන ලද දත්ත භාවිතයෙන් පරිගණකයට ඉගැන්වීම.
අධීක්ෂිත ඉගෙනුම යනු වඩාත්ම සුලභ සහ සරල Machine Learning වර්ගයයි. මෙහිදී, අපි පරිගණකයට ලේබල් කරන ලද දත්ත (labeled data) ලබා දෙමු. එනම්, සෑම දත්ත ආදානයකටම (input) අදාළ "නිවැරදි පිළිතුර" (output) කුමක්දැයි අපි කල්තියාම කියා දෙන්නෙමු.
මෙය හරියට ගුරුවරයෙකු, ශිෂ්යයෙකුට පිළිතුරු පත්රිකාවක් (answer key) සමඟ ප්රශ්න පත්ර (data with labels) ලබා දී විභාගයට පුහුණු කරනවා වැනිය. ශිෂ්යයා (ML model) ප්රශ්න සහ පිළිතුරු අතර ඇති සම්බන්ධය ඉගෙන ගන්නා අතර, පසුව පිළිතුරු නොමැති නව ප්රශ්න පත්රයකට මුහුණ දීමට සූදානම් වේ.
ප්රධාන අරමුණ: ආදානය (Input - $X$) සහ ප්රතිදානය (Output - $y$) අතර ඇති සම්බන්ධය, එනම් $y = f(X)$ ශ්රිතය, ඉගෙන ගැනීමයි. මෙම $f$ ශ්රිතය අපගේ ආකෘතිය (Model) වේ.
අධීක්ෂිත ඉගෙනුමේදී අප පුරෝකථනය කිරීමට උත්සාහ කරන "පිළිතුර" අනුව, එය ප්රධාන වර්ග දෙකකට බෙදේ.
අරමුණ: අඛණ්ඩ (continuous) සංඛ්යාත්මක අගයක් පුරෝකථනය කිරීම. සරලවම, "කොපමණද?" (How much?) යන ප්රශ්නයට පිළිතුරු දීමයි.
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} ක් පමණ වේ.")
අරමුණ: දත්ත, කලින් නියම කළ කාණ්ඩ (categories) හෝ පන්ති (classes) වලින් එකකට අයත් දැයි තීරණය කිරීම. සරලවම, "කුමන වර්ගයටද?" (Which category?) යන ප්රශ්නයට පිළිතුරු දීමයි.
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}%")
මෙම පාඩමේදී ඔබ, ලේබල් කරන ලද දත්ත භාවිතයෙන් ඉගෙන ගන්නා අධීක්ෂිත ඉගෙනුම පිළිබඳව ඉගෙන ගත්තා. එහි ප්රධාන වර්ග දෙක වන ප්රතිගමනය (සංඛ්යා පුරෝකථනය) සහ වර්ගීකරණය (කාණ්ඩ පුරෝකථනය) අතර වෙනස ඔබ දැන් දන්නවා.