2014-06-26 9 views
6

Czy można utworzyć taką instancję na podstawie istniejących współczynników, które zostały obliczone, powiedzmy w innej implementacji (np. Java)?Tworzenie instancji sklearn.linear_model.LogisticRegression z istniejących współczynników

Próbowałem utworzyć instancję, a następnie ustawić coef_ i intercept_ bezpośrednio i wygląda na to, że działa, ale nie jestem pewien, czy istnieje tu strona zerwana, czy też coś mogę zepsuć.

+2

Dopóki funkcja przewidywania dla regresji używa tylko tych zmiennych, które ustawiłeś, powinieneś być w porządku bez dopasowania. –

+3

Aby to przetestować, możesz uruchomić małą regresję logistyczną w sklearn, następnie utworzyć nowy obiekt regresji logistycznej i ustawić 'coef_' oraz' intercept_' tak, jak zrobiłeś, a następnie porównać oba przewidywania. Jeśli działa (nie jest to dane, bardzo trudne z np. SVM), to nie rozumiem, dlaczego nie powinno działać. – eickenberg

Odpowiedz

0

Tak, to działa dobrze:

import numpy as np 
from scipy.stats import norm 
from sklearn.linear_model import LogisticRegression 
import json 
x = np.arange(10)[:, np.newaxis] 
y = np.array([0,0,0,1,0,0,1,1,1,1]) 
# training one logistic regression 
model1 = LogisticRegression(C=10, penalty='l1').fit(x, y) 
# serialize coefficients (imitate loading from storage) 
encoded = json.dumps((model1.coef_.tolist(), model1.intercept_.tolist(), model1.penalty, model1.C)) 
print(encoded) 
decoded = json.loads(encoded) 
# using coefficients in another regression 
model2 = LogisticRegression() 
model2.coef_ = np.array(decoded[0]) 
model2.intercept_ = np.array(decoded[1]) 
model2.penalty = decoded[2] 
model2.C = decoded[3] 
# resulting predictions are identical 
print(model1.predict_proba(x) == model2.predict_proba(x)) 

wyjściowa:

[[[0.7558780101653273]], [-3.322083150375962], "l1", 10] 
[[ True True] 
[ True True] 
[ True True] 
[ True True] 
[ True True] 
[ True True] 
[ True True] 
[ True True] 
[ True True] 
[ True True]] 

więc przewidywania oryginalnych i ponownie tworzone modele są w istocie identyczne.

Powiązane problemy