情報工学実験 3 : データマイニング班


授業内容と方法

データの山を採掘することで「データの中に埋め込まれている(有用な)知識を発掘」することをデータマイニング(data mining)と呼ぶ。別の言い方では、データマイニングは、より良い意思決定をするために履歴データをうまく使って一般的な規則性を発見しようとする研究分野である。

データマイニングの手続きとしては、(1)対象領域の理解、(2)データの準備、(3)パターン(知識)の発見、(4)パターンの事後処理(可視化、解釈など)、(5)結果の活用、といった一連のステップを繰り返すことが多い。

今回の実験においては、(a)機械学習の基本的な考え方を実装&体験を通して学び、(b)scikit-learnによる機械学習を用いたチュートリアルを通してデータ・マイニングを概観する。また、(c)自然言語処理を導入した文書分類や類似文書検索といった例を基に、構造化されていないテキストデータから有用な情報を得るテキスト・マイニングにも踏み込む。最終的には、(d)機械学習をツールとして用いたシミュレーションを通し、プログラミング技術・問題設定・評価・考察といった一連の計算機実験のために必要なプロセスを体験してもらうことを目的とする。

達成目標
  • バージョン管理(Mercurial or Git)、ユニットテスト(pytest or doctest)を用いて開発することができる。
  • データ・マイニングのプロセスを踏まえ、各手続きを自動化することで実験を効率良く進めることができる。
    • データセットがどのような背景・状況でどのように構築されたのかを解釈し、目的とするマイニングに必要なデータ(特徴/説明変数/素性)の取捨選択を検討/実施することができる。
    • 非(半)構造化データに対し、マイニングに適したデータセットを検討/構築することができる。
    • 属性選択&構造化されたデータセットに対し、データマイニングを適用することで得られた知識を可視化・解釈する手段について検討/実施することができる。
    • (可視化・解釈した結果から有用な知識にについて説明することができる)
  • 開発したプログラムを再利用可能な形で公開できる。
    • 実験再現に必要なプログラムやデータを整理して用意できる。
    • 実験を再現する手順をドキュメントとして用意できる。
  • 実験内容を報告書として文書化できる。
    • 第三者として本実験班にいない知能情報コース同学年学生を想定し、実験目的を述べることができる。
    • 実験計画や手順を検討し、述べることができる。
    • 生の実験結果を適宜図表等にまとめつつ整理し、事実に基づいた意見(考察)を述べることができる。特異な現象や傾向を見出したときは、その原因を推理し、追求を試みることができる。
    • 実験結果と目的を対応させながら結論を述べることができる。
    • 達成できたこと、できなかったことを整理し、残された課題を述べることができる。
進め方
  • ステージ1〜2はガイダンス・解説および演習がメインですが、その後は進捗状況を報告してもらい、それに対して指導するという形式になる予定です。
  • グループで取り組み、最終アウトプットとしては「ドキュメント付きのオープンソース」として公開することを目標とします。
  • どのようなタスクに取り組むかはグループ単位で決めてもらって構いませんが、必ず機械学習の適用を含むこと。
  • 先行事例の参照について。

    データマイニング班の過去の事例を含め、論文・書籍・解説・webページ等の先行事例を参照することはカンニングではありません。むしろ推奨されます。例えば追実験(先行事例通りに実装し、結果の妥当性を検証する等)をするというスタンスも良いでしょう。ただし、参考にする際には経緯を払って文献情報を示すことを忘れないように。

  • 既存プログラムの利用について。

    開発することそのものを含めての実験なので、丸々利用して終わり、という形になるのはNGです。が、利用した上で+αの追加実装(インタフェース改善等でも)やれるのであれば、利用してもらって構いません。なお、最終的にはオープンソースとして公開しますので、ライセンスには十分に気をつけてください。




ステージ1: 事例紹介, 環境構築, Pythonチュートリアル, ユニットテスト

3週目


4週目


5週目


参考文献・サイト