हाँ, यह ठीक काम करता है:
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]]
तो मूल और फिर से बनाया मॉडल की भविष्यवाणियों वास्तव में समान हैं।
स्रोत
2017-11-02 16:00:24
जब तक आपके प्रतिगमन के लिए पूर्वानुमान फ़ंक्शन केवल आपके द्वारा सेट किए गए चर का उपयोग करता है, तो आपको फिट किए बिना ठीक होना चाहिए। –
इसका परीक्षण करने के लिए, आप sklearn में एक छोटा लॉजिस्टिक रिग्रेशन चला सकते हैं, फिर एक नया लॉजिस्टिक रिग्रेशन ऑब्जेक्ट बना सकते हैं और 'coef_' और' intercept_' सेट करते हैं जैसा आपने किया था, और फिर भविष्यवाणी में दोनों की तुलना करें। यदि यह चलता है (यह एक दिया गया नहीं है, उदा। एसवीएम के साथ बहुत मुश्किल है), तो मुझे नहीं लगता कि यह क्यों काम नहीं करना चाहिए। – eickenberg