सहसंबंध मैट्रिक्स के लिए हीटमैप
DataFrame.corr() से सहसंबंध मैट्रिक्स निकालें और sns.heatmap से उसे रंग-आधारित हीटमैप में दिखाएँ।
सहसंबंध मैट्रिक्स के लिए हीटमैप, CoddyKit पर Pandas & NumPy Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Pandas & NumPy Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Pandas & NumPy Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
सहसंबंध मैट्रिक्स क्या है?
सहसंबंध मैट्रिक्स एक वर्गाकार सारणी होती है, जिसमें प्रविष्टि (i, j), कॉलम i और कॉलम j के बीच का पियर्सन सहसंबंध गुणांक रखती है। मान -1 (पूर्ण ऋणात्मक रैखिक सहसंबंध) से +1 (पूर्ण धनात्मक) तक होते हैं, जहाँ 0 का अर्थ है कि कोई रैखिक संबंध नहीं है। विकर्ण हमेशा 1 होता है, क्योंकि कोई चर स्वयं के साथ पूर्णतः सहसंबंधित होता है। मॉडल बनाने से पहले यह समझने के लिए कि कौन-से चर साथ-साथ बदलते हैं, सहसंबंध मैट्रिक्स पहला कदम होते हैं।
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
# Compute correlation matrix for numeric columns
tips = sns.load_dataset('tips')
corr = tips[['total_bill', 'tip', 'size']].corr()
print(corr.round(2))सहसंबंध मैट्रिक्स की गणना
सभी संख्यात्मक कॉलमों के युग्मवार पियर्सन सहसंबंधों की गणना करने के लिए DataFrame.corr() चलाइए। method पैरामीटर यह नियंत्रित करता है कि कौन-सा सहसंबंध निकाला जाए: 'pearson' (डिफ़ॉल्ट, रैखिक), 'spearman' (रैंक-आधारित, बाहरी मानों और अरैखिक एकदिश संबंधों के प्रति अधिक सुदृढ़), या 'kendall'। विषम वित्तीय या गणना-आधारित डेटा के लिए Spearman अक्सर Pearson से अधिक जानकारीपूर्ण होता है।
import pandas as pd
import seaborn as sns
tips = sns.load_dataset('tips')
numeric = tips.select_dtypes(include='number')
# Pearson vs Spearman
pearson = numeric.corr(method='pearson')
spearman = numeric.corr(method='spearman')
print('Pearson:')
print(pearson.round(2))
print('\nSpearman:')
print(spearman.round(2))sns.heatmap के साथ मूल हीटमैप
sns.heatmap(data) एक 2D ऐरे या DataFrame लेकर उसे रंगों के ग्रिड के रूप में दिखाता है — प्रत्येक सेल का रंग उसके संख्यात्मक मान को दर्शाता है। सहसंबंध मैट्रिक्स पर लागू करने पर गर्म रंग (लाल) सामान्यतः धनात्मक सहसंबंध और ठंडे रंग (नीला) ऋणात्मक सहसंबंध दर्शाते हैं। annot=True पैरामीटर प्रत्येक सेल के भीतर संख्यात्मक मान लिखता है, जो सहसंबंध हीटमैप को सही ढंग से पढ़ने के लिए आवश्यक है।
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
corr = tips.select_dtypes('number').corr()
sns.heatmap(corr, annot=True, fmt='.2f')
plt.title('Correlation Heatmap — Tips Dataset')
plt.tight_layout()
plt.show()सही रंग मानचित्र चुनना
सहसंबंध मैट्रिक्स के लिए हमेशा शून्य पर केंद्रित विचलनशील रंग मानचित्र का उपयोग कीजिए: cmap='coolwarm', 'RdBu_r', या 'vlag'। ये मानचित्र धनात्मक मानों के लिए एक रंग, ऋणात्मक मानों के लिए दूसरा रंग और शून्य पर एक तटस्थ मध्यबिंदु रखते हैं। सहसंबंध डेटा के लिए क्रमिक रंग मानचित्र (जैसे 'Blues') से बचिए, क्योंकि उनसे धनात्मक और ऋणात्मक सहसंबंधों में दृश्य रूप से अंतर करना असंभव हो जाता है। रंग पैमाने को सहसंबंध की पूरी सीमा पर स्थिर करने के लिए vmin=-1, vmax=1 सेट कीजिए।
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset('tips')
corr = tips.select_dtypes('number').corr()
sns.heatmap(
corr,
annot=True,
fmt='.2f',
cmap='coolwarm',
vmin=-1,
vmax=1,
center=0
)
plt.title('Correlation Heatmap with Diverging Palette')
plt.tight_layout()
plt.show()ऊपरी त्रिभुज को मास्क करना
सहसंबंध मैट्रिक्स सममित होती है (corr[i,j] == corr[j,i]), इसलिए दोनों हिस्सों को दिखाना अनावश्यक है। ऊपरी त्रिभुज का मास्क बनाने के लिए np.triu का उपयोग कीजिए और उसे sns.heatmap में mask= के साथ पास कीजिए। इससे सेल की संख्या आधी हो जाती है, प्लॉट कम भरा हुआ दिखता है और उसे पढ़ना आसान हो जाता है। विकर्ण के मान (सभी 1.0) भी मास्क किए जा सकते हैं, क्योंकि उनमें कोई अतिरिक्त जानकारी नहीं होती।
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
tips = sns.load_dataset('tips')
corr = tips.select_dtypes('number').corr()
# Mask the upper triangle (including diagonal)
mask = np.triu(np.ones_like(corr, dtype=bool))
sns.heatmap(
corr,
mask=mask,
annot=True,
fmt='.2f',
cmap='coolwarm',
vmin=-1,
vmax=1
)
plt.title('Lower-Triangle Correlation Heatmap')
plt.tight_layout()
plt.show()टिप्पणियों और सेल के आकार को अनुकूलित करना
fmt= से टिप्पणी का प्रारूप नियंत्रित कीजिए (जैसे दो दशमलव स्थानों के लिए '.2f') और annot_kws={'size': 10} से फ़ॉन्ट का आकार नियंत्रित कीजिए। linewidths पैरामीटर सेल के बीच पतली रेखाएँ जोड़ता है, जिससे बड़े मैट्रिक्स का ग्रिड पढ़ना आसान हो जाता है। आकृति के आयाम चाहे जो हों, सेल को वर्गाकार रखने के लिए square=True का उपयोग कीजिए। इससे हीटमैप साफ़-सुथरा और संतुलित दिखाई देता है।
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Load a wider dataset for a more interesting heatmap
penguins = sns.load_dataset('penguins').select_dtypes('number')
corr = penguins.corr()
mask = np.triu(np.ones_like(corr, dtype=bool))
sns.heatmap(
corr,
mask=mask,
annot=True,
fmt='.2f',
cmap='vlag',
vmin=-1,
vmax=1,
linewidths=0.5,
square=True,
annot_kws={'size': 10}
)
plt.title('Penguins Correlation Matrix')
plt.tight_layout()
plt.show()clustermap के साथ क्लस्टरिंग
sns.clustermap() समान सहसंबंध पैटर्न वाले चरों को एक साथ समूहित करने के लिए पदानुक्रमित क्लस्टरिंग का उपयोग करके पंक्तियों और कॉलमों का क्रम बदलता है। इससे बड़े मैट्रिक्स में सहसंबंधित फीचर के समूहों की पहचान करना बहुत आसान हो जाता है। ऊपर और बाएँ अक्षों पर बना डेंड्रोग्राम क्लस्टरिंग ट्री दिखाता है। सहसंबंध-आधारित क्लस्टरिंग के लिए method='ward' और metric='euclidean' को उचित डिफ़ॉल्ट के रूप में उपयोग कीजिए।
import seaborn as sns
import matplotlib.pyplot as plt
penguins = sns.load_dataset('penguins').select_dtypes('number').dropna()
corr = penguins.corr()
sns.clustermap(
corr,
cmap='coolwarm',
vmin=-1,
vmax=1,
annot=True,
fmt='.2f',
figsize=(6, 6)
)
plt.suptitle('Clustered Correlation Matrix', y=1.02)
plt.show()पिवट टेबल डेटा के लिए हीटमैप
हीटमैप केवल सहसंबंध मैट्रिक्स तक सीमित नहीं होते — रंगों के माध्यम से मान दर्शाने से किसी भी 2D संख्यात्मक सारणी को लाभ मिलता है। एक सामान्य तरीका है पिवट टेबल बनाना (जैसे दिन और समय के अनुसार औसत टिप) और फिर उसे हीटमैप के रूप में दृश्य बनाना। इससे संख्याओं से भरी सारणी एक ऐसे रंगीन ग्रिड में बदल जाती है जिसे तुरंत देखा-समझा जा सकता है और जिसमें सबसे बड़े तथा सबसे छोटे मान तुरंत उभरकर दिखते हैं।
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
tips = sns.load_dataset('tips')
# Pivot: average bill by day and time
pivot = tips.pivot_table(
values='total_bill',
index='day',
columns='time',
aggfunc='mean'
)
sns.heatmap(pivot, annot=True, fmt='.1f', cmap='YlOrRd')
plt.title('Average Bill by Day and Time')
plt.tight_layout()
plt.show()सहसंबंध मानों की व्याख्या
सहसंबंधों की व्याख्या करते समय इन मोटे मानकों का उपयोग कीजिए: |r| < 0.2 = नगण्य, 0.2-0.4 = कमज़ोर, 0.4-0.6 = मध्यम, 0.6-0.8 = मज़बूत, > 0.8 = बहुत मज़बूत। हालांकि, सहसंबंध आपको कारणता के बारे में कुछ नहीं बताता और यह छद्म भी हो सकता है (किसी तीसरे भ्रमकारी चर के कारण संयोगवश सहसंबंधित)। यह जाँचने के लिए कि संबंध वास्तव में रैखिक है और बाहरी मानों से प्रभावित नहीं है, संख्यात्मक सहसंबंध विश्लेषण के साथ हमेशा स्कैटर प्लॉट भी देखिए।
import pandas as pd
import seaborn as sns
# Find the most correlated pairs
penguins = sns.load_dataset('penguins').select_dtypes('number').dropna()
corr = penguins.corr()
# Unstack to get pairs, remove self-correlations, sort
pairs = (corr
.unstack()
.reset_index()
.rename(columns={'level_0': 'var1', 'level_1': 'var2', 0: 'r'})
.query('var1 != var2')
.assign(abs_r=lambda df: df['r'].abs())
.sort_values('abs_r', ascending=False)
.drop_duplicates(subset='abs_r')
)
print(pairs.head(6).to_string(index=False))बड़े डेटासेट के हीटमैप: उपसमुच्चय बनाना
बहुत सारे कॉलम वाले DataFrames के लिए पूरा सहसंबंध हीटमैप अपठनीय हो जाता है। बेहतर तरीका है कि सहसंबंध मैट्रिक्स को फ़िल्टर करके केवल उन युग्मों को दिखाया जाए जिनका |r| किसी सीमा (जैसे 0.5) से अधिक हो, या लक्ष्य चर के साथ सबसे अधिक सहसंबंधित फीचर चुने जाएँ। आप डोमेन के आधार पर भी उपसमुच्चय बना सकते हैं — उदाहरण के लिए, किसी व्यावसायिक डेटासेट में वित्तीय मेट्रिक्स के सहसंबंधों को परिचालन मेट्रिक्स से अलग दिखाना।
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Show only features with |r| > 0.4 with any other feature
penguins = sns.load_dataset('penguins').select_dtypes('number').dropna()
corr = penguins.corr()
# Filter columns that have at least one high correlation (excluding diagonal)
high_corr = (corr.abs() > 0.4).any(axis=1)
filtered = corr.loc[high_corr, high_corr]
mask = np.triu(np.ones_like(filtered, dtype=bool))
sns.heatmap(filtered, mask=mask, annot=True,
fmt='.2f', cmap='coolwarm', vmin=-1, vmax=1)
plt.title('High-Correlation Subset')
plt.tight_layout()
plt.show()हीटमैप को फ़ाइलों में सहेजना
हीटमैप अक्सर रिपोर्टों और प्रस्तुतियों में शामिल किए जाते हैं। हीटमैप बनाने के बाद उसे सहेजने के लिए plt.savefig('filename.png', dpi=150, bbox_inches='tight') चलाइए। bbox_inches='tight' तर्क अक्ष लेबलों को कटने से बचाता है। PDF रिपोर्टों के लिए format='pdf' का उपयोग कीजिए। sns.clustermap का उपयोग करते समय आकृति लौटाई गई वस्तु में संग्रहीत होती है: g = sns.clustermap(...); g.savefig('plot.png')।
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
tips = sns.load_dataset('tips')
corr = tips.select_dtypes('number').corr()
mask = np.triu(np.ones_like(corr, dtype=bool))
fig, ax = plt.subplots(figsize=(6, 5))
sns.heatmap(corr, mask=mask, annot=True, fmt='.2f',
cmap='coolwarm', vmin=-1, vmax=1,
linewidths=0.5, ax=ax)
ax.set_title('Correlation Heatmap')
# Save to file
plt.savefig('/tmp/correlation_heatmap.png', dpi=150, bbox_inches='tight')
plt.close()
print('Saved to /tmp/correlation_heatmap.png')त्वरित जाँच
इस पाठ में सहसंबंध हीटमैप से संबंधित अपनी समझ की जाँच कीजिए।
पाठ का पुनरावलोकन
इस पाठ में आपने सीखा: DataFrame.corr() युग्मवार सहसंबंधों की गणना करता है, sns.heatmap विचलनशील रंग मानचित्रों और टिप्पणियों के साथ उन्हें रंगीन ग्रिड के रूप में दिखाता है, और ऊपरी त्रिभुज को मास्क करने से अनावश्यक दोहराव हट जाता है। आगे हम पूर्ण खोजपरक डेटा विश्लेषण pipeline का अध्ययन करेंगे — किसी भी नए डेटासेट की प्रोफ़ाइल बनाने के लिए एक व्यवस्थित जाँच-सूची।
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “सहसंबंध मैट्रिक्स के लिए हीटमैप” पाठ निःशुल्क है?
हाँ—“सहसंबंध मैट्रिक्स के लिए हीटमैप” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Pandas & NumPy Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Pandas & NumPy Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“सहसंबंध मैट्रिक्स के लिए हीटमैप” में मैं क्या सीखूँगा?
DataFrame.corr() से सहसंबंध मैट्रिक्स निकालें और sns.heatmap से उसे रंग-आधारित हीटमैप में दिखाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Pandas & NumPy Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Pandas & NumPy Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Pandas & NumPy Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“सहसंबंध मैट्रिक्स के लिए हीटमैप” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Pandas & NumPy Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Pandas & NumPy Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- वितरण प्लॉट: histplot और kdeplot
- श्रेणीबद्ध प्लॉट: boxplot, barplot, violinplot
- स्कैटर प्लॉट और पेयर प्लॉट
- सहसंबंध मैट्रिक्स के लिए हीटमैप