You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
339 lines
48 KiB
339 lines
48 KiB
# கிளஸ்டரிங் அறிமுகம்
|
|
|
|
கிளஸ்டரிங் என்பது ஒரு வகை [பாராட்டப்படாத கற்றல்](https://wikipedia.org/wiki/Unsupervised_learning) ஆகும், இது ஒரு தரவுத்தொகுப்பு மொழியிடப்படாதது அல்லது அதன் உள்ளீடுகள் முன்கூட்டியே வரையறுக்கப்பட்ட வெளியீடுகளுடன் பொருந்தவில்லை என்று கருதுகிறது. இது மொழியிடப்படாத தரவுகளைக் கொண்டு பல்வேறு அல்காரிதம்களைப் பயன்படுத்தி தரவையிலிருந்துள்ள விதிகளை அடிப்படையாகக் கொண்டு குழுக்களை வழங்குகிறது.
|
|
|
|
[](https://youtu.be/ty2advRiWJM "No One Like You by PSquare")
|
|
|
|
> 🎥 மேலுள்ள படத்தை கிளிக் செய்து வீடியோவைப் பாருங்கள். நீங்கள் கிளஸ்டரிங் மூலம் மெஷின் லெர்னிங்கைப் படிப்பதின் போது, சில நைஜீரியன் டான்ஸ் ஹால் பாடல்களை அனுபவியுங்கள் - இது 2014 இல் PSquare இல் இருந்து ஒரு உயர்வான பாடல்.
|
|
|
|
## [முன்னுரை க்விஸ்](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
### அறிமுகம்
|
|
|
|
[கிளஸ்டரிங்](https://link.springer.com/referenceworkentry/10.1007%2F978-0-387-30164-8_124) தரவு ஆய்வுக்குப் மிகவும் உதவிகரமாகும். நைஜீரியன் பார்வையாளர்கள் இசையை எப்படி நுகர்கிறார்கள் என்பதைப் பார்ப்பதில் இது நமக்கு உதவுமா என்பதை பார்ப்போம்.
|
|
|
|
✅ கிளஸ்டரிங்கின் பயன்பாடுகளைக் குறித்து ஒரு நிமிடம் யோசிக்கவும். வெற்றிகரமாக, படுக்கை நன்கு சுத்தம் செய்யும்போது உங்கள் குடும்ப உறுப்பினர்களின் ஆடைகளை வகைப்படுத்த வேண்டும் 🧦👕👖🩲. தரவு அறிவியலில், பயனாளியின் விருப்பங்களை பகுப்பாய்வு செய்ய அல்லது எந்த மொழியிடப்படாத தரவுத்தொகுப்பின் பண்புகளை நிர்ணயிக்க கிளஸ்டரிங் பயன்படுகிறது. கிளஸ்டரிங் ஒரு வகையில் சீரற்ற நிலையை உணர்வதற்குத் உதவுகிறது, உதாரணமாக கால்வளையடுக்கு பதுக்கப்படும் பெட்டிக்கு.
|
|
|
|
[](https://youtu.be/esmzYhuFnds "Introduction to Clustering")
|
|
|
|
> 🎥 மேலுள்ள படத்தை கிளிக் செய்து MIT இன் John Guttag வழங்கும் கிளஸ்டரிங் அறிமுக வீடியோவைப் பாருங்கள்
|
|
|
|
ஒரு தொழில்முறை சூழல்களில், கிளஸ்டரிங் சந்தை பிரிவீடு, வயது குழுக்கள் எந்த பொருட்களை வாங்குகின்றன என்பதைக் கண்டறியுதல் போன்றவற்றுக்கு பயன்படுத்தப்படும். மற்றொரு பயன்பாடு பாவனைக் கணக்கில் மோசடி கண்டறிதல் போன்ற ஓரளவான குறித்த கணிகளுக்கு இருக்கலாம். அல்லது மருத்துவ ஸ்கேன் தொகுதிகளில் சிலர் உடல் திசுக்களை கண்டறிய கிளஸ்டரிங் பயன்படலாம்.
|
|
|
|
✅ நீங்கள் நம்பிக்கை, மின்னணு வணிகம் அல்லது தொழில் சூழலில் கிளஸ்டரிங்கை எப்படி எதிர்கொண்டீர்கள் என்று ஒரு நிமிடம் யோசிக்கவும்.
|
|
|
|
> 🎓 ரொம்ப ஆர்வமாக, கிளஸ்டர் பகுப்பாய்வு 1930களில் மனிதவியல் மற்றும் உளவியல் துறைகளில் தொடங்கப்பட்டது. அது எப்படிச் பயன்படுத்தப்பட்டிருக்கும் என்று நீங்கள் கற்பனை செய்யவே முடியுமா?
|
|
|
|
விருப்பம்சேர்க்கையாக, தேடல் முடிவுகளை பிரிப்பதற்கும் பயன்படுத்தலாம் - பசிக்கை நெருக்கடி, படங்கள் அல்லது விமர்சனங்கள் போன்றவை. பெரிய தரவுத்தொகுப்பை குறைக்கும் போது மற்றும் அதில் மேலும் சிறிய அளவில் பகுப்பாய்வு செய்யும்போது, கிளஸ்டரிங் பயன்படும், ஆகவே மற்ற மாதிரிகள் உருவாக்கப் படுவதற்கு முன் தரவுகளைப் பற்றி அறிய இது உதவுகிறது.
|
|
|
|
✅ உங்கள் தரவு கிளஸ்டர்களுக்கு ஒழுங்கமைக்கப்பட்ட பிறகு, அதற்கு ஒரு கிளஸ்டர் அடையாளத்தை(Cluster Id) வழங்குகிறீர்கள். இந்த தொழில்நுட்பம் தரவுத்தொகுப்பு தனிப்பட்ட தன்மையை பாதுகாப்பதற்கு பயன்படும்; தரவு புள்ளியைக் கிளஸ்டர் அடையாளத்தில் மட்டும் குறிப்பிடலாம், மேலும் வெளிப்படையான தனிப்பட்ட தரவைக் காட்டாமல். நீங்கள் ஏன் இன்னும் பிற காரணங்களுக்காக கிளஸ்டர் அடையாளத்தை பயன்படுத்துவீர்கள் என்று நினைக்கிறீர்களா?
|
|
|
|
இந்த [கற்று module](https://docs.microsoft.com/learn/modules/train-evaluate-cluster-models?WT.mc_id=academic-77952-leestott) மூலம் கிளஸ்டரிங் தொழில்நுட்பங்களை மேலும் தெளிவுபடுத்தவும்
|
|
## கிளஸ்டரிங் தொடங்குதல்
|
|
|
|
[Scikit-learn ஒரு பெரிய தொகுப்பினை வழங்குகிறது](https://scikit-learn.org/stable/modules/clustering.html) கிளஸ்டரிங் செய்ய. நீங்கள் தேர்ந்தெடுக்கும் வகை உங்கள் பயன்பாட்டின்படி இருக்கும. ஆவணமுறைப்படி, ஒவ்வொரு முறையும் பல பலன்கள் உள்ளன. Scikit-learn ஆதரிக்கும் முறைகள் மற்றும் அவற்றின் பொருத்தமான பயன்பாடுகள் இங்கே சுருக்கப்பட்டுள்ளன:
|
|
|
|
| முறை பெயர் | பயன்பாடு |
|
|
| :------------------------- | :---------------------------------------------------------------- |
|
|
| K-Means | பொதுவான பயன்பாடு, ஆகமளிக்கும் (inductive) |
|
|
| Affinity propagation | பல, சமமாக இல்லாத கிளஸ்டர்கள், ஆகமளிக்கும் |
|
|
| Mean-shift | பல, சமமாக இல்லாத கிளஸ்டர்கள், ஆகமளிக்கும் |
|
|
| Spectral clustering | சில, சமமான கிளஸ்டர்கள், பரிமாற்றிக்கும் (transductive) |
|
|
| Ward hierarchical clustering | பல, கட்டுப்படுத்தப்பட்ட கிளஸ்டர்கள், பரிமாற்றிக்கும் |
|
|
| Agglomerative clustering | பல, கட்டுப்படுத்தப்பட்ட, யூக்லிடியன் அல்லாத தூரங்கள், பரிமாற்றிக்கும் |
|
|
| DBSCAN | மையம் இல்லாத நிலை, சமமாக இல்லாத கிளஸ்டர்கள், பரிமாற்றிக்கும் |
|
|
| OPTICS | மையம் இல்லாத நிலை,변சு அடர்த்தியுடன் சமமாக இல்லாத கிளஸ்டர்கள், பரிமாற்றிக்கும் |
|
|
| Gaussian mixtures | சமமாக்கப்பட்ட நிலை, ஆகமளிக்கும் |
|
|
| BIRCH | பெரிய தரவுத்தொகுப்பு குறுந்தொகுதிகளுடன், ஆகமளிக்கும் |
|
|
|
|
> 🎓 கிளஸ்டர்கள் உருவாக்கப்படும் முறை, தரவு புள்ளிகளை குழுக்களில் சேர்க்கும் முறையில் பெரிதும் பாதிக்கிறது. சில சொற்களின் விளக்கம்:
|
|
>
|
|
> 🎓 ['பரிமாற்றிக்கும்' மற்றும் 'ஆகமளிக்கும்'](https://wikipedia.org/wiki/Transduction_(machine_learning))
|
|
>
|
|
> பரிமாற்று நுணுக்கம் கணிப்பு அதேபோல் கணிக்கப்பட்ட பரிசோதனை வழிகளைக் கொண்டு வடிவமைக்கப்படுகிறது. ஆகமளிக்கும் நுணுக்கம் சாதாரண விதிகள் அடிப்படையில் பயிற்று வழிகளைக் கொண்டு பரிசோதனை வழிகளுக்கு பொருந்துகிறது.
|
|
>
|
|
> ஒரு உதாரணம்: உங்கள் தரவுத்தொகுப்பு ஒருபுறமாக மட்டுமே மொழியிடப்பட்டுள்ளது என்று நினைத்துக்கொள்ளுங்கள். சில 'பதிவுகள்', சில 'சிடிகள்', மற்றவை வெற்றிடமாக உள்ளன. வெற்றிடங்களுக்கு லேபிள்களை வழங்க நீங்கள் திட்டமிடுகிறீர்கள். ஆகமளிக்கும் முறையில், நீங்கள் ஒரு மாதிரியை பயிறு செய்ய 'பதிவுகள்' மற்றும் 'சிடிகள்' இல்லாத தவிர, அந்த லேபிள்களை மொழியிடாத தரவுக்கு அளிக்கிறீர்கள். இதுவே சுற்றுச்சூழல் தரவுகளை வகைப்படுத்துவது கடினமாக இருக்கும். மறுபக்கமாக, பரிமாற்று முறையில், இது தெரிந்தெடுக்காத தரவுகளை குழுக்கள் உருவாக்கி பின்னர் லேபிள் அளிக்கும் என்பது சிறந்தது. இந்தக் கிளஸ்டர்கள் 'வட்டமான இசை பொருட்கள்' மற்றும் 'சதுரமான இசை பொருட்கள்' ஆக இருக்கலாம்.
|
|
>
|
|
> 🎓 ['மையம் இல்லாத' மற்றும் 'மையம் வைத்த'](https://datascience.stackexchange.com/questions/52260/terminology-flat-geometry-in-the-context-of-clustering)
|
|
>
|
|
> கணித மற்றும் பரிமாண வேதியியல் சார்ந்த சொற்கள், மையம் இல்லாத மற்றும் மையம் வைத்த நிலை கீற்று, 'மையட்டுவியல்' ([Euclidean](https://wikipedia.org/wiki/Euclidean_geometry)) அல்லது 'மையம் இல்லாத' (மையட்டுவியல் அல்லாத) முறைகளைப் பொருள்படுத்துகின்றன.
|
|
>
|
|
> இங்கு 'மையம் வைத்த' என்பது யூக்லிடியன் நிலையை குறிக்கும் (ஒரு பகுதியை 'தள' வேதியியல் என்று கற்பிக்கின்றனர்), மற்றையது மையம் இல்லாத நிலைக்கு. மெஷின் லெர்னிங்குக்கு நிலை என்ன தேவை? இரண்டு துறைகளும் கணிதத்தில் அடிப்படையுள்ளதால், கிளஸ்டர் உள்ள புள்ளிகளுக்கிடையிலுள்ள தூரத்தை அளக்க பொதுவான ஒரு வழி இருக்கவேண்டும். அந்த வழி தளவியல் அல்லது மையம் இல்லாத முறைகள் ஆக இருக்கும். [யூக்லிடியன் தூரம்](https://wikipedia.org/wiki/Euclidean_distance) இரண்டு புள்ளிகளுக்கு இடையேயான கோடு Segments длиன் ஆக அளக்கப்படுகிறது. [மையற்ற யூக்லிடியன் தூரம்](https://wikipedia.org/wiki/Non-Euclidean_geometry) ஒரு வளைவு வழியாக அளக்கப்படுகிறது. உங்கள் தரவு நம்பிக்கை படுத்த எண்ணல் இல்லை என தோன்றின், அது கண்ணோட்டத்தில் ஒரு தளத்தில் இல்லாமையாக இருந்தால், உங்களுக்கு ஒரு சிறப்பு அல்காரிதம் தேவைப்படும்.
|
|
>
|
|
> 
|
|
> > விளக்கப்படம்: [தசனி மடிப்பள்ளி](https://twitter.com/dasani_decoded)
|
|
>
|
|
> 🎓 ['தூரங்கள்'](https://web.stanford.edu/class/cs345a/slides/12-clustering.pdf)
|
|
>
|
|
> கிளஸ்டர்கள் தங்களது தூர மாட்ரிக்ஸ் மூலம் வரையறுக்கப்படுகின்றன, உதாரணமாக புள்ளிகளுக்கிடையிலான தூரம். இந்த தூரம் பல வழிகளில் அளக்கப்படுகிறது. யூக்லிடியன் கிளஸ்டர்கள் புள்ளி மதிப்புகளின் சராசரி மூலம் வரையறுக்கப்படுகின்றன மற்றும் ஒரு 'மையக்கண்' அல்லது மைய புள்ளி கொண்டுள்ளன. தூரங்கள் அந்த மையக்கணுக்கு இடையிலான தூரமாக அளக்கப்படுகின்றன. மையத்துடன் கூடிய தூரங்கள் 'கிலஸ்ட்ராய்ட்கள்' என்று அழைக்கப்படும், அருகிலுள்ள புள்ளிகளை அடிப்படையாகக் கொண்ட புள்ளிகள் ஆகும். கிலஸ்ட்ராய்ட்கள் பல விதங்களில் வரையறுக்கப்படலாம்.
|
|
>
|
|
> 🎓 ['கட்டுப்பாடுகள்'](https://wikipedia.org/wiki/Constrained_clustering)
|
|
>
|
|
> [கட்டுப்பாடு கிளஸ்டரிங்](https://web.cs.ucdavis.edu/~davidson/Publications/ICDMTutorial.pdf) இந்த பாராட்டப்படாத முறையில் 'சமி-பாராட்டப்படும்' கற்றலை கொண்டு சேர்க்கிறது. புள்ளிகளுக்கு இடையிலான தொடர்புக்கள் 'இணைக்கக் கூடாது' அல்லது 'இணைக்க வேண்டும்' என்று குறிக்கப்படுவதால் சில விதிமுறைகள் தரவுத்தொகுப்புக்கு கட்டாயப்படுத்தப்படுகின்றன.
|
|
>
|
|
> ஒரு உதாரணம்: ஒரு அல்காரிதம் ஒரு மொழியிடப்படாத அல்லது சமி-மொழியிடப்பட்ட தரவுகளில் அலவசமாக செயல்படுகிறால், உருவாக்கும் கிளஸ்டர்கள் மேல் தரமற்றவை ஆக இருக்கலாம். மேலேயுள்ள உதாரணத்தில், கிளஸ்டர்கள் 'வட்ட வாசகங்கள்', 'சதுர வாசகங்கள்', 'முக்கோண பொருட்கள்' மற்றும் 'குக்கீஸ்' என பிரிக்க முடியும். சில கட்டுப்பாடுகள் ("பொருள் பிளாஸ்டிக் ஆகியிருப்பது வேண்டும்", "பொருள் இசை உண்டாக்க கற்றல் வேண்டும்") கொடுக்கப்பட்டால், அல்காரிதத்தை சிறந்த முடிவுகள் எடுக்க கட்டுப்படுத்த முடியும்.
|
|
>
|
|
> 🎓 'அடர்த்தி'
|
|
>
|
|
> 'சத்தம் நிறைந்த' தரவு 'அடர்த்தியானது' என்று கருதப்படுகிறது. ஒவ்வொரு கிளஸ்டருக்குள்ள உள்ள புள்ளிகளுக்கிடையிலான தூரம் கணித பரிசோதனையால் மிகவும் அல்லது குறைவாக அடர்த்தி கொண்டதாக இருக்கலாம், அதனால் இந்த தரவு பொருத்தமான கிளஸ்டரிங் முறையை கொண்டு பகுப்பாய்வு செய்யப்பட வேண்டும். [இந்தக் கட்டுரை](https://www.kdnuggets.com/2020/02/understanding-density-based-clustering.html) ஒரு சத்தம் நிறைந்த மற்றும் சமமாக இல்லாத கிளஸ்டர் அடர்த்தியுடன் கூடிய தரவுக்கு K-Means கிளஸ்டரிங் மற்றும் HDBSCAN அல்காரிதங்களின் வேறுபாட்டை விளக்குகிறது.
|
|
|
|
## கிளஸ்டர் அல்காரிதங்கள்
|
|
|
|
100க்கும் மேற்பட்ட கிளஸ்டர் அல்காரிதங்கள் உள்ளன, அவற்றின் பயன்பாடு தரவின் இயல்பின்பார dépend ஆகும். சில முக்கியமானவற்றைப் பற்றி பேசலாம்:
|
|
|
|
- **வரிசைப்படுத்தப்பட்ட கிளஸ்டரிங்**. ஒரு பொருள் அருகிலுள்ள பொருளுடன் கண்காணிப்பு அடிப்படையில் வகைப்படுத்தப்பட்டால், அப்பளவும் மற்ற புலிகளுடனான தூரத்தின்பரிசரின்படி கிளஸ்டர்கள் உருவாகின்றன. Scikit-learn இன் aggloomerative clustering வரிசைப்படுத்தப்பட்ட வகை ஆகும்.
|
|
|
|

|
|
> விளக்கப்படம்: [தசனி மடிப்பள்ளி](https://twitter.com/dasani_decoded)
|
|
|
|
- **மையக்கண் கிளஸ்டரிங்**. இந்த பிரபலமான அல்காரிதம் 'k' என்ற குழுக்களின் எண்ணிக்கையைத் தேர்வு செய்ய வேண்டும், பின்னர் அழுத்தக்குழு மைய புள்ளியை நிர்ணயித்து தரவுகளை அதற்குசேர்க்கிறது. [K-means கிளஸ்டரிங்](https://wikipedia.org/wiki/K-means_clustering) மையக்கண் கிளஸ்டரிங்கின் பிரபலமான வடிவம் ஆகும். மையம் அணிந்த சராசரி புள்ளியைக் கொண்டு நிர்ணயிக்கப்படுகிறது. கிளஸ்டர் ஒருங்கிணைப்பின் சதுரத் தூரம் குறைக்கப்படுகின்றது.
|
|
|
|

|
|
> விளக்கப்படம்: [தசனி மடிப்பள்ளி](https://twitter.com/dasani_decoded)
|
|
|
|
- **கிராம பகுப்பாய்வு அடிப்படையிலான கிளஸ்டரிங்**. புள்ளி ஒரு கிளஸ்டருக்கு சொந்தமானிருக்க வாய்ப்பு என்ன என்பதை கணிக்க statistically அடிப்படையில், புள்ளிகளுக்கு இன்னும் சரியான வகுப்பை அளிக்கிறது. Gaussian விழுப்பங்கள் இதை சேர்ந்தவை.
|
|
|
|
- **அடர்த்தி அடிப்படையிலான கிளஸ்டரிங்**. தரவு புள்ளிகள் அவற்றின் அடர்த்தி மற்றும் ஒருவருக்கொருவர் சேர்த்ததும் அடிப்படையாகக் கொண்டதாக கிளஸ்டர்களுக்கு ஒதுக்கப்படுகின்றன. குழுவிற்கு தொலைவு உடைய புள்ளிகள் மாற்றுப்புள்ளிகள் மற்றும் சத்தமாக கருதப்படுகின்றன. DBSCAN, Mean-shift மற்றும் OPTICS இதற்கு உட்பட்டவை.
|
|
|
|
- **கடிகார அடிப்படையிலான கிளஸ்டரிங்**. பன்முக படிவங்களுக்கான தொகுதிகள் உருவாக்கப்படுகின்றன மற்றும் தரவு அந்தச் செல்களின் முகையில் பிரிக்கப்பட்டு கிளஸ்டர்கள் உருவாகின்றன.
|
|
|
|
## பயிற்சி - உங்கள் தரவின் கிளஸ்டரிங் செய்தல்
|
|
|
|
கிளஸ்டரிங் தொழில்நுட்பம் பிரமாண்டமான காட்சிப்படுத்தல் மூலம் பலவாக உதவுகிறது, ஆகவே இசை தரவை காட்சிப்படுத்துதல் மூலம் ஆரம்பிப்போம். இந்தப் பயிற்சி தரவின் இயல்புக்கேற்ப எந்த கிளஸ்டரிங் முறையை பயன்படுத்துவது சிறந்ததென்பதைத் தீர்மானிக்க உதவும்.
|
|
|
|
1. இந்த அடைவிலுள்ள [_notebook.ipynb_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/1-Visualize/notebook.ipynb) கோப்பை திறக்கவும்.
|
|
|
|
1. தரவு காட்சிப்படுத்தலுக்கு சிறந்த `Seaborn` தொகுப்பை இறக்குமதி செய்யவும்.
|
|
|
|
```python
|
|
!pip install seaborn
|
|
```
|
|
|
|
1. [_nigerian-songs.csv_](https://github.com/microsoft/ML-For-Beginners/blob/main/5-Clustering/data/nigerian-songs.csv) இருந்து பாடல் தரவை புகுத்தவும். பாடல்கள் பற்றிய சில தரவுடன் ஒரு டேட்டாபிரேம் உருவாக்கவும். தரவை ஆராய தயார் செய்ய நூலகங்களை இறக்குமதி செய்து தரவை வெளியிடவும்:
|
|
|
|
```python
|
|
import matplotlib.pyplot as plt
|
|
import pandas as pd
|
|
|
|
df = pd.read_csv("../data/nigerian-songs.csv")
|
|
df.head()
|
|
```
|
|
|
|
முதல் சில வரிகளை சரிபார்க்கவும்:
|
|
|
|
| | name | album | artist | artist_top_genre | release_date | length | popularity | danceability | acousticness | energy | instrumentalness | liveness | loudness | speechiness | tempo | time_signature |
|
|
| --- | ------------------------ | ---------------------------- | ------------------- | ---------------- | ------------ | ------ | ---------- | ------------ | ------------ | ------ | ---------------- | -------- | -------- | ----------- | ------- | -------------- |
|
|
| 0 | Sparky | Mandy & The Jungle | Cruel Santino | alternative r&b | 2019 | 144000 | 48 | 0.666 | 0.851 | 0.42 | 0.534 | 0.11 | -6.699 | 0.0829 | 133.015 | 5 |
|
|
| 1 | shuga rush | EVERYTHING YOU HEARD IS TRUE | Odunsi (The Engine) | afropop | 2020 | 89488 | 30 | 0.71 | 0.0822 | 0.683 | 0.000169 | 0.101 | -5.64 | 0.36 | 129.993 | 3 |
|
|
| 2 | LITT! | LITT! | AYLØ | indie r&b | 2018 | 207758 | 40 | 0.836 | 0.272 | 0.564 | 0.000537 | 0.11 | -7.127 | 0.0424 | 130.005 | 4 |
|
|
| 3 | Confident / Feeling Cool | Enjoy Your Life | Lady Donli | நைஜீரியன் பாப் | 2019 | 175135 | 14 | 0.894 | 0.798 | 0.611 | 0.000187 | 0.0964 | -4.961 | 0.113 | 111.087 | 4 |
|
|
| 4 | wanted you | rare. | Odunsi (The Engine) | ஆஃப்ரோபாப் | 2018 | 152049 | 25 | 0.702 | 0.116 | 0.833 | 0.91 | 0.348 | -6.044 | 0.0447 | 105.115 | 4 |
|
|
|
|
1. ஒரு டேட்டாஃப்ரேமின் (dataframe) சில தகவல்களை பெற, `info()`-ஐ அழைக்கவும்:
|
|
|
|
```python
|
|
df.info()
|
|
```
|
|
|
|
வெளியீடு இதுபோல இருக்கிறது:
|
|
|
|
```output
|
|
<class 'pandas.core.frame.DataFrame'>
|
|
RangeIndex: 530 entries, 0 to 529
|
|
Data columns (total 16 columns):
|
|
# Column Non-Null Count Dtype
|
|
--- ------ -------------- -----
|
|
0 name 530 non-null object
|
|
1 album 530 non-null object
|
|
2 artist 530 non-null object
|
|
3 artist_top_genre 530 non-null object
|
|
4 release_date 530 non-null int64
|
|
5 length 530 non-null int64
|
|
6 popularity 530 non-null int64
|
|
7 danceability 530 non-null float64
|
|
8 acousticness 530 non-null float64
|
|
9 energy 530 non-null float64
|
|
10 instrumentalness 530 non-null float64
|
|
11 liveness 530 non-null float64
|
|
12 loudness 530 non-null float64
|
|
13 speechiness 530 non-null float64
|
|
14 tempo 530 non-null float64
|
|
15 time_signature 530 non-null int64
|
|
dtypes: float64(8), int64(4), object(4)
|
|
memory usage: 66.4+ KB
|
|
```
|
|
|
|
1. null மதிப்புகளுக்காக இருமடங்கு சரிபார்க்க, `isnull()` ஐ அழைத்து, சரிந்துள்ளன என பார்க்க:
|
|
|
|
```python
|
|
df.isnull().sum()
|
|
```
|
|
|
|
நல்ல நிலையில் உள்ளது:
|
|
|
|
```output
|
|
name 0
|
|
album 0
|
|
artist 0
|
|
artist_top_genre 0
|
|
release_date 0
|
|
length 0
|
|
popularity 0
|
|
danceability 0
|
|
acousticness 0
|
|
energy 0
|
|
instrumentalness 0
|
|
liveness 0
|
|
loudness 0
|
|
speechiness 0
|
|
tempo 0
|
|
time_signature 0
|
|
dtype: int64
|
|
```
|
|
|
|
1. தரவை விவரிக்கவும்:
|
|
|
|
```python
|
|
df.describe()
|
|
```
|
|
|
|
| | வெளியீட்டு தேதி | நீளம் | பிரபலத்தன்மை | நடனம் செய்யக்கூடிய தன்மை | அகோஸ்டிக் தன்மை | சக்தி | கருவி தன்மை | உள்ளுணர்ச்சி | சத்தம் | பேச்சுத்தன்மை | டெம்போ | நேர ஒப்பந்தம் |
|
|
| ----- | -------------- | ----------- | ----------- | ------------------ | -------------- | -------- | -------------- | -------- | -------- | ----------- | --------- | -------------- |
|
|
| எண்ணிக்கை | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 | 530 |
|
|
| சராசரி | 2015.390566 | 222298.1698 | 17.507547 | 0.741619 | 0.265412 | 0.760623 | 0.016305 | 0.147308 | -4.953011| 0.130748 | 116.487864| 3.986792 |
|
|
| மாறுபாடு | 3.131688 | 39696.82226 | 18.992212 | 0.117522 | 0.208342 | 0.148533 | 0.090321 | 0.123588 | 2.464186 | 0.092939 | 23.518601 | 0.333701 |
|
|
| குறைந்தபட்சம் | 1998 | 89488 | 0 | 0.255 | 0.000665 | 0.111 | 0 | 0.0283 | -19.362 | 0.0278 | 61.695 | 3 |
|
|
| 25% | 2014 | 199305 | 0 | 0.681 | 0.089525 | 0.669 | 0 | 0.07565 | -6.29875 | 0.0591 | 102.96125 | 4 |
|
|
| 50% | 2016 | 218509 | 13 | 0.761 | 0.2205 | 0.7845 | 0.000004 | 0.1035 | -4.5585 | 0.09795 | 112.7145 | 4 |
|
|
| 75% | 2017 | 242098.5 | 31 | 0.8295 | 0.403 | 0.87575 | 0.000234 | 0.164 | -3.331 | 0.177 | 125.03925 | 4 |
|
|
| அதிகபட்சம் | 2020 | 511738 | 73 | 0.966 | 0.954 | 0.995 | 0.91 | 0.811 | 0.582 | 0.514 | 206.007 | 5 |
|
|
|
|
> 🤔 நாங்கள் பட்டியலிடப்படாத தரவை தேவையில்லை என்று கூறும் ஒரு unsupervised clustering முறையைப் பயன்படுத்தினாலும், ஏன் இந்த தரவை லேபிள்களுடன் காட்டுகிறோம்? தரவுக் கள ஆய்வு கட்டத்தில் அவை உதவியாக இருக்கின்றன, ஆனால் தொகுப்பு செயல்முறைகள் வேலை செய்ய அவை அவசியமில்லை. நீங்களும் த_column_ தலைப்புகளை அகற்றி, நிறுவலின் எண்ணிக்கையின்படி தரவை குறிக்கலாம்.
|
|
|
|
தரவின் பொது மதிப்புகளைப் பாருங்கள். பிரபலத்தன்மை என்பது '0' இருக்கக்கூடும் என்று கவனிக்கவும், இது தரவரிசை இல்லாத பாடல்களை காட்டுகிறது. அதை விரைவில் அகற்றுவோம்.
|
|
|
|
1. மிகவும் பிரபலமான வகைகளை கண்டுபிடிக்க பார் பிளாட்டை பயன்படுத்தவும்:
|
|
|
|
```python
|
|
import seaborn as sns
|
|
|
|
top = df['artist_top_genre'].value_counts()
|
|
plt.figure(figsize=(10,7))
|
|
sns.barplot(x=top[:5].index,y=top[:5].values)
|
|
plt.xticks(rotation=45)
|
|
plt.title('Top genres',color = 'blue')
|
|
```
|
|
|
|

|
|
|
|
✅ மேலதிக முக்கிய மதிப்புகளை காண விரும்பினால், உச்ச `[:5]`-ஐ அதிக மதிப்புக்கு மாற்றலாம் அல்லது அதை அகற்றி எல்லாவற்றையும் பார்க்கலாம்.
|
|
|
|
குறிப்பிடுங்கள், உச்ச வகை சொற் 'Missing' என இருந்தால், அதற்கான வகைப்படுத்தல் ஸ்பாட்டிபியில் இல்லை என பொருள், ஆகவே அதை அகற்றுவோம்.
|
|
|
|
1. காணாமல் போன தரவை வடிகட்டி அகற்றவும்
|
|
|
|
```python
|
|
df = df[df['artist_top_genre'] != 'Missing']
|
|
top = df['artist_top_genre'].value_counts()
|
|
plt.figure(figsize=(10,7))
|
|
sns.barplot(x=top.index,y=top.values)
|
|
plt.xticks(rotation=45)
|
|
plt.title('Top genres',color = 'blue')
|
|
```
|
|
|
|
இப்போது வகைகளை மறுபரிசோதிக்கவும்:
|
|
|
|

|
|
|
|
1. இதுவரை, டேட்டாவில் மூன்று சிறந்த வகைகள் தலாவாக இருப்பவை. `afro dancehall`, `afropop`, மற்றும் `nigerian pop` - இவற்றில் கவனம் செலுத்துவோம், மேலும் 0 பிரபலத்தன்மை மதிப்புள்ளவை (அதாவது தரவுத்தொகுதியில் பிரபலத்தன்மை மூலமாக வகைப்படுத்தப்படவில்லை என்பதைக் குறிக்கும்) அகற்றுவோம்:
|
|
|
|
```python
|
|
df = df[(df['artist_top_genre'] == 'afro dancehall') | (df['artist_top_genre'] == 'afropop') | (df['artist_top_genre'] == 'nigerian pop')]
|
|
df = df[(df['popularity'] > 0)]
|
|
top = df['artist_top_genre'].value_counts()
|
|
plt.figure(figsize=(10,7))
|
|
sns.barplot(x=top.index,y=top.values)
|
|
plt.xticks(rotation=45)
|
|
plt.title('Top genres',color = 'blue')
|
|
```
|
|
|
|
1. தரவு எந்தவொரு வலுவான தொடர்பில் உள்ளது என ஒரு சிறந்த பரிசோதனை செய்யுங்கள்:
|
|
|
|
```python
|
|
corrmat = df.corr(numeric_only=True)
|
|
f, ax = plt.subplots(figsize=(12, 9))
|
|
sns.heatmap(corrmat, vmax=.8, square=True)
|
|
```
|
|
|
|

|
|
|
|
ஒரே வலுவான தொடர்பு `energy` மற்றும் `loudness` இடையே உள்ளது, இது அதிர்ச்சியடையத் தேவையில்லை, ஏனெனில் சத்தமுள்ள இசை வழக்கமாக சக்திவாய்ந்ததாக இருக்கும். மற்ற வகைகளில் தொடர்புகள் சுமாராகவே உள்ளன. இந்த தரவைக் கொண்டு தொகுப்பு அல்காரிதம் என்ன செய்யும் என்பது கவர்ச்சிகரமாக இருக்கும்.
|
|
|
|
> 🎓 தொடர்பு அப்படியே காரணத்தை நிரூபிக்காது என்பது கவனிக்கவும்! தொடர்பு உள்ளது ஆனால் காரணம் என்ன என்பது ஆதாரம் இல்லை. [ஒரு வினோதமான இணையதளம்](https://tylervigen.com/spurious-correlations) இதைப் பற்றி விளக்குகிறது.
|
|
|
|
இந்த தரவில் பாடலின் கருதப்படும் பிரபலத்தன்மை மற்றும் நடன திறமை இடையே ஏதேனும் சங்கமம் உள்ளதா? ஒரு FacetGrid வகை அலைவரிசை உள்ள பட்டைகள் உள்ளன, வகையை பொருட்படுத்தாது. நைஜீரியன் சுவைகள் இந்த வகைக்கு ஒரு குறிப்பிட்ட நடன திறமை அளவில் ஒருமித்தமாக உள்ளதா?
|
|
|
|
✅ வேறு தரக் களங்களை (energy, loudness, speechiness) மற்றும் வேறு அல்லது கூடுதல் இசைப் வகைகளை பயன்படுத்தி முயற்சி செய்யவும். என்ன கண்டுபிடிக்க முடியும்? `df.describe()` அட்டவணையைப் பாருங்கள், தரவுக் கள விநியோகம் பொதுவாக எப்படி இருக்கிறது என்பதைக் காண.
|
|
|
|
### பயிற்சி - தரவுக் கொள்கலன்
|
|
|
|
இந்த மூன்று வகைகள் தாம் வைப்பதில் நடன திறமையில் விறுவிறுப்பான வகை வேறுபாடு உள்ளதா?
|
|
|
|
1. நம் மூன்று சிறந்த வகைகளின் பிரபலத்தன்மையும் நடன திறமையும் x மற்றும் y அச்சுகளில் எப்படி உள்ளது என்பதை கவனிக்க.
|
|
|
|
```python
|
|
sns.set_theme(style="ticks")
|
|
|
|
g = sns.jointplot(
|
|
data=df,
|
|
x="popularity", y="danceability", hue="artist_top_genre",
|
|
kind="kde",
|
|
)
|
|
```
|
|
|
|
பொதுவான ஒருங்கிணைப்பு இடத்தில் வழிமொழிகள் சுற்றியுள்ளன என்று கண்டுபிடிக்கலாம், எங்கும் ஒருங்கிணைப்பு காட்டும்.
|
|
|
|
> 🎓 இந்த எடுத்துக்காட்டில் இடம்பெயர்ச்சி சமன்பாடு எண்ணிக்கை (KDE) கிராப் பயன்படுத்தப்படுகிறது, இது தொடர்ச்சியான சாத்திய வாய்ப்பு அடர்த்தி வளைவைக் கொண்டு தரவை பிரதிபலிக்கிறது. இது பல விநியோகங்களோடு பணியாற்றுவதற்கு உதவும்.
|
|
|
|
பொதுவாக, இந்த மூன்று வகைகள் தங்களின் பிரபலத்தன்மை மற்றும் நடன திறமையை பொருத்து சற்று சுறுசுறுப்பாக உடன்பட்டி உள்ளன. இந்த சற்று சுறுசுறுப்பான தரவில் தொகுப்பை கண்டுபிடிப்பது சவாலை உருவாக்கும்:
|
|
|
|

|
|
|
|
1. ஒரு ஸ்காட்டர் பிளாட்டை உருவாக்கவும்:
|
|
|
|
```python
|
|
sns.FacetGrid(df, hue="artist_top_genre", height=5) \
|
|
.map(plt.scatter, "popularity", "danceability") \
|
|
.add_legend()
|
|
```
|
|
|
|
அதே அச்சுகளில் ஸ்காட்டர் பிளாட்டும் ஒரே மாதிரியான ஒருங்கிணைப்பு வாரியத்தை காட்டுகிறது
|
|
|
|

|
|
|
|
தொகுப்புக்கு, தரவு தொகுப்புகளை காண ஸ்காட்டர் பிளாட்டுகள் பயன்படுத்தப்படலாம், ஆகவே இந்த வகை காட்சி திறனில் தேர்ச்சி பெறுவது மிகவும் பயனுள்ளது. அடுத்த பாடத்தில், இந்த வடிகட்டப்பட்ட தரவை எடுத்து k-means தொகுப்பை பயன்படுத்தி, இந்த தரவில் சுவாரஸ்யமாக உரையாடும் குழுக்களை கண்டறிவோம்.
|
|
|
|
---
|
|
|
|
## 🚀சவால்
|
|
|
|
அடுத்த பாடத்துக்கு தயாராக, உற்பத்தி சூழலில் நீங்கள் கண்டறிந்து பயன்படுத்தக்கூடிய பல தொகுப்பு அல்காரிதம்கள் பற்றிய ஒரு வரைபடத்தை உருவாக்குங்கள். தொகுப்பு எந்த வகை பிரச்சனைகளை தீர்க்க முயற்சிக்கிறது?
|
|
|
|
## [பாடம்-பிறகு வினாடி வினா](https://ff-quizzes.netlify.app/en/ml/)
|
|
|
|
## பரிசீலனை & சுயபயிற்சி
|
|
|
|
தொகுப்பு அல்காரிதம்களைக் கடைப்பிடிப்பதற்கு முன், உங்கள் தரவுத்தொகுதி இயல்பை புரிந்து கொள்வது நல்லது என்று நாங்கள் கற்றுக்கொண்டோம். இதைப் பற்றி மேலும் வாசிக்க [இங்கே](https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html)
|
|
|
|
[இந்த உதவிகரமான கட்டுரையில்](https://www.freecodecamp.org/news/8-clustering-algorithms-in-machine-learning-that-all-data-scientists-should-know/) பல்வேறு தொகுப்பு அல்காரிதங்கள் வேறு வேறு வடிவிலான தரவை சம்மந்தமாக எப்படி நடந்து கொள்கின்றன என்று விளக்குகிறது.
|
|
|
|
## பணியிடம்
|
|
|
|
[தொகுப்புக்கு வேறு காட்சிப்படுத்தல்களை ஆய்வு செய்யவும்](assignment.md)
|
|
|
|
---
|
|
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER START -->
|
|
**மறுப்பு**:
|
|
இந்த ஆவணம் AI மொழிபெயர்ப்பு சேவை [Co-op Translator](https://github.com/Azure/co-op-translator) பயன்படுத்தி மொழிபெயர்க்கப்பட்டுள்ளது. நாங்கள் துல்லியத்திற்காக முயற்சி செய்துள்ளோம், ஆனால் தானாக செய்யப்படும் மொழிபெயர்ப்புகளில் பிழைகள் அல்லது தவறுகள் இருக்கலாம் என்பதை கவனத்தில் கொள்ளவும். அசல் ஆவணம் அதன் தாய்மொழியில் அதிகாரப்பூர்வ ஆதாரமாக கருதப்பட வேண்டும். முக்கியமான தகவல்களுக்கு, தொழில்நுட்பமான மனித மொழிபெயர்ப்பு பரிந்துரைக்கப்படுகிறது. இந்த மொழிபெயர்ப்பைப் பயன்படுத்துவதால் ஏற்படும் எந்த தவறான புரிதல்கள் அல்லது தவறான விளக்கத்திற்கும் நாங்கள் பொறுப்பில்வில்லை.
|
|
<!-- CO-OP TRANSLATOR DISCLAIMER END --> |