Skip to main content

Aggregation

Setelah mempelajari operasi aritmatika, broadcasting, dan vectorization pada NumPy, langkah berikutnya adalah mempelajari aggregation atau agregasi.

Agregasi adalah proses melakukan perhitungan terhadap sekumpulan data untuk menghasilkan nilai yang lebih ringkas atau representatif.

Contohnya:

  • Menghitung jumlah seluruh data.
  • Menghitung nilai rata-rata.
  • Mencari nilai terbesar.
  • Mencari nilai terkecil.
  • Mengukur penyebaran data menggunakan standar deviasi.
  • Mengukur variasi data menggunakan varians.

Agregasi sangat penting dalam Data Science dan Machine Learning karena sering digunakan untuk memahami dataset sebelum melakukan pemodelan.


Apa Itu Aggregation?

Aggregation adalah proses menggabungkan atau merangkum banyak nilai menjadi satu atau beberapa nilai statistik.

Misalnya terdapat array:

import numpy as np

a1 = np.array([1, 2, 3, 4, 5])

Kita dapat menghitung jumlah seluruh elemen:

np.sum(a1)

Hasilnya:

15

Lima angka:

1, 2, 3, 4, 5

diringkas menjadi satu nilai:

15

Itulah contoh sederhana dari agregasi.


Mengapa Aggregation Penting?

Dataset biasanya memiliki jumlah data yang cukup banyak sehingga sulit untuk memahami keseluruhan data hanya dengan melihat setiap nilai.

Agregasi membantu kita mendapatkan gambaran umum mengenai data.

Misalnya sebuah dataset memiliki data umur:

18, 20, 21, 19, 25, 30, 22, ...

Daripada melihat seluruh nilai satu per satu, kita dapat menghitung:

  • rata-rata umur,
  • umur minimum,
  • umur maksimum,
  • standar deviasi,
  • dan statistik lainnya.

Hasil agregasi tersebut dapat membantu kita memahami karakteristik dataset.

Dalam Machine Learning, proses ini sering menjadi bagian dari Exploratory Data Analysis (EDA).


sum() pada Python dan np.sum() pada NumPy

Python dan NumPy sama-sama menyediakan fungsi untuk menghitung jumlah data.

Python memiliki fungsi bawaan:

sum()

Sedangkan NumPy menyediakan:

np.sum()

Keduanya memiliki fungsi yang serupa, tetapi penggunaannya sebaiknya disesuaikan dengan jenis data yang sedang diproses.

Python List

Untuk Python list, kita dapat menggunakan sum():

python_list = [1, 2, 3]

print(sum(python_list))

Output:

6

NumPy Array

Untuk NumPy array, gunakan fungsi NumPy:

a1 = np.array([1, 2, 3])

print(np.sum(a1))

Output:

6

Rule of Thumb

Sebagai aturan praktis:

Jenis DataFungsi yang Umum Digunakan
Python Listsum()
NumPy Arraynp.sum()

NumPy menyediakan berbagai fungsi agregasi yang dirancang untuk bekerja dengan struktur array dan operasi numerik.


Performa np.sum()

Salah satu alasan NumPy banyak digunakan dalam Data Science adalah karena operasi numeriknya dioptimalkan untuk bekerja secara efisien pada array.

Untuk dataset yang besar, perbedaan performa antara operasi Python biasa dan operasi NumPy dapat menjadi signifikan.

Kita dapat melakukan percobaan sederhana menggunakan Jupyter Notebook.

massive_array = np.random.random(100000)

Kemudian gunakan %timeit:

%timeit sum(massive_array)

dan:

%timeit np.sum(massive_array)

%timeit merupakan magic command pada Jupyter/IPython yang digunakan untuk mengukur waktu eksekusi suatu kode.

Hasil waktu eksekusi dapat berbeda-beda tergantung:

  • Hardware komputer.
  • Versi Python.
  • Versi NumPy.
  • Ukuran array.
  • Kondisi sistem saat pengujian.

Karena itu, jangan menganggap angka tertentu seperti "500 kali lebih cepat" sebagai angka yang selalu berlaku.

