データ分析でどんなことができる? 機械学習と個別のトピックについて解説!
記事の目的
この記事では、データ分析でできることを解説していきます。具体的には、機械学習とデータ分析の個別のトピックにいて解説します。また、それぞれのトピックを見た上でプログラミング言語でRかPythonどちらを使用したら良いかについても解説していきます。
目次
1. 機械学習
1.1 機械学習の概要
1.1.1 機械学習の目的
機械学習の主な目的は予測にあります。商品の売り上げ予測や、写真に写っているのが猫か犬かなどです。データ分析手法として機械学習を先に説明する理由としては、分類がわかりやすいからです。機械学習は大きく分類すると教師あり学習と教師なし学習、強化学習の3つに分けられます。この分類がデータ分析の全体像を説明するのにぴったりなのです。もちろん、機械学習で説明される内容は統計学もうまく説明しているので、統計学と機械学習を別物として考える必要はありません。
1.1.2 機械学習と統計学
上記のように、機械学習の目的は予測にあります。では、統計学とはどのように異なるのでしょうか。明確に定義されているわけではないので、感覚的な話をします。機械学習の目的は、データを用いて学習することで、予測をすることです。統計学の目的は、データを用いて母集団についての推定や検定を行うことです。大雑把に言うと、機械学習を使用するときデータの特徴とかはあまり気にせず、予測さえできれば良いのです。統計学の場合は予測よりもデータにどのような特徴があるのかを大事にします。
1.1.3 AIエンジニアとデータアナリスト
これもイメージにはなるのですが、機械学習を多く使用するのはAIエンジニアで統計学を使用するのはデータアナリストです。昨今有名な画像認識や音声認識など、システムにデータ分析の結果を組み込むのに必要なのが機械学習の考え方です。これらは予測するのが大切で、データの分布がどうとかは二の次です。逆に、ビジネスでの意思決定や顧客の情報を把握したりするのに使用されるのが統計学です。予測精度はもちろん大事にはなるのですが、それよりもなぜそうなるのかを大事にします。予測より解釈を重要視します。
1.2 教師あり学習
1.2.1 教師あり学習の概要
教師あり学習は、最も典型的な手法と言えます。教師ありと言うように、正解のデータがある場合の統計的手法と言えるでしょう。教師あり学習は大きく分けると回帰と分類に分けられるので、それらについて解説していきます。
1.2.2 回帰
回帰は、直接数値を予測する方法です。ある顧客の売り上げ予測が良い例です。説明変数のデータ(年齢、年収、性別)から目的変数(顧客の売り上げ)を予測します。目的変数(教師データ)が用意されているので教師あり学習に分類されています。有名な手法として重回帰分析があります。
1.2.3 分類
分類は、データが属するカテゴリを予測する方法です。顧客の商品の選択予測が良い例です。説明変数のデータ(年齢、年収、性別)から目的変数(商品A, 商品B, 商品Cどれを購入するか)を予測します。目的変数(教師データ)が用意されているので、これも教師あり学習です。回帰との違いは、目的変数が数値かカテゴリかという点です。有名な手法にロジスティック回帰分析があります。回帰と名のついてますが分類です。
1.2.4 回帰と分類
回帰分析にも分類にも使用できる手法もたくさんあります。SVM(サポートベクタマシン)や、k-近傍方、ニューラルネットワーク、決定木とその応用(ランダムフォレストや勾配ブースティング)、ガウス過程などです。
1.2.5 機械学習と統計学
重回帰分析やロジスティック回帰、決定木は解釈がしやすく、マーケティングなどデータの解釈が必要な現場でよく用いられています。SVM、k-近傍方、決定木の応用、ニューラルネットワークは解釈が難しい代わりに、予測精度が高いのでシステムに組み込まれるときに使用されます。
1.3 教師なし学習
1.3.1 教師なし学習の概要
教師なし学習は、正解データがない手法です。正解がないので精度を測るのは難しいです。教師なし学習として、クラスタリングと次元削減、生成モデルの3つについて解説します。
1.3.2 クラスタリング
クラスタリングは簡単に言うと似た者同士でグループ分けです。例えば、中学生の5教科のテストのデータから似た点数のグループに分けることがあげられます。クラスタリングの結果から、文系と理系で分けられているのか、暗記科目得意なグループと頭使う系科目得意なグループに分けられるのか判断します。もちろん正解はないので、クラスタ後の結果を見てこちらで判断します。大体最初にいくつのグループに分けるかは設定してから分析をおこないます。有名な手法にはk-meansや混合モデルがあります。
1.3.3 次元削減
次元削減は、データの情報を縮約する方法です。例えば、中学生5教科のテストのデータ(5次元のデータ)から理系と文系の軸(2次元のデータ)に縮約することがあげられます。次元を縮約することで、データの解釈が容易になります。これも、正解のデータがないので教師なし学習となります。主成分分析や因子分析が有名です。
1.3.4 生成モデル
生成モデルは、新たなデータを生成する手法です。有名なのだと、AIが作った家具の画像やAIが作曲した、AIが描いた絵とかすごいのがあります。これらの技術はニューラルネットワークを応用したもので、有名な手法でVAEやGANがあります。
1.4 強化学習
強化学習では、環境内を動き回るエージェントを利用してデータの収集と学習処理を並行して行う手法です。環境(ルール)を設定して、エージェント(プレイヤー)がその環境内で高い点数をとるように学習するのです。有名な例としては、AlphaGoがあります。AIが将棋士に勝ったと言うニュースは聞いたことがあるでしょうか?それは強化学習の成果です。将棋のルール(環境)を設定して、AI(エージェント)が高い点数を取るように(王とったら10点、飛車角なら5点みたいに)学習させるのです。
2. 個別のトピック(学術的)
2.1 個別のトピック(学術的)概要
上記で説明した機械学習の分類は統計的手法を大きく分類するのにはとても便利でした。ここでは、学術的な内容の個別のトピックを紹介していきます。
2.2 時系列分析
時系列分析は、時間のデータを持ったデータを分析する手法です。自己相関や、季節、外部要因などを考慮してモデルを構築し、分析を行います。有名なモデルでARIMAモデルやGARCHモデルなどがあります。ベイズ統計の分野の状態空間モデルや、ニューラルネットワークの分野のRNNも時系列分析に含まれます。代表的なもので、以下が挙げられます。
- 株価の予測
- 売り上げ予測
- 売り上げ貢献した要因が説明変数によるものか時間特有のものか
2.3 テキストマイニング
テキストマイニングは、文字のデータを分析する手法である。マーケティングの文脈ではテキストマイニングと呼ばれ、機械学習の文脈では自然言語処理と呼ばれる。代表的なもので、以下が挙げられます。
- クチコミがポジティブかネガティブか予測
- ワードクラウドやネットワークグラフ作成
- 似ている文書同士でクラスタリング(LDAが有名)
- アンケートデータを対応分析(回答者の特徴と単語を対応させる)
2.4 ニューラルネットワーク
2.4.2 CNNとRNN
ニューラルネットワークを使用して、回帰分析や分類などを行うことができます。しかし、画像やテキストなどの複雑なデータを分析する際にCNNやRNNを使用することで、より効率的に学習することができます。CNNは画像データに対してよく使用されます。CNNは画像のデータに対し、空間の情報を上手く抽出することができます。RNNはテキストや音声解析によく使用されます。RNNは時系列の情報を上手く抽出することができます。
2.4.3 VAEとGAN
VAEやGANはニューラルネットワークを応用した技術です。生成モデルと呼ばれるモデルで、オリジナルのデータを生成することができます。オリジナルの画像だったり、テキストから画像を生成したりできます。ファッションの分野では、モデルの画像を変化させることを応用しています。例えば、モデルのポーズを変更させたり、服を着せ替えたり、髪型を変えたりなどです。アニメの分野でも、オリジナルアニメキャラクター作成などの応用がなされています。
2.5 ベイズ統計
ベイズ統計は、普通の統計的な手法を拡張して考えたものである。難しく言うと、パラメータを値として推定するのではなく、確率分布として推定します。有名な手法で、glm(一般化線形モデル)や、glmm(一般化線形混合モデル)、混合ガウスモデル、状態空間モデル、ガウス過程などがあります。重回帰分析やロジスティック回帰はglmの枠組みで説明できます。また、クラスター分析のk-meansは混合ガウスモデルの枠組みで説明できます。ベイズ統計は普通の統計的手法の拡張なので、より深く統計について学び、いろんな解釈をできるようになります。
2.6 最適化数学
最適化数学は、経営情報学やオペレーションズリサーチによく使用されます。他にも、ニューラルネットワークのモデルの学習の際に応用されたりしています。代表的なもので、以下が挙げられます。
- 荷物の配送経路最適化
- 現在の人員、費用などから最適な生産量を決める
- 最適な人員配置
3. 個別のトピック(ビジネス応用)
3.1 個別のトピック(ビジネス応用)概要
上記で説明した機械学習の分類を参考にして、ビジネスの応用が強いデータ分析の個別のトピックについて解説していきます。
3.2 マーケティングリサーチ
マーケティングリサーチは、マーケティングの際に使用される分析や調査のことです。代表的なもので、以下が挙げられます。
- 回帰分析で売り上げ貢献した要因を探る
- ロジスティック回帰で顧客の退会予測
- クラスター分析で顧客や商品をグループ分けして特性を見つける
- 因子分析、共分散構造モデルでアンケートやクチコミ分析
- マーケットバスケット分析で何と一緒に何が売れているのか
- ベイジアンモデリングでマーケティング現象のモデル化
3.3 効果検証
効果検証は、簡単に言うと行った施策に本当に効果があったのかを確かめる分析です。例えば、会社でデータ分析の研修会を開き、その結果について分析するとします。単純な回帰分析で研修会に参加した社員とそうでない社員の次の月の業績を比較しました、研修会に出た社員の次の月の業績の方が高いという結果が出ました。これは信じて良いのでしょうか? 元々、研修会に参加する社員は仕事へのモチベーションが高いことが考えられます。ですので、研修会に参加したことによって業績が高いのではなく、元々もっているモチベーションの違いからの差異であるとも考えられます。このように、結果の要因を特定するのはとても難しく、面白いトピックです。代表的なもので、以下が挙げられます。
- 広告の効果検証
- マーケティング施策の効果検証
- その他施策の効果検証
3.4 リコメンドシステム
リコメンドシステムはとてもわかりやすいと思います。リコメンドシステムを利用してる最も有名と言って良い企業はNetflixです。netflixの利用状況のデータを利用して多くのリコメンドシステムを導入しています。ただおすすめの動画を表示しているだけでなく、サムネイルもユーザーに合わせて変えたりしていますね。
4. プログラミング言語
4.1 RとPython
データ分析に使用されるプログラミング言語は主にRとPythonです。データ分析に興味をもって始める人はどちらの言語を使用した方が良いかとても迷うと思います。ここでは、RとPythonの特徴を解説し、どういうときにどちらの言語が向いているのかを解説します。簡単に言うと、データアナリストやマーケターなど統計学(解釈)よりの方はR、AIエンジニアやシステムエンジニアなど、機械学習(予測)よりの方はpythonが良いと思います。
4.2 R
4.2.1 ビジネス書(マーケティング)
効果検証やマーケティングリサーチ、ベイズ統計の書籍はRで実装されていることが多いです。ですので、Rを勉強しておくとこれらのトピックを勉強するときに実装も楽に出来るのでおすすめです。時系列分析のトピックもRで実装しながら学べる書籍が多くあります。情報収集の際に自分の慣れ親しんだ言語で実装されていることは非常に重要です。
4.2.2 レポート自動生成
Rでとても便利なのが、レポート生成機能があることです。html, word, pdfなどさまざまな形式でレポートを作成することができます。一度コードを書けば二度目からは一瞬でレポートを再現でき、定位的に必要になるレポートなどはこれで作れば秒です。また、htmlで作成するとインタラクティブなグラフが書くことができます。htmlのインタラクティブなグラフはこちら。このグラフの作り方はこちら。Shinyを使えばより動的なグラフを作ることも可能です。
4.3 Python
4.3.1 ビジネス書(ディープラーニング)
ディープラーニングを勉強するならPython一択です。ディープラーニングをRで実装している人は滅多にいません。また、予測精度を競うコンペであるkaggleの参考書もpythonで解説されていることが多いです。ディープラーニングを含めた機械学習関連を学習するならPythonが良いでしょう。
4.3.2 システム作成
PythonのRに勝る点は、pythonでwebアプリケーションを作成できることでしょう。RもShinyを使用すればwebアプリケーションを作成できるのですが、Shinyで作るwebアプリケーションは分析レポート用で、データ分析がアプリ上でできるものです。InstagramやYoutubeなどのシステムはpythonで作成することができます。また、データ分析結果をシステムに導入する際pythonを使えた方が何かと便利です。