Anda di halaman 1dari 10

Artificial Intelligence

Deep Learning
Artificial Neural Network (ANN)

Nama : Chintya Ang


NIM : 2155301027
Kelas : 2 TI A
Dosen Pengampu : Dr. Juni Nurma Sari, S.Kom., M.MT

Program Studi Teknik Informatika


Politeknik Caltex Riau
T.A 2022/2023
Implementasi ANN di Python
Mendeteksi cuaca hujan atau tidak
Dataset : seattleWeather_1948-2017.csv
Dataset terdiri dari 5 kolom yakni :
• DATE = tanggal pengamatan
• PRCP = jumlah curah hujan, dalam inci
• TMAX = suhu maksimum pada hari itu, dalam Fahrenheit
• TMIN = suhu minimum pada hari itu, dalam Fahrenheit
• HUJAN = ‘True’ jika hujan diamati pada hari itu, ‘False’ jika tidak

Penjelasan :
Line 1 : NumPy menyediakan struktur data array multidimensi yang efisien, serta fungsi-
fungsi matematika dan operasi array yang cepat.
Line 2 : Pandas untuk manipulasi dan analisis data, menyediakan struktur data yang efisien
dan fleksibel.
Line 3 : Matplotlib membuat grafik untuk visualisasi.
Line 4 : Seaborn merupakan library untuk visualisasi data dengan antarmuka tingkat tinggi
di atas library Matplotlib. Library ini menyediakan fungsi-fungsi dan fitur-fitur
untuk membuat plot yang lebih menarik dan informatif.

Penjelasan :
Block code tersebut digunakan untuk mengimport file dari local drive ke google colab. Dalam
hal ini, file yang dimaksud yakni seattleWeather_1948-2017.csv yang digunakan sebagai
dataset.
Penjelasan :
Line 1 : Menggunakan function read_csv( ) dalam library pandas untuk membaca file csv.
Setelah code berhasil dieksekusi, data dari file CSV akan dibaca dan disimpan dalam
sebuah DataFrame dengan variabel df.
Line 2 : Menampilkan 5 baris data awal dalam df.

Penjelasan :
Line 2 : Untuk mengatur ukuran gambar plot (grafik) menjadi 14 inci lebar dan 6 inci tinggi.
Line 3 : Menampilkan plot garis untuk kolom ‘TMAX’ dalam DataFrame df. Dalam hal ini,
nilai ‘TMAX’ sebagai nilai pada sumbu y. Sedangkan sumbu x akan mewakili
indeks data pada DataFrame df yang merupakan urutan bilangan bulat yang secara
otomatis diberikan oleh Pandas saat memuat data.
Penjelasan :
Line 2 : Untuk mengatur ukuran gambar plot (grafik) menjadi 12 inci lebar dan 7 inci tinggi.
Line 3 : Menggunakan function boxplot() pada sns untuk membuat box plot. Penggunaan
function ini disertakan dengan beberapa parameter diantaranya :
• x = ‘RAIN’, berarti sumbu x akan mewakili nilai pada kolom ‘RAIN’.
• y = ‘TMAX’, berarti sumbu y akan mewakili nilai pada kolom ‘TMAX’.
• data = df, berarti df merupakan DataFrame yang digunakan untuk mengambil
data.
• pallete = ‘winter’, untuk menentukan palet warna yang digunakan dalam box
plot.
Pada box plot, garis vertikal di tengah kotak mewakili median (nilai tengah) dari
data. Kotak di sekitar median melambangkan rentang interkuartil (IQR), yaitu
rentang antara kuartil pertama (Q1) dan kuartil ketiga (Q3). Garis horizontal di
tengah kotak merupakan medcouple dan digunakan untuk mendeteksi asimetri data.
Garis-garis melintang (whiskers) yang menextend dari kotak menunjukkan rentang
data di luar IQR. Pencilan (outlier) yang berada di luar rentang ini ditandai sebagai
titik-titik yang terletak di luar garis-garis whiskers. (Sumber : ChatGPT)
Penjelasan :
Line 2 : Untuk membuat histogram dari kolom ‘PRCP’ dalam DataFrame df. Beberapa
parameter yang diperlukan untuk menggunakan function ini diantaranya :
• kind = ‘hist’, berarti jenis plot yang akan dibuat adalah histogram.
• bins = ‘30’, berarti data akan dibagi menjadi 30 interval.
• color = ‘orange’, bearti histogram akan ditampilkan dengan warna orange.
• figsize = (16,7), berarti histogram ditampilkan dengan ukuran 16 inci panjang
dan 7 inci lebar.

Penjelasan :
Menampilkan informasi tentang DataFrame df yang meliputi jumlah baris dan jumlah kolom
dalam DataFrame, daftar nama kolom beserta tipe datanya, dan jumlah nilai non-null dalam
setiap kolom.
Dari sini, dapat dilihat bahwa kolom ‘PRCP’ dan ‘RAIN’ terdapat nilai null karena jumlah nilai
non-null nya tidak sama dengan kolom lainnya.
Penjelasan :
Function dropna() digunakan untuk menghapus baris yang mengandung nilai kosong pada
DataFrama df.
Oleh karena itu, ketika kita mengeksekusi perintah df.info() kembali, maka nilai non-null pada
setiap kolom akan berkurang mengikuti jumlah kolom yang awalnya terdapat nilai null.

