R - Random Forest: Panduan Pemula

Hai sana, para ilmuwan data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dunia Random Forest menggunakan R. Jangan khawatir jika Anda belum pernah menulis satu baris kode sebelumnya - saya akan menjadi panduan ramah Anda di setiap langkah. Pada akhir tutorial ini, Anda akan menanam hutan digital Anda sendiri! Mari kita mulai, bukan?

R - Random Forest

Menginstal Paket R yang Diperlukan

Sebelum kita dapat mulai menanam pohon digital kita, kita perlu memastikan bahwa kita memiliki tools yang tepat. Dalam R, tools ini tersedia dalam bentuk paket. Anggaplah paket sebagai kotak alat yang penuh dengan fungsi khusus yang membuat hidup kita lebih mudah.

Untuk petualangan Random Forest kita, kita akan memerlukan dua paket utama: randomForest dan caret. Mari kita instalnya!

# Instal paket yang diperlukan
install.packages("randomForest")
install.packages("caret")

# Muat paket
library(randomForest)
library(caret)

Ketika Anda menjalankan baris ini, R akan pergi ke internet dan mengunduh paket-paket ini untuk Anda. Itu seperti memesan alat secara online dan mendapatkannya langsung di pintu digital Anda!

Memahami Random Forest: Dasar-Dasar

Imaginasikan Anda tersesat di hutan dan Anda perlu menemukan jalan keluar. Anda mungkin akan meminta arahan dari beberapa orang yang berbeda. Beberapa mungkin benar, yang lain mungkin jauh dari kenyataan, tetapi jika Anda mengikuti pendapat mayoritas, Anda mungkin akan menemukan jalan yang benar. Itu sebenarnya adalah cara kerja Random Forest!

Random Forest adalah metode pembelajaran ensemble, yang berarti ia menggunakan beberapa pohon keputusan untuk membuat prediksi. Itu seperti memiliki komite ahli pohon yang memilih keputusan terbaik.

Komponen Utama Random Forest

  1. Pohon Keputusan: Ini adalah "pemilih" individual dalam hutan kita.
  2. Bootstrapping: Setiap pohon dilatih pada subsekuens data acak.
  3. Kekacauan Fitur: Pada setiap pemisahan di pohon, hanya subsekuens fitur acak yang dipertimbangkan.
  4. Agregasi: Prediksi akhir dibuat dengan mengagregasi prediksi dari semua pohon.

Membuat Random Forest Pertama Anda

Mari kita mulai dengan contoh sederhana menggunakan dataset bawaan iris. Dataset ini berisi pengukuran bunga iris yang berbeda.

# Muat dataset iris
data(iris)

# Set seed untuk reproduksi
set.seed(123)

# Buat model Random Forest
rf_model <- randomForest(Species ~ ., data = iris, ntree = 500)

# Cetak model
print(rf_model)

Dalam kode ini:

  • Kita muat dataset iris.
  • Kita menyetel seed untuk memastikan reproduksi (sehingga kita semua mendapat "acak" hasil yang sama).
  • Kita membuat model Random Forest menggunakan randomForest(). Bagian Species ~ . berarti kita mencoba untuk memprediksi Species menggunakan semua variabel lainnya.
  • Kita menentukan ntree = 500, yang berarti hutan kita akan memiliki 500 pohon.

Ketika Anda menjalankan ini, Anda akan melihat ringkasan model Random Forest Anda. Itu seperti mendapat rapor untuk hutan Anda!

Membuat Prediksi dengan Random Forest Anda

Sekarang kita memiliki hutan, mari kita gunakannya untuk membuat beberapa prediksi!

# Buat prediksi pada dataset iris
predictions <- predict(rf_model, iris)

# Buat matriks konfusi
confusion_matrix <- table(predictions, iris$Species)

# Cetak matriks konfusi
print(confusion_matrix)

# Hitung akurasi
accuracy <- sum(diag(confusion_matrix)) / sum(confusion_matrix)
print(paste("Akurasi:", round(accuracy, 4)))

Kode ini:

  • Menggunakan model kita untuk membuat prediksi pada dataset iris.
  • Membuat matriks konfusi untuk membandingkan prediksi kita dengan jenis spesies sebenarnya.
  • Menghitung dan mencetak akurasi model kita.

