R - Random Forest: Panduan untuk Pemula

Halo sana, para ilmuwan data masa depan! Hari ini, kita akan memulai perjalanan menarik ke dalam dunia Random Forest menggunakan R. Jangan khawatir jika Anda belum pernah menulis baris kode sebelumnya - saya akan menjadi panduan ramah Anda di setiap langkah. Pada akhir panduan 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 tersebut berupa paket. Bayangkan paket sebagai kotak alat yang penuh dengan fungsi khusus yang membuat kehidupan kita lebih mudah.

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

# 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 menerima mereka langsung di pintu rumah digital Anda!

Memahami Random Forest: Dasar-Dasar

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

Random Forest adalah metode belajar 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 di latih pada subset data acak.
  3. Kekacauan Fitur: Pada setiap pemisahan di pohon, hanya subset fitur acak yang dipertimbangkan.
  4. Aggregasi: Prediksi akhir dibuat dengan mengagregasikan prediksi 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 menset seed untuk memastikan reproduksi (sehingga kita semua mendapatkan "hasil acak" 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 mendapatkan kartu laporan 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 mereka dapat memberitahu kita tentang pentingnya fitur (variabel) untuk 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

Untuk benar-benar menguji seberapa baik hutan kita dalam navigasi, kita perlu melihat bagaimana performanya pada data yang belum 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-bagian berbeda hutan untuk melihat seberapa baik mereka memeriksa dalam berbagai kondisi.

Menyetel Hutan: 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 untuk 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 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 melihat dasar-dasar membuat Random Forest, membuat prediksi, mengevaluasi pentingnya fitur, melakukan validasi silang, dan bahkan menyetel hutan kita.

Ingat, seperti hutan nyata, Random Forest berkembang subur dengan keberagaman. Mereka bekerja terbaik saat Anda memiliki banyak fitur dan cukup data. Jadi, teruskan dan tumbuhkan banyak hutan, ilmuwan data muda!

Berikut adalah tabel rujukan cepat dari 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