Menu
CoddyTech

Broadcasting

Termasuk bagian Data dan Plot dalam perjalanan Machine Learning di Coddy. Pelajaran 13 dari 60.

Model belajar lebih baik saat setiap fitur berada di sekitar 0. Jadi, kurangi setiap kolom dengan nilai rata-ratanya, lalu NumPy menyalin nilai rata-rata tersebut ke setiap baris:

Tabel 3 kali 2 berisi tinggi dan berat, dikurangi baris nilai rata-rata 170 dan 70 yang disalin ke ketiga baris, hasilnya adalah tabel yang telah dipusatkan: 0 dan -10, 10 dan 10, -10 dan 0

Dalam kode, untuk tinggi dan berat tiga orang:

data = np.array([[170, 60],
                 [180, 80],
                 [160, 70]])
print(data - data.mean(axis=0))

Ini mencetak:

[[  0. -10.]
 [ 10.  10.]
 [-10.   0.]]

Penyalinan itu disebut penyiaran. Tabel kini dipusatkan: setiap nilai menunjukkan seberapa jauh letaknya dari rata-rata kolomnya.

Rata-rata memiliki bentuk (2,): satu nilai untuk setiap kolom pada tabel (3, 2). Panjang lainnya akan menyebabkan error.

challenge icon

Tantangan

Mudah

Aplikasi kebugaran memusatkan setiap tabel sebelum latihan. Kode awal memanggil center pada dua tabel, users (3 fitur) dan workouts (2), lalu mencetak hasilnya. Saat ini, center mengembalikan tabel tanpa perubahan.

Lengkapi center agar fungsi tersebut mengurangi nilai rata-rata setiap kolom dari kolom itu, untuk berapa pun jumlah kolomnya. Biarkan baris-baris di bawahnya tetap seperti semula.

Dengan dua pengguna dan dua latihan, outputnya akan terlihat seperti ini:

Centered users:
[[-6.  7. -5.]
 [ 6. -7.  5.]]
Column means after centering: [0. 0. 0.]
Centered workouts:
[[-10. -90.]
 [ 10.  90.]]
Column means after centering: [0. 0.]

Coba sendiri

import numpy as np


def center(table):
    # Kembalikan table dengan rata-rata setiap kolom dikurangkan
    # Tulis kodemu di bawah ini
    return table


# Satu baris untuk setiap pengguna: usia, detak jantung saat istirahat, menit berolahraga per hari
users = np.array([[25, 62, 30],
                  [31, 70, 45],
                  [40, 58, 20],
                  [29, 66, 25]])
# Satu baris untuk setiap sesi olahraga: menit, kalori yang terbakar
workouts = np.array([[30, 240],
                     [45, 410],
                     [20, 150],
                     [60, 520],
                     [35, 300]])

# Jangan ubah baris-baris di bawah ini
print("Centered users:")
print(center(users))
print("Column means after centering:", np.round(center(users).mean(axis=0), 2))
print("Centered workouts:")
print(center(workouts))
print("Column means after centering:", np.round(center(workouts).mean(axis=0), 2))
quiz iconUji dirimu

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

Semua pelajaran di Data dan Plot

Latihan sendiri: Compiler Python online