学習、予測の実行
================
本項では、学習、予測の実行について、SAMPO/FABとsklearn-fabにおける実現方法およびスクリプトの差異を示します。

学習
----
学習の実行前に、loggingの設定を行うことで、学習時の進捗を確認することができます。

.. csv-table::
  :header: "SAMPO/FAB", "sklearn-fab"

  "
  .. code-block:: python
    :caption: **loggingの設定**

    import logging
    from sampo.api import sampo_logging

    sampo_logging.configure(level=logging.INFO)
  ", "
  .. code-block:: python
    :caption: **loggingの設定**

    import logging

    logging.basicConfig(level=logging.INFO)
  "
  "
  .. code-block:: python

    from sampo.api gen_src, process_runner, process_store

    train_src = gen_src(template=train_src_temp, params={'data_df': train_data, 'asd': asd})

    pstore_url = 'pstore_rg'
    process_store.create(pstore_url)

    # 学習の実行
    process_runner.run(spd=spd, src=train_src, pstore_url=pstore_url)
  ", "
  .. code-block:: python
    :caption: **sklearn.pipeline.Pipelineを使用しない場合**

    train_data = pd.DataFrame(scaler.fit_transform(train_data),
                              columns=train_data.columns.values)
    X_train = train_data.iloc[:, 1:]
    y_train = train_data.iloc[:, 0]

    # 学習の実行
    estimator.fit(X_train, y_train)

  .. code-block:: python
    :caption: **sklearn.pipeline.Pipelineを使用した場合**

    X_train = train_data.iloc[:, 1:]
    y_train = train_data.iloc[:, 0]

    # 学習の実行
    pipeline.fit(X_train, y_train)
  "

予測
----
.. csv-table::
  :header: "SAMPO/FAB", "sklearn-fab"

  "
  .. code-block:: python

    train_proc_name = 'train'
    predict_src = gen_src(template=predict_src_temp, params={'model_process': train_proc_name,
                                                             'data_df': predict_data, 'asd': asd})

    # 予測の実行
    process_runner.run(src=predict_src, pstore_url=pstore_url)
  ", "
  .. code-block:: python
    :caption: **sklearn.pipeline.Pipelineを使用しない場合**

    predict_data = pd.DataFrame(scaler.fit_transform(predict_data),
                                columns=predict_data.columns.values)
    X_predict = predict_data.iloc[:, 1:]
    y_predict = predict_data.iloc[:, 0]

    # 予測の実行
    predict_value = estimator.predict(X_predict)

  .. code-block:: python
    :caption: **sklearn.pipeline.Pipelineを使用した場合**

    X_predict = predict_data.iloc[:, 1:]
    y_predict = predict_data.iloc[:, 0]

    # 予測の実行
    predict_value = pipeline.predict(X_predict)
  "