Yang lebih penting adalah memahami bahwa NumPy dirancang untuk operasi numerik pada array dan umumnya jauh lebih efisien untuk pekerjaan numerik skala besar dibandingkan melakukan iterasi elemen menggunakan Python secara langsung.


Fungsi Agregasi pada NumPy

NumPy menyediakan berbagai fungsi agregasi yang sering digunakan dalam analisis data.

Beberapa di antaranya:

FungsiKegunaan
np.sum()Menghitung jumlah
np.mean()Menghitung rata-rata
np.max()Mencari nilai maksimum
np.min()Mencari nilai minimum
np.std()Menghitung standar deviasi
np.var()Menghitung varians

Contoh:

a2 = np.array([
[1., 2., 3.3],
[4., 5., 6.5]
])

Menghitung Jumlah dengan np.sum()

Gunakan np.sum() untuk menghitung jumlah seluruh elemen.

print(np.sum(a2))

Perhitungannya secara konsep:

1 + 2 + 3.3 + 4 + 5 + 6.5

Hasil:

21.8

Menghitung Rata-Rata dengan np.mean()

np.mean() digunakan untuk menghitung nilai rata-rata.

print(np.mean(a2))

Secara konsep:

Jumlah seluruh nilai
--------------------
Jumlah elemen

Pada contoh tersebut:

21.8 / 6 = 3.6333...

Sehingga hasilnya kira-kira:

3.63333333

Rata-rata sering digunakan untuk mendapatkan gambaran umum mengenai pusat suatu kumpulan data.


Mencari Nilai Maksimum dengan np.max()

Gunakan np.max() untuk mencari nilai terbesar.

print(np.max(a2))

Output:

6.5

Fungsi ini berguna ketika kita ingin mengetahui nilai tertinggi dalam dataset atau array.


Mencari Nilai Minimum dengan np.min()

Gunakan np.min() untuk mencari nilai terkecil.

print(np.min(a2))

Output:

1.0

Dengan demikian:

np.max(a2)

memberikan nilai terbesar, sedangkan:

np.min(a2)

memberikan nilai terkecil.


Standard Deviation

Standard deviation atau standar deviasi digunakan untuk mengukur seberapa tersebar data dari nilai rata-ratanya.

Gunakan:

np.std(a2)

Contoh:

print(np.std(a2))

Secara sederhana:

  • Standar deviasi kecil → data cenderung lebih dekat dengan rata-rata.
  • Standar deviasi besar → data cenderung lebih tersebar dari rata-rata.

Standar deviasi banyak digunakan dalam analisis statistik dan Data Science untuk memahami distribusi data.


Variance

Variance atau varians juga digunakan untuk mengukur penyebaran data.

Gunakan:

np.var(a2)

Contoh:

print(np.var(a2))

Varians dapat dipahami sebagai ukuran seberapa besar variasi data terhadap rata-ratanya.

Secara umum:

  • Varians kecil → data lebih terkonsentrasi di sekitar rata-rata.
  • Varians besar → data lebih tersebar.

Hubungan Variance dan Standard Deviation

Variance dan standard deviation memiliki hubungan yang sangat erat.

Rumusnya:

Standard Deviation = √Variance

Sebaliknya:

Variance = Standard Deviation²

Pada NumPy, hubungan tersebut dapat dibuktikan dengan:

print(np.sqrt(np.var(a2)) == np.std(a2))

Untuk data pada contoh tersebut, hasilnya secara matematis akan bernilai:

True

Namun, pada perhitungan floating-point tertentu, perbandingan menggunakan == dapat menghasilkan masalah presisi.

Untuk perbandingan numerik yang lebih aman, NumPy menyediakan:

np.isclose(
np.sqrt(np.var(a2)),
np.std(a2)
)

Hasil:

True

Memahami Variance dan Standard Deviation

Misalnya terdapat dua kelompok data:

Data A:
10, 10, 10, 10, 10

Data B:
2, 6, 10, 14, 18

Data A memiliki nilai yang sama sehingga penyebarannya sangat kecil.

Sementara Data B memiliki nilai yang lebih tersebar.

Secara konsep:

Data A

Penyebaran kecil

Variance kecil

