Scikit LogisticRegression不能学习or和布尔函数



在scikit-learn中实现的LogisticRegression似乎不能学习简单的布尔函数AND或or。我会理解异或给出不好的结果,但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]

这个问题似乎与正则化有关。下面的代码使分类器工作:

logit = LogisticRegression(C=100)

不幸的是,文档有点稀疏,所以我不确定C参数的范围是什么。

相关内容

  • 没有找到相关文章

最新更新