Neden sınıflandırmaya regresyon yoluyla yaklaşmıyorsunuz?


51

Makine öğrenirken gördüğüm bazı materyaller, bir sınıflandırma problemine regresyon yoluyla yaklaşmanın kötü bir fikir olduğunu söyledi. Ancak verilere uymak için sürekli bir regresyon yapmak ve ayrık sınıflandırmalar elde etmek için sürekli tahminleri kesmek her zaman mümkün olabilir. Peki neden kötü bir fikir?


Bence regresyon her zaman üretim ortamındaki sınıflandırmadan daha karmaşıktır

Yanıtlar:


57

".. regresyon yoluyla sınıflandırma problemi" .. " regresyon" ile lineer regresyon demek olduğunu kabul edeceğim ve bu yaklaşımı bir lojistik regresyon modelinin uydurma "sınıflandırma" yaklaşımıyla karşılaştıracağım.

Bunu yapmadan önce, regresyon ve sınıflandırma modelleri arasındaki ayrımı açıklığa kavuşturmak önemlidir. Regresyon modelleri, yağış miktarı veya güneş ışığı yoğunluğu gibi sürekli bir değişkeni tahmin eder. Bir görüntünün bir kedi içerme olasılığı gibi olasılıkları da tahmin edebilirler. Bir olasılık tahmin edici regresyon modeli, bir karar kuralı uygulayarak sınıflandırıcının bir parçası olarak kullanılabilir - örneğin, olasılık% 50 ya da daha fazla ise, bunun bir kedi olduğuna karar verin.

Lojistik regresyon olasılıkları öngörür ve bu nedenle bir regresyon algoritmasıdır. Bununla birlikte, genellikle makine öğrenmesi literatüründe bir sınıflandırma yöntemi olarak tanımlanmaktadır, çünkü sınıflayıcıları yapmak için kullanılabilir (ve sıklıkla kullanılır). SVM gibi yalnızca bir sonucu öngören ve olasılık sağlamayan "gerçek" sınıflandırma algoritmaları da vardır. Bu tür bir algoritmayı burada tartışmayacağız.

Sınıflandırma Problemlerinde Lineer ve Lojistik Regresyon

Andrew Ng'in açıkladığı gibi , doğrusal regresyon ile verilerde bir polinom sığdırıyorsunuz - örneğin, aşağıdaki örnekte olduğu gibi {tümör büyüklüğü, tümör türü} örnek setine düz bir çizgi sığdırıyoruz :

görüntü tanımını buraya girin

Yukarıda, malign tümörler , malign olmayan olanlar alırlar ve yeşil çizgi bizim hipotezimiz . Tahmin yapmak için, herhangi bir tümör boyutu , büyük olursa malign tümör öngördüğümüzü söyleyebiliriz, aksi takdirde iyi huylu olduğunu tahmin ederiz.10h(x)xh(x)0.5

Her bir eğitim seti örneğini doğru bir şekilde tahmin edebildiğimiz gibi gözüküyor, ama şimdi işi biraz değiştirelim.

Sezgisel olarak, belli bir eşik değerden daha büyük tüm tümörlerin malign olduğu açıktır. Öyleyse büyük bir tümör boyutuna sahip başka bir örnek ekleyelim ve tekrar doğrusal regresyon uygulayalım:

görüntü tanımını buraya girin

Şimdi bizim artık çalışmıyor. Doğru tahminler yapmaya devam etmek için onu ya da başka bir şeye değiştirmemiz gerekir - ancak algoritmanın çalışması gerektiği gibi değil.h(x)>0.5malignanth(x)>0.2

Her yeni bir örnek geldiğinde hipotezi değiştiremeyiz. Bunun yerine, bunu eğitim seti verilerinden öğrenmeliyiz ve (öğrendiğimiz hipotezi kullanarak) daha önce görmediğimiz veriler için doğru tahminler yapmalıyız.