Matriks konfusi menunjukkan berapa banyak prediksi yang benar untuk setiap jenis spesies. Elemen diagonal mewakili prediksi yang benar.

Pentingnya Fitur

Salah satu hal yang menarik tentang Random Forest adalah bahwa mereka dapat memberitahu kita tentang pentingnya fitur (variabel) dalam membuat prediksi. Mari kita cek itu!

# Dapatkan pentingnya fitur
importance <- importance(rf_model)

# Plot pentingnya fitur
varImpPlot(rf_model, main = "Pentingnya Fitur")

Kode ini akan membuat plot yang menunjukkan fitur mana yang paling berguna dalam membuat prediksi. Itu seperti meminta hutan kita mengungkapkan penanda jalan mana yang paling membantu dalam menemukan jalan!

Validasi Silang: Tes Kekuatan Hutan Kita

Untuk benar-benar menguji seberapa baik hutan kita dalam navigasi, kita perlu melihat bagaimana performanya pada data yang belum pernah dilihat sebelumnya. Kita dapat melakukan ini dengan validasi silang.

# Setel validasi silang
ctrl <- trainControl(method = "cv", number = 5)

# Latih model dengan validasi silang
rf_cv <- train(Species ~ ., data = iris, method = "rf", trControl = ctrl)

# Cetak hasil
print(rf_cv)

Kode ini:

  • Mengatur 5-fold validasi silang.
  • Melatih model Random Forest baru menggunakan validasi silang ini.
  • Mencetak hasil, termasuk akurasi untuk setiap fold.

Validasi silang adalah seperti mengirim panduan hutan kita melalui bagian yang berbeda dari hutan untuk melihat seberapa baik mereka perform di berbagai kondisi.

Menyetel Hutan Kita: Menemukan Jumlah Pohon yang Tepat

Seperti di hutan nyata, memiliki terlalu sedikit atau terlalu banyak pohon bisa menjadi masalah. Mari kita temukan jumlah pohon optimal untuk Random Forest kita.

# Setel rentang jumlah pohon yang akan dicoba
tree_nums <- c(100, 200, 500, 1000)

# Buat vektor kosong untuk menyimpan akurasi
accuracies <- vector("numeric", length(tree_nums))

# Loop melalui berbagai jumlah pohon
for (i in 1:length(tree_nums)) {
rf_model <- randomForest(Species ~ ., data = iris, ntree = tree_nums[i])
predictions <- predict(rf_model, iris)
accuracies[i] <- mean(predictions == iris$Species)
}

# Buat data frame dari hasil
results <- data.frame(Trees = tree_nums, Accuracy = accuracies)

# Cetak hasil
print(results)

# Plot hasil
plot(tree_nums, accuracies, type = "b",
xlab = "Jumlah Pohon", ylab = "Akurasi",
main = "Akurasi vs Jumlah Pohon")

Kode ini:

  • Mencoba berbagai jumlah pohon (100, 200, 500, 1000).
  • Menghitung akurasi untuk setiap jumlah pohon.
  • Membuat plot yang menunjukkan bagaimana akurasi berubah dengan jumlah pohon.

Kesimpulan

Selamat! Anda telah menanam hutan Random Forest pertama Anda di R. Kita telah meliputi dasar-dasar membuat Random Forest, membuat prediksi, mengevaluasi pentingnya fitur, melakukan validasi silang, dan bahkan menyetel hutan kita.

Ingat, seperti hutan nyata, Random Forest berjalan terbaik saat Anda memiliki keanekaragaman. Mereka bekerja terbaik saat Anda memiliki berbagai fitur dan cukup banyak data. Jadi, maju dan tanam banyak hutan, ilmuwan data muda!

Berikut adalah tabel rujukan cepat metode utama yang kita gunakan:

Metode Deskripsi
randomForest() Membuat model Random Forest
predict() Membuat prediksi menggunakan model
importance() Menghitung pentingnya fitur
varImpPlot() Plot pentingnya fitur
train() Melatih model dengan validasi silang
trainControl() Mengatur parameter validasi silang

Selamat menanam hutan, dan semoga prediksi Anda selalu akurat!

Credits: Image by storyset