3

scikit-learn に実装されている LogisticRegression は、単純なブール関数 AND または OR を学習できないようです。XOR が悪い結果をもたらすことは理解できますが、AND と OR は問題ないはずです。私は何か間違ったことをしていますか?

from sklearn.linear_model import LogisticRegression, LinearRegression
import numpy as np

bool_and = np.array([0., 0., 0., 1.])
bool_or  = np.array([0., 1., 1., 1.])
bool_xor = np.array([0., 1., 1., 0.])


x = np.array([[0., 0.],
              [0., 1.],
              [1., 0.],
              [1., 1.]])

y = bool_and
logit = LogisticRegression()
logit.fit(x,y)

#linear = LinearRegression()
#linear.fit(x, y)

print "expected: ", y
print "predicted:", logit.predict(x)
#print linear.predict(x)

次の出力が得られます。

expected:  [0 0 0 1]
predicted: [0 0 0 0]
4

1 に答える 1

4

問題は正則化に関係しているようです。以下は、分類子を機能させます。

logit = LogisticRegression(C=100)

残念ながら、ドキュメントは少しまばらなので、Cパラメーターの範囲がわかりません。

于 2013-03-15T22:02:15.763 に答える