Umarım bu neden doğrusal regresyonun sınıflandırma problemlerine en uygun olmadığını açıklar! Ayrıca, VI izlemek isteyebilirsiniz . Lojistik regresyon. Fikri daha ayrıntılı olarak açıklayan ml-class.org'daki sınıflandırma videosu .


DÜZENLE

Olasılık , iyi bir sınıflandırıcının ne yapacağını sordu. Bu özel örnekte muhtemelen böyle bir hipotez öğrenebilecek lojistik regresyon kullanacaksınız (Sadece bunu yapıyorum):

görüntü tanımını buraya girin

Her iki unutmayın lineer regresyon ve lojistik regresyon size düz bir çizgi (veya daha yüksek dereceden polinom) vermek ancak bu çizgiler farklı bir anlamı vardır:

  • h(x)Doğrusal regresyon için , enterpolasyonlar veya ekstrapolatlar için çıktıyı ve gördüğümüz için değeri tahmin eder . Bu sadece yeni bir takmak ve ham bir sayı almak gibi bir şeydir ve tahmin etmek gibi işler için daha uygundur, araba fiyatını {araba büyüklüğü, araba yaşı} vb.xx
  • h(x)Lojistik regresyon için , "pozitif" sınıfına ait olma olasılığını gösterir . Bu nedenle regresyon algoritması olarak adlandırılır - sürekli bir miktar, olasılık tahmin eder. Bununla birlikte, olasılıkta gibi bir eşik belirlerseniz, bir sınıflandırıcı elde edersiniz ve çoğu durumda bir lojistik regresyon modelinin çıktısı ile bu yapılır. Bu, arsaya bir çizgi koymaya eşdeğerdir: sınıflandırıcı çizginin üstünde oturan tüm noktalar bir sınıfa aitken, aşağıdaki noktalar diğer sınıfa aittir.x h ( x ) > 0,5xh(x)>0.5

Sonuç olarak, sınıflandırma senaryosunda , regresyon senaryosuna göre tamamen farklı bir akıl yürütme ve tamamen farklı bir algoritma kullanıyoruz.


@andreister: Bütün aykırı değerler kaldırılmış ya da kesilmiş olsaydı, doğrusal regresyon hala kötü bir fikir midir?
Tomek Tarczynski,

Örneğiniz iyi, ancak "iyi bir sınıflandırıcı" nın ne yapabileceğini göstermiyor. bunu ekleyebilir misiniz? Veri noktalarının eklenmesinin çizgiyi hemen hemen herhangi bir yöntem için değiştirmesi gerektiğini unutmayın. Bunun neden kötü bir değişim olduğunu açıklamıyorsunuz.
Olasılık 20

1
@ vereister: Örneğiniz bazı kötü verilerin doğrusal gerilemeyi bozabileceğini gösterdi. Fakat "regresyon" u iyi bir sınıflandırıcı yapmak için kuadrik regresyon veya daha da karmaşık bir hipotez kullanabilir miyiz?
Strin

1
@probabilityislogic - iyi nokta, cevabı güncelledik.
andreister

2
@Strin: Daha karmaşık hipotezlerin verilere uygunluk gösterme olasılığı daha yüksek. (Yani, elinizde olan verilerin tuhaflıklarına uyması ve gelecekteki verilere yetersiz uyumu sağlamasıdır.) Ön sıradaki bir erkeğin profesörün bizi tutup tutmayacağından emin olduğu bir sınıfı hatırlıyorum. bize elektrik piyasalarında ölüm yapmamızı sağlayacak sofistike algoritmaları vermemek ... Asla gerçekten çok fazla uydurmadı.
Wayne,

14

Sınıflandırmanın aslında nihai amaç olduğu bir örnek düşünemiyorum. Neredeyse her zaman gerçek amaç, olasılıklar gibi doğru tahminler yapmaktır. Bu ruhta, (lojistik) gerileme senin arkadaşın.


5
Etkili bir şekilde sınıflandırmanın, sonuçta, insan müdahalesi veya yargıya sahip olmanın pratik veya imkânsız olduğu otomatikleştirilmiş işlemlerin çoğunda amaç olduğu bana öyle geliyor . Örneğin, gürültülü bir şekilde aktarılan dijital bir sinyal alırken, alıcı belirli bir bitin 0 veya 1 yerine 0,97 olması gerektiğine karar veremez.
kardinal

