Mundarija (22)
- 1. Kirish va motivatsiya
- 2. Nazariya — chuqur tushuntirish
- 2.1. Heatmap nima (matritsa rang bilan)
- 2.2. Korrelyatsiya heatmap (df.corr())
- 2.3. annot, cmap (son, rang)
- 2.4. vmin/vmax (rang chegarasi)
- 2.5. Heatmap o'qish (naqsh)
- 2.6. Heatmap amaliyoti
- 2.7. Heatmap tuzoqlari
- 2.8. Heatmap — matritsa naqshini rang bilan
- 3. Tez ma'lumotnoma
- 4. Batafsil misollar
- Misol 1 — Korrelyatsiya heatmap
- Misol 2 — annot va cmap
- Misol 3 — Naqsh o'qish
- Misol 4 — Katta matritsa (annot'siz)
- 5. To'g'ri va noto'g'ri tushunishlar
- 6. Keng tarqalgan xatolar va yechimlari
- 7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 8. Eng yaxshi amaliyotlar
- 9. Amaliy topshiriq
- Xulosa
5.8-dars: Heatmap (issiqlik xaritasi)
5-QISM — VIZUALIZATSIYA · 8-dars
1. Kirish va motivatsiya
4.9-darsda korrelyatsiya matritsasini o'rgandik — ko'p o'zgaruvchi orasidagi aloqa jadval sifatida. Lekin 10 ustunli matritsa — 100 son; jadval bilan naqshni ko'rish qiyin. Heatmap (issiqlik xaritasi) — matritsani rang bilan ko'rsatadi: har katak qiymati rang bilan (kuchli — to'q, kuchsiz — och), naqsh bir qarashda ko'rinadi. Data Science'da eng ko'p ishlatilishi — korrelyatsiya matritsasi (sns.heatmap(df.corr(), annot=True)): qaysi o'zgaruvchilar bog'liq (to'q qizil/ko'k), qaysilari mustaqil (och) — bir qarashda. Nega muhim? (1) Naqsh — ko'p sonni rang bilan (matritsa naqshi); (2) Korrelyatsiya — o'zgaruvchi aloqasi (feature tanlash — 20-qism); (3) Zich ma'lumot — katta matritsa bir grafikda. Bu dars heatmap'ni o'rgatadi — matritsani rang bilan.
Heatmap (issiqlik xaritasi) — matritsani rang bilan: sns.heatmap(matritsa) (Seaborn — 5.7), korrelyatsiya (df.corr() — 4.9; eng ko'p), annot=True (katakda son), cmap= (rang xaritasi — coolwarm musbat/manfiy), vmin/vmax (rang chegarasi), naqsh (to'q — kuchli, och — kuchsiz; bir qarashda). Foydalanish: korrelyatsiya, matritsa naqshi, zich ma'lumot. Bu 5.7 (Seaborn), 4.9 (korrelyatsiya matritsasi) bilan bog'liq. Heatmap — matritsa rang bilan. Korrelyatsiya. Naqsh.
Real vaziyat. Data Scientist uy narxi ma'lumotida 8 xususiyat (maydon, xonalar, yosh, joylashuv, ...) — qaysilar narx bilan bog'liq? Korrelyatsiya matritsasi (df.corr() — 4.9): 8×8 = 64 son (jadval — naqsh ko'rinmaydi). Heatmap (sns.heatmap(df.corr(), annot=True, cmap="coolwarm")): har katak rang (to'q qizil — kuchli musbat, to'q ko'k — kuchli manfiy, och — kuchsiz); bir qarashda: narx maydon bilan to'q qizil (0.85 — kuchli), yosh bilan to'q ko'k (-0.6 — teskari), joylashuv id bilan och (0.02 — mustaqil). Data Scientist naqshni ko'rdi (qaysi xususiyat muhim — feature tanlash 20-qism; maydon/yosh — model uchun; id — tashla). Heatmap ko'p sonni rang bilan (matritsa naqshi — bir qarashda). Heatmap — korrelyatsiya naqshi.
Bu darsda heatmap'ni o'rganamiz.
Bu darsda:
- Heatmap nima (matritsa rang bilan)
- Korrelyatsiya heatmap (df.corr())
- annot, cmap (son, rang)
- vmin/vmax (rang chegarasi)
- Heatmap o'qish (naqsh)
- Heatmap amaliyoti
- Heatmap tuzoqlari
- Amaliy: heatmap modeli
ℹ Misollar real seaborn/pandas bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.
2. Nazariya — chuqur tushuntirish
2.1. Heatmap nima (matritsa rang bilan)
Rang bilan:
import seaborn as sns
# Heatmap — matritsani rang bilan (to'q — katta, och — kichik)
sns.heatmap(matritsa)
# Har katak qiymati rang bilan → naqsh bir qarashda Heatmap nima (matritsa rang bilan) — rang: heatmap (issiqlik xaritasi) — 2D matritsani rang bilan ko'rsatadi (sns.heatmap(matritsa) — 5.7 Seaborn; har katak qiymati rangga — to'q katta, och kichik); naqsh bir qarashda (100 son jadval — naqsh ko'rinmas; rang — darhol). Sabab: ko'p son (matritsa — 8×8=64; jadval o'qish qiyin) → rang (naqsh vizual — to'q/och guruh); "rang idrok" (miya rangni sondan tez). Matritsa (2D — qator×ustun), rang (qiymat → rang), naqsh (guruh, aloqa). Heatmap — matritsa rang bilan (naqsh bir qarashda). Matritsa. Rang.
2.2. Korrelyatsiya heatmap (df.corr())
Eng ko'p:
import seaborn as sns
# Korrelyatsiya matritsasi 4.9-bob → heatmap (eng ko'p ishlatilishi)
korr = df.corr() # -1..+1 matritsa
sns.heatmap(korr, annot=True, cmap="coolwarm")
# to'q qizil — kuchli musbat, to'q ko'k — kuchli manfiy, och — kuchsiz Korrelyatsiya heatmap (df.corr()) — eng ko'p: heatmap Data Science'da eng ko'p korrelyatsiya matritsasi uchun (df.corr() — 4.9; -1..+1); sns.heatmap(df.corr(), annot=True, cmap="coolwarm") (to'q qizil — kuchli musbat ~+1, to'q ko'k — kuchli manfiy ~-1, och/oq — kuchsiz ~0). Sabab: ko'p o'zgaruvchan aloqasi (10 ustun — 100 juftlik; jadval qiyin) → rang (qaysi bog'liq — to'q; mustaqil — och; bir qarashda); feature tanlash (model uchun — 20-qism; bog'liq xususiyat, ortiqcha tashla). coolwarm (musbat/manfiy — qizil/ko'k; korrelyatsiya ideal), diagonal (o'zi bilan — 1.0; to'q). Korrelyatsiya heatmap — df.corr() + annot + coolwarm (eng ko'p). Korrelyatsiya. coolwarm.
2.3. annot, cmap (son, rang)
annot, cmap — asosiy parametrlar: annot=True (har katakda son — rang + aniq qiymat; fmt=".2f" — format), cmap= (rang xaritasi — "coolwarm" musbat/manfiy, "viridis" ketma-ket, "YlOrRd" issiqlik), linewidths= (katak orasi chiziq — ajratish), cbar= (rang shkalasi — yon panel). Sabab: annot — rang taxminiy, son aniq (ikkalasi — rang naqsh + son qiymat); cmap — ma'noli rang (korrelyatsiya — divergent coolwarm (0 markaz); ketma-ket — viridis (0'dan katta)). annot (son), cmap (rang turi), fmt (son format), linewidths (ajratish). annot, cmap — son + rang xaritasi. annot. cmap.
2.4. vmin/vmax (rang chegarasi)
vmin/vmax (rang chegarasi) — rang masshtabi: vmin=/vmax= (rang eng kichik/katta qiymat — masshtab qat'iy); center= (rang markazi — 0; divergent cmap). Sabab: heatmap rangni avtomatik masshtablaydi (min-max — ma'lumotga qarab); lekin taqqoslash uchun qat'iy kerak (ikki heatmap — bir masshtab; vmin=-1, vmax=1 korrelyatsiya — doimiy); center=0 (korrelyatsiya — 0 oq/markaz; musbat/manfiy simmetrik). vmin=-1, vmax=1, center=0 (korrelyatsiya standart). vmin/vmax (chegara), center (markaz). vmin/vmax — rang masshtabi (qat'iy). Masshtab. center.
2.5. Heatmap o'qish (naqsh)
Heatmap o'qish (naqsh) — talqin: rang (to'q — kuchli/katta, och — kuchsiz/kichik; cmap'ga qarab), guruh (yaqin to'q kataklar — bog'liq guruh; klaster), diagonal (korrelyatsiya — 1.0 to'q; o'zi bilan), satr/ustun (bir o'zgaruvchi boshqalar bilan — qator/ustun bo'ylab). Sabab: heatmap naqsh uchun (aniq son emas — annot; balki guruh, aloqa); "qaysi bog'liq" (to'q — kuchli), "qaysi mustaqil" (och), "guruh" (to'q blok — o'xshash o'zgaruvchilar). Talqin: to'q (kuchli), och (kuchsiz), blok (guruh), diagonal (o'zi). Heatmap o'qish — rang, guruh, naqsh (talqin). Naqsh. Guruh.
2.6. Heatmap amaliyoti
Heatmap amaliyoti: df.corr() (korrelyatsiya — 4.9; eng ko'p); sns.heatmap(korr, annot=True, cmap="coolwarm", vmin=-1, vmax=1, center=0) (son + divergent + qat'iy masshtab); fmt=".2f" (son format); linewidths=0.5 (katak ajratish); plt.figure(figsize=(10,8)) (katta matritsa — katta o'lcham); talqin (to'q — bog'liq; och — mustaqil; blok — guruh). Tuzoqlar: cmap noto'g'ri (korrelyatsiya — divergent), annot ko'p (katta matritsa — o'qib bo'lmas), masshtab (vmin/vmax — taqqoslash), sababiyat (korrelyatsiya ≠ sabab — 4.10). Amaliyot — corr, heatmap, coolwarm, talqin. Korrelyatsiya. Naqsh.
2.7. Heatmap tuzoqlari
Heatmap asosiy tuzoqlari: cmap noto'g'ri (korrelyatsiya (-1..+1) — divergent (coolwarm — 0 markaz oq); ketma-ket (viridis) — 0 markaz emas, noto'g'ri idrok); annot ko'p (katta matritsa (20×20) — annot=True son o'qib bo'lmas; katta — annot'siz, faqat rang); masshtab yo'q (vmin/vmax yo'q — avtomatik (ma'lumot min-max); ikki heatmap taqqoslash — turli masshtab, aldash; qat'iy — vmin=-1, vmax=1); sababiyat (korrelyatsiya heatmap — aloqa, sabab EMAS — 4.10; to'q qizil ≠ sabab); diagonal chalg'ish (korrelyatsiya diagonal — 1.0 (o'zi bilan; doim to'q; ma'nosiz); e'tibor — diagonaldan tashqari); yarim matritsa (korrelyatsiya simmetrik (yuqori = pastki); mask — yarim ko'rsatish; ortiqcha yarmi olib tashlash); rang idrok (rang — taxminiy (aniq son — annot); faqat rang — noaniq); o'lcham (katta matritsa — figsize katta; kichik — katak/yorliq siqiladi). Sabab: heatmap rang/masshtab/talqin nozik (cmap, masshtab, sababiyat — xato idrok). Yechim: divergent cmap, qat'iy masshtab, katta annot'siz, korrelyatsiya ≠ sabab. Tuzoqlar — cmap, annot, masshtab, sababiyat.
2.8. Heatmap — matritsa naqshini rang bilan
Heatmap asosiy g'oyasi — matritsa naqshini rang bilan: 2D matritsa (ko'p son — jadval o'qish qiyin) → rang (naqsh vizual — bir qarashda); Data Science'da eng ko'p korrelyatsiya matritsasi uchun 4.9-bob. sns.heatmap(df.corr(), annot=True, cmap="coolwarm", vmin=-1, vmax=1, center=0) — korrelyatsiya (to'q qizil kuchli musbat, to'q ko'k manfiy, och kuchsiz), son (annot), divergent (coolwarm — 0 markaz), qat'iy masshtab (vmin/vmax/center). Talqin: to'q (bog'liq), och (mustaqil), blok (guruh), diagonal (o'zi — 1.0). Foydalanish: korrelyatsiya (o'zgaruvchan aloqa — feature tanlash 20-qism), matritsa naqshi (guruh, klaster), zich ma'lumot (katta matritsa bir grafikda). Naqsh (rang — aniq son emas; annot — aniq). Tuzoqlar: cmap (divergent korrelyatsiya), annot (katta — o'qib bo'lmas), masshtab (qat'iy), sababiyat (aloqa ≠ sabab — 4.10). Bu 5.7 (Seaborn) ustida va 4.9 (korrelyatsiya matritsa), 4.10 (sababiyat) bilan. Heatmap — matritsa naqshini rang bilan (korrelyatsiya — eng ko'p). Matritsa. Naqsh. Korrelyatsiya.
3. Tez ma'lumotnoma
import seaborn as sns
import matplotlib.pyplot as plt
# KORRELYATSIYA HEATMAP (eng ko'p ishlatilishi):
korr = df.corr() # -1..+1 matritsa (4.9)
sns.heatmap(korr, annot=True, cmap="coolwarm", vmin=-1, vmax=1, center=0)
# to'q qizil — kuchli musbat · to'q ko'k — manfiy · och — kuchsiz
# PARAMETRLAR:
annot=True # katakda son (rang + aniq qiymat)
fmt=".2f" # son format
cmap="coolwarm" # rang (divergent — korrelyatsiya) · viridis (ketma-ket)
vmin=-1, vmax=1 # rang masshtabi (qat'iy — taqqoslash)
center=0 # rang markazi (0 — korrelyatsiya)
linewidths=0.5 # katak ajratish
# KATTA MATRITSA:
plt.figure(figsize=(12, 10)) # katta o'lcham
sns.heatmap(korr, cmap="coolwarm") # annot'siz (o'qib bo'lmas)
TALQIN: to'q (bog'liq) · och (mustaqil) · blok (guruh) · diagonal (o'zi=1)
QOIDA: divergent cmap · qat'iy masshtab · korrelyatsiya ≠ sabab (4.10)Heatmap xulosasi
Heatmap — matritsa naqshini rang bilan (bir qarashda)
Korrelyatsiya — df.corr() + heatmap (eng ko'p; feature tanlash)
annot/cmap — son + rang (coolwarm divergent)
vmin/vmax/center — qat'iy masshtab (taqqoslash)
Talqin — to'q (bog'liq), och (mustaqil), aloqa ≠ sabab4. Batafsil misollar
Misollar real seaborn/pandas bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.
Misol 1 — Korrelyatsiya heatmap
"""Korrelyatsiya heatmap (real seaborn/pandas)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
def main() -> None:
np.random.seed(0)
n = 100
maydon = np.random.normal(80, 20, n)
narx = maydon * 3 + np.random.normal(0, 10, n) # bog'liq
yosh = np.random.normal(15, 5, n) # mustaqil
df = pd.DataFrame({"maydon": maydon, "narx": narx, "yosh": yosh})
print("=== 1. Korrelyatsiya matritsasi ===")
korr = df.corr().round(2)
print(korr.to_string())
print("\n=== 2. Heatmap ===")
fig, ax = plt.subplots()
sns.heatmap(korr, annot=True, cmap="coolwarm", vmin=-1, vmax=1, ax=ax)
print(f" kataklar (matritsa): {korr.shape}")
print("\n=== 3. Talqin ===")
print(f" maydon-narx: {korr.loc['maydon', 'narx']} (kuchli — to'q qizil)")
print(f" maydon-yosh: {korr.loc['maydon', 'yosh']} (kuchsiz — och)")
print("\n=== 4. Diagonal ===")
print(f" maydon-maydon: {korr.loc['maydon', 'maydon']} (o'zi — 1.0)")
plt.close("all")
print(" ⭐ Heatmap — korrelyatsiya naqshi (rang)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Korrelyatsiya matritsasi ===
maydon narx yosh
maydon 1.00 0.99 0.08
narx 0.99 1.00 0.08
yosh 0.08 0.08 1.00
=== 2. Heatmap ===
kataklar (matritsa): (3, 3)
=== 3. Talqin ===
maydon-narx: 0.99 (kuchli — to'q qizil)
maydon-yosh: 0.08 (kuchsiz — och)
=== 4. Diagonal ===
maydon-maydon: 1.0 (o'zi — 1.0)
⭐ Heatmap — korrelyatsiya naqshi (rang)Nima ko'rsatdi: 2.1, 2.2-bo'limlar.
Misol 2 — annot va cmap
"""Heatmap annot va cmap (real seaborn)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
def main() -> None:
korr = pd.DataFrame(
[[1.0, 0.8, -0.3], [0.8, 1.0, -0.5], [-0.3, -0.5, 1.0]],
columns=["a", "b", "c"], index=["a", "b", "c"],
)
print("=== 1. annot=True (son) ===")
fig, ax = plt.subplots()
sns.heatmap(korr, annot=True, cmap="coolwarm", vmin=-1, vmax=1, ax=ax)
print(f" matnlar (annot): {len(ax.texts) > 0}")
print("\n=== 2. cmap coolwarm (divergent) ===")
print(" to'q qizil (+1), to'q ko'k (-1), oq (0)")
print("\n=== 3. Musbat/manfiy ===")
print(f" a-b: {korr.loc['a', 'b']} (musbat — qizil)")
print(f" b-c: {korr.loc['b', 'c']} (manfiy — ko'k)")
print("\n=== 4. vmin/vmax (masshtab) ===")
print(" vmin=-1, vmax=1 (korrelyatsiya — qat'iy)")
plt.close("all")
print(" ⭐ annot (son) + cmap (rang)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. annot=True (son) ===
matnlar (annot): True
=== 2. cmap coolwarm (divergent) ===
to'q qizil (+1), to'q ko'k (-1), oq (0)
=== 3. Musbat/manfiy ===
a-b: 0.8 (musbat — qizil)
b-c: -0.5 (manfiy — ko'k)
=== 4. vmin/vmax (masshtab) ===
vmin=-1, vmax=1 (korrelyatsiya — qat'iy)
⭐ annot (son) + cmap (rang)Nima ko'rsatdi: 2.3, 2.4-bo'limlar.
Misol 3 — Naqsh o'qish
"""Heatmap naqsh o'qish (real pandas)."""
import numpy as np
import pandas as pd
def main() -> None:
np.random.seed(0)
n = 200
# bog'liq guruh: x1, x2 (o'xshash); mustaqil: z
x1 = np.random.normal(0, 1, n)
x2 = x1 * 0.9 + np.random.normal(0, 0.3, n)
z = np.random.normal(0, 1, n)
df = pd.DataFrame({"x1": x1, "x2": x2, "z": z})
korr = df.corr().round(2)
print("=== 1. Korrelyatsiya matritsasi ===")
print(korr.to_string())
print("\n=== 2. Bog'liq guruh (to'q blok) ===")
print(f" x1-x2: {korr.loc['x1', 'x2']} (kuchli — to'q blok)")
print("\n=== 3. Mustaqil (och) ===")
print(f" x1-z: {korr.loc['x1', 'z']} (kuchsiz — och)")
print("\n=== 4. Talqin ===")
print(" to'q blok = bog'liq guruh; och = mustaqil")
print(" ⭐ Heatmap — naqsh (guruh, mustaqil)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Korrelyatsiya matritsasi ===
x1 x2 z
x1 1.00 0.96 -0.06
x2 0.96 1.00 -0.00
z -0.06 -0.00 1.00
=== 2. Bog'liq guruh (to'q blok) ===
x1-x2: 0.96 (kuchli — to'q blok)
=== 3. Mustaqil (och) ===
x1-z: -0.06 (kuchsiz — och)
=== 4. Talqin ===
to'q blok = bog'liq guruh; och = mustaqil
⭐ Heatmap — naqsh (guruh, mustaqil)Nima ko'rsatdi: 2.5-bo'lim.
Misol 4 — Katta matritsa (annot'siz)
"""Katta matritsa heatmap (real seaborn)."""
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sns
def main() -> None:
np.random.seed(0)
# 8 ustunli matritsa
data = np.random.normal(0, 1, (100, 8))
df = pd.DataFrame(data, columns=[f"x{i}" for i in range(8)])
korr = df.corr()
print("=== 1. Katta matritsa ===")
print(f" o'lcham: {korr.shape} ({korr.size} son)")
print("\n=== 2. Katta o'lcham (figsize) ===")
fig, ax = plt.subplots(figsize=(10, 8))
sns.heatmap(korr, cmap="coolwarm", vmin=-1, vmax=1, ax=ax)
print(f" o'lcham (dyuym): {fig.get_size_inches().tolist()}")
print("\n=== 3. annot'siz (o'qib bo'lmas) ===")
print(" katta matritsa — faqat rang (son o'qib bo'lmas)")
print("\n=== 4. Diagonal ===")
diagonal = np.diag(korr.values)
print(f" diagonal (o'zi): {[round(v, 1) for v in diagonal[:3]]}...")
plt.close("all")
print(" ⭐ Katta matritsa — rang (annot'siz)")
if __name__ == "__main__":
main()Natijaning muhim qismi:
=== 1. Katta matritsa ===
o'lcham: (8, 8) (64 son)
=== 2. Katta o'lcham (figsize) ===
o'lcham (dyuym): [10.0, 8.0]
=== 3. annot'siz (o'qib bo'lmas) ===
katta matritsa — faqat rang (son o'qib bo'lmas)
=== 4. Diagonal ===
diagonal (o'zi): [np.float64(1.0), np.float64(1.0), np.float64(1.0)]...
⭐ Katta matritsa — rang (annot'siz)Nima ko'rsatdi: 2.6, 2.7-bo'limlar.
5. To'g'ri va noto'g'ri tushunishlar
| Noto'g'ri fikr | To'g'risi |
|---|---|
| "Heatmap har matritsa" | Ha, lekin korrelyatsiya eng ko'p |
| "cmap muhim emas" | Divergent (korrelyatsiya) |
| "annot doim" | Katta matritsa — o'qib bo'lmas |
| "masshtab avtomatik OK" | vmin/vmax (taqqoslash) |
| "to'q qizil = sabab" | Aloqa (sabab emas — 4.10) |
| "diagonal muhim" | 1.0 (o'zi — ma'nosiz) |
| "rang = aniq son" | Taxminiy (annot — aniq) |
| "viridis korrelyatsiya" | coolwarm (divergent) |
6. Keng tarqalgan xatolar va yechimlari
1. cmap noto'g'ri (korrelyatsiya)
sns.heatmap(df.corr(), cmap="viridis") # 0 markaz emas # ⚠️
sns.heatmap(df.corr(), cmap="coolwarm", center=0) # divergent # ✅2. annot katta matritsa
sns.heatmap(korr_20x20, annot=True) # 400 son (o'qib bo'lmas) # ⚠️
sns.heatmap(korr_20x20, cmap="coolwarm") # faqat rang # ✅3. Masshtab yo'q
sns.heatmap(df.corr()) # avtomatik (taqqoslash xato) # ⚠️
sns.heatmap(df.corr(), vmin=-1, vmax=1, center=0) # qat'iy # ✅4. Sababiyat
# to'q qizil → "sabab" (xato) # ⚠️
# to'q qizil → aloqa (sabab emas — 4.10) # ✅5. Kichik o'lcham (katta matritsa)
sns.heatmap(korr_20x20) # yorliq siqiladi # ⚠️
plt.figure(figsize=(14, 12)); sns.heatmap(...) # katta # ✅6. Diagonal e'tibor
# diagonal 1.0 → "kuchli" (o'zi bilan — ma'nosiz) # ⚠️
# diagonaldan tashqari (haqiqiy aloqa) # ✅7. fmt unutish
sns.heatmap(korr, annot=True) # 0.847291... (uzun) # ⚠️
sns.heatmap(korr, annot=True, fmt=".2f") # 0.85 # ✅7. Integratsiya — bu bilim qayerda kerak bo'ladi
- 5.7-dars (o'tilgan): Seaborn (heatmap)
- 4.9-dars (o'tilgan): Korrelyatsiya matritsasi
- 4.10-dars (o'tilgan): Korrelyatsiya ≠ sabab
- 5.10-dars: Ko'p grafik (subplots)
- 20-qism (reja): Feature tanlash (korrelyatsiya)
8. Eng yaxshi amaliyotlar
Korrelyatsiya —
df.corr()+ heatmap.cmap — divergent (
coolwarm,center=0).Masshtab —
vmin=-1, vmax=1.annot — kichik matritsa (
fmt=".2f").Katta matritsa — annot'siz (faqat rang).
o'lcham —
figsize(katta matritsa).Talqin — aloqa (sabab emas — 4.10).
Diagonal — o'zi (1.0 — e'tibor bermang).
9. Amaliy topshiriq
Vazifa 1: Bashorat qiling
1. # Heatmap nima?
2. # Eng ko'p ishlatilishi?
3. # df.corr() nima?
4. # annot nima?
5. # cmap coolwarm?
6. # vmin/vmax nima?
7. # to'q qizil?
8. # och rang?
9. # diagonal nima?
10. # katta matritsa annot?
11. # to'q qizil = sabab?
12. # nega heatmap muhim?Javoblar
- Matritsa rang bilan (naqsh)
- Korrelyatsiya matritsasi
- Korrelyatsiya matritsasi (-1..+1)
- Katakda son (rang + aniq)
- Divergent (musbat/manfiy)
- Rang masshtabi (qat'iy)
- Kuchli musbat (~+1)
- Kuchsiz (~0)
- O'zi bilan (1.0 — ma'nosiz)
- Yo'q (o'qib bo'lmas — faqat rang)
- Yo'q (aloqa — 4.10)
- Ko'p sonni rang bilan (naqsh)
Vazifa 2: Xatolarni tuzating
1. sns.heatmap(df.corr(), cmap="viridis")
2. sns.heatmap(korr_20x20, annot=True)
3. sns.heatmap(df.corr()) # masshtab
4. # to'q qizil → sabab
5. sns.heatmap(korr, annot=True) # fmtJavoblar
1. cmap="coolwarm", center=0 (divergent)
2. cmap="coolwarm" (annot'siz)
3. vmin=-1, vmax=1, center=0
4. aloqa (sabab emas — 4.10)
5. fmt=".2f"Vazifa 3: Heatmap
Modellang:
- Matritsa rang bilan
- Naqsh
- Korrelyatsiya
- Bir qarashda
Vazifa 4: Parametrlar
Modellang:
- annot (son)
- cmap (rang)
- vmin/vmax (masshtab)
- center (markaz)
Vazifa 5: Talqin
Modellang:
- To'q (bog'liq)
- Och (mustaqil)
- Blok (guruh)
- Aloqa ≠ sabab
Vazifa 6: Integratsiya
Modellang:
- df.corr()
- Feature tanlash
- Seaborn
- Naqsh
Vazifa 7: O'ylash
Heatmap korrelyatsiya matritsasini rang bilan ko'rsatadi — ko'p o'zgaruvchi aloqasini bir qarashda. Lekin "to'q qizil" (kuchli korrelyatsiya) sababiyatni anglatmaydi 4.10-bob, va yashirin o'zgaruvchi ikki mustaqil o'zgaruvchini bog'liq ko'rsatishi mumkin. Nima uchun heatmap "gipoteza generatori" (tekshirish emas), va Data Scientist heatmap'dan qanday to'g'ri (va noto'g'ri) foydalanadi?
Javob
Qisqa javob: Heatmap korrelyatsiyani rang bilan (ko'p aloqa — bir qarashda), lekin gipoteza generatori (tekshirish emas), chunki to'q qizil ≠ sabab 4.10-bob, yashirin o'zgaruvchi aldaydi; Data Scientist to'g'ri (kashfiyot — qaysi o'rganish) va noto'g'ri (xulosa — sabab) ishlatadi: (1) heatmap ko'rsatadi — ko'p o'zgaruvchan korrelyatsiya (100 juftlik — rang; qaysi bog'liq (to'q), mustaqil (och)); bir qarashda (jadval qiyin); (2) korrelyatsiya ≠ sabab 4.10-bob — to'q qizil (kuchli aloqa) sabab emas (A→B, B→A, yoki C→ikkalasi; yashirin o'zgaruvchi — muzqaymoq/cho'kish ~ yoz); heatmap aloqani ko'rsatadi (sabab emas); (3) yashirin o'zgaruvchi — ikki mustaqil o'zgaruvchi (C ikkalasiga ta'sir — soxta korrelyatsiya; heatmap to'q, lekin bevosita emas); (4) chiziqli faqat — df.corr() (Pearson — chiziqli; nochiziqli (U shakl) — och, lekin kuchli aloqa; heatmap o'tkazib yuboradi — 4.9). "Nega gipoteza generatori": (a) kashfiyot — heatmap qiziq aloqa ko'rsatadi ("x-y to'q — nega?"; gipoteza — o'rganish yo'nalishi); (b) tekshirish emas — gipoteza eksperiment (nazorat tajriba — 4.10) yoki statistik test (gipoteza tekshirish — 4.12) bilan; heatmap boshlanish (yakun emas); (c) filtr — ko'p o'zgaruvchi (100 — hammasi tekshirib bo'lmas); heatmap saralaydi (qaysi to'q — birinchi o'rgan); (d) model uchun — feature tanlash (bog'liq xususiyat — model; ortiqcha (bir-biri bilan to'q — multikollinearlik) — tashla; 20-qism). "To'g'ri foydalanish": (1) kashfiyot (qaysi o'zgaruvchi bog'liq — o'rganish); (2) feature tanlash (model — bog'liq xususiyat; ortiqcha tashla); (3) EDA (ma'lumot tanish — birinchi qadam; 9-qism); (4) gipoteza (qiziq aloqa — keyin tekshir). "Noto'g'ri foydalanish": (1) sabab xulosa (to'q qizil → "sabab"; yo'q — 4.10); (2) chiziqli faraz (Pearson — nochiziqli o'tkazib; scatter bilan tekshir — 5.4); (3) yashirin o'zgaruvchi (soxta korrelyatsiya — C tekshir); (4) tasodifiy (ko'p juftlik — ba'zi tasodifiy to'q; p-qiymat — 4.12). Saboqlar: heatmap kashfiyot (gipoteza — o'rganish yo'nalishi), tekshirish emas (eksperiment/test); korrelyatsiya ≠ sabab (to'q ≠ sabab); yashirin o'zgaruvchi, chiziqli (nozik); to'g'ri (EDA, feature) noto'g'ri (sabab xulosa). To'g'ri: heatmap — aloqa kashfiyoti (gipoteza generatori; EDA, feature tanlash); tekshirish — eksperiment/test; sabab EMAS 4.10-bob. Muvozanat: heatmap kuchli (ko'p aloqa — bir qarashda) + cheklov (aloqa, sabab emas; chiziqli; kashfiyot). Bu Data Science tanqidiy fikr asosiy (heatmap — kashfiyot vosita; sabab emas — eksperiment; EDA/feature — to'g'ri; sabab xulosa — noto'g'ri). Heatmap — gipoteza generatori (kashfiyot, tekshirish emas).
1. Nega gipoteza generatori
- Kashfiyot (qiziq aloqa — o'rganish yo'nalishi)
- Tekshirish emas (eksperiment/test — 4.10, 4.12)
- Filtr (ko'p o'zgaruvchi — qaysi birinchi)
- Boshlanish (yakun emas)
2. To'g'ri vs noto'g'ri
| To'g'ri | Noto'g'ri |
|---|---|
| Kashfiyot (aloqa) | Sabab xulosa |
| Feature tanlash | Chiziqli faraz |
| EDA (tanish) | Yashirin o'zgaruvchi |
| Gipoteza | Tasodifiy to'q |
3. Cheklovlar
- Korrelyatsiya ≠ sabab (4.10)
- Chiziqli faqat (Pearson — 4.9)
- Yashirin o'zgaruvchi (soxta)
- Tasodifiy (ko'p juftlik)
4. Saboqlar
- Kashfiyot (gipoteza generatori)
- Tekshirish emas (eksperiment/test)
- Korrelyatsiya ≠ sabab (to'q ≠ sabab)
- To'g'ri (EDA/feature), noto'g'ri (sabab)
5. Xulosa
- Heatmap — aloqa kashfiyoti (gipoteza generatori)
- Tekshirish emas (eksperiment/test)
- Sabab EMAS (4.10 — yashirin o'zgaruvchi, chiziqli)
- To'g'ri (EDA, feature tanlash), noto'g'ri (sabab xulosa)
Nimani mustahkamlaydi: 2.5, 2.7-bo'limlar.
Xulosa
Bu darsda heatmap'ni o'rgandik.
Eng muhim uch fikr:
Heatmap va korrelyatsiya. Heatmap (issiqlik xaritasi) — 2D matritsani rang bilan (
sns.heatmap(matritsa)— 5.7; to'q katta, och kichik; naqsh bir qarashda). Data Science'da eng ko'p korrelyatsiya matritsasi uchun (df.corr()— 4.9):sns.heatmap(df.corr(), annot=True, cmap="coolwarm", vmin=-1, vmax=1, center=0)(to'q qizil kuchli musbat, to'q ko'k manfiy, och kuchsiz; feature tanlash — 20-qism).Parametrlar va masshtab.
annot=True(katakda son — rang + aniq;fmt=".2f"),cmap=(rang xaritasi — korrelyatsiya divergentcoolwarm+center=0; ketma-ketviridis),vmin/vmax(rang masshtabi — qat'iy; taqqoslash — korrelyatsiya-1..+1). Katta matritsa — annot'siz (faqat rang — o'qib bo'lmas),figsizekatta.Naqsh va talqin. Talqin: to'q (bog'liq), och (mustaqil), blok (guruh — o'xshash o'zgaruvchi), diagonal (o'zi — 1.0; e'tibor bermang). Heatmap — matritsa naqshini rang bilan (korrelyatsiya — eng ko'p; kashfiyot/gipoteza generatori — tekshirish emas). Tuzoqlar: cmap (divergent korrelyatsiya), annot (katta — o'qib bo'lmas), masshtab (qat'iy), sababiyat (aloqa ≠ sabab — 4.10; to'q qizil ≠ sabab), chiziqli (Pearson — nochiziqli o'tkazib yuboradi).
Keyingi darsda taqsimot grafiklari (KDE, violin)ni o'rganamiz: ma'lumot taqsimotini silliq egri bilan ko'rsatish — histogram 5.5-bobdan chiroyliroq, guruh taqqoslash (violinplot — box + shakl).
Izohlar (0)
Izoh yozish uchun kiring.
- Hozircha izoh yo'q. Birinchi bo'ling!