2014-04-15 37 views
6

predict işlevinde type="class" ve type="response" arasındaki fark nedir?Parametre() işlevinin parametre parametresi

predict(modelName, newdata=testData, type = "class") 

ve

predict(modelName, newdata=testData, type = "response") 
+4

Hangi "tahmin" işlevi? 'predik'', çeşitli model uydurma fonksiyonlarının sonuçlarından tahminler için genel bir işlevdir. Fonksiyon, ilk argüman sınıfına bağlı olan belirli yöntemleri çağırır. – shadow

cevap

2

bkz ?predict.lm: arasında Örneğin

predict.lm tahminler bir vektör ya da sütun adları fit, lwr ile tahminler ve sınırları bir matris ve upr halinde üretir aralık ayarlandı. type = "terms" için, bu, terim başına bir sütuna sahip bir matristir ve bir "sabit" özniteliğine sahip olabilir. yani predict(l)

> d <- data.frame(x1=1:10,x2=rep(1:5,each=2),y=1:10+rnorm(10)+rep(1:5,each=2)) 
> l <- lm(y~x1+x2,d) 
> predict(l) 
     1   2   3   4   5   6   7   8   9  10 
2.254772 3.811761 4.959634 6.516623 7.664497 9.221486 10.369359 11.926348 13.074222 14.631211 

> predict(l,type="terms") 
      x1   x2 
1 -7.0064511 0.8182315 
2 -5.4494620 0.8182315 
3 -3.8924728 0.4091157 
4 -2.3354837 0.4091157 
5 -0.7784946 0.0000000 
6 0.7784946 0.0000000 
7 2.3354837 -0.4091157 
8 3.8924728 -0.4091157 
9 5.4494620 -0.8182315 
10 7.0064511 -0.8182315 
attr(,"constant") 
[1] 8.442991 

sabit

+0

Doğrusal modele atıfta bulunuyorsunuz değil mi? (predict.lm) fakat bildiğim kadarıyla, sınıf ve tip yanıtı sınıflandırma modelleri ile ilgilidir. Bu parametre değerlerini açıklar mısınız? – kuz

+0

Gölgenin yorumuna bakın - modelName'ın bir lm nesnesi olması muhtemel olduğunu düşündüm, ancak eğer değilse (ClassName) hangi sınıfın verdiğini belirtmeniz ya da predict.class() için yardım dosyasına bakmanız gerekir. – Miff

+0

Cevabınız için teşekkür ederiz, cevabınız? Predict.glm ve? Predict.rpart. Aşırı yöntemler gibi onları tedavi eden jenerikliği tamamen göz ardı ettim. – kuz

0

type = "response"GLM içinde modelleri kullanılır ve type = "class"rpart modelleri (CART) kullanılır + predict(l,type="terms") satır toplamları olan. Bkz: Sınıf size bu değere atanan etiketi verirken

3

Tepki size sayısal sonuç verir.

Yanıt, eşiğinizi belirlemenizi sağlar. Örneğin, glm.probs yılında

glm.fit = glm(Direction~., data=data, family = binomial, subset = train) 
glm.probs = predict(glm.fit, test, type = "response") 

biz 0 ile 1 Şimdi eşik değerini belirleyebilir arasında bazı sayısal değerlere sahip, en 0.6 diyelim. Yön, aşağı yukarı iki olası sonuca sahiptir.

glm.pred = rep("Down",length(test)) 
glm.pred[glm.probs>.6] = "Up"