Ecco un esempio che crea due set di dati:Come duplicare uno stimatore per usarlo su più dataset?
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import make_classification
# data set 1
X1, y1 = make_classification(n_classes=2, n_features=5, random_state=1)
# data set 2
X2, y2 = make_classification(n_classes=2, n_features=5, random_state=2)
voglio usare il LogisticRegression
stimatore con gli stessi valori di parametro per adattare un classificatore su ogni insieme di dati:
lr = LogisticRegression()
clf1 = lr.fit(X1, y1)
clf2 = lr.fit(X2, y2)
print "Classifier for data set 1: "
print " - intercept: ", clf1.intercept_
print " - coef_: ", clf1.coef_
print "Classifier for data set 2: "
print " - intercept: ", clf2.intercept_
print " - coef_: ", clf2.coef_
Il problema è che entrambi i classificatori sono gli stessi:
Classifier for data set 1:
- intercept: [ 0.05191729]
- coef_: [[ 0.06704494 0.00137751 -0.12453698 -0.05999127 0.05798146]]
Classifier for data set 2:
- intercept: [ 0.05191729]
- coef_: [[ 0.06704494 0.00137751 -0.12453698 -0.05999127 0.05798146]]
Per questo semplice esempio, potrei usare qualcosa di simile:
lr1 = LogisticRegression()
lr2 = LogisticRegression()
clf1 = lr1.fit(X1, y1)
clf2 = lr2.fit(X2, y2)
per evitare il problema. Tuttavia, la domanda rimane: come duplicare/copiare uno stimatore con i suoi particolari valori di parametro in generale?
Grazie! Mi è mancato perché sklearn.base non è documentato nel riferimento: http://scikit-learn.org/dev/modules/classes.html – tjanez
Immagino che sia perché sono considerati interni. Immagino che il clone debba essere documentato, anche se ... –