IlmHamroh
Data Science va sun'iy intellekt/Vizualizatsiya6/14-dars18 daqiqa
Mundarija (22)

5.6-dars: Box plot

5-QISM — VIZUALIZATSIYA · 6-dars


1. Kirish va motivatsiya

Box plot (quti diagramma) — taqsimotni beshtalik xulosa 4.4-bob bilan ixcham ko'rsatuvchi grafik: median, kvartillar (Q1, Q3), va outlier'lar. Quti Q1 dan Q3 gacha (o'rta 50%), ichidagi chiziq — median, "mo'ylovlar" (whiskers) — asosiy diapazon, chetdagi nuqtalar — outlier. Box plot histogramdan kamroq detal beradi, lekin guruhlarni taqqoslashda tengsiz: 10 shahar maoshini yonma-yon (10 quti) — median, tarqoqlik, outlier bir qarashda. Nega muhim? (1) Ixcham taqsimot — 5 son (median, kvartil, outlier); (2) Guruh taqqoslash — ko'p quti yonma-yon; (3) Outlier — chetdagi nuqtalar aniq. Bu dars box plotni chuqur o'rgatadi — taqsimotni ixcham ko'rsatish va taqqoslash.

Box plot — taqsimot beshtalik xulosa: ax.boxplot (quti — Q1/median/Q3/mo'ylov/outlier), beshtalik xulosa (min, Q1, median, Q3, max — 4.4), quti (Q1-Q3 — o'rta 50%, IQR), mo'ylov (whisker — asosiy diapazon, 1.5*IQR), outlier (chetdagi nuqta), guruh taqqoslash (ko'p quti yonma-yon). Foydalanish: ixcham taqsimot, guruh taqqoslash, outlier. Bu 4.4 (kvartil), 5.5 (histogram) bilan bog'liq. Box plot — beshtalik xulosa. Guruh. Outlier.

