データマイニング

データマイニング（英語: data mining）とは、統計学、パターン認識、人工知能等のデータ解析の技法を大量のデータに網羅的に適用することで知識を取り出す技術のことである。DMと略して呼ばれる事もある。通常のデータの扱い方からは想像が及びにくい、ヒューリスティク（heuristic、発見的）な知識獲得が可能であるという期待を含意していることが多い。とくにテキストを対象とするものをテキストマイニング、そのなかでもウェブページを対象にしたものをウェブマイニングと呼ぶ。英語では"data mining"の語の直接の起源となった研究分野であるknowledge-discovery in databases（データベースからの知識発見）の頭文字をとってKDDとも呼ばれる。 データマイニングの定義としては、「明示されておらず今まで知られていなかったが、役立つ可能性があり、かつ、自明でない情報をデータから抽出すること」、「データの巨大集合やデータベースから有用な情報を抽出する技術体系」などがある。 データマイニングは、通常はデータの解析に関する用語として用いられるが、人工知能という用語などと同様、包括的な用語であり、様々な文脈において多様な意味で用いられる。 1989年に起きた"Knowledge Discovery in Databases"と呼ばれる学術研究分野の確立が、データマイニングという研究分野の直接の起源である。データマイニングの発展には、1990年以降の計算機の性能向上や大量のデータ蓄積が可能となったことが直接的に関係している。デジタル形式でのデータの収集は、コンピュータを用いてデータ解析をすることを念頭に置いて1960年代には既に行われつつあった。関係データベースとその操作用の言語SQLが1980年代に出現し、オンデマンドで動的なデータ解析が可能となった。1990年代に至り、データ量は爆発的に増大した。データウェアハウスがデータの蓄積に用いられ始めた。 これに伴い、データベースにおける大量データを処理するための手法としてデータマイニングの概念が現れ、統計解析の手法や人工知能分野での検索技術等が応用されるようになった。2010年代には膨大なデータを利用してデータマイニングを行うビッグデータ解析を用いた実用的なサービスが多数登場して提供されている。 メインフレームが金融企業の基幹業務システムとして稼働開始した。同時に、デジタルデータの収集、蓄積、利用の試みが開始された。 1971年から1973年にかけて、チリでサイバーシン計画が実行される。コントロールセンターが、テレックスを介して実時間でチリ各地に点在する工場からデータを収集して、収集したデータを元に、オペレーションズ・リサーチを用いて最適化した生産計画を作成し、工場に対して生産計画をフィードバックするシステムであった。 論文上で"Data mining"という語の使用が行われる。但し、語の定義は現在とは大きく異なっており、1970年代においては否定的なニュアンスで使用されている。 現在の"Data mining"の定義と類似する"Knowledge Discovery in Databases"という語が出現する。関係データベースシステムとその操作用言語であるSQLが出現する。データウェアハウスの運用が開始される。 1989年 - "IJCAI'89 Workshop on Knowledge Discovery in Databases"という名称のワークショップがアメリカのデトロイトにおいて開催される。ここで"Knowledge Discovery in Databases"という語が初めて現れている。"Data mining"の語は既にデータベースの関係者の間で否定的な意味で用いられており、商標にも類似していたため、このような名称となった。 1990年頃から始まった計算機の急激な性能向上により"Knowledge Discovery in Databases"の研究が大幅に加速される。 1990年 - 1994年 - "Knowledge Discovery in Databases"の研究が推進される。この時点では研究者間でも同分野に対する認識は「データに対して何らかの演算を行って知識を発見する」といった程度のものであった。 1995年 - モントリオール国際会議において"Knowledge Discovery in Databases"の語の公認がなされる。 1996年 - "Knowledge Discovery and Data Mining: Towards a Unifying Framework."という論文が提出され、"Knowledge Discovery in Databases"と結び付けた形で"Data mining"の語の定義・基本機能・処理手順が提案される。同年より多数の研究者により本論文の引用が始まり、"Data mining"の語が論文上に頻出するようになる。この時点でデータマイニングという研究分野が明確に定義された。 1999年 - 2010年代に大量の実世界データを収集・供給する基盤となるInternet of Things(IoT)の用語がKevin Ashtonにより初めて使用された。 インターネットへの常時接続が一般家庭にも普及する。インターネット上に蓄積されたデータが加速度的に増加する。後にデータの主要な供給源の1つとなる友人紹介型のソーシャル・ネットワーキング・サービスが2002年より相次いで提供され始める。コンピュータとインターネットの普及に着目し、ビジネスにおいて膨大に蓄積され活用しきれなくなったデータの分析を専門に行う企業も徐々に出現し始める。 2000年 - "Knowledge discovery in databases: 10 years after"という論文が提出される。"Knowledge Discovery in Databases"の研究分野の創出より約10年後から"Knowledge Discovery in Databases"という研究分野の発展の歴史を振り返った内容となっている。 英国"The Economist"誌において"big data"の語が提唱された。コモディティ化によりコンピュータの計算能力が安価になり、高速データ処理用のコンピュータ・クラスタの構築が容易にできるようになった。データ分析のコストが下がり、ビッグデータ解析の応用が進むようになった。データサイエンティストという名称の職業が台頭し始めた。また、ビッグデータを用いたデータマイニングを応用したサービスが一般向けにも提供され始めた。コグニティブ・コンピューティング・システムが商用で実用化された。テレビ番組の紹介コーナーでも、インターネット上に存在するビッグデータの統計分析結果を元に流行のトレンドを紹介するようになった。 ディープラーニングの実用化が急速に進み、非常に多数の人工知能サービスが現れた。 2010年 - 英国"The Economist"誌において"big data"の語が初めて現れる。 2011年2月16日 - データマイニングと推論を応用した質問応答システムである"IBM Watson"がアメリカのクイズ番組"Jeopady!"に出場して人間に勝利する。 2012年 - メーカー系大手ITベンダーのビッグデータを扱うソリューションの事業化への取り組みが活発化する。 2016年2月18日 - "IBM Watson"の日本語学習が完了し、IBMが以前から予定していた日本語版のコグニティブ・コンピューティング・サービスの提供を開始した。 データ集合の中から，高頻度で発生する特徴的なパターンを見つける。 相関ルール抽出 データベースに蓄積された大量のデータから、頻繁に同時に生起する事象同士を相関の強い事象の関係、すなわち相関ルールとして抽出する技術。POSやEコマースの取引ログに含まれる購買履歴を利用したバスケット解析が著名である。 例1：スーパーでビデオを買った人のうちガムテープを買う人が多い → 両者を同じ場所に置く。 例2：本Aを買う人は、後に本Bを買うことが多い → 本Aの購入者に本Bを薦めるダイレクトメールを送る。 その他の頻出パターン 時系列やグラフを対象としたものもある クラス分類は与えられたデータに対応するカテゴリを予測する問題。 代表的な手法：単純ベイズ分類器, 決定木, サポートベクターマシン 例：薬品の化合物のデータから，その化合物に薬効がある・ないといったカテゴリを予測 与えられたデータに対応する実数値を予測する問題 代表的な手法：線形回帰、ロジスティック回帰、サポートベクトル回帰 例：曜日、降水確率、今日の売上げなどのデータを元に、明日の売上げという実数値データを予測 例：温度，水分活性，pHなどのデータを元に、食中毒細菌の増殖および死滅を予測 データの集合をクラスタと呼ぶグループに分ける。クラスタとは、同じクラスタのデータならば互いに似ていて、違うクラスタならば似ていないようなデータの集まり。 データ・クラスタリングを参照 例：Webの閲覧パターンのデータから、類似したものをまとめることで、閲覧の傾向が同じ利用者のグループを発見する。 SAS Enterprise Miner SPSS Clementine NAG NAG data Mining component NTTデータ数理システム Visual Mining Studio : 数理最適化を専門とする日本企業の製品である。 KXEN,Inc. KXEN Rapid-I GmbH Rapid Miner TIBCO Spotfire： CIA開発ともいわれる米国政府機関御用達のマイニングツール。 CART (HULINKS)： 巨大な2進木でも短時間で作成可能な決定木解析ソフト。 RandomForests (HULINKS)： CARTとブートストラップ法で決定木の群体を複合生成するRandom forestを商用化したマイニングシステム。 Data Mining (Oracle Data Mining)：　Oracle Database Enterprise EditionのオプションAPI。自動的にマイニングして予測・発見を報告する機能を開発しOracleアプリケーションに組み込むことを支援する。 Data Robot ([1]) 複数のアルゴリズムを並列計算させ、評価関数で順位付けする。 GNU R (r-project.org)：　GNUプロジェクトによるS言語仕様をGNU GPL実装した汎用統計可視化環境。一般的に"R言語"や"R"とも呼ばれる。無償の貢献プログラムパッケージは6000を越え、Wekaを利用するRwekaやRandom forestなどもある。UIは、R GUIかターミナル経由のコマンドライン入力のみ。下記RED Rなどの援用でダイアグラム入力も出来る。R自体はインタプリタだが、速度が必要ならC言語やFortranのコードを直接記述してコンパイル実行でき、パッケージRcpp併用でC++も混在可能。信頼性に定評があり、米国FDA公認。マルチプラットフォーム。GNU GPLオープンソース。 Weka (waikato.ac.nz/ml/weka)：　ワイカト大学で開発された、javaベースのデータマイニングソフトウェア。ダイアグラムなど多様なグラフィカルインタフェースで高度なマイニング手法を視覚的に構築し駆使できる。連関規則やニューラルネットワーク、SVM、決定木などさまざまな分析手法があらかじめ数多くモジュールとして組み込まれており、コードを書く事なくモジュールをリンクで結んでいけば入力・分析・出力までの流れを構築できる。ゼロからコードを書いてモジュール登録もできる他、プラグインによる機能拡張も可能。ただデータマイニング研究用のツールとして産まれただけに、的確に使うには分析手法の専門的な評価知識が必要。GNU GPLオープンソース。 RapidMinerコミュニティ版 (rapid-i-partner.jp/product/miner)：　上記商用エンタープライズ版からサポートサービスなどを除いたフリー版。オープンソース。内部にWekaを統合し、Weka同様にダイアグラム式の分析フローを構築できる。GNU Rへのインタフェースもある。 Julia (プログラミング言語) (julialang.org)：　科学技術計算を主たる目的として設計された汎用高水準プログラミング言語とその実行環境。その開発動機として「R言語の柔軟性は良いが、処理速度に幻滅した」ことを上げ、高速処理を開発の最優先目標としている。公式ページには既に統計やマイニングに適用できる多数の分野別パッケージが公開されている。LLVMを利用しており、移植性にも優れる。MIT License オープンソース。 Orange (orange.biolab.si)：　グラフィカルデータマイニングソフトウェア。コードを書かなくともモジュールをダイアグラムで結んでいけば分析フローを構築できる。Pythonで書かれている。Windows,OSX,各種Linux対応のマルチプラットフォーム。GNU GPLオープンソース。 Red-R (red-r.org)：　GNU Rにダイアグラムインタフェースを統合できるソフトウェア。フロントエンドにOrangeを利用しているためOrangeと同一の感覚でRを使えるばかりか、GNU Rの既存のコードとダイアグラムを相互に変換できる。GNU GPLオープンソース。 R AnalyticFlow (ef-prime.com)：　GNU Rにダイアグラムインタフェースを統合できるソフトウェア。GNU Rの既存のコードとダイアグラムを相互に変換できる。RED Rに比べ、新規の分析フロー開発を重視した機能が充実している。日本の企業ef-primeが無料で配布しているので日本語マニュアルがあり、有償の法人サポートもある。RjpWikiにはユーザーコミュニーティがある。 D3.js (d3js.org)：　ブラウザを使って統計データを様々な表現で可視化するための JavaScriptライブラリ。 OpenCV：　イメージや形状データの認識・抽出・予測処理を目的としたコンピュータビジョンライブラリであるが、パターン認識、機械学習など汎用性ある関数が数多く収録され、データマイニングでの可用性も高い。インテルが開発。オープンソース。 Shogun toolbox (Shogun)：　マルチカーネル学習(MKL)などサポートベクターマシンを中心として最先端のアルゴリズムを網羅した機械学習ツールボックス。C++で実装され、MATLAB、GNU R、GNU Octave、Python、Java、Lua、Ruby、C# から利用可能なインタフェースがある。GNU GPL3。