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

Proyek Klasifikasi Wisata dengan KA

Dokumen ini menjelaskan proyek pemrograman aplikasi menggunakan supervised learning dengan model Decision Tree Classifier untuk mengklasifikasikan tingkat kunjungan wisatawan berdasarkan dataset. Terdapat penjelasan mengenai penulisan skrip sederhana, pembangunan model, evaluasi, dan penyempurnaan kode dengan metrik tambahan seperti precision dan recall. Selain itu, disertakan juga contoh kode lengkap untuk implementasi dan prediksi kategori tempat wisata.

Diunggah oleh

Teguh Priyanto
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)
27 tayangan6 halaman

Proyek Klasifikasi Wisata dengan KA

Dokumen ini menjelaskan proyek pemrograman aplikasi menggunakan supervised learning dengan model Decision Tree Classifier untuk mengklasifikasikan tingkat kunjungan wisatawan berdasarkan dataset. Terdapat penjelasan mengenai penulisan skrip sederhana, pembangunan model, evaluasi, dan penyempurnaan kode dengan metrik tambahan seperti precision dan recall. Selain itu, disertakan juga contoh kode lengkap untuk implementasi dan prediksi kategori tempat wisata.

Diunggah oleh

Teguh Priyanto
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

Lembar Kerja 4.

1: Proyek Pemrograman Aplikasi KA (supervised/unsupervised


learning) Menggunakan Dataset

1. Menulis Skrip Sederhana dengan Sintaks Dasar KA

# Fungsi untuk mengevaluasi suhu


def evaluasi_suhu(suhu):
if suhu > 30:
return "Panas"
elif 20 <= suhu <= 30:
return "Sejuk"
else:
return "Dingin"

# Program utama
def main():
try:
input_suhu = int(input("Masukkan suhu dalam derajat Celsius: "))
hasil = evaluasi_suhu(input_suhu)
print(f"Suhu terasa: {hasil}")
except ValueError:
print("Masukkan harus berupa angka bulat.")

# Menjalankan program
if __name__ == "__main__":
main()

Output
2. Membangun Model Sederhana Menggunakan Library KA

Berikut adalah contoh proyek model pembelajaran mesin sederhana menggunakan Scikit-learn dan
dataset pariwisata. Fokusnya adalah klasifikasi tingkat kunjungan wisatawan (Rendah, Sedang, Tinggi)
berdasarkan data pengunjung, cuaca, hari libur, dan musim.

1. Library: Scikit-learn

Library ini populer untuk proyek Machine Learning klasik, sangat cocok untuk edukasi dan pemodelan
cepat.

2. Dataset

Dataset digunakan: Jumlah pengunjung tempat wisata di suatu daerah tiap bulan
Contoh data bisa diperoleh dari: [Link] atau dummy dataset yang disimulasikan secara realistis.

3. Fitur dan Target

Fitur utama (X):

• Jumlah hari libur dalam bulan tersebut (hari_libur)

• Rata-rata suhu (suhu)

• Curah hujan (curah_hujan)

• Musim (musim) — dikodekan sebagai 0: Hujan, 1: Kemarau

Target (y):

• Kategori kunjungan: Rendah, Sedang, Tinggi

4. Jenis Model

Supervised Learning - Klasifikasi Multikelas


Model: Decision Tree Classifier
5. Kode Program Lengkap (dalam .ipynb atau .py)

Asumsi kita punya dataset : [Link]


# === 1. Import Library ===
import pandas as pd
from sklearn.model_selection import train_test_split
from [Link] import DecisionTreeClassifier
from [Link] import LabelEncoder
from [Link] import accuracy_score, classification_report

# === 2. Load Dataset ===


# Pastikan file .csv berada di lokasi yang sama dengan notebook
df = pd.read_csv("[Link]")

# === 3. Pilih Kolom Relevan ===


df_model = df[['Price', 'Rating', 'Time_Minutes', 'Rating_Count',
'Category']].copy()

# Tangani nilai kosong (NaN) di Time_Minutes


# df_model['Time_Minutes'].fillna(df_model['Time_Minutes'].mean(),
inplace=True)
df_model['Time_Minutes'] =
df_model['Time_Minutes'].fillna(df_model['Time_Minutes'].mean())

# === 4. Encode Target Kategorikal ===