Real vaziyat. Data Scientist 10 shahar maoshini taqqosladi: ax.boxplot([shahar1, shahar2, ...]) — har shahar bir quti (median chiziq — o'rta maosh; quti — o'rta 50%; mo'ylov — diapazon; nuqtalar — outlier). Bir qarashda: Toshkent median yuqori (chiziq baland), tarqoqlik katta (quti keng); ba'zi shaharda outlier (juda yuqori maosh — direktor). Histogram (bir shahar — detal shakl) vs box plot (10 shahar — taqqoslash, ixcham). Outlier (chetdagi nuqta — 1.5*IQR, 4.4). Box plot guruhlarni taqqosladi (median/tarqoqlik/outlier — bir qarashda). Box plot — taqqoslash ko'zi (ixcham, guruh).

Bu darsda box plotni o'rganamiz.

Bu darsda:

  • Box plot (boxplot)
  • Box plot qismlari (quti, mo'ylov, outlier)
  • Guruh taqqoslash
  • Box plot vs histogram
  • Outlier ko'rsatish
  • Box plot amaliyoti
  • Box plot tuzoqlari
  • Amaliy: box plot modeli

ℹ Misollar real matplotlib/numpy bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.


2. Nazariya — chuqur tushuntirish

2.1. Box plot (boxplot)

Taqsimot 5 son bilan:

python
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
data = np.random.normal(50, 15, 200)

fig, ax = plt.subplots()
ax.boxplot(data)     # quti: Q1/median/Q3/mo'ylov/outlier

ax.set_ylabel("Qiymat")

Box plot (boxplot) — taqsimot beshtalik xulosa: ax.boxplot(data) (quti — median, kvartillar (Q1/Q3), mo'ylov, outlier; 4.4 beshtalik xulosa). Sabab: taqsimotni ixcham ko'rsatish (5 son — median markaz, kvartil tarqoqlik, outlier chet; histogram — detal, box plot — ixcham); guruh taqqoslash (ko'p quti — bir qarashda). ax.boxplot(data) (bir quti) yoki ax.boxplot([a, b, c]) (ko'p — taqqoslash). Box plot beshtalik xulosani vizual (4.4 — min/Q1/median/Q3/max). Box plot — boxplot (beshtalik xulosa). Ixcham. Guruh.

2.2. Box plot qismlari

Quti, mo'ylov, outlier:

BOX PLOT QISMLARI:
   ┬  ← yuqori mo'ylov (Q3 + 1.5*IQR gacha)
   │
  ┌─┐ ← Q3 (75%)
  │ │ ← QUTI (o'rta 50% — IQR)
  ├─┤ ← MEDIAN (50% — o'rta chiziq)
  │ │
  └─┘ ← Q1 (25%)
   │
   ┴  ← past mo'ylov (Q1 - 1.5*IQR gacha)
   o  ← OUTLIER (mo'ylovdan tashqari — chetdagi nuqta)

Box plot qismlari — quti, mo'ylov, outlier: quti (box — Q1 dan Q3 gacha, o'rta 50% — IQR 4.4), median chiziq (quti ichida — 50%, markaz), mo'ylov (whisker — quti'dan chiziqlar; asosiy diapazon — 1.5*IQR gacha), outlier (mo'ylovdan tashqari — chetdagi nuqta, 4.4). Sabab: box plot beshtalik xulosani ko'rsatadi (quti — kvartil/IQR; median — markaz; mo'ylov — diapazon; outlier — chet); har qism ma'no (quti balandlik — tarqoqlik; median joyi — markaz; outlier — chet). Box plot qismlari — quti (Q1-Q3), median, mo'ylov (1.5*IQR), outlier. Beshtalik. Qism.

2.3. Guruh taqqoslash

Ko'p quti yonma-yon:

python
import matplotlib.pyplot as plt
import numpy as np

np.random.seed(0)
shahar1 = np.random.normal(500, 100, 200)
shahar2 = np.random.normal(400, 80, 200)
shahar3 = np.random.normal(600, 150, 200)

fig, ax = plt.subplots()
ax.boxplot([shahar1, shahar2, shahar3], tick_labels=["T", "S", "B"])

# har shahar — bir quti (median, tarqoqlik, outlier taqqoslash)

Guruh taqqoslash — ko'p quti yonma-yon: ax.boxplot([a, b, c], tick_labels=[...]) (har guruh bir quti — yonma-yon; taqqoslash). Sabab: box plot eng kuchli guruh taqqoslashda (10 shahar maoshi — 10 quti; median/tarqoqlik/outlier bir qarashda); histogram (bir taqsimot — detal; ko'p — chalkash 5.5); box plot ixcham (ko'p guruh — yonma-yon, aniq). Taqqoslash: median (chiziq balandlik — qaysi katta), tarqoqlik (quti kengligi — qaysi keng), outlier (chet — qaysi). Guruh taqqoslash — ko'p quti (yonma-yon). Ixcham. Bir qarashda.

2.4. Box plot vs histogram

Box plot vs histogram — qachon qaysi: histogram (bir taqsimot — detal shakl: bimodal, aniq shakl; bir/ikki o'zgaruvchan), box plot (ixcham — 5 son: median/kvartil/outlier; guruh taqqoslash — ko'p yonma-yon). Sabab: turli maqsad — shakl detal (histogram — bimodal ko'rinadi; box plot bimodalni yashiradi — faqat median/kvartil), taqqoslash (box plot — ko'p guruh yonma-yon; histogram — 2-3 chalkash). Box plot kamchiligi: shakl detal yo'q (bimodal — box plot bir xil ko'rsatadi; histogram kerak). Box plot (taqqoslash, ixcham, outlier), histogram (shakl detal, bir taqsimot). Box plot vs histogram — ixcham/taqqoslash vs detal shakl. Qachon qaysi. Maqsad.

2.5. Outlier ko'rsatish

Outlier ko'rsatish — chetdagi nuqta: box plot outlierni avtomatik ko'rsatadi (mo'ylovdan tashqari — Q1-1.5*IQR past yoki Q3+1.5*IQR yuqori; 4.4; alohida nuqta). Sabab: box plot outlier aniqlash uchun ideal (IQR usuli — 4.4; chetdagi nuqta avtomatik); guruh outlier (ko'p quti — qaysi guruhda outlier). whis (mo'ylov uzunligi — standart 1.5; o'zgartirish mumkin). Outlier tekshirish (box plot — ko'r; xato yoki maxsus holat — tozalash 6-qism). Box plot outlier + taqsimot (bir grafikda). Outlier ko'rsatish — chetdagi nuqta (avtomatik, 1.5*IQR). Outlier. IQR.

2.6. Box plot amaliyoti

Box plot amaliyoti: ax.boxplot (beshtalik xulosa); qismlar (quti Q1-Q3, median, mo'ylov, outlier); guruh taqqoslash (ko'p quti — tick_labels); vs histogram (ixcham/taqqoslash vs detal); outlier (avtomatik — 1.5*IQR); Pandas/Seaborn (df.boxplot(), sns.boxplot() — tez, 5.7); bezash (title/label). Tuzoqlar: bimodal yashirinish (histogram kerak), kam ma'lumot (box plot ishonchsiz), outlier chegara (1.5 standart), tick_labels yo'q (qaysi quti). Amaliyot — boxplot, qismlar, guruh, outlier. Ixcham. Taqqoslash.

2.7. Box plot tuzoqlari

Box plot asosiy tuzoqlari: bimodal yashirinish (box plot shakl detal yo'q — bimodal (ikki cho'qqi) box plotda bir xil (median/kvartil — ikki cho'qqi ko'rinmaydi); histogram 5.5-bob shakl uchun; box plot + histogram); kam ma'lumot (kam nuqta — kvartil/median beqaror; box plot ishonchsiz; katta namuna); outlier chegara (1.5IQR — standart lekin qat'iy emas; kontekstga — ba'zan 3IQR; box plot standart 1.5); tick_labels yo'q (ko'p quti — qaysi guruh; tick_labels); median vs o'rtacha (box plot median (chiziq) — o'rtacha emas; qiyshiqda farqli 4.2); ustma-ust taqqoslash (box plot yonma-yon — yaxshi; lekin juda ko'p (50 quti) chalkash); taqsimot shakli (box plot — kvartil; shakl (normal? qiyshiq?) histogram/violin). Sabab: box plot shakl/ma'lumot nozik (bimodal yashirin, kam ma'lumot — jim xato). Yechim: histogram (shakl), katta namuna, tick_labels, median tushun. Tuzoqlar — bimodal, kam ma'lumot, outlier chegara, tick_labels.

2.8. Box plot — ixcham taqsimot va taqqoslash

Box plot asosiy g'oyasi — ixcham taqsimot va taqqoslash: taqsimotni beshtalik xulosa (4.4 — min/Q1/median/Q3/max) bilan ixcham ko'rsatadi (quti — kvartil/IQR; median — markaz; mo'ylov — diapazon; outlier — chet); guruh taqqoslashda tengsiz (ko'p quti yonma-yon — median/tarqoqlik/outlier bir qarashda). ax.boxplot (quti — 5 son), qismlar (quti Q1-Q3, median chiziq, mo'ylov 1.5*IQR, outlier), guruh taqqoslash (ko'p quti — tick_labels), outlier (avtomatik — IQR usuli 4.4). Box plot vs histogram: box plot (ixcham, taqqoslash, outlier — shakl detal yo'q, bimodal yashirin); histogram (detal shakl, bir taqsimot). Foydalanish: guruh taqqoslash (10 shahar — median/tarqoqlik), outlier (chet — tozalash 6-qism), ixcham taqsimot (5 son). Data Science'da keng (guruh taqqoslash — EDA 9-qism; outlier — tozalash). Bu 4.4 (kvartil, beshtalik xulosa) davomi (box plot — vizual) va 5.5 (histogram — shakl), 5.7 (seaborn — violin) bilan. Box plot — ixcham taqsimot va taqqoslash (beshtalik xulosa, guruh). Ixcham. Taqqoslash.


3. Tez ma'lumotnoma

python
import matplotlib.pyplot as plt

# BOX PLOT (beshtalik xulosa — 4.4):
fig, ax = plt.subplots()
ax.boxplot(data)

# QISMLAR:
#   quti — Q1 dan Q3 gacha (o'rta 50% — IQR)
#   median chiziq — 50% (markaz)
#   mo'ylov (whisker) — 1.5*IQR gacha (asosiy diapazon)
#   outlier — chetdagi nuqta (avtomatik)

# GURUH TAQQOSLASH (ko'p quti yonma-yon):
ax.boxplot([shahar1, shahar2, shahar3], tick_labels=["T", "S", "B"])

# BOX PLOT vs HISTOGRAM:
#   box plot — ixcham, taqqoslash, outlier (shakl detal YO'Q)
#   histogram — detal shakl (bimodal), bir taqsimot

# PANDAS/SEABORN (tez — 5.7):
df.boxplot(column="maosh", by="shahar")

QOIDA: guruh taqqoslash (box plot) · shakl (histogram) · outlier (1.5*IQR) · median

Box plot xulosasi

Box plot — ixcham taqsimot va taqqoslash (beshtalik xulosa)
Quti (Q1-Q3, IQR) · median chiziq · mo'ylov (1.5*IQR) · outlier
Guruh taqqoslash — ko'p quti yonma-yon (tengsiz)
vs histogram — ixcham/taqqoslash (box) vs detal shakl (hist)
Bimodal yashiradi (histogram kerak)

4. Batafsil misollar

Misollar real matplotlib/numpy bilan (Agg — grafik xususiyatlari matn bilan tekshiriladi) ishlaydi.

Misol 1 — Box plot

python
"""Box plot (real matplotlib/numpy)."""

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np


def main() -> None:
    np.random.seed(0)
    data = np.random.normal(50, 15, 200)

    fig, ax = plt.subplots()
    bp = ax.boxplot(data)

    print("=== 1. Box plot ===")
    print(f"  qutilar: {len(bp['boxes'])}")

    print("\n=== 2. Median ===")
    median_chiziq = bp["medians"][0].get_ydata()
    print(f"  median: {round(median_chiziq[0], 0)}")

    print("\n=== 3. Beshtalik xulosa ===")
    print(f"  Q1: {round(np.percentile(data, 25), 0)}")
    print(f"  median: {round(np.percentile(data, 50), 0)}")
    print(f"  Q3: {round(np.percentile(data, 75), 0)}")

    print("\n=== 4. Tushuntirish ===")
    print("  box plot — beshtalik xulosa (ixcham)")
    plt.close(fig)
    print("  ⭐ Box plot — beshtalik xulosa 4.4-bob")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Box plot ===
  qutilar: 1

=== 2. Median ===
  median: 51.0

=== 3. Beshtalik xulosa ===
  Q1: 39.0
  median: 51.0
  Q3: 62.0

=== 4. Tushuntirish ===
  box plot — beshtalik xulosa (ixcham)
  ⭐ Box plot — beshtalik xulosa (4.4)

Nima ko'rsatdi: 2.1, 2.2-bo'limlar.

Misol 2 — Guruh taqqoslash

python
"""Guruh taqqoslash: box plot (real matplotlib/numpy)."""

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np


def main() -> None:
    np.random.seed(0)
    shahar1 = np.random.normal(500, 100, 200)
    shahar2 = np.random.normal(400, 80, 200)
    shahar3 = np.random.normal(600, 150, 200)

    fig, ax = plt.subplots()
    bp = ax.boxplot([shahar1, shahar2, shahar3], tick_labels=["T", "S", "B"])

    print("=== 1. Uch quti ===")
    print(f"  qutilar: {len(bp['boxes'])}")

    print("\n=== 2. Medianlar ===")
    medianlar = [round(m.get_ydata()[0], 0) for m in bp["medians"]]
    print(f"  median (T, S, B): {medianlar}")

    print("\n=== 3. Eng yuqori median (B) ===")
    print(f"  eng yuqori: {['T','S','B'][medianlar.index(max(medianlar))]}")

    print("\n=== 4. Taqqoslash ===")
    print("  har shahar bir quti (median/tarqoqlik bir qarashda)")
    plt.close(fig)
    print("  ⭐ Guruh taqqoslash — ko'p quti yonma-yon")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Uch quti ===
  qutilar: 3

=== 2. Medianlar ===
  median (T, S, B): [np.float64(505.0), np.float64(388.0), np.float64(589.0)]

=== 3. Eng yuqori median (B) ===
  eng yuqori: B

=== 4. Taqqoslash ===
  har shahar bir quti (median/tarqoqlik bir qarashda)
  ⭐ Guruh taqqoslash — ko'p quti yonma-yon

Nima ko'rsatdi: 2.3-bo'lim.

Misol 3 — Outlier ko'rsatish

python
"""Outlier: box plot (real matplotlib/numpy)."""

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np


def main() -> None:
    np.random.seed(0)
    data = np.random.normal(50, 10, 100)
    data = np.append(data, [120, 130, 5])   # outlierlar

    fig, ax = plt.subplots()
    bp = ax.boxplot(data)

    print("=== 1. Outlierlar (fliers) ===")
    outlierlar = bp["fliers"][0].get_ydata()
    print(f"  outlier soni: {len(outlierlar)}")

    print("\n=== 2. Outlier qiymatlar ===")
    print(f"  outlierlar: {sorted([int(v) for v in outlierlar])}")

    print("\n=== 3. IQR chegarasi 4.4-bob ===")
    Q1, Q3 = np.percentile(data, 25), np.percentile(data, 75)
    IQR = Q3 - Q1
    print(f"  yuqori chegara: {round(Q3 + 1.5*IQR, 0)}")

    print("\n=== 4. Tushuntirish ===")
    print("  box plot outlierni avtomatik (1.5*IQR — 4.4)")
    plt.close(fig)
    print("  ⭐ Outlier — chetdagi nuqta (avtomatik)")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Outlierlar (fliers) ===
  outlier soni: 3

=== 2. Outlier qiymatlar ===
  outlierlar: [5, 120, 130]

=== 3. IQR chegarasi 4.4-bob ===
  yuqori chegara: 79.0

=== 4. Tushuntirish ===
  box plot outlierni avtomatik (1.5*IQR — 4.4)
  ⭐ Outlier — chetdagi nuqta (avtomatik)

Nima ko'rsatdi: 2.5-bo'lim.

Misol 4 — Box plot vs histogram (bimodal)

python
"""Box plot vs histogram: bimodal (real matplotlib/numpy)."""

import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import numpy as np


def main() -> None:
    np.random.seed(0)
    bimodal = np.concatenate([np.random.normal(30, 5, 500), np.random.normal(70, 5, 500)])

    print("=== 1. Bimodal ma'lumot ===")
    print(f"  ikki guruh: 30 va 70 atrofida")

    print("\n=== 2. Box plot (bimodal yashiradi) ===")
    fig, ax = plt.subplots()
    bp = ax.boxplot(bimodal)
    median = bp["medians"][0].get_ydata()[0]
    print(f"  median: {round(median, 0)} (~50 — ikki cho'qqi ko'rinmaydi)")
    plt.close(fig)

    print("\n=== 3. Histogram (bimodal ko'rsatadi) ===")
    fig, ax = plt.subplots()
    n, _, _ = ax.hist(bimodal, bins=20)
    print(f"  ikki cho'qqi: chap {int(n[:10].max())}, o'ng {int(n[10:].max())}")
    plt.close(fig)

    print("\n=== 4. Xulosa ===")
    print("  box plot ixcham (bimodal yashiradi), histogram shakl")
    print("  ⭐ Box plot vs histogram — ixcham vs detal shakl")


if __name__ == "__main__":
    main()

Natijaning muhim qismi:

text
=== 1. Bimodal ma'lumot ===
  ikki guruh: 30 va 70 atrofida

=== 2. Box plot (bimodal yashiradi) ===
  median: 49.0 (~50 — ikki cho'qqi ko'rinmaydi)

=== 3. Histogram (bimodal ko'rsatadi) ===
  ikki cho'qqi: chap 132, o'ng 142

=== 4. Xulosa ===
  box plot ixcham (bimodal yashiradi), histogram shakl
  ⭐ Box plot vs histogram — ixcham vs detal shakl

Nima ko'rsatdi: 2.4-bo'lim.


5. To'g'ri va noto'g'ri tushunishlar

Noto'g'ri fikr To'g'risi
"box plot shakl detal" Ixcham (bimodal yashiradi)
"box plot = histogram" Ixcham/taqqoslash vs detal
"quti — hamma ma'lumot" O'rta 50% (Q1-Q3)
"chiziq — o'rtacha" Median (50%)
"mo'ylov — hamma diapazon" 1.5*IQR (outlier tashqari)
"outlier qo'lda" Avtomatik (1.5*IQR)
"bir taqsimot uchun" Guruh taqqoslash (kuchli)
"kam ma'lumot OK" Beqaror (katta namuna)

6. Keng tarqalgan xatolar va yechimlari

1. Bimodal yashirinishi

python
ax.boxplot(bimodal)   # ikki cho'qqi ko'rinmaydi              # ⚠️
ax.hist(bimodal)   # shakl (histogram — 5.5)                  # ✅

2. Kam ma'lumot

python
ax.boxplot([1, 2, 3])   # beqaror (kvartil)                   # ⚠️
# katta namuna (ishonchli)                                    # ✅

3. tick_labels yo'q

python
ax.boxplot([a, b, c])   # qaysi quti qaysi                    # ⚠️
ax.boxplot([a, b, c], tick_labels=["A", "B", "C"])            # ✅

4. Median vs o'rtacha

python
# box plot chiziq — o'rtacha deb                              # ⚠️
# median (50% — qiyshiqda farqli 4.2)                         # ✅

5. Juda ko'p quti

python
ax.boxplot([50 guruh])   # chalkash                           # ⚠️
# kam guruh yoki saralab (top N)                              # ✅

6. Shakl uchun box plot

python
ax.boxplot(data)   # shakl (normal? qiyshiq?)                 # ⚠️
ax.hist(data)   # histogram (shakl — 5.5)                      # ✅

7. Outlier chegara

python
# 1.5*IQR qat'iy deb                                          # ⚠️
# whis= (kontekst — ba'zan 3*IQR)                              # ✅

7. Integratsiya — bu bilim qayerda kerak bo'ladi

  • 4.4-dars (o'tilgan): Kvartil, beshtalik xulosa, IQR
  • 5.5-dars (o'tilgan): Histogram (shakl)
  • 5.7-dars: Seaborn (boxplot, violin)
  • 6-qism: Tozalash (outlier — IQR)
  • 9-qism (reja): EDA (guruh taqqoslash)

8. Eng yaxshi amaliyotlar

  1. ax.boxplot — beshtalik xulosa 4.4-bob.

  2. Guruh taqqoslash — ko'p quti (kuchli).

  3. Shakl — histogram (box plot bimodal yashiradi).

  4. tick_labels — qaysi quti.

  5. Outlier — avtomatik (1.5*IQR).

  6. Median (chiziq — o'rtacha emas).

  7. Katta namuna (kvartil barqaror).

  8. Box plot — ixcham taqsimot va taqqoslash.


9. Amaliy topshiriq

Vazifa 1: Bashorat qiling

python
1.  # box plot nima?
2.  # quti nima?
3.  # chiziq nima?
4.  # mo'ylov nima?
5.  # outlier qanday?
6.  # guruh taqqoslash?
7.  # box plot vs histogram?
8.  # bimodal ko'rinadimi?
9.  # kam ma'lumot?
10. # tick_labels?
11. # chiziq o'rtachami?
12. # nega box plot muhim?
Javoblar
  1. Ixcham taqsimot (beshtalik xulosa)
  2. Q1 dan Q3 gacha (o'rta 50%)
  3. Median (50%)
  4. 1.5*IQR gacha (diapazon)
  5. Chetdagi nuqta (avtomatik)
  6. Ko'p quti yonma-yon
  7. Ixcham/taqqoslash vs detal shakl
  8. Yo'q (yashiradi — histogram)
  9. Beqaror (katta namuna)
  10. Qaysi quti qaysi guruh
  11. Yo'q (median)
  12. Ixcham taqsimot, guruh taqqoslash

Vazifa 2: Xatolarni tuzating

python
1.  ax.boxplot(bimodal)   # ikki cho'qqi

2.  ax.boxplot([1, 2, 3])   # kam

3.  ax.boxplot([a, b, c])   # qaysi quti

4.  # box plot chiziq = o'rtacha

5.  ax.boxplot(data)   # shakl
Javoblar
python
1.  ax.hist(bimodal) (shakl)

2.  katta namuna

3.  tick_labels=["A", "B", "C"]

4.  median (o'rtacha emas)

5.  ax.hist(data) (histogram)

Vazifa 3: Box plot

Modellang:

  1. Beshtalik
  2. Quti
  3. Median
  4. Ixcham

Vazifa 4: Qismlar

Modellang:

  1. Quti (Q1-Q3)
  2. Median
  3. Mo'ylov
  4. Outlier

Vazifa 5: Taqqoslash

Modellang:

  1. Ko'p quti
  2. Yonma-yon
  3. tick_labels
  4. Bir qarashda

Vazifa 6: vs histogram

Modellang:

  1. Ixcham
  2. Detal shakl
  3. Taqqoslash
  4. Bimodal

Vazifa 7: O'ylash

Box plot taqsimotni 5 son bilan ixcham ko'rsatadi va guruhlarni taqqoslashda tengsiz, lekin bimodal (ikki cho'qqili) taqsimotni yashiradi (histogram uni ochadi). Nima uchun box plot va histogram bir-birini to'ldiradi (biri ixcham/taqqoslash, biri detal shakl), va nega "har grafik turining o'z kuchi va kamchiligi bor" degan tushuncha muhim?

Javob

Qisqa javob: Box plot va histogram bir-birini to'ldiradi, har grafik turining kuchi/kamchiligi bor, chunki: (1) box plot — ixcham/taqqoslash — box plot 5 son (median/kvartil/outlier — ixcham); ko'p guruh yonma-yon (10 quti — taqqoslash; kam joy); lekin shakl detal yo'q (bimodal — median/kvartil bir xil, ikki cho'qqi ko'rinmaydi); (2) histogram — detal shakl — histogram butun taqsimot (har oraliq — shakl; bimodal ikki cho'qqi ko'rinadi); lekin taqqoslash qiyin (ko'p histogram — chalkash; ko'p joy); (3) to'ldiradi — box plot (ixcham, taqqoslash — kamchiligi shakl) + histogram (shakl detal — kamchiligi taqqoslash); birga to'liq (histogram — bir taqsimot shakl; box plot — guruh taqqoslash). "Nega har grafik kuchi/kamchiligi": (a) har grafik maqsad — chiziqli (vaqt — 5.2), bar (kategoriya — 5.3), scatter (aloqa — 5.4), histogram (taqsimot shakl — 5.5), box plot (ixcham taqqoslash — 5.6); har biri o'z ishi (universal grafik yo'q); (b) kamchilik muqarrar — ixcham (box plot) → detal yo'q; detal (histogram) → taqqoslash qiyin; savdo (ixcham vs detal); (c) to'g'ri tanlov — maqsadga grafik (taqqoslash — box plot; shakl — histogram; aloqa — scatter; vaqt — chiziqli); noto'g'ri grafik yashiradi (bimodal box plot — yashirin); (d) ko'p grafik — bir ma'lumotni ko'p grafik bilan (box plot + histogram — to'liq; bir grafik yetmaydi). Saboqlar: box plot ixcham/taqqoslash (shakl yo'q); histogram detal shakl (taqqoslash qiyin); to'ldiradi (birga to'liq); har grafik kuchi/kamchiligi (maqsadga tanlov). To'g'ri: maqsadga grafik (taqqoslash — box plot; shakl — histogram); ko'p grafik (to'liq). Muvozanat: ixcham (box plot — taqqoslash) + detal (histogram — shakl); to'ldiradi (birga). Bu vizualizatsiya asosiy (har grafik o'z kuchi — maqsadga tanlov; noto'g'ri grafik yashiradi; ko'p grafik — to'liq rasm). Box plot + histogram — to'ldiruvchi (ixcham + detal).

1. Nega box plot ixcham/taqqoslash

  • 5 son (median/kvartil — ixcham)
  • Ko'p guruh yonma-yon (taqqoslash)
  • Kamchilik: shakl detal yo'q (bimodal yashirin)

2. Nega histogram detal shakl

  • Butun taqsimot (har oraliq — shakl)
  • Bimodal ko'rinadi (ikki cho'qqi)
  • Kamchilik: taqqoslash qiyin (ko'p — chalkash)

3. Nega to'ldiradi

  • Box plot (taqqoslash) + histogram (shakl)
  • Birga to'liq (bir taqsimot shakl + guruh)
  • Har grafik maqsad (o'z ishi)

4. Box plot vs histogram

Box plot Histogram
Ixcham (5 son) Detal (shakl)
Guruh taqqoslash Bir taqsimot
Bimodal yashirin Bimodal ko'rinadi

5. Saboqlar

  1. Box plot ixcham/taqqoslash (shakl yo'q)
  2. Histogram detal shakl (taqqoslash qiyin)
  3. To'ldiradi (birga to'liq)
  4. Har grafik kuchi/kamchiligi (maqsadga)

6. Xulosa

  1. Box plot ixcham/taqqoslash (kamchilik shakl)
  2. Histogram detal shakl (kamchilik taqqoslash)
  3. To'ldiradi (birga to'liq)
  4. Har grafik maqsad (to'g'ri tanlov)

Nimani mustahkamlaydi: 2.4, 2.7-bo'limlar.


Xulosa

Bu darsda box plotni o'rgandik.

Eng muhim uch fikr:

  1. Box plot va qismlar. Box plot (ax.boxplot(data)) — taqsimotni beshtalik xulosa 4.4-bob bilan ixcham ko'rsatadi. Qismlar: quti (Q1 dan Q3 — o'rta 50%, IQR), median chiziq (quti ichida — 50%, markaz; o'rtacha emas), mo'ylov (whisker — 1.5*IQR gacha, asosiy diapazon), outlier (mo'ylovdan tashqari — chetdagi nuqta, avtomatik).

  2. Taqqoslash va outlier. Guruh taqqoslash — ko'p quti yonma-yon (ax.boxplot([a, b, c], tick_labels=[...]); 10 shahar — median/tarqoqlik/outlier bir qarashda; box plot tengsiz taqqoslashda). Outlier — avtomatik (1.5*IQR — 4.4; chetdagi nuqta; guruh outlier). Box plot outlier aniqlash uchun ideal (IQR usuli).

  3. Ixcham vs detal. Box plot vs histogram — box plot (ixcham, guruh taqqoslash, outlier — shakl detal yo'q, bimodal yashiradi); histogram (detal shakl — bimodal ko'rinadi, bir taqsimot; taqqoslash qiyin). To'ldiradi (biri ixcham/taqqoslash, biri detal — birga to'liq; har grafik kuchi/kamchiligi — maqsadga tanlov). Box plot — ixcham taqsimot va taqqoslash (beshtalik xulosa, guruh). Data Science'da keng (guruh taqqoslash — EDA 9-qism; outlier — tozalash 6-qism). Bu 4.4 (kvartil) davomi (vizual) va 5.5 (histogram), 5.7 (seaborn — violin) bilan. Tuzoqlar: bimodal yashirinish (histogram), kam ma'lumot (beqaror), tick_labels, median vs o'rtacha.

Keyingi darsda Seabornni o'rganamiz: Matplotlib ustida qurilgan yuqori darajali kutubxona — chiroyli grafiklar, statistik vizualizatsiya (regplot, violinplot) kam kod bilan.

Ulashish:Telegram'da

Izohlar (0)

Izoh yozish uchun kiring.

  • Hozircha izoh yo'q. Birinchi bo'ling!
5.6-dars: Box plot — IlmHamroh