28

次に、2つのデータセットを作成する例を示します。

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)

LogisticRegression同じパラメーター値を持つ推定量を使用して、各データセットに分類子を適合させたいと思います。

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_

問題は、両方の分類子が同じであるということです。

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

この簡単な例では、次のようなものを使用できます。

lr1 = LogisticRegression()
lr2 = LogisticRegression()

clf1 = lr1.fit(X1, y1)
clf2 = lr2.fit(X2, y2)

問題を回避するため。ただし、疑問は残ります。一般に、特定のパラメーター値を使用して推定量を複製/コピーするにはどうすればよいですか。

4

1 に答える 1

43
from sklearn.base import clone

lr1 = LogisticRegression()
lr2 = clone(lr1)
于 2012-12-04T11:26:37.603 に答える