Модель Scikit Learn, дающая объект «Локальный фактор выбросов», не имеет атрибута «прогнозировать». ОшибкаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Модель Scikit Learn, дающая объект «Локальный фактор выбросов», не имеет атрибута «прогнозировать». Ошибка

Сообщение Anonymous »

Я новичок в мире машинного обучения, я создал и обучил модель машинного обучения с помощью библиотеки ScikitLearn. Она отлично работает в блокноте Jupyter, но когда я развернул эту модель в Google Cloud ML и попытался обслуживать ее с помощью Python скрипт, он выдает ошибку.

Вот фрагмент кода моей модели:


Обновлено:

Код: Выделить всё

from sklearn.metrics import classification_report, accuracy_score
from sklearn.ensemble import IsolationForest
from sklearn.neighbors import LocalOutlierFactor

# define a random state
state = 1

classifiers = {
"Isolation Forest": IsolationForest(max_samples=len(X),
contamination=outlier_fraction,
random_state=state),
# "Local Outlier Factor": LocalOutlierFactor(
# n_neighbors = 20,
# contamination = outlier_fraction)
}

import pickle
# fit the model
n_outliers = len(Fraud)

for i, (clf_name, clf) in enumerate(classifiers.items()):

# fit te data and tag outliers
if clf_name == "Local Outlier Factor":
y_pred = clf.fit_predict(X)
print("LOF executed")
scores_pred = clf.negative_outlier_factor_
# Export the classifier to a file
with open('model.pkl', 'wb') as model_file:
pickle.dump(clf, model_file)
else:
clf.fit(X)
scores_pred = clf.decision_function(X)
y_pred = clf.predict(X)
print("IF executed")
# Export the classifier to a file
with open('model.pkl', 'wb') as model_file:
pickle.dump(clf, model_file)
# Reshape the prediction values to 0 for valid and 1 for fraudulent
y_pred[y_pred == 1] = 0
y_pred[y_pred == -1] = 1

n_errors = (y_pred != Y).sum()

# run classification metrics
print('{}:{}'.format(clf_name, n_errors))
print(accuracy_score(Y, y_pred ))
print(classification_report(Y, y_pred ))
и вот результат в Jupyter Notebook:


Isolation Forest:7

0,93

Код: Выделить всё

               precision    recall  f1-score   support

0       0.97      0.96      0.96        94
1       0.43      0.50      0.46         6

avg / total    0.94      0.93      0.93       100

Я развернул эту модель в Google Cloud ML-Engine, а затем попытаюсь обслужить ее с помощью следующего скрипта Python:

Код: Выделить всё

import os
from googleapiclient import discovery
from oauth2client.service_account import ServiceAccountCredentials
credentials = ServiceAccountCredentials.from_json_keyfile_name('Machine Learning 001-dafe42dfb46f.json')

PROJECT_ID = "machine-learning-001-201312"
VERSION_NAME = "v1"
MODEL_NAME = "mlfd"
service = discovery.build('ml', 'v1', credentials=credentials)
name = 'projects/{}/models/{}'.format(PROJECT_ID, MODEL_NAME)
name += '/versions/{}'.format(VERSION_NAME)

data = [[265580, 7, 68728, 8.36, 4.76, 84.12, 79.36, 3346, 1, 11.99, 1.14,655012, 0.65, 258374, 0, 84.12] ]

response = service.projects().predict(
name=name,
body={'instances': data}
).execute()

if 'error' in response:
print (response['error'])
else:
online_results = response['predictions']
print(online_results)
Вот выходные данные этого скрипта:


Прогноз не выполнен: исключение во время предсказание sklearn: объект LocalOutlierFactor не имеет атрибута predict


Подробнее здесь: https://stackoverflow.com/questions/500 ... te-predict
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»