Standard deviation kecil

Sedangkan:

Data B

Penyebaran besar

Variance besar

Standard deviation besar

Inilah alasan variance dan standard deviation berguna dalam analisis data.


Aggregation pada Array Multidimensi

Agregasi tidak hanya dapat dilakukan pada array satu dimensi.

Kita juga dapat melakukan agregasi pada array multidimensi.

Contohnya:

a2 = np.array([
[1, 2, 3],
[4, 5, 6]
])

Jika kita menjalankan:

np.sum(a2)

maka NumPy menghitung seluruh elemen:

1 + 2 + 3 + 4 + 5 + 6

Hasil:

21

Aggregation Berdasarkan Axis

Pada array multidimensi, kita juga dapat menentukan axis.

Contohnya:

np.sum(a2, axis=0)

Hasil:

[5 7 9]

Artinya NumPy menjumlahkan nilai berdasarkan arah axis yang ditentukan.

Secara konsep:

[1, 2, 3]
[4, 5, 6]

↓ axis=0

1 + 4 = 5
2 + 5 = 7
3 + 6 = 9

Hasilnya:

[5, 7, 9]

Sedangkan:

np.sum(a2, axis=1)

menghasilkan:

[ 6 15]

karena:

1 + 2 + 3 = 6
4 + 5 + 6 = 15

Pemahaman tentang axis akan menjadi sangat penting ketika bekerja dengan array multidimensi.


Contoh Beberapa Aggregation Sekaligus

Kita dapat menghitung beberapa statistik dari array yang sama.

a2 = np.array([
[1., 2., 3.3],
[4., 5., 6.5]
])

print("Sum:", np.sum(a2))
print("Mean:", np.mean(a2))
print("Max:", np.max(a2))
print("Min:", np.min(a2))
print("Std:", np.std(a2))
print("Var:", np.var(a2))

Dengan cara ini kita dapat memperoleh gambaran statistik dasar dari data.


Aggregation dalam Data Science

Agregasi merupakan bagian penting dari proses Exploratory Data Analysis (EDA).

Misalnya kita memiliki dataset penjualan:

ProdukHarga
A100
B150
C200
D125
E175

Kita dapat menghitung:

  • Total penjualan.
  • Rata-rata harga.
  • Harga tertinggi.
  • Harga terendah.
  • Penyebaran harga.

Informasi tersebut membantu kita memahami dataset sebelum melakukan proses lebih lanjut.

Dalam praktiknya, ketika bekerja dengan data berbentuk tabel, fungsi agregasi juga sering digunakan melalui Pandas.


Aggregation dalam Machine Learning

Agregasi juga sering muncul dalam Machine Learning.

Contohnya:

  • Menghitung rata-rata suatu fitur.
  • Mengukur penyebaran data.
  • Melakukan normalisasi.
  • Menghitung statistik dataset.
  • Membandingkan distribusi data.
  • Melakukan preprocessing.
  • Menghitung nilai statistik untuk evaluasi model.

Sebagai contoh, sebuah fitur mungkin memiliki nilai:

10, 12, 15, 20, 25

Kita dapat menghitung:

mean = np.mean(data)
std = np.std(data)

Nilai tersebut kemudian dapat digunakan untuk memahami karakteristik fitur atau menjadi bagian dari proses preprocessing tertentu.


Rule of Thumb

Beberapa aturan praktis yang perlu diingat:

KebutuhanGunakan
Menjumlahkan datanp.sum()
Menghitung rata-ratanp.mean()
Mencari nilai terbesarnp.max()
Mencari nilai terkecilnp.min()
Mengukur penyebarannp.std()
Mengukur variasinp.var()
Agregasi per arah tertentuGunakan parameter axis

Untuk NumPy array, biasakan menggunakan fungsi agregasi NumPy karena fungsi tersebut dirancang untuk bekerja dengan struktur array.


Kesalahan yang Sering Terjadi

Menganggap Semua Data Harus Dijumlahkan

Aggregation tidak hanya berarti sum.

Aggregation mencakup berbagai operasi untuk merangkum data, seperti:

np.sum()
np.mean()
np.max()
np.min()
np.std()
np.var()

