REST APIを使用して、Prediction Oneも予測モデルの作成ができます。以下の一連のAPIによって実行します。
学習用のデータをアップロードするURLを取得します。
https://developer-api.predictionone.sony.biz/v1/external/data-sets/upload-url
HTTPメソッドは、GETです。
name | 説明 |
---|---|
x-api-key | API Key。 |
ありません。
name | 説明 |
---|---|
extension | アップロードするファイル拡張子 |
ありません。
以下のフォーマットです。
{
"learn_data_set_upload_url": str,
"eval_data_set_upload_url": str,
"column_info_upload_url": str,
"external_process_id": str
}
name | 説明 |
---|---|
learn_data_set_upload_url | 学習用データセットアップロードURL |
eval_data_set_upload_url | 評価用データセットアップロードURL |
column_info_upload_url | カラム情報アップロードURL |
external_process_id | プロセスID |
code | error | message | reason |
---|---|---|---|
4001000204 | PREDA_EXTERNAL_BAD_REQUEST | invalid_api_key. | APIキーが存在しない |
4001000204 | PREDA_EXTERNAL_BAD_REQUEST | Inactive_credential. | APIキーが間違っている |
4001000204 | PREDA_EXTERNAL_BAD_REQUEST | Not_found_credential. | APIキーが間違っている |
4001000204 | PREDA_EXTERNAL_BAD_REQUEST | This user may be deleted. | ユーザー情報が削除されている可能性がある |
Train Data Upload APIのpythonによる実行例が以下となります。
Train Data Upload APIを使用してサンプルデータの「1_プレミアムサービス購入.csv」をアップロードします。
import requests
import subprocess
api_url = 'https://developer-api.predictionone.sony.biz/v1/external/data-sets/upload-url'
api_key = 'YOUR_API_KEY'
headers = {'x-api-key': api_key}
# 学習ファイルのみの場合
train_data_file_path = 'train_data_file_path'
column_info_file_path = 'column_info.csv'
# 項目情報ファイルの作成
with open(column_info_file_path, 'w', encoding='utf-8-sig') as f:
f.write('column_name,column_type\n')
f.write('プレミアムサービス(予測対象),string\n')
f.write('入会時期,date\n')
f.write('年齢,float\n')
f.write('性別,string\n')
f.write('顧客ランク,string\n')
f.write('過去購入額,float\n')
f.write('クーポン利用回数,float\n')
f.write('メアド登録,string\n')
# request
params = {'extension': 'csv'}
response = requests.get(api_url, params=params, headers=headers)
response_json = response.json()
train_data_set_upload_url = response_json['learn_data_set_upload_url']
train_eval_data_set_upload_url = response_json['eval_data_set_upload_url']
column_info_upload_url = response_json['column_info_upload_url']
external_process_id = response_json['external_process_id']
# upload_file
with open(train_data_file_path, 'rb') as f:
train_data = f.read()
res = requests.put(train_data_set_upload_url, data=train_data)
with open(column_info_file_path, 'rb') as f:
column_info_data = f.read()
res = requests.put(column_info_upload_url, data=column_info_data)
# 評価用データを利用する場合
train_eval_data_file_path = 'YOUR_TRAIN_EVAL_DATA_FILE_PATH'
with open(train_eval_data_file_path, 'rb') as f:
train_eval_data = f.read()
res = requests.put(train_eval_data_set_upload_url, data=train_eval_data)
Train Data Upload APIのコマンドプロンプトからcurlコマンドによる実行例が以下となります。
1. コマンドプロンプトを立ち上げる
2. credential_typeを記載したファイルを保存(param.txtとする)
3. リクエストする
$ curl -o "response.json" -H "x-api-key:{Get API Key APIから取得したAPI KEY}" -X GET -G https://developer-api.predictionone.sony.biz/v1/external/data-sets/upload-url --data-urlencode filename@"{3.のファイルのフルパス}"
ex) $ curl -o "response.json" -H "x-api-key:xxxx-xxx-xxx-xxxx" -X GET -G https://developer-api.predictionone.sony.biz/v1/external/data-sets/upload-url --data-urlencode filename@param.txt
4. response.jsonを確認しretrain_job_idとupload_urlを取得
5. ファイルをアップロード
$ curl -X PUT --upload-file {学習用データセットファイルパス} {4で取得したlearn_data_set_upload_url}
# 評価用データも使用する場合
$ curl -X PUT --upload-file {評価用データセットファイルパス} {4で取得したeval_data_set_upload_url}
$ curl -X PUT --upload-file {カラム情報ファイルパス} {4で取得したcolumn_info_upload_url}