• AI

仕上げ、買取価格を予測するアプリに仕上げる


さて今回は、Azure Machine Learningで作成した価格予測モデルをウェブサービスに変換し、Pythonプログラムから呼び出してLinebotを完成させます。

(1)最初に、Azure Machine Learning Studioから作成済みのExperimentを開きます。

SET UP WEB SERVICEから「Update Predictive Experiment」を選び、ウェブサービス用の実験を自動生成します。

(2)生成されたPredictive Experimentから、「Deploy Web Service」をクリックします。

(3)Webサービスの画面にAPI Keyが表示されるので、コピーして、queryML.pyの該当箇所に貼り付けます。

(4)また、REQUEST/RESPONSEリンクをクリックした先のページにURLが表示されるので、同様のqueryML.pyの該当箇所に貼り付けます。

こうして作成した、価格予測モデルの呼び出しPythonプログラムがこちらです。

def query(params):
  ””” Fetch data from Azure Machine Learning “””
    payload = {
      ”Inputs”: {
        ”input1″: {
          ”ColumnNames”: [
            ”ID”,
            ”メーカー”,
            ”モデル”,
            ”価格”,
            ”走行距離”,
            ”年式”,
            ”色”,
            ”写真”
          ],
        ”Values”: [
          [
            ”id”,
            ”maker”,
            params[‘model’],
            ”0″,
            params[‘odd’],
            params[‘year’],
            params[‘color’],
            ”photo”
          ]
        ]
      }
    },
    ”GlobalParameters”: {}
  }
  ”””
  data = {
    ”Inputs”: {
      ”input1″:{
          ”ColumnNames”: [“ID”, “メーカー”, “モデル”, “価格”, “走行距離”, “年式”, “色”, “写真”],
          ”Values”: [ [ “value”, “value”, “value”, “0”, “0”, “0”, “value”, “value” ], [ “value”, “value”, “value”, “0”, “0”, “0”, “value”, “value” ], ]
      },
     },
    ”GlobalParameters”: {
    }
  }
“””
body = str.encode(json.dumps(payload))
headers = {‘Content-Type’:’application/json’, ‘Authorization’:(‘Bearer ‘+ API_KEY)}
req = urllib2.Request(API_URL, body, headers)
try:
  response = urllib2.urlopen(req)
  result = response.read()
  return json.loads(result)
  except urllib2.HTTPError, error:
  print(“The request failed with status code: ” + str(error.code))
  # Print the headers – they include the requert ID and the timestamp, which are useful for debugging the failure
  print(error.info())
  print(json.loads(error.read()))
  return None
def getPrice(params):
  result = query(params)
  if result is not None:
  value = result[‘Results’][‘output1’][‘value’][‘Values’][0]
  print(value)
  price = int(float(value[5]))
  normalized = int(price / 1000) * 1000
  return normalized

配列の形式で
 model: 車種
 odd: 走行距離
 year: 年式
 color: 色
を渡すと、1000円単位に丸めた予測価格を返します。

この関数を呼び出すことで、買取価格予測Linebotが完成します。

それでは試してみましょう。

いかがでしょうか。

質問に文章で回答していくと、予測買取価格を提示してくれるアプリが完成しました。


関連記事一覧

we love develop
アプリやシステムの開発を通じて、お客様のビジネスを成長させることが私たちのビジネスです。お気軽にお問い合わせください。
 お問い合せ

お電話でのお問い合わせはこちらから
TEL:03-5297-2871

メールマガジンの登録

キャパでは誰かに話したくなるようなIT小ネタを、週に一回メルマガで配信しています。
ぜひ購読してみませんか?
 購読する

記事カテゴリ記事カテゴリ

月別投稿記事

PAGE TOP