0% menganggap dokumen ini bermanfaat (0 suara)
46 tayangan6 halaman

Task10 - Bagus Arimanu - Ipynb - Colaboratory

Dokumen tersebut merangkum kode Python untuk melakukan analisis data menggunakan algoritma K-Nearest Neighbors dalam masalah klasifikasi. Kode tersebut meliputi impor library, membaca data, visualisasi data, pemisahan atribut dan label, pemodelan, dan evaluasi model.

Diunggah oleh

bagus arimanu
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
46 tayangan6 halaman

Task10 - Bagus Arimanu - Ipynb - Colaboratory

Dokumen tersebut merangkum kode Python untuk melakukan analisis data menggunakan algoritma K-Nearest Neighbors dalam masalah klasifikasi. Kode tersebut meliputi impor library, membaca data, visualisasi data, pemisahan atribut dan label, pemodelan, dan evaluasi model.

Diunggah oleh

bagus arimanu
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 6

5/7/23, 9:31 PM Task10_Bagus Arimanu.

ipynb - Colaboratory

Individual task 10
I Made Bagus Arimanu Dwipayana (24) | [email protected]

import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

Kode di atas merupakan impor library dan modul yang diperlukan untuk melakukan analisis data menggunakan algoritma K-Nearest Neighbors
(KNN) dalam masalah klasifikasi. Berikut adalah penjelasan singkat mengenai setiap baris kode tersebut:

import pandas as pd: Mengimpor library pandas yang digunakan untuk manipulasi dan analisis data.
import numpy as np: Mengimpor library numpy yang digunakan untuk operasi numerik pada data.
import seaborn as sns: Mengimpor library seaborn yang digunakan untuk visualisasi data.
import matplotlib.pyplot as plt: Mengimpor modul pyplot dari library matplotlib yang digunakan untuk visualisasi data.
from sklearn.model_selection import train_test_split: Mengimpor fungsi train_test_split dari modul model_selection dalam library scikit-
learn (sklearn). Fungsi ini digunakan untuk membagi data menjadi subset pelatihan dan uji.
from sklearn.neighbors import KNeighborsClassifier: Mengimpor kelas KNeighborsClassifier dari modul neighbors dalam library scikit-
learn. Kelas ini digunakan untuk menerapkan algoritma K-Nearest Neighbors.
from sklearn.metrics import accuracy_score: Mengimpor fungsi accuracy_score dari modul metrics dalam library scikit-learn. Fungsi ini
digunakan untuk mengukur akurasi model klasifikasi.

Dengan mengimpor library dan modul tersebut, Anda dapat menggunakan fungsi dan kelas yang diperlukan untuk melakukan analisis data
menggunakan algoritma K-Nearest Neighbors (KNN) dalam masalah klasifikasi.

# membaca dataset diabetes.csv


data = pd.read_csv('diabetes.csv')

Kode tersebut melakukan membaca file CSV dengan nama 'diabetes.csv' menggunakan fungsi read_csv dari library pandas. File CSV yang
dibaca diharapkan berisi data terkait diabetes.

Setelah file CSV berhasil dibaca, data dari file tersebut dimuat ke dalam sebuah DataFrame yang disimpan dalam variabel data. DataFrame
adalah struktur data dua dimensi yang disediakan oleh library pandas untuk memanipulasi dan menganalisis data tabular.

Dengan menggunakan kode pd.read_csv('diabetes.csv'), file CSV akan dibaca dan diinterpretasikan sebagai DataFrame. Data tersebut dapat
digunakan untuk melakukan analisis lebih lanjut, seperti eksplorasi data, pemrosesan data, atau melatih model machine learning.

# menampilkan 10 data teratas dari dataset


data.head(10)

Pregnancies Glucose BloodPressure SkinThickness Insulin BMI DiabetesPedigreeFunction Age Out

0 6 148 72 35 0 33.6 0.627 50

1 1 85 66 29 0 26.6 0.351 31

2 8 183 64 0 0 23.3 0.672 32

3 1 89 66 23 94 28.1 0.167 21

4 0 137 40 35 168 43.1 2.288 33

5 5 116 74 0 0 25.6 0.201 30

6 3 78 50 32 88 31.0 0.248 26

7 10 115 0 0 0 35.3 0.134 29

8 2 197 70 45 543 30.5 0.158 53

9 8 125 96 0 0 0.0 0.232 54

