Menu
CoddyTech

Varians dan Simpangan Baku

Termasuk bagian Statistik untuk ML dalam perjalanan Machine Learning di Coddy. Pelajaran 3 dari 64.

.std() adalah jarak tipikal dari rata-rata. Di sini, nilainya dihitung secara manual untuk lima shot espresso:

Lima shot espresso sebagai titik-titik di sekitar garis rata-rata berwarna oranye pada 26 detik. Sebatang garis abu-abu menghubungkan setiap titik ke garis tersebut, dengan label deviasinya: -2, +1, -1, +4 dan -2

Setiap selisih dari rata-rata adalah deviasi. Semuanya saling meniadakan hingga hasilnya 0, jadi kuadratkan, lalu hitung rata-ratanya: varians.

shots = np.array([24, 27, 25, 30, 24])
deviations = shots - shots.mean()
variance = (deviations ** 2).mean()
print(deviations)
print(variance, np.round(np.sqrt(variance), 2))

Ini mencetak:

[-2.  1. -1.  4.  -2.]
5.2 2.28

Akar kuadratnya, yaitu simpangan baku, mengubah detik kuadrat kembali menjadi detik: 2.28. np.var(a) dan np.std(a) masing-masing melakukannya dalam satu pemanggilan.

Fitur dengan std sebesar 0 tidak pernah berubah, jadi tidak memberi tahu model apa pun.

challenge icon

Tantangan

Mudah

Kontrol kualitas memeriksa seberapa merata mesin mengisi botol jus. Kode awal membaca enam volume dalam ml dan mencetak nilai yang dikembalikan oleh spread_by_hand(a), berdampingan dengan np.std. Lengkapi fungsi itu agar mengembalikan:

  1. varians: rata-rata kuadrat deviasi dari rata-rata a,
  2. simpangan baku, yaitu akar kuadratnya.

Untuk volume 1004, 996, 1011, 993, 1002, dan 998:

Variance: 34.56 ml squared
Std: 5.88 ml
Same as np.std: True

Coba sendiri

import numpy as np

values = []
for i in range(6):
    values.append(int(input()))
volumes = np.array(values)


# Mengembalikan varians dan simpangan baku dari array a
def spread_by_hand(a):
    # Tulis kodemu di sini, lalu kembalikan kedua nilai untuk menggantikan 0, 0
    return 0, 0


# Jangan ubah baris-baris di bawah ini
variance, std = spread_by_hand(volumes)
print(f"Variance: {np.round(variance, 2)} ml squared")
print(f"Std: {np.round(std, 2)} ml")
print("Same as np.std:", np.round(std, 2) == np.round(np.std(volumes), 2))
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Statistik untuk ML

Latihan sendiri: Compiler Python online