[掲示板へもどる]
一括表示

  [No.3067] ベイズ学習による分類 投稿者:  投稿日:2017/07/26(Wed) 18:08:22

樋口先生、
お忙しいところを失礼いたします、悠と申します。


KH Coder安定版のダウンロード(Ver. 2.00f, 2015 12/29)に梱包されている
マニュアルのp69、「ベイズ学習による分類」脚注*16
について、ご教示をいただければ大変に助かります。

*16
「事柄A に言及あり」「事柄A に言及なし」といったカテゴリ分けによる
学習と自動分類を,複数の事柄について繰り返すことで,
KH Coder によるコーディングと同様の処理を行うこともできる。

事柄を意味する外部属性として、topic1,topic2,topic3,,,,topic7があるとします。
値は、0/1の2値です。


「ベイズ学習による分類」→「外部変数から学習」で、
学習する外部変数を、topic1,topic2,topic3,,,,topic7で計算した7つの
ファイルができます。

これら7ファイルをどのように組み合わせすれば、マニュアルの脚注*16に
記載されていることができるようになるのでしょうか?

どこまでが、KHcoderの機能を利用して、
どこからが、KHcoder以外の処理(例えば、EXCEL操作、Rプログラミングなど)を
必要とするのでしょうか?

手順、手続きをお示しいただけましたら大変に助かります。

どうぞよろしくお願いいたします。
//悠


  [No.3070] Re: ベイズ学習による排他的でない分類 投稿者:HIGUCHI Koichi  投稿日:2017/07/26(Wed) 20:52:17

こんにちは、樋口です。書き込みありがとうございます。

(1)外部変数の「topic1」から学習を行い、その結果をファイル「t1」に保
存します。次に(2)「t1」を使って、学習に利用していない新たなデータの
自動分類を行います。これによってtopic1に「1 言及した」か「2 していな
い」かという自動分類の結果が、変数として得られます。

これを他のtopic2、toipic3、etc.についても繰り返せば、各トピックに言及
したかしていないかという2値変数が、トピックの数だけ得られます。

この結果、文書がトピックのどれか1つに分類されるという排他的な分類では
なく、1つの文書が複数のトピックを含みうる(複数の変数の値が「1 言及し
た」になりうる)という非排他的な分類となります。非排他的な分類という意
味で、コーディングと同様の分類になります。


  [No.3074] Re: ベイズ学習による排他的でない分類 投稿者:  投稿日:2017/07/27(Thu) 12:06:16

樋口先生、

お忙しいところを失礼いたします、悠と申します。


有難いご教示に心から感謝いたします。 ありがとうございます。


先生がお書きになられたことは、理解できているつもりです。

ベイズ分類で学習した「モデル」を、未知の「データ」に適用した結果を、
新しい外部変数として追加・保存することで、
コーディングのクロス集計と同じような星取表ができるという理解です。



先生、マニュアルの記載について、もう一点御確認させてください。
お手数をおかけいたします。


お聞きしたい個所は、
A.6.3 「ベイズ学習による分類」「外部変数から学習」
ベイズ学習による分類について
の、
「排他的な分類ないしはカテゴリ分けを行う」です。

誠に恥ずかしいのですが、この2つの区別が実感できません。

後者の「カテゴリ分け」については、
脚注 *16 ただし,「事柄A に言及あり」「事柄A に言及なし」といったカテゴリ分け
という説明で理解できます。

前者の「排他的な分類」は、後者の「カテゴリ分け」とどう違うのか、
分かりやすい具体例で示してくださると助かります。

お手数をお掛けいたします。
どうぞ、よろしくお願いいたします。
//悠


  [No.3076] Re: ベイズ学習による排他的でない分類 投稿者:HIGUCHI Koichi  投稿日:2017/07/27(Thu) 16:00:44

こんにちは、樋口です。書き込みありがとうございます。

> ベイズ分類で学習した「モデル」を、未知の「データ」に適用した結果を、
> 新しい外部変数として追加・保存することで、
> コーディングのクロス集計と同じような星取表ができるという理解です。

はい、まさにそういうことです。

> 「排他的な分類ないしはカテゴリ分けを行う」
> (中略)
> 前者の「排他的な分類」は、後者の「カテゴリ分け」とどう違うのか、
> (後略)

すみません、前者を別の言葉で言い換えることで、少しでも伝わりやすくし
ようと試みたのです。したがって、前者と後者は同じものです。

カテゴリが「a」「b」「c」の3種類あった場合、すなわち外部変数の値が「a」
「b」「c」の3種類であった場合、自動分類をするとどれか1つの値しか自動分
類では割り当てられないということですね。「a」に分類されたら、同時に「b」
にも分類されるということは起こらない。その意味で、「排他的なカテゴリ分
け」なのです。(そう書いておいた方が良かったですよね…)

※ただ、先に書いた方法を使えば、「a」も含むし「b」も含む、といった判定
が可能になります。


  [No.3082] Re: ベイズ学習による排他的でない分類 投稿者:  投稿日:2017/07/27(Thu) 17:29:45

樋口先生、

お忙しいところを失礼いたします、悠と申します。

ご丁寧にご教示をいただきましたので、理解できました。
ありがとうございます。


先生、もう一点、教えていただけませんか。
色々と考えていますが、理解できません。



A.6.5 「ベイズ学習による分類」ー「学習結果ファイルの内容を確認」

