簡體   English   中英

python scikit學習邏輯回歸錯誤

[英]python scikit learn logistic regression error

我正在嘗試根據以下數據繪制邏輯回歸圖

X = np.array([0,1,2,3,4,5,6,7,8,9,10,11])
y = np.array([0,0,0,0,1,0,1,0,1,1,1,1])

但是,當我嘗試:

import numpy as np
import matplotlib.pyplot as plt

from sklearn import linear_model

X = np.array([0,1,2,3,4,5,6,7,8,9,10,11])
y = np.array([0,0,0,0,1,0,1,0,1,1,1,1])

clf = linear_model.LogisticRegression(C=1e5)
clf.fit(X, y)

我收到以下錯誤:

ValueError: Found input variables with inconsistent numbers of samples: [1, 12]

我有點困惑為什么它認為X或y只有一個樣本。

sklearn的現代版本期望2D數組為X ,因此請嘗試按照錯誤消息中的建議對其進行重塑:

In [7]: clf.fit(X.reshape(-1,1), y)
Out[7]:
LogisticRegression(C=100000.0, class_weight=None, dual=False,
          fit_intercept=True, intercept_scaling=1, max_iter=100,
          multi_class='ovr', n_jobs=1, penalty='l2', random_state=None,
          solver='liblinear', tol=0.0001, verbose=0, warm_start=False)

順便說一句, sklearn 0.19.1給了我一個明確的錯誤消息:

In [10]: sklearn.__version__
Out[10]: '0.19.1'

In [11]: clf.fit(X, y)
...
skipped
...
ValueError: Expected 2D array, got 1D array instead:
array=[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11.].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.

UPDATE :完整代碼:

In [41]: %paste
import numpy as np
import matplotlib.pyplot as plt

from sklearn import linear_model
import sklearn

X = np.array([0,1,2,3,4,5,6,7,8,9,10,11])
y = np.array([0,0,0,0,1,0,1,0,1,1,1,1])

print('SkLearn version: {}'.format(sklearn.__version__))

clf = linear_model.LogisticRegression(C=1e5)
clf.fit(X.reshape(-1,1), y)

## -- End pasted text --
SkLearn version: 0.19.1
Out[41]:
LogisticRegression(C=100000.0, class_weight=None, dual=False,
          fit_intercept=True, intercept_scaling=1, max_iter=100,
          multi_class='ovr', n_jobs=1, penalty='l2', random_state=None,
          solver='liblinear', tol=0.0001, verbose=0, warm_start=False)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM