CodeZine(コードジン)

特集ページ一覧

Rによる機械学習を使って、実世界の問題を解決するための準備をしよう

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/03/10 07:00

目次

第9章 データのグループの検出――k平均によるクラスタリング

 長い間大群衆をじっと見ていたことはあるだろうか。もしあるなら、ある種のタイプの人々が繰り返し現れるのを見たことがあるだろう。きっちりと折り目の付いたスーツを着てブリーフケースを持っているタイプの人々は太ったネコと呼ばれるビジネスエリートだ。ピチピチのジーンズにフランネルのシャツを合わせてサングラスをかけている20代はヒップスターと呼ばれるだろうし、ミニバンから子どもを下ろしている女性は「サッカーママ」と呼ばれる。

 もちろん、まったく同じ人は2人といないので、個人にこの手のステレオタイプを当てはめるのは危険なことだ。それでも、集団を説明する手段として理解すれば、こういったレッテルは、グループに含まれる個人の類似性を示す特徴をよくつかんでいる。

 すぐ後で説明するように、クラスタリング、すなわちデータに含まれるパターンの指摘は、人々のグループに見られるパターンを指摘するのとそれほど違わない。この章では、次のことを学ぶ。

  • クラスタリングと以前取り上げた分類タスクとの違い。
  • クラスタリングがどのようにグループを定義するか、古典的でわかりやすいクラスタリングアルゴリズム、k平均がどのようにしてそのようなグループを明らかにすることができるのか。
  • 10代のソーシャルメディアユーザーの間に見られるマーケティングセグメントを明らかにするという現実的なタスクにクラスタリングを適用するために必要なステップ

 行動に移る前に、クラスタリングとは何かについて深く学ぶところから始めよう。

第10章 モデルの性能の評価

 教育が金持ちだけのものだった時代には、テストは生徒の能力を評価するものではなかった。教師に払った給料の分だけ子どもたちが十分に学んだかどうかを知りたい親たちのために、教師が評価されていたのである。時代とともにこれが変化してきたことはご存知の通りである。現在では、優秀な生徒と不振な生徒を区別し、キャリアその他のチャンスで彼らを選別するために評価が使われている。

 このプロセスの重要性から、生徒の正確な評価には、非常に多くの労力が注ぎ込まれてきた。公平な評価のためには、広いテーマを扱い、運のよい当てずっぽうよりも本物の知識が評価されるような多くの問題が必要とされる。また、今まで相手にしたことがないような問題を生徒たちに考えさせることも必要だ。そういった問題に正しく答えられるということは、生徒が自分の知識を広く汎化できることを示している。

 機械学習アルゴリズムの評価は、生徒の評価と非常によく似たプロセスである。アルゴリズムの長所、短所はまちまちなので、テストは学習器の性能を見分けられなければならない。学習器が将来の未見のデータに対してどれくらいの性能を発揮できるかを予測することも大切だ。

 この章では、機械学習の学習器を評価するために知らなければならない次のようなことを学んでいく。

  • 性能の測定には、予測の正確度だけでは不十分だという理由と代わりに使う性能の測度
  • モデルの未見のデータに対する予測能力が性能測度に十分に反映されるようにするためのテクニック
  • Rを使って、今までの章で説明してきた予測モデルに役に立つ測度や手法を応用するための方法

 あるテーマを学習するための最良の方法がそれを誰か他人に教えることだというのと同じように、学習器を教育、評価するプロセスを学ぶと、今までに学んできた手法についてより深い洞察が得られるはずだ。