Tidak Memahami Axis

Pada array multidimensi, hasil agregasi dapat berbeda tergantung axis.

Jika bingung, periksa terlebih dahulu:

print(a2.shape)

Kemudian pahami arah dimensi array tersebut.


Menganggap Standard Deviation dan Variance Sama

Keduanya berhubungan, tetapi bukan nilai yang sama.

Hubungannya:

Standard Deviation = √Variance

dan:

Variance = Standard Deviation²

Menggunakan Angka Performa sebagai Nilai Mutlak

Performa np.sum() dibandingkan sum() dapat berbeda tergantung kondisi.

Jangan menganggap suatu angka benchmark tertentu selalu berlaku.

Jika ingin membandingkan performa, lakukan pengukuran sendiri menggunakan:

%timeit

Workflow Aggregation

Workflow sederhana ketika melakukan agregasi data menggunakan NumPy:

Memiliki Dataset

Membuat NumPy Array

Memeriksa Shape

Menentukan Statistik

Memilih Fungsi Aggregation

Menentukan Axis Jika Diperlukan

Menginterpretasikan Hasil

Contohnya:

data = np.array([
[10, 20, 30],
[40, 50, 60]
])

print("Shape:", data.shape)
print("Total:", np.sum(data))
print("Mean:", np.mean(data))
print("Minimum:", np.min(data))
print("Maximum:", np.max(data))

Ringkasan

Pada materi ini kita telah mempelajari konsep aggregation pada NumPy.

Hal-hal penting yang perlu diingat:

  • Aggregation digunakan untuk merangkum sekumpulan data.
  • sum() merupakan fungsi bawaan Python.
  • np.sum() merupakan fungsi NumPy untuk menjumlahkan elemen array.
  • Untuk NumPy array, gunakan fungsi agregasi NumPy.
  • np.mean() digunakan untuk menghitung rata-rata.
  • np.max() digunakan untuk mencari nilai maksimum.
  • np.min() digunakan untuk mencari nilai minimum.
  • np.std() digunakan untuk menghitung standar deviasi.
  • np.var() digunakan untuk menghitung varians.
  • Standard deviation merupakan akar kuadrat dari variance.
  • Aggregation dapat dilakukan pada array multidimensi.
  • Parameter axis digunakan untuk menentukan arah agregasi.
  • Aggregation merupakan bagian penting dalam EDA dan Machine Learning.
  • .shape merupakan informasi penting ketika bekerja dengan aggregation pada array multidimensi.

Checklist Pembelajaran

Pastikan Anda sudah memahami:

  • Apa yang dimaksud dengan aggregation.
  • Perbedaan sum() dan np.sum().
  • Cara menghitung total array.
  • Cara menghitung rata-rata dengan np.mean().
  • Cara mencari nilai maksimum dengan np.max().
  • Cara mencari nilai minimum dengan np.min().
  • Apa yang dimaksud dengan standard deviation.
  • Apa yang dimaksud dengan variance.
  • Hubungan variance dan standard deviation.
  • Apa fungsi parameter axis.
  • Cara melakukan aggregation pada array multidimensi.
  • Mengapa aggregation penting dalam Data Science dan Machine Learning.

Latihan

Buat sebuah NumPy array berikut:

data = np.array([
[10, 20, 30],
[40, 50, 60],
[70, 80, 90]
])

Kemudian lakukan latihan berikut:

  1. Hitung jumlah seluruh elemen.
  2. Hitung rata-rata seluruh elemen.
  3. Cari nilai minimum.
  4. Cari nilai maksimum.
  5. Hitung standard deviation.
  6. Hitung variance.
  7. Hitung jumlah setiap kolom menggunakan axis=0.
  8. Hitung jumlah setiap baris menggunakan axis=1.
  9. Hitung rata-rata setiap kolom.
  10. Hitung rata-rata setiap baris.
  11. Periksa shape array.
  12. Gunakan %timeit untuk membandingkan sum() Python dengan np.sum() pada array yang besar.

Setelah mendapatkan hasil, jangan hanya melihat angkanya. Coba jelaskan apa arti setiap hasil aggregation terhadap dataset tersebut.