ガジェット通信

見たことのないものを見に行こう

Python、それともR?機械学習実装の一歩を踏み出すためのスタートガイド

DATE:
  • ガジェット通信を≫

機械学習の分野におけるPython, Rのメリット

Pythonのメリット

数値計算・機械学習関連のライブラリが充実
グラフィックス用のパッケージが用意されているため、結果の図示が容易

Rのメリット

統計分析に特化されておりライブラリが充実
グラフィックス用のパッケージが用意されているため、結果の図示が容易
分類器、回帰など、パッケージ毎に機能が分かれているため、必要なパッケージを探しやすい

機械学習の活躍分野の一つ – 集合知を引き出す

世界には数十億人の行動パターンや消費性向という「情報」が眠っており、これらに対して収集・加工・分析を加えれば、有用な統計的結論が導けるという古典的なアイデアです。

とはいえこれは概念的なもので、集合知を引き出すための方法は長らく存在しないままでした。

そこに革新的変化を起こしたのが、Webと、機械学習を含むAI時代の到来です。
GoogleはPageRankを始めとするWebページの評価の仕組みを創り出しましたが、これはまさにリンクの作成というユーザーのミクロな行動を、新規かつマクロな情報へと発展させたという意味で、集合知の世界最大の活用例といえます。

そこでも大きな役割を果たしているのが機械学習です。
有名なパンダアルゴリズムの骨子は、ページ内容に対する20超の質問項目に基づいた、機械学習によるスコアリングです。

またGoogleにおける機械学習は、サイトの評価をユーザーの動向から将来のトレンドを予測するなどの高度な市場分析までを担っています。GoogleはPrediction APIという機械学習のサービスをAPI化していますから、我々にとって、高度な分析へのアクセシビリティは確実に増大しています。

もちろん、Amazon等による商品のレコメンデーション技術のことも忘れてはいけません。

Pythonによる機械学習の実装

Pythonのライブラリを利用した機械学習の実装手順の例

ここでは、Scikit-learnライブラリを使った機械学習が実装出来るまでの環境構築について述べていきます。OSはWindows 7を想定します。

以下のライブラリを利用します。

NumPy: 数値計算を効率的に行うためのライブラリ
SciPy: 統計、最適化、積分、線形代数、etcなど、様々な数値計算を行うライブラリ
matplotlib: グラフ描画ライブラリ

Pythonのインストール

Python2.7の32bit版を勧めます。
NumPy,SciPyは64bit対応していませんからご注意ください。

Pythonのインストール

PythonのPathを通す

Pythonのパッケージ管理システムであるpipをインストー

get-pip.pyをダウンロードする
下記コマンドを実行します

$ python get-pip.py

関連ライブラリをインストール

Scikit-learn、NumPy、SciPy、matplotlibをインストールします。
pipでインストールする方法と、Windowsバイナリファイルをダウンロードして実行する方法があります。
NumPy , SciPy , matplotlib はpipでの失敗事例が多いようですので、Windowsバイナリファイルを用いましょう。

ライブラリをインポートする

import numpy
import scipy
import matplotlib
import sklearn

以上で、ライブラリを利用したプログラムの作成準備が整いました。

Scikit-learnでできること

分類…さまざまな分類器を用いて、対象となるデータの属性を決定する。主に教師付き学習(supervised learning)で行われる。
回帰…変量どうしの関係性を明らかにする。また、関係性の確からしさを評価することが出来る。
クラスタリング…対象となるデータからグループを見つけ出す。主に教師無し学習(unsupervised learning)で行われる。
次元削減…可能な限りもとのデータの情報量を損なわないように、データの次元数を小さくする。
モデル選択…実世界をモデル化する際に、適切なモデルを選択する。回帰分析のサポート等に用いることが出来る。

Rによる機械学習の実装

Rのライブラリを利用した機械学習の実装手順の例

1.Rのダウンロード

Rには種々のライブラリがあり、それぞれが機械学習の各分野に対応しています。
そのため全ユーザーに必須の操作はこれだけといえます。

Rのダウンロード

2.CRANから関連パッケージをインストール

install.packages(“パッケージ名”, dependencies = TRUE)

3.パッケージを呼び出します。

library(パッケージ名)

Rの機械学習関連パッケージ

{rpart}:分類、回帰の一種である決定木手法を用いる際に有用です。
{kernlab}:パターン認識手法の一つであるSVM(support vector machine)を実装する際に有用です。
{stats}:階層的クラスタリングを実装する際に有用です。なお、k-means法はパッケージのインストールをしなくても十分実装可能です。
{flexmix}:潜在クラス分析を行う際に有用なパッケージですが、混合分布クラスタリングにも応用することができます。

参考書籍

集合知プログラミング

Pythonによる機械学習のサンプルコードが豊富で、集合知の取り扱いに関するトピックが網羅されています。

Rによるデータサイエンス-データ解析の基礎から最新手法まで

機械学習というよりは統計分析がメインの書籍ですが、
数学的背景よりも実践的なコードの記載が充実しており、ビジネス用途に適しています。

パターン認識と機械学習 上下

ベイズ統計を基礎とした機械学習を理論から学びたい人にお勧めです。
かなりの数学的な前提知識を要求されます。

その他

『Rクックブック』や『Pythonクックブック』も持っておくとよいでしょう。

☆☆首なしAIロボットが世間を騒がす「AIフィクション」連載中!☆☆

<最新話>
首なし人工知能ロボットに、人間が乗っ取られる!?

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。