Gerekli paketlerin yüklenmesi
Bu bölümde, karar ağacı modeli oluşturmak ve görselleştirmek için
gerekli paketler yükleniyor. “rpart” ve “rpart.plot” karar ağacı
modellemesi ve görselleştirmesi için, “caret” ise veriyi eğitim ve test
setlerine ayırmak için kullanılıyor.
Veri setini oluşturma
Burada veri seti oluşturuluyor. “Yas”, “Cinsiyet”, “KitapTuru”,
“Uye” ve “HizmetKullanimi” gibi özellikler rastgele oluşturularak 100
kişilik bir örneklem oluşturuluyor. “set.seed(123)” kullanılarak
sonuçların tekrarlanabilir olması sağlanıyor.
set.seed(123) # Sonuçların tekrarlanabilir olması için
data <- data.frame(
Yas = sample(18:70, 100, replace = TRUE),
Cinsiyet = sample(c("Kadın", "Erkek"), 100, replace = TRUE),
KitapTuru = sample(c("Roman", "Bilim", "Tarih", "Sanat"), 100, replace = TRUE),
Uye = sample(c("Evet", "Hayır"), 100, replace = TRUE),
HizmetKullanimi = sample(c("Evet", "Hayır"), 100, replace = TRUE)
)
Kategorik değişkenleri faktöre dönüştürme
Bu adımda, kategorik değişkenler (“Cinsiyet”, “KitapTuru”, “Uye”,
“HizmetKullanimi”) faktör olarak tanımlanıyor. Bu, modelin bu
değişkenleri kategorik olarak tanımasını sağlamak için gereklidir.
data$Cinsiyet <- as.factor(data$Cinsiyet)
data$KitapTuru <- as.factor(data$KitapTuru)
data$Uye <- as.factor(data$Uye)
data$HizmetKullanimi <- as.factor(data$HizmetKullanimi)
Veriyi eğitim ve test setlerine ayırma
Karar ağacı modeli oluşturma
Bu adımda, “rpart” fonksiyonu kullanılarak karar ağacı modeli
oluşturuluyor. “HizmetKullanimi” bağımlı değişken olarak belirlenmiş ve
“Yas”, “Cinsiyet”, “KitapTuru” ve “Uye” bağımsız değişkenler olarak
kullanılıyor. “minsplit” ve “maxdepth” parametreleri ile ağacın
karmaşıklığı kontrol ediliyor.
model <- rpart(HizmetKullanimi ~ Yas + Cinsiyet + KitapTuru + Uye,
data = trainData, method = "class",
control = rpart.control(minsplit = 10, maxdepth = 5))
Modeli görselleştirme
Bu bölümde, oluşturulan karar ağacı modeli görselleştiriliyor.
“rpart.plot” fonksiyonu ile ağacın dalları ve yapısı gösteriliyor,
böylece modelin nasıl bir karar süreci oluşturduğunu
görselleştirebilirsiniz.
rpart.plot(model, type = 4, extra = 104, fallen.leaves = TRUE, cex = 0.6,
main = "Kütüphane Hizmeti Kullanımı Karar Ağacı")