Kode data.head(10) digunakan untuk menampilkan 10 baris pertama dari DataFrame data. Fungsi head() pada objek DataFrame digunakan
untuk mengambil sejumlah baris teratas dari data.

Dengan menggunakan kode tersebut, Anda akan melihat 10 baris pertama dari data yang ada dalam DataFrame data. Hal ini berguna untuk
memberikan gambaran awal tentang struktur dan konten dari data tersebut

https://colab.research.google.com/drive/12Gb7rO_8zHp-OD5qpD7omP81HZEL-Muk#scrollTo=_bfoR2r9QsRn&printMode=true 1/6
5/7/23, 9:31 PM Task10_Bagus Arimanu.ipynb - Colaboratory
# melihat jumlah data pa da setiap kelas Outcome
print(data['Outcome'].value_counts())

0 500
1 268
Name: Outcome, dtype: int64

Kode print(data['Outcome'].value_counts()) digunakan untuk menghitung jumlah kemunculan setiap nilai dalam kolom 'Outcome' pada
DataFrame data dan menampilkannya. Kolom 'Outcome' umumnya digunakan dalam dataset diabetes untuk menunjukkan apakah seseorang
memiliki diabetes atau tidak.

Fungsi value_counts() pada objek Series (yaitu kolom 'Outcome') akan menghitung jumlah kemunculan setiap nilai dalam kolom tersebut.
Hasilnya akan ditampilkan dalam format yang memperlihatkan nilai unik dari 'Outcome' beserta jumlah kemunculannya.

Dengan menggunakan kode tersebut, Anda akan melihat jumlah pasien dengan diabetes dan tanpa diabetes dalam dataset data, memberikan
pemahaman awal tentang distribusi kelas pada data tersebut.

# menampilkan grafik distribusi pada setiap atribut


sns.set_style('whitegrid')
data.hist(figsize=(10,10), color='BROWN')
plt.show()

Kode yang diberikan memiliki beberapa tujuan:

sns.set_style('whitegrid'): Baris ini mengatur gaya plot menjadi 'whitegrid'. Ini berarti akan ada garis-garis grid yang terlihat di latar belakang
plot, memberikan tampilan yang lebih terstruktur.

data.hist(figsize=(10,10), color='BROWN'): Kode ini menampilkan histogram dari setiap atribut dalam DataFrame data. Fungsi hist() digunakan
untuk menghasilkan histogram. Argumen figsize=(10,10) mengatur ukuran plot menjadi 10x10 inci, sehingga plot histogram lebih besar dan
lebih jelas. Argumen color='BROWN' mengatur warna histogram menjadi cokelat.

plt.show(): Baris ini digunakan untuk menampilkan plot histogram yang telah dibuat sebelumnya. Fungsi show() dari pyplot (dalam library
matplotlib) digunakan untuk menampilkan plot yang sedang aktif.

https://colab.research.google.com/drive/12Gb7rO_8zHp-OD5qpD7omP81HZEL-Muk#scrollTo=_bfoR2r9QsRn&printMode=true 2/6
5/7/23, 9:31 PM Task10_Bagus Arimanu.ipynb - Colaboratory

Dengan menggunakan kode tersebut, histogram untuk setiap atribut dalam dataset akan ditampilkan dalam grid putih dengan ukuran plot yang
disesuaikan. Hal ini memungkinkan Anda untuk melihat distribusi data pada setiap atribut dan mendapatkan wawasan tentang karakteristik
dataset tersebut.

mencoba membuat grafik distribusi dengan gaya yang berbeda

for column in data.columns:


plt.figure(figsize=(4, 2))
sns.histplot(data[column], kde=True)
plt.title('Distribusi {}'.format(column))
plt.xlabel(column)
plt.ylabel('Frekuensi')
plt.show()

https://colab.research.google.com/drive/12Gb7rO_8zHp-OD5qpD7omP81HZEL-Muk#scrollTo=_bfoR2r9QsRn&printMode=true 3/6
5/7/23, 9:31 PM Task10_Bagus Arimanu.ipynb - Colaboratory

# memisahkan atribut dan label


X = data.drop('Outcome', axis=1)
y = data['Outcome']

