R'de K-En Yakın Komşular Algoritması [Örneklerle Nihai Kılavuz]

Yayınlanan: 2020-03-20

R'deki KNN algoritması, çok yönlülüğü ve işlevselliği nedeniyle oldukça popülerdir. Yani, makine öğrenimi üzerinde çalışıyorsanız, adını ara sıra duymuş olmalısınız. Ve merak etmiş olmalısınız, “R'de KNN nedir?” veya “Nasıl çalışır?”.

Bu yazıda, bu soruların cevaplarını bulacağız ve bu konuyu iyice anlamanıza yardımcı olacağız. O halde lafı fazla uzatmadan konuya girelim.

İçindekiler

KNN Algoritması nedir?

KNN, K En Yakın Komşu anlamına gelir. Noktaların bitişik veri noktalarının özelliklerine göre veri noktalarını hedef sınıflara sınıflandıran denetimli bir makine öğrenimi algoritmasıdır.

Makinenizin elma ve portakal resimlerini tanımlamasını ve aralarında ayrım yapmasını istediğinizi varsayalım. Bunu yapmak için elma ve portakal görüntülerinden oluşan bir veri kümesi girmeniz gerekir. Ardından, her meyveyi benzersiz özellikleri aracılığıyla algılamasına izin vererek veri modelinizi eğitmeniz gerekir. Mesela elmaları kırmızı renklerinden, portakalları renklerinden tanıyabilir.

Veri modelinizi eğittikten sonra, diğer elma ve portakal resimleriyle yeni bir veri kümesi vererek onu test edebilirsiniz. Şimdi KNN algoritması, elmaları ve portakalları eğitim modelinde tespit ettiği özelliklere göre sınıflandırarak ayıracak.

Ne kadar benzer olduklarını görmek için bir veri noktasının özelliklerini komşularıyla karşılaştırır. Ve onları bu bulgulara göre sınıflandıracaktır.

Çoğu durumda, noktaları bir grafik üzerinde çizeceksiniz. Ve iki nokta arasındaki mesafeyi hesaplamak için farklı formüller kullanmanız gerekecek. İki veri noktası arasındaki mesafeyi hesaplamak için en yaygın yöntem Öklid mesafesidir. Noktalarda bulunan özelliklerden veya niteliklerden bağımsız olarak mesafeyi hesaplar.

KNN Algoritmasının Özellikleri

R'deki KNN Algoritmasının özellikleri şunlardır:

  • Denetimli bir öğrenme algoritmasıdır. Bu, verilerin çıktısı hakkında tahminler yapmak için etiketli girdi verilerini kullandığı anlamına gelir.
  • Basit bir makine öğrenme algoritmasıdır.
  • KNN algoritmasını birden fazla problem türü için kullanabilirsiniz.
  • Parametrik olmayan bir modeldir. Bu, veriler hakkında herhangi bir varsayımda bulunmadığı anlamına gelir, bu da gerçek verilerle ilgili sorunları çözmeyi oldukça faydalı kılar.
  • Veri noktalarını komşu olanlarla karşılaştırarak verileri sınıflandırır. Basit bir deyişle, KNN algoritmasının çalışması, niteliklerin benzerliğine dayanmaktadır.
  • Tembel algoritmalar kategorisine girer. Tembel bir algoritma, aynı olandan ayırt edici işlevi öğrenmek yerine eğitim verilerini ezberler. Makine öğrenimi algoritmalarının türleri hakkında daha fazla bilgi edinin.
  • Regresyon ve sınıflandırma problemlerini çözmek için KNN'yi kullanabilirsiniz.

KNN algoritması tarafsızdır ve yukarıda bahsettiğimiz özelliklerden dolayı birçok problem için tercih edilen bir seçimdir. Ancak, her şeyin kendi sorunları vardır ve KNN bir istisna değildir.

Bu algoritma, çok karmaşık sorunları çözmek için kullanışlı değildir. Modelinin de bir soyutlama süreci yoktur. Yeterli bir model için, tembel bir algoritma olduğu için zaman zaman değerli içgörüleri kaçırabileceğinden yüksek kaliteli verilere ihtiyacınız olacaktır. Hızlıdır, ancak veri temizliği için önemli miktarda zaman harcamanız gerekir.

O nasıl çalışır?

KNN'nin R'de nasıl çalıştığını anlamak için başka bir örneğe bakacağız.

Veri kümenizin iki sınıfı olduğunu varsayalım. 1. Sınıf dikdörtgenlere sahipken 2. Sınıf dairelere sahiptir. Bu algoritmayı kullanarak girdiğiniz yeni veri noktasını bu iki sınıftan birine atamanız gerekmektedir. Bunu yapmak için önce algoritmanız için 'K' değerini tanımlamanız gerekir. K, algoritmanın dikkate alacağı en yakın komşu noktalarının sayısını belirtir.

Bu örnekte K'yi 4 olarak girdiğinizi düşünün. Ve K = 4 için komşular üç daire ve bir dikdörtgendir. Bu durumda, noktayı çevreleyen daire sayısı dikdörtgenlerden daha fazla olduğu için veri noktasını 2. Sınıfta sınıflandıracaksınız.

Komşular üç dikdörtgen ve bir daire olsaydı, onu Sınıf 1'de sınıflandırırdınız. En yakın komşunun kim olduğunu belirlemek için KNN algoritmasının iki nokta arasındaki mesafeyi nasıl hesapladığını zaten tartışmıştık. Bu amaçla Öklid uzaklık formülünü kullanır .

