|
|
3 months ago | |
|---|---|---|
| .. | ||
| solution | 7 months ago | |
| README.md | 3 months ago | |
| assignment.md | 7 months ago | |
| notebook.ipynb | 8 months ago | |
README.md
ക്ലസ്റ്ററിംഗ് പരിചയം
ക്ലസ്റ്ററിംഗ് ഒരു തരത്തിലുള്ള അധിനിതരീതിയില്ലാത്ത പഠനം ആണ്, ഇത് ഒരു ഡാറ്റാസെറ്റ് ലേബൽ ചെയ്തിട്ടില്ല എന്ന്, അല്ലെങ്കിൽ അതിന്റെ ഇൻപുട്ടുകൾ മുൻകൂട്ടി നിശ്ചയിച്ച ഔട്ട്പുട്ടുകളുമായി ചേർന്നിട്ടില്ല എന്ന് കരുതുന്നു. ഇത് അനലേബൽ ചെയ്ത ഡാറ്റ വഴി വിവിധ ആൽഗോരിതങ്ങൾ ഉപയോഗിച്ച് തിരിച്ചടച്ച് പാറ്റേണുകൾ തിരിച്ചറിയുകയും അവയുടെ അടിസ്ഥാനത്തിൽ ഗ്രൂപ്പുകൾ നൽകുകയും ചെയ്യുന്നു.
🎥 മുകളിലുള്ള ചിത്രം ക്ലിക്കുചെയ്യുക ഒരു വീഡിയോകായി. ക്ലസ്റ്ററിങ്ങിനൊപ്പം മഷീൻ ലേണിംഗ് പഠിക്കുമ്പോൾ, നൈജീരിയൻ ഡാൻസ് ഹോൾ ട്രാക്കുകൾ ആസ്വദിക്കുക - 2014 ൽ പിഎസ്ക്വയറിന്റെ ഉയർന്ന മൂല്യനിർണയപ്പെട്ട പാട്ടാണ് ഇത്.
പ്രീ-ലെക്ചർ ക്വിസ്
പരിചയം
ക്ലസ്റ്ററിംഗ് ഡാറ്റാ എക്സ്പ്ളോറേഷനിൽ വളരെ ഉപകാരപ്രദമാണ്. നൈജീരിയൻ ഓഡിയോൺസുകളുടെ സംഗീത ഉപയോഗത്തിൽ ട്രെൻഡുകളും പാറ്റേണുകളും കണ്ടെത്താൻ ഇത് സഹായിക്കുമോ നോക്കാം.
✅ ക്ലസ്റ്ററിങ്ങിന്റെ ഉപയോഗങ്ങൾ കുറിച്ച് ഒരു മിനിറ്റ് ചിന്തിക്കുക. യഥാർത്ഥ ജീവിതത്തിൽ, ക്ലസ്റ്ററിംഗ് എന്നത് നിങ്ങൾക്കൊരു വസ്ത്രം കുഴപ്പമുണ്ടെങ്കിൽ കുടുംബാംഗങ്ങളുടെ വസ്ത്രങ്ങൾ തിരിച്ചറിയുമ്പോൾ ഉണ്ടാകുന്നു 🧦👕👖🩲. ഡാറ്റാ സയൻസിൽ, ക്ലസ്റ്ററിംഗ് ഒരു ഉപഭോക്താവിന്റെ ഇഷ്ടങ്ങൾ വിശകലനം ചെയ്യുന്നതിനോ, ലേബൽ ചെയ്തില്ലാത്ത ഡാറ്റാ സെറ്റിന്റെ നിർവചനങ്ങൾ കണ്ടെത്തുന്നതിനോ സഹായിക്കുന്നു. ക്ലസ്റ്ററിംഗ് ഒരു വിധത്തിൽ ഗാഢമായ അഗതികൾ പോലെ അർത്ഥമാക്കുന്നു, സോക് ഡ്രോയറിനെ പോലെ.
🎥 മുകളിലുള്ള ചിത്രം ക്ലിക്കുചെയ്യുക ഒരു വീഡിയോക്കായി: MIT യുടെ ജോൺ ഗുട്ടാഗ് ക്ലസ്റ്ററിംഗ് പരിചയപ്പെടുത്തുന്നു
പ്രൊഫഷണൽ സാഹചര്യത്തിൽ, ക്ലസ്റ്ററിംഗ് വിപണന വിഭാഗീകരണം നിർണ്ണയിക്കാൻ ഉപയോഗിക്കാം, ഉദാഹരണത്തിന്, ഏത് പ്രായസമൂഹം ഏത് വസ്തുക്കൾ വാങ്ങുന്നുവെന്ന് നിർണ്ണയിക്കാൻ. മറ്റൊരു ഉപയോഗം അനോമലി ഡിറ്റക്ഷനാണ്, ഉദാഹരണത്തിന് ക്രെഡിറ്റ് കാർഡ് ഇടപാടുകളുടെ ഡാറ്റാസെറ്റിൽ നിന്ന് തട്ടിപ്പുകൾ കണ്ടെത്താൻ. അല്ലെങ്കിൽ മെഡിക്കൽ സ്കാനുകളുടെ ബാച്ചിൽ ട്യൂമറുകൾ കണ്ടെത്താനായി ക്ലസ്റ്ററിംഗ് ഉപയോഗിക്കാം.
✅ ബാങ്കിംഗ്, ഇ-കൊമേഴ്സ്, അല്ലെങ്കിൽ ബിസിനസ്സ് സാഹചര്യങ്ങളിൽ നിങ്ങൾക്ക് ക്ലസ്റ്ററിംഗ് പ്രത്യക്ഷപ്പെട്ടിട്ടുണ്ടോ എന്ന് ഒരു മിനിറ്റ് ചിന്തിക്കുക.
🎓 രസകരമായി, ക്ലസ്റ്റർ വിശകലനം 1930-കളിൽ ആൻട്രോപോളജി, സൈക്കോളജി ശാസ്ത്രങ്ങളിൽ ആണ് ഉദ്ഭവിച്ചത്. നിങ്ങള്ക്ക് എങ്ങനെ ഇത് ഉപയോഗിക്കപ്പെട്ടിരുന്നത് ഭാവിക്കാനാവുമോ?
അല്ലെങ്കിൽ, തിരച്ചിൽ ഫലങ്ങൾ കൂട്ടിച്ചേർക്കാൻ, ഉദാഹരണത്തിന് ഷോപ്പിങ് ലിങ്കുകൾ, ചിത്രങ്ങൾ, അവലോകനങ്ങൾ എന്നിവ അടിസ്ഥാനമാക്കി ഗ്രൂപ്പിംഗ് നടത്താൻ ഇത് ഉപയോഗിക്കാം. വലിയ ഡാറ്റാസെറ്റ് ഉണ്ടെങ്കിൽ ക്ലസ്റ്ററിംഗ് ഉപകരിക്കും, അത് കുറയ്ക്കാനും പിന്നീട് കൂടുതൽ സൂക്ഷ്മമായ വിശകലനം നടത്താനും മതിയായ രീതിയിൽ പഠന മോഡലുകൾ നിർമ്മിക്കാനുമുള്ള സഹായം നൽകുന്നതിൽ ഇത് ഉപകരിക്കുന്നു.
✅ നിങ്ങളുടെ ഡാറ്റ ക്ലസ്റ്ററുകളായി സംഘടിപ്പിക്കപ്പെട്ട ശേഷം, നിങ്ങൾക്ക് ക്ലസ്റ്റർ ഐഡി നൽകാൻ കഴിയും, ഇത് ഡാറ്റാസെറ്റിന്റെ സ്വകാര്യത സംരക്ഷിക്കാൻ ഉപകാരപ്പെടാം; ഒരു ഡാറ്റ പോയിന്റിനെ അതിന്റെ കൂടുതൽ വെളിപ്പെടുത്തുന്ന തിരിച്ചറിയൽ ഡാറ്റകൾക്ക പകരം ക്ലസ്റ്റർ ഐഡി ഉപയോഗിച്ച് പരാമർശിക്കാം. ക്ലസ്റ്റർ ഐഡി ഉപയോഗിക്കേണ്ട മറ്റ് ചില കാരണങ്ങൾ നിങ്ങൾക്ക് ചിന്തിക്കാൻ കഴിയും?
ക്ലസ്റ്ററിംഗ് സാങ്കേതികവിദ്യകളെക്കുറിച്ച് കൂടുതൽ ഉൾക്കാഴ്ച നേടുക ഈ പഠന മോട്യുൾ വഴി
ക്ലസ്റ്ററിംഗുമായി തുടങ്ങുക
സ്കിക്കിറ്റ്-ലേൺ വ്യാപകമായ ക്ലസ്റ്ററിംഗ് സംവിധാനം നൽകുന്നു. നിങ്ങൾ തിരഞ്ഞെടുക്കുന്ന തരം നിങ്ങളുടെ ഉപയോഗ സാഹചര്യത്തെ ആശ്രയിച്ചിരിക്കും. ഡോക്യുമെന്റേഷനുകൾ പ്രകാരം ഓരോ രീതിക്ക് വിവിധ മുന്നേറ്റങ്ങൾ ഉണ്ടെന്നാണ് പറയുന്നത്. സ്കിക്കിറ്റ്-ലേണിൽ പിന്തുണയ്ക്കുന്ന രീതികളും അവയുടെ ഉപയോഗ സാഹചര്യങ്ങളും ലളിതമായ പട്ടികയിൽ കാണാം:
| രീതി നാമം | ഉപയോഗം |
|---|---|
| K-മീൻസ് | ജനറൽ ഉദ്ദേശ്യം, ഇൻഡക്ടീവ് |
| ഫിനിറ്റി പ്രോപഗേഷൻ | അനേകം, അസമതുല്യ ക്ലസ്റ്ററുകൾ, ഇൻഡക്ടീവ് |
| മീൻ-ഷിഫ്റ്റ് | അനേകം, അസമതുല്യ ക്ലസ്റ്ററുകൾ, ഇൻഡക്ടീവ് |
| സ്പെക്ട്രൽ ക്ലസ്റ്ററിംഗ് | കുറവ്, സമമായ ക്ലസ്റ്ററുകൾ, ട്രാൻസ്ഡക്റ്റീവ് |
| വാർഡ് ഹയർആർക്കിക്കൽ ക്ലസ്റ്ററിംഗ് | അനേകം, നിയന്ത്രിത ക്ലസ്റ്ററുകൾ, ട്രാൻസ്ഡക്റ്റീവ് |
| അഗ്ലോമറേറ്റീവ് ക്ലസ്റ്ററിംഗ് | അനേകം, നിയന്ത്രിത, നോൺ യൂക്ലിഡിയൻ ദൂരം, ട്രാൻസ്ഡക്റ്റീവ് |
| DBSCAN | നോൺ-ഫ്ലാറ്റ് ജ്യോമെട്രി, അസമതുല്യ ക്ലസ്റ്ററുകൾ, ട്രാൻസ്ഡക്റ്റീവ് |
| OPTICS | നോൺ-ഫ്ലാറ്റ് ജ്യോമെട്രി, വ്യത്യസ്ത സാന്ദ്രതയുള്ള അസമതുല്യ ക്ലസ്റ്ററുകൾ, ട്രാൻസ്ഡക്റ്റീവ് |
| ഗോസിയൻ മിക്സ്ചേഴ്സ് | ഫ്ലാറ്റ് ജ്യോമെട്രി, ഇൻഡക്ടീവ് |
| ബിർച്ച് | വലിയ ഡാറ്റാ സെറ്റ് നിറഞ്ഞ ഓട്ട്ലിയറുകൾ ഉള്ളതും, ഇൻഡക്ടീവ് |
🎓 ക്ലസ്റ്ററുകൾ സൃഷ്ടിക്കുന്ന വിധം ഡാറ്റ പോയിന്റുകൾ എങ്ങനെ ഗ്രൂപ്പുകളായി ഒന്നിപ്പിക്കും എന്നതിൽ വലിയ പ്രഭാഷം ഉണ്ട്. കുറെ വാക്കുകൾ വിശദീകരിക്കാം:
🎓 'ട്രാൻസ്ഡക്റ്റീവ്' vs. 'ഇൻഡക്ടീവ്'
ട്രാൻസ്ഡക്റ്റീവ് സാമ്പത്തികം ടെസ്റ്റ് കേസുകളുമായി നേരിട്ട് കൂടിച്ചേർക്കുന്ന പരിശീലന കേസുകളിൽ നിന്നാണ് ഉരുത്തിരിയുന്നത്. ഇൻഡക്ടീവ് സാമ്പത്തികം സാധാരണ നിയമങ്ങളിലേക്ക് മാപ്പ് ചെയ്യുന്ന പരിശീലന കേസുകളിൽ നിന്നാണ് ഉരുത്തിരിയുന്നത്, പിന്നീട് മാത്രമേ ടെസ്റ്റ് കേസുകളിൽ പ്രയോഗിക്കൂ.
ഉദാഹരണം: ഭാഗികമായി മാത്രം ലേബൽ ചെയ്യപ്പെട്ട ഒരു ഡാറ്റാസെറ്റ് ഉണ്ടെന്ന് നമുക്ക് കരുതുക. ചിലതുകൾ 'റെക്കോർഡുകൾ', ചിലത് 'സി.ഡി.കൾ', ചിലത് ശൂന്യങ്ങളാണ്. ശൂന്യങ്ങൾക്ക് ലേബൽ നൽകുക എന്നത് നിങ്ങളുടെ ജോലി ആണ്. നിങ്ങൾ ഇൻഡക്ടീവ് സമീപനം തിരഞ്ഞെടുക്കുകയാണെങ്കിൽ, 'റെക്കോർഡുകളും' 'സി.ഡി.'കളും കണ്ടെത്താൻ മോഡൽ പരിശീലിപ്പിച്ച് ആ ലേബലുകൾ അനലേബൽ യുഡ് ഡാറ്റയിലേക്ക് പ്രയോഗിക്കും. ഇത് യാഥാർത്ഥ്യത്തിൽ 'കസെറ്റുകൾ' ആയവയെ ശരിയായ രീതിയിൽ വർഗ്ഗീകരിക്കാനാകാതെ പാടു വരാം. മറുവശത്ത്, ട്രാൻസ്ഡക്റ്റീവ് സമീപനം, ഒരേതമമായ ഐറ്റങ്ങൾ അനുഭാവിപ്പിച്ച് ഗ്രൂപ്പുചെയ്ത് ഒരു ഗൂഢനാമം അനുവദിക്കുന്നു, കൂടാതെ അതിനു ശേഷം ലേബൽ നൽകുന്നു. ഈ സാഹചര്യത്തിൽ ക്ലസ്റ്ററുകൾ ' വൃത്താകാര സംഗീത വസ്തുക്കൾ 'ക്കും 'ചതുരാകാര സംഗീത വസ്തുക്കൾ'ക്കും പ്രതിഫലിക്കാം.
🎓 'നോൺ-ഫ്ലാറ്റ്' vs. 'ഫ്ലാറ്റ്' ജ്യോമെട്രി
ഗണിത ത്രിവേധത്തിൽ നിന്നുള്ള അറിവിനോട് അനുബന്ധിച്ച് നോൺ-ഫ്ലാറ്റ്, ഫ്ലാറ്റ് ജ്യോമെട്രി എംഗേണുകളുടെ ഇടയുടെ അളവുകളെ സൂചിപ്പിക്കുന്നു, ഇത് 'ഫ്ലാറ്റ്' (യൂക്ലിഡിയൻ) അല്ലെങ്കിൽ 'നോൺ-ഫ്ലാറ്റ്' (നോൺ-യൂക്ലിഡിയൻ) ജ്യോമെട്രിക്കൽ രീതികളായിരിക്കും.
ഇവിടെ 'ഫ്ലാറ്റ്' എന്ന് പറയുന്നത് യൂക്ലിഡിയൻ ജ്യോമെട്രിയെയാണ് (ഏറ്റവും കുറഞ്ഞവയിൽ 'പ്ലെയിൻ' ജ്യോമെട്രി ഉൾപ്പെടുന്നു), നോൺ-ഫ്ലാറ്റ് എന്നാൽ നോൺ-യൂക്ലിഡിയൻ ജ്യോമെട്രി ആണ്. മഷീൻ ലേണിങ്ങിനും ജ്യോമെട്രിക്ക് എന്ത് ബന്ധമുണ്ട്? രണ്ട് ശാസ്ത്രങ്ങളോടും ഗണിതം അടിസ്ഥാനമാണെന്ന് കണക്കാക്കിയാൽ, ക്ലസ്റ്ററിലുള്ള പോയിന്റുകൾക്കിടയിലെ ദൂരങ്ങൾ അനുവദിക്കാനുള്ള പൊതുവായ മാർഗ്ഗം വേണം, അത് 'ഫ്ലാറ്റ്' അല്ലെങ്കിൽ 'നോൺ-ഫ്ലാറ്റ്' ആയിരിക്കും, ഡാറ്റയുടെ സ്വഭാവത്തെ ആശ്രയിച്ചാണ്. യൂക്ലിഡിയൻ ദൂരം രണ്ട് പോയിന്റുകൾക്കിടയിലെ നേരിയ രേഖയുടെ നീളം ആയി അളക്കപ്പെടുന്നു. നോൺ-യൂക്ലിഡിയൻ ദൂരം ഒരു വളവിലുടനീളം അളക്കപ്പെടുന്നു. നിങ്ങളുടെ ഡാറ്റാ ഫ്ലാനിൽ അല്ലാതെ മറ്റൊരു ആകൃതിയിലാണെങ്കിൽ, പ്രത്യേക ആൽഗോരിതം ഉപയോഗിക്കേണ്ടി വരും.
ഇൻഫോഗ്രാഫിക്: ഡാസാനി മാടിപള്ളി
🎓 'ദൂരം'
ക്ലസ്റ്ററുകൾ അവരുടെ ദൂര മാട്രിക്സ് (Points ഇടയിലുള്ള ദൂരങ്ങൾ) പ്രകാരം നിർവചിക്കപ്പെടുന്നു. ദൂരം വിവിധ രീതികളിൽ അളക്കാം. യൂക്ലിഡിയൻ ക്ലസ്റ്ററുകൾ പൊതു പോയിന്റുകളുടെ ശരാശരിയാൽ നിർവചിക്കപ്പെടുന്നു, അവയ്ക്കു ഒരു 'സെൻട്രോയ്ഡ്' (കേന്ദ്ര പോയിന്റ്) ഉണ്ട്. ദൂരം സെൻട്രോയ്ഡിലേക്ക് ഉള്ള അകലം പ്രകാരം അളക്കപ്പെടുന്നു. നോൺ-യൂക്ലിഡിയൻ ദൂരങ്ങൾ 'ക്ലസ്റ്റ്രോയിഡ്സ്' (പോയിന്റ് മറ്റുള്ള പോയിന്റുകളോട് ഏറ്റവും അടുത്ത സ്ഥാനം) സൂചിപ്പിക്കുന്നു. ക്ലസ്റ്റ്രോയിഡ്സ് വിവിധ രീതികളിൽ നിർവചിക്കാം.
നിയന്ത്രിത ക്ലസ്റ്ററിംഗ് ഈ അധിനിതരീതിയല്ലാത്ത രീതിയിൽ അംശപരിഗണിത പഠനം (semi-supervised learning) ഉൾപ്പെടുത്തുന്നു. പോയിന്റുകളിലേക്കുള്ള ബന്ധങ്ങൾ 'cannot link' അല്ലെങ്കിൽ 'must-link' എന്ന് അടയാളപ്പെടുത്തപ്പെടുന്നു, ഡാറ്റാസെറ്റിനുള്ളിൽ ചില നിബന്ധനകൾ നിർബന്ധിതമായി പ്രയോഗിക്കപ്പെടുന്നു.
ഉദാഹരണം: ഒരു ആൽഗോരിതം ലേബൽ ചെയ്തിട്ടില്ലാത്ത അല്ലെങ്കിൽ ഭാഗികമായി മാത്രം ലേബൽ ചെയ്ത ഡാറ്റാസെറ്റിൽ ഉപയോഗിക്കുമ്പോൾ, കെഴിയുന്ന ക്ലസ്റ്ററുകൾ മോശം നിലവാരമാക്കാം. മുൻകൂട്ടി പറയപ്പെട്ടതിനുപോലെ, ഗ്രൂപ്പുകൾ 'വൃത്താകാര സംഗീത വസ്തുക്കൾ', 'ചതുരാകാര സംഗീത വസ്തുക്കൾ', 'മൂന്നാകാര വസ്തുക്കൾ' എന്നിവയാക്കാം. ചില നിബന്ധനകൾ നൽകിയാൽ (ഉദാഹരണം, 'ഇനം പശ്ചാത്തലത്തിൽ പ്ലാസ്റ്റിക്ക് ആണ്', 'ഇനം സംഗീതം ഉത്പാദിപ്പിക്കണം' എന്നിവ) ആൽഗോരിതത്തിന് മികച്ച നിർവചനങ്ങൾ ഉളവാക്കുന്നതിന് സഹായവും ലഭിക്കും.
🎓 'സാന്ദ്രത'
'ശബ്ദപരിഷ്കൃത' ആയി കണക്കാക്കപ്പെടുന്ന ഡാറ്റ 'സാന്ദ്രമായ'താണ്. ഓരോ ക്ലസ്റ്ററിലുമുള്ള പോയിന്റുകൾക്കിടയിലെ ദൂരം പരിശോധിച്ച് അവ വളരെ സാന്ദ്രമാണോ അല്ലയോ എന്ന് കണ്ടറിയാം, അഥവാ 'കൂട്ടം മുട്ടിയ'താണോ എന്ന് വിലയിരുത്തണം, എന്നുള്ളതിനനുസരിച്ച് അനുയോജ്യമായ ക്ലസ്റ്ററിംഗ് രീതികൾ ഉപയോഗിക്കണം. ഈ ലേഖനം K-മീൻസ് ക്ലസ്റ്ററിംഗും HDBSCAN ആൽഗോരിതവും ഉപയോഗിച്ച് ശബ്ദപരിഷ്കൃത, അസമതുല്യ സാന്ദ്രതയുള്ള ഡാറ്റ സെറ്റ് എങ്ങനെ വ്യത്യാസപ്പെടുന്നതെന്ന് വിശദീകരിക്കുന്നു.
ക്ലസ്റ്ററിംഗ് ആൽഗോരിതങ്ങൾ
നൂറിലേറെ ക്ലസ്റ്ററിംഗ് ആൽഗോരിതങ്ങൾ ഉണ്ടായിരിക്കുന്നു, അവയുടെ ഉപയോഗം ഡാറ്റയുടെ സ്വഭാവത്തെ ആശ്രയിച്ചിരിക്കും. പ്രധാന ചിലത് ചർച്ച ചെയ്യാം:
-
ഹയർആർക്കിക്കൽ ക്ലസ്റ്ററിംഗ്. ഒരു വസ്തു അടുത്തുള്ള വസ്തുവിനു ആശ്രയിച്ചാണ് വർഗ്ഗീകരിക്കുന്നത്, ഒരു ദൂരെ ഉള്ളവയല്ല. അതിനാൽ ക്ലസ്റ്ററുകൾ അവയുടെ അംഗങ്ങളുടെ തമ്മിലുള്ള ദൂരം അടിസ്ഥാനമാക്കിയാണ് രൂപം കൊണ്ടുള്ളത്. സ്കിക്കിറ്റ്-ലേണിലെ അഗ്ലോമറേറ്റീവ് ക്ലസ്റ്ററിംഗ് ഹയർആർക്കിക്കൽ ആണ്.
ഇൻഫോഗ്രാഫിക്: ഡാസാനി മാടിപള്ളി
-
സെൻട്രോയ്ഡ് ക്ലസ്റ്ററിംഗ്. ഈ ജനപ്രിയ ആൽഗോരിതം 'k' എന്ന ക്ലസ്റ്ററുകളുടെ എണ്ണം തിരഞ്ഞെടുത്ത ശേഷം, ക്ലസ്റ്ററിന്റെ കേന്ദ്രബിന്ദു നിർണയിച്ച് ആ ബിന്ദുവിന്റെ ചുറ്റും ഡാറ്റ ക്രമീകരിക്കുന്നു. K-മീൻസ് ക്ലസ്റ്ററിംഗ് സെൻട്രോയ്ഡ് ക്ലസ്റ്ററിംഗിന്റെ പേരുകേട്ട പതിപ്പാണ്. സമീപമുള്ള ശരാശരി ബിന്ദുവാണ് സെന്റർ എന്ന് നിർദേശിക്കുന്നത്. ക്ലസ്റ്ററിൽ നിന്നും വൃദ്ധിപ്പെടുന്ന സ്ക്വയർ ചെയ്ത ദൂരം കുറഞ്ഞു കളയുന്നു.
ഇൻഫോഗ്രാഫിക്: ഡാസാനി മാടിപള്ളി
-
ഡിസ്ട്രിബ്യൂഷൻ-അടിസ്ഥാനത്തിലുള്ള ക്ലസ്റ്ററിംഗ്. സാങ്കേതിക മോഡലിംഗിൽ അധിഷ്ഠിതമാണ്; ഒരു ഡാറ്റാ പോയിന്റ് ഒരു ക്ലസ്റ്ററിൽപ്പെട്ടിരിക്കാനുള്ള സാധ്യത നിർണയിച്ച് അതിനെ അനുസരിച്ച് അനുവദിക്കുന്നു. ഗോസിയൻ മിക്സ്ചർ മാർഗങ്ങൾ ഇതിൽപ്പെടുന്നു.
-
സാന്ദ്രത-അടിസ്ഥാനത്തിലുള്ള ക്ലസ്റ്ററിംഗ്. ഡാറ്റപ്പോയിന്റുകൾ അവരുടെ സാന്ദ്രതയുടെ അടിസ്ഥാനത്തിൽ ക്ലസ്റ്ററുകളിലേക്ക് അനുവദിക്കുന്നു, ഓരോ കൂട്ടത്തിലുമുള്ള പോയിന്റുകൾറെ അടുക്കും ചുറ്റും. കൂട്ടത്തിൽനിന്ന് ദൂരെ ഉള്ള പോയിന്റുകൾ ഔട്ട്ലയർസ് അല്ലെങ്കിൽ ശബ്ദം (noise) ആയി കാണപ്പെടുന്നു. DBSCAN, മീൻ-ഷിഫ്റ്റ്, OPTICS എന്നിവ ഇതിൽപ്പെടുന്നു.
-
ഗ്രിഡ്-അടിസ്ഥാനത്തിലുള്ള ക്ലസ്റ്ററിംഗ്. ബഹുസമ്പ്രദായ ഡാറ്റാസെറ്റുകൾക്കായി ഒരു ഗ്രിഡ് സൃഷ്ടിച്ച് ഡാറ്റ ഗ്രിഡിന്റെ സെല്ലുകളിൽ വിഭജിച്ച് ക്ലസ്റ്ററുകൾ രൂപപ്പെടുത്തുന്നു.
അഭ്യാസം - നിങ്ങളുടെ ഡാറ്റ ക്ലസ്റ്റർചെയ്യുക
ക്ലസ്റ്ററിംഗ് ഒരു സാങ്കേതികവിദ്യയായി മികച്ച ദൃശ്യീകരണം പ്രധാനമാണ്, അതിനാൽ സംഗീത ഡാറ്റാ ദൃശ്യീകരിക്കുന്നതിൽ നിന്നും തുടങ്ങാം. ഈ അഭ്യാസം ക്ലസ്റ്ററിംഗിന് ഏറ്റവും അനുയോജ്യമായ രീതികൾ തിരഞ്ഞെടുക്കാൻ സഹായിക്കും.
-
ഈ ഫോൾഡറിൽ ഉള്ള notebook.ipynb ഫയൽ തുറക്കുക.
-
നല്ല ഡാറ്റാ ദൃശ്യീകരണത്തിനായി
Seabornപാക്കേജ് ഇറക്കുമതി ചെയ്യുക.!pip install seaborn -
nigerian-songs.csv നിന്നുള്ള ഗാനം ഡാറ്റ ചേർക്കുക. ഗാനങ്ങളായി ഡാറ്റാഫ്രെയിമിൽ ഡാറ്റ ലോഡ് ചെയ്യുക. ലൈബ്രറികൾ ഇറക്കുമതി ചെയ്ത് ഡാറ്റ കാണിക്കുക:
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 nigerian pop 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) afropop 2018 152049 25 0.702 0.116 0.833 0.91 0.348 -6.044 0.0447 105.115 4 -
ഡാറ്റാഫ്രെയിമിന്റെ കുറച്ചു വിവരങ്ങള്
info()വിളിച്ച് നേടുക:df.info()ഔട്ട്പുട്ട് ഇങ്ങനെ കാണാം:
<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 -
നൾ മൂല്യങ്ങൾ ഇരുണ്ടോ എന്ന് രണ്ടാം തവണ പരിശോധിക്കുക,
isnull()വിളിച്ച് മൊത്തം എണ്ണവും 0 ആണെന്ന് ഉറപ്പുവരുത്തുക:df.isnull().sum()എല്ലാവരും ശരിയാണെന്ന് കാണാം:
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 -
ഡാറ്റയുടെ വിശകലനം ചെയ്യുക:
df.describe()release_date length popularity danceability acousticness energy instrumentalness liveness loudness speechiness tempo time_signature count 530 530 530 530 530 530 530 530 530 530 530 530 mean 2015.390566 222298.1698 17.507547 0.741619 0.265412 0.760623 0.016305 0.147308 -4.953011 0.130748 116.487864 3.986792 std 3.131688 39696.82226 18.992212 0.117522 0.208342 0.148533 0.090321 0.123588 2.464186 0.092939 23.518601 0.333701 min 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 max 2020 511738 73 0.966 0.954 0.995 0.91 0.811 0.582 0.514 206.007 5
🤔 നാം ക്ലസ്റ്ററിങ്ങ് ഉപയോഗിച്ചുതുടങ്ങുമ്പോള്, ലേബല് ചെയ്യപ്പെടാത്ത ഡാറ്റ ആവശ്യമുള്ള ഒരു അനു നിരീക്ഷിത രീതി തന്നെയാണ് എങ്കില്, ഈ ലേബല് ഉള്ള ഡാറ്റ ഞാന് എന്തിനു കാണിക്കുന്നു? ഡാറ്റ എക്സ്പ്ലറേഷൻ ഘട്ടത്തില് ഇത് സഹായകരമാണ്, പക്ഷേ ക്ലസ്റ്ററിങ് ആൽഗോരിതങ്ങൾക്കും അവശ്യമായിട്ടില്ല. നിറവേറ്റേണ്ടത് കോളം തലക്കെട്ടുകൾ നീക്കം ചെയ്ത് ഡാറ്റാ കോളം നമ്പർ പ്രകാരം കാണിക്കുന്നതും അതുപോലെ പറ്റും.
ഡാറ്റയുടെ പൊതുവായ മൂല്യങ്ങള് നോക്കുക. ജനപ്രിയത 0 ആകാം, അതായത് റാങ്കിംഗ് ഇല്ലാത്ത പാട്ടുകളാണ്. അവ നീക്കം ചെയ്യാം.
-
ഏറ്റവും ജനപ്രിയമായ ജേണറുകൾ കണ്ടെത്താൻ ബാർപ്ലോട്ട് ഉപയോഗിക്കുക:
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' എന്ന് വിളിക്കുന്നത്, അത് Spotify ക്ലാസ്സിഫൈ ചെയ്തിട്ടില്ല എന്നാണർത്ഥം, അതിനാൽ അത് നീക്കം ചെയ്യുക.
-
ലാപ്ത ഡാറ്റ ഫിൽറ്റർ ചെയ്ത് നീക്കം ചെയ്യുക
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')ഇപ്പൊഴുള്ള ജേണറുകൾ വീണ്ടും പരിശോധിക്കുക:
-
ഇതുവരെ, ടോപ് മൂന്ന് ജേണറുകള് ഈ ഡാറ്റാസെറ്റില് ഭുജിച്ചു നിൽക്കുന്നു.
afro dancehall,afropop,nigerian popഎന്ന മൂന്ന് ക്ലാസ്സുകളിലും ശ്രദ്ധ കേന്ദ്രീകരിക്കുക. കൂടാതെ പാപ്പുലാരിറ്റി 0 ഉള്ളവ (അർത്ഥം ഇവക്ക് പാപ്പുലാരിറ്റി നൽകിയിട്ടില്ല, ഈ ഡാറ്റയിൽ ശബ്ദം മാത്രമാണ് എന്ന് കാണിക്കുന്നു) ഒഴിവാക്കുക: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') -
ഡാറ്റയില് എന്തെങ്കിലും പ്രബലമായ സഹബന്ധം ഉണ്ടോ എന്ന് ദ്രുതപരിശോധന നടത്തുക:
corrmat = df.corr(numeric_only=True) f, ax = plt.subplots(figsize=(12, 9)) sns.heatmap(corrmat, vmax=.8, square=True)പ്രബലമായ ഏക സഹബന്ധം energy നും loudness നും ഇടയിലാണുള്ളത്, ഇത് അത്ര étonnante കാണാനില്ല, കാരണം ശബ്ദം ശക്തമായ സംഗീതം സാധാരണയായി ഊർജ്ജസ്വലമാണ്. മറ്റുള്ള സഹബന്ധങ്ങൾ സാദാരണമാണ്. ഈ ഡാറ്റ ക്ലസ്റ്ററിങ്ങ് ആൽഗോരിത്മിന് എന്ത് ഫലം ഉണ്ടാകും എന്നതു കണ്ടുപിടിക്കുക രസകരമായിരിക്കും.
🎓 സഹബന്ധം കാരണം സൂചിപ്പിക്കുമെന്നില്ല! നമ്മള്ക്ക് സഹബന്ധത്തിന്റെ തെളിവുണ്ട്, എന്നാൽ കാരണമേകിയതിന്റെ തെളിവില്ല. ഒരു രസകരമായ വെബ്സൈറ്റ് ഇതിന്റെ ദൃശ്യങ്ങള് നല്കുന്നു.
ഈ ഡാറ്റാസെറ്റിൽ പാട്ടിന്റെ പ്രിയാസ്വാദ്യത്തിന് (popularity) Danceability യുമായുള്ള യാതൊരു ഏകീകൃതത വന്നിട്ടുണ്ടോ? ഒരു FacetGrid കാണിക്കുന്നു, ഏത് ജേണറിനെയും പറ്റിയുള്ള പരിധികള് വര്ണ്ണിക്കുന്ന ബന്ധം കാണിക്കുന്നു. നൈജീരിയന് രുചികൾ ഒരു പ്രത്യേക ഡാന്സ് ലെവലില് എത്തുന്നുണ്ടോ?
✅ വ്യത്യസ്ത ഡാറ്റപോയിന്റുകൾ (energy, loudness, speechiness) കൂടാതെ വ്യത്യസ്ത മ്യൂസിക്കൽ ജേണറുകൾ പരീക്ഷിക്കുക. നിങ്ങൾ എന്താണ് കണ്ടെത്തുന്നത്? പൊതുവായ ഡാറ്റ പോയിന്റുകളുടെ വ്യാപ്തി കാണാൻ df.describe() പട്ടിക നോക്കാം.
അഭ്യാസം - ഡാറ്റയുടെ പ്രചരണം
ഏതു മൂന്നു ജേണറുകളും അവരുടെ പേപ്പുലാരിറ്റി അടിസ്ഥാനമാക്കി അവരുടെ ഡാൻസബിലിറ്റിയിൽ കാര്യമായ വ്യത്യാസമുണ്ടോ?
-
നാം നോക്കിയ ടോപ് മൂന്ന് ജേണറുകളുടെ ഡാറ്റ പ്രചരണം പേപ്പുലാരിറ്റിയുടെയും ഡാൻസബിലിറ്റിയുടെയും x, y അളവുകൾ ഉപയോഗിച്ച് പരിശോധിക്കുക.
sns.set_theme(style="ticks") g = sns.jointplot( data=df, x="popularity", y="danceability", hue="artist_top_genre", kind="kde", )പൊതുവായ ഏകികൃതിയുടെ ചുറ്റുപാടുകളിൽ концент്രിക് (കോണ്ട്രിക്) വൃത്തങ്ങൾ കണ്ടെത്താം, ഡാറ്റ പോയിന്റുകളുടെ പ്രചരണം കാണിക്കുന്നു.
🎓 ഉദാഹരണമായി KDE (Kernel Density Estimate) ഗ്രാഫ് ഉപയോഗിക്കപ്പെട്ടിട്ടുണ്ട്, ഇത് ഡാറ്റ ഒരു തുടര്ന്നുള്ള സാദ്ധ്യതാ സാന്ദ്രത വളക്കയില് പ്രതിനിധീകരിക്കുന്നു. ഇത് വ്യാപകമായി സാന്നിധ്യമുള്ള ഡാറ്റകളോടെ ഡാറ്റ വ്യാഖ്യാനിക്കാന് സഹായിക്കുന്നു.
പൊതുവെ, മൂന്ന് ജേണറുകളും അവരുടെ പേപ്പുലാരിറ്റി, ഡാൻസബിലിറ്റി നിരക്കുകളില് മോശമായ സമ്മര്ദ്ദത്തില് പൊരുത്തപ്പെടുന്നു. ഈ മോശമായ പൊരുത്തത്തിലുള്ള ഡാറ്റ ഞങ്ങൾക്ക് ക്ലസ്റ്ററുകൾ കണ്ടെത്തുന്നത് വെല്ലുവിളി ആകും:
-
സ്കാറ്റർ പ്ലോട്ട് ഉണ്ടാക്കുക:
sns.FacetGrid(df, hue="artist_top_genre", height=5) \ .map(plt.scatter, "popularity", "danceability") \ .add_legend()സമാനം ആക്സിസുകള് ഉപയോഗിച്ച് സ്കാറ്റര് പ്ലോട്ട് സമാനമായ ഏകീകരണ പ്രതിരൂപം കാണിക്കുന്നു
അധികം, ക്ലസ്റ്ററിങ്ങിനായി, ഡാറ്റ ക്ലസ്റ്ററുകൾ കാണിക്കുന്നതിന് സ്കാറ്റര് പ്ലോട്ടുകൾ ഉപയോഗിക്കാം, അതിനാൽ ഈ തരത്തിലുള്ള ദൃശ്യീകരണം കൈകാര്യം ചെയ്യുന്നത് ഏറെ പ്രയോജനമുള്ളതാണ്. അടുത്ത പാഠത്തിൽ, ഈ ഫിൽട്ടർ ചെയ്ത ഡാറ്റ ഉപയോഗിച്ച് k-means ക്ലസ്റ്ററിംഗ് നടത്തി താത്പര്യമുള്ള വിധത്തിൽ പരസ്പരം അനുരൂപമുളള ഗ്രൂപ്പുകൾ കണ്ടെത്തും.
🚀ചാലഞ്ച്
അടുത്ത പാഠത്തിനായി, നിർമ്മാണ സാഹചര്യത്തിൽ കണ്ടെത്താവുന്ന വിവിധ ക്ലസ്റ്ററിങ് ആൽഗോരിതങ്ങൾക്കുറിച്ച് ഒരു ചാർട്ട് ഉണ്ടാക്കുക. ക്ലസ്റ്ററിങ്ങ് ഏത് തരത്തിലുള്ള പ്രശ്നങ്ങൾ പരിഹരിക്കാൻ ശ്രമിക്കുന്നു?
പാഠശേഷി ക്വിസ്
അവലോകനം & സ്വയം പഠനം
ക്ലസ്റ്ററിങ്ങ് ആൽഗോരിതങ്ങൾ പ്രയോഗിക്കുന്നതിന് മുന്പ്, നാം പഠിച്ചതുപോലെ, നിങ്ങളുടെ ഡാറ്റാസെറ്റിന്റെ സ്വഭാവം മനസ്സിലാക്കുക നല്ല ഒരു ആശയമാണ്. ഇതിന് കൂടുതല് വായിക്കുക ഇവിടെ
ഈ സഹായകരമായ ലേഖനം വിവിധ ക്ലസ്റ്ററിംഗ് ആൽഗോരിതങ്ങളും അവയുടെ പ്രവർത്തന രീതികളും വിശദീകരിക്കുന്നു, വ്യത്യസ്ത ഡാറ്റാ രൂപവത്കരണങ്ങൾക്കനുസൃതമായി.
അസൈൻമെന്റ്
ക്ലസ്റ്ററിങ്ങിന് മറ്റ് ദൃശ്യീകരണങ്ങളെക്കുറിച്ച് ഗവേഷണം നടത്തുക
അറിയിപ്പ്: ഈ രേഖ AI പരിഭാഷാ സേവനം Co-op Translator ഉപയോഗിച്ച് പരിഭാഷപ്പെടുത്തിയതാണ്. ഞങ്ങൾ കൃത്യതയ്ക്കായി ശ്രമിക്കുന്നുവെങ്കിലും, ഓട്ടോമേറ്റഡ് പരിഭാഷകളിൽ പിഴവുകൾ അല്ലെങ്കിൽ തെറ്റായ വിവരങ്ങൾ ഉണ്ടാകാൻ സാധ്യതയുണ്ട്. അതിന്റെ സ്വാഭാവിക ഭാഷയിലുള്ള അസൽ രേഖയാണ് പ്രാമാണികമായ ഉറവിടമായി പരിഗണിക്കേണ്ടത്. നിർണായകമായ വിവരങ്ങൾക്ക്, പ്രൊഫഷണൽ മനുഷ്യ പരിഭാഷ ശുപാർശ ചെയ്യുന്നു. ഈ പരിഭാഷ ഉപയോഗിച്ച് ഉണ്ടാകുന്ന തെറ്റിദ്ധാരണകൾ അല്ലെങ്കിൽ തെറ്റായ വ്യാഖ്യാനങ്ങൾക്കായി ഞങ്ങൾ ഉത്തരവാദികളല്ല.