Penjelasan :
Code ini akan menghasilkan kolom baru dengan nama ‘rain’ pada DataFrame df. Kolom ini
akan berisikan nilai 1 jika RAIN = ‘True’ dan akan berisikan nilai 0 jika RAIN = ‘False’.

Penjelasan :
Import modul train_test_split dari library sklearn untuk membagi dataset menjadi data train
dan data test secara acak.

Penjelasan :
Line 2 : Mendefinisikan variabel X sebagai variabel independen (inputan). Kolom-kolom
yang akan menjadi nilai x yakni ‘PRCP’, ‘TMAX’, ‘TMIN’.
Line 3 : Mendefinisikan variabel y sebagai variabel dependen (target data). Kolom yang akan
menjadi nilai y yakni ‘rain’.

Penjelasan :
Line 1 : Perintah ini digunakan untuk membagi dataset menjadi data train dan data test.
Dimana penggunaan function ini juga diikuti oleh beberapa parameter diantaranya :
• X, merupakan variabel independen (inputan).
• y, merupakan variabel dependen atau dapat disebut variabel target.
• test_size=0.2, berarti 20% dari total dataset akan digunakan sebagai data test.
Dan berarti juga 80% dari total dataset akan digunakan sebagai data train.
• random_state=41, digunakan agar hasil yang dihasilkan setiap menjalankan
kode konsisten.

Penjelasan :
Line 1 : Mengimport modul StandardScaler dari library sklearn untuk melakukan
preprocessing data dengan standarisasi mengubah data agar memiliki rata-rata nol
dan varians satu
Line 2 : Membuat objek StandardScaler() dengan nama scaler.
Line 3 : Inputan dataset yang ingin dilakukan penskalaan yaitu xtrain.

Penjelasan :
Menerapkan transformasi penskalaan yang sama yang telah dipelajari dari xtrain ke xtest.

Penjelasan :
Line 2 : Mengimport modul Sequential dari library keras untuk untuk membangun ANN
secara berurutan.
Line 3 : Mengimport modul Dense dari library keras untuk salah satu jenis layer yang
digunakan dalam jaringan saraf tiruan.

Penjelasan :
Line 2 : Objek model Sequential untuk membangun ANN yang disimpan dalam variabel
dengan nama ann.
Line 3 : Menambahkan layer Dense pertama ke model. Layer ini memiliki 32 unit neuron.
Function ini juga diikuti dengan beberapa parameter untuk mengatur aktivasi dan
input_dim.
Line 4 : Menambahkan layer Dense kedua ke model. Layar ini memiliki 16 unit neuron
dengan menggunakan aktivasi relu.
Line 5 : Menambahkan layer Dense ketiga ke model. Layer ini memiliki 1 unit neuron dengan
menggunakan aktivasi sigmoid.
Line 6 : Mengompilasi model dengan konfigurasi optimizer Adam, MSE, dan accuracy.

Penjelasan :
Digunakan untuk melatih model ANN menggunakan data train. Beberapa parameter yang perlu
disertakan dalam penggunaan function ini yakni :
• xtrain , merupakan data train yang digunakan sebagai inputan dalam pelatihan model.
• ytrain , merupakan data train target yang digunakan dalam pelatihan model.
• batch_size=10 , berarti model akan memproses 10 sampel sekaligus dalam pelatihan.
• epochs=10 , berarti jumlah iterasi yang akan dilakukan dalam pelatihan data train yakni
sebanyak 10 kali.
• verbose=1 , berarti akan menampilkan informasi progress pelatihan seperti jumlah
epoch, waktu yang dihabiskan, dan metrik evaluasi seperti loss dan accuracy.
Penjelasan :
Line 2 : Melakukan prediksi dengan model ann pada data test yakni xtest. Hasil prediksi
akan berupa nilai prediksi kontinu antara 0 dan 1. Hal ini dikarenakan menggunakan
aktivasi sigmoid pada layer output. Hasil ini disimpan pada variabel Y_pred.
Line 3 : Mengubah hasil prediksi menjadi label diskrit (0 atau 1). Dimana jika nilai
Y_pred>=0.5 maka nilai Y_pred diubah menjadi 1. Sedangkan jika tidak, maka nilai
Y_pred diubah menjadi 0.
Line 4 : Mencetak nilai yang disimpan Y_pred. Hal ini akan menampilkan label diskrit.

Penjelasan :
Line 2 : Mengimport modul confusion_matrix dari library sklearn yang digunakan untuk
melakukan evaluasi terhadap hasil prediksi.
Line 3 : Mengevaluasi hasil prediksi yakni Y_pred terhadap y_test. Evaluasi ini dilakukan
dengan menghitung dalam bentuk matriks.
Line 4 : Menampilkan isi yang disimpan cm.
Output tersebut memiliki arti :
• Terdapat 2928 data yang benar diprediksi sebagai kelas 0 (False RAIN).
(True negative)
• Tidak ada data yang salah diprediksi sebagai kelas 1 (True RAIN). (False
positive)
• Tidak ada data yang salah diprediksi sebagai kelas 0 (False RAIN). (False
negative)
• Terdapat 2182 data yang benar diprediksi sebagai kelas 1 (True RAIN). (True
positive)
Penjelasan :
Dengan modul accuracy_score dari library sklearn, dapat didapatkan bahwa accuracy nya
mencapai 1 (100%), hal ini karena tidak ada data yang salah diprediksi (berdasarkan
confusion_matrix.

Anda mungkin juga menyukai