html
बुक क्रॉसिंग डेटासेट का उपयोग करके एक सिफारिश प्रणाली बनाना
सामग्री संबंधी सूची
- 1. डेटासेट का चयन
- 2. डेटासेट संरचना को समझना
- 3. डेटा तैयारी और अन्वेषण
- 4. रेटिंग डेटा को संभालना
- 5. रेटिंग वितरण का विज़ुअलाइज़ेशन
- 6. सिफारिश प्रणाली की तैयारी
- 7. डेटा चुनौतियों का समाधान
- 8. अगला कदम
- निष्कर्ष
दोस्तों, वापस स्वागत है! इस गाइड में, हम एक सिफारिश प्रणाली के निर्माण में गहराई से गोता लगाएंगे, जुड़े आवश्यक कदमों को रेखांकित करेंगे। हमारी प्रक्रिया को सरल बनाने के लिए, कुछ प्रारंभिक कदम पहले से ही कवर किए जा चुके हैं, जिससे हम प्रणाली निर्माण के मुख्य पहलुओं पर ध्यान केंद्रित कर सकें।
1. डेटासेट का चयन
हमारी सिफारिश प्रणाली के लिए, हम बुक क्रॉसिंग डेटासेट का उपयोग करेंगे, जो पुस्तक सिफारिशों के लिए अनुकूलित एक व्यापक संग्रह है। जबकि मूवी लेन्स डेटासेट लोकप्रिय और उपयोगकर्ता के अनुकूल है—जो अक्सर यूट्यूब जैसे प्लेटफार्मों पर ट्यूटोरियल में दिखाया जाता है—हमने सिफारिश प्रणालियों की गहरी समझ प्रदान करने के लिए एक अधिक जटिल डेटासेट चुना है।
डेटासेट एक्सेस:
- बुक क्रॉसिंग डेटासेट: डेटासेट के लिए लिंक *(सुनिश्चित करें कि आप इसे वास्तविक लिंक से बदलें)*
- फॉर्मेट: एसक्यूएल डंप या सीएसवी फाइल्स के रूप में उपलब्ध। हमारे उद्देश्यों के लिए, हम सीएसवी फॉर्मेट का उपयोग करेंगे।
सीएसवी फाइल्स को डाउनलोड करने पर, आपको तीन प्रमुख फाइलें मिलेंगी:
- पुस्तकें: लगभग 75 एमबी
- उपयोगकर्ता: लगभग 30 एमबी
- रेटिंग्स: लगभग 12 एमबी
डेटासेट के आकार को देखते हुए, इसे कुशलतापूर्वक संभालना महत्वपूर्ण है, लेकिन इसके समृद्ध डेटा इसे एक मजबूत सिफारिश प्रणाली बनाने के लिए अमूल्य बनाते हैं।
2. डेटासेट संरचना को समझना
पुस्तकें फाइल:
- क्षेत्र: ISBN, पुस्तक का शीर्षक, लेखक, प्रकाशन वर्ष, प्रकाशक, इमेज URLs, आदि।
- मुख्य पहचानकर्ता: ISBN (अंतर्राष्ट्रीय मानक पुस्तक संख्या) प्रत्येक पुस्तक के लिए एक अद्वितीय पहचानकर्ता के रूप में कार्य करता है, जो किसी भी डुप्लिकेट को सुनिश्चित करता है।
उपयोगकर्ता फाइल:
- क्षेत्र: उपयोगकर्ता आईडी, स्थान, आयु
- मुख्य पहचानकर्ता: उपयोगकर्ता आईडी प्रत्येक उपयोगकर्ता को अद्वितीय रूप से पहचानता है।
रेटिंग्स फाइल (BX बुक रेटिंग):
- क्षेत्र: उपयोगकर्ता आईडी, ISBN, पुस्तक रेटिंग
- महत्व: यह फाइल उपयोगकर्ताओं को उनकी रेट की गई पुस्तकों से जोड़ती है, जो हमारी सिफारिश प्रणाली की रीढ़ बनाती है।
3. डेटा तैयारी और अन्वेषण
हम डेटा को संशोधित करने के लिए Pandas और NumPy का उपयोग करेंगे और विज़ुअलाइज़ेशन के लिए Matplotlib's Pyplot का उपयोग करेंगे।
डेटा लोड करना:
12345678
import numpy as npimport pandas as pdimport matplotlib.pyplot as plt # उपयुक्त सेपरेटर और एन्कोडिंग के साथ डेटासेट्स को पढ़नाbooks = pd.read_csv('books.csv', sep=';', encoding='ISO-8859-1')users = pd.read_csv('users.csv', sep=';', encoding='ISO-8859-1')ratings = pd.read_csv('ratings.csv', sep=';', encoding='ISO-8859-1')
डेटा का अन्वेषण:
- पुस्तकें: प्रत्येक पुस्तक के बारे में विस्तृत जानकारी शामिल है, जिसमें ISBN एक अद्वितीय पहचानकर्ता के रूप में है।
- उपयोगकर्ता: उपयोगकर्ता जनसांख्यिकी शामिल हैं।
- रेटिंग्स: उपयोगकर्ताओं को उनकी रेट की गई पुस्तकों के साथ नक्शा बनाता है, साथ ही रेटिंग स्कोर भी।
4. रेटिंग डेटा को संभालना
रेटिंग्स डेटासेट महत्वपूर्ण है क्योंकि यह उपयोगकर्ताओं को उनकी पुस्तक प्राथमिकताओं से जोड़ता है। हालांकि, इस फाइल में उपयोगकर्ता आईडी और ISBN अद्वितीय कुंजी नहीं हैं, यानी:
- एक उपयोगकर्ता कई पुस्तकों को रेट कर सकता है।
- एक पुस्तक को कई उपयोगकर्ताओं द्वारा रेट किया जा सकता है।
औसत रेटिंग्स की गणना:
प्रत्येक पुस्तक की समग्र स्वीकृति को समझने के लिए, हम औसत रेटिंग की गणना करेंगे।
12345678
# ISBN द्वारा ग्रुपिंग और औसत रेटिंग्स की गणनाaverage_ratings = ratings.groupby('ISBN').mean().reset_index() # प्रति पुस्तक रेटिंग्स की संख्या गिननाrating_counts = ratings.groupby('ISBN').size().reset_index(name='RatingCount') # औसत रेटिंग्स को गिनती के साथ मर्ज करनाaverage_ratings = average_ratings.merge(rating_counts, on='ISBN')
5. रेटिंग वितरण का विज़ुअलाइज़ेशन
रेटिंग्स के वितरण को समझना संभावित पूर्वाग्रह या डेटा विरलता समस्याओं की पहचान में मदद करता है।
123456
plt.figure(figsize=(10,6))plt.hist(average_ratings['RatingCount'], bins=500, color='skyblue')plt.title('बुक रेटिंग्स का वितरण')plt.xlabel('रेटिंग्स की संख्या')plt.ylabel('आवृत्ति')plt.show()
अवलोकन:
- डेटा असमानता: बहुत सारी पुस्तकों को बहुत कम उपयोगकर्ताओं द्वारा रेट किया गया है, जबकि कुछ ने हजारों रेटिंग्स प्राप्त की हैं।
- प्रभाव: यह असंतुलन सिफारिश प्रणाली के प्रदर्शन को प्रभावित कर सकता है, जिससे ऐसी सिफारिशें हो सकती हैं जो लोकप्रिय पुस्तकों को प्राथमिकता देती हैं।
6. सिफारिश प्रणाली की तैयारी
सिफारिश प्रणाली बनाने से पहले, यह आवश्यक है कि हम एक पिवट टेबल बनाएं जो डेटा को उचित रूप से संरचित करता है, आमतौर पर उपयोगकर्ताओं को पंक्तियों के रूप में, पुस्तकों को कॉलमों के रूप में, और रेटिंग्स को मानों के रूप में।
पिवट टेबल बनाना:
1
pivot_table = ratings.pivot(index='User ID', columns='ISBN', values='Book Rating').fillna(0)
7. डेटा चुनौतियों का समाधान
- विरलता: कई पुस्तकों के पास कम रेटिंग्स होने के कारण, यह महत्वपूर्ण है कि ऐसी तकनीकों को लागू किया जाए जो विरलता को संभाल या कम कर सकें, जैसे कि मैट्रिक्स फैक्ट्राइजेशन।
- कोल्ड स्टार्ट समस्या: नए उपयोगकर्ताओं या पुस्तकों के लिए जिनके पास कोई रेटिंग नहीं है, ऐसी रणनीतियाँ जैसे कि कंटेंट-आधारित फिल्टरिंग या उपयोगकर्ता जनसांख्यिकी का लाभ उठाना फायदेमंद हो सकता है।
8. अगला कदम
आगामी ट्यूटोरियल्स में, हम पिवट टेबल का विस्तार से निर्माण, सहयोगात्मक फिल्टरिंग तकनीकों को लागू करने, और डेटासेट की जटिलताओं को प्रभावी ढंग से संभालने के लिए सिफारिश प्रणाली को अनुकूलित करने का अन्वेषण करेंगे।
निष्कर्ष
बुक क्रॉसिंग डेटासेट का उपयोग करके एक सिफारिश प्रणाली बनाना एक व्यापक सीखने का अनुभव प्रदान करता है, जो बड़े, वास्तविक दुनिया के डेटासेट को संभालने की जटिलताओं को उजागर करता है। डेटा संरचना को समझकर, विरलता जैसी चुनौतियों का समाधान करके, और डेटा की व्यवस्थित तैयारी करके, आप एक प्रभावी और विश्वसनीय सिफारिश प्रणाली बनाने के लिए एक ठोस आधार रखते हैं।
कोडिंग खुशहाल हो!