2014-04-15 10 views
6

Jaka jest różnica między type="class" i w funkcji predict?Parametr określający funkcję predict()

na przykład pomiędzy:

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

i

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

Która funkcja "przewidywania"? 'predict' jest funkcją generyczną dla przewidywań z wyników różnych funkcji dopasowania modelu. Funkcja wywołuje określone metody, które zależą od klasy pierwszego argumentu. – shadow

Odpowiedz

2

patrz ?predict.lm: predict.lm wytwarza wektor prognozy lub macierz predykcji tempie z nazwami kolumn fit, lwr i upr jeżeli interwał jest ustawiony. Dla type = "terms" jest to macierz z kolumną na termin i może mieć atrybut "stała".

> 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 

predict(l) jest to rząd od sumy predict(l,type="terms") + stały

+0

Masz na myśli model liniowy, prawda? (predict.lm), ale o ile wiem, typ odpowiedzi typu i typu jest związany z modelami klasyfikacji. Czy możesz wyjaśnić te wartości parametrów? – kuz

+0

Zobacz komentarz cienia - Wydawało mi się, że obiekt o nazwie model jest najprawdopodobniej obiektem lm, ale jeśli nie, musisz nam powiedzieć, którą klasę (ModelName) daje, lub przejrzeć plik help for predict.class(). – Miff

+0

Dziękuję za odpowiedź, otrzymałem odpowiedź w: predict.glm i? Predict.rpart. Całkowicie zignorowałem ogólność traktując je jak przeciążone metody. – kuz

3

Response daje wynik liczbowy natomiast klasa daje etykietę przypisanej do tej wartości.

Odpowiedź pozwala określić próg. Na przykład,

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

W glm.probs mamy pewne wartości liczbowe między 0 i 1. Teraz możemy określić wartość progową, powiedzmy 0,6. Kierunek ma dwa możliwe wyniki, w górę lub w dół.

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