le = LabelEncoder()
df_model['Category_encoded'] = le.fit_transform(df_model['Category'])

# Definisikan fitur (X) dan target (y)


X = df_model[['Price', 'Rating', 'Time_Minutes', 'Rating_Count']]
y = df_model['Category_encoded']

# === 5. Split Data (Train-Test) ===


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

# === 6. Bangun Model Decision Tree ===


model = DecisionTreeClassifier(random_state=42)
[Link](X_train, y_train)

# === 7. Evaluasi Model ===


y_pred = [Link](X_test)
accuracy = accuracy_score(y_test, y_pred)
report = classification_report(y_test, y_pred, target_names=le.classes_)

print(f"Akurasi model: {accuracy:.2f}")


print("Laporan Klasifikasi:\n", report)

# === 8. Contoh Prediksi Baru ===


data_baru = [Link]({
'Price': [50000],
'Rating': [45],
'Time_Minutes': [90],
'Rating_Count': [20]
})
prediksi = [Link](data_baru)
kategori = le.inverse_transform(prediksi)

print("Prediksi kategori tempat wisata:", kategori[0])


6. hasil yang diharapkan

Output :
3. Evaluasi dan Penyempurnaan Kode
Berikut adalah evaluasi dan penyempurnaan dari model Decision Tree Classifier pada dataset destinasi
wisata Indonesia yang Anda lampirkan. Fokus kita adalah:
• Menambahkan confusion matrix dan metrik lainnya (precision, recall, F1-score).
• Menampilkan visualisasi confusion matrix.
• Menyempurnakan model: tuning hyperparameter dan/atau mengganti algoritma jika perlu.
• Menyediakan perbandingan performa sebelum dan sesudah perbaikan.
# === 1. Import Library ===
import pandas as pd
import [Link] as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
from [Link] import DecisionTreeClassifier
from [Link] import LabelEncoder
from [Link] import (
accuracy_score,
classification_report,
confusion_matrix,
precision_score,
recall_score,
f1_score
)

# === 2. Load Dataset ===


df = pd.read_csv("[Link]")

# === 3. Pilih Kolom Relevan dan Tangani Missing Value ===


df_model = df[['Price', 'Rating', 'Time_Minutes', 'Rating_Count', 'Category']].copy()
# df_model['Time_Minutes'].fillna(df_model['Time_Minutes'].mean(), inplace=True)
df_model.loc[:, 'Time_Minutes'] = df_model['Time_Minutes'].fillna(df_model['Time_Minutes'].mean())

# === 4. Encode Target Kategorikal ===


le = LabelEncoder()
df_model['Category_encoded'] = le.fit_transform(df_model['Category'])

# Fitur dan Target


X = df_model[['Price', 'Rating', 'Time_Minutes', 'Rating_Count']]
y = df_model['Category_encoded']

# === 5. Split Data ===


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

# === 6. Bangun dan Latih Model ===


model = DecisionTreeClassifier(criterion='entropy', max_depth=5, random_state=42)
[Link](X_train, y_train)

# === 7. Evaluasi Model ===


y_pred = [Link](X_test)
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='weighted', zero_division=0)
recall = recall_score(y_test, y_pred, average='weighted')
f1 = f1_score(y_test, y_pred, average='weighted')

print(f"Akurasi : {accuracy:.2f}")
print(f"Presisi : {precision:.2f}")
print(f"Recall : {recall:.2f}")
print(f"F1-Score : {f1:.2f}")
print("\n=== Laporan Klasifikasi ===")
print(classification_report(y_test, y_pred, target_names=le.classes_))

# === Confusion Matrix ===


cm = confusion_matrix(y_test, y_pred)
[Link](figsize=(8, 6))
[Link](cm, annot=True, fmt='d', cmap='Blues', xticklabels=le.classes_, yticklabels=le.classes_)
[Link]('Predicted')
[Link]('Actual')
[Link]('Confusion Matrix')
plt.tight_layout()
[Link]()

# === 8. Prediksi Data Baru ===


data_baru = [Link]({
'Price': [50000],
'Rating': [45],
'Time_Minutes': [90],
'Rating_Count': [20]
})
prediksi = [Link](data_baru)
kategori = le.inverse_transform(prediksi)
print("Prediksi kategori tempat wisata:", kategori[0])
Output :

Anda mungkin juga menyukai