Archive for the ‘データマイニング班’ Category

データマイニング班7回目はパラメータ調整の演習

木曜日, 5月 23rd, 2013

m_20130523113556519d808cb0015 m_20130523194218519df28a50b8e

明日は人間ドックのためお休みです! 20時を越えた今!食事間食NGどころか水以外飲めない訳で!お茶すら飲めないことによるストレスはどう発散したら!とか言いつつ、実際にはお茶珈琲とか普段飲んでても飽きる人なので、この日に備えてあまり水飲まないようにしてたのでお水ウマー!これぞまさに計画通り!!(AA略

それにしても初人間ドックなのでちょっと楽しみ。バリウムは飲めないらしいのが心残りだけど、また機会はあるだろうし。

ちなみに明日はAgile Japan 2013 サテライト リーン x アジャイルなんてイベントが予定されているらしい。


データマイニング班の7回目は以下のような中身でした。

メインは宿題チェックを通した「データセットの準備の仕方」についてのコメントとパラメータ調整演習ですが、それにしても他がお座なりすぎたかなぁ。scikit-learnチュートリアルは「次元の呪い(curse of dimensionality)、疎なデータ(sparsity)、過学習(over-fitting)正則化(regularization)」あたりの話がざっくばらんと紹介されてるのですが、そもそも各モデルについての具体的な知識も無いままだと意味不明ということもあってかいつまんで紹介するに留めたのですが、今回ぐらいの紹介だったらざっくりと省略した方が良かったかもしれない。やるなら正則化に限らず、何かしら具体的なモデルを一つ取り上げて勉強するぐらいは準備した方が良さげかなぁ。

後で何かしら補足してみようかしら。今以上に混乱招く可能性が高いんだけどw

データマイニング班6回目は脳裏に「M3」の2文字が明滅した人の話

木曜日, 5月 16th, 2013

m_201305161146295194488501595

明日はお休み! 有給取るのがヘタな人なので、休み取っても仕事したり、そもそも週末にちょこちょこ仕事してたりするんですが、やりたいことだけやれるので「休日の合間にやる」というのは割と捗るし。ここ最近の週末やら平日空いた時間は立ち上げたばかりのデータマイニング班準備ばかりですが、私自身体系的に勉強してきたという訳ではないのでいろいろ勉強になってます。

英語論文の書き方なるセミナーがあるらしい。院生以上が対象ですが、参加してみると良いんじゃないかと。前回と担当者が異なるようですが、こんな感じのセミナーでした。

ま、それはそれとして、明日の休みはどう過ごそうかなー。


データマイニング班の6回目は以下のような中身でした。

宿題やその場で書かせるコードのレビューでは、私自身Python使いまくってる訳じゃないこともあって、「確かにそう書いた方がイイネ!」がでてくるのは、学生的には嬉しいのか悲しいのか怪しい所だな。他の人のコードを見る&見られる機会という点では良いだろうし、そのためにやっているんだけど。

次元の呪い解説記事は10年ちょい前の記事ですが今でも全体としては通用する内容だし、私自身の言葉だけでは欠落してる部分を抑えられるのが良かった。間接的にはこの記事を読んでイメージできる程度の下積みはできつつあるということの確認もできて丁度良い塩梅。もう1,2回ぐらい解説記事を読む場が用意できると良さげか。

英語勉強を兼ねたscikit-learnチュートリアルは時間的に厳しかったので今回はパス。その分、チュートリアルの理解に必要な部分を抽出した例題をやったので、来週は英語やれるんじゃないかと。といいつつ、今回は一人一人チェックする課題を出してるので「課題チェック1時間、ゲストトーク20分」がほぼ確定で、実質的には他のことをやれる時間がどれぐらいあるかは謎だな。

データマイニング班5回目は具体的な評価の例

木曜日, 5月 9th, 2013

m_20130509123624518b19b913155

献血16回目記念?だかでタンブラーを貰えました。何となく欲しい気がしつつ自分で買うまででもないなという状況だったのでちょっと嬉しいです。使うかどうかは謎なんですが。


データマイニング班の5回目は以下のような中身でした。

詰め込み過ぎの気もしますが、時間的には予定通り早めに終われました。

宿題報告についてはコードを皆で眺めながら「マジックナンバー使うな」「リスト初期化しよう」「コメント書こう」とか補足。で、リスト内包表記についても補足する予定だったんですが、忘れてたのでメールでの補足をしておくことに。

開発的には「ドキュメンテーション(docstring)+ユニットテスト(doctest)+交差検定(のためのランダムなインデックス生成を通した分割と、平均スコア算出)」ぐらいの内容ですね。

来週はscikit-learnのチュートリアル続きを予定していますが、一つずつ丁寧に進めていくか、かいつまんでclassification/regression/clusteringの例を触ってイメージを掴むことを目標にするかぐらいで悩んでます。細かいこと気にせずにとっとと「やりたい具体例」について取り組んでもらう方向もありなんですが。何かしらデータセット構築して、分類学習させてから特徴抽出方法を見直すとか。

データマイニング班4回目が終了

木曜日, 5月 2nd, 2013

m_201305021154445181d5747fd76 m_20130502201105518249c92145e

データマイニング班の4回目は以下のような中身でした。

想定ではLevel 1の報告&補足に1時間、FizzBuzzのユニットテストまでで1時間、他30分でちょっと時間余りそうだなと思ってたのですが、全く時間たりませんでした。英語チュートリアルやりながらの英語勉強もやるつもりが触る時間も取れなかったのは予定外。

プログラミング側もユニットテストまでやれなかったので、宿題もそこを除外した形でほんのり甘めの課題に。class, def, list, if, for, range ぐらいの組み合わせですが、チュートリアルやらせるよりはもう少し具体的な問題設定して上げた方が良いのかしら。そっち方面では言語処理100本ノックがウマい構成になってると思うんですが、機械学習周りの流れを把握しながらでもあるのでちょっと先走り過ぎな気も。うーん、来週はどうしよう。

データマイニング班3回目は半分英語指導に

木曜日, 4月 25th, 2013

m_2013042511520851789a58dd6b3

データマイニング班の3回目が終了しました。無線LANの調子は相変わらずで、ハブの用意が欠かせません。準備してもらっているので大丈夫ではあるんですが、事務室に置いてある2台のうち1台は使用された形跡自体がありません。というのは、LAN接続不要だからなのか別の場所では問題になっていないのかが気になったり。

3回目の中身は事例紹介がメインで、オプションでscikit-learnのチュートリアル。

事例紹介は一般物体認識での局所特徴量+共起した事例と、Twitter議論構造可視化のための品詞や時間情報を利用した事例の2つ。最初から一事例としての概要を見せるぐらいだったので、予定通り数十分ぐらいで終了。

予定外だったのはscikit-learnのチュートリアルで、「そもそも機械学習って何ぞ?」という所からの説明ではあったんですが、1.1節を読んで説明してもらうだけで1時間かかってたんじゃないかな。1.2節以降の実際の演習は全体で30分かかってないとは思う。英語ドキュメントぐらいしか無いのも「これを使おう」と決めた理由の一つなんですが、やっぱり「読まざるを得ない環境」を用意するのは効果があるなという印象。学生自身ががどう感じているか&本当に実になりそうかは別問題なんですがw、単にPythonチュートリアルするばかりだとつまらないだろうし。

ということで機械学習概説と、scikit-learnでテストデータ使ったSVMで分類器構築して予測させてみるまで、を終了。復習や理解を深めるために宿題としてLevel 1: 分類問題についての検討(PDF)をやってもらうことに。来週は何やろうかな〜。

データマイニング班2回目が終了

木曜日, 4月 18th, 2013

データマイニング班の2回目が終了しました。やっぱり無線LANの調子がよろしくないので、用意してもらったスイッチングハブを使いました。ちょっと悲しいけど、この調子だとデフォルトで用意した方が良さそう。

2回目の中身は、追加の環境設定(emacs使うならauto-complete.elぐらいは入れよう)と、事例紹介を2つした後はひたすらPythonチュートリアル。進捗具合的には来週もチュートリアルがメインですが、中だるみになりそうなので何かオプションを検討中。emacs推奨してるように見られてるっぽいですが、別にそんなことはなくてエディタでプログラミングするなら「インデント&自動補完ぐらいは必要だろう」ということで紹介してます。Aptana Studioとか統合環境使っても良いし。

事例紹介した一つ目はオントロジー辞書を使った興味抽出。Wikipediaから基礎情報+αを収集して、人手で修正するOntolopediaを使って辞書データを構築し、それを使って「通堂」好きな人は部分材料の「もやし」に反応するとか、「どういう関係性に興味を持ちやすいか」を検証してみたという話。

2つ目は、共起情報を使った情報検索への応用。一つの文の中に同時に出現する(=共起する)語を収集して傾向分析することで、直接は書かれていないが関連している語を自動補完して検索に役立てようという話。例えば大学というキーワードで検索すると、関連語として「ゼミ/科目/学科、、、」が得られ、直接大学というキーワードが含まれてない記事も検索できるというもの。

環境構築では、テキストではMacPortsを想定しているのですが、学生らの間ではhomebrewな人も多い用で、「片方で途中まで試した状態のまま別パッケージ管理ツールで試す」みたいなことをやりまくり、/usr/local/lib/, /opt/local/lib/ 等が混乱してて結果的に正常動作しないケースがあったっぽい。ま、頑張ってください。

データマイニング班1回目が終了

木曜日, 4月 11th, 2013

データマイニング班の1回目が終了しました。無線LANの調子が悪くてぶちぶち切断される学生が少なくなく、1台有線LANにしてそこからWi-Fi共有接続とかして凌ぐことに。急場を凌ぐという意味では良いんですが、これが通常実験日で毎回やら無くちゃいけないとなると流石に悲しい。ということで、来週からはスイッチを用意することに。それも「ちょっと違うんじゃ」と思わなくはないですが。

肝心の中身はというと、サーバ環境の情報共有、Mercurial演習(PDF)事例紹介その1(電子マネー顧客分類)までやって終了。電子マネーの事例は、複数店舗でのEdy購買履歴を生データとして、広告配信(=意思決定)を支援するために、ユーザをセグメント分類して特徴抽出したという話。2005年度に産学官共同研究したやつです。協調フィルタリングを欠損値推定代わりに使ってみたら割と面白いクラスタ抽出できたとか、個々の理論を詳細に説明するというよりは「データマイニングの流れ」を意識して紹介したつもり。

学部3年生対象でもあるので、「こういうツール(scikit-learnを予定)が用意された時に、どういうデータをどう処理してどう活かすか」という部分を思考/試行実験できるようになるのがイメージしやすい達成目標かな。データをどう前処理するかについてはそもそも理論が分かってないとという話もあると思うけど、まずは用意された機械学習パッケージを使ってみようぐらいで。

LAN接続が悪すぎたので環境構築Pythonチュートリアルは宿題ということに。

来週は、事例紹介を冒頭で少しやった後、オプション(emacsユーザが多いのでauto-complete.elで補完ぐらいは付けようかと)を先にやってからPythonチュートリアルの続きをやってもらう予定です。

新入生向け最後のイベントと実験3の班分けが終了

月曜日, 4月 8th, 2013

m_20130408125928516240a033e52

新入生向けイベントとしては最後になる「修学の手引き」の指導が終わりました。これで一通り修学に必要な指導はしたつもりです。直接的に修学の手引きに書かれていない情報についてもいくつか整理して説明済みで、今回は以下の点についても補足しました。

  • 単位 (琉球大学学則 第20条)
  • 欠席の取り扱い (琉球大学各学部共通細則 第14条の2)
  • 学び方
  • アルバイト/貯金

単位は、専門基礎教育科目だと「1単位=45時間」なので、微分積分学2単位は90時間の勉強時間が求められている。講義自体は1.5時間x15回=22.5時間なので、残り67.5時間の自習を求めていて、それぐらいやらないと単位は取得できないよというような話。スポーツや芸能では時間をかけて基礎を積み重ねていくのが当然なのに、勉学ではそうしない人が少なくないのは何故なんだろう、と。

欠席は、3分の1以上欠席すると単位が認められない(不可になる)という話に加えて、欠席の取り扱い方は教員によってことなるから遅刻も含めてちゃんと時間を守って受講しましょう。

学び方についてはあれこれ伝えたんですが、主な内容は「一冊の本、一人の先生から学べることは少なくないけど万人に適している訳じゃない」というもの。理解しにくい、読みにくいとか何かあれば別の本、人(友人/先輩/別教員/学習サポートルーム)を頼ろう、と。学習パターンもイントロだけ紹介。4年間という限られた時間をどのように過ごすかは自分が何を目指してどう行動するか次第。学生のうちにどんどん失敗しよう。「君の目指す丘は何だ?」と4年間問い続けるという話や、未踏ユースとかいろいろ学外にも目を向けようという話も。

アルバイトについては、本業に支障が出ない範囲でやってできるだけ次年度以降の活動のために貯金しましょう。沖縄にいるとどうしても視野が狭くなりがちだし、目指す丘が決まったらそれに関連したイベントに参加したり、企業見学したりいろいろ県外に行くだけでお金が必要だから、と。


午後は、実験3の班分けが終了しました。前期だけしか開講されない実験班もあれば後期だけしか開講されない実験班もあるという状況ですが、1つの実験班で受け入れる人数は多めになってるので結果としてはほぼ同等じゃないかと。

データマイニング班は前期&後期の両方とも開講するのですが、当初こちらからの人数は6名を予定していた所、希望人数は11名。倍近いのは流石に多すぎ。それでも多めに8名取ってみることに。次年度以降多めの人数でもやれそうかの確認も兼ねてるので、結果次第では次年度どうするかの調整が必要かな。グループ数で調整するなら10名前後でもやれないことはないけど、その分個々人に接する時間が減っちゃうのは明確なので6名+αが丁度良いと思ってます。というか一度進化計算班だった頃に8名でやったことあったけど、やっぱり全員分ちゃんと見るのはキツかった。

予想以上に学生側は何かしら期待してくれているようなので、当初の予定では最初の数週間は環境構築した後はチュートリアル三昧を想定していたのですが、具体的な事例を何かしら準備してみようかと画策中。ここ最近音沙汰ないですが、SEECさんとの情報交換・共有のために過去の事例を探してあったのでそれからセレクトする予定です。

STRP留学生のJoくんも実験3受講を予定していたんですが、諸事情で別講義に差し替えることに。結果的には本人が望んでいるネットワーク関連の勉強になるので良かったかな。