絞り込みとは?

絞り込みに関しては、これという決まったやり方がありません。それは、人それぞれに考え方も違えば、価値観も違うからです。ですが、「こんな方法もあるよ」という例題を、こちらで紹介してみたいと思います。
説明を分かり易くするため、同じ題材を使って解説したいと思います。文中【】で囲まれたリンクをクリックすると、その画面の解説ページを表示します。
絞り込みに入る前に、データベースを登録しておきましょう。WinFocusを初めて起動された方(データベースが未登録な方)は、オプション(O) − DataLab.初期設定(J) とポイントして、「DataLab. 初期設定画面」から「DataLab. セットアップ」ボタンをクリックしてセットアップを行って下さい。セットアップが終わっている方は、データベース(D) − DataLab.通常データ読込(D) とポイントして、DataLab. の蓄積系データをデータベースに登録しておいて下さい。
WARS買い目の題材として拙作「Z(本命)」の買い目ファイルを使うことにします。どちらか都合の良い方をダウンロード(右クリックメニューから保存)しておいて下さい。
では、このファイルを使ってデータベースに登録しましょう。データベース(D) − WARS買い目データ登録(W) とポイントして、【WARS買い目データ登録画面】にて登録を行って下さい。
次に、絞り込みデータを記録する受け皿(出力ソフト)を作ります。「出力ソフト新規作成」ボタンをクリックして【出力ソフト設定画面】を呼び出して下さい。
いよいよ絞り込みに入ります。と言いたいところですが、まずは素のままの成績を確認しておきましょう。<基本設定項目>が左画面のようになっていることを確認して、「項目別集計表作成」ボタンをクリックしましょう。
「絞り込みデータ設定」ボタンをクリックして、絞り込みデータ設定エリア(以下「設定画面」という。)に切り替えます。
今はまだ出力ソフトを作成したばかりですので、絞り込み条件が一つも登録されていません。この状態では設定画面には項目名だけが表示されます。
色々なやり方があると思いますが、今回は【トラック】に注目して、「芝」の成績の方が良いので「芝」のレースについて絞り込むことにします。
設定画面に戻ってくると自動的に計算が行われ、集計表が表示されました。「芝」のレースを絞り込むので、まずは無条件に【トラック】の「ダート」をクリックしてオフ(白色)にします。すると自動的に計算が行われ、芝のレースのみの成績が表示されました。
さあ、ここからが腕の見せ所です(笑)。まんべんなく各細目の数値を見て、極端に成績の悪い細目をオフにしていきます。ここからの解説では「0202 ダート」をオフというように細目番号と細目名で表現していきます。
「0910 〜17頭」が回収率・的中率共に悪いのでオフにします。次いで回収率50%以下・的中率20%以下の細目に着目して「0501 新馬」「0911 〜18頭」をオフしましょう。そうすると「0706 G1」の的中率が0%になってしまいました。
このように、競争条件は複雑にからみあっていますので、ある細目をオフにすることで他の細目にも影響してきます。この期間のG1レースは17〜18頭立てのレースが多かったのでしょう。「0706 G1」をオフにします。
さらに絞り込みを進めましょう。「0303 第3R」「0807 〜2200」をオフにします。ここまでくると回収率・的中率で赤色の細目が少なくなってきました。でもまだ、【総合成績】の回収率は 100%を越えていません。
今回は初めて絞り込みをされる方のために、分かり易い回収率・的中率の数値に着目して絞り込みを行いましたが、単純に細目を10個オフにしただけでも 100%を越えることができました。
ここから更に絞り込んで 200%位にしたいところですが、元々の成績が良くないので、あまり期待はできないかも知れません。ですが、「全国」で絞り込まずに、各競馬場毎に絞り込むと、もう少し良い結果が得られるかも知れません。
また、回収率や的中率の数値にのみこだわってもいけません。全体的なバランスを考えて、あえて悪い細目を残しておいて、良く見える細目を削った方が、結果的によくなる場合もあります。
例えば、的中率が 50%あったとしても、2R中1Rが的中しているだけかも知れません。同じように回収率が 300%、的中率が 100%といっても、1R中1R的中の細目かも知れません。例えが極端ではありますが、単純に数値のみを見て絞り込むのは早計です。
一つの細目をオンオフしながら、全体がどのように変化するのか、また、項目別集計表だけではなく、的中レース一覧表や開催日別集計表などを出力しながら、バランスを考えて絞り込みを行って下さい。
これらは、絞り込みを何度も行って経験を積むしかありません。予想ソフトが違えば傾向も違うはずですし、最初に言いました通り、「これ」というやり方が無いのが、絞り込みの面白さだと思います。
絞り込みを行っただけでは何も始まりません。この条件を元に実際に買い目を出力して馬券を購入していくことになります。
ここの題材で作った条件で、出力してみます。メイン画面の最下段(ステータスバー)には出力ソフトが「Z本命絞り」になっていますね?
では、2003年11月1日のZ(本命)の買い目を作成し、データベース(D) − WARS買い目データ登録(W) とポイントして、買い目の登録を行います。
<基本設定項目>の絞り込みモードを「絞り込み」に、集計期間(区分)を「最新」にして、「WARSフォーマット個別作成」ボタンをクリックすると、絞り込み条件に合致した買い目が抽出されました。
さて、結果はどうでしょう・・・。なんと、ひとつも的中しませんでした。やはり単純に数値のみを見て絞り込んでも良くないみたいですね。もっともこの日だけを見て判断するべきではありませんが・・・。
初めての絞り込みで結果が悪かったのが、がっかりされた方もいるかも知れません。でも心配には及びません。絞り込みの方法は千差万別、また基準とする予想ソフトもたくさんあります。ここからが本当の腕の見せ所になるのですから。
本当は、新聞広告などによくある、良い結果を見せて感動させるというのが手法かも知れませんね(^^;;;

[ 42] 初めての絞り込み - WinFocus - EH_Toric の プログラム
[引用サイト]  http://hp.vector.co.jp/authors/VA032016/Sibori1.htm

今回は「絞り込み検索」について再考する。「絞り込み検索」をLuceneで実現する方法は「Lucene本」でも紹介したが、ここで説明するのは、それとは異なる「もうひとつの絞り込み検索」である。
最初に、「Lucene本」で紹介されている「絞り込み検索」のオペレーションの流れを復習しておくと、それは次のようである:
検索質問語がヒットしたドキュメントの一覧が表示される。その検索結果一覧ページに表示されている「絞り込み検索窓」に絞り込み検索をする検索質問語を入力し、[絞り込み検索]ボタンをクリック
最終的に、入力した2つの検索質問語が両方とも含まれる検索結果一覧が表示される。なお、「検索質問語」はフレーズや2語以上からなるものでもかまわない
これを実現するための(Web)アプリケーションの実装方法としては、「Lucene本」ではBooleanQueryを使うかまたはQueryFilterを使う方法を紹介し、考察の上BooleanQueryを使って実装する方を推奨している。
しかしながら、このような機能を実装しても、利用者にはあまり使われていないのが現状である。なぜなら最近の利用者は(インターネット)検索することに慣れているため、わざわざ「絞り込み検索」機能を使わなくても、最初から検索窓に第1の検索質問語とスペースを挟んで第2の検索質問語を一度に入力し、[検索]ボタンをクリックするというオペレーションを行うからである。そうしたほうが結果が早く得られるし、クリックする回数も少なくてすむ。
かくして、「検索オプション」(下図。「検索オプション」についてはまた別の回に解説したい)とともに「絞り込み検索」の検索窓(Googleの場合は「絞り込み検索」リンクをクリックした先のページにある)は最も使われない機能のひとつとなっている(もちろん、一部の検索ヘビーユーザには便利な機能であり、はずすことはできない。そのため別リンクとなっているものであろう)。
そこで、この記事では絞り込み条件をあらかじめシステムの方で用意しておき、図のようなリンクで提供する「もうひとつの絞り込み検索」機能をLuceneで実現する方法を紹介しよう。
これは最近になってWeb上のいろいろなサイトで見られる、地味だが利用者の視点に立った親切な機能として採用されだしてきているものだ。
この「もうひとつの絞り込み検索」機能は図を見てわかるとおり、利用者にリンクで提供される。よって、利用者に対しては「絞り込み検索」のための絞り込み用検索質問語の入力の機会を奪う反面、簡単な操作で結果を絞り込むことができる操作性の向上という恩恵も同時に提供している。このように「もうひとつの絞り込み検索」機能は長所(操作性の向上)と短所(自由な絞り込み検索ができない)の両面がある。
しかし、前述の通り検索行為に慣れている最近の利用者にはこの短所の部分はあまり深刻なものとしてとられないだろう。なぜなら、ほとんどの利用者は最初の検索窓への入力で絞り込み条件まで同時に入力しているからである。そのような利用者にとっては、むしろシステムによってあらかじめ用意された上図のような絞り込み条件リンクは自分で絞り込む条件として指定することを思いつかなかった新しい発見であるかもしれない。
Amazonのサイトに行き、検索窓に「ajax」と入力し[GO!]ボタンをクリックする。すると、ヒットした商品一覧が表示されるが、画面左上には図のようなリンクが表示される。
このとき、「Ajaxの日本語の解説書」を探しているのであれば、「和書」のリンクをクリックすれば、目的の商品一覧を簡単に表示できる。
カーセンサーのサイトに行き、「キーワード検索」と表示がある検索窓に「bmw」と入力し[検索]ボタンをクリックする。すると、ヒットした商品一覧が表示されるが、画面左側には図のようなリンクが表示される。
ではこの機能をLuceneで実現する方法を考えてみよう。「Lucene本」では「(もうひとつではない方の)絞り込み検索」機能はBooleanQueryまたはQueryFilterを使って実装できることを示したが、同じ理屈で「もうひとつの絞り込み検索」機能もBooleanQueryまたはQueryFilterを使って実装できる。しかし、「Lucene本」では「(もうひとつではない方の)絞り込み検索」機能はBooleanQueryを使った方がよいのに対し、「もうひとつの絞り込み検索」機能では逆にQueryFilterを使った方が処理効率がよい。なぜなら、「もうひとつの絞り込み検索」機能はシステムによってあらかじめ絞り込み条件を決めることができ、これはLuceneのQueryFilterのキャッシュが有効に働く利用状況そのものだからである。
検索質問語が入力された後に表示するページ(検索結果一覧ページなど)に、絞り込み検索条件を列挙したリンクを生成する
ここでの話をわかりやすくするために、絞り込み検索条件は図のようにドキュメントの更新日付で行えるものとする。
このようにあらかじめ用意したFilterオブジェクトにそれぞれ名前(フィルタ名)をつけておき、Mapなどで管理してフィルタ名でFilterオブジェクトを取得できるようにしておく。
次に2.であるが生成するリンクには、3.で絞り込み検索を行うときに必要な情報を埋め込む必要がある。必要な情報は最低限、最初に入力された検索質問語と、絞り込み条件と一致するフィルタ名である(これ以外にも検索結果一覧表示のための付加情報がいろいろあるがここでは省略する)。具体的には次のようなHTMLが生成されるようにプログラミングを行う:
最後に、3.は上記のリンクがクリックされたときに実行されるプログラムであるが、パラメータqの値から検索質問語を取得してQueryParserなどでQueryオブジェクトqueryを得る。そしてパラメータfの値からフィルタ名を取得し、1.で用意したMapからFilterオブジェクトfilterを得て次の検索を実行する:
以上がLuceneによる「もうひとつの絞り込み検索」機能の実現方法だ。・・・しかし、ちょっと待った。
サンプルで示したAmazonやカーセンサーのサイトでは、絞り込み検索のリンクの横に(123)というような数字が表示されているではないか。これは「もしその絞り込み検索のリンクをクリックすると、123件のドキュメントまで絞り込めますよ」ということを利用者に示す数字である。この数字の表示は、利用者に「このリンクをクリックするかどうか」の判断材料を提供するという意味でやはり重要な情報である。
この数字をLuceneのプログラムで得ることはもちろん可能であるが、その方法については「もうひとつの絞り込み検索(後編)」で述べることにする。
RailsアプリからSolrを使う全文検索のデモ⇒ 海外のイーベイ、アマゾンでCD・本を個人輸入するなら7ヶ国比較サイト (11/10)

[ 43] 関口宏司のLuceneブログ | もうひとつの絞り込み検索(前編)
[引用サイト]  http://lucene.jugem.jp/?eid=90



お気に入り



  • track feed
    • seo