51
 правка
Изменения
Нет описания правки
*	Что похожее предложить пользователю? (рекомендация)
После необходимо сформировать команду проекта, распределить роли и обязанности между его участниками; создать расширенный поэтапный план проекта, который будет дополняться по мере поступления новой информации. Команда проекта состоитиз менеджера, исследователей, разработчиков, аналитиков и тестировщиков.
Последняя задача данного этапа заключается в поиске метрики успешности модели. Например, может потребоваться спрогнозировать количество абонентов, которые хотели уйти от своего оператора, но в итоге остались у него. К моменту завершения проекта требуется чтобы модель уменьшила отток абонентов на X%. С помощью этих данных можно составить рекламные предложения для минимизации оттока. Метрики должны быть составлены в соответствии с принципами SMART.
Мониторинг и оповещение могут быть особенно важны при развертывании моделей. По мере усложнения системы потребуются возможности мониторинга и оповещения, чтобы сообщать, когда прогнозы для конкретной системы выходят за пределы ожидаемого диапазона. Мониторинг и оповещение также могут быть связаны с косвенными проблемами, например, при обучении новой сверточной нейронной сети расходовать ежемесячный бюджет AWS за 30 минут. Также понадобятся панели управления, позволяющие быстро проверить развернутые версии моделей.
==Пример кода на Python 3 ==
  #установка git-репозитория и добавление в него исходных файлов
  git clone https://github.com/pplonski/my_ml_service.git
  cd my_ml_service
  ls -l
  git add backend/
  git commit -am "setup django project"
  git push
  #создание проекта Django и Jupyter ноутбука
  mkdir backend
  cd backend
  django-admin startproject server
  cd server
  python manage.py runserver
  pip3 install jupyter notebook
  ipython kernel install --user --name=venv
  #обучение модели
  pip3 install numpy pandas sklearn joblib
  import json # will be needed for saving preprocessing details
  import numpy as np 
  import pandas as pd
  from sklearn.model_selection import train_test_split 
  from sklearn.preprocessing import LabelEncoder 
  from sklearn.ensemble import RandomForestClassifier 
  from sklearn.ensemble import ExtraTreesClassifier 
  import joblib # load dataset
  # load dataset
  df = pd.read_csv('https://raw.githubusercontent.com/pplonski/datasets-for-start/master/adult/data.csv', skipinitialspace=True)
  x_cols = [c for c in df.columns if c != 'income']
  # set input matrix and target column
  X = df[x_cols]
  y = df['income']X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.3, random_state=1234)
  train_mode = dict(X_train.mode().iloc[0])
  X_train = X_train.fillna(train_mode)
  print(train_mode)
  # convert categoricals
  encoders = {}
  for column in ['workclass', 'education', 'marital-status',
                  'occupation', 'relationship', 'race',
                  'sex','native-country']:
      categorical_convert = LabelEncoder()
      X_train[column] = categorical_convert.fit_transform(X_train[column])
      encoders[column] = categorical_convert
  # train the Random Forest algorithm
  rf = RandomForestClassifier(n_estimators = 100)
  rf = rf.fit(X_train, y_train)
  # train the Extra Trees algorithm
  et = ExtraTreesClassifier(n_estimators = 100)
  et = et.fit(X_train, y_train)
  #создание модели Django
  # run this in backend/server directory
