views4GCPのストレージサービスについてまとめてみた。Exp:49212雑食エンジニア/にわかSF者TweetShareHatena注意この記事は2014年10月30日に更新されたもので、内容が古い可能性がありますのでご注意ください。APIみなさん、こんにちは。ここ最近、ビッグデータという言葉が流行したり、「データ・サイエンティストは21世紀で最もセクシーな職業だ」と称されるなど、データを分析して、役に立つ情報を引き出す、データサイエンスという学問が注目を浴びています。WEBの世界では、与えられた検索ワードに対して適切な結果を返したり、ユーザの行動履歴から年齢や性別などの属性を推定し、適切な広告を表示させたり、スパムメールを判別したり、様々なところでデータサイエンスの手法が応用されています。この業界の最先端であるGoogleは当然、データサイエンスを応用した優れた技術を有しており、さらにすごいことには、その一部をAPIとしてユーザに公開しています。APIはその一つです。APIは、機械学習による予測機能を提供するAPIです。APIの概要について説明し、中・後編では実際に利用する方法を説明します。APIの説明に入る前に、機械学習について簡単に説明します。機械学習とは、人工知能における研究分野の1つで、「与えられたデータから学習し、知識やルールを自動で獲得するシステム」と言えるでしょう。与えられたメールがスパムであるかを判別するシステムを考えてみましょう。これを機械学習を用いないで実装しようとした場合、”ある単語がN個以上含まれていたらスパムと判断する”というようなルールを、プログラム上に静的に書いて判別しなければいけません。この方法で、汎用性と高い判定精度を実現するのは現実的ではありませんし、スパムメールの傾向が変わったら、また、人間がデータを分析し直し、プログラムを書き換えなければなりません。機械学習を用いると、実際にスパムである/スパムでないとわかっているメールのデータ群(学習データ)を入力として、そのデータを正しく判別できるようなルールを、システムが動的に獲得し、スパム判別システムを構築することができます。判定精度は学習データの量と質、問題の複雑さにもよりますが、多くの場合、数十から数百件の学習データで十分な精度が得られると言われています。データの傾向が変わった時も、新しいデータで学習しなおせば問題ありません。APIを用いると、機械学習による様々な予測を手軽に実現することができます。APIが提供する機能は、機械学習の中でも教師付き学習と呼ばれる種類のものです。教師付き学習では、まず、答えのわかっているデータ・セットを使って学習を行い、モデルを作成します。そのモデルを用いて、未知のデータに対する予測を行います。上述のスパムメールの判別も、教師付き学習の例です。この場合、実際のスパムメールとそうでないメールを適当な量だけ用意し、1つ1つのメールを、”スパムかどうかを表すラベル”と”メールの本文”のペアとして表現し、それらのセットを用いて学習を行います。予測を行うときは、メールの本文を入力値として、予測結果(スパムであるかどうか)を出力します。APIを使って、数値を予測することもできます。学習に用いるデータの構造は、テーブル構造として考えられます。1行は1つ1つのデータに対応します(上述のメールでは、1行が1通のメールです)。列のうちの1つは答えとなる値(上述の例では、スパムであるかどうかのラベル)で、それ以外の列は特徴量(上述の例では、メール本文)です。列数は2列以上であれば、どれだけあってもいいですが、全ての行で列数が揃っている必要があります。値を空にすることはできます。numericの3種類に区別されます。Storage(GCS)上のCSVファイルを学習データとする方法や、APIへのリクエストに学習データを含める方法などがあります。CSVファイルを学習データに用いる場合は、1列目に答えとなる値、2列目以降を特徴量とします。CSVを用いる方法が、最も馴染みやすいかと思いますので、本記事で紹介する例でも、CSVファイルを学習データとします。model)を操作する、下記のメソッドが提供されています。model)に対して、predictメソッドを使って予測を実行することができます。analyze学習によって構築されたモデルや使用された学習データの分析を行います。delete既存のモデルを削除します。get既存のモデルの状態を取得します。insert学習データからモデルを構築します。list既存のモデルの一覧を取得します。predict既存のモデルを利用して予測を行います。update既存のモデルに新しい学習データを追加します。APIを使って、実際に予測を行うまでの流れを簡単に説明します。1.学習データの用意CSV形式の学習データを用意します。フォーマットは前述の通り、1カラム目にラベル、2カラム目以降が特徴量です。ヘッダ行は付けてはいけません。ファイルサイズの上限は2.5GBです。2.GCPプロジェクトの作成APIを使用するためのGCPプロジェクトの準備を行います。Consoleでプロジェクトを作成し、以下の設定を行う必要があります。Storageに学習データをアップロードする3.予測モデルの作成insertメソッドを使って、学習データからモデルを生成します。リクエストパラメータには、GCPプロジェクトのID、学習データのパス、作成するモデルのIDが必要です。4.予測の実行predictメソッドを使って、予測を行います。リクエストパラメータには、GCPプロジェクトのID、予測に使うモデルのID、予測したいデータが必要です。APIの概要について、紹介してきました。APIは教師付き機械学習アルゴリズムを用いた予測機能を提供してくれます。1学習データを用意、2GCPプロジェクトの設定、3予測モデルの作成、4予測の実行という手順を経ることで、手軽に機械学習による予測を実現することができます。Libraryを使ったサンプルプログラムを紹介しています。