AI · பாடம் 07 / 25 · தமிழ்
Unsupervised Learning
முன்னாடியே category சொல்லாமல், data-வில் உள்ள அமைப்பைப் பார்ப்போம்.
உள்ளடக்கம் சரிபார்த்த நாள்: 22 அக்டோபர் 2026 · Read in English ↗
எளிமையாப் புரிஞ்சுக்கலாம்
ஒவ்வொரு உதாரணத்திற்கும் பதில் கொடுக்காமல் data-வில் இருக்கும் pattern-ஐப் பார்க்கும் முறை Unsupervised Learning. ஒத்தவற்றை group செய்வது clustering. நிறைய features-ஐச் சுருக்கமாகக் காட்டுவது dimensionality reduction. கிடைத்த group-க்கு நிஜ வாழ்க்கையில் ஒரு முக்கியமான அர்த்தம் இருக்கணும்னு கட்டாயம் இல்லை. நாம் தேர்ந்தெடுத்த features, distance, scale, algorithm எல்லாம் result-ஐ மாற்றும்.
இந்த AI approach எப்படி வேலை செய்கிறது?
ஒவ்வொரு example-க்கும் target label கொடுக்காமல் data-விலுள்ள structure-ஐத் தேடுவது unsupervised learning. Clustering, dimensionality reduction, representation learning, density modeling எல்லாம் வேறு வேறு கேள்விகளுக்குப் பயன்படும். ஒரு example unusual-ஆக இருக்கிறது என்பதால் அது fraud அல்லது defect என்று உடனே முடிவு செய்ய முடியாது.
K-means-ல் இரண்டு வேலைகள் மாறிமாறி நடக்கும். ஒவ்வொரு point-ஐயும் அருகிலுள்ள center-க்கு assign செய்வோம். பிறகு அந்த group points-ஓட mean-ஐ புதிய center-ஆக வைப்போம். Group-க்குள் squared distance குறைய வேண்டும் என்பதுதான் objective. எத்தனை clusters வேண்டும் என்ற k, ஆரம்ப centers, feature scaling, outliers எல்லாம் result-ஐ மாற்றும். இதனால் கிடைக்கும் groups-தான் ஒரே சரியான business categories என்று அர்த்தமில்லை.
வேறு methods-க்கு வேறு assumptions இருக்கு. Density-based clustering அடர்த்தியாக உள்ள irregular groups-ஐக் கண்டுபிடிக்கலாம்; சில points-ஐ noise என்று விடலாம். Hierarchical clustering groups-க்குள் groups உருவாக்கும். PCA அதிக variance இருக்கும் directions-ஐ வைத்து dimensions குறைக்கும். ஆனால் அதிக variance இருக்கும் direction-தான் prediction-க்கு மிகப் பயனுள்ளது என்று சொல்ல முடியாது.
கிடைத்த structure நிலையாகவும் பயனுள்ளதாகவும் இருக்கிறதா என்று பாருங்க. ஒவ்வொரு group-ல சில examples படிங்க. Settings மாற்றிப் பாருங்க. Content அடிப்படையில் group ஆனதா, message length அல்லது language மட்டும் காரணமா என்று சோதிங்க. இந்த transformation-ஐ பின்னர் supervised model-ல் பயன்படுத்தினால் training split-க்குள் fit செய்யணும்; இல்லையென்றால் leakage வரலாம்.
ஒவ்வொரு படியாகப் பார்க்கலாம்
- எதன் அடிப்படையில் ஒத்ததாகக் கருதணும் என்று features தேர்வு பண்ணுங்க.
- Distance பார்க்கும் முன் features-ஓட scale-ஐக் கவனிங்க.
- Groups கிடைத்ததும் அவை நம்ம வேலையில் உண்மையாக உதவுதா என்று பாருங்க.
உதாரணம்: task-உடன் approach-ஐ இணைக்கலாம்
Support messages-ல் அடிக்கடி வரும் பிரச்சினைகளைக் கண்டுபிடிக்க clustering செய்கிறோம். ஒரு group-ல் சின்ன தமிழ் messages, இன்னொன்றில் நீளமான English messages வந்தால், அது support need-ஐ விட representation காரணமாக இருக்கலாம். Sample messages படித்து multilingual representations-ஐ ஒப்பிடாமல் beginner, advanced என்று பெயர் வைக்காதீங்க.
கீழே உள்ள code-ல் one-dimensional k-means-ஓட assignment, center update இரண்டும் நடக்கும். அந்த algorithm எப்படி வேலை செய்கிறது என்பதைப் பார்க்கலாம். உண்மையான மாணவர்கள் அல்லது messages இயற்கையாகவே இரண்டு groups-ஆகப் பிரிகிறார்கள் என்பதற்கான சான்று இது இல்லை.
Algorithm பயிற்சி: கணிச்சு, மாற்றி, விளக்கலாம்
Assignment, update இரண்டும் நடக்கும் loop-ஐ இயக்குங்க. ஆரம்ப centers மாற்றியோ outlier சேர்த்தோ means எப்படி மாறுகிறது என்று பாருங்க. இது one-dimensional k-means; மனிதர்களுக்கான இயற்கையான categories பற்றிய claim இல்லை.
points = [1, 2, 3, 9, 10, 11]
centers = [1.0, 9.0]
for iteration in range(10):
groups = [[], []]
for point in points:
cluster = min(range(2), key=lambda j: abs(point - centers[j]))
groups[cluster].append(point)
updated = [sum(group) / len(group) if group else centers[j]
for j, group in enumerate(groups)]
print("iteration", iteration + 1, "centers:", updated)
if updated == centers:
break
centers = updated
print("groups:", groups)முதலில் கணிங்க; பிறகு output பாருங்க
iteration 1 centers: [2.0, 10.0] iteration 2 centers: [2.0, 10.0] groups: [[1, 2, 3], [9, 10, 11]]
ஒரு விஷயத்தை மாற்றி இயக்கிப் பாருங்க.
இந்தப் பயிற்சிக்கு standard Python போதும். Package install அல்லது paid API தேவையில்லை. மேலே சொன்ன variable-ஐ மாற்றி, method-ல் என்ன விளைவு வருகிறது என்று விளக்கிப் பாருங்க. பிறகுதான் real data-க்கு எடுத்துச் செல்லலாம்.
Editor முழுவதும் load ஆனதும் code-ஐ ஏற்றி Run அழுத்துங்க.
இந்த இலவச editor, OneCompiler என்ற வெளிப்புறச் சேவையைப் பயன்படுத்தும். Run செய்யும் code அங்கு அனுப்பப்படும். Passwords, API keys, மாணவர்களின் private data போன்றவற்றைப் போடாதீங்க. Code வரவில்லை என்றால் editor தயாரானதும் மறுபடியும் ஏற்றுங்க.
கருத்தைப் பயன்படுத்தலாம்: உங்க புரிதலைச் சோதிங்க
விடை பார்க்கும் முன் யோசிங்க
ஒரு feature-ஐ rupees-லிருந்து paise-க்கு மாற்றி, மற்ற feature-ஐ அப்படியே விட்டால் clusters மாறலாமா?
விடையும் காரணமும் பார்க்கலாம்
மாறலாம். Distance-based methods-க்கு features-ஓட relative scale முக்கியம். Features என்ன அர்த்தம் தருகின்றன என்பதை வைத்து scaling தேர்வு செய்யணும். Unit மாற்றம் similarity-ஐத் தெரியாமல் மாற்றக்கூடாது.
கவனிக்க வேண்டிய தவறு: Group number ஒரு அடையாளம் மட்டும்தான். Group 1 என்பதால் group 0-ஐவிட நல்லது என்று அர்த்தம் இல்லை.
அடுத்த பாடத்துக்கு முன்னாடி
- Technical பெயரை மட்டும் சொல்லாமல், கருத்தை உங்க வார்த்தைகளில் விளக்கிப் பாருங்க.
- Approach என்ன, அதன் assumptions என்ன, result-ஐ நம்ப என்ன evidence வேண்டும் என்று சொல்லிப் பாருங்க.
- பயிற்சியை முயற்சி செய்துவிட்டு, உங்க காரணத்தை விடையோடு ஒப்பிட்டுப் பாருங்க.
ஆதாரங்கள்: இன்னும் தெரிஞ்சுக்கலாம்
இந்தப் புதுப்பிப்பில் original research papers மற்றும் official documentation பயன்படுத்தப்பட்டுள்ளன. கீழே உள்ள கூடுதல் links ஆங்கிலத்தில் இருக்கும். அவற்றை முதலில் படிக்காமலேயே இந்தப் பாடத்தைப் புரிஞ்சுக்கலாம். Product versions, availability மாறலாம்.