2016年12月22日木曜日

考え方が間違っていました

KH Coderについて書いた昨日のブログは間違っていました。昨日は,単語がサンプルで,その特徴量が文だと書きましたが,これは反対ではないでしょうか。つまり,文がサンプルで,特徴量が単語です。単語はその分を特徴づけているわけですからこの考え方は自然です。たとえば野球について書かれた文の中にはピッチャーやストライク,ホームランといった単語が出てくるでしょう。それに対してサッカーについて書かれた文にはペナルティキックやロスタイム,ドリブルといった単語が出てくるでしょう。それらの単語が文(の意味やテーマ)を特徴づけているのですから。
私たちの研究で考えるなら,サンプルは疾患について書かれた文(以降,これを疾患定義文と呼ぶことにします)で,特徴量は症状です。つまり,疾患定義文は症状によって特徴づけられているわけです。特徴ベクトルの要素として,疾患定義文に対応する症状が登場するかしないかでそれぞれ1, 0の値をとるような症状ベクトルを考えると,各疾患は症状ベクトルによって特徴づけられ,それらが近接している場合は類似した疾患と分類されるでしょう。これはまさに理にかなっています。おそらくクラスター分析もこのような考え方で行っているのではないでしょうか。
ところで,各々の疾患定義文が含む症状の数はまちまちです。ですから,文の長さによる違いを除去するために何らかの方法で正規化する必要があるかもしれません。また,同じ症状が複数回登場することもあるでしょう。そのような症状はその疾患について重要な特徴であることを示しています。さらに,登場回数は少なくてもすべての疾患定義文における登場回数が少ない症状は,その疾患の特徴を表す重要な症状と言えるでしょう。ですからこれらも考慮に入れるべきです。そう考えると,症状の有無や登場回数だけで特徴ベクトルを表現する方法は好ましくありません。そこで,特徴ベクトルの各要素にtfidfを利用することが考えられます。tfはterm frequencyのことで,ある一つの疾患定義文に登場する症状tの出現回数です。そして,dfはdocument frequencyのことで,これは疾患定義文全体に登場するtの出現回数です。tfidfのiはinverseのことで,tfをdfで割ることを意味しています。こうして先に述べた問題点を解消した特徴ベクトルを作ることができます。

0 件のコメント:

コメントを投稿