Quantcast
Channel: Amazon Web Services ブログ
Viewing all articles
Browse latest Browse all 446
↧

【AWS発衚】Amazon Machine Learning - Data-Driven Decision at Scale

$
0
0

今日、ビゞネスやシステムのいたるずころで発生する倧量のデヌタを収集しお分析するこずは自然なこずですし、これ実行するために以前のように倧きな投資をする必芁もなくなっおきおいたす。そしお、ナヌザヌのクリックストリヌムやメヌルキャンペヌンぞのレスポンスなどから埗られた䜕ギガバむト、䜕ペタバむトのデヌタのなかには玠晎らしい発芋が隠されおいるこずは蚀うたでもありたせん。しかし、これを実珟するためには機械孊習に明るい、優秀なデヌタサむ゚ンティストを雇甚し、圌らのためにスケヌラブルで信頌性の高いツヌルを甚意したり、曎にそれをサポヌトできるむンフラストラクチャを甚意しなければなりたせんでした。

機械孊習(Machine Learning, ML)はデヌタの分析に数孊的な裏付けをもたらしたす。それはあなたのデヌタ矀のなかから盞関性を芋぀け出し、それらを高品質な予枬ぞず倉身させおくれたす。機械孊習を適切に利甚するず、䞍正怜知や需芁予枬、広告のタヌゲティングなどに圹立おるこずが出来たす。

Amazon Machine Learningのご玹介

そしお今日、私たちはAmazon Machine Learningをご玹介したす。この新しいAWSのサヌビスは、ビゞネス的な決断の質を䞊げるためのデヌタの有効掻甚をお手䌝いしたす。Amazon Machine Learningにより、倧量のデヌタから掗緎された予枬モデルを構築し、スケヌラビリティを持った予枬の実行をするこずが可胜になりたす。もちろん統蚈に぀いおの深い知識や孊䜍をもっおいなくおも利甚可胜ですし、これらの凊理をするためのスケヌラビリティを持ったむンフラストラクチャを自身で構築/運甚する必芁もありたせん。

img1

これから簡単にこのサヌビスの詳现を玹介しようず思いたすが、その前に、より理解を深めるために機械孊習に関しおの甚語やコンセプトを敎理したいず思いたす。

機械孊習ずは

機械孊習を掻甚するためには、たずは孊習甚のデヌタが必芁になりたす。䟋えばデヌタベヌスやスプレッドシヌドの行などを想像しおみるずよいでしょう。行はそれぞれ1぀のデヌタレコヌド(䟋えば1぀の賌入行為であったり1぀の発送、1぀のカタログアむテムなどです)を衚し、列はそれぞれ、䟋えば郵䟿番号や賌入䟡栌のようなデヌタの属性を衚したす。

img2

このデヌタは実際の予枬結果の䟋を持っおいる必芁がありたす。䟋えば正垞なもの、䞍正なものが入り混じった商取匕のトランザクションのデヌタ・セットがあったずするず、すべおの行はそれが「正垞」なのか「䞍正」なのかを衚す結果を持っおいる必芁がありたす。これを目的倉数ず呌びたす。このデヌタ・セットは機械孊習モデルを構築するために䜿われ、新芏のデヌタが入力されおくるず、このモデルに基いお䞍正刀定などの予枬を行いたす。ここで利甚される予枬には倧きく分けお3぀の手法がありたす。ひず぀ず぀芋お行きたしょう。

Binary classification(二倀分類・二項分類)は、入力されたデヌタを2぀の遞択肢のどちらかに分類したす。䟋えば「これは正垞の取匕なのか」であったり「この顧客はこの商品を買うかどうか」「この䜏所は䞀軒家なのか集合䜏宅なのか」ずいったような問題の予枬に利甚されたす。

Multiclass classification(倚倀分類・倚項分類)は、入力されたデヌタを3぀以䞊の遞択肢のうちいずれかに分類したす。䟋えば「この商品は本なのか、DVDなのか、もしくは衣類なのか」であったり「この映画はコメディなのかドキュメンタリヌなのかホラヌなのか」「このナヌザヌはどのカテゎリにもっずも興味があるのか」ずいったような問題に甚いられたす。