第11章 モデルの性能の改善

 スポーツチームが目標(オリンピックの金メダル獲得、リーグ優勝、世界新記録など何でもよいが)を達成できないときには、改善の方法を探さなければならない。そんなチームの監督、コーチになったとする。練習の時間をどのように使ったらよいだろうか。おそらく、ポテンシャルを最大限に引き出すためにもっとしっかりとトレーニングしろとか、トレーニングのやり方を変えろと言うだろう。でなければ、選手の長所と弱点をうまく活用したチームワークの改善を訴えるはずだ。

 では、世界チャンピオンの機械学習アルゴリズムを訓練しているところを想像してみよう。たとえばKaggleに投稿されているデータマイニング競争(http://www.kaggle.com/compe
titions)で勝ちたいと思っているのかもしれないし、単純にビジネス上の結果を改善しなければならないだけかもしれない。どこから始めたらよいだろうか。状況は大きく異なるが、スポーツチームの能力を高めるために使われている方法は、学習器の性能を上げるためにも使える。

 コーチの仕事は、性能の目標を達成するために、訓練テクニックとチームワークのうまい組み合わせを見つけることだ。この章では、本書全体で説明してきた素材を基礎として、学習器の予測性能を向上させるためのテクニックを紹介する。この章では、次のようなことを学ぶ。

  • 系統的に最適な訓練条件セットを探してモデルの性能強化を自動化する方法。
  • モデルを結合して難しい学習タスクにチームワークで向かっていく方法。
  • 決定木の変種の使い方。この方法は、優れた性能を発揮することから、急速に人気を集めてきている。
 

 すべての問題で成功するような方法はこれらのなかにはない。しかし、機械学習の大会で優勝したものを見れば、これらのなかの少なくとも1つが使われていることがわかる。競争力を付けるためには、あなたもレパートリーのなかにこれらのスキルを追加する必要がある。

第12章 機械学習の専門的なテーマ

 おめでとう。あなたの機械学習研究もついにここまで来た。まだ独自プロジェクトを始めていないなら、すぐに始められるだろう。実際にプロジェクトに取り掛かると、データを行動に繋げる仕事は、最初に思ったよりも難しいことがわかるだろう。

 データを集めてみると、情報がプロプライエタリな形式に閉じ込められていたり、ウェブページに分散していたりすることがある。さらに悪ければ、何時間もかけてデータの形式を整え直しているうちに、コンピュータがメモリを使い切って動きが極端に遅くなるようなことがあるかもしれない。Rがマシンをクラッシュさせたり止めたりすることさえある。しかし、こういった問題は、あと少し頑張れば解決できるので、決してくじけないでほしい。

 この章では、すべてのプロジェクトに応用できるわけではなくても、そのような特殊な問題を避けるために役立つテクニックを取り上げていく。次のようなデータを操作することが多いなら、この章の内容は特に役立つかもしれない。

  • ウェブページ、ウェブAPI、スプレッドシートなどの構造化されていない形式やプロプライエタリな形式に格納されているデータ
  • 生物情報学やソーシャルネットワーク分析などの専門的な領域のデータ
  • 大き過ぎてメモリに入りきらないデータや分析が終わるまで非常に時間がかかるデータ

 あなたがこれらの問題で頭を痛めているなら、それはあなただけではない。これらの問題はデータサイエンティストの災いの元であり、データスキルを持つ人の需要が高い理由でもあるが、万能薬はない。しかし、Rコミュニティの献身的な努力により、これらの問題を解決するための出発点となるRパッケージがいくつも作られている。

 この章は、それらの問題に対処するクックブックである。たとえあなたが経験豊富なRのベテランだとしても、ワークフローを単純にするパッケージが見つかるかもしれない。あるいは、ほかの人々の仕事を楽にするようなパッケージを作ることになるかもしれない。

◆◆◆

 各章の導入に興味が湧いたら、ぜひ本書を手に取ってみてください!

Rによる機械学習

Amazon SEshop その他


Rによる機械学習
12のステップで理解するR言語と機械学習の基礎理論と実装手法

著者:ブレット・ランツ
翻訳:株式会社ロングテール 長尾高弘
発売日:2017年3月2日(木)
価格:4,104円(税込)

本書では直感でわかる基礎的な統計手法をとっかかりにしてそのデメリットを補正するために次の統計手法を紹介し、その手法に合わせたR言語のパッケージと使い方を、実際のデータを操作しながら説明します。



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

バックナンバー

連載:翔泳社 新刊紹介

もっと読む

著者プロフィール

  • 渡部 拓也(ワタナベ タクヤ)

     翔泳社マーケティング課。MarkeZine、CodeZine、EnterpriseZine、Biz/Zine、ほかにて翔泳社の本の紹介記事や著者インタビュー、たまにそれ以外も執筆しています。

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5