kode ini memiliki tujuan untuk melatih model K-Nearest Neighbors (KNN) untuk memprediksi kelas 'Outcome' pada dataset yang diberikan.
Kode ini memisahkan atribut dari label dalam dataset. Variabel X akan berisi atribut-atribut yang digunakan untuk melatih model, sedangkan
variabel y akan berisi label yang ingin diprediksi

# membagi data menjadi train dan test set


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

Kode ini menggunakan train_test_split() dari library sklearn.model_selection untuk membagi dataset menjadi data latih (train set) dan data uji
(test set). Data test set akan terdiri dari 20% dari keseluruhan dataset, sedangkan data train set akan terdiri dari 80% dari keseluruhan dataset.
Argumen random_state=0 digunakan untuk menjaga konsistensi pembagian data yang sama setiap kali kode dijalankan.

# membuat model KNN dan melatihnya pada data train set


model = KNeighborsClassifier(n_neighbors=5)
model.fit(X_train, y_train)

▾ KNeighborsClassifier
KNeighborsClassifier()

Kode ini membuat objek model KNN dengan menggunakan KNeighborsClassifier() dari library sklearn.neighbors. Argumen n_neighbors=5
mengatur jumlah tetangga terdekat yang akan digunakan dalam proses prediksi. Model kemudian dilatih pada data train set menggunakan

https://colab.research.google.com/drive/12Gb7rO_8zHp-OD5qpD7omP81HZEL-Muk#scrollTo=_bfoR2r9QsRn&printMode=true 4/6
5/7/23, 9:31 PM Task10_Bagus Arimanu.ipynb - Colaboratory

metode fit() dengan atribut X_train dan label y_train.

# melakukan prediksi pada data test set


y_pred = model.predict(X_test)

Kode ini menggunakan model yang telah dilatih untuk melakukan prediksi pada data test set dengan menggunakan metode predict(). Hasil
prediksi akan disimpan dalam variabel y_pred.

# menghitung akurasi dari model


accuracy = accuracy_score(y_test, y_pred)
print('Accuracy: {:.2f}%'.format(accuracy*100))

Accuracy: 75.32%

Kode ini menghitung akurasi model menggunakan metode accuracy_score() dari library sklearn.metrics. Akurasi dihitung dengan
membandingkan label sebenarnya (y_test) dengan hasil prediksi (y_pred). Hasil akurasi akan dicetak ke layar dalam bentuk persentase
menggunakan print().

Tingkat akurasi menggambarkan sejauh mana model berhasil memprediksi dengan benar kelas 'Outcome' pada data yang belum pernah dilihat
sebelumnya (data test set). Akurasi dihitung dengan membandingkan label sebenarnya (y_test) dengan hasil prediksi (y_pred) yang dilakukan
oleh model.

Dalam konteks ini, hasil akurasi yang dicetak akan memberikan persentase seberapa baik model KNN dapat memprediksi kelas 'Outcome' pada
data test set. Semakin tinggi nilai akurasi, semakin baik model dalam memprediksi dengan benar kelas 'Outcome' pada data yang belum
pernah dilihat sebelumnya.

mencoba memodifikasi dengan model lain

model Random Forest Classifier

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# Membagi data menjadi train set dan test set


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# Membuat model Random Forest dan melatihnya pada data train set
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

# Melakukan prediksi pada data test set


y_pred = model.predict(X_test)

# Menghitung akurasi dari model


accuracy = accuracy_score(y_test, y_pred)
print('Accuracy: {:.2f}%'.format(accuracy*100))

Accuracy: 81.82%

algoritma Decision Tree

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

# Membagi data menjadi train set dan test set


X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

# Membuat model Decision Tree dan melatihnya pada data train set
model = DecisionTreeClassifier()
model.fit(X_train, y_train)

# Melakukan prediksi pada data test set


y_pred = model.predict(X_test)

# Menghitung akurasi dari model


( t t d)
https://colab.research.google.com/drive/12Gb7rO_8zHp-OD5qpD7omP81HZEL-Muk#scrollTo=_bfoR2r9QsRn&printMode=true 5/6
5/7/23, 9:31 PM Task10_Bagus Arimanu.ipynb - Colaboratory
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy: {:.2f}%'.format(accuracy*100))

Accuracy: 79.22%

check 0s completed at 9:28 PM

https://colab.research.google.com/drive/12Gb7rO_8zHp-OD5qpD7omP81HZEL-Muk#scrollTo=_bfoR2r9QsRn&printMode=true 6/6

Anda mungkin juga menyukai