6
Yanlış bir pozitifin veya yanlış bir negatifin maliyetinin, sınıflandırmayı yapan analistin kontrolünde nadiren olması dışında, orijinal analist, sınıflandırma için “doğru” kesme noktasını güvenilir bir şekilde seçemez. Ek olarak, hiçbir sınıflandırma yapılmayan ve öneri "daha fazla veri almak" olan, orta riskli bir "gri bölgeye" sahip olmak akıllıca olacaktır.
Frank Harrell

1
Sanırım bu cevaptaki iddianın tam tersine inanıyorum ve bu perspektifle makine öğrenimi tüm üniversite eğitimimde hiç karşılaşmadım. Birisinin bunu söylemesi çok şaşırtıcı. Uygulamada neredeyse her zaman insanların sürekli bir miktar tahmin etmek istediklerini düşündüğü problemlerle karşılaştım, ancak gerçekten bu miktarın farklı kategorik kovalarına üyeliği tahmin etmek istiyorlar. Sürekli bir miktarın tahmin edilmesinin problemin altında yatan temel çıkarımlar açısından yararlı olduğu örnekleri bulmakta zorlanıyorum.
ely

9
Sanırım verdiğin kadar iyi bir makine öğrenme dogması almışsın. Çok sayıda hatalı varsayım yapıyorsunuz. Bunlardan biri, insanların gerçekten kategorik bir kovaya zorla seçilmeleri gerektiğidir. Bunu istediğini iddia edebilirler, ancak çoğu durumda buna ihtiyaç duymazlar. Seçenekler zorlanmak zorunda değildir. Mükemmel bir seçim "karar vermemek, daha fazla veri almak" tır. Temel bir sürekli miktarın öngörülmesi genellikle gerekli olan şeydir. Optimum (Bayes) karar teorisi çalışmak için zaman ayırmaya değer. Somut bir örnek verebilirseniz, daha fazla yorum yapacağım.
Frank Harrell

11
Frank Harrell adlı kullanıcının yorumunda +1. Örneğin, sıcaklık tahminleri, yağışlar, nehir seviyeleri, sıcak ya da ıslak olacağı ya da su akacağını tahmin etmekten çok daha faydalıdır. Sorun koyun ya da keçi olsa bile mi? pr (koyun) tahmini, ikili "koyun" veya "keçi" den daha bilgilendiricidir.
Nick Cox,

1

Neden bazı kanıtlara bakmıyorsun? Birçoğu, doğrusal regresyonun sınıflandırma için doğru olmadığını iddia etse de, yine de işe yarayabilir. Bazı sezgileri kazanmak için, scikit-learn'ın sınıflandırıcı karşılaştırmasına lineer regresyon (sınıflandırıcı olarak kullanılır) dahil ettim . İşte olanlar:

görüntü tanımını buraya girin

Karar sınırı, diğer sınıflandırıcılardan daha dardır, ancak doğruluk aynıdır. Doğrusal destek vektör sınıflandırıcısına benzer şekilde, regresyon modeli size sınıfları özellik uzayında ayıran bir köprü sağlar.

Gördüğümüz gibi, lineer regresyonun sınıflandırıcı olarak kullanılması işe yarayabilir, ancak her zaman olduğu gibi öngörüleri doğrularım.

Kayıt için, sınıflandırıcı kodum şöyle görünür:

class LinearRegressionClassifier():

def __init__(self):
    self.reg = LinearRegression()

def fit(self, X, y):
    self.reg.fit(X, y)

def predict(self, X):
    return np.clip(self.reg.predict(X),0,1)

def decision_function(self, X):
    return np.clip(self.reg.predict(X),0,1)

def score(self, X, y):
    return accuracy_score(y,np.round(self.predict(X)))


0

1,10,100,...1,2,3,...

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.