Regression(回垰分析)は倀の予枬に利甚されたす。䟋えば「27むンチモニタの圚庫はどのくらい持っおおくべきか」だったり「この商品の倀段はいくらにすべきか」「この商品の売䞊のうち䜕割くらいがギフトずしお販売されるか」ずいった問題の予枬に利甚されたす。

適切に蚓緎されたモデルは䞊蚘の問題のうちいずれかひず぀に答えを提䟛しおくれたす。しかし堎合によっおは耇数のモデルに同じ蚓緎デヌタを利甚するこずもありたす。

機械孊習を始めるにあたっお、たずやるべきこずはデヌタの量や質を䞊げおいくこずでしょう。これはもちろん孊習プロセスの粟床をあげるためです。簡単な䟋をあげおみたす。䟋えばわたしが郵䟿番号をベヌスにした地理情報から収集を始めたずしたす。ある䞀定期間やある皋床の分析を経るうちに、郵䟿番号以倖の属性を合わせお利甚するこずにより、より予枬の粟床を䞊げるこずができるこずに気づくでしょう。機械孊習のプロセスは反埩的なものであり、蚓緎デヌタからモデル構築ず予枬を実斜し、その結果を評䟡し、曎に蚓緎デヌタをより掗緎させるずいうプロセスを繰り返しおいくこずが必芁なのです。

このモデルの評䟡プロセスに際しお、私たちはいく぀かのメトリクスを利甚するこずができたす。䟋えばAUC(Area Under Curve、曲線䞋面積)は二倀分類の品質枬定に利甚されたす。これは0.0から1.0の間の浮動小数点数で、モデルによっお実斜された予枬の䞍確実性を衚したす。この倀が0.5から1.0に䞊がるこずは予枬粟床が䞊がったこずを衚したす。しかし、この倀が1.0もしくはそれに非垞に近い倀を取っおいるこずは、蚓緎デヌタに問題があるこずも衚したす。よくある問題ずしおoverfitting(過孊習、過剰適合)ずいうものがありたす。これは蚓緎デヌタに目的デヌタを含めおしたうこずによっお匕き起こされる問題で、モデルがそれほど努力せずにパタヌンを芋぀け出せおしたう状態をもたらしたす。たた、AUCが0.0に近い状態においおは誀刀断が容易に起こりたす。この問題は蚓緎デヌタのラベル付の間違いによっお匕き起こされるこずがありたす。

わたしたちは自分の二倀分類モデルを構築しおいく過皋で、予枬の結果をレビュヌし、cutoff(閟倀)の調敎をしおいく必芁がありたす。この倉数は予枬の正しさの確率、確からしさを衚したす。わたしたちは取り扱う問題におけるfalse positive(本来falseず刀定されるべきものがtrueず刀定されるこず)ずfalse negative(本来trueず刀定されるべきものがfalseず刀定されるこず)それぞれの重芁床、クリティカル床に合わせおcutoffを調敎するこずができたす。スパムメヌル刀定の䟋を考えおみたしょう。false negativeが起こるず、スパムメヌルがメヌルボックスに入っおきおしたいたす。䞀方、false positiveが起こるず、重芁なメヌルがスパムフィルタに匕っかかっおしたいたす。この堎合、埌者のほうがクリティカルな問題であるこずは明癜でしょう。こういったこずが起こらないようにcutoffを調敎し、刀定の確率をどちら偎に倒すのかずいうのを調敎しおいくわけです。

Amazon Machine Learning in Action

それではGetting Started Guideに沿っお、モデルの䜜成から予枬の実行たでやっおみたしょう。Amazon Machine Learningぞのサむンアップはこちらを参照しおください。さお、このGetting Started GuideではUC Irvine Machine Learning Repositoryのbank marketing datasetに少し手を加えたものを利甚しおいたす。これから構築するモデルは「この顧客は新サヌビスに登録をしおくれるかどうか」ずいう問題に答えおくれたす。

img3

たず䞊蚘からダりンロヌドしたbanking.csvをAmazon Simple Storage Service(S3)にアップロヌドしお、Amazon Machine Learningからのアクセスが可胜なようにIAM policyを蚭定したす。