Öklid uzaklığı formülü aşağıdaki gibidir:

d(p,q) = d(q,p) = ( q 1 p 1 ) 2 +( q 2 p 2 ) 2 … ( q n p n ) 2

Burada p = (p1, p2, p3, ….pn) ve q = (q1, q2, q3, … qn). Bu denklemde 'd', p ve q noktaları arasındaki öklid uzaklığını ifade eder.

Gördüğünüz gibi, oldukça basit. Ve sadeliği, onu en popüler algoritmalardan biri olduğu için çok yönlü hale getirir. Çeşitli problemler için kullanabilirsiniz.

R'de KNN Örneği

KNN algoritmalarının gerçek hayatta uygulamalarını nerede gördüğümüzü merak ediyor olabilirsiniz. Bunun için Amazon'a bakmanız gerekiyor.

Amazon'un büyük başarısı birçok faktöre bağlıdır, ancak bunların arasında öne çıkan bir tanesi gelişmiş teknolojileri kullanmalarıdır. Bu teknolojilerden biri de makine öğrenmesidir. Öneri sistemleri, yüz milyonlarca gelir elde etmelerine yardımcı oldu. Ve bu öneri sistemi bu amaçla KNN algoritmasını kullanır.

Ayrıca okuyun: Makine Öğrenimi Proje Fikirleri

Amazon'dan deri ceketli siyah bir Wrangler's kot pantolon aldığınızı varsayalım. Birkaç hafta sonra başka bir kişi aynı kot pantolonu Amazon'dan alır ama o deri ceketi almaz. Amazon, sizinkine benzer bir satın alma modeli gösterdiği için bu kişiye ceketi satın almasını önerecektir.

Yani Amazon'un öneri sistemi insanların satın alma alışkanlıklarına göre çalışıyor. Ve bu benzerliği anlamak için KNN algoritmasını bu prensibe dayalı olarak kullanabilirsiniz. Artık bu algoritmanın temellerini ve gerçek dünyadaki uygulamasını biliyorsunuz. Kullanımının başka birçok örneği var, ama şimdilik buna bağlı kalalım.

Dünyanın en iyi Üniversitelerinden veri bilimi derslerini öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Sonuç Düşünceleri

R'deki KNN algoritmasının birçok kullanımı vardır. Ve bu makaleyi okuduktan sonra, bu algoritmaya aşina olduğunuzdan eminiz. Bu tür makine öğrenimi algoritmaları hakkında daha fazla bilgi edinmek istiyorsanız ayrıntılı Makine Öğrenimi Kursumuza göz atmalısınız .

Diğer yönlerinden ayrı olarak, makine öğrenimi ve içinde kullanılan çeşitli algoritmalar hakkında çok şey öğreneceksiniz.

R programlama dili ne için kullanılır?

R programlama dili, istatistik ve veri görselleştirme içeren hesaplamalar için oluşturulmuştur. Günümüzde R, istatistikçiler, veri bilimcileri, veri ve iş analistleri tarafından yaygın olarak kullanılmaktadır. R'nin özü, içinde yerleşik birçok istatistiksel işlevsellik ile birlikte gelir, bu nedenle R'nin başarabileceği temel veri analizinin çoğu için üçüncü taraf kitaplıkları gerekli değildir. Diğer birçok bilgisayar programlama dilinden farklı olarak R, genel amaçlı bir dil değildir. Bu nedenle, esasen son derece iyi yaptığı belirli işlevleri elde etmek için kullanılır. Bununla birlikte, R, kullanıcılar tarafından oluşturulan büyük hacimli günlük verilerden faydalı bilgiler elde etmek için tüm sektörlerdeki işletmeler tarafından yaygın olarak kullanılmaktadır.

R ile programlamanın avantajları nelerdir?

R programlama dili hem acemi hem de uzman programcılara çeşitli avantajlar sunar. Başlıca faydaları, istatistiksel, hesaplamalı modeller oluşturmak için sağladığı özellikleri ve kolaylığı içerir. Ardından, R, paralel dağıtılmış hesaplamayı destekleyen açık kaynaklı bir programlama dilidir. Lisans veya kullanım ücreti almak zorunda kalmadan herkes kullanabilir. Ayrıca, çeşitli işlevleri desteklemek için büyük bir kütüphane ile birlikte gelir ve platformdan bağımsız çerçevesi de kolaylık sağlar. R ayrıca etkili veri temizleme, web kazıma ve veri karıştırma işlevleri için kullanılabilir ve yaygın olarak makine öğrenimi modelleri geliştirmek için kullanılır.

KNN neden Tembel Öğrenci Algoritması olarak adlandırılıyor?

K-En Yakın Komşular Algoritması, makine öğreniminde kullanılan en basit algoritmalardan biridir. Ancak, genellikle tembel öğrenen olarak adlandırılır. Bunun nedeni, bu algoritmaya eğitimle ilgili tüm verileri sağladığınızda, kendini eğitmek için hiçbir çalışma yapmamasıdır. Ayırt edici fonksiyonları öğrenmek yerine, tüm eğitim veri setini ezberledi. Her yeni veri noktası eklenmesiyle, bu algoritma tüm eğitim setinde en yakın komşularını arar ve bu da her zaman tahmin yapmak için gereken süreyi artırır. Bu genellikle onu hesaplama açısından pahalı ve çok zaman alıcı hale getirir.