SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

トップエスイーからのアウトカム ~ ソフトウェア工学の現場から

機械学習による分析過程を把握しつつ、支援ツールによる自動化で的確な分析結果を得る(前編)

トップエスイーからのアウトカム ~ ソフトウェア工学の現場から 第1回

  • このエントリーをはてなブックマークに追加

 社会人エンジニア向けの教育プログラム「トップエスイー」での講義や制作結果などからエンジニアの皆さんに対して有用な情報をお届けするコーナーが始まります。まずは今回と次回の2回にわたり、機械学習を取り上げます。機械学習はさまざまな応用がされていますが、分析に当たって注意すべき点を今回に、そして、分析作業を自動化したツール「MALSS」を使った分析を次回に解説します。MALSSはトップエスイーの修了制作で取り上げられ、オープンソースとして公開されています。

  • このエントリーをはてなブックマークに追加

なぜ分析過程を理解する必要があるのか

 近年の人工知能やデータサイエンスのブームにより、機械学習技術に注目が集まっています。機械学習技術をアルゴリズムから実装し、システムへ組み込むとなるとハードルが高いですが、OSSの機械学習ライブラリが充実してきたことで、既存技術を利用するだけであれば、容易に機械学習技術を活用したシステムを開発することができるようになりました。Web上には多くのサンプルコードが公開されており、それらをコピー&ペーストするだけでも何らかの結果を得ることができてしまいます。

 しかし、機械学習技術を利用してデータ分析を行う際、分析のやり方に問題があると望ましい結果を得られないだけでなく、想定外の悪影響を及ぼす可能性があります。

 そこで、機械学習ライブラリを利用してデータ分析を行って適切な結果を得るためには、どのような手順を取り、どのような点に注意すれば良いかを説明します。データ分析のプロセスや注意点について、できるだけ広く浅く取り上げることで、読者のみなさんが実際に分析を行う際や、他者が行った分析結果を確認するときに、必要に応じて何を調べれば良いかが分かるようになることを目指します。そのため、詳細な説明を行わない話題もあります。別途調べていただく必要があるかもしれませんが、あらかじめご了承ください。

本稿の前提条件

 はじめに、本稿で説明するデータ分析プロセスの前提条件を確認します。

 第一に、データ分析を行う目的はすでに決まっており、その目的自体が妥当なものであるとします。本来は、最初にどのような目的に対してどのようなデータ分析を行おうとしており、その方針が妥当かどうかをよく検討する必要があります。

 第二に、データ分析の目的は、ある変数(目的変数:次項で説明)を、それとは別の変数(説明変数:次項で説明)から予測する予測モデルを作成し、将来においては未知である目的変数を、既知の説明変数から予測し、その予測結果をビジネスに活用するため、とします。予測タスクには、お店の売上金額の予測(回帰)や、写真に写っている動物が犬なのか猫なのかの予測(分類)などがあります。タスクはその他にも、データをいくつかのグループに分けるクラスタリングや、他の多数のデータと振る舞いが異なるデータを検出する異常検知など、多種多様なものがあります。

 最後に、過去から現在においての目的変数、および目的変数を予測するのに適当だと判断された説明変数はすでに用意されているとします。データ分析を行う際には、目的に適したデータを事前に検討するとともに、収集することが非常に重要です。

用語について

 用語について事前に認識を共有しておきましょう。図1は分析に利用するための一般的なデータ形式を表したものです。何らかの会員向けサービスにおける、会員情報のようなものをイメージしてください。列に相当するものを「変数」と呼びます。各行を「観測値」と呼びます。

図1 一般的なデータ形式の例
図1 一般的なデータ形式の例

 分析の目的が、ある変数をその他の変数から予測することである場合は、予測したい変数を「目的変数」、予測のために利用するその他の変数を「説明変数」と呼びます。年齢のように数値で表される変数を量的変数、加入プランのように離散的なカテゴリを表す変数を質的変数、またはカテゴリ変数と呼びます。

 それでは本題に入っていきましょう。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
データの前処理

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
トップエスイーからのアウトカム ~ ソフトウェア工学の現場から連載記事一覧

もっと読む

この記事の著者

鴨志田 亮太(日立製作所)(カモシダ リョウタ)

日立製作所 研究開発グループ所属 研究員。トップエスイー9期生(2014年度)。OSSの機械学習ライブラリが充実するなかで、それらを利用した、正しいデータ分析プロセスの習得をどうサポートできるかに興味を持ち、データ分析支援ツールMALSSを開発。 MALSS(GitHub) 機械学習によるデータ分析まわりのお話(SlideShare)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9981 2017/03/01 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング