2014-06-26 9 views
6

क्या कोई मौजूदा गुणांक के आधार पर ऐसा एक उदाहरण बना सकता है जिसे गणना की गई थी एक अलग कार्यान्वयन (उदा। जावा) में?मौजूदा गुणांक से sklearn.linear_model.LogisticRegression उदाहरण बनाना

मैंने एक उदाहरण बनाने की कोशिश की और फिर coef_ और intercept_ को सीधे सेट किया और ऐसा लगता है लेकिन मुझे यकीन नहीं है कि यहां कोई नीचे की तरफ है या यदि मैं कुछ तोड़ सकता हूं।

+2

जब तक आपके प्रतिगमन के लिए पूर्वानुमान फ़ंक्शन केवल आपके द्वारा सेट किए गए चर का उपयोग करता है, तो आपको फिट किए बिना ठीक होना चाहिए। –

+3

इसका परीक्षण करने के लिए, आप sklearn में एक छोटा लॉजिस्टिक रिग्रेशन चला सकते हैं, फिर एक नया लॉजिस्टिक रिग्रेशन ऑब्जेक्ट बना सकते हैं और 'coef_' और' intercept_' सेट करते हैं जैसा आपने किया था, और फिर भविष्यवाणी में दोनों की तुलना करें। यदि यह चलता है (यह एक दिया गया नहीं है, उदा। एसवीएम के साथ बहुत मुश्किल है), तो मुझे नहीं लगता कि यह क्यों काम नहीं करना चाहिए। – eickenberg

उत्तर

0

हाँ, यह ठीक काम करता है:

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)) 

आउटपुट:

[[[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]] 

तो मूल और फिर से बनाया मॉडल की भविष्यवाणियों वास्तव में समान हैं।

संबंधित मुद्दे