情報工学実験 3 : データマイニング班
(注意)実験内容を煮詰めきれていないこともあり、行き当たりばったりになる可能性が高いです!- データマイニング班学生公開用Wiki
- 授業内容と方法
- 達成目標
- スケジュール案
- ステージ1(1~3週目): 事例紹介, 環境構築, Pythonチュートリアル, ユニットテスト
- ステージ2(4~5週目): データマイニング概観, チュートリアル: scikit-learn
- ステージ3(6~8週目): 言語処理100本ノック(第1セット、第2セット、第5セットをつまみ食い?)
- ステージ4(9~10週目): テーマ設計
- ステージ5(11~16週目): 個別開発, 発表, 公開
- 参考文献・サイト
- 授業内容と方法
-
データの山を採掘することで「データの中に埋め込まれている(有用な)知識を発掘」することをデータマイニング(data mining)と呼ぶ。別の言い方では、データマイニングは、より良い意思決定をするために履歴データをうまく使って一般的な規則性を発見しようとする研究分野である。
データマイニングの手続きとしては、(1)対象領域の理解、(2)データの準備、(3)パターン(知識)の発見、(4)パターンの事後処理(可視化、解釈など)、(5)結果の活用、といった一連のステップを繰り返すことが多い。
今回の実験においては、scikit-learnによる機械学習を用いたチュートリアルを通してデータ・マイニングを概観する。 また、自然言語処理を導入した文書分類や類似文書検索といった例を基に、構造化されていないテキストデータから有用な情報を得るテキスト・マイニングにも踏み込む。
- 達成目標
-
- バージョン管理(Mercurial)、ユニットテスト(unittest2)を用いて開発することができる。
- データ・マイニングのプロセスを踏まえ、各手続きを自動化することで実験を効率良く進めることができる。
- データセットがどのような背景・状況でどのように構築されたのかを解釈し、目的とするマイニングに必要なデータ(特徴/説明変数/素性)の取捨選択を検討/実施することができる。
- 非構造化データに対し、マイニングに適したデータセットを検討し、構築することができる。
- 属性選択&構造化されたデータセットに対し、データマイニングを適用することで得られた知識を可視化・解釈について検討/実施することができる。
- 開発したプログラムを再利用可能な形で公開できる。
- 実験再現に必要なプログラムやデータを整理して用意できる。
- 実験を再現する手順をドキュメントとして用意できる。
ステージ1: 事例紹介, 環境構築, Pythonチュートリアル, ユニットテスト
- 事例紹介
- 電子マネー顧客分類のための手法検討と解析結果に関する報告 : 自己組織化マップと協調フィルタリングを用いたクラスタリング (電子情報通信学会技術研究報告. KBSE, 知能ソフトウェア工学, 2006)
- 日本語オントロジー辞書Ontolopediaの構築と興味抽出手法への応用検討 (2008年度修士論文, 宮城良征)
- 共起情報を用いた Web ページを特徴付けるメタデータ生成方式の提案と情報検索への応用 (2009年度修士論文, 小野裕作)
- SIFT特徴量から構築した共起情報に基づく一般物体認識手法の提案 (2011年度修士論文, 下地竜雄馬)
- Twitter上で行われる議論構造可視化のためのツイート種別推定・話題クラスタリング手法の検討 (2011年度修士論文, 与儀涼子)
- 学習指導要領に基づいた設問自動分類タスクにおける分類精度向上に関する研究 (2012年度修士論文, 名嘉真之介)
- 協調フィルタリング? (山内)
- 環境構築
- Pythonチュートリアル
- ユニットテスト (FizzBuzz + docstring + pydoc + doctest)
ステージ2: データマイニング概観, チュートリアル
- ステージ2-1: 手動オープンテスト (estimator.fit + estimator.score + np.random.permutation)
- ステージ2-2: 線形回帰で推定、グラフ描画の練習 (linear_model.LinearRegression, pl.scatter, pl.plot)
- ステージ2-3: モデルのパラメータ調整演習 (estimator.set_params, pl.plot, pl.semilogx, pl.label, pl.lebend)
- ステージ2-4: クラスタリング、3次元グラフ描画演習 (cluster.KMeans, cluster.Ward + Axes3D)
- ステージ2-5: 半教師あり学習の練習
- other examples: Examples
ステージ3: 自然言語処理入門
- ステージ3-1: N-gramモデル + 出現回数による文書ベクトル生成の例 (nltk.ngrams + nltk.FreqDist)
- ステージ3-2: タームを素性とする特徴ベクトル生成の例 [ 英語編 | 日本語編 ] (文分割 + トークン化 + ステミング + ストップワード除去)
- ステージ3-3: 潜在的意味インデキシング(LSI)の例 (np.linalg.svd + np.dot)
- ステージ3-4: ベクトルの重み付け例 (バイナリ、正規化、TFIDF値)
- ステージ3-5: 類似度や距離の例
ステージ4: テーマ設計
- 課題例1: Twitter上のテキスト文を対象とした2値分類学習に基づく未知語自動収集
- リポジトリ~/HG/tnal/
- 課題例1: stage4-examples-unknown-words.pptx.pdf
- その他: problem-design-examples.mm
参考文献・サイト
- 開発関係
- データマイニング関係
- データマイニングの簡単な解説
- データマイニングの宝箱
- サーチアーキテクチャ「さがす」の情報科学 (book, 一般寄り)
- 集合知プログラミング (book, 実装寄り/Python)
- 集合知イン・アクション (book, 実装寄り/Java)
- データマイニングによる異常検出 (book, 研究寄り)
- テキストマイニングハンドブック (book, 概観+網羅)
- 第26回 データマイニング+WEB@東京( #TokyoWebmining 26th) -オープンデータ活用・ソーシャ ル・アドテクノロジー 祭り- を開催しました
- Twitterでの番組の評判を番組作りに活かすNHKのつぶやき解析技術 - GIGAZINE
- Webデータ分析&データサイエンスで役立つ統計学・機械学習系の分析手法10選
- リンクするデータ(Linked Data)-広がり始めたデータのクラウド, 情報処理学会誌, 2011: [ 目次一覧 ]
- 「アクセス解析」における5つの真実
- 自然言語処理関係
- Python による日本語自然言語処理
- 入門 自然言語処理 (book)
- 言語処理100本ノック - 東北大学 乾・岡崎研究室
- NLPプログラミングチュートリアル - Graham Neubig - チュートリアル資料
- (有料) 不自然言語処理 -枠に収まらない「リアルな」言語処理, 情報処理学会誌, 2012: [ 目次一覧 ]
- Wikipediaマイニング:Wikipedia研究のサーベイ, 情報処理学会論文誌データベース, 2009
- 利用者の好みをとらえ活かす-嗜好抽出技術の最前線, 情報処理学会誌, 2007: [ 目次一覧 ]
- 機械学習関連
- Jubatus : オンライン機械学習向け分散処理フレームワーク (C++, Python, Ruby, Java)
- 機械学習チュートリアル@Jubatus Casual Talks
- 機械学習の Python との出会い
- scikit-learn: machine learning in Python
- Pythonのscikit-learnでRandomForest vs SVMを比較してみた
- 機械学習 はじめよう : 連載 | gihyo.jp
- 怪奇!! 次元の呪い - 識別問題、パターン認識、データマイニングの初心者のために (解説記事): 前編, 後編 (情報処理, Vol.34, No.5, No.6)
- SVM実践ガイド (A Practical Guide to Support Vector Classification)
- 統計的にインデントするやつ
- 関連学会など
- データセット
- 関連記事
- 空気を読んで論文を紹介するtwitter-bot 「論文ったー」つくってみた。 - YamadaToshiyukiの日記
- Facebookが考えるデータサイエンティストの要件 - 道玄坂で働くデータサイエンティストのブログ
- Hiveで生テーブルを取ってくる→素性ベクトル+分類ラベルのテーブルに直す - 道玄坂で働くデータサイエンティストのブログ
- 「ゲームとTwitterとFacebookしかしないなんてもったいない」、Gunosy開発チーム根掘り葉掘りインタビュー - GIGAZINE
- Evernoteがアプリ開発コンテスト開催へ - 「Evernote Devcup 2013」で求められるエッセンスとは?
- ビッグデータに必須!"数学脳"の鍛え方 (Monthly Interview : 国立情報学研究所 新井紀子教授)
- 靴屋とデータマイニングと季節外れの冬物衣料 - あんちべ!
- データマイニングコンペティションサイト Kaggle にも Deep Learning ブームがきてるかと思ったのでまとめる - 糞ネット弁慶