預先感謝您提供任何指導。我試圖通過使用scikit-learn進行Logistic迴歸分類,其中X是Intercept,而一個字段是一組心臟數據,稱爲heartrate。基於研究其他誰也面臨這個錯誤,我已經確定心臟陣列都是相同的形狀/大小。ValueError:使用序列設置數組元素(LogisticRegression使用基於數組的元素)
它獲取sklearn/utils/validation.py行382中的值錯誤,在check_array中通過array = np.array(array,dtype = dtype,order = order,複製=副本)。我懷疑我的數組不是在內存中連續的,那正是喬裝的問題,但不知道...
下面是一些代碼剪斷,它能夠幫助偵探出了問題:
def get_training_set(self):
training_set = []
after_date = datetime.utcnow() - timedelta(weeks=8)
before_date = datetime.utcnow() - timedelta(hours=12)
activities = self.strava_client.get_activities(after=after_date, before=before_date)
for act in activities:
if act.has_heartrate:
streams = self.strava_client.get_activity_streams(activity_id=act.id, types=['heartrate'])
heartrate = np.array(list(filter(lambda x: x is not None, streams['heartrate'].data)))
fixed_heartrate = np.pad(heartrate, (0, 15000 - len(heartrate)), 'constant')
item = {'activity_type': self.classes.index(act.type),'heartrate': fixed_heartrate}
training_set.append(item)
return pd.DataFrame(training_set)
def train(self):
df = self.get_training_set()
df['Intercept'] = np.ones((len(df),))
y = df[['activity_type']]
X = df[['Intercept', 'heartrate']]
y = np.ravel(y)
#
model = LogisticRegression()
self.debug('y={}'.format(y))
model = model.fit(X,y)
異常發生在適合...
在此先感謝您的任何指導。
尊重,
邁克
從改進的格式化評論複製:
/python3.5/site-packages/sklearn/linear_model/logistic.py", line 1173, in
fit order="C")
File "/python3.5/site-packages/sklearn/utils/validation.py", line 521, in
check_X_y ensure_min_features, warn_on_dtype, estimator)
File "/lib/python3.5/site-packages/sklearn/utils/validation.py", line 382, in
check_array array = np.array(array, dtype=dtype, order=order, copy=copy)
ValueError: setting an array element with a sequence
和其他評論:
X和Y是這樣的:
X.shape=(29, 2)
y.shape=(29,)
X=[[1 array([74, 74, 77, ..., 0, 0, 0])]
[1 array([66, 67, 69, ..., 0, 0, 0])]
...
[1 array([92, 92, 91, ..., 0, 0, 0])]
[1 array([79, 79, 79, ..., 0, 0, 0])]]
y=[ 0 11 11 0 1 0 11 0 11 1 0 11 0 0 11 0 0 0 0 0 11 0 11 0 0 0 11 0 0]
的問題是在'fit'你做.... ?????編輯您的問題,以便提供關於錯誤及其位置的真實和清晰的信息。如果錯誤不明顯,我們將需要足夠的信息來自己重新創建問題。 – hpaulj
錯誤發生在模型的擬合函數中。堆疊如下: 「/python3.5/site-packages/sklearn/linear_model/logistic.py」,第1173行,適合 order =「C」) 文件「/python3.5/site-packages/sklearn/ utils/validation.py「,第521行,in check_X_y ensure_min_features,warn_on_dtype,estimator) check_array中的文件」/lib/python3.5/site-packages/sklearn/utils/validation.py「,第382行 array = np.array(array,dtype = dtype,order = order,copy = copy) ValueError:使用序列設置數組元素。 –
所以'X'是一個(29,2)dtype = object的數組,其中一個元素(第二列)本身就是一個數組。沒有深入細節,我可以明白爲什麼它會抱怨'用序列設置' - 序列是數組。整個數組是否應該是一個「特徵」,或者數組中的每個元素是一個單獨的特徵? – hpaulj