Test seti üzerinde tahmin yapma
Test seti kullanılarak modelin tahminleri yapılıyor. “predict”
fonksiyonu ile “HizmetKullanimi” sınıfı tahmin ediliyor.
predictions <- predict(model, testData, type = "class")
Model performansını değerlendirme
LS0tDQp0aXRsZTogIkthcmFyIEHEn2FjxLEgVXlndWxhbWFzxLEiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIEdlcmVrbGkgcGFrZXRsZXJpbiB5w7xrbGVubWVzaQ0KIyBCdSBiw7Zsw7xtZGUsIGthcmFyIGHEn2FjxLEgbW9kZWxpIG9sdcWfdHVybWFrIHZlIGfDtnJzZWxsZcWfdGlybWVrIGnDp2luIGdlcmVrbGkgcGFrZXRsZXIgecO8a2xlbml5b3IuICJycGFydCIgdmUgInJwYXJ0LnBsb3QiIGthcmFyIGHEn2FjxLEgbW9kZWxsZW1lc2kgdmUgZ8O2cnNlbGxlxZ90aXJtZXNpIGnDp2luLCAiY2FyZXQiIGlzZSB2ZXJpeWkgZcSfaXRpbSB2ZSB0ZXN0IHNldGxlcmluZSBhecSxcm1hayBpw6dpbiBrdWxsYW7EsWzEsXlvci4NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQoNCmluc3RhbGwucGFja2FnZXMoInJwYXJ0IikNCmluc3RhbGwucGFja2FnZXMoInJwYXJ0LnBsb3QiKQ0KaW5zdGFsbC5wYWNrYWdlcygiY2FyZXQiKQ0KDQpsaWJyYXJ5KHJwYXJ0KQ0KbGlicmFyeShycGFydC5wbG90KQ0KbGlicmFyeShjYXJldCkNCmBgYA0KDQojIFZlcmkgc2V0aW5pIG9sdcWfdHVybWENCiMgQnVyYWRhIHZlcmkgc2V0aSBvbHXFn3R1cnVsdXlvci4gIllhcyIsICJDaW5zaXlldCIsICJLaXRhcFR1cnUiLCAiVXllIiB2ZSAiSGl6bWV0S3VsbGFuaW1pIiBnaWJpIMO2emVsbGlrbGVyIHJhc3RnZWxlIG9sdcWfdHVydWxhcmFrIDEwMCBracWfaWxpayBiaXIgw7ZybmVrbGVtIG9sdcWfdHVydWx1eW9yLiAic2V0LnNlZWQoMTIzKSIga3VsbGFuxLFsYXJhayBzb251w6dsYXLEsW4gdGVrcmFybGFuYWJpbGlyIG9sbWFzxLEgc2HEn2xhbsSxeW9yLg0KDQpgYGB7ciBkYXRhLWNyZWF0aW9ufQ0KDQpzZXQuc2VlZCgxMjMpICAjIFNvbnXDp2xhcsSxbiB0ZWtyYXJsYW5hYmlsaXIgb2xtYXPEsSBpw6dpbg0KZGF0YSA8LSBkYXRhLmZyYW1lKA0KICBZYXMgPSBzYW1wbGUoMTg6NzAsIDEwMCwgcmVwbGFjZSA9IFRSVUUpLA0KICBDaW5zaXlldCA9IHNhbXBsZShjKCJLYWTEsW4iLCAiRXJrZWsiKSwgMTAwLCByZXBsYWNlID0gVFJVRSksDQogIEtpdGFwVHVydSA9IHNhbXBsZShjKCJSb21hbiIsICJCaWxpbSIsICJUYXJpaCIsICJTYW5hdCIpLCAxMDAsIHJlcGxhY2UgPSBUUlVFKSwNCiAgVXllID0gc2FtcGxlKGMoIkV2ZXQiLCAiSGF5xLFyIiksIDEwMCwgcmVwbGFjZSA9IFRSVUUpLA0KICBIaXptZXRLdWxsYW5pbWkgPSBzYW1wbGUoYygiRXZldCIsICJIYXnEsXIiKSwgMTAwLCByZXBsYWNlID0gVFJVRSkNCikNCmBgYA0KDQojIEthdGVnb3JpayBkZcSfacWfa2VubGVyaSBmYWt0w7ZyZSBkw7Zuw7zFn3TDvHJtZQ0KIyBCdSBhZMSxbWRhLCBrYXRlZ29yaWsgZGXEn2nFn2tlbmxlciAoIkNpbnNpeWV0IiwgIktpdGFwVHVydSIsICJVeWUiLCAiSGl6bWV0S3VsbGFuaW1pIikgZmFrdMO2ciBvbGFyYWsgdGFuxLFtbGFuxLF5b3IuIEJ1LCBtb2RlbGluIGJ1IGRlxJ9pxZ9rZW5sZXJpIGthdGVnb3JpayBvbGFyYWsgdGFuxLFtYXPEsW7EsSBzYcSfbGFtYWsgacOnaW4gZ2VyZWtsaWRpci4NCg0KYGBge3IgZmFjdG9yLWNvbnZlcnNpb259DQoNCmRhdGEkQ2luc2l5ZXQgPC0gYXMuZmFjdG9yKGRhdGEkQ2luc2l5ZXQpDQpkYXRhJEtpdGFwVHVydSA8LSBhcy5mYWN0b3IoZGF0YSRLaXRhcFR1cnUpDQpkYXRhJFV5ZSA8LSBhcy5mYWN0b3IoZGF0YSRVeWUpDQpkYXRhJEhpem1ldEt1bGxhbmltaSA8LSBhcy5mYWN0b3IoZGF0YSRIaXptZXRLdWxsYW5pbWkpDQpgYGANCg0KIyBWZXJpeWkgZcSfaXRpbSB2ZSB0ZXN0IHNldGxlcmluZSBhecSxcm1hDQojIEJ1IGLDtmzDvG1kZSwgdmVyaWxlciBlxJ9pdGltIHZlIHRlc3Qgc2V0bGVyaW5lIGF5csSxbMSxeW9yLiBWZXJpIHNldGluaW4gJTcwJ2kgZcSfaXRpbSwgJTMwJ3UgaXNlIHRlc3QgacOnaW4ga3VsbGFuxLFsxLF5b3IuIEJ1LCBtb2RlbGluIHBlcmZvcm1hbnPEsW7EsSBkYWhhIGl5aSBkZcSfZXJsZW5kaXJlYmlsbWVrIGnDp2luIGdlcmVrbGlkaXIuDQoNCmBgYHtyIHRyYWluLXRlc3Qtc3BsaXR9DQoNCnNldC5zZWVkKDEyMykNCnRyYWluSW5kZXggPC0gY3JlYXRlRGF0YVBhcnRpdGlvbihkYXRhJEhpem1ldEt1bGxhbmltaSwgcCA9IDAuNywgbGlzdCA9IEZBTFNFKQ0KdHJhaW5EYXRhIDwtIGRhdGFbdHJhaW5JbmRleCwgXQ0KdGVzdERhdGEgPC0gZGF0YVstdHJhaW5JbmRleCwgXQ0KYGBgDQoNCiMgS2FyYXIgYcSfYWPEsSBtb2RlbGkgb2x1xZ90dXJtYQ0KIyBCdSBhZMSxbWRhLCAicnBhcnQiIGZvbmtzaXlvbnUga3VsbGFuxLFsYXJhayBrYXJhciBhxJ9hY8SxIG1vZGVsaSBvbHXFn3R1cnVsdXlvci4gIkhpem1ldEt1bGxhbmltaSIgYmHEn8SxbWzEsSBkZcSfacWfa2VuIG9sYXJhayBiZWxpcmxlbm1pxZ8gdmUgIllhcyIsICJDaW5zaXlldCIsICJLaXRhcFR1cnUiIHZlICJVeWUiIGJhxJ/EsW1zxLF6IGRlxJ9pxZ9rZW5sZXIgb2xhcmFrIGt1bGxhbsSxbMSxeW9yLiAibWluc3BsaXQiIHZlICJtYXhkZXB0aCIgcGFyYW1ldHJlbGVyaSBpbGUgYcSfYWPEsW4ga2FybWHFn8Sxa2zEscSfxLEga29udHJvbCBlZGlsaXlvci4NCg0KYGBge3IgbW9kZWwtY3JlYXRpb259DQoNCm1vZGVsIDwtIHJwYXJ0KEhpem1ldEt1bGxhbmltaSB+IFlhcyArIENpbnNpeWV0ICsgS2l0YXBUdXJ1ICsgVXllLCANCiAgICAgICAgICAgICAgIGRhdGEgPSB0cmFpbkRhdGEsIG1ldGhvZCA9ICJjbGFzcyIsIA0KICAgICAgICAgICAgICAgY29udHJvbCA9IHJwYXJ0LmNvbnRyb2wobWluc3BsaXQgPSAxMCwgbWF4ZGVwdGggPSA1KSkNCmBgYA0KDQojIE1vZGVsaSBnw7Zyc2VsbGXFn3Rpcm1lDQojIEJ1IGLDtmzDvG1kZSwgb2x1xZ90dXJ1bGFuIGthcmFyIGHEn2FjxLEgbW9kZWxpIGfDtnJzZWxsZcWfdGlyaWxpeW9yLiAicnBhcnQucGxvdCIgZm9ua3NpeW9udSBpbGUgYcSfYWPEsW4gZGFsbGFyxLEgdmUgeWFwxLFzxLEgZ8O2c3RlcmlsaXlvciwgYsO2eWxlY2UgbW9kZWxpbiBuYXPEsWwgYmlyIGthcmFyIHPDvHJlY2kgb2x1xZ90dXJkdcSfdW51IGfDtnJzZWxsZcWfdGlyZWJpbGlyc2luaXouDQoNCmBgYHtyIG1vZGVsLXZpc3VhbGl6YXRpb259DQoNCnJwYXJ0LnBsb3QobW9kZWwsIHR5cGUgPSA0LCBleHRyYSA9IDEwNCwgZmFsbGVuLmxlYXZlcyA9IFRSVUUsIGNleCA9IDAuNiwgDQogICAgICAgICAgIG1haW4gPSAiS8O8dMO8cGhhbmUgSGl6bWV0aSBLdWxsYW7EsW3EsSBLYXJhciBBxJ9hY8SxIikNCmBgYA0KDQojIFRlc3Qgc2V0aSDDvHplcmluZGUgdGFobWluIHlhcG1hDQojIFRlc3Qgc2V0aSBrdWxsYW7EsWxhcmFrIG1vZGVsaW4gdGFobWlubGVyaSB5YXDEsWzEsXlvci4gInByZWRpY3QiIGZvbmtzaXlvbnUgaWxlICJIaXptZXRLdWxsYW5pbWkiIHPEsW7EsWbEsSB0YWhtaW4gZWRpbGl5b3IuDQoNCmBgYHtyIHByZWRpY3Rpb25zfQ0KDQpwcmVkaWN0aW9ucyA8LSBwcmVkaWN0KG1vZGVsLCB0ZXN0RGF0YSwgdHlwZSA9ICJjbGFzcyIpDQpgYGANCg0KIyBNb2RlbCBwZXJmb3JtYW5zxLFuxLEgZGXEn2VybGVuZGlybWUNCiMgQnUgYWTEsW1kYSwgbW9kZWxpbiBwZXJmb3JtYW5zxLEgZGXEn2VybGVuZGlyaWxtZWt0ZS4gImNvbmZ1c2lvbk1hdHJpeCIgZm9ua3NpeW9udSwgbW9kZWxpbiBkb8SfcnVsdcSfdW51LCBkdXlhcmzEsWzEscSfxLFuxLEgdmUgZGnEn2VyIHBlcmZvcm1hbnMgbWV0cmlrbGVyaW5pIGhlc2FwbGFtYWsgacOnaW4ga3VsbGFuxLFsxLF5b3IuIEVsZGUgZWRpbGVuIHNvbnXDp2xhcmEgZ8O2cmUgbW9kZWxpbiBnZW5lbCBkb8SfcnVsdcSfdSAlNTEuNzIsIHlhbmkgcmFzdGdlbGUgdGFobWluIHNldml5ZXNpbmRlIGJpciBkb8SfcnVsdcSfYSBzYWhpcC4NCg0KYGBge3IgcGVyZm9ybWFuY2UtZXZhbHVhdGlvbn0NCg0KY29uZnVzaW9uTWF0cml4KHByZWRpY3Rpb25zLCB0ZXN0RGF0YSRIaXptZXRLdWxsYW5pbWkpDQpgYGANCg==