Заранее благодарим за любые рекомендации. Я пытаюсь сделать классификацию с помощью логистической регрессии, используя scikit-learn, где X является Intercept и одно поле, которое представляет собой массив данных сердечного ритма, называемых heartrate. Основываясь на исследовании других, которые также столкнулись с этой ошибкой, я убедился, что массивы сердечных сокращений имеют одинаковую форму и размер.ValueError: установка элемента массива с последовательностью (LogisticRegression с функцией на основе массива)
Он получает ошибку значения в строке sklearn/utils/validation.py 382, в файле check_array в строке, где копия dataframe выполняется через 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, check_X_y secure_min_features, warn_on_dtype, оценочная) Файл" /lib/python3.5/site-packages/sklearn/utils/validation.py ", строка 382, в check_array array = np.array (array, dtype = dtype, order = order, copy = copy) ValueError: установка элемента массива с последовательностью. –
Итак, 'X' - массив (29,2) объекта dtype =, а один из элементов (второй столбец) сам по себе является массивом. Не вдаваясь в подробности, я могу понять, почему он будет жаловаться на «настройку с последовательностью» - последовательность, являющаяся массивом. Является ли весь массив предполагаемой «особенностью» или каждый элемент массива отдельной особенностью? – hpaulj