「分散」列を選択して、降順ソートをする場合、
「事前確率」の位置に着目をすると、以下の2ケースが見られます。

(1)「事前確率」が一番上に表示される場合

(2)「事前確率」より上位に、語が表示される場合

この違いについて、操作した結果を見ながら考えていますが、よく分かりません。


この違いについて、ご教示いただければ、助かります。

この違いを考えることは、意味があるでしょうか?


どうぞ、よろしくお願いいたします。
//悠


  [No.3083] Re: 事前確率の分散が大きい場合について 投稿者:HIGUCHI Koichi  投稿日:2017/07/27(Thu) 18:46:45

こんにちは、樋口です。書き込みありがとうございます。

分散でソートすると事前確率が一番上に表示されるということは、事前確率の
分散が相対的に大きいということでしょうか。


事前確率の分散(数値のバラツキ)が大きくなるのは、各カテゴリに含まれる
文書数に大きな差があった場合だと思います。言葉をかえると、学習用の文書
が、あるカテゴリでは多く、あるカテゴリでは少なかったということでしょう。

学習用の文書があまりに少ないカテゴリについては、上手く学習ができないこ
とも考えられ、この場合は分類の精度があまり良くない恐れがあるかもしれま
せん。ですから、可能であれば、極端に文書数の少ないカテゴリはない方がよ
いでしょう。


もう1点、語の分散が全体に小さいために、事前確率が上位に来るということ
だとしたら、「各カテゴリに特徴的な語」「『この語があればこのカテゴリ』
と判断できるような語」があまり無いということかもしれません。この場合に
は、機械学習による分類が上手くいきにくいことも考えられると思います。


「数値がいくつ以上なら危ない」といった明確な基準は示しにくいのですが、
上記2点と、交差妥当化の結果を併せて検討しておくと手堅く進められそうに
思います。


  [No.3084] Re: 事前確率の分散が大きい場合について 投稿者:  投稿日:2017/07/28(Fri) 08:29:17

樋口先生、

お忙しいところを失礼いたします、悠と申します。


ご丁寧なご教示をいただきまして、誠にありがとうございました。


「分散」で降順ソートした場合に、
「事前確率」よりも上位に語が多く出現するような状態が、カテゴリ分けで重要だということが分かりました。


データは、VOCアンケートの約10000件ですので、抽出語は相当数あります。

しかし、共起ネットワーク、対応分析など、分析で使用する語はほんの一部です(100語強)。

もしかしたら、その設定の習慣があったのかもしれませんが、
「外部からの学習」パネルの設定を確認したところ、
「現在の設定で学習に使用される語の数」は、ほんの一部であることが分かりました。

おそらく、これが原因だと思われます。

学習に使用する語の数を大幅に増やして、やり直してみます。

貴重なご助言をありがとうございました。


ーーーーー
先生、ついでの投稿で申し訳ございません、

オプション「既存の学習結果ファイルに今回の内容を追加する」について、お聞きしたいことがございます。


・この機能は、「ベイズ更新」とよばれるものでしょうか?


・この機能の使い方として、以下は間違っていないでしょうか?

 四半期ごとのデータがあるとします(Q1、Q2、Q3、Q4)。

 まずは、Q1で学習結果ファイルを構築しました。

 次に、Q2の学習では、
 わざわざ「Q1とQ2をマージしたデータファイルを作らなくても」、
 Q1の学習結果ファイルを利用して、追加すればよい。

 Q3、Q4も同様です。

 このような使い方で間違いはないでしょうか?


 先生の豊富なご経験、知識から、
 この便利な機能の使い方があれば、ご紹介いただければ、大変に勉強になります。


以上、どうぞよろしくお願いいたします。
//悠


  [No.3091] Re: 学習結果の追加について 投稿者:HIGUCHI Koichi  投稿日:2017/07/29(Sat) 00:28:05

こんにちは、樋口です。書き込みありがとうございます。

> ・この機能は、「ベイズ更新」とよばれるものでしょうか?

「ベイズ更新」と呼ぶのかどうかは、分かりません。「この本のp. ○○で
『ベイズ更新』と呼ばれているものか?」、というようにお尋ねいただければ
お答えできるかもしれません。(ただ、お返事にある程度以上の日数をいただ
くことになると思いますので、あらかじめご了承ください)

> ・この機能の使い方として、以下は間違っていないでしょうか?

はい、そうした使い方を意図して「追加」の機能を作りました。ただし確実を
期すなら、Q1とQ2をマージして学習したものと、Q1の学習結果ファイルに
Q2の学習結果を追加したものとを見比べていただくのが良いかもしれません。
違いがあったら、どんな違いがあったかお知らせください。


  [No.3092] Re: 学習結果の追加について 投稿者:  投稿日:2017/07/29(Sat) 07:21:44

樋口先生、

お忙しいところを失礼いたします、悠と申します。

ご教示をいただきまして、誠にありがとうございました。
大変に勉強になりました。


「ベイズ更新」という用語を使ったのは、
トピックモデルで、同じように、学習結果の追加を行っているからです。


学習結果の確認で、「分散」列で降順ソートする際に、
「事前学習」よりも上位に語が出現しない件につきましては、
学習に使用する語を大幅に増やしたところ、あっさりと解決しました。
お手数をおかけしてしまいました。
大変に失礼をしました。


おかげさまで、ベイズ学習は使いこなしができそうです。
//悠