Форум сайта python.su
Всем доброго времени суток!
Я начинаю осваивать машинное обучение в scikit-learn.
Я написала 2 функции, одна обучает, другая тестирует.
def log_reg_train(self, data_train, target_train): logreg = linear_model.LogisticRegression() logreg.fit(data_train, target_train) #обучение self.__st_model = pickle.dumps(logreg) #сохранение модели def log_reg_test(self, data_test, target_test): data_test_norm = self.normalization(data_test) #нормализация тестовых данных logreg = pickle.loads(self.__st_model) #загрузка сохранённой модели predicted = logreg.predict(data_test_norm) #тестирование print(classification_report(target_test, predicted)) #вывод результатов
... in check_array array = array.astype(np.float64) ValueError: setting an array element with a sequence.
Офлайн
Может это поможет. А вообще покажите что на вход поступает.
PS. А почему вы обучающую выборку не нормализуете?
Офлайн
Трудно представить необходимость сохранения модели
self.__st_model = pickle.dumps(logreg) #сохранение модели
logreg = pickle.loads(self.__st_model) #загрузка сохранённой модели
Отредактировано scidam (Окт. 17, 2016 15:47:15)
Офлайн
scidamНу вам обученную модель в дальнейшем же необходимо будет использовать повторно.
Трудно представить необходимость сохранения модели
Отредактировано noob_saibot (Окт. 17, 2016 15:48:26)
Офлайн
noob_saibot
Ну вам обученную модель в дальнейшем же необходимо будет использовать повторно.Это, в общем, ясно, что задача сохранения может иметь место.
Офлайн
noob_saibotЯ работаю с вот этими данными: http://archive.ics.uci.edu/ml/machine-learning-databases/spambase/spambase.data
Может это поможет. А вообще покажите что на вход поступает. PS. А почему вы обучающую выборку не нормализуете?
if __name__ == '__main__': classifier = LogReg() inp = classifier.load_data('spambase.data.txt') #загрузка данных data = classifier.division(inp) #разделение на обучающую выборку и тестовую norm_train, coefs = classifier.normalization(data[0]) #нормализация обучающей выборки train = classifier.log_reg_train(norm_train, data[1]) #обучение norm_test, coefs = classifier.normalization(data[2], coefs) # нормализация тестовой выборки test = classifier.log_reg_test(norm_test, data[3]) # тестирование
data_test_norm = self.normalization(data_test) #нормализация тестовых данных
scidamДумаю, здесь её действительно можно не сохранять. Но задачка учебная, и сохранить модель входило в е условие.
Трудно представить необходимость сохранения модели
Офлайн