如何对某些十进制数据应用scikit-learn Logistic回归?

时间:2013-08-03 06:28:29

标签: python machine-learning scikit-learn linear-regression logistics

我的训练数据集如下:

0.00479616 |  0.0119904 |  0.00483092 |  0.0120773 | 1
0.51213136 |  0.0113404 |  0.02383092 |  -0.012073 | 0
0.10479096 |  -0.011704 |  -0.0453692 |  0.0350773 | 0

前4列是一个样本的特征,最后一列是其输出。

我用这种方式使用scikit:

  data = np.array(data)
  lr = linear_model.LogisticRegression(C=10)

  X = data[:,:-1]
  Y = data[:,-1]
  lr.fit(X, Y)

  print lr
  # The output is always 1 or 0, not a probability number.
  print lr.predict(data[0][:-1])

我认为Logistic回归总是应该给出0到1之间的概率数。

1 个答案:

答案 0 :(得分:14)

使用predict_proba方法获取概率。 predict提供了类标签。

>>> lr = LogisticRegression()
>>> X = np.random.randn(3, 4)
>>> y = [1, 0, 0]
>>> lr.fit(X, y)
LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,
          intercept_scaling=1, penalty='l2', random_state=None, tol=0.0001)
>>> lr.predict_proba(X[0])
array([[ 0.49197272,  0.50802728]])

(如果你已经阅读了documentation,你就会发现这一点。)