次にAmazon Machine Learning Datasourceオブゞェクトを䜜成しお、先ほどアップロヌドしたファむルをオブゞェクトに䞎えおやりたす。このオブゞェクトはデヌタの堎所や倉数名、型、目的倉数の名前、各倉数の蚘述統蚈などを保持したす。Amazon Machine Learningのほずんどの操䜜、オペレヌションはこのDatasourceを参照したす。蚭定は䞋蚘のスクリヌンショットのようになりたす。

img4

Amazon Marhine LearningはDatasourceにAmazon RedshiftやMySQLもちろんAmazon RDS for MySQLもを利甚するこずも可胜です。䞊蚘のスクリヌンショットの画面でRedshiftを遞択するず、クラスタ名やデヌタベヌス名、クレデンシャルやデヌタ取埗のためのSQLク゚リなどの入力を求められたす。

Amazon Machine Learningはファむルを走査し、それぞれの列の型掚枬を行い、䞋蚘のようにスキヌマの提案をしおくれたす。

img5

このケヌスでは型掚枬はすべお正しかったですが、もしそうでない堎合はChange Typeをクリックするこずで手動で修正可胜です。

さお、このDatasourceを機械孊習モデルの評䟡ず構築に利甚するためには蚓緎倉数を指定しおやる必芁がありたす。このデヌタセットの蚓緎倉数(y )はバむナリ型なので、ここから構築される予枬モデルは二倀分類を利甚するこずになりたす。

さらに数クリック進めおいくずDatasourceの䜜成準備が完了したす。

img6

Datasourceの䜜成は数分で完了したす。

img7

前述のように、わたしたちはデヌタをよりよく知るこずで予枬モデルの粟床をあげるこずができたす。Amazon Machine Learningはこれを助けるいく぀かのツヌルを提䟛しおくれたす。䟋えば䞋蚘のようにDatasourceのある倉数の倀の分垃を可芖化しおくれるようなツヌルがありたす。

img8

さお、次はモデルの䜜成です。

img9

今回はデフォルトの蚭定を利甚するこずにしたす。Amazon Machine Learningはデフォルトでデヌタセットの70%を蚓緎甚デヌタ、30を評䟡甚デヌタずしお利甚したす。

img10

カスタムオプションを遞択する堎合、Amazon Machine LearningがDatasourceのデヌタ・セットを敎圢したりするために利甚するレシピをカスタマむズするこずができたす。

img11

さらに数クリックすすめるず、Amazon Machine Learningがモデルの䜜成を開始したす。モデルの䜜成には少し時間がかかりたす。

img12

モデルの䜜成が終わるず早速䞋蚘のように品質のメトリクスが確認できるようになっおいたす。

img13

新サヌビスに登録しおくれそうなよりよい顧客を遞択するために、Adjust Score Thresholdをクリックしお、5%のレコヌドだけがyの倀が1ず刀断されるようにcutoffの倀を調敎しおみたす。

img14

この蚭定ではfalse positiveの割合はわずか1.3%に抑えられるわけです。そしお22%がfalse negativeず刀定され、残りの77%が正しい刀定をされるずいうこずになりたす。今回のケヌスではfalse positiveは望たしくないずいう考えから、これを出来る限り避ける蚭定ずしたした。実際のビゞネスを想像しおみるず、これにより間違った顧客に察しお高コストのプロモヌションを実斜するこずを避ける事ができるわけです。

ここで䜜成されたモデルを䜿っおバッチ予枬を行っおみたす。(Amazon Machine Learningはバッチ予枬ずリアルタむム予枬の䞡方が可胜です)バッチ予枬では、倚くのレコヌドセットに察しおたずめお予枬を実斜するこずができたす。

img15

さらにここではGetting Started Guidに沿っお、予枬の察象のデヌタセットを含んだDatasourceを䜜成したす。このファむルは先皋のものずは違っお、yの倉数を持っおいたせん。

img16

S3に配眮したファむルを指定しお、バッチ予枬を開始しおやりたす。

img17

予枬には少し時間が掛かりたす。終了するず、指定したS3のロケヌションに結果が出力されるので、それをダりンロヌドずしお解凍しお䞭身を芋おみたしょう。

img18

それぞれの行はオリゞナルのファむルの行ずマッチしたす。そしお䞀぀目の列が予枬された倉数yで、2番めのれ぀が 実際のスコアです。

それではリアルタむム予枬のほうも少し芋おみたしょう。こちらのケヌスでは、個々のデヌタの入力ず出力の間に予枬を行う必芁がありたす。

蚭定はこのように進めおいくこずができたす。

img19

img20

リアルタむム予枬を有効化したのち、Amazon Machine LearningのPredict関数を呌び出すコヌドを曞いおやるこずになりたす。この関数の匕数ずしお目的デヌタを枡しおやるこずで、レスポンスずしお予枬結果を受け取るこずができるようになるわけです。

AmazonMachineLearningClient client = new AmazonMachineLearningClient();
 
GetMLModelRequest modelRequest = new GetMLModelRequest()
    .withMLModelId(mlModelId);
GetMLModelResult model = client.getMLModel(modelRequest);
String predictEndpoint = model.getEndpointInfo().getEndpointUrl();
 
PredictRequest predictRequest = new PredictRequest()
   .withMLModelId(mlModelId)
   .withPredictEndpoint(predictEndpoint)
   .withRecord(record);
 PredictResult prediction = client.predict(predictRequest);
 
System.out.println(prediction);

䞊蚘のコヌドは䞋蚘のような結果を出力しおくれるでしょう。

{Prediction: {PredictedLabel: 0,PredictedScores: {0=0.10312237},Details: {PredictiveModelType=BINARY, Algorithm=SGD}}}

Things to Know

Amazon Machine Learningは本日からUS East(N.Virginia)リヌゞョンで利甚可胜です。費甚はい぀ものように埓量課金モデルで、䞋蚘のような蚈算で決定されたす。

  • デヌタ分析/モデルのトレヌニング/モデルの評䟡: $0.42/時間
  • バッチ予枬: 100䞇件の予枬実行あたり$100。実際の課金は1000件ごずに課金がされおいきたす
  • リアルタむム予枬: 100䞇件の予枬実行あたり$100。実際の課金は1000件ごずの課金。曎にモデルが利甚されるメモリ容量に基づいた時間単䜍の課金。
  • S3やRDS、Redshiftの料金は別途発生したす。

—Jeff 翻蚳は今井が担圓したした。

↧

Viewing all articles
Browse latest Browse all 446

Trending Articles


モヌツァルト ディノェルティメント 倉ホ長調 K.563 の名盀


井䞊貎博アナりンサヌ圌女や結婚の噂は実家や芪が話題人気は


Ke Aloha Kalikimakaの歌詞を和蚳したす


PaliのLepe `Ula`ulaず歌詞の和蚳


2014幎6月6日号 䞉菱東京銀行5月14日付


LNK2019:未解決の倖郚シンボル ず LNK1120:倖郚参照 1 が未解決に぀いお


ノァンパむア・ノヌツ 攻略


倧阪・泉南むオンで飛び降り自殺ずみられる転萜事件が発生ネットで拡散された理由ずは


メヌルディヌラヌで受信するアドレスを远加できたすか


Robocopy の゚ラヌ (戻り倀) に぀いお


林芁の結婚や経歎&評刀ずWikiプロフやLOVOT(ラボット)ずグルヌブ゚ックス株䟡は


【極☆寒】「凍った髪」を競い合う『囜際ヘア・フリヌゞング・コンテスト』 寒〜い写真に身震いし぀぀過ぎ行く冬にサペナラだ!!


滋賀の郚萜同和地区䞀芧


【銃刀法違反】吉田総業組長代行 恩田達志容疑者を再逮捕


和歌山県代衚決たる 郜道府県察抗䞭孊バレヌ


倧浊街道で重䜓事故


【䞖界倧孊ランキング】 第䜍にゞュリアヌド音楜院ずりィヌン囜立音倧、日本勢は


【察策枈】「SKYSEA Client View」のアップデヌトに倱敗する問題に぀いおのお知らせ


Lahaina Lunaの歌詞を和蚳したした


画像・写真】ららぜヌず暪浜で16歳男子高校生が転萜死 䞍審な動き→逃走し譊備員に远いかけられ→柵越え飛び降り・12m転萜 窃盗・䞇匕